IT-Trends-Blog

IT-Trends-Blog

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

Anwendungsentwickler und Softwarearchitekten vs. Cracker: Ein Wettkampf auf Augenhöhe?

Kategorie: Trends des Monats
iStock | © ThinkstockBis vor wenigen Jahren war das primäre Ziel der Cracker, ins Netzwerk zu gelangen. Hierzu haben sie Methoden wie Sniffing-Techniken und Werkzeuge wie Portscanner eingesetzt, mit denen sie Datenströme abfingen oder nach offenen Ports suchten. Auch das Social Engineering ist in dieser Zeit entstanden. Die Systemadministratoren und Hardware-Hersteller haben in den letzten Jahren viel in Punkto Sicherheit der Infrastruktur dazugelernt und entsprechende Maßnahmen implementiert (siehe Maßnahmenkatalog zur Informationssicherheit des BSI oder ISO 270001). Aber auch die Werkzeuge zur Identifikation von Viren oder Trojanern haben sich weiterentwickelt. Einige von ihnen können anhand empirischer Methoden auch neue Bedrohungen erkennen und bei Bedarf Gegenmaßnahmen einleiten. Aber auch in punkto Manpower haben Unternehmen in den letzten Jahren massiv investiert. Die Systemadministratoren-Ausbildung ist in Bezug auf Sicherheitsthematiken immer besser geworden, so dass man heute mit guten Gewissen sagen kann, dass sie auf Augenhöhe mit den Crackern agieren können – denkt man.

Das ist auch ein Grund dafür, dass die Cracker in den letzten Jahren verstärkt Sicherheitslücken – sogenannte Exploits – in Unternehmensanwendungen fokussieren, insbesondere in Webanwendungen. Exploits sind im Wesentlichen auch Fehler beziehungsweise Schwachstellen in der Software, die aufgrund von engen Zeitplänen und Budgets nicht oder unzureichend getestet wurden. Im Gegensatz zu den allgemein als „Bugs“ bezeichneten Fehlern in der Software bieten Exploits Crackern die Möglichkeit, die Schwachstellen systematisch auszunutzen. Zu den wohl bekanntesten Arten von Exploits gehören daher unzureichende Überprüfungen von Benutzereingaben. Sie werden von Crackern missbraucht, um schädlichen Code oder Befehle auszuführen und sich Zugang zu Ressourcen des Systems zu verschaffen. Aufgrund der Tatsache, dass nicht nur ein einzelner Cracker nach Exploits sucht, sondern Tausende, ist es nur eine Frage der Zeit bis eine Sicherheitslücke gefunden wird.

Der kleine, feine Unterschied
Cracker sind sehr gute Programmierer, die über ein tiefes technisches Wissen über das Zusammenspiel von Hard- und Software verfügen. Im Gegensatz zu einem guten Anwendungsentwickler setzt er sich in erster Linie mit Fragestellungen der Programmierung fernab irgendwelcher Programmiersprachen und Business-Logik auseinander. Er sucht nach Lösungen, um die definierten Grenzen zu sprengen und sie sich zunutze zu machen. Der Anwendungsentwickler hingegen muss sich im Wesentlichen mit den Problemen der immer komplexer werdenden Business-Logik auseinandersetzen und Vorgaben der modernen technischen Unternehmensarchitekturen gerecht zu werden. Er muss nach Lösungen suchen, um die fachlichen Probleme effizient und effektiv lösen zu können und um die definierten Grenzen einzuhalten. Systemressourcen wie Speicher oder Rechenkapazität sind heutzutage schon fast im Überfluss vorhanden. Dies führt dazu, dass sich die Anwendungsentwickler – sowohl in der Ausbildung als auch in der Praxis – nicht mehr so intensiv mit den Grundzügen der Programmierung, beispielsweise der Ressourcenverwaltung, auseinandersetzen. Das hat zur Folge, dass vermehrt Exploits entstehen. An diesen Stellen setzen die Cracker meistens mit ihrer Suche nach Schwachstellen in der Anwendung an und nutzen sie aus. Dazu gehören:
  • Cross-Site Scripting = Daten, die von einem Nutzer stammen, werden an einen Browser weitergesendet, ohne dass ihr Inhalt überprüft wird.
  • SQL-Injection = Benutzereingaben, die in den SQL-Interpreter gelangen können.
  • OS Command Injection = Benutzereingaben, die als System-Level-Befehle ausgeführt werden können.
  • Session-Hijacking = Anhand einer „Entführung“ der Kommunikationsverbindung zwischen zwei Systemen kann an die Berechtigungen der Kommunikationspartner gelangen.
