Sicherheit durch Transparenz – wie wir Sicherheitslücken veröffentlichen

Wir haben aramido mit der Vision gegründet, die Benutzung von Infor­mations­technik für jeden sicher zu machen. Um dieses Ziel zu errei­chen, muss man an verschie­denen Hebeln ansetzen. Einer der effek­tivsten ist es Unter­nehmen, die Soft­ware herstel­len oder für eine große Zahl an Mitar­beitern und Kun­den betrei­ben, zu helfen Sicher­heit von Grund auf nach den Prin­zipien von Security By Design in ihre Produk­te einzu­bauen. Eine der wirk­samsten Maß­nah­men, um Schwach­stellen in IT-Sys­temen und Anwen­dungen zu finden, sind Pene­trations­tests. Dabei unter­suchen wir gezielt und im Auf­trag unserer Kunden IT-Sys­teme nach Schwach­stellen und geben Handlungs­empfeh­lungen, wie diese beho­ben werden können. Doch was passiert mit Schwach­stellen, die wir außer­halb kon­kreter Kunden­aufträge finden? Hier folgen wir einem branchen­weit aner­kannten Vor­gehen.

Wie kann man mit gefun­denen Sicher­heit­slücken um­gehen

Wie wir schon in unserem Artikel zu sicheren Soft­ware-Up­dates beschrie­ben haben, ist es auf­grund der Komple­xität von Soft­ware nahezu unmöglich fehler­freie Soft­ware zu ent­wickeln. Werden aber später Feh­ler gefun­den sollten Sie vom Her­steller der Soft­ware beho­ben werden, beson­ders wenn sie die Sicher­heit betref­fen. Wenn man sich wie wir beruf­lich mit der Sicher­heit von Soft­ware und speziell Web­anwen­dungen beschäf­tigt, fallen einem regel­mäßig Sicher­heits­lücken auf. Diese Sicher­heits­lücken kann man dann

  1. dem für die Soft­ware Verant­wort­lichen melden, oder
  2. nicht melden.

Variante zwei, das Wissen über eine Sicherheits­lücken nicht zu melden, selbst aus­zunutzen oder zu ver­kaufen, kommt für uns aus ethischen Grün­den nicht in Frage. Es kann aber nie aus­geschlos­sen werden, dass schon jemand anderes die Sicher­heits­lücke entdeckt hat und aktiv aus­nutzt. Außer­dem wider­spräche das Vor­gehen Sicher­heits­lücken zu ver­schwei­gen unserer Mission, IT sicher zu machen.

Bleibt also die Variante die Sicherheits­lücke an den Verant­wortli­chen für die Soft­ware zu melden, damit er die Sicher­heits­lücke beheben kann. Hierbei gibt es folgende Vorge­hens­weisen:

  1. Full Disclosure
  2. Non Disclosure
  3. Coordinated Disclosure

Full Disclosure – Sicherheits­lücken sofort ver­öffent­lichen

Full Disclosure beschreibt das Vorgehen Sicherheits­lücken sofort und voll­ständig zu ver­öffent­lichen ohne einen Patch des Her­stellers abzu­warten. Für dieses Vor­gehen spricht, dass Anwender möglichst schnell von Sicher­heits­lücken erfahren, um selbst Schutz­maß­nahmen einzu­leiten. Wie bereits bemerkt, könnte die Sicher­heits­lücke auch von anderen Per­sonen bereits ent­deckt und aus­genutzt wor­den sein. Dennoch kann es durch­aus kritisch sein eine Sicher­heits­lücke, für die noch kein Patch bereit steht, zu ver­öffent­lichen, da Anwen­der möglicher­weise dann erst recht gefährdet werden. Falls die Schwach­stelle bisher nicht ausge­nutzt wurde, steigt die Wahr­schein­lichkeit damit zumin­dest stark an – immerhin steht das Wissen nun bös­willi­gen Hackern zur Verfü­gung. Ein populärer Weg, um Sicher­heits­lücken nach dem Full Disclosure-Prinzip zu ver­öffentli­chen, ist die Bekannt­machung über die Mailing­liste Full Disclosure.

Non Disclosure – Si­cher­heits­lücken nicht veröffentlichen

Das Gegenteil zur vollständigen Offen­le­gung ist die NichtVer­öffent­li­chung von Schwach­stel­len. Stattdessen werden diese dem Hersteller vertraulich gemeldet. Es liegt dann an ihm, ob und wann er einen Patch für die Si­cher­heits­lücke bereitstellt. Die Begründung für das nicht Veröffentlichen von Si­cher­heits­lücken ist, dass man bösartigen Hackern die Arbeit nicht erleichtern will. Dem steht gegenüber, dass Angreifer häufig auch schon auf anderen Wegen die Si­cher­heits­lücken selbst entdeckt haben. Ein Verheimlichen von Si­cher­heits­lücken würde so zu einem Informationsungleichgewicht von Angreifern und Anwendern führen. Außerdem führen Kritiker einer Non Disclosure Policy an, dass Hersteller nur unter dem Druck der Ver­öffent­li­chung den Si­cher­heits­lücken angemessen Aufmerksamkeit schenken, die Allgemeinheit von den Fehlern lernen kann und ähnliche Fehler hierdurch vermieden werden.

