
JAGUAR_TOOTH 악성코드(APT28)에 대한 포괄적이고 100% 무제한 기술 분석. Cisco IOS SNMP 익스플로잇, ROP 체이닝, 메모리 상주 스파이 활동 전술의 고정밀 재구성 (SASTRA_ADI_WIGUNA 작성).
= doi.org/10.5281/zenodo.18283540
= orcid.org/0009-0007-7728-256X
# 🐆 JAGUAR_TOOTH 분석 및 연구 (APT28/Fancy Bear)

-blue?style=for-the-badge)

## 📑 개요
**JAGUAR_TOOTH** 악성코드에 대한 종합적인 분석과 기술적 재구성입니다. 이 악성코드는 위협 행위자 **APT28**(GRU 부대 74455)과 연계된 *비영구적* 사이버 스파이 도구입니다. 이 저장소는 사이버 보안 연구, *위협 헌팅*, 그리고 중요 인프라 방어 개발을 위해 마련되었습니다.
---
## 🛠 기술 심층 분석
### 1. 초기 접근 벡터 (CVE-2017-6742)
악성코드는 ALPS MIB를 통해 Cisco IOS SNMP 스택의 *스택 기반 버퍼 오버플로* 취약점을 악용합니다.
* **취약한 OID:** `1.3.6.1.4.1.9.9.95.1.2.4.1.3`
* **메커니즘:** `$ra`, `$s7`, `$s0` 제어 레지스터를 장악하기 위해 SNMP UDP/161 패킷을 제작합니다.
### 2. 실행 및 페이로드 구조
문자 제한(ASCII 대문자) 때문에 이 익스플로잇은 **ROP(Return-Oriented Programming)** 기법을 사용합니다:
* **1단계:** 메모리 주소 `0x81689300`에 보조 셸코드(임의 쓰기 프리미티브)를 주입합니다.
* **2단계:** 수백 개의 SNMP 패킷을 통해 기본 페이로드를 비연속적인 메모리에 점진적으로 구성합니다.
### 3. 기능 및 스파이 활동
* **인증 우회:** `askpassword` 및 `ask_md5secret` 함수를 패치하여 100% 액세스 권한을 부여합니다(모든 비밀번호 허용).
* **자동화된 데이터 수집:** `"Service Policy Lock"`이라는 이름의 은밀한 프로세스(Tcl 스크립트)를 실행합니다.
* **데이터 유출:** **TFTP (UDP/69)**를 통해 40초 간격으로 구성 데이터(`running-config`, `CDP neighbors` 등)를 탈취합니다.
---
## 🛡 완화 및 탐지 (방어)
### 침해 지표 (IoC)
| 유형 | 지표 |
| :--- | :--- |
| **프로세스 이름** | `Service Policy Lock` |
| **프로토콜** | TFTP (UDP Port 69) 아웃바운드 이상 징후 |
| **취약점** | CVE-2017-6742 (Cisco BugID CSCve54313) |
### 강화 절차
```bash
# 1. ALPS MIB 비활성화 (중요)
router(config)# no mibs alps
# 2. 신뢰할 수 있는 호스트로만 SNMP 액세스 제한
router(config)# snmp-server community <STRING> RO <ACL_NUMBER>
# 3. 프로세스 무결성 확인
router# show proc cpu | include Service Policy Lock
요약 및 출처 귀속
JAGUAR_TOOTH는 Cisco IOS 기반 네트워크 인프라를 악용하도록 특별히 설계된 고도로 전문화된 비영구적 악성코드로, 특히 펌웨어 버전 **C5350-IS-M 12.3(6)**을 대상으로 합니다. 이 악성코드는 전 세계적인 사이버 스파이 활동에 주력하는 러시아 군사 정보 부대인 위협 행위자 APT28(Fancy Bear 또는 GRU Unit 74455로도 알려짐)과 연관된 것이 확실합니다.
이 악성코드는 제로데이 익스플로잇을 사용하지 않는 대신, 공개적으로 알려진 치명적인 취약점인 CVE-2017-6742를 활용합니다.
k_alpsRemPeerConnEntry_get 함수에 위치한 1.3.6.1.4.1.9.9.95.1.2.4.1.3 (alpsRemPeerConnLocalPort).$ra, $s7, $s0)의 제어권을 장악하도록 정밀하게 제작된 수백 개의 SNMP UDP(포트 161) 패킷을 통해 익스플로잇이 실행됩니다.메모리 제약과 ASCII 문자를 대문자로 강제하는 ASN.1 인코딩으로 인해, 공격자들은 정교하면서도 효율적인 ROP(Return-Oriented Programming) 기법을 사용합니다:
0x81689300에 임의 4바이트 쓰기 프리미티브(sw $s0, 0($s1); jr $s2)를 배치합니다.askpassword 및 ask_md5secret을 직접 패치합니다.악성코드는 **"Service Policy Lock"**이라는 새 프로세스를 생성하며, 이 프로세스는 자동화된 데이터 수집(T1119)을 위해 반복 실행되는 Tcl 스크립트를 수행합니다:
running-config, startup-config, show version, show ip int brief, show arp, show cdp neighbors, show ip route, show flash를 포함합니다.유사한 위협으로부터 인프라를 보호하려면 다음 단계가 필수입니다:
no mibs alps 명령을 사용하여 ALPS MIB를 비활성화하거나 SNMP 액세스를 신뢰할 수 있는 호스트로만 제한합니다.show proc cpu 명령을 실행하여 의심스러운 프로세스 "Service Policy Lock"을 식별합니다.위험 점수: 높음 이 악성코드의 기술적 정교함은 신규 제로데이가 없고 2017년 취약점에 의존한다는 점에서 낮음~중간 수준으로 평가되지만, 국가 안보와 조직의 무결성에 미치는 영향은 치명적입니다.
평가 분석:
running-config 및 CDP 이웃 맵을 수집함으로써 공격자는 내부 네트워크 토폴로지를 완전히 파악할 수 있으며, 이를 통해 매우 효과적인 측면 이동이 가능해집니다.최종 평가 결론: JAGUAR_TOOTH는 특정 표적에 대해 매우 효과적인 사이버 무기입니다. 그 성공은 기술적 참신함이 아니라 중요 인프라 내 패치 관리 소홀을 악용한 데 있습니다. 암호화되지 않은 TFTP 사용은 공격자들이 암호화보다 속도와 접근 용이성을 우선시했음을 시사하며, 이는 이미 약화된 대상 네트워크 경계 내에서 충분히 안전하다고 판단했기 때문일 가능성이 높습니다.