Sicherheit in BC2

Antworten
Benutzeravatar
shadowcat
Administrator
Beiträge: 5283
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Sicherheit in BC2

Beitrag von shadowcat »

Hier geht es im Kern um die neulich gemeldete XSS Lücke im Backend: viewtopic.php?f=22&t=807#p6468

Die zugrundeliegende Problematik ist sehr viel weitreichender, als daß man sie auf die Nutzung von BlackCat oder überhaupt einem CMS reduzieren könnte. Jeder Webseitenbetreiber, auch wenn er nur statische HTML-Dateien hat, kann ja irgendwo auf ein vielversprechendes Script oder etwas in der Art stoßen und es auf seiner Webseite einbinden, ohne zu ahnen, dass sich dahinter Schadcode verbirgt. Schwieriger wird es dann schon, wenn es um Interaktivität mit den Besuchern geht, angefangen von Kontaktformularen über Gästebücher oder Kommentarfunktionen bis zu relativ umfangreichen "Mitmach-Möglichkeiten". Immer dann, wenn eingegebene Inhalte ungefiltert irgendwo gespeichert und an anderer Stelle wieder ausgegeben werden, besteht ein Risiko.

Prinzipiell könnte es ja ganz einfach sein: Man filtert einfach alles an HTML-Markup oder JavaScript aus den Eingaben und alles ist gut. Leider ist es aber nicht so einfach. Angenommen, man möchte dem Besucher ermöglichen, die Adresse (URL) eines Bildes anzugeben. Schon muss man HTML zulassen, zumindest das für Bilder. Oder doch mindestens die Eingabe der URL. Klingt ja erst mal ungefährlich, ist es aber nicht. Hacker sind unfaßbar phantasievoll, was die Unterbringung von Schadcode in scheinbar harmlosen Internet-Adressen angeht. Da erscheint dann das tatsächlich harmlose Bild - dummerweise wird aber auch der verborgene Schadcode ausgeführt.

Was können wir von BlackCat also tun, um die Sicherheit zu erhöhen? Vorab - 100%-ige Sicherheit gibt es nicht. Man kann aber schon etwas tun, um zumindest die allzu plumpen Versuche abzuwehren. Wir von BlackCat bemühen uns von jeher, unsere Anwendung so gut wie möglich abzusichern. Natürlich sind auch Module eine mögliche Schwachstelle; Modulautoren müssen daher ebenfalls bestmöglich unterstützt werden.

Schon in BC1 gibt es eine Integration der HTML-Filter-Bibliothek HTML Purifier. Diese ermöglicht das Ausfiltern unerwünschten Markups und korrigiert dabei gleichzeitig und quasi nebenbei fehlerhaften HTML-Code. In BC1 gibt es hier aber nur ein "an" oder "aus" und keine Einflußmöglichkeit auf den angewendeten Filter. Zudem wird der Filter derzeit nur bei WYSIWYG angewendet.

In BC2 werden wir diese Integration deutlich ausbauen. Zum einen werden wir eine Schnittstelle zur Verfügung stellen, um den Filter zu konfigurieren bzw. mehrere Filterkonfigurationen zu erstellen, die dann gruppenspezifisch zur Anwendung kommen (können). Allerdings muß man sagen, daß das ziemlich komplex ist und man sich schon intensiv damit beschäftigen muß - das können wir dem Admin nicht abnehmen. Wir würden aber gern zusammen mit unserer Community mindestens zwei Konfigurationen ausarbeiten, die wir dann standardmäßig mitliefern: Eine "ziemlich sichere" für Frontendeingaben von nicht angemeldeten Besuchern und eine "ziemlich offene" für Administratoren.

Zum anderen werden wir Modulautoren eine einfache Funktion zur Verfügung stellen, um Benutzereingaben vor der Speicherung der Daten in der Datenbank zu filtern. (Das gibt es in BC1 auch schon, ist nur leider schlecht dokumentiert.)

Habt Ihr noch weitere Vorschläge?
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
Benutzeravatar
shadowcat
Administrator
Beiträge: 5283
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Sicherheit in BC2

Beitrag von shadowcat »

Übrigens: Erst neulich wurde wieder eine Sicherheitslücke in Wordpress gemeldet, die schon seit längerem bekannt sein soll, bisher aber nicht ausreichend gefixt werden konnte. Leider unterschlägt zumindest die Meldung, die ich gelesen habe, daß z.B. auch Typo3 betroffen ist, eines der am weitesten verbreiteten Open Source Systeme im Profibereich. Grund ist, daß die Lücke eigentlich in PHP selbst begründet liegt und weniger im CMS.
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
Benutzeravatar
shadowcat
Administrator
Beiträge: 5283
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Sicherheit in BC2

Beitrag von shadowcat »

Wer selber mal gucken möchte, wie viele mögliche Markups es gibt, kann sich hiervon erschlagen lassen:

http://htmlpurifier.org/live/smoketests/xssAttacks.php
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
Antworten