
Scanner basé sur YARA qui détecte les malwares PHP obfusqués et les webshells en utilisant la correspondance de motifs sémantiques plutôt que des hachages de fichiers, avec un système de liste blanche et un crawl multi-threadé.
_______ __ __ _______
| ___ || |_| || |
| | | || || ___|
| |___| || || |___ Webshell finder,
| ___|| || ___| kiddies hunter,
| | | ||_|| || | website cleaner.
|___| |_| |_||___|
Détectez les fichiers PHP potentiellement malveillants.
PHP-malware-finder fait de son mieux pour détecter le code obscurci/douteux ainsi que les fichiers utilisant des fonctions PHP souvent employées dans les malwares/webshells.
La liste suivante d'encodeurs/obfuscateurs/webshells est également détectée :
Bien sûr, il est trivial de contourner PMF, mais son but est d'attraper les kiddies et les idiots, pas les personnes avec un cerveau fonctionnel. Si vous signalez un contournement spécifique stupide pour PMF, vous appartenez probablement à l'une (ou aux deux) catégories, et devriez relire la déclaration précédente.
La détection s'effectue en parcourant le système de fichiers et en testant les fichiers par rapport à un ensemble de règles YARA. Oui, c'est aussi simple que ça !
Au lieu d'utiliser une approche basée sur le hash,
PMF essaie autant que possible d'utiliser des motifs sémantiques, pour détecter des choses comme
"une variable $_GET est décodée deux fois, décompressée,
puis passée à une fonction dangereuse comme system".
sudo apt-get install yarayum install yara (nécessite le dépôt EPEL)Vous pouvez aussi le compiler depuis les sources :
git clone [email protected]:VirusTotal/yara.git
cd yara/
YACC=bison ./configure
make
git clone https://github.com/jvoisin/php-malware-finder.git$ ./phpmalwarefinder -h
Usage phpmalwarefinder [-cfhtvl] <file|folder> ...
-c Chemin optionnel vers un fichier de règles
-f Mode rapide
-h Affiche ce message d'aide
-t Nombre de threads à utiliser (8 par défaut)
-v Mode verbeux
Ou si vous préférez utiliser yara :
$ yara -r ./php.yar /var/www
N'oubliez pas que vous devez utiliser au moins YARA 3.4 car nous utilisons les hashs pour le système de liste blanche, et des expressions régulières gourmandes. Notez que si vous prévoyez de compiler yara depuis les sources, libssl-dev doit être installé sur votre système pour avoir le support des hashs.
Oh, et au fait, vous pouvez exécuter la suite de tests complète avec make tests.
Consultez le fichier whitelist.yar. Si vous êtes paresseux, vous pouvez générer des listes blanches pour des dossiers entiers avec le script generate_whitelist.py.
Parce que :
PHP-malware-finder est sous licence GNU Lesser General Public License v3.
Le formidable projet YARA est sous licence Apache v2.0.
Les correctifs, listes blanches ou échantillons sont bien sûr plus que bienvenus.