Hadmut Danisch

Ansichten eines Informatikers

Zunehmend systemimmanente Sicherheitsprobleme von Entwicklungsumgebung

Hadmut
7.3.2011 10:54

Ausgerechnet die Software-Entwicklungs-Gemeinde schlampt immer mehr bei der Softwaresicherheit.

Wenn man industriell IT-Sicherheit betreibt, gehört dazu auch das Software-Management. Man muß dafür sorgen, daß Software nicht auf irgendwelchen dubiosen Wegen und aus dunklen Quellen auf die Rechner tröpfelt, sondern daß es einen definierten Weg gibt, über den Software reinkommt, und bei dem man weiß, aus welchen Quellen sie kommt. Sie muß reproduzierbar und archivierbar sein, denn bei den heutigen Softwareverhältnissen kann man Software nicht mehr ohne weiteres darauf prüfen, frei von Fehlern und Schadfunktionen zu sein. Die Virenscannerei ist auch längst weitgehend wirkungslos geworden.

Wenn man sich aber anschaut, was sich da zunehmend entwickelt, bekommt man das kalte Grausen.

In der Java-Welt wird mit Entwicklungswerkzeugen wie maven oder Eclipse gearbeitet, die sich irgendwo aus dem Netz irgendwelche Software-Module nachladen, bei denen man vorher nicht ohne weiteres erkennt, wer Autor ist und woher das kommt. Und wenn mir heute ein Rechner baden geht, weiß ich nicht, ob ich morgen dieselbe Software nochmal ziehen kann um sie zu prüfen.

Unter Ruby sind inzwischen viele Softwarepakete in den Linux-Distributionen wie Ubuntu nicht mehr als Distributionspaket (oder nicht aktuell) zu erhalten, sondern werden über gems installiert. Das selbe Problem.

Alle reden gerade von Cyberwar und daß die große Bedrohung durch das Netz kriecht, daß der nächste Weltkrieg im Internet stattfindet und jede bessere Armee inzwischen Computerkrieger züchtet. Aber in den Entwicklungsabteilungen sind sie alle begeistert von solchen „pragmatischen” und „komfortablen” Ansätzen. Hey, einfach mal schnell irgendwoher aus dem Netz dies und jenes ziehen, und schon geht was. Cool, nicht? Und der Ubuntu-Paket-Manager für ruby hat mir gerade empfohlen, gems doch grundsätzlich als root aus dem Netz zu ziehen, zu installieren und auszuführen. Na super(user).

Und dann fehlt es schon an so fundamentalen Grundlagen wie der Einhaltung elementarer Sicherheitsanforderungen beim Softwarebezug. Wenn das der Stand unserer Softwaretechnik ist, haben „Cyberkrieger” leichtes Spiel.


9 Kommentare (RSS-Feed)

Wolle
7.3.2011 13:36
Kommentarlink

Also das Nachladen passiert ja nicht von allein oder sporadisch. Es passiert durch Benutzung eines Moduls. Was ja an sich keine schlechte Idee ist. Das man da oft mehr als ein Modul rein zieht, sollte man wissen bzw. wenigstens vermuten und spätestens beim Deploying bemerken(da ist es allerdings fast immer zu spät!) Was wirklich schlimm ist, das die Abhängigkeiten regelrecht explodieren und oft nicht versionsgenau importiert wird. Was da aus dem Kessel schaut, ist eben kein Spaghetti, sondern der Rüssel eines Elefanten aus einer Herde ebensolcher oder eine neuere Version der Elefantenherde. Dieses Phänomen ist aber auch nicht wirklich, von der Sprache abhängig, kann man auch bei C++ erleben. Ob man das Kind import oder include nennt, macht IMHO keinen großen Unterschied. Der Unterschied ist, das man es früher per Hand(also mehr oder weniger bewusst) dazugelegt hat und es heute im Hintergrund automatisch(quasi unbemerkt) passiert.
Sicherheitstechnisch ist es besser, alles selbst zu machen, wenn man denn die Ressourcen hat bzw. sich leisten kann. Das habe ich aber in den letzten Jahren(>10; etwa seit dem Platzen der .com-Blase) nicht mehr erlebt. Alles muss sofort fertig sein und am Besten gar nix kosten. Das wird IMHO nicht nur von den Entwicklern vorangetrieben, sondern insbesondere von den BWL-Schlipsträgern.
Wir bzw. die Amis sind doch bei den Cyberkriegern, neben den Chinesen, vorn dran. Stuxnet ist doch nicht spontan in einer Garage entstanden. Den Sicherheitsleuten/Admins wird die Herstellung und Benutzung von sogenannten “Hackertools” verboten bzw. schwer gemacht. Aber eine deutsche Firma vertreibt Trojaner an Diktaturen(auch an unsere?). Trojaner sind ja noch nicht einmal dual use, die sind immer auf der dunklen Seite der Macht. Die Bayern benutzen eine Zollkontrolle um so was auf einen Laptop zu installieren.
Die meisten Viren etc. hab ich IMMER(*) in der Chefetage gefunden, die wundern sich doch nur woher das alle mit dem kurzen Penis wissen und klicken auf alles, was nicht bei drei auf den Bäumen ist.

