Forschung

Wann ist Software gut, wann ist Software Engineering gut? Und wie erreichen wir es, dass Software gut wird? Wir sehen Software Engineering an der Universität einerseits als akademisches Fach, in dem es um das Verständnis von Zusammenhängen geht; andererseits als praktische Herausforderung in Industrie und Lehre. Software ist „gut“, wenn Attribute wie Korrektheit, Sicherheit, Performanz, Nutzbarkeit, Wartbarkeit usw. erfüllt sind. Software Engineering ist gut, wenn schnell auf Änderungen reagiert werden kann und gleichzeitig ein adäquater Kompromiss zwischen den unterschiedlichen Qualitätsattributen und den Kosten gefunden werden kann. Diese Qualitäten und die richtigen Kompromisse hängen immer stark vom Kontext ab, dessen Beherrschung dementsprechend immer Teil unserer Arbeiten ist. Es gibt im Software Engineering nicht den einen Hammer für alle Nägel. Auch Maschinenlernen und Scrum sind nur zwei Hämmer unter vielen.

Inhalt unserer Arbeiten ist also kontextspezifische Software- und Software-Engineering-Qualität aus Perspektive des Systemingenieurs und des Nutzers: Konzepte, Modelle, Sprachen, Architekturen, Komponenten, Muster, Werkzeuge, Methoden und Prozesse. Schwerpunkte liegen methodisch im Testen und qualitativ in der Informations- und Funktionssicherheit. Die Auswirkungen von Digitalisierung auf die Gesellschaft und die Gestaltung verträglicher Technologien untersuchen wir in interdisziplinärer Zusammenarbeit im Bayerischen Forschungsinstitut für Digitale Transformation; weitere technikzentrierte Forschungen zum Systems Engineering, u.a. der modellbasierten Entwicklung und Code-Exzellenz, finden bei fortiss statt, dem Landesforschungsinstitut des Freistaats Bayern für softwareintensive Systeme.

Im Bereich des Testens interessiert uns insbesondere die Frage, wann ein Testfall „gut“ ist, und wie man Antworten auf diese Frage in praktische Handlungsanweisungen übersetzen kann. Wir beschäftigen uns mit dem Test automatisierter Fahrsysteme und autonomer Drohnen; mit der Auswahl von Regressionstests; mit der Lokalisierung von Fehlern (Golagha 2020) in Code und HiL-Testständen angesichts von beobachtbarem Fehlverhalten; mit der Frage, welche Aussagen über die Qualität eines Programms unterschiedliche Abläufe eines Fuzzers zulassen; wie Techniken der symbolischen Ausführung durch Kompositionalität und Kopplung mit Fuzzern skalieren (Ognawala 2020); und mit der Ableitung und dem Design von Fehlermodellen für kontinuierliche Systeme (Holling 2016) und für den Test von Sicherheitseigenschaften (Büchler 2015).

Als Komplementierung dynamischer Testverfahren sind für moderne cyberphysikalische Systeme Laufzeitmonitore unabdingbar. Unter dem Stichwort Kausalität und Accountability interessieren uns auf der Basis langer Erfahrung mit Technologien für Daten-Nutzungskontrolle (s.u.) generelle Rahmenwerke und Implementierungen, mit denen unerwünschte Ereignisse zur Laufzeit erkannt und die Verantwortung im Nachhinein speziellen Systemteilen oder Personen zugeordnet werden kann. Neben Algorithmen für Laufzeitverifikation und Kausalitätsanalysen nehmen Fragen nach Herkunft und richtigem Abstraktionsgrad von Kausalität beschreibendem Modellen, nach den Anforderungen an den Abstraktionsgrad des Logging und nach einem Design von Systemen, das Accountability sicherstellen kann, dabei eine besondere Rolle ein. Wir arbeiten dabei an Ansätzen für cyber-physikalischen Systemen, etwa Diagnosesystemen für Drohnen, Web-Applikationen und Microservices.

Im Bereich der Informationssicherheit widmen wir uns aktuell technisch der Frage, wann ein Intrusion Detection System gut ist, und wie man das messen kann. Methodisch untersuchen wir, wie Organisationen angesichts existierender Sicherheitsrichtlinien automatisiert ein Hardening ihrer Infrastruktur durchführen können – und natürlich der Frage, in welchem Sinn das gut ist und wie wir das messen können. Vergangene Arbeiten haben sich – motiviert durch praktische Notwendigkeiten in den Feldern der Accountability und der Daten-Nutzungskontrolle – mit software-basierter Software Integrity Protection und Software Obfuscation (Banescu 2017) beschäftigt und mit der Frage, wie gut diese Techniken funktionieren: Zwar ist es richtig, dass ein Angreifer mit entsprechender Motivation und entsprechenden Ressourcen diese Schutzmechanismen immer durchbrechen werden kann, aber (1) sind auch hardwarebasierte Techniken nicht vollumfänglich sicher, (2) ist allein aus Kostengründen nicht absehbar, dass im Internet of Things jedes Gerät mit entsprechender Schutzhardware ausgestattet werden wird und (3) ist es bemerkenswert, wie stark diese Techniken etwa im Schutz von Spielen in der Praxis eingesetzt werden. Maschinenlernen für Malware-Erkennung (Wüchner 2016) und die Frage, wo gelabelte Daten für solche Verfahren herkommen können haben in der Vergangenheit ebenfalls eine Rolle gespielt.

