꿈을꾸는 파랑새

오늘은 일본의 NTT 도코모 에서 제공하는 あんしんセキュリティ(안심 시큐리티) 하는 악성코드인 au.apk에 대해 알아보겠습니다. 일단 あんしんセキュリティ(안심시큐리티)이라는것은 NTTドコモ(NTT 도코모)에서 제공을 하는 스마트폰의 메일 웹 사이트,앱,피싱 사이트, 위험한 와이파이 한국의 치면 후후, 후스콜,T 전화 같은 포지션으로 원하지 않은 스팸 전화 등을 차단 및 예방을 통해서 안전하게 이용할 수 있도록 악성코드로부터 스마트폰을 지키려고 NTT 도코모에서 월정액 220¥(220엔)으로 제공을 하는 보안 서비스라고 생각하시면 됩니다.

해당 악성코드는 스파이웨어 활동을 하면 FakeCop의 변종이라고 하시면 됩니다. 즉 한국으로 예를 들면 Fake Cop 은 경찰청, 검찰, 보안업체로 위장하는 악성코드라고 보시면 되고 해당 악성코드는 해당 FakeCop의 변종입니다.

일단 기본적으로 해당 변종은 다음과 같은 기능이 추가되었습니다.
SMS(문자), 연락처, 계정 정보, 앱 목록 수집
장치 데이터베이스에서 SMS 수정 또는 삭제
기기 하드웨어 정보(IMEI) 수집
사용자 모르게 SMS 보내기
이렇게 보면 한국의 보이스피싱 앱 하고 비슷하다는 느낌이 들것입니다.

あんしんセキュリティ 악성코드 권한
あんしんセキュリティ 악성코드 권한

일단 해당 악성코드의 해쉬값은 다음과 같습니다.
파일명:au.apk
사이즈:5.83 MB
CRC32:2a9d9f2d
MD5:8f5a7ab3618fdf0e556d269aa325e96b
SHA-1:5b53d14e0ee7a848a4c20ed5ff33040dd5b87ba0
SHA-256:e70ecadb0e6f92d520e54f4e04cf43799ea4ff69c711b6da3b69838b8f6b7373
SHA-512:3a88c8490f2e85c8e8e9f8e984a2ec748f4665ed090a11adede87f840feb9ba68a745c42cbb214340efa831251c4b5f86eb42bca4a5b7e55d3c99b10ad2af6ea
앱이름:あんしんセキュリティ
패키지 이름:ifzm.sqik.aaaqv
입니다. 

악성코드 클래스
악성코드 클래스

 

그리고 해당 악성코드 안드로이드 권한은 다음과 같습니다.
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.REORDER_TASKS"/>
<uses-permission android:name="android.permission.WRITE_SMS"/>
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_MMS"/>
<uses-permission android:name="android.permission.READ_PHONE_NUMBERS"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"/>
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS"/>

arm_StubApp
arm_StubApp

보면 기본적으로 인터넷 연결, 문자 읽기, 네트워크 연결될 수 확인 할 수 있는 권한, 문자 받기, 문자 쓰기, 문자 보내기, MMS(멀티미디어 메시지 서비스) 수신, 스마트폰 전화번호 및 기기 고유 ID 접근, 패키지 삭제, 앱이 계정의 동기화 설정을 수정할 수 있는 권한들이 보입니다. 개인적으로 한국에서 일어나는 전화금융사기, 스미싱 관련 앱에서 잘 안 보이는 MMS(멀티미디어 메시지 서비스) 수신이 눈에 들어 왔습니다.
그리고 해당 스파이웨어가 작동하기 위해서 다음 클래스들로 이루어집니다.
rm.StubApp:사용자가 기기의 홈 화면에서 앱을 시작할 때 처음에 실행되는 클래스
일명 응용 프로그램 하위 클래스
ifzm.sqik.aaaqv.Bjtu:응용 프로그램의 첫 번째 표시 페이지를 표시하는 클래스를 실행시 활동
ifzm.sqik.aaaqv.Asdf :장치 재부팅 시 시작되는 수신기 클래스

패키지 에서 누락된 클래스
패키지 에서 누락된 클래스

스파이웨어 작성자가 사용자 지정 패커를 사용하여 스파이웨어 동작을 숨기는 동작을 하고 APK 파일에는 위에서 언급한 런처 액티비티 클래스, 리시버 클래스 등의 클래스가 빠지어져 있습니다.
해당 스파이웨어는 DEX 파일의 압축을 푸는 맞춤형 패커를 사용하는 것을 볼 수가 있으며 파일 내부 코드를 암호화하고 저장하려고 맞춤형 패킹 기술을 사용하고 있습니다. 그리고 arm.StubApp 에서는 공유 객체(.so) 파일에 구현되고 애플리케이션 서브클래스에서 실행합니다.

System.loadLibrary("arm_protect");
    }

    static void loadDex(List list, Context context) {
        try {
            long currentThreadTimeMillis = SystemClock.currentThreadTimeMillis();
            Field declaredField = ((Class) Objects.requireNonNull(context.getClassLoader().getClass().getSuperclass())).getDeclaredField("pathList");
            if (!declaredField.isAccessible()) {
                declaredField.setAccessible(true);
            }
            Object obj = declaredField.get(context.getClassLoader());
            Field declaredField2 = Objects.requireNonNull(obj).getClass().getDeclaredField("dexElements");
            if (!declaredField2.isAccessible()) {
                declaredField2.setAccessible(true);
            }
            Object[] objArr = (Object[]) declaredField2.get(obj);
            Method declaredMethod = obj.getClass().getDeclaredMethod("makePathElements", List.class, File.class, List.class);
            if (!declaredMethod.isAccessible()) {
                declaredMethod.setAccessible(true);
            }
            Object[] objArr2 = (Object[]) declaredMethod.invoke(obj, list, context.getDir("arm", 0), new ArrayList());
            Object[] objArr3 = (Object[]) Array.newInstance((Class) Objects.requireNonNull(((Object[]) Objects.requireNonNull(objArr)).getClass().getComponentType()), ((Object[]) Objects.requireNonNull(objArr2)).length + objArr.length);
            System.arraycopy(objArr, 0, objArr3, 0, objArr.length);
            System.arraycopy(objArr2, 0, objArr3, objArr.length, objArr2.length);
            declaredField2.set(obj, objArr3);
            System.out.println("耗时:" + (SystemClock.currentThreadTimeMillis() - currentThreadTimeMillis) + " ms");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /* access modifiers changed from: protected */
    public native void attachBaseContext(Context context);

    @Override // android.content.Context, android.content.ContextWrapper
    public native Context createPackageContext(String str, int i);

    public native String getPackageName();

    public native void onCreate();
}

그리고 이하 생략을 하고 해당 악성코드를 실행하면 다음과 같이 AU Mobile Security이라는 것을 실행하기 전에 먼저 SMS(문자) 어플을 기본으로 지정해 달라고 하는데

악성코드 문자 기본앱 설정 요구
악성코드 문자 기본앱 설정 요구

AU Mobile Security로 지정하면 악성코드는 실행되고 프록시 서버 http://210902(.)top/ 연결이 되고 해당 부분을 열어 보면

あんしんセキュリティ(안심시큐리티) 사칭 악성코드 실행
あんしんセキュリティ(안심시큐리티) 사칭 악성코드 실행

다시 http://172.247.35(.)189:6666 로 되는 것을 볼 수가 있습니다.

악성코드 C&C 서버
악성코드 C&C 서버

바이러스토탈 2021-10-29 14:35:00 UTC 기준으로 탐지되는 보안 업체들은 다음과 같습니다.
Ad-Aware:Trojan.GenericKD.37828370
Alibaba:TrojanBanker:Android/Agent.9c133225
Avira (no cloud):ANDROID/Dropper.FJKV.Gen
BitDefender:Trojan.GenericKD.37828370
DrWeb:Android.Spy.4408
Emsisoft:Trojan.GenericKD.37828370 (B)
eScan:Trojan.GenericKD.37828370
ESET-NOD32:Android/Spy.Agent.BWA
FireEye:Trojan.GenericKD.37828370
Fortinet:Android/Agent.IYT!tr
GData:Trojan.GenericKD.37828370
Ikarus:Trojan.AndroidOS.Agent
Jiangmin:Trojan.Banker.AndroidOS.baot
K7GW:Trojan ( 0001140e1 )
Kaspersky:HEUR:Trojan-Banker.AndroidOS.Bray.pac
Lionic:Trojan.AndroidOS.Bray.C!c
McAfee:Artemis!8F5A7AB3618F
McAfee-GW-Edition:Artemis!Trojan

Microsoft:TrojanSpy:AndroidOS/Bray.A!MTB
NANO-Antivirus:Trojan.Android.Mlw.jfsrss
Sophos:Andr/Xgen2-ZB
Symantec:Trojan.Gen.MBT
Symantec Mobile Insight:AppRisk:Generisk
Tencent:A.privacy.emial.d
Trustlook:Android.Malware.Trojan
ZoneAlarm by Check Point:HEUR:Trojan-Banker.AndroidOS.Bray.pac
에서만 탐지하고 있습니다.
요약
1.구글 플레이 스토어 및 공식 스토어 이외에 어플 설치하지 말 것
2.공신력 있는 백신 앱(안티바이러스 앱) 설치해서 실시간 감시 및 실시간 업데이트할 것(AV-TEST 참고)
3.구글 안드로이드 스마트폰에서는 외부 앱을 설치를 하려고 하면 경고 메시지가 나오는데 해당 경고 메시지처럼 외부 앱 설치하지 말 것
4.스팸 차단앱 후후,후스콜,T 전화 같은 것을 사용하면 이런 앱을 활용을 하면 이런 보이스피싱 피해를 줄일 수가 있습니다.
5. 개인적으로 최소 V3를 정도는 설치해서 운영하라고 하고 있지만, 돈의 여유가 있으며  해외 기업들을 설치해서 사용하는 것도 좋을 것입니다. 그리고 대부분 2만 원 정도 선에서 1년 결제해서 사용할 수가 있고 개인적으로 ESET를 추천합니다. 참고로 구글 플레이 스토어 기준으로 스마트폰이 한국어로 돼 있는 경우 통신 에러가 나오는데 개인적으로 블로그에 해당 이셋모바일시큐리티(ESET Mobile Security) 통신 실패 문제 해결 방법에 대해 글을 적어 놓았으니 해당 방법을 통해서 간단하게 해결을 할 수가 있습니다.

[소프트웨어 팁/보안 및 분석] - 이셋모바일시큐리티(ESET Mobile Security) 통신 실패 에러 20515003 문제 해결 방법

 

이셋모바일시큐리티(ESET Mobile Security) 통신 실패 에러 20515003 문제 해결 방법

오늘은 이셋모바일시큐리티(ESET Mobile Security) 통신 실패 문제 해결 방법에 대해 알아보겠습니다. 일단 이셋은 1992년에 설립되었으며 보안 업체인 이셋은이집트의 건강, 결혼, 사랑의 여신인 ESET (

wezard4u.tistory.com

일단 개인적으로 이셋모바일시큐리티(ESET Mobile Security)를 사용을 하고 있으며 백신 앱은 어느 것을 선택할지는 개인적인 판단을 해서 사용을 하는 것을 추천하면 앞서 이야기한 것처럼 AV-TEST를 참고 해서 사용을 하시는 것도 좋은 방법일 것이며 최소한 V3는 설치하는 것이 좋습니다.

반응형
그리드형

공유하기

facebook twitter kakaoTalk kakaostory naver band