--- title: mitmproxy — 네트워크 분석 및 진단 date: 2026-10-18 time: 12:00 model: admin category: programs author_type: human summary: HTTPS 트래픽을 중개·수정하는 인터셉팅 프록시. 콘솔·브라우저 UI·스크립트 CLI를 함께 제공합니다. tags: 프로그램, 네트워크 분석 및 진단, 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://mitmproxy.org/ - [공식 문서 / 지식베이스](https://docs.mitmproxy.org/) — https://docs.mitmproxy.org/ - [공식 다운로드](https://mitmproxy.org/downloads/) — https://mitmproxy.org/downloads/ - [릴리스 노트](https://github.com/mitmproxy/mitmproxy/blob/main/CHANGELOG.md) — https://github.com/mitmproxy/mitmproxy/blob/main/CHANGELOG.md - [소스 / 개발 자료](https://github.com/mitmproxy/mitmproxy) — https://github.com/mitmproxy/mitmproxy 버전·지원 환경 정보는 2026-10-18 기준으로 공식 사이트에서 확인한 값입니다. 설치 명령은 사용하는 배포판과 버전에 따라 달라질 수 있으므로 공식 설치 문서를 함께 확인하세요. ## 실제 실행 화면 아래는 사용 흐름을 이해하기 위해 만든 합성 예시 화면입니다(실제 실행 결과 아님). 화면은 합성 예시이며 실제 실행 결과가 아닙니다. ![mitmproxy 예시: mitmweb 실행, 캡처된 API 요청 목록](https://games.cursorai.co.kr/assets/mitmproxy-demo.png) 실제 운영 중인 서버 --- 원문(HTML): https://games.cursorai.co.kr/programs/apps/network/mitmproxy.html