SGX malware: cumu i villani sfruttanu a nova tecnulugia Intel per scopi diversi da quelli per quale hè statu cuncipitu

Comu sapete, u codice eseguitu in l'enclave hè seriamente limitatu in a so funziunalità. Ùn pò micca fà chjamate sistema. Ùn pò micca fà operazioni I/O. Ùn cunnosci micca l'indirizzu di basa di u segmentu di codice di l'applicazione host. Ùn pò micca jmp o chjamà u codice di l'applicazione host. Ùn hà micca idea di a struttura di u spaziu di l'indirizzu chì guverna l'applicazione di l'ospiti (per esempiu, chì pagine sò mappate o chì tipu di dati si trova nantu à queste pagine). Ùn pò micca dumandà à u sistema operatore di mappe un pezzu di a memoria di l'applicazione host à ellu (per esempiu, attraversu /proc/pid/maps). I tentativi ingenui di leghje in cieca una regione di memoria arbitraria di una applicazione di l'ospiti, per micca di parlà di i tentativi di scrive, prima o dopu (probabilmente l'anzianu) portanu à a terminazione forzata di u prugramma enclave. Questu succede ogni volta chì a regione di u spaziu di l'indirizzu virtuale dumandata da l'enclave hè inaccessibile à l'applicazione host.

Data una realità cusì dura, un scrittore di virus puderà utilizà l'enclavi SGX per ottene i so scopi maliziusi?

- Hack per sondare l'indirizzi per vede s'ellu si ponu leghje
- Hack per sonda l'indirizzi per a scrittura
- Hack per reindirizzà u flussu di cuntrollu
– Chì facenu i trè pirate elencati sopra à dà à u cattivu ?
- Cumu u cattivu usa questi pirate per creà ranzowari

SGX malware: cumu i villani sfruttanu a nova tecnulugia Intel per scopi diversi da quelli per quale hè statu cuncipitu

Basatu annantu à tuttu ciò chì sopra, hè generalmente accettatu chì un enclave hè solu capace di serve l'applicazione host, è chì l'enclave ùn pò micca esercitassi a so propria iniziativa, cumpresi quelli maliziusi. Questu significa chì l'enclavi ùn anu micca valore praticu per i scrittori di virus. Questa assunzione precipitosa hè unu di i motivi per chì a prutezzione SGX hè asimmetrica: u codice di l'applicazione host ùn pò micca accede à a memoria di l'enclave, mentre chì u codice di l'enclave pò leghje è scrive à qualsiasi indirizzu di memoria di l'applicazione host.

Dunque, se u codice enclave maliziusu hà sappiutu fà chjamà arbitrarie di u sistema in nome di l'applicazione host, eseguisce codice arbitrariu per ellu, scansà a memoria di l'applicazione host è truvà catene ROP abusibili in questu, puderia piglià u cuntrollu cumpletu di l'applicazione host, in modu stealth. Ùn pò micca solu arrubà è criptà i fugliali d'utilizatori, ma ancu agisce in nome di l'utilizatore. Per esempiu, mandà e-mail di phishing in u so nome o cunduce attacchi DoS. Senza teme ancu di i meccanismi protettivi più muderni, cum'è stack canaris è sanitization di indirizzu.

Vi mustraremu uni pochi di pirate chì l'attaccanti utilizanu per superà e limitazioni descritte sopra per prufittà di SGX per i so propiu scopi maliziusi: attacchi ROP. Sia per eseguisce codice arbitrariu disguised cum'è un prucessu d'applicazione di l'ospiti (simili à u prucessu di hollowing, chì hè spessu usatu da u malware), o per disguise un malware prontu (per salvà u so malware da a persecuzione di l'antivirus è altri meccanismi di difesa).

Hack per l'indirizzi di sonda per vede s'ellu si ponu leghje

Siccomu l'enclave ùn sapi micca quali intervalli di u spaziu di l'indirizzu virtuale sò accessibili à l'applicazione host, è postu chì l'enclave hè custrettu à finisce quandu prova à leghje un indirizzu inaccessibile, l'attaccante hè affruntatu à u compitu di truvà un modu per fallu. scansà tolerantemente u spaziu di indirizzu. Truvate un modu per mappe l'indirizzi virtuali dispunibili. U cattivu risolve stu prublema abusendu a tecnulugia TSX di Intel. Aduprà unu di l'effetti secundari di TSX: se a funzione d'accessu à a memoria hè piazzata in una transazzione TSX, l'eccezzioni derivanti da l'accessu à l'indirizzi invalidi sò suppressi da TSX senza ghjunghje à u sistema operatore. Se un tentativu hè fattu per accede à un indirizzu di memoria invalidu, solu a transazzione attuale hè abortita, micca tuttu u prugramma enclave. Chì. TSX permette à un enclave di accede in modu sicuru à qualsiasi indirizzu da una transazzione - senza risicu di colapsu.

se l'indirizzu specificatu hè dispunibule l'applicazione host, a transazzione TSX hè più spessu successu. In casi rari, pò fallu per influenze esterne cum'è interruzioni (cum'è interruzioni di pianificazione), evictions di cache, o mudificazione simultanea di un locu di memoria da parechji prucessi. In questi casi rari, u TSX torna un codice d'errore chì indica chì u fallimentu hè tempurale. In questi casi, basta à ripiglià a transazzione.

