Android + RAT(1)
1. 들어가며
안드로이드 운영체제는 개방성이 높은 만큼, 악성 애플리케이션(APK)을 통한 위협이 증가하고 있다.
안드로이드 악성코드는 단순한 광고성 애드웨어부터 금융 정보를 탈취하는 뱅킹 트로이 목마, 원격 제어를 가능하게 하는 RAT(Remote Access Trojan)까지 다양하게 존재한다. 특히 RAT 계열의 악성코드는 공격자가 피해자의 기기를 원격으로 제어하기 때문에 카메라 및 마이크를 활성화하거나, 문자 메시지를 가로채는 등의 민감한 데이터를 탈취하는 심각한 보안 위협을 초래한다.
해당 칼럼에서는 (1)대표적인 안드로이드 악성 APK 파일을 직접 분석하고, (2)RAT 악성코드를 이해하며, (3)그 동작 방식과 위협 요소를 알아보고자 한다.
2. 안드로이드 악성 APK 파일의 위협
본격적으로 진행하기 전에, APK 파일에 대해 간략히 언급하고 넘어가자.
“APK”란 ‘Android Application Package’의 약자로, 안드로이드에서 프로그램 형태로 배포되는 형식의 확장자이다.
그 중에서도 안드로이드 악성 APK 파일은 안드로이드 운영체제를 표적으로 하는 악성 멀웨어를 포함한 APK 파일을 말한다.
모바일 멀웨어는 지속해서 증가하고 있으며, 특히 금융 정보와 같이 중요한 데이터를 탈취하기 위해 모바일 금융 서비스로 위장한 악성 앱이 확산되고 있다.
최신 통계에 따르면, 모바일 뱅킹 악성코드는 2023년에 32%나 증가했으며, 공격자는 사용자 정보를 도용하고 금융기관을 사칭하여 사용자에게 금전적 피해를 입히고 있다.

악성 APK는 스미싱(SMS 피싱), SNS 링크 실행 등 여러 경로를 통해 전파되며, 사용자가 정상 앱으로 착각하도록 정교하게 위장된다.
특히, AI 및 기계 학습 기술의 발달로 이러한 위장은 더욱 정교해져 탐지가 어려워졌다. 공식 앱 스토어를 통해 유포되는 악성 APK는 초기 검사를 우회하기 위해 코드의 일부를 숨기거나, 설치 후에 악성 기능을 활성화하는 방법을 사용하고 있다.
금융 기관, 정부 기관 등을 사칭한 악성 APK가 주된 피해를 일으키고 있으며, 공격 방식은 점점 다양화되고 있다.
대표적인 사례로, 경찰청의 “폴-안티스파이” 앱을 사칭한 악성 앱이 166명의 개인정보를 탈취하고, 61억 원의 재산 피해를 유발한 사건이 존재한다.


