IT-Sicherheit: Von Penetrationstests bis hin zu Bug Bounty

Wenn du jemanden suchst, der deine Seite/App auf Sicherheitslücken untersuchst, dann bin ich dein Mann. Hier kannst du dich von mir überzeugen. Ich suche und finde jeden Monat Sicherheitslücken in großen Konzernen, wie Google, PayPal oder Starbucks.

Wenn du sagst: Ich will aber eine "echte" Firma, die nach Sicherheitslücken sucht, schau doch einfach mal bei der Legacy Technologies GmbH vorbei. Ich bin dort seit Anfang/Mitte 2019 CTO.

Um "up to date" in diesem Bereich, der sich durchaus schnell weiterentwickelt, zu bleiben, nehme ich an so genannten "Bug Bounty Programmen" teil. Fast alle größeren Konzerne bieten diese Art von Programm an. Man darf legal Sicherheitslücken suchen, muss sie melden und wird dafür mit einer "Bounty" belohnt. Das Feld ist mittlerweile sehr kompetitiv, man muss wissen was man macht und in Summe ein breites Wissen mitbringen, um gegen tausende anderer Hacker weltweit zu bestehen. Ich nutze diese Programme, um mein eigenes Wissen zu erweitern, meine eigenen Tools zu verbessern - gelegentlich kommt zu einer Belohnung auch ein so genannter Hall of Fame-Eintrag dazu.

Ein weiterer Vorteil dieser Bug Bounty Programme ist: als Kunden weiß man, dass hier jemand ist, der in der Lage ist auch in gut gesicherten Systemen Sicherheitslücken zu finden. In diesem Bereich wird viel erzählt, oft werden Penetrationstests verkauft, die im Grunde nur automatische Scans mit Tools, wie Acunetix sind. Umso besser ist es, dass ein Kunde u.a. auf meinen öffentlichen Profilen auf HackerOne, BugCrowd oder Intigriti sehen kann, wo ich Sicherheitslücken melde. Wichtig ist aber, dass mnan nur die öffentlichen Programme sehen kann. Mittlerweile nehme ich fast nur noch an privaten Programmen teil.

Ich bin außerdem aktuell Mitglied des Synack Red Teams. Diese Seite ist allgemein dem Thema IT-Sicherheit gewidmet. Du siehst, was ich so treibe und kannst dich von hier aus weiter informieren. Vielleicht werde ich ja bald für dein Unternehmen einen Penetrationstest machen!

Einige meiner Hall of Fame-Einträge

Im Februar 2019 hab ich es in die Hall of Fame von SAP geschafft. Grund hierfür ist das Melden einer Sicherheitslücke in der SAP-Infrastruktur, die das Ausführen von Code erlaubt hat.

Hall of Fame von sap.com

In der Google Hall of Fame bin ich seit Mitte 2018 ebenfalls vertreten. Hier habe ich u.a. eine Cross Site Scripting-Lücke in allen Google Suchseiten gefunden.

Hall of Fame von Google

Auf diversen Seiten der englischen BBC habe ich Sicherheitslücken gefunden, die von Cross Site Scripting bis zum Zugang zu Quellcode von Applikationen reichen.

Hall of Fame der BBC

Mehrfache kritische Funde - meist Fehlkonfigurationen von Servern, die es erlauben Zugangsdaten zu Systemen auszuspähen.

Hall of Fame der BBC

Gemeldete Sicherheitslücken

Wie oben bereits geschrieben bin ich vor allem auf HackerOne, BugCrowd und Intigriti aktiv. Jede dieser Plattformen bietet teilweise hunderte öffentlicher Programme, an denen man teilnehmen kann. Neben einigen öffentlichen nehme ich vor allem an diversen privaten Programmen teil, über die ich leider nicht sprechen kann. So ist das leider oft im Bereich Web-Security.

Die verlinkten Profile zeigen, welche Positionen ich bei welchem Programm aktuell einnehme. Offensichtlich habe ich die meisten Lücken bei Toyota und IBM, gefolgt von u.a. Starbucks und Alibaba.

Zum Profil

Neben den drei bekannten Plattformen gibt es noch Unternehmen, die ein eigenes Bug Bounty Programm betreiben - etwa Microsoft oder Google. Bei letzterem konnte ich mittlerweile auch mehrere Sicherheitslücken finden. Im Allgemeinen wirst du auf den Plattformen keine Details zu sehen bekommen. Die Unternehmen lassen oft nicht zu, dass Details angezeigt werden. Trotzdem gibt es im Folgenden einige öffentlich bekannte Highlights.

Cross Site Scripting-Lücke in der Google-Suchmaschine

Nutzte ein Angreifer spezielle GET-Parameter konnte ein älteres Google-Suchinterface verwendet werden, das via XSS verwundbar war. Ein Angreifer könnte Code im Browser ders Nutzers ausführen.

  • Unternehmen: Google
  • Schwachstelle: XSS
  • Bounty: $5000
  • Severity: High
Read More

SQL Injection in der Datei inc/ajax-actions-frontend.php

Im WordPress Plugin des Unternehmens konnte ein Angreifer zwei Codestellen finden, die es ermöglichten eine SQL Injection auszuführen und damit die Datenbank auszulesen.

  • Unternehmen: MapsMarker
  • Schwachstelle: SQL Injection
  • Bounty: $10
  • Severity: Medium
Read More

Zugriff auf das Devops Jira-System von Starbucks

Eine ungesicherte Instanz von Jira auf einer alten Subdomain erlaubte es auf diverse vertrauliche Informationen, Passwörter, Screenshots, Probleme, über die ich nicht reden darf, zuzugreifen. Bitter!

  • Unternehmen: Starbucks
  • Schwachstelle: Improper Authentication
  • Bounty: $4000
  • Severity: Critical
Details

Zwei Cross Site Scripting-Lücken im Login-Formular

Während eines Audits eines anderen Kunden bin ich auf ein Login-System gestoßen, dass zwei XSS beinhaltet hat, welche über eigentlich geheime Parameter ausgenutzt werden konnten.

  • Unternehmen: Paessler AG
  • Schwachstelle: XSS
  • Bounty: ein lustiges Spiel
  • Severity: Medium
Details (Ver. 19.1.48.2865)

Software und Werkzeuge, die ich verwende

Ohne profesionelle Software sind heute Penetrationstests nur schwer wirtschaftlich durchzuführen. Ich setze vor allem Burp Suite Professional sowie diverse eigens entwickelte Programme ein, die mir bereits geholfen haben, die ein oder ander Bug Bounty zu bekommen. Sofern erforderlich kommen natürlich auch Standard-Werkzeuge, wie WPScan oder SQLMap zum Einsatz.

Ein Highlight ist ein mittlerweile sehr großes Programm namens "PTM" - eine SaaS, verteilt auf diversen Servern, die Ziele automatisch scannt, Änderungen überwacht und meldet sowie teilweise nach Problemen sucht, sie findet, ausnutzt und mir meldet. Beispiele wären hierfür die Suche nach git-Verzeichnissen, das Prüfen von Zugriffsberechtigung von Amazon AWS S3-Buckets oder die Suche nach möglichen "Subdomain Takeovers", die aus vergessenen verwaisten CNAME-Einträgen resultieren - nur drei von weit über 50 Modulen.

Wenn es um das Testen von Android und/oder iOS Apps verwende ich mein kleines "Labor" bestehend aus mehreren Computer und Routern. Hier liegt der Fokus bei mir kaum auf der Hardware, vielmehr der Kommunikation zwischen App und Servern sowie der App an sich.

Burp Suite Pro
SQLMap
Nmap
Kali Linux
Wireshark
WP Scan

Neben den genannten Tools nutze ich eine Vielzahl von Open Source Tools für kleinere Aufgaben - vor allem für die Bereiche Reconnaissance und Exploitation. Die erwähnenswertesten sind Turbolist3r, massdns, masscan und dirsearch sowie wfuzz. Mittlerweile hat man es oft mit vergessenen Repositories zu tun, in dem Bereich gehört GitTools sowie TruffleHog zu meinen ständigen Begleitern. Natürlich sind nmap und masscan gute Tools, wenn es um Portscanning geht, aber trotzdem nutze ich Online Tools, wie Shodan, Censys, BinaryEdge sowie SecurityTrails. Mit deren Hilfe kann man sich schnell, ohne selbst das Netzwerk gescannt zu haben, einen guten Überblick verschaffen.

