Frage:
Wie reagiere ich auf eine veröffentlichte Sicherheitslücke in meiner Anwendung?
Michael Hampton
2012-08-30 01:44:18 UTC
view on stackexchange narkive permalink

In meiner Freizeit schreibe ich PHP-Code, mit dem Link-Spam und andere verschiedene böswillige Aktivitäten blockiert werden sollen.

Am 11. Mai entdeckte jemand eine XSS-Sicherheitsanfälligkeit In der WordPress-Version dieses Codes hat ihn veröffentlicht, ohne mich zuerst zu benachrichtigen. Glücklicherweise sind meine Benutzer am Ball und haben mich am 12. Mai benachrichtigt. Am 13. Mai habe ich einen Fix veröffentlicht.

Das war noch nicht alles.

Seitdem habe ich entdeckte, dass die Sicherheitsanfälligkeit einer Vielzahl von Datenbanken wie OSVDB und CVE sowie verschiedenen Spiegeln dieser Datenbanken mit unterschiedlichem Grad an Ungenauigkeit hinzugefügt wurde.

Auf einer solchen Site wird beispielsweise jemand ganz anderes als Autor der Software aufgeführt. Ein anderer listet es als noch nie gepatcht auf.

Mein letztes Anliegen ist also:

Da Schwachstellen in meiner Anwendung im gesamten Internet veröffentlicht werden Ob es mir gefällt oder nicht, wie kann ich ...

  • so schnell wie möglich eine Zero-Day-Sicherheitsanfälligkeit für meine Anwendung feststellen, ohne irrelevante Benachrichtigungen erhalten zu müssen?
  • Finden Sie heraus, wann Schwachstellendatenbanken Einträge für meine Anwendung erstellen?
  • Stellen Sie die Richtigkeit von Schwachstellendatenbankeinträgen für meine Anwendung sicher?
Diese Schwachstellendatenbanken führen Daten aus einer Reihe von Quellen zusammen und werden häufig in Eile zusammengefasst, wenn ein großer Rückstand zu bewältigen ist. Die Betreiber dieser Datenbanken bemühen sich jedoch um Genauigkeit, daher sollten sie mehr als glücklich sein, falsche Informationen zu korrigieren. Wenn Sie eine Patch-Release-Mitteilung haben, können Sie diese auch an diese senden. Nehmen Sie Kontakt mit ihnen auf und erklären Sie die Situation - sie sollten die Probleme ziemlich schnell beheben.
Eines der Probleme ist zu wissen, wer "sie" sind. Es scheint mehr Websites zu geben, als ich vernünftigerweise finden kann, und ich bin mir halbwegs sicher, dass ich eine verpassen werde.
Halten Sie sich an das, was Sie finden können. Andere sind wahrscheinlich weniger bekannt und spinnen oft nur die vorhandenen Datenbanken anderer.
Fünf antworten:
D.W.
2012-08-30 10:42:34 UTC
view on stackexchange narkive permalink

Für die Zukunft sollten Sie Folgendes tun:

  • Bieten Sie den Benutzern eine einfache Möglichkeit, Sicherheitslücken zu melden.

    Ich habe mir die Webseite für Ihre Anwendung angesehen und festgestellt, dass ein Sicherheitsforscher anscheinend keine Möglichkeit hat, Sie mit einem Bericht über eine Sicherheitslücke zu kontaktieren. Es gibt keine E-Mail-Adresse, um Sicherheitslücken zu melden, oder zumindest konnte ich keine finden. Ich konnte keinen Bug-Tracker finden, mit dem Benutzer einen vertraulichen Sicherheitslückenbericht einreichen können (oder überhaupt einen Bug-Tracker, mit dem ein Mitglied der Öffentlichkeit einen Fehlerbericht einreichen kann, geschweige denn einen vertraulichen Bericht über einen Sicherheitsfehler).

    Siehe z. B. die Empfehlungen von CERT an Anbieter und Hey Unternehmen: Bieten Sie eine einfache Möglichkeit, Schwachstellen an Sie weiterzugeben!.

    Von Natürlich ist dies keine Silberkugel. Selbst wenn Sie eine eindeutige Möglichkeit bieten, eine Sicherheitslücke zu melden, werden einige Leute Sie möglicherweise nicht kontaktieren - einige verantwortungsbewusste Forscher jedoch. Auf jeden Fall kann ich Ihnen eines sagen: Wenn Sie keine offensichtliche Möglichkeit bieten, Sie mit einem Sicherheitsfehlerbericht zu kontaktieren, verringert dies die Wahrscheinlichkeit, dass Sicherheitsforscher dies in Zukunft tun werden, erheblich!

Es gibt auch einige zusätzliche Schritte, die Sie unternehmen können, wenn Sie möchten, aber diese sind optional und gehen über das hinaus, was ich als wichtig oder wesentlich für ein Open-Source-Projekt einstufen würde:

