중간자(Man-in-the-Middle, MITM) 공격: 이해와 방어
중간자 공격(MITM)은 악의적인 행위자가 네트워크 통신 또는 데이터 전송 과정에 개입하는 사이버 공격입니다. 공격자는 데이터 전송 경로의 중간에 위치하여 합법적인 통신 당사자인 것처럼 위장하여 정보를 가로채고 조작합니다.
공격자는 실제로는 사용자와 서버 간의 통신 중간에 자리 잡습니다. 사용자는 자신이 합법적인 서버나 웹 애플리케이션(예: 소셜 미디어, 온라인 뱅킹)과 직접 통신하고 있다고 생각하지만, 실제로는 중간자를 통해 요청을 보내고 받게 됩니다. 중간자는 사용자를 대신하여 서버와 통신하며, 이 과정에서 모든 통신 내용을 감시할 수 있습니다.
중간자는 통신 내용 전체를 볼 수 있으며, 요청과 응답을 수정하거나 사용자 인증 정보를 훔쳐 사용자를 공격자가 제어하는 서버로 유도할 수 있습니다. 이러한 과정을 통해 다양한 사이버 범죄를 저지를 수 있습니다.
일반적으로 공격자는 통신 양 당사자 간의 데이터 흐름을 가로채고 정보를 수정하거나 악성 링크 또는 응답을 합법적인 참가자에게 보낼 수 있습니다. MITM 공격은 상당한 피해가 발생한 후에야 발견되는 경우가 많습니다.
주요 중간자 공격 기법
패킷 스니핑: 공격자는 다양한 도구를 사용하여 네트워크 패킷을 낮은 수준에서 검사합니다. 이를 통해 권한이 없는 데이터 패킷을 볼 수 있습니다.
패킷 삽입: 공격자는 악의적인 패킷을 데이터 통신 채널에 삽입합니다. 삽입 전에 스니핑을 통해 악성 패킷을 보내는 방법과 시기를 파악합니다. 삽입 후 잘못된 패킷은 통신 흐름의 유효한 패킷과 섞이게 됩니다.
세션 하이재킹: 웹 애플리케이션에서 로그인 후 임시 세션 토큰이 생성되어 매번 암호를 입력하지 않아도 됩니다. 공격자는 스니핑 도구를 사용하여 세션 토큰을 획득하고 이를 사용하여 합법적인 사용자처럼 가장할 수 있습니다.
SSL 스트리핑: 공격자는 SSL 스트리핑 기술을 사용하여 HTTPS 요청을 가로채고 안전하지 않은 HTTP 요청으로 변경합니다. 이로 인해 사용자는 서버에 암호화되지 않은 요청을 보내게 되어 중요한 데이터가 일반 텍스트로 노출될 수 있습니다.
MITM 공격의 결과
MITM 공격은 재정적 손실과 평판 손상을 초래할 수 있어 모든 조직에 위험합니다.
공격자는 민감한 개인 정보를 획득하고 오용할 수 있습니다. 예를 들어, 사용자 이름, 암호, 신용 카드 정보 등의 자격 증명을 훔쳐 자금을 이체하거나 승인되지 않은 구매에 사용할 수 있습니다. 또한 훔친 자격 증명을 사용하여 악성 코드를 설치하거나 다른 중요한 정보를 훔쳐 회사를 협박할 수 있습니다.
MITM 공격의 위험을 최소화하기 위해 사용자와 디지털 시스템을 보호하는 것이 매우 중요합니다.
보안 전문가를 위한 MITM 공격 도구
신뢰할 수 있는 보안 솔루션과 더불어 시스템을 점검하고 공격자가 악용할 수 있는 취약점을 식별하는 도구를 사용하는 것이 중요합니다. 다음은 보안 연구원을 위한 몇 가지 유용한 HTTP MITM 공격 도구입니다.
헤티 (Hetty)
헤티는 보안 연구원, 팀, 버그 바운티 커뮤니티를 위한 강력한 기능을 갖춘 오픈 소스 HTTP 툴킷입니다. 경량 도구로, 내장된 Next.js 웹 인터페이스와 중간 프록시 HTTP 기능을 제공합니다.
주요 특징:
- 전체 텍스트 검색 기능 제공
- 프록시 로그를 기반으로 하거나 수동으로 HTTP 요청을 생성할 수 있는 발신자 모듈
- HTTP 요청을 자동 전송할 수 있는 공격자 모듈
- 간단한 설치와 사용하기 쉬운 인터페이스
- 처음부터 요청을 작성하거나 프록시 로그에서 복사하여 HTTP 요청 수동 전송
베터캡 (Bettercap)
베터캡은 포괄적이고 확장 가능한 네트워크 정찰 및 공격 도구입니다.
이 솔루션은 리버스 엔지니어, 보안 전문가, 레드팀에게 Wi-Fi, IP4, IP6 네트워크, BLE(Bluetooth Low Energy) 장치 및 무선 HID 장치를 테스트하거나 공격하는 기능을 제공합니다. 가짜 액세스 포인트 생성, 암호 스니퍼, DNS 스푸퍼, 핸드셰이크 캡처와 같은 다양한 네트워크 모니터링 기능도 제공합니다.
주요 특징:
- 인증 데이터를 식별하고 자격 증명을 수집하기 위한 강력한 네트워크 스니퍼
- 강력하고 확장 가능
- 잠재적인 MITM 취약점에 대한 IP 네트워크 호스트 능동/수동 조사 및 테스트
- MITM 공격, 스니핑 자격 증명, HTTP/HTTP 트래픽 제어 등을 수행할 수 있는 웹 기반 사용자 인터페이스
- POP, IMAP, SMTP, FTP 자격 증명, 방문한 URL, HTTPS 호스트, HTTP 쿠키, HTTP 게시 데이터 등 수집된 데이터 추출 후 외부 파일에 표시
- TCP, HTTP, HTTPS 트래픽 실시간 조작/수정
Proxy.py
Proxy.py는 경량 오픈 소스 WebSockets, HTTP, HTTPS, HTTP2 프록시 서버입니다. 단일 Python 파일로 사용 가능하며, TLS 암호화 앱을 포함한 웹 트래픽을 최소한의 리소스로 검사할 수 있습니다.
주요 특징:
- 초당 수만 개 연결 처리 가능한 빠르고 확장 가능한 도구
- 내장 웹 서버, 프록시, HTTP 라우팅 사용자 정의 등의 프로그래밍 기능
- 5-20MB RAM 사용의 경량 디자인
- 표준 Python 라이브러리 의존 및 외부 종속성 불필요
- 플러그인으로 확장 가능한 실시간 맞춤형 대시보드
- proxy.py 런타임 검사, 모니터링, 구성, 제어 옵션 제공
- TLS를 사용하여 proxy.py와 클라이언트 간 종단 간 암호화 제공
미트프록시 (mitmproxy)
미트프록시는 사용하기 쉬운 오픈 소스 HTTPS 프록시 솔루션입니다.
설치하기 쉬운 이 도구는 SSL 중간자 HTTP 프록시로 작동하며, 트래픽 흐름을 즉시 검사하고 수정할 수 있는 콘솔 인터페이스를 제공합니다. 명령줄 기반 도구를 HTTP/HTTPS 프록시로 사용하여 모든 네트워크 트래픽을 기록하고, 사용자가 요청한 내용을 확인하고 재생할 수 있습니다. 미트프록시는 일반적으로 mitmproxy(콘솔 인터페이스), mitmweb(웹 기반 인터페이스), mitmdump(명령줄 버전)의 세 가지 강력한 도구 세트를 의미합니다.
주요 특징:
- 신뢰할 수 있는 인터랙티브 HTTP 트래픽 분석/수정 도구
- 유연하고 안정적이며 설치 및 사용이 용이
- HTTP/HTTPS 요청 및 응답 즉시 가로채고 수정
- HTTP 클라이언트/서버 측 대화 기록 및 저장 후 재생 및 분석
- 즉시 가로채기를 위한 SSL/TLS 인증서 생성
- 리버스 프록시 기능으로 네트워크 트래픽을 다른 서버로 전달
버프 스위트 (Burp Suite)
버프 스위트는 자동화되고 확장 가능한 취약점 검색 도구로, 많은 보안 전문가들이 선택합니다. 웹 애플리케이션을 테스트하고 공격자가 MITM 공격을 통해 악용할 수 있는 취약점을 식별하는 데 사용됩니다.
사용자 중심 워크플로를 통해 대상 애플리케이션의 작동 방식을 보여줍니다. 웹 프록시 서버로 작동하여 웹 브라우저와 대상 서버 사이에서 중간자 역할을 하며, 요청 및 응답 트래픽을 가로채고 분석하고 수정할 수 있습니다.
주요 특징:
- 웹 브라우저와 서버 간 양방향 원시 네트워크 트래픽 가로채기/검사
- 브라우저와 대상 서버 간 HTTPS 트래픽의 TLS 연결 해제
- 공격자가 암호화된 데이터를 보고 수정 가능
- Burp 내장 브라우저 또는 외부 웹 브라우저 사용 선택
- 자동화되고 빠르며 확장 가능한 취약점 스캔 솔루션
- 가로챈 개별 HTTP 요청 및 응답 표시
- 차단된 트래픽을 수동으로 검토하여 공격의 세부 정보 파악
이터캡 (Ettercap)
이터캡은 오픈 소스 네트워크 트래픽 분석기 및 인터셉터입니다.
포괄적인 MITM 공격 도구를 통해 연구원은 광범위한 네트워크 프로토콜 및 호스트를 분석하고 네트워크 패킷을 캡처할 수 있습니다. 또한 다목적 네트워크 트래픽 분석기로서 MITM 공격을 감지하고 중지할 수 있습니다.
주요 특징:
- 네트워크 트래픽 가로채고 암호와 같은 자격 증명 캡처
- 암호화된 데이터 해독 및 사용자 이름/암호 등의 자격 증명 추출
- 심층 패킷 스니핑, 테스트, 네트워크 트래픽 모니터링 및 실시간 콘텐츠 필터링 제공
- 암호화된 프로토콜을 포함한 네트워크 프로토콜의 능동/수동 도청, 해부, 분석 지원
- 네트워크 토폴로지 분석 및 설치된 운영 체제 설정
- 대화식/비대화식 GUI 작동 옵션이 있는 사용자 친화적 인터페이스
- ARP 가로채기, IP/MAC 필터링 등의 분석 기법을 통해 트래픽 가로채고 분석
MITM 공격 방지
MITM 공격은 사용자가 인지하기 어려운 위치에서 발생하며, 공격자가 모든 것을 정상적으로 보이게 만들기 때문에 탐지하기 어렵습니다. 그러나 조직에서 MITM 공격을 방지하기 위해 사용할 수 있는 몇 가지 보안 방법이 있습니다.
- 서버 및 컴퓨터에서 효과적인 보안 솔루션, 신뢰할 수 있는 인증 솔루션 사용 등 인터넷 연결 보호
- 액세스 포인트에 강력한 WEP/WAP 암호화 적용
- 방문하는 웹사이트가 안전한지 확인하고 URL에 HTTPS가 있는지 확인
- 의심스러운 이메일 메시지 및 링크 클릭 금지
- HTTPS 시행 및 안전하지 않은 TLS/SSL 프로토콜 비활성화
- 가능한 경우 가상 사설망(VPN) 사용
- 위의 도구 및 기타 HTTP 솔루션을 사용하여 공격자가 악용할 수 있는 MITM 취약점 식별 및 해결