MITM 공격은 중간자 공격이라고도 불리며, 통신을 주고받는 두 당사자 사이에 공격자가 중간에 끼어들어 데이터를 가로채거나 변조하는 방식의 공격이다.
공격자는 양쪽 모두 자신과 통신하고 있다고 믿게 하면서 통신을 가로채거나 변조한다.
이를 통해 민감한 정보를 탈취하거나, 통신 내용을 변경할 수 있다.
MITM 공격의 원리
- 공격자가 중간에 끼어듦
- 두 당사자가 서로 통신하고 있을 때 공격자가 중간에 위치하여 그들의 통신을 가로챈다.
- 공격자는 피해자에게는 자신이 서버인 것처럼, 서버에는 자신이 피해자인 것처럼 행동한다.
- 데이터 가로채기 및 변조
- 공격자는 클라이언트와 서버 사이의 통신 데이터를 가로채거나, 데이터를 읽고 변조한 후 전달할 수 있다.
- 통신을 위장
- 공격자는 클라이언트와 서버가 자신을 신뢰하도록 속이고, 클라이언트와 서버는 정상적으로 통신하고 있다고 믿게 만든다.
- 에를 들어, 공격자는 클라이언트에게 정산적인 서버인 것처럼 SSL 인증서를 위조하여 클라이언트와 통신을 시도할 수 있다.
MITM 공격의 종류
- WI-FI 스니핑
- 공격자는 공공 WI-FI 네트워크를 이용하여 사용자가 인터넷을 사용하면서 주고받는 트래픽을 감시하거나 가로챌 수 있다.
- IP 스푸핑
- 공격자는 클라이언트 또는 서버로 가장하여 통신 세션에 침입한다.
- IP 스푸핑을 통해 공격자는 시스템을 속여 클라이언트나 서버로 통신을 전달하게 할 수 있다.
- DNS 스푸핑
- 공격자는 DNS 응답을 변조하여 피해자가 악성 사이트에 접속하게 만든다.
- 피해자가 특정 도메인에 접속하려고 할 때 공격자는 해당 도메인의 IP 주소를 가짜 IP로 변경하여 사용자를 가짜 웹사이트로 유도할 수 있다.
- HTTPS 스푸핑
- 공격자는 SSL 인증서를 위조하거나 잘못된 SSL 인증서를 제공하여 사용자가 HTTPS로 보호된 웹사이트에 접속하려 할 때 공격자가 그 통신을 가로챌 수 있도록 한다.
- SSL 스트립핑
- SSL을 사용하지 못하게 하거나 HTTPS 연결을 HTTP로 다운그레이드시켜 보안이 낮은 HTTP 통신으로 변경하여 데이터를 평문으로 가로채는 공격이다.
MITM 공격 예방 방법
- 암호화 사용
- HTTPS, TLS와 같은 암호화된 프로토콜을 사용해야 한다.
- 이를 통해 중간에 데이터를 가로채더라도 공격자가 그 내용을 읽거나 변조하지 못하게 할 수 있다.
- 인증서 검증
- SSL/TLS 인증서의 유효성을 제대로 확인하고, 위조된 인증서를 사용하는 공격을 방지한다.
- 클라이언트는 인증서가 신뢰할 수 있는 기관에 의해 발행되었는지 확인해야 한다.
- VPN 사용
- 공공 네트워크를 사용할 때는 VPN을 사용하여 모든 통신을 암호화된 터널을 통해 전송하도록 한다.
- VPN은 공격자가 네트워크 트래픽을 가로채더라도 이를 해독할 수 없게 만든다.
- 강력한 암호화 알고리즘 사용
- SSL/TLS 프로토콜의 최신 버전과 강력한 암호화 알고리즘을 사용하여 취약한 암호화가 사용되지 않도록 한다.
- 네트워크 보안 강화
- 공공 WI-FI 네트워크를 이용할 때는 네트워크 보안 수준을 항상 확인하고 가능하다면 개인 네트워크나 신뢰할 수 있는 네트워크를 사용하는 것이 좋다.
- 보안 소프트웨어 설치
- MITM 공격을 탐지할 수 있는 보안 소프트웨어를 설치하고, 자동으로 트래픽을 모니터링하는 솔루션을 사용하는 것도 좋은 방법이다.