Security Development Lifecycle

Secure Software Development Lifecycle (SDLC) ist ein Muss für jedes Softwareentwicklungsunternehmen, das sich auf dem Markt behaupten will.

Unser Unternehmen hat die besten Verfahren für die Herstellung sicherer Software in den Entwicklungsprozess integriert, was uns erlaubt unseren Kunden wesentlich zuverlässigere und sicherere Produkte zur Verfügung zu stellen.

Insbesondere berücksichtigt der Infotecs SDLC (ISDL)-Prozess die Empfehlungen vom BSI, von NIST (z.B. NIST SP 800-64, SP 800-100), die OWASP-Materialien und die Anforderungen der ISO/IEC 27000-Normen. ISDL ist ein umfassender unternehmensweiter Prozess, der sich aus folgenden Bestandteilen zusammensetzt:

Schulungsprogramm

Ohne ein effektives Schulungsprogramm wäre die Einführung von ISDL nicht möglich. Wir haben eine ganze Reihe von Konzepten für interne Schulungen in Unternehmen erstellt. Die Mitarbeiter bekommen auf diese Weise die fehlenden Kenntnisse auf dem Gebiet der Informationssicherheit, die notwendige Unterstützung und die Gewährleistung der Qualifikationssteigerung unter Berücksichtigung der Aufgaben- und Verantwortungsbereiche von Mitarbeitern im Rahmen des ISDL. Unsere Fortbildungskurse beinhalten sowohl theoretisches Wissen, als auch eine ganze Reihe von praktischen Übungen, die für gut qualifizierte technische Fachkräfte notwendig sind.

Sammeln der Anforderungen

Die Definition der Produktanforderungen führt zur Kompromisssuche zwischen den Geschäftsanforderungen des Auftraggebers und dem für den Schutz seiner digitalen Ressourcen benötigten Sicherheitslevel. Dieser Kompromiss kann ausschließlich durch Sammeln und sorgfältiges Analysieren von Marktanforderungen, entsprechenden Richtlinien und Gesetzen sowie Normen und Best Practices erzielt werden.

Anforderungen des Marktes

Das Sammeln der Marktanforderungen hilft das Problem des Kunden zu definieren, damit es dann durch ein Produkt oder Service gelöst werden kann. In dieser Phase ist es äußerst wichtig möglichst viele Details zu klären. Z.B. die notwendige Funktionsfähigkeit des Produkts, mögliche Beschränkungen im Zusammenhang mit der Produktumgebung oder welcher Datentyp geschützt werden muss.

Richtlinien und Gesetze

Die Berücksichtigung aller geltenden Richtlinien und Gesetze in dieser frühen Phase senkt die Kosten, das Risiko von Nichtübereistimmungen und hilft dem Produkt die Marktreife insgesamt schneller zu erreichen.

Normen und Best Practices

Obgleich die Gesetzgebung oft kein strenges Befolgen von Normen und Best Practices vorschreibt, bleibt ihr Einhalten von großer Wichtigkeit und schafft gute Voraussetzungen für die Konkurrenzfähigkeit des Unternehmens und seiner Produkte.

Projektierung

Bei diesem Schritt werden die von uns gesammelten Anforderungen sorgfältig analysiert, um zu ermitteln, wie sie im Produkt realisiert werden können. Dabei suchen wir stets nach den zuverlässigsten und sichersten Wegen für die Umsetzung. Im Falle einer Nutzung von Fremdsoftware unterliegt diese unserer genauesten Kontrolle. Für diesen Zweck entwickeln wir unter anderem Angriffsflächenanalysen und Bedrohungsmodelle.

Analyse externer Komponenten

Bei kommerzieller Nutzung externer Software sind die Geschäftspartner von uns verpflichtet, aufgetretene Sicherheitslücken in kürzester Zeit zu melden damit wir möglichst schnell die notwendigen vorbeugenden Maßnahmen ergreifen können. Für den Fall, dass eine Open Source Software in unseren Produkten genutzt oder eingeplant wird, führen wir die automatische Nachverfolgung der Informationen zur Aufdeckung von Sicherheitslücken in dieser Software durch, um rechtzeitig die notwendigen Änderungen vorzunehmen.

