Article,

Sicher ist sicher! - Methoden aus sicherheitskritischer Software für Java

.
Java Magazin, (2007)

Abstract

Der Artikel befasst sich mit Möglichkeiten der frühen Fehlererkennung. Dabei wird versucht Laufzeitfehler in die statische Analyse des Compilers zu Bringen und damit die Fehler noch bei der Entwicklung zu erkennen. Die verwendeten Prinzipien hat sich der Author von Programmiersprachen für sicherheitskritische Anwendungen abgeschaut. Zu den Sprachen gehören: + Ada (sicher durch Einschränkung der Sprachkonstrukte) + SPARK (sicher durch Einschränkung der Sprachkonstrukte + zusätzliche Annotationssprache) + Safer-C (sicher durch Einschränkung der Sprachkonstrukte) + MISRA-C Als typische Fehlerklassen, welche kritische Anwendungen nicht aufweisen dürfen wurden identifiziert: + nicht initialisierte Objekte + Stapelüberläufe durch Endlosschleifen oder Endlosrekursionen + Speicherlecks + Fehler bei der Pointerarithmetik + Array-Index Fehler Folgende Techniken werden vorgeschlagen (Aufwand/Nutzen muss je nach Projekt entschieden werden ob es sich lohnt oder nicht): + Einfache Magic Numbers z.B. Integer Parameter überführen in Konstantenschreibweise + Konstanten überführen in Enumerations (Enumerations sind einfache Datentypen) + Einfache Datentypen überführen in strenge Typisierung (x Achse statt eine int Konstante lieber eine XOrdinate Klasse verwenden) (obige Massnahmen dienten der statischen Kontrolle des Datenflusses) Zur statischen Prüfung der Vollständigkeit wird empfohlen Resourcen in Klassen zu überführen: + Resourcedateien -> Resourceklassen Nachteil: Die Flexibilität die Resourcen zur Laufzeit zu wechseln (Sprache, Konfigurationen) wird eingebüsst. Wo diese Flexibilität nicht notwendig ist sollte der Weg beschritten werden.

Tags

Users

  • @funthomas424242

Comments and Reviews