hhkb.dev

BLOG

2025-11-30 / 호스트기반모의해킹 · 18

자동 취약점 진단

1. 개요

자동 취약점 진단(Automated Vulnerability Assessment)은 스캐너(Scanner)로 알려진 취약점(CVE)이나 설정 오류(Misconfiguration)를 빠르게 탐지하는 과정이다.

"툴을 쓰면 하수"라는 식의 인식은 실무와 거리가 있다. 실제 현장에서는 자동화 도구로 넓은 범위를 먼저 훑고, 사람은 그 결과를 검증(Verification)하거나 논리적 결함(Business Logic)을 보는 하이브리드 방식이 기본에 가깝다.

다만 한계도 분명하다.

  • 맥락(Context) 부재: 여러 취약점의 연계(Chaining)나 비즈니스 로직은 이해하지 못한다.
  • 거짓 양성/음성(False Positive/Negative): 없는 취약점을 있다고 보거나, 있는 취약점을 놓치는 경우가 자주 나온다.

2. 주요 도구(Open Source)

2.1 Nuclei

ProjectDiscovery에서 개발한 템플릿(Template) 기반의 최신 스캐너. Go 언어로 작성되어 매우 빠르고 유연하다.

  • 특징: YAML 템플릿 기반이라 사용자가 직접 스캔 로직을 커스텀하기 쉽다.
  • 설치: go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
  • 대표 사용 예시
    • 기본 스캔
      nuclei -u http://target.com
      
    • 자동 스캔(-as)
      Wappalyzer 기반 기술 스택 식별을 활용해, 타겟에 맞는 템플릿만 자동 선별해 스캔한다.
      nuclei -u http://target.com -as
      
    • 비웹 서비스 스캔(-et)
      SSH, FTP처럼 웹이 아닌 포트를 볼 때는 웹 템플릿을 제외해 속도를 높인다.
      nuclei -u target.com:21 -et http
      

2.2 Nikto

오래되었지만 여전히 유용한 웹 서버 스캐너.

  • 특징: CGI, 설정 파일 노출, 구형 서버 버전 탐지에 강한 편이다.
  • 사용법
    nikto -h http://target.com
    
  • 한계: SPA(Single Page Application)나 현대적인 자바스크립트 프레임워크 환경에서는 탐지율이 떨어질 수 있다.

2.3 Nessus(상용/무료)

Tenable 사의 업계 표준 GUI 스캐너.

  • 특징: 인프라 전반에 대한 취약점 DB가 크지만, 무료 버전(Essentials)은 IP 제한이 있고 설치와 설정이 무거운 편이다.

3. 실무에서는?

실무에서는 아래 세 가지를 특히 많이 본다.

  • 심각도(Severity) 재평가
    스캐너가 Critical로 잡아도 실제로는 악용이 어려운 환경일 수 있다. 반대로 Low 수준의 정보 노출이 더 큰 취약점의 출발점이 되기도 한다. 점수보다 실제 공격 가능성(Exploitability)을 직접 봐야 한다.
  • 공격성 조절
    Active Scan은 서버에 부담을 주거나 더미 데이터를 남길 수 있다. 운영(Production) 환경에서는 사전 협의 없이 돌리면 장애로 이어질 수 있다.
  • 도구 조합
    하나의 툴만 믿기보다 Nessus, Nuclei, Burp Suite처럼 서로 다른 성격의 도구를 조합해 넓게 보고 깊게 확인하는 방식이 안정적이다.