티스토리 뷰

안녕하세요. 안랩 연수생에서 근무를 할 때 텔레그램 봇을 이용하여 악성코드 분석을 자동화 하고 싶은 생각에 프로젝트를 하게 되었습니다. 

 

만들게 된 취지는 안랩의 P모 연구원님께 텔레그램 봇이라는 것을 알게 되어서 뭔가 연동할 것이 없을까..? 하면서 생각하다가 최근에 apk 악성앱을 분석하는데, 초기에 apktool 툴을 이용하여서 작업하는 것이 초기에는 그냥 수작업을 했습니다.

하지만, 샘플의 수가 많아지면...?을 생각하다가 '자동화' 를 시켜보자 라는 마음을 먹고, 텔레그램 봇과 연동을 하게 되었습니다.  

 

[ Telegram Bot 설치 ]

* Telegram Bot 설치

https://github.com/python-telegram-bot/python-telegram-bot

 

* pip를 이용한 설치

- pip install python-telegram-bot --upgrade

 

 

 

[ 프로젝트에 사용했던 도구 ]

Python 2.7

 

Telegram Bot

 

VirusTotal API

 

apktool

 

Django

 

Sqlite3

 

Bootstrap

 

 

 

[ 심플한 과정 ]

* 몸캠피싱 apk 샘플을 이용해서 테스트를 진행하였습니다.

 

1. 몸캠 피싱 과정입니다. 

 

2. 정적분석을 한 결과, 아래와 같이 요약됩니다.

 

3. 위의 2번에서 정적 분석을 하기 전 의심되는 샘플이 블랙인지 화이트인지를 알아보기 위해서는 복잡한 과정은 아니지만 약간 귀찮습니다. 자동화 기법을 이용하여서 샘플을 올리게 되면, 권한, icon, 해쉬 값, av 진단결과를 telegram bot에 뿌려주게 되고, bot은 다시 사용자에게 블랙인지, 화이트인지 결과를 뿌려줍니다.

 

4. 스크립트의 일부분만 가져왔습니다. 첫 번째로는 androidmanifest.xml 을 파싱하여 필요한 정보들만 뽑아오는 기능이고, 아래는 virustotal과 연동하기 위해서 api_key를 받는 부분입니다.

 

5. 완성된 Telegram Bot에 샘플[수아영상.apk] 을 올려보겠습니다.

[ 검색 - suspect_bot ]

 

 

[ /start 명령어를 입력하면 초기 인사말이 출력 ]

 

[ 의심되는 샘플을 봇에 업로드 ]

 

[ 샘플의 아이콘 출력 ]

 

[ 샘플의 퍼미션 정보 출력 ]

 

[ 샘플의 기본적인 해쉬값 출력 ]

 

[ 샘플의 기존 AV 진단결과 출력 ]

 

[ 추가적으로 질문을 할 수 있게 DB 생성 ]

 

6.  파이썬으로 만들어진 웹 어플리케이션 프레임워크인 'Django'를 이용하여 사용자들이 샘플을 올릴 때, DB를 구축하여 웹으로 샘플의 정보를 볼 수가 있습니다.   

 

[ 분석의 기본 정보를 담는 부분 ]

 

[ 사용자들이 질문을 하는 부분 ]

 

위와 같이 '자동화'를 통해서 반복적인 업무를 간소화 한다면 일상 생활에서도 너무 편리할 것 같습니다.

아직 웹은 완성된 것이 아니므로 계속 유지보수를 하고 있습니다. 어려운 코드는 아니므로 누구나 만들 수가 있는 작은 프로젝트입니다. 

 

[ 동영상 시연 ]

- 윈도우에서는 화면이 잘 안보이는데 감안하고 보시기 바랍니다.

 

환경 : 윈도우7

 

환경 : 안드로이드 스마트폰

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함