DrupalCon SF – Security


Drupal Site security for coders and themers. Eigentlich nichts Neues. XSS das grösste Problem. Eigentlich einfach zu lösen mit den von Drupal vorgegebenen Funktionen, aber man muss dran denken.

Besonders themes sind sehr gefährdet. Wer hat nicht schon mal einen Aufruf nach dem Prinzip:

print $field_test['#value'];

oder so ähnlich in einem .tpl File gemacht. Schlecht, da nicht sicher!

Ein weiteres Problem ist Folgendes:

Nehmen wir an, es wäre ein Pfad gegeben: user/3/delete Ein Aufruf dieser URL löscht den User mit der uid 3. Ein normaler User hat nicht das Recht diese URL aufzurufen, aber, der normale Benutzer hat das Recht ein Bild zu posten:

Sobald der Admin auf diesen Beitrag geht (z.B. in einem Kommentarfeld, welches HTML zulässt), wird ein Request auf diese URL gemacht… schwupps ist der Benutzer weg.

Mögliche Lösungen sind:

  1. Eine Bestätigungsseite machen. Ist leider dann nicht mehr ganz so hübsch zu bedienen, aber erfüllt seinen Zweck.
  2. Ein Token einfügen und dieses vor dem Löschen des Benutzers überprüfen.

Es gibt einen hübschen Security Report.

Die Frage ist natürlich immer, wie man solche Sicherheitslücken in einer laufenden Seite finden kann:

  • Formularelement durchprüfen und überall testen, ob es immun gegen XSS ist.
  • Nikto ist ein Scanner, welche eine Seite auf potentielle Lücken überprüft.
  • Nessus. Ein weiterer Scanner.

-> Beim Entwickeln einfach daran denken!