Tools zum Scannen von Magento-Code auf schädliche Inhalte

8

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.

Brentwpeterson
quelle
Gute Frage. Ich bin von Natur aus paranoid und wenn ich ein neues Modul installiere, überprüfe ich den Code, um festzustellen, ob etwas Verdächtiges vorliegt. Das Problem, denke ich, ist für diejenigen, die nicht wissen, wonach sie suchen. Ein bisschen wie all diese Taschenlampen-Apps, die auf die Kamera und / oder das Mikrofon Ihres Telefons zugreifen. Sie wissen es erst, wenn es zu spät ist, oder schauen sich ernsthaft an, was Sie installieren. Abgesehen davon hoffe ich, dass jemand eine Lösung finden kann ODER dass Magento Connect die von ihm zugelassenen Module viel anstrengender macht.
SR_Magento
1
Können sie Sie nicht einfach für das Herunterladen und anschließende Überprüfen des Codes bezahlen, bevor Sie es auf die Händlerseite hochladen, ohne Connect zu verwenden?
Kristof bei Fooman

Antworten:

3

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

apt-get update
apt-get install clamav

Aktualisieren Sie Virendatenbanken manuell

freshclam

Sie sehen, dass der ClamAV-Aktualisierungsprozess gestartet wurde. So scannen Sie Dateien / Ordner manuell auf Viren

clamscan -r --bell -i /

Für diejenigen, die nicht unter Ubuntu sind, finden Sie die vollständigen Anweisungen hier https://www.clamav.net/doc/install.html

David Allsop
quelle
Fügen Sie dies zu Linux Malware Detect hinzu, das eine Scan-Ebene ausführt und sich dann mit ClamAV verbindet, um den Versuch abzuschließen, die Probleme mit PHP-Anwendungen zu beseitigen.
Fiasko Labs
FYI Clam erkennt die meisten der neuesten Magento-Malware nicht. Außerdem ist die meiste Malware in der Datenbank versteckt, insbesondere in den folgenden Tabellen: core_config_data, cms_blocks, cms_pages. Sie sollten diese also in eine Datei kopieren und diese scannen.
Willem
3

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:

  1. 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.

  2. 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.

  3. 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.

  4. 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.

ColinM
quelle
Danke Colin, das beantwortet die Frage nicht wirklich: Wir machen 1 und 2. Nummer drei ist nachträglich und befasst sich nicht mit dem Scannen des Codes. # 4 ist nur ein Vergleich des vorhandenen Codes. Wir haben sowohl clamAV als auch Sophus, aber das hat zwei Dateien verpasst.
Brentwpeterson
2

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.

Willem
quelle
1

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.

mbalparda
quelle
1

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.

John Cuthbert
quelle
0

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/

Mohamed El Mrabet
quelle