Entwickler-Ecke
IO, XML und Registry - XML Serialisierung - wie sicher ist es wirklich?
Lonar - Sa 07.08.10 00:15
Titel: XML Serialisierung - wie sicher ist es wirklich?
Hallo,
da ich mich gerne mit der XML Serialisierung beschäftigen würde, habe ich eine Frage bezüglich der Sicherheit davon.
Ich hatte mich kurz in der MSDN Library über XML Serialisierung informiert und bin auch direkt auf einige Punkte gestoßen die dort angesprochen, jedoch nicht voll geklärt worden sind. Laut MSDN kann es bei der XML Serialisierung bzw. Deserialisierung vorkommen, dass bösartige Objekte in diesen Stream gelangen bzw. bösartige Prozesse diesen Stream evtl. beeinflussen könnten.
Nun frage ich mich doch, wie sicher ist die XML Serialisierung denn nun wirklich?
Eigentlich müsste ich dem XMLSerializer doch sagen, welches Objekt er für die Serialiserung und Deserialisierung verwenden soll - z.B. meine CustomClassA. Wie hoch ist da nun die Wahrscheinlichkeit das etwas "Böses" diesen Stream beim serialisieren / deserialisieren beeinflussen bzw. verändern könnte?
Es ist vielleicht eine doofe Frage, aber mir ist es doch sehr wichtig das zu wissen.
funcry - Sa 07.08.10 10:48
In dem Fall, wenn beispielsweise eine XML-Datei deserialisiert wird, wäre es ein leichtes, die Datei vorher zu verändert. Sie liegt ja im Klartext vor und kann problemlos mit einem Editor geändert werden. Was dann natürlich bei der Deserialisierung zu Fehlern führen könnte, welche man natürlich mittels Exceptions abfangen sollte.
Zu "böswilligen" Veränderungen des Streams kann ich nichts sagen, außer dass es bei meinen ganz normalen XML Serialisierungen und Deserialisierungen zu solchen Effekten nicht gekommen ist.
Kha - Sa 07.08.10 12:12
Beschreib doch erst einmal, von welchen Angriffen du überhaupt ausgehst.
Geht es um eine ASP.NET-Anwendung? Da sollten die XML-Quellen doch äußerst selten von Usern beeinflussbar sein.
Geht es um eine Desktop-Anwendung? ...hm, was ist dort überhaupt sicher :gruebel: ?
IsNull - Sa 07.08.10 12:18
Ich finde die Fragestellung auch seltsam, ein serialisiertes XML Objekt ist eine flache XML Textdatei und kann problemlos manipuliert werden. Wenn du ein Objekt von einem XML Stream deserialisierst dann gibts du ja an, welches Objekt dabei rausschauen soll, und wenn das nicht matched, dann wird ne Exception geworfen. Weiter lassen sich ja auch "nur" Daten serialisieren, also allzueinfach (ohne Bufferoverflow) bekommt man keinen Code in die Zielanwendung.
Wenn die XML über ein unverschlüsselte Verbindung übertragen wird, kann man den Text Stream auch einfach mitschneiden oder sogar on the fly manipulieren (MITM), ohne dass das Zielsystem davon Wind bekommt. Aber das hat primär nichts mit XML oder Serialisierung zu tun sondern gilt allgemein.
Lonar - So 08.08.10 00:06
Ok, dann weiß ich ja bescheid, danke.
Bei meiner Frage handelte es sich eher um eine allgemeine Zusammenfassung, d.h. was z.B. bei einer ASP.Net- und Desktop-Anwendung für "Sicherheitslücken" dadurch entstehen und evtl. (direkt) meine Anwendung negativ beeinflussen könnten.
Mit XML Serialisierung bzw. allgemein mit Streams arbeiten ist doch noch recht neu für mich, daher wollte ich mich erstmal darüber - zumindest bei der XML Serialisierung - hier schlau machen, um eventuell auftretenden Problemen vorzubeugen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!