울지않는벌새 : Security, Movie & Society

WinSocketA.dll 파일을 이용한 LSP(Layered Service Provider) 변경을 하는 악성코드 유포 주의 (2012.7.1)

벌새::Analysis

최근 마이크로소프트(Microsoft)사에서는 Microsoft XML Core Services 취약점을 이용하여 Internet Explorer 웹 브라우저를 이용하여 변조된 웹 사이트에 접속시 원격 코드 실행이 가능한 제로데이(0-Day) 취약점을 이용한 악성코드 유포가 2012년 5월경에 보고되어 현재 보안 패치를 준비하고 있는 상태입니다.

 

  Microsoft 제로데이 취약점 : CVE-2012-1889 (2012.6.13)

 

하지만 해당 CVE-2012-1889 취약점 코드가 공개되면서 이번 주말 다양한 웹 사이트를 통해 온라인 게임 계정 탈취 또는 백도어(Backdoor) 설치 목적으로 감염을 유발하는 행위가 확인되고 있는 상태입니다.

 

특히 이번에 유포되는 악성 파일은 과거 악성 파일 감염 기법 중 하나인 LSP(Layered Service Provider) 영역을 변조하여 백신 프로그램을 통한 치료 이후에도 인터넷이 연결되지 않는 문제가 발생할 수 있습니다.

 

이에 감염으로 인한 인터넷 연결이 되지 않는 문제를 수동으로 해결할 수 있는 방법을 살펴보도록 하겠습니다.

 

  <처리의 블로그> 주말 변조사이트로 인한 "Trojan.JS.QRG(search.htm)" 주의!! (2012.6.30)

 

테스트에 활용된 유포 관련 정보는 보안 전문가이신 처리님 블로그 내용을 참고하시기 바라며, 해당 악성코드로부터 근본적인 감염을 예방하기 위해서는 Adobe Flash Player 및 Oracle JRE 프로그램을 항상 최신 버전으로 유지하시기 바랍니다.

 

또한 CVE-2012-1889 제로데이(0-Day) 취약점은 현재 공식 보안 패치가 나와 있지 않은 상태이므로 마이크로소프트(Microsoft)사에서 제공하는 임시 Fix it 툴(Microsoft Fix it 50897)을 다운로드하여 설치하시기 바랍니다.

 

해당 악성코드는 보안 패치가 제대로 이루어지지 않은 상태로 감염을 유발하는 웹 사이트에 접속시 자동으로 감염이 이루어지며, 최종적으로 다운로드된 파일(MD5 : 01556b4bf7ce86651c2f3d348ba7076a)에 대하여 AhnLab V3 보안 제품에서는 Trojan/Win32.OnlineGameHack (VirusTotal : 22/42) 진단명으로 진단되고 있습니다. 

이 때 사용자 PC에 AhnLab V3, 알약(ALYac) 등의 보안 제품이 진단되지 않도록 할 목적으로 C 루트 경로에 랜덤(Random)한 드라이브 파일(.sys)을 생성하여 백신을 무력화한 후 자신은 삭제 처리가 되는 것을 확인할 수 있습니다.

 

[생성 파일 및 진단 정보]

 

C:\WINDOWSSSkReU8.sys :: 자가 삭제
 - MD5 : 567f509c29af66f7488c4c0b8d3832f5
 - AhnLab V3 : Backdoor/Win32.AntiAV (VirusTotal : 8/42)

※ 해당 파일명은 랜덤(Random)하게 생성됩니다.

 

C:\WINDOWS\system32\WinSocketA.dll
 - MD5 : b85953da1fe30fc5f79e8cbf5e07e844
 - nProtect : Trojan/W32.Forwarded.Gen (VirusTotal : 17/41)

 

또한 실질적인 악의적 기능을 가진 "C:\WINDOWS\system32\WinSocketA.dll" 파일을 생성하여, 다양한 프로세스에 추가하며 자신을 LSP(Layered Service Provider) 영역에 추가하는 동작을 수행합니다. 

우선 "C:\WINDOWS\system32\WinSocketA.dll" 악성 파일의 속성값을 확인해보면 ws2help.dll 시스템 파일(Windows Socket 2.0 Helper for Windows NT)로 위장하고 있는 것을 확인할 수 있습니다. 

