Secure Software Engineering: Aspekte zur Cyber-Resilienz

25.02.2022
Max Perner, Olga Jaufman, Thomas Fehlmann, Vera Gebhardt, Sebatian Dengler

SECURITY-RELEVANTE SPOTLIGHTS AUS DER PRAXIS

Eine Arbeitsgruppe des ASQF entwickelt zurzeit einen Lehrplan zu Secure  Software Engineering (SSE). Im Zentrum steht die Cyber Security in der Anwendungsentwicklung. Je weiter die digitale Transformation voranschreitet, desto wichtiger wird es, schon beim Planen von Software die Sicherheit mit einzubauen. Es geht darum, Entwicklern die Best Practices nahezubringen vom Lifecycle der Software über Requirements Engineering bis hin zum Testing  und den Betrieb.

Das SQ Magazin versammelt an dieser Stelle Statements von Mitgliedern der Arbeitsgruppe. Sie stellen die wichtigsten Aspekte von Sicherheit ins Licht und machen deutlich, wie energisch die Debatte um Cyber Resilienz in Industrie und Fortbildung ist.

Max Perner, Infoteam Software AG

Den Begriff Resilienz hat seinen Ursprung in der Psychologie. Er beschreibt die Anpassungsfähigkeit von Menschen und wie sie auf Probleme und Veränderungen durch die Anpassung ihres Verhaltens reagieren. Wenn Ingenieure von Resilienz sprechen, dann meinen sie meistens eine technische Seite von Systemen und ihren Widerstand gegen Störungen. Der Security Engineer betrachtet ein System, das in einem Kontext mit anderen Systemen existiert. Und all diese Systeme bauen Menschen. Sie bauen sie, sie bedienen sie, begehen Fehler und manche gehen auch mit bösem Willen vor.

Dieses Spannungsfeld überhaupt wahrzunehmen, ist nicht leicht: Andere Standpunkte einzunehmen, den Blick zu ändern und die Perspektive andere einzunehmen, fällt manchen schwer. Durch ein systematisches Vorgehen können diese Schwierigkeiten bewältigt werden. Das ist der Kern des besonnenen, analytischen Vorgehens mit dem Secure Software Engineering Systeme härtet: Risiken werden in Betracht gezogen, bewertet und behandelt, um unerwünschte Konsequenzen zu vermeiden.

Resilienz und Secure Software Engineering haben noch eine weitere wichtige Gemeinsamkeit in der Reaktion auf Änderungen. Ein System ist bei Auslieferung nicht  abgeschlossen. Natürlich wurden beim Aufbau des Systems alle Aufgaben erledigt. Aber mit dem Release beginnt ein Prozess der kontinuierlichen Beobachtung der Bedrohungen, der Wachsamkeit gegenüber neu bekannt gewordenen Schwachstellen und der Bewältigung dieser Probleme. So versucht das Secure Software Engineering den Resilienzbegriff eher wie ein Biologe oder Psychologe zu denken: Nicht nur als „Weiter-So-Trotz-Schwierigkeiten“, sondern auch Widrigkeiten als Chance zu Wachstum und Verbesserung zu sehen.

Olga Jaufman, Siemens Healthcare GmbH

Je vernetzter Systeme sind, desto mehr neue Möglichkeiten zur effektiven Zusammenarbeit von Menschen und Maschinen entstehen. Leider jedoch auch Möglichkeiten für Missbrauch. Systeme können durch frühzeitiges Beachten von Security-Maßnahmen robuster gestaltet und so Angriffe verhindert werden. Das Verständnis und die Entscheidung für notwendige Security Maßnahmen wird durch erprobte Maßnahmen und Methoden der Security Branche unterstützt. Genau an dieser Stelle setzt das Secure Software Engineering an.

Secure Software Engineering

  • bringt Verständnis für Erfordernis und Nutzen von Security
  • erlaubt systematisch Sicherheitsanforderungen zu definieren und umzusetzen
  • etablierte Prozesse/ Konzepte/ Methoden und unterstützt deren Einführung
  • erweitert Kompetenz und bringt dieses Wissen gezielt ein

