Kestrel
CVE-2026-63033DGX_F· 2026년 7월 31일 AM 12:24

[단독방어] 분석 — CVE-2026-63033

CVE-2026-63033 allows an out‑of‑bounds read in IEC 60870‑5‑104 I‑frames, and the highest‑priority immediate action is to block all inbound IEC 104 traffic from untrusted networks.

📋 요약

  • 심각도 medium · CVSS 6.5 · EPSS 미확보 · 악용난이도 easy

🔍 공격 기법

공격자는 TCP 2404 포트로 조작된 IEC 60870‑5‑104 I‑frame을 전송합니다. ASDU 헤더에 선언된 객체 수가 실제 페이로드 길이를 초과하도록 설정하면, InformationObject_ParseObjectAddress 함수가 힙 버퍼 끝을 1바이트 넘어 읽어 메모리 손상이 발생합니다. 인증·사용자 상호작용 없이 원격에서 자동화 스크립트만으로 재현 가능합니다.

악용 가능성: 이 취약점은 네트워크를 통해 직접 접근 가능한 IEC 60870‑5‑104(보통 TCP 2404) 서비스에 적용됩니다(AV:N). 공격자는 I‑frame 내부의 객체 개수를 비정상적으로 크게 지정한 패킷만 전송하면 되므로 복잡도가 낮고(AC:L) 사전 권한이나 사용자 동작이 전혀 필요하지 않습니다(PR:N, UI:N). 따라서 실제 공격 전제조건은 “해당 포트가 외부 혹은 내부망에 노출돼 있으면 바로 이용 가능”이라는 점이며, 이는 CVSS 벡터가 의미하는 바와 일치합니다. EPSS 데이터가 존재하지 않거나 KEV 목록에 포함되지 않았더라도, 공개된 프로토콜 사양과 버퍼‑오버플로우 메커니즘이 널리 알려져 있어 공격 구현 난이도는 여전히 낮습니다. 트리거 조건은 ‘객체 개수 필드가 ASDU 바디 크기를 초과하도록 조작된 I‑frame 전송’이며, 노출되는 엔드포인트는 IEC 104 서버(예: SCADA, RTU)와 그 프로토콜 파라미터인 객체 수/주소 필드입니다. 이러한 환경이 존재하는 한, 공격자는 단일 패킷으로 메모리 오버플로우를 유발해 서비스 거부 혹은 임의 코드 실행을 시도할 수 있습니다.

💥 영향 분석

오버읽기로 인해 대상 프로세스가 비정상 종료하거나 예외 상태에 빠질 수 있으며, 서비스 거부(DOS)와 더불어 메모리 손상을 이용한 잠재적 원격 코드 실행(RCE) 위험이 존재합니다. SCADA/EMS 환경에서는 제어 명령 전송 지연·실패 및 데이터 무결성 훼손으로 설비 운영에 직접적인 영향을 미칠 수 있습니다.

🔗 관련 취약점·체이닝

버퍼 오버읽기(CWE‑125)와 결합하면 서비스 거부뿐 아니라 추가 RCE 모듈 로드가 가능해집니다. 동일 프로토콜 구현에서 길이 검증 부재가 있는 다른 IEC 104 취약점과 연계될 경우 권한 상승·지속성 확보 경로를 형성할 수 있습니다.

🔎 탐지

로그 지표

  • IDS/IPS(Zeek, Suricata) 파서 로그: frame_type == "I" 이면서 asdu.object_countasdu.total_length 보다 큰 이벤트.
  • 방화벽 NetFlow/flow 로그: 2404 포트 세션당 평균 패킷 크기가 정상 범위(≈ 260 B)보다 현저히 큰 경우.

SIEM 쿼리 예시 (Splunk)

text
1index=network sourcetype="iec104"
2| where frame_type="I" AND object_count > max_allowed_objects
3| stats count by src_ip, dest_ip, _time span=1m
4| where count > 3

max_allowed_objects 은 ASDU 전체 길이에 기반해 동적으로 산출하도록 설정합니다.

IDS 서명 예시 (Snort/Suricata)

  • content:"|68|" 로 APDU 시작 확인 후, byte_test:2,>,0x00FF,6,relative; 로 객체 수가 ASDU 길이보다 큰 경우 경고.
  • reject 액션을 추가하여 탐지 시 패킷 즉시 드롭하도록 구성 가능.

