Outils pour analyser le code Magento pour le contenu malveillant


8

Nous avons un client qui est très préoccupé par l'introduction de code malveillant dans des modules tiers, en particulier les modules provenant de Magento Connect (ou tout module gratuit). Ils aimeraient utiliser l'un de ces modules mais veulent être assurés que le module ne ne pas contenir de code permettant à un pirate d'accéder à différentes parties de son site Magento.

Ma question est la suivante: existe-t-il un outil que nous pourrions utiliser pour scanner le code pour le contenu? Quelque chose comme ça mais peut-être plus en profondeur.

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

Même un service qui peut être exécuté sur le serveur Web.

Idéalement, s'il y avait un service qui analyserait chaque commit avant que le code n'entre dans le référentiel, l'idéal serait.


Grande question. Je suis paranoïaque par nature et lors de l'installation d'un nouveau module, je vais vérifier le code pour voir s'il y a quelque chose de suspect. Je suppose que le problème est pour ceux qui ne savent pas ce qu'ils recherchent. Un peu comme toutes ces applications de lampe de poche qui accèdent à l'appareil photo et / ou au microphone de votre téléphone. Vous ne savez pas jusqu'à ce qu'il soit trop tard ou jetez un œil sérieux à ce que vous installez. Cela étant dit, j'espère que quelqu'un pourra trouver une solution OU que Magento Connect devient beaucoup plus pénible sur les modules qu'il autorise.
SR_Magento

1
Ne peuvent-ils pas simplement vous payer pour télécharger puis réviser le code avant de le télécharger sur le site marchand sans utiliser Connect?
Kristof à Fooman le

Réponses:


3

Avez-vous pensé à lancer clamav? - https://www.clamav.net/index.html - Je l'ai exécuté récemment sur un serveur Ubuntu de clients exécutant magento et il est revenu avec deux fichiers infectés - la vitesse de l'analyse était impressionnante et est facilement exécutée si vous avez un accès SSH - vous pouvez également exécuter régulièrement via un travail Cron.

Pour exécuter clam AV sur Ubuntu

Pour installer ClamAV, exécutez la commande suivante

apt-get update
apt-get install clamav

Mettre à jour manuellement les bases de données virales

freshclam

Vous verrez le processus de mise à jour de ClamAV démarré Pour analyser manuellement les fichiers / dossiers à la recherche de virus

clamscan -r --bell -i /

Pour ceux qui ne sont pas sur Ubuntu, des instructions complètes peuvent être trouvées ici https://www.clamav.net/doc/install.html


Ajoutez cela à Linux Malware Detect qui effectue un niveau d'analyse, puis se connecte avec ClamAV pour terminer la tentative de débusquer les méchantes applications php.
Fiasco Labs du

FYI Clam ne détecte pas la plupart des derniers logiciels malveillants Magento. De plus, la plupart des logiciels malveillants sont cachés dans la base de données, en particulier dans ces tableaux: core_config_data, cms_blocks, cms_pages. Vous devez donc les vider dans un fichier et les analyser.
Willem

3

Il existe de nombreuses façons d'obscurcir le code, donc une solution aussi simple n'est pas du tout une solution IMO. Si vous voulez vraiment verrouiller votre système et empêcher le code malveillant, je recommanderais:

  1. N'autorisez pas l'installation de modules via Connect. Utilisez un dépôt git et installez-le d'abord sur un serveur intermédiaire et ne mettez à jour la production via git qu'après des tests et une inspection approfondis.

  2. Ne jamais autoriser l'utilisation de modules avec du code obscurci, quel que soit le développeur. Demandez une copie non obscurcie ou cherchez simplement ailleurs. Je sympathise avec les développeurs d'extensions qui souhaitent empêcher le piratage, mais si vous êtes préoccupé par la sécurité, c'est une rupture.

  3. Si possible, limitez le trafic sortant via iptables. C'est difficile car il y a tellement d'API tierces avec lesquelles s'intégrer et ils peuvent changer leurs adresses IP à tout moment, mais c'est le moyen le plus sûr d'empêcher le code malveillant (Magento ou autre) d'atteindre.

  4. Installez un outil qui surveille votre racine Web pour les modifications de fichiers. Par exemple, ConfigServer Firewall et OSSEC ont des composants qui le font bien, après une configuration correcte, bien sûr.

Si vous connaissez un système qui actualisera les entrées iptables ou les groupes de sécurité AWS lors de la mise à jour des enregistrements DNS, faites-le moi savoir car je n'en ai pas trouvé ou n'en ai pas encore créé moi-même.


Merci Colin, cela ne répond pas vraiment à la question: nous faisons 1 et 2. Le numéro trois est après le fait et ne traite pas de la numérisation du code. # 4 n'est qu'une comparaison du code existant. Nous avons clamAV ainsi que Sophus mais cela a manqué deux fichiers.
brentwpeterson

2

Essayez le Magento Malware Scanner , qui contient la plus grande collection de signatures de logiciels malveillants qui soit accessible au public. Il télécharge les dernières signatures, gère les listes blanches et garde l'état.

Il est recommandé par Magento , utilisé par Magento Marketplace , Homeland Security, VISA et bien d'autres.


1

J'ai créé un module appelé MB_ Callinghome pour faire exactement cela. L'extension est assez simple, elle observe l'événement de connexion administrateur et recherche une chaîne configurable avec find et grep. L'extension utilise exec (), ce qui la rend utilisable uniquement dans un environnement de transfert, car elle peut exposer le site à une attaque si elle est utilisée dans prod.


1

Vous pourriez peut-être envisager d'utiliser PHP_CodeSniffer ou un outil standard de codage similaire. Vous devrez bien sûr avoir une bonne compréhension du fonctionnement interne de ce qui devrait être considéré comme sûr, mais vous pouvez le configurer de telle sorte que le renifleur de code signale ensuite les fichiers problématiques.

Je me souviens qu'il y avait une question ici concernant la raison pour laquelle les normes utilisées par le module ici https://github.com/magento-ecg/coding-standard sont si sensibles à propos de thigs comme fopen et d'autres opérations d'E / S sur les fichiers.

En l'utilisant, vous pourriez au moins identifier ce que vous pourriez considérer comme un code dangereux. Cependant, cela nécessiterait en fin de compte une révision de la base de code. Tout ce qui y est signalé peut être un code légitime aux fins de l'opération des modules. Vous ne pouvez donc pas compter uniquement sur des tests automatiques pour quelque chose de cette nature, malheureusement.


0

Il existe des outils en ligne gratuits que vous pouvez utiliser pour analyser votre installation Magento à distance. Ceux-ci peuvent vous aider à identifier les swipers de cartes de crédit, les charges utiles malveillantes, les domaines intermédiaires et d'autres problèmes de sécurité.

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/

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.