Sicherheit von CMS

Hallo,

ich mache mir momentan über die Sicherheit von CMS gedanken.

Sicherheitslücken scheint es bei allen CMS zu geben, allerdings scheinen mir bestimmte Systeme aufgrund ihrer Struktur gefährdeter zu sein als andere Systeme. Bei WordPress z.B. habe ich das Gefühl, dass man als Durchschnittsanwender erstmal etliche PlugIns installieren muss, damit die Seite zeitgemäß aussieht(Theme, LightBox, KontaktFormular). Oder eben alles selber per Hand programmieren, was aber sehr zeitintensiv ist und bei individuellen Angriffen auch nicht zwingend sicherer ist.

Ich weiß, dass zeitnahe Updates im CMS-Bereich sehr wichtig sind, aber ich weiß eben auch aus Erfahrung, dass viele Seitenbetreiber wahre Update-Muffel sind bzw. die Kosten dafür scheuen(ein paar meiner Bekannten haben Online-Shops, die sich gerade so tragen). Wenn die Systeme mit PlugIns zugepflastert sind oder in vielen PHP- oder Template-Dateien Änderungen vorgenommen wurden, sind Updates ja auch nicht mehr unbedingt problemlos via Knopfdruck durchführbar.
BackUp ist für die ein Fremdwort, aber bislang ist noch keiner von denen gehackt worden und die haben lediglich einen .htaccess Schutz für das BackEnd.

Daher mal die Frage in die Runde: Wie sicher sind veraltete CMS-Systeme oder Shops im Allgemeinen, wenn man zu Beginn der Installation ein paar Sicherheitsvorkehrungen getroffen hat:

- .htaccess Schutz für BackEnd-Login erstellen
- zufälliges Tabellen-Präfix verwenden
- keine Standard-Usernamen verwenden(also NICHT admin)
- User-ID(AutoIncrement) auf zufälligen hohen Wert setzen und neuen Admin erstellen(alten löschen)

Würde das im echten Betrieb den größten Teil der Angriffe auch nach Jahren abfangen?

Sind die "Gehackten" also eher diejenigen, die überhaupt gar keine Ahnung haben und schon mit der Einrichtung eines Verzeichnis-Schutzes überfordert sind?

Gibt es sonst noch was, was man abgesehen von Updates machen kann, um die Wahrscheinlichkeit eines Hacks zu verringern?

Viele Grüße,

Gazelle
 
Ich nutze Wordpress schon seit geraumer Zeit und man braucht keineswegs viele Plugins um das zeitgemäss zu machen. Auch die seit kurzem eingeführte Auto-Update-Funktion funktioniert problemlos, selbst mit den meisten Plugins. Sind diese nicht mehr kompatibel, werden sie schlicht deaktiviert. Dann fehlen der Seite vielleicht 1-2 Features, aber sie ist weiterhin verfügbar.

Mit deiner "Schutzliste" wirst du jedenfalls nichtmal aktuelle Angriffe abfangen. Falsch angewendetes htaccess und schon ist es leicht umgehbar (z.B. wenn es nicht bei allen Request-Methoden greift). Tabellen-Prefixe sind egal solange der DB-User, der vom CMS verwendet wird, SHOW-Rechte hat (show tables). Auch die Usernamen sind egal, wenn eine SQLi auftritt, weil man sie dann einfach abfragen kann. Und zu hohe Auto-Increment-Werte führen gern mal dazu, dass man beim Maximum ankommt. Ohne Exec-Schutz auf's Temp-Verzeichnis und Funktionseinschränkung bei PHP wird auch jede File-Inclusion-Lücke problemlos zum Einschleusen von Bots und Exploits ausnutzbar sein.

Dann lieber eine halbwegs brauchbare WAF vorschalten. Die fängt zumindest das gröbste ab und meiner Erfahrung nach sind WAFs auch die Hauptursache warum bestimmte Leute gehackt werden und andere nicht. Die meisten Webspace-Hoster haben z.B. eine solche laufen. Bei Rootservern findet man solche Sicherheitsmaßnahmen eher selten.
 
Du hast es implizit schon gesagt: Es kommt ganz auf das Angreifermodell an, das du deiner Analyse zugrunde legst. Dieses Modell kannst du beliebig ausgestalten hinsichtlich vorhandenen Kenntnissen, Motivation, Wahrscheinlichkeit oder der Angriffsziele. Die Palette reicht also z.B. von Skriptkiddies, die lediglich öffentlich verfügbare Tools ausführen können, z.B. wpscan, und nur zerstören wollen, über normale Hacker, die ein Interesse an den Userdaten haben und dazu auf unbekannte SQL Injection Angriffe zurückgreifen können (Lösungen: Web-Application-Firewalls, IDS-Systeme, Webserver- und PHP Hardening, ...), bis hin zur NSA, deren Angriff aber eher unwahrscheinlich ist.
Die Wahrscheinlichkeit an sich kannst du mit vielerlei Maßnahmen senken, entscheidend ist aber, ob sich der Aufwand überhaupt lohnt, oder ob man einen Angriff überhaupt als wahrscheinlich annimmt (siehe z.B. NSA). Dazu müsstest du erstmal beschreiben, wie dein Angreifer aussieht. Dann können wir dir sagen, was du gegen ihn tun könntest ;)
 
Daher mal die Frage in die Runde: Wie sicher sind veraltete CMS-Systeme oder Shops im Allgemeinen, wenn man zu Beginn der Installation ein paar Sicherheitsvorkehrungen getroffen hat:

- .htaccess Schutz für BackEnd-Login erstellen
- zufälliges Tabellen-Präfix verwenden
- keine Standard-Usernamen verwenden(also NICHT admin)
- User-ID(AutoIncrement) auf zufälligen hohen Wert setzen und neuen Admin erstellen(alten löschen)

Ja, man kann viele Sicherheitsvorkehrungen treffen um damit einen Angriff zu erschweren. Aber ganz so simpel und einfach ist es dann halt auch nicht, wie es dir vorstellst.

Eine der häufigsten Schwachstellen sind bspw. SQL-Injections (gut, mittlerweile nimmt dieser Angriffsvektor etwas ab). Dabei stehst du vor folgendem Problem: Die Frontendseite kann nicht durch einen Zugriffsschutz per HTACCESS geschützt werden, denn dann käme niemand mehr auf deinen Blog. Und wenn irgendwo dort ein Fehler steckt, der eine SQL-Injection ermöglicht, bittet der Angreifer quasi die Applikation ihm die gewünschten Daten zu präsentieren. Da schert er sich nicht um unbekannte Tabelleprefixe oder um hohe IDs oder sonst was. All diese Informationen sind entweder nicht notwendig bzw. der Applikation ohnehin bekannt, denn sie greift ja andauernd auf die Datenbank zu. ;)

Es gibt aber viele verschiedene Angriffsmöglichkeiten und zumindest einen Teil, kannst du mit einem HTACCESS-Schutz für das Adminbackend aushebeln. Letzten Endes schaffen es aber auch nur sehr erfahrend Admins mit hohem Aufwand ihre Webanwendungen relativ sicher zu bekommen bzw. bei einem Angriff frühzeitig gewarnt zu werden, damit man schnell reagieren kann. Einen 100%-igen Schutz ist nicht möglich, da sonst die Webseite für jeden unerreichbar oder unbenutzbar wäre.

Im Übrigen ist meiner Erfahrung nach der Wordpress-Core noch mit das Sicherste an der gesamten Blogsoftware. Viele Schwachstellen stecken eben in unzähligen Plugins, die es für Wordpress gibt.
 
Zurück
Oben