Suchen

Definition Softwaresicherheit Was ist Softwaresicherheit?

| Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Peter Schmitz

Softwaresicherheit schützt Anwender oder Unternehmen vor Risiken, die im Umgang mit der Nutzung von Software entstehen können. Unsichere Software gefährdet die Integrität der Daten und die Verfügbarkeit der Anwendungen oder dient Hackern als Angriffspunkt. Um sichere Software zu realisieren, sind angepasste Entwicklungsprozesse notwendig.

Firma zum Thema

Softwareentwickler müssen die Softwaresicherheit schon während der Programmierung berücksichtigen.
Softwareentwickler müssen die Softwaresicherheit schon während der Programmierung berücksichtigen.
(Bild: gemeinfrei / Pixabay )

Ziel der Softwaresicherheit ist es, Anwender oder Unternehmen vor Risiken zu schützen, die bei der Verwendung von fehlerhafter Software und beim Betrieb von unsicheren Anwendungen entstehen können. Sie sorgt für die Verfügbarkeit der benötigten IT-Ressourcen und verhindert, dass Daten gestohlen, manipuliert oder unbefugt gelesen werden.

Bei mangelnder Softwaresicherheit bleiben Fehler wie Zero-Day-Exploits lange Zeit verborgen und lassen sich unbemerkt von Angreifern ausnutzen. Hohe finanzielle Schäden, Produktionsausfälle oder Imageverlust sind die Folge. Um Softwaresicherheit zu erreichen, werden bereits im Entwicklungsprozess entsprechende organisatorische und technische Maßnahmen getroffen. Ausführliche Tests der Software gehören ebenfalls zu den Maßnahmen zur Erreichung einer hohen Softwaresicherheit.

Wodurch entsteht mangelhafte Softwaresicherheit?

Die Ursachen für eine mangelnde Softwaresicherheit können vielfältig sein und an verschiedenen Stellen der Ausschreibungs-, Entwicklungs-, Betriebs- und Wartungsprozesse entstehen. Typische Ursachen sind:

  • fehlende Sicherheitsanforderungen im Ausschreibungsprozess
  • konzeptionelle Fehler im Designprozess
  • handwerkliche, logische oder systematische Fehler in der Programmierung
  • Verwendung ungeeigneter Technologien, Programmiersprachen, Schnittstellen oder Netzwerktechniken
  • fehlerhafte Installation der Software
  • mangelhafte geschützte IT-Ressourcen zur Ausführung der Software
  • schwache oder fehlende Authentifizierung
  • fehlende Verschlüsselung
  • Fehler bei der Wartung der Software

Auswirkungen unsicherer Software

Unsichere Software kann gravierende Folgen für Anwender oder Unternehmen haben. Auswirkungen unsicherer Software sind:

  • Anfälligkeit gegen Hackerangriffe von innen oder außen
  • mangelnde Verfügbarkeit geschäftskritischer Anwendungen - finanzielle Verluste durch Produktionsausfälle
  • gestohlene oder manipulierte Daten
  • Verstöße gegen den Datenschutz
  • Imageverlust für das Unternehmen
  • Betriebsspionage

Sichere Software durch angepasste Softwareentwicklungsprozesse und die Definition von Verantwortlichkeiten

Software ist oft sehr komplex und umfangreich. Die Softwaresicherheit muss bereits während der Entwicklungsprozesse in den Phasen der Definition der Anforderungen, der Konzeption, der Entwicklung, der Implementierung und des Testens berücksichtigt werden. Über den kompletten Entwicklungsprozess sind Rollen zu definieren, die die Einhaltung verschiedener Aspekte der Softwaresicherheit überwachen und verantworten. Zu diesen Rollen gehören Sicherheitsarchitekten, Sicherheitstester und Sicherheits-Officer. Aufgabe eines Sicherheits-Officers ist es beispielsweise, die Vorgaben für verschiedene Sicherheits-Gates zu erstellen und die Abnahmen durchzuführen.

Unterstützende Technologien für Entwickler zur Erreichung der Softwaresicherheit

Neben angepassten Entwicklungsprozessen und organisatorischen Maßnahmen wie die Definition von Verantwortlichkeiten unterstützen verschiedene Technologien die Entwickler bei der Erreichung der Softwaresicherheit. Oft besitzen die verwendeten Frameworks und Programmierumgebungen entsprechende Funktionen oder ermöglichen die Einbindung externer Sicherheitskomponenten wie sicherer Authentifizierungsservices. Darüber hinaus existieren Tools, die Anwendungen und deren Schnittstellen automatisch scannen und Schwachstellen finden. Im Fall von Webanwendungen sind dies beispielsweise Tools, die mit Hilfe von HTTP-Anfragen automatisierte Tests durchführen. Auch der programmierte Code selbst lässt sich mit Tools auf mögliche Schwachstellen oder Unsauberkeiten analysieren.

(ID:46557695)

Über den Autor