se l'indirizzu specificatu ùn hè micca dispunibule L'applicazione di l'ospite, TSX supprime l'eccezzioni chì hè accaduta (u SO ùn hè micca notificatu) è abortisce a transazzione. Un codice d'errore hè tornatu à u codice di l'enclave per pudè reagisce à u fattu chì a transazzione hè stata annullata. Questi codici d'errore indicanu chì l'indirizzu in quistione ùn hè micca dispunibule per l'applicazione di l'ospite.

SGX malware: cumu i villani sfruttanu a nova tecnulugia Intel per scopi diversi da quelli per quale hè statu cuncipitu

SGX malware: cumu i villani sfruttanu a nova tecnulugia Intel per scopi diversi da quelli per quale hè statu cuncipitu

Questa manipulazione di TSX da l'internu di l'enclave hà una bella funzione per u cattivu: postu chì a maiò parte di i contatori di prestazione di hardware ùn sò micca aghjurnati à u mumentu chì u codice di l'enclave hè eseguitu, hè impussibile di seguità e transazzioni TSX eseguite in l'enclave. Cusì, a manipulazione maliciosa di u TSX resta cumplettamente invisibili à u sistema operatore.

Inoltre, postu chì u pirate di sopra ùn si basa in alcuna chjama di u sistema, ùn pò micca esse rilevatu nè impeditu da solu bluccà e chjama di u sistema; chì generalmente dà un risultatu pusitivu in a lotta contru a caccia di l'ova.

U cattivu usa u pirate descrittu sopra per circà u codice di l'applicazione host per i gadgets adattati per furmà una catena ROP. À u listessu tempu, ùn hà micca bisognu di sonda ogni indirizzu. Hè abbastanza per sonda un indirizzu da ogni pagina di u spaziu di indirizzu virtuale. A prova di tutti i 16 gigabyte di memoria dura circa 45 minuti (in un Intel i7-6700K). In u risultatu, u cattivu riceve una lista di e pagine eseguibili chì sò adattati per custruisce una catena ROP.

Hack per pruvà l'indirizzi per a scrittura

Per fà una versione enclave di un attaccu ROP, un attaccu deve esse capace di cercà spazii di memoria scrivibili inutilizati di l'applicazione host. L'attaccante usa sti lochi di memoria per injectà un quadru di stack falsu è per injectà un payload (shellcode). U fondu hè chì un enclave maliziusu ùn hè micca capaci di dumandà à l'applicazione host per assignà memoria per ellu stessu, ma invece pò abusu di a memoria digià attribuita da l'applicazione host. Sì, sicuru, riesce à truvà tali spazii senza colapsà l'enclave.

U cattivu porta sta ricerca sfruttendu un altru effetti secundariu di TSX. Prima, cum'è in u casu precedente, sonda l'indirizzu per a so esistenza, è poi verifica se a pagina chì currisponde à questu indirizzu hè scrivibile. Per fà questu, u cattivu utilizeghja u pirate di seguente: mette una funzione di scrittura in una transazzione TSX, è dopu chì hà finitu, ma prima chì hà finitu, abbanduneghja a transazzione (abortu esplicitu).

Fighjendu u codice di ritornu da una transazzione TSX, l'attaccu capisce s'ellu hè scrittu. S'ellu hè un "avortu esplicitu", u cattivu capisce chì l'arregistramentu saria successu s'ellu avia seguitu. Se a pagina hè di sola lettura, a transazzione finisce cù un errore altru da "abortu esplicitu".

SGX malware: cumu i villani sfruttanu a nova tecnulugia Intel per scopi diversi da quelli per quale hè statu cuncipitu

