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.

Der Kontrollfluss von Funktionsaufrufen kann auch grafisch dargestellt werden.

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 lässt sich in native Entwicklungsumgebungen wie MS Visual Studio oder MS Visual Studio Code sowie in Cross-Entwicklungsumgebungen auf Basis von Eclipse integrieren.

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#

Im Falle von Java und C# haben die entwickelten Anwendungen spezifische Sicherheitsanforderungen in Bezug auf die Plattform, das Betriebssystem, die Datenbank und die Kommunikations-Middleware sowie verteilte Objekte.

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

Abonnieren Sie unseren Newsletter