Mann erklärt einer Gruppe Sicherheit in Software
Softwareentwicklung

Was macht eine Software sicher?

Jeden Tag hören wir von verheerenden Sicherheitslücken und Datenlecks, die Unternehmen und Nutzer gleichermaßen betreffen. Doch wie kannst du effektiv gegen diese Gefahren vorgehen? In diesem Beitrag erfährst du, wie du die Sicherheit deiner Web- oder mobilen App gewährleisten kannst.

  • HauptartikelSoftware-Entwicklung

  • Lesezeit5 Minuten

Das Wichtigste zusammengefasst

  • Im Internet verfügbare Software ist ein großes Einfallstor für Sicherheitslücken, die erhebliche Folgen haben können. Achte daher unbedingt auf die Sicherheit.
  • Die Gründe sind fehlende Sicherheitsanforderungen, eine zu hohe Komplexität und ein fehlendes Monitoring.
  • Als Mindestmaß solltest du in jedem Fall die OWASP TOP 10 heranziehen, welche die zehn häufigsten Sicherheitslücken darstellen.
  • Als erweiterten Schutz ermittelst du zunächst den Schutzbedarf der Software. Anhand des Schutzbedarfs erhältst du über den Reifegrad die Information, welche Aktivitäten umgesetzt und dokumentiert werden müssen, um ein Mindestsicherheitsniveau zu erreichen.

Warum Sicherheit in Software wichtig ist

Da Software üblich über das Internet als Web- oder mobile Apps verfügbar gemacht werden, sind sie ein leichtes Ziel für Angriffe, wenn sie nicht entsprechend geschützt sind. Dies bestätigt auch der UK Security Breach Investigations Report 2010, der darlegt, dass 86 Prozent der Angriffe auf Unternehmen durch Sicherheitslücken in Web Apps entstanden sind. Der Rest ist durch die Infrastruktur des Unternehmens selbst entstanden.

Leider ist die Tendenz weiter steigend. Ebenfalls werden immer mehr hochsensitive Daten über Portale oder sozialen Netzwerke verwaltet, auch natürlich über dessen mobile Apps. Was bedeutet das aber für Unternehmen? Wenn Unternehmen die Sicherheit vernachlässigen, geht das oftmals mit großen Problemen für die Unternehmen selbst und deren Kunden einher:

  • Funktionen der Anwendungen fallen aus, sind nur eingeschränkt verfügbar oder werden missbräuchlich verwendet
  • Vertrauliche Daten des Unternehmens oder der Kunden werden gestohlen
  • Negativer Einfluss auf die Marke durch die bekannt gewordene Sicherheitslücke
  • Haftung aufgrund von Verstoß gegen Normen und Gesetze (z. B. DSGVO)

Die Gründe für unsichere Software

An diesem Punkt stellst du dir bestimmt die Frage, warum Software so schlecht geschützt ist, obwohl bekannt ist, dass Sicherheitslücken zu großen Problemen führen. Folgende Gründe sind dafür am meisten verantwortlich:

  • Unternehmen definieren keine Anforderungen an die Sicherheit der Anwendung. Sie sind lediglich auf das primäre Geschäftsziel ausgerichtet.
  • Oftmals werden in Software etliche Bibliotheken, Frameworks und Schnittstellen genutzt bzw. bieten eine Vielzahl an Funktionalitäten. Diese Komplexität bietet eine größere Angriffsfläche und auch eine schlechtere Testbarkeit.
  • Das Thema Sicherheit wird zu positiv wahrgenommen und auf die lange Bank geschoben, da Ereignisse nicht konsistent erfasst, analysiert und ausgewertet werden. Es herrscht ein mangelndes Sicherheitsbewusstsein in vielen Unternehmen.

Das Mindestmaß an Sicherheit

Die OWASP TOP 10 für Web Apps sowie die OWASP Mobile TOP 10 für mobile Apps ist eine Liste der zehn häufigsten Sicherheitslücken im jeweiligen Bereich, die vom Open Web Application Security Project (OWASP) erstellt werden.

