Werkzeuge zur statischen Quellcode-Analyse
Erkennung von Schwachstellen und Laufzeitfehlern
CodeSonar
CodeSonar ermöglicht es, die Einhaltung der Standards für"Safety"- und"Security"-Softwarecodierung zu überprüfen, wie sie in den wichtigsten Normen für funktionale Sicherheit gefordert werden.
Programmiersprachen
Sicherheitsstandards
C 2012
C++ 2008
C++ 14, 2018
Sicherheitsstandards
C 2016
C++ 2016
CodeSonar enthält verschiedene Programme, die potenzielle Fehler zur Laufzeit aufspüren.
Mit CodeSonar können Sie überprüfen, ob der entwickelte Quellcode den ausgewählten Sicherheitsstandards entspricht. Für jeden Standard können Sie die Regeln auswählen, die Sie überprüfen möchten.
Das Endergebnis garantiert eine sichere Verwendung der Programmiersprache und die Portabilität der Anwendung.
Erkennung von Laufzeitfehlern
- Verwendung von Null-Zeigern
- Pufferüberlauf
- Dynamischer Speicher nicht freigegeben
- Probleme bei der Typkonvertierung
- Fehler bei der Initialisierung von Variablen
- Unsachgemäße Verwendung von Bibliotheksfunktionen
- Erkennung von ungültigen Schleifen und Zyklen
- Erkennung von totem Code
- Gleichzeitigkeitsfehler
- und viele andere ...
Unterschiedliche Merkmale von CodeSonar
Tiefe der Analyse
Eines der Unterscheidungsmerkmale von CodeSonar ist die Fähigkeit, eine tiefgreifende Code-Analyse durchzuführen, einschließlich einer Kontrollfluss- und Datenflussanalyse, die es ermöglicht, Fehler zu finden, die verschiedene Funktionen in verschiedenen Dateien betreffen.
CodeSonar unterscheidet zwischen Fehlern und Warnungen unterschiedlichen Schweregrades. Sobald ein Fehler identifiziert ist, wird die Sequenz der Funktionsaufrufe, die ihn verursachen, sowie die Anweisung und die Bedingung, in der der Fehler auftritt, angezeigt. Dies wird als eine Sequenz von Ereignissen markiert.
CodeSonar findet Fehler, die andere statische Code-Analyse-Tools nicht finden können.
Die Pfade und der Aufrufbaum, die zu dem Fehler führen, können ebenfalls angezeigt werden.
Im gezeigten Beispiel eines Initialisierungsfehlers einer lokalen Variable in einer Funktion erkennt CodeSonar, dass der Fehler in vier von sechs möglichen Ausführungspfaden auftritt.
Skalierbarkeit: Verteilte Analyse
CodeSonar ermöglicht die Analyse von sehr großen Quellcode-Repositories mit einer sehr hohen Analysetiefe durch die Möglichkeit, die Analyse auf mehrere Prozesse zu verteilen, die auf verschiedenen Servern laufen.
CodeSonar verwaltet einen primären Hub-Prozess für Webanalyse und Visualisierung und optional mehrere Satelliten-Hub-Prozesse . Die primären und sekundären Prozesse nutzen dieselbe Datenbank.
DevSecOpcs-Integration
CodeSonar lässt sich in verschiedene Continuous-Integration-Umgebungen integrieren: Jenkings, GitLab, GitHub usw.
Der Entwickler kann Sicherheitsprobleme innerhalb der CI/CD-Umgebung visualisieren und beheben und mit einem einfachen Mausklick auf detailliertere Informationen im Hub zugreifen. Im Falle einer Fehlererkennung können Defekte in spezialisierten Tools wie Jira geöffnet werden. Der Projektleiter oder Qualitätsmanager kann den Sicherheitsstatus anhand der in der CI/CD-Umgebung enthaltenen Berichte überprüfen. Die Analyselast kann auf mehrere Prozesse verteilt werden, die auf verschiedenen Servern laufen.
CodeSonar verwaltet einen primären Hub-Prozess für die Webanalyse und Visualisierung und optional mehrere Satelliten-Hub-Prozesse . Die primären und sekundären Prozesse nutzen dieselbe Datenbank.
Integration mit anderen Tools
CodeSonar ermöglicht die Verwendung verschiedener Cross-Compiler für PowerPC- und ARM-Architekturen. Es bietet auch einen grafischen Assistenten, um die verschiedenen Analyseparameter zu definieren und alle Informationen zu erfassen, die für die Erstellung der ausführbaren Datei mit der Erstellungsmethode des jeweiligen Anbieters erforderlich sind.
Sobald die Compiler- und Linker-Informationen, Kompilierungsoptionen, Include-Verzeichnisse und Präprozessor-Makros erfasst sind, kann CodeSonar den Quellcode anhand all dieser Informationen analysieren.
Von CodeSonar unterstützte Compiler
ARM Real View & Clang
Bornland
Clang
CodeVision
Kosmische
CodeWarrior
Green Hills C/C++
GNU C/C++
Keil
Hi-Tech
IAR
Intel
Microsoft
MPLAB
QNX
Renesas
SHARC, Blackfin
Aufgabenstellung
Texas Instrumente
Wind River
CodeSonar für Java und C#
Erkennung von Sicherheitsfehlern
Injektionen
Cookies
Passwörter
LDAP
Kryptographische Fehler
Verweis auf externe Stellen
und viele mehr
Unterstützte C#-Plattformen
MVC
Einigkeit
Web-Formulare
Windows-Formulare
Unterstützte Java-Plattformen
Apache-CXF
AspectJ
EJB
JAX-RS
JAX-WS
JPA
JSF
Jersey
RESTeasy
RESTlet
Servlet
Frühling
Android