앞으로도 공격자들은 기존의 보안 솔루션을 우회하기 위해 지속적으로 악성 파일을 정교화할 것이며, 이에 기계 학습과 AI 기술이 새롭게 동원되어 기존에 알려지지 않은 새로운 공격 기법이 개발될 가능성도 클 것으로 예상된다.
또한, 이런 악성 APK 파일을 활용한 공격이 단순히 스마트폰에서 그치지 않고, 스마트 홈 기기와 IoT 기기들에도 영향을 미칠 것으로 보인다.
이 새로운 공격 대상들은 네트워크 침입 및 다른 기기를 감염시키기 위한 경로로 사용될 것이다.
더불어, 모바일 금융 서비스와 암호화폐 사용이 증가함에 따라, 이러한 서비스를 노린 악성 APK 역시 급증할 것으로 예상된다. 즉 악성 APK는 계속해서 발전하며 막심한 피해를 일으킬 것이므로, 지속적인 보안 강화와 주의 깊은 사용 습관이 어느 때보다 중요해질 것으로 보인다.
3. infofs.apk (DroidJack RAT) 분석
3-1. 개요
“DroidJack”은 원격 접근 트로이 목마(RAT, Remote Access Trojan)의 한 종류로, 주로 안드로이드 기기를 대상으로 악성 행위를 수행하는 데 사용된다. DroidJack은 공격자가 감염된 기기를 원격으로 완전히 제어할 수 있게 하며, 통화 기록, 문자 메시지, 사진, 위치 정보와 같은 중요한 개인 데이터를 탈취하는 기능을 포함하고 있다. 이러한 악성코드는 피해자가 모르게 배포되며, 피해 기기에 몰래 설치되어 정보 수집 및 감시에 활용될 수 있다.
DroidJack은 주로 정상적인 애플리케이션처럼 위장한 악성 APK 파일 형태로 배포된다. 사용자가 해당 파일이 악성 파일인지 모른 채 다운로드해 앱을 설치하면 기기가 감염되고, 공격자의 원격 기기 조작이 가능해진다.
DroidJack의 이러한 특성으로 인해 공격자는 피해자의 기기 내 데이터에 손쉽게 접근하고 탈취하여 범죄에 악용할 수 있으며, 이는 심각한 보안 위협이다.
이번 실습에서는 교육 목적으로 DroidJack RAT 악성코드가 포함된 APK 파일을 분석하고, 이러한 공격 방식이 실제로 어떻게 작동하는지 이해하려고 한다.
실습은 안전한 환경에서 진행될 예정이며, DroidJack의 악성 행위 및 공격 기법을 분석하여 대응 방법을 학습하는 데 그 목적이 있다.
3-2. 정적 분석
해당 APK 파일을 “Jadx-gui(디컴파일러 프로그램)”을 통해 디컴파일하여 내부 구조와 소스 코드를 분석하겠다.
3-2-1. 과도한 권한 요청

