1. Foren
  2. Kommentare
  3. Security
  4. Alle Kommentare zum Artikel
  5. › Speicherleck: Cloudflare verteilt…

wichtigster satz im blog von cloudflare...

Helft uns, die neuen Foren besser zu machen! Unsere kleine Umfrage dauert nur wenige Sekunden!
  1. Thema

Neues Thema Ansicht wechseln


  1. wichtigster satz im blog von cloudflare...

    Autor: Anonymer Nutzer 24.02.17 - 11:56

    "The Ragel code we wrote contained a bug that caused the pointer to jump over the end of the buffer and past the ability of an equality check to spot the buffer overrun."

    sie haben einen parsergenerator verwendet und den internen status des erzeugten codes geändert, obwohl sie das nicht hätten tun dürfen. sie haben den pointer, der auf das aktuelle zeichen der eingabe gezeigt hat, geändert, sodass der generierte code das ende des strings nicht mehr erkannt hat.

    rust hätte hier wohl einen fehler geworfen, sodass deren server abgestürzt wären. es hätte den bug nicht verwendert, aber immerhin wäre es zu keinem leck gekommen.



    1 mal bearbeitet, zuletzt am 24.02.17 11:57 durch bjs.

  2. Re: wichtigster satz im blog von cloudflare...

    Autor: pythoneer 24.02.17 - 12:10

    bjs schrieb:
    --------------------------------------------------------------------------------
    > rust hätte hier wohl einen fehler geworfen, sodass deren server abgestürzt
    > wären. es hätte den bug nicht verwendert, aber immerhin wäre es zu keinem
    > leck gekommen.

    Es ist sehr wahrscheinlich, dass Rust den Bug verhindert hätte. Du gehst nämlich davon aus, dass man den Code 1:1 so in Rust gefunden hätte und dafür hätte man unsafe benutzen müssen. Eine Implementierung in Rust hätte wohl aber grundsätzlich anders ausgesehen. Wenn ich einfach nur C Code 1:1 nach Rust portiere und ein großes unsafe in die Main packe, dann habe ich nämlich nichts gewonnen.

    Rust hat Parser Generatoren die eben genau aus dem Grund geschaffen wurden um sicher zu parsen. Das wird nämlich gerade bei VLC und gstreamer (glaube ich) untersucht oder zumindest mit experimentiert, weil es eben nicht diese Probleme hat, wenn man nicht überall unsafe benutzt. Der erste Rust Code in Firefox war ein teil des Parsers für Mediadateien (mp4 glaube ich)

    Das sind natürlich alles viele hätte wenns und abers. Jedoch ist das was wir momentan an Rust Parsercode sehen eben genau nicht so wie du es beschreibst und die Wahrscheinlichkeit ist recht hoch, dass dieser Bug nicht einmal im Code gelandet wäre – und wie du schon sagtest mindestens zu einem kontrollierten Absturz geführt hätte.

  3. Re: wichtigster satz im blog von cloudflare...

    Autor: Anonymer Nutzer 24.02.17 - 12:15

    in rust hätte man vielleicht keinen pointer verwendet, sondern einen index auf die aktuelle position im puffer. hätte man den index geändert, ohne dass der parser davon wind bekommt, hätte auch der rust parser außerhalb des puffers zu lesen versucht. im gegensatz zum c code hätte das allerdings einen absturz zur folge.

    sie haben mutwillig den status des parsers verändert. wenn du das mit rust machst, wird auch der rust parser fehler liefern. aber eben keine falschen daten. rust ist vor mutwilliger zerstörung genauso wenig geschützt wie jede andere programmiersprache. rust is sicher nett, aber es ist kein allheilmittel gegen jegliche _logische_ programmierfehler. ein grundsatz hier: ändere nie den internen status externen codes, außer es wird in der dessen doku explizit erlaubt.

  4. Re: wichtigster satz im blog von cloudflare...

    Autor: pythoneer 24.02.17 - 12:19

    bjs schrieb:
    --------------------------------------------------------------------------------
    > in rust hätte man vielleicht keinen pointer verwendet, sondern einen index
    > auf die aktuelle position im puffer. hätte man den index geändert, ohne
    > dass der parser davon wind bekommt, hätte auch der rust parser außerhalb
    > des puffers zu lesen versucht. im gegensatz zum c code hätte das allerdings
    > einen absturz zur folge.
    >
    > sie haben mutwillig den status des parsers verändert. wenn du das mit rust
    > machst, wird auch der rust parser fehler liefern. aber eben keine falschen
    > daten. rust ist vor mutwilliger zerstörung genauso wenig geschützt wie jede
    > andere programmiersprache. rust is sicher nett, aber es ist kein
    > allheilmittel gegen jegliche _logische_ programmierfehler. ein grundsatz
    > hier: ändere nie den internen status externen codes, außer es wird in der
    > dessen doku explizit erlaubt.

    Basierend auf deinem Kommentar ist mir aufgefallen, dass ich das Problem doch erst anders verstanden habe! Du hast natürlich recht! Herrje das ist dann doch schon ein wenig peinlich was die da gemacht haben – oder sollte man eher sagen "mutig"?

  1. Thema