Angriffsflächenanalyse

Der Zweck dieser Analyse liegt darin, herauszufinden, zu welchen Komponenten oder Funktionen der Angreifer Zugang hat und welche von ihnen er für sich nutzen kann. Die Anzahl dieser Komponenten und Funktionen wird durch die Angriffsflächenanalyse minimiert.

Entwicklung eines Bedrohungsmodells

Einer der wichtigsten Abschnitte in der Entwicklung von Produkten mit vorgegebenen Sicherheitsanforderungen ist die Erstellung eines Bedrohungsmodells. Bei der Entwicklung des Bedrohungsmodells werden die Ergebnisse des vorherigen Abschnitts berücksichtigt. Des Weiteren benutzen wir dieses Modell für die Bestimmung des notwendigen Sicherheitslevels und die anschließende Wahl entsprechender Schutzmaßnahmen, die in diesem Produkt zu realisieren sind.

Entwicklung

Die sichere Entwicklung konzentriert sich in erster Linie auf die Vermeidung von Codierungsfehlern während der Entwicklungsphase. Dies kann erreicht werden durch:

  1. Umsetzung von strengen Standards für sichere Codierung und Überwachung ihrer Einhaltung mittels der Codeanalyse.
  2. Integration moderner automatisierter Tools (static analyzers, Compiler, Versionskontrollsysteme usw.) in die SW-Entwicklung.

Standard für sichere Codierung

Wir haben unseren eigenen Standard für sichere Codierung ausgearbeitet und in den Prozess der Software-Entwicklung implementiert. Dieser Standard ist ebenfalls Teil des Schulungsprogramms für Mitarbeiter und verbindlich für technische Fachleute, die an der Entwicklung einer sicheren Software beteiligt sind.

Codeanalyse

Die von Sicherheitsexperten durchgeführte Codeanalyse und Code-Review helfen Fehler in der Software-Entwicklung rechtzeitig zu beseitigen. Diese Verfahren zeigen gute Ergebnisse sowohl bei zufälligen, als auch bei logischen Codefehlern.

Automatisierte Entwicklungstools

Für die Entwicklung einer Software benötigt man automatisierte Entwicklungstools (Compiler, Versionskontrollesysteme, Codeanalyzer usw.), die entsprechend konfiguriert sein müssen. Um stabile Effektivität dieser Tools zu sichern, müssen sie rechtzeitig erneuert werden. Deswegen sind wir bei der Software-Entwicklung stets bemüht, die aktuellsten Versionen dieser automatisierten Tools zu verwenden.

Verifizierung

Ziel dieser Phase ist es, zu überprüfen, ob ein Produkt den Anforderungen der Spezifikation und dem erforderlichen Sicherheitsniveau entspricht. Während Integrations-, Regressions- und Unit-Tests für die Funktionsbewertung hilfreich sind, sind Sicherheitstests, Schwachstellenüberprüfung und Penetrationstests ein wichtiger Bestandteil der Sicherheitstests, die in der Verifizierungsphase durchgeführt werden.

Schutzmaßnahmenprüfung

In diesem Abschnitt werden die Schutzmaßnahmen getestet, um zu prüfen, ob sie fachgerecht ausgearbeitet wurden und tatsächlich das benötigte Sicherheitslevel gewährleisten.

Schwachstellen-Scanning

Regelmäßiges automatisiertes Scannen von Sicherheitsrisiken erkennt und beseitigt Sicherheitsrisiken, bevor ein Produkt veröffentlicht wird. Darüber hinaus wird empfohlen, in diesem Schritt Fuzz-Tests durchzuführen, um zu überprüfen, ob ein Programm sowohl auf erwartete als auch auf unerwartete Eingabewerte korrekt reagiert. Dadurch werden Pufferüberläufe, Eingabevalidierungsfehler und andere Sicherheitslücken rechtzeitig identifiziert.

