Heim > System-Tutorial > LINUX > Hauptteil

Einführung in die genaue Erkennung von Linux-Kernel-Schwachstellen

王林
Freigeben: 2024-02-13 18:27:27
nach vorne
835 Leute haben es durchsucht

Die übliche Methode zum Zitieren von Open-Source-Software besteht darin, dynamische Bibliotheken oder JAR-Pakete von Open-Source-Software einzuführen. Daher ist die Fehlalarmrate bei der Erkennung von Schwachstellen sehr gering. Im Linux-Kernel ist dies jedoch anders Kernel-Funktionsmodule sind sehr umfangreich und Pangda wird während der tatsächlichen Verwendung entsprechend den Geschäftsanforderungen angepasst. Daher ist es besonders wichtig, wie eine genaue Schwachstellenerkennung erreicht und die Falsch-Positiv-Rate der Schwachstellenerkennung reduziert werden kann.

Linux-Kernelstruktur:

Der Linux-Kernel besteht aus sieben Teilen, und jeder einzelne Teil besteht aus mehreren Kernelmodulen. Das strukturelle Blockdiagramm sieht wie folgt aus:

Einführung in die genaue Erkennung von Linux-Kernel-Schwachstellen

Linux-Zuschneideszenenanalyse:

Durch die Analyse des Linux-Kernel-Quellcodes können Sie erkennen, dass die Implementierungscodes verschiedener Module in verschiedenen Verzeichnissen gespeichert sind. Gleichzeitig können Sie die in der Konfiguration während der Kompilierung konfigurierten Informationen verwenden, um zu steuern, welche Module in die endgültige Binärdatei kompiliert werden und welche Module getrimmt werden. Nehmen Sie als Beispiel das IPV6-Modul. Der Konfigurationsname, der dieses Modul steuert, ist CONFIG_IPV6. Wenn das Konfigurationselement auf y gesetzt ist, bedeutet dies, dass das Funktionsmodul nicht in die endgültige Binärdatei kompiliert wurde Datei, wie unten gezeigt:

Einführung in die genaue Erkennung von Linux-Kernel-Schwachstellen

Wenn das Funktionsmodul entfernt wird, sind die im Funktionsmodul vorhandenen Schwachstellen in der Binärdatei nicht betroffen. Daher sollten Schwachstellen im Zusammenhang mit IPV6 bei der Schwachstellenerkennung eindeutig als nicht vorhanden gemeldet werden von dieser Schwachstelle betroffen, wie etwa CVE-2013-0343 (die Funktion ipv6_create_tempaddr in net/ipv6/addrconf.c in Versionen vor Linux-Kernel 3.8 behandelt Probleme bei der Generierung temporärer IPv6-Adressen nicht korrekt und ermöglicht Remote-Angreifern über ICMPv6 Router Advertisement (RA) Nachrichten, die zu einem Denial-of-Service führen und dann vertrauliche Informationen erhalten).

Analyse der Gründe, warum binäre SCA-Tools in der Branche nicht erkennen können:

Der Grund, warum die üblichen binären SCA-Tools in der Branche keine genaue Erkennung durchführen können, liegt darin, dass die binären SCA-Tools in der Branche eine Liste bekannter Schwachstellen basierend auf dem Namen und der Versionsnummer der erkannten Open-Source-Software zuordnen und diese Art der Schwachstellenanalyse durchführen durch Herausschneiden von Funktionsmodulen Um den Linux-Kernel zu verwenden, ändern sich der Name und die Versionsnummer der Open-Source-Software nicht, sodass das Tool sie nicht genau erkennen kann.

Wie das binäre SCA-Tool diese Funktionalität implementiert:

Um eine genaue Erkennung bekannter Schwachstellen in Linux-Kernel-Anpassungsszenarien zu erreichen, müssen binäre SCA-Tools eine aktualisierte, feinkörnige Erkennungstechnologie implementieren, die auf der ursprünglichen Erkennung von Open-Source-Softwarenamen und Versionsnummern basiert und auf der Granularität und Funktionen der Quellcodedateien basiert Die Funktionen ermöglichen die genaue Erkennung bekannter Schwachstellen in Anpassungsszenarien, d. h. Sie können wissen, welche Codes in die endgültige Binärdatei kompiliert werden und welche Codes nicht in der Kompilierung enthalten sind. Gleichzeitig muss die Schwachstellenbibliothek auch feinkörnige Dimensionen unterstützen, das heißt, die Schwachstelleninformationen müssen die Codefragmente, in die Dateien und Funktionen eingeführt werden, genau lokalisieren.
Am Beispiel von CVE-2013-0343 können wir durch Analyse der Schwachstellenbeschreibungsinformationen und des Linux-Kernel-Quellcodes die Positionierungsinformationen im Zusammenhang mit der Schwachstelle und die folgenden Standortcodes erhalten:

"CVE-2013-0343": {
"net/ipv6/addrconf.c": [
“addrconf_add_ifaddr”,
“addrconf_dad_begin”,
“addrconf_dad_stop”,
“addrconf_dad_work”,
“addrconf_del_ifaddr”,
“addrconf_prefix_rcv”,
“addrconf_verify_rtnl”,
“addrconf_verify_work”,
“inet6_addr_add”,
“inet6_addr_del”,
“inet6_addr_modify”,
“inet6_rtm_deladdr”,
“inet6_rtm_newaddr”,
“inet6_set_iftoken”,
“inet6_set_link_af”,
“ipv6_create_tempaddr”,
“manage_tempaddrs”
]
}
Nach dem Login kopieren

Zusammenfassung

Basierend auf dem Prinzip, dass, wenn der Quellcode, der die Schwachstelle verursacht, nicht an der Kompilierung der Binärdatei beteiligt ist, die kompilierte Binärdatei die Schwachstelle nicht aufweist, solange das binäre SCA-Tool den oben genannten Quellcode erkennen kann Wenn der Speicherort nicht an der Kompilierung der endgültigen vmlinux-Binärdatei beteiligt ist, ist diese vmlinux-Datei nicht von der Sicherheitslücke CVE-2013-0343 betroffen.

Um das Sicherheitspersonal bei der Durchführung von Sicherheitsüberprüfungen besser zu unterstützen und die Falsch-Positiv-Rate bei der Erkennung von Schwachstellen zu reduzieren, müssen sich binäre SCA-Tools zu einer differenzierteren Erkennungsdimension entwickeln, nicht nur auf der Ebene von Open-Source-Software, sondern auch zur Verbesserung Anforderungen an Schwachstellenbibliotheken erfordern auch die Herausforderung feinkörniger, genauer Informationen.

Das obige ist der detaillierte Inhalt vonEinführung in die genaue Erkennung von Linux-Kernel-Schwachstellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:lxlinux.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage