Wie kann ich bestimmte Protokolle in Ubuntu verfolgen? (CPU)

Wie kann ich bestimmte Protokolle in Ubuntu verfolgen? (CPU)

Wir haben diese EC2-Instanz: T2.medium, mit Apache und 4 virtuellen Hosts (4 Sites). Manchmal erreicht die CPU aus heiterem Himmel sehr hohe Werte, möglicherweise ein Angriff.

Ich habe gesehen, dass einige unserer WordPress-Dateien geändert wurden.

Wie kann ich überprüfen, wer in diese Dateien geschrieben hat? Wie kann ich die Protokolle der CPU überprüfen, um zu sehen, welcher Prozess sie beeinflusst hat? Gibt es CloudWatch-Metriken, die ich verwenden könnte?

Wir haben einige Sicherheitsmaßnahmen am Server vorgenommen: Updates, Ausführen von AWS Inspector, Lynis, Ändern der SSH-Konfigurationsdatei.

Gibt es eine Möglichkeit herauszufinden, wer in diese WordPress-Dateien eingedrungen ist und sie geändert hat und wie?

Und welche anderen Härtungsverfahren empfehlen Sie?

Antwort1

Hier gibt es mehrere Fragen.

Wer hat in die Dateien geschrieben?

Das Betriebssystem protokolliert diese Informationen zwar nicht, es gibt aber einige Anhaltspunkte:

  • Das Änderungsdatum
  • Die Dateiberechtigungen

Verwenden Sie das Änderungsdatum der Dateien, um Ihre Suche in Ihren Apache-Zugriffsprotokollen einzugrenzen. Suchen Sie zumindest nach POSTAnfragen und Anmeldungen aus dieser Zeit. Dies würde beispielsweise alle Anmeldeversuche anzeigen:

zgrep 'POST /wp-login.php' /var/log/apache2/*access*

Sie können die Ausgabe dann nach dem Zeitraum filtern, den Sie aus der Änderungszeit der Dateien erhalten haben.

Wenn die geänderten Dateien nur von bestimmten Systembenutzern beschreibbar sind, können Sie ziemlich sicher sein, dass sie von diesen Systembenutzern geändert wurden.

Welche Prozesse belasten die CPU?

Diese Informationen werden standardmäßig nicht protokolliert. Wenn es unpraktisch ist, den Server „live“ zu überwachen – beispielsweise mit top –, können Sie verschiedene Protokollierungstools verwenden.Hier ist eine Serverfehlerfragewobei hierfür verschiedene Tools empfohlen werden.

Feststellen, ob Sie gehackt wurden

Dies ist ein umfangreicheres Thema, aber da Sie Änderungen an den WordPress-Dateien erwähnt haben, würde ich damit beginnen, festzustellen, ob diese Änderungen bösartig sind. Führen Sie einen WordPress-Malware-Scanner aus und/oder suchen Sie nach bösartigen Mustern wie eval(base64_decode(, PHP-Web-Shells usw. Wenn Sie sich nicht sicher sind, bleiben Sie hartnäckig, seien Sie gründlich und stellen Sie bei Bedarf weitere Fragen.

Feststellen, wie sich ein Angreifer Zugriff verschafft hat

Wenn Sie einigermaßen sicher sind, dass die Site oder Sites gehackt wurden, können Sie versuchen herauszufinden, wie der Angreifer Zugriff erlangt hat. Die beiden wahrscheinlichsten Möglichkeiten, wie dies geschehen sein könnte, sind die Anmeldung bei einem Administrator-Benutzerkonto oder über eine Sicherheitslücke. In den meisten Fällen ist es schwierig, dies mit einem hohen Grad an Sicherheit festzustellen. Wenn Sie jedoch Software mit einer bekannten Sicherheitslücke ausgeführt haben, insbesondere eine mit einem öffentlichen Exploit, die die Ausführung von Remotecode ermöglicht, ist dies eine sehr wahrscheinliche Möglichkeit. Und wenn ein WordPress-Administratorbenutzer schwache Anmeldeinformationen hat oder seine Anmeldeinformationenwurden durchgesickert, dann ist dies eine sehr wahrscheinliche Möglichkeit.

Weitere Härtung

Wenn Sie glauben, dass der Server kompromittiert wurde, dann lesen Sie bittedie kanonische Antwort zu diesem Thema.

Antwort2

Dies ist keine vollständige Antwort, sondern eine Ergänzung zur Antwort von sceox.

Sie sollten sich ansehenHärten Wordpress, UndWordpress-Dateiberechtigungen.

Ich habe es so eingerichtet:

  • Ein Benutzer / eine Gruppe besitzt die Dateien
  • PHP ist Teil einer Gruppe, die die Wordpress-Dateien einschließlich Plugins/Themes/usw. lesen, aber nicht in sie schreiben kann. Es kann in den Upload-Ordner schreiben, sodass Bilder über die Wordpress-Benutzeroberfläche hochgeladen werden können. Dadurch ist es für alles im Internet sehr schwierig, die Wordpress-Dateien zu kompromittieren.
  • Ich habe ein Skript, das denWordpress-Befehlszeilenschnittstelleum um 2 Uhr morgens Updates von Wordpress und den Plugins durchzuführen.
  • Alle neuen Plugins müssen mit Wordpress CLI installiert werden. Das ist zwar nicht so bequem, aber VIEL sicherer.

Hier ist das Skript, das ich verwende und das auf einem Cron-Job läuft

#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

echo
echo Wordpress Update and Permissions Script Starting
echo "$(date) Wordpress update and backup started"   >> /var/log/me/my-wordpress-upgrades 2>&1

# Function to upgrade wordpress
function upgrade_wordpress() {
    # set up folders in the formats needed
    dir=$1
    uploads=$1/wp-content/uploads

    echo Upgrading Wordpress core, plugins, themes in ${dir}
    sudo -H -u www-user bash -c "wp core update --path=$dir"
    sudo -H -u www-user bash -c "wp plugin update --all --path=$dir"
    sudo -H -u www-user bash -c "wp theme update --all --path=$dir"

    echo Setting wordpress permissions to 755 files and 644 folders
    find ${dir} -type d -exec chmod 755 {} \;
    find ${dir} -type f -exec chmod 644 {} \;
    chmod 440 ${dir}/wp-config.php

    echo Making uploads folder ${uploads} writable by the web server
    chown -R www-data:www-data ${uploads}

    echo Wordpress upgrade for $1 complete
    echo
    echo
}


echo Setting /var/www permissions to www-user:www-data
chown -R www-user:www-data /var/www/

# Run Wordpress update for each wordpress install
upgrade_wordpress /var/www/blog1
upgrade_wordpress /var/www/blog2

verwandte Informationen