Das Grundverständnis umfasst Security Schutzziele, Datenschutz, unternehmensübergreifende Sicherheit, Software-Lebenszyklus, Prozesse und IT-Sicherheit. Das Ziel ist es, eine Software zu schreiben, die nach Anforderungen und aktuellem Wissen einem Angreifer keine Schwachstellen bietet. Dazu gehört Datenschutz, sichernde Prozesse, sichere Infrastruktur, sichere Architektur, Code, der dem sicheren Design genügt und Tests, die auf das Aufdecken der Schwachstellen gerichtet sind. Ein sicheres Softwareprodukt schützt Daten und Informationen so, dass unautorisierter (lesender oder verändernder) Zugriff (von Personen oder Systemen) verhindert wird und autorisierter Zugriff (von Personen oder Systemen)  nicht  verweigert wird. Ein sicheres Produkt verhindert unerwünschten Zugriff auf Systeme, Programme und Daten. Die Bedrohung entsteht außerhalb des betrachteten Systems und wirkt gegebenenfalls in das System hinein.

Zu den Grundbegriffen von Secure Software Engineering gehören Gefahr, Gefährdung, Risiko und Bedrohung. Im Rahmen von Risikoanalysen werden die Risiken beurteilt und behandelt. Man legt den zu betrachtenden Systembereich, fest und identifiziert das Level der möglichen Gefährdungen der Cybersecurity. Falls die Risikoeinschätzung auf dem hohen Level vertretbare Grenzrisiko überschreitet, werden entsprechende Maßnahmen eingeleitet.

Besonders im Kontext der Pandemie ist es essentiell für die Unternehmen trotz nachteiliger Cyber-Ereignisse kontinuierlich das beabsichtigte Ergebnis zu erzielen. Cybersecurity schützt Netzwerke, Computersysteme und Geräte vor Diebstahl oder Beschädigung von Hard- und Software oder von verarbeiteten Daten  sowie vor Unterbrechung oder Missbrauch der angebotenen Dienste und Funktionen. Es existieren unterschiedliche Techniken, um solche Sicherheitslücken in verschiedenen Phasen des Anwendungslebenszyklus aufzudecken; z. B. während des Designs, der Entwicklung, Bereitstellung, Aktualisierung und Wartung. Es gibt spezifische Standards und Compliance Anforderungen, die beachtet werden müssen, zum Beispiel die gesetzlichen Anforderungen an Informationssicherheit (wie Datenschutz-Grundverordnung DSGVO). Für den Entwickler sind diese Anforderungen relevant, wenn auch der Einsatzbereich bedeutsam relevant für die gesetzlichen Pflichten des Anwenders ist.

Standards, Normen und Regelwerke bestimmen den Stand der Technik. Aus regulatorischen Anforderungen werden Qualitätsmerkmale abgeleitet und priorisiert. Qualitätsaspekte (wie Vertraulichkeit, Integrität und Verfügbarkeit) sind als wichtig zu behandeln und nachweisbar zu prüfen – zum Beispiel in Reviews und Retrospektiven. Ausgehend von  Sicherheitsanforderungen wird entschieden, wie Architektur aussehen soll. Auf Architekturebene wird Sicherheit durch Befolgen der Design-Prinzipien sichergestellt. Moderne Software Architekturen zeichnen sich durch die Eigenschaften: Monitoring, Tracking, Tracing, Encrypting Data in Motion.

Ausgehend vom bestimmungsgemäßen Gebrauch wird im Kontext von Secure Software Engineering Software entwickelt. Ziele von Vertretern von Interessengruppen und unternehmensweite Risikobewertungen werden als Anforderungen an den Entwickler ausformuliert. Insbesondere mit Qualitätsmanagement und Informationssicherheitsmanagement kommen vielfältige Anforderungen – auch an die Vorgehensweise zur Software-Entwicklung. Hier gilt es vorrangig Prozesse zu befolgen und zu dokumentieren. Die Konfiguration von Systemen, Administration und das Einhalten von organisatorischen Maßnahmen sind ebenfalls wichtig.

