Ce este CDR? Și de ce este important în cibersecuritatea modernă

Citește acum
Utilizăm inteligența artificială pentru traducerile site-urilor și, deși ne străduim să fim exacți, este posibil ca acestea să nu fie întotdeauna 100% precise. Apreciem înțelegerea dumneavoastră.

CVE-2023-20198 & CVE-2023-20273: De la solicitarea Web neautentificată la rădăcină pe IOS XE

de OPSWAT
Împărtășește această postare
Participanții la programul de burse OPSWAT

Rezumat

La sfârșitul anului 2023, cercetătorii în domeniul securității au descoperit o vulnerabilitate critică înlănțuită care afectează interfața web Cisco IOS XE, permițând atacatorilor neautentificați să obțină controlul complet asupra dispozitivelor afectate. Lanțul de atacuri combină două vulnerabilități de securitate - CVE-2023-20198 și CVE-2023-20273 - care, atunci când sunt exploatate împreună, conduc la executarea comenzilor la nivel de rădăcină pe gazda Linux care rulează IOS XE. Acest lucru permite preluarea completă a controlului asupra dispozitivului, accesul persistent și mișcarea laterală potențială în rețelele întreprinderilor.

  • CVE-2023-20198: Prezentă în versiunile Software Cisco IOS XE 16.0.x până la 17.9.x, această vulnerabilitate permite atacatorilor neautentificați să obțină acces inițial și să creeze un cont de nivel de privilegii 15 (administrator) prin intermediul interfeței web. Odată creat, atacatorul poate efectua orice acțiune administrativă pe dispozitiv, prezentând un risc de securitate sever.
  • CVE-2023-20273: Afectând aceleași versiuni de software, această vulnerabilitate permite utilizatorilor autentificați cu privilegii de nivel 15 să execute comenzi arbitrare cu privilegii de root pe sistemul de operare Linux subiacent printr-o eroare de injectare a comenzilor în componenta de gestionare a software-ului.

În timpul programului de bursă OPSWAT , bursierii noștri, Hoa X.Nguyen și Nhan Nguyen, au efectuat o analiză tehnică aprofundată a acestui lanț de atacuri. În cadrul cercetării noastre, am reprodus vulnerabilitățile pe un comutator Cisco Catalyst 9300-24T-E care rulează IOS XE 17.01, demonstrând modul în care defectele pot fi înlănțuite pentru a compromite complet sistemul în condiții reale.

Fond

Prezentare generală Cisco IOS XE

Cisco IOS XE este un sistem de operare de rețea modern și modular care echipează multe dintre platformele Cisco pentru întreprinderi - inclusiv routere, switch-uri și controlere wireless. Acesta îmbină funcționalitatea bogată a Cisco IOS clasic cu o arhitectură mai sigură, programabilă și bazată pe Linux, oferind administratorilor de rețea flexibilitate și performanță îmbunătățită.

La baza sa, IOS XE rulează ca un sistem de operare Linux care găzduiește procesul principal numit IOSd (IOS Daemon). Acest demon se ocupă de sarcinile tradiționale de rețea, cum ar fi rutarea, gestionarea CLI și controlul configurației. În IOS XE 17.01, binarul IOSd se află la adresa /usr/binos/bin/x86_64_crb_linux_iosd_ngwc-universalk9-ms.

Spre deosebire de sistemele Cisco tradiționale, utilizatorii IOS XE care se conectează prin SSH sunt plasați într-un shell restricționat al subsistemului IOSd, mai degrabă decât în mediul Linux de bază. Acest design izolează adevăratul acces la nivel de rădăcină al sistemului de operare, consolidând în mod semnificativ granița globală de securitate dintre interacțiunile utilizatorului și nucleul gazdei.

Niveluri de privilegii Cisco

Dispozitivele Cisco implementează un model ierarhic de privilegii pentru a controla permisiunile utilizatorilor:

  • Nivelul 0 - Acces de nivel zero: Acesta este cel mai restricționat nivel. De obicei, permite doar un set limitat de comenzi de bază, cum ar fi logout, enable, disable, help și exit.
  • Nivelul 1 - Modul EXEC utilizator: Acces implicit pentru autentificări standard, permițând vizualizarea de bază a sistemului, dar fără modificări de configurare.
  • Nivelul 15 - Modul EXEC privilegiat: Acesta este cel mai înalt nivel de privilegii și acordă control complet asupra dispozitivului. Utilizatorii de la acest nivel pot executa toate comenzile, inclusiv comenzile de configurare, și pot reîncărca dispozitivul.

