703. ARP 스푸핑 - MAC 주소 기만 타겟 PC 트래픽 탈취, 정적 대응 방어

핵심 인사이트: 같은 사무실 직원들이 1번 공유기를 통해 인터넷을 한다. 해커가 사무실 구석에 앉아서 "얘들아! 내 노트북이 1번 공유기야! 인터넷 갈 거면 다 나한테 편지 줘!"라고 소리친다. 컴퓨터들은 바보같이 진짜 공유기를 버리고 해커에게 패킷을 던지기 시작한다. 해커가 중간에서 직원들의 비밀번호를 싹 다 읽어보고 진짜 공유기로 토스해 주는 끔찍한 실내망 해킹, 이것이 ARP 스푸핑이다.

Ⅰ. ARP 프로토콜의 허술한 맹점

  • ARP (Address Resolution Protocol): 컴퓨터가 통신할 때, 상대방의 IP 주소를 이용해 물리적인 MAC 주소(랜카드 번호)를 찾아내는 프로토콜입니다.
  • 문제점: ARP는 "192.168.0.1(공유기 IP) 가진 놈 MAC 주소 뭐야?"라고 물었을 때, 누군가 "그거 나야! 내 MAC 주소 AA:BB야!"라고 대답하면, 그 대답이 진짜인지 가짜인지 전혀 의심하지 않고 자신의 ARP 캐시(메모리) 장부에 그대로 덮어써 버리는 치명적인 건망증과 순진함을 가지고 있습니다.

Ⅱ. ARP 스푸핑 공격의 동작 시나리오 🌟

해커는 이 순진함을 악용하여 내부망(LAN) 전체의 트래픽을 가로채는 중간자 공격(MitM)을 시전합니다.

  1. 해커가 타겟 컴퓨터(희생자 A)에게 가짜 ARP 응답 패킷(ARP Reply)을 무차별로 날립니다.
  2. 메시지 내용: "안녕? 내가 게이트웨이 라우터(공유기)야! 내 MAC 주소는 [해커의 MAC]이야!"
  3. 희생자 A의 컴퓨터는 바보같이 자신의 ARP 장부를 업데이트하여, 공유기의 MAC 주소를 해커의 MAC 주소로 잘못 덮어씁니다. (ARP Cache Poisoning, 캐시 오염)
  4. 이제 희생자 A가 네이버에 접속하려고 패킷을 날리면, 그 패킷은 진짜 공유기가 아니라 모조리 해커의 컴퓨터로 쏙쏙 들어옵니다.
  5. 해커는 패킷 안에 든 평문 비밀번호를 쓱 훔쳐본 뒤(스니핑), 들키지 않게 다시 진짜 공유기로 패킷을 친절하게 토스(Relay)해 줍니다. 희생자 A는 인터넷이 잘 되니까 자기가 해킹당하고 있다는 사실을 영원히 모릅니다.

Ⅲ. ARP 스푸핑의 확인 및 대응 방어 기법 🌟

1. 정적 ARP 테이블 설정 (Static ARP) - 가장 확실한 예방

  • 컴퓨터가 남의 말을 듣고 동적으로 장부를 바꾸는 게 문제라면, 아예 관리자가 명령어를 쳐서 장부를 '고정(Static)'시켜 버리면 됩니다.
  • 윈도우 CMD에서 arp -s [공유기 IP] [공유기 진짜 MAC 주소] 명령어를 치면, 시스템에 자물쇠가 걸려 해커가 아무리 가짜 방송을 때려도 내 컴퓨터가 절대 속지 않습니다.

2. ARP Spoofing 탐지 솔루션 도입

  • 네트워크 상에서 ARP 패킷이 너무 비정상적으로 많이(1초에 수백 번씩) 날아다니거나, 2대의 컴퓨터가 서로 똑같은 MAC 주소를 쓰겠다고 싸우고 있는 걸 탐지하면 경고를 울려주는 방어 소프트웨어(XArp, ARPWatch 등)를 설치합니다.

3. 암호화 통신 (HTTPS, SSH) 사용

  • 만약 내가 공유 식당이나 카페 와이파이에서 ARP 스푸핑을 당했더라도, 내가 네이버에 **HTTPS(TLS 암호화)**로 접속했다면, 해커에게 들어가는 내 아이디와 비밀번호는 온통 쓰레기 문자로 암호화되어 있어 읽을 수 없습니다. 이것이 공용 와이파이에서 절대 암호화되지 않은 HTTP 사이트를 쓰면 안 되는 이유입니다.

📢 섹션 요약 비유: 부서 회식에서 부장님(진짜 공유기)이 카드를 꺼내며 "자, 결제할 영수증들 다 내 쪽으로 넘겨라!" 하셨습니다. 그런데 옆 테이블에 앉은 사기꾼(해커)이 갑자기 손을 번쩍 들며 "제가 부장입니다! 영수증 이쪽으로 주시면 됩니다!"라고 외칩니다(ARP 스푸핑). 순진한 신입사원들(일반 PC)은 얼굴도 안 보고 사기꾼에게 결제 서류를 다 갖다 바칩니다. 이걸 막으려면 사장님이 아예 직원들 수첩에 "부장님 얼굴은 이 사람뿐이다!"라고 못 박아두고 절대 고치지 못하게(정적 ARP) 만들어야 합니다.