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

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

süno42

Benutzer
Mitglied seit
29. Nov 2012
Beiträge
224
Punkte für Reaktionen
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
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
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
 

süno42

Benutzer
Mitglied seit
29. Nov 2012
Beiträge
224
Punkte für Reaktionen
0
Punkte
0
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
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
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
 

süno42

Benutzer
Mitglied seit
29. Nov 2012
Beiträge
224
Punkte für Reaktionen
0
Punkte
0
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
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
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
 

süno42

Benutzer
Mitglied seit
29. Nov 2012
Beiträge
224
Punkte für Reaktionen
0
Punkte
0
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
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
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
 

fpo4711

Benutzer
Mitglied seit
26. Mai 2010
Beiträge
2.772
Punkte für Reaktionen
1
Punkte
0
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
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
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
 

raymond

Benutzer
Mitglied seit
10. Sep 2009
Beiträge
4.704
Punkte für Reaktionen
21
Punkte
118
Wurde das schon an Synology gemeldet? Mich würde auch deren Reaktion interessieren.
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
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
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
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
 

süno42

Benutzer
Mitglied seit
29. Nov 2012
Beiträge
224
Punkte für Reaktionen
0
Punkte
0
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