Humboldt-Universität zu Berlin - Deutsch

Sicherheitsinformationen für WWW2-Administratoren

Dateisystem-Rechte:

  • nur Eigentümer (owner) und Gruppe benötigen Rechte, wobei Gruppe nur Lese und auf Verzeichnissen auch Ausführ- und Set-UID-Rechte benötigt
  • die Verzeichnisse und Dateien sollten immer der Gruppe webserv zugeordnet sein, damit auch statische Inhalte (Bilder,CSS usw.) vom Webserver lesbar sind.
  • Deshalb ist für Verzeichnisse das Set-UID-Flag auf Gruppen-Ebene eingetragen (chmod g+s dir) - bitte nicht zurücksetzen.
  • ändern:
    • auf www2.hu-berlin.de/webdav/<ihrverzeichnisname> können Rechte angeschaut und korrigiert werden
    • Gruppen-Eigentümer können nur vom Server-Administrator (Mail an web-support@cms.hu-berlin.de) geändert werden und ist meist nicht nötig, wenn das Set-UID-Flag auf den Gruppen-Rechten der Verzeichnisse nicht gelöscht wurde.

 

Passwörter:

Passwörter innerhalb von Web-Anwendungen, wie Web-Content-Management-Systeme, Blogging, Wikis:

  • mind. 8 Zeichen aus drei Zeichenklassen (Zeichenklassen: Groß-/Kleinbuchstabe, Zahlen, Sonderzeichen)
  • keine Wörter, die man im Wörterbuch finden kann, auch keine Wörter mit Ersetzungen (O=0(Null) und dergleichen).


Updates für Ihre selbst installierte Software:

  • ungepatchte Web-Anwendungen können missbraucht werden:
    • Spammer
    • Software-Verteilung
    • Phishing
  • für die meisten Web-Anwendungen gibt es Mailing-Listen, Newsticker etc., die über Updates informieren und Update-Anleitungen liefern


Eigene Skripte

  • häufigster Mißbrauch: Mail-Versand
  • weitere Möglichkeiten: Phishing, verteilen illegaler Daten (Raubkopieren, (Kinder-)Pornographie etc.)
  • Ursache: ungeprüfte Parameter aus Formularen, URLs, Datenbanken, Cookies

    

PHP: <code>$_GET, $_POST, $_REQUEST</code> müssen immer überprüft werden, und zwar auf das Prüfen, was drin
        stehen darf und zwar sehr restriktiv; besonders gefährlich: zusätzliche Mail-Header aus ungeprüften Parametern
        zusammenbauen - wird gerne von Spammern genutzt

Beispiel für den Check eine Mail-Adresse:
        <pre>
        function checkEMail($email) {
                if (preg_match("^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$", $email)) {
                        list($username,$domain)=split('@',$email);
                        if ($domain == "cms.hu-berlin.de") return true;
                }
                return false;
        }
        </pre>
    

Perl: dasselbe Problem mit ungeprüften Parametern. Abhilfe: Shebang mit -T (taint check): #!/usr/bin/perl -T
          use strict; use warnings; hilft auch