Skip to main content
European Commission logo print header

Secure and Safe Systems based on Static Analysis

Article Category

Article available in the following languages:

Analyse- und Lösungsmotor übertrifft XSB Prolog

Ein als Succinct Solver V2.0 bekannter Analysemotor zur Lösung von Daten- und Kontrollflussproblemen wurde entwickelt. Hierbei handelt es sich eigentlich um nichts Besonderes, aber dieser spezielle Motor ist in einer Standard Manipulation Language geschrieben und übertrifft daher die Leistung von XSB Prolog deutlich.

Digitale Wirtschaft icon Digitale Wirtschaft

In den letzten Jahren hat sich die statische Programmanalyse zu einer bewährten Technologie für den Einsatz von Compilern und Interpretern entwickelt. Zwei gute Beispiele für den Einsatz von statischen Analyseverfahren sind die Software-Reengineering-Verfahren, die im Zusammenhang mit den Problemen der Jahrtausendwende verwendet wurden sowie die für Ariane V genutzten Softwarevalidationsprogramme. Das ins Leben gerufene Projekt zielte darauf ab, die Skalierbarkeit von statischen Analysetechnologien zu bewerten sowie die sicherheitstechnischen Aspekte für realistische Sprachen und Anwendungen zu überprüfen. Das führte zur Identifizierung von zwei überaus wichtigen Sicherheitsbereichen, nämlich den SmartCards und der Internetprogrammierung. Daraufhin konzentrierten sich die Bemühungen des Projekts auf Java und den Java-Dialekt Java Card. Der Succinct Solver selbst wurde über Reqs vereinfacht. Hierbei handelt es sich um ein Backend eines Programmanalysators, der durch Inria erzeugt und innerhalb eines restriktionsbasierten statischen Analysators entwickelt wurde. Dieser verwendet die Carmel-Sprache, die eine Zwischendarstellung des Byte-Codes der Java Card ist. Reqs löst mit Hilfe von Gittern Restriktionen, während der Analysator selbst unter Verwendung einer modularen Restriktionserzeugungstechnik implementiert wird und für die Analyse von Java-Programmteilen genutzt wird. Der restriktionsbasierte statische Analysator stellt eine sichere Grundlage für die Untersuchung von Java-Komponenten und -Schnittstellen zur Verfügung und analysiert in Verbindung mit einer modularen Verifikationstechnik Java-Programmfragmente. Bei einem Vergleich des Succinct Solver mit anderen Lösungsmotoren, die in erster Linie XSB Prolog und DeMoney als Haupttestprogramm nutzen, zeigte sich, dass Succint Solver die Wettbewerber leistungsmäßig übertrifft. Daher ist dieser Problemlöser besonders für die Sicherheitsmerkmale des Byte-Codes der Java Card, für die Bewertung der Steuerungseigenschaften von mobilen und unbeschränkten Umgebungen sowie für die Validation der Protokollkommunikation in geeigneten Algebraprozessen von großem Nutzen. Deshalb können Entwicklungen wie der Succinct Solver, Reqs und der restriktionsbasierte statische Analysator die zukünftige Sicherheit von Sichtmodifikatoren und gemeinsam nutzbaren Schnittstellen gewährleisten.

Entdecken Sie Artikel in demselben Anwendungsbereich