네트워크 보안 수업에서 ARP Spoofing 개념을 배우던 중, 강사님께서 Man-in-the-Middle Attack(MITM) 용어를 언급하셨다.
MITM 공격은 단순히 하나의 공격 기법이라기보다, 공격자가 통신 경로 중간에 위치하여 데이터를 가로채거나 변조하는 공격 구조를 의미한다. 따라서 이를 이해하기 위해서는 함께 언급되었던 ARP Spoofing과 in-path 개념도 함께 정리해볼 필요가 있다고 느꼈다.
이번 글에서는 Man-in-the-Middle Attack, 즉 중간자 공격이 무엇인지, 어떤 방식으로 동작하는지, 그리고 이를 방어하기 위해 어떤 보안 요소를 고려해야 하는지 정리해보고자 한다.
Man-in-the-Middle Attack(MITM)은 공격자가 통신하는 두 대상 사이에 위치하여 데이터를 가로채거나 변조하는 공격 방식이다.
일반적인 통신 흐름은 다음과 같다.
사용자 <----------------> 서버
하지만 MITM 공격이 발생하면 통신 구조는 다음과 같이 바뀐다.
사용자 <------> 공격자 <------> 서버
사용자는 자신이 서버와 직접 통신하고 있다고 생각하지만, 실제로는 공격자를 거쳐 서버와 통신하게 된다. 서버 역시 사용자의 요청이라고 생각하지만, 그 중간에서 공격자가 데이터를 확인하거나 조작할 수 있다.
즉, MITM 공격의 핵심은 통신 당사자들이 공격자의 존재를 인식하지 못한 상태에서 통신을 계속한다는 점이다.
MITM 공격을 이해할 때 함께 알아두면 좋은 개념이 in-path이다.
in-path는 공격자가 실제 통신 경로 안에 위치하는 상태를 의미한다. 즉, 사용자가 서버로 보내는 트래픽이 공격자를 거쳐 지나가고, 서버가 사용자에게 보내는 응답도 공격자를 거쳐 전달되는 구조이다.
단순히 주변에서 트래픽을 관찰하는 수동적인 스니핑과 달리, in-path 상태에서는 실제 트래픽이 공격자를 거쳐 목적지로 전달된다.
사용자 → 공격자 → 서버
사용자 ← 공격자 ← 서버
이처럼 공격자가 통신 경로 안에 위치하면 단순히 패킷을 관찰하는 것뿐만 아니라, 필요에 따라 내용을 수정하거나 특정 요청을 차단하는 것도 가능해질 수 있다.
따라서 MITM 공격은 단순한 도청 공격이 아니라, 통신 흐름 자체를 공격자가 통제할 수 있다는 점에서 위험하다.