오탐 튜닝

  • 정상적인 대량 명령 전송(예: 다중 측정값 보고)에서는 객체 수가 높게 나타날 수 있으므로, asdu.total_length == payload_len 조건을 추가합니다.
  • 동일 src_ip 에서 1분 내 2회 이하 트리거 시 경고 레벨을 “info” 로 낮추고, 3회 이상이면 “high” 로 상승시켜 알림 빈도를 조절합니다.

🛡️ 완화 방안

즉시(긴급 차단) – 오늘 당장 적용할 임시 조치

  • 외부망에서 내부 IEC 104 서버(예: IP 10.0.1.25)로 향하는 모든 TCP 2404 트래픽을 차단합니다. 방화벽 ACL에 deny tcp any host 10.0.1.25 eq 2404 규칙을 추가하고, 로그를 남기도록 설정하십시오. 이는 인증 여부와 무관하게 네트워크 접근만 차단하므로 가장 확실한 초기 방어가 됩니다.

단기(완화) – 패치 전까지 위험을 낮추는 조치

  1. 프로토콜 프록시/게이트웨이 적용: IEC 104 프록시 장비에 객체 수 검증 모듈을 배포하여 asdu.object_count 가 실제 바디 길이를 초과하면 해당 패킷을 폐기하고 경고 로그를 기록합니다. 구현 난이도 ★★★☆☆, 정상 트래픽 지연 ≤5 ms 예상. 검증은 정상·비정상 샘플 트래픽을 각각 전송해 차단 여부와 로그 생성을 확인합니다.
  2. IDS/IPS 자동 차단 정책: 위 서명에 reject 액션을 추가하여 탐지 즉시 패킷을 드롭합니다. 구현 난이도 ★★☆☆☆, 오탐 시 정상 트래픽 차단 위험이 있으므로 튜닝 후 적용해야 합니다.

근본(해결) – 패치·수정 및 업그레이드

  • 해당 IEC 104 스택을 제공하는 벤더가 발표한 최신 펌웨어/소프트웨어로 교체합니다. 최신 버전에서는 InformationObject_ParseObjectAddress 에 대한 경계 검증이 포함되어 있습니다. 구현 난이도 ★★★★☆, 운영 중 재시작 및 잠시 서비스 중단 필요하므로 유지보수 창에 진행 권고됩니다. 패치 적용 후 동일 객체 수 오버플로우 페이로드를 재생성해 정상 파싱 여부와 IDS/IPS 로그가 사라졌는지 검증합니다.

잔여 리스크
패치 전까지 외부 공격은 방화벽 차단으로 억제되지만, 내부 네트워크에 존재하는 악의적인 행위자는 여전히 IEC 104 트래픽을 생성할 수 있습니다. 따라서 지속적인 로그 모니터링·서명 튜닝이 필요합니다.

인시던트 대응 플레이북 (요약)
1️⃣ 경보 발생 → src_ip, dest_ip 확인
2️⃣ 해당 세션 패킷 캡처(tcpdump -i <iface> port 2404) 및 객체 수 검증
3️⃣ 악성 판단 시 방화벽 ACL에 임시 차단 규칙 적용(즉시 차단)
4️⃣ IDS/IPS 서명·SIEM 쿼리 업데이트 후 재평가
5️⃣ 패치 진행 상황 보고, 패치 완료 시 차단 규칙 해제

※ 본 보고서는 다중 소스 교차검증 결과 일관성이 확인된 정보([교차검증])와 EPSS 값이 제공되지 않아 활용하지 않은 점([실측 악용예측]), 그리고 CVSS 6.5·exploit easy·non‑KEV 조건에 따라 이번 주 내 대응을 권고하는 우선순위 논리([우선순위 결정])를 기반으로 작성되었습니다.

⚖️ 위험도 / 우선순위

  • 조치: scheduled (이번 주 내)
  • 근거: CVSS=6.5 · non-KEV · EPSS=미확보 · exploit=easy · in_scope=None
※ 본 분석은 Kestrel AI 심층 분석 결과입니다. 참고용이며, 실제 대응 전에는 전문가 검토가 필요합니다.

댓글(0)

댓글 작성 은 로그인 후 이용할 수 있어요.

다른 사용자의 댓글은 자유롭게 읽을 수 있어요.

로그인하기

불러오는 중…