Beispielbasierte Sicherheitslücke verdeutlicht die Notwendigkeit einer WAF

F5-Ökosystem | 05. Oktober 2017

Online-Lernen spielt eine große Rolle. Das gilt insbesondere für Menschen, die sich selbst als Entwickler bezeichnen. Ein Blick auf die jährliche Entwicklerumfrage von Stack Overflow (an der sich Zehntausende beteiligen) zeigt, dass ein großer Teil der Entwickler keine formale Ausbildung absolviert hat:

Entwicklerausbildung
  • Von den derzeit weltweit tätigen professionellen Entwicklerinnen und Entwicklern gaben 76,5 % der Befragten an, einen Bachelorabschluss oder einen höheren Abschluss, etwa einen Masterabschluss oder einen gleichwertigen Abschluss, zu haben.
  • 20,9 % gaben an, ein anderes Fach studiert zu haben, beispielsweise Wirtschaft, Sozialwissenschaften, Naturwissenschaften, ein Ingenieurfach außerhalb der Informatik oder Kunst.
  • Von den derzeit beruflich tätigen Entwicklern gaben 32 % an, dass ihre formale Ausbildung für ihren beruflichen Erfolg nicht besonders wichtig oder überhaupt nicht wichtig war. Dies ist nicht völlig überraschend, wenn man bedenkt, dass 90 % aller Entwickler sich zumindest teilweise als Autodidakten betrachten: Ein formaler Abschluss ist nur ein Aspekt ihrer Ausbildung, und ein Großteil ihrer praktischen täglichen Arbeit hängt von den individuellen Entscheidungen ihres Unternehmens hinsichtlich des Technologie-Stacks ab.

Beachten Sie den hervorgehobenen Teil der Umfrageergebnisse. Ich könnte eine ganze Abhandlung darüber schreiben, warum das so ist. Es genügt jedoch zu sagen, dass ich während meines Bachelorstudiums mit Pascal, C++ und LISP programmiert habe. In meinem ersten richtigen Job als Entwickler waren C/C++ gefragt, damit kannte ich mich also aus. Später musste ich jedoch Java lernen. Und SQL. Dafür bin ich nicht wieder zur Hochschule gegangen. Stattdessen griff ich auf Bücher, Hilfedateien und jede andere Dokumentation zurück, die ich finden konnte. Sich Wissen selbst anzueignen, ist die Norm – unabhängig davon, ob man eine formale Ausbildung absolviert hat oder nicht. Denn die Technologie entwickelt sich weiter, und Berufstätige haben keine Zeit, wieder die Schulbank zu drücken, nur um eine neue Programmiersprache oder ein neues Framework zu erlernen.

Ich vermute, das ist für keinen von uns ungewöhnlich. Wir gehen nicht wieder zur Schule, um eine neue CLI oder API zu erlernen. Wir schreiben uns nicht für einen neuen Studiengang ein, nur um Python oder Node.js zu lernen. Stattdessen greifen wir auf Bücher und Inhalte im Internet zurück, wenden uns an Communitys und verlassen uns in hohem Maße auf „Beispielcode“.

Wie Entwickler sich selbst weiterbilden

Ich verlasse mich immer noch auf Blogs und Dokumentationen, und zwar nicht nur von unseren eigenen Entwicklern und Architekten, sondern auch von anderen. Denn mich jetzt für ein Promotionsstudium einzuschreiben, wird mir nicht wirklich dabei helfen, die Besonderheiten des Express-Frameworks oder von JQuery kennenzulernen.

Daher überrascht es nicht, dass sich auch Netzwerkingenieure und der IT-Betrieb (die als Beteiligte des ersten Teils der zweiten DevOps-Welle fortan als NetOps bezeichnet werden) wahrscheinlich denselben Arten von Materialien zuwenden, um die Fähigkeiten zu erwerben, die sie für den sicheren Umgang mit den erforderlichen Tools und Technologien benötigen. Für alle, die gerade erst dazugestoßen sind: Gemeint sind Skriptsprachen und APIs. Und zweifellos werden auch sie nach Herzenslust kopieren und einfügen, während sie sich mit der Sprache und den Systemen vertraut machen und mit der Automatisierung der Produktionspipeline beginnen.

Und damit kommen wir zu dem Grund, warum ich heute schreibe: Beispielcode.