해당 악성 파일은 지정된 웹 사이트 및 온라인 게임 실행시 계정 정보를 수집하여 국내에 위치한 m71.88999dafadafd.com(111.92.188.25) 서버로 전송하는 동작을 확인할 수 있습니다.

 

그 외에 알약(ALYac), AhnLab V3, AhnLab SiteGuard, 네이버 백신(Naver Vaccine)에 대한 무력화 기능이 포함되어 있습니다.

 

LSP(Layered Service Provider)는 Winsock 2 API에 등록된 dll 파일(C:\WINDOWS\system32\mswsock.dll, C:\WINDOWS\system32\rsvpsp.dll 등)을 호출하여 통신을 시도하며, 사용자 시스템 환경에 따라 내용이 일부 다를 수 있습니다. 

LSP(Layered Service Provider) 레지스트리 값은 "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2\Parameters\Protocol_Catalog9"이며, 그림에서와 같이 감염 전 상태에서는 Catalog_Entries 하위값에 13개를 포함하고 있습니다. 

해당 LSP 값의 세부 정보를 살펴보면 그림과 같은 파일 모듈로 연결되어 외부와 통신을 하게 되도록 구성되어 있습니다. 

그런데 감염으로 인해 변경된 LSP 레지스트리 값을 확인해보면 13개에서 16개의 엔트리 값으로 변경된 것을 확인할 수 있습니다. 

세부적으로 확인해보면 붉은색으로 표시한 "Catalog_Entries\000000000001", "Catalog_Entries\000000000002", "Catalog_Entries\000000000016" 값이 감염으로 인해 생성된 "C:\WINDOWS\system32\WinSocketA.dll" 악성 모듈로 연결이 이루어진 것을 확인할 수 있습니다.

 

이를 통해 감염된 환경에서 사용자가 인터넷을 이용하는 과정에서 TCP/IP, UDP/IP 프로토콜을 통해 통신이 이루어지는 패킷 정보를 중간에서 가로챌 수 있으며, 이번 사례의 경우에는 WinSocketA.dll 파일에 등록된 다음의 웹 사이트에 대해서만 정보가 수집됩니다.

  1. teencash.co.kr
  2. dk.halgame.com
  3. aion.plaync.co.kr
  4. mabinogi.nexon.com
  5. kr.battle.net
  6. df.nexon.com
  7. hangame.com
  8. netmarble.net
  9. pmang.com

또한 그 외의 LSP 레지스트리 값의 변화를 확인해보면 "Catalog_Entries\000000000001" 값 영역에 "Catalog_Entries\000000000001(WinSocketA.dll), Catalog_Entries\000000000002(WinSocketA.dll), Catalog_Entries\000000000003(mswsock.dll)" 값이 추가되었으며, "Catalog_Entries\000000000002(mswsock.dll) → Catalog_Entries\000000000004(mswsock.dll)"로 변경되는 방식입니다.

 

해당 LSP 감염으로 인해 사용자가 체감하는 부분은 존재하지 않지만, 일부 백신 프로그램이 "C:\WINDOWS\system32\WinSocketA.dll" 악성 파일을 진단하여 치료를 하는 과정에서 단순히 파일 삭제만을 한 후에는 인터넷에 연결되지 않는 치명적인 문제가 발생합니다.

 

이런 문제를 해결하기 위해서 수동으로 파일 제거 및 변경된 LSP(Layered Service Provider) 레지스트리 값을 복구하는 방법에 대해 살펴보도록 하겠습니다.

 

(1) 우선 LSP 수정을 위해서 해외에서 제작된 "LSP-Fix 1.1" 프로그램을 사전에 다운로드하시기 바랍니다.

 

참고로 해당 프로그램이 제작된 년도가 오래 전이므로 제작사 홈 페이지는 변경되거나 사라진 것으로 보이므로, 반드시 해외 SoftPedia 공개 자료실에서 다운로드 하시기 바랍니다.

 

일부 이런 파일을 블로그에 업로드하여 악성 파일을 추가할 수 있으므로 블로그 등에서 다운로드하지 않도록 주의하시기 바랍니다.

 

(2) "C:\WINDOWS\system32\WinSocketA.dll" 파일의 확장자명을 변경한 후 시스템 재부팅을 진행하시기 바랍니다.(예시 : WinSocketA.dll-Malware) 

