Kleine und spezialisierte Sicherheitsteams müssen sich täglich gegen ein Heer verschiedenster Cyberkrimineller verteidigen. Vor dem Hintergrund, dass sie jeden einzelnen Angriff unterbinden müssen, sind die Aussichten denkbar schlecht – die Angreifer müssen schließlich nur einen einzigen Treffer landen. Der akute Mangel an IT-Security-Spezialisten stellt deshalb für Unter-nehmen ein kritisches Risiko dar. Einige IT-Organisationen begegnen diesem Missstand mit Bug-Bounty-Programmen.

Es wird immer schwieriger, Sicherheitsanalysten zu finden, die sich auf Mobile-, Web- und Single-Page-Applikationen, Micro-Services oder auch APIs spezialisiert haben. Ein kürzlich veröffentlichter Bericht von CyberEdge zeigt, dass 80 Prozent der Unternehmen heute unter einem Mangel an qualifiziertem IT-Sicherheitspersonal leiden. Zudem erkennen viele der größten Unternehmen heute, dass nur wenige „Aufpasser“ nicht ausreichen, um ihre Daten zu sichern. Um Fehler in Online-Systemen zu entdecken, brauchen sie möglichst viele Fachleute. Deshalb wenden sich zukunftsorientierte Unternehmen an die Hacker-Community, um ihre Sicherheitsvorkehrungen zu verbessern.

Diese Unternehmen führen heute Bug-Bounty-Programme durch: Sie laden erfahrene Hacker ein, Schwachstellen in den hauseigenen Systemen zu suchen und diese zu melden. So können sie Sicherheitslecks schließen, bevor Cyberkriminelle ihre IT-Systeme kompromittieren können.

Statt eine Person oder ein kleines Team ein- oder zweimal im Jahr nach Schwachstellen suchen zu lassen, nutzen Sicherheitsteams so Zehntausende von Hackern mit unterschiedlichen Fähigkeiten, um das ganze Jahr über kontinuierlich Sicherheitsbewertungen durchzuführen.

Beschreibung einer gemeldeten SSRF-Schwachstelle (Server-Side Request Forgery). Bild: HackerOne

Durch die Nutzung der Hacker-Community können Unternehmen von deren umfassender Expertise auf der ganzen Welt profitieren, uneingeschränkt von Standort und der Anzahl. Neueste Untersuchungen zeigen, dass 77 Prozent der Bug-Bounty-Programme es ermöglichen die erste Schwachstelle innerhalb der ersten 24 Stunden aufzudecken.

Die Einführung und Ausführung einer erfolgreichen Bug Bounty unterscheidet sich deutlich von der Verwendung anderer Sicherheitswerkzeuge und -dienste. Es gibt dabei eine Reihe von Aufgaben, die ein Unternehmen dafür erledigen muss. Für ein Unternehmen ist es zunächst wichtig zu entscheiden, ob es Bounties überhaupt auszahlen will. Viele beginnen mit einem Vulnerability Disclosure Program (VDP, Programm zur Offenlegung von Schwachstellen). VDPs – auch als Responsible Disclosure oder Software Vulnerability Disclosure (SVD) bekannt – etablieren einen offiziellen Kanal, durch den externe Sicherheitsexperten Schwachstellenberichte einreichen können.

Ein VDP kann dabei einfach nur eine Seite sein, die beschreibt, wie und wo man eine Schwachstelle einreicht, zum Beispiel eine E-Mail-Adresse à la security@xyz.com oder eine security.txt im Web Root Directory. Ein VDP kann entdeckte Schwachstellen dabei durchaus auch mit nicht-finanziellen Belohnungen honorieren, zum Beispiel mit einem T-Shirt oder einer Medaille. VDPs sind immer öffentlich und eher reaktiv als proaktiv. Dennoch sind sie ein guter Anfang. Alle Unternehmen, die Software produzieren, sollten über eine entsprechende Plattform verfügen.

Ein Unternehmen kann seinen Fokus von reaktiven zu proaktiven Security-Vorkehrungen verschieben, indem es finanzielle Anreize schafft, eben die sogenannten Bounties (deutsch: Prämien). Technologieunternehmen nutzen Bug-Bounty-Programme bereits seit den Anfängen des Internets: Die erste Erwähnung des Begriffs stammt aus dem Netscape-Navigator-Team.

Öffentliches oder privates Programm?

Der Unterschied zwischen einem öffentlichen und einem privaten Bug-Bounty-Programm besteht darin, dass bei einem öffentlichen Programm jeder einen gefundenen Bug melden kann, während an einem privaten Programm nur eingeladene Hacker teilnehmen können. Der Grund, sich für ein öffentliches Bug-Bounty-Programm zu entscheiden, ist normalerweise, dass die größtmögliche Anzahl an Augen nach Bugs suchen soll. Dies führt in der Regel zu einer höheren Anzahl von gemeldeten Schwachstellen sowie schnellerem Auffinden und Beheben.

Ein nicht-öffentliches Bug-Bounty-Programm wählt man in der Regel, um die Anzahl an gemeldeten Schwachstellen zu begrenzen oder besser kontrollieren zu können, wer Überprüfungsanforderungen erfüllt und teilnehmen kann. Dies kann nützlich sein, wenn das hausinterne Sicherheitsteam klein und daher unschlüssig ist, wie lange es dauern wird, die gemeldeten Probleme zu beheben. Auch wenn das Unternehmen nur wenigen ausgewählten Hackern eine begrenzte Anzahl von Testkonten zuweisen will, kann dies schon eine nützliche Hilfe darstellen. Für den Fall, dass man Geräte per Post zusenden muss, können geografische oder andere Einschränkungen der Teilnehmerschaft sinnvoll sein.

Unternehmen können öffentliche und private Programme natürlich auch kombinieren. Dies kann entweder parallel oder nacheinander erfolgen. Viele Unternehmen starten mit einem privaten Programm und öffnen es, nachdem sie ihren Prozess der Schwachstellenbehandlung perfektioniert haben. Andere lassen sensible Unternehmensbereiche in einem privaten Programm untersuchen und die übrigen in einem parallelen öffentlichen Programm.

Umfang von Bug-Bounty-Programmen

Die Grenzen des Programms müssen vorab klar definiert sein: Welche Websites, Applikationen Mobilgeräte-Apps etc. sollen die Hacker testen? Die wichtigsten Überlegungen sind dabei, welche Zugriffswege und -rechte Hacker bekommen und wie sie autorisiert werden. Hinzu kommt die Frage, wer die gemeldeten Schwachstellen beheben wird, wenn etwas gefunden wurde.

Die Frage des Zugangs ist wichtig, da einige Komponenten und Netzwerke eventuell nicht über das Internet erreichbar sind oder geografische oder physische Einschränkungen für die Teilnahme aufweisen. Es kann zudem bestimmte Schwachstellentypen oder Aspekte geben, die das Unternehmen vom Test ausnehmen will, zum Beispiel Denial-of-Service-Tests oder CSRF (Cross-Site Request Forgery) beim Logout. Es ist wichtig, diese Fälle aufzulisten, damit Hacker ihre Zeit nicht damit verschwenden, sie zu finden und zu melden, da dies für alle Beteiligten nur frustrierend wäre.

Beschreibung einer gemeldeten SSRF-Schwachstelle (Server-Side Request Forgery). Bild: HackerOne

Ein großer Unterschied zwischen einer traditionellen Sicherheitsbewertung und einem Bug-Bounty-Programm besteht darin, dass dieses nur pro Erfolgsfall Prämien ausschüttet. Es gleicht einem „Pay as you go“-Telefonvertrag: Je mehr Schwachstellen die Hacker finden, desto höher sind die Kosten. Dies ist kosteneffizient, stellt aber auch eine Herausforderung bei der Einschätzung der Ausgaben dar, vor allem innerhalb eines fest vorgegebenen Budgets.

Ein Bug-Bounty-Programm bestimmt die Höhe der Prämien normalerweise nach dem Schweregrad eines Fundes und definiert diese in einer Bounty-Tabelle auf der Programmseite: Eine kritische Schwachstelle bringt eine höhere Prämie als eine mit niedriger Kritikalität. Auch können verschiedene untersuchte Bereiche, die auf organisatorischen Prioritäten basieren, unterschiedliche Bounty-Tabellen haben.

Behandlung von Schwachstellen

Zum Prozess der Schwachstellenbehandlung zählen typischerweise die Aktivitäten Reagieren, Ausprobieren, Korrigieren und Patchen. In Normen wie ISO 30111 sind diese Aktivitäten detaillierter beschreiben. Für Unternehmen kann es dabei lohnenswert sein, eine RACI-Matrix (Verantwortungs-Zuordnungsmatrix; RACI: Responsible, Accountable, Consulted, Informed) und ein Flussdiagramm mit den internen Stakeholdern zu erstellen. So lässt sich sicherstellen, dass jeder vorbereitet ist, wenn Programmteilnehmer Schwachstellen melden. Folgende Metriken kommen zum Einsatz, um die Effizienz eines Prozesses zur Behandlung von Schwachstellen zu messen:

  1. Zeit bis zur Triage (Priorisierung)/Antwort auf einen neuen Bericht,
  2. Zeit bis zur Prämie (nach Evaluierung der Schwachstelle) oder
  3. Zeit bis zur Behebung der Schwachstelle.

Damit Bug-Bounty-Programme möglichst effektiv arbeiten, sollte das Unternehmen tatsächlich vorab veröffentlichen, wieviel Zeit zum Reagieren auf Hinweise, Bezahlen der Prämie und Beheben einer Schwachstelle man veranschlagt. Dies verdeutlicht zugleich die Voraussetzungen und Erwartungen an die Hacker und kann es erleichtern, die talentiertesten Köpfe für die Teilnahme am Programm zu gewinnen.

Die meisten Unternehmen entscheiden sich dafür, die Sicherheitsbefunde privat zu halten. Andere wiederum machen einen Teilbericht oder sogar einen vollständigen Bericht öffentlich zugänglich – natürlich erst, nachdem sie die Schwachstelle behoben haben. So demonstrieren sie ihre Sicherheitsaktivitäten und helfen der Community dazuzulernen.

Bug-Bounty-Programme erweitern Kapazitäten wie auch Know-how und helfen so, Schwachstellen kontinuierlich – und möglichst vor der Entdeckung durch Cyberkriminelle – aufzudecken. Sie helfen dem Sicherheitsteam, weniger Zeit mit der Fehlersuche und mehr Zeit mit der Behebung zu verbringen. Die einzige Einschränkung bei der Durchführung m eines Bug-Bounty-Programms ist die Geschwindigkeit, mit der man die gefundenen Schwachstellen beheben kann. IT-Sicherheitsteams sollten nicht nur die Zeit bis zur Behebung im Blick haben, sondern Erkenntnisse, die sie gewinnen, in ihre anderen Sicherheitslösungen einfließen lassen.

Laurie Mercer ist Security Engineer bei HackerOne, www.hackerone.com. Leitfäden und Best-Practice-Dokumente zu Bug-Bounty-Programmen finden sich unter www.hackerone.com/resources#guides.