In der Vergangenheit haben wir uns weiterhin intensiv mit der verteilten Daten-Nutzungskontrolle auseinandergesetzt, einer Verallgemeinerung der Zugriffskontrolle (access control) auf die Zukunft und in verteilten Systemen: Was passiert mit Daten, wenn sie herausgegeben worden sind? Dabei spielen Anforderungen der Art "Daten müssen nach dreißig Tagen gelöscht werden", "Daten dürfen fünf Jahre lang nicht gelöscht werden", "Datenbesitzer muss bei Datenweitergabe informiert werden", "Daten dürfen nur anonymisiert weitergegeben werden" und "Bilder aus meinem sozialen Netzwerk-Profil dürfen nicht gespeichert oder ausgedruckt werden" eine Rolle. Relevant sind sie im Datenschutz, der Compliance mit regulatorischen Rahmenwerken, in der Cloud verteilt implementierten Geschäftsprozessen, dem Management von intellektuellem Eigentum und dem Schutz von Geheimnissen. Das Problemfeld umfasst eine Vielzahl faszinierender theoretischer, konzeptioneller, methodischer und technischer Herausforderungen. Einige Demos sind online. Abgeschlossene Dissertationen beschäftigen sich mit der Verbindung von Informationsflusskontrolle und Daten-Nutzungskontrolle über verschiedene Abstraktionsebenen hinweg (Lovat 2015, Fromm 2020), Daten-Nutzungskontrolle in verteilten Systemen (Kelbert 2016), Datennutzungskontrolle für datenschutzgesetzgerechte Kameraüberwachung (Birnstill 2016) und die Ableitung von maschinenverständlichen Policies aus für Menschen verständlichen Policies (Kumari 2015). Biers interdisziplinäre Arbeit (2017) untersucht den negativen Effekt von Datenauskunftssystemen auf den Datenschutz.

Entsprechende Projekte werden von DFG, EU, BMBF, BMWi, Bayerischen Staatsministerien und vor allem der Industrie gefördert (Auswahl):

  • Optimization of Regression Test Selection (2020-2023), Industriepartner
  • Recognition of Failure Patterns in HiL Test Benches (2020-2023), Bundesministerium für Wirtschaft und Technologie
  • Conflict resolution and causal inference with socio-technical models (2020-2023), Deutsche Forschungsgemeinschaft
  • Inverse Transparenz (2018-2022), Bundesministerium für Bildung und Forschung
  • Software Intelligence: Evidence-Based Real-Time Quality Management for Software Systems (2018-2021), Bundesministerium für Bildung und Forschung
  • Learning and Automating Expert Judgment on Source Code Quality (2018-2021), Industriepartner
  • Better Scenario Testing for automated driving systems (2019-2021), Industriepartner
  • Model-Based Derivation and Verification of Security Hardening Policies (2017-2021), Industriepartner
  • Integrity Protection in Microservices (2017-2019), Industriepartner
  • Intrusion Detection Systems for Automotive Security (2017-2020), Industriepartner
  • Automated Tests for Driver Assistance Systems (2016-2020), Industriepartner
  • Design methods for cyber-physical systems (2018-2019), Deutsche Forschungsgemeinschaft
  • Accountability for cloud products (2017-2018), Industriepartner
  • An Integrity Concept for a Document Management System (2016), Industriepartner
  • Reducing Test Efforts in the Automotive Domain (2015-2016), Industriepartner
  • Usage Control for the Cloud (2015-2016), Bundesministerium für Bildung und Forschung, Software-Campus
  • Precise and scalable system-wide data-driven usage control across layers of abstraction (2010-2016), Deutsche Forschungsgemeinschaft
  • Empirical ROI analysis of model-based software testing in the intralogistics domain (2014-2015), Industriepartner
  • Fault-Based Testing of Embedded Systems (2012-2016), Industriepartner
  • Tamper-Proofing Software (2015), Industriepartner
  • Automated Malware Analysis (2013-2015), Industriepartner
  • Countering Browser Hijacking (2013-2014), Industriepartner
  • Peer Energy Cloud (2011-2014), Bundesministerium für Wirtschaft und Technologie
  • IT-Privacy (2011-2013), Bundesministerium für Bildung und Forschung
  • Distributed Data Usage Control in the Cloud (2011-2012), Industriepartner
  • Secure Provisioning and Consumption in the Internet of Services (2010-2014), EU FP7 STREP
  • Towards Operational Privacy (2010-2011), Industriepartner
  • Managing Assurance, Security and Trust for Services (2008-2011), EU FP7 IP

 

Publikationen.