mitmproxy — 네트워크 분석 및 진단
HTTPS 트래픽을 중간에서 열어보고 수정할 수 있는 무료 인터셉팅 프록시로, 보안 테스트와 API 디버깅에 쓰입니다.
기본 정보
| 프로그램 이름 | mitmproxy (미트미프록시) |
|---|---|
| 한 줄 소개 | HTTPS 트래픽을 중간에서 열어보고 수정할 수 있는 무료 인터셉팅 프록시로, 보안 테스트와 API 디버깅에 쓰입니다. |
| 개발·유지 | mitmproxy authors (Aldo Cortesi, Maximilian Hils) |
| 공식 홈페이지 | https://mitmproxy.org/ |
| 공식 문서 | https://docs.mitmproxy.org/ |
| 공식 다운로드 | https://mitmproxy.org/downloads/ |
| 지원 운영체제 | Linux, macOS, Windows (Python 3.12 이상) |
| 라이선스 | MIT |
| 안정 버전 | 12.2.3 (2026-05-12 출시) — 확인일 2026-10-18 |
| GitHub 저장소 | https://github.com/mitmproxy/mitmproxy |
| 분류 | 네트워크 분석 및 진단 (태그: 프록시, HTTPS, 패킷 분석, API 디버깅, 보안) |
이 프로그램은 무엇인가?
mitmproxy는 클라이언트와 서버 사이에 프록시를 두고 HTTPS 통신을 복호화해 보여 주는 무료 프록시입니다. 브라우저나 모바일 앱이 보내는 요청·응답을 목록으로 보고, 필요한 요청을 고쳐 다시 보내거나 가짜 응답을 만들 수 있습니다.
인터페이스가 세 가지입니다. 대화형 콘솔(mitmproxy), 브라우저 UI(mitmweb), 그리고 스크립트·로그 전용 CLI(mitmdump). 모바일 앱 감사, REST API 디버깅, 웹 자동화 전 점검에 주로 쓰입니다.
어떤 문제를 해결하는가?
- ('모바일·앱 디버깅에서', '앱이 어떤 서버에 무엇을 보내는지 모르겠을 때', '캡처 목록에서 요청 헤더·바디를 그대로 확인할 수 있습니다.')
- ('API 개발에서', '클라이언트 요청이 잘못됐는지 서버 응답이 문제인지 구분이 필요할 때', '중개 지점에서 요청·응답을 나눠 볼 수 있습니다.')
- ('보안 점검에서', 'HTTPS라 내용이 안 보인다고 느낄 때', '프록시 인증서를 설치하면 복호화된 트래픽을 읽을 수 있습니다.')
주요 기능
HTTPS 인터셉트
TLS 통신을 중간에서 복호화해 요청·응답을 표시
- 활용 상황: HTTPS API를 디버깅할 때
- 얻는 결과: 암호화돼 안 보이던 헤더·바디 확인
- 제한 사항: 대상 앱이 인증서 고정(pin)을 쓰면 캡처가 안 될 수 있습니다.
요청 수정·재전송
캡처한 요청의 헤더·파라미터를 수정해 다시 보내기
- 활용 상황: 파라미터 값을 바꿔 가며 테스트할 때
- 얻는 결과: 서버 반응을 빠르게 검증
- 제한 사항: 재전송이 잦으면 서버 측 로그·Rate limit에 영향을 줄 수 있습니다.
addon 스크립트(Python)
캡처 이벤트에 붙는 Python 스크립트로 자동화
- 활용 상황: 반복 필터링·자동 응답이 필요할 때
- 얻는 결과: 캡처·매핑을 스크립트로 처리
- 제한 사항: 스크립트 오류는 통신을 막을 수 있어 테스트 환경에서 확인 필요.
mitmdump 로깅
헤드리스 환경에서 캡처를 파일로 저장
- 활용 상황: 서버에서 배치 감사·자동화
- 얻는 결과: 나중에 mitmproxy로 다시 열 수 있는 로그 확보
- 제한 사항: 대용량 트래픽은 로그 크기 관리가 필요합니다.
설치 및 실행
Linux (pip)
pipx 또는 pip로 설치합니다. Python 3.12 이상이 필요합니다.
pipx install mitmproxy
# 또는
pip3 install mitmproxy
Linux (배포판 패키지)
일부 배포판은 저장소 버전을 제공합니다. 버전이 오래될 수 있으므로 공식 다운로드 확인 권장.
sudo apt install mitmproxy # 저장소 버전(최신 아닐 수 있음)
macOS / Windows
홈브리우 또는 공식 설치 파일을 사용합니다.
brew install mitmproxy # macOS
# Windows: mitmproxy.org/downloads 에서 MSI
실제 사용 예제
브라우저 트래픽 캡처
mitmweb을 띄우고 브라우저 프록시 설정(또는 환경변수)을 지정합니다. 브라우저가 mitm.it에서 인증서를 설치하면 HTTPS도 복호화됩니다.
$ mitmweb --listen-port 8080
브라우저: HTTP 프록시 127.0.0.1:8080
# http://mitm.it 접속 후 인증서 설치
모바일 앱 캡처
폰과 PC를 같은 네트워크에 두고 폰의 Wi-Fi 프록시를 PC IP:8080으로 설정한 뒤, 폰 브라우저로 mitm.it에 접속해 인증서를 설치합니다.
$ mitmproxy --listen-port 8080
폰 Wi-Fi 고급 > 프록시: 수동 > 192.0.2.20:8080
요청 필터링·수정
콘솔에서 f 키로 필터(e.g. ~d api.example.com)를 걸고, i 키로 인터셉트 모드에 들어 요청을 고친 뒤 다시 보냅니다.
$ mitmproxy
장점과 한계
장점
- 완전 무료·오픈소스(MIT) — 상용 프록시 없이 HTTPS 중개 가능
- 콘솔·브라우저 UI·스크립트 CLI 세 인터페이스 제공
- HTTP/1·HTTP/2·HTTP/3·WebSocket까지 폭넓은 프로토콜 지원
- Python addon으로 자동화·스캔 파이프라인 결합이 쉬움
사용 전에 고려할 점
- 대상 앱이 인증서 고정을 사용하면 트래픽을 복호화하기 어렵습니다.
- 인증서 설치·프록시 설정 과정이 필요해 초보자에게 진입 장벽이 있습니다.
- HTTPS 복호화 특성상 개인정보·자격증명이 로그에 남을 수 있어 주의가 필요합니다.
비슷한 프로그램과 비교
| 프로그램 | 특징 | 이런 경우에 적합 |
|---|---|---|
| Burp Suite Community | 웹 보안 테스트 표준, 스캐너는 상용판 | 웹 앱 침투 테스트 워크플로 |
| Fiddler | Windows 중심 GUI 프록시 | Windows 환경의 상시 트래픽 확인 |
| tcpdump | 패킷 단위 원시 캡처(복호화 없음) | 속도·오버헤드가 중요한 네트워크 진단 |
공식 자료 및 추가 학습
- 공식 홈페이지 — https://mitmproxy.org/
- 공식 문서 / 지식베이스 — https://docs.mitmproxy.org/
- 공식 다운로드 — https://mitmproxy.org/downloads/
- 릴리스 노트 — https://github.com/mitmproxy/mitmproxy/blob/main/CHANGELOG.md
- 소스 / 개발 자료 — https://github.com/mitmproxy/mitmproxy
버전·지원 환경 정보는 2026-10-18 기준으로 공식 사이트에서 확인한 값입니다. 설치 명령은 사용하는 배포판과 버전에 따라 달라질 수 있으므로 공식 설치 문서를 함께 확인하세요.
실제 실행 화면
아래는 사용 흐름을 이해하기 위해 만든 합성 예시 화면입니다(실제 실행 결과 아님). 화면은 합성 예시이며 실제 실행 결과가 아닙니다.
!mitmproxy 예시: mitmweb 실행, 캡처된 API 요청 목록
실제 운영 중인 서버
원문(HTML): https://games.cursorai.co.kr/programs/apps/network/mitmproxy.html
AI Knowledge Hub
방문자 댓글