boorooksus / Android-Anomaly-Detection

안드로이드 외부 유출 탐지 앱

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

# 안드로이드 외부 유출 탐지 앱


1. 프로젝트 개요

1.1. 목적

안드로이드 환경에서 적은 비용으로 외부 유출 탐지를 감지하는 애플리케이션을 설계 및 구현한다.1
스마트폰에는 사용자의 개인 정보, 생체 정보, 금융 정보 등 민감한 정보를 저장하고 있어, 정보 유출 방지에 대한 중요성이 대두되고 있다. 그러나 모바일 기기는 PC에 비해 성능 상의 제약이 따르기 때문에, 무거운 보안 프로그램 사용이 어렵다. 따라서 적은 오버헤드를 발생시키면서, 높은 정확도를 가지는 Malware Detection 기술이 필요하다. 본 프로젝트에서는 디바이스에서 송신 트래픽을 감지하였을 때, 화이트 리스트 등록 여부, 디바이스 스크린 정보, 유저 터치 이벤트 정보를 토대로 위험도를 측정한다.


1.2. 개발환경

  • PC OS: Windows10 64bit
  • JAVA 버전: 14.0.2
  • IDE: Android Studio Arctic Fox (2020.3.1)
  • Android SDK: Android 11 (API Level 30)
  • 모바일 Android 버전: 10

2. 기능 설명

2.1. 프로그램 설명 및 흐름도

스마트폰의 이상 행동 탐지 기법 중에서 유저 터치 이벤트에 기반하여 이상 행동을 탐지하는 기법이 존재한다.2 그리고 스마트폰의 송신 트래픽이 발생 하였을 때, 유저의 터치 이벤트, 화면 켜짐 여부 등의 정보를 통해 malware를 탐지할 수 있다.3
이를 기반하여 본 애플리케이션은 송신 트래픽을 감지하였을 때, 화이트 리스트 등록 여부, 디바이스 스크린 정보, 유저 터치 이벤트 정보를 토대로 위험도 0~3으로 측정한다.

  • 송신 트래픽: 스마트폰에서 발생하는 전체 네트워크 트래픽 대신 송신 트래픽만 조사하여, 트래픽 탐지에 필요한 비용을 줄일 수 있음. 탐지 앱이 20초 간격으로 발생한 트래픽 내역을 조사.
  • 화이트리스트: 사용자가 안전하다고 판단되는 앱을 등록시킨 리스트. 사용자가 직접 앱을 추가하거나 해제할 수 있음
  • 스크린 정보: 화면이 켜졌는지 여부를 조사. 화면이 꺼진 상태에서 송신 트래픽이 발생한 경우 위험도가 높다고 판단
  • 유저 터치 이벤트 정보: 유저가 터치를 통해 디바이스를 조작할 때, 터치 이벤트 발생 시각과 실행 중인 앱에 대한 정보. 스마트폰에서 유저가 의도적으로 트래픽을 발생시키는 경우, 대다수 터치 이벤트가 수반된다. 따라서 터치 이벤트 발생 유무를 통해 외부유출 탐지에 도움을 줄 수있다. 안드로이드에서는 보안 상의 이유로 다른 앱에 대한 접근을 제한하기 때문에 앱별 터치 이벤트 발생 정보를 요청할 수 없다. 따라서 스마트폰 화면 구석에 작은 오버레이를 생성하고, 해당 오버레이가 터치 발생을 인식하면, 디바이스의 현재 포어그라운드 프로세스와 터치 발생 시각을 매핑하여 해쉬맵 자료구조에 저장.

위험도 평가 방식


2.2. 인터페이스 및 사용법

  • 초기 화면
    초기 화면

  • 초기 권한 설정
    절전 기능 예외 설정 다른 앱 위에 그리기

앱 사용 정보 허용

  • 실행 화면
    실행 화면

  • 화이트리스트 설정 화면
    화이트리스트 설정 화면

  • 플로우 차트
    플로우차트


3.3. 소스코드

전체 소스코드는 아래 깃허브 링크에서 확인 가능하다.

https://github.com/boorooksus/Android-Anomaly-Detection.git


4. 평가

4.1. 평가 및 검증

위험도 평가
본 애플리케이션은 송신 트래픽이 발생하였을 때, 이를 감지하고 기준에 따라 위험도를 평가하는데 성공하였다. exp
그리고 26개의 악성코드에 대해 12,400초 동안 실험해본 결과 24개의 악성코드를 탐지하였다. 탐지되지 않은 2개의 악성코드는 실험 시간 내에 송신 트래픽을 발생시키지 않아 탐지되지 않은 것으로 보인다. CPU 사용량
또한 3600초 동안 탐지 앱의 CPU 사용량 조사 결과, 앱 초기화와 그 이후 20초 간격으로 CPU 사용이 확인되었다. 기존 CPU 사용률에 비해 추가적으로 약 0.25% CPU 사용량이 발생하여, 적은 리소스로 해당 해당 앱이 동작함을 확인하였다.

4.2. 결론

본 프로젝트에서는 제한된 자원의 모바일 안드로이드 환경에서 사용자 이벤트와 송신 트래픽을 이용하여 악성코드를 탐지할 수 있는 알고리즘을 설계하고 구현하였다. 그리고 실험 결과 높은 CPU 효율성과 악성 코드 탐지율을 보여주었다.


참고 자료

Footnotes

  1. 부성준 외, "안드로이드에서 외부유출 탐지 앱 구현," 한국정보기술학회 논문집 (2021): 405-407

  2. 박지연, “스마트폰을 위한 사용자 이벤트기반의 이상 행동 탐지 기법,” (석사학위, 서울대학교 전기·컴퓨터 공학부 대학원, 2013)

  3. 김서연 외, “Application level Monitoring Mechanism for Extrusion detection in Android,” 한국컴퓨터종합학술대회 논문집 (2019): 1132-1134

About

안드로이드 외부 유출 탐지 앱


Languages

Language:Java 100.0%