Davon gibt es jede Menge. Und es ist guter Code – bitte nehmen Sie nicht den Eindruck mit, ich sei undankbar oder würde Beispielcode nicht wertschätzen. Er ist eine unschätzbare Ressource für alle, die neue Sprachen und APIs erlernen möchten. Worüber ich mich jedoch auslassen möchte, ist die Diskrepanz zwischen Beispielcode und Sicherheit, die behoben werden muss. Denn wenn wir Neulingen das Programmieren beibringen, sollten wir ihnen zumindest ein Bewusstsein für Sicherheit vermitteln, anstatt sie schlichtweg zu ignorieren.

Ich sage das, weil Anwendungssicherheit nicht – ich wiederhole: NICHT – optional ist. Ich könnte eine Statistik nach der anderen anführen, aber ich hoffe, dass ich damit inzwischen offene Türen einrenne. Anwendungssicherheit ist nicht optional, und es ist wichtig, diese Haltung so lange zu verbreiten, bis sie als fester Bestandteil der Entwicklung angesehen wird. Das gilt wohlgemerkt nicht nur für Anwendungen, sondern auch für die Skripte und Systeme, mit denen DevOps und NetOps die Automatisierung steuern.

Als Ursache meiner Sorge möchte ich dieses Beispiel anführen.

Der Code selbst ist wunderschön. Wirklich. Gut formatiert, schöne Abstände. Lesbar. Ich liebe diesen Code. Bis auf den Teil, der vollständig gegen Sicherheitsregel Null verstößt.

Beispiel verstößt gegen Sicherheitsregel Null

DU SOLLST NIEMALS BENUTZEREINGABEN VERTRAUEN. NIEMALS.

Ich bin enttäuscht, dass nicht einmal ansatzweise darauf hingewiesen wird, dass die Eingabe bereinigt werden muss – weder in den Kommentaren noch im Text des Artikels. Der Code übergibt „username“ einfach an eine andere Funktion, ohne auch nur in Betracht zu ziehen, dass die Eingabe schädliche Inhalte enthalten könnte.

Aber Lori, dieser Code soll doch offensichtlich nur die Implementierung von etwas veranschaulichen, das gar nicht für den tatsächlichen Produktiveinsatz gedacht ist. Davon geht kein Risiko aus.

Darum geht es nicht. Wenn wir den Leuten weiterhin das Programmieren beibringen, sollten wir zumindest versuchen, ihnen beizubringen, wie man es sicher macht. Wir sollten es erwähnen – und zwar genauso selbstverständlich, wie man Entwickler, die neu in C/C++ sind, darauf hinweist, dass das Programm abstürzt, wenn man einem Zeiger nicht vor dem Zugriff darauf Speicher zuweist.

Ich könnte einen Blogbeitrag nach dem anderen mit Beispielen dafür füllen, wie Sicherheit und dem SDLC zwar Lippenbekenntnisse entgegengebracht werden, sie aber plötzlich allein in einer Ecke stehen, umgeben von einem SEP-Feld („somebody else’s problem“ – das Problem eines anderen), sobald es ans Eingemachte und darum geht, Menschen das Programmieren beizubringen.

Dies ist nur ein weiterer Grund, warum Web Application Firewalls ein entscheidender Bestandteil jeder Strategie für Anwendungssicherheit sind. Unternehmen benötigen eine Schutzbarriere zwischen Benutzereingaben und den Anwendungen, die diese blind als legitim akzeptieren, damit sie nicht zum jüngsten Opfer einer langen Liste von Sicherheitslücken in Anwendungen werden.

Denn so gern wir auch über die Absicherung von Code sprechen: Wenn wir sie anderen tatsächlich vermitteln, handeln wir nicht entsprechend. Wir müssen uns dieses Mangels an Sicherheitsbewusstsein stärker bewusst werden – selbst bei Beispielcode, denn daran lernen Entwickler (und zunehmend auch NetOps). Doch solange wir das nicht tun, benötigen wir Sicherheitslösungen wie WAF, um die durch unsicheren Code entstehenden Lücken zu schließen.

* Oder Englisch, anscheinend. Ach, komm schon, das mache ich doch mit Absicht. Weil es manchmal Spaß macht, es falsch zu sagen.

Teilen
Schlagwörter: 2017

Über den Autor

Lori Mac Vittie
Lori Mac VittieDistinguished Engineer und Chief Evangelist | F5

