ARP 스푸핑이란 무엇인가?
네트워크에서 컴퓨터가 서로 통신하려면 IP 주소뿐만 아니라 MAC 주소도 필요합니다.
같은 네트워크 안에서 특정 IP 주소를 가진 장치의 MAC 주소를 알아내기 위해 사용하는 프로토콜이 ARP(Address Resolution Protocol)입니다.
ARP 스푸핑(ARP Spoofing)은 공격자가 정상적인 ARP 정보를 위조하여 자신의 MAC 주소를 다른 장치의 IP 주소와 연결시키는 공격 방식입니다.
쉽게 말하면 공격자가 네트워크 장치에게 잘못된 주소 정보를 전달하여 네트워크 통신이 자신을 거쳐가도록 유도하는 공격이라고 할 수 있습니다.
정상적인 통신PC A ───────→ PC B
ARP 스푸핑이 발생하면 다음과 같은 형태가 될 수 있습니다.
PC A ──→ 공격자 ──→ PC B ↑ 통신 가로채기
이처럼 공격자가 두 장치 사이의 통신에 끼어드는 상황을 만들 수 있습니다.
ARP란 무엇인가?
ARP 스푸핑을 이해하려면 먼저 ARP의 역할을 알아야 합니다.
ARP는 IP 주소에 대응하는 MAC 주소를 확인하는 프로토콜입니다.
예를 들어 PC A가 같은 네트워크에 있는 192.168.0.20이라는 IP 주소의 장치와 통신하려고 한다고 가정해 보겠습니다.
PC A는 해당 IP 주소를 가진 장치의 MAC 주소를 알아야 합니다.
IP 주소192.168.0.20 ↓ARP 요청 ↓MAC 주소 확인
ARP 응답을 통해 해당 장치의 MAC 주소를 확인하면 PC A는 해당 MAC 주소를 이용해 프레임을 전달할 수 있습니다.
ARP 요청과 응답
ARP는 기본적으로 요청과 응답을 통해 IP 주소와 MAC 주소의 관계를 확인합니다.
예를 들어 PC A가 192.168.0.20의 MAC 주소를 찾는 상황을 생각해 보겠습니다.
PC A192.168.0.10 ↓"192.168.0.20을 사용하는 장치의 MAC 주소가 무엇인가?" ↓네트워크
해당 IP 주소를 사용하는 장치는 자신의 MAC 주소를 응답으로 전달합니다.
192.168.0.20 ↓MAC: AA:BB:CC:DD:EE:FF
PC A는 이 정보를 이용해 목적지 장치와 통신할 수 있습니다.
ARP 캐시란 무엇인가?
컴퓨터는 매번 ARP 요청을 보내지 않도록 IP 주소와 MAC 주소의 관계를 일정 시간 동안 저장할 수 있습니다.
이 정보를 ARP 캐시(ARP Cache)라고 합니다.
예를 들어 다음과 같이 저장될 수 있습니다.
IP 주소 MAC 주소192.168.0.1 → AA:AA:AA:AA:AA:AA192.168.0.20 → BB:BB:BB:BB:BB:BB192.168.0.30 → CC:CC:CC:CC:CC:CC
PC는 통신할 때 ARP 캐시에 필요한 정보가 있다면 이를 이용할 수 있습니다.
ARP 스푸핑은 이러한 ARP 정보가 잘못된 값으로 변경되도록 유도하는 방식으로 이루어집니다.
ARP 스푸핑은 어떻게 발생할까?
ARP 스푸핑에서는 공격자가 정상적인 ARP 정보와 다른 정보를 네트워크에 전달합니다.
예를 들어 다음과 같은 네트워크가 있다고 가정하겠습니다.
PC A192.168.0.10 │ │ 스위치 │ ├──── PC B │ └──── 공격자
PC A가 인터넷에 연결하기 위해 게이트웨이의 MAC 주소를 알아야 한다고 가정해 보겠습니다.
공격자가 잘못된 ARP 정보를 전달하면 PC A가 공격자의 MAC 주소를 게이트웨이의 MAC 주소로 잘못 인식하도록 만들 수 있습니다.
정상게이트웨이 IP192.168.0.1 ↓게이트웨이 MACAA:AA:AA:AA:AA:AA
공격 이후에는 다음과 같은 잘못된 정보가 저장될 수 있습니다.
192.168.0.1 ↓공격자 MACXX:XX:XX:XX:XX:XX
이렇게 되면 PC A가 게이트웨이로 보내려던 프레임이 공격자에게 전달될 가능성이 생깁니다.
중간자 공격이란?
ARP 스푸핑이 위험한 이유 중 하나는 중간자 공격(MITM, Man-in-the-Middle)으로 이어질 수 있기 때문입니다.
중간자 공격은 공격자가 두 통신 주체 사이에 들어가 통신을 중계하거나 가로채는 형태의 공격입니다.
정상PC A ───────────→ 서버ARP 스푸핑 이후PC A ──→ 공격자 ──→ 서버 │ └─ 통신 관찰 또는 변조 가능
공격자가 통신 경로에 개입하면 네트워크 환경과 암호화 방식에 따라 통신 내용을 관찰하거나 변조하려는 시도가 가능해질 수 있습니다.
ARP 스푸핑과 데이터 탈취
ARP 스푸핑 자체가 모든 데이터를 자동으로 볼 수 있게 만드는 것은 아닙니다.
실제로 어떤 정보를 확인할 수 있는지는 통신에 사용되는 암호화 기술과 네트워크 환경에 따라 달라집니다.
예를 들어 HTTPS처럼 암호화된 통신을 사용하면 공격자가 네트워크 패킷을 관찰하더라도 일반적으로 통신 내용을 그대로 읽을 수 없습니다.
따라서 ARP 스푸핑이 발생했다고 해서 모든 계정 정보나 비밀번호가 바로 노출되는 것은 아닙니다.
다만 암호화되지 않은 통신이나 취약한 환경에서는 정보 노출 위험이 커질 수 있습니다.
ARP 스푸핑과 HTTPS
ARP 스푸핑을 이해할 때 HTTPS의 역할도 중요합니다.
HTTP는 암호화되지 않은 형태로 통신할 수 있지만 HTTPS는 TLS를 이용해 통신 내용을 암호화합니다.
HTTPPC ───────→ 서버 평문 통신 가능HTTPSPC ───────→ 서버 암호화된 통신
따라서 네트워크에서 공격자가 패킷을 가로보더라도 HTTPS를 사용하는 경우 데이터 내용을 직접 확인하기가 훨씬 어려워집니다.
하지만 HTTPS를 사용한다고 해서 ARP 스푸핑 자체가 발생할 수 없는 것은 아닙니다.
ARP 스푸핑은 네트워크의 주소 정보를 속이는 공격이고, HTTPS는 통신 내용을 암호화하는 기술이기 때문입니다.
ARP 스푸핑의 위험성
ARP 스푸핑은 다양한 보안 문제를 발생시킬 수 있습니다.
대표적으로 다음과 같은 위험이 있습니다.
- 네트워크 통신 가로채기
- 중간자 공격으로 이어질 가능성
- 암호화되지 않은 정보 노출
- 네트워크 통신 방해
- 데이터 변조 가능성
- 사용자를 악성 사이트로 유도하는 공격과 결합 가능
특히 공용 네트워크처럼 여러 사용자가 같은 네트워크에 연결된 환경에서는 ARP 스푸핑에 대한 보안 관리가 중요합니다.
ARP 스푸핑과 ARP 포이즈닝
ARP 스푸핑과 함께 ARP 포이즈닝(ARP Poisoning)이라는 용어도 자주 사용됩니다.
두 용어는 비슷한 의미로 사용되는 경우가 많습니다.
ARP 포이즈닝은 정상적인 ARP 캐시 정보를 잘못된 정보로 오염시키는 행위를 강조하는 표현입니다.
정상 ARP 정보 ↓잘못된 ARP 정보 주입 ↓ARP 캐시 변경 ↓잘못된 MAC 주소로 통신
따라서 ARP 스푸핑과 ARP 포이즈닝은 서로 밀접한 개념이라고 이해하면 됩니다.
ARP 스푸핑은 인터넷 전체에서 발생할까?
ARP는 기본적으로 같은 로컬 네트워크에서 IP 주소와 MAC 주소를 연결하기 위한 프로토콜입니다.
따라서 ARP 스푸핑 역시 일반적으로 동일한 로컬 네트워크 환경에서 발생합니다.
예를 들어 같은 공유기나 스위치에 연결된 장치들이 공격 대상이 될 수 있습니다.
인터넷 │공유기 │스위치 ┌─┼─┐PC A PC B 공격자
반대로 인터넷 전체에 있는 임의의 컴퓨터가 ARP를 이용해 직접 공격하는 방식은 아닙니다.
ARP 스푸핑을 예방하는 방법
ARP 스푸핑을 완전히 해결하는 방법은 네트워크 환경에 따라 다르지만 여러 가지 보안 기술을 사용할 수 있습니다.
대표적인 방법은 다음과 같습니다.
- HTTPS 사용
- 네트워크 장비의 보안 기능 활용
- 정적 ARP 설정
- DHCP Snooping
- Dynamic ARP Inspection(DAI)
- 네트워크 접근 제어
- 의심스러운 ARP 트래픽 모니터링
특히 기업 네트워크에서는 스위치의 보안 기능을 활용하여 비정상적인 ARP 정보를 차단하거나 탐지할 수 있습니다.
DHCP Snooping이란?
DHCP Snooping은 스위치에서 DHCP 트래픽을 검사하여 신뢰할 수 있는 DHCP 서버와 그렇지 않은 장치를 구분하는 보안 기능입니다.
네트워크에서 허가되지 않은 DHCP 서버가 잘못된 네트워크 정보를 전달하는 것을 방지하는 데 활용할 수 있습니다.
또한 DHCP Snooping을 통해 확보한 IP와 MAC 주소 정보를 다른 네트워크 보안 기능과 연계할 수도 있습니다.
Dynamic ARP Inspection이란?
Dynamic ARP Inspection(DAI)은 스위치에서 ARP 패킷을 검사하여 비정상적인 ARP 정보를 차단하는 보안 기능입니다.
DHCP Snooping 등에서 확보한 신뢰할 수 있는 IP-MAC 정보를 기반으로 ARP 패킷의 정상 여부를 확인할 수 있습니다.
간단하게 표현하면 다음과 같습니다.
ARP 패킷 ↓스위치 검사 ↓정상 정보인가? ┌──────┴──────┐ ↓ ↓정상 비정상 ↓ ↓허용 차단
기업 네트워크에서 ARP 스푸핑과 같은 공격을 방어하기 위해 활용할 수 있는 대표적인 기술입니다.
ARP 스푸핑을 쉽게 이해하는 방법
ARP 스푸핑은 아파트 관리실에 다른 사람의 이름으로 잘못된 연락처를 등록하는 것과 비슷하게 생각하면 이해하기 쉽습니다.
정상적인 상황에서는 다음과 같습니다.
홍길동→ 전화번호 010-1111-1111
그런데 누군가 잘못된 정보를 전달합니다.
홍길동→ 전화번호 010-9999-9999
사람들이 이 정보를 믿으면 홍길동에게 연락한다고 생각하면서 실제로는 다른 사람에게 연락하게 됩니다.
ARP 스푸핑도 비슷합니다.
정상IP 주소 → 정상 MAC 주소ARP 스푸핑IP 주소 → 공격자 MAC 주소
네트워크 장치가 잘못된 정보를 믿게 되면서 통신이 공격자를 거쳐갈 가능성이 생기는 것입니다.
결론
ARP 스푸핑은 ARP의 주소 확인 과정을 악용하여 IP 주소와 MAC 주소의 연결 정보를 위조하는 네트워크 공격입니다.
공격자가 잘못된 ARP 정보를 전달하면 네트워크 장치가 공격자의 MAC 주소를 정상적인 장치의 MAC 주소로 잘못 인식할 수 있습니다.
이렇게 되면 공격자가 네트워크 통신의 중간에 위치하게 되어 중간자 공격이나 통신 방해 등의 보안 문제가 발생할 수 있습니다.
다만 HTTPS와 같은 암호화 기술을 사용하면 네트워크에서 패킷이 관찰되더라도 통신 내용을 보호하는 데 도움이 됩니다.
기업이나 대규모 네트워크에서는 DHCP Snooping, Dynamic ARP Inspection, 네트워크 접근 제어 등의 기술을 활용하여 ARP 스푸핑을 방어할 수 있습니다.
결국 ARP 스푸핑은 네트워크 장치가 신뢰하는 IP 주소와 MAC 주소의 연결 정보를 속여 통신 경로에 개입하려는 공격이며, 안전한 네트워크를 구축하기 위해서는 ARP 자체의 특성과 함께 적절한 보안 기술을 적용하는 것이 중요합니다.