1076. ARP 스푸핑 중간자 방어 (동적 검사 체계) - ARP Spoofing Man-in-the-Middle (MITM) Dynamic ARP Inspection DHCP 스누핑 바인딩 네트워크 L2 보안

핵심 인사이트: (511, 888번 ARP 복습) 카페 와이파이에 접속했다. 내 폰이 "인터넷 공유기(게이트웨이) 192.168.0.1의 맥(MAC) 주소 누구냐!" 하고 소리(ARP 요청)를 질렀다. 그 순간 옆자리 구석에 앉은 해커가 공유기보다 0.1초 먼저 대답한다. "나야 나! 내 MAC 주소가 공유기야!" 멍청한 내 폰은 해커를 진짜 공유기로 믿고 내 네이버 로그인 비번을 다 해커한테 던져버린다(중간자 공격, ARP 스푸핑). 방화벽? 백신? 암호화? 다 소용없다. 공유기가 해킹당한 게 아니라 내 주소록 자체가 오염됐기 때문이다. "야! 스위치(허브) 기계야! 네가 중간에서 오가는 ARP 대답 패킷을 싹 다 낚아채서 훔쳐봐! 해커가 구라 친 MAC 주소 패킷이면 그 자리에서 칼로 찢어버려!" 해커의 입을 꿰매버리는 L2 최강의 방패, DAI다.

Ⅰ. ARP 스푸핑 (ARP Spoofing)의 재앙적 원리

  • ARP (Address Resolution Protocol): IP 주소(L3)를 MAC 주소(L2 하드웨어 주소)로 바꿔주는 묻고 답하기 프로토콜입니다.
  • 치명적 결함 (멍청한 신뢰): ARP는 묻지 않았는데도 누군가 답장(ARP Reply)을 보내면 의심 1도 없이 자기의 주소록(ARP 캐시 테이블)을 덮어써 버리는 치명적 구조 결함이 있습니다.
  • 중간자 공격 (MITM, Man-in-the-Middle):
    • 해커가 내 PC에는 "내가 라우터(공유기)야!"라고 구라를 치고(가짜 MAC 전송), 라우터에게는 "내가 네 PC야!"라고 구라를 칩니다.
    • 내 PC와 라우터의 ARP 주소록은 해커의 MAC 주소로 독극물 오염(Poisoning)이 됩니다. 내 PC에서 나가는 모든 은행, 게임 패킷은 라우터가 아니라 해커의 컴퓨터를 핑퐁 쳐서(도청, 스니핑) 날아가게 됩니다. 인터넷은 정상적으로 되기 때문에 유저는 해킹당한 사실을 꿈에도 모릅니다.

Ⅱ. 구식 방어책의 붕괴

  • 정적(Static) ARP 세팅: 컴퓨터(cmd 창)에 arp -s 192.168.0.1 00:AA:BB...라고 라우터 주소를 수동으로 영구 못 박아 버립니다. 100% 안전하지만, 직원 1만 명 PC를 일일이 세팅해야 하고 공유기 1대 바꾸면 전 회사가 마비되는 노가다입니다.

Ⅲ. 궁극의 해결책: DAI (Dynamic ARP Inspection, 동적 ARP 검사) 🌟 핵심 기출 🌟

컴퓨터(엔드포인트)가 멍청하면, 중간 길목인 스위치 장비가 똑똑해져서 막아주는 L2 스위치 보안의 끝판왕입니다.

1단계: DHCP 스누핑 바인딩 (DHCP Snooping Binding Table)의 확보

  • DAI가 작동하려면 먼저 '누가 진짜 IP와 MAC을 가졌는지' 정답지가 있어야 합니다.
  • 직원이 아침에 출근해 랜선을 꽂으면 공유기(DHCP 서버)한테 IP를 받아 갑니다.
  • 1075번처럼 스위치 장비가 중간에서 이 DHCP IP 할당 과정을 몰래 훔쳐보고(스누핑), 절대 깨지지 않는 정답지 장부(Binding Table)를 꼼꼼히 적어둡니다. ("아하, 1번 포트에 꽂힌 놈은 10.0.0.5 IP에 MAC은 AA:BB 네!")

2단계: 동적 ARP 쳐내기 (DAI 차단) 🌟

해커(포트 2번)가 장난을 시작합니다. "내가 라우터 IP 10.0.0.1 이고, 내 MAC은 CC:DD 야!" (가짜 ARP Reply 발송)

  • 가로채기 (Intercept): 길목에 있던 스위치가 이 ARP 패킷을 허공에서 낚아챕니다.
  • 정답지 대조 (Inspection): 아까 1단계에서 만들어둔 정답지 장부(DHCP 스누핑 테이블)를 쓱 봅니다.
  • 철퇴 (Drop): "어? 내 장부에는 10.0.0.1 라우터 MAC이 FF:FF라고 적혀있는데? 2번 포트 너 해커 새끼지!!" 스위치는 즉각 해커의 가짜 ARP 패킷을 그 자리에서 갈기갈기 찢어버리고(Drop), 해커가 꽂힌 2번 포트를 셧다운(err-disable)시켜버려 네트워크 밖으로 아예 내쫓아버립니다.

Ⅳ. 네트워크 망분리와의 연계

1079번 망분리나 1044번 마이크로 세그멘테이션을 쓰는 근본적 이유도, 이 끔찍한 ARP 스푸핑 같은 L2 브로드캐스트 해킹 공격이 옆방(다른 부서) 서버로 넘어가지 못하게 방폭문을 닫아버리기 위함입니다.

📢 섹션 요약 비유: 기존 ARP 스푸핑 해킹은 보이스피싱 사기꾼이 은행 고객에게 전화를 걸어 **"고객님, 오늘부터 저희 국민은행 입금 계좌번호(MAC 주소)가 제 대포통장 번호로 바뀌었습니다!"**라고 문자를 보내면, 멍청한 고객의 휴대폰 주소록(ARP 캐시)이 의심 없이 덮어씌워져 평생 사기꾼 통장으로 돈을 쏘는 재앙입니다. 이 바보 고객을 지키기 위한 방어 기술 **DAI(동적 ARP 검사)**는 통신사 길목(스위치 장비)에 앉아있는 **'철통 우체국 검열관'**입니다. 이 검열관은 애초에 누가 어느 계좌번호를 발급받았는지 완벽한 '진짜 고객 장부(DHCP 스누핑 테이블)'를 몰래 복사해 갖고 있습니다. 사기꾼이 고객에게 "내 계좌가 국민은행이다"라는 가짜 우편물(ARP 조작)을 쏘는 순간, 중간 길목의 검열관이 편지를 뜯어보고 진짜 장부와 대조해 봅니다. "어? 국민은행 진짜 계좌번호랑 다른데? 이놈 사기꾼(해커)이네!" 검열관은 0.1초 만에 사기꾼의 편지를 찢어버려, 바보 같은 고객은 해킹 편지가 왔는지조차 모르게 완벽히 지켜주는 길목의 절대 보안관입니다.