시스템 재부팅을 한 후 윈도우가 실행되면 그림과 같이 시스템 트레이 알림 아이콘에서는 느낌표 모양의 통신 아이콘이 생성되어 로컬 영역 연결이 되지 않는다고 표시를 합니다. 

또한 실제 인터넷 웹 사이트에 접속해보면 그림과 같이 웹 페이지를 표시할 수 없다는 메시지를 볼 수 있습니다.

 

(3) 파일 확장자명을 변경한 "C:\WINDOWS\system32\WinSocketA.dll-Malware" 악성 파일을 찾아 삭제하시기 바랍니다. 

"C:\WINDOWS\system32\WinSocketA.dll" 악성 파일을 제거한 후의 LSP 값을 확인해보면 해당 모듈로 연결하였던 "Catalog_Entries\000000000001", "Catalog_Entries\000000000002", "Catalog_Entries\000000000016" 값에서 파일을 발견할 수 없다는 표시됩니다.

 

이로 인하여 인터넷 연결을 시도할 경우 TCP/IP, UDP/IP 프로토콜이 정상적인 기능을 할 수 없게 되므로 (1)번에서 다운로드한 "LSP-Fix 1.1" 프로그램을 이용하여 해당 LSP 레지스트리 값을 다음과 같이 수정하시기 바랍니다.

 

■ LSP-Fix 1.1 프로그램 사용 방법

 

참고로 해당 프로그램 사용으로 인해 시스템에 문제가 발생하여 인터넷 연결이 되지 않는 부분에 대해서는 책임지지 않습니다. 

다운로드된 LSP-Fix 1.1 프로그램의 압축을 해제한 후, 내부의 LSPFix.exe 파일을 실행하면 그림과 같은 "LSP-Fix" 프로그램 창이 생성됩니다.

 

해당 창에서 이미 Remove 영역에는 삭제된 WinSocketA.dll 악성 파일이 등록되어 있으므로 "I know what I'm doing(or enjoy re-installing my operation system...)" 박스에 체크를 하시기 바랍니다.

 

만약 WinSocketA.dll 파일이 Keep 영역에 위치하고 있는 경우에는 해당 파일을 선택하여 ">>" 버튼을 클릭하여 Remove 영역으로 이동시키시기 바랍니다.

 

모든 준비가 완료된 후에는 "finish>>" 버튼을 클릭하시면 자동으로 "Repair summary" 창을 통해 3개의 프로토콜 프로바이더 엔트리(Protocol provider entries) 값이 삭제되었으며, 13개의 값에 대해 번호가 수정되었다는 내용을 표시합니다.

 

이는 감염으로 인해 WinSocketA.dll 모듈이 등록한 3개의 값을 삭제한 것을 의미하며, 감염 전의 13개 값이 가진 번호(Catalog_Entries\000000000001 ~ Catalog_Entries\000000000013)로 수정이 이루어졌다는 의미입니다.

 

(4) "확인" 버튼을 클릭하시면 자동으로 LSP-Fix 프로그램은 종료되며, 사용자는 반드시 시스템 재부팅을 진행하시기 바랍니다. 

감염 이전 상태와 치료가 완료된 LSP 레지스트리 값을 비교해보면 "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2\Parameters\
Protocol_Catalog9"
키 값의 "Num_Catalog_Entries, Serial_Access_Num" 하위 값만이 수정되지 않았을 뿐 인터넷을 이용하는데 아무런 문제가 없는 것을 확인할 수 있습니다.

 

위와 같은 절차에 따라 악성코드 감염으로 인해 변경된 LSP(Layered Service Provider) 레지스트리 값 수정을 통해 정상적으로 인터넷 연결이 이루어지도록 하였습니다.

 

모든 절차가 완료된 사용자는 반드시 국내외 유명 백신 프로그램을 이용하여 정밀 검사를 추가적으로 하시기 바랍니다.

 

이런 악성코드 감염으로부터 피해를 예방하기 위해서는 윈도우(Windows)를 비롯한 사용자 PC에 설치된 각종 소프트웨어를 최신 버전으로 유지하는 것이 가장 핵심이며, 백신 프로그램을 통한 파일 치료로는 문제가 해결되지 않을 경우가 있으므로 주의하시기 바랍니다.