머신러닝을 활용한 악성코드 분석 - 악성코드 분석(동적 방법 - 행위 분석 - 1)
https://criling.tistory.com/77
* 실행 중에 애플리케이션이 만드는 시스템 호출(syscall) 시퀀스는 악성코드 분류에 있어 중요한 속성입니다.
syscall을 추적하는 몇 가지 다른 방법이 있지만 가장 많이 쓰이고 직접적인 방법은 가장 최신의 안드로이드 배포판에 포함된 *strace 모듈을 사용하는 것입니다.
adb와 에뮬레이터를 사용해 애플리케이션의 syscall을 추출하는 방법을 간단히 살펴 보겠습니다.
안드로이드 애플리케이션은 Zygote 데몬 앱 런처 프로세스를 포크해서 시작됩니다.
주 프로세스의 맨 처음부터 애플리케이션의 syscall을 추적하기를 원하기 때문에 Zygote에서 strace를 실행한 다음 수집된 strace 로그에서 앱 프로세스의 프로세스 ID를 찾아냅니다.
목표 앱이 이미 안드로이드 가상 장치에 로드돼 설치됐다고 가정하면 adb 셸을 시작하고 Zygote의 프로세스 ID에서 strace를 시작합니다.
adb 쉘을 시작한 후 Zygote의 프로세스 ID에서 strace를 시작합니다.
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
'Security > AI' 카테고리의 다른 글
안드로이드 스튜디오 설치(우분투) (0) | 2022.03.14 |
---|---|
머신러닝을 활용한 악성코드 분석 - 악성코드 분석(동적 방법 - 행위 분석) (0) | 2022.02.23 |
머신러닝을 활용한 악성코드 분석 - 악성코드 분석(정적 방법 - 정적 분석) (0) | 2022.02.08 |
머신러닝을 활용한 악성코드 분석 - 악성코드 분석(정적 방법 - 구조 분석) (0) | 2022.01.27 |
머신러닝을 활용한 악성코드 분석 - 일반적인 악성코드 공격의 흐름 (0) | 2022.01.24 |