Sicherheit bei der Open Source Programmierung…

… oder viele Köche verderben den Brei!

Cyberkriminelle scheinen in letzter Zeit auf den (Sieges)Zug der Open Source-Bewegung aufzuspringen. Sie nutzen die steigende Verbreitung der Freien Software für ihre Zwecke. Hierzu wird oft versucht bei populären Projekten in die Infrastruktur einzudringen um eine Backdoor, ein Schadprogramm oder ähnliches zu platzieren:

Einbruch linux.com
Einbruch kernel.org
Einbruch beim Debian-Projekt
Backdoor in proftp
Backdoor in vsftpd
Einbruch beim Fedora-Projekt
Einbruch in Ubuntu-Community-Server
Einbruch bei WordPress

In meiner Auswahl habe ich die prominenteren Beispiele aufgeführt, bis jetzt konnten wachsame Administratoren meist anhand von auffälligen Logdateien schnell den entstandenen Schaden begrenzen, sei es jetzt in wirtschaftlicher Hinsicht oder dem Vertrauensverlust in das Projekt. Dies setzt aber voraus, dass der Angreifer von außen kommt und sich mit „Gewalt“ Zutritt zu den Systemen schafft.

Es gibt ein Szenario, wo diese Sicherungsmechanismen aller Wahrscheinlichkeit nur geringfügig oder gar nicht greifen… Nämlich, wenn ein potentieller Angreifer sich das Vertrauen des Projekts erschleicht und über Jahre sauberen Code beisteuert und nachdem er sich das Vertrauen erarbeitet hat in einem günstigen Moment eine Backdoor oder ein Zusatzprogramm / -script platziert. Bis hier die Alarmsignale schrillen kann einige Zeit ins Land gehen und mitunter eine Großzahl von Distributionen bzw. Installationen verseucht sein.