Eine schnelle und schmutzige Kontaktseite wurde hinzugefügt. Der Bug-Tracker wird später kommen, nachdem ich den Umzug nach Github beendet habe.
bethlakshmi
2012-09-12 21:31:35 UTC
view on stackexchange narkive permalink

Ich mochte die Antwort von DW so sehr, dass ich es ablehne, eine andere zu schreiben, aber ich hatte einige Punkte, die groß genug waren, dass ich sie hier leider wiederhole:

Wie mache ich - Informieren Sie sich so schnell wie möglich über eine Zero-Day-Sicherheitsanfälligkeit gegenüber meiner Anwendung, ohne irrelevante Benachrichtigungen erhalten zu müssen?

Gehen Sie so nah wie möglich an die Quelle der Offenlegung von Sicherheitsanfälligkeiten heran und erkennen Sie diese wird nicht immer die gleiche Quelle sein. Dies muss eine Kombination aus einer besseren Informationsbeschaffung und einer einfachen Suche sein (was seine eigenen Auswirkungen auf Spam hat).

Gute Ideen sind: - einen offensichtlichen Weg auf Ihrer Website zu finden Fehler und Schwachstellen einschließen - Stellen Sie sicher, dass beim erneuten Packen durch ein anderes System Sicherheitslücken an Ihr Fehler- / Schwachstellen-Tracking-System gesendet werden. Sie werden wahrscheinlich diskutieren wollen, wie Probleme überprüft werden, bevor sie an Sie gesendet werden, aber Sie müssen sich darüber im Klaren sein, dass die größten Schwachstellen häufig in der Integration Ihres Systems in das größere System liegen Legen Sie keinen echten "Null-Tag" fest, da diese möglicherweise um Stunden oder Tage zurückbleiben, aber Sie möchten auf jeden Fall direkt von ihnen hören. - Sammeln Sie so viele Informationen wie möglich, die für potenzielle Produktschwachstellen relevant sind - Google Alerts - war eine großartige Idee. Ich bin mir sicher, dass es noch andere gibt.

Möglicherweise müssen Sie akzeptieren, dass irrelevante Informationen auf Sie zukommen - das Beste, was Sie tun können, ist, sie zu sortieren.

Denken Sie auch daran , dass nicht alle Schwachstellen von den Guten gefunden werden. Das Warten darauf, dass jemand anderes es findet, ist niemals der ideale Weg, um Schwachstellen zu finden. Wenn das Produkt wächst, sollten Sie eine Form der Sicherheitsüberprüfung einführen, einschließlich:

  • Code-Sicherheitsanalyse - sowohl manuell als auch automatisiert.
  • Stifttests
  • unabhängige Überprüfung

Der Aufwand muss hier durch die Fehlerkosten ausgeglichen werden. Möglicherweise stellen Sie jedoch fest, dass die Kosten für das Auffinden und Reagieren auf eine öffentlich bekannt gewordene Sicherheitsanfälligkeit höher sind als für die Implementierung Ihrer eigenen Sicherheitsüberprüfung.

Wie kann ich herausfinden, wann Schwachstellendatenbanken Einträge für meine Anwendung erstellen?

Viele der Schwachstellendatenbanken verfügen über Streaming von Warnungen. Sie sollten in der Lage sein, sich anzumelden zu einem Stream und Filter oder erhalten Sie einen RSS-Feed und begrenzen Sie ihn mit Suchkriterien.

Wie kann ich - die Richtigkeit von Schwachstellen-Datenbankeinträgen in Bezug auf meine Anwendung sicherstellen?

Erstellen Sie zunächst eine Beziehung zu den Datenbankgruppen. Und machen Sie deutlich, wie Sie eine Beziehung zu Ihnen herstellen können, wenn eine Datenbankgruppe Kontakt aufnehmen möchte. CERT's Anleitung und dieser Artikel - sind großartige Ressourcen für Empfehlungen, aber der entscheidende Teil ist die Erkenntnis, dass sie nicht das Richtige finden, wenn sie Sie nicht erreichen können Antwort.

Und es ist ein wechselseitiger Prozess - Sie können Sie finden, aber auch Informationen veröffentlichen. Und wenn Sie veröffentlichen, geben Sie solide Antworten an. Als Entwickler von Lösungen habe ich zu viele Probleme mit Lösungsanbietern, die Informationen zu Sicherheitslücken bereitstellen, die so klingen, als hätten sie sich diese ausgedacht, um ohne tatsächliche Tests oder sachliche Informationen zu arbeiten. Listen Sie Dinge auf wie:

  • Angaben zum Fix
  • Einzelheiten zu den Tests, die zur Überprüfung des Fixes verwendet wurden
  • Einzelheiten zu den Auswirkungen der Korrektur ( Gibt es eine Chance, dass sich etwas, auf das ich mich verlassen habe, ändert oder bricht?)
  • allgemeine Zusammenfassung des Umfangs der Änderung - zum Beispiel "Korrektur an einer zugrunde liegenden Dienstprogrammfunktion vorgenommen", "Korrektur an einer spezifizierten Codebasis" Bei Verwendung für die XYZ-Interoperabilität sind die Auswirkungen außerhalb dieses Bereichs äußerst begrenzt. "

