Atacuri cibernetice bazate pe IA: Cum să detectați, să preveniți și să vă apărați împotriva amenințărilor inteligente

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ă.

Analizarea vulnerabilității CVE-2023-33733 cu MetaDefender Core

de OPSWAT
Împărtășește această postare
Cercetătorii principali în domeniul securității discută despre vulnerabilitatea CVE-2023-33733
Participanții la programul de burse OPSWAT

Creșterea rapidă a tehnologiei a creat o cerere mare de dezvoltatori calificați. Software-ul open-source (OSS) a devenit un instrument vital pentru această forță de muncă în creștere. Sute de mii de pachete OSS bine stabilite există în prezent în diferite limbaje de programare. Peste 90% dintre dezvoltatori utilizează aceste componente open-source în cadrul aplicațiilor lor proprietare, ceea ce evidențiază eficiența și valoarea propusă de OSS. Accentuând și mai mult importanța sa, se preconizează că piața globală a OSS va ajunge la 80,7 miliarde de dolari până în 2030, reflectând o rată de creștere anuală de 16,7%. 

Cu toate acestea, adoptarea pe scară largă a OSS introduce, de asemenea, un nou nivel de complexitate: vulnerabilitățile de securitate. Numărul mare de componente OSS interconectate creează o suprafață de atac mai largă pe care actorii rău intenționați o pot exploata. Gestionarea dependențelor între diferitele pachete OSS poate fi complexă, ceea ce face dificilă identificarea și remedierea promptă a vulnerabilităților. În plus, securitatea OSS se bazează adesea pe vigilența și contribuțiile comunității dezvoltatorilor. Acest lucru poate duce la întârzieri în remedierea vulnerabilităților, în special pentru proiectele mai puțin populare.  

În acest articol, bursierii absolvenți OPSWAT examinează CVE-2023-33733, un defect de securitate descoperit în populara bibliotecă open-source ReportLab. Analiza lor este combinată cu un atac simulat care utilizează MetaDefender Core cu software-ul său Software Bill of Materials (SBOM) pentru a identifica vulnerabilitățile din dependențele unei aplicații, inclusiv biblioteca vulnerabilă ReportLab. 

Introducerea bibliotecii Reportlab

Ilustrație ReportLab

ReportLab, o bibliotecă Python puternică și open-source, permite utilizatorilor să genereze PDF-uri bogate în funcții din codul Python. Aceasta oferă dezvoltatorilor o combinație câștigătoare: flexibilitate, ușurință de utilizare și opțiuni extinse de personalizare pentru crearea de documente dinamice. Biblioteca oferă dezvoltatorilor un control sporit asupra PDF-urilor lor, permițând încorporarea precisă a textului, imaginilor, tabelelor și graficelor cu o precizie meticuloasă. Acest nivel de personalizare face din ReportLab un instrument valoros pentru generarea de documente dinamice, cum ar fi facturile și rapoartele bazate pe date. 

CVE-2023-33733 Context

CVE-2023-33733 evidențiază o vulnerabilitate de securitate în cadrul bibliotecii ReportLab, care afectează mai multe versiuni ale bibliotecii ReportLab.

  • Versiunile ReportLab anterioare versiunii 3.6.13 s-au dovedit a fi vulnerabile la eludarea sandbox-ului, în special în cadrul "rl_safe_eval funcție. Exploatarea a fost realizată prin intermediul atributului color al etichetelor HTML, care a fost evaluat direct ca o expresie Python utilizând funcția eval() ceea ce duce în cele din urmă la executarea codului de la distanță. 
  • Analiștii NVD au atribuit un scor CVSS de 7.8 HIGH pentru CVE-2023-33733. 
Severitatea și metricile CVSS 3.x arată un scor de bază de 7,8 pentru CVE-2023-33733, clasificat ca risc ridicat.

Analiza vulnerabilității de securitate ReportLab

OPSWAT Graduate Fellows au efectuat o analiză aprofundată a fluxului de lucru ReportLab, identificând cauza principală a vulnerabilității de securitate CVE-2023-33733.

Fluxul de lucru al bibliotecii ReportLab 

