Triangulation užkrėtė dešimtis jei ne tūkstančius iPhone

Temos: iOS, iPhone, Saugumas

„Triangulation“ – ko gero pažangiausia saugos pažeidžiamumų išnaudojimo (angl. exploit) kampanija, atvėrusi „galines iPhone duris“ truko ketverius metus.

Tyrėjai trečiadienį pristatė intriguojančius naujus atradimus, susijusius su ataka, per ketverius metus „galines duris“ atvėrusia dešimtyse Maskvoje įsikūrusios saugos įmonės „Kaspersky“ darbuotojų, o bendrai, galimai, tūkstančiuose „iPhone“. Pagrindinis iš atradimų: nežinomi užpuolikai sugebėjo pasiekti precedento neturintį prieigos lygį, išnaudodami dokumentais nepatvirtintos aparatinės įrangos pažeidžiamumą, apie kurį mažai kas žinojo už „Apple“ ir lustų tiekėjų, tokių kaip „ARM Holdings“ ribų.

„Išnaudojimo sudėtingumas ir funkcijos neaiškumas rodo, kad užpuolikai turėjo pažangių techninių galimybių“, – elektroniniame laiške rašė „Kaspersky“ tyrėjas Boris Larin. „Mūsų analizė neatskleidė, kaip jie sužinojo apie šią galimybę, tačiau tiriame visus variantus, įskaitant atsitiktinį atskleidimą ankstesnėse programinės įrangos ar išeitinio kodo leidimuose. Jie [programišiai] taip pat galėjo tai atrasti per atvirkštinę aparatinės įrangos inžineriją — ‌reverse engineering'ą.

Keturi „nulinės dienos“ pažeidžiamumai[1] išnaudoti metų metus

„Net po maždaug 12 mėnesių trukusio intensyvaus tyrimo, lieka neatsakytų klausimų“, — rašė Larin. Be to, tyrėjai vis dar nežino kaip užpuolikai sužinojo apie aparatinės įrangos funkciją, koks jos tikslas. Taip pat nežinoma, ar ši funkcija yra originali „iPhone“ dalis, ar įjungta trečiosios šalies aparatinės įrangos komponento, pvz., ARM „CoreSight“.

Apie masinę „galinių durų“[2] kampaniją, kuri, pasak Rusijos pareigūnų, taip pat užkrėtė tūkstančių „iPhone“, žmonių dirbančių diplomatinėse atstovybėse ir ambasadose Rusijoje, anot Rusijos vyriausybės pareigūnų, paaiškėjo birželį. „Kaspersky“ teigimu, per mažiausiai ketverius metus užkratai buvo perduodami „iMessage“ žinutėmis, kuriose buvo įdiegta kenkėjiška programa per sudėtingą išnaudojimo grandinę, nereikalaujant, kad gavėjas imtųsi jokių veiksmų.

Atakos metu įrenginiai buvo užkrėsti visų funkcijų turinčiomis šnipinėjimo programomis, kurios, be kita ko, perdavė mikrofono įrašus, nuotraukas, geolokacijos ir kitus jautrius duomenis į užpuolikų valdomus serverius. Nors po įrenginio perkrovimo užkratas iš naujo nepasileido, nežinomi užpuolikai išsiuntė naują kenkėjišką „iMessage“ tekstą netrukus po to, kai įrenginiai buvo paleisti iš naujo ir taip išlaikė savo kampanijos gyvybingumą.

Trečiadienį paskelbtame naujame rašte, kur pateikiama daugiau detalių, teigiama, kad „Triangulation“ – tokį pavadinimą „Kaspersky“ suteikė ir kenkėjiškai programai, ir ją įdiegusiai kampanijai – išnaudojo keturis kritinius nulinės dienos pažeidžiamumus, o tai reiškia rimtus programavimo trūkumus, kuriuos užpuolikai žinojo anksčiau, nei apie juos sužinojo „Apple“. Sužinojusi apie pažeidžiamumus „Apple“ ištaisė visus keturis pažeidžiamumus, kurie žinomi kaip:

