DSM 6.x und darunter Sicherheit der Diskstation 2 (heute CSRF)

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Alle DSM Version von DSM 6.x und älter
Status
Für weitere Antworten geschlossen.

süno42

Benutzer
Registriert
29. Nov. 2012
Beiträge
224
Reaktionspunkte
0
Punkte
0
In Folge meines Beitrags Sicherheit der Diskstation möchte ich mich eines neuen Themas annehmen. Intention war meine FritzBox, die han dieser Stelle nicht patzt. Beim DSM mußte ich leider feststellen, daß dieser für CSRF-Angriffe anfällig ist. Sprich, wenn jemand als Administrator an der Diskstation angemeldet ist, können andere Webseiten im Kontext des angemeldeten Administrators Befehle auf der Diskstation ausführen, ohne daß dieser es merkt, z.B. die Festplatten formatieren.

Folgender Aufruf soll dies beispielhaft anhand des Versands einer Testnachricht über den Synology-Benachrichtigungsdienst verdeutlichen:

Rich (BBCode):
POST /webman/modules/ControlPanel/modules/notification.cgi HTTP/1.1
Host diskstation:5001
Content-Length <xxx>

mail_enable=on&smtpserver=<mailserver>&smtpport=<port>&smtpssl=on&mail1=<E-Mail-Adresse>&mail2=&subjectprefix=%5BDS213%2B%5D&newusermail=on&action=sendmailtest

Die Parameter in spitzen Klammern sind geeignet zu setzen.


Viele Grüße
Süno42
 
wie lautet denn ganz konkret der Aufruf zum Formatieren einer Platte (also nicht der Aufruf zum Erstellen eines Dateisystems ... wir reden vom Formatieren, dem Auftragen der Blockstruktur einer Platte)???

Itari
 
wie lautet denn ganz konkret der Aufruf zum Formatieren einer Platte (also nicht der Aufruf zum Erstellen eines Dateisystems ... wir reden vom Formatieren, dem Auftragen der Blockstruktur einer Platte)???
Itari

Genau ersteres meinte ich, Partitionierung und/oder Erstellung einer logischen Struktur (Dateisystem) auf der Festplatte. Diesen Vorgang nennt man formatieren. Was Du meinst, nennt man ebenfalls so. Genau genommen handelt es sich beim Anlegen des Dateisystems um eine High-Level-Formatierung.


Viele Grüße
Süno42
 
und wie würde eine Partitionierung aussehen, wenn das mit dem Block-Level-Formatieren jetzt nicht geht? Hast das mal probiert, z. B. mit einem USB-Memory-Stick?

Itari
 
und wie würde eine Partitionierung aussehen, wenn das mit dem Block-Level-Formatieren jetzt nicht geht? Hast das mal probiert, z. B. mit einem USB-Memory-Stick?

Itari

Bevor wir uns jetzt in Einzelheiten verstricken. Eine fremde Internetseite kann jegliche Operationen ausführen, die ich als angemeldeter Administrator auch tätigen kann, z.B.

  • Volume entfernen
  • Volume erstellen
  • etc.

Ich kann leider nicht nachschauen, welche Operationen ich im Detail noch ausführen kann, da mir die Weboberfläche derzeit als erste Operation nur das Entfernen von Volumes anbietet. In einer Produktivumgebung werde ich solche Experimente nicht durchführen, auch nicht auf einem externen USB-Datenträger (das ist mir doch zu heikel :)). Deshalb habe ich auch nur das Beispiel mit dem Benachrichtigungsdienst veröffentlicht.


Viele Grüße
Süno42
 
Schade ... ich würde gerne mal so ein Beispiel sehen. Da ich keine Mail auf meinen DiskStations mache, kann ich leider dein Beispiel nicht nachvollziehen (ich gehe mal davon aus, dass du es mit einem telnet auf einem 2. PC machst).

Itari
 
Schade ... ich würde gerne mal so ein Beispiel sehen. Da ich keine Mail auf meinen DiskStations mache, kann ich leider dein Beispiel nicht nachvollziehen (ich gehe mal davon aus, dass du es mit einem telnet auf einem 2. PC machst).

Itari

Here we go…

Ich habe mal ein Beispiel erstellt, welches statt des Mailversands einfach ein paar Informationen des ersten Datenträgers ausliest und ausgibt. Vorstellbar ist aber auch, daß ein Angreifer andere Operationen ausführt, Daten manipuliert oder stiehlt.

CSRF-Angriffe (Cross Site Request Forgery) finden im Kontext eines angemeldeten Benutzers statt, d.h. Du mußt während des Angriffs an Deiner Diskstation angemeldet sein, was aber heutzutage bei mehreren parallel laufenden Browser-Sitzungen (mehrere Browsertabs oder Browserfenster) gar nicht so unwahrscheinlich ist. Der Angreifer kann die gleichen Operationen tätigen, die Du auch über die Oberfläche ausführen kannst.