Dieses Szenario ist rein hypothetischer Natur, es sollte nur als Denkanstoß dienen. Gibt es hierzu schon Sicherungsmechanismen? Prüfsummen dürften hier keine wirkliche Abhilfe schaffen oder?

    • Das Wort
    • 14. September 2011

    Codereview, aber dazu fehlen oft einfach die Leute.

  1. Das beschriebene Szenario hat allenfalls Einzelfallcharacter, weil der Aufwand über lange Zeit vertrauen aufzubauen sehr groß ist. Ich selbst überfliege jeden Tag die Codeänderungen meiner Kollegen. Ich glaube, dass mir eine Backdoor mit hoher Wahrscheinlichkeit auffallen würde. Ein schneller Hack ist da schon viel attraktiver. Bei einem Hack nutzen Signaturen schon einiges. Wenigstens, wenn man ein ordentliches Paket-Management-System hat und nicht nur das Executable zum starten runterlädt.

    • Victor
    • 14. September 2011

    Jepp, Codereview. Sonst hilft da nichts, und auch das ist kein Allheilmittel. Das hat aber wenig mit OpenSource-Entwicklung zu tun. Wenn ein Mitarbeiter einer Firma in deren Closed-Source-Software eine Backdoor einbaut, dann kann das genauso unbemerkt bleiben.

    Jede Gemeinschaft lässt sich mit genügend Aufwand unterwandern. Und wenn jemand seinen Angriff jahrelang vorbereitet, hat er eine gute Chance, das auch zu schaffen. Dann helfen nur noch möglichst schnelle Updates, sobald das Problem entdeckt wurde.

    • Gerald
    • 14. September 2011

    Beim Kernel sowieso, aber sicher auch bei wichtigen Projekten und Code, der speziell für Distributionen, wie Ubuntu geändert wird, gibt es mit Sicherheit ein umfassendes Codereview sowie eine einzuhaltende Freigabeprozedur.

    Bei kleineren Projekten oder einzelnen, weniger oft verbreitetenden Anwendungen ist eher Vorsicht angebracht. Je weniger Entwickler beteiligt sind, desto mehr.

    Ich persönlich habe aber viel mehr Angst vor den Backdoors, Sicherheitslücken oder Fehlern in proprietärer Software, die oft sogar beabsichtigt sind! Microsoft hat ganz offensichtlich nicht mal die Resourcen, über 10 Jahre alte Fehler in Windows zu beheben. Und Manches können sie gar nicht fixen, weil sonst zahlreiche bekannte und teure Anwendungen nicht mehr funktionieren würden.

    (Vor etwa einem Jahr wollten sie einen seit Windows NT irgendwas bestehenden Bug beheben, der es erlaubt, eine Sicherheitsprüfung zu umgehen. Adobe hat daraufhin mit Millionen-Schadenersatzklage gedroht, weil sie etliche ihrer Produkte updaten hätten müssen, und das natürlich gratis für die Benutzer. Mehr ist dazu nicht zu sagen…)

      • Thorsten
      • 14. September 2011

      Hast du für den NT-Bug ne Quelle?

    • Spelter
    • 14. September 2011

    @Gerald
    Hast du da eine News zu dem NT Patch? Wäre interessant soetwas öffentlich zu machen und in großen IT Magazinen breit zu treten. So ein verhalten ist inakzeptabel.

    @Käfer
    Ja Codereview ist das einzige was man tun kann. Es gibt teilautomatisierte Systeme die unsaubere oder schädliche Funktionen schon beim Checkout bemängeln. Das macht es dem Programmierer auch unmöglich in seinen Code strcpy, strcat oder sprintf zu verwenden und dafür soll er doch bitte sichere Funktionen verwenden (strncpy, strncat, snprintf).

    Im Linux Kernel Projekt gibt es auch gewisse Ränge wie ich das von einem Kernel Entwickler auf dem Linuxtag mal gehört habe. Userspace Code muss weniger reviewed werden als Kernelspace Code.
    In Proftpd wäre es sinnvoll den Code des Logins genauer unter die Lupe zu nehmen, wenn ein User sich gar nicht erst einloggen kann, kann er auch keinen Schaden anrichten. Dazu muss nur sichergestellt werden, dass der Server keine Variablen annimmt bevor nicht die Authentifizierung durch ist. Anonymous Anmeldungen sind auch Authentifizierungen, nur eben öffentlich und bekannt. Wer Anonymous erlaubt, sollte auch die Gefahren kennen.

    Natürlich hast du aber recht das OSS unterwandert werden kann. Aber auch für Freiberufler ist das kein Problem oder Mitarbeiter einer Firma.
    Ich selbst habe mit Hintertüren gelassen wenn ich in Auftrag programmiert habe. Hat der Kunde nicht gezahlt, habe ich meine Arbeit rückgängig gemacht. Hat er gezahlt, hab ich den Backdoor entfernt. Schade das man soetwas machen muss, aber wenn die Zahlungsmoral der Leute gleich null ist, dann hab ich damit keine Probleme mich ab zu sichern. Ich kann mir Vorstellen, Ihr stellt mich an den Pranger und bewerft mich jetzt mit Gemüse🙂 Trotzdem, einmal war es nötig den Backdoor zu nutzen und danach hat der Kunde freiwillig gezahlt. Er war sogar überrascht das ich an seine PHP Dateien kam obwohl er das Passwort zum FTP geändert hat.
    Geht eben schneller als ein Gerichtliches Mahnverfahren😉

    Gewollte Backdoors in CSS ist allerdings nicht ohne Sinn. Manchmal will sich der Software Anbieter gegen Raubkopien absichern (offizielle Meinung einer lokalen Software Firma), oder man ist gesetzlich Verpflichtet. Gutes Beispiel sind Telefonanlagen, die kann man zum Abhören eines Gespräches verwenden ohne das jemand etwas merkt. Dazu gab es eine „Firewall“ von einer Schweizer Firma die das unterbunden hat. In Zeiten von SIP und OSS wie Asterisk haben Nachrichtendienste es etwas schwieriger, denn Asterisk bringt kein Backdoor mit. Deswegen bin ich der Meinung, OSS hat hier trotzdem einen Vorteil gegenüber CSS, denn ein Hintertürchen könnte beim Codereview auffallen.

    • Anon
    • 14. September 2011

    Man muss sich nicht mal über Jahre hinweg das Vertrauen erschleichen. Man könnte ebenso gut eine willige Person, welche am projekt beteiligt ist, bestechen.

    Codereview ist wahrscheinlich die sicherste Methode überhaupt, aber zum einen fehlen einfach die Leute und zum anderen kann man diese Person auch kaufen.

    Wenn es eine wichtige Sache ist und genügend Interesse seitens einer großen Firma/krimineller Vereinigung besteht, spielt Geld dann wohl keine Rolle mehr.

    • enolive
    • 14. September 2011

    Ich bin der Meinung, dass OSS ab einer gewissen kritischen Masse gegen Insiderhacks besser gefeit ist als Closed Software, da die Anzahl der Leute, die den Source anschauen einfach größer ist.

    Von gezieltem Einbauen von Backdoors zur Erzwingung von
    Zahlungsmoral halte ich nichts. Abseits aller Vorbehalte bzgl. Illegalität und Verhältnismäßigkeit muss man sich hier fragen, ob nicht irgendjemand anderes die Backdoor zu etwas anderem missbrauchen kann.

      • Thorsten
      • 14. September 2011

      Kombiniere die Backdoor mit GPG und deinem privaten Schlüssel, dann ist das Problem aus der Welt. Selbst gemacht hab ich sowas allerdings noch nie.

        • enolive
        • 14. September 2011

        Nein das Problem ist dadurch nicht aus der Welt. Die technische Hürde wird durch eine bessere Authentifizierung höchstens höher.

        Da die Backdoor prinzipiell bedingt ein zusätzliches Stück Softwarekomplexität ist, wird sie auch buggy sein und vielleicht noch einige nette random features besitzen, die sich zu allerlei Schabernack ausnutzen lassen.

      • Thorsten
      • 14. September 2011

      Reply auf der untere Ebene geht nicht, darum hier..

      Ich würde sowas an eine kleine zentrale Stelle setzen, wie zB die Datenbankanbindung. Die kommt dann einfach nie zustande. Also an eine Stelle, die unter Umständen auch in nachvollziehbaren anderen Fällen aussetzt. Je nach Möglichkeit gibt man die Ursache dann analog zur sonstigen Fehlerquelle nach oben durch.

      Eine erweiterte Backdoor mit Zugriff auf das System halte ich dagegen für rechtswidrig (ohne juristische Kenntnisse!).

    • Mirali
    • 18. September 2011

    Hallo, interessante Diskussion!

    Ich bin nun seit einiger Zeit von Windows 7 zu Linux(Xubuntu) gewechselt, da es erstens etwas sicherer sein soll und zweitens ich sowieso gerne kostenlose und opensource Programme nutze.

    War da nicht mal etwas mit SELinux und NSA?! Weiß nicht ob da die Möglichkeit besteht, das was eingeschleust wird.

    Oder von Linux Mint habe ich gehört, das dort unsignierte Pakete verwendet werden, stimmt das? Auch bei LMDE, würde es ansonsten gerne mal ausprobieren?

    Wäre doch eine Möglichkeit etwas zu manipulieren.

    Ich möchte gerne noch etwas zu Microsoft und Windows 7 schreiben.

    Nachdem ich Windows 7 neu installiert hatte und neben der Windows Firewall auch Windows 7 Firewall Control installiert hatte, habe ich festgestellt, das Windows evtl. doch sehr oft nach Hause telefonieren will.

    Dies geschieht z.B. beim Aufrufen von der Datenträgerverwaltung oder auch einfach so, ich hatte noch kein Internet eingerichtet oder Patches eingespielt.

    Das Programm zeigt den TCP Port usw. an.

    Kann man bei Linux auch das so einstellen, das man erst ein Programm freigeben muss, welches ins Internet will?

    Am Anfang wird es wohl etwas nervig, aber wenn man dann eine kleine Liste hat, die man dann bearbeiten kann, könnte das doch sinnvoll sein.

    Mit dem Thema Firewall und Linux habe ich mich noch nicht auseinander gesetzt, war mir etwas zu kompliziert.

    Würde mich freuen, wenn jemand ein paar Antworten auf meine Fragen geben könnte.

  1. No trackbacks yet.

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: