
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 können Sie effektiv gegen diese Gefahren vorgehen? In diesem Beitrag erfahren Sie, wie Sie die Sicherheit Ihrer Web- oder mobilen App gewährleisten können.
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. Achten Sie daher unbedingt auf die Sicherheit.
- Die Gründe sind fehlende Sicherheitsanforderungen, eine zu hohe Komplexität und ein fehlendes Monitoring.
- Als Mindestmaß sollten Sie in jedem Fall die OWASP TOP 10 heranziehen, welche die zehn häufigsten Sicherheitslücken darstellen.
- Als erweiterten Schutz ermitteln Sie zunächst den Schutzbedarf Ihrer Software. Anhand des Schutzbedarfs erhalten Sie ü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 stellen Sie sich 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 sollten Sie bei Ihrer Agentur darauf achten, dass Sie mindestens die Erfüllung und Dokumentation der OWASP TOP 10 mit einplanen.
Schutzbedarf einer Software
Wenn Sie einen Schritt weiter gehen, besteht auch die Möglichkeit herauszufinden, welchen Schutzbedarf Ihre Software benötigt, um daraus über Reifegrade Aktivitäten abzuleiten. Dies ist vor allem sinnvoll, wenn Sie 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 Ihnen 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üfen Sie Ihre 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 definieren Sie dann den Schutzbedarf, indem Sie bestimmte Fragen zur Einordnung in den richtigen Bereich beantworten. Als Resultat erhalten Sie für jede Software-Komponente einen Schutzbedarf, den Sie bei der Entwicklung beachten sollten. Daraus leiten sich bestimmte Maßnahmen für die Entwicklung ab.
Wenn Sie Ihre Anforderungen schon kennen und ein wenig Zeit mitbringen, können Sie diese Analyse selbst durchführen. Dennoch empfiehlt es sich, das von einer Agentur machen zu lassen.
Dadurch, dass Sie den Schutzbedarf ermittelt haben, können Sie nun leichter überprüfen, ob Ihre Software-Agentur die richtigen Maßnahmen trifft, um Ihre 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.