Android에서 Burp Suite로 트래픽 캡처하기
Android 환경에서 Burp Suite로 모바일 앱의 네트워크 트래픽을 캡처하고 분석하는 전체 절차. 프록시 설정, 인증서 설치, HTTPS 복호화 및 문제 해결 방법을 포함한 절차
목차
소개
모바일 앱 테스트에서 네트워크 트래픽 분석은 핵심 활동이다. 이 글은 Android 환경에서 Burp Suite를 이용해 트래픽을 캡처하는 과정을 단계별로 설명한다. 초보자도 이해하기 쉽게 구성했고, 프록시 설정부터 인증서 설치, HTTPS 복호화, 흔한 문제 해결까지 다룬다. 주요 키워드는 Android Burp 트래픽 캡처, Burp Suite 모바일 테스트 Android, 포켓몬 Burp Android 프록시 등이다.
준비물
필수 도구
- Burp Suite(Community 또는 Professional)
- 테스트용 Android 디바이스 또는 에뮬레이터
- 테스트 디바이스와 동일 네트워크에 연결된 PC
- ADB 도구(필요 시)
네트워크 구성 개요
기본 아이디어는 Android 디바이스의 트래픽을 PC에서 실행 중인 Burp로 전달하는 것이다. 이를 위해 Burp가 리슨(listen)할 IP와 포트를 결정하고, Android의 프록시를 해당 주소로 설정한다. 일반적으로 포트는 8080을 사용한다.
Burp Suite 설정
프록시 리스너 구성
- Burp Proxy 탭에서 Options로 이동한다.
- Proxy Listeners에서 Add를 통해 리스너를 추가하거나 기존 리스너의 Bind to address를 PC의 IP(예: 192.168.1.100) 또는 All interfaces로 설정한다.
- 포트는 8080으로 설정하는 경우가 일반적이다.
인증서 내보내기
HTTPS 복호화를 위해 Burp의 CA 인증서를 Android에 설치한다.
Burp -> Proxy -> Options -> Import / export CA certificate -> Save in DER format
Android 디바이스 설정
에뮬레이터 사용
에뮬레이터는 루팅된 시스템 이미지를 사용하는 경우가 많아 시스템 인증서 설치가 수월하다. 에뮬레이터 실행 시 프록시 설정을 추가할 수 있다.
emulator -avd Pixel_3a_API_30 -http-proxy http://192.168.1.100:8080
실기기(무선 네트워크) 프록시 설정
- Wi‑Fi 설정에서 연결된 네트워크의 고급 옵션을 열고 프록시를 수동으로 설정한다.
- 프록시 호스트는 Burp가 리슨하는 PC의 IP, 포트는 Burp 포트(예: 8080).
ADB를 통한 프록시 설정(대체 방법)
ADB로 글로벌 프록시를 설정하면 앱 전체에 적용된다. 일부 Android 버전에서 제한이 있을 수 있다.
adb shell settings put global http_proxy 192.168.1.100:8080
adb shell settings get global http_proxy # 설정 확인
adb shell settings put global http_proxy :0 # 프록시 해제
HTTPS 트래픽 복호화 및 인증서 설치
사용자 인증서 설치(비루팅 기기)
- PC에서 내보낸 cacert.der 파일을 디바이스로 옮긴다.
- Android 브라우저로 해당 파일을 열어 인증서 설치 페이지로 이동한다. 또는 설정 > 보안 > 인증서 설치를 통해 추가한다.
- 안드로이드 7.0 이상에서는 사용자 인증서가 기본적으로 신뢰되지 않는 앱이 있으므로 앱 측 네트워크 보안 설정 확인이 필요하다.
시스템 인증서로 설치(에뮬레이터 또는 루팅된 기기)
루팅이나 에뮬레이터를 활용하면 CA를 시스템 신뢰 저장소에 추가하여 대부분의 앱에서 신뢰하도록 만들 수 있다. 일반 절차는 다음과 같다.
openssl x509 -inform DER -in cacert.der -out cacert.pem
adb root
adb remount
adb push cacert.pem /system/etc/security/cacerts/
adb shell chmod 644 /system/etc/security/cacerts/cacert.pem
adb reboot
이 방식은 시스템 인증서로 등록되어 앱의 TLS 연결 복호화가 가능해진다.
테스트 실행 및 검증
- Burp의 Proxy 탭에서 Intercept를 끄고 HTTP history를 확인한다.
- Android에서 앱을 실행하고 네트워크 활동을 발생시킨다.
- Burp에서 요청과 응답이 캡처되는지 확인한다. HTTPS의 경우 인증서가 올바르게 설치되어야 복호화된 내용을 확인할 수 있다.
인증서 핀닝 및 고급 문제
일부 앱은 인증서 핀닝을 사용하여 중간자 공격을 차단한다. 이 경우 일반적인 CA 설치만으로는 트래픽이 복호화되지 않는다. 핀닝 우회는 보안 및 법적 고려가 필요하다. 합법적인 테스트 환경에서는 디버깅 빌드 사용, 네트워크 보안 설정 수정, 또는 동적 도구(예: Frida)를 통한 분석 방법을 검토한다.
문제 해결 요약
- 트래픽이 보이지 않을 때: 프록시 IP/포트가 올바른지, 디바이스와 PC가 같은 네트워크인지 확인한다.
- HTTPS 복호화가 되지 않을 때: 인증서 설치 여부, 앱의 네트워크 보안 구성, 인증서 핀닝 여부를 점검한다.
- ADB 명령이 실패할 때: 디바이스가 디버깅 모드인지, 권한 문제가 없는지 확인한다.
보안 및 법적 주의사항
트래픽 캡처는 소유자 동의가 있는 시스템에서만 수행해야 한다. 타인의 데이터나 상용 앱을 무단으로 분석하는 행위는 법적 책임을 초래할 수 있다. 테스트 환경은 격리된 네트워크와 허가된 디바이스를 사용한다.
결론
이 글은 Android에서 Burp Suite를 통한 트래픽 캡처의 전체 흐름을 다룬다. 프록시 설정, 인증서 설치, HTTPS 복호화, 핀닝 관련 문제와 해결 방향을 포함해 실무에서 바로 참고 가능한 절차 중심으로 정리했다. 처음 접하는 경우에는 에뮬레이터에서 연습한 뒤 실기기로 확장하는 방법이 권장된다.