Nivelurile intermediare (2-14) pot fi personalizate pentru a acorda permisiuni specifice. Privilegiile sunt moștenite, ceea ce înseamnă că utilizatorii de la nivelurile superioare dețin automat drepturile de la nivelurile inferioare.

Arhitectura interfeței web Cisco

Interfața web Cisco IOS XE oferă o interfață bazată pe browser pentru gestionarea și monitorizarea dispozitivelor - oferind funcții de configurare și diagnosticare fără a necesita acces la linia de comandă. pe plan intern, interfața web utilizează NGINX ca proxy middleware pentru a direcționa solicitările utilizatorului către diverse servicii interne, inclusiv Agentul de gestionare a serviciilor web (WSMA).

Componenta WSMA servește drept punte de comunicare între interfața web și demonul IOSd de bază, traducând acțiunile bazate pe web în comenzile de configurare IOS XE corespunzătoare.

Figura 2: Fluxul cererilor HTTP în cadrul IOS XE

Pentru a impune controlul accesului, fiecare solicitare este supusă autentificării bazate pe SOAP și verificării privilegiilor printr-un antet HTTP dedicat (Priv-Level), asigurându-se că numai utilizatorii autorizați pot efectua operațiuni privilegiate.

Figura 3: Exemplu de corp SOAP XML, cu nume de utilizator, parolă și comanda de executat

Analiză tehnică

CVE-2023-20198 - Ocolirea autentificării și escaladarea privilegiilor

Bursierii noștri au descoperit că vulnerabilitatea își are rădăcinile în punctul final HTTP al interfeței Web UI din Cisco IOS XE. La procesarea cererilor primite, interfața web transmite comenzile și permisiunile de utilizator asociate acestora către un punct final intern (/lua5), care sunt apoi direcționate de NGINX către unul dintre cele două gestionare WSMA - /webui_wsma_http sau /webui_wsma_https - în funcție de protocol.

Figura 4: Handler de analiză a comenzilor în codul sursă WebUI
Figura 5: Configurarea rutei NGINX, setarea antetului Priv-Level corespunzător și transmiterea către gestionarul IOSd respectiv

Analiza statică a binarului IOSd relevă, de asemenea, o configurație NGINX care include un handler de rezervă implicit:  

Figure 6: Default fallback nginx handler found in IOSd

Vulnerabilitatea provine din modul în care NGINX și IOSd gestionează codificarea URL. Ambele componente decodifică independent căile URL, permițând unui atacator să exploateze o ocolire a codării duble.

De exemplu, dacă /webui_wsma_https este trimis ca /%2577ebui_wsma_https, NGINX efectuează o singură decodare și vede /%77ebui_wsma_https(care nu se potrivește direct cu ruta internă protejată), astfel încât expediază cererea prin intermediul unui gestionar de rezervă mai puțin restrictiv. Atunci când cererea ajunge la backend-ul IOSd, IOSd efectuează o a doua decodare și rezolvă calea la /webui_wsma_https.

Figura 7: Lanț de codare dublă

Deoarece NGINX direcționează inițial această solicitare malformată utilizând gestionarul său implicit, acesta nu reușește să aplice logica normală de autentificare și control al accesului. Ca urmare, atacatorul poate injecta un antet Priv-Level falsificat, atribuindu-și privilegii de nivel administrator (15). Combinată cu o sarcină utilă SOAP XML care conține o comandă de creare a unui nou utilizator, aceasta duce la crearea silențioasă a unui cont local cu privilegii ridicate.

Figura 8: Cont de atacator cu privilegii ridicate (nivel 15) creat cu succes cu o cerere HTTP personalizată

Această exploatare nu necesită autentificare prealabilă și oferă atacatorului controlul complet al configurației dispozitivului prin intermediul interfeței web - stabilind prima etapă a lanțului de atac.

CVE-2023-20273 - Injecție de comandă în gestionarea Software

