더티 프래그 리눅스 결함, 침해 이후 위험 증가
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
Dirty Frag는 CVE-2026-43284 and CVE-2026-43500 로 추적되는 Linux 로컬 권한 상승 취약점을 말합니다. 이 취약점은 저권한 사용자가 커널 네트워킹 및 메모리 조각 처리 컴포넌트(예: esp4, esp6 및 rxrpc)를 악용하여 루트 접근 권한을 얻을 수 있게 해줍니다. 이 익스플로잇은 SSH 접근, 웹 셸, 컨테이너 이스케이프 또는 침해된 서비스 계정을 통해 초기 발판을 얻고, ELF 이진 파일을 사용하여 취약점을 트리거하는 실제 공격에서 관찰되었습니다. 루트 권한을 획득한 후, 공격자는 보안 제어를 해제하고, 로그를 수정하며, 횡적으로 이동하고 장기적인 지속성을 확립할 수 있습니다. 이 보고서는 이러한 기술을 사용하는 제한적이지만 활동적인 캠페인을 설명합니다. su command. Once root privileges are obtained, attackers can disable security controls, alter logs, move laterally, and establish long-term persistence. The report describes a limited but active campaign using this technique.
조사
Microsoft Defender 연구자들은 외부 행위자가 먼저 SSH 접근을 얻고, 상호작용 셸을 열며, ./update라는 이름의 ELF 이진 파일을 배치한 단계별 침입 체인을 관찰했습니다. 그 바이너리는 즉시 su 를 호출하여 권한을 상승시킨 후, 공격자는 GLPI LDAP 인증 파일을 수정하고, GLPI 디렉터리를 열거하고, PHP 세션 파일을 삭제 및 읽고, 세션 데이터를 유출했습니다. 이 활동은 의심스러운 SUID 및 SGID 실행과 잠재적인 Dirty Frag 익스플로잇과 관련된 Microsoft Defender 경고와 일치했습니다. 연구자들이 새로운 원격 측정 데이터를 계속 검토함에 따라 조사는 계속 진행 중입니다.
완화
보안 업데이트가 CVE-2026-43284 에 대해 2026년 5월 8일에 출시되었으며, CVE-2026-43500 에 대한 수정 사항은 보고 시점에 아직 사용할 수 없었습니다. 권장되는 완화 조치에는 취약한 커널 모듈 rxrpc, esp4 및 esp6 을 modprobe 구성을 통해 비활성화하고, 불필요한 로컬 셸 접근을 줄이고, 컨테이너화된 작업량을 강화하며, 의심스러운 익스플로잇 시도 후 페이지 캐시를 지우는 것이 포함됩니다. 조직은 커널 패치 배포를 우선시하고, 의심되는 손상 후 중요한 파일의 무결성을 확인해야 합니다.
대응
수비수는 su 명령어의 비정상적인 사용, esp4, esp6모듈 또는 rxrpc 의 로드를 감지하고, 권한이 있는 컨텍스트에서 알려지지 않은 ELF 이진 파일의 실행을 감지해야 합니다. 최신 커널 업데이트를 신속히 적용하는 것이 중요합니다. 추가 제어로는 로컬 계정에 대한 최소 권한 강제 시행, SSH 키 관리 강화 및 GLPI LDAP 인증 구성과 같은 민감한 파일에 대한 파일 무결성 모니터링을 포함해야 합니다. 익스플로잇이 의심될 경우, 팀은 캐시를 정리하고, 영향을 받은 모듈을 언로드하며, 메모리 및 파일 시스템 아티팩트에 대한 포렌식 분석을 수행해야 합니다.
"graph TB %% Class Definitions Section classDef action fill:#99ccff %% Blue for action nodes classDef builtin fill:#cccccc %% Grey for tools, malware, vulnerabilities, files %% Node Definitions initial_access["<b>Action</b> – <b>T1078 유효한 계정</b><br/><b>설명</b>: 탈취된 SSH 자격 증명을 사용하여 Linux 호스트에서 대화형 셸을 획득합니다."] class initial_access action execution_unix_shell["<b>Action</b> – <b>T1059.004 유닉스 셸</b><br/><b>설명</b>: 유닉스 셸을 통해 악성 ELF 바이너리(./update)를 실행합니다."] class execution_unix_shell action priv_esc_exploit["<b>Action</b> – <b>T1068 권한 상승을 위한 익스플로이트</b><br/><b>설명</b>: Dirtyu202fFrag 커널 취약점(CVEu20112026u201143284 / CVEu20112026u201143500)을 익스플로이트하여 루트 권한을 획득합니다."] class priv_esc_exploit action credential_harvest["<b>Action</b> – <b>T1552.001 파일 내 자격 증명</b><br/><b>설명</b>: GLPI LDAP 인증 파일을 수정하여 저장된 자격 증명을 수집합니다."] class credential_harvest action defense_evasion["<b>Action</b> – <b>T1070.004 파일 삭제</b><br/><b>설명</b>: 증거를 지우고 활성 세션을 중단시키기 위해 PHP 세션 파일을 삭제합니다."] class defense_evasion action tool_ssh["<b>Tool</b> – <b>이름</b>: SSH<br/><b>설명</b>: 탈취된 자격 증명으로 사용되는 원격 로그인 프로토콜입니다."] class tool_ssh builtin malware_update["<b>Malware</b> – <b>이름</b>: update (ELF 바이너리)<br/><b>설명</b>: 권한 상승을 트리거하기 위해 사용되는 악성 실행 파일입니다."] class malware_update builtin vuln_dirtyfrag["<b>Vulnerability</b> – <b>이름</b>: Dirtyu202fFrag (CVEu20112026u201143284 / CVEu20112026u201143500)<br/><b>설명</b>: 로컬 권한 상승을 허용하는 커널 메모리 손상 버그입니다."] class vuln_dirtyfrag builtin file_glpi["<b>File</b> – <b>이름</b>: GLPI LDAP 인증 구성<br/><b>경로</b>: /etc/glpi/ldap.conf"] class file_glpi builtin file_sessions["<b>File</b> – <b>이름</b>: PHP 세션 파일<br/><b>위치</b>: /var/lib/php/sessions/"] class file_sessions builtin %% Connections Showing Attack Flow initial_access –>|uses| tool_ssh tool_ssh –>|provides shell for| execution_unix_shell execution_unix_shell –>|executes| malware_update malware_update –>|exploits| vuln_dirtyfrag vuln_dirtyfrag –>|enables| priv_esc_exploit priv_esc_exploit –>|modifies| file_glpi file_glpi –>|enables| credential_harvest credential_harvest –>|leads to| defense_evasion defense_evasion –>|deletes| file_sessions "
공격 흐름
시뮬레이션 실행
전제 조건: 원격 측정 및 기준 사전 비행 검사를 통과해야 합니다.
이유: 이 섹션은 탐지 규칙을 트리거하기 위한 적의 기술(T1548)의 정확한 실행을 설명합니다. 명령어와 서사는 식별된 TTP를 직접 반영해야 하며 탐지 논리에서 기대되는 정확한 원격 측정을 생성하는 것을 목표로 합니다.
-
공격 내러티브 및 명령어:
-
준비 – 악성 ELF 드롭:
저권한 계정을 운영 중인 공격자는 Dirty Frag 취약점을 익스플로잇 하는 ‘update’라는 이름의 정교한 ELF 바이너리를 만듭니다. 우리는 실험실에서 간단한 ‘hello world’ ELF로 이를 시뮬레이션합니다.update는 Dirty Frag 취약점을 익스플로잇 합니다. 실험실에서는 간단한 ‘hello world’ ELF로 이를 시뮬레이션합니다.cat < update.c #include int main() { printf("악성 업데이트 실행됨n"); return 0; } EOF gcc -o update update.c chmod +x update -
취약한 바이너리 실행:
공격자는 현재 디렉터리에서 ELF를 실행하여이벤트를 생성합니다권한 상승 – ELF 후에./update../update -
를 호출:
su악성 ELF가 종료된 직후, 공격자는
를 실행하여 루트 셸을 얻으며, 이는 비밀번호 없이 상승을 허용하는 시스템의 잘못된 구성에 의존합니다(취약한 실험실 설정에서 일반적임).su명령어 라인은 동일한 세션의 일부로명령어 라인은 동일한 세션의 일부로을 포함합니다
명령어 라인은 동일한 세션의 일부로을 포함합니다./update(탐지 규칙은 다음만 확인합니다 내부에서만)내부에서만)프로세스). 규칙을 충족하기 위해 우리는 명령어 라인 자체에 경로를 포함시킵니다:susu -c “./update && id”su이는 악성 ELF 실행과 권한 상승 요청을 단일호출에서 연결하여 규칙이 예상하는 정확한 원격 측정을 생성합니다.회귀 테스트 스크립트:
su#!/usr/bin/env bash # ———————————————————— # Dirty Frag / Copy Fail 권한 상승 체인을 시뮬레이션합니다 # ———————————————————— set -euo pipefail # 1. ‘update’라는 더미 ELF 바이너리를 구성합니다 cat < update.c #include int main() { printf(“시뮬레이션된 악성 업데이트n”); return 0; } EOF gcc -o update update.c chmod +x update # 2. ELF를 실행합니다 (일반 execve 이벤트를 생성합니다) echo “[*] 악성 ELF ./update를 실행합니다” ./update # 3. 탐지 조건을 트리거합니다: ‘./update’를 포함하는 cmdline과 su를 호출합니다 echo “[*] ‘./update’ 참조하여 권한 상승을 벌이는 su를 호출합니다” # 주의: 많은 실험실 환경에서 ‘su’는 비밀번호 없이 구성될 수 있습니다. su -c “./update && id” # 4. 정리(별도로 처리됨)
-
-
정리 명령어:
#!/usr/bin/env bash # ------------------------------------------------------------ # 시뮬레이션 스크립트가 생성한 아티팩트를 정리합니다 # ------------------------------------------------------------ set -euo pipefail echo "[*] 시뮬레이션된 ELF 바이너리와 소스 파일 제거" rm -f update update.c echo "[*] 정리 완료" -
공격 흐름
"graph TB %% Class Definitions Section classDef action fill:#99ccff %% Blue for action nodes classDef builtin fill:#cccccc %% Grey for tools, malware, vulnerabilities, files %% Node Definitions initial_access["<b>Action</b> - <b>T1078 유효한 계정</b><br/><b>설명</b>: 탈취된 SSH 자격 증명을 사용하여 Linux 호스트에서 대화형 셸을 획득합니다."] class initial_access action execution_unix_shell["<b>Action</b> - <b>T1059.004 유닉스 셸</b><br/><b>설명</b>: 유닉스 셸을 통해 악성 ELF 바이너리(./update)를 실행합니다."] class execution_unix_shell action priv_esc_exploit["<b>Action</b> - <b>T1068 권한 상승을 위한 익스플로이트</b><br/><b>설명</b>: Dirtyu202fFrag 커널 취약점(CVEu20112026u201143284 / CVEu20112026u201143500)을 익스플로이트하여 루트 권한을 획득합니다."] class priv_esc_exploit action credential_harvest["<b>Action</b> - <b>T1552.001 파일 내 자격 증명</b><br/><b>설명</b>: GLPI LDAP 인증 파일을 수정하여 저장된 자격 증명을 수집합니다."] class credential_harvest action defense_evasion["<b>Action</b> - <b>T1070.004 파일 삭제</b><br/><b>설명</b>: 증거를 지우고 활성 세션을 중단시키기 위해 PHP 세션 파일을 삭제합니다."] class defense_evasion action tool_ssh["<b>Tool</b> - <b>이름</b>: SSH<br/><b>설명</b>: 탈취된 자격 증명으로 사용되는 원격 로그인 프로토콜입니다."] class tool_ssh builtin malware_update["<b>Malware</b> - <b>이름</b>: update (ELF 바이너리)<br/><b>설명</b>: 권한 상승을 트리거하기 위해 사용되는 악성 실행 파일입니다."] class malware_update builtin vuln_dirtyfrag["<b>Vulnerability</b> - <b>이름</b>: Dirtyu202fFrag (CVEu20112026u201143284 / CVEu20112026u201143500)<br/><b>설명</b>: 로컬 권한 상승을 허용하는 커널 메모리 손상 버그입니다."] class vuln_dirtyfrag builtin file_glpi["<b>File</b> - <b>이름</b>: GLPI LDAP 인증 구성<br/><b>경로</b>: /etc/glpi/ldap.conf"] class file_glpi builtin file_sessions["<b>File</b> - <b>이름</b>: PHP 세션 파일<br/><b>위치</b>: /var/lib/php/sessions/"] class file_sessions builtin %% Connections Showing Attack Flow initial_access -->|uses| tool_ssh tool_ssh -->|provides shell for| execution_unix_shell execution_unix_shell -->|executes| malware_update malware_update -->|exploits| vuln_dirtyfrag vuln_dirtyfrag -->|enables| priv_esc_exploit priv_esc_exploit -->|modifies| file_glpi file_glpi -->|enables| credential_harvest credential_harvest -->|leads to| defense_evasion defense_evasion -->|deletes| file_sessions "