🔍 Nessus 실무 스터디 가이드

데이터 엔지니어 · AI 엔지니어를 위한 핵심 요약

📅 2026.03 ⚡ vulnerability-scanner 📋 compliance 🛡️ 실무 중심

1. Nessus란?

Nessus는 Tenable이 개발한 업계 최고의 취약점 스캐너로, 전 세계 조직에서 네트워크, 시스템, 애플리케이션의 보안 취약점을 식별하고 평가하는 데 사용됩니다. AI 및 데이터 인프라 환경에서도 필수적인 도구입니다.

3대 핵심 능력

🔎 취약점 탐지

150,000개 이상의 플러그인을 통해 OS, 미들웨어, 데이터베이스, 컨테이너 환경의 취약점을 정밀 진단합니다.

📋 규정 준수 감사

CIS, DISA STIG, PCI DSS, GDPR 등 산업 및 규제 표준에 대한 자동화된 컴플라이언스 점검을 제공합니다.

🤖 자동화 & 통합

REST API, CLI, Python 라이브러리(tenable)를 통해 CI/CD 파이프라인 및 AI 워크로드에 취약점 스캔을 통합합니다.

2. 왜 써야 하는가?

Nessus는 단순한 오픈소스 스캐너를 넘어, 엔터프라이즈 규모의 정확성과 확장성을 제공합니다. 아래 비교표를 확인하세요.

기능 Nessus Pro / Expert OpenVAS / Greenbone Qualys
플러그인 수 150,000+ (매일 업데이트) ~100,000 140,000+
컴플라이언스 템플릿 450+ (CIS, PCI 등) 제한적 (커뮤니티 기반) 500+
API / 자동화 ✅ 우수 (Python SDK, REST) ⚠️ 가능 (GMP 프로토콜) ✅ 우수
AI/ML 워크로드 지원 ✅ GPU, MLflow, Kubeflow 감지 ⚠️ 부분 지원 ✅ 우수
라이선스 비용 유료 (연간 구독) 오픈소스 (무료) 유료 (고가)

💡 AI 보안 엔지니어 관점: Nessus는 GPU 서버, 모델 레지스트리, 데이터 파이프라인 노드에 대한 취약점 스캔을 네이티브로 지원하여 AI 인프라의 보안 태세를 강화합니다.

3. 핵심 개념

Nessus의 동작 방식은 크게 스캐너, 정책, 플러그인, 보고서로 구성됩니다. 아래 아키텍처 다이어그램을 참고하세요.

┌──────────────────────────────────────────────────────────────┐ │ Nessus Architecture │ ├──────────────────────────────────────────────────────────────┤ │ │ │ ┌──────────┐ ┌──────────────┐ ┌──────────────────┐ │ │ │ Scanner │────▶│ Policy │────▶│ Plugin Feed │ │ │ │ (Agent) │ │ (Template) │ │ (150k+) │ │ │ └──────────┘ └──────────────┘ └──────────────────┘ │ │ │ │ │ ▼ │ │ ┌──────────────────────────────────────────────────────┐ │ │ │ Target Network │ │ │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │ │ │ Server │ │ GPU │ │ DB │ │ AI API │ │ │ │ │ │ (Linux) │ │ Node │ │(Postgre)│ │(MLflow) │ │ │ │ │ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │ │ │ └──────────────────────────────────────────────────────┘ │ │ │ │ │ ▼ │ │ ┌──────────┐ ┌──────────────┐ ┌──────────────────┐ │ │ │ Report │────▶│ Remediation │ │ Compliance │ │ │ │ (PDF,CSV) │ │ Ticket │ │ Dashboard │ │ │ └──────────┘ └──────────────┘ └──────────────────┘ │ │ │ │ External Integration: │ │ Slack, Jira, SIEM, CI/CD (Jenkins, GitHub Actions) │ └──────────────────────────────────────────────────────────────┘

주요 구성 요소:

4. 퀵스타트

4.1 설치 (Ubuntu 22.04 예시)

# Nessus 프로페셔널 다운로드 (Tenable 사이트에서 .deb 파일 획득)
wget https://www.tenable.com/downloads/api/v1/public/pages/nessus/downloads/<latest_deb>

# 설치
sudo dpkg -i Nessus-latest-ubuntu_amd64.deb

# 서비스 시작 & 활성화
sudo systemctl start nessusd
sudo systemctl enable nessusd

# 웹 UI 접속: https://localhost:8834
# 초기 설정 진행 (계정 생성, 라이선스 등록)

4.2 CLI를 사용한 첫 스캔

# nessuscli를 이용한 기본 스캔 실행 (로컬)
sudo nessuscli scan --target 192.168.1.0/24 --policy "Basic Network Scan"

# 결과는 /opt/nessus/var/nessus/reports/ 에 저장

4.3 Python SDK를 사용한 자동화 스캔

tenable 라이브러리를 활용한 예제:

import os
from tenable.io import TenableIO

# 환경 변수에서 API 키 로드 (권장)
access_key = os.environ.get('TIO_ACCESS_KEY')
secret_key = os.environ.get('TIO_SECRET_KEY')

tio = TenableIO(access_key, secret_key)

# 새 스캔 생성
scan = tio.scans.create(
    name='AI 인프라 정기 스캔',
    description='GPU 노드 및 MLflow 서버 취약점 점검',
    targets=['10.0.1.50', '10.0.1.60'],
    template='advanced'
)

# 스캔 실행 & 대기
scan.launch()
scan.wait()  # 완료까지 블로킹

# 결과 요약 출력
for finding in scan.results():
    print(f"{finding['plugin_id']}: {finding['severity']} - {finding['plugin_name']}")

⚠️ 주의: API 키는 절대 코드에 하드코딩하지 마세요. 환경 변수 또는 Vault를 사용하세요.

5. 핵심 설정 레퍼런스

Nessus 정책에서 자주 사용되는 설정 항목입니다.

설정 옵션 / 값 설명
Scan Type Basic, Discovery, Advanced, Web App, PCI 등 목적에 맞는 템플릿 선택
Port Scan Range 1-65535, common, all 스캔할 포트 범위
Credentials SSH, Windows, DB, SMB 등 인증 스캔을 위한 자격 증명
Performance max_hosts, max_checks, network_timeout 네트워크 부하 조절
Compliance CIS Benchmark, DISA STIG, Custom 규정 준수 템플릿 선택
Plugin Family AIX, Docker, Kubernetes, Cloud 등 40+ 특정 환경에 맞춘 플러그인 세트

6. 실무 팁 & 트러블슈팅

자주 겪는 문제와 해결책

문제 원인 해결책
스캔이 너무 느림 포트 범위가 넓거나 네트워크 대역폭 부족 타겟 수 제한, 포트 스캔을 common으로 변경, max_hosts 감소
인증 스캔 실패 SSH 키 / 비밀번호 오류, sudo 권한 부족 사용자에 sudo 권한 부여, 키 기반 인증 사용
컴플라이언스 템플릿 누락 라이선스 에디션 제한 (Expert만 가능) Nessus Expert로 업그레이드 또는 Tenable.sc 사용
Python SDK 연결 오류 API 키 만료, 잘못된 엔드포인트 Tenable.io 콘솔에서 새 키 생성, base_url 확인
GPU 노드 미탐지 NVIDIA 드라이버/툴킷이 방화벽으로 차단 포트 22(SSH), 443(API) 허용, nvidia-smi 원격 실행 가능하도록 설정

💡 프로 팁: AI 환경에서는 Kubernetes 플러그인 패밀리를 활성화하고, 컨테이너 이미지 스캔을 위해 Nessus를 Harbor 또는 GitLab Container Registry와 연동하세요.

7. 참고 자료