Strumenti per la scansione del codice Magento per contenuti dannosi


8

Abbiamo un cliente che è molto interessato all'introduzione di codice dannoso nei moduli di terze parti, in particolare i moduli che provengono da Magento Connect (o qualsiasi modulo gratuito) Vorrebbero utilizzare uno di questi moduli ma vogliono essere certi che il modulo non contiene codice che consentirebbe a un hacker di accedere a diverse parti del proprio sito Magento.

La mia domanda è questa: esiste uno strumento che potremmo usare per scansionare il codice alla ricerca di contenuti? Qualcosa del genere, ma forse più in profondità.

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;
        }
}

Anche un servizio che può essere eseguito sul server web.

Idealmente, se esistesse un servizio che scansionasse ogni commit prima che il codice entrasse nel repository sarebbe l'ideale.


Ottima domanda Sono paranoico per natura e quando installo un nuovo modulo, vado a controllare il codice per vedere se c'è qualcosa di sospetto. Il problema immagino sia per coloro che non sanno cosa stanno cercando. Un po 'come tutte quelle app torcia che accedono alla fotocamera del tuo telefono e / o al microfono. Non sai fino a quando non è troppo tardi o dai un'occhiata seria a ciò che stai installando. Detto questo, spero che qualcuno possa trovare una soluzione O che Magento Connect diventi molto più faticoso sui moduli che consentono.
SR_Magento

1
Non possono semplicemente pagarti per scaricare e quindi rivedere il codice prima di caricare sul sito del commerciante senza utilizzare Connect?
Kristof a Fooman il

Risposte:


3

Hai pensato di eseguire Clamav? - https://www.clamav.net/index.html - L'ho eseguito di recente su un server Ubuntu client che esegue magento ed è tornato con due file infetti - la velocità della scansione era impressionante ed è facilmente eseguibile se si dispone dell'accesso SSH - puoi anche eseguire regolarmente tramite un processo Cron.

Per eseguire clam AV su Ubuntu

Per installare ClamAV, eseguire il comando seguente

apt-get update
apt-get install clamav

Aggiorna manualmente i database dei virus

freshclam

Vedrai avviato il processo di aggiornamento di ClamAV Per scansionare manualmente file / cartelle alla ricerca di virus

clamscan -r --bell -i /

Per coloro che non sono su Ubuntu è possibile trovare le istruzioni complete qui https://www.clamav.net/doc/install.html


Aggiungilo a Linux Malware Detect che esegue un livello di scansione e quindi si collega a ClamAV per completare il tentativo di svuotare i nasty dell'applicazione php.
Fiasco Labs,

FYI Clam non rileva la maggior parte degli ultimi malware Magento. Inoltre, la maggior parte dei malware è nascosta nel database, in particolare in queste tabelle: core_config_data, cms_blocks, cms_pages. Quindi dovresti scaricarli su un file e scansionarlo.
Willem,

3

Esistono molti modi per offuscare il codice, quindi una soluzione così semplice non è affatto una soluzione IMO. Se vuoi davvero bloccare il tuo sistema e prevenire il codice dannoso, ti consiglio di:

  1. Non consentire l'installazione di moduli tramite Connect. Utilizzare un repository git e installarlo prima su un server di gestione temporanea e aggiornare la produzione tramite git solo dopo test e ispezioni approfonditi.

  2. Non consentire mai l'uso di moduli con codice offuscato, indipendentemente da chi sia lo sviluppatore. Richiedi una copia non offuscata o cerca altrove. Sono d'accordo con gli sviluppatori di estensioni che vogliono prevenire la pirateria, ma se sei preoccupato per la sicurezza, è un fallimento.

  3. Se possibile, limitare il traffico in uscita tramite iptables. Questo è difficile poiché ci sono così tante API di terze parti con cui integrarsi e possono cambiare i loro IP in qualsiasi momento, ma è il modo più sicuro per impedire a codice dannoso (Magento o altro) di raggiungere.

  4. Installa uno strumento che controlla la tua radice web per le modifiche ai file. Ad esempio, ConfigServer Firewall e OSSEC hanno componenti che lo fanno bene, ovviamente dopo una corretta configurazione.

Se ti capita di conoscere un sistema che aggiorna le voci di iptables o i gruppi di sicurezza AWS durante l'aggiornamento dei record DNS, faccelo sapere poiché non ne ho ancora trovato o creato uno da solo.


Grazie a Colin, questo in realtà non risponde alla domanda: facciamo 1 e 2. Il numero tre è dopo il fatto e non si occupa della scansione del codice. # 4 è solo un confronto del codice esistente. Abbiamo clamAV e Sophus ma mancavano due file.
Brentwpeterson


1

Ho creato un modulo chiamato MB_ Callinghome per fare esattamente questo. L'estensione è abbastanza semplice, osserva l'evento di accesso dell'amministratore e cerca una stringa configurabile con find e grep. L'estensione utilizza exec () che lo rende utilizzabile solo in un ambiente di gestione temporanea poiché potrebbe esporre il sito a un attacco se utilizzato in prod.


1

Potresti forse esaminare usando PHP_CodeSniffer o uno strumento standard di codifica simile. Dovresti ovviamente avere una forte comprensione del funzionamento interno di ciò che dovrebbe essere considerato sicuro, ma puoi impostarlo in modo tale che lo sniffer di codice possa quindi contrassegnare i file problematici.

Ricordo che qui c'era una domanda riguardo al perché gli standard usati dal modulo qui https://github.com/magento-ecg/coding-standard sono così sensibili alle minacce come fopen e altre operazioni di I / O sui file.

Usandolo, potresti almeno identificare ciò che potresti voler considerare un codice pericoloso. Tuttavia, alla fine richiederebbe comunque una revisione della base di codice. Tutto ciò che viene segnalato potrebbe essere un codice legittimo ai fini del funzionamento dei moduli. Quindi non puoi fare affidamento puramente su test automatici per qualcosa del genere purtroppo.


0

Ci sono strumenti online gratuiti che puoi usare per scansionare la tua installazione di Magento da remoto. Questi possono aiutarti a identificare gli swiper delle carte di credito, i payload dannosi, i domini intermedi e altri problemi di sicurezza.

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/

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.