해당 부분을 살펴보면, 현재 infofs.apk가 필요하지 않은 권한들까지도 요청하고 있는 것으로 보인다. 특히 ‘READ_SMS’, ‘RECEIVE_SMS’, ‘RECORD_AUDIO’, ‘READ_PHONE_STATE’, ‘CAMERA’, ‘WRITE_CONTACTS’, ‘SEND_SMS’, ‘READ_CALL_LOG’, ‘WRITE_CALL_LOG’, ‘CALL_PHONE’ 등의 권한 요청은 의심스럽다.
위의 권한 요청들을 사용자가 허용하면, 해당 애플리케이션은 사용자의 SMS 메시지를 읽고 보내고/수신을 감시하고/사용자의 주변 소리를 녹음하고/사진이나 영상을 촬영할 수 있을 것으로 의심된다.
그 외에도, 사용자의 연락처 정보 추가, 기기의 식별 정보 접근, 통화 기록 확인/수정, 전화 발신 등 사용자의 사생활을 침해할 수 있는 여러 과도한 권한들이 해당 APK에 부여되고 있다.
3-2-2. 의심스러운 API
디컴파일러 프로그램을 통해 해당 부분과 그 외 수많은 코드에서 임포트된 다양한 안드로이드 시스템 API와 자바 표준 라이브러리를 확인했다.
1 | “android.net.wifi.WifiInfo” |
그 중 위와 같은 API들은 악성 행위에 이용될 것으로 의심된다. 위 API들은 Wi-Fi 연결 정보, SMS 전송, 통신 데이터, 오디오 녹음, 파일 시스템 접근 등의 기능을 가질 가능성이 높다. 백그라운드 앱 및 시스템 상태 확인, 위치 추적, 네트워크 등 개인정보 유출, 네트워크 공격, 기기 제어 등에 악용될 소지가 다분한 기능들 또한 가지고 있는 것으로 보인다. 해당 API들의 정확한 동작을 파악하기 위해 위 API들이 임포트된 소스 코드를 추가 분석해 보자.
먼저 d() 함수에서 TelephonyManager API가 어떻게 활용되는지 보자. 해당 코드는 TelephonyManager의 getDeviceId ()를 호출하여 장치의 IMEI 혹은 MEID를 가져오는 동작을 수행한다. 이를 통해 사용자 기기를 식별할 것으로 추정된다.
다음으로 e() 함수에서는 WifiManagerAPI의 getConnectionInfo ()와 getDeviceId ()를 사용하여 Wi-Fi 연결의 MAC 주소를 획득한다. 네트워크 식별자인 MAC 주소를 네트워크 접근에 악용할 것으로 예상할 수 있다.
f() 함수에서는 TelephonyManager API의 getNetworkOperatorName ()을 호출하여 네트워크 운영자 이름을 획득한다. 이는 공격자에게 통신 사업자 정보를 제공하여, 공격자가 네트워크 환경에 맞춘 공격을 설계하는 데 유용하게 활용될 것으로 추정된다.
위의 h() 함수는 ActivityManager API의 getRunningTasks ()와 PackageManager()를 호출해 현재 실행 중인 작업을 확인하고, 그에 대한 패키지 정보를 가져온다. getRunningTasks(1) 메서드는 가장 최근에 사용된 작업 목록을 확인하는데 사용되고, PackageManager는 통해 해당 작업에 연결된 패키지의 이름과 정보를 가져오는데 사용된다. 이를 통해, 공격자는 사용자가 어떤 앱을 실행 중인지 감시하고, 사용자의 활동을 추적할 수 있다. 추가적으로, 패키지 정보를 기반으로 민감한 앱 데이터를 추출해 악의적인 목적으로 사용할 가능성도 높아 보인다.
해당 부분을 확인해보면, “onReceive” 메소드로 SMS 수신을 감지한 후, 메시지 데이터를 바이너리로 추출한다. 이후 WifiManager의 getMessageBody ()와 getOriginatingAddress ()가 수신받은 메시지 본문 내용과 발신자를 추출한다. 공격자는 이 메커니즘을 이용해 사용자의 SMS 메시지를 무단으로 수집 가능하며, 이 과정에서 인증번호(OTP) 등 민감한 정보가 탈취될 위험이 있을 것으로 추정된다. 또한, 특정 조건에서 통신(Broadcast)를 중단하는 코드가 포함되어 있어 정상적인 SMS 수신 과정이 방해받을 위험도 있어 보인다.
위의 call() 함수에서는 SmsManager의 sendMultipartTextMessage () 메서드를 사용하여 긴 SMS를 여러 부분으로 나누어 전송한다. 수신자의 번호, 메시지 텍스트 등을 입력받아 사용자가 모르게 SMS를 보내기 위한 코드로 추정된다. 공격자가 이 기능을 악용하면 사용자 모르게 메시지를 다수 전송하여 요금 부과 피해, SMS 피싱, 프리미엄 서비스에 가입시키는 것과 같은 악성 행위를 할 수 있다.
해당 부분을 보면, MediaRecorder의 start() 메서드를 사용하여, 사용자 몰래 음성 녹음을 수행할 위험이 있어 보인다. 이는 화나 주변 대화를 몰래 녹음하고 이를 외부 서버로 전송하는 등의 악성 동작에 이용될 수 있다. 코드를 좀 더 자세히 살펴보자면 setAudioSource(4) 부분을 통해 오디오 소스를 설정하는데, 이때 인자 ‘4’는 VOICE_CALL을 의미하기 때문에 통화 녹음을 시작할 것으로 보인다. 이는 사용자의 프라이버시 침해로 이어질 위험성이 크다.
해당 부분은 기기(사용자)의 현재 위치를 추적하는 기능을 담고 있는 코드로 추정된다. LocationManager의 getLatitude ()와 getLastKnownLocation ()를 사용하여 기기의 현재 위도(Latitude)와 경도(Longitude)를 가져오고, 이를 GPSLocation에 저장한다.
또한, GPS, 네트워크, 또는 기타 위치 제공자를 통해 사용자의 마지막으로 알려진 위치를 가져온다.
이는 일반적으로 위치 기반 애플리케이션에서 사용되는데, 해당 APK는 위치 기반 애플리케이션이 아닌 것으로 추정되기 때문에 이러한 위치 정보 수집은 몹시 의심스럽다.
이 정보가 사용자의 명확한 동의 없이 수집되어 외부로 전송될 경우, 개인 정보 침해와 그에 따른 2차 피해의 위험이 있다.
해당 부분에서는 ConnectivityManager 의 getActiveNetworkInfo ()가 기기가 현재 사용하는 네트워크(Wi-Fi, 모바일 데이터) 정보를 반환한다.
그 후, NetworkInfo 의 isConnected () 가 실제 네트워크 연결 여부를 확인한다. 이는 원격 서버로 데이터를 전송하거나, 사용자 모르게 네트워크 트래픽을 조작하는 악성 행위로 이어질 수 있다. 하지만 이미 많은 앱들이 위와 같은 구조로 네트워크 상태를 확인하여, 연결이 있는 경우에만 데이터를 전송하거나 서버와 통신을 시도하기 위해 해당 구조를 사용한다. 따라서 해당 부분이 어떻게 동작하는지 추가적으로 분석을 해야 악성 행위 동작 여부를 단정지을 수 있을 것으로 보인다.
위 부분은 URL의 openConnection () 메소드를 통해, 지정된 URL에 HTTP 연결을 열고, 이를 통해 서버로부터 데이터를 다운로드 받는 것으로 보인다. 서버로부터 다운로드된 데이터는 update.apk라는 이름으로 기기에 저장되고, 다운로드된 APK 파일을 자동으로 설치하는 프로세스를 진행한다.
이 방식은 사용자의 동의 없이 파일을 다운로드하고 설치하는 악성코드의 전형적인 동작 방식으로, 공격자가 원격에서 추가 악성코드를 주입할 수 있다는 점에서 매우 위험하다.
위 부분에서는 Environment 의 getExternalStorageDirectory () 가 안드로이드에서 외부 저장소의 루트 디렉토리를 반환하는 기능을 할 것으로 보인다. 이는 앱이 디바이스의 외부 저장소에 저장된 파일에 접근할 수 있게 해준다. 외부 저장소는 사용자가 직접 파일을 읽거나 수정할 수 있는 영역이기 때문에 보안 측면에서 신중히 다루어져야 한다.
그 뒤, java.lang.Runtime 의 exec () 가 안드로이드 시스템의 루트 명령어 su 를 실행하여, 해당 APK가 루트 권한을 얻을 수 있도록 시도하고 있는 것을 확인할 수 있다.
이는 시스템 파일이나 다른 앱의 데이터에 무단으로 접근 가능한 잠재적 보안 위협을 초래할 수 있다. 해당 APK에서는 민감한 데이터베이스 파일을 복사하려는 의도가 보여, 이를 악용할 소지가 다분해 보인다.
해당 부분에서는 java.lang.reflect.Field 의 get () 을 주목할 필요가 있다. 해당 메서드는 Java 리플렉션을 이용해 ConnectivityManager 객체의 mService 필드 값을 가져오는 기능을 하는 것으로 추정된다.
Java 리플렉션은 구체적인 클래스 타입을 알지 못하더라도 그 클래스의 메서드, 타입, 변수들에 접근할 수 있도록 해주는 자바 API로, 보통 접근할 수 없는 클래스의 필드나 메서드에 접근할 때 사용된다. 따라서 해당 코드는 시스템 리소스에 대한 비정상적 접근 시도로 의심해 볼 수 있다.
해당 부분에서는 TelephonyManager과 java.lang.reflect.Method. 의 invoke () 리플렉션을 통해, 전화 관련 메소드인 getITelephony과 endCall 등에 접근한다.
앞서 언급했듯이 리플렉션은 보통 접근이 불가능한 클래스의 필드나 메서드에 접근하기 위한 용도로 사용되기 때문에, 마찬가지로 의심스러운 구조로 보인다.
이를 통해 전화를 강제로 종료하는 등 통신 조작이나 통화 정보 수집으로 악용될 수 있다.
3-3. 동적 분석
infofs.apk를 디바이스에 실행한 화면이다. 악성 앱에 흔히 나타나는 단순하거나 빈약한 UI로 보인다.
앞서 정적 분석을 진행하며 가장 의심스러웠던 부분들을 위주로 frida를 통해 동적 분석을 진행하겠다.
해당 앱의 권한 요청 및 API 호출을 추적하기 위해 [그림 19]와 같이 frida 스크립트르 작성했다.
이 스크립트는 infofs.apk가 사용자 몰래 SMS 전송이나 녹음을 시작하는 권한을 사용할 경우 이를 탐지하여 터미널에 알림 메시지를 출력한다.
스크립트 해설 :
android.telephony.SmsManagerAPI의sendTextMessage메서드를 후킹하여, 앱이 SMS를 보내는 시도를 할 때마다 “SMS 발송 시도가 감지되었습니다.” 로그 출력.android.media.MediaRecorderAPI의start메서드를 후킹하여, 녹음이 시작되는 순간 “녹음 시작!” 로그 출력.
해당 스크립트를 실행해보니, “SMS 발송 시도가 감지되었습니다.”와 “녹음 시작!”이라는 메시지가 출력되었다. 그러나 실제 디바이스의 SMS를 확인해보았을 때 발송된 메시지는 발견되지 않았다.
하지만, 이를 남기지 않고 전송되었을 가능성도 있기 때문에, 해당 부분은 네트워크나 디바이스의 SMS 로그를 추가적으로 분석해보아야 할 것 같다.
녹음된 오디오 파일이 디바이스 공간 내에 저장되었는지 또한 확인하였지만, 이 역시도 발견하지 못하였다. 마찬가지로 세밀히 추적하려면 로그에 기록된 데이터를 추가적으로 분석해보아야 할 것으로 보인다.
이번에는 악성 앱이 C2 서버와 통신하거나 민감한 데이터를 전송하려는 시도를 탐지하는 frida 스크립트를 작성했다. 해당 스크립트는 HttpURLConnection API의 getInputStream 메서드를 후킹하여 HTTP 요청이 발생할 때마다 요청 URL을 기록하고 로그로 출력한다.
해당 스크립트를 실행해보니, “https://infinitedata-pa.googleapis.com”,
“https://android.apis.google.com” URL로 네트워크 요청이 반복적으로 일어났다. 두 링크는 각각 안드로이드 API, Google API 서버로 Google 서비스와 연관된 합법적인 도메인이지만, 악성 앱이 이를 반복적으로 사용하였기 때문에 이를 악용하거나 위장했을 가능성도 있을 것으로 보인다.
위의 스크립트는 악성 앱이 SMS를 수신하고, 이를 가로채거나 내부 데이터를 추출하려는 동작을 탐지한다.SMS_RECEIVED 이벤트 발생 시, onReceive 메서드를 호출해 SMS 데이터를 추출하고 로그에 기록한다. 또한 BroadcastReceiver API의 onReceive , abortBroadcast 메서드를 후킹하여 수신된 메시지의 발신자 반호와 본문 내용을 캡쳐하기 때문에, 악성 앱이 SMS를 가로채고 사용자가 알 수 없도록 삭제하는 경우도 추적 가능하다.
해당 스크립트를 실행해보니 앱이 SMS_RECEIVED 이벤트를 수신하여 onReceive 메서드가 실행된 것을 확인할 수 있다. 모자이크 처리된 발신자 번호는 +로 시작하였는데, 이는 국제 전화번호 형식으로 SMS가 해외 발신자나 국제적으로 사용되는 번호에서 온 것으로 보인다. 메시지 내용은 영어로 인증번호를 알리는 내용이며, 해당 앱이 이를 감지하고, 인증번호 탈취 시도를 하려는 것으로 추정된다.
“SMS 가로채기 시도 감지!” 메시지가 출력되었으므로, abortBroadcast 메서드가 호출되었음을 감지했으며, 이는 앱이 해당 SMS를 사용자에게 전달하지 않고 가로채려 했다는 것을 의미한다. 실제로 안드로이드 디바이스 기기에는 따로 인증번호를 알리는 SMS가 수신된 것을 확인할 수 없었다. 해당 infofs.apk가 SMS를 가로채고 사용자가 알 수 없도록 삭제한 것으로 보인다.
위의 frida 스크립트는 악성 앱이 시스템 명령어를 실행하거나 루트 권한을 획득하려는 시도를 탐지한다. java.lang.Runtime 클래스의 exec 메서드를 후킹하여, su 명령어를 포함한 모든 명령 실행 시도를 감지할 수 있다.
[그림 26, 27]은 스크립트를 실행시킨 결과들 중 가장 의심스러운 부분들이다. su 명령어를 실행하여 루트 권한을 얻은 뒤 기기 내 모든 파일과 시스템에 접근 시도를 한 것으로 보인다. “rm -rf /system/xbin” 명령어를 통해, 해당 디렉토리 삭제하였기 때문에 기기에서 기본 명령어 실행이 불가능해지고, 이로 인해 기기가 비정상적으로 작동하거나 복구가 어려워지는 것을 의도한 공격 행위로 추정된다.
“cp /data/system/users/0/settings.db /sdcard/settings_backup.db” 명령어를 통해서는 시스템 설정 데이터베이스를 복사하여 기기 구성 정보를 확인하여, 잠금 패턴, PIN, 계정 정보 등을 추출할 수 있다. 해당 악성 앱이 DroidJack RAT 인 것을 미루어 보았을 때, 위와 같은 명령어들은 사용자의 기기를 조작하거나 민감한 데이터를 탈취하는 데 사용될 가능성이 높다.
위의 스크립트는 악성 앱이 사용자의 위치 정보를 수집하거나 추적하려는 시도를 탐지한다.android.location.LocationManager 클래스의getLastKnownLocation , requestLocationUpdates 메서드를 후킹하여, 사용자의 마지막 위치 정보가 요청되거나, 실시간으로 위치 추적 요청이 발생할 때마다 로그를 출력한다.
스크립트 실행 결과, 앱이 이전에 기기가 GPS로 기록한 마지막 위치 데이터를 얻으려고 시도한 것을 발견할 수 있었다. 또한 네트워크를 통해 실시간 위치 추적도 요청한 상태임을 확인했다. 실시간 위치 추적에 네트워크를 사용한 이유로는 이는 GPS에 비해 배터리 소모가 적고, 실내에서도 동작이 가능하기 때문으로 추정된다.
일반적으로 앱은 “gps”나 “network” 중 하나의 제공자만을 사용하기 때문에, 두 제공자를 혼합해서 사용하는 경우는 드물다. 해당 앱은 높은 정확도의 데이터를 확보하기 위해 두 제공자를 동시에 사용하는 것으로 보인다. 또한, 해당 앱이 내비게이션이나 배달 앱처럼 특정한 기능이 필요하지 않은 앱인데 이렇게 네트워크 기반의 지속적인 실시간 위치 추적을 사용하는 점은 매우 의심스럽다.
위의 스크립트는 악성 앱이 장치 고유 식별자와 Wi-Fi 정보를 추적하여 악용하려는 시도를 탐지한다. TelephonyManager.getDeviceId() , WifiManager.getConnectionInfo() 메서드를 호출하여, 기기의 고유 식별자인 IMEI와 현재 Wi-Fi 연결 상태 정보를 가져가려는 시도가 있을 때, 이들이 로그에 기록되어 출력된다.
스크립트 실행 결과, 해당 앱이 기기의 IMEI를 요청했음을 확인할 수 있었다. 안드로이드 디바이스의 실제 IMEI와 실제 Wi-Fi 정보가 반환되어 출력되었다.
3-4. 결과 및 방어 기법
infofs.apk (DroidJack RAT)의 분석 결과, 해당 악성 APK는 과도한 권한 요청과 의심스러운 API 호출을 통해 사용자 데이터를 탈취하고 기기를 원격으로 제어할 수 있는 위험성을 보였다. 정적 분석에서 SMS, 위치 정보, 녹음, 네트워크 활동 등 민감한 데이터에 접근하려는 의도를 확인했으며, 동적 분석에서는 실제 SMS 전송, 녹음 시도, 네트워크 통신, SMS 가로채기 등의 악성 행위가 실행되는 것을 확인했다.
이 앱은 사용자의 프라이버시를 심각하게 침해하며, 추가적인 악성코드 다운로드 및 실행의 가능성도 엿보이므로 보안 위협이 크다. 따라서 사용자와 시스템의 안전을 위해 권한 관리와 실시간 탐지 시스템의 활용이 필요할 것으로 보인다.
이러한 위협에 효과적으로 대응하기 위해서는 DroidJack RAT의 동작 특성을 기반으로 한 적절한 방어 기법을 적용하는 것이 중요하다.
DroidJack의 동작 특성과 그를 기반으로 한 적절한 방어 기법은 아래와 같다.
- 동작 특성 (1): RAT/기기에서 비정상적인 동작을 유발할 수 있음.
- 대응법: “행동 기반 탐지 시스템(Behavioral Analysis)”을 통해 일반적인 사용 패턴과 비교하여 비정상적인 행동을 실시간으로 감지하고 차단할 수 있다. 이를 위해 “EDR(Endpoint Detection and Response)” 솔루션을 사용하면, 기기에서 발생하는 비정상적인 활동을 실시간으로 모니터링하고, 의심스러운 행동을 감지하여 경고를 생성하거나 차단할 수 있다. 또한, 머신 러닝 기반 분석을 통해 평소와 다른 데이터 송수신, API 호출, 비정상적인 시스템 리소스 사용 등을 탐지할 수 있다.
- 동작 특성(2): 사용자의 계정 자격증명을 탈취하여 악용
- 대응법: “행동 기반 인증(Behavioral Biometrics)”을 통해 사용자의 고유한 행동 패턴을 바탕으로 인증을 강화해야 한다. 이는 사용자의 터치 패턴, 앱 사용 습관, 타이핑 속도 등을 분석해 비정상적인 사용을 탐지하며, 필요시 인증 절차를 강화할 수 있다. 또한, 의심스러운 행동이 감지되면 추가 인증을 요구하거나, 계정 접근을 제한하는 방식으로 보안을 강화할 수 있다.
- 동작 특성(3): 감염된 기기에서 민감한 데이터를 탈취하여 공격자에게 전송
- 대응법: “데이터 누출 방지(DLP, Data Loss Prevention)” 시스템을 사용하는 것이 중요하다. DLP 솔루션은 기기에서 외부로 전송되는 모든 데이터를 모니터링하고, 민감한 정보가 의심스러운 IP 주소나 도메인으로 전송되는 것을 차단할 수 있다. 또한, 특정 파일 유형이나 데이터의 외부 전송을 제한하고, 허용되지 않은 외부 서버와의 통신을 방지하는 역할도 한다.
- 동작 특성(4): 네트워크를 통해 다른 기기나 시스템으로 확산
- 대응법 : “네트워크 분할 및 마이크로 세그멘테이션(Network Segmentation & Micro-Segmentation)”을 적용해야 한다. 이를 통해, 네트워크를 여러 세그먼트로 분리하고 각 세그먼트 간의 트래픽을 엄격히 제한하면, DroidJack의 확산을 방지할 수 있다. 더 나아가 마이크로 세그멘테이션을 사용해 매우 작은 네트워크 구역 내에서만 트래픽을 허용하면, 특정 기기나 서버 간의 통신만 가능하게 하고 나머지 트래픽은 차단할 수 있다.
- 동작 특성(5): C2(Command and Control) 서버와의 통신을 통해 명령을 주고받음
- 대응법: “침입 탐지 및 차단 시스템(IDS/IPS)”을 활용하면 이러한 통신을 실시간으로 감지하고 차단할 수 있다. 네트워크에 IDS/IPS 시스템을 구축하여 알려진 DroidJack의 C2 통신 패턴을 탐지하고 해당 트래픽을 차단함으로써, 추가적인 피해를 막을 수 있다.
마지막으로, 클라우드 기반 보안 솔루션을 활용하여 대규모 데이터와 패턴을 실시간으로 분석함으로써 신종 위협을 탐지하고 대응할 수 있다. 클라우드 기반 위협 인텔리전스 시스템을 통해 DroidJack과 같은 새로운 위협을 실시간으로 분석하고, 관련된 모든 의심스러운 활동을 즉시 차단할 수 있다.
Android + RAT 1편에서는 안드로이드 악성 apk 파일의 위협과, infofs.apk(DroidJack RAT)의 정적/동적 분석 및 방어 기법을 살펴보았다. 이어지는 (2), (3)편에서는 다른 악성 apk 파일들과 RAT 코드 분석과 더불어 앞서 탐구한 악성 안드로이드 설치 파일 및 RAT 코드의 개념을 합한 Android RAT 분석 및 실습 결과를 다룰 예정이다.