Wir haben einen Kunden, der sehr besorgt darüber ist, dass bösartiger Code in Modulen von Drittanbietern eingeführt wird, insbesondere in Modulen, die von Magento Connect (oder einem beliebigen freien Modul) stammen. Sie möchten eines dieser Module verwenden, möchten jedoch sicher sein, dass das Modul dies tut keinen Code enthalten, der es einem Hacker ermöglicht, auf verschiedene Teile seiner Magento-Site zuzugreifen.
Meine Frage lautet: Gibt es ein Tool, mit dem wir Code nach Inhalten durchsuchen können? So etwas, aber vielleicht ausführlicher.
function check($contents,$file) {
$this->scanned_files[] = $file;
if(preg_match('/eval\((base64|eval|\$_|\$\$|\$[A-Za-z_0-9\{]*(\(|\{|\[))/i',$contents)) {
$this->infected_files[] = $file;
}
}
Sogar ein Dienst, der auf dem Webserver ausgeführt werden kann.
Idealerweise wäre es ideal, wenn es einen Dienst gäbe, der jedes Commit scannt, bevor Code in das Repo gelangt.
php
magento-connect
extensions
security
Brentwpeterson
quelle
quelle
Antworten:
Hatten Sie darüber nachgedacht, Clamav zu betreiben? - https://www.clamav.net/index.html - Ich habe dies kürzlich auf einem Ubuntu-Client-Server ausgeführt, auf dem Magento ausgeführt wird, und es wurden zwei infizierte Dateien zurückgegeben. Die Geschwindigkeit des Scans war beeindruckend und kann problemlos ausgeführt werden, wenn Sie über SSH-Zugriff verfügen - Sie können auch regelmäßig über einen Cron-Job ausgeführt werden.
Clam AV unter Ubuntu ausführen
Führen Sie den folgenden Befehl aus, um ClamAV zu installieren
Aktualisieren Sie Virendatenbanken manuell
Sie sehen, dass der ClamAV-Aktualisierungsprozess gestartet wurde. So scannen Sie Dateien / Ordner manuell auf Viren
Für diejenigen, die nicht unter Ubuntu sind, finden Sie die vollständigen Anweisungen hier https://www.clamav.net/doc/install.html
quelle
Es gibt viele Möglichkeiten, Code zu verschleiern, sodass eine so einfache Lösung IMO überhaupt keine Lösung ist. Wenn Sie Ihr System wirklich sperren und schädlichen Code verhindern möchten, würde ich empfehlen:
Installieren Sie keine Module über Connect. Verwenden Sie ein Git-Repo und installieren Sie es zuerst auf einem Staging-Server. Aktualisieren Sie die Produktion erst nach gründlichen Tests und Inspektionen über Git.
Erlauben Sie niemals die Verwendung von Modulen mit verschleiertem Code, egal wer der Entwickler ist. Bitten Sie um eine ungetrübte Kopie oder schauen Sie einfach woanders hin. Ich sympathisiere mit Erweiterungsentwicklern, die Piraterie verhindern wollen, aber wenn Sie sich Sorgen um die Sicherheit machen, ist dies ein Deal-Breaker.
Wenn möglich, beschränken Sie den ausgehenden Verkehr über iptables. Dies ist schwierig, da so viele APIs von Drittanbietern integriert werden können und sie ihre IP-Adressen jederzeit ändern können. Dies ist jedoch der sicherste Weg, um zu verhindern, dass bösartiger Code (Magento oder auf andere Weise) auf ihn zugreift.
Installieren Sie ein Tool, das Ihr Webstamm auf Dateiänderungen überwacht. Zum Beispiel haben ConfigServer Firewall und OSSEC Komponenten, die dies nach ordnungsgemäßer Konfiguration natürlich gut tun.
Wenn Sie zufällig ein System kennen, das iptables-Einträge oder AWS-Sicherheitsgruppen aktualisiert, wenn DNS-Einträge aktualisiert werden, lassen Sie es mich bitte wissen, da ich selbst noch keinen gefunden oder erstellt habe.
quelle
Probieren Sie den Magento Malware Scanner aus , der die größte Sammlung öffentlich zugänglicher Malware-Signaturen enthält. Es lädt die neuesten Signaturen herunter, verarbeitet Whitelists und behält den Status bei.
Es wird von Magento empfohlen und von Magento Marketplace , Homeland Security, VISA und vielen anderen verwendet.
quelle
Ich habe ein Modul MB_ genannt Callinghome zu tun genau das. Die Erweiterung ist recht einfach. Sie beobachtet das Anmeldeereignis des Administrators und sucht nach einer konfigurierbaren Zeichenfolge mit find und grep. Die Erweiterung verwendet exec (), wodurch sie nur in einer Staging-Umgebung verwendet werden kann, da sie die Site möglicherweise einem Angriff aussetzt, wenn sie in prod verwendet wird.
quelle
Sie könnten vielleicht die Verwendung von PHP_CodeSniffer oder eines ähnlichen Codierungsstandard-Tools in Betracht ziehen. Sie müssten natürlich ein tiefes Verständnis für das Innenleben dessen haben, was als sicher angesehen werden sollte, aber Sie können es so einrichten, dass der Code-Sniffer dann problematische Dateien kennzeichnet.
Ich erinnere mich, dass hier eine Frage dahingehend gestellt wurde , warum die vom Modul hier verwendeten Standards https://github.com/magento-ecg/coding-standard so empfindlich gegenüber Thigs wie fopen und anderen Datei-E / A-Operationen sind.
Mit ihm können Sie zumindest identifizieren, was Sie als gefährlichen Code betrachten möchten. Letztendlich wäre jedoch noch eine Überprüfung der Codebasis erforderlich. Alles, was dort markiert wird, kann ein legitimer Code für die Zwecke der Moduloperation sein. Sie können sich also leider nicht nur auf automatische Tests für etwas in dieser Art verlassen.
quelle
Es gibt kostenlose Online-Tools, mit denen Sie Ihre Magento-Installation aus der Ferne scannen können. Mithilfe dieser Informationen können Sie Kreditkartenleser, böswillige Nutzdaten, zwischengeschaltete Domänen und andere Sicherheitsprobleme identifizieren.
https://sitecheck.sucuri.net/
https://www.magereport.com/
http://www.unmaskparasites.com/
http://webscan.foregenix.com/
https://github.com/gwillem/magento-malware-scanner/
https://magescan.com/
https://www.virustotal.com/
quelle