Lori MacVittie ist Distinguished Engineer und Chief Evangelist im Office of the CTO von F5 und verfügt über umfassende Expertise in den Bereichen Anwendungsbereitstellung, Automatisierungsstrategie und Infrastruktur. Sie ist dafür bekannt, Komplexität verständlich zu machen – ob sie Leitplanken für KI-Agenten definiert, fragile Multicloud-Architekturen analysiert oder die Grenzen skalierbarer Systeme auslotet. Sie verfügt über mehr als dreißig Jahre Branchenerfahrung in der Anwendungsentwicklung, IT-Architektur sowie im Netzwerk- und Systembetrieb. Bevor sie zu F5 kam, war sie als mehrfach ausgezeichnete Technologie-Redakteurin tätig. MacVittie hat einen Masterabschluss in Informatik und ist eine produktive Autorin, deren Veröffentlichungen die Bereiche Sicherheit, Cloud und Unternehmensarchitektur abdecken. Außerdem spielt sie leidenschaftlich gern Brett- und Videospiele und vertritt mit voller Überzeugung klare Ansichten zum Thema Käse.

Weitere Blogbeiträge von Lori Mac Vittie

Ähnliche Blogbeiträge

F5 und Equinix bündeln ihre Kräfte, um die sichere Anwendungsbereitstellung in Multicloud-Umgebungen zu vereinfachen
F5-Ökosystem | 05.08.2025

F5 und Equinix bündeln ihre Kräfte, um die sichere Anwendungsbereitstellung in Multicloud-Umgebungen zu vereinfachen

F5 und Equinix ermöglichen es Unternehmen, sich weltweit sicher und zuverlässig mit ihren Partnern zu vernetzen.

API-Sicherheitsrisiken und -herausforderungen
F5-Ökosystem | 21.07.2025

API-Sicherheitsrisiken und -herausforderungen

Erfahren Sie, warum APIs für die moderne App-Entwicklung unverzichtbar sind und wie Sie sie vor den häufigsten Sicherheitslücken schützen. Profitieren Sie von Expertentipps und direkt umsetzbaren Strategien.

Ein Meilenstein für die Community Impact Grants von F5
F5-Ökosystem | 21.01.2025

Ein Meilenstein für die Community Impact Grants von F5

F5 feiert das fünfjährige Bestehen seines innovativen Community Impact Grant-Programms, das gemeinnützige Organisationen, bei denen sich F5-Mitarbeitende ehrenamtlich engagieren, mit Fördermitteln in Höhe von 5.000 US-Dollar unterstützt.

Mit moderner, anpassungsfähiger und sicherer Gesundheits-IT Leben retten
F5-Ökosystem | 22.05.2023

Mit moderner, anpassungsfähiger und sicherer Gesundheits-IT Leben retten

Die IT-Investitionen im Gesundheitswesen tragen dazu bei, die schnellsten Wege zu einer besseren Versorgung zu finden, indem sie die medizinische Betreuung näher an die Patientinnen und Patienten bringen. Viele Gesundheitsunternehmen nutzen riesige Mengen an klinischen und anderen Gesundheitsdaten, um Entwicklungen zu verfolgen und übergreifende Trends in der gesamten Gesundheitslandschaft zu erkennen. Gleichzeitig nähern sie sich einer möglichst präzisen, individuell zugeschnittenen Versorgung an.

Verbesserung der Benutzer- und Administrationserfahrung durch sicheren hybriden Zugriff
F5-Ökosystem | 16.09.2020

Verbesserung der Benutzer- und Administrationserfahrung durch sicheren hybriden Zugriff

Diese Kombination aus BIG-IP Access Policy Manager und Azure Active Directory ermöglicht Identitätsföderation, zentralisierten Benutzerzugriff (über Single Sign-on) und erhöhte Anwendungssicherheit (durch Multi-Faktor-Authentifizierung) für geschäftskritische Anwendungen sowie cloudbasierte und SaaS-Anwendungen. Dieser Ansatz vereinfacht die Einrichtung und Bereitstellung, reduziert den Verwaltungsaufwand und verbessert die gesamte Administration.

Das Internet der Sicherheitsdinge
F5-Ökosystem | 11.05.2015

Das Internet der Sicherheitsdinge

Nein, das ist keine Tirade über die Sicherheit des IoT. Es ist eine Geschichte über Veränderung – genauer gesagt über Veränderung und ihre Auswirkungen auf die Sicherheit. Veränderung ist allgegenwärtig. Es gibt unzählige Axiome und Sprichwörter über Veränderung, also ist es ...