KOROMOON

착한 사마리아인이 되고 싶습니다.

3/30/2021

2021년 03월 28일 PHP Git 저장소 해킹 사고 분석


( 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://www.bleepingcomputer.com/news/security/phps-git-server-hacked-to-add-backdoors-to-php-source-code/

https://github.com/php/php-src/commit/2b0f239b211c7544ebc7a4cd2c977a5b7a11ed8a?branch=2b0f239b211c7544ebc7a4cd2c977a5b7a11ed8a&diff=unified#diff-a35f2ee9e1d2d3983a3270ee10ec70bf86349c53febdeabdf104f88cb2167961R368-R370

https://github.com/php/php-src/commit/c730aa26bd52829a49f2ad284b181b7e82a68d7d#diff-a35f2ee9e1d2d3983a3270ee10ec70bf86349c53febdeabdf104f88cb2167961R370

https://github.com/php/php-src/blob/master/ext/zlib/zlib.c




============================================================

본 게시물은 KOROMOON 님께서 작성하였으며 CCL (Creative Commons License) 에서 "저작자표시-비영리-동일조건변경허락" 이용조건으로 자료를 이용하셔야 합니다.


댓글 없음:

댓글 쓰기