KI-gestützte Cyberangriffe: Wie man intelligente Bedrohungen erkennt, verhindert und abwehrt

Jetzt lesen
Wir verwenden künstliche Intelligenz für Website-Übersetzungen, und obwohl wir uns um Genauigkeit bemühen, kann es sein, dass sie nicht immer 100%ig präzise sind. Wir danken Ihnen für Ihr Verständnis.

Analysieren der Sicherheitsanfälligkeit CVE-2023-33733 mit MetaDefender Core

von OPSWAT
Jetzt teilen
Führende Sicherheitsforscher diskutieren über die Sicherheitslücke CVE-2023-33733
Teilnehmer des OPSWAT

Der rasante Aufstieg der Technologie hat zu einem hohen Bedarf an qualifizierten Entwicklern geführt. Open-Source-Software (OSS) ist zu einem unverzichtbaren Werkzeug für diese wachsende Zahl von Arbeitskräften geworden. Es gibt inzwischen Hunderttausende gut eingeführter OSS-Pakete in verschiedenen Programmiersprachen. Über 90 % der Entwickler setzen diese Open-Source-Komponenten in ihren eigenen Anwendungen ein, was die Effizienz und den Wert von OSS unterstreicht. Um seine Bedeutung weiter zu unterstreichen, wird erwartet, dass der weltweite OSS-Markt bis 2030 80,7 Milliarden Dollar erreichen wird, was einer prognostizierten Wachstumsrate von 16,7 % jährlich entspricht. 

Die weit verbreitete Einführung von OSS bringt jedoch auch eine neue Ebene der Komplexität mit sich: Sicherheitslücken. Die riesige Anzahl miteinander verbundener OSS-Komponenten schafft eine größere Angriffsfläche für böswillige Akteure, die sie ausnutzen können. Die Verwaltung von Abhängigkeiten zwischen verschiedenen OSS-Paketen kann komplex sein, was es schwierig macht, Schwachstellen rechtzeitig zu erkennen und zu beheben. Außerdem hängt die Sicherheit von OSS oft von der Wachsamkeit und den Beiträgen der Entwicklergemeinschaft ab. Dies kann zu Verzögerungen bei der Behebung von Schwachstellen führen, insbesondere bei weniger populären Projekten.  

In diesem Artikel untersuchen die OPSWAT Graduate Fellows CVE-2023-33733, eine Sicherheitslücke, die in der beliebten Open-Source-Bibliothek ReportLab entdeckt wurde. Ihre Analyse ist mit einem simulierten Angriff gekoppelt, der den MetaDefender Core mit seiner Software Bill of Materials (SBOM) Fähigkeiten, um Schwachstellen in den Abhängigkeiten einer Anwendung zu identifizieren, einschließlich der verwundbaren ReportLab-Bibliothek. 

Reportlab Bibliothek Einführung

ReportLab Illustration

ReportLab, eine leistungsstarke und quelloffene Python-Bibliothek, ermöglicht es Anwendern, funktionsreiche PDFs aus Python-Code zu erzeugen. Sie bietet Entwicklern eine überzeugende Kombination: Flexibilität, Benutzerfreundlichkeit und umfangreiche Anpassungsoptionen für die Erstellung dynamischer Dokumente. Die Bibliothek gibt Entwicklern eine erweiterte Kontrolle über ihre PDFs und ermöglicht die präzise Einbindung von Text, Bildern, Tabellen und Diagrammen mit äußerster Präzision. Diese Anpassungsmöglichkeiten machen ReportLab zu einem wertvollen Werkzeug für die Erstellung dynamischer Dokumente wie Rechnungen und datengesteuerte Berichte. 

CVE-2023-33733 Hintergrund

CVE-2023-33733 weist auf eine Sicherheitslücke innerhalb der ReportLab-Bibliothek hin, die sich auf mehrere Versionen der ReportLab-Bibliothek auswirkt.

  • ReportLab-Versionen vor Version 3.6.13 wurden als anfällig für die Umgehung der Sandbox befunden, insbesondere innerhalb der rl_safe_eval' Funktion. Die Ausnutzung erfolgte über das Farbattribut von HTML-Tags, das direkt als Python-Ausdruck mit der Funktion eval() Funktion, was letztendlich zur Remotecodeausführung führt. 
  • Die NVD-Analysten haben CVE-2023-33733 einen CVSS-Score von 7,8 HIGH zugewiesen. 
CVSS 3.x Schweregrad und Metriken zeigen einen Basiswert von 7,8 für CVE-2023-33733, der als hohes Risiko eingestuft wird.

Analyse der ReportLab-Sicherheitsschwachstelle

OPSWAT Graduate Fellows führten eine tiefgreifende Analyse des ReportLab-Workflows durch und identifizierten die Ursache für die Sicherheitslücke CVE-2023-33733.

Der Arbeitsablauf der ReportLab-Bibliothek 

ReportLab ermöglicht es Entwicklern, PDFs effizient zu erstellen. Die Bibliothek ermöglicht eine mühelose Integration: Importieren Sie die Bibliothek, definieren Sie den HTML-Inhalt und erzeugen Sie das PDF in einer einzigen Codezeile mit der Ergebnisfunktion. 

Python-Code, der die Erstellung einer einfachen Dokumentvorlage mit der ReportLab-Bibliothek demonstriert

Unsere Stipendiaten haben einen 5-Schritte-Prozess für die Erstellung von PDFs aus HTML mit ReportLab aufgedeckt. 

Diagramm zur Veranschaulichung des Prozessablaufs von der HTML-Eingabe bis zur PDF-Ausgabe unter Verwendung von ReportLab und zugehörigen Funktionen

Innerhalb des 5-stufigen Prozesses zur Erstellung von PDFs aus HTML mit ReportLab stechen drei Hauptprozesse hervor: die Absatzverarbeitung, die Paraparser-Verarbeitung und der HTML-Verarbeitungsprozess. 

Screenshot eines Debugging-Prozesses, der die HTML-Verarbeitung, den Absatzprozess und den Paraparser-Prozess in einem Python-Skript hervorhebt

Wie in der obigen Abbildung dargestellt, verwendet der HTML-Verarbeitungsprozess in ReportLab die eval() Funktion speziell auf das Farbattribut. Als Brennpunkt für die Ausführung von bösartigem Code dient die eval() Funktion veranlasst Forscher dazu, die Kontrolle über die Eingabe zu erlangen, um die Anwendung auszunutzen. Dies ist jedoch eine Herausforderung aufgrund der Sandbox, die durch die __rl_safe_eval__ Funktion innerhalb von ReportLab. 

Codeschnipsel für eine sichere Bewertungsfunktion mit Prüfungen auf zulässige Methoden und Zeitüberschreitungen
Sicherheitsschwachstelle in der ReportLab-Analyse 

ReportLab hat eine Sandbox namens __rl_safe_eval__. Diese Sandbox schließt alle eingebauten Python-Funktionen aus und enthält mehrere überschriebene eingebaute Funktionen. Diese Einschränkung ermöglicht die Ausführung von sicherem Code innerhalb der Bibliothek und verhindert gleichzeitig den Zugriff auf gefährliche Funktionen und Bibliotheken, die für bösartige Zwecke (z. B. Dateisystemzugriff, Netzwerkkommunikation) verwendet werden könnten. 

Die rl_safe_eval Sandbox-Funktion implementiert verschiedene Bedingungen, um sicherzustellen, dass das aufgerufene Attribut sicher ist, bevor es die in Python eingebaute getattr() Funktion abrufen und das Ergebnis zurückgeben. 

Codebeispiel für eine Funktion, die prüft, ob Methodennamen innerhalb eines Sicherheitskontextes zulässig sind

Die safe eval-Funktion soll die Umgebung schützen, indem sie gefährliche Funktionen ausschließt und bösartige Aktionen verhindert. Wenn jedoch ein Weg gefunden wird, ihre Bedingungen zu umgehen und auf eine leistungsstarke integrierte Funktion zuzugreifen, könnte dies ausgenutzt werden.  

Aufbauend auf dieser Idee versuchten die Sicherheitsforscher, die Einschränkungen zu umgehen. Zunächst nutzten sie die Objektinjektion unter Verwendung des Typ() Funktion, um ein Objekt zu konstruieren und seine Attribute und Methoden neu zu definieren, um die Prüfungen in __rl_safe_eval__. Da die ReportLab-Bibliothek integrierte Funktionen überschreibt und sie als Globals in den eval-Kontext einfügt, könnte der Forscher diese Implementierung nutzen, um auf eine der ursprünglichen integrierten Funktionen zuzugreifen. Dadurch könnte er die Sandbox-Umgebung umgehen und bösartigen Code ausführen. 

Codeschnipsel zur Demonstration der Neudefinition von integrierten Funktionen

Die Nutzlast wird wie folgt vorbereitet: 

Codebeispiel für eine Angreiferklasse und die Ausnutzung eines globalen Attributs

Dennoch ist die Ausführung eines mehrzeiligen Ausdrucks in einem eval-Kontext nicht möglich. Es kann jedoch ein Trick zum Verstehen von Listen verwendet werden, und die Nutzlast zur Ausnutzung dieser CVE ist wie folgt: 

Komplexe Codestruktur, die die Ausnutzung von CVE-2023-33733 zeigt

ReportLab Verwertungssimulation 

Forscher haben einen Proof of Concept (POC) für CVE-2023-33733 veröffentlicht, der zeigt, dass Anwendungen, die mit anfälligen Versionen von ReportLab erstellt wurden, anfällig für Cyberangriffe sein könnten. Um diese potenzielle Bedrohung zu bewerten, führten OSPWAT Graduate Fellows einen simulierten Angriff auf eine Webanwendung durch. Sie nutzten MetaDefender Core mit SBOM-Funktionen, um die Sicherheitsschwachstellen in den Software-Abhängigkeiten der Anwendung zu identifizieren, einschließlich der betroffenen ReportLab-Bibliothek. 

Simulieren Sie die Sicherheitsschwachstelle 

Um diese Ausnutzung als reales Szenario zu simulieren, entwickelten OPSWAT eine Webanwendung mit Python und der verwundbaren Version der ReportLab-Bibliothek. Diese Anwendung ahmt einen typischen Anwendungsfall nach: Benutzer können eine HTML-Datei hochladen und sie in eine PDF-Datei umwandeln. 

Screenshot einer bösartigen Datei-Upload-Benutzeroberfläche, die dazu auffordert, eine Datei zum Hochladen zu durchsuchen

Ein Angreifer könnte eine bösartige HTML-Datei erstellen, die Code enthält, der dazu bestimmt ist, Folgendes auszunutzen 33733. Dieser Code könnte die Sandbox umgehen und den Webserver kompromittieren, indem er eine Reverse Shell über die eval() Funktion.  

Codeschnipsel, der einen laufenden Angriff zur Befehlsinjektion zeigt

Ein erfolgreicher Upload einer bösartigen Datei würde es dem Angreifer ermöglichen, aufgrund der Sicherheitslücke in der veralteten ReportLab-Bibliothek die Kontrolle über den Anwendungsserver zu übernehmen. 

Bösartiger Dateiuploader, der evil.html anzeigt, hochgeladen
Terminal, das eine aktive Reverse Shell anzeigt

Die Bedeutung von SBOM und proaktiver Sicherheit 

Die Forschung der OPSWAT Graduate Fellows zu CVE-2023-33733 unterstreicht die potenziellen Sicherheitsrisiken im Zusammenhang mit OSS. Während OSS unbestreitbare Vorteile in Bezug auf die Entwicklungseffizienz und Kosteneffizienz bietet, können Schwachstellen wie die in ReportLab gefundenen Organisationen Cyberangriffen ausgesetzt sein. 

OPSWAT SBOM 

OPSWAT SBOM sichert die Software-Lieferkette durch die Bereitstellung eines umfassenden Komponenteninventars für Quellcode und Container. Es unterstützt mehr als 10 Sprachen, darunter Java, JavaScript, Go, PHP und Python, mehr als 5 Millionen Open-Source-Softwarekomponenten von Drittanbietern und nutzt eine Datenbank mit mehr als 17.000 Schwachstellen, die von der National Vulnerability Database (NVD) und GitHub (GHSA) stammen. 

MetaDefender Core Sicherheits-Dashboard mit Anzeige einer blockierten Datei und ihrer Schwachstellenanalyse

OPSWAT MetaDefender Core, mit seinen integrierten SBOM-Fähigkeiten, ermöglicht es Unternehmen, diese Risiken proaktiv anzugehen. MetaDefender Core scannt Softwareanwendungen und Abhängigkeiten und identifiziert das Vorhandensein von bekannten Schwachstellen wie CVE-2023-33733 innerhalb der aufgelisteten Komponenten. Dies ermöglicht es Entwicklern und Sicherheitsteams, Patches zu priorisieren und Sicherheitsrisiken zu minimieren, bevor sie ausgenutzt werden können. 

MetaDefender Core mit detaillierten Schwachstellen-Scanergebnissen für CVE-2023-33733

Abschließende Überlegungen

Die Forschung der OPSWAT Graduate Fellows über die ReportLab-Schwachstelle (CVE-2023-33733) dient als wertvolle Erinnerung an die Bedeutung proaktiver Sicherheitsmaßnahmen im Softwareentwicklungszyklus. Durch den Einsatz von Tools wie OPSWAT MetaDefender Core können Unternehmen entscheidende Einblicke in ihre Software-Abhängigkeiten gewinnen und potenzielle Schwachstellen identifizieren, bevor sie von Angreifern ausgenutzt werden. 

Darüber hinaus bietet OPSWAT eine umfassende Suite von Cybersicherheitslösungen, die über das Scannen von Schwachstellen hinausgehen. Diese Lösungen bieten Echtzeit-Bedrohungserkennung, Datensicherheit und Endpunktschutz und schützen Unternehmen vor einer Vielzahl von Cyber-Bedrohungen. Durch die Einführung eines mehrschichtigen Sicherheitsansatzes, der Tools wie MetaDefender Core beinhaltet, können Unternehmen die Vorteile von OSS nutzen und gleichzeitig die damit verbundenen Sicherheitsrisiken minimieren. 

Bleiben Sie auf dem Laufenden mit OPSWAT!

Melden Sie sich noch heute an, um die neuesten Unternehmensinformationen zu erhalten, Geschichten, Veranstaltungshinweise und mehr.