Publier un site Web malgré l'insécurité d'internet Petit Guide de Survie adapté à WordPress 1
Sommaire Quelles sont les menaces pour un site web? Le point sur WordPress (et l'actualité...) Les mesures de base Pour l'hébergement Pour le site Pour votre informatique personnelle Que faire si votre site est compromis? Questions / Réponses 2
Le point sur les menaces Qu'est-ce qui menace un site web? L'erreur de manipulation (destruction de données) L'imprévoyance humaine (ça n'arrive qu'aux autres) Le laisser-aller coupable (ne pas remettre à demain) L'attaque opportuniste (syndrome Caliméro) L'attaque ciblée et délibérée (c'est à vous qu'on en veut) La plus grande des menaces...... c'est vous!! 3
Que peux (veux) faire un hacker? Entre autres nuisances... Exécuter du code arbitraire dans vos pages Rediriger votre trafic vers son site Injecter ou modifier du contenu visible Causer un DOS (crash serveur, CPU & B. P.) Injection SQL, exécuter des commandes Obtenir les mots de passe des utilisateurs Transformer votre site en ferme de liens Placer une porte dérobée (pour plus tard) Inclure du code chiffré dans vos pages 4
Plus précisément pour WordPress 80 millions Nombre de sites utilisant WordPress 30 Nombre moyen de vulnérabilités connues sur la version courante Données pingable.org - 2012 Mais c'est dingue!! 5
L'actualité est cruelle... Plus précisément pour WordPress (2) Nombre de recherche de vulnérabilités (scan) journellement constaté ciblant WordPress Données sucuri.net - 2013 6
Plus précisément pour WordPress (3) Il ne faut certes pas installer les mises à jours trop vite. Mais... En moyenne, moins de 20 % des sites disposent de la dernière version deux mois après sa publication Données pingable.org - 2012 Alors, je fais quoi!! 7
Mesures de base... pour l'hébergement Choisissez un hébergement de confiance et de qualité Questions à (se) poser : Combien de sites de cet hébergeur sont blacklistés pour des raisons liées aux malwares? Quelle sont les versions des logiciels sur les serveurs et sont-elles fréquemment mises à jour? Comment sont stockées les informations liées à la sécurité (mes identifiants et mes mot de passe)? L'administration est-elle sécurisée (https, sftp)? Puis-je avoir un accès SSH? une crontab? 8
Mesures de base... pour votre site 10 mesures simples et indispensables 1) Maintenez Wordpress et vos extensions à jour... en prévoyant un retour arrière Comment (bien) faire ses mises à jour? S'abonner aux flux RSS d'alertes de vos composants, Lire (et comprendre) les "changelogs", S'assurer d'une éventuelle restauration (backups), Procéder calmement, par étapes et sans précipitation, Contrôler le frontoffice puis le backoffice, S'il faut revenir en arrière, le faire sans hésiter. 9
WP Updates Notifier Mesures de base... pour votre site http://wordpress.org/extend/plugins/wp-updates-notifier/ 10
Mesures de base... pour votre site 2) Ajoutez du "sel" à vos mots de passe... et choisissez des mots de passe robustes Renseignez le bloc prévu pour ça dans wp-config.php define('auth_key', 'put your unique phrase here'); define('secure_auth_key', 'put your unique phrase here'); define('logged_in_key', 'put your unique phrase here'); define('nonce_key', 'put your unique phrase here'); define('auth_salt', 'put your unique phrase here'); define('secure_auth_salt', 'put your unique phrase here'); define('logged_in_salt', 'put your unique phrase here'); define('nonce_salt', 'put your unique phrase here'); define('auth_key', '%5Pl(eM.JNWyW#V [<FW78QD`c7xA 0;Ke9(k$@ZcYq$5 f'); define('secure_auth_key', 'V^;IB$J SP9b`=v#c4$zOXm?aTl+DmgE^hp4$#x*kkh$mkf'); define('logged_in_key', 'F122,,L$; tlfyqqgd{s<vfdis2ffen)xj G.giz++HS>R'); define('nonce_key', 'n9q>v.(~2mvdko#003yze!upxda H7&~Pju=!Y n<sm NT '); define('auth_salt', '%A*B@2D_Y jqry?:wjs +#q Pkv%R0XA*)~h,4! *Un:_^2'); define('secure_auth_salt', 'I=3IV9ut. 062;AT:sw >:p>u&=3#pfwgytwi3=yd8g )M4'); define('logged_in_salt', '}qa[z]!azt`{ MC?+sW4Y :)s5qw= Q=}xTM+r`_ M~(~<t'); define('nonce_salt', '>qg_fj8iy7k/* I&<bmnk}Eb:LI %[ Eac:8#=?f~ch%f2Z'); Générateur de bloc de "salt values" : https://api.wordpress.org/secret-key/1.1/salt/ 11
Mesures de base... pour votre site... choisissez des mots de passe robustes... Il existe des générateurs de mots de passe http://strongpasswordgenerator.com/... et testez sa robustesse (attention aux surprises) 10 zpe8yp1dh4 1 semaine mickael123 48 secondes raimondu33 3 semaines 9 zpe8yp1dh 1 jour martin123 3 millisecondes jackydu33 5 secondes 8 zpe8yp1d 54 minutes cindy123 2 millisecondes jeandu33 180 millisecondes *=^( N+(d;>% 8s we4y616r6xx86yg 21 038 552 ans 6 937 ans 1Cheval=2Poneys 1 014 556 ans Le Corbeau et le Renard 151 921 600 270 132 ans Maître Corbeau sur un arbre perché 1 000 000 000 000 000 000 000 000 000 ans https://www-ssl.intel.com/content/www/us/en/forms/passwordwin.html 12
Mesures de base... pour votre site 3) N'utilisez que des ressources de confiance... bannissez le "warez" et méfiez-vous du "gratuit" N'introduisez pas vous même le Loup dans la Bergerie Si vous ne payez pas, vous n'êtes pas le client, vous êtes le produit. 13
Mesures de base... pour votre site Theme Authenticity Checker (TAC) http://wordpress.org/extend/plugins/tac/ 14
Mesures de base... pour votre site 4) Changez le nom du compte Administrateur... modifiez toujours les fonctionnements par défaut Une simple commande SQL permet de le faire : UPDATE wp_users SET user_login='webmasterdemonsite' WHERE user_login='admin'; Ou en procédant via l'interface d'administration : Créez un nouveau compte avec un identifiant vraiment unique, Donnez à ce compte tous les droits d'administration, Déconnectez vous pour vous reconnectez avec le nouveau compte, Effacez l'ancien compte "admin". 15
Mesures de base... pour votre site 5) Vérifiez les droits de vos fichiers et répertoires... et modifiez les pour n'accorder que le minimum Seul le propriétaire doit disposer du droit d'écriture ce qui se traduit par : 755 pour les répertoires (rwxr xr x) 644 pour les fichiers (rw r r ) De simples commandes bash permettent de le faire : find [Racine_Du_Site] type d exec chmod 755 {} \; find [Racine_Du_Site] type f exec chmod 644 {} \; 16
Mesures de base... pour votre site 6) Protégez l'administration et la configuration du site... plusieurs actions sont possibles... et cumulables Remontez le fichier wp-config.php d'un répertoire mv public_html/monsite/wp config.php public_html/wp config.php Protégez le fichier wp-config.php via le.htaccess # protect wpconfig.php <files wp config.php> order allow,deny deny from all </files> Protégez wp-admin via le.htaccess et.htpasswd http://code.google.com/p/apache-htaccess-wp/ 17
Mesures de base... pour votre site 7)... plus loin dans la protection de l'administration Limiter l'accès de l'administration à certains PC par un fichier.htaccess dans le répertoire wp-admin AuthUserFile /dev/null AuthGroupFile /dev/null AuthName "Administration Access Control" AuthType Basic order deny,allow deny from all # IP address Whitelist # allow from [Votre_Adresse_IP_Fixe] allow from 88.169.123.123 Forcer l'accès en SSL (URL en https://) pour ne pas transmettre votre mot de passe en clair sur Internet 18
Mesures de base... pour votre site 8) Auditer soi-même régulièrement son propre site... parce que l'insécurité évolue en permanence Vérifiez que le nouveau plugin que vous installez ne contient rien de suspect... Choisissez bien vos sources de composants. Installez Exploit Scanner http://wordpress.org/extend/plugins/exploit-scanner/ Vérifiez que rien ni personne n'a modifié les fichiers que vous avez installés et contrôlés... Installez WordPress File Monitor Plus http://wordpress.org/extend/plugins/wordpress-file-monitor-plus/ 19
Exploit Scanner Mesures de base... pour votre site Ce plugin analyse le code et ne produit que des alertes en les qualifiant selon la gravité qu'elles peuvent représenter. Ce rapport doit être exploité avec beaucoup de bon sens... et une certaine compétence. http://wordpress.org/extend/plugins/exploit-scanner/ 20
Mesures de base... pour votre site WordPress File Monitor Plus http://wordpress.org/extend/plugins/wordpress-file-monitor-plus/ 21
Mesures de base... pour votre site 9) Sauvegardez très régulièrement votre site... et conservez une copie à l'extérieur du serveur Sauvegardez... Sauvegardez... Sauvegardez TRES régulièrement!!! 22
BackUpWordPress Un plugin d'automatisation... parmi beaucoup d'autres... Mesures de base... pour votre site Peut transmettre la sauvegarde par courriel (en plusieurs parties) Gère une rotation des archives (ne conserve que les N dernières) Maintient plusieurs configurations avec une planification distincte pour chacune d'elle http://wordpress.org/extend/plugins/backupwordpress/ 23
Mesures de base... pour votre site 10) Mettez en place une veille technique dédiée... d'autres extensions liées à la sécurité existent Limit Login Attempts Permet de limiter le nombre de tentatives de connexion http://wordpress.org/extend/plugins/login-lockdown/ BulletProof Security Plugin "tout en un" plutôt bien fournit en outils http://wordpress.org/extend/plugins/bulletproof-security/ Secure WordPress Un autre plugin regroupant plusieurs fonctionnalités http://wordpress.org/extend/plugins/secure-wordpress/ etc. 24
Mesures de base pour votre informatique (1) Ayez une informatique personnelle saine, n'oubliez pas que vous êtes : "le maillon faible" Maintenez votre poste de travail à jour (et pas seulement le système, mais tous les logiciels installés) Utilisez des connexions et des protocoles sûrs et chiffrés (travaillez toujours de chez vous, en HTTPS, sftp ou SSH plutôt que HTTP et FTP) Utilisez des câbles plutôt que le Wifi (sinon, sécurisez le en WPA2-TKIP avec un mot de passe fort) Évitez Smartphone et Tablette pour faire de l'administration (tout ce qui passe par ces appareils est tracé par des tiers...) Tout ça!! 25
Mesures de base pour votre informatique (2) Bonus pour les postes Windows (... un maillon encore plus faible) Utilisez un anti-virus performant et toujours à jour (une fonction pare-feu peut également être très utile) Utilisez Firefox, oubliez Chrome et IE 7, 8, 9, etc. (il existe Opéra et Chromium...) Installez AdBlock et Ghostery (évitez trop d'extensions liées à un usage "privé") Votre PC est un outil de travail... ne faites pas autre chose avec, ne jouez pas, surfez "safe", et surtout : sauvegardez régulièrement ses données!! Aie!! J'ai tout faux!! 26
Que faire si votre site est compromis? (1) Malgré toutes vos précautions, votre site s'est fait "pirater"... Restez calme! Paniquer va aggraver la situation Mettez immédiatement votre site hors ligne Faites un double de la dernière sauvegarde et sauvegardez le site "en l'état" pour analyse. Au secours!!! 27
Que faire si votre site est compromis? (2) Modifiez tous vos mots de passe ; et notamment celui de la base de données Analysez vos données (en ligne et dans l'export MySQL) Réinstallez un Wordpress "nu" (sans plugins et sans thèmes) et connectez le à la base Réinstallez les plugins d'origine et votre thème (depuis la dernière bonne sauvegarde) On ne passe plus 28
Que faire si votre site est compromis? (3) Prendre des conseils sur des sites de confiance : Le Codex dispose d'une page dédiée : http://codex.wordpress.org/faq_my_site_was_hacked De nombreux guides existent sur internet : http://www.marketingtechblog.com/wordpress-hacked/ http://www.journaldunet.com/developpeur/php/wordpress-pirate-comment-faire-face et... Avant de remettre votre site en ligne, vérifiez le, et testez le!! On-line scanner : http://sitecheck.sucuri.net/scanner/ 29
Merci de votre attention C'est l'heure des Questions / Réponses Sources : http://blog.sucuri.net/ http://strangework.com/... et bien sûr : http://wordpress.org/ contact@ordilibre.com Photos: Sharon Dominick istockphoto.com 30