오늘 끝나면
취약점 스캐닝
- ✓취약점 스캐닝의 핵심 문제를 한 문장으로 설명한다
- ✓오른쪽 실습에서 취약점이 어떻게 움직이는지 관찰한다
- ✓다음 강의와 이어지는 한계를 말할 수 있다
실습 미션
알려진 구멍(CVE)을 자동으로 훑기 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.
성공 조건
- □실습의 기본값을 먼저 관찰
- □입력값이나 모드를 한 번 이상 바꿔 결과 비교
- □왜 결과가 바뀌었는지 한 문장으로 설명
화이트해킹 · 04
취약점
스캐닝
새 구멍을 발명하는 게 아님. 이미 공개된 구멍을 자동으로 훑는 것임.
버전을 알아내고 · 취약점 DB에 대조하고 · 위험도를 매김.
패치 안 한 구버전이 1순위 표적임. 그래서 방어는 단순함 — 패치.
스캐닝은 알려진 구멍을 훑는 일
취약점 스캐닝 하면 천재 해커가 새 구멍을 뚫는 그림을 떠올림. 현실은 반대임.
스캐너가 찾는 건 이미 알려진 취약점임.
누군가 발견해서 공개하고 · 번호(CVE)가 붙고 · DB에 등록된 구멍.
그 목록을 들고 대상 시스템을 빠르게 훑어보는 자동 도구임.
그래서 핵심은 속도임. 사람이 일일이 점검하면 며칠이 걸림.
스캐너는 수천 개 항목을 몇 분에 대조함.
공격자만 쓰는 도구 아님 — 방어팀이 자기 시스템을 먼저 훑어 구멍을 메우는 데 더 많이 씀.
이미 공개된 구멍
CVE 등록됨 · 스캐너가 잡음
패치로 메운 구멍
최신 버전엔 없음
아무도 모르는 구멍
제로데이 · DB에 없어 못 잡음
스캐너 = 공개된 목록 대조기. 모르는 건 못 찾음
CVE — 구멍마다 붙는 주민번호
취약점은 말로 부르면 헷갈림. 그래서 전 세계가 같은 번호로 부르기로 함.
그게 CVE임 — Common Vulnerabilities and Exposures.
공개된 취약점 하나에 CVE-연도-일련번호 형태의 고유 번호가 붙음.
제품·버전·증상이 함께 DB에 기록됨.
번호가 붙었다는 건 이미 세상에 공개됐다는 뜻임.
공격자도 보고 · 방어자도 봄. 같은 목록을 양쪽이 들고 있음.
먼저 메우는 쪽이 이김 — 공개됐는데 안 막은 시스템이 표적이 됨.
접두어
CVE
공개 연도
2099
일련번호
1042
구멍 하나 = 전 세계 공통 번호 하나 (위 번호는 가상 예시)
버전을 알아내 DB에 대조한다
스캐너의 핵심 동작은 두 단계임. 버전을 알아내고 · DB에 대조함.
소프트웨어는 자기 버전을 곳곳에 흘림.
응답 헤더의 배너 · 에러 페이지 · 기본 파일 이름.
이걸 모아 제품 + 버전을 특정함. 3강에서 본 정찰의 연장임.
오른쪽에서 직접 해봄. 가상 DB라 실제 공격은 없음.
소프트웨어와 버전을 고르면 그 버전에 걸리는 CVE와 위험도가 뜸.
버전을 올려보셈 — 패치된 최신 버전을 고르면 매칭이 사라짐. 이게 핵심임.
배너·헤더에서 캐낸 OpenWeb 서버 v1.2 을 DB와 대조함.
인증 우회 — 원격에서 관리자 권한
→ v1.4 에서 패치됨
경로 조작으로 파일 노출
→ v1.6 에서 패치됨
에러 페이지에 내부 경로 노출
→ v2.0 에서 패치됨
전부 교육용 가상 DB임. 버전을 올려보면 매칭이 줄어듦 — 스캐너가 찾는 건 이미 공개된 구멍뿐이라 패치하면 사라짐.
CVSS — 위험도를 0~10으로
구멍 100개가 나와도 다 똑같이 급하지 않음. 우선순위가 필요함.
그래서 CVSS로 점수를 매김 — 0.0부터 10.0까지.
원격에서 되나 · 권한이 필요한가 · 뚫리면 피해가 얼마나 큰가를 따져 한 숫자로 압축함.
9.0 이상은 치명, 7.0대는 높음, 그 아래는 보통·낮음으로 나뉨.
방어팀은 이 점수로 일의 순서를 정함.
치명적이고 · 인터넷에 노출됐고 · 패치가 나온 것부터 막음.
숫자가 높다고 무조건 먼저가 아니라, 노출 여부까지 묶어서 봐야 진짜 위험이 보임.
높을수록 급함 · 노출 여부까지 묶어 우선순위 정함
패치가 최선의 방어
스캐닝이 찾는 건 이미 공개된 구멍임. 공개됐다는 건 보통 패치도 나와 있다는 뜻임.
그래서 방어가 허무할 만큼 단순함 — 버전을 올리면 됨.
패치된 버전에는 그 CVE가 없음. 스캐너가 짚을 게 사라짐.
공격자가 노리는 건 늘 패치 안 한 구버전임.
현실에서 침해의 큰 몫이 이미 패치 나온 오래된 구멍에서 터짐.
그래서 자산 목록을 만들고 · 정기적으로 스스로 스캔하고 · 버전을 최신으로 유지하는 게 기본 방어임.
당장 못 올릴 땐 노출을 줄임 — 내부망으로 숨기거나 접근을 막아 표적 면을 좁힘.
Q. 취약점 스캐닝이 찾아내는 것은? (아무도 모르는 새 구멍 · 이미 공개된 알려진 구멍 · 사용자 비밀번호 · 네트워크 속도)
정답은 이미 공개된 알려진 구멍임.스캐너는 CVE로 등록·공개된 취약점 목록을 들고 버전을 대조함.
공개됐다는 건 보통 패치도 나와 있다는 뜻 — 그래서 패치로 막힘.
아무도 모르는 새 구멍(제로데이)은 DB에 없어서 스캐너로는 못 잡음.
방어 = 버전 올리기. 패치된 버전엔 그 구멍이 없음