Be „iPhone“, šios kritinės nulinės dienos klaidos ir slaptoji aparatinės įrangos funkcija buvo „Mac“, „iPod“, „iPad“, „Apple TV“ ir „Apple Watch“. Be to, „Kaspersky“ atkurti išnaudojimai buvo sąmoningai sukurti taip, kad veiktų ir šiuose įrenginiuose. „Apple“ pateikė sistemos pataisas ir šioms platformoms.

Aptikti užkratą yra labai sudėtinga net žmonėms, turintiems didelį tam reikalingų žinių bagažą. Norintiems išbandyti patiems: interneto adresų, failų ir kitų pažeidžiamumo rodiklių sąrašas yra čia.

Paslaptinga iPhone funkcija yra labai svarbi „Triangulation“ sėkmei

Labiausiai intriguojanti detalė – taikymasis į iki šiol nežinomą aparatinės įrangos funkciją, kuri pasirodė esanti esminis „Trianguliacijos operacijos“ kampanijos veiksnys. Nulinės dienos funkcijos pažeidžiamumas leido užpuolikams apeiti pažangias aparatinės įrangos pagrindu veikiančias atminties apsaugas, skirtas apsaugoti įrenginio sistemos vientisumą net ir po to, kai užpuolikas įgijo galimybę sugadinti pagrindinio branduolio atmintį. Daugumoje kitų platformų, vos tik užpuolikai sėkmingai išnaudoja branduolio pažeidžiamumą, jie gali visiškai valdyti pažeistą sistemą.

„Apple“ įrenginiuose, kuriuose įdiegta ši apsauga, užpuolikai vis tiek negali panaudoti pagrindinių saugumo spragos išnaudojimo technikų, pvz., įterpti kenkėjiško kodo į kitus procesus arba modifikuoti branduolio kodo, arba jautrių branduolio duomenų. Ši galinga apsauga buvo apeinama išnaudojant slaptosios funkcijos pažeidžiamumą. Ši, iki šiol retai buvusi nugalėta, apsauga taip pat yra ir „Apple“ M1 bei M2 procesoriuose.

„Kaspersky“ tyrėjai apie slaptą aparatinės įrangos funkciją sužinojo tik po kelis mėnesius trukusios išsamios, „Triangulation“ užkrėstų, įrenginių ekspertizės panaudojant atvirkštinės inžinerijos veiksmus aparatinei „iPhone“ įrangai. Tyrimo metu saugos ekspertai atkreipė dėmesį į vadinamuosius aparatinės įrangos registrus, kurie suteikia procesoriaus (CPU) atminties adresus, kad galėtų sąveikauti su periferiniais komponentais, tokiais kaip USB, atminties valdikliai ir vaizdo plokštė (GPU). MMIO (sutrumpinimas nuo Memory-mapped Input/Outputs), leidžia CPU rašyti į konkretų konkretaus išorinio įrenginio aparatinės įrangos registrą.

Tyrėjai nustatė, kad kai kurie užpuolikų naudojami MMIO adresai, kurie buvo naudojami apeiti atminties apsaugą, nebuvo aprašyti jokioje įrenginio medžio dokumentacijoje, kuri yra žinynas inžinieriams, kuriantiems aparatinę ar programinę įrangą „iPhone“. Net po to, kai tyrėjai toliau tyrinėjo šaltinio kodus, branduolio vaizdus ir programinę įrangą, jie vis tiek negalėjo rasti jokio MMIO adresų paminėjimo.

Pranešime spaudai, kuris sutapo su pranešimu 37-ajame Chaoso komunikacijos kongrese Hamburge, Vokietijoje, Larin sakė „Tai nėra įprastas pažeidžiamumas“. „Dėl uždaros „iOS“ ekosistemos pobūdžio aptikimo procesas buvo sudėtingas ir užimantis daug laiko, reikalaujantis visapusiško tiek aparatinės, tiek ir programinės įrangos architektūros supratimo. Šis atradimas mus dar kartą moko, kad net pažangios aparatinės įrangos apsaugos priemonės gali tapti neveiksmingos, kai susiduria su sofistikuotu užpuoliku, ypač kai yra apeiti šią apsaugą leidžiančių aparatinės įrangos funkcijų.