Vorgehen bei einem Penetrationstest

Im Vorfeld wird mit dem Kunden besprochen, was überhaupt gewünscht ist. Dies kann ein regulärer Source Code Audit sein oder eben ein Blackbox- oder Whitebox-Tests. Kombinationen dieser Testarten kommen ebenfalls oft vor. Meist hat man nur begrenzten Zugang zum Quellcode und ansonsten ist das zu testende System eine Blackbox.

Der nächste Schritt ist meist das Eingrenzen des "Scope". Die meisten Kunden haben nicht hunderte von Subdomains und zehntausend verschiedener IP-Adressen, die relevant wären. Hier wird erläutert was wirklich wichtig ist. Ich helfe in der Regel einen sinnvollen Scope zu wählen - so ist ein Penetrationstest des WordPress Cores eher unsinnig. Interessanter könnten jedoch die Eigenentwicklungen (Plugins und Themes) oder älteren Plugins sein.

Je nach gewählter Testart kann es durchaus sinnvoll sein, vor allem wenn das Unternehmen größer ist und mehrere Entwickler hat, ein eher aus dem Bereich "Bug Bounty" (siehe oben) bekanntes und dafür typisches Vorgehen zu wählen. Dabei werden während der "Reconaissance" Phase alle Assets des Unternehmens mit verschiedenen Tools gescannt, Onlinewerkzeuge, wie Google, Github und Shodan gehören während dieser Phase zu den Standardtools. Viele Unternehmen sind erschrocken, wie viele "interessante" Informationen, wie Quellcodes, API Keys, vergessene Backups etc. pp. zu finden sind. Der Blick in die Vergangenheit aller Assets mit Hilfe der WayBackMachine oder dem Internetarchiv von commoncrawl.org ergibt oft ebenfalls interessante Anhaltspunkte über potentielle Probleme und/oder vergessene Endpoints. Hierzu habe ich beispielsweise ein kleines Tool programmiert, das in Kombination mit "grep" äußert interessante Dateien zu Tage fördern kann: commonCrawlParser.

In der Exploitation-Phase werden die bisher gewonnenen Erkenntnisse genutzt, um Sicherheitslücken zu finden. Wurde eine Jenkins-Instanz vergessen und erlaubt das Ausführen von Code via Groovy wird das nur kurz demonstriert und dem Auftraggeber gemeldet - das wäre ein typischer Fall eines vergessenen CI-Servers, mit dem ein Angreifer viel Schaden anrichten könnte. Im weiteren Verlauf werden alle Endpoints, Formulare etc. pp. manuell sowie teilautomatisiert auf verschiedene Sicherheitslücken untersucht. Der Fokus liegt hier auf den OWASP Top 10.

Im Allgemeinen sind das u.a. die Folgenden serverseitigen sowie clientseitigen Sicherheitslücken:

Serverseitige Sicherheitslücken

  • Remote Code Executions (RCE)
  • Insecure Deserializsations
  • XML External Entities (XXE)
  • XML Injection
  • Insecure Direct Object References (IDOR)
  • Remote File Inclusions (RFI)
  • Local File Inclusions (LFI)
  • SQL Injections
  • Directory Traversals
  • Server Side Request Forgery (SSRF)

Clientseitige Sicherheitslücken

  • Cross-Site Scripting (XSS)
  • Cross-Site Request Forgery (CSRF)
  • Open/Unrestricted redirects
  • Session Hijacking/Fixation

Berichterstattung bei Penetrationstests

Ein Penetrationstest ohne Bericht und Dokumentation existiert nicht.

Werde ich von einem Kunden für einen Penetrationstest engagiert, wird ein kleiner Teil des Zeitbudgets für das Erstellen eines ordentlichen Berichts in PDF-Form aufgewendet. Der Bericht enthält alle relevanten Informationen, damit Entwickler die gefundenen Sicherheitslücken beheben können.

