머신러닝을 활용한 악성코드 분석 - 악성코드 분석(동적 방법 - 행위 분석 - 1) 

https://criling.tistory.com/77

 

 

 

* 실행 중에 애플리케이션이 만드는 시스템 호출(syscall) 시퀀스는 악성코드 분류에 있어 중요한 속성입니다.

 

syscall을 추적하는 몇 가지 다른 방법이 있지만 가장 많이 쓰이고 직접적인 방법은 가장 최신의 안드로이드 배포판에 포함된 *strace 모듈을 사용하는 것입니다.

 

adb와 에뮬레이터를 사용해 애플리케이션의 syscall을 추출하는 방법을 간단히 살펴 보겠습니다.

 

안드로이드 애플리케이션은 Zygote 데몬 앱 런처 프로세스를 포크해서 시작됩니다.

주 프로세스의 맨 처음부터 애플리케이션의 syscall을 추적하기를 원하기 때문에 Zygote에서 strace를 실행한 다음 수집된 strace 로그에서 앱 프로세스의 프로세스 ID를 찾아냅니다.

목표 앱이 이미 안드로이드 가상 장치에 로드돼 설치됐다고 가정하면 adb 셸을 시작하고 Zygote의 프로세스 ID에서 strace를 시작합니다.

 

[그림 1]
[그림 2]
[그림 3]

 

adb 쉘을 시작한 후 Zygote의 프로세스 ID에서 strace를 시작합니다.

 

[그림 4]

 

[그림 5]
[그림 6]

3790의 부모 프로세스 ID를 가지고 해당 프로세스는 복제하여 이 애플리케이션과 연관시키고자 하는 시스템 호출 동작을 취하는 것을 알 수 있습니다.

 

 

 

 

참고

"머신 러닝을 활용한 컴퓨터 보안, 클라렌스 치오, 데이비드 프리먼, 에이콘"

"Machine Learning and Security by Clarence Chio and David Freeman(O'Reilly). Copyright 2018 Clarence Chio and Davide Freeman, 978-1491-97990-7"

 

 

https://source.android.com/devices/tech/debug/strace?hl=ko 

 

strace 사용  |  Android 오픈소스 프로젝트  |  Android Open Source Project

strace 사용 strace는 프로세스에서 생성하는 시스템 호출, 그리고 이러한 시스템 호출이 무엇을 반환하는지 확인할 수 있게 해줍니다. strace 빌드 strace를 빌드하려면 다음을 실행합니다. mmma -j6 exter

source.android.com

 

+ Recent posts