Wer überprüft in Open Source Programmen den Code auf Schadsoftware?
-
Mal angenommen ihr schreibt ein kleines unbedeutendes Open Source Programm, das aber noch gut genug ist, daß es von einer Nische benutzt wird und in die großen Distributionen (z.B. Ubuntu -> universe) in die Paketrepositories aufgenommen wird.
Wer überprüft dann den Code?
Wer schaut nach, ob ihr nicht ein Programmierer mit böswiliger Absicht seit?
Ist es nicht so, daß der Paketmaintainer zwar Ahnung vom Packen, aber nicht unbedingt Ahnung vom Programmieren hat?
-
Und welches Hans Wurst Open Source Programm habt ihr schon durchgecheckt?
Das der Linux Kernel und Apache gut gecheckt werden, kann man ja erwarten, aber was ist mit der Wald und Wiesensoftware?
-
Im Zweifelsfall der Anwender, denn wer definiert schon, was Schadsoftware ist?
-
Hallo,
ich habe mir im vergangedem Jahr so um die 10 Wald&Wiesen Softwaren angeschaut. Hauptsächlich Applets wie den Lautstärkeregler oder Mini-Tools.
Die sind ja meist klein und überschaubar. Aber nicht mit dem Ziel, Böswilligkeiten aufzudecken, sondern weil ich selbst was ändern wollte. Und da schaut man eben auch mal in die anderen Quell-Dateien.Ich vermute doch stark, dass ich nicht der einzige bin, der das so macht. Wahrscheinlich haben andere Nutzer andere Motive, aber im Mittel wird jeder Quellcode bestimmt mindestens einmal von jemand Außenstehenden durchgesehen.
Mit "Durchsehen" meine ich jetzt natürlich nicht, jeden noch so gut versteckten Buffer-Overflow etc. garantiert zu finden.
Da du ja von "OpenSource" sprichst, implizierst du ja auch einen öffentlichen Entwicklungsprozess. Daher wird es ja auch oft so sein, dass Außenstehende schon seit der Frühphase, wenn der Quellcode noch übersichtlich klein ist, die Entwicklung mitverfolgen.
-
Im KDE Projekt gabs es mal einen Entwickler der genau das versucht hat. Er hat einen Kommentar irgendwo tief im KDE Tree vergraben in der Art "ich bin ein Virus - wenn ich böse wäre, wäre deine Platte jetzt leer" oder so.
Wurde nach ein paar Tagen oder Wochen (also schon längerer Zeit) wieder entfernt.
-
Das einzige echte Beispiel was mir dazu einfällt ist JAP (java anonymous proxy), sowas ähnlices wie TOR. Die wurden gerichtlich dazu gezwungen eine Hintertür in ihren Code einzubauen und ein automatisches Update dazu zu verteilen. Hat keine Woche gedauert bis das jemand zufällig gefunden hat
.
-
Wenn man bedenkt, was man schon an einem Tag für Schaden anrichten kann, ist OpenSource eigentlich bei sowas ganz schön gefährlich.
-
Headhunter schrieb:
Im KDE Projekt gabs es mal einen Entwickler der genau das versucht hat. Er hat einen Kommentar irgendwo tief im KDE Tree vergraben in der Art "ich bin ein Virus - wenn ich böse wäre, wäre deine Platte jetzt leer" oder so.
Wurde nach ein paar Tagen oder Wochen (also schon längerer Zeit) wieder entfernt.
Es gelang mir nicht, Infos über diesen Fall zu ergooglen. Zwei Fragen, die ich dazu hätte, wären:
a) Welches Vertrauen genoss dieser Entwickler? Also hätte er es rein anonym bzw. mit Nickname machen können, oder hatte er einen Schlüssel benutzt, zu dem (nachgeprüft) Name&Adresse vorlagen?
b) War es nur der Entwicklungstree oder wurde diese Version tatsächlich in gängigen Distributionen released?
-
garbageman schrieb:
Wenn man bedenkt, was man schon an einem Tag für Schaden anrichten kann, ist OpenSource eigentlich bei sowas ganz schön gefährlich.
Aber die Gefahr ist ja auch bei "CloseSource" vorhanden.
-
garbageman schrieb:
Wenn man bedenkt, was man schon an einem Tag für Schaden anrichten kann, ist OpenSource eigentlich bei sowas ganz schön gefährlich.
Deswegen setzt man auch keine Bleeding Edge Software auf Produktivsystemen ein, schon gar nicht wenn die auch noch sicherheitskritisch sind

-
abc.w schrieb:
garbageman schrieb:
Wenn man bedenkt, was man schon an einem Tag für Schaden anrichten kann, ist OpenSource eigentlich bei sowas ganz schön gefährlich.
Aber die Gefahr ist ja auch bei "CloseSource" vorhanden.
Nicht wirklich. Oder meinst du, dass sich einer bei ner Firma bewirbt um dann nen Virus einzubauen, wenn er angestellt wird.
-
GNU-Fan schrieb:
Mit "Durchsehen" meine ich jetzt natürlich nicht, jeden noch so gut versteckten Buffer-Overflow etc. garantiert zu finden.
Das ist nämlich nahezu unmöglich: http://underhanded.xcott.com/
-
NÖh schrieb:
abc.w schrieb:
garbageman schrieb:
Wenn man bedenkt, was man schon an einem Tag für Schaden anrichten kann, ist OpenSource eigentlich bei sowas ganz schön gefährlich.
Aber die Gefahr ist ja auch bei "CloseSource" vorhanden.
Nicht wirklich. Oder meinst du, dass sich einer bei ner Firma bewirbt um dann nen Virus einzubauen, wenn er angestellt wird.
Wer überprüft in Closed Source Programmen den Code auf Schadsoftware?
-
abc.w schrieb:
NÖh schrieb:
abc.w schrieb:
garbageman schrieb:
Wenn man bedenkt, was man schon an einem Tag für Schaden anrichten kann, ist OpenSource eigentlich bei sowas ganz schön gefährlich.
Aber die Gefahr ist ja auch bei "CloseSource" vorhanden.
Nicht wirklich. Oder meinst du, dass sich einer bei ner Firma bewirbt um dann nen Virus einzubauen, wenn er angestellt wird.
Wer überprüft in Closed Source Programmen den Code auf Schadsoftware?
In manchen Firmen gibt es sogar Codereviews, aber darum gehts sowieso nicht. Die Leute die Closed Source Programme schreiben verdienen damit ihren Lebensunterhalt und setzen das sicher nicht aufs Spiel, nur weil sie meinen aus Spass mal nen Virus einbauen zu müssen. Bei Open Source kann jeder 15 jährige Hacker was einchecken und wenn er sich nicht ganz dumm anstellt, weiß man nicht mal wer es war.
-
NÖh schrieb:
...Die Leute die Closed Source Programme schreiben verdienen damit ihren Lebensunterhalt und setzen das sicher nicht aufs Spiel, nur weil sie meinen aus Spass mal nen Virus einbauen zu müssen...
Was setzen sie denn da aufs Spiel
Wer wird es denn schon erfahren, ob Schadroutinen drin sind oder nicht 
-
Warum sollte man das nicht merken, wenn plötzlich bei all deinen Kunden von deinem Programm die Platte formatiert wird? Und wenn sowas passiert, kann man sehen wer es eingecheckt hat und kennt seinen richtigen Namen und nicht nur so nen Nick von nem Scriptkiddie.
-
Es gibt auch Closed Source Programme die nicht von Firmen entwickelt werden und die nichts kosten. Was hindert da den Author daran Schadsoftware einzubauen? Für Spy- und Adware bekommt er vielleicht sogar auch noch Geld.
Und auch wenn bei Open Source jeder mitarbeiten kann, heißt es nich das jeder einfach Code einchecken kann. Patches werden normalerweise an einen Entwickler geschickt, der den Code dann durchsieht und einscheckt. Dieser ist dann auch dafür verantwortlich und namentlich bekannt.
-
Code Audit schrieb:
Mal angenommen ihr schreibt ein kleines unbedeutendes Open Source Programm, das aber noch gut genug ist, daß es von einer Nische benutzt wird und in die großen Distributionen (z.B. Ubuntu -> universe) in die Paketrepositories aufgenommen wird.
Wer überprüft dann den Code?
Wer schaut nach, ob ihr nicht ein Programmierer mit böswiliger Absicht seit?
Ist es nicht so, daß der Paketmaintainer zwar Ahnung vom Packen, aber nicht unbedingt Ahnung vom Programmieren hat?Man muss sowohl beim opensource als auch bei closedsource erstmal Vertrauen haben, wenn man etwas benutzt, was man nicht selber geschrieben hat. Wenn ein opensource Projekt klein ist und nur eine Nische benutzt, wird wahrscheinlich keiner sich deinen Code angucken, wenn das Programm das tut, was es tun soll ohne dass es auffällige Nebenwirkungen gibt. Wenn ich ein Programm starte, das an sich kein Netzwerk braucht, und trotzdem die I-net Verbindung langsam wird, dann wird es mir (und andere auffallen) und dann versucht man herauszufinden, woran es liegen kann. Da schaut man sich schon den Code an.
Wenn dein Programm bisschen mehr verwendet wird, dann kann es Leute außerhalb des Projekt geben, die dir helfen, z.b. mit dem Einreichen von Patches, usw. Diese werden zwangsäufig sich mit dem Code auskennen, vielleicht nicht alles aber denen würde es irgendwann "böse Sachen" auffallen und sicher publik machen.
Wenn dein Programm Einzug in große Distris schafft, dann gibt es i.d.R. einen Maintainer (bzw. eine ganze Gruppe), die den Code pflegt bevor es zu den Repositories kommt. Die kennen sich auch mit dem Code aus, vielleicht auch nicht zu 100% aber denen würde es auch etwas auffallen.
Je beliebter umso mehr Leute (von aussen) schauen sich deinen Code an. Das ist schon ein Vorteil von opensource ggü. closedsource, aber ich sehe dennoch die Gefahr gleich groß bei beiden. Eigentlich muss nur Vertrauen haben, 100% Sicherheit gibt es nicht.
-
Zur eigentlichen Frage: Ich gehe schon davon aus, dass ein Maintainer sich auch mit der Software befasst, die er da verwaltet. Außerdem haben viele Opensource-Projekte ja mehrere Entwickler oder Contributors. Gerade größere Software - wo man Schadcode verstecken könnte - hat ja selten nur ein oder zwei Entwickler.
Ich selbst schaue regelmäßig in den Code von irgend welchen Projekten. Sei es aus Interesse oder weil ich etwas verbessern/verändern möchte. Aber es gehört imho auch dazu, wenn man ein "echter Programmierer" sein will, dass man sich fremden Code anschaut.
@NÖh
Deine Voraussetzungen sind einfach falsch:1. Opensource ist nicht anonym. Ich kenne kein opensource Projekt, dass anonym entwickelt wird und ich bezweifle, dass so etwas aufgenommen werden würde. Gerade die OS-Entwicklung basiert ja oft darauf, dass man seinen Namen bekannt macht bzw. zumindest etwas für eine Bewerbung hat :). Hinter vielen OS-Projekten stehen ja sogar Firmen. Es mag vielleicht sein, dass irgend wann mal ein 15 jähriger mit einem 1337name ein Patch beisteuert. Aber der wird dann ja vorher von den eigentlichen Entwicklern begutachtet. Bei absichtlichem Schadcode hat ein Opensourceentwickler in der Regel also mehr zu verlieren, als ein Entwickler in einem Closedsourceprojekt. Der verliert im Zweifelsfall den Job und fängt dann woanders an. Ein Opensourceentwickler ist dann für alle Zeit öffentlich gebrandmarkt.
Dagegen sind doch gerade so kleine Sharewareprogramme nicht selten von irgend welchen 15 jährigen mit 1337name geschrieben.
2. Opensource heißt nicht kostenlos. Viel OS-Software wird von Leuten entwickelt, die dafür bezahlt werden. Bei größeren Distributionen leben auch die Maintainer von ihrer Arbeit. Sie haben also auch kein Interesse daran, dass ihnen etwas peinliches passiert und auch hier wäre der Name viel präsenter.
3. Opensource heißt nicht, dass jeder in den Code schreiben kann. 15 jährige Scriptkiddies können nicht einfach einen Patch in den Linuxkernel packen. Das geht vorher durch die eigentlichen Entwickler/Maintainer/Verantwortlichen und für kleinere OS-Projekte ist es ohnehin äußerst selten einen großen Patch zu erhalten. Oft handelt es sich ja um Kleinigkeiten, die man innerhalb weniger Minuten überschauen kann.
4. Closedsource heißt nicht, dass man verfolgen kann, wer was gemacht hat. Viele Software basiert auf zugekauften Bibliotheken etc. Ich will nur an das NSA- oder Scientology-Modul in Microsoft Windows erinnern. Auch haben viele Firmen sehr kuriose Entwicklungsmodelle. Und was ist, wenn der Schadcode seine Spuren gut verwischt? Dann findet man ggf. nicht einmal die Software, die dafür Verwantworlich ist.
Opensource hat hier keinen Nachteil, sondern ist im schlimmsten Fall auf der gleichen Stufe wie ein Closedsourceprojekt. Im besseren Fall schauen aber sogar mehr Leute über den Code und die Gefahr reduziert sich.
-
Und wie kommt an sowas rein, wenn doch alle so gut aufpassen?
Headhunter schrieb:
Im KDE Projekt gabs es mal einen Entwickler der genau das versucht hat. Er hat einen Kommentar irgendwo tief im KDE Tree vergraben in der Art "ich bin ein Virus - wenn ich böse wäre, wäre deine Platte jetzt leer" oder so.
Wurde nach ein paar Tagen oder Wochen (also schon längerer Zeit) wieder entfernt.
-
NÖh schrieb:
Und wie kommt an sowas rein, wenn doch alle so gut aufpassen?...
Das hätte genauso gut in einem closed source Projekt passieren können. Auch wenn der Code unter vier Augen reviewed und eingecheckt wäre.
Hast Du viel Geld in "closed source" Software inverstiert und suchst jetzt nach allen möglichen Argumenten, um es irgendwie verzweifelt zu begründen ?