Entdecken Sie das TÜV-zertifizierte GoogleTest mit Agentic AI für C/C++-Tests!
Details ansehen »
Parasoft-Blog
Die jüngsten weltweiten Systemausfälle im Zusammenhang mit dem CrowdStrike Falcon-Softwareupdate zeigen, wie wichtig umfassende Tests vor der Bereitstellung sind, zu denen auch bewährte Verfahren wie die statische Analyse gehören. Erfahren Sie, wie Sie mit den statischen Codeanalyse-Tools von Parasoft ähnliche Probleme in Zukunft effektiv verhindern können.
Zum Abschnitt springen
In der schnelllebigen Welt der automatisierten Softwarebereitstellung (CI/CD) ist die Gewährleistung der Integrität und Zuverlässigkeit von Software-Updates von entscheidender Bedeutung. Der jüngste Vorfall bei CrowdStrike, der ein kritisches Windows-Sensor-Update betraf, unterstreicht die Notwendigkeit umfassender Tests vor der Bereitstellung. Dieses Ereignis, das nach dem Update zu erheblichen Problemen führte, dient Softwareentwicklern als warnendes Beispiel: Automatisierte Tests müssen neben der Cybersicherheit auch Zuverlässigkeit und Sicherheit rigoros prüfen. Das Protokoll von CrowdStrike beginnt mit einer Reihe automatisierter Tests. CrowdStrike erklärt:
„Der Sensor-Release-Prozess beginnt mit automatisierten Tests, sowohl vor als auch nach der Einbindung in unsere Codebasis. Dazu gehören Unit-Tests, Integrationstests, Leistungstests und Stresstests.“
Interessanterweise wird die statische Codeanalyse in ihrem Testprogramm nicht erwähnt. Angesichts der Tatsache, dass sicherheitskritische Sektoren schon lange auf statische Analysen setzen, um Problemen vorzubeugen, ist diese Auslassung bemerkenswert. Statische Analysetools wie die von Parasoft haben sich als äußerst effektiv bei der Verbesserung der Softwarerobustheit erwiesen.
Automatisierte Softwarebereitstellungen basieren auf umfassenden Softwaretests, die frühzeitig im Entwicklungszyklus durchgeführt werden – auch bekannt als Shift-Left-Testing –, um potenzielle Fehler und Sicherheitslücken zu erkennen, bevor sie in der Produktion eingesetzt werden. Es ist entscheidend, dass bei frühen Tests neben der Sicherheit auch die Code-Sicherheit und -Zuverlässigkeit Priorität haben, um Vorfälle zu vermeiden, die das Vertrauen untergraben und erhebliche Störungen verursachen.
Die statische Codeanalyse spielt eine entscheidende Rolle beim Shift-Left-Testing, indem sie Probleme frühzeitig im Entwicklungsprozess identifiziert und behebt. Im Gegensatz zum dynamischen Testen , das die Ausführung des Codes erfordert, untersucht die statische Analyse den Quellcode, ohne das Programm auszuführen. Dies ermöglicht die frühzeitige Erkennung potenzieller Fehler, Sicherheitslücken und Verstöße gegen Programmierrichtlinien bereits in einem frühen Stadium des Softwarelebenszyklus.
Im Fall des CrowdStrike Falcon-Update-Problems wäre die Einhaltung von Codierungsstandards wie MISRA , CERT und CWE mithilfe statischer Analysetools maßgeblich für die Erkennung und Behebung dieses Logikfehlers gewesen.
Diese Standards enthalten allesamt Codierungsrichtlinien, die die Verwendung von NULL-Zeigern – der Hauptursache dieses Fehlers – aufzeigen. Parasoft bietet eine umfassende Abdeckung dieser Standards , und der Einsatz robuster Prüfmechanismen mit Fokus auf Sicherheit und Zuverlässigkeit hätte diese Art von Fehlern frühzeitig erkennen können.
Hier sind nur einige Codierungsrichtlinien für die statische Analyse aus drei verschiedenen Standards, die zum Auffinden dieser Art von Softwarefehlern verwendet werden können.
| MISRA C++ 2023 | Codierungsrichtlinien |
|---|---|
| MISRA C++2023:7.11.1 | nullptr soll die einzige Form der Nullzeigerkonstante sein |
| MISRA C++2023:8.7.1 | Zeigerarithmetik darf keinen ungültigen Zeiger bilden |
| MISRA C++2023:11.6.2 | Der Wert eines Objekts darf erst gelesen werden, wenn er gesetzt wurde |
| CWE | Codierungsrichtlinien |
|---|---|
| CWE:395 | Verwendung von NULLPointer Exception Catch zum Erkennen einer NULL-Zeiger-Dereferenzierung |
| CWE:476 | NULL-Zeiger-Dereferenzierung |
| CWE:626 | NULL-Byte-Interaktionsfehler |
| CWE:690 | Ungeprüfter Rückgabewert zur NULL-Zeiger-Dereferenzierung |
| SEI-ZERT | Codierungsrichtlinien |
|---|---|
| ZERTIFIKAT: EXP34-C | Nullzeiger nicht dereferenzieren |
| ZERTIFIKAT: ARR30-C | Bilden oder verwenden Sie keine Out-of-Bounds-Zeiger oder Array-Indizes |
| ZERTIFIKAT: ARR30-C | Kein Zugriff auf freigegebenen Speicher |
Durch die Integration dieser Standards in den Entwicklungsprozess hätte CrowdStrike Codierungsfehler, Sicherheitsmängel und Compliance-Probleme erkennen können, bevor sie in die Produktion gelangten. Dadurch wäre sichergestellt gewesen, dass das Update robust, sicher und den Best Practices entsprechend ist. So hätten Störungen und potenzielle Sicherheitsrisiken vermieden werden können, denen schätzungsweise 8.5 Milliarden Geräte ausgesetzt sind.
Statische Analyse vs. dynamische Analyse.
Erfahren Sie, worin sie sich unterscheiden und warum jeder wichtig ist.
Die statischen Analysetools von Parasoft sind darauf ausgelegt, eine Vielzahl von Problemen zu erkennen, die zu Softwarefehlern führen können. Durch die Integration dieser Tools in die Continuous Integration and Delivery (CI/CD)-Pipeline können Entwickler ihren Code bei jeder Änderung automatisch auf potenzielle Probleme prüfen. Dieser proaktive Ansatz kann Folgendes identifizieren:
Durch die Implementierung der automatisierten Testlösungen von Parasoft kann das Risiko von Vorfällen wie dem Update-Problem von CrowdStrike Falcon erheblich reduziert werden. Zu den wichtigsten Vorteilen gehören:
Der CrowdStrike-Falcon-Update-Vorfall unterstreicht die Bedeutung gründlicher Tests in der Softwareentwicklung. Der Einsatz automatisierter Testlösungen wie der statischen Analysetools von Parasoft kann das Risiko von Fehlern in Software-Updates deutlich reduzieren. Dies schützt nicht nur den Ruf eines Unternehmens, sondern sorgt auch für eine reibungslosere Benutzererfahrung. Im heutigen wettbewerbsintensiven und sicherheitsbewussten Markt ist die Investition in robuste Testlösungen nicht nur empfehlenswert, sondern unerlässlich.
Erste Schritte mit der statischen Analyse
„MISRA“, „MISRA C“ und das Dreieckslogo sind eingetragene Marken von The MISRA Consortium Limited. ©The MISRA Consortium Limited, 2021. Alle Rechte vorbehalten.