Odată autentificat cu contul de administrator nou creat, atacatorul poate exploata CVE-2023-20273, o vulnerabilitate de injectare de comandă în componenta de gestionare a software-ului (/webui/rest/softwareMgmt/*). Acest punct final este destinat administratorilor legitimi pentru a instala sau actualiza pachete software pe dispozitiv.

Defecțiunea provine din logica de validare a intrării în funcția validateSmuRequest(req), care apelează validator.validateIPv4IPv6HostNameAddress(req.ipaddress) pentru a verifica adresa IP furnizată în cerere. Această etapă de validare este concepută pentru a se asigura că adresa furnizată este formatată corect și poate fi utilizată în siguranță.

În cadrul validateIPv4IPv6HostNameAddress, validarea se bazează pe rutina utils.isIPv6Address(ip) pentru a evalua conformitatea sintaxei IPv6. Această funcție încearcă să analizeze datele de intrare prin divizarea lor pe două puncte (:) și evaluarea fiecărui segment cu o expresie regulată menită să respingă modele hexazecimale invalide sau valori în afara intervalului. Defectul de punere în aplicare constă în această expresie regulată: datorită unui cuantificator * prea permisiv, aceasta se potrivește cu orice intrare, permițând efectiv valorilor malformate sau rău intenționate să treacă validarea fără a fi verificate.

În consecință, datele controlate de atacator sunt acceptate ca fiind valide și trec în logica din aval, unde sunt utilizate în construcția comenzilor. Valoarea adresei IP neîncrezătoare este utilizată în cele din urmă în cadrul funcției runPexecCommand() pentru a construi o comandă de sistem care inițiază o cerere TFTP. Deoarece această operațiune are loc fără validarea sau scăparea intrării, un atacator poate injecta comenzi arbitrare în proces, ducând la executarea comenzii cu privilegii ridicate și la compromiterea completă a dispozitivului Cisco.

Dovada de concept (PoC)

În timpul programului de bursă OPSWAT , bursierii noștri Hoa X. Nguyen și Nhan Nguyen au reprodus exploatarea în lanț într-un laborator controlat, izolat prin aer, pe un Cisco Catalyst 9300-24T-E care rulează IOS XE 17.01. Secvența de exploatare poate fi rezumată prin următoarele etape:

Figura 9: Lanțul final de exploatare de la un atacator neautorizat care utilizează CVE-2023-20198 și CVE-2023-20273
  1. Cerere cu cod dublu: trimiteți un POST special creat către o cale internă cu cod dublu (de exemplu, /%2577ebui_wsma_https) care este direcționată prin proxy fallback și conține un antet Priv-Level falsificat și o sarcină utilă SOAP de creare a contului.
  2. Obțineți o sesiune de administrare: conectați-vă cu contul creat și colectați jetoane de sesiune/CSRF.
  3. Încărcați sarcina utilă: utilizați interfața web de încărcare pentru a plasa attacker_shell.sh pe dispozitiv (acțiune exclusivă pentru administratori).
  4. Executare prin SMU: trimiteți o cerere SMU cu o adresă ipad falsificată (de exemplu, 100:100:100:$(/bin/sh /bootflash/attacker_shell.sh)); validarea este ocolită și scriptul încărcat se execută ca root.
Figura 10: Obținerea cu succes a privilegiilor de root pe dispozitivul Cisco țintă

Remediere

Cisco a lansat versiuni corectate ale Software Cisco IOS XE care abordează atât CVE-2023-20198, cât și CVE-2023-20273. Toate organizațiile care operează versiunile afectate de la 16.0.x până la 17.9.x trebuie să actualizeze imediat la cea mai recentă versiune corectată, așa cum se subliniază în avizul oficial de securitate al Cisco. Aplicarea acestor actualizări elimină efectiv vulnerabilitățile subiacente și previne escaladarea neautorizată a privilegiilor sau injectarea de comenzi prin interfața web.

Pentru mediile în care nu este posibilă o actualizare imediată, administratorii ar trebui să restricționeze sau să dezactiveze accesul la interfața web din rețele care nu sunt de încredere, să impună controale stricte de autentificare pentru interfețele administrative și să monitorizeze continuu comportamentul neobișnuit al sistemului, cum ar fi crearea neautorizată de conturi sau modificări anormale ale configurației.

Pentru a consolida reziliența cibernetică generală, organizațiile pot completa patch-urile furnizorilor cu platforma MetaDefender de laOPSWAT, un cadru de securitate unificat conceput pentru a proteja infrastructura critică prin detectarea și prevenirea amenințărilor în fișiere, dispozitive și fluxuri de date. Integrarea MetaDefender în fluxurile de lucru operaționale și de rețea sporește vizibilitatea, asigură o inspecție mai profundă a amenințărilor și oferă o protecție suplimentară împotriva potențialelor încercări de exploatare care vizează sistemele de gestionare.

Prin combinarea la timp a actualizărilor Cisco, a controalelor de acces robuste și a unei strategii de apărare pe mai multe niveluri, susținută de platforma MetaDefender , organizațiile pot reduce semnificativ expunerea la lanțuri de exploatări similare și pot menține o poziție de securitate mai puternică și mai rezistentă.

Rămâneți la curent cu OPSWAT!

Înscrieți-vă astăzi pentru a primi cele mai recente actualizări ale companiei, povești, informații despre evenimente și multe altele.