aeSecure est une solution logicielle de protection et d'optimisation de sites web Apache. Il s'agit d'une interface de gestion permettant de définir des règles de protection ou d'optimisation pour garantir l'intégrité de votre site web Apache, que ce soit un CMS (Joomla!®, Drupal, WordPress, Prestashop, ...) ou un code autres (php propriétaire, html, ...).
Le diaporama vise à faire connaissance des outils d'aeSecure, les étapes pour l'installer et le configurer ainsi que différents conseils comme, par exemple, la liste des options qu'il convient d'activer sur la version gratuite ainsi que les fonctionnalités additionnelles pour la version Premium / Pro.
Les outils tels que phpinfo, penetration testing, fichiers ayant été modifiés récemment, ... y sont mentionnés de même qu'une explication détaillée de l'interface de gestion multi-sites qui permet de gérer, depuis une seule page web, l'ensemble de ses sites "aeSécurisés".
Les outils d'analyses des fichiers logs Apache et du logiciel de nettoyage de sites vérolés y sont également décrits.
Enfin, ce diaporama explique également comment identifier un blocage résultant d'une règle de sécurité d'aeSecure et, le cas échéant, vous explique comment lever le blocage afin de créer une exception pour votre site.
aeSecure est un logiciel Freemium disponible à l'URL http://www.aesecure.com et disponible en plusieurs langues (Français, Anglais, Portugais, Brésilien, Russe, ... et partiellement en Arabe, Italien, Espagnol, ...). D'autres langues s'ajouteront dans le futur.
2. Qui suis-je ?
• Développeur d’aeSecure, suite de protection et d’optimisation
de sites web Apache
• Ancien développeur d’AllEvents; gestionnaire d’évènements pour
Joomla!®
• Modérateur Joomla! France (cavo789)
• Membre fondateur de la JUGWallonie
http://www.aesecure.com/fr/accueil/contact.html
3. Et lui, c’est Nono 2
Ce beau jeune homme à gauche se
prénomme Nono et il veillera à la
sécurisation de votre site ainsi que de son
optimisation.
4. A l’issue de cet atelier
• vous saurez comment installer aeSecure et vous aurez appris à le configurer
pour accroître la sécurité de votre site;
• vous apprendrez comment identifier un éventuel blocage et ce qu’il faut
faire pour le lever;
• vous aurez vu les différentes composantes d’aeSecure.
Vous verrez également en œuvre les fonctions Premium et Pro telles que
l’optimisation des sites, la fonction « Charger depuis aeSecure » et
l’interface multi-sites.
5. aeSecure, c’est quoi ?
aeSecure est un pare-feu logiciel (WAF) permettant de sécuriser et optimiser
tout site web tournant sous Apache : Joomla!, Drupal, WordPress, Prestashop,
SPIP, VTiger, Typo3, Magento, Koken, …, php et même html : dès lors que le
site est sous Apache, aeSecure le protégera et l’optimisera.
Il s’agit d’un logiciel Freemium : version gratuite disponible.
http://www.aesecure.com/fr/telechargement.html
6. A l’occasion du JoomlaDay™
France 2015, 20% de
réduction sur toutes les offres
d’aeSecure (logiciel et
services).
Le code à utiliser lors de la
finalisation de la commande
est JDAY15FRJDAY15FR.
(valable jusqu’à 20 mai 2015)
7. Prérequis
Prérequis techniques
•Serveur web Apache
•PHP v5.2 minimum
Compétences techniques
aeSecure se voulant résolument pédagogique, il est destiné à tout-un-
chacun et non à des experts en sécurité. En lisant les introductions et
les explications détaillées, vous comprendrez la finalité de chaque
fonctionnalités et leur mise en œuvre ne requérant qu’un seul clic.
8. Vidéo de présentation - YouTube
https://www.youtube.com/channel/UCcWKn7bn14libVhcf0Vu_zQ
9. Site de démo en ligne
• Démo totalement fonctionnelle
• Aucune action n’est réellement effectuée; juste simulée
• Certains écrans sont toutefois bloqués pour des raisons de
confidentialité
http://www.aesecure.com/_demo/aesecure/setup.php?lang=fr-FR
10. Internationalisation
• Langue originale : Française
• Traduction terminée : Anglais, Portugais (Brésil & Portugal) et
Russe
• En cours de finalisation : Italien (75%)
• En cours : Espagnol et Arabe (20%)
Aidez-moi à traduire aeSecure
et recevez une version Pro;
à vie
11. Pare-feu – Firewall - WAF
• Un pare-feu tel qu’aeSecure est mis en œuvre au travers du
fichier .htaccess de votre site Apache.
• A chaque requête vers votre site, que ce soit vers une page, un
fichier css, une image, … à chaque fois, le fichier .htaccess est
exécuté. Ce faisant, les « règles » (rules) d’aeSecure sont lues et
exécutées.
• Ces règles analysent le contexte (l’URL et ses paramètres, le
dossier ciblés (p.ex. /images), l’origine de la requête, …) afin de
déterminer si elle est saine ou suspecte.
12. Pare-feu – Firewall - WAF
Si l’URL est jugée suspecte, elle est stoppée avant même que votre serveur n’ait exécuté
l’action (Joomla!® n’en saura rien, la requête étant stoppée en amont).
13. .htaccess et php.ini
La protection mise en place par aeSecure se fait au travers de deux
fichiers de configuration : .htaccess et php.ini
Ces deux fichiers se trouvent à la racine de votre site.
Il faut que votre hébergeur soit configuré de telle manière que ces
fichiers soient lus et pris en compte (c’est presque toujours le cas).
Remarque : aeSecure positionne des fichiers .htaccess dans d’autres dossiers que le dossier racine
(p.ex. /administrator, /images, /libraries, /media, /tmp, …) mais un seul php.ini; à la racine.
14. aeSecure, quels blocages ?
• Interception d’attaques de type SQL Injection, XSS, LFI/RFI (file
inclusion);
• Blocage d’URLs provenant de certains referrer / adresses IP;
• Blocage sur base de mots clef dans l’URL;
• Interdiction d’exécution de code php dans certains dossiers (p.ex.
/images);
• Principe de liste blanche ou protection par mot de passe pour l’accès à
des dossiers spécifiques;
• Interdiction d’accès au fichier robots.txt hormis pour les bots autorisés;
• …
15. aeSecure, quelles optimisations ?
• Activation du mode Google PageSpeed si présent sur le serveur;
• Activation de la compression gzip (si présent sur le serveur);
• Activation du cache des fichiers statiques;
• Minification des fichiers css, javascript et html;
À venir dans la version 2.1 (Juin 2015) d’aeSecure,
• Réorganisation du code (css au début, javascript à la fin)
• Ajout des attributs height et width des images
• Redimensionnement des images
• Inline des petites ressources (css, js, images)
• Lazyload des images,
• …
16. Installation (1/3)
1. Rendez-vous à l’URL
http://www.aesecure.com/fr/telechargement.html
2. Téléchargez la version gratuite ou identifiez-vous pour
acquérir/télécharger une version payante.
La version gratuite est illimitée dans le temps et convient parfaitement pour sécuriser un site.
La version Premium offre plus de fonctionnalités ainsi que l’optimisation des sites. Le support est
disponible à partir de la version Premium+.
La version Pro reprend l’interface multi-sites, le script crontab et le max. de fonctionnalités.
http://www.aesecure.com/fr/documentation/rapide/telechargement.html
17. Installation (2/3)
3. Sélectionnez l’option « Enregistrer le fichier » et cliquez sur Ok
4. En local, sauvez le fichier aesecure.php à la racine de votre site web.
En distant, lancez votre client FTP, connectez-vous à votre site et
sauvez le fichier à la racine de votre site web.
18. Installation (3/3)
5. Le fichier aesecure.php étant à la racine de votre site, accédez-y
grâce à votre navigateur préféré : http://votresite/aesecure.php
6. À cet instant, aeSecure va être téléchargé et installé sur votre
site. Après deux ou trois secondes, vous verrez apparaître
l’écran de fin d’installation et l’URL sera changée en p.ex.
http://votresite/aesecure/setup.php?BMXCq-z4JHw-yu80T-1YR2U-
Remarque : le fichier http://votresite/aesecure.php est supprimé automatiquement.
19. Selon votre abonnement, sélectionnez
la version à installer sur le site
Confirmez avoir lu les deux remarques
Cliquez ici pour finaliser l’installation
20. Accès à votre écran de configuration
L’URL de votre écran de configuration est importante, veuillez la
sauvegarder dans p.ex. vos favoris.
http://votresite/aesecure/setup.php?BMXCq-z4JHw-yu80T-1YR2U-Upsdb-w7Auw
Cette valeur est votre « clef ». C’est grâce à elle que votre accès à
aeSecure sera autorisé. Ne la perdez pas; vous en aurez besoin à
chaque accès à votre interface aeSecure.
http://www.aesecure.com/fr/documentation/faq/19-clef-incorrecte.html
21.
22. Découverte de l’interface
• aeSecure est « mono-écran » : toute la configuration se fait au travers de l’écran
setup.php.
• Pour chaque fonctionnalités, vous trouverez au minimum trois onglets:
1. Introduction – La raison de cette fonctionnalité; en quelques mots
2. Explications détaillées – Pourquoi vous devriez appliquer cette fonction; explications
longues et détaillées
3. Protéger (parfois « Optimiser » ou « Éditer ») – Activation de la fonctionnalité
23. Must, Good, Extreme or Need ?
Chaque fonctionnalité dispose d’un ruban permettant de savoir si vous devriez l’activer.
Ruban Explications
Must Impératif; vous devez l’activer (options 1.1 et 1.2)
Good Généralement, il s’agit d’une fonctionnalité à activer mais non obligatoire
Extreme Renforce fortement la sécurisation du site mais pourrait gêner certaines actions (ex.
2.4 Bloquer les uploads)
Need L’utilisation de ces options va varier selon vos sites et le moment (ex. 1.9 Activation
du mode maintenance)
24. Must – Obligatoire : 1.1 et 1.2
Seules deux fonctionnalités sont obligatoires et doivent être activées pour
que la protection d’aeSecure soit opérationnelle : 1.1 et 1.2
25. Activation d’une fonctionnalité
Cliquez sur l’onglet « Protéger! » (ou Optimiser!); vous verrez apparaître un
bouton style interrupteur : soit il est actif (fond vert) soit inactif (fond rouge)
Pour activer la protection, il suffit donc de cliquer sur le bouton « Installé »
pour que cet état devienne actif. Notez que le texte peut parfois varier selon la fonctionnalité.
26. Description des fonctionnalités
L’onglet « Explications détaillées »
disponible pour chaque fonctionnalités
reprend un long texte explicatif avec, à
chaque fois, un lien vers une explication
plus longue sur le site d’aeSecure.
La documentation est immédiatement
disponible à l’URL ci-dessous :
http://www.aesecure.com/fr/documentation/fonctionnalites.html
27. Fonctionnalités recommandées version Free
• 1.1 Mise en place du fichier .htaccess de aeSecure (activation obligatoire)
• 1.2 Protection des dossiers (activation obligatoire)
• 1.3 Masquer les erreurs Apache (interdire l’affichage)
• 1.7 Interdiction d’accès à certains fichiers par URL (bloquer p.ex. /admin.php, /configuration.php,
/upload.php, /hack.php, …)
• 2.2 Protection par mot de passe (Afin de protéger les accès aux dossiers /administrator et /aesecure)
• 2.3 Limite les robots et le spam
• 2.6 Bloque l'accès aux fichiers et dossiers cachés
• 4.2 Bloquer les inscriptions natives de Joomla!® (si cela est possible selon l’objectif de votre site)
• 4.3 Protéger les fichiers de l’administration de Joomla!®
• 7.1 Réécriture des URLs (activer la réécriture)
• 7.2 Force le www (ou non) dans les URLs (forcer le www)
28. Fonctionnalités Premium recommandées
• 1.6 Blocage sur base d'éléments dans l'URL (bloquer p.ex. un dossier comme /php-ofc-library, le mot streaming, une tâche comme task=upload, …)
• 2.1 Restreindre l'accès à un dossier selon l'adresse IP (idéal si vous avez une IP fixe)
• 2.4 Bloque l’upload de fichiers (mais strictement sur les sites « dormants »)
• 2.5 Bloque l'indexation de certains fichiers
• 2.7 Bloque l'accès au fichier robots.txt aux curieux
• 2.8 Bloque l’accès sur base du ‘user-Agent’ (p.ex. BOT for JCE ou MJ12bot)
• 4.4 Bloquer l’accès à certains composants de Joomla!® (p.ex. com_jdownload, com_k2, com_oziogallery, … dès lors qu’ils ne sont pas
installés sur votre site)
• 8.1 Tirer profit du module mod_pagespeed ou
8.2 Active la compression côté serveur et
8.3 Spécifie la durée de vie des fichiers statiques (8.2 et 8.3 déjà inclus dans 8.1)
• 8.4 « Minification » des fichiers CSS, HTML et javascript (css et html oui, javascript : vérifier que cela n’engendre aucun dysfonctionnements
de votre site)
En supplément des fonctionnalités gratuites; voici celles qu’il est opportun
d’activer sur les sites protégés avec la version Premium :
29. 1.1 – Mise en place du fichier .htaccess
Votre fichier existant est sauvegardé dans le dossier
/aesecure/setup/backup et il est intégré dans le nouveau fichier
mis en place : votre configuration est conservée.
Vous pourrez l’éditer grâce à l’option 1.4 d’aeSecure.
Positionne le fichier .htaccess d’aeSecure à la racine de votre site
(obligatoire)
30. 1.2 – Protection des dossiers
1. Selon le type de votre site web (Joomla!, WordPress, …), un fichier
.htaccess sera placé dans des dossiers spécifiques comme /images,
/media, /tmp, etc. afin d’interdire l’exécution de codes php.
2. Génère un fichier index.html dans les dossiers où il n’y en a pas
3. Crée un fichier php.ini à la racine du site web.
Positionne de multiples fichiers .htaccess dans un grand nombre de
dossiers; crée des fichiers index.html et génère un fichier php.ini à la racine
du site (obligatoire)
31. 2.1 ou 2.2 – /administrator & /aesecure
Si vous avez une adresse IP fixe, la solution la plus
sécurisée est la fonctionnalité 2.1 qui permet de
restreindre l’accès aux dossiers à votre seule IP (ou vos
IPs).
Si vous n’avez pas une adresse dynamique ou êtes
plusieurs à travailler sur le site, l’option 2.2 permettra
de forcer l’utilisateur à introduire un login / password au
niveau d’Apache; comme illustré ici à droite.
Songer à protéger l’accès à vos dossiers sensibles : /administrator
et /aesecure (et d’autres peut-être).
32. 3.1 – Fichiers et dossiers
L’option 3.1 permet de gérer les
permissions (chmod) mais aussi de
visionner, supprimer ou
télécharger un fichier.
Elle permet aussi de télécharger
une archive d’un dossier (sous-
dossier inclus).
Sur fond vert : le chmod préconisé
pour ce fichier/dossier.
33. Nono en action : accès refusé
Lorsqu’un accès est refusé,
aeSecure affiche une page
« accès refusé » avec un
message court et un code (ici, le
code 148).
L’activation d’une fonctionnalité
comme 1.1 génère un grand
nombre de règles qui peuvent
correspondre à plusieurs
blocages.
34. Intervenir en cas de blocage trop strict
• Les codes sont, volontairement, « aléatoires » : ils ne sont pas mis
en relation avec la fonctionnalité activée ni croissant.
• Pour retrouver la programmation du blocage, le plus simple est
d’éditer le fichier nommé .htaccess se trouvant à la racine de
votre site et de faire une recherche sur « s=xxx » où xxx est le
code à rechercher (p.ex. 148). Pour cela, connectez-vous à votre
site par FTP et éditer le fichier .htaccess que vous trouverez à la
racine de votre site.
35. Identifier le bloc de règles (les « rules »)
Fonctionnalité qui permet d’activer / désactiver ce bloc
Cas simple : en désactivant la fonctionnalité 1.7, on désactive le code 148.
36. Code 490 – Attaque de type shell détectée
Ici, le code 490 est
mentionnée car l’URL
contient une remontée de
dossier (../../) qu’aeSecure
bloque (ce type d’URL est
suspecte et pourrait mener
à des attaques type « file
inclusion » ou de
découverte (téléchargement
fichiers systèmes p.ex.)).
37. Modifier une règle manuellement
Si vous voudriez autoriser ce type d’URL, il faut désactivez la
protection; sachant que le code est 490 :
•Recherchez « s=490 » avec votre éditeur de texte
•Vous verrez la dernière ligne d’un bloc (RewriteRule … s=490)
•Soit vous commentez tout le bloc si vous n’êtes pas sûr de vous (=>
vous affaiblissez la sécurité de votre site);
•Soit vous identifiez la ligne et vous la commentez
38.
39. Modifier une règle manuellement
Attention, si vous modifiez le fichier .htaccess, deux points sont
primordiaux sous peine d’une erreur 500 :
•Utilisez un éditeur de texte « brut »; sans mise en page, tel que
Notepad.
•Sauvez au format UTF-8 No BOM
Sous Windows, Notepad++ fait très
bien « le job ».
40. Accès refusé - Logging
• Chaque requête stoppée est enregistrée dans un fichier journal
• Le log reprend la date, heure, adresse IP, URL bloquée, le referrer
et un code d’identification
• Vous pouvez décider de recevoir des mails d’alerte ou pas; selon
les codes d’identification
41. Notification email
Selon votre configuration, vous pouvez être
notifié par email lorsqu’aeSecure bloque
une requête.
L’email reprends l’URL requêtée ainsi que
différentes informations comme l’adresse
IP de l’utilisateur, sa localisation sur une
carte et plusieurs informations concernant
la requête et le contexte.
Les mails peuvent être activés en fonction
de certains code d’identification.
42. Outils
Selon votre version (free / premium / pro), le
menu des outils proposera plus ou moins de
fonctionnalités.
Les lignes suivies d’une puce jaune concernent
des outils Premium.
Les lignes bleues des outils Pro
Les autres outils étant disponibles dès la
version gratuite.
46. Optimisation de la vitesse d’affichage du site
En intervenant sur la mise en cache des fichiers statiques ainsi que
la compression de la page; aeSecure permet d’accélérer l’affichage
de votre page web.
Sans devoir mettre les mains
dans le « cambouis », votre site
sera plus rapide et des outils
comme GTmetrix ou dareboost
vous permettront de le
constater.
47. Optimisation de la vitesse d’affichage du site
Avec la prochaine version 2.1, aeSecure ira plus loin dans l’optimisation :
•réorganisation le rendu html en positionnant les scripts css au début de la page,
les scripts js à la fin,
•redimensionnement les images selon la taille choisie pour l’affichage,
•LazyLoad pour le chargement des images,
•ajout des attributs largeur (width) et hauteur (height) dans le code html,
•injection dans la page html des fichiers css et js inférieur à une certaine taille,
•ajout en base64 les petites images dans la page web.
48. Fonction « Charger depuis aeSecure »
Cette fonctionnalité permet de récupérer depuis le site aesecure.com :
•soit une liste de valeurs comme celles des referrers, des user-agents, …
qui auront été identifiés comme malsain par le développeur d’aeSecure,
•soit une mise-à-jour des règles (p.ex. nouvelle programmation pour la
fonction 2.3)
« Charger depuis aeSecure » vous permet aussi de visualiser le code de
chaque fonctionnalités avant de l’appliquer et donc de la personnaliser
par la même occasion.
55. Zone de filtres (liste déroulante
ou zone de recherche)
Infos systèmes
Navigations :
•interface aeSecure du site
•frontend
•backend
Quelques-unes des actions possibles depuis l’interface :
•Voir le log des attaques
•Voir le log des erreurs Apache
•Installer une nouvelle version d’aeSecure
•Prendre un backup du site (fichiers & base de données)
•Afficher la liste des fichiers ayant été modifiés récemment
•…
Liste des options activées sur
le site enfant avec possibilité
de voir le contenu de certaines
valeur (loupe)
Multi-sites – Vue d’ensemble