Gritschenberger, C. (2011). Security for the integration of software tools in multidisciplinary engineering processes [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://resolver.obvsg.at/urn:nbn:at:at-ubtuw:1-51400
Software Engineering ist zu einem integralen Bestandteil vieler Engineering-Prozesse in verschiedenen Bereichen geworden. Software wird verwendet, um das Verhalten komplexer Systeme sowohl im Produktionsbetrieb als auch im Entwicklungsprozess zu steuern. Der Begriff (Software+) Engineering wird verwendet, um eine solche software-intensive heterogene Engineering-Umgebung zu beschreiben. Um sich der Herausforderung der Integration der Vielzahl von Werkzeugen und Domänen anzunehmen, wurde der ``Open Engineering Service Bus'' speziell auf die Bedürfnisse von (Software +) Engineering konstruiert, um die Zusammenarbeit zwischen Engineering-Domains zu verbessern.<br />Mit zunehmender Komplexität der Projekte und dem wachsenden Wissen in vielen Bereichen, werden Projekte in kleinere Komponenten getrennt, die dann von verschiedenen beteiligten Parteien abgewickelt werden. Aus diesem Grund wird die Sicherheit der Software bei der Zusammenarbeit zuhehmend wichtiger. Daten und Infrastrukturen die über das Internet verteilt werden, sind einem breites Spektrum von Bedrohungen ausgesetzt.<br />Jede Partei in einem Projekt verfügt über Resourcen, die vor Zugriff von einer anderen Partei geschützt werden müssen. Ein gemeinsames Datenmodell, das es alle Beteiligten erlaubt einander zu authentifizieren wird entwickelt, um jeder Partei die Entwicklung eigener Zugriffskontrollen zu ermöglichen. Die Auslagerung dieser an werkzeugspezifische Implementierungen macht es schwierig, Prozesse in anderen Projekten mit unterschiedlichen Werkzeugen wiederzuverwenden.<br />Eine zusätzliche Kontrollschicht ist erforderlich, um diese von speziellen Implementierungen zu entkoppeln.<br />Basierend auf einem realen Szenario, in dem elektrische Planungstools von verschiedenen Anbietern über zwei Unternehmen integriert sind, werden Anwendungsfälle unter Berücksichtigung von Sicherheitsaspekten festgelegt. Mögliche Bedrohungen werden identifiziert und Komponenten zur Beseitigung dieser werden erstellt. Sie sind mit der Infrastruktur integriert und für andere Komponenten transparent. Ein Prototyp wird auf der Grundlage der OpenEngSB Forschungsprototyps implementiert. Die Lösung wird durch Integrations- und Systemtests, die auf den Anwendungsfällen basieren, validiert.<br />Die Hauptkomponenten sind eine Authentifizierungs- und eine Autorisierungskomponente sowie deren Integration in verteilten Umgebungen. Die Lösung eignet sich für die Umsetzung komplexer Zutrittskontrollstrukturen. Diese können an einem zentralen Ort und unabhängig von spezifischen Werkzeugen verwaltet werden. Die Integration ist meist nahtlos und hat kaum Auswirkungen auf die Nutzbarkeit für Entwickler und das Management, jedoch aber einen Einfluss auf die Leistung. Mit der zusätzlichen Zugriffskontrollschicht sind Werkzeuge austauschbar, während alle Interaktionen in Netzwerken gegen die häufigsten Bedrohungen gesichert sind.<br />
de
Software Engineering has become an integral part of many engineering processes in various domains. Software is used to control the behavior of complex systems in production, but is also used for support or control during development processes. The term (Software+) Engineering is used to describe such a software-intensive heterogeneous engineering environment. To address the challenge of integrating the variety of tools and domains involved the ``Open Engineering Service Bus'' was constructed to specifically suite the needs for (Software+) engineering with the goal to improve collaboration across engineering domains.<br />With increasing complexity of projects and the growing knowledge in many domains, projects are separated to smaller components which are then taken over by another party. With companies specializing on specific domains and the increased need to outsource tasks, security concerns when using software for collaboration become inherent. Data and infrastructure is shared on the Internet exposing it to a wide range of threats.<br />In a project every party has assets that need to be protected from access or modification by another party. For this to work a common model for exchanging data and other queries is established. The need for all parties to authenticate is considered in this model. This enables all parties to implement access control into their infrastructure. However relying on tool specific security implementations for access control makes it hard to exchange tools in a process or reuse processes in other projects. So an additional abstraction layer for access control is required to decouple it from specific tool implementations.<br />Based on a real world scenario where electrical planning tools from different vendors are integrated across two companies, usecases are specified with security in mind. Possible threats are identified and components for mitigating the threats are designed. They are integrated with the tool connector infrastructure and made transparent to other components. A prototype is implemented based on the OpenEngSB research prototype. The solution is validated by designing integration and system tests that are based on specified usecases.<br />The main components are an Authentication and Authorization component and integration of these security concepts in distributed environments.<br />The solution is suitable for implementing complex access control structures. The constructed policies can be designed in a central place and are independent of the specific tools used. The integration is mostly seamless and hardly affects the usability for developers and management, but has a noticeable impact on performance. With the additional access control layer the tools remain completely exchangeable while all interactions across networks are secured against the most common threats.<br />