Ich verwenden einen recht üblichen Aufbau meiner Berichte. So wird kurz das Unternehmen vorgestellt, ebenso die konkrete Aufgabe samt Scope. Gefolgt wird dieser recht allgemeine Teil vom Teil, der die Methodik etwas genauer beschreibt. Anschließend gibt es in der Regel allgemeine Empfehlungen sowie das, was am wichtigsten ist, die gefundenen Sicherheitslücken. Diese werden meist mit Request/Response- Beispielen unterlegt. Wo nötig, wird der Weg zur Reproduktion näher beschrieben. Mit einem kurzen Fazit wird der Bericht finalisiert.

CTO der Legacy Technologies GmbH

Ich bin zwar als freiberuflicher Penetrationtester und Berater immernoch zu Haben, investiere den Großteil meiner Zeit allerdings in das, was die Legacy Technologies GmbH macht. Dort habe ich die Position des CTO inne. Das Unternehmen selbst hält Anteile an einem Unternehmen von mir.

Meine Hauptaufgabe dort ist der Kundenkontakt aber auch das Vorantreiben der Entwicklung einer Software namens "NEO CMaS". Diese Software habe ich vor mehr als 5 Jahren "erfunden". Damals noch, um schneller Ergebnisse im Bereich Bug Bounty erzielen zu können. Aus diesem Spaßprojekt wurde mit den Jahren ein vollwertiges Cyber Defense Produkt, dass internationale Kunden überwacht und ihnen hilft Sicherheitsproblemer schneller zu finden als der echte Angreifer.

An diesem Projekt hängt mein Herz - ich habe vermutlich nie in meinem Leben so viel Zeit auf ein Stück Software verwendet ;)

"Wir haben Damian Strobel angesprochen, damit er uns bei einem technischen Problem hinsichtlich eines Votings unterstützt. Hier kam es vermehrt zu Manipulationsversuchen, die sich schlussendlich auch auf unseren Ruf ausgewirkt haben. Damian hat sich dem Thema sofort angenommen und die Anwendung sicher gestaltet. Heute haben wir keine Probleme und sind ihm sehr dankbar."

"Damian Strobel ist ein echter Glücksfall. Eine klare offene Kommunikation und die absolute transparente Arbeitsweise machen die Zusammenarbeit zu einem Erfolgserlebnis. Unsere Anforderungen und Wünsche wurden super umgesetzt und wir wurden kompetent und flexibel in allen Fragen unterstützt. Die Zusammenarbeit mit Damian ist super angenehm, auf hohem Niveau und durchweg professionell."

"Ich schätze die Zusammenarbeit mit Damian sehr, da sie einfach super bequem ist, er ist jederzeit erreichbar, flexibel und wirklich fix in dem was er tut. Meine Aufträge hat er bisher immer zu meiner vollsten Zufriedenheit bearbeitet. Von seiner Seite erfolgten sogar oft noch Verbesserungsvorschläge um meine Idee noch mehr abzurunden, dies gefällt mir sehr, wenn ein Coder auch wirklich mitdenkt und nicht nur stumpf programmiert. Vielen Dank!"

"Damian Strobel löste für mich die technischen Herausforderung eines Relaunchs meiner Maklerhomepage. Absprachen wurden zuverlässig eingehalten, Probleme und Lösungsmöglichkeiten telefonisch sauber kommuniziert und angeboten Lösungswege waren stets angemessen, wirtschaftlich und kundenorientiert. Jede einzelne dieser Eigenschaften hat in der IT-Branche Seltenheitswert, die Kombination macht Herrn Strobel für mich zu einer Topempfehlung!"

"Mein Team und ich arbeiten mittlerweile mehrere Jahre mit Damian Strobel zusammen, dabei wurden die von uns gestellten Aufträge immer kurzfristig und effizient abgearbeitet. Selten habe ich eine so angenehme und professionelle Zusammenarbeit, mit so guten Ergebnissen erlebt. Das Spektrum reicht dabei vom Entfernen von Schadsoftware bis hin zur Umsetzung eines eigenen CRM-Systems mit Vertriebs- und Projekt/Mitarbeitermanagementmodulen auf Basis eines bekannten PHP-Frameworks. Wir lassen unsere Ideen weiterhin von Herrn Strobel umsetzen: Ein besseres Kompliment kann es nicht geben."

