허니팟(Honeypot)은 공격자를 유인하기 위해 의도적으로 취약하게 만든 가짜 시스템이다. 실제 시스템처럼 보이지만 내부에는 가치 있는 데이터가 없으며, 공격자의 행동을 관찰하고 기록하여 위협 인텔리전스를 수집한다.
허니팟 동작 원리
실제 네트워크:
[실제 서버들] [허니팟 서버]
(보호 대상) (감시 트랩)
↑ ↑
공격자는 허니팟 구분 불가 → 접속 시 모든 행동 기록
정상 트래픽: 실제 서버로 이동
의심 트래픽: 허니팟으로 유도
허니팟 분류
상호작용 수준별:
| 종류 | 상호작용 | 위험도 | 용도 |
|---|
| 저상호작용 | 제한된 응답 시뮬레이션 | 낮음 | 스캔 탐지 |
| 중상호작용 | 서비스 일부 구현 | 중간 | 취약점 연구 |
| 고상호작용 | 실제 OS/서비스 | 높음 | 고급 위협 연구 |
용도별:
| 종류 | 설명 |
|---|
| 연구용 허니팟 | 새로운 공격 기법, 악성코드 수집 |
| 운영용 허니팟 | 실시간 침입 탐지, 내부자 위협 감지 |
| 허니넷 | 여러 허니팟으로 구성된 네트워크 |
| 허니토큰 | 가짜 자격증명, API 키 |
오픈소스 허니팟 도구
bash
# Cowrie SSH 허니팟 배포
docker run -p 2222:2222 cowrie/cowrie
# 포트 스캔 탐지 허니팟 (HoneyD)
# /etc/honeyd.conf
create template
set template personality "Linux 2.4.20"
set template default tcp action reset
add template tcp port 22 open
add template tcp port 80 open
허니토큰 실전 활용
python
# 가짜 AWS 자격증명 생성 및 모니터링
import boto3, logging
FAKE_CREDENTIALS = {
'aws_access_key_id': 'AKIAIOSFODNN7HONEYPOT',
'aws_secret_access_key': 'fake_secret_key_for_monitoring'
}
# 이 자격증명을 코드베이스에 의도적으로 노출
# 실제 사용 시 CloudTrail 로그로 침해 즉시 탐지
윤리적/법적 고려사항
허니팟 설치 전 법적 검토가 필요하다. 공격자의 행동을 유인하는 엔트랩먼트 이슈와 데이터 보호법 관련 우려가 있다.
관련 개념