ReportLab permite dezvoltatorilor să creeze PDF-uri în mod eficient. Biblioteca permite integrarea fără efort: importați biblioteca, definiți conținutul HTML și generați PDF-ul într-o singură linie de cod utilizând funcția rezultat. 

Cod Python care demonstrează crearea unui șablon de document simplu utilizând biblioteca ReportLab

Bursierii noștri absolvenți au descoperit un proces în 5 pași pentru crearea PDF-urilor din HTML cu ReportLab. 

Diagrama care ilustrează fluxul procesului de la HTML de intrare la PDF de ieșire utilizând ReportLab și funcțiile asociate

În cadrul procesului în 5 pași de creare a PDF-urilor din HTML cu ReportLab, trei procese principale ies în evidență: procesarea paragrafelor, procesarea paraparagrafelor și procesul de manipulare HTML. 

Captură de ecran a unui proces de depanare care evidențiază manipularea HTML, procesul de paragraf și procesul paraparser într-un script Python

Așa cum este ilustrat în figura de mai sus, procesul de manipulare HTML din cadrul ReportLab utilizează eval() în special pe atributul de culoare. Servind drept punct focal pentru executarea codului malițios, fișierul eval() determină cercetătorii să încerce să obțină controlul asupra intrărilor sale pentru a exploata aplicația. Cu toate acestea, acest lucru este dificil din cauza sandbox-ului impus de __rl_safe_eval__ în cadrul ReportLab. 

Fragment de cod care prezintă o funcție de evaluare sigură cu verificări pentru metodele permise și timpii de așteptare
Vulnerabilitate de securitate în analiza ReportLab 

ReportLab a implementat un sandbox numit __rl_safe_eval__. Acest sandbox exclude toate funcțiile Python integrate și include mai multe funcții integrate suprapuse. Această restricție permite executarea codului sigur în cadrul bibliotecii, împiedicând în același timp accesul la funcții și biblioteci periculoase care ar putea fi utilizate în scopuri rău intenționate (de exemplu, accesul la sistemul de fișiere, comunicarea în rețea). 

The rl_safe_eval implementează diverse condiții pentru a se asigura că atributul invocat este sigur înainte de a utiliza funcția integrată Python getattr() pentru a o extrage și a returna rezultatul. 

Exemplu de cod care demonstrează o funcție care verifică dacă numele metodelor sunt permise într-un context de securitate

Funcția safe eval urmărește să securizeze mediul prin excluderea funcțiilor periculoase și prevenirea acțiunilor rău intenționate. Cu toate acestea, dacă se găsește o modalitate de a ocoli condițiile sale și de a accesa o funcție integrată puternică, aceasta ar putea fi exploatată.  

Pornind de la această idee, cercetătorii în domeniul securității au încercat să ocolească restricțiile. Inițial, ei au exploatat injectarea de obiecte utilizând tip() pentru a construi un obiect și a-i redefini atributele și metodele pentru a eluda verificările din cadrul __rl_safe_eval__. În plus, deoarece biblioteca ReportLab suprascrie funcțiile încorporate și le face globale în contextul eval, cercetătorul ar putea profita de această implementare pentru a accesa una dintre funcțiile încorporate originale. Acest lucru le-ar putea permite să ocolească mediul sandbox și să execute coduri malițioase. 

Fragment de cod care demonstrează redefinirea funcțiilor integrate

Sarcina utilă este pregătită după cum urmează: 

Exemplu de cod care prezintă o clasă atacator și exploatarea unui atribut global

Cu toate acestea, executarea unei expresii multilinie într-un context eval nu este posibilă. Cu toate acestea, poate fi utilizat un truc de înțelegere a listei, iar sarcina utilă pentru exploatarea acestui CVE este următoarea: 

Structură de cod complexă care ilustrează exploatarea CVE-2023-33733

RaportLab Exploatare Simulare 

