스킬캠퍼스

오늘 끝나면

취약점 스캐닝

  • 취약점 스캐닝의 핵심 문제를 한 문장으로 설명한다
  • 오른쪽 실습에서 취약점이 어떻게 움직이는지 관찰한다
  • 다음 강의와 이어지는 한계를 말할 수 있다

실습 미션

알려진 구멍(CVE)을 자동으로 훑기 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.

성공 조건

  • 실습의 기본값을 먼저 관찰
  • 입력값이나 모드를 한 번 이상 바꿔 결과 비교
  • 왜 결과가 바뀌었는지 한 문장으로 설명

화이트해킹 · 04

취약점
스캐닝

새 구멍을 발명하는 게 아니다. 이미 공개된 구멍을 자동으로 훑는 일이다.
대상의 버전을 알아내고, 취약점 DB에 대조한 다음, 위험도를 매긴다.
패치 안 한 구버전이 1순위 표적이다. 그래서 방어는 단순하다. 패치하면 된다.

P.01화이트해킹 · 04

스캐닝은 알려진 구멍을 훑는 일

취약점 스캐닝이라 하면 천재 해커가 새 구멍을 뚫는 그림을 떠올린다. 현실은 반대다.

스캐너가 찾는 건 이미 알려진 취약점이다.
누군가 발견해 공개하고, 번호(CVE)가 붙고, DB에 등록된 구멍이다.
그 목록을 들고 대상 시스템을 빠르게 훑어보는 자동 도구다.

그래서 핵심은 속도다. 사람이 일일이 점검하면 며칠이 걸린다.
스캐너는 수천 개 항목을 몇 분 만에 대조한다.
공격자만 쓰는 도구가 아니다. 방어팀이 자기 시스템을 먼저 훑어 구멍을 메우는 데 더 많이 쓴다.

모르는 구멍 X · 이미 공개된 구멍 O
스캐너의 사정거리

이미 공개된 구멍

CVE 등록돼 스캐너가 잡는다

패치로 메운 구멍

최신 버전엔 없다

아무도 모르는 구멍

제로데이라 DB에 없어 못 잡는다

스캐너는 공개된 목록 대조기다. 모르는 건 못 찾는다

P.02화이트해킹 · 04

CVE, 구멍마다 붙는 주민번호

취약점을 말로 부르면 헷갈린다. 그래서 전 세계가 같은 번호로 부르기로 했다.

그게 CVE, Common Vulnerabilities and Exposures다.
공개된 취약점 하나에 CVE-연도-일련번호 형태의 고유 번호가 붙는다.
해당 제품과 버전, 증상이 함께 DB에 기록된다.

번호가 붙었다는 건 이미 세상에 공개됐다는 뜻이다.
공격자도 보고 방어자도 본다. 같은 목록을 양쪽이 들고 있는 셈이다.
먼저 메우는 쪽이 이긴다. 공개됐는데 안 막은 시스템이 표적이 된다.

구멍 하나 = CVE 번호 하나
CVE 번호 뜯어보기
CVE-2099-1042

접두어

CVE

공개 연도

2099

일련번호

1042

구멍 하나에 전 세계 공통 번호 하나가 붙는다 (위 번호는 가상 예시)

P.03화이트해킹 · 04

버전을 알아내 DB에 대조한다

스캐너의 핵심 동작은 두 단계다. 버전을 알아낸 다음 DB에 대조한다.

소프트웨어는 자기 버전을 곳곳에 흘린다.
응답 헤더의 배너, 에러 페이지, 기본 파일 이름이 그렇다.
이걸 모아 제품 + 버전을 특정한다. 3강에서 본 정찰의 연장이다.

소프트웨어와 버전을 고르면 그 버전에 걸리는 CVE와 위험도가 뜬다.
패치된 최신 버전을 고르면 매칭이 사라진다. 이게 핵심이다.

버전 식별 → 취약점 DB 매칭
CVE 매칭 · 가상 취약점 DB
입력, 소프트웨어
입력, 버전 식별

배너·헤더에서 캐낸 OpenWeb 서버 v1.2 을 DB와 대조한다.

