IT-Trends-Blog

IT-Trends-Blog

Opinions expressed on this blog reflect the writer’s views and not the position of the Capgemini Group

Softwareentwicklung mit eingebauter Sicherheit – Wie geht das?

Kategorie: Trend-Wende

Hacker offenbaren immer wieder gravierende Sicherheitslücken in IT-Systemen. Im besten Fall werden sie erst dem Unternehmen selbst bekannt und danach in den Medien publik. Häufig werden diese Lücken jedoch zu kriminellen Zwecken ausgenutzt und können enorme Schäden bei den betroffenen Unternehmen verursachen. Die Liste der Opfer ist lang und sie finden sich in nahezu allen Branchen, betroffen sind Spiele-Konsolen, Wahlcomputer und Geldautomaten, autonom fahrende Autos oder sogar Herzschrittmacher und Narkosegeräte. Wie können Unternehmen sich und ihre Kunden vor Hackerangriffen schützen?

Absolute Sicherheit gibt es leider nicht, man kann das Risiko aber reduzieren. Viele Sicherheitslücken basieren auf Softwarefehlern und es gilt: Je früher eine Lücke entdeckt wird, desto einfacher und kostengünstiger lässt sie sich schließen. Man sollte aber nicht unbedingt warten, bis das Kind in den Brunnen gefallen ist. Wer selbst Software entwickelt, kann im Vorfeld bereits viel tun, um ihre Sicherheit zu erhöhen.

Bedrohungskatalog erarbeiten

Zunächst einmal ist es sehr wichtig sich potenzieller Bedrohungen bewusst zu werden. Sie sind vielfältig und von unterschiedlicher Kritikalität. Eine der häufigsten und meist höchstkritischen Bedrohungen, beispielsweise bei Webanwendungen, sind Code Injections wie z.B. SQL Injections. Über eine Code Injection-Schwachstelle wird Schadcode von einer externen Schnittstelle in die Anwendung geschleust und ausgeführt. Dadurch kann im Falle einer SQL Injection beispielsweise die Datenbank ausgelesen, manipuliert oder gar gänzlich gelöscht werden.

Um frühzeitig Klarheit und ein Bewusstsein für die Gefährdung von Anwendungen zu schaffen, sollten potentielle Bedrohungen mit Hilfe eines Sicherheits-Experten identifiziert und in Form eines Bedrohungskatalogs strukturiert beschrieben werden. Er sollte allen Entwicklern, aber auch den Kollegen im Betrieb und den Architekten zugänglich sein. Auf dieser Basis können dann auch Gegenmaßnahmen definiert werden.

Software mit Hilfe von Werkzeugen testen

Für den Softwareentwicklungsprozess selbst gibt es verschiedene Werkzeuge, mit deren Hilfe häufig automatisiert Schwachstellen identifiziert werden können. Bei der interaktiven Code-Analyse beispielsweise wird die laufende Anwendung analysiert und die internen Abläufe sichtbar gemacht. Neben dem selbstentwickeltem Code müssen aber auch die eingebundenen Bibliotheken der Anwendung auf Schwachstellen untersucht werden. Geschieht dies nicht, besteht das Risiko, dass eine Sicherheitslücke in einer eingebundenen Bibliothek ausgenutzt und die ganze Anwendung kompromittiert wird. Auch zu diesem Zweck gibt es entsprechende Werkzeuge

Es gibt jedoch keine Tools, die alle Schwachstellen aufdecken, wie zum Beispiel solche, die die Verfügbarkeit einer Anwendung betreffen. Sie hängen häufig von der Hardware und der Laufzeitumgebung ab. Werkzeuge bieten lediglich Unterstützung bei der Suche nach Schwachstellen. Das Restrisiko kann man aber mit der Expertise der Softwareentwickler und Architekten weiter reduzieren, denn vier Augen sehen bekanntlich mehr als zwei. Und um ganz sicher zu gehen, sollte die Anwendung vor der Inbetriebnahme noch von einem externen professionellen Penetration-Tester auf Herz und Nieren überprüft werden.

Strategie für den Ernstfall entwickeln

Trotz aller Sicherheitsmaßnahmen sollte man aber unbedingt eine Strategie entwickeln, um im Falle eines Vorfalls schnell reagieren zu können. Wenn Sie die haben und die oben aufgeführten Maßnahmen durchgeführt wurden, ist es zumindest weniger wahrscheinlich, dass Ihre Software Opfer eines Manipulationsversuches oder Angriffs wird. Wie sieht es bei Ihnen aus? Sind Sie für den Ernstfall gewappnet? Ich freue mich auf einen Austausch. 

Über den Autor

Robert Schmidt
Robert Schmidt
IT Security Consultant

Kommentar hinterlassen

Ihre E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind mit einem * gekennzeichnet.