"Wir sind mit den Dienstleistungen von Herrn Strobel sehr zufrieden. Herr Strobel ist sehr zuverlässig und hält sich an zeitliche Vereinbarungen. Die Qualität seiner Arbeit ist sehr gut. Durch sinnvolle, eigene Vorschläge trägt er zur Verbesserung der Ergebnisse bei. Wir würden Herrn Strobel jederzeit weiterempfehlen."

"Damian Strobel zeigte sich in der langjährigen Zusammenarbeit immer als zuverlässiger Partner der mehr als nur Programmierarbeit liefert, sondern direkt auch Verbesserungsvorschläge bringt und Umsetzungen in bester Qualität liefert."

"Damian ist ein sehr zuverlässiger Geschäftspartner. Seine technische Expertise ist für mich in vielen Situationen von unschätzbarem Wert. Neben der Weiterentwicklung von Shop-Funktionen, setzt Damian auch sein Verständnis für Sicherheit und Performance proaktiv ein. Abseits von unseren Onlineshops, konnte Damian mich zudem bereits mehrfach von seiner Leistung im Bereich WordPress-Entwicklung überzeugen sowie im Umgang mit dem PHP-Framework Laravel begeistern. Terminabsprachen hält Damian verantwortungsbewusst ein. Budgetplanung erfolgt durch gemeinsame Gespräche immer auf einem realistischen Niveau."

"Unsere Erfahrungen in der Zusammenarbeit mit Damian Strobel sind äußerst positiv. Neben einer guten Auffassungsgabe und sehr schnellen Reaktionszeiten, überzeugt er in unseren gemeinsamen Projekte vor allem durch sein Fachwissen und eine fehlerfreie Umsetzung. Wir können seine Arbeit somit besten Gewissens weiterempfehlen."

"Damian hat uns bei einem Projekt geholfen, bei dem es darum ging eine 08/15 Affiliateseite in ein Projekt mit vielen technischen Möglichkeiten zu verwandeln. Fairer Umgang, sehr präzises Arbeiten und vor allem das proaktive Mitwirken um ein besseres Ergebnis zu erzielen. Damian ist ganz mein ersten Ansprechpartner bei Anfragen, die nur ein versierter Programmierer lösen kann."

"Für Damian ist das Kundenproblem eine Herausforderung, das Ergebnis ist immer herausragend. Er arbeitet sich in jede Problemstellung so tief ein bis er eine Lösung gefunden hat. Niederlage ist keine Option für Damian."

"Damian hat mir extrem schnell und kompetent geholfen, obwohl mein Problem genau auf die Weihnachtsfeiertage fiel. Er hat jede Menge Code gefunden, den selbst der Hoster komplett übersehen hat, und ihn zuverlässig entfernt, alle Lücken geschlossen und mir jede Menge Tipps für bessere IT Sicherheit gegeben. Auch nach Abschluss des Auftrags hat er noch regelmäßig auf das Projekt geschaut und mich über den weiteren Verlauf informiert, obwohl das gar nicht vereinbart war. Ich habe mich in besten Händen gefühlt und wurde ehrlich und aufrichtig beraten, sowohl telefonisch als auch per Mail. Und das alles zu einem fairen Preis."

Gregor Nebel

Deutsche Medienportale GmbH

Wenke Kunze

E. Wagemann High Performance Consulting GmbH

Sven Heidorn

Heidorn GmbH

Torsten Breitag

Torsten Breitag Versicherungsmakler

Martin Brosy

seoplus.expert

Kevin Spaun

SPAUN electronic GmbH & Co. KG

Christof Wallner

Ströer Media Brands GmbH

Soeren Eisenschmidt

TonerPartner International

Tobias Wüst

Ströer Media Brands GmbH

Feda Mecan

Startdowns GmbH

Konstantin Kutzer

meetyoo conferencing GmbH

Felix Beilharz

felixbeilharz.de

Rezensionen und Portfolio

Die meisten Kunden wollen nicht genannt werden, entsprechend darf ich dir hier keine konkreten Kundenmeinungen zeigen, die sich auf vergangene Penetrationstests beziehen. Wenn diese dich aber trotzdem interessieren, dann lässt sich sicherlich Kontakt zu Auftraggebern herstellen, die berichten können/wollen. Schreib mir hierzu einfach eine E-Mail.

Lass uns mal zusammen was machen!

Dafür musst du mich allerdings schon noch kontaktieren!