Schwachstellen beim Testing
Die meisten Testkonzepte basieren heutzutage auf dem Prinzip des risikobasierten Testens. Die einzelnen Funktionen und/oder fachlich motivierte Szenarien werden in Risikokategorien eingeteilt. Je nach vorhandener Ressourcen – Zeit, Personal und insbesondere Know-How – werden nur die Funktionen und Szenarien mit hohem Risiko getestet. Selbst bei diesen Funktionen wird nicht selten lediglich das normale Verhalten der Funktionen überprüft. Sonder- und Negativfälle, aber auch Sicherheitsüberprüfungen wie Eingabekontrollen, Schnittstellen und Datenkommunikationen werden nur bei kritischen Funktionen beziehungsweise Funktionen mit sehr hohem Risiko verifiziert. Bei den nicht-funktionalen Anforderungen fokussieren sich Anwendungsentwickler, Softwarearchitekten oder aber die Fachabteilungen fast ausschließlich auf Fragestellungen wie Performance, Skalierbarkeit und Verfügbarkeit/Failover. Die Anforderungen bezüglich weiterführender Sicherheit sind, wenn überhaupt, sehr oberflächlich formuliert. Sehr oft wird von Anwendungsentwicklern beziehungsweise Softwarearchitekten bezüglich der sicheren Softwareentwicklung dahingehend argumentiert, dass dies vom Kunden nicht gefordert wurde. Informationssicherheit für Anwendungen wird, selbst in Unternehmen, welche Informationssicherheitsmanagement betreiben, in der Regel erst zum Zeitpunkt der Produktivsetzung in Betracht gezogen. In den meisten Fällen werden zur Produktivsetzung identifizierte Sicherheitsrisiken notgedrungen toleriert und Maßnahmen zur Schadensminimierung definiert, weil eine nachträgliche Anpassung der Anwendung(-sarchitektur) zu aufwändig und kostspielig wäre.

Fazit:
Sorgen Sie dafür, dass bei der Beauftragung von Individualsoftware beziehungsweise der Anschaffung von Standardsoftware von den Betroffenen – Fachabteilungen, Kunden und IT-Betrieb –  explizit Anforderungen zur Sicherheit formuliert werden. Denn in den meisten Unternehmen sind Sie für die IT-Sicherheit verantwortlich. Ziehen Sie in Projekten frühzeitig einen Sicherheitsarchitekten hinzu. Schaffen Sie das Bewusstsein für Sicherheit bei Ihren Entwicklern und Testern und bilden Sie sie dahingehend aus. Schaffen Sie die notwendigen Rahmenbedingungen und stellen Sie ausreichend Ressourcen zur Verfügung, um eine ganzheitliche IT-Sicherheit gewährleisten zu können. Stellen Sie eventuell sogar Hacker ein, die Ihnen helfen, sich vor Crackern zu schützen. Als Hacker werden heute häufig die “Guten“ bezeichnet, die Unternehmen helfen,  Sicherheitslücken zu finden, beispielsweise durch Penetration Tests.
 


Bildnachweis: iStock | © Thinkstock

Über den Autor

Ismet Gülkanat
Ismet Gülkanat
Seit seinem Informatikstudium verfolgt Ismet Gülkanat die Trends rund um die Informationssicherheit und ist stets auf der Suche nach neuen Methoden und Werkzeugen, um den stetig steigenden Sicherheitsanforderungen gerecht zu werden. Als Technologie-Experte von Capgemini beschäftigt er sich vor allem mit IT-Infrastruktur und Betriebsprozessen. Derzeit konzentriert er sich auf die Beratung von Unternehmen und unterstützt sie bei der Umsetzung von Sicherheitskonzepten.

Kommentar hinterlassen

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