
# CVE-2026-31431(Copy Fail) Linux 커널 LPE 대응을 위한 방어적 IR 플레이북 및 탐지 패키지로, Sigma, auditd, Falco, Wazuh, YARA, eBPF 및 SIEM 헌트 쿼리를 포함합니다.
CVE-2026-31431 — Linux 커널 algif_aead 암호화 인터페이스의 로컬 권한 상승 취약점에 대한 프로덕션 준비 완료 IR 플레이북, 탐지 규칙 및 SOC 트리아지 가이드입니다. 대화형 HTML 플레이북, Sigma 규칙, auditd 구성, Falco 컨테이너 규칙, Wazuh 상관 관계 규칙, YARA 시그니처, eBPF 실시간 모니터 및 Splunk, Sentinel KQL, Elastic EQL, QRadar AQL 전반의 SIEM 헌트 쿼리를 포함합니다.
익스플로잇 코드 없음 — SOC 분석가 및 탐지 엔지니어를 위한 순수 방어 콘텐츠입니다.
작성자: Ashok Reddy
널리 권장되는 modprobe 블랙리스트는 RHEL, CentOS, AlmaLinux, Rocky Linux 또는 CloudLinux에서 작동하지 않습니다. algif_aead 모듈은 커널에 직접 컴파일되어 있습니다(CONFIG_CRYPTO_USER_API_AEAD=y). 명령은 오류 없이 실행되지만 시스템은 완전히 보호되지 않은 상태로 남습니다.
RHEL 계열의 올바른 완화 방법:
grubby --update-kernel=ALL --args="initcall_blacklist=algif_aead_init"
reboot
# 확인:
cat /proc/cmdline | grep initcall_blacklist
플랫폼별 스크립트는 mitigate/를 참조하세요.
| 필드 | 세부 정보 |
|---|---|
| CVE | CVE-2026-31431 |
| 별칭 | Copy Fail |
| 구성 요소 | Linux 커널 algif_aead (AF_ALG 암호화 인터페이스) |
| 유형 | 로컬 권한 상승 (LPE) |
| CVSS | 7.8 (HIGH) |
| 프리미티브 | 읽기 가능한 파일의 페이지 캐시에 대한 결정적 4바이트 쓰기 |
| 익스플로잇 크기 | 732바이트 Python (표준 라이브러리만, Python 3.10+) |
| 신뢰성 | 100% — 경쟁 조건 없음, 재시도 없음 |
| 디스크 쓰기 | 0 — 페이지 캐시 전용, FIM 도구에 보이지 않음 |
| 범위 | 2017년 이후의 모든 주요 Linux 배포판 (커널 4.13–6.18) |
| 컨테이너 위험 | 호스트 커널이 패치되지 않은 경우 컨테이너 탈출 프리미티브 (T1611) |
| PoC 상태 | 2026년 4월 29일부터 공개 |
| 패치 | 커밋 a664bf3d603d — 인플레이스 AEAD 작업 되돌림 |
| 발견자 | Taeyang Lee (Theori) · 익스플로잇 체인 by Xint Code (AI 지원) |
├── README.md # 이 파일
├── LICENSE # MIT 라이선스
├── playbook/
│ ├── index.html # 대화형 IR 플레이북 (13개 탭)
│ └── triage_playbook.md # SOC 분석가 트리아지 가이드
├── sigma/
│ ├── afalg_socket_creation.yml # 비루트 사용자의 AF_ALG 소켓
│ ├── afalg_bind_aead_string.yml # authencesn 알고리즘 문자열
│ └── afalg_splice_chain.yml # 동작 체인 규칙
├── auditd/
│ └── cve-2026-31431.rules # 전체 auditd 규칙 세트
├── falco/
│ └── afalg_container.yml # 컨테이너 AF_ALG 탐지
├── wazuh/
│ └── cve-2026-31431.xml # Wazuh 상관 관계 규칙
├── yara/
│ └── copyfail_artifacts.yar # PoC 파일 아티팩트 탐지
├── ebpf/
│ └── copyfail_monitor.bt # bpftrace 실시간 모니터
├── queries/
│ ├── splunk.spl # Splunk SPL 헌트 쿼리
│ ├── defender_sentinel.kql # Sentinel/MDE KQL 쿼리
│ ├── elastic.eql # Elastic EQL 시퀀스
│ └── qradar.aql # QRadar AQL 쿼리
├── mitigate/
│ ├── mitigate_debian.sh # Debian/Ubuntu 완화
│ └── mitigate_rhel.sh # RHEL 계열 (grubby 방식)
└── check/
└── is_vulnerable.sh # 안전한 취약점 확인
playbook/index.html은 13개 탭이 있는 완전한 대화형 플레이북입니다:
| 탭 | 콘텐츠 |
|---|---|
| 개요 | 공격 그래프, 익스플로잇 체인, 통계 |
| 1–6단계 | 체크리스트가 포함된 전체 IR 수명 주기 |
| 인텔 피드 | SOC 탐지 방법론, VAPT vs SOC, 커뮤니티 도구, 패치 상태 |
| IOCs | 시스템 콜, 프로세스, 파일 시스템, 동작 지표 |
| MITRE ATT&CK | 탐지 신호가 포함된 기술 매핑 |
| 탐지 사용 사례 | 8가지 TTP 기반 사용 사례 (UC-CF-001 ~ UC-CF-008) |
| SIEM 헌팅 | 모든 플랫폼에 걸친 18개 쿼리 |
| AI 탐지 | UEBA/ML 기능 및 한계 |
라이브: https://ashok523.github.io/cve-2026-31431/
| 단계 | 탐지 | 도구 |
|---|---|---|
| 비루트 사용자의 AF_ALG 소켓 | Sigma · auditd · Falco · eBPF | 기본 신호 |
| splice() 체인 (동일 PID, 10초) | auditd · eBPF | 거의 0에 가까운 오탐 |
| authencesn AEAD 문자열 | Sigma · auditd | 관찰 시 중요 |
| 인증 없이 uid→euid=0 | auditd · Splunk · KQL | LPE 확인 |
| 사용자 이름 없는 su | auth.log (Wiz 신호) | 사후 익스플로잇 |
| 파일 시스템의 PoC | YARA | 스테이징 탐지 |
| 컨테이너 탈출 | K8s 컨텍스트가 있는 Falco | T1611 |
| 루트 이후 지속성 | auditd FIM · Wazuh | SSH 키, SUID, cron |
| 접근 방식 | 볼륨 | 신뢰도 |
|---|---|---|
| ❌ 모든 splice()에 알림 | ~10,000/시간 | 매우 낮음 |
| ⚠️ socket(AF_ALG) 단독 알림 | ~5–50/일 | 중간 |
| ✅ AF_ALG + splice 동일 PID/10초 | ~0–2/일 | 매우 높음 |
| ✅ AF_ALG + splice + su / 60초 | ~0/일 | 중요 |
# 1. 취약한지 확인
sudo bash check/is_vulnerable.sh
# 2. 완화 적용
sudo bash mitigate/mitigate_rhel.sh # RHEL 계열
sudo bash mitigate/mitigate_debian.sh # Debian/Ubuntu
# 3. auditd 규칙 배포
sudo cp auditd/cve-2026-31431.rules /etc/audit/rules.d/
sudo augenrules --load
# 4. Wazuh 규칙 배포
sudo cp wazuh/cve-2026-31431.xml /var/ossec/etc/rules/local_rules.xml
sudo systemctl restart wazuh-manager
# 5. Falco 규칙 배포 (Kubernetes)
sudo cp falco/afalg_container.yml /etc/falco/rules.d/
sudo systemctl restart falco
# 6. eBPF 모니터 실행 (실시간)
sudo bpftrace ebpf/copyfail_monitor.bt
# 7. PoC 파일 스캔
yara yara/copyfail_artifacts.yar /tmp/ /dev/shm/ /var/tmp/
| 배포판 | 상태 | 명령 |
|---|---|---|
| Ubuntu | ✅ 패치됨 | apt update && apt install linux-image-generic |
| AlmaLinux | ✅ 패치됨 | dnf clean metadata && dnf upgrade |
| CloudLinux | ✅ 패치됨 + 라이브패치 | kcarectl --update |
| Debian | ✅ 추적 중 | apt update && apt upgrade |
| 메인라인 | ✅ 7.0-rc7에서 수정됨 | 커밋 a664bf3d603d |
| RHEL | ⏳ 대기 중 | 에라타 아직 미공개 |
| Amazon Linux | 🔄 추적 중 | yum update kernel |
이 저장소에는 방어적 탐지 콘텐츠만 포함되어 있습니다. 익스플로잇 코드, 개념 증명 스크립트, 시스템 콜 오프셋 또는 셸코드는 포함되어 있지 않으며 추가되지 않을 것입니다.