WordPress est aujourd’hui de loin l’un des acteurs majeurs du Web. Avec plus de 40% des sites propulsés par ce célèbre Framework, il dispose aujourd’hui d’une communauté forte qui lui procure de nombreux avantages. En effet, chaque développeur utilisant le système peut s’il repère un soucis proposer une correction. Cependant cet avantage représente aussi un inconvénient majeur: chaque brèche de sécurité découverte devient très vite très connue. Il est donc important de régulièrement mettre à jour son système et ses plugins afin de bénéficier des dernières corrections. Mais cela ne suffit parfois pas. Aujourd’hui, découvrons un petit outil qui permet facilement de faire un audit de sécurité de votre WordPress.
Découvrons WPScan
WPScan est un outil gratuit et très simple à prendre en main. Il se base sur toutes les failles de sécurité connues et communes sur les sites WordPress pour tenter de voir si votre site présente ou non des vulnérabilités. Avec sa version gratuite vous pouvez lancer jusqu’à 75 scans par jour, ce qui laisse pas mal de marge. Et comme cet article n’est pas sponsorisé, je n’ai de toutes façons pas de code à vous donner pour essayer la version payante.
Comment être sûr que ça sera utile ?
Soyons honnêtes: ni vous ni moi ne sommes la Nasa. Il y a peu de chances que notre site soit attaqué un jour par un hacker expérimenté. Et s’il y arrivait il ne récupèrerait sans doute rien d’intéressant. La majorité des hacks courants sur du WordPress va consister en la redirection de votre site vers un site de vente ou contenant des pubs. Simple, efficace. Ce n’est donc généralement pas un être humain qui se trouve derrière les manettes. Tout comme WPScan, il existe de nombreux malwares qui vont simplement repérer les sites WordPress et tester des failles connues dessus. Plugins pas à jours, droits d’accès mal gérés, fichier qui traîne, … Il existe de nombreuses failles bêtes mais qui permettent une infiltration dans votre site.
WPScan travaille avec des professionnels afin de répertorier toutes les nouvelles failles découvertes sur le CMS. J’écris cet article le 4 janvier et il y a déjà 19 failles répertoriées sur le mois de Janvier. Ça donne une belle idée de l’ampleur que ça peut prendre. Avec plus de 38.000 failles dans leur base, WPScan ratisse large.
Installation et lancement
Nous allons donc avoir besoin d’installer le cli sur notre terminal. Si vous utilisez gem, rien de plus simple:
gem install wpscan
C’est en revanche plus coton sous brew, il y a beaucoup plus de caractères:
brew install wpscanteam/tap/wpscan
Et voilà.
Une fois cela fait, créez vous un compte sur le site et copiez la clé API générée sur votre Dashboard. Vous pouvez ensuite lancer la commande de la façon suivante:
wpscan --api-token VOTRECLÉAPI --url https://blog.loscil.fr/
On vous proposera alors peut-être de mettre à jour la base de donnée locale de failles. Entrez simplement Y pour valider, n’oublions pas que le domaine de la sécurité va très vite ! Vous pouvez lancer vous-même une mise à jour avec la commande « wpscan –update« .
Les résultats
La majorité du temps les failles viennent de plugins ou de WordPress lui-même. Auquel cas il suffit de les mettre à jour et vous en êtes débarrassés:
Cependant il peut arriver que certaines failles soient plus subtiles, auquel cas vous aurez une ou plusieurs références d’articles expliquant comment cette faille fonctionne et comment l’exploiter. Ce qui vous permettra par la suite de savoir comment la corriger (ou non si vraiment vous considérez que la faille est mineure). Par exemple en utilisant emacs vous pouvez vous retrouver avec un fichier terminant par « ~« . Il s’agit en réalité d’un backup généré avant modification du fichier, parfois très pratique. Cependant si votre configuration ne les cache pas par défaut, il est très simple d’accéder au votresite.com/wp-config.php~ qui contiendra l’avant dernière version du package. Résultat ? Un accès potentiel à vos accès BDD et à toute autre configuration de votre site.
WPScan est donc un outil bien pratique, clair et gratuit pour votre analyse de sécurité de votre site WordPress. Est-ce que pour autant il est suffisant pour être serein ? Non. Mais il constitue une très bonne base de démarrage afin de se délester de tous les bugs les plus gros.