꿈을꾸는 파랑새

오늘은 AI 이미지 생성으로 위장한 안드로이드 악성코드인 AI Imagine Creator입니다. 일단 해당 인공지능 즉 AI는 인간의 지능이 가지는 학습, 추리, 적응, 논증 따위의 기능을 갖춘 컴퓨터 시스템 그리고 전문가 시스템, 자연 언어의 이해, 음성 번역, 로봇 공학, 인공 시각, 문제 해결, 학습과 지식 획득, 인지 과학 따위에 응용하는 데 사용이 되고 그리고 최근에는 AI를 사용해서 그림을 그리고 있습니다. 대표적으로 AI를 통해서 그림을 그리는 수단은 다음과 같습니다.
미드저니(Midjourney)
달리2(Dall-E 2)
블루윌로우 (BlueWillow)
나이트카페 크리에이터 (NightCafe Creator)
크레용(Craiyon)
6.Hotpot.ai
스테이블 디퓨전(Stable Diffusion)
물론 좋은 의도를 사용하면 되지만 문제는 일부 나쁘게 사용이 되기도 합니다. 일단 오늘은 AI Imagine Creator 에 대해 알아보겠습니다. 일단 해당 악성코드는 일단 개인적으로 구글 플레이 스토어에 있는 것을 발견하고 해당 악성코드를 Eset를 통해서 신고하고 구글 플레이 스토어 에 신고를 해서 폭파시켰습니다. 일단 악성코드 유포된 구글 플레이 스토어 주소는 다음과 같습니다.

https://play.google(.)com/store/apps/details?id=com.aiphotogenerator.texttoaiphoto.free&hl=en_US

AI Imagine Creator 악성코드 설명
AI Imagine Creator 악성코드 설명

해당 악성코드 유포된 구글 플레이 스토어 에서 설명된 내용은 다음과 같습니다.
Al Imagine Creator 세부정보
Al Creator 애플리케이션에는 다음과 같은 강력한 기능이 있습니다.
이미지 생성: Al Creator는 간단한 텍스트 설명을 통해 필요에 따라 고품질 이미지를 생성할 수
있습니다. 풍경, 캐릭터 또는 동물이든 쉽게 실현할 수 있습니다.
음악 생성: 해당 키워드를 입력하기만 하면 Al
Creator가 멜로디와 함께 감정이 흐르도록 독특한 음악을 사용자 정의할 수 있습니다.
비디오 편집: 좋아하는 이미지와 음악을 선택하면
Al Creator가 유기적으로 결합하여 아름다운
비디오 클립을 생성합니다.
지능적인 추천: 사용자의 선호도와 필요에 따라 AI
Creator는 취향에 맞는 작품을 지능적으로
추천하여 창의적인 세계를 더욱 다채롭게 만듭니다.
2. 사용자 경험
Al Creator 애플리케이션의 인터페이스 디자인은 간단하고 직관적이어서 사용자가 쉽게 시작할 수 있습니다. 새로운 작업을 생성하든 기존 작업을 편집하던 효율적이고 편리한 운영 경험을 제공할 수 있습니다. 동시에 프로그램의 지능형 프롬프터 및 안내 기능을 통해 연습 기술을 지속적으로 향상시키고 성장의 즐거움을 누릴 수 있습니다.
그리고 해당 악성코드 해쉬값은 다음과 같습니다.
파일명:AI Imagine Creator(79).apk
사이즈:6.06 MB
CRC32:81fe8bcd
MD5:296682bc1841d37dfbe90d3c7a2e5582
SHA-1:9e08f401b82a44ad6ba0e5f8dc64a4d67121a546
SHA-256:55f1b8a124c69395d077f04fe710564af4b8c867a320a3684a0fd2e9673ac84b
일단 해당 악성코드 의 권한은 다음과 같습니다.

AI Imagine Creator 악성코드 안드로이드 권한
AI Imagine Creator 악성코드 안드로이드 권한