Die Liste deckt eine breite Palette der am häufigst auftretenden Sicherheitslücken ab. Des Weiteren sind sie sehr gut dokumentiert und werden regelmäßig aktualisiert, um mit den neuesten Bedrohungen und Angriffstechniken Schritt zu halten.

Folglich solltest du bei deiner Agentur darauf achten, dass diese mindestens die Erfüllung und Dokumentation der OWASP TOP 10 mit einplanen.

Schutzbedarf einer Software

Wenn du einen Schritt weiter gehst, besteht auch die Möglichkeit herauszufinden, welcher Schutzbedarf deine Software benötigt, um daraus über Reifegrade Aktivitäten abzuleiten. Dies ist vor allem sinnvoll, wenn deine Organisation eine öffentliche Institution sind oder erhöhte Anforderungen an das Thema Sicherheit haben. Die folgende Auflistung gibt eine Übersicht:

  • Normaler Schutzbedarf: Die Schadensauswirkung ist begrenzt und überschaubar.
  • Hoher Schutzbedarf: Die Schadensauswirkung kann beträchtlich sein.
  • Sehr hoher Schutzbedarf: Die Schadensauswirkung kann ein existentiell bedrohliches, katastrophales Ausmaß erreichen.

Eine Agentur kann dir bei der Bestimmung des Schutzbedarfs anhand eines Fragenkatalogs ebenfalls weiterhelfen. Hierzu wird in der Regel der BSI-Standard 100-2 (Kapitel 4.3, ferner 4.3.2 für Anwendungen) herangezogen.

Hierbei prüfst du die Anforderungen auf die Grundwerte Vertraulichkeit, Sicherheit und Integrität und finden aus Anwendersicht heraus, welche Sicherheitsvorfälle eintreten können. Für jedes dieser Grundwerte definierst du dann den Schutzbedarf, indem du bestimmte Fragen zur Einordnung in den richtigen Bereich beantworten. Als Resultat erhältst du für jede Software-Komponente einen Schutzbedarf, den du bei der Entwicklung beachten solltest. Daraus leiten sich bestimmte Maßnahmen für die Entwicklung ab.

Wenn du deine Anforderungen schon kennst und ein wenig Zeit mitbringst, kannst du diese Analyse selbst durchführen. Dennoch empfiehlt es sich, das von einer Agentur machen zu lassen.

Dadurch, dass du den Schutzbedarf ermittelt hast, kannst du nun leichter überprüfen, ob deine Software-Agentur die richtigen Maßnahmen trifft, um deine Software sicher zu entwickeln. Dies funktioniert über Reifegrade.

Reifegrad des Entwicklungsprozesses

Der Reifegrad (nach dem OWASP SAMM und dem BSIMM Report) definiert, wie viele Sicherheitsaktivitäten im Entwicklungsprozess umgesetzt und dokumentiert worden sind. Dabei gibt es für einen höheren Schutzbedarf entsprechend mehr Aktivitäten zu erledigen.

Beispiele für Aktivitäten gehen von der Dokumentation des Codes über die Verwendung von Kryptografie bis hin zur Durchführung von Penetrationstests. Die Klassifizierung erfolgt in den verschiedenen Kategorien von der Vergabe des Projekts, über die Konzeption, über die Entwicklung bis hin zum Testen und der Auslieferung sowie des Betriebs der Anwendung.

Es werden die folgenden Reifegrade unterschieden:

  • Reifegrad 0 (0%) - Nicht vorhanden: Aktivitäten sind nicht umgesetzt.
  • Reifegrad 1 (0% - 50%) - Ad Hoc: Aktivitäten sind teilweise umgesetzt.
  • Reifegrad 2 (50% - 100%) - Partiell: Aktivitäten sind größtenteils umgesetzt.
  • Reifegrad 3 (100%) - Vollständig: Aktivitäten sind vollständig umgesetzt.
  • Reifegrad 4 (100%+) - Best in Class: Optionale Aktivitäten sind auch umgesetzt.

Damit ein Mindestsicherheitsniveau vorhanden ist, muss im Entwicklungsprozess mindestens der Reifegrad 3 erfüllt sein.

Hey Dakitec’,
könnt ihr mein Software-Projekt entwickeln?
Sehr gerne,
hier geht es weiter!
Mehr erfahren