dfdㅇㄹProjectDiscovery란? — 오픈소스 보안 툴체인의 중심
Nuclei 템플릿을 기여하면서 알게 된 ProjectDiscovery.
단순한 도구 모음이 아니라, 현대 공격 표면 관리의 방향을 바꾸고 있는 오픈소스다.
한 줄 정의
ProjectDiscovery는 보안 엔지니어, 버그 바운티 헌터, 레드팀을 위한 오픈소스 보안 툴체인을 만드는 회사다.
핵심 철학: Unix 파이프라인처럼 쓰는 보안 도구
ProjectDiscovery의 도구들은 단독으로도 쓸 수 있지만, 파이프라인으로 연결해서 쓸 때 진가가 나온다. 정찰 → 자산 발견 → 취약점 탐지 → 알림까지 각 단계를 담당하는 도구가 있고, 이것들을 CLI 파이프로 묶으면 자동화된 공격 표면 스캔 파이프라인이 된다.
ProjectDiscovery는 Subfinder, DNSX, HTTPX를 포함한 20개 이상의 도구를 공개했으며, 이것들은 정찰, 서비스 발견, 웹 크롤링, 취약점 스캐닝을 위해 함께 연결해서 사용할 수 있다.
주요 도구들을 단계별로 보면 이렇다.
자산 발견 단계에서는 Subfinder(빠른 서브도메인 열거), Naabu(포트 스캐너), httpx(HTTP 툴킷), Katana(웹 크롤러), Chaos(인터넷 전체 자산 데이터)가 쓰인다.
취약점 탐지 단계의 핵심은 Nuclei다. 그 외 interactsh(OOB 인터랙션 수집), cvemap(CVE 데이터베이스 탐색 CLI)도 여기 속한다.
워크플로우 통합에는 Notify(스캔 결과를 Slack, Discord 등으로 스트리밍), pdtm(ProjectDiscovery 도구 전체를 관리하는 패키지 매니저)가 있다.
핵심 도구: Nuclei
ProjectDiscovery를 대표하는 도구는 단연 Nuclei다. YAML 기반 템플릿으로 HTTP, TCP, DNS, 클라우드 설정 등 다양한 프로토콜에서 취약점을 스캔한다.
Nuclei는 YAML 기반 템플릿과 조건부 로직으로 실제 악용 가능한 이슈를 식별하면서 노이즈를 필터링한다. 기존 스캐너들이 버전 체크 기반 탐지로 오탐을 양산하는 것과 달리, Nuclei 템플릿은 실제 요청-응답 시퀀스를 기반으로 취약점을 검증한다.
현재 10,000개 이상의 Nuclei 탐지 템플릿이 있으며, 많은 부분이 전 세계 보안 연구자, 버그 바운티 헌터, 엔지니어들의 기여로 만들어졌다.
커뮤니티 기여 속도도 주목할 만하다. 한 예로, Next.js 인증 우회 취약점(CVE-2025-29927) 공개 12시간 만에 커뮤니티가 탐지 템플릿을 만들어냈다.
오픈소스이자 기업이기도 한 모델
ProjectDiscovery의 모든 핵심 도구는 MIT 라이선스로 공개되어 있어 상업적 도구와의 통합 및 협업을 단순화한다.
클라우드 플랫폼(PDCP, ProjectDiscovery Cloud Platform)은 같은 툴체인을 엔터프라이즈 규모로 쓸 수 있게 해준다. 오픈소스의 유연성에 엔터프라이즈에 필요한 성능, 확장성, 워크플로우를 결합한 형태다.
버그 바운티 헌터와 보안 엔지니어에게 왜 중요한가
실무 관점에서 ProjectDiscovery 툴체인이 유용한 이유는 세 가지다.
하나, 도구들이 CLI 파이프로 연결되기 때문에 반복 작업을 스크립트로 자동화하기 좋다. 서브도메인 열거부터 포트 스캔, HTTP 프로빙, Nuclei 스캔까지 한 줄 파이프라인으로 묶을 수 있다.
둘, Nuclei 템플릿은 직접 작성하고 기여할 수 있다. CVE가 공개된 직후 PoC를 분석하고 탐지 템플릿을 만들어서 PR을 올리면, 리뷰를 거쳐 전 세계 사용자가 쓸 수 있는 템플릿이 된다. 템플릿을 하나 머지시키는 것만으로도 이력서에 올릴 수 있는 오픈소스 기여가 된다.
셋, 도구들이 전부 무료 오픈소스다. 상용 스캐너를 살 예산이 없는 개인 연구자나 스타트업도 엔터프라이즈급 공격 표면 스캔 파이프라인을 구축할 수 있다.
설치하고 써보는 법
pdtm으로 ProjectDiscovery 도구 전체를 한 번에 관리할 수 있다.
bash
# pdtm 설치
go install -v github.com/projectdiscovery/pdtm/cmd/pdtm@latest
# 전체 도구 설치
pdtm -install-all
# 개별 도구 설치
pdtm -i nuclei
pdtm -i subfinder
pdtm -i httpx
pdtm -i naabu기본적인 정찰 파이프라인은 이렇게 생겼다.
bash
# 서브도메인 발견 → HTTP 프로빙 → Nuclei 스캔
subfinder -d example.com -silent | \
httpx -silent | \
nuclei -t http/cves/ -o results.txt서브도메인을 열거하고, 살아있는 HTTP 서비스를 확인하고, CVE 템플릿으로 취약점을 스캔하는 파이프라인이 세 줄로 완성된다.
나는 MCP Inspector RCE 취약점(CVE-2025-49596) Nuclei 템플릿과 ESPHome 인증 우회 취약점(CVE-2025-57808)을 작성해서 nuclei-templates에 기여했다. 전 세계에서 쓰는 도구의 일부가 됐다는 게 작은 것 같아도 꽤 의미있게 느껴졌다.
GitHub: github.com/projectdiscovery
공식 문서: docs.projectdiscovery.io