Neues Thema Ansicht wechseln


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Sie müssen ausserdem in Ihrem Account-Profil unter Forum einen Nutzernamen vergeben haben. Zum Login

Stellenmarkt
  1. Deutsche Vermögensberatung AG, Frankfurt am Main
  2. Indu-Sol GmbH, Schmölln
  3. Hays AG, Salzgitter Thiede
  4. AOK Systems GmbH, Bonn

Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Top-Angebote
  1. (u. a. Lenovo Yoga Slim 7i Evo 14 Zoll i5 8GB 512GB SSD für 799€, Motorola moto g9 plus 128GB...
  2. (u. a. Samsung UE-50TU7170 50 Zoll LED für 449€, HP EliteBook 840 G1 generalüberholt 14 Zoll i5...
  3. 39,99€ + 2,99€ Versand oder kostenlose Marktabholung
  4. 79,49€ inkl. Direktabzug


Haben wir etwas übersehen?

E-Mail an news@golem.de


Programm für IT-Jobeinstieg: Hoffen auf den Klebeeffekt
Programm für IT-Jobeinstieg
Hoffen auf den Klebeeffekt

Aktuell ist der Jobeinstieg für junge Ingenieure und Informatiker schwer. Um ihnen zu helfen, hat das Land Baden-Württemberg eine interessante Idee: Es macht sich selbst zur Zeitarbeitsfirma.
Ein Bericht von Peter Ilg

  1. Arbeitszeit Das Sechs-Stunden-Experiment bei Sipgate
  2. Neuorientierung im IT-Job Endlich mal machen!
  3. IT-Unternehmen Die richtige Software für ein Projekt finden

Weclapp-CTO Ertan Özdil: Wir dürfen nicht in Schönheit und Perfektion untergehen!
Weclapp-CTO Ertan Özdil
"Wir dürfen nicht in Schönheit und Perfektion untergehen!"

Der CTO von Weclapp träumt von smarter Software, die menschliches Eingreifen in der nächsten ERP-Generation reduziert. Deutschen Perfektionismus hält Ertan Özdil aber für gefährlich.
Ein Interview von Maja Hoock


    Fiat 500 als E-Auto im Test: Kleinstwagen mit großem Potenzial
    Fiat 500 als E-Auto im Test
    Kleinstwagen mit großem Potenzial

    Fiat hat einen neuen 500er entwickelt. Der Kleine fährt elektrisch - und zwar richtig gut.
    Ein Test von Peter Ilg

    1. Vierradlenkung Elektrischer GMC Hummer SUV fährt im Krabbengang seitwärts
    2. MG Cyberster MG B Roadster mit Lasergürtel und Union Jack
    3. Elektroauto E-Auto-Prämie übersteigt in 2021 schon Vorjahressumme