Ist das ganze Message System nicht ein riesen Security Loch?



  • dot schrieb:

    mgaeckler schrieb:

    Es wäre doch z.B. recht praktisch, wenn ich im System festlegen könnte, die Datei darf zwar von den Benutzern x, y und z bearbeitet werden aber nur mit dem Programm p.

    Und was genau hindert dich unter Windows nun daran, das festzulegen?

    Das Wissen um so eine Option hindert mich daran. Wo soll denn so eine Option sein? Ich kenne sowas nicht.

    mfg Martin



  • Einfachste Lösung, die mir spontan einfällt: Du machst einen User a, der entsprechende Rechte im entsprechenden Ordner hat und gibst den Usern x, y und z das Recht, das jeweilige Programm als User a auszuführen...



  • dot schrieb:

    Einfachste Lösung, die mir spontan einfällt: Du machst einen User a, der entsprechende Rechte im entsprechenden Ordner hat und gibst den Usern x, y und z das Recht, das jeweilige Programm als User a auszuführen...

    Das könnte vieleicht eine Lösung sein. Aber ist es dann nicht so, daß die Anwender x, y und z jedesmal, wenn sie die Anwendung starten, das Kennwort von a eingeben müssen. Wie sieht es dann mit Netzlaufwerken aus? Kann das Programm dann auch auf die Netzlaufwerke der Benutzer zugreifen?

    Solche Lösungen könnten zwar besonders kritische Probleme lösen, für einen allgemeinen Gebrauch erscheinen sie mir aber zu umständlich und werden daher für gewöhnlich von den Anwendern nicht angenommen.

    mfg Martin



  • Wie sieht es dann mit Netzlaufwerken aus? Kann das Programm dann auch auf die Netzlaufwerke der Benutzer zugreifen?

    Je nachdem welche Rechte du User a gegeben hast. Wenn das Programm als User a läuft sollte es eigentlich keine Kontrolle über z.b. die Daten von Benutzer x haben (korrigiert mich wenn ich mich irre). Und Passwort musst du ja keins festlegen für User a.

    Solche Lösungen könnten zwar besonders kritische Probleme lösen, für einen allgemeinen Gebrauch erscheinen sie mir aber zu umständlich und werden daher für gewöhnlich von den Anwendern nicht angenommen

    Für normale User reicht es ja auch nicht immer als Admin unterwegs zu sein, diese Lösung ist eher für Systeme mit mehreren Benutzern die unterschiedliche Rechte haben. Und ja, sowas zu konfigurieren ist immer etwas Aufwand, aber den hat man immer, oder hast du einen Vorschlag wie es besser gehen würde ?



  • Ideal wäre wenn jede Anwendung in einer Sandbox laufen würde und Löcher in die Sandbox nur durch Zustimmung des Nutzers geschlagen werden dürften (zum Beispiel für IPC oder Zugriff auf Teile des Dateisystems)
    ...aber ich befürchte dann hat man mehr mit den Berechtigungen zu tun als man tatsächlich produktiv arbeiten kann 😉



  • DarkShadow44 schrieb:

    Wie sieht es dann mit Netzlaufwerken aus? Kann das Programm dann auch auf die Netzlaufwerke der Benutzer zugreifen?

    Je nachdem welche Rechte du User a gegeben hast. Wenn das Programm als User a läuft sollte es eigentlich keine Kontrolle über z.b. die Daten von Benutzer x haben (korrigiert mich wenn ich mich irre).

    So sollte es sein und so ist es auch. Sonst wäre Kleinweich völlig verblödet.

    DarkShadow44 schrieb:

    Und Passwort musst du ja keins festlegen für User a.

    Wo ist dann der Schutz? Wäre es dann auch nicht für ein Schadprogramm ein leichtes da einzudringen?

    DarkShadow44 schrieb:

    Und ja, sowas zu konfigurieren ist immer etwas Aufwand, aber den hat man immer, oder hast du einen Vorschlag wie es besser gehen würde ?

    Da sind wir jetzt an einen Punkt, der zeigt, daß es sich hier um kein triviales Problem handelt. Bei den Kleinweichlösungen kommt es mir aber so vor, daß sie häufig die Symptome eines Fehlers beseitigen ohne den Fehler selbst zu beheben. Der Hauptgrund dürfte dabei wahrscheinlich sein, daß sie mit aller Gewalt an Konzepten festhalten, die zur Homecomputerzeit noch akzeptabel waren, aber heute eigentlich nicht mehr tragbar sind.

    Eine Lösung für sowas zu finden, ist allerdings natürlich auch nicht einfach. Ein sicheres System muß nämlich

    • Vom Konzept her so einfach sein, daß der Betriebsystementwickler bzw. -progammierer wenig bis gar keine Fehler machen kann.
    • Der Anwendungsentwickler sollte sich ebenfalls wenig bis gar keine Gedanken darüber machen müssen.
    • Für den Administrator, darf das ganze auch nicht zu umständlich sein (erst recht bei einem privat PC, der nicht von einem Fachmann gewartet wird)
    • Und zu guter letzt, der Anwender selbst sollte nicht zu viel behindert werden.

    Eine sehr schwere Aufgabe. Ich mache mir darüber schon seit vielen Jahren Gedanken und ich bin zu den Schluß gekommen, daß die OS Hersteller auf jeden Fall alte Zöpfe mal abschneiden müssen und sich mal wirklich darauf konzentrieren müssen, endlich mal sichere Systeme zu konzipieren.

    mfg Martin



  • mgaeckler schrieb:

    Eine Lösung für sowas zu finden, ist allerdings natürlich auch nicht einfach. Ein sicheres System muß nämlich

    • Vom Konzept her so einfach sein, daß der Betriebsystementwickler bzw. -progammierer wenig bis gar keine Fehler machen kann.
    • Der Anwendungsentwickler sollte sich ebenfalls wenig bis gar keine Gedanken darüber machen müssen.
    • Für den Administrator, darf das ganze auch nicht zu umständlich sein (erst recht bei einem privat PC, der nicht von einem Fachmann gewartet wird)
    • Und zu guter letzt, der Anwender selbst sollte nicht zu viel behindert werden.

    Eine sehr schwere Aufgabe. Ich mache mir darüber schon seit vielen Jahren Gedanken und ich bin zu den Schluß gekommen, daß die OS Hersteller auf jeden Fall alte Zöpfe mal abschneiden müssen und sich mal wirklich darauf konzentrieren müssen, endlich mal sichere Systeme zu konzipieren.

    Tja, der Anwender muss Administrator-Rechte haben, sonst laufen manche Spiele nicht.



  • volkard schrieb:

    Tja, der Anwender muss Administrator-Rechte haben, sonst laufen manche Spiele nicht.

    Ja das war leider nach der Einführung von Windows NT ein großes Problem. Viele Anwendungen, die nach NT portiert worden sind, gingen immer noch davon aus, daß der Benutzer Adminrechte hat. Auch sind viele Anwendungen davon ausgegangen, daß derjenige, der die Anwendung installiert hat, auch derjenige ist, der sie benutzt. Da werden dann wichtige Einstellungen unter HKEY_CURRENT_USER gespeichert und später nicht mehr gefunden. Das ist dann allerdings ein Problem, das man MS wirklich nicht anlasten kann.

    mfg Martin



  • volkard schrieb:

    Tja, der Anwender muss Administrator-Rechte haben, sonst laufen manche Spiele nicht.

    Das finde ich zu unpräzise. Die Spiele brauchen keine Administratorrechte, sie wollen gar keine Windows-Domäne konfigurieren. Sie wollen einfach nur auf ihren Installationsordner zugreifen, was meiner Meinung nach keine überzogene Forderung darstellt. Es sollte die Möglichkeit geben zu sagen, dass das Spiel auf seinen Installationsordner und auf seine Registry-Keys zugreifen kann, aber nicht auf andere Installationsordner (Expansions mal ausgenommen) und nicht auf die Keys anderer Programme und Nutzerpasswörter ändern schon gar nicht.

    mgaeckler schrieb:

    Wenn der DAU natürlich ein SuperDAU ist und immer mit Adminrechten am Rechner sitzt, dann ist, wie ich schon schrieb, sowieso alles zu spät.

    Da gehe ich auch nicht mit. Auch als Administrator muss ich die Möglichkeit haben geilemuschies.jpg.exe so auszuführen, dass es nichts kompromittieren kann. Ich bin generell dagegen, dass ich als einzelner Nutzer schizophren sein muss und mal Admin und mal Nutzer und mal eingeschränkterer Nutzer sein muss. Völlig falsche Denkweise. Ich bin immer Administrator. Nur dürfen die Programme, die ich ausführe, nicht mit Adminrechten gestartet werden. Also braucht man Programmrechte, die ungleich der Nutzerrechte sind. Damit lösen sich alle Probleme. Ich werde nie begreifen warum das nicht Standard ist bzw. noch nie versucht wurde.



  • nwp3 schrieb:

    Also braucht man Programmrechte, die ungleich der Nutzerrechte sind. Damit lösen sich alle Probleme. Ich werde nie begreifen warum das nicht Standard ist bzw. noch nie versucht wurde.

    Ist doch Standard auf jedem modernen OS!? Nur sind die Defaulteinstellungen halt nirgendwo so extrem wie du es gerne hättest, weil das Ding dann kein Mensch mehr würde benutzen wollen...



  • nwp3 schrieb:

    volkard schrieb:

    Tja, der Anwender muss Administrator-Rechte haben, sonst laufen manche Spiele nicht.

    Das finde ich zu unpräzise. Die Spiele brauchen keine Administratorrechte, sie wollen gar keine Windows-Domäne konfigurieren. Sie wollen einfach nur auf ihren Installationsordner zugreifen, was meiner Meinung nach keine überzogene Forderung darstellt. Es sollte die Möglichkeit geben zu sagen, dass das Spiel auf seinen Installationsordner und auf seine Registry-Keys zugreifen kann, aber nicht auf andere Installationsordner (Expansions mal ausgenommen) und nicht auf die Keys anderer Programme und Nutzerpasswörter ändern schon gar nicht.

    Genau, sowas wäre z.B. ganz praktisch. Dann könnte man sagen der Installationsordner XYZ der Anwendung XYZ darf auch nur von der Anwendung geändert werden. Der Eigentümer einer Datei/eines Ordner kann nicht nur festlegen welche Benutzer/Gruppen was damit machen dürfen sondern auch mit welchen Anwendungen. Eine Anwendung könnte dann schon beim Installieren festlegen, ich brauche Schreibrechte auf diese oder jene Unterverzeichnisse.

    nwp3 schrieb:

    mgaeckler schrieb:

    Wenn der DAU natürlich ein SuperDAU ist und immer mit Adminrechten am Rechner sitzt, dann ist, wie ich schon schrieb, sowieso alles zu spät.

    Da gehe ich auch nicht mit. Auch als Administrator muss ich die Möglichkeit haben geilemuschies.jpg.exe so auszuführen, dass es nichts kompromittieren kann. Ich bin generell dagegen, dass ich als einzelner Nutzer schizophren sein muss und mal Admin und mal Nutzer und mal eingeschränkterer Nutzer sein muss. Völlig falsche Denkweise. Ich bin immer Administrator. Nur dürfen die Programme, die ich ausführe, nicht mit Adminrechten gestartet werden. Also braucht man Programmrechte, die ungleich der Nutzerrechte sind. Damit lösen sich alle Probleme. Ich werde nie begreifen warum das nicht Standard ist bzw. noch nie versucht wurde.

    Das wäre sicherlich wünschenswert. Nixen kennen dazu ja z.B. den Systermaufruf chroot, damit Programme, die vom Admin gestartet werden, nicht gleich das ganze System übernehmen können.

    mfg Martin



  • dot schrieb:

    nwp3 schrieb:

    Also braucht man Programmrechte, die ungleich der Nutzerrechte sind. Damit lösen sich alle Probleme. Ich werde nie begreifen warum das nicht Standard ist bzw. noch nie versucht wurde.

    Ist doch Standard auf jedem modernen OS!? Nur sind die Defaulteinstellungen halt nirgendwo so extrem wie du es gerne hättest, weil das Ding dann kein Mensch mehr würde benutzen wollen...

    Ok. Wie starte ich (als Admin) notepad so, dass es auf C:\Users\nwp3\Desktop\passwords.txt nicht zugreifen kann? Und außerdem nur maximal 174MB RAM verbrauchen darf? Und mit www.c-plusplus.net per TCP und mit duckduckgo.com per UDP kommunizieren darf, außer an Sonntagen? Ich weiß bei keinem davon wie es geht und insbesondere das erste ist dringend nötig.



  • @nwp3
    Verarscht du dich grad selbst?



  • nwp3 schrieb:

    volkard schrieb:

    Tja, der Anwender muss Administrator-Rechte haben, sonst laufen manche Spiele nicht.

    Das finde ich zu unpräzise. Die Spiele brauchen keine Administratorrechte, sie wollen gar keine Windows-Domäne konfigurieren. Sie wollen einfach nur auf ihren Installationsordner zugreifen, was meiner Meinung nach keine überzogene Forderung darstellt. Es sollte die Möglichkeit geben zu sagen, dass das Spiel auf seinen Installationsordner und auf seine Registry-Keys zugreifen kann, aber nicht auf andere Installationsordner (Expansions mal ausgenommen) und nicht auf die Keys anderer Programme und Nutzerpasswörter ändern schon gar nicht.

    Ich dachte eher an den "Hackerschutz", wo das Onlinegame versuchen will, zu schauen, daß keine Bots laufen, und deshalb Amin sein will.



  • hustbaer schrieb:

    @nwp3
    Verarscht du dich grad selbst?

    Nö, völlig ernst gemeint. Erscheint es eine Verarsche, weil ich das machen können will, oder weil ich nicht weiß wie es geht? Vielleicht waren die Beispiele etwas überzogen. Neues Beispiel: Ich möchte Windows sagen, dass Email-Anhänge (definiert durch den Speicherort \Bla\emails) nicht auf \Users\ich zugreifen können, wenn sie von Programm Emailclient gestartet wurden. Emailclient selbst darf auf alles zugreifen. Die Programme dürfen sich auch nicht umkopieren um die Regel zu umgehen. Mir erscheint das eine sinnvolle Einstellung und ich glaube jeder kann sich ähnliche Regeln ausdenken, die er gern von seinem Betriebssystem durchgesetzt haben will. Man kann Windows doch auch sagen, dass ein Programm ins Internet darf, aber nicht Server spielen darf. Warum gibt es für Ordner/Nachrichten/Speicherzugriffe/Hardwarezugriffe/DLL-Injections nichts bzw. warum sagt mit keiner wie es geht? 😞

    (Mir fällt gerade auf, dass man das neue Beispiel per FUSE implementieren könnte, aber ich bin gespannt auf die Standardlösung, die jedes moderne OS schon drin hat. Außerdem müsste man dann immer noch FUSE selbst irgenwie schützen und es funktioniert nicht für Nachrichten, Netzwerke, RAM, ...)

    volkard schrieb:

    Ich dachte eher an den "Hackerschutz", wo das Onlinegame versuchen will, zu schauen, daß keine Bots laufen, und deshalb Amin sein will.

    In dem Fall würde ich Windows sagen wollen, dass das Spiel Adminrechte bekommt, aber den Bot nicht sehen darf. Kann man Windows auch nicht sagen, oder ich weiß nur nicht wie es geht.



  • @nwp3
    Dass du das möchtest, ist mir schon klar. Dass es praktisch wäre auch.
    Aber du hast behauptet (bzw. zumindest stark impliziert), dass es gaaaaanz einfach umzusetzen gewesen wäre.

    Und da behaupte ich mal einfach das krasse Gegenteil: das ist überhaupt nicht einfach umzusetzen.
    Zumindest nicht so lange man den User nicht nerven will, und nicht so-gut-wie alles was ein OS ausmacht neu erfinden will.



  • nwp3 schrieb:

    In dem Fall würde ich Windows sagen wollen, dass das Spiel Adminrechte bekommt, aber den Bot nicht sehen darf. Kann man Windows auch nicht sagen, oder ich weiß nur nicht wie es geht.

    Denk doch mal nach, wenn Du den Bot wirksam mit ein paar Klicks vorm Admin unsichtbar machen kannst, dann kann sich auch die Malware verstecken.



  • volkard schrieb:

    nwp3 schrieb:

    In dem Fall würde ich Windows sagen wollen, dass das Spiel Adminrechte bekommt, aber den Bot nicht sehen darf. Kann man Windows auch nicht sagen, oder ich weiß nur nicht wie es geht.

    Denk doch mal nach, wenn Du den Bot wirksam mit ein paar Klicks vorm Admin unsichtbar machen kannst, dann kann sich auch die Malware verstecken.

    Kann nicht passieren, das würde die Zustimmung des Nutzers/Admins erfordern, mit einer echten Maus/Tastatur, bei dem das System verifiziert hat, dass die Nachricht nicht gefälscht wurde. Als OS könnte man das. Man muss dieses "Programmrechte = Nutzerrechte"-Denken ablegen. Das sind sehr verschiedene Dinge, die aber aus mir völlig unklaren Gründen gleich gesetzt werden (ok, macht es einfacher, ist aber falsch). Dieser historische Fehler wird irgendwann korrigiert werden, auch wenn es sehr viel länger dauert, als ich erwartet hätte.

    hustbaer schrieb:

    @nwp3
    Dass du das möchtest, ist mir schon klar. Dass es praktisch wäre auch.
    Aber du hast behauptet (bzw. zumindest stark impliziert), dass es gaaaaanz einfach umzusetzen gewesen wäre.

    Und da behaupte ich mal einfach das krasse Gegenteil: das ist überhaupt nicht einfach umzusetzen.
    Zumindest nicht so lange man den User nicht nerven will, und nicht so-gut-wie alles was ein OS ausmacht neu erfinden will.

    Ja, man muss dafür einiges umgestalten. Wenn man es im Nachhinein einfügen will baut man einen Syscall-filter, der Syscalls entsprechend von Regeln modifiziert. Es ist nicht einfach das alles ausreichend mächtig, sicher und einfach zu benutzen hinzukriegen, aber auch nicht viel schwieriger als virtueller Speicher, Dateisysteme oder Firewalls.



  • @nwp3
    Du misverstehst mich. Und/oder stellst dir das ganze wieder zu einfach vor.
    Ein paar Syscalls auf bestimmte Regeln zu checken ist wirklich nichts was ein OS Entwicklerteam vor unüberwindliche Probleme stellen würde. Die Implementierung würde zwar vermutlich etliche Mannjahre benötigen, aber nichts was eine Firma wie MS sich nicht leisten könnte.

    Aber es bringt nicht viel. Weil sich damit alleine ein System das ohne Rücksicht auf diese Dinge entworfen wurde nicht vernünftig absichern lässt. Und mit "nicht vernünftig" meine ich man kann es damit durchaus sicher machen, aber nicht ohne ganz massive Einbussen in der Usability.

    Denk nur mal an so einfache Dinge wie das Anhängen eines Attachments, oder das Starten eines Programms durch einen Doppelklick auf ein Dokument.
    Soll jedes Email-Programm, Schreibprogramm, Zeichenprogramm etc. alle Dateien lesen dürfen? Sicher nicht. Und da haben wir schon das erste Problem.

    Natürlich ist das nicht unlösbar, aber es ist mMn. schwer bis unmöglich das zu lösen ohne viele bestehenden Programme unverwendbar zu machen.

    Klar, man kann für jedes Programm Regeln definieren. Programm X darf jedes File lesen auf das der User geklickt hat um es zu starten. Programm Y darf es in dem Fall auch schreiben. Und Programm Z darf es lesen und schreiben, und zusätzlich noch Programm A starten das dann automatisch diese Berechtigung erbt. Aber wer soll diese Regeln alle definieren? => Technisch umsetzbar, aber nicht praktikabel.

    Wenn es funktionieren soll, dann muss man hier einiges überdenken. Und alle bestehenden Anwendungen auf dieses neue System anpassen.



  • ...
    Und natürlich ist auch nicht klar wer oder was "ein Programm" überhaupt ist, bzw. welches "Programm" wann was können soll.

    z.B. will ich, wenn ein beliebiges Programm mir einen "Open-File" Dialog aufmacht, diesen auch zu sehen bekommen, und erwarte mir dass er wie gewohnt funktioniert. Also dass ich da ein beliebiges File auswählen kann, egal wo es liegt. Ich sehe den Dialog ja, und wenn ich auf OK klicke sollte es eben auch OK sein. Und das Programm soll das ausgewählte File dann auch lesen können. Aber nicht notwendigerweise schreiben.

    Und da ergeben sich gleich neue Fragen.
    Was wenn das Programm ein Editor ist, ich das File ändere, und es dann mit einem Klick auf "Save" wieder speichern will?
    Ohne Modifikation in dem Programm wird das nichts werden, denn woher soll das System jetzt wissen dass das Programm auch speichern darf? Es war ja der "Open-File" Dialog, und nicht "Save-File".

    Und, was viel schwerwiegender ist: ich erwarte wie gesagt dass da der hübsche Open-File Dialog aufgeht, wo ich alle meine Files sehen kann. Dummerweise ist das in z.B. Windows aber so gelöst, dass dieser Dialog als Teil des Programms das ihn aufmacht ausgeführt wird. Und noch schlimmer: das Programm das ihn aufmacht kann ihn auch noch modifizieren (Subclassing), was es erforderlich macht dass er weiterhin im selben Prozess läuft.

    Das ist es was ich oben mit "was ist ein Programm überhaupt" gemeint habe: ist der Open-File Dialog ein eigenes Programm, das alle Verzeichnisse auflisten darf?,Und sogar alle Files zum Zwecke des Anzeigens von Thumbnails lesen darf? Oder ist der Dialogs des aufrufenden Programms, und damit dessen Beschränkungen unterworfen?
    Und wenn der Open-File Dialog alles auflisten darf, aber im selben Prozess laufen soll, wie soll das System das dann überprüfen?

    Oder, anderes Beispiel: was ist mit java.exe? Darf java.exe jetzt alles? Nein? Woher soll das OS wissen was java.exe darf und was nicht?

    Und wann werden Berechtigungen an Kindprozesse vererbt und wann nicht? Wenn ein Programm vollen Zugriff auf ein bestimmtes Verzeichnis haben soll, dann sollte es auch ein Batch-File mit dem Inhalt "del Verzeichnis\*" erfolgreich ausführen können. In dem Fall sollte die Berechtigung also vererbt werden. In vielen anderen Fällen ist das aber vermutlich nicht erwünscht.

    ----

    Ich will nicht behaupten dass diese und andere Probleme die sich da ergeben alle unmöglich lösbar sind. Aber ich gehe davon aus dass es in Summe verflixt viel Arbeit wäre und das Endergebnis allerbestenfalls "erträglich" wäre. Aber sich nicht angenehm zu verwenden.

    Wenn man alles über den Haufen wirft, und akzeptiert dass sämtliche Programme, die unter dem neuen OS vernünftig laufen sollen, angepasst werden müssen, sieht es schon viel besser aus. Wobei es nichtmal dann einfach ist. mMn. immer noch um Grössenordnungen komplexer als eine Firewall oder ein File-System zu implementieren.


Anmelden zum Antworten