Questa manipulazione di TSX hà una altra funzione chì hè piacevule à u cattivu (in più di l'impossibilità di seguità à traversu i cuntatori di prestazione di hardware): postu chì tutti i cumandamenti di scrittura di memoria sò impegnati solu se a transazzione hè successu, furzà a transazzione à compie assicura chì a cellula di memoria sondata. resta invariatu.

Hack to redirect u flussu di cuntrollu

Quandu eseguisce un attaccu ROP da un enclave - à u cuntrariu di l'attacchi ROP tradiziunali - l'attaccante pò piglià u cuntrollu di u registru RIP senza sfruttà alcunu bug in u prugramma attaccatu (buffer overflow o qualcosa cusì). Un attaccu pò rimpiazzà direttamente u valore di u registru RIP guardatu nantu à a pila. In particulare, pò rimpiazzà u valore di stu registru cù a so propria catena ROP.

In ogni casu, se a catena ROP hè longa, allora a sovrascrittura di una grande parte di a pila di l'applicazione di l'ospiti pò purtà à a corruzzione di dati è u cumpurtamentu di u prugramma inespettatu. U cattivu, chì cerca di fà u so attaccu di manera secreta, ùn hè micca cuntentu di stu statu di l'affari. Dunque, crea un falsu quadru temporale di stack per ellu stessu è guarda a so catena ROP in questu. U quadru falsu di stack hè piazzatu in un locu di memoria scrivibile aleatoriu, lascendu a pila vera intacta.

SGX malware: cumu i villani sfruttanu a nova tecnulugia Intel per scopi diversi da quelli per quale hè statu cuncipitu

Chì facenu i trè pirate elencati sopra à dà à u cattivu ?

(1) Prima, l'enclave malicious through pirate l'indirizzi di sonda per vede s'ellu si ponu leghje, - cerca l'applicazione host per i gadget ROP abusibili.

SGX malware: cumu i villani sfruttanu a nova tecnulugia Intel per scopi diversi da quelli per quale hè statu cuncipitu

(2) Allora da pirate per pruvà l'indirizzi per a scrittura, - un enclave maliziusu identifica zoni in a memoria di l'applicazione host chì sò adattati per injecting a payload.

SGX malware: cumu i villani sfruttanu a nova tecnulugia Intel per scopi diversi da quelli per quale hè statu cuncipitu

(3) In seguitu, l'enclave crea una catena ROP da i gadgets scuperti in u passu (1) è injects sta catena in u stack di l'applicazione host.

SGX malware: cumu i villani sfruttanu a nova tecnulugia Intel per scopi diversi da quelli per quale hè statu cuncipitu

(4) Infine, quandu l'applicazione di l'ospite scontra a catena ROP creata in u passu precedente, a carica maliciosa cumencia à eseguisce - cù i privilegii di l'applicazione di l'ospite è a capacità di fà chjamate di sistema.

Cumu un cattivu usa questi pirate per creà ranzowari

Dopu chì l'applicazione di l'ospite trasferisce u cuntrollu à l'enclave attraversu unu di l'ECALL (senza sospettà chì questu enclave hè maliziusu), l'enclave maliziusu cerca di spaziu liberu in a memoria di l'applicazione host per injecting codice (pigliendu cum'è spazii liberi quelli sequenze di cellule). chì piena di zeri). Dopu à traversu pirate l'indirizzi di sonda per vede s'ellu si ponu leghje, - l'enclave cerca e pagine eseguibili in l'applicazione host è genera una catena ROP chì crea un novu schedariu chjamatu "RANSOM" in u repertoriu attuale (in un veru attaccu, l'enclave cripta i fugliali d'utilizatori esistenti) è mostra un missaghju di riscattu. À u listessu tempu, l'applicazione di l'ospite crede ingenuamente chì l'enclave hè solu aghjunghje dui numeri. Cosa hè questu in u codice?

Per facilità di percepzioni, introducemu qualchi mnemotecnica attraversu e definizione:

SGX malware: cumu i villani sfruttanu a nova tecnulugia Intel per scopi diversi da quelli per quale hè statu cuncipitu

Salvemu i valori originali di i registri RSP è RBP per restaurà u funziunamentu normale di l'applicazione host dopu avè eseguitu u payload:

SGX malware: cumu i villani sfruttanu a nova tecnulugia Intel per scopi diversi da quelli per quale hè statu cuncipitu

Cerchemu un quadru di stack adattatu (vede u codice da a sezione "hack for redirecting control flow").

Truvà i gadget ROP adattati:

SGX malware: cumu i villani sfruttanu a nova tecnulugia Intel per scopi diversi da quelli per quale hè statu cuncipitu

Truvà un locu per injectà u payload:

SGX malware: cumu i villani sfruttanu a nova tecnulugia Intel per scopi diversi da quelli per quale hè statu cuncipitu

Custruemu una catena ROP:

SGX malware: cumu i villani sfruttanu a nova tecnulugia Intel per scopi diversi da quelli per quale hè statu cuncipitu

Hè cusì chì a tecnulugia SGX d'Intel, pensata per contru à i prugrammi maliziusi, hè sfruttata da i villani per ottene scopi opposti.

Source: www.habr.com

Add a comment