블로그로 돌아가기

프록시를 써도 IP가 보이는 이유: WebRTC 누출 검사와 보호

ICE, STUN, TURN, UDP, IPv6를 이해하고 실제 WebRTC 누출과 로컬 또는 relay 주소를 구분해 PurpleMark를 설정합니다.

프록시를 써도 IP가 보이는 이유: WebRTC 누출 검사와 보호

프록시를 써도 IP가 보이는 이유: WebRTC 누출 검사와 보호

일반 IP 검사는 프록시를 표시하지만 WebRTC 검사에는 다른 IP나 .local 이름이 나타날 수 있습니다. ICE 후보 유형과 실제 경로를 확인하기 전에는 누출로 단정할 수 없습니다.

HTTP 프록시는 주로 웹 요청을 처리합니다. WebRTC는 오디오·비디오·데이터 연결을 위해 로컬 인터페이스, STUN, TURN에서 UDP/TCP ICE 후보를 수집합니다. UDP 또는 IPv6가 프록시 밖으로 나가면 STUN이 원래 네트워크의 공개 매핑을 볼 수 있습니다.

유형판독
host로컬, 사설 IP, IPv6 또는 mDNS이며 그 자체로 공개 IP 누출은 아님
srflxSTUN이 발견한 NAT 매핑이며 원래 ISP 공개 IP라면 강한 증거
prflx연결 검사 중 학습된 후보
relay최종 장치가 아닌 TURN 서버 주소

W3C는 IP 주소 공개의 개인정보 영향을 설명합니다.

검사와 보호

원래 IPv4/IPv6를 비공개로 기록한 뒤 프록시를 켜고 profile을 재시작하여 HTTP, DNS, 두 IP 계열을 확인합니다. type, protocol, 주소를 모아 원래 ISP, proxy, TURN과 비교합니다. 원래 ISP의 srflx는 위험이고 private 또는 .local은 맥락이 필요하며 relay는 TURN입니다. ICE 유형을 참고하세요.

필요한 UDP와 IPv6를 명확히 처리하는 터널을 쓰고 split tunneling을 점검하며 지원되는 경우 비프록시 UDP를 차단합니다. WebRTC를 끄면 회의와 화면 공유가 작동하지 않습니다. 개발자는 비용과 지연을 감수하고 relay-only TURN을 쓸 수 있습니다.

PurpleMark에는 Forward, Replace, Real, Disable, Proxy UDP가 있습니다. Replace는 IPv4를 proxy와 맞추고, Real은 실제 값, Disable은 읽기 차단, Proxy UDP는 Patch 2.8.2.0+가 필요하며, Forward는 설정된 기능을 유지합니다. 실제 네트워크에서 재검사하세요.

결론

두 번째 주소가 곧 누출은 아닙니다. 후보 유형과 원래 네트워크/프록시 비교가 필요합니다. PurpleMark는 승인된 환경을 분리하지만 검사나 플랫폼 규칙을 대신하지 않습니다.

참고자료