본문 바로가기
취약점소식

[MS] DLL 하이재킹 취약점으로 인한 악성코드 감염 주의

by 잡다한 처리 2010. 8. 26.
반응형



□ 개요
   o 일부 응용프로그램에서 로드하는 라이브러리 파일의 경로를 부적절하게 검증함으로 인해 
     원격코드실행 취약점이 발생 [1, 3, 4, 5, 10]
   o 공격자는 취약한 프로그램을 사용하는 파일을 USB 이동저장매체, 압축 해제된 파일, WebDav, 
     원격 네트워크 공유 등을 통해 열도록 유도하여, 동일한 경로의 악의적인 라이브러리 파일이 
     로드되어 실행되게 함으로써 악성코드를 유포할 수 있음 [1, 6, 7]
   o 취약점을 공격하는 개념증명코드가 공개되었고 다수의 응용프로그램이 취약할 것으로 
     추정[2, 5]되므로, 개발자의 취약점 점검 조치 및 사용자의 각별한 주의가 요구됨

□ 해당 시스템
   o 영향 받는 소프트웨어 [1, 5]
     - 외부 라이브러리를 안전하지 않은 방식으로 로드하는 응용프로그램
       ※ LoadLibrary() 및 LoadLibraryEx()에서 라이브러리 파일의 절대 경로를 인자로 전달하지 
          않은 경우 취약점이 발생할 수 있음

□ 권장 조치 방안
   o 해당 취약점은 취약한 응용프로그램을 개발한 제작사에서 보안 업데이트를 발표해야할
     사안으로, 응용프로그램 개발자는 다음과 같은 조치를 권장함
     - 응용프로그램이 취약한지 여부를 "DLL Hijacking Audit Tool[11]"로 판단
     - Microsoft의 MSDN 사이트에서 DLL 검색 순서[8] 및 DLL 보안[9]에 관한 문서를 참고하고, 
       외부 라이브러리를 안전하게 로드할 수 있도록 해당 취약점을 패치
   o 일반 사용자는 취약점을 통한 공격을 완화시키기 위해 다음과 같은 설정 적용
     - Microsoft 기술자료 2264107[12]를 참고하여 WebDAV와 원격 네트워크 공유로부터 
       라이브러리가 로딩되지 않도록 설정
     - WebClient 서비스를 비활성화
       * 시작 → 실행 → services.msc 입력 후 확인 → WebClient 서비스 속성 → 시작 유형을 
         "사용 안 함"으로 설정 및 서비스 중지 선택 후 확인
     - 방화벽에서 TCP 139, 145 포트 차단
       ※ WebClient에 종속적이거나 해당 포트를 사용하는 윈도우 서비스나 응용프로그램을 사용하는 
           시스템은, 기능상 장애가 발생할 수 있음
   o 취약점에 의한 피해를 줄이기 위하여 사용자는 다음과 같은 사항을 준수해야함
     - 파일공유 기능 등을 사용하지 않으면 비활성화하고 개인방화벽을 반드시 사용
     - 사용하고 있는 백신프로그램의 최신 업데이트를 유지하고, 실시간 감시기능을 활성화
     - 신뢰되지 않는 웹 사이트의 방문 자제
     - 출처가 불분명한 이메일의 링크 클릭하거나 첨부파일 열어보기 자제


□ 용어 정리
   o DLL(Dynamic Link Library, 동적 연결 라이브러리): 동시에 하나 이상의 프로그램에서 사용될
     수 있는 코드와 데이터를 포함한 라이브러리로, DLL을 사용하면 프로그램을 분리된 구성 요소로 
     모듈화하여 작성할 수 있음
   o WebDAV(Web Distributed Authoring and Versioning): 웹 기반으로 파일의 생성, 복사,
     이동 및 삭제와 같은 기능이 수행되는 방식을 정의하는 HTTP 확장
      
□ 기타 문의사항
   o 한국인터넷진흥원 인터넷침해대응센터: 국번없이 118

□ 참고사이트
   [1] 
http://www.microsoft.com/technet/security/advisory/2269637.mspx
   [2] 
http://www.theregister.co.uk/2010/08/20/windows_code_execution_vuln/
   [3] 
http://isc.sans.edu/diary.html?storyid=9445
   [4] 
http://acrossecurity.blogspot.com/2010/08/binary-planting-update-day-6.html
   [5] 
http://www.acrossecurity.com/advisories.htm
   [6] 
http://blog.metasploit.com/2010/08/exploiting-dll-hijacking-flaws.html
   [7] 
http://blog.rapid7.com/?p=5325
   [8] 
http://msdn.microsoft.com/en-us/library/ms682586(VS.85).aspx
   [9] 
http://msdn.microsoft.com/en-us/library/ff919712(VS.85).aspx
   [10] 
http://blog.zoller.lu/2010/08/cve-2010-xn-loadlibrarygetprocaddress.html
   [11] 
https://www.metasploit.com/redmine/projects/framework/repository/raw/external/
source/DLLHijackAuditKit.zip

   [12] 
http://support.microsoft.com/kb/2264107



댓글