• Hi Community,
    ich bin gerade dabei die von mir betreuten Projekte abzusichern und habe mir aus der Vielzahl von möglichen Lösungen ein eigenes Verfahren zusammengestellt. Wie seht ihr folgende Vorgangsweise:

    1) Basics:
    Der Login darf natürlich nicht aus der Kombination "admin" und PW "1234" bestehen, Da sollte es doch eine Lösung mit Sonderzeichen und Zahlen/ Buchstabenkombinationen geben. Dass immer die aktuellste WP-Version installiert ist, ist auch selbstverständlich.

    2a) In der functions.php sorgt ein Codeschnipsel dafür, dass im Falle eines falschen Loginversuchs die Infos ausblendet werden, ob es das PW oder der User sind, die nicht korrekt eingegeben wurden:

    Code
    /**
     * remove Error-information
     */
    add_filter( 'login_errors', create_function( '$a', "return null;" ) );

    2b) Das Plugin "limited login attempts" lässt maximal 4 fehlerhafte Loginversuche zu. Danach wird die betreffende IP für 24 Stunden gesperrt und ich erhalte ein Infomail über den fehlerhaften Loginversuch.

    3a) Ein Plugin sorgt für das tägliche Backup der Datenbank und versendet den Dump per E-Mail an meine Mailadresse.
    3b) BackWPup macht ein 14-tägiges Backup der gesamten Installation. Also auch der Themes, Uploads etc.

    4) AntiVirus von Sergej Müller überprüft den Code täglich auf Malware und informiert mich, falls ein Problem auftritt.

    Damit müsste ich eigentlich auf der sicheren Seite sein und könnte im Bedarfsfall immer die DB des letzten oder vorletzten Tages installieren. Bei den Dateien, die sich nicht so schnell ändern, aber größer sind, genügt mir das Backup, das alle 14 Tage angelegt wird.

    Haltet ihr das für "sicher genug" für einen "durchschnittlichen" Blog, der maximal 2-3 Autoren und wöchentlich ca. 3-4 neue Beiträge sowie eine überschaubare Zahl von Besuchern hat? Oder würdet ihr auch noch andere Sicherheitsfunktionen einbauen?

    Bin ja gespannt. ;)
    Grüße!
    Raphael

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Absolute Sicherheit gibt es nicht. Man kann sicher einiges machen, um seine Wordpress Installation etwas zu "härten". Da wären z.B.

    - richtiges setzen von Rechten
    - Schreibrechte nur vergeben, wenn sie gebraucht werden
    - dem /uploads Verzeichnis Ausführungsrechte entziehen
    - das externe Ausführen von Scripten unter /wp-content und /wp-includes verhindern
    - Login-Bereich per Passwort und IP absichern
    - Reset Password Feature deaktivieren
    - wp-config.php evtl auslagern
    - ServerSignature deaktivieren
    - Wordpress, Theme, Plugins IMMER auf dem neusten Stand halten
    - nach Exploits hier schauen http://www.exploit-db.com/search/?action…ption=wordpress

    Es gibt noch einige Sachen mehr, aber für den Anfang sind diese Sachen ausreichend.

    Es gab hier letztens einen Link (glaube von R23), dort wurde mal ein Blick hinter die Kulissen, aus Sicht eines Hackers, gewährt. Dort konnte man nachlesen, wie beim Hacken einer Wordpress Installation vorgegangen wird.

    Einmal editiert, zuletzt von Hille (26. Februar 2014 um 23:05)


  • Es gab hier letztens einen Link (glaube von R23), dort wurde mal ein Blick hinter die Kulissen, aus Sicht eines Hackers, gewährt. Dort konnte man nachlesen, wie beim Hacken einer Wordpress Installation vorgegangen wird.

    Wenn man sich Hacker-Angriffe ansehen möchte - ist Youtoube sinnvoller oder einfach mal die Logs von seinem Wordpress mal untersuchen :)

    Die üblichen Hacker Tools. Anwendung und der Besitz ist rechtlich umstritten.
    http://www.heise.de/ct/artikel/Brenzlige-Bytes-286176.html

    Bitte wirklich die rechtliche Seite vorher *begreifen*


    Hier wird ein Angriff von einem Skriptkiddie beschreiben
    http://www.kuketz-blog.de/hacking-wordpr…r-die-kulissen/

    Hier kann man sich dann für Wordpress optimierten Tools wie wpscan.org mal ansehen.

    oder mal http://www.heise.de/security/meldu…an-1821752.html


    Raphael
    > Haltet ihr das für "sicher genug" für einen "durchschnittlichen" Blog, der maximal 2-3 Autoren und wöchentlich ca. 3-4 neue
    > Beiträge sowie eine überschaubare Zahl von Besuchern hat? Oder würdet ihr auch noch andere Sicherheitsfunktionen einbauen?

    Ich prüfe einmal am Tag alle Dateien auf Veränderung. Welche Dateien sind neu und *nicht von mir*. welche Dateien wurden gelöscht und besonders wichtig, welche Dateien wurden geändert. Den Bericht lasse ich mir einmal am Tag übersenden.

    Dann verwende ich einen Filter. D.h. sendet mir jemand eine Url - dann prüfe ich diese Url auf Sachen, die dort nichts verloren haben . zum Beispiel mag ich keine SQL - Befehle als Variable.

    Ich mag es nicht, wenn man mir in mein allen bekanntes Wordpress - Upload Verzichnis - in dem auch meine Bilder liegen, fremde php Scripte oder sonstige hochladen und ausführen können. Sollte das hochladen doch mal gelingen - werden dort sicherlich keine PHP Scripte laufen (Kunden von Massenhostern sollten bedenken, dass auch Perl-Scripte ausführbar sind - bei mir per se nicht)

    alles was auf einem Server landen kann und dort nichts verloren hat (zum Beispiel von Editoren die Sicherheitskopien) sind nicht ausführbar
    (engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)(~|\.sw[op]|\.bak|\.orig|\.save)?$|^(\..*|Entries.*|Repository|Root|Tag|Template)$|^#.*#$|\.php(~|\.sw[op]|\.bak|\.orig\.save)$">


    dann mag ich es nicht besonders, wenn man auf die wp-includes Dateinen zugreifen kann.

    also:
    wp-admin/includes/

    wp-includes/
    oder


    wp-includes/js/tinymce/langs/

    wp-includes/theme-compat/

    in einem WebBrowser mag ich gar nicht.

    auch die Veränderung oder lesen der wp-config.php und .htacess mag ich nicht.

    Deine Lösung ist aus meiner Sicht ein *nichts* an Sicherheit. Aber vermutlich der Unterschied zwischen kostenfreie selber Lösung und einer kostenpflichtigen Lösung.

    Beste Grüße

    Ralf

    Mit offenen Augen träumen

    Einmal editiert, zuletzt von r23 (27. Februar 2014 um 00:33)


  • Ich prüfe einmal am Tag alle Dateien auf Veränderung. Welche Dateien sind neu und *nicht von mir*. welche Dateien wurden gelöscht und besonders wichtig, welche Dateien wurden geändert. Den Bericht lasse ich mir einmal am Tag übersenden.

    Ralf

    Wie machst du das ?

    Ein Tipp würde mich freuen

    (Weil das Plugin, welches ich dazu verwendet hatte, funkfioniert bei mir seit geraumer Zeit nicht mehr)

  • Die Login-Seite bzw. der Adminbereich sollte gar nicht aufrufbar sein. Solche Spielereien wie "Meldung verstecken" bringen einen in Sachen Sicherheit nicht weiter. Hier ein paar Tipps, wie ihr eure Website sicherer machen könnt:

    1. Backend verstecken über .htaccess und zusätzlich mit Geheimschlüssel
    2. WordPress-Version aus dem Header entfernen in functions.php
    3. wp-config.php und .htaccess sperren durch korrekte Schreibrechte sowie .htaccess Anweisungen
    4. wp-content Ordner verstecken bzw. umschreiben
    5. wp_admin Benutzername ändern
    6. Datenbank-Prefix ändern
    7. Benutzer-ID 1 ändern
    8. Sichere Passwörter für alle User erzwingen
    9. Mechanismus zur Erkennung für Änderungen von Dateien
    10. Bekannte Bots, schlechte Hosts und schlechte Agents über .htaccess aussperren
    11. mySQL-Port ändern
    12. Alle Plugins auf dem neuesten Stand halten. Alte Plugins, die schon viele Jahre nicht gewartet wurden, wieder entfernen
    13. Rechte von Nutzern überprüfen. Entsprechende Rollen vergeben, die nicht zu viele Funktionen gewähren.
    14. Zu lange URLs filtern
    15. Edit-URL aus dem Header entfernen
    16. Theme-Änderungen über den Theme-Editor abschalten
    17. Regelmäßige Backups durchführen und die Backups anschließend verschlüsseln
    18. PHP-Error Meldungen abschalten
    19. "powered by Wordpress" Link aus dem Footer entfernen

    Plugins sollten mit Bedacht genutzt werden, weil diese die größten Schwachstellen aufweisen, da diese oft nicht sauber programmiert sind.

    Hoffe, dass ich euch mit meinen Tipps weiterhelfen konnte. Falls ihr es selbst nicht hin bekommt, wir helfen gerne weiter für wenig Geld: http://www.wpagency.de/leistungen/wor…eitsoptimierung

    Einmal editiert, zuletzt von WPExperte (11. März 2014 um 15:33)

  • // Ich prüfe einmal am Tag alle Dateien auf Veränderung. Welche Dateien sind neu und *nicht von mir*. welche Dateien wurden gelöscht
    // und besonders wichtig, welche Dateien wurden geändert. Den Bericht lasse ich mir einmal am Tag übersenden.


    Wie machst du das ?

    Ich habe dafür ein Plugin an meine Anforderungen angepasst. Ob dies in anderen Umgebungen läuft habe ich jetzt nicht geprüft und hatte auch noch keine Zeit ein kostenloses Plugin herzustellen.

    Mit offenen Augen träumen

  • Ich hab mit folgenden Punkten noch gute Erfahrungen gemacht:

    1. die wp-config.php eine Hierachie Eben höher schieben (bzw. zurück schieben).
    Sie wird trotzdem erkannt. Mehr muss man nicht machen

    2. nachdem man als Admin registriert und eingeloggt ist,
    erstellt man einen neuen Benutzer (volle Admin Rechte), dessen Benutzernamen
    etwas komplexeres als "admin" ist. Und natürlich ein gutes Kennwort.
    Danach logt man sich mit dem neuen Admin ein und löscht den alten Admin

    3. Plugin: Limit Login Attemps

    4. htaccess Passwort Schutz auf die /wp-admin Seite

  • Mit XML-RPC-Schnittstelle wird scheinbar auch oft Schabernack getrieben:

    http://blog.sucuri.net/2014/03/more-t…ice-attack.html
    http://cup.wpcoder.de/wordpress-xmlrpc-schutz/



    Dann verwende ich einen Filter. D.h. sendet mir jemand eine Url - dann prüfe ich diese Url auf Sachen, die dort nichts verloren haben . zum Beispiel mag ich keine SQL - Befehle als Variable.

    So was in der Art: http://wpsnipp.com/index.php/secu…s-url-requests/
    Oder filterst du da noch mehr ?


    MfG

    Einmal editiert, zuletzt von g3h (11. März 2014 um 20:30)

  • Warum?

    Durch den Standardport (z.B. https://wpde.org:3306/) lässt sich mySQL ganz einfach erreichen. Der Angreifer kann dann Brute-Force-Attacken starten oder bekannte Passwörter abfragen, um in dein System einzudringen. Wenn du dann auch noch Standardbenutzer bei mySQL hast, dann hast du die A-Karte.

    Zitat

    Warum verschlüsseln?

    Wenn die Dateien auf deinem Server liegen oder lokal auf dem PC, dann sind sie in der Regel unverschlüsselt. Wenn du mal gehackt wirst, dann lassen sich Zugangsdaten ohne Probleme auslesen. Durch die Verschlüsselung vermeidest du so etwas. Keiner kann was mit der Datei anfangen, außer du selbst.

  • 10. Bekannte Bots, schlechte Hosts und schlechte Agents über .htaccess aussperren


    Du meinst damit hoffentlich nicht diese unsäglichen Listen mit tausenden von Einträgen von angeblichen Spambots, die von Jahr zu Jahr länger werden? Die halte ich für so was von nutzlos, wie es nichts nutzloseres geben könnte.

    11. mySQL-Port ändern


    Die meisten dürften Hostingspakete verwenden und müssen mit dem Leben, was der Hoster anbietet.

  • Nur mal als Beispiel, was so eine Sperr-Liste dann enthalten müsste:

    Zitat

    Aktuell sind gesperrt [Stand: 1. März 2014 (1. Februar 2014)]:

    359.830 einzelne IP-Adressen (353.856),
    20.471 IP-Adressbereiche (20.072) und
    313 User-Agent-Kennungen (313).


    http://www.bot-trap.de/home/

  • Durch den Standardport (z.B. https://wpde.org:3306/) lässt sich mySQL ganz einfach erreichen.

    Sorry, das stimmt so nicht. Bei einem richtig konfiguriertem Server läßt sich der MySQL Port von außen nicht erreichen, da dieser entweder an den Host gebunden ist oder durch eine Firewall z.B. iptables geschützt wird.


    Wenn die Dateien auf deinem Server liegen oder lokal auf dem PC, dann sind sie in der Regel unverschlüsselt. Wenn du mal gehackt wirst, dann lassen sich Zugangsdaten ohne Probleme auslesen. Durch die Verschlüsselung vermeidest du so etwas. Keiner kann was mit der Datei anfangen, außer du selbst.

    Wie du schon schreibst, die Daten liegen im Original unverschlüsselt auf dem Server. Wird dieser gehackt, kann der Angreifer die Daten auslesen, egal ob das Backup verschlüsselt oder unverschlüsselt gespeichert wurde. Ein Backup zu verschlüsseln ist eigentlich nur dann sinnvoll, wenn die Datensicherung auf einem fremden System liegt und man vermeiden möchte, das dort Einblick in sensible Daten geschehen kann.


  • So was in der Art: http://wpsnipp.com/index.php/secu…s-url-requests/
    Oder filterst du da noch mehr ?

    ich filter mehr und lass mir das Ergebnis eben zu mailen:

    so einmail in der Wochhe kommt dann soetwas :

    [COLOR=red]fh = /../../../../../../wp-admin
    [COLOR=red]imgpath = ../../../../uploads/optpress/images_comingsoon
    [COLOR=red]$_FILE = wmbuild.php
    [COLOR=red]$_FILE = caneyes.php[/COLOR]
    [COLOR=red]email = sd0x59ssdiweo2}haiduk2|sdjwos9|chunbynses5|haidukspow8|sdowps9|cnispwe2|niahdowsd8|xopose9|spdmosew9|cniosxsd9|snidowpos8|cminspodpw}@gmail.com[/COLOR]
    [/COLOR]
    [/COLOR]
    [/COLOR]
    [COLOR=red]fbuserid = 2 and 1=2 union select 1,2,3,4,5,concat(user_login,0x7e,user_pass)a,7,8,9,10,11,12 from wp_users-
    [COLOR=red]editor4 = okhgeeplv, <a href=\".....\">male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models}</a>, UOgHoSe, male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models}, bfYaOnI, ...... els|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models|male models}, cJohLYo, <a href=[ spam .
    [/COLOR]
    [/COLOR]

    dazu gibt es dann noch die entsprechende Datei zurzeit besonders beliebt '/upload.php?action=uploadify'

    Mit offenen Augen träumen

  • Danke für den Einblick. Gibt es noch bestimmte Filter, die du für sehr wichtig hältst und die im Snippet, welches ich verlinkt habe, fehlen ?

  • Danke für den Einblick. Gibt es noch bestimmte Filter, die du für sehr wichtig hältst und die im Snippet, welches ich verlinkt habe, fehlen ?

    Dein Script hat viele Bedingungen

    PHP
    global $user_ID; if($user_ID) {
            if(!current_user_can('administrator')) {
                    if (strlen($_SERVER['REQUEST_URI']) > 255 ||

    meine Angreifer haben in der Regel keine userid - können auch mal sich nicht an die länge von 255 halten - ich halte von deinem code leider *nichts*

    Mit offenen Augen träumen

  • Wer Zugriff auf einen root-Server hat, dem kann ich mod_security in Verbindung mit GotRoot-Rules sehr empfehlen. Dort sind sehr viele sinnvolle Regeln enthalten, die man dann entsprechend für sich nutzen kann.

  • dem kann ich mod_security in Verbindung mit GotRoot-Rules sehr empfehlen. Dort sind sehr viele sinnvolle Regeln enthalten, die man dann entsprechend für sich nutzen kann.

    Die meisten Regeln greifen nicht, da sie nur auf die proof of concept "angriffe" ausgelegt sind.
    es sind auch sehr sehr viele Regeln --> der Apache wird lahm.

    Mit offenen Augen träumen

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!