악성코드를 분석할 때 증상위주로 파악하기 위해서 자동분석을 많이 사용합니다.
이때 문제가 발생하는건 크게 다음과 같습니다.
1. 자동분석 탐지 (가상환경, 모니터링 도구 등의 유무) 2. 인자 값 필요 3. 특정 환경 필요 (설치된 다른 프로그램 등) 4. 기타 (더 있을텐데 생각이 안나서..) |
2,3번의 경우도 많은데 자동분석 시스템에서는 지극히 평범하고 정상적인 프로그램처럼 나옵니다.
하지만, 코드를 분석하면 원인을 알 수 있습니다.
Ollydbg로 열어보면 실제 코드가 0x00401000 에서 시작하는 전형적인 비주얼 C 로 작성된 코드임을 알 수 있습니다.
0x00401000에 브레이크포인트(F9)를 걸고 달립니다.
0x00401045 에서 레지스트리를 읽어서 특정 값인지 비교합니다.
악성코드가 필요로하는 특징적인 프로그램이 없어 0x00401086에서 0x00401094 로 빠져버립니다.
이러면 제대로(?) 악성코드가 실행되지 않고 종료됩니다.
강제로 IP 를 0x0040108A로 변경합니다. (Alt + *)
F8 로 CALL 문 3개를 실행하고 프로그램을 종료되고 난 후 시스템 비교 프로그램으로 검사하면 19개의 신규 파일이 생성되었음을 알 수 있습니다.
떨어진 파일들을 차곡차곡 모아 추가 분석하면 됩니다.
별다른 조건없이 악의적인 일을 수행하는 착한(?) 악성코드는 자동분석으로 처리되고 이렇게 특정 조건을 필요로하는 악성코드는 자동분석 시스템에서 원하는 환경을 만들어주거나 사람이 봐야 할 겁니다.
자동분석 시스템의 기능도 계속 향상시켜야겠지만 결국 분석은 사람이 합니다.
- 자동분석 시스템에 위협을 느끼는 1인 ㅋ 그래도 자동분석 시스템이 참 편합니다.
'악성코드 > 악성코드 분석' 카테고리의 다른 글
정상 파일 검색 서비스 (2) | 2010.02.17 |
---|---|
악성코드에서 사용하는 방화벽 해제 (4) | 2009.11.16 |
수상한 파일 찾기 (0) | 2009.10.08 |
자동분석 시스템으로 분석하기 힘든 샘플 (2) | 2009.09.21 |
정상파일 위장 악성코드 분석 (3) | 2009.08.28 |
네이버, 옥션, 청와대 공격 악성코드 분석 (13) | 2009.07.08 |
댓글을 달아 주세요
Sun2Day 2009.09.22 07:24 신고 댓글주소 수정/삭제 댓글쓰기
항상 많은걸 배우고 갑니다 (+__)ㅋ
좋은 하루 보내세요
도움이 되셨다니 다행입니다 ^^