Trečiadienį paskelbtame tyrimo dokumente Larin taip pat rašo:

Jei bandysime apibūdinti šią funkciją ir tai, kaip užpuolikai ja naudojasi — viskas susiveda į tai, kad: užpuolikai gali įrašyti norimus duomenis norimu fiziniu adresu, apeidami aparatinės įrangos atminties apsaugą, rašydami duomenis, paskirties adresą ir duomenų maišą (hash) į nežinomus, programinės įrangos nenaudojamus, lusto aparatinės įrangos registrus.

Spėjame, kad šią nežinomą aparatinės įrangos funkciją „Apple“ inžinieriai ar gamykla, greičiausiai, ketino naudoti derinimo ar testavimo tikslais, arba ji buvo įtraukta per klaidą. Kadangi šios funkcijos nenaudoja programinė įranga, neįsivaizduojame, kaip užpuolikai žino, kaip ja naudotis.

Tą pačią praėjusių metų birželio dieną, kai „Kaspersky“ pirmą kartą atskleidė, kad „Trianguliacijos operacija“ užkrėtė jos darbuotojų „iPhone“, Rusijos nacionalinio kompiuterinių incidentų koordinavimo centro pareigūnai sakė, kad atakos buvo platesnės JAV Nacionalinio saugumo agentūros kampanijos užkrėtusios kelis tūkstančius „iPhone“ žmonių dirbančių diplomatinėse atstovybėse ir ambasadose Rusijoje, ypač iš tų, kurie atstovauja NATO šalims, posovietinėms valstybėms, Izraeliui ir Kinijai. Atskiras Rusijos federalinės saugumo tarnybos FSB perspėjimas teigė, kad kampanijoje dalyvauja „Apple“ bendradarbiaudama su NSA. „Apple“ atstovas paneigė šį teiginį. Tuo tarpu „Kaspersky“ tyrėjai teigė neturintys jokių įrodymų, patvirtinančių teiginį, kad NSA ar „Apple“ atakoje dalyvavo.

„Šiuo metu negalime galutinai priskirti šios kibernetinės atakos jokiam žinomam grėsmės veikėjui“, – rašė Larin. „Unikalios savybės, pastebėtos atliekant operaciją „Trianguliacija“, neatitinka žinomų kampanijų modelių, todėl šiame etape jos priskyrimas kam nors yra sudėtingas.

Tai galbūt pats įmantriausias pažeidžiamumo išnaudojimas

Trečiadienį pristatytose išvadose taip pat išsamiai aprašoma pažeidžiamumo išnaudojimo grandinės, kuri buvo „Trianguliacijos“ užkrato pagrindas, sudėtingumas. Kaip minėta anksčiau, grandinė išnaudojo keturis nulinės dienos pažeidžiamumus, siekdama užtikrinti, kad kenkėjiška programa „Triangulation“ veiktų root teisėmis ir įgytų visišką įrenginio ir jame saugomų vartotojo duomenų kontrolę.

Viskas prasideda nuo CVE-2023-41990 – „Apple“ įdiegto „TrueType“ šrifto pažeidžiamumo išnaudojimo. Ši pradinė grandinės grandis, kuri naudojo metodus, įskaitant į grąžą orientuotą ir į šuolį orientuotą programavimą, siekiant apeiti šiuolaikinę apsaugą, leido užpuolikams nuotoliniu būdu vykdyti kodą, nors ir su minimaliomis sistemos privilegijomis.

