알려진 CVE 노출은 서버가 구동 중인 소프트웨어의 버전 정보가 외부 스캔 데이터베이스에 수집되어, 해당 버전의 공개 취약점 목록과 함께 누구나 조회 가능한 상태를 말한다.
Shodan InternetDB는 API 키 없이 IPv4 주소 하나만으로 열린 포트·CPE·알려진 CVE를 반환한다. 방어자가 쓸 수 있다는 것은 공격자도 똑같이 쓴다는 뜻이다.
이 글은 자주 발생하는 실수 패턴, 표준 구현 코드, 30초 자가진단, 24시간 패치 순서를 정리했다.
한눈에 보는 핵심
Q. 스캔당한 적이 없는데 어떻게 목록에 오르나요? A. Shodan 같은 서비스가 인터넷 전체를 상시 크롤링해 배너·CPE를 수집합니다. 공격자가 내 서버를 직접 스캔할 필요 없이 이미 축적된 데이터를 조회만 하면 되고, InternetDB 데이터셋은 주 1회 갱신됩니다. Q. CVSS 점수가 높은 것부터 패치하면 되나요? A. CVSS는 심각도이지 악용 가능성이 아닙니다. 실제 우선순위는 CISA KEV(현재 악용 중) 등재 여부와 EPSS(30일 내 악용 확률)로 잡아야 합니다. 2026년 2분기 KEV 등재 항목의 EPSS 평균은 40.8%였습니다. Q. 패치까지 얼마나 여유가 있나요? A. 여유는 줄고 있습니다. CVE 공개부터 KEV 등재까지 중앙값이 120일에서 80일로 짧아졌고, 2026년 상반기 KEV의 23.43%는 CVE가 발행된 날 또는 그 이전에 이미 악용됐습니다. 즉 상당수는 공개 시점에 이미 늦습니다.자주 발생하는 실수 패턴
| # | 패턴 | 위험도 |
|---|---|---|
| 1 | 외부에서 보이는 자산 목록 자체가 없음 — 방치된 서버·테스트 인스턴스 미파악 | 치명 |
| 2 | 관리 포트(22·3389·5432·6379·9200)를 0.0.0.0으로 개방 | 치명 |
| 3 | EOL 런타임·프레임워크 운영 — 패치가 아예 발행되지 않는 상태 | 치명 |
| 4 | CVSS 점수만 보고 우선순위 결정 — KEV·EPSS 미반영 | 높음 |
| 5 | 패치 SLA 부재 — '다음 정기 배포 때' 처리로 80일 중앙값을 초과 | 높음 |
| 6 | CDN 뒤 원본 서버 IP가 DNS 이력·인증서 로그로 노출 | 높음 |
표준 구현 코드
#!/usr/bin/env bash
# 보유 도메인의 외부 노출 CVE를 무료로 확인 (InternetDB: 인증 불필요)
set -euo pipefail
while read -r host; do
ip=$(dig +short "$host" | grep -E '^[0-9.]+$' | head -1) || continue
[ -z "$ip" ] && continue
echo "== $host ($ip)"
curl -s "https://internetdb.shodan.io/$ip" \
| python -c 'import sys,json; d=json.load(sys.stdin); print(" ports:", d.get("ports")); print(" cves :", d.get("vulns") or "none")'
done < domains.txt
# 나온 CVE가 실제로 악용 중인지 대조 (CISA KEV)
curl -s https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json \
| python -c 'import sys,json; print({v["cveID"] for v in json.load(sys.stdin)["vulnerabilities"]} & {"CVE-2026-0001"})'
핵심은 "동작하는 코드"와 "안전한 코드"가 다르다는 점이다.
AI 코딩 도구는 기능 충족 코드를 우선 출력하므로 보안 분기는 별도로 강제해야 한다.
미들웨어·정책·CI 게이트로 모든 경로에 일괄 적용하는 것이 표준이다.
30초 자가진단
# 1) 내 서버가 외부에 어떻게 보이는가 (인증 불필요)
curl -s https://internetdb.shodan.io/$(dig +short example.com | head -1)
# 2) 열려 있으면 안 되는 관리 포트가 응답하는가
nc -zv -w2 example.com 22 3389 5432 6379 9200 27017 2>&1 | grep -i succeeded
# 3) 반환된 CVE 중 KEV 등재분이 있는가 → 있으면 즉시 조치 대상
# (KEV = 실제 악용 확인된 취약점. CVSS보다 우선한다)
위 시그널이 발견되면 결함이다. CISA 알려진 악용 취약점(KEV) 카탈로그를 함께 참조하라.
24시간 패치 절차
| 순위 | 조치 |
|---|---|
| 1 | InternetDB 조회 결과에서 KEV 등재 CVE를 먼저 골라낸다 — 이것이 0순위 |
| 2 | 관리 포트(22·3389·DB·캐시)를 인터넷에서 닫고 VPN·보안그룹 화이트리스트로 전환 |
| 3 | KEV 항목 패치 또는 완화책 적용, 패치 불가 시 해당 서비스를 외부에서 차단 |
| 4 | EOL 런타임은 패치가 없으므로 업그레이드 일정을 별도 과제로 등록 |
| 5 | 외부 자산 목록을 주 1회 재수집 — InternetDB 갱신 주기와 맞춘다 |
지금 해야 할 것
실무자: CodeScan 무료 스캔으로 30초 점검 후 우선순위대로 패치.
CISO·임원: 조직 전체 점검·규제 대응은 SENTRIX 30분 1:1 상담으로.
결함은 발견 즉시, 늦어도 24시간 안에 패치하는 것이 표준이다.