이번 참가한 OSSCA (오픈소스 컨트리뷰션 아카데미)에서 Project Discovery의 오픈소스 프로젝트에 기여하는 활동을 진행함. 해당 도구들을 가지고 활용할 수 있는 부분이 많을 것으로 판단되어 소개하는 글을 작성함.

Project Discovery이란?

취약점에 대해 모니터링/관리, 취약점과 Attack surface를 스캔을 할 수 있는 오픈소스 소프트웨어를 제작하는 업체임.

 

Project Description
nuclei YAML 템플릿 기반으로 고속으로 취약점을 스캔하는 도구
httpx vhost 검출, 상태 코드 검색 등 다양한 기능들이 존재하는 웹 서버 핑거프린트 도구
dnsx DNS 레코드를 간편하게 조회할 수 있는 DNS 스캔 도구
subfinder 웹 사이트의 유효한 서브도메인을 검출하는 서브도메인 스캔 도구
naabu 고속으로 호스트의 포트를 스캔할 수 있는 포트 스캔 도구
proxify Proxy 도구로, Burp suit이나 ZAP와 같이 많은 기능을 존재하지 않지만 트래픽을 저장하고 ES이나 Kafka와의 연동이 가능한 기능으로 트래픽 기록용으로 많이 사용하는 프록시 도구

위 표는 Project Discover의 주요 프로젝트임.

 

해당 프로젝트는 Golang으로 제작되어 빠른 속도를 장점으로 가지고 있음.
또한 같은 회사에서 제작한 것이라, 서로의 결과물로 연동이 가능함.

 

subfinder -d naver.com -v | naabu -ports full -silent | httpx -title -status-code -tech-dtect -follow-redirects 

연동이 가능하다는 뜻은 위와 같이 파이프라인으로 이어서 사용할 수 있다는 뜻임.

nuclei

위에서 소개한 도구들 중에서 nuclei를 소개하도록 하겠음.

 

본인은 OSSCA에서 Project Discovery의 nuclei에 기여를 하였음.

좀 더 정확하게는 nuclei-templates에 기여를 하였음.

 

nuclei-templates은 nuclei가 취약점을 어떻게 스캔할 것인가를 정의를 내려주는 템플릿을 모아 저장소로 공유하고 있는 프로젝트임.

 

사진 속 왼쪽의 터미널을 살펴보면, nuclei를 이용하여 공격을 시도함.

 

공격 후 오른쪽 브라우저를 보면 nuclei가 공격을 시도하였다는 것을 확인할 수 있음.

 

해당 XSS 공격을 한 페이지로 이동을 하면, 위와 같이 공격이 성공하였다는 것을 알 수 있음.
nuclei template에 공격 성공에 대한 정의도 포함되어 있어서 성공 시 빨간색 박스에 나온 것처럼 로그로 해당 취약점이 발견되었다는 것을 알려줌.

활용 방안

"보안 컨설팅 업무에서 해당 Tools을 어떻게 활용할 것인가?"라는 생각을 해본 결과, 이행 점검에 활용하는 방안을 생각하였음.

 

CVE이나 CVE 외 취약점들이 정의된 템플릿을 이용하여 취약점 진단을 한다는 것은 매우 위험하고 정확도가 적다고 생각함.
물론, 템플릿을 커스텀하여 사용한다면 위험도와 정확도가 작아지지만 그만큼 시간 소요가 된다는 큰 단점이 가지기 때문에 추천하지 않음.

 

하지만 직접 발견한 취약점을 템플릿으로 정의하여 추후 있을 이행 점검에 활용한다면, 이행 점검 시 많은 시간을 절약할 수 있을 것이라 생각함. 또한 해당 도구와 템플릿을 고객사에 제공하여 타 경쟁사와의 차별성을 줄 수 있을 것이라는 생각이 듬.


Project Discovery 소개 - nuclei (2)의 글은 템플릿 작성 법과 nuclei 사용법에 대하여 작성하도록 하겠음.

복사했습니다!