이미지 출처: Wikimedia Commons
ARP Spoofing은 MITM 공격을 가능하게 만드는 대표적인 기법 중 하나이다.
ARP는 IP 주소에 해당하는 MAC 주소를 알아내기 위해 사용되는 프로토콜이다. ARP Spoofing은 일반적으로 공격자와 피해자가 같은 로컬 네트워크에 있을 때 시도될 수 있다.
예를 들어 같은 네트워크 안에서 특정 IP와 통신하려면, 먼저 해당 IP를 가진 장비의 MAC 주소를 알아야 한다.
이때 사용되는 정보가 ARP 테이블이다.
IP 주소 MAC 주소
192.168.0.1 aa:bb:cc:dd:ee:ff
문제는 ARP가 기본적으로 상대방의 응답을 신뢰하는 방식으로 동작한다는 점이다. 공격자는 이 특성을 악용하여 피해자의 ARP 테이블에 잘못된 정보를 저장하게 만들 수 있다.
예를 들어 공격자가 피해자에게 다음과 같이 속인다고 가정해볼 수 있다.
"게이트웨이 IP의 MAC 주소는 공격자의 MAC 주소야."
피해자가 이 정보를 믿고 ARP 테이블을 갱신하면, 원래 게이트웨이로 가야 할 패킷이 공격자에게 전달된다. 이후 공격자는 해당 패킷을 다시 게이트웨이로 전달하면서 통신이 끊기지 않은 것처럼 보이게 할 수 있다.
결과적으로 공격자는 사용자와 게이트웨이 사이의 통신 경로에 위치하게 되고, 이 구조가 MITM 공격으로 이어질 수 있다.
MITM 공격이 위험한 이유는 단순히 패킷을 훔쳐보는 데서 끝나지 않기 때문이다.
공격자가 통신 중간에 위치하면 다음과 같은 문제가 발생할 수 있다.
암호화되지 않은 통신에서는 로그인 ID, 비밀번호, 세션 쿠키, 인증 토큰 등이 노출될 수 있다.
특히 HTTP처럼 평문으로 데이터를 주고받는 경우, 공격자가 패킷을 확인하면 사용자가 입력한 정보가 그대로 보일 수 있다.
공격자는 사용자가 서버로 보내는 요청이나, 서버가 사용자에게 보내는 응답을 중간에서 수정할 수 있다.
예를 들어 사용자가 정상 사이트에 접속했다고 생각하더라도, 공격자가 응답 내용을 바꿔 악성 링크나 가짜 로그인 페이지를 보여줄 수 있다.
사용자가 로그인한 뒤 발급받은 세션 쿠키가 탈취되면, 공격자는 해당 사용자인 것처럼 서비스에 접근할 수 있다.
이 경우 비밀번호를 직접 알지 못하더라도 로그인 상태를 악용할 수 있기 때문에 위험하다.
기업 환경에서는 MITM 공격을 통해 내부 시스템 접속 정보나 관리자 계정 정보가 노출될 수 있다.
이러한 정보가 탈취되면 단순한 네트워크 공격을 넘어 내부망 침투, 권한 상승, 추가 시스템 공격으로 이어질 수 있다.
MITM 공격을 방어하기 위해서는 통신 구간의 암호화와 신뢰 검증이 중요하다.
가장 기본적인 대응 방법은 HTTPS를 사용하는 것이다.
HTTPS는 TLS를 이용해 사용자와 서버 간 통신을 암호화한다. 따라서 공격자가 중간에서 패킷을 가로채더라도 내용을 쉽게 확인하기 어렵다.
다만 HTTPS를 사용하더라도 인증서 검증이 제대로 이루어져야 한다. 브라우저에서 인증서 경고가 발생했는데 이를 무시하고 접속하면, 공격자가 준비한 가짜 인증서를 신뢰하게 될 위험이 있다.
HTTPS에서 인증서는 사용자가 접속한 서버가 실제로 신뢰할 수 있는 서버인지 확인하는 역할을 한다.
따라서 브라우저나 애플리케이션은 다음과 같은 내용을 확인해야 한다.
- 인증서가 신뢰할 수 있는 인증기관에서 발급되었는지
- 인증서의 도메인 정보가 접속한 사이트와 일치하는지
- 인증서가 만료되지 않았는지
- 인증서 경고가 발생하지 않는지
사용자 입장에서도 인증서 경고가 나타났을 때 무시하고 접속하지 않는 습관이 중요하다.
카페, 공항, 도서관 등에서 제공하는 공용 와이파이는 여러 사용자가 함께 사용하는 네트워크이다.
이러한 환경에서는 공격자가 같은 네트워크에 접속해 트래픽을 관찰하거나 MITM 공격을 시도할 수 있다.
특히 보안 설정이 미흡한 공용 와이파이나, 공격자가 만든 가짜 AP에 접속하는 경우 MITM 공격 위험이 커질 수 있다.
따라서 공용 와이파이에서는 금융 서비스, 회사 업무 시스템, 관리자 페이지 접속처럼 민감한 작업은 피하는 것이 좋다. 필요한 경우 VPN을 사용하여 통신 구간을 추가로 보호할 수 있다.
내부 네트워크에서는 ARP Spoofing을 탐지하고 차단하는 것도 중요하다.
대표적인 대응 방법은 다음과 같다.
- ARP 테이블 변경 모니터링
- 동일 IP에 대한 MAC 주소 변경 탐지
- Static ARP 설정
- DHCP Snooping
- Dynamic ARP Inspection
- 네트워크 장비의 보안 기능 활용
특히 기업 환경에서는 스위치 단에서 비정상적인 ARP 패킷을 탐지하고 차단하는 설정이 중요하다.
Man-in-the-Middle Attack(MITM)은 공격자가 통신 경로 중간에 개입하여 데이터를 가로채거나 변조하는 공격이다.
대표적으로 ARP Spoofing을 통해 공격자가 in-path 위치에 놓이면, 피해자의 트래픽이 공격자를 거쳐 전달되는 구조가 만들어질 수 있다.
이를 방어하기 위해서는 HTTPS 사용, 인증서 검증, ARP Spoofing 탐지, 네트워크 장비 보안 설정 등이 필요하다.
이번 내용을 통해 네트워크 보안에서는 통신 구조뿐만 아니라, 프로토콜의 신뢰 관계가 어떻게 악용될 수 있는지 이해하는 것이 중요하다는 점을 알 수 있었다.