Sichere IT-Infrastrukturen
Das Herstellen von Sicherheit mit Hilfe der IT in verteilten IT-Infrastrukturen bedeutet, Schutz und Kontrolle der Schnittstellen und der ausgetauschten Informationen. Dazu verwenden wir unterschiedliche Konzepte und Werkzeuge, u.a. die Integration und die Härtung von Open-Source Komponenten:
- Kubernetes, Docker
- Grafana, Elasticsearch
- Graylog
- Ansible
- MongoDB, CrateDB
- verschiedene APIs z.B. mit JSON, REST, OAuth
Sichere Software-Entwicklung
Sicherheitskritische Systeme erfordern schon in der Entwurfsphase ein validierbares, formalisiertes Vorgehen. Zu unseren regelmäßig eingesetzten Methoden gehören Modellierungssprachen und verschiedene Konzepte der Risikoanalyse:
- UML
- SysML
- FTA, FMEA
Bei der Implementierung setzen wir bei den Programmiersprachen und -umgebungen folgende Schwerpunkte
- Ada,
- sämtliche C-Varianten (C, C++, Objective C, C#) und
- Java, Scala
Bei besonders kritischen Systemkomponenten verwenden wir auch Sprachuntermengen wie Ravenscar (Ada) und MISRA (C / C++)
Nachfolgend weitere Methoden und Werkzeuge, die wir in unseren Projekten wiederholt eingesetzt haben:
- Annotationen im Quellcode, Design by Contract
- Abbildung von Modellen und Quellen in Prozessalgebren (z.B. CSP), Model Checking
- Testfallableitung aus den Systemmodellen und Quellen
- Komponenten-, Unit-Tests mit Treibern und Stubs
- Profiling von Software (Speicher, Laufzeit)
- Systemtests in Simulatoren, HIL/SIL
- Testautomation, insbesondere für Regressionstests nach Änderungen und Versionsinkrementen
- Integrierte Entwicklungsprozesse, Continuous Integration und Certification, Application Lifecycle Management, DevSecOps