23. März 2009 - Sichere Programmierung

Datensicherheit fängt bei der Entwicklung an

Es sind nicht immer die Anwender, die durch unvorsichtiges Verhalten personenbezogene Daten in Gefahr bringen. Auch Programmierer und Softwareentwickler setzen vertrauliche Daten unnötigen Risiken aus, indem sie kritische Fehler machen oder Sicherheitsfunktionen vergessen. Drängen Sie daher in Softwareprojekten und bei der Beschaffung von Programmen auf die Prüfung der 25 gefährlichsten Programmierfehler.

datensicherheit-fangt-bei-der-entwicklung-an.jpeg
Zum Datenschutz gehört auch eine Programmierung, die den Schutzbedarf von Daten berücksichtigt (Bild: Thinkstock)

Selbst wenn Sie mit dem Sicherheitsbewusstsein der Mitarbeiterinnen und Mitarbeiter zufrieden sind und alle Anwender über die richtigen Sicherheits- und Datenschutzeinstellungen bei der eingesetzten Software unterwiesen haben, könnten personenbezogene Daten in Ihrem Unternehmen akut bedroht sein.

Wenn der beste Schutz versagt

Daran ändert auch die Verwendung von Firewalls und aktueller Anti-Malware-Software mitunter nur wenig. Der Grund: Unternehmenssoftware ähnelt vielfach einer Burganlage, die mit aufmerksamen Wächtern bestückt ist und deren Haupttor gut verriegelt wurde, während gleichzeitig das hintere Tor zum angrenzenden Wald offen und unbewacht ist.

Dieses Tor sollte eigentlich nie gebaut werden, doch der Baumeister kontrollierte nicht die Einhaltung der Pläne.

Gefährliche Programmierfehler häufen sich

Obwohl zahlreiche Sicherheitslücken und Gefahrenstellen in der Softwareentwicklung bereits gut bekannt sind, werden einige immer wieder eingebaut oder nicht abgesichert. Eine kürzlich veröffentlichte Studie zu den 25 gefährlichsten Programmierfehlern zeigt deutlich, dass auch heute noch „unbewachte und offene Tore“ eingebaut werden.

Ziel der Studie ist es, Softwareentwicklern den akuten Handlungsbedarf aufzuzeigen und ihnen Hinweise zu geben, wie sie ihren Programmcode sicherer machen können. Gleichzeitig bietet eine solche Studie für Unternehmen die Chance, die Prüfung und Behebung dieser Schwachstellen in ihre Einkaufsbedingungen für Software aufzunehmen.

Besser vermeiden als beheben

Wenn die Kenntnis der wichtigsten und gefährlichsten Schwachstellen bei der Softwareprogrammierung als Teil einer Fort- oder Ausbildung vermittelt wird, besteht zudem die Chance, dass die TOP-25-Programmierfehler langsam verschwinden könnten. Doch dazu muss noch mehr getan werden: Die Sicherheit der personenbezogenen Daten muss zu den grundlegenden Anforderungen an eine zu entwickelnde Software gehören.

Aus Datenschutzsicht gibt es verschiedene Kriterien, die für eine möglichst sichere Programmierung sorgen.

Datenschutz in die Anforderungsdefinition

Neben den rein fachlichen Anforderungen an eine zu erstellende oder zu erwerbende Software sollten verschiedene Sicherheitsmaßnahmen und -funktionen vorgeschrieben werden, darunter

  •  die Implementierung von sicheren Programmeinstellungen als Standardeinstellungen, um die Benutzer zu entlasten,
  • die Unterstützung einer Passwortrichtlinie mit Ablauffristen für Passwörter und der Prüfung, ob die gewählten Passwörter ausreichend stark sind,
  • die Sperrung von Benutzerkonten nach mehrmaliger, fehlerhafter Anmeldung,
  • die geschützte Verwaltung und Übertragung von Passwörtern,
  • die Nutzung von Rollen im Privilegiensystem,
  • die Einhaltung des Prinzips der minimalen Rechtevergabe,
  • der erhöhte Schutz für Protokolldateien,
  • die durchgehende Verschlüsselung von personenbezogenen Daten,
  • die Verwendung von Verschlüsselungsverfahren nach dem aktuellen Stand von Wissenschaft und Technik,
  • der erhöhte Schutz für kryptografische Schlüssel (Private Keys),
  • die Deaktivierung nicht genutzter Programmmodule, Dienste und Schnittstellen,
  • die Sicherheitsprüfung von Benutzereingaben,
  • der besondere Schutz von Sitzungsschlüsseln (Session-IDs) und
  • der Schutz von Zwischenspeicherungen.

Eine neue Entwicklersicht auf die Daten muss her

Wesentlich ist zudem, dass die Daten, die eine Applikation annehmen, verarbeiten und speichern soll, unter einem neuen Blickwinkel, der Datenschutzsicht, gesehen werden.

Ein zu implementierendes Datenfeld sollte durch den Entwickler nicht nur derart hinterfragt werden, welches Format die Daten haben sollen, wo sie herkommen und wo sie hinkommen sollen. Man sollte sich auch immer die Frage stellen: Was könnte geschehen, wenn diese Art von Daten in falsche Hände gerät?

Die Antwort auf diese Frage liefert den individuellen Schutzbedarf für die speziellen Daten. Entsprechend der Sicherheitsklassifikation der Daten werden dann die notwendigen Sicherheitsfunktionen festgelegt und später überprüft.

Ein neues Datenbewusstsein schaffen

Datenschutz gehört genauso wie Sicherheit zu den Grundanforderungen an Software. Deshalb sollten sich alle Beteiligten, ob Programmierer oder Einkäufer, über die möglichen Risiken bewusst sein. Dabei reicht die einmalige Betrachtung und Risikoanalyse nicht, denn die Gefahren ändern sich schnell. Zudem sollten Entwickler entdeckte Programmfehler nicht vertuschen wollen, sondern umgehend melden. Oft kann eine zeitnahe Fehlerbehebung Schlimmeres verhindern.

Und: Bekanntlich lernt man aus Fehlern. Die TOP-25-Liste der gefährlichsten Programmierfehler gibt eine gute Gelegenheit dazu.

Oliver Schonschek
Oliver Schonschek ist Diplom-Physiker und Fachjournalist

 

Sie glauben, Sie hätten noch so viel Zeit? Falsch! Es gibt mehr zu tun, als Sie vielleicht denken! ▶ Zeit zu handeln