Beruflich Dokumente
Kultur Dokumente
23/09/2013
Qui suis-je ?
Dveloppeur de lextension AllEvents; gestionnaire dvnements pour Joomla! Modrateur Joomla!France Membre fondateur de la Christophe Avonture JUG! Wallonie
http://allevents.avonture.be/fr/qui-suis-je.html
23/09/2013 AllEvents, a Joomla Component by Christophe Avonture http://allevents.avonture.be 2
Obfuscation
Lobfuscation nest pas proprement parler une technique de scurit : il sagit de ne pas montrer une information, de la rendre invisible. Cacher le meta generator de la page, le numro de version de Joomla!, ne change strictement rien la scurit intrinsque du site; cela narrtera pas les hackeurs qui font du brute-force . Faut-il laisser ces informations sur le net ? Publiquement ? Je pense que non. Moins le pirate en saura sur le site, plus il devra en apprendre et plus on aura de chance de dtecter son activit.
23/09/2013 AllEvents, a Joomla Component by Christophe Avonture http://allevents.avonture.be 5
Prrequis
23/09/2013
Le B.A.BA
23/09/2013
Extensions, modules,
Limitez le nombre au maximum; dsinstallez tout qui nest pas utilis. Mettez jour vos extensions, plugins et modules. Consultez rgulirement les sites de leurs auteurs. Inscrivez-vous aux fils RSS ou fanpage. Noubliez pas de mettre jour votre template ds lors quune nouvelle version est disponible. Utilisez cUpdater; il sagit dun plugin qui vous envoie un email pour vous avertir quune mise jour dune extension, module, est disponible.
23/09/2013 AllEvents, a Joomla Component by Christophe Avonture http://allevents.avonture.be 12
23/09/2013
13
Hbergeur
Analysez loffre de votre hbergeur et comparez ce quil propose en matire de scurit. Tous ne se valent pas, loin de l. Lun des meilleurs tant SiteGround.com. Faites la comparaison... Assurez-vous davoir la dernire version de PHP (Sept 2013 : 5.3.27, 5.4.19 ou 5.5.3) Il est parfois possible de choisir sa version depuis son panneau de contrle. Lire .htaccess Activer PHP 5.4
23/09/2013 AllEvents, a Joomla Component by Christophe Avonture http://allevents.avonture.be 14
Compte admin
Veuillez ne jamais utiliser un compte nomm admin . Si vous en avez un, modifier son statut de super admin public puis dsactivez-le (technique du honeypot ). Vous pourriez surveiller les tentatives
de connexion avec ce compte.
Limitez au maximum le nombre de comptes de type admin. Apprenez grer les ACLs afin que les accs soient strictement ceux requis.
23/09/2013 AllEvents, a Joomla Component by Christophe Avonture http://allevents.avonture.be 15
23/09/2013
16
Installation dextensions
Jamais sans les avoir testes en local ! Faites un backup de votre site auparavant Vrifier sur la Vulnerable Extensions List si lextension nest pas mentionne. Limitez au maximum le nombre dextensions installes sur votre site de production.
23/09/2013
17
23/09/2013
18
meta name="generator"
Certains scripts tentent de reprer les sites Joomla!. Une des techniques est danalyser le code de la page la recherche du "generator. En supprimant ce code, vous rendez donc un peu plus difficile de cibler votre site. Pour cela, ditez le fichier index.php de votre template et ajoutez la ligne ci-dessous aprs la gnration des metas de Joomla.
<?php JFactory::getDocument()->setGenerator(''); ?>
Si vraiment, vous ny arrivez pas, utilisez le plugin Generator Meta Tag for Joomla
23/09/2013 AllEvents, a Joomla Component by Christophe Avonture http://allevents.avonture.be 19
Firefox/Chrome - Addon
Installez le plugin Joomla-version-check pour Firefox ou Chrome : si votre numro de version est dvoil, votre site dvoile trop dinformations : Interdisez l'accs aux fichiers .xml de l'administration
23/09/2013
20
Protgez /administrator
Utilisez un fichier .htpasswd pour protger laccs au dossier /administrator. Exemple de fichier .htpasswd :
<IfModule mod_auth.c> AuthUserFile /home/path/.htpasswd AuthName Ami ou ennemi ? Veuillez vous identifier" AuthType Basic <Limit GET POST> Require valid-user </Limit> </IfModule>
http://perishablepress.com/htaccess-password-protection-tricks/ Vous pouvez gnrer un fichier .htpasswd depuis http://aspirine.org/htpasswd.html
AllEvents, a Joomla Component by Christophe Avonture http://allevents.avonture.be
23/09/2013
21
23/09/2013
22
23/09/2013
25
Cron jobs
Si vous avez accs au cron de votre serveur, ajouter une tche quotidienne telle que celle ci-dessous qui vous enverra un email si un fichier a t modifi dans les dernires 24 heures (except le dossier cache du site) :
find /home/account_name/public_html/ -path /home/account_name/public_html/cache -prune -o -type f -ctime -1 -exec ls -ls {} \;
23/09/2013
27
Base de donnes
23/09/2013
28
jos_
Sous Joomla 1.5, le prfixe jos_ tait propos par dfaut et peu de personnes prenaient le temps de le changer. Grosse erreur car, dans ce cas, le hackeur sait comment se nomme la table des utilisateurs : jos_users. Et il peut satteler lattaque (SQL injection). Si cest votre cas, utilisez la fonctionnalit Database table prefix editor de Admin Tools pour changer ce prfixe sans dlai.
23/09/2013 AllEvents, a Joomla Component by Christophe Avonture http://allevents.avonture.be 30
Compte admin
A linstallation de votre site Joomla, le premier utilisateur cr dans la base de donnes est un utilisateur de type super-admin. Idalement, crez lun ou lautre utilisateur puis un nouveau compte admin qui sera votre compte admin : dsactivez le premier. But : que le premier utilisateur de votre table xxx_users ne soit pas un super-admin quun script pourrait trop facilement dtecter.
23/09/2013 AllEvents, a Joomla Component by Christophe Avonture http://allevents.avonture.be 31
ID 42 ou 62
Sur les anciennes installations de Joomla!, le compte super-admin tait toujours le compte ID 42 (ou 62). Vrifiez si cest votre cas et si oui, crez-vous un nouveau compte super-admin et dsactivez lancien. Admin Tools permet de changer le ID de votre compte admin mais attention, faites-le dabord sur un site local et vrifiez tout car le ID nest pas chang dans tous les composants (p.ex. pas dans AllEvents, Kunena, ) et cela va induire de gros problmes si vous avez dj du contenu.
23/09/2013 AllEvents, a Joomla Component by Christophe Avonture http://allevents.avonture.be 32
Outils
23/09/2013
33
FTP
De prfrence, paramtrez vos connexions en SFTP (ou SSH). Si vous utilisez FileZilla, il est impratif de protger laccs aux fichiers .xml. Cet article propose une solution :
http://allevents.avonture.be/fr/joomla/item/372-filezilla_secured
23/09/2013
34
23/09/2013
37
CrawlProtect
CrawlProtect est un logiciel gratuit et externe Joomla! et qui ajoute une couche de protection aux pages web de Joomla! CrawlProtect bloque un grand nombre dattaques type injection de code / SQL. Il ajoute un grand nombre de rules au fichier .htaccess ainsi que vous propose dajouter une ligne de code dans le fichier index.php de votre site pour assurer le suivi des tentatives dattaque.
23/09/2013 AllEvents, a Joomla Component by Christophe Avonture http://allevents.avonture.be 38
EyeSite
EyeSite est un composant backend qui va stocker dans la base de donnes de votre site le CRC de chaque fichier prsent sur le site un moment T. Une seconde comparaison un instant T2 permet alors de comparer la liste des fichiers ayant t modifis.
23/09/2013
39
jHackGuard
jHackGuard est un plugin gratuit dvelopp par lhbergeur SiteGroud.com et qui permet, linstar de CrawlProtect, de protger son site contre des tentatives dinjection, des remote URL/File inclusions , remote code execution ,
23/09/2013
40
eXtplorer
Des composants comme eXtplorer sont trs pratiques lorsque vous navez pas un accs FTP votre site de production mais prsente une relle menace car si un intrus parvient se connecter sur votre administration, ce type de composant lui donne accs lentiret de votre site; scurit .htaccess en moins. Si vous en avez besoin, installez le composant, faites ce que vous deviez faire puis dsinstaller-le sans dlai.
23/09/2013 AllEvents, a Joomla Component by Christophe Avonture http://allevents.avonture.be 41
Outils de supervision
Admincredible (payant, version beta gratuite rachet par Watchful.li en septembre 2013) Watchful.li (payant) propose un dashboard online qui reprend tous vos sites et permet, entre autre, de les mettre jour ainsi que de planifier lexcution de vos backups.
Offre 12 mois gratuit; plan Starter Code JDCH13 Valable entre le 21/09/2013 et le 21/10/2013
23/09/2013
42
chmod
23/09/2013
43
chmod - Introduction
Le chmod dfinit le niveau daccs au fichier. Un chmod 777 revient cocher toutes les cases et donc que tout le monde peut lire, excuter et modifier le fichier. Si votre but est dtre hack, bingo! Un chmod 440 est idal pour le fichier configuration.php : seul le propritaire (vous et donc Joomla) et le groupe (votre hbergeur) peut y accder en lecture seule. Vous garantissez donc que le fichier ne pourra pas tre modifi par quiconque moins de pouvoir changer le chmod.
23/09/2013 AllEvents, a Joomla Component by Christophe Avonture http://allevents.avonture.be 44
chmod
Le chmod dun dossier devrait tre 750 (ou 755) et celui dun fichier est gnralement 640 (ou 644). Modifiez le chmod 550 de votre dossier /templates/*yourtemplate* pour rendre impossible dcrire et crer un fichier dans ce dossier trs sensible. Testez, testez et testez encore, sur un site de tests test.
La version gratuite de Admin Tools permet de grer facilement les chmods depuis Joomla!. CrawlProtect le permet aussi depuis son interface web.
23/09/2013
45
configuration.php
Changer le chmod du fichier en 440 afin que personne ne puisse crire dedans. Si vous devez modifier la configuration gnrale de votre site, changez le chmod en 640 puis remettez 440 aprs votre changement.
23/09/2013
46
index.php
Ce fichier doit toujours tre en chmod 440. Pensez que vous avez deux index.php : celui prsent dans la racine de votre site et celui qui correspond votre template utilis (dans le dossier /templates/*yourtemplate*) Si vous devez modifier le fichier, changer le chmod en 640 puis remettez 440 aprs vos changements.
23/09/2013 AllEvents, a Joomla Component by Christophe Avonture http://allevents.avonture.be 47
23/09/2013
48
23/09/2013
51
.htaccess
23/09/2013
52
.htaccess
Lauteur de Akeeba Backup et Admin Tools, Nicholas K. Dionysopoulos, propose un fichier .htaccess optimis et apportant une excellente couche de scurisation :
https://github.com/nikosdion/master-htaccess
23/09/2013
54
23/09/2013
55
( ne pas utiliser dans votre dossier / et /administrator sauf si vous souhaitez que lutilisateur mentionne obligatoirement index.php dans lurl)
Forcer index.php afin que le serveur nexcute pas, p.ex., index.html, default.htm,
DirectoryIndex index.php
AllEvents, a Joomla Component by Christophe Avonture http://allevents.avonture.be 23/09/2013 56
23/09/2013
57
Testez, testez, testez. Cette mesure augmente fortement la scurit de votre site!
23/09/2013 AllEvents, a Joomla Component by Christophe Avonture http://allevents.avonture.be 58
RewriteCond %{HTTP_USER_AGENT} ^BadGuy [OR] RewriteCond %{HTTP_USER_AGENT} ^Zeus RewriteRule .* - [F] http://docs.joomla.org/Htaccess_examples_(security), Block bad user agents
23/09/2013
60
http://ralph.davidovits.net/internet/se-proteger-des-pirates-ethackers.html#htaccess #5
23/09/2013 AllEvents, a Joomla Component by Christophe Avonture http://allevents.avonture.be 61
http://ralph.davidovits.net/internet/se-proteger-des-pirates-ethackers.html#htaccess #8
23/09/2013 AllEvents, a Joomla Component by Christophe Avonture http://allevents.avonture.be 62
.htaccess - Fingerprint
Interdisez lutilisation de ?tp=1, ?templage=nom_template ou encore ?tmpl=offline Ajoutez dans votre .htaccess si ncessaire ces lignes :
RewriteCond %{QUERY_STRING} (&|%3F){1,1}tp= [OR] RewriteCond %{QUERY_STRING} (&|%3F){1,1}template= [OR] RewriteCond %{QUERY_STRING} (&|%3F){1,1}tmpl= [NC] RewriteRule ^(.*)$ - [R=404,L]
http://magazine.joomla.org/issues/issue-oct-2010/item/214-only-a-ninja-cankill-another-ninja
23/09/2013 AllEvents, a Joomla Component by Christophe Avonture http://allevents.avonture.be 63
Pour les sites J2.5+, activez PHP 5.4 en ajoutant la ligne cidessous dans votre .htaccess
AddHandler application/x-httpd-php54 .php .php5 .php4 .php3 (Attention, cette instruction varie dun hbergeur un autre; parfois cest SetEnv PHP_VER 5_4)
!!! Testez votre site pour tre sr quil fonctionne correctement avec cette version-l de PHP
23/09/2013 AllEvents, a Joomla Component by Christophe Avonture http://allevents.avonture.be 64
23/09/2013
65
php.ini
23/09/2013
66
Safe Mode
Contrairement ce quon pourrait croire, activer le safe mode dans php.ini nest pas une mesure de scurit. Safe Mode est dailleurs dprci depuis PHP 5.3 et supprim en 5.4. Si votre site est configur en Safe Mode ON, dsactivez cette option. Lire : http://us3.php.net/manual/en/features.safe-mode.php#ini.safe-mode
23/09/2013
68
index.php?=PHPE9568F34-D428-11d2-A76900AA001ACF42
Voyez-vous le logo ? Si oui, oups En affichant les en-ttes de la page; on dcouvre le numro de version de PHP utilise sur le site
23/09/2013 AllEvents, a Joomla Component by Christophe Avonture http://allevents.avonture.be 69
23/09/2013
71
23/09/2013
73
23/09/2013
75
Lectures additionnelles
23/09/2013
76
Lectures additionnelles
Forum Scurit Joomla France Scurit Joomla Aide-Joomla.com Votre site Joomla! est-il bien scuris ? Joomla Security Checklist Fortifying your Joomla! Website Joomla Security Feed Simple Security Guide, part 1 & part 2 How to keep your Joomla-based website secure ? Top 10 Stupidest Administrator Tricks
AllEvents, a Joomla Component by Christophe Avonture http://allevents.avonture.be 77
23/09/2013
23/09/2013
78