Gilfoyle
Practice makes perfect
- 10 септември 2009
- 549
- 1.934
За љубителите на добро четиво што за жал се поретко го наоѓаме на форумов издвоив малце време да напишам некој збор за Operation Triangulation односно нај-напредниот exploit кај Apple уредите досега.
Пред две години зборевме за Македонскиот шпионски софтвер Predator од компанијата Cytrox, иако тогаш се објавија и имиња и детални информации, досега ништо не се смени напротив Predator-от на Cytrox пред некој месец беше повторно тема низ медиумите кога на 21 септември Apple издаде Security patch каде што во release notes велат дека неколку 0-day ранливости се пачирани и дека истите се користеле најмалку 6 месеци за заразување на уреди.
Се работи за 3 ранливости за iOS и една ранливост кај Android (CVE-2023-4762) пронајдени од Google’s Threats Analysis Group (TAG).
Кај iOS се работи за:
CVE-2023-41991 (Security): A malicious app may be able to bypass signature validation.
CVE-2023-41992 (Kernel): A local attacker may be able to elevate their privileges.
CVE-2023-41993 (WebKit): Processing web content may lead to arbitrary code execution.
Повеќе информации тука: (0-days exploited by commercial surveillance vendor in Egypt)
Сите ранливости се директно поврзани со Predator софтверот на Cytrox, ама ниту една од овие ранливости не е поврзана со она што следи односно со можеби најсофтицираниот напад откриен на Apple уреди до сега. Истиот за сега не е поврзан со ниту една компанија ниту пак Држава.
Почетокот на Operation Triangulation:
На 01 јуни Kaspersky објавува статија со наслов: Operation Triangulation: iOS devices targeted with previously unknown malware . Во истата авторите пишуваат дека додека го следеле интерниот сообраќај на корпоративната WiFi мрежа, Kaspersky Unified Monitoring and Analysis Platform (KUMA) системот забележал дека неколку iOS уреди имаат сомнителна мрежна активност.
Истите веднаш прават offline backup од уредите и врз него започнуваат со форензика на уредите преку mvt-ios (Mobile Verification Toolkit) и од тука произлегуваат првите траги за нешто што подоцна ќе излезе дека е многу поголемо од она што иницијално тимот на Kaspersky мислел.
Први траги:
Секој backup содржи и делумна копија од filesystem-от, вклучувајќи и некои од корисничките податоци и одредени бази на податоци. Временските ознаки(timestamps) на фолдерите, фајловите и записите од базата на податоци овозможуваат груба реконструкција на настаните што се случуваат со уредот. Со помош на mvt-ios тимот генерира сортирана временска линија на настани во csv file наречен „timeline.csv”.
Користејќи го timeline-от генериран од mvt-ios, тимот на Kaspersky успеава да идентификува конкретни артефакти што укажуваат на компромис на уредите. Од истиот timeline призлегува и грубата реконстуркција на нападот:
- iOS уредот добива порака преку iMessage, со attachment кој содржи 0-day exploit.
- Без каква било интеракција со корисникот, пораката предизвикува ранливост што води до code-execution.
- Кодот во expoit-от презема неколку последователни фази од C&C серверот, кои вклучуваат дополнителни експлоатирања за зголемување на привилегиите.
- По успешната експлоатација, финалниот payload се презема од C&C серверот.
- Почетната порака и заразениот attachment се бришат
Ако го земеме детално целиот напад би изгледал вака:
Најстарите траги на инфекција што Kaspersky ги открива се од 2019 година. Во моментот на објавата на 01 јуни 2023 година, малициозниот код е сеуште активен и е забележан и на најновите iOS верзии во тоа време 16.6. Кога излезе оваа објава она што е битно е дека анализата на payload-от сè уште не е завршена. Кодот се извршува со root привилегии, имплементира збир на команди за собирање информации за системот и корисникот и може дополнително да инјектира код преземен како модули од C&C серверот. Но за одредени функции во payload-от сеуште не можат да дојдат до никакво сознание неколку различни тимови што се бават со форензика.
Детали од оваа истрага може да се најдат на следниот линк: Operation Triangulation: iOS devices targeted with previously unknown malware
Како нападот го добива името Operation Triangulation?
На почетокот на синџирот на инфекција, како што пишав погоре жртвата добива невидлив attachment на iMessage преку 0-day exploit. Крајната и единствена цел на овој exploit е тивко во позадина да отвори URL на домен. HTML-страницата хостирана на тој URL содржи JavaScript obfuscated код на библиотеката за криптографија NaCl, како и енкриптиран payload. Овој payload е валидаторот на JavaScript.
Валидаторот врши многу различни проверки, вклучувајќи различни аритметички операции како Math.log(-1) или Math.sqrt(-1), проверка за достапност на компоненти како што се Media Source API, WebAssembly и други. Но најинтересно е што валидаторот извршува техника за fingerprinting наречена Canvas Fingerprinting со помош на цртање жолт триаголник на розова позадина со WebGL и пресметување на неговиот checksum.
Кодот искористен за цртање на триаголникот:
context.bufferData(context.ELEMENT_ARRAY_BUFFER, l, context.STATIC_DRAW);
context.useProgram(C);
context.clearColor(0.5, 0.7, 0.2, 0.25);
context.clear(context.COLOR_BUFFER_BIT);
context.drawElements(context.TRIANGLES, l.length, context.UNSIGNED_SHORT, 0);
C.L = context.getAttribLocation(C, Z('VE'));
C.W = context.getUniformLocation(C, Z('Zv'));
context.enableVertexAttribArray(C.L);
context.vertexAttribPointer(C.L, 3, context.FLOAT, !1, 0, 0);
context.uniform2f(C.W, 1, 1);
context.drawArrays(context.TRIANGLE_STRIP, 0, 3);
var h = new Uint8Array(262144);
context.readPixels(0, 0, 256, 256, context.RGBA, context.UNSIGNED_BYTE, h);
data['xT'] = h[88849];
data['jHWOO'] = h[95054];
data['aRR'] = h[99183];
data['ffJEi'] = h[130012];
for (var p = 0, _ = 0; _ < h.length; _++)
p += h[_];
data['WjOn'] = p;
Слика од триаголникот:
Овој триаголник е, всушност, зошто целата оваа кампања e наречена Operation Triangulation. По извршување на валидаторот, тој ги енкриптира и ги испраќа сите собрани информации на друга URL адреса со цел да провери дали да ја преземе (или не) следната фаза од синџирот на инфекција.
Детали за функциите што се извршуваат може да се прочита тука: Triangulation: validators, post-compromise activity and modules
Четири 0-day exploit-и злоупотребувани со години
Уредите што се заразени од Triangulation практично се заразени со целосно опремен шпионски софтвер кој, меѓу другото, пренесува снимки од микрофон, фотографии, геолокација и други чувствителни податоци на сервери контролирани од напаѓачите.
Иако како што спомнав погоре инфекциите не преживуваат рестартирање, напаѓачите го одржувале заразувањето во живот со едноставно со испраќање на уредите нов iMessage неколку минути по рестартирањето на уредите.
Operation Triangulation користи четири критични 0-day пропусти, за кои Apple ги закрпи и истите се:
- CVE-2023-41990: A vulnerability in the ADJUST TrueType font instruction allowing remote code execution through a malicious iMessage attachment.
- CVE-2023-32434: An integer overflow issue in XNU's memory mapping syscalls, granting attackers extensive read/write access to the device's physical memory.
- CVE-2023-32435: Used in the Safari exploit to execute shellcode as part of the multi-stage attack.
- CVE-2023-38606: A vulnerability using hardware MMIO registers to bypass the Page Protection Layer (PPL), overriding hardware-based security protections.
Според форензичките сознанија воопшто не е грешка или превид дека 38606 0-day exploit-от можел да работи и на други уреди освен на iPhone, туку уредите дефинитивно биле таргетирани и напаѓачите точно знаеле кои „врати“ може да ги отворат со тој експлоит.
Мистериозната хардверска функција се покажува како клучна за успехот на Triangulation
Најинтригантниот нов детал е таргетирањето на досега непознатата хардверска карактеристика/функција, која се покажа како клучна за Operation Triangulation. 0-day exploit во хардверската функцијата им овозможила на напаѓачите да ја заобиколат напредната хардверска заштита на Apple, дизајнирана да го зачува интегритетот на системот на уредот дури и откако напаѓачот би стекнал привилегии до меморијата на основниот кернел. На повеќето други платформи, откако напаѓачите успешно ќе ја искористат ранливоста на кернелот, тие имаат целосна контрола врз компромитираниот систем.
Она што е битно да се спомне дека непознатата хардверска функција е присутна и во процесорите M1 и M2 на Apple.
Тимот на Kaspersky дознале за тајната хардверска функција дури по 6 месечно опширна форензика на уредите кои биле заразени со Triangulation. Имено се работи хардверски регистри, кои обезбедуваат мемориски адреси на процесорите за интеракција со периферните компоненти како што се USB, мемориски контролери и графички процесори. MMIO (Memory-mapped Input/Outputs), му дозволуваат на процесорот да запишува во специфичниот хардверски регистар на одреден периферен уред.
Неколку од MMIO адресите на напаѓачите кои ги користеле за да ја заобиколат заштитата на меморијата не биле идентификувани никаде, ниту пак биле користени во било кој дел од системот, односно тие MMIO не се спонуваат ниту во source code-от, ниту во било кој kernel images, ниту пак во firmware-от.
Експлоитот ги користи следните непознати адреси: 0x206040000, 0x206140008, 0x206140108, 0x206150020, 0x206150040 и 0x206150048.
Можеме да видиме дека повеќето од нив се наоѓаат во областа помеѓу двата gfx-asc региони, а преостанатите се наоѓаат блиску до почетокот на првиот регион gfx-asc. Ова сугерира дека сите овие MMIO регистри најверојатно му припаѓале на GPU копроцесорот.
Деталната форензика може да ја видите тука: Operation Triangulation: The last (hardware) mystery
Ако не ви се читаат детални форнзички анализи или не разбирате доволно, презентацијата Operation Triangulation: What You Get When Attack iPhones of Researchers можете да ја гледате тука:
Operation Triangulation
Imagine discovering a zero-click attack targeting Apple mobile devices of your colleagues and managing to capture all the stages of the a...
media.ccc.de
Тема на дискусија
Тука се и најбитните прашања, односно:
1. Како напаѓачите дознале за хардверската карактеристика и која е нејзината функција?
2. Како стигнале до адресите што не се користени ниту пак се најдени во ниту една интерна документација ниту изворен код?
3. Дали функцијата е од мајка оставена (не)намерно од страна на Apple или е овозможена од хардверска компонента од трета страна како што е CoreSight на ARM?
Иницијално се претпоставува дека хардверската функција била користена за некакво тестирање во фабрика или пак во некој development unit а понатаму отишла во продукција без да биде тргната.
Втората варијанта што Русите секако ја тврдат е дека истото е дело на NSA и дека Apple свесно оставил backdoor во неколку генерации на уреди (цирка 6 години) и за истото Apple издаде одговор дека не биле запознаени за ова.
My 2 cents:
Се потрудив да вметнам што е можно повеќе информации без да навлагам во форензичките детали но секој што сака да прочита дополнително може да си ги кликнете линковите и да ги видите сите анализи.
Со текстов се обидувам да доловам една поента а тоа е дека без-разлика колку ние може да бидеме it savvy или да пазиме што кликаме, па дури читам на форумов пишуваат дека биле многу паметни и не им требало ни АВ да користат, се надевам дека ќе ставите прст на глава и ќе размислите два пати дека ако ова се случувало неприметно години уназад, сигурен сум дека ниту е прво ниту последно (затоа и беше воведниот дел со Predator затоа што уште си функционира, затоа што на некој тоа му одговара),
Ах да и најбитно од се да не и бидете на државата трн во око, дека ако сака некој да ве пое*е нема таков начин да скриете нешто или да мислите дека има уред што не може да се зарази или дека нема поента баш вас да ве следат.
TL;DR - Голем број на Apple уреди имале хардверска функција за која Apple нема никаква документација и не се знае дали истата е намерно или ненамерно оставена, истата таа функција овозможи неколку години Apple уреди да бидат незаприметно заразувани преку 0-day exploit. Или стара cybersec поговорка, не е прашање дали може да ве хакираат туку прашање е кога