MITM(Man-in-the-Middle) 공격은
공격자가 통신을 수행하는 두 당사자 사이에 비밀리에 개입하여
데이터를 도청하거나 변경하는 사이버 공격 기법입니다.
이 공격은 종종 사용자가 신뢰하는
네트워크나 웹사이트에 대한 가짜 연결을 설정함으로써
사용자 정보를 탈취하는 데 사용됩니다.
MITM 공격의 핵심은 공격자가 둘 사이에서 중개자처럼 행동하며
통신 내용을 가로채고, 수정하거나 그 내용을 자신에게 유리하게 활용한다는 점입니다.
1. MITM 공격의 주요 단계
1) 위치 확보
공격자는 자신을 두 당사자 사이의 네트워크 흐름에 끼워 넣어야 합니다.
이를 위해 여러 방법을 사용해 네트워크 상에서 위치를 확보하게 됩니다.
- 공격자는 일반적으로 피해자의 네트워크 연결에 접근하여 통신 경로를 장악하거나 자신의 장비를 통신 경로의 중간에 두는 방식으로 MITM 공격을 시작합니다.
2) 가로채기 (Interception)
공격자는 통신을 가로채어
클라이언트와 서버 간의 트래픽을 제어할 수 있게 됩니다.
- ARP 스푸핑을 통해 네트워크 내에서 자신이 라우터라고 속이고, ARP 테이블을 변경하여 피해자의 통신이 자신의 컴퓨터를 거치게 할 수 있습니다.
- DNS 스푸핑을 사용하면 공격자는 피해자가 가고자 하는 웹사이트 주소를 가짜 IP 주소로 리디렉션하여 악성 웹사이트에 접속하게 만듭니다.
3) 내용 열람 및 변경
공격자가 통신에 접근하게 되면 트래픽을 볼 수 있게 되고,
때에 따라 내용을 변경하기도 합니다.
- 암호화되지 않은 통신의 경우, 공격자는 주고받는 데이터를 직접 열람할 수 있습니다. 예를 들어 로그인 정보를 탈취하거나 민감한 메시지 내용을 볼 수 있습니다.
- 암호화된 HTTPS 통신의 경우에도 공격자는 SSL 스플리팅이나 피싱을 통해 SSL 인증서를 우회하여 데이터를 탈취할 수 있습니다.
2. MITM 공격의 주요 방법
다양한 MITM 공격 유형은 네트워크의 특정 취약점이나 잘못된 구성 요소를 악용합니다.
몇 가지 대표적인 방법은 다음과 같습니다.
1) ARP 스푸핑 (Address Resolution Protocol Spoofing)
- 공격자는 피해자에게 가짜 ARP 메시지를 보내, 라우터의 MAC 주소 대신 자신의 MAC 주소를 피해자의 ARP 테이블에 저장하게 합니다.
- 이렇게 하면 모든 네트워크 트래픽이 공격자의 컴퓨터를 통해 라우팅되어 공격자가 이를 분석하거나 변조할 수 있게 됩니다.
2) DNS 스푸핑 (Domain Name System Spoofing)
- 공격자는 DNS 요청을 가로채고 가짜 DNS 응답을 보냅니다.
- 예를 들어 피해자가 은행 웹사이트에 접속하려 할 때, 공격자는 가짜 IP 주소를 반환하여 피해자를 피싱 웹사이트로 리디렉션할 수 있습니다.
3) Wi-Fi 에빌 트윈 (Evil Twin)
- 공격자는 합법적인 네트워크와 이름이 같은 가짜 Wi-Fi 네트워크를 설정하여 사용자들이 연결하도록 유도합니다.
- 사용자가 이 네트워크에 연결하면 공격자는 사용자의 트래픽을 쉽게 감시하고, 로그인 자격 증명이나 민감한 데이터를 탈취할 수 있습니다.
4) SSL 스트립핑 (SSL Stripping)
- HTTPS 트래픽을 HTTP로 다운그레이드하여 사용자와 웹사이트 간의 암호화된 연결을 해제시킵니다.
- 이를 통해 공격자는 사용자가 암호화 없이 주고받는 데이터를 쉽게 가로채고 볼 수 있습니다.
5) 세션 하이재킹
- 사용자가 웹사이트에 로그인하여 인증된 세션을 생성했을 때, 공격자는 이를 탈취하여 사용자의 세션을 대신할 수 있습니다.
- 이는 주로 웹 애플리케이션 쿠키를 탈취하여 이루어집니다.
3. MITM 공격의 목적
MITM 공격의 목적은 주로 사용자의 개인 정보를 탈취하거나 데이터를 조작하는 것입니다.
구체적으로 다음과 같은 목적을 가질 수 있습니다.
- 정보 탈취 : 개인 정보(이메일, 비밀번호 등), 금융 정보(신용카드 정보 등) 등을 탈취하여 금전적 이득을 취합니다.
- 데이터 변조 : 특정 정보를 변조하여 피해자에게 손해를 입히거나, 잘못된 정보를 전달하여 신뢰를 무너뜨릴 수 있습니다.
- 금융 사기 : 은행이나 금융 거래 시 통신 내용을 조작하여 금전적 손해를 입히는 행위입니다.
- 피싱 사이트로 리디렉션 : 사용자를 가짜 웹사이트로 이동시켜 로그인 정보를 입력하도록 유도하여 자격 증명을 탈취합니다.
4. MITM 공격 예방 방법
1) HTTPS 사용
웹사이트 접속 시 HTTPS가 있는지 확인하고, 모든 트래픽이 암호화되었는지 확인합니다.
이를 통해 중간에서 데이터를 훔쳐보더라도 내용을 읽을 수 없게 만듭니다.
- SSL/TLS 인증서 확인 : 사용 중인 웹사이트의 SSL 인증서가 유효한지 확인하는 것이 중요합니다. 가짜 SSL 인증서를 사용하여 공격할 가능성을 방지할 수 있습니다.
2) VPN 사용
공공 Wi-Fi 등 보안이 낮은 네트워크 환경에서는 VPN을 사용하여 통신을 암호화하고 보호합니다.
3) 강력한 암호화 사용
무선 네트워크에서는 WPA3 등 최신 암호화 방식을 사용하는 것이 좋습니다.
WEP와 같은 이전 암호화 방식은 취약할 수 있습니다.
4) DNSSEC 사용
DNS 서버가 신뢰할 수 있는지 확인하기 위해 DNSSEC 기술을 적용하여 DNS 스푸핑 공격을 방지합니다.
5) 네트워크 모니터링 도구
네트워크 트래픽을 모니터링하고
이상 트래픽이나 ARP 테이블 변경을 탐지할 수 있는 도구(예: Wireshark)를 사용하여
MITM 공격 시도를 파악합니다.
6) 이중 인증(2FA)
중요한 계정에 대해 이중 인증을 활성화하여
로그인 정보를 탈취하더라도 추가적인 인증을 요구하여 계정을 보호합니다.
7) 신뢰할 수 없는 네트워크 회피
공공 Wi-Fi와 같은 신뢰할 수 없는 네트워크를 피하고,
반드시 사용해야 할 경우 VPN을 이용해 통신을 암호화합니다.
5. 결론
MITM 공격은 사용자가 신뢰하는 통신 채널을 가로채고 정보를 조작함으로써
발생하는 위험한 사이버 공격입니다.
이러한 공격을 방지하기 위해서는
암호화된 통신 프로토콜 사용, VPN, 최신 네트워크 보안 표준 적용, 이중 인증과 같은
다양한 보안 조치가 필요합니다.
특히 공공 네트워크 사용 시 주의하고,
접속하는 사이트의 인증서를 항상 검토하여 안전한 통신을 유지하는 것이 중요합니다.
'TIL(Today I Learned it)' 카테고리의 다른 글
TIL.46 올바른 TOKEN & API 관리 법 (0) | 2024.10.28 |
---|---|
TIL.45 HTTP vs HTTPS (0) | 2024.10.27 |
TIL.43 XSS 공격과 취약성 (0) | 2024.10.25 |
TIL.42 KPT 회고 시간 (1) | 2024.10.24 |
TIL.41 markEmailAsDeleted vs setter 메서드 (0) | 2024.10.22 |