Frage:
Warum wird ein Anwendungsabsturz als unsicher angesehen?
Manoj R
2013-04-02 13:48:29 UTC
view on stackexchange narkive permalink

Wenn eine Anwendung abstürzt, stoppt das Programm und niemand kann etwas dagegen tun, außer das Programm erneut zu starten.

Absturz ist im Allgemeinen ein schlechtes Verhalten und sollte vermieden werden, aber warum? sie als Sicherheitslücke angesehen?

AiligvewwuCMT - fertig.
Sieben antworten:
Deer Hunter
2013-04-02 13:59:29 UTC
view on stackexchange narkive permalink

    Es ist abgestürzt, weil einige Eingaben nicht korrekt verarbeitet wurden. Ein Angreifer versucht möglicherweise, den Codepfad zu finden, der zu der fehlerhaften Prozedur führt, und versucht, beliebigen Code durch potenzielle Schwachstellen auszuführen.

  1. Abstürze können einem Angreifer wertvolle Informationen über das System und liefern Die internen Details.

  2. Abstürze können vorübergehende Sicherheitslücken verursachen oder ungeschützte Dateien (z. B. Speicherabbilder) hinterlassen, die möglicherweise ausgenutzt werden.

  3. (Danke und ein Tipp an Ladadadada) Die Anwendung, die abstürzt, muss neu gestartet werden, was offensichtlich Zeit kostet (auch bei Watchdogs und symmetrischen Failover-Schemata). Wenn ein Angreifer die zum Absturz führenden Bedingungen wiederholt, leidet Ihr Dienst unter einem längeren Ausfall ( Denial-of-Service), was finanzielle, Reputations- und andere Verluste bedeutet.

