자동화 OSINT 수집 파이프라인에서 Recon-ng은 모듈 기반의 종합 정찰 프레임워크 역할을, amass passive 모드는 공개 출처 기반의 서브도메인 나열을, Scrapy는 구조화된 웹 데이터 추출을 담당합니다. 각 도구는 기능상 대상 인프라에 직접적인 연결이나 대량의 요청을 유발할 수 있어서, 정보통신망법 및 저작권법 등 법적 리스크를 관리하고 대상 측의 방어 조치에 대응하는 명확한 보안·법적 경계 설정이 필수적입니다.
자동화 OSINT 수집 파이프라인의 세 축: Recon-ng · Amass · Scrapy
효율적인 OSINT 파이프라인 구축은 각 도구의 특성과 수집 범위의 차이를 정확히 이해하는 데서 출발합니다. 무분별한 자동화는 대상 시스템에 부하를 주거나 법적 분쟁을 일으킬 수 있기 때문입니다.
Recon-ng: 모듈형 정찰 프레임워크
Recon-ng은 여러 출처에서 데이터를 자동으로 수집하는 오픈소스 웹 기반 정찰 전용 모듈형 프레임워크입니다. 단순한 단일 도구가 아닙니다. 다양한 도구들이 마켓플레이스 형태로 확장되는 구조이며, BinaryEdge, Censys, Github, Shodan, VirusTotal 등 제3자 서비스의 API 키를 연동할 때 성능이 극대화됩니다. 실무에서는 워크스페이스 생성, 모듈 로드, 데이터 저장 및 엑셀(.xlsx) 리포팅까지의 과정을 스크립트로 자동화해 정찰 시간을 단축하는 데 활용됩니다.
OWASP Amass: 수집 경계의 핵심, Passive vs Active
OWASP Amass는 OSINT 수집과 정찰 기법으로 공격면 네트워크 매핑과 외부 자산 발견을 수행하는 프레임워크입니다. 이 도구는 자산 발견 수집 엔진과 결과를 저장하는 자산 데이터베이스를 갖추고 있습니다. 수집 방식에 따라 보안 경계가 극명하게 갈립니다.
- Passive 모드: SSL 인증서, WHOIS 기록, 검색 엔진과 같은 공개 출처만 조회해 서브도메인을 나열합니다. 대상 호스트에 직접 연결하지 않고 순수 OSINT 자원만 이용하므로 상대적으로 탐지 가능성이 낮습니다. 실행 예시로는
amass enum -passive -d example.com과 같은 명령어가 사용됩니다. - Active 모드: 대상 호스트에 직접 연결해 정보를 검증하는 방식입니다. 대상 시스템의 로그에 기록이 남을 가능성이 높고, 접근 권한 설정에 따라서는 법적 경계를 넘을 위험도 있습니다.
Scrapy: 대규모 공개 데이터 추출 엔진
Scrapy는 Python 기반의 오픈소스 웹 크롤링 및 스크레이핑 프레임워크로, 웹사이트에서 구조화된 정보를 추출하는 데 특화되어 있습니다. 비동기 엔진과 스마트한 스로틀링(Throttling) 기능이 대규모 공개 웹 데이터의 효율적인 수집을 돕습니다.
Scrapy의 프로젝트 구조는 스파이더(Spider), 설정(Settings), 아이템 파이프라인(Item Pipeline)으로 구성됩니다. 이 가운데 settings는 전역 key-value 설정 공간으로, 코드 내에서 필요한 설정 값을 가져오거나 여러 메커니즘으로 값을 채울 수 있어 수집 정책을 일관되게 관리할 수 있습니다.
자동화 수집 도구별 기능 및 보안 특성 비교
| 구분 | Recon-ng | OWASP Amass (Passive) | Scrapy |
|---|---|---|---|
| 주요 역할 | 모듈 기반 종합 정찰 및 파이프라인화 | 공개 출처 기반 서브도메인 및 자산 발견 | 구조화된 웹 데이터 대량 추출 |
| 수집 방식 | API 연동 및 모듈 실행 | 공개 DNS, SSL 로그, WHOIS 조회 | HTTP 요청 및 HTML 파싱 |
| 대상 접촉 여부 | 모듈에 따라 상이 (주로 제3자 API 활용) | 없음 (순수 OSINT 자원 활용) | 있음 (대상 웹 서버에 직접 요청) |
| 주요 특징 | 워크스페이스 및 DB 기반 리포팅 | 다중 DNS 리졸버를 통한 요청 분산 | 비동기 엔진 및 정중한 스로틀링 지원 |
운영 및 법적 경계 관리 가이드
자동화 OSINT 파이프라인을 운영할 때는 기술적 차단 조치와 법적 리스크를 동시에 고려해야 합니다.
대상 측의 방어 조치와 기술적 대응
수집 대상 조직은 자동화된 봇의 접근을 막기 위해 다음과 같은 방어 조치를 시행할 수 있습니다.
- 접근 제한:
robots.txt로 민감한 경로에 대한 접근을 제한하거나, Rate Limiting과 CAPTCHA로 알려진 스크래퍼와 봇을 차단합니다. - 인프라 차단: 특정 DNS 서버에 요청이 집중될 경우 해당 IP를 차단하기도 합니다. 이에 대응해 amass는 Google, Cloudflare, Verisign, Yandex 등 여러 공개 DNS 리졸버로 요청을 분산하는 전략을 사용합니다.
한국법상 웹 크롤링의 법적 경계
무단 데이터 추출은 법 위반 가능성이 있으므로, 반드시 교육적·윤리적 목적 범위 안에서 수행하는 것이 원칙입니다. 국내법상 주요 검토 대상은 다음과 같습니다.
- 정보통신망법 제48조: 정당한 접근 권한 없이 또는 허용된 권한을 넘어 정보통신망에 침입하는 것을 금지합니다. 위반 시 5년 이하의 징역 또는 5,000만 원 이하의 벌금이 부과될 수 있습니다. 특히 로그인이나 인증 체계를 우회하는 행위는 위법 가능성이 높습니다.
- 개인정보보호법: 정보 주체의 동의 없는 개인정보 수집 시 문제가 됩니다.
- 저작권법: 타인의 창작물이나 데이터베이스를 무단으로 복제하는 행위가 해당될 수 있습니다.
- 부정경쟁방지법: 경쟁사의 데이터베이스를 무단으로 활용해 경제적 이익을 취하는 경우 일반조항 위반 가능성이 있습니다.
기술적 권고와 민사적 리스크
robots.txt는 법적 구속력이 있는 문서가 아니라 기술적 표준이자 권고(advisory) 사항입니다. 다만 이를 무시하고 수집했을 경우, 향후 법적 분쟁 발생 시 불리한 증거로 작용할 수 있습니다. 또한 서비스 이용약관 위반은 그 자체로 형사 범죄가 되지는 않지만, 민사 소송의 리스크로 남을 수 있다는 점은 기억해 둘 만합니다.
자동화 OSINT 파이프라인 운영자에게는 도구의 기능을 극대화하는 것만큼이나 수집 대상의 설정과 법적 테두리를 준수하는 운영 경계 관리가 중요합니다.