Weiterhin muß der Angreifer wissen, unter welcher Adresse die Diskstation im LAN erreichbar ist. Dies macht den Angriff schwerer, ist aber mit ein bißchen mehr Javascript kein Problem. Das Test-Skript führt eine administrative Operation aus, daher mußt Du Dich vorher als Admin an der Weboberfläche anmelden.

Ich habe in dem Skript mal vorausgesetzt, daß die Diskstation unter https://diskstation:5001 erreichbar ist. Falls nicht, die HTML-Seite bitte vorher entsprechend anpassen.

Abschließend noch, ich übernehme für Schäden jedweder Art, die aus diesem Skript resultieren können, keine Haftung.

Anhang anzeigen syno_csrf_attack_demo.zip

Viele Grüße
Süno42
 
ich kann das zwar nur im LAN testen, weil ich ja nie im Leben auf die Idee käme, den DSM ins Web hinein frei zu geben, aber es funktioniert im LAN super ... gefällt mir ;) Hab bislang immer mit <script>-Tags gespielt

Was lernen wir daraus? Dass man doch lieber weniger als User 'Admin' unterwegs sein sollte. Und wenn, dann darf der Browser nur den DSM machen und keine anderen Geschichten ...

Wer kennt zum Thema CSRF Abwehrmaßnahmen, die über das hinausgehen, was man so bei Wikipedia findet?

Itari
 
Wer kennt zum Thema CSRF Abwehrmaßnahmen, die über das hinausgehen, was man so bei Wikipedia findet?

Das Thema ist in Kürze eh für die DS erledigt. In der 4.3 ist dann eine entsprechende Option von Haus aus aktiviert die die jeweiligen Aufrufe mit einem Token versieht. So handhabt es auch die FritzBox nebenbei. Das wäre im Augenblick auch die gängige Praxis um cross site scripting zu verhindern. Leider mit den von QTip schon beschriebenen Nebenwirkungen für 3rd-Party.

Gruß Frank
 
Das Thema ist in Kürze eh für die DS erledigt.

Schade eigentlich ... dann wird das Thema wieder in der Versenkung verschwinden ... ich finde es immer gut, wenn es irgendwo Probleme in der Technik gibt, die man durch eine Verhaltensänderung als User abmildern kann ;)

Itari
 
Wurde das schon an Synology gemeldet? Mich würde auch deren Reaktion interessieren.
 
Wurde das schon an Synology gemeldet? Mich würde auch deren Reaktion interessieren.

wenn in 4.3 das Thema gelöst ist, dann braucht man wohl keine Infos mehr senden ... ist ja ein allgemeines Problem in der Web-Welt, das durch die Aufmerksamkeit des Users auch kaum auftritt

Itari
 
CSRF-Angriffe (Cross Site Request Forgery) finden im Kontext eines angemeldeten Benutzers statt, d.h. Du mußt während des Angriffs an Deiner Diskstation angemeldet sein, was aber heutzutage bei mehreren parallel laufenden Browser-Sitzungen (mehrere Browsertabs oder Browserfenster) gar nicht so unwahrscheinlich ist. Der Angreifer kann die gleichen Operationen tätigen, die Du auch über die Oberfläche ausführen kannst.
und genau darum empfiehlt dir jede Bank beim online-Banking niemals andere Seite/Tabs offen zu haben.
Klar ist es nicht schön wenn eine Anwendung solche "Lücken" hat, aber hier kann der User sehr wohl etwas zun um es gänzlich zu verhindern
 
Wer kennt zum Thema CSRF Abwehrmaßnahmen, die über das hinausgehen, was man so bei Wikipedia findet?

Abhilfe bringt prinzipiell nur eine in Hyperlinks einkodierte Session-ID oder ein seitenspezifisches Token. Ansonsten müßte man die Browserarchitektur komplett ändern und beispielsweise alle Tabs (bzw. Browserfenster) voneinander abschotten. Dann funktionieren leider einige Internetseiten nicht mehr, wie fpo bereits erwähnt hat. Auch eine vom Browser geführte Aufrufreferenzierung der Tabs/Fenster untereinander funktioniert nicht zuverlässig, da so einiges „durchrutschen“ kann.

Das Thema ist in Kürze eh für die DS erledigt. In der 4.3 ist dann eine entsprechende Option von Haus aus aktiviert die die jeweiligen Aufrufe mit einem Token versieht. So handhabt es auch die FritzBox nebenbei. Das wäre im Augenblick auch die gängige Praxis um cross site scripting zu verhindern. Leider mit den von QTip schon beschriebenen Nebenwirkungen für 3rd-Party.

Na das begrüße ich doch sehr. Toll, daß Synology dies bereits in DSM 4.3 umsetzen will. Dann brauchen wir uns ja nicht mehr melden :-) Ich vermute mal, Die meintest CSRF statt Cross-Site-Scripting, den letzteres könnte die einkodierte Session-ID wieder exponieren.

Nachtrag:
Dann kann man hoffentlich auch bald mehrere Sitzungen parallel laufen lassen (z.B. Administration, Audiostation, Downloadstation [über Browser-Plugin], …)


Viele Grüße
Süno42
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat