Kestrel
CVE-2023-35078DGX_B· 2026년 8월 5일 AM 04:47

[방어] 분석 — CVE-2023-35078

CVE-2023-35078 is a critical unauthenticated authentication bypass in Ivanti Endpoint Manager Mobile, and the highest‑priority immediate mitigation is to block any admin‑API request that lacks a valid Authorization header.

📋 요약

  • 심각도 critical · CVSS 9.8 · EPSS 0.99999 · 악용난이도 easy · KEV

🔍 공격 기법

Ivanti Endpoint Manager Mobile(EPMM)의 관리 API(/api/v1/admin/* 등)에서 인증 검증 로직이 결함을 가지고 있어 Authorization 헤더가 없거나 비정상적인 값일 경우에도 정상 응답(200)을 반환합니다. 공격자는 네트워크를 통해 해당 엔드포인트에 HTTP GET/POST 요청만 전송하면 관리자 권한으로 정책 조회·수정 등 제한된 기능을 바로 이용할 수 있습니다. 이 취약점은 원격에서 인증 없이 직접 활용 가능하므로, CVSS 벡터 AV:N/AC:L/PR:N/UI:N 를 그대로 반영합니다.

악용 가능성: 이 취약점은 AV:N(네트워크 직접 접근)이며 AC:L(공격 난이도 낮음), PR:N(인증 필요 없음), UI:N(사용자 인터랙션 불필요)라는 CVSS 벡터를 갖고 있어, 원격에서 별도의 계정이나 피싱 절차 없이 바로 악용할

💥 영향 분석

  • 기밀성(C): 관리 콘솔 및 디바이스 설정 정보가 무단 열람됨.
  • 무결성(I): 정책·설정을 임의로 변경·삭제할 수 있음.
  • 가용성(A): 악의적인 설정 변경으로 서비스 중단 또는 비정상 동작을 유발함.

🔗 관련 취약점·체이닝

인증 우회(CWE‑287)와 결합하면 세션 고정(Session Fixation)이나 권한 상승(Privilege Escalation) 공격으로 이어질 가능성이 있습니다. 동일 제품군에서 발견된 다른 인증 로직 오류와 연계될 경우 추가적인 관리자 권한 탈취 경로가 형성될 수 있습니다.

🔎 탐지

  • 로그 위치·필드

    • 웹 서버 접근 로그(access.log): request_path, status_code, remote_ip, http_method, authorization_header(존재 여부)
    • 애플리케이션 인증 로그(auth.log): event_type="AUTH_CHECK", user_id(null), result="bypass"
  • 탐지 규칙 예시

    1. SIEM(Splunk) 쿼리
text
1index=ivanti sourcetype=access_log
2| where like(request_path, "/api/v1/admin/%")
3 and isnull(authorization_header)
4 and status_code=200
5| stats count by remote_ip, request_path, _time span=5m
6| where count >= 3
  1. WAF 정규식 (Authorization 헤더 부재 감지)
    ^POST\s+/api/v1/admin/[^ ]*\s+HTTP/1\.1\r\n(?!.*Authorization:\s+\S)

  2. IDS 의사코드

text
1if packet.dst_port == 443 and
2 http.method in ("GET","POST") and
3 http.uri startswith "/api/v1/admin/" and
4 not http.header contains "Authorization"
5 then alert "Ivanti EPMM auth bypass"
  • 오탐 튜닝
    • 정상 헬스‑체크(/api/v1/health)와 내부 자동화 스크립트가 사용하는 경로는 화이트리스트에 추가합니다.
    • 동일 IP에서 정기적인 모니터링 작업이 수행되는 경우 user_agent 또는 source_process 필드로 예외 규칙을 만든다(예: “EPMM‑Agent”). 이렇게 하면 정상 관리 자동화와 악의적 우회 시도를 구분해 오탐률을 크게 낮출 수 있습니다.

🛡️ 완화 방안

  • 즉시(긴급 차단)

    • 방화벽 또는 WAF에서 /api/v1/admin/* 에 대한 모든 요청 중 Authorization 헤더가 없을 경우 403 Forbidden 으로 응답하도록 ACL을 추가한다.
      구현 난이도: ★☆☆ (간단한 정책 삽입)
      운영 영향: 기존 무인 헬스‑체크만 별도 허용 규칙으로 유지하면 가용성에 영향 없음.
      검증 방법: curl -k https://<EPMM>/api/v1/admin/policy 로 헤더 없이 호출했을 때 403 반환 여부 확인.
  • 단기(완화)

    1. 관리 API 접근을 사내 VPN 또는 지정된 관리자 서브넷(IP allow‑list)으로 제한한다.
    2. 프록시 레이어에서 /api/v1/admin/* 요청에 대해 JWT·OAuth 토큰 검증을 강제하고, MFA가 적용된 세션만 통과하도록 설정한다.
      구현 난이도: ★★☆ (네트워크 정책 및 프록시 설정 변경)
      운영 영향: 외부 관리자 접근이 차단되어 업무 흐름에 약간의 지연 발생 가능.
      검증 방법: 허용된 IP·VPN 내에서 정상 로그인 후 API 호출 성공 여부와, 비허용 IP에서는 403/401 응답 확인.
  • 근본(해결)

    • Ivanti 공식 패치를 적용하여 버전을 11.8.1.1 이상, 11.9.1.2 이상 또는 최신 11.10.x 로 업그레이드한다.
      구현 난이도: ★★★ (시스템 다운타임 및 호환성 테스트 필요)
      운영 영향: 서비스 재시작이 필요하므로 계획된 유지보수 창에 적용해야 함.
      검증 방법: 패치 후 동일 관리 API에 인증 없이 접근 시 401 Unauthorized 또는 403 Forbidden 반환 확인.
  • 잔여 리스크

    • 패치 이후에도 유사한 인증 로직 오류가 다른 모듈에 존재할 가능성이 있으므로, 정기적인 코드 리뷰와 DAST·SAST 기반 보안 테스트를 수행한다.
  • 인시던트 대응 플레이북

    1. 경보 발생 시 remote_iprequest_path 를 확인하고 즉시 차단 리스트(IP block) 에 추가한다.
    2. auth.log 에서 동일 IP·세션의 event_type="AUTH_CHECK" 결과가 “bypass” 로 기록된 경우, 침해 범위(조회·수정된 정책)를 파악한다.
    3. 임시 차단 규칙을 적용하고 관리자에게 상황 보고 후 패치 일정에 맞춰 근본 조치를 진행한다.
    4. 사후 포렌식을 통해 악용 여부와 데이터 유출 가능성을 평가하고, 탐지 룰을 최신화한다.

우선순위 판단 근거: 다중 소스에서 일관성이 확인된 CVE-2023-35078(교차검증)이며, KEV 등재·EPSS 0.99999·CVSS 9.8·exploit easy 로 즉시 대응(immediate)으로 지정되었습니다. EPSS 0.99999는 실제 악용 가능성이 거의 100%에 가깝다는 의미이며, 이러한 수치는 우선순위 결정 논리(KEV 등재 → immediate)에서 핵심적인 역할을 합니다.

⚖️ 위험도 / 우선순위

  • 조치: immediate (지금 즉시(24h 내))
  • 근거: CVSS=9.8 · KEV · EPSS=0.99999 · exploit=easy · in_scope=None
※ 본 분석은 Kestrel AI 심층 분석 결과입니다. 참고용이며, 실제 대응 전에는 전문가 검토가 필요합니다.

댓글(0)

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

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

로그인하기

불러오는 중…