android.permission.INTERNET: 인터넷에 액세스할 수 있는 권한 네트워크를 통해 데이터를 받거나 전송하는 기능에 사용
android.permission.ACCESS_NETWORK_STATE:네트워크 상태에 대한 정보에 접근하는 권한으로 앱이 네트워크 연결 여부 등을 파악할 수 있음
android.permission.WRITE_EXTERNAL_STORAGE: 외부 저장소(스마트폰의 파일 시스템)에 쓸 수 있는 권한으로 앱이 파일을 저장하거나 읽어올 때 사용(마이크로 SD, Secure Digital card,Secure Digital memory,microSD 등 스마트폰 내장 디스크 포함)
android.permission.READ_EXTERNAL_STORAGE: 외부 저장소에서 파일을 읽을 수 있는 권한(마이크로 SD,Secure Digital card,Secure Digital memory,micro SD, 스마트폰 내장 디스크 포함)
android.permission.CAMERA: 카메라에 접근하여 사진을 촬영하거나 동영상을 녹화할 수 있는 권한
android.permission.ACCESS_FINE_LOCATION, android.permission.ACCESS_COARSE_LOCATION: 정확한 위치 정보 또는 대략적인 위치 정보에 접근하는 권한 위치 기반 서비스에 사용
android.permission.RECORD_AUDIO: 마이크에 접근하여 오디오를 녹음하는 권한 음성 녹음 앱 등에서 사용
android.permission.READ_CONTACTS: 주소록에 접근하여 연락처 정보를 읽을 수 있는 권한
android.permission.SEND_SMS,android.permission.RECEIVE_SMS: SMS 메시지를 보내거나 수신할 수 있는 권한
android.permission.READ_PHONE_STATE: 기기의 전화 상태와 관련된 정보를 읽을 수 있는 권한으로, 전화 상태에 대한 정보를 얻을 때 사용
android.permission.VIBRATE: 기기의 진동 기능을 사용할 수 있는 권한
android.permission.WAKE_LOCK: 디바이스가 슬립 상태에 있을 때도 스마트폰을 깨우고 유지할 수 있는 권한 앱이 백그라운드 에서 작업을 계속할 필요가 있을 때 사용
android.permission.READ_CALENDAR,android.permission.WRITE_CALENDAR:달력 정보에 접근하여 읽기 또는 쓰기 작업을 수행할 수 있는 권한
android.permission.BLUETOOTH,android.permission.BLUETOOTH_ADMIN: 블루투스 기능에 접근하는 권한 블루투스 기기와의 통신에 사용
android.permission.NFC: NFC(근거리 무선 통신)에 접근할 수 있는 권한 NFC 태그와의 상호작용에 사용

getNetworkOperator 코드
getNetworkOperator 코드

먼저 android.telephony.TelephonyDisplayInfo 에서는 getOverrideNetworkType 를 통해서 네트워크 유형을 가져오는 메서드 입니다.

package android.telephony;

import android.os.Parcelable;

/* loaded from: classes.dex */
public final /* synthetic */ class TelephonyDisplayInfo implements Parcelable {
    static {
        throw new NoClassDefFoundError();
    }

    public native /* synthetic */ int getOverrideNetworkType();
}

설명을 하면 다음과 같습니다. 해당 코드는 안드로이드의 android.telephony 패키지에 속한 TelephonyDisplayInfo  클래스의 일부분을 보여주는 것으로 코드가 throw new NoClassDefFoundError();로 끝나기 때문에 클래스 정의의 일부만 보여주고 있으며 실제 내용은 확인할 수 없음 android.telephony.TelephonyDisplayInfo 클래스는 통신 정보를 표시하는 데 사용되며 휴대폰의 네트워크 상태, 연결된 서비스 제공자,데이터 네트워크 상태 등과 같은 통신 관련 정보를 가져오거나 제어하는 데 사용될 수 있습니다.
    public int getOverrideNetworkType() {
        // 네트워크 유형을 가져오는 메서드
        // 이 부분에서는 네이티브 메서드로 처리되고 있는 것으로 보임
        return 0;
    }
}
해당 코드에서 getOverrideNetworkType() 메서드는 네트워크 유형을 가져오는 메서드 실제로는 네이티브 메서드로 처리되고 있으며 네트워크 유형은 휴대폰의 연결된 네트워크 유형을 나타내며 LTE, 5G,3G,2G 등이 될 수 있음

안드로이드 스마트폰 에서 백그라운드 작업을 처리 부분
안드로이드 스마트폰 에서 백그라운드 작업을 처리 부분

androidx.work.Worker 에서는 안드로이드 스마트폰에서 백그라운드 작업을 처리 및 이를 구현 한 부분입니다.

public class RunnableC0766a implements Runnable {
        public RunnableC0766a() {
        }

        @Override // java.lang.Runnable
        public final void run() {
            try {
                Worker.this.f2625t.m669j(Worker.this.doWork());
            } catch (Throwable th) {
                Worker.this.f2625t.m668k(th);
            }
        }
    }

    @Keep
    @SuppressLint({"BanKeepAnnotation"})
    public Worker(Context context, WorkerParameters workerParameters) {
        super(context, workerParameters);
    }

    public abstract ListenableWorker.AbstractC0762a doWork();

    @Override // androidx.work.ListenableWorker
    public final InterfaceFutureC2349a<ListenableWorker.AbstractC0762a> startWork() {
        this.f2625t = new C5737c<>();
        getBackgroundExecutor().execute(new RunnableC0766a());
        return this.f2625t;
    }