Coordinated Disclosure – Si­cher­heits­lücken ver­ant­wor­tungs­voll veröffentlichen

Die koordinierte Offen­le­gung wird häufig auch als ver­ant­wor­tungs­volle Offen­le­gung (Responsible Disclosure) bezeichnet. Sie ist der Mittelweg zwischen Non Disclosure und Full Disclosure. Hierbei wird zunächst der Hersteller in vertraulicher Art und Weise über eine Si­cher­heits­lücke informiert. Ihm wird ein angemessener Zeitraum gegeben, die Si­cher­heits­lücke zu beheben. Erst nach Ver­öffent­li­chung eines Sicherheitsupdates oder dem Ablauf der gesetzten Frist werden Details zur Schwach­stel­le veröffentlicht. Damit sollen die Risiken für Anwender minimiert werden: Einerseits soll die Wahrscheinlichkeit der Ausnutzung von Si­cher­heits­lücken durch die Ver­öffent­li­chung ohne gleichzeitigen Patch verringert werden, andererseits sollen Anwender vor Schwach­stel­len in der von ihnen verwendeten Soft­ware gewarnt werden. Ein bekanntes Projekt, das nach diesem Prinzip arbeitet ist Google Project Zero. Dieses besteht aus einer Gruppe von Sicherheitsforschern, die im Auftrag von Google unbekannte Si­cher­heits­lücken (sogenannte Zero Days) in verschiedenen, nicht von Google entwickelten Anwendungen suchen und im Coordinated Disclosure-Verfahren, üblicherweise mit einer Frist von 90 Tagen, veröffentlichen. Aber auch immer mehr große Anbieter, wie Facebook oder Mozilla organisieren die ver­ant­wor­tungs­volle Offen­le­gung von Schwach­stel­len in ihren Produkten über Bug Bounty-Programme selbst.

Wie handhabt aramido gefundene Si­cher­heits­lücken?

Nach Abwägung der oben beschriebenen Argumente für die verschiedenen Offen­le­gungsvarianten hat sich aramido dazu entschlossen Si­cher­heits­lücken ver­ant­wor­tungs­voll nach dem folgenden Verfahren offen­zu­legen:

Vorgehen zur ver­ant­wor­tungs­vollen Offen­le­gung von Si­cher­heits­lücken (Responsible Disclosure Policy)

Fast jedes IT-System weist Fehler auf. Diese Fehler werden häufig erst im Laufe der Zeit gefunden. Erlauben diese Fehler die Vertraulichkeit, Integrität oder Verfügbarkeit der Systeme, der Anwendungen oder der darin gespeicherten Daten zu beeinträchtigen, liegt eine Si­cher­heits­lücke vor. Die aramido GmbH sieht es als ihre Aufgabe Si­cher­heits­lücken in einer ver­ant­wor­tungs­vollen Art und Weise den Herstellern, Betreibern und Nutzern zu melden.

Die von der aramido GmbH gefundenen Si­cher­heits­lücken werden nach dem folgenden Verfahren zur ver­ant­wor­tungs­vollen Offen­le­gung veröffentlicht. Ausnahmen davon sind Schwach­stel­len, die im Verantwortungsbereich eines Kunden der aramido GmbH liegen oder durch anderweitige vertragliche Vereinbarungen von der Ver­öffent­li­chung ausgeschlossen sind.

Nach dem Fund einer Si­cher­heits­lücke wird der für die Anwendung oder das System Verantwortliche darüber auf einem vertraulichen Weg in Kenntnis gesetzt. Dabei werden Informationen zur Schwach­stel­le und zu ihrer Ausnutzbarkeit mitgeteilt. Nach Behebung der Schwach­stel­le oder spätestens nach 45 Tagen, unabhängig vom Behebungsstatus, wird diese auf der Webseite der aramido GmbH veröffentlicht. Von diesem Vorgehen wird nur in begründeten Ausnahmen und nach Abwägung der Auswirkungen auf die Allgemeinheit abgewichen.

Wird eine Si­cher­heits­lücke durch aramido gefunden, könnte sie bereits durch andere Parteien gefunden und ausgenutzt worden sein. Daher sollten Si­cher­heits­lücken so schnell wie möglich geschlossen werden. Zum Schutz der Allgemeinheit sollte die Öffent­lich­keit über gefundene Si­cher­heits­lücken informiert werden. Auf diese Weise können Schwach­stel­len behoben, aus Fehlern gelernt und das Verhalten angepasst werden.

Unter der Kategorie Sicher­heits­hin­weise finden Sie in Zukunft Sicher­heits­hin­weise, die von Mitarbeitern von aramido gefunden und offengelegt wurden.

Armin Harbrecht

Am 06.02.2017 in der Kategorie Sicherheitshinweise veröffentlicht.