---
title: "Sumo Logic으로 PHP2Shell 관련 활동을 조사하는 방법"
page_name: "Sumo Logic으로 PHP2Shell 관련 활동을 조사하는 방법"
type: "blog"
slug: "investigate-php2shell-activity"
published_at: "2026-10-23"
modified_at: "2026-10-30"
url: "https://www.sumologic.com/ko/blog/investigate-php2shell-activity"
canonical: "https://www.sumologic.com/ko/blog/investigate-php2shell-activity"
markdown_url: "https://www.sumologic.com/ko/blog/investigate-php2shell-activity.md"
lang: "ko"
excerpt: "PHP2Shell(CVE-2026-109618 및 CVE-2026-109619)과 관련된 활동을 식별하고 Sumo Logic으로 대응하는 방법을 알아보세요."
taxonomy_blog_category:
  - "SecOps 및 보안"
  - "SIEM"
---

[ 모든 블로그 ](https://www.sumologic.com/ko/blog "블로그")[SecOps 및 보안](https://www.sumologic.com/ko/blog/secops-security), [SIEM](https://www.sumologic.com/ko/blog/cloud-siem)

# Sumo Logic으로 PHP2Shell 관련 활동을 조사하는 방법

[Paul Sheck](#blog-author-block-345)[Daniel Kaiser](#blog-author-block-332)

October 23, 2026

7 min read 

[SecOps 및 보안](https://www.sumologic.com/ko/blog/secops-security), [SIEM](https://www.sumologic.com/ko/blog/cloud-siem)

##### 목차

 

 

 

**PHP**(PHP: Hypertext Preprocessor의 재귀 약자)는 주로 웹 개발에 사용되는 무료 오픈소스 서버 측 스크립팅 언어입니다. 웹 기술 추적 기관인 W3Techs에 따르면, [PHP는 프로그래밍 언어를 식별할 수 있는 모든 웹사이트의 약 70%에서 실행되는 것으로 알려져 있습니다](https://www.reuters.com/technology/what-is-php-why-did-it-take-government-websites-offline-2026-10-21/).

**PHP2Shell**은 PHP 인터프리터 자체의 두 가지 중대한 결함으로, 각각 CVSS v4.0 점수가 9.2입니다. 두 결함 모두 인증되지 않은 공격자가 애플리케이션 코드가 실행되기 전에 단일 또는 쌍의 웹 요청으로 웹 서버에서 코드를 실행할 수 있게 합니다.

- CVE-2026-109618은 PHP의 메모리 부족 처리를 악용합니다.
- CVE-2026-109619는 동일한 워커에서 이전의 실패한 요청으로부터 남겨진 상태를 악용합니다.

버그가 WordPress, Drupal 또는 Magento가 아닌 PHP 자체에 있기 때문에, 영향을 받는 서버의 모든 도달 가능한 PHP 엔드포인트(로그인 페이지, 정적 양식 및 상태 확인 포함)가 노출됩니다.

지난 10년간의 모든 PHP 릴리스가 영향을 받습니다(5.4까지 거슬러 올라갑니다). 수정된 버전은 8.5.12, 8.4.27, 8.3.36, 8.2.35입니다. PHP 8.1 이상은 최소한의 소스 백포트만 제공됩니다.

## PHP2Shell 공개 타임라인

두 가지 중대한 PHP 취약점인 CVE-2026-109618과 CVE-2026-109619는 비공개 연구에서 활발한 악용까지 며칠 만에 진행되었습니다. 다음은 사건의 타임라인입니다.

- **2026년 8월:** Calif는 LLM 지원 감사 중에 첫 번째 원격 코드 실행(RCE) 경로를 발견하고 PHP에 보고합니다. Wiz는 독립적으로 결함을 발견하고 PHP에 보고합니다.
- **2026년 10월 초:** Cloudflare는 웹 애플리케이션 방화벽(WAF) 보호 구축을 시작합니다.
- **2026년 10월 17일:** AWS는 계획된 조정된 공개 4일 전 Amazon MadPot에 대한 첫 번째 알려진 악용 시도를 보고합니다.
- **2026년 10월 20일:** PHP의 두 가지 중대한 원격 코드 취약점인 CVE-2026-109618과 CVE-2026-109619의 세부 정보가 PHP 재단에서 계획한 2026년 10월 22일 조정된 공개 전에 유출되었습니다.
- **2026년 10월 21일:** PHP 재단은 취약점을 조기에 공식 공개하고 모든 사용자에게 업데이트를 권고합니다. 영향을 받는 소프트웨어 버전에 대한 긴급 업데이트는 같은 날 나중에 배포됩니다.
- **2026년 10월 21일 이후:** 연구원들이 광범위한 악용 시도를 보고합니다.

## 환경에서 PHP2Shell 활동을 검색하는 방법은?

Sumo Logic을 사용하여 PHP2Shell 활동을 검색해 보겠습니다. 각 활동 유형에 대해 두 가지 검색을 찾을 수 있습니다. 하나는 다양한 유형의 원본 로그에 대한 검색이고, 다른 하나는 [정규화된 레코드](https://www.sumologic.com/help/docs/cse/schema/record-processing-pipeline/)에 대한 검색입니다. [Sumo Logic Cloud SIEM](http://www.sumologic.com/ko/solutions/siem)을 사용하는 고객의 경우입니다.

시작하기 전에 두 가지 참고 사항이 있습니다.

- **원본 로그 검색은 조정이 필요합니다.** 원본 로그 검색 예제에는 Apache 액세스 로그와 같은 로그 소스 유형에 특정한 구문 분석 작업이 포함됩니다. 또한 로그 소스를 온보딩할 때 할당하는 로그 분류(예: `_sourceCategory=linux/system webserver`)로 범위를 지정합니다. 여기에 포함된 원본 로그 검색 예제를 사용하려면 환경에 맞게 사용자 정의해야 할 가능성이 높습니다.
- **레코드 검색은 작성된 그대로 작동합니다.** Sumo Logic Cloud SIEM [정규화된 스키마](https://www.sumologic.com/help/docs/cse/schema/)를 기반으로 하므로 수정 없이 사용할 수 있습니다.

이러한 검색은 초기 악용 후 웹 서버의 동작을 찾습니다. 악용 페이로드를 포함할 수 있는 HTTP 트랜잭션을 검색하지 않습니다. 많은 경우 웹 애플리케이션 방화벽과 같은 보안 제품이 인터넷에 노출된 웹 서버 “앞에” 있으며, 이러한 제품은 HTTP 분석을 사용한 웹 서버 악용 주변에 자체 탐지 세트를 갖게 됩니다. 이러한 제품의 텔레메트리는 상관관계, 경고 및 추가 분석을 위해 Sumo Logic으로 수집되어야 합니다.

이 블로그의 탐지 엔지니어링 초점은 초기 악용 및 성공적인 공격으로부터의 후속 활동과 관련된 웹 서버의 동작 관찰에 있습니다. 이러한 관찰은 다른 보안 제품의 텔레메트리와 상관관계를 지을 수 있습니다.

### 웹 서버 오류의 급증을 찾으세요

PHP2Shell 취약점은 PHP 오류 처리의 결함에서 비롯되므로 악용 시도는 웹 서버의 오류로 표시됩니다. Sumo Logic의 [timeslice 검색 연산자](https://www.sumologic.com/help/docs/search/search-query-language/search-operators/timeslice/)를 사용하면 웹 서버의 오류 활동에 급증이 있었는지 쉽게 평가할 수 있습니다.

아래 예제에서는 시간당 서버 측 오류(500-599 범위의 HTTP 응답 코드를 생성하는 오류) 수를 계산합니다. 결과에서 급증을 시각적으로 스캔할 수 있습니다.

##### **예제 1: (Syslog 래핑된) Apache 액세스 로그**

```
(_sourceCategory=linux/system webserver_system=apache webserver_farm=* OR _sourceCategory=linux/syslog) httpd-access HTTP (50* OR 51* OR 52* OR 53* OR 54* OR 55* OR 59*)
| parse "httpd-access: *" as mesg nodrop
| parse regex field=mesg "^(?<src_ip>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+(?<vhost>\S+)" nodrop
| parse regex field=mesg "\"(?<method>[A-Z]+)\s(?<uri>\S+)\sHTTP\/[\d\.]+\"\s(?<status_code>\d+)\s(?<size>[\d-]+)" nodrop
| where !isNull(status_code) and status_code >= 500 and status_code <= 599
| timeslice 1h
| count by _timeslice, _sourceHost
| sort by _timeslice, _count desc
```

##### 예제 2: Sumo Logic Cloud SIEM 레코드

아래 쿼리는 배포에서 web\_servers 또는 http\_servers [표준 일치 목록](https://www.sumologic.com/help/docs/cse/match-lists-suppressed-lists/standard-match-lists/#standard-match-lists)이 생성되고 채워져 있는지 여부에 따라 달라집니다.

```
_index=sec_record*
| where http_response_statusCode >= 500 and http_response_statusCode <= 599 
| where jsonArrayContains(listMatches, "web_servers") or jsonArrayContains(listMatches, "http_servers")
| timeslice 1h
| count by _timeslice, dstDevice_ip
| sort by _timeslice, _count desc
```

*그림 1: 웹 서버 오류 활동 급증*

### 웹 서버 프로세스가 셸을 생성하는 경우 식별

공격자가 PHP2Shell을 성공적으로 악용하면 웹 서버 또는 PHP 프로세스의 자식 프로세스를 통해 악성 코드를 실행할 수 있습니다. 아래 쿼리는 Windows 및 Linux 환경 모두에서 전체 OS 셸을 시작하는 일반적인 웹 서버 프로세스를 식별합니다.

##### 예제 1: Windows 프로세스 로그

```
_sourceCategory ="windows/eventlogs"
| parse "<EventID>*</EventID>" as eventId
| where eventId = "4688"
| parse "<Data Name='ParentProcessName'>*</Data>" as parentBaseImage nodrop
| parse "<Data Name='NewProcessName'>*</Data>" as baseImage nodrop
| parse "<Data Name='CommandLine'>*</Data>" as commandLine nodrop
| parse "<Data Name='SubjectUserName'>*</Data>" as user_username nodrop
| parse "<Data Name='SubjectDomainName'>*</Data>" as user_domain nodrop
| parse regex "<Computer>(?<device_hostname>[^<]+)</Computer>" nodrop
| where parentBaseImage matches /(?i).*(w3wp\.exe|httpd\.exe|nginx\.exe|php-cgi\.exe|tomcat\.exe)$/
| where baseImage matches /(?i).*(cmd\.exe|powershell\.exe|bitsadmin\.exe|pwsh\.exe|powershell_ise\.exe)$/
| fields device_hostname, user_domain, user_username, parentBaseImage, baseImage, commandLine
```

##### 예제 2: Sumo Logic Cloud SIEM 레코드

```
_index=sec_record*
| where parentBaseImage matches /(?i).*(w3wp\.exe|httpd\.exe|nginx\.exe|php-cgi\.exe|tomcat\.exe|\/httpd|\/nginx|\/php-cgi|\/tomcat|\/apache2|\/apache)$/
| where baseImage matches /(?i).*(cmd\.exe|sh\.exe|bash\.exe|powershell\.exe|bitsadmin\.exe|pwsh\.exe|powershell_ise\.exe|\/bash|\/sh|\/dash|\/zsh|\/ksh|\/csh|\/python3?|\/perl)$/
| fields device_hostname, device_ip, user_username, parentBaseImage, baseImage, commandLine
```

*그림 2: nginx에서 시작된 셸 찾기*

### 웹 서버 프로세스가 일반적인 웹 셸 명령을 실행하는 경우 찾기

웹 서버는 전체 OS 셸을 통하지 않고 셸 명령을 직접 실행할 수도 있습니다. 아래 쿼리는 웹 서버 프로세스의 자식 프로세스로 실행되는 일반적인 검색, 자격 증명 수집 및 유출 명령을 식별합니다.

##### **예제 1: Windows 프로세스 로그**

```
_sourceCategory ="windows/eventlogs"
| parse "<EventID>*</EventID>" as eventId
| where eventId = "4688"
| parse "<Data Name='ParentProcessName'>*</Data>" as parentBaseImage nodrop
| parse "<Data Name='NewProcessName'>*</Data>" as baseImage nodrop
| parse "<Data Name='CommandLine'>*</Data>" as commandLine nodrop
| parse "<Data Name='SubjectUserName'>*</Data>" as user_username nodrop
| parse "<Data Name='SubjectDomainName'>*</Data>" as user_domain nodrop
| parse regex "<Computer>(?<device_hostname>[^<]+)</Computer>" nodrop
| where parentBaseImage matches /(?i).*(w3wp\.exe|httpd\.exe|nginx\.exe|php-cgi\.exe|tomcat\.exe|apache).*/
| where commandLine matches /(?i).*(whoami|net user |ping |systeminfo |netstat |arp -a|ipconfig |ifconfig |curl |wget ).*/
| fields device_hostname, user_domain, user_username, parentBaseImage, baseImage, commandLine
```

##### 예제 2: Sumo Logic Cloud SIEM 레코드

```
_index=sec_record*
| where parentBaseImage matches /(?i).*(w3wp\.exe|httpd\.exe|nginx\.exe|php-cgi\.exe|tomcat\.exe|apache|\/httpd|\/nginx|\/php-cgi|\/tomcat|\/apache2).*/
| where commandLine matches /(?i).*(whoami|net user |ping |systeminfo |netstat |arp -a|ipconfig |ifconfig |curl |wget |id |uname |cat \/etc\/passwd|nc -).*/
| fields device_hostname, device_ip, user_username, parentBaseImage, commandLine
```

*그림 3: Internet Information Server의 자식 프로세스로 실행되는 원격 wget 명령*

## Sumo Logic Cloud SIEM 탐지

Sumo Logic Cloud SIEM에는 웹 셸 활동을 탐지하고 PHP2Shell에 의해 성공적으로 악용된 웹 서버를 식별하는 데 도움이 되는 여러 기본 제공 규칙이 있습니다. 규칙의 탐지 이론은 위에서 설명한 쿼리와 동일합니다. 즉, 웹 서버 프로세스의 비정상적인 자식 프로세스와 웹 서버의 오류율 급증입니다.

다음 탐지를 통해 잠재적 침해를 조사할 수 있습니다.

| Cloud SIEM 규칙 ID | 규칙 이름 |
|---|---|
| MATCH-S00164 | 웹 서버에서 생성된 의심스러운 셸 |
| MATCH-S00174 | 일반적인 웹 셸 명령을 실행하는 웹 서비스 |
| MATCH-S00539 | 의심스러운 프로세스를 실행하는 웹 서버\* |
| OUTLIER-S00036 (신규) | 소스 IP의 HTTP 서버 오류 급증 |
| OUTLIER-S00037 (신규) | 대상 IP의 HTTP 서버 오류 급증 |

앞서 언급했듯이 CHAIN 규칙을 생성하여 성공적인 PHP2Shell 악용에 대한 더 높은 충실도의 탐지를 구축할 수 있습니다. CHAIN 규칙은 엔티티에 대한 PHP2Shell의 엣지 디바이스 관찰(예: WAF 알림)을 위의 표에 있는 웹 셸 탐지 로직과 연관시킵니다.

이러한 규칙을 사용하려면 [표준 매치 리스트](https://www.sumologic.com/help/docs/cse/match-lists-suppressed-lists/standard-match-lists/#standard-match-lists)를 생성하고 채워야 합니다. MATCH-S00539는 “web\_servers” 매치 리스트를 사용하여 웹 서버의 프로세스 실행으로 탐지 범위를 제한합니다.

OUTLIER-S00036 및 OUTLIER-S00037은 서버 측 오류를 추적하기 위해 “web\_servers” 또는 “http\_servers” 매치 리스트가 필요합니다. [매치 리스트를 생성하고 채우는 방법](https://help.sumologic.com/docs/cse/match-lists-suppressed-lists/create-match-list/)을 알아보세요.

## PHP2Shell 수정 및 완화 권장 사항

PHP 그룹의 지침은 명확합니다. 지금 업데이트하세요.

“위험에 처한 대상: 웹 요청을 제공하는 모든 PHP 설치(PHP-FPM, mod\_php가 포함된 Apache, php-cgi, FrankenPHP 및 LiteSpeed 포함). 특히 mod\_php의 위험이 가장 높으며, 인증되지 않은 요청이 애플리케이션 코드가 실행되기 전에 공격을 트리거할 수 있는 악용이 입증되었습니다.” PHP 그룹의 전체 공지사항을 [여기](https://www.php.net/archive/2026.php#2026-10-21-5)에서 읽어보세요.

[커뮤니티 분석에 따르면 성공적인 악용으로 공격자는 웹 서버 사용자 컨텍스트에서 명령 실행 권한을 얻을 수 있습니다](https://www.crowdstrike.com/en-us/blog/crowdstrike-protects-customers-from-php-rce-zero-days/). 이를 통해 웹 셸을 배포하고, 구성 파일에서 API 및 데이터베이스 자격 증명을 수집하며, 내부 네트워크로 이동할 수 있습니다.

즉시 업데이트하는 것이 권장됩니다. 아직 업데이트할 수 없다면 위의 검색 및 탐지를 사용하여 영향을 받는 서버에서 성공적인 악용을 나타내는 악용 후 활동을 모니터링하세요.

아직 Cloud SIEM을 사용하지 않고 있으며 이러한 위협을 탐지하고 대응하는 데 어떻게 도움이 될 수 있는지 알고 싶다면 [데모를 예약하여 자세히 알아보세요](http://www.sumologic.com/ko/request-demo).

## 참고 자료 및 추가 리소스

#### NIST 취약점 정보

1. <https://nvd.nist.gov/vuln/detail/cve-2026-109618>
2. <https://nvd.nist.gov/vuln/detail/cve-2026-109619>

#### PHP의 지침

3. <https://www.php.net/archive/2026.php#2026-10-20-1>
4. <https://www.php.net/archive/2026.php#2026-10-21-5>

#### 사이버 보안 커뮤니티 리소스 및 보고서

5. <https://calif.io/php2shell/>
6. <https://www.wiz.io/blog/php2shell-php-rce>
7. <https://www.huntress.com/blog/php2shell-leaked-critical-php-vulnerabilities>
8. <https://www.crowdstrike.com/en-us/blog/crowdstrike-protects-customers-from-php-rce-zero-days/>
9. <https://thehackernews.com/2026/10/someone-tried-to-exploit-php2shell-4.html>
10. <https://openai.com/index/coordinated-disclosure-of-critical-vulnerabilities/>
11. <https://aws.amazon.com/blogs/security/amazon-threat-intelligence-identifies-php2shell-exploitation-prior-to-public-disclosure-in-madpot/>
12. <https://blog.checkpoint.com/security/php2shell-what-we-know-about-the-leaked-critical-php-vulnerabilities-cve-2026-109618-cve-2026-109619/>
13. <https://blog.cloudflare.com/php-vulnerabilities-waf-protection>
14. <https://research.jfrog.com/post/php2shell-all-you-need-to-know-about-cve-2026-109618-and-cve-2026-109619/>
15. <https://www.reuters.com/technology/what-is-php-why-did-it-take-government-websites-offline-2026-10-21/>

### 기사 태그

- [SecOps 및 보안](https://www.sumologic.com/ko/blog/secops-security)
- [SIEM](https://www.sumologic.com/ko/blog/cloud-siem)

Paul Sheck

Manager, Threat Labs

Paul Sheck loves patterns, games and process, and with 10+ years of security experience it’s a natural fit to apply these to security data within Sumo Logic’s Threat Labs team. When not working, Paul is either playing video games, doing photography, and/or enjoying time with his twin teenagers.

 

Daniel Kaiser

Senior Threat Research Engineer II

Dan has over a decade of experience in cybersecurity, focusing on threat research, detection engineering, SIEM troubleshooting and capture-the-flag challenge development. As a detection engineer, he has developed high-quality analytics content centered on User and Entity Behavior Analytics, Network Detection and Response and the MITRE ATT&amp;CK framework. Dan has published multiple blogs and delivered presentations for SANS, LogRhythm, Ultimate Windows Security and BrightTALK. Dan lives in Lakewood, Colorado, with his wife and dog. He enjoys running, snowboarding and cycling.

[](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.sumologic.com%2Fko%2Fblog%2Finvestigate-php2shell-activity "Share on Facebook")[](https://twitter.com/intent/tweet?text=Sumo%20Logic%EC%9C%BC%EB%A1%9C%20PHP2Shell%20%EA%B4%80%EB%A0%A8%20%ED%99%9C%EB%8F%99%EC%9D%84%20%EC%A1%B0%EC%82%AC%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95&url=https%3A%2F%2Fwww.sumologic.com%2Fko%2Fblog%2Finvestigate-php2shell-activity "Share on X")[](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.sumologic.com%2Fko%2Fblog%2Finvestigate-php2shell-activity "Share on LinkedIn")[](https://api.whatsapp.com/send?text=Sumo%20Logic%EC%9C%BC%EB%A1%9C%20PHP2Shell%20%EA%B4%80%EB%A0%A8%20%ED%99%9C%EB%8F%99%EC%9D%84%20%EC%A1%B0%EC%82%AC%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%20https%3A%2F%2Fwww.sumologic.com%2Fko%2Fblog%2Finvestigate-php2shell-activity "Share on WhatsApp")[](https://www.sumologic.com/feed?post_type=blog "RSS Feed")

[이전 블로그

근본 원인 에이전트: 옵저버빌리티에 에이전틱 접근 방식 도입](https://www.sumologic.com/ko/blog/root-cause-agent-agentic-approach-to-observability)

함께 추천하는 블로그

[  

근본 원인 에이전트: 옵저버빌리티에 에이전틱 접근 방식 도입

October 13, 2026

 

 ](https://www.sumologic.com/ko/blog/root-cause-agent-agentic-approach-to-observability)[  

DojoAI Credits 소개: 규모에 맞춘 유연하고 예측 가능한 AI 가격 책정

October 13, 2026

 

 ](https://www.sumologic.com/ko/blog/dojoai-credits-flexible-ai-pricing)[  

SaaS 보안을 위한 CASB와 SIEM 비교

September 30, 2026

 

 ](https://www.sumologic.com/ko/blog/casb-vs-siem-saas-security)[  

AI SOC 설명: 현대적 위협에 대응하는 지능형 보안

August 26, 2026

 ](https://www.sumologic.com/ko/blog/ai-soc-intelligent-security-for-modern-threats)

[AI Instructions](https://www.sumologic.com/ai-instructions.md)