RunnableC0766a 클래스:
Runnable 인터페이스를 구현하는 클래스 Runnable 인터페이스를 구현하면 스레드에서 실행될 수 있는 작업을 정의할 수 있습니다.
run() 메서드:
Runnable 인터페이스를 구현하기 위해 정의된 run() 메서드
Worker 클래스의 doWork() 메서드를 실행하고 그 결과를 Worker 클래스에 있는 C5737c 객체의 m669j() 메서드로 전달 이때 m669j() 메서드는 C5737c 클래스의 메서드 doWork()에서 반환된 결과를 콜백으로 전달하는 역할을 할 것으로 추정
만약 doWork() 메서드 실행 중에 예외가 발생하면 해당 예외를 Worker 클래스에 있는 C5737c 객체의 m668k() 메서드로 전달
Worker 클래스:
ListenableWorker 클래스를 상속하는 클래스 ListenableWorker는 Android의 백그라운드 작업을 위한 기본 클래스 중 하나
Worker(Context context, WorkerParameters workerParameters)는 생성자로 Worker 클래스의 객체를 초기화
doWork() 메서드 추상 메서드로, Worker 클래스를 상속하는 클래스에서 반드시 구현해야 하는 메서드
해당 메서드에서는 실제 백그라운드 작업을 수행하고 그 결과를 반환해야 합니다.
startWork() 메서드:ListenableWorker 클래스에서 상속받은 메서드 백그라운드 작업을 시작하는 역할
getBackgroundExecutor().execute(new RunnableC0766a())를 호출하여 RunnableC0766a 클래스의 객체를 스레드로 실행
C5737c 클래스를 사용하여 백그라운드 작업의 결과를 비동기적으로 처리하고  InterfaceFutureC2349a 형태로 결과를 반환
Worker 클래스는 Android에서 백그라운드 작업을 처리 사용됩니다.doWork() 메서드에서 실제 작업을 구현하고 startWork() 메서드를 통해 백그라운드 에서 실행되도록 스케줄링합니다.
그리고 안드로이드 악성코드 인증서 정보는 다음과 같습니다.

안드로이드 악성코드 인증서
안드로이드 악성코드 인증서

서명자 1
유형: X.509
버전: 3
시리얼 번호: 0x6bb7a13ce3efb052a8c4dcd4450744e245acf851
소유자: CN=Android, OU=Android, O=Google Inc., L=Mountain View, ST=California, C=US
유효 시작 시각: Fri Jul 07 15:40:07 GMT+09:00 2023
유효 종료 시각: Mon Jul 07 15:40:07 GMT+09:00 2053
공개키 타입: RSA
지수: 65537
모듈러스 크기 (비트): 4096
모듈러스: 568463608881420387941727012300945549681639093859577142169656391447134886708316
5761699956169264044460321037744955101034135745324722599209090724932750214
5516437338022909385146278084815405699004265623389738162636957983961372011
2134530923878302192886247814104373590130646369808575883888935575005171974
2260937810465911112044006409453137313474813081559498629079430104556202575
4123755192027877468107571682737299467003773630088626248035482647240135919
0116960887794813958147426356668298332660847054218538094670291663464257080
7897247349660901409735833401033588599965992005194188478785926494057473741
5068658972763434426207282304889881154939979164802922934782646611765648912
9866821946421861768820069209301154100530152698709582465322196717702538764
3241598209904432919261248283407705306852374435542143066085630507829556984
5853798227272582835350655502433988415883012239692984124771335330244450165
3380116938337165573510730086387227115093281214451303415101287654967844629
8491124112278760727765842678511637253901902951604546317357272225443873252
2333483986749652123185315183727412226678880649987153289141423070681902757
8966931357798163418919606970164116384137089539199021136000890213411451911
46623628885190178006942814082966395103385476997948940931267
서명 유형:SHA256withRSA
서명 OID:1.2.840.113549.1.1.11
MD5 지문:D7 02 80 0F 49 B3 04 07 7C A0 31 CD 25 5A 18 2E 
SHA-1 지문: DE 55 85 71 18 D3 E1 DA 41 B8 74 C7 EC 26 73 7E 53 2C 99 F1 
SHA-256 지문: BE 4F A6 E3 90 28 40 94 E7 19 40 7F F7 A4 FD 95 0E 94 89 
F1 B6 4C 39 95 72 A6 0F 1E 8A 19 2E 3B

결론 구글 플레이 스토어 에서도 악성코드는 존재하니 반드시 AV-TEST에 평가가 좋은 제품을 사용하시는 것을 추천합니다.

공유하기

facebook twitter kakaoTalk kakaostory naver band