Ein bestimmungsgemäßer Gebrauch stellt hohe Anforderungen an die IT-Administration. Die Integration der Securitybetrachtungen in die Software-Engineering-Prozesse beinhaltet sowohl die Definition der Schutzwerte als auch der schutzwerten Güter im Systemkontext des Produkts, die Bestimmung der Gefährdungen, eine Modellierung der Angriffe, die Definition der konkreten Anforderungen an das  Produkt und eine Prüfung der korrekten Umsetzung. Wie aufgezeigte Security Aspekte zu berücksichtigen und sicherzustellen sind, soll der ASQF Secure Software Engineer  Kurs  näher  bringen. Der Kurs ist nach dem Lehrplan der ASQF SEE Gruppe entwickelt und die Inhalte sollen anhand von praktischen Beispielen mit den von Teilnehmern gewünschten Schwerpunkten vermittelt werden.

Thomas Fehlmann, Euro Project Office AG

Die 4. Industrielle Revolution ist da und bringt uns cyber-physische Produkte: autonome, vollautomatische Maschinen, wie Fahrzeuge oder medizinische Instrumente, die sich wie von selbst fortbewegen und mit denen man nicht nur misst, sondern heikle Eingriffe am Organismus macht. Es sind lernende Systeme, die nicht nur Neues lernen, sondern auch verlernen können. Für mich sind das wunderbare Produkte, primär Softwareprodukte, die mit modularer Hardware aufzeichnen, kommunizieren, agieren, räsonieren, aber auch Schaden anrichten können.

Der Beruf Software-Ingenieur wandelt sich. Alle, die ihn ergreifen, werden zu Kunstschaffenden, zu dirigierenden Personen, die intelligente Dinge orchestrieren. Sie alle sollten nicht nur Noten, respektive Programmiersprachen, lesen können, sondern auch wissen, wie sie ihre Werke für alle sicher und akzeptabel machen. Secure Software Engineering stellt Nutzerinnen und Nutzer, ihre Sicherheit und den Schutz ihrer Privatsphären ins Zentrum. Das ist einfach gesagt, aber nicht so ohne Weiteres umzusetzen. Es braucht dafür spezielle Kenntnisse.

Vera Gebhardt, Tecmata GmbH

Heute und noch viel intensiver in Zukunft wird “Sicherheit” in Form von Safety bzw. Security in allen digitalen Projekten auftauchen. Der Bedarf daran, die Basics der Security Anforderungen und die damit verbundenen Methoden und Entwicklungsprozesse zu kennen und zu verstehen ist enorm. Dieses Verständnis zeigen alle, Auftraggeber und Auftragnehmer, Nutzerinnen und Nutzer. Für alle ist klar, dass sie Verantwortung übernehmen müssen und Security in Form integrierter Prozesse in Organisationen und in die Entwicklung und Produktion von Software aufnehmen müssen.

Sebastian Dengler, Isyst Intelligente Systeme GmbH

Eine von vielen Definitionen von Resilienz bezeichnet diese als die Fähigkeit von Systemen, bei Störungen nicht vollständig zu versagen, sondern wesentliche Systemeigenschaften aufrechtzuerhalten. Das Konzept der Resilienz beschreibt eine gewisse Widerstandsfähigkeit gegenüber Angriffen und Störungen zur Vermeidung von Ausfällen. Maßnahmen zur Cyber Security dienen vornehmlich dem Schutz technischer Systeme, deren Bestandteilen und den der verwerteten Daten gegenüber eben solchen Angriffen und Störungen.

Ein essentieller Baustein solcher Systeme ist deren Software, die mindestens ebenso resilient sein muss. Somit bildet ein solides Grundwissen auf dem Gebiet der sicheren Software-Entwicklung die wesentliche Grundlage für resiliente technische Systeme. ■

Mehr Infos zur Arbeitsgruppe

B. Scharte, K. Thoma: Resilienz – Ingenieurwissenschaftliche Perspektive. In: http://www.emi.fraunhofer.de/en.html

0 Kommentare

Einen Kommentar abschicken

Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.