991. ARP 스푸핑 - 근거리 통신망 L2 계층 도청 위조 중간자 공격 MAC 주소 변조 ARP 캐시 오염 방어 기법 정적 테이블 설정 통계망 구조
핵심 인사이트 (3줄 요약)
- ARP 프로토콜은 인증 절차가 없는 '성선설' 기반으로 설계되어 위조된 응답 패킷도 무조건 신뢰하는 치명적 취약점을 가집니다.
- 공격자는 가짜 MAC 주소가 담긴 ARP 응답을 지속적으로 보내 피해자의 ARP 캐시 테이블을 오염(Poisoning)시키고 통신을 가로챕니다.
- 중간자 공격(MITM)을 통해 데이터를 스니핑하거나 조작할 수 있으며, 정적 ARP 설정이나 DAI(Dynamic ARP Inspection) 같은 방어 기법이 필수적입니다.
Ⅰ. ARP (주소 결정 프로토콜)의 근원적 취약점 🌟
- ARP는 논리적 IP 주소를 물리적 기계 주소(MAC)로 변환해 주는 착한 프로토콜입니다.
- 성선설의 비극: 컴퓨터는 "누군가 알려준 주소는 무조건 100% 진실이다"라고 믿도록 설계되었습니다. 응답 패킷이 진짜인지 가짜인지 증명(인증)하는 절차가 아예 없습니다.
- 또한, 질문(Request)을 하지 않았는데도 뜬금없이 날아온 응답(Reply) 패킷조차 넙죽 받아먹고 자기 장부(ARP Cache Table)에 업데이트해 버리는 멍청한 성질을 가집니다.
📢 섹션 요약 비유: 누군가 길에서 "내가 이 동네 파출소장이야!"라고 외치면, 경찰 신분증을 확인하지도 않고 무조건 믿고 112 신고를 그 사람에게 몰아주는 맹목적 믿음과 같습니다.
Ⅱ. ARP 스푸핑(Spoofing) 공격의 3단계 마법 🌟
- 스푸핑(Spoofing)은 '속이다, 위장하다'라는 뜻입니다.
- 위장 (해커의 뻥카): 해커가 내 PC에게 가짜 ARP 응답을 계속 뿌립니다. "야 내가 공유기(게이트웨이)야. 내 MAC 주소가
HH:HH야!" 동시에 진짜 공유기에게도 뻥을 칩니다. "공유기야! 내가 101번 PC(내 PC)야! 내 MAC 주소가HH:HH야!" - 캐시 포이즈닝 (장부 조작): 내 PC의 램(ARP Cache Table)에
[공유기 IP = 해커 MAC 주소]라는 거짓말이 사실로 박제됩니다. - 중간자 공격 (MITM, Man-In-The-Middle):
- 내가 네이버에 로그인할 때 쏘는 패킷이 진짜 공유기가 아니라 해커의 컴퓨터로 들어갑니다.
- 해커는 패킷 속의 비밀번호를 눈으로 싹 읽어본(스니핑) 뒤, 들키지 않기 위해 다시 그 패킷을 진짜 공유기로 토스(릴레이)해 줍니다.
- 나는 인터넷이 잘 되니까 내 비밀번호가 옆자리 해커를 거쳐서 나가는지 꿈에도 모릅니다. (가장 완벽한 도청)
┌───────────────┐ ┌───────────────┐
│ 희생자(Victim)│ │ 라우터(Router)│
│ (192.168.0.2) │ │ (192.168.0.1) │
│ MAC: AA:AA:AA │ │ MAC: BB:BB:BB │
└───────┬───────┘ └───────┬───────┘
│ │
│ ┌───────────────┐ │
│ ARP 응답 │ 해커(Hacker) │ ARP 응답 │
│◄──────────────┤ (192.168.0.3) ├──────────────►│
│"내가 라우터다!" │ MAC: CC:CC:CC │"내가 희생자다!" │
│(MAC: CC:CC:CC)│ │(MAC: CC:CC:CC)│
│ └───────┬───────┘ │
│ │ │
└───────────────────────┴───────────────────────┘
데이터 트래픽이 해커를 거쳐 흐름
📢 섹션 요약 비유: 해커가 내게는 "내가 은행이야!"라고 속이고, 진짜 은행에게는 "내가 고객이야!"라고 양쪽을 속인 뒤, 중간에서 내 돈과 비밀번호를 가로채면서 정상 거래인 척 전달만 해주는 완벽한 사기극입니다.
Ⅲ. ARP 스푸핑의 응용 (ARP Redirect, ARP Flooding)
- ARP 리다이렉트: 해커가 공유기 행세를 하여 모든 사내망 트래픽을 자기한테 꺾이게 만들어 도청하는 기본 스킬입니다.
- ARP 플러딩: 스위치를 박살 내는 공격입니다. 스위치 장비의 MAC 주소 기억 장부(MAC Table)에 가짜 MAC 주소 수십만 개를 1초 만에 폭격합니다. 스위치 뇌 용량이 터지면, 스위치는 바보(허브, Hub)로 강등되어 스위칭을 못 하고 모든 구멍에 패킷을 다 뿌려버리게 됩니다(Fail-Open 현상). 이때 해커가 모든 방의 데이터를 다 주워 먹습니다.
📢 섹션 요약 비유: 사내 우체국 표지판을 자기 자리로 몰래 돌려놓는 것(리다이렉트)을 넘어, 우체국 장부에 수십만 개의 유령 주소를 도배해 우체국 시스템을 붕괴시키고 모든 편지가 바닥에 뿌려지게 만드는(플러딩) 테러 행위입니다.
Ⅳ. 어떻게 막을 것인가? (방어 대책) 🌟
- 가장 확실한 노가다 (정적 ARP 설정):
- 내 PC 명령창에
arp -s [공유기 IP] [진짜 MAC 주소]를 쳐서 수동으로 못 박아 버립니다. 이렇게 정적(Static)으로 박아두면, 해커가 옆에서 아무리 "내가 공유기야!"라고 꼬셔도 절대 장부 값이 변하지 않습니다(해킹 100% 방어). 하지만 100대 PC를 관리자가 매일 손으로 쳐야 하니 불가능에 가깝습니다.
- 내 PC 명령창에
- 다이나믹 ARP 인스펙션 (DAI, 스위치 단 방어):
- 고가의 L2 스위치에 방어막을 켭니다. 스위치가 평소에 "1번 구멍은 철수, 2번 구멍은 영희"라고 DHCP 장부를 훔쳐보고 기억해 둡니다(DHCP 스누핑).
- 3번 구멍(해커)에서 갑자기 "내가 1번 철수다!"라는 위조된 ARP 패킷이 튀어나오면, 스위치가 "이 새끼 사기꾼이네! 너 원래 3번 구멍이잖아!" 라며 현장에서 패킷을 찢어버립니다.
📢 섹션 요약 비유: 수첩에 '진짜 은행 전화번호'를 펜으로 꾹꾹 눌러 써서 지워지지 않게 고정(정적 설정)하거나, 빌딩 경비원(스위치)이 방문자 명단(DHCP)과 대조해 가짜 신분증을 내미는 사람을 로비에서 쫓아내는(DAI) 방식입니다.
👶 어린이를 위한 3줄 비유 설명
- 반에서 짝꿍에게 비밀 쪽지를 주려고 반장에게 부탁했어요.
- 그런데 나쁜 친구가 "내가 반장이야!"라고 거짓말을 하고 내 쪽지를 받아 몰래 읽어봤어요.
- 그리고 들키지 않으려고 진짜 반장에게 내 쪽지를 다시 전해주는 얄미운 중간 가로채기 마법이랍니다!