어도비(Adobe) 플래쉬 플레이어(Flahs Player)의 새로운 제로 데이(Zero Day) 취약점이 발견되고 이슈화 되었으며, 그에 따른 분석 내용을 다루고 있는 내용이었습니다.
사실 제로 데이 취약점들이 하루가 멀다하고 발견되다 보니 예전 만큼 호기심을 자극하는 것 은 없는 것 같습니다.
새로운 플래쉬 플레이어의 제로데이 취약점을 다룬 Zscaler 블로그 중에서 특히나 눈에 띄었던 부분은 아래 이미지입니다.
위 이미지는 scdbg라는 셸코드(ShellCode) 분석을 위한 도구인데, Zscaler에서는 플래쉬 파일(.swf) 파일에서 셸코드를 추출 한 후 scdbg를 이용해 분석한 결과를 보여준 것 입니다.
scdbg는 셸코드를 분석하기에는 아주 유용하고 편리한 도구이며, libemu라는 x86 Shellcode Emulation을 이용해서 셸코드를 에뮬레이션(Emulation) 해주므로 셸코드를 포함한 악성코드를 분석할 때 발생하는 여러가지 번거로움을 줄여주기도 합니다
일반적으로 셸코드는 위키피디아(Wikipedia)에서 정의해놓은 바와 같이 "In computer security, a shellcode is a small piece of code used as the payload in the exploitation of a software vulnerability." 입니다.
즉, 셸코드는 실행코드에 대한 페이로드로 동작하는 작은 코드 덩어리 입니다. 그래서 실제 셸코드는 아래 이미지와 같이 데이터 덩어리들입니다.
셸코드에 대한 내용들은 "The Shellcoder's Handbook: Discovering and Exploiting Security Holes"라는 책 한 권으로 다룰 정도 방대합니다.
이러한 셸코드라는 데이터 덩어리를 분석하기 위해 다양한 방법들이 사용되지만 그 중에서 간편하게 셸코드를 분석 할 수 있는 방법 중 하나가 바로 scdbg 입니다.
scdbg는 "scdbg download"에서 "Windows Native Source/Binaries"라고 표기 되어 있는 "Win32 Binaries"를 클릭하면 약 0.9 MB 크기의 scdbg.zip 파일을 하나 다운로드 할 수 있습니다.
해당 파일의 압축을 풀게 되면 2개의 실행 파일과 1개의 메뉴얼 파일이 나오는데, 그 중 gui_launcher.exe 파일은 윈도우에서 GUI 모드로 실행 가능하도록 해줍니다. 나머지 scdbg.exe는 커맨드라인(CommandLine) 명령으로 사용 할 수 있습니다.
gui_launcher.exe를 실행하고 아래 그림과 같이 "실전 악성코드와 멀웨어 분석 Practical Malware Analysis"에서 제공하는 예제 셸코드 파일을 드래그앤드롭으로 끌어다 놓습니다.
그 후에 Launch를 실행하면 아래 그림과 같이 셸코드를 에뮬레이션 한 결과가 별도의 커맨드라인 창으로 나타나게 됩니다.
우선, GetSystemDirectoryA 함수를 이용해 시스템의 시스템 디렉토리 위치를 얻어 온 후 URLDownloadToFileA 함수를 이용해서 특정 웹 사이트에서 "annoy_user.exe"를 윈도우 시스템 디렉토리에 "1.exe" 파일명으로 다운로드 하게 됩니다. 그리고 다운로드 한 파일을 WinExec 함수를 이용해서 실행하게 됩니다.
scdbg의 결과를 검증하기 위해 이제는 일반적으로 많이 사용하는 "Shellcode 2 EXE"에 셸코드를 업로드 한 후 EXE 파일로 만들어 Ollydbg를 이용해 디버깅을 해보았습니다. 이 과정에서도 역시 위 그림에서 보았던 동일한 코드들이 존재하는 것을 확인 할 수 있습니다.
앞서 살펴본 것 처럼 scdbg는 간편하게 셸코드를 분석 할 수 있도록 해주는 도구입니다. 그래서 비교적 간단한 포트 바인딩(Port Binding)이나 파일 다운로드 관련 셸코드는 에물레이션이 가능합니다만, 모든 셸코드를 충분히 분석이 가능하도록 지원하는 것은 아님으로 "Distorm Powerful Disassembler Library For x86/AMD64"와 같이 다르게 분석 할 수 있는 기법들 역시 파악하고 있는 것도 중요 합니다.
다음에는 시간적인 여유가 있을 때 실제 취약점이 존재하는 PDF와 DOC 같은 전자문서 파일에서 셸코드를 추출하여 scdbg와 Kali Linux를 이용한 분석 방안에 대해서도 다루어 보도록 하겠습니다.
댓글 없음:
댓글 쓰기