Acest document oferă o descriere a tuturor vulnerabilităților detectate și exploatate în cele 8 modele populare de modem 3G și 4G disponibile în Rusia și în întreaga lume.
echipament
Au fost luate în considerare 8 modemuri ale următorilor producători:
- Huawei (2 modemuri diferite și 1 router)
- Gemtek (1 modem și 1 router)
- Quanta (2 modemuri),
- ZTE (1 modem).
Evident, nu toate modemurile au fost livrate cu firmware vulnerabil: unele dintre defectele din firmware au fost permise atunci când firmware-ul a fost personalizat de operatorul celular. Deși astfel de semnături sugerează câteva gânduri:
Apoi, pentru comoditate, toate echipamentele de rețea - atât modemurile cât și routerele - vor fi numite "modemuri".
Statistici privind modemurile vulnerabile
Vulnerabilitățile găsite
În toate modelele examinate, au existat câteva vulnerabilități critice care au condus la un compromis complet al sistemului. Practic, toate acestea pot fi operate de la distanță (consultați tabelul general pentru modemuri). Descrierea vulnerabilităților detectate, clasificate după severitate:
1. Executarea codului de la distanță în scripturi web, 5 dispozitive (RCE)
Toate serverele Web modem funcționează pe baza unor proceduri simple de CGI-script-uri, care sunt aproape niciodată nu a avut loc o filtrare adecvată (cu excepția celor pentru modemuri Huawei, și apoi, după câteva actualizări, după anunțarea de vulnerabilități).
Combinația acestor trei factori dă un rezultat dezamăgitor: mai mult de 60% dintre modemuri sunt vulnerabile la executarea codului la distanță. Și firmware-ul actualizat fără această vulnerabilitate poate fi obținut numai pentru modemurile Huawei (există descrieri de vulnerabilități publice): vulnerabilitățile rămase sunt încă considerate 0 zile.
2. Modificarea arbitrară a firmware-ului, 6 dispozitive (atacuri de integritate)
Numai trei modemuri au protejat criptografic firmware-ul de la modificare. Două modemuri operate pe același algoritm utilizând RSA asimetric criptat în modul de semnătură digitală a SHA1 de control, al treilea modem a criptat conținutul firmware-ului cu cifrul de flux RC4.
Pe toate implementările de algoritmi criptografici ar putea face un atac, ceea ce duce la o încălcare a integrității și a vieții private: în primul caz, putem modifica firmware-ul, introducerea în el un cod arbitrar, în al doilea caz, din cauza punctelor slabe ale punerii în aplicare a algoritmului a fost capabil de a elimina cheia și de a determina algoritmul de criptare, ceea ce conduce, de asemenea, posibil schimba în mod arbitrar conținutul firmware-ului.
Trei modemuri nu au fost protejate de modificarea firmware-ului, însă este necesară actualizarea accesului local la interfețe COM.
Celelalte două modemuri au oferit posibilitatea de a se actualiza numai prin intermediul rețelei operatorului utilizând tehnologia FOTA (Firmware Over-The-Air).
3. Falsificarea site-urilor de cereri, 5 dispozitive (CSRF)
Atacurile CSRF pot fi utilizate pentru diferite sarcini, dar în primul rând pentru descărcarea de la distanță a firmware-ului modificat și introducerea codului arbitrar. O apărare eficientă împotriva acestui atac este utilizarea jetoanelor unice pentru fiecare solicitare.
4. Scripting cross-site, 4 dispozitive (XSS)
aplicarea de suprafață a acestor atacuri sunt, de asemenea, suficient de largi - de la infecție nod la alții interceptarea SMS-uri, dar în studiul nostru, utilizarea lor principal - aceasta este, de asemenea, modificat de încărcare a firmware-ului în audit și ocolind antiCSRF de același origine politica.
Vectorii de atac
1. Identificarea
2. Implementarea codului
Această etapă deja descrise în detaliu în secțiunea anterioară, la punctele 1 și 2. Pentru a introduce acest cod poate fi fie printr-o vulnerabilitate pentru a executa cod arbitrar în script-ul web sau prin actualizarea firmware-ul infectat. Prima modalitate prin care am putea pătrunde în 5 modemuri.
Să descriem în detaliu vectorii pentru realizarea celei de-a doua metode.
Două modemuri folosesc același algoritm pentru a asigura integritatea EEPROM: RSA cheie de criptare asimetrică a unei sume hash a fost realizată folosind biblioteca SHA1 OpenSSL. Auditul a fost efectuat corect: prin descărcarea firmware-ul, care este în esență o arhivă, un server de web extrage fișierul principal două - fișierul pentru a indica dimensiunea datelor scanate, și un fișier cu suma hash semnată a acestor date. Mai mult, luând cheia publică a sistemului de fișiere, a verifica script-ul a apelat la funcțiile bibliotecii OpenSSL pentru a decripta semnătura și în continuare comparat suma hash, iar în cazul coincidență a firmware-ului instalat. Algoritmul de compresie firmware are o singularitate: la o arhivă existentă a fost posibil pentru a adăuga mai multe fișiere cu același nume, în același timp, nu se schimba la octetul de pornire al arhivei, și când despachetarea firmware-ul a fost înlocuit mai târziu fișier mai devreme. Din acest motiv este foarte usor de a schimba conținutul firmware-ului nu se va schimba integritatea datelor scanate.
În cel de-al treilea modem, firmware-ul a fost criptat folosind algoritmul RC4 cu o gamă constantă. Deoarece trei versiuni diferite ale firmware-ului, puteți obține câteva bytes de text simplu a fost disponibil pe internet - în acele locuri în care, într-unul dintre fișierele firmware-ului necriptat localizate 0x00 bytes.
Sprijinul și asistența în atacurile asupra protocoalelor criptografice a fost furnizat de Dmitry Sklyarov, criptanalizator onorat și inginer invers al tehnologiilor pozitive
Mai departe este posibil să se utilizeze CSRF HTML5 și funcțiile de atac pentru a transmite multipart / form-date sau atacul XSS, dacă cererea este protejată de CSRF (pentru modem Huawei) pentru încărcarea de la distanță. Doar trei modemuri Huawei au fost protejate de CSRF, iar XSS ar putea fi folosit pentru a ocoli această protecție. În toate celelalte cazuri, descărcarea se poate face folosind codul HTML5 plasat pe o pagină specială.
Modemurile Gemtek au folosit algoritmul pentru actualizarea firmware-ului printr-un utilitar special instalat pe computer. În acest caz, firmware-ul a fost descărcat printr-o conexiune la Internet pe gazdă prin protocolul HTTP. Apoi am folosit mecanismul de monitorizare a integrității firmware-ului descărcat cu ajutorul sumelor de control, descărcate și de pe server. Nu a fost posibil să verificați corectitudinea acestui script.
Cu toate acestea, pentru a spera că același producător care verifică incorect integritatea la descărcarea la modemuri, protejează bine integritatea firmware - nu merită.
3. Interceptarea datelor
Acum avem abilitatea de a executa codul arbitrar pe modem. Apoi, trebuie să faceți trei lucruri: să determinați locația modemului (mai târziu va fi clar de ce), să obțineți posibilitatea de a intercepta traficul SMS și HTTP.
Cel mai simplu mod de a localiza - găsi un identificator de stație de bază (CellID). Apoi, cunoscând MCC și MNC a operatorului poate determina cu exactitate poziția apărătorului, cu ajutorul bazelor de date publice, cum ar fi opencellid.org. Un alt mod - utilizați modem Wi-Fi-Card încorporat pentru scanarea rețelei din apropiere, și de a determina locația victimei (sau pentru a determina posibila zona sa de locație - pentru că o stație de bază poate funcționa pe o rază suficient de mare de acoperire). CellID am fost în stare să „obține“ în cele 6 modemuri, Wi-Fi a fost disponibil în două modemuri. Pentru unul dintre modem-urile trebuie să recompilați și să încărcați noi drivere pentru placa de rețea: curentul permis să lucreze numai în modul ad-hoc, și în acest mod, este imposibil de a scana un punct de acces din apropiere.
Trappingul traficului este mai interesant. Acesta poate fi implementat în mai multe moduri: prin schimbarea setărilor serverului DNS de pe modem și prin schimbarea gateway-ului de pe modem la interfața Wi-Fi și conectarea la punctul de acces activat anterior. Prima modalitate este, desigur, mai simplă, de a schimba setările în acest caz timp de 10 secunde: acestea sunt, de regulă, și în sistemul de fișiere; pretutindeni, cu excepția unui modem, a fost posibil. A doua opțiune a fost considerată pur teoretic: sarcina era să modifice modul de carte de rețea de la ad hoc la activ, să se conecteze la un punct de acces străin și, de asemenea, să schimbe rutarea pe modem.
Nu putem intercepta doar traficul HTTP. Prin implementarea și rularea pur și simplu a codului VBS într-o pagină HTML, puteți adăuga certificatul dvs. la autorități de certificare rădăcină de încredere și puteți rula cu succes MITM:
4. Forjarea unei cartele SIM și interceptarea traficului 2G
Detalii despre metodele de atacare a aplicațiilor pe cartela SIM sunt descrise în lucrările lui Karsten Nohl (Karsten Nohl), precum și în studiul "#root prin SMS". Încă mai trebuie să trimitem mesaje binare pe cartele SIM, deoarece nu am putut să-i învățăm pe modem să trimită comenzi prin intermediul protocolului APDU către aplicațiile de pe cartela SIM.
Traducem modemul în modul de diagnosticare
Scriptul PowerShell pentru trimiterea de mesaje binare
vector de atac Următorul care poate fi utilizat în combinație cu geolocalizării precisă sub atac, - utilizarea FakeBTS. Dacă știm destul de exact locația victimei, precum și de IMSI, putem folosi o stație de bază fals în vecinătate, și să aștepte până când se conectează la noi, sau dacă putem forța stația de bază (această caracteristică este disponibilă pentru 5 dispozitive). În cazul succesului, puteți trimite SMS binar la o cartelă SIM atașată fără restricții din partea operatorului.
5. Infecția stației de lucru
După ce am pătruns în modem, suntem limitați în vectori de atacuri asupra abonatului la telecomunicații, dar dacă infectăm calculatorul la care este conectat modemul, obținem imediat posibilități nelimitate de a fura și intercepta date în acest computer.
- CD-ROM-ul virtual. Aproape toate modemurile au o imagine virtuală a discului, care este conectată în prima etapă pentru a instala drivere. Este necesar să înlocuiți această imagine și să o forțați să fie montat obligatoriu.
- VBS, descărcați-vă. Introducerea codului executabil în corpul HTML-pagini sau de descărcări forțată a fișierelor executabile sub masca de „actualizare“ sau de instrumente de diagnosticare.
- Browser 0 zile. De exemplu, am folosit Adobe Flash 0 zile, găsită în arhivele echipei Hacking.
- Software-ul client vulnerabil. Unul dintre operatorii sunt furnizate cu software-ul de diagnosticare vulnerabil modem care permite să execute cod arbitrar pe un computer pe care rulează OS X și Windows. Referință: pentru găsirea acestei vulnerabilități vă mulțumesc foarte mult lui Mikhail Firstov de la HeadLight Security.
Rularea unui cod arbitrar pe software-ul client al modemului
6. Atacurile orientate (APT)
După ce ați infectat modemul și gazda, este necesar să obțineți într-un fel un punct de sprijin în sisteme. În modem este necesar să salvați în autoloading chiar și după ce modemul este oprit și pentru a preveni actualizările firmware-ului ulterior. Într-un computer infectat, este util să detectați și să infectați alte modemuri vulnerabile imediat ce acestea sunt conectate la computer. Printre altele, este posibil să infectați majoritatea dispozitivelor direct în salonul de comunicații, în timpul "verificării" dispozitivului.
7. Opțional
Considerat ca un vector pentru a avea acces la contul personal al operatorului prin trimiterea unei cereri de USSD și resetarea parolei prin SMS.
Acest vector a fost afișat la prezentarea "#root prin SMS". Pentru exploatare, a fost folosit un atac XSS, care ar putea fi implementat prin trimiterea de SMS-uri. Cu toate acestea, acest lucru este posibil și în modemurile în care este posibil să se citească SMS utilizând RCE.
Rezultatul operării XSS
Ce recomand pentru clienții care lucrează în mod constant cu astfel de dispozitive? Cele mai protejate până în prezent sunt modemurile Huawei, cu condiția să fie instalat ultimul firmware. Este singura companie care oferă firmware-ul în sine (doar operatorii au posibilitatea de a adăuga elemente vizuale pe și în afara unuia sau alt set de funcții). În plus, spre deosebire de altele, Huawei corectează în mod regulat vulnerabilitățile care se găsesc în software-ul său.
modem-uri:
Dezvăluirea informațiilor
Deși au trecut 90 de zile de la notificarea operatorilor de telecomunicații, multe dintre vulnerabilități au rămas neacoperite.
Mulțumiri pentru asistență și participare la studiu: Alexey Osipov, Dmitri Sklyarov, Kirill Nesterov, Mikhail Firstov, echipa SCADA Strangelove