Wir freuen uns, eine Reihe von Blogs zur technischen Analyse einzuführen, die sich auf verschiedene gemeinsame Schwachstellen und Gefährdungen (CVEs) konzentrieren, die mit unseren fortschrittlichen Technologien zur Erkennung von Bedrohungen identifiziert und behoben wurden.Alle Forschungsarbeiten werden von den Studenten durchgeführt, die am OPSWAT Cybersecurity Fellowship Programm teilnehmen, das im September 2023 startet.
In diesem Blog erläutern wir Google Chrome CVE-2019-13720 und wie Unternehmen sich gegen CVE-2019-13720-Angriffe schützen können.
Was ist Google Chrome und wann wurde es gegründet?
Google Chrome ist ein plattformübergreifender Webbrowser, der von Google entwickelt und offiziell am 2. September 2008 veröffentlicht wurde. Er wurde im Rahmen der Bemühungen von Google entwickelt, einen besseren, moderneren Browser zu schaffen. Er bot damals viele neue Funktionen, darunter Tabbed Browsing, Datenschutzmodus und Synchronisierung mit Google-Diensten. Seit seiner Veröffentlichung hat er sich zu einem der beliebtesten Webbrowser weltweit entwickelt. Schätzungen zufolge wird Google Chrome im Jahr 2021 etwa 3,2 Milliarden Nutzer haben.
Aufgrund seiner Beliebtheit ist Google Chrome zu einem Brennpunkt für Forschung und Angriffe geworden und zieht sowohl ethische Hacker als auch böswillige Hacker an. Zu den häufig in Google Chrome identifizierten Schwachstellen gehören u. a. Denial of Services (DoS), Informationsverluste und Remotecodeausführung. Hinsichtlich der Sicherheitsanfälligkeit für Remotecodeausführung gibt es in Google Chrome zwei Arten: Sandbox-Escape und Non-Escape.
Was ist CVE-2019-13720?
CVE-2019-13720 ist eine Use After Free (UAF)-Schwachstelle von WebAudio in Google Chrome vor Version 78.0.3904.87, die es einem entfernten Angreifer ermöglicht, eine Heap Corruption über eine gestaltete HTML-Seite auszunutzen. Wenn das Opfer auf eine bösartige Webseite zugreift oder eine manipulierte HTML-Seite in einem anfälligen Google Chrome-Browser öffnet, wird der bösartige Code auf dem Endpunkt des Opfers ausgeführt. Dieses CVE wurde erstmals von Anton Ivanov und Alexey Kulaev im Jahr 2019 gemeldet.
Aus technischer Sicht kann eine Use-after-free-Schwachstelle aufgrund einer Race-Condition zwischen den Render- und Audio-Threads in der Audiokomponente von Qt WebEngine ausgenutzt werden, die es entfernten Angreifern ermöglicht, WebAssembly-Shellcode auszuführen, was dazu führt, dass das Gerät des Opfers kompromittiert wird. Die Lösung für dieses Problem besteht darin, dass alle Qt WebEngine-Benutzer auf die neueste Version aktualisieren.
Die Phasen des Angriffs
Die Angreifer erstellen eine spezielle URL mit dem bösartigen HTML-Code und senden eine Phishing-E-Mail mit dem Link an das Opfer. Wenn das Opfer die E-Mail öffnet und auf den Link klickt, wird der bösartige Code ausgeführt und ermöglicht es dem Angreifer, das betroffene System zu übernehmen. Details zu den Remote-Code-Taktiken, wie sie in einem HTML-Dokument vorkommen, können hier nachgelesen werden.
Was sind Use After Free (UAF) und Heap-Spray-Schwachstellen?
Eine UAF-Schwachstelle ist eine Art von Sicherheitslücke, die auftritt, wenn ein Programm weiterhin Speicher verwendet, nachdem er freigegeben wurde. Dies kann zu verschiedenen nachteiligen Folgen führen, z. B. zur Beschädigung von Daten, zur Ausführung von beliebigem Code und zum Absturz des Systems.
Heap-Spraying ist eine Technik zur Bereitstellung von Nutzdaten, bei der mehrere Bytes an verschiedenen Stellen im Heap geschrieben werden. Dabei wird eine manipulierte Nutzlast (d. h. schädliche Daten) in den Heap-Speicher injiziert, wodurch sichergestellt wird, dass der Ausführungsfluss in den gesprühten Speicher und nicht in den ursprünglichen Code der Anwendung springt. Der Zweck dieses Angriffs besteht in der Regel darin, die Kontrolle über die EIP-Registrierung zu erlangen.
Was ist WebAssembly?
WebAssembly, oft abgekürzt als Wasm, ist ein neues binäres Befehlsformat, das als portables Ziel für die Kompilierung von Hochsprachen wie C/C++ dient und es ihnen ermöglicht, in der JavaScript-Engine eines Webbrowsers mit nahezu natürlicher Geschwindigkeit zu laufen.
Da WebAssembly jedoch aus Sprachen kompiliert werden kann, die nicht speichersicherfähig sind, wie z. B. C/C++, können gängige Programmierschwachstellen wie Pufferüberläufe oder Format-String-Schwachstellen in die kreuzkompilierten WebAssembly-Binärdateien eingeschleust werden. Diese Möglichkeit der Aufnahme von Schwachstellen in WebAssembly-Module hat die Angriffsfläche moderner Webanwendungen vergrößert.
Was ist eine Race-Condition-Schwachstelle?
Eine Race-Condition-Schwachstelle in Software tritt auf, wenn mehrere Prozesse oder Threads gleichzeitig auf eine gemeinsame Ressource zugreifen, was aufgrund des Zeitpunkts des Zugriffs zu unvorhersehbaren Ergebnissen oder Betriebsunterbrechungen führt. Wenn ein Programm eine Race-Condition-Schwachstelle aufweist, kann dies zu verschiedenen Problemen führen, z. B. zum Absturz der Anwendung, zur Beschädigung von Daten, zu falschen Ergebnissen oder zu Inkonsistenzen. Angreifer können diese Schwachstelle ausnutzen, um sich unbefugten Zugriff zu verschaffen, Informationen abzugreifen, die Rechte zu erweitern oder Systemabstürze herbeizuführen.
Eine TOCTTOU-Schwachstelle, die als Race Condition-Schwachstelle eingestuft wird, nutzt die Zeitspanne zwischen der Prüfung und der Verwendung einer Ressource aus.
Wie funktioniert CVE-2019-13720?
Um diese Sicherheitslücke auszunutzen, fügt der Forscher JavaScript-Code an eine HTML-Datei an. Wenn ein Benutzer die HTML-Datei aufruft, versucht das Skript, die durchgesickerte Adresse zu finden, indem es zwei Threads (Haupt-Thread und Audio-Thread) erstellt, die dieselben Pufferdaten verarbeiten. Die durchgesickerte Adresse des temporary_buffer_object in ReverbConvolverStage wird dann verwendet, um den Zeiger des feedforward_array in IIRFilterNode (der dieselbe Superseite mit dem Convolver teilt) zu erhalten. Anschließend versucht der Forscher, den Zeiger des feedforward_array in der zweiten Trigger-UAF zu erhalten.
WebAssembly übernimmt die Ausführung des Shellcodes. Um die Ausführung des Shellcodes zu ermöglichen, versucht der Forscher, den IIRFilter freizugeben und schreibt in den GCPreventer, bis er die Kontrolle darüber erlangt, wo neue Zuweisungen vorgenommen werden, ohne dass Sprays erforderlich sind. Schließlich schreibt der Forscher den Shellcode in die Just-In-Time-Region (JIT) im Speicher. Folglich führt das WebAssembly-Modul den Shellcode aus, sobald ein Fehlerereignis des Dateilesegeräts eintritt.
Um den mit dieser Sicherheitslücke verbundenen Shell-Code auszuführen, muss der Benutzer die Sandbox in der anfälligen Version von Chrome deaktivieren.
Wenn der Shell-Code ausgeführt wird, öffnet er automatisch die Notepad-Dienste auf dem Gerät des Opfers.
Sanierungsmethode
MetaDefender EndpointMetaDefender Endpoint, eine von OPSWAT entwickelte Sicherheitslösung für Endgeräte, ermöglicht es Anwendern, ihre Systeme zu erkennen und vor diesen Angriffen zu schützen. Nachdem der Benutzer die Privacy Sandbox (--no-sandbox) deaktiviert hat, kann MetaDefender Endpoint CVEs erkennen und die neuesten Google Chrome-Patches anwenden. Danach kann der Benutzer Google Chrome manuell auf die neueste Version aktualisieren oder die "Auto-Update"-Funktion unter der Registerkarte Patch Management aktivieren, damit OPSWAT MetaDefender Endpoint den Browser automatisch aktualisiert, sobald neue Patches verfügbar sind.
Um sich vor bösartigem Code zu schützen, sollten Benutzer E-Mail-Filter-Tools verwenden, um Phishing-Angriffe zu erkennen, und nicht auf unbekannte URLs in E-Mails klicken.
MetaDefender Endpoint Hauptproduktmerkmale und Vorteile
- Überprüfen und beseitigen Sie gefährdete Anwendungen. Gefährdete oder veraltete Anwendungen können in der MetaDefender Endpoint UI angezeigt werden.
- Überprüfen Sie, ob der Anti-Malware-Schutz auf dem Betriebssystem richtig konfiguriert ist.
- Gewährleistung der Einhaltung der Sicherheitsstandards des Unternehmens.
- Sicherheit bei der Festplattenverschlüsselung.
- Überprüfung von Betriebssystem-Patches.
- Mehrere Optionen für Malware-Scans und Ankündigungen zum Schutz vor Malware auf Endgeräten.
MetaDefender Endpoint for Endpoint Vulnerability and Application Patching kann hier heruntergeladen werden.
Referenz
- https://nvd.nist.gov/vuln/detail/CVE-2019-13720
- https://bugs.chromium.org/p/chromium/issues/detail?id=1019226
- https://www.w3.org/TR/webaudio/
- https://security.gentoo.org/glsa/202004-04
- https://www.cve.org/CVERecord?id=CVE-2019-13720
- https://packetstormsecurity.com/files/167066/Google-Chrome-78.0.3904.70-Remote-Code-Execution.html
- https://devopedia.org/race-condition-software
- https://webassembly.org/
- https://www.researchgate.net/figure/WebAssembly-high-level-architecture_fig1_360232889
- https://www.researchgate.net/publication/331990070_Native_Web_Audio_API_Plugins
- https://whitehat.vn/threads/gioi-thieu-ky-thuat-khai-thac-exploit-heap-spray.5056/
- https://www.opswat.com/