Der folgende Artikel thematisiert die wichtigsten Punkte bezüglich Sicherheit in einer geteilten Hosting-Umgebung und vermittelt zu treffende Massnahmen sowie Ratschläge.
Sicherheit als fortlaufender Prozess erfordert eine vorgängige Prüfung der eigenen Ziele. Dies bedeutet, je sicherer die Umgebung gestaltet werden soll, desto aufwendiger wird die Implementation und die Wartung dieser.
Eine öffentlich zugängliche Präsenz bietet per se bereits eine Anzahl möglicher Schwachstellen, da diese auch für jedermann zugänglich sein soll. Es muss somit sichergestellt werden, dass die einzelnen Zugriffsvarianten gegen Fremdeinflüsse gut geschützt sind.
Folgender wichtiger Punkt vorab gilt für jegliche Komponenten:
- Weichen Sie von Standards ab
Jede Web-Applikation arbeitet mit einem entsprechenden Administratoren-Zugang, welcher standardmässig mit einem vordefinierten Benutzernamen zugänglich gemacht wird. Ändern Sie diesen spätestens bei Umschaltung auf den Produktivbetrieb.
Ebenfalls arbeiten viele Applikationen mit vordefinierten Datenbank-Tabellenpräfixen und Verzeichnispfaden. Ändern Sie auch diese bei Installation, um automatisierte Angriffe (Exploit Scans) ins Leere laufen zu lassen.
Web-Applikation
- Stellen Sie sicher, dass Sie jeweils die aktuelle Version des Programmes einsetzen
- Installieren Sie nur Module/Komponenten, die Sie auch wirklich benötigen. Jedes zusätzliche Modul erhöht die Angriffsfläche. Wichtig ist, dass diese Module regelmässig aktualisiert werden. Nicht weiterentwickelte Komponenten sind sehr unsicher.
- Nicht mehr aktive und ungewartete Programme/Applikationen dürfen nicht öffentlich zugänglich sein. D.h. wenn z.Bsp. testweise ein CMS in einem Unterverzeichnis installiert wird und danach nicht mehr verwendet wird, kann dies auch die aktive Präsenz tangieren - analog verhält es sich mit ersetzten Programmen/Web-Applikationen (Beispiel: in Unterverzeichnis /wp ist die aktive WordPress-Installation aktiv und die Alte wird auf /wp_old umbenannt). Die alte Umgebung und dadurch auch die neue bleiben in dieser Form angreifbar.
Web-Server
- Verwenden Sie zur PHP-Ausführung FastCGI, um PHP unter dem FTP-Benutzernamen betreiben zu können
- Ändern Sie die Rechte kritischer Konfigurationsdateien (Passwortdateien) ausnahmslos auf 600.
- Verhindern Sie Web-Zugriffe auf sicherheitsrelevante Scripts und Git Repositories via .htaccess (Deny from all)
- Verhindern Sie unprivilegierte Web-Zugriffe auf nicht öffentliche Bereiche mit einem Passwortschutz.
Mail-Server
- Verbinden Sie sich ausschliesslich verschlüsselt mit dem Postein- sowie -ausgangsserver.
SMTP over SSL = Port 465 bzw. Port 587 (Submission)
POP3 over SSL = Port 995
IMAP over SSL = Port 993
Datenbank-Server
- Vermeiden Sie Standard-Datenbanknamen wie typo3, wordpress, joomla etc.
- Falls nicht benötigt, schränken Sie externe Verbindungen zur Datenbank ein, indem Sie nur lokale Verbindungen zulassen.
Passwörter
Achten Sie ausserdem darauf, dass Sie die Passwörter für das Plesk Panel, den Backend-Zugang, FTP-Zugriff, Mail-Adresse sowie den DB-Benutzer jeweils regelmässig ändern und mit einem Passwortgenerator generieren oder nach folgendem Schema vorgehen:
Das generierte Passwort ...
- schöpft die volle Möglichkeit von mind. 16 (besser 32 oder mehr) Zeichen aus
- enthält mind. 2 Buchstaben unter Verwendung von Gross- als auch Kleinbuchstaben
- enthält mind. 2 Ziffern oder Sonderzeichen
- enthält keine (erkennbare) Systematik, d.h. erscheint wie eine zufällig erzeugte Zeichenfolge
- ist kein Wort einer bekannten Sprache
- enthält keine Namen, insbesondere nicht einen, der im Zusammenhang mit der Domain/dem Benutzerkonto steht
- ist nur dem Inhaber der Kennung bekannt
- wird in angemessenen Abständen geändert.
Artikel aktualisiert am 02.06.2021