계층형 서비스 프로바이더
Layered Service Provider계층형 서비스 공급자(LSP)는 Microsoft Windows Winsock 2 Service Provider Interface(SPI)에서 권장되지 않는 기능입니다.계층형 서비스 공급자는 Winsock API를 사용하여 TCP/IP 프로토콜 스택에 삽입을 시도하는 DLL입니다.스택에 들어가면 레이어드서비스 프로바이더는 착신 및 발신 인터넷트래픽을 대행 수신 및 변경할 수 있습니다.인터넷과 인터넷에 접속하고 있는 애플리케이션(웹 브라우저, 전자 메일클라이언트 등) 간에 발생하는 모든 TCP/IP 트래픽을 처리할 수 있습니다.예를 들어 악성 프로그램이 웹 브라우저를 악성 웹 사이트로 리디렉션하거나 Windows Update와 같은 사이트에 대한 액세스를 차단하는 데 사용할 수 있습니다.또는 컴퓨터 보안 프로그램은 네트워크 트래픽에서 바이러스 또는 기타 위협을 검색할 수 있습니다.Winsock Service Provider Interface(SPI; Winsock Service Provider Interface) API는 프로바이더를 서로 겹쳐 쌓기 위한 메커니즘을 제공합니다.Winsock LSP는 보호자 통제 및 웹 콘텐츠 필터링 등 다양한 유용한 용도로 사용할 수 있습니다.Windows Vista 의 보호자 컨트롤 Web 필터는 LSP 입니다.모든 프로바이더의 계층화 순서는 Winsock 카탈로그에 저장됩니다.
세부 사항
Winsock 2 API는 많은 서적, 문서 및 샘플로 커버되어 있는 유명한 Winsock 2 API와 달리 비교적 미개척입니다.Winsock 2 SPI는 네트워크 전송 서비스 프로바이더와 네임스페이스 해결 서비스 프로바이더에 의해 구현됩니다.Winsock 2 SPI는 계층형 서비스 공급자를 구현하여 기존 전송 서비스 공급자를 확장하는 데 사용할 수 있습니다.예를 들어 Windows 98 및 Windows 2000의 Quality of Service(QoS; 서비스 품질)는 TCP/IP 프로토콜 스택을 통해 LSP로 구현됩니다.LSP의 또 다른 용도는 전용 URL 필터링 소프트웨어를 개발하여 데스크톱에 설치되어 있는 브라우저에 관계없이 웹 브라우저가 특정 사이트에 액세스하지 못하도록 하는 것입니다.Winsock 2 SPI를 사용하면 소프트웨어 개발자는 트랜스포트와 네임스페이스라는 두 가지 유형의 서비스 공급자를 만들 수 있습니다.전송 공급자(일반적으로 프로토콜 스택이라고 함)는 연결 설정, 데이터 전송, 흐름 제어, 오류 제어 등을 수행하는 기능을 제공하는 서비스입니다.네임스페이스 제공자는 네트워크 프로토콜의 주소 지정 속성을 하나 이상의 인간 친화적인 이름과 연결하고 프로토콜 독립적인 이름 확인을 가능하게 하는 서비스입니다.또한 SPI를 사용하면 기본 서비스 공급자와 계층 서비스 공급자의 두 가지 유형의 전송 서비스 공급자를 개발할 수 있습니다.
기본 서비스 공급자는 연결 설정, 데이터 전송, 흐름 제어 및 오류 제어 실행 등 전송 프로토콜의 실제 세부 사항을 구현합니다.계층형 서비스 프로바이더는 상위 수준의 커스텀 통신 기능만 구현하며 원격 엔드포인트와의 실제 데이터 교환을 위해 기존 기본 프로바이더에 의존합니다.
Winsock 2 LSP는 WSPSartup이라는 단일 내보내기 엔트리 함수를 가진 Windows DLL로 구현됩니다.다른 모든 트랜스포트 SPI 함수는 LSP의 디스패치테이블을 통해 ws2_32.dll 또는 상위 체인 레이어 프로바이더에 액세스 할 수 있습니다.LSP와 기본 공급자는 프로토콜 체인을 형성하기 위해 함께 결합됩니다.LSP DLL은 Winsock 2, LSP 로드 순서(여러 LSP가 설치될 수 있음) 및 인터셉트할 프로토콜을 지시하는 특수한 LSP 레지스트런트를 사용하여 등록해야 합니다.
LSP는 ws2_32.dll에 의해 처리되기 전에 Winsock 2 명령을 대행 수신함으로써 동작합니다.따라서 명령어를 변경하거나 명령을 드롭하거나 데이터를 기록할 수 있습니다.이러한 명령어는 말웨어, 네트워크필터, 네트워크인터펙터 및 스트림베이스 스니퍼에 도움이 됩니다.안티바이러스 벤더는 일반적으로 이러한 액티비티에 악의적인 플래그를 붙이기 때문에 LSP 경유로 네트워크트래픽을 스니핑하는 것은 문제가 될 수 있습니다.따라서 네트워크패킷아나라이저로 네트워크트래픽을 캡처하는 것이 좋습니다.
LSP 및 Winsock 프록시 스니핑의 기능은 단일 응용 프로그램에서 트래픽을 캡처할 수 있으며 localhost(127.0.1)로 향하는 트래픽을 Windows에서 [1]스니핑할 수도 있다는 것입니다.
LSP에는 IFS와 비 IFS LSP의 2종류가 있습니다.현재 시판되고 있는 LSP의 대부분은 비 IFS입니다.2개의 LSP의 차이점은 비 IFS LSP가 소켓핸들을 무효인 Windows IFS 핸들로 변경하기 때문에 LSP는 모든 Winsock 2 방식을 구현해야 한다는 것입니다.한편 IFS LSP에서는 소켓핸들이 유지되므로 LSP는 대행 수신하는 기능만 구현할 수 있습니다.IFS LSP는 비 IFS LPS보다 퍼포먼스에 미치는 영향은 훨씬 적지만 수신 경로 상의 데이터를 검사하거나 변경할 수 없기 때문에 제한됩니다.
폐지 및 LSP 바이패스
LSP는 Windows Server 2012 [2]이후 폐지되었습니다.LSP를 탑재한 시스템은 Windows 로고 [3]체크를 통과하지 않습니다.네트워킹을 사용하는 Windows 8 스타일의 "메트로" 앱은 모든 LSP를 자동으로 바이패스합니다.Windows Filtering Platform은 유사한 기능을 제공하며 Windows 8 스타일의 "메트로" 앱과 기존 데스크톱 애플리케이션과 모두 호환됩니다.
파손 문제
LSP의 주요 문제는 LSP 내의 버그로 인해 응용 프로그램이 파손될 수 있다는 것입니다.예를 들어, LSP가 인터페이스를 통해 송신된 바이트 수를 잘못 반환하면 네트워크 스택이 데이터가 송신되었음을 나타내는 것을 기다리는 동안 애플리케이션이 무한 루프 상태가 될 수 있습니다.
LSP의 또 다른 일반적인 문제는 LSP가 부적절하게 삭제 또는 등록 해제되거나 LSP가 버그가 있는 경우 레지스트리의 Winsock 카탈로그가 파손되어 TCP/IP 스택 전체가 파손되어 컴퓨터가 네트워크에 접속할 수 없게 되는 것입니다.
LSP 테크놀로지는 인터넷을 통한 통신을 대행 수신하기 위해 스파이웨어 및 애드웨어 프로그램에 의해 악용되는 경우가 많습니다.예를 들어 악성코드는 네트워크 스택에 LSP로 삽입되어 사용자의 모든 트래픽을 허가되지 않은 외부 사이트로 전송할 수 있습니다.이 사이트에서는 타깃 광고 및 스팸 전자 메일을 통해 사용자의 관심을 집중시킬 수 있습니다.멀웨어 LSP가 올바르게 제거되지 않으면 이전 버전의 Windows가 네트워크 연결 없이 남아 있을 수 있습니다.
Windows XP Service Pack 2, Windows Server 2003 Service Pack 1 및 그 이후의 모든 Windows 운영체제에서는 이러한 모든 네트워크 연결이 손실되는 것을 방지할 수 있습니다.이 운영체제에서는 사용자가 LSP를 제거한 후 [4]Winsock이 자가 복구 기능을 갖추고 있습니다.
설치된 LSP는 XP/Vista Windows Defender의 소프트웨어 탐색기 또는 서드파티 유틸리티를 사용하여 표시할 수 있습니다.