Menü
Avatar von widarr
  • widarr

152 Beiträge seit 23.08.2014

Re: Docker war nie zur Isolation gedacht

Grompa schrieb am 20.01.2019 19:19:

Wozu sollte man sonst Prozesse gegeneinander isolieren wollen?

Also ich bin jetzt zwar noch recht frisch von der Uni, aber dafür gibt es doch genug Gründe...

Zum Beispiel damit man als Entwickler eine Umgebung entwerfen kann ohne dass diese manuell auf dem Server installieren muss.

Ich will dir ja nicht zu nahe treten, aber ich hatte von Prozessen gesprochen, aus gutem Grund.
Binaries mit ihren Bibliotheken etc. zu bundlen hat nichts mit Prozessisolierung zu tun.
Das ist hier im Forum auch schon rauf und runter gekaut worden.

Ein anderer Grund könnte sein dass es Anwendungen gibt die es nicht mögen doppelt auf einem System ausgeführt zu werden (wieso auch immer).

Das ist ein Punkt.

Jetzt ohne mich über das Thema informiert zu haben, bin ich schon immer davon ausgegangen, dass Docker keine sichere Isolation gewährleistet.

Ich will dir nichts unterstellen, aber: Was ist denn bitte "sichere Isolation"?

Du kriegst ein System nicht sinnvoll absolut sicher. Du kannst dein System nur so designen, dass du dein Sicherheitsniveau so hoch schraubst, dass entweder die Kosten durch einen Ausfall (die Diskussion werd ich hier nicht weiter verfolgen - schau dir falls du mir nicht glaubst vom CERT mal "Secue coding in C & C++" an) im Mittel niedrig oder die Kosten für einen Einbruch hoch genug sind.

Und genauso bekommst du Prozesse niemals hundertprozentig sicher isoliert - sogar wenn du deine Maschine ohne Netzwerkzugang laufen lässt besteht uU. die Möglichkeit, dass der eine durch Seitenkanalangriffe noch Informationen leakt.

Und natürlich läuft ein wie auch immer stärker isolierter Prozess "sicherer" als ein überhaupt nicht isolierter.

Ob das Maß an Sicherheit im konkreten Fall ausreicht ist von Fall zu Fall zu evaluieren.
Das ändert aber nichts dran, dass Prozesse in Dockercontainern die Sicherheit des Systems erhöhen.

Ich könnte hier schon wieder einen Roman schreiben, aber ehrlich: Liest eh keiner.

Ich hatte als ich zu studieren begonnen habe schon 10 Jahre lang Software geschrieben,
als ich dann mit meinem neuen Diplom von der Uni runter bin, dachte ich, ich hätte Ahnung. 10 Jahre systemnaher Entwicklung von Netzwerksoftware und mit den ersten grauen Haaren (die Realität der Softwareentwicklung ist leider grausam) weiß ich, dass ich damals keine Ahnung hatte, das sinnvolle am Studium waren die Mathevorlesungen, alles andere war insofern überflüssig, als die Vorlesungen maximal an der Oberfläche der Themen geritzt hatten und man nach den ersten zwei Monaten Praxis sein Wissen in den relevanten Bereichen effektiv schon vervielfacht hatte. Seit 10 Jahren lerne ich jeden Tag neues, und die wesentliche Erkenntnis ist: Ich hab immer noch keine Ahnung.

Was hat das alles mit dem Thread zu tun?

Ich weiß letztlich, dass du mit deiner naiven Einschätzung von Sicherheit zu Docker nicht völlig daneben liegst, wenn auch anders als du denkst: Ich denke Docker wird letztlich unsere Systeme nicht so viel sicherer machen, wie es das könnte - nicht wegen Softwarebugs, die werden entweder gefunden und früher oder später gefixt, oder eben nicht, dann interessieren sie keinen.
Sondern: Entwickler sind stinkfaule Hunde, und ich weiß, wovon ich spreche. Softwareentwicklung kann Spaß machen, wenn man fancy Oberflächen, einen verzwickten Algorithmus bauen darf ... aber hunderttausend Tests für irgendwelche obskuren Inputs bauen um zu checken dass die Software das abkann macht keiner gern.
Der Code, den ich bis jetzt gesehen habe, war von der Qualität her in der Regel unterirdisch (komischeweise bei C und Java noch am wenigsten, am schlimmsten bei Perl und C++) .
Viele von den "Entwicklern", die mir über den Weg gelaufen sind, hatten genau Null Verständnis dafür, auch nur einen Finger zu krümmen um die Qualität ihres Codes auf ein erträgliches Maß zu heben.
Jetzt kommt da ein System, dass deine Prozesse gut abschottet - kein setuid-Gefimmel mehr, weil du nach dem Start erstmal chrooten musst - hast du zwar eh nie gemacht, aber jetzt hast du eine 1A Entschuldigung dafür es zu lassen. Und letztlich wird die Faulheit dazu führen, dass du noch weniger in Codequalität steckst, weil die Security ja jetzt Docker macht.
Dafür kann Docker nix, und deswegen ist Docker nicht schlecht, genausowenig wie die Idee, jedem Prozess einen eigenen virtuellen Adressraum zu verpassen, es war.
Die Menschen sind das Problem, die alle diesen sinnvollen Techniken als Entschuldigung nehmen um noch ein Eck mehr pfuschen zu dürfen.

Jetzt ist es doch noch ein Roman geworden, sorry...

Das Posting wurde vom Benutzer editiert (21.01.2019 01:56).

Bewerten
- +
Anzeige