Autor Beitrag
Lonar
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Sa 07.08.10 00:15 
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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 110
Erhaltene Danke: 1

Win7 64, XP 32
C# (VS 2010 EE), Delphi (TD 2006 Win32)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 97
Erhaltene Danke: 11


VS 2010, C#, AHK
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 4



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