(*) in Deutschland; In Afrika und Asien zieht man sich sofort ganze Zoos auf den USB-Stick bzw. über WLAN(Kollege mit Windowsshares auf dem WLAN-Interface) in den Rechner. Das ist wie im Dschungel! Ich hatte z.Bsp. Stuxnet aus Tadschikistan auf einem USB-Stick.


Hadmut
7.3.2011 13:41
Kommentarlink

Ich meinte jetzt weniger das Linken des Programms, sondern daß die Entwicklungsumbung selbst allen möglichen Krempel nachzieht.

Ich habe kürzlich mal Lift, das Scala-Pendant zu Ruby on Rails probieren wollen und dazu maven aufgerufen. Der hat erst mal 15 Minuten lang irgendwelches Zeugs aus wilden Quellen übers Internet geladen, und dann hat’s nicht funktioniert, weil irgendwo auf der Welt irgendwer in seinem Model irgendwas geändert hat, und der ganze Mist bei der kleinsten Änderung zusammenfällt, wie ein Kartenhaus, und keiner weiß, warum.


Wolle
7.3.2011 14:14
Kommentarlink

Nun ja, das hat(ten) dann eben der/die Entwickler der IDE so gewollt(bewusst oder unbewusst ist da die Frage). Wenn da die Versionen von Modulen unscharf definiert sind, ist die IDE, die morgen installiert wird potentiell eine andere als die von heute. Das macht oft viel “Spaß”. Bei Java, Ruby usw. wird ja auch nicht wirklich gelinkt, da wird deployed. 😉


HF
7.3.2011 16:15
Kommentarlink

Zwischen Softwareentwicklung und biologischer Evolution gibt es Parallelen, die immer deutlicher hervortreten. Intelligentes Design (TM) funktioniert einfach nicht; Copy, Paste und am Kunden ausprobieren funktionieren meistens. Nur darf man nicht glauben, dass die so entstandenen Systeme leicht zu modifizieren sind. Sie sind es nicht. Die Gentechniker haben das auf die harte Tour lernen müssen.


Wolle
7.3.2011 16:31
Kommentarlink

@HF: Intelligenz und Softwareentwicklung das ist ein Oxymoron! 😉


nullplan
7.3.2011 18:53
Kommentarlink

HAHAHA!

Ein vim-Benutzer und IDE-Verächter.


Hadmut
7.3.2011 18:54
Kommentarlink

Ich bevorzuge emacs und nvi.


Stefan W.
8.3.2011 7:09
Kommentarlink

sbt-lift-maven und scala spielen aber gerade mit emacs oder vi gut zusammen. 🙂

Eclipse läd bei mir nichts selbständig an Updates nach, aber das nutzt mir wenig – wenn es drauf ankommt, und ich lade es selbständig runter passiert ja das gleiche, wie bei automatischen Downloads.

Die Masse an Kram den man runterläd kann man aber eh nicht kontrollieren. Konnte ich aber auch vor 15 Jahren nicht. Mit Linux/Java/Eclipse/Scala/Postgresql/… habe ich zwar fast durchweg gute Erfahrungen gemacht, aber da war auch diese Debian/SSL-Geschichte, von der ich nur durch Glück nicht betroffen war, und passieren kann immer was. Überall sind Menschen, und jeder kann von heute auf morgen kriminell werden. Ob man nun Geld braucht oder überhaupt durchdreht.

In der Open-Sourcewelt klappt die Transparenz ziemlich gut, und die Patches kommen zügig. Aber eine Garantie hat man nicht, und bei sbt und was das alles automatisch nachgezogen hat, habe ich auch gestaunt, wenn ich mich auch naiv gefreut habe über den funktionierenden Automatismus (bei mir hat’s funktioniert).


abc
12.3.2011 19:04
Kommentarlink

Es gab schon Viren (eher Proof of Concept) die das ausnutzten. Alter Hut.