오늘 끝나면
중간자 공격
- ✓중간자 공격의 핵심 문제를 한 문장으로 설명한다
- ✓오른쪽 실습에서 중간자이 어떻게 움직이는지 관찰한다
- ✓다음 강의와 이어지는 한계를 말할 수 있다
실습 미션
ARP 스푸핑 — 둘 사이에 끼어들기 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.
성공 조건
- □실습의 기본값을 먼저 관찰
- □입력값이나 모드를 한 번 이상 바꿔 결과 비교
- □왜 결과가 바뀌었는지 한 문장으로 설명
화이트해킹 · 14
중간자
공격
둘 사이에 몰래 끼어 앉는다.
오가는 말을 다 보고 바꿔치기까지 한다.
막는 핵심은 HTTPS와 인증서 검증이다.
둘 사이에 끼어 가로채고 바꿈
중간자 공격(MITM)은 단순하다. 둘이 주고받는 길 한가운데에 몰래 끼어 앉는 것이다.
나와 서버는 직접 말한다고 믿지만 실은 공격자를 거쳐 간다.
내 글은 공격자 손을 한 번 거쳐 서버로 가고, 서버의 답도 공격자를 거쳐 나에게 온다.
끼어 앉으면 두 가지를 한다.
하나는 엿보기다. 오가는 내용을 그대로 읽는다.
하나는 바꿔치기다. 계좌번호와 금액, 받는 사람을 슬쩍 고쳐 보낸다.
나도 서버도 중간에 누가 있는 줄 모른다. 그게 가장 무서운 점이다.
내용을 읽음
글자를 고침
ARP 스푸핑으로 길을 빼앗음
같은 와이파이에서 길 한가운데로 끼어드는 흔한 방법이 ARP 스푸핑이다.
ARP는 같은 망 안에서 “이 IP 가진 사람 누구냐, MAC 주소 알려줘”를 묻는 방송이다.
그런데 답을 검증 없이 믿는다. 먼저 큰 소리로 답한 쪽을 그냥 받아 적는다.
공격자는 여기를 노린다.
내 기기엔 “공유기는 나야”라고 거짓 답을 뿌리고, 공유기엔 “그 기기는 나야”라고 뿌린다.
양쪽 주소표가 공격자로 덮어써지고, 이제 모든 트래픽이 공격자를 거친다.
공격자는 받아서 그대로 넘겨주기만 하면 된다. 둘 다 평소처럼 보인다.
“이 IP 누구냐”에 답을 검증 없이 믿는다 · 먼저 답한 쪽을 받아 적는다
공격자 → 나
“공유기는 나야”
공격자 → 공유기
“그 기기는 나야”
ARP 스푸핑 직접 해보기
실제 공격이 아니라 길이 어떻게 휘는지 보는 개념 시뮬이다.
평소엔 내 기기에서 공유기를 거쳐 서버로 똑바로 간다.
ARP 스푸핑을 켜면 길이 공격자를 거치도록 휘어서, 패킷이 가운데를 한 번 들른다.
핵심은 마지막 스위치다.
인증서 검증 OFF면 끼어들어도 나도 서버도 모르고 그냥 통한다.
인증서 검증 ON이면 공격자가 내민 가짜 신분증이 들통나고, 연결이 끊기고 경고가 뜬다.
나 → 공유기 → 서버로 똑바로 간다. 가운데 끼어든 자가 없다.
안전, HTTPS + 인증서 검증이 MITM을 막음
HTTPS, 봉투를 봉인하기
끼어드는 걸 다 막긴 어렵다. 그래서 끼어들어도 못 읽고 못 바꾸게 만드는 것이 HTTPS다.
평문(http)은 엽서라서 거치는 사람이 다 읽고 글자도 고친다.
HTTPS는 봉인된 봉투다. 가운데서 뜯으면 표가 나고 내용도 암호라 못 읽는다.
그래서 ARP 스푸핑으로 길을 빼앗아도 손에 들어오는 건 암호 덩어리다.
읽지도 못하고, 글자를 바꾸면 봉인이 깨져 서버가 버린다.
엿보기와 바꿔치기가 동시에 막힌다.
송금: 받는 사람 = 철수
x9$#k2..암호..7Qz%
방어, 인증서 검증과 HSTS
봉투만으론 부족하다. 공격자가 “내가 그 서버야” 하며 자기 봉투를 내밀 수 있다. 그래서 신분증을 본다.
서버는 인증기관(CA)이 서명한 인증서로 자기가 진짜 bank.com임을 증명한다.
공격자는 그 서명을 위조하지 못한다. 가짜 인증서를 내밀면 브라우저가 경고를 띄운다.
이 경고를 절대 무시하지 않는 게 MITM 방어의 절반이다.
남은 절반은 HSTS다.
서버가 “앞으로 이 사이트는 무조건 HTTPS로만 와”라고 못 박는 규칙이다.
공격자가 슬쩍 http로 떨어뜨리려 해도 브라우저가 거부한다. 평문으로 샐 틈을 없앤다.
Q. 중간자 공격(MITM)을 막는 것은? (와이파이 비밀번호 길게 · 서버 인증서 검증 + HTTPS · 화면 밝기 · 쿠키 삭제)
정답은 서버 인증서 검증 + HTTPS다.HTTPS가 내용을 봉인해 엿보기와 바꿔치기를 막는다.
인증서 검증이 가짜 서버를 걸러낸다. 가짜면 경고가 뜬다.
여기에 HSTS로 http 강등까지 막으면 끼어들 자리가 사라진다.
HTTPS
내용을 봉인해 못 읽고 못 바꾼다
인증서 검증
가짜 서버를 걸러내고 가짜면 경고
HSTS
http 강등을 차단해 평문으로 못 샌다
세 겹이 겹치면 끼어들 자리가 사라진다 · 경고는 절대 무시 금지