웹 프록시 자동 검색 프로토콜
Web Proxy Auto-Discovery ProtocolWPAD(Web Proxy Auto-Discovery) 프로토콜은 클라이언트가 DHCP 및/또는 DNS 검색 방법을 사용하여 구성 파일의 URL을 찾기 위해 사용하는 방법이다.구성 파일의 탐지 및 다운로드가 완료되면, 지정된 URL의 프록시를 결정하기 위해 실행할 수 있다.
역사
WPAD 프로토콜은 이 파일의 위치를 발견하기 위한 메커니즘을 개략적으로 설명할 뿐이지만, 가장 일반적으로 배치되는 구성 파일 형식은 Netscape Navigator 2.0을 위해 Netscape가 원래 설계한 프록시 자동 구성 형식이다.[1]WPAD 프로토콜은 잉꼬미, 마이크로소프트, 리얼네트웍스, 선마이크로시스템스(현 오라클) 등 기업 컨소시엄에 의해 초안됐다.WPAD는 1999년 12월에 만료된 인터넷-Draft에 기록되어 있다.[2]그러나 WPAD는 여전히 모든 주요 브라우저에서 지원하고 있다.[3][4]WPAD는 처음에 Internet Explorer 5.0에 포함되었다.
컨텍스트
조직의 모든 브라우저가 동일한 프록시 정책을 제공받으려면 각 브라우저를 수동으로 구성하지 않고 다음 기술이 모두 필요하다.
- PAC(Proxy auto-config) 표준: 하나의 중앙 프록시 구성 파일을 생성하고 게시하십시오.자세한 내용은 별도 기사에서 논한다.
- WPAD(Web Proxy Auto-Discovery Protocol) 표준: 조직의 브라우저가 수동 구성 없이 이 파일을 찾는지 확인하십시오.이것이 이 기사의 주제다.
WPAD 표준은 시스템 관리자가 DHCP(Dynamic Host Configuration Protocol) 또는 DNS(Domain Name System)를 사용하여 프록시 구성 파일의 위치를 게시하는 데 사용할 수 있는 두 가지 대체 방법을 정의한다.
첫 페이지를 가져오기 전에 이 방법을 구현하는 웹 브라우저는 DHCPINFY 쿼리를 로컬 DHCP 서버에 보내고 서버의 응답에 WPAD 옵션의 URL을 사용한다.DHCP 서버가 원하는 정보를 제공하지 않는 경우 DNS가 사용된다.예를 들어 사용자 컴퓨터의 네트워크 이름이 pc.department.branch.example.com인 경우, 브라우저는 클라이언트 도메인 내에서 프록시 구성 파일을 찾을 때까지 다음 URL을 차례로 시도한다.
- http://wpad.department.branch.example.com/wpad.dat
- http://wpad.branch.example.com/wpad.dat
- http://wpad.example.com/wpad.dat
- http://wpad.com/wpad.dat(잘못된 구현의 경우 아래 보안 참고 사항 참조)
(참고: 이는 "example.com"의 예약된 도메인 이름을 사용하기 때문에 "실시간" URL이 아닌 예시 입니다.
DNS 쿼리가 실패할 경우 Windows에서 추가적으로 LLLMNR(링크-로컬 멀티캐스트 이름 확인) 및/또는 NetBIOS가 사용될 것이다.[5][6]
메모들
DHCP의 우선 순위가 DNS보다 높음: DHCP가 WPAD URL을 제공하는 경우 DNS 조회가 수행되지 않음.이것은 DHCPv4에서만 작동한다.DHCPv6에서는 WPAD-Option이 정의되어 있지 않다.
Firefox는 DHCP, DNS만 지원하지 않으며 Windows 및 ChromeOS 이외의 플랫폼의 Chrome과 버전 13 이전 버전의 Chrome도 마찬가지다.[3][4]
쿼리 패킷을 구성할 때 DNS 조회는 도메인 이름의 첫 부분(클라이언트 호스트 이름)을 제거하고 wpad로 대체한다.그런 다음 WPAD PAC 파일을 찾거나 현재 조직을 떠날 때까지 도메인 이름의 더 많은 부분을 제거하여 계층에서 "동력"한다.
브라우저는 조직의 경계가 어디에 있는지 추측한다.이러한 추측은 종종 'company.com'이나 'university.edu'과 같은 도메인에서는 옳지만 'company.co.uk'에서는 틀렸다(아래 보안 참조).
DNS 검색의 경우 구성 파일의 경로는 항상 wpad.dat입니다.DHCP 프로토콜의 경우 모든 URL을 사용할 수 있다.전통적인 이유로 PAC 파일은 proxy.pac(물론 이 이름의 파일은 WPAD DNS 검색에서 무시된다)이라고 불린다.
구성 파일의 MIME 유형은 "응용프로그램/x-ns-proxy-autoconfig"여야 한다.자세한 내용은 프록시 자동 구성을 참조하십시오.
현재 Internet Explorer와 Konkerer는 DHCP와 DNS 방법을 모두 지원하는 유일한 브라우저로 대부분의 주요 브라우저에서 DNS 방법을 지원한다.[7]
요구 사항들
WPAD가 작동하려면 다음과 같은 몇 가지 요구 사항을 충족해야 한다.
- DHCP를 사용하려면 서버가 문자열 값(예: http://example.com/wpad.dat)으로 "site-local" 옵션 252("auto-changuage-config")를 제공하도록 구성되어야 한다. 여기서 "example.com"은 웹 서버의 주소다.
- DNS 전용 메서드를 사용하려면 WPAD라는 호스트에 대한 DNS 항목이 필요하다.
- WPAD 주소의 호스트는 웹 페이지를 제공할 수 있어야 한다.
- 두 경우 모두 MIME 형식의 WPAD 파일을 서비스하도록 웹 서버를 구성해야 한다.
application/x-ns-proxy-autoconfig
. - DNS 방법을 사용하는 경우 wpad.dat라는 이름의 파일이 WPAD 웹 사이트의 루트 디렉터리에 있어야 한다.
- PAC 파일은 Proxy auto-config 문서에 설명되어 있다.
- 가상 호스팅 환경에서 WPAD 서버를 구성할 때는 주의하십시오.자동 프록시 감지를 사용하면 Internet Explorer 6 이하에서 WinHTTP와 WinINET이 "호스트: <IP 주소> 헤더를 보내고 IE7+와 Firefox가 "호스트: wpad" 헤더를 보낸다.따라서 wpad.dat 파일은 자체 파일이 아닌 기본 가상 호스트로 호스팅하는 것이 좋다.
- Internet Explorer 버전 6.0.2900.2180.xpsp_sp2_rtm은 웹 서버에서 "wpad.dat" 대신 "wpad.da"를 요청한다.
- Windows Server 2003(이상)을 DNS 서버로 사용하는 경우 DNS Server Global Query Block List를 사용하지 않도록 설정하거나, 차단된 쿼리 목록을 편집하도록 레지스트리를 수정해야 할 수 있다.[8][9]
보안
WPAD 프로토콜은 한 조직의 웹 브라우저 구성을 크게 단순화하면서, 공격자가 사용자의 브라우저에 나타나는 것을 변경할 수 있는 문을 열 수 있다는 점을 주의하여 사용해야 한다.
- 네트워크 내부의 공격자는 악의적인 PAC 스크립트의 URL을 제공하는 DHCP 서버를 설정할 수 있다.
- 만약 네트워크가 'company.co.uk'이고 http://wpad.company.co.uk/wpad.dat 파일이 제공되지 않는다면, 브라우저는 http://wpad.co.uk/wpad.dat을 요청할 것이다.2010년대에 공용 접미사 목록이 도입되기 전에, 일부 브라우저들은 wpad.co.uk이 더 이상 조직 내에 있지 않다고 판단할 수 없었다.
- http://wpad.org.uk에서도 같은 방법을 사용해 왔다.이것은 사용자의 모든 트래픽을 인터넷 경매 사이트로 리디렉션하는 wpad.dat 파일을 제공하는데 사용되었다.
- DNS 가로채기를 구현한 ISP는 사용자를 프록시 서버가 아닌 호스트로 유도하여 WPAD 프로토콜의 DNS 조회를 중단할 수 있다.
- WPAD 쿼리가 유출되면 도메인 이름이 내부 네트워크 이름 지정 체계와 충돌할 수 있다.공격자가 유출된 WPAD 쿼리에 응답하기 위해 도메인을 등록하고 유효한 프록시를 구성하면 인터넷을 통해 man-in-the-middle(MitM) 공격을 할 가능성이 있다.[10]
WPAD 파일을 통해 공격자는 사용자의 브라우저를 자신의 프록시로 가리키고 네트워크에 연결된 모든 사람의 WWW 트래픽을 가로채 수정한다.윈도 WPAD 취급에 대한 단순 수정은 2005년에 적용되었지만, 그것은 .com 도메인의 문제만 고쳤다.키위콘에서 열린 프레젠테이션에서는 테스트 목적으로 뉴질랜드에 등록된 샘플 도메인이 1초당 몇 초의 비율로 전국 각지의 대리 요청을 받는 등 나머지 세계가 여전히 이 보안 구멍에 매우 취약하다는 것을 보여주었다.wpad.tld 도메인 이름 중 몇 개(COM, NET, ORG 및 US 포함)는 현재 클라이언트 루프백 주소를 가리키며 일부 이름은 여전히 등록되어 있지만(wpad.co.uk) 이 취약성에 대한 보호를 돕는다.
따라서 관리자는 사용자가 조직의 모든 DHCP 서버를 신뢰할 수 있고 조직에 대해 가능한 모든 wpad 도메인이 관리되고 있는지 확인해야 한다.또한, 조직에 대해 구성된 wpad 도메인이 없는 경우 사용자는 도메인 계층 구조에서 다음 wpad 사이트가 있는 외부 위치로 이동하여 해당 구성을 위해 이 사이트를 사용한다.이것은 특정 국가에서 wpad 하위 도메인을 등록하는 누구든 모든 트래픽 또는 관심 사이트의 대리인으로 자신을 설정함으로써 해당 국가의 인터넷 트래픽의 많은 부분에 대해 중간 공격을 수행할 수 있게 한다.
이러한 트랩 위에, WPAD 방법은 웹 페이지를 보기 위해 JavaScript를 사용하지 않도록 설정한 경우에도 JavaScript 파일을 가져와 모든 사용자 브라우저에서 실행한다.
참조
- ^ "Navigator Proxy Auto-Config File Format". Netscape Navigator Documentation. March 1996. Archived from the original on 2007-03-07. Retrieved 2015-02-10.
- ^ Gauthier, Paul; Josh Cohen; Martin Dunsmuir; Charles Perkins (1999-07-28). "Web Proxy Auto-Discovery Protocol (INTERNET-DRAFT)". IETF. Retrieved 2015-02-10.
- ^ a b "Chromium #18575: Non-Windows platforms: WPAD (proxy autodetect discovery) does not test DHCP". 2009-08-05. Retrieved 2015-02-10.
- ^ a b "Firefox #356831 - Proxy autodiscovery doesn't check DHCP (option 252)". 2006-10-16. Retrieved 2015-02-10.
- ^ "Troubleshooting Web Proxy Auto Discovery (WPAD) issues". GFI Software. Retrieved 2015-02-10.
- ^ Hjelmvik, Erik (2012-07-17). "WPAD Man in the Middle". Retrieved 2015-02-10.
- ^ "Konqueror: Automatic Proxy Discovery". KDE. 2013-05-20. Retrieved 2015-02-10.
- ^ King, Michael (2010-02-17). "WPAD does not resolve in DNS". Retrieved 2015-02-10.
- ^ "Removing WPAD from DNS block list". Microsoft TechNet. Retrieved 2015-02-10.
- ^ "Alert (TA16-144A) WPAD Name Collision Vulnerability". US-CERT. 2016-10-06. Retrieved 2017-05-02.
추가 읽기
- de Boyne Pollard, Jonathan (2004). "Automatic proxy HTTP server configuration in web browsers". Frequently Given Answers.
- Jim Groves (November 2007). "DNS Server Global Query Block List". Microsoft.
- "PAC File & WPAD Examples". 2015-09-18.