( 1 ) 해킹사고 분석
2021년 03월 28일 공식적인 PHP Git 저장소(git.php.net 서버)에 백도어 코드가 삽입된 해킹 사고가 발생됨.
두 개의 악성 커밋은 git.php.net 서버에 호스팅된 자체 호스팅 "php-src" 저장소로 입력되었으며 프로그래밍 언어의 작성자인 Rasmus Lerdorf 와 소프트웨어 개발자인 Nikita Popov 이름을 사용하여 불법적으로 전송됨.
zlib.c 의 370 줄을 보면 zerodium 문자열로 시작할 경우 user-agent 필드 내에서 PHP 코드가 실행됨.
참고로 zend_eval_string() 함수는 PHP 코드를 그대로 실행시키는 함수임.
해킹 사고 후 몇 시간 후에 발견되어 현재 정상적인 코드로 롤백한 상태임.
관리자 Nikita Popov 발표에서 git.php.net 서버가 해킹된 것으로 확인되며 git 계정은 노출되지 않음을 공지함.
git.php.net 서버는 폐기할 예정이며 GitHub 저장소로 프로젝트를 이전할 예정임.
( 2 ) 해킹사고 대응방안
1. PHP Git 저장소에서 받은 PHP 코드 중 zerodium 문자열 존재 여부 확인이 필요함.
리눅스 계열
grep -r 'zerodium' 위치
ex. grep -r 'zerodium' /usr/bin/php/*
윈도우 계열
findstr /S /N zerodium 위치
ex. findstr /S /N zerodium C:\*.*
2. zerodium 백도어 코드을 이용한 해킹을 탐지하기 위해 Snort 패턴을 등록함.
패턴 설명 : User-Agent 필드에 zerodium 문자열이 들어가 있을 경우 탐지하는 룰
패턴 : alert tcp any any -> any any (msg:"KOROMOON_PHP Git Hacked_YYYYMMDD"; flow:established; pcre:"/User-Agent\:[^\n]+zerodium/i";)
( 3 ) 참고 사이트
https://news-web.php.net/php.internals/113838
https://github.com/php/php-src/blob/master/ext/zlib/zlib.c
============================================================
본 게시물은 KOROMOON 님께서 작성하였으며 CCL (Creative Commons License) 에서 "저작자표시-비영리-동일조건변경허락" 이용조건으로 자료를 이용하셔야 합니다.
댓글 없음:
댓글 쓰기