Cercetătorii au publicat o probă de concept (POC) pentru CVE-2023-33733, demonstrând că aplicațiile construite cu versiuni vulnerabile ale ReportLab ar putea fi susceptibile la atacuri cibernetice. Pentru a evalua această amenințare potențială, bursierii absolvenți OSPWAT au efectuat un atac simulat asupra unei aplicații web. Aceștia au utilizat MetaDefender Core cu capabilități SBOM pentru a identifica vulnerabilitățile de securitate din cadrul dependențelor software ale aplicației, inclusiv prezența bibliotecii ReportLab afectate. 

Simularea vulnerabilității de securitate 

Pentru a simula această exploatare ca un scenariu real, bursierii absolvenți OPSWAT au dezvoltat o aplicație web utilizând Python și versiunea vulnerabilă a bibliotecii ReportLab. Această aplicație imită un caz tipic de utilizare: utilizatorii pot încărca un fișier HTML și îl pot converti într-un fișier PDF. 

Captură de ecran a interfeței unui încărcător de fișiere malițios care solicită căutarea unui fișier pentru încărcare

Un atacator ar putea crea un fișier HTML malițios care să conțină cod conceput pentru a exploata 33733. Acest cod ar putea ocoli sandbox-ul și compromite serverul web prin declanșarea unui reverse shell prin eval() funcție.  

Fragment de cod care arată un atac de injectare de comenzi în desfășurare

O încărcare reușită a unui fișier malițios ar permite atacatorului să preia controlul asupra serverului de aplicații datorită vulnerabilității din biblioteca ReportLab depășită. 

Uploader de fișiere rău intenționat care afișează evil.html încărcat
Terminal care afișează o cochilie inversă activă

Importanța SBOM și a securității proactive 

Cercetarea OPSWAT Graduate Fellows privind CVE-2023-33733 subliniază potențialele riscuri de securitate asociate cu OSS. În timp ce OSS oferă beneficii incontestabile în ceea ce privește eficiența dezvoltării și rentabilitatea, vulnerabilități precum cea găsită în ReportLab pot expune organizațiile la atacuri cibernetice. 

OPSWAT SBOM 

OPSWAT SBOM securizează lanțul de aprovizionare cu software prin furnizarea unui inventar cuprinzător al componentelor pentru codul sursă și containere. Acesta suportă peste 10 limbaje, inclusiv Java, JavaScript, Go, PHP și Python, peste 5 milioane de componente software open-source de la terți și utilizează o bază de date cu peste 17 000 de vulnerabilități provenite din National Vulnerability Database (NVD) și GitHub (GHSA). 

Tabloul de bord de securitate MetaDefender Core afișează un fișier blocat și analiza vulnerabilității acestuia

OPSWAT MetaDefender Core, cu capacitățile sale integrate SBOM, permite organizațiilor să abordeze proactiv aceste riscuri. MetaDefender Core scanează aplicațiile software și dependențele, identificând prezența vulnerabilităților cunoscute, precum CVE-2023-33733, în cadrul componentelor enumerate. Acest lucru permite dezvoltatorilor și echipelor de securitate să prioritizeze eforturile de patch-uri și să atenueze riscurile de securitate înainte ca acestea să poată fi exploatate. 

Tabloul de bord de securitate MetaDefender Core prezintă rezultatele detaliate ale scanării vulnerabilităților pentru CVE-2023-33733

Gânduri de încheiere

Cercetarea OPSWAT Graduate Fellows privind vulnerabilitatea ReportLab (CVE-2023-33733) reamintește importanța măsurilor de securitate proactive în ciclul de viață al dezvoltării software. Prin utilizarea unor instrumente precum OPSWAT MetaDefender Core, organizațiile pot obține informații esențiale despre dependențele lor software și pot identifica vulnerabilitățile potențiale înainte ca acestea să fie exploatate de atacatori. 

În plus, OPSWAT oferă o suită completă de soluții de securitate cibernetică care merg dincolo de scanarea vulnerabilităților. Aceste soluții oferă detectarea amenințărilor în timp real, securitatea datelor și protecția punctelor finale, protejând organizațiile de o gamă largă de amenințări cibernetice. Prin adoptarea unei abordări de securitate stratificată care include instrumente precum MetaDefender Core, organizațiile pot profita de avantajele OSS, minimizând în același timp riscurile de securitate asociate. 

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.