Was ist statische Codeanalyse?

Statische Analysetools sind heute ein wichtiger Bestandteil der CI/CD-Toolchain und werden von regulatorischen Standards gefordert. Darüber hinaus wurde Static Application Security Testing (SAST) als eines der wichtigsten Tools zur Bekämpfung der zunehmenden Bedrohung durch Cybersicherheitsangriffe identifiziert.

Konkret gilt laut CWE Top 25 jeder kommerzielle Code weder als sicher noch als geschützt, wenn Sie nicht alle „undefiniertes Verhalten“-Bugs finden können.

 

Coding

Was ist „undefiniertes Verhalten“?

Ein Programm mit undefiniertem Verhalten ist gemäß den C- und C++-Spezifikationen fehlerhaft. Das Ergebnis undefinierten Verhaltens kann Folgendes sein: Absturz, Hängenbleiben, Sicherheitslücke, Sicherheitsprobleme, Fehler, unerreichbarer Code kann ausgeführt werden, funktioniert genau wie gewünscht usw. Undefiniertes Verhalten ermöglicht dem Compiler, beliebigen Code zu generieren, z. B. kann er Code mit undefiniertem Verhalten frei entfernen.

Beispiele für das, was undefiniertes Verhalten generieren kann, sind unten aufgeführt:

  • Dead pointers
  • Division by zero
  • Integer overflows
  • Invalid bit shift operands
  • Invalid conversions
  • Invalid usage of STL
  • Memory management
  • Null pointer dereferences
  • Out of bounds checking
  • Uninitialized variables
  • Writing const data


SecurityStatic code analysis for cyber security compliance

Static code analysis is a key tool for cybersecurity that checks source code for potential vulnerabilities, coding flaws, and compliance with security standards without running the program. Its role in cybersecurity compliance is becoming more important due to the growing number of cyber threats and regulatory requirements.

In automotive cybersecurity, ISO 21434 is a new standard that outlines requirements for managing cybersecurity risks in automotive products. Static code analysis helps ensure that automotive software is checked for vulnerabilities and compliance issues, supporting manufacturers in meeting this standard and improving the cybersecurity of automotive products.

The upcoming Network and Information Systems Directive 2 (NIS2), Radio Equipment Directive (RED), and Cyber Resilience Act (CRA) in the European Union are significant efforts to strengthen cybersecurity across different sectors. These laws will impose stricter cybersecurity requirements, highlighting the importance of secure software development practices.

Static code analysis will be crucial in meeting these new regulations. By identifying and addressing security issues during software development, organizations can show their commitment to cybersecurity, lower the risk of regulatory penalties, and protect themselves from the reputational damage caused by cyber breaches.

Was ist also das Besondere an Cppcheck?

Cppcheck verwendet „unzuverlässige flusssensitive Analyse“. Mehrere andere Analyseprogramme verwenden pfadsensitive Analyse basierend auf abstrakter Interpretation, was auch großartig ist, jedoch sowohl Vor- als auch Nachteile hat. Theoretisch ist pfadsensitive Analyse per Definition besser als flusssensitive Analyse.

In der Praxis bedeutet dies jedoch, dass Cppcheck Fehler erkennt, die die anderen Tools nicht erkennen. In Cppcheck ist die Datenflussanalyse nicht nur „vorwärts“, sondern „bidirektional“. Die meisten Analyseprogramme diagnostizieren dies:

void foo(int x)
{
int buf[10];
if (x == 1000)
buf[x] = 0; // <- ERROR
}
Die meisten Tools können feststellen, dass der Array-Index 1000 beträgt und es zu einem Überlauf kommt.
Cppcheck diagnostiziert dies ebenfalls:


void foo(int x)
{
int buf[10];
buf[x] = 0; // <- ERROR
if (x == 1000) {}
}

Cppcheck Premium Safety License is TÜV SÜD-certified!

What is TÜV SÜD?

TÜV stands for “Technischer Überwachungsverein,” which translates to “Technical Inspection Association” in English. TÜV SÜD is committed to protecting people and the environment through comprehensive testing, certification, auditing, and advisory services. The company ensures that new and updated technologies comply with regulations, with a strong focus on automotive innovation and development. Additionally, it acts as a notified body for medical devices in Europe. 

Cppcheck Premium has received TÜV SÜD certification, signifying that it meets high safety and quality standards. TÜV SÜD has evaluated Cppcheck Premium to ensure its reliability and compliance with industry regulations. This certification underscores Cppcheck Premium's commitment to delivering high-quality static code analysis tools, particularly for applications in safety-critical industries.

Bereit für den nächsten Schritt mit Cppcheck Premium?

Verwenden Sie das untenstehende Formular, um eine Lizenz zu erwerben, mit unserem Vertriebsteam zu sprechen oder eine kostenlose Testversion zu erhalten. Wir werden uns so schnell wie möglich bei Ihnen melden!

sourceforge_logo
4,7/5
rating4.5 out of 5 v2
g2_png
4,6/5
rating4.5 out of 5 v2
LSE
4,7/5
rating4.5 out of 5 v2