Und Details zu CVE oder anderen veröffentlichten Problemen, die Sie beheben möchten.

Stellen Sie es in so vielen Streams wie möglich bereit - E-Mail-Abonnement, Blog, Website usw. Sie möchten, dass dies auffindbar ist.

Und machen Sie Ihren Prozess bekannt. Kann ich damit rechnen, innerhalb von 24 Stunden eine Antwort zu erhalten, wenn ich eine Sicherheitslücke auf Ihrer Website einreiche? Wie bewerten Sie den Schweregrad? Was ist der Prozess zur Lösung? Wenn es sich um ein Produkt handelt, das in andere Lösungen integriert ist, wer führt die Interop-Tests durch?

Sie benötigen keine perfekten Metriken, sondern müssen in der Lage sein, diese zu erfüllen. Wenn Ihre Bearbeitungszeit 2 Wochen beträgt, teilen Sie dies den Benutzern mit.

Daniel Li
2012-08-30 01:52:51 UTC
view on stackexchange narkive permalink

Zero-Day-Schwachstellen befinden sich häufig im Untergrund, sodass es schwierig ist, sie über eine vertrauenswürdige Quelle zu erfassen. Veröffentlichte Aussagen treten normalerweise erst auf, nachdem die Sicherheitsanfälligkeit von den Opfern erkannt und verfolgt wurde, häufig früh genug, damit andere potenzielle Opfer ihre Systeme patchen können. Leider werden diese Nachrichten erst dann an die Open Source-Community gesendet, wenn die Herausgeber die Informationen zur Sicherheitsanfälligkeit verbreitet haben, was zu einem Welleneffekt beim Patchen führt.

Zum Glück, wenn Sie Ihre Software über einen Paketmanager automatisch aktualisieren, Sicherheitslücken werden möglicherweise von der Open Source-Community automatisch für Sie gepatcht, wodurch die Notwendigkeit einer Selbstvalidierung verringert wird.

Zunächst sollte erwähnt werden, dass CVE über eine Liste von Sicherheitslücken-Warndiensten verfügt das könnte von deinem Interesse sein. Diese Tools senden Benachrichtigungen, um Sie bei Bedarf zu benachrichtigen.

Möglicherweise möchten Sie bestimmte Schwachstellen-Newsletter wie @RISK lesen, in denen wöchentlich Artikel zu Schwachstellen veröffentlicht werden.

SecurityFocus aktualisiert seine Website auch mit einer Liste von Sicherheitslücken (wenn auch ohne Feed) in einem Spektrum von Software.

Um irrelevante Benachrichtigungen zu filtern Möglicherweise möchten Sie einen überarbeiteten Skriptfilter durch den Inhalt für Schlüsselwörter haben, die sich auf Ihre Software beziehen.

* "Wenn Sie Ihre Software über einen Paketmanager automatisch aktualisieren, werden Sicherheitslücken möglicherweise von der Open Source-Community automatisch für Sie gepatcht, wodurch die Notwendigkeit einer Selbstvalidierung verringert wird." * - Ich denke, Sie haben die Frage möglicherweise falsch verstanden. Michael ist der Autor einer PHP-Anwendung und fragt, wie er vermeiden kann, von der öffentlichen Offenlegung von Schwachstellen * in seinem eigenen Code * überrascht zu werden. Kein Paketmanager wird das für ihn lösen. Die Open-Source-Community wird seinen Code nicht auf magische Weise für ihn patchen.
Ganz zu schweigen davon, dass ich nach Antworten suche, die jedem Anwendungsentwickler helfen können. Es soll eine Frage sein, die sowohl für die globale Internet-Community als auch für mich nützlich ist.
pgs
2012-09-06 05:08:31 UTC
view on stackexchange narkive permalink

Google Alerts - Erstellen Sie eine Suchabfrage, in der Erwähnungen Ihrer Software und Schwachstellen gefunden werden. Stellen Sie diese so ein, dass Sie täglich per E-Mail benachrichtigt werden. Innerhalb von 24 Stunden nach der Indizierung durch Google erfahren Sie alles / p>

akostadinov
2012-09-07 12:38:24 UTC
view on stackexchange narkive permalink

Wenn Ihre Software in großen Distributionen wie Fedora, Debian, Gentoo usw. enthalten ist, ist es von Vorteil, mit deren Sicherheitsteams in Kontakt zu treten. Ich bin sicher, dass sie mehr als glücklich sein werden, wenn Sie zukünftige Sicherheitsprobleme beheben. Sie würden auch die Ressourcen nutzen, die sie benötigen, um täglich verschiedene Quellen von Schwachstelleninformationen zu überprüfen.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...