PHP2Shell 공격, 안랩 EDR/XDR로 어떻게 탐지할까?
PHP2Shell 취약점 재현 테스트로 원격 명령 실행 과정 확인…EDR/XDR 기반 이상 행위 탐지 및 대응 방안 소개
PHP의 중대 취약점인 CVE-2026-109618과 CVE-2026-109619는 인증되지 않은 공격자가 원격에서 임의의 코드를 실행할 수 있는 원격 코드 실행(RCE) 취약점이다. 이러한 취약점이 악용되면 공격자는 웹 서버에서 명령을 실행하고 추가적인 악성 행위를 수행할 수 있다.
안랩은 공개된 개념 증명(PoC) 코드를 참고해 PHP2Shell 취약점 재현 테스트를 진행했다. 그 결과 공격 대상 서버가 공격자의 시스템에 연결되고, 공격자가 서버의 웹 서비스 계정 권한으로 명령을 실행하는 과정을 확인했다.
또한 이번 분석을 바탕으로 AhnLab EDR/XDR을 활용해 PHP 서비스에서 발생하는 의심스러운 프로세스 실행과 파일 생성 등의 행위를 탐지하고 대응하는 방법을 소개했다.
1. PHP2Shell 취약점, 서로 다른 원인으로 발생하는 원격 코드 실행 위험
PHP2Shell로 알려진 CVE-2026-109618과 CVE-2026-109619는 PHP의 내부 요청 처리 과정에서 발생하는 취약점이다. 두 취약점 모두 인증 없이 원격 코드 실행으로 이어질 수 있지만, 발생 원인에는 차이가 있다.
| 구분 | CVE-2026-109618 | CVE-2026-109619 |
|---|---|---|
| 취약점 유형 | 메모리 부족 처리 과정의 데이터 손상 | 해제된 메모리와 관련된 내부 상태 재사용 |
| 주요 원인 | 요청 데이터가 완전히 초기화되지 않은 상태에서 메모리 부족으로 처리가 중단되고, 이후 정리 과정에서 잘못된 데이터를 유효한 것으로 처리할 가능성 | 요청 처리에 사용된 내부 상태가 메모리 해제 후에도 남아 후속 요청에서 초기화 전에 재사용될 가능성 |
| 잠재적 영향 | 인증 없는 원격 코드 실행 | 인증 없는 원격 코드 실행 |
| 심각도 | CVSS v4.0 9.2 | CVSS v4.0 9.2 |
[표 1] PHP2Shell 관련 취약점 비교
[그림 1] PHP2Shell 취약점 발생 과정
두 취약점은 내부 처리 과정에서 발생하는 문제라는 공통점이 있으며, 공격에 성공할 경우 PHP 웹 서비스가 실행되는 서버에서 임의의 명령이 실행될 수 있다.
따라서 취약점 자체에 대한 보안 조치와 함께 PHP 서비스에서 발생하는 비정상적인 행위를 확인하는 것이 중요하다.
2. PHP2Shell 재현 테스트, 웹 서버의 원격 명령 실행 확인
안랩은 공개된 PoC를 참고해 PHP2Shell 공격을 재현하고, 공격자 시스템과 피해 서버에서 발생하는 행위를 확인했다.
테스트는 공격자와 피해 서버의 IP 주소를 확인하는 단계에서 시작됐다. 이후 공격자가 PHP 웹사이트를 대상으로 테스트 스크립트를 실행하자, 피해 서버가 공격자 시스템으로 연결되는 현상이 나타났다.
공격자는 이 연결을 통해 자신의 시스템에서 피해 서버의 명령 셸을 사용할 수 있었다. 또한 실행된 명령이 웹 서비스 계정인 www-data 권한으로 동작하는 것을 확인했으며, 서버의 IP 주소를 조회해 실제 피해 서버에 접속했는지도 검증했다.
| 영상 구간 | 재현 테스트 내용 |
|---|---|
| 0~6초 | 공격자와 피해 서버의 IP 주소 확인 |
| 6~16초 | PHP 웹사이트를 대상으로 테스트 스크립트 실행 |
| 16~20초 | 피해 서버가 공격자 시스템에 연결되고 명령 셸 접근 가능 |
| 20~23초 | 명령이 웹 서비스 계정(www-data) 권한으로 실행됨을 확인 |
| 23~29초 | 피해 서버의 IP 주소를 확인해 실제 접속 여부 검증 |
[표 2] PHP2Shell 재현 테스트 주요 과정
이번 재현 테스트에서 주목할 부분은 웹 서버가 공격자 시스템에 연결되고, 웹 서비스 계정 권한으로 명령이 실행됐다는 점이다.
이는 취약점 악용이 단순한 웹 요청이나 오류 발생에 그치지 않고, 서버에서 공격자가 지정한 명령을 실행하는 결과로 이어질 수 있음을 보여준다.
프로세스 트리로 확인하는 공격 행위
안랩은 재현 테스트 과정에서 확인된 프로세스 트리도 공개했다.
프로세스 트리는 실행 중인 프로그램 간의 상위·하위 관계를 보여주는 정보다. 보안 관리자는 이를 통해 특정 명령이 어떤 프로세스에서 시작됐으며, 이후 어떤 프로그램이 실행됐는지 파악할 수 있다.
PHP2Shell과 같은 원격 코드 실행 공격에서는 PHP 서비스와 관련된 프로세스를 통해 비정상적인 명령이 실행될 수 있다. 따라서 웹 서비스의 프로세스 실행 관계는 공격 원인을 조사하는 데 중요한 분석 대상이다.
[그림 2] PHP2Shell 재현 테스트 시 프로세스 트리
관리자는 이와 같은 프로세스 실행 정보를 바탕으로 PHP 서비스에서 발생한 명령 실행이 정상적인 서비스 동작인지, 외부 공격과 관련된 행위인지 조사할 수 있다.
다만 특정 프로세스나 명령이 실행됐다는 사실만으로 공격 여부가 확정되는 것은 아니다. 관련 이벤트와 실행 관계를 함께 확인하는 과정이 필요하다.
3. AhnLab EDR/XDR을 활용한 공격 행위 탐지
PHP2Shell 취약점을 악용하는 공격자는 PHP 프로세스를 통해 악성 행위를 수행할 수 있다.
안랩은 이러한 공격 특성을 고려해 PHP 서비스에서 발생하는 의심스러운 명령 실행, 웹셸 생성·실행, 이상 파일 생성 및 권한 변경 등을 주요 모니터링 대상으로 제시했다.
AhnLab EDR/XDR은 이와 관련된 의심 행위를 위협 또는 주요 행위로 탐지해 보안 관리자가 원인을 파악하고 대응 및 재발 방지 절차를 수립할 수 있도록 지원한다.
AhnLab EDR: 엔드포인트 위협 탐지 및 대응
AhnLab EDR(Endpoint Detection and Response)은 서버와 PC 등 엔드포인트에서 발생하는 다양한 행위를 모니터링하고, 고도화된 위협을 탐지·분석·대응하는 솔루션이다.
안랩의 자체 행위 분석 엔진을 기반으로 의심스러운 프로세스 실행과 파일 활동 등을 탐지하며, 관련 행위의 연관 관계를 분석해 공격 원인을 파악할 수 있도록 지원한다. 또한 AI 기반 분석 기능인 AI Insight를 통해 위협의 맥락과 대응 방향을 제공한다.
PHP2Shell과 같은 공격에서는 PHP 서비스와 관련된 비정상적인 명령 실행이나 파일 생성 행위를 확인하고, 프로세스 실행 관계를 분석하는 데 활용할 수 있다.
AhnLab XDR: 다양한 보안 데이터의 연계 분석 및 대응
AhnLab XDR(Extended Detection and Response)은 엔드포인트를 비롯한 다양한 보안 영역에서 발생하는 데이터를 수집하고 연계 분석해 위협 탐지와 대응을 지원하는 솔루션이다.
이기종 보안 솔루션의 로그와 사용자·자산 정보를 연계 분석하고, 탐지된 위협의 위험도를 평가해 보안 관리자가 대응 우선순위를 판단할 수 있도록 지원한다. 또한 AhnLab EDR 및 AhnLab TIP 등과의 연계를 통해 위협 분석에 필요한 정보를 확보할 수 있다.
PHP2Shell과 같은 웹 서버 공격에서도 엔드포인트에서 확인된 의심 행위를 다른 보안 정보와 연계해 분석하고, 조직 내 위험을 파악하는 데 활용할 수 있다.
PHP2Shell 관련 주요 모니터링 항목
안랩은 이번 분석에서 다음과 같은 모니터링 항목을 제시했다.
- PHP 프로세스의 비정상 행위 탐지: PHP 서비스와 관련된 의심스러운 명령 실행 및 프로세스 활동 확인
- 웹셸 생성 및 실행 탐지: 웹 서버에서 의심스러운 파일이 생성되거나 실행되는 행위 확인
- 이상 파일 생성 및 권한 변경 모니터링: 공격 과정에서 발생할 수 있는 비정상적인 파일 활동 확인
EDR은 엔드포인트에서 발생하는 의심 행위와 실행 관계를 분석하는 데 초점을 맞추고, XDR은 다양한 보안 데이터를 연계해 위협의 맥락과 대응 우선순위를 파악하는 데 활용할 수 있다.
4. 안랩이 제시한 EDR/XDR 탐지명
안랩은 PHP2Shell 관련 의심 행위를 탐지하는 데 활용할 수 있는 AhnLab EDR/XDR 탐지명 7개를 공개했다.
| 탐지명 | 구분 |
|---|---|
| Suspicious/MDP.Behavior.M12823 | 의심 행위 |
| InitialAccess/EDR.Event.M13289 | 초기 접근 관련 이벤트 |
| InitialAccess/EDR.Event.M13291 | 초기 접근 관련 이벤트 |
| InitialAccess/EDR.Event.M13361 | 초기 접근 관련 이벤트 |
| InitialAccess/DETECT.Upload.M13367 | 업로드 관련 탐지 |
| InitialAccess/EDR.Upload.M13395 | 업로드 관련 탐지 |
| InitialAccess/DETECT.Event.M11450 | 초기 접근 관련 이벤트 |
[표 3] PHP2Shell 관련 AhnLab EDR/XDR 탐지명
보안 관리자는 이러한 탐지 정보를 활용해 PHP 서비스에서 발생한 의심스러운 명령 실행이나 파일 생성 등의 행위를 확인할 수 있다.
특히 PHP 서비스와 관련된 위협 이벤트가 발생한 경우, 관련 프로세스와 파일 활동을 함께 조사해 공격과의 연관성을 검토하는 것이 중요하다.
다만 개별 탐지명만으로 PHP2Shell 공격을 확정하거나 모든 공격 변형에 대한 탐지를 보장하는 것은 아니다.
5. PHP2Shell 대응, 보안 업데이트와 공격 행위 분석 병행
PHP2Shell 취약점 대응의 기본은 PHP 보안팀이 제공하는 수정 버전을 적용하는 것이다.
PHP 보안팀은 PHP 8.2부터 8.5까지 각 버전 계열에 대한 보안 업데이트를 배포했으며, 관련 사용자에게 신속한 업데이트를 권고했다.
| PHP 버전 계열 | 보안 업데이트 버전 |
|---|---|
| PHP 8.5 | 8.5.12 |
| PHP 8.4 | 8.4.27 |
| PHP 8.3 | 8.3.36 |
| PHP 8.2 | 8.2.35 |
[표 4] PHP2Shell 관련 보안 업데이트 버전
업데이트 이후에는 웹 서비스를 재시작해 변경 사항을 적용해야 한다. 즉시 업데이트가 어려운 환경에서는 PHP 보안팀이 제시한 공식 임시 조치를 검토할 수 있다.
그러나 취약점 수정과 별개로, 이미 공격이 발생했거나 공격 시도가 의심되는 환경에서는 관련 행위를 확인하는 과정도 필요하다.
이번 안랩의 재현 테스트에서는 공격 대상 서버가 공격자 시스템에 연결되고, 웹 서비스 계정 권한으로 명령이 실행되는 과정이 확인됐다.
AhnLab EDR/XDR은 PHP 서비스와 관련된 의심스러운 명령 실행, 웹셸 생성·실행, 비정상적인 파일 생성 및 권한 변경 등의 행위를 탐지해 보안 관리자의 원인 분석과 대응을 지원한다.
기업은 공식 보안 업데이트를 우선 적용하는 동시에 관련 탐지 이벤트를 점검하고, 의심스러운 행위가 확인된 경우 원인을 조사해 적절한 대응 및 재발 방지 절차를 수립해야 한다.
참고자료
- 안랩, 「PHP2Shell 취약점 재현 및 AhnLab EDR/XDR을 활용한 탐지」
https://asec.ahnlab.com/ko/95955/ - PHP 공식 보안 업데이트
https://www.php.net/archive/2026.php#2026-10-21-5
- AhnLab