Penetrationstest

Unsere Sicherheitsexperten führen ein Penetrationstest durch, der gute Ergebnisse bei der Ermittlung von komplizierten Schwachstellen liefert und daher das Schwachstellen-Scanning mithilfe automatisierter Tools sehr gut ergänzt.

Freigabe und Support

Die Freigabe eines Produkts erfolgt erst nach erfolgreicher abschließender Sicherheitsprüfung (FSR – Final Security Review), die von unseren Sicherheitsexperten und dem Entwicklungsteam ausgeführt wird. Außerdem haben wir einen Incident Response Plan zur Beseitigung potentieller Sicherheitsprobleme in unseren Produkten ausgearbeitet. Wir bieten auch technischen Support an und stellen unseren Kunden rechtzeitig alle notwendigen Informationen über die geplanten Produktänderungen zur Verfügung.

Abschließende Sicherheitsprüfung / Zertifizierung

Der Hauptzweck einer abschließenden Sicherheitsprüfung ist die Bewertung der Produktreife und somit die Entscheidung, ob das Produkt auf den Markt gebracht werden kann. Diese Prüfung beinhaltet die Sicherheitsbewertung des Produkts und, wenn es benötigt wird, seine Zertifizierung.

Incident Response Plan

Logischerweise will kein Unternehmen verwundbare Software herstellen. Dennoch können Fehler während der Entwicklungsphase nicht komplett vermieden werden Genauso wenig ist es möglich, das Auftreten von neuen Schwachstellen zu verhindern. Aus diesem Grund kann das Vorhandensein eines frühzeitig vorbereiteten Incident Response Plans viel Zeit und Geld sparen.

Konfigurations- und Änderungsmanagement

Für den späteren Einsatz im Produktionsumfeld muss quasi jedes fertige Produkt konfiguriert werden. Damit das Produkt während des Betriebs das benötigte Sicherheitslevel auch weiter gewährleisten kann, kommt der Produktüberwachung in diesem Fall große Bedeutung zu. Das Produkt muss bei Erscheinen einer neuen Version zur Beseitigung aufgetretener Kodierungsfehler und/oder Schwachstellen rechtzeitigt aktualisiert werden.

Außerbetriebnahmes

Wenn es an der Zeit ist, ein Produkt zu entsorgen (aufgrund seiner Veralterung, der Notwendigkeit einer Aktualisierung oder aus anderen Gründen), müssen geschützte Informationen dennoch sicher aufbewahrt werden. Um dies richtig anzugehen, sollte zuvor der Entsorgungsprozess geplant und durchdacht werden. Dabei ist die Erhaltung wertvoller Informationen, das sichere Löschen von Medien sowie generell die sichere Entsorgung von Hard-und Software zu beachten.

Datenerhaltung

Die Erhaltung wertvoller Daten schließt nicht nur den gesicherten Zugriff auf diese Daten (z.B., wenn das Gesetz es so verlangt) ein, sondern auch die Gewährleistung effektiven Schutzes während und nach der Außerbetriebnahme.

Datenlöschung

Um die Weitergabe geschützter Daten an unbefugte Dritte zu verhindern, muss auf die Auswahl der Verfahren und Geräte, die zur Löschung der Datenträger eingesetzt werden, besonders geachtet werden. Die Gewährleistung des benötigten Sicherheitslevels ist für die Wahl entsprechender Methoden (Überschreiben, Entmagnetisieren oder Vernichtung) ausschlaggebend.

Entsorgung von Software und Hardware

Eine physische Vernichtung von Hardware ist nur dann notwendig, wenn in diesem Fall keine andere Datenlöschungsmethode in Frage kommt. Es wird auch dringend empfohlen veraltete Software zu entfernen, da anderenfalls ihre weitere Benutzung neue Risiken verursachen könnte.