[CWE-20] (http://cwe.mitre.org/data/definitions/20.html), [CWE-209] (http://cwe.mitre.org/data/definitions/209.html), [CWE-528] (http://cwe.mitre.org/data/definitions/528.html) & [CWE-534] (http://cwe.mitre.org/data/definitions/534.html), [CWE-400] (http://cwe.mitre.org/data/definitions/400.html) (und wahrscheinlich noch einige mehr) und regelmäßiger Gast in den [OWASP Top 10] (https: //www.owasp .org / index.php / Top_10_2007-Information_Leakage_and_Improper_Error_Handling)
Ali Ahmad
2013-04-03 07:25:07 UTC
view on stackexchange narkive permalink

Wie die vorherige Antwort gezeigt hat, wurden die meisten Szenarien behandelt, in denen Angreifer durch die Analyse von Anwendungsabstürzen direkten Nutzen erzielen können. Ich empfehle, weiter "Abstürze analysieren, um Sicherheitslücken in Ihren Apps zu finden" zu lesen. Das Analysieren von Abstürzen auf Sicherheitslücken erfordert möglicherweise geringe Programmierkenntnisse. Wie in Abbildung 1 dargestellt, führt möglicherweise nicht jeder Exploit zu einer Sicherheitslücke und definiert einen Untersuchungspfad für die Analyse von Anwendungsabstürzen.

  • enter image description here
Ben
2013-04-02 20:22:27 UTC
view on stackexchange narkive permalink

Um die Antwort von Deer Hunter zu verallgemeinern:

  • Wenn eine Anwendung abstürzt, bedeutet dies, dass das Geschehen nicht erwartet und nicht verstanden wird.
  • Wenn es nicht erwartet und nicht verstanden wird, können Sie nicht wissen, ob es sicher ist.
  • Sie müssen daher davon ausgehen, dass dies nicht sicher ist.

Beachten Sie, dass das einfache Abfangen und Verwerfen einer unerwarteten Ausnahme auch unsicher ist und nicht zu tun. Das Beenden des Prozesses ist besser als das Fortfahren in einem unerwarteten inkonsistenten Zustand.

Dies ist im Wesentlichen das Destillat von Feynmans Anhang:

(...) Erosion und Blow-by sind nicht das, was das Design erwartet. Sie sind Warnungen, dass etwas nicht stimmt. Das Gerät funktioniert nicht wie erwartet, und daher besteht die Gefahr, dass es auf diese unerwartete und nicht genau verstandene Weise mit noch größeren Abweichungen betrieben werden kann. Die Tatsache, dass diese Gefahr zuvor nicht zu einer Katastrophe geführt hat, ist keine Garantie dafür, dass dies beim nächsten Mal nicht der Fall sein wird, es sei denn, sie ist vollständig verstanden.

Das vollständige Dokument finden Sie hier:

  • http://history.nasa.gov/rogersrep/v2appf.htm
  • Dies wird allen Softwareentwicklern empfohlen, insbesondere denen, die die Gewohnheit haben, Ausnahmen abzufangen, die sie nicht vollständig verstehen.

    PiotrC
    2013-04-03 02:29:57 UTC
    view on stackexchange narkive permalink

    Ein Anwendungsabsturz ist das Ergebnis eines unerwarteten und nicht behandelten Verhaltens. Dies bedeutet, dass in der Anwendung ein Fehler aufgetreten ist, der abgestürzt ist, und zahlreiche Fehler zu Sicherheitslücken führen.

    Eine der gefährlichsten Arten von Abstürzen ist dieser Absturz aufgrund von Speicherbeschädigung (Segmentierungsfehler). Diese Art von Fehlern kann häufig ausgenutzt werden, um die anfällige Anwendung dazu zu bringen, einen beliebigen (Malicius) Code auszuführen.

    Darüber hinaus kann bei Denial-of-Service-Angriffen eine Möglichkeit zum Absturz einer Software verwendet werden.

    Jeff
    2013-04-02 23:03:41 UTC
    view on stackexchange narkive permalink

    Sie führen zwei verschiedene Ereignisse zusammen: Stoppen und Abstürzen

    • Wenn eine Anwendung wirklich sauber gestoppt wird, kann sie keinen Schaden mehr anrichten.
    • Wenn eine Anwendung abstürzt, kann dies angezeigt werden alle Arten von undefiniertem und unerwartetem Verhalten, wie in anderen Antworten gezeigt. "Anhalten" ist nur ein Ergebnis. Es kann auch sein, dass 100% der CPU auf unbestimmte Zeit verwendet werden, was zu allen möglichen anderen Problemen führt.
    sachin shinde
    2013-09-22 20:33:27 UTC
    view on stackexchange narkive permalink

    Bestimmte Arten von Abstürzen werden als "Zugriffsverletzungen" bezeichnet. Dies sind die Abstürze / Anomalien, die gegen die Regel "verstoßen", die von Programmierern definiert wurde, die System / Software / Betriebssystem geschrieben haben, oder von Programmierern, die Compiler geschrieben haben, die ausführbare Dateien erstellen.

    Angenommen, der Angreifer (Neo) findet einen Absturz in einer der Software (Matrix), die er verwenden kann, um die Regel zu "verletzen" (Regeln, die für Matrix definiert sind), und er kann diesen Absturz verwenden, um die Kontrolle zu übernehmen über System (Matrix) und jetzt möchte er böswillige Aktivitäten ausführen (Matrix ausschalten), da er einen API-Aufruf kennt, dieser API-Aufruf jedoch von einem anderen Programm / Antivirus (Agent Smith) gesteuert / geschützt wird, aber seitdem er den hat Volle Kontrolle über das System (Matrix) Er kann Antivirus (Agent Smith) schließen und jetzt kann er das System (Matrix) schließen.

    Da dies die Vertraulichkeit, Integrität und Verfügbarkeit des Systems beeinträchtigt, werden diese Abstürze als solche bezeichnet Sicherheitsprobleme.

    Ein Exploit führt nicht immer zu einer vollständigen Systemsteuerung, da nicht alle Programme mit UID 0 ausgeführt werden. Sobald Sie jedoch eine Shell auf dem System haben, können Sie diese für andere schädliche Zwecke verwenden.
    The Spooniest
    2013-09-23 22:11:00 UTC
    view on stackexchange narkive permalink

    Bei vielen Anwendungsabstürzen - nicht bei allen, aber bei vielen - führt der Computer etwas aus, das er nicht haben sollte. Die Maschine springt in etwas, von dem sie glaubt, dass es Code sein soll, aber es sind tatsächlich auf Null gesetzte oder zufällige Daten (oder zumindest Daten, die nicht als Code vorbereitet wurden). Die Maschine versucht, diese Daten als Code zu betrachten, aber als Code macht dies keinen Sinn, sodass die Maschine nicht weiß, was zu tun ist. In diesem Fall stürzt die Anwendung ab.

    Bei Fehlern ist es jedoch wichtig, dass Sie sie absichtlich auslösen können, wenn Sie wissen, wie sie ausgelöst werden. Abhängig von der Funktionsweise des Fehlers können Sie manchmal sogar steuern, in welche Daten die Maschine springt. Diese Möglichkeit macht Sicherheitsleute nervös: Wenn Sie die Maschine dazu bringen können, in Daten zu springen, die keinen Sinn ergeben, und Sie steuern können, was diese Daten sind, können Sie die Maschine dazu bringen, in etwas zu springen, das macht Sinn. Sobald Sie diese Einstellungen vorgenommen haben, können Sie den Computer dazu bringen, mehr oder weniger alles zu tun, was Sie möchten.

    Nicht jeder Anwendungsabsturz funktioniert auf diese Weise. Die Antwort von @ AliAhmad zeigt die Grundlagen, wie man sagt, was kann und was nicht. Da die Folgen eines unsicheren Absturzes jedoch so schwerwiegend sein können, muss jeder Absturz überprüft werden, um festzustellen, ob er "sicher" ist oder nicht.



    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...