출력, 대조 결과
3건 / 최고 CVSS 9.8
9.8CVSS
CVE-2099-1001치명

인증 우회, 원격에서 관리자 권한

→ v1.4 에서 패치됨

7.5CVSS
CVE-2099-1002높음

경로 조작으로 파일 노출

→ v1.6 에서 패치됨

5.3CVSS
CVE-2099-1003보통

에러 페이지에 내부 경로 노출

→ v2.0 에서 패치됨

전부 교육용 가상 DB다. 버전을 올려보면 매칭이 줄어든다. 스캐너가 찾는 건 이미 공개된 구멍뿐이라 패치하면 사라진다.

P.04화이트해킹 · 04

CVSS, 위험도를 0~10으로

구멍 100개가 나와도 다 똑같이 급하지는 않다. 우선순위가 필요하다.

그래서 CVSS로 점수를 매긴다. 0.0부터 10.0까지다.
원격에서 되는지, 권한이 필요한지, 뚫리면 피해가 얼마나 큰지를 따져 한 숫자로 압축한다.
9.0 이상은 치명, 7.0대는 높음, 그 아래는 보통과 낮음으로 나뉜다.

방어팀은 이 점수로 일의 순서를 정한다.
치명적이고 인터넷에 노출됐고 패치가 나온 것부터 막는다.
숫자가 높다고 무조건 먼저는 아니다. 노출 여부까지 묶어서 봐야 진짜 위험이 보인다.

구멍의 위험도를 숫자로 매김
CVSS · 위험도 0~10
9.010.0
치명
7.08.9
높음
4.06.9
보통
0.13.9
낮음

높을수록 급하다. 노출 여부까지 묶어 우선순위를 정한다

P.05화이트해킹 · 04

패치가 최선의 방어

스캐닝이 찾는 건 이미 공개된 구멍이다. 공개됐다는 건 보통 패치도 나와 있다는 뜻이다.

그래서 방어가 허무할 만큼 단순하다. 버전을 올리면 된다.
패치된 버전에는 그 CVE가 없다. 스캐너가 짚을 게 사라진다.
공격자가 노리는 건 늘 패치 안 한 구버전이다.

현실에서 침해의 큰 몫이 이미 패치 나온 오래된 구멍에서 터진다.
그래서 자산 목록을 만들고, 정기적으로 스스로 스캔하고, 버전을 최신으로 유지하는 게 기본 방어다.
당장 못 올릴 땐 노출을 줄인다. 내부망으로 숨기거나 접근을 막아 표적이 되는 면을 좁힌다.

Q. 취약점 스캐닝이 찾아내는 것은? (아무도 모르는 새 구멍 · 이미 공개된 알려진 구멍 · 사용자 비밀번호 · 네트워크 속도)정답은 이미 공개된 알려진 구멍이다.
스캐너는 CVE로 등록되고 공개된 취약점 목록을 들고 버전을 대조한다.
공개됐다는 건 보통 패치도 나와 있다는 뜻이고, 그래서 패치로 막힌다.
아무도 모르는 새 구멍(제로데이)은 DB에 없어서 스캐너로는 못 잡는다.
공개 → 패치 나옴 → 안 올린 구버전이 표적
공개 → 패치 → 안 올리면 표적
구멍 발견과 공개CVE 번호가 붙는다
패치 버전 배포벤더가 고친 버전을 낸다
안 올린 구버전여기가 표적이 된다

방어는 버전 올리기다. 패치된 버전엔 그 구멍이 없다

3줄 요약

  1. 1알려진 구멍(CVE)을 자동으로 훑기
  2. 2취약점 스캐닝은 기초·정찰 → 웹 취약점 → 시스템 침투 → 네트워크·IoT → 레드팀·AI 흐름 안의 한 칸이다.
  3. 3개념을 외우는 것보다 입력을 바꾸면 무엇이 달라지는지 보는 것이 우선이다.

완료 전 점검

복습 카드

취약점

알려진 구멍(CVE)을 자동으로 훑기

익스플로잇

취약점을 실제로 이용하는 코드나 기법

페이로드

공격이 실행할 실제 코드나 데이터