Pašalinus šią pradinę kliūtį, kita išnaudojimo grandinės grandis buvo nukreipta į „iOS“ branduolį – OS branduolį, skirtą jautriausioms įrenginio funkcijoms ir duomenims. Šis branduolio manipuliavimas buvo atliktas išnaudojant CVE-2023-42434 ir CVE-2023-39606 pažeidžiamumus. CVE-2023-42434 yra XNU atminties pažeidimo pažeidžiamumas – mechanizmas, sukurtas atlaikyti bandymus sugadinti atmintį „iOS“ branduolyje. Per jį buvo išnaudojamas CVE-2023-39606 pažeidžiamumas, esantis slaptuose MMIO registruose. Tai leido apeiti puslapių apsaugos sluoksnį (angl. „‌Page Protection Layer) – anksčiau aptartą gynybą, kuri apsaugo nuo kenkėjiško kodo įterpimo ir branduolio modifikavimo net po to, kai branduolys buvo pažeistas.

Tada grandinė išnaudojo „Safari“ CVE-2023-32435 pažeidžiamumą, kad vykdytų apvalkalo kodą. Gautas apvalkalo kodas, savo ruožtu, dar kartą išnaudojo CVE-2023-32434 ir CVE-2023-38606, kad pagaliau pasiektų šakninę prieigą, reikalingą paskutiniam šnipinėjimo programos funkcionalumui įdiegti.

„Kaspersky“ pateikė šią pažeidžiamumų išnaudojimo grandinės schemą.

„Kaspersky“ pateiktos pažeidžiamumo išnaudojimo grandinės santrauka yra tokia:

  • Užpuolikai siunčia kenkėjišką „iMessage“ priedą, kurį aplikacija apdoroja nerodydama vartotojui jokių ženklų.
  • Šis priedas išnaudoja pažeidžiamumą CVE-2023-41990 nedokumentuotoje, tik „Apple TrueType“ šrifto instrukcijoje ADJUST nuotoliniam kodo vykdymui. Ši instrukcija egzistavo nuo 90-ųjų pradžios ir pataisa ją pašalino.
  • Naudojamas į grįžimą / šuolį orientuotas programavimas parašytas NSExpression/NSPredicate programavimo kalba ir pataiso „JavaScriptCore“ biblioteką, kad įvykdytų privilegijų eskalavimo išnaudojimą, parašytą „JavaScript“.
  • Šis „JavaScript“ išnaudojimas yra užslėptas, kad būtų visiškai neįskaitomas ir sumažintas jo dydis. Vis dėlto jame yra apie 11 000 kodo eilučių, kurios daugiausia skirtos „JavaScriptCore“ ir branduolio atminties analizei ir manipuliavimui.
  • Išnaudojama „JavaScriptCore“ derinimo funkcija DollarVM ($vm), kad būtų galima manipuliuoti „JavaScriptCore“ atmintimi iš skripto ir vykdyti API funkcijas.
  • Ataka buvo sukurta taip, kad veiktų senuose ir naujuose „iPhone“ ir turėjo PAC (Pointer Authentication Code) apėjimą, skirtą veikti naujesniuose modeliuose.
  • Ji naudojo sveikųjų skaičių perpildymo pažeidžiamumą CVE-2023-32434 XNU atminties susiejimo syscall (mach_make_memory_entry ir vm_map), kad gautų vartotojo lygio visos fizinės įrenginio atminties skaitymo/rašymo teises.
  • Ji naudoja aparatinės įrangos atminties susietus įvesties/išvesties (I/O MMIO) registrus, kad apeitų puslapio apsaugos sluoksnį (PPL).
  • Išnaudojęs visus pažeidžiamumus, „JavaScript“ išnaudojimas gali daryti ką tik nori įrenginiui ir paleisti šnipinėjimo programas, tačiau užpuolikai pasirinko: a) paleisti vaizdo apdorojimo procesą ir įterpti procesą, kuris pašalina iš įrenginio pažeidžiamumo išnaudojimo artefaktus; b) paleidžia „Safari“ procesą nematomu režimu ir kitame etape peradresuoja jį į tinklalapį.
  • Tinklalapyje yra skriptas, kuris patikrina auką, ir, jei patikrinimai yra sėkmingi, pereinama į kitą etapą - „Safari“ pažeidžiamumo išnaudojimą.
  • Safari pažeidžiamumas CVE-2023-32435 leidžia vykdyti apvalkalo kodą.
  • Apvalkalo kodas (shellcode) vykdo kitą branduolio pažeidžiamumo išnaudojimą mach objekto failo forma. Jis naudoja tuos pačius pažeidžiamumus CVE-2023-32434 ir CVE-2023-38606, jis taip pat didžiulis savo dydžiu ir funkcionalumu, tačiau labai skiriasi nuo branduolio pažeidžiamumo išnaudojimo, parašyto „JavaScript“. Tik kai kurios dalys, susijusios su aukščiau paminėtų pažeidžiamumų išnaudojimu, yra vienodos. Vis dėlto didžioji šio kodo dalis taip pat skirta branduolio atminties analizei ir manipuliavimui. Jame yra įvairių paslaugų skirtų paleisti po eksploatavimo, kurios dažniausiai nenaudojamos.
  • Užkratas gauna root teises ir toliau vykdo kitus etapus, atsakingus už šnipinėjimo programų įkėlimą. Šiuos etapai jau aptarti anksčiau.

Trečiadienio pristatymas, pavadintas „Ką gausite, kai užpuolate tyrėjų iPhone“, yra dar vienas priminimas, kad net ir esant naujoviškoms apsaugos priemonėms, tokioms kaip sauganti „iPhone“ branduolį, sudėtingesnės, patyrusių užpuolikų atakos vis tiek randa būdų jas nugalėti.


  1. Nulinės dienos pažeidžiamumas – sistemos ar įrenginio pažeidžiamumas, kuris buvo atskleistas, bet dar nepašalintas. Kadangi „nulinės dienos pažeidžiamumas“ buvo aptiktas (programišių) prieš tai, kai saugumo ekspertai ir programinės įrangos kūrėjai apie jį sužinojo (ir išleido pataisą), nulinės dienos pažeidžiamumai kelia didesnį pavojų vartotojams dėl šių priežasčių:

    • Kibernetiniai nusikaltėliai skuba pasinaudoti šiais pažeidžiamumais ir pasipelnyti iš savo schemų, tad juos stengiasi išnaudoti maksimaliai aktyviai.
    • Pažeidžiamos sistemos rodomos yra pažeidžiamos iki išleidžiama pataisa, o jei pažeidžiamumas (kibernetinio saugumo ekspertams) buvo nežinomas ilgesnį laikotarpį — sistemos visą tą laiką buvo pažeidžiamos.

    Nulinės dienos pažeidžiamumas paprastai yra susijęs su tikslinėmis atakomis; tačiau daugelis programišių atakų kampanijų vis dar naudoja senus pažeidžiamumus.↩︎

  2. Galinės durys, slaptas įėjimas (iš angliško back door - „galinės durys“) — algoritmo defektas, kurį kūrėjas sąmoningai įdiegė ir, kuris leidžia neteisėtai prieiti prie duomenų arba nuotoliniu būdu valdyti operacinę sistemą ir kompiuterį apskritai. ↩︎

Pasidalinti straipsniu:

Apie Ramūnas Blavaščiūnas

Fotografijos, geros technikos ir kavos mylėtojas

Komentarų: 4 | Ačiū, kad rašote lietuviškai

  1. Iphone 15 Pro Max

    Biški ne į temą prie straipsnio,bet klausimas tau Ramūnai🙂
    Ar į manoma pas tave ant Watch Ultra,tiesiog momentiškai pamatuoti kūno temperatūrą? 🤔
    Nekalbu apie tas nesamones kur tipo nenuėmęs keturias naktis nuo rankos,vyksta ten kažkokie temperatūros analizavimo procesai...

Parašykite komentarą

Jūsų elektroninio pašto adresas nebus viešinamas. Būtini laukai pažymėti *

*

Į viršų