• Aucun résultat trouvé

Découverte d aesecure. Par Christophe Avonture, développeur d aesecure

N/A
N/A
Protected

Academic year: 2022

Partager "Découverte d aesecure. Par Christophe Avonture, développeur d aesecure"

Copied!
62
0
0

Texte intégral

(1)

Découverte d’aeSecure

Par Christophe Avonture, développeur d’aeSecure

(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 JDAY15FR.

(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-Upsdb-w7Auw

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.

(43)

Outils – Test d’intrusion / hacking (pentest)

(44)

Outils – phpinfo

(45)

Outils – Fichiers ayant été modifiés récemment

(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.

(49)

« Charger depuis aeSecure »; voir le code

Le code de la fonction est chargé depuis aesecure.com.

Ainsi, vous disposez toujours de la

dernière version de ce

code.

(50)

« Charger depuis aeSecure » - Charger les valeurs

En cliquant sur le

bouton, vous obtenez une liste de valeurs qui est maintenue par le

développeur d’aeSecure.

Vous ne devez donc pas analyser vos logs pour en ressortir les attaques fréquentes.

(51)

Interface de gestion multi-sites

• L’interface multi-sites est une fonctionnalité d’aeSecure Pro avec le multi-sites installé.

• Supervision des sites Joomla!®, Wordpress,

Drupal, … (peu importe le CMS; peu importe la version du CMS) au départ d’un seul écran.

• Pour accéder à l’écran, cliquez sur le bouton

« Multi-sites » dans le menu supérieur.

(52)

Multi-sites – Ajouter un site

Pour ajouter un site, cliquez sur Actions puis Ajouter un site

Compléter l’écran d’ajout en donnant l’URL complète vers le site à ajouter

(53)

Multi-sites – Activer un site (1/2)

Après l’ajout, il est plus que probable que le site

apparaisse avec un fond jaune.

Ceci est une mesure de

protection supplémentaire; il vous faut activer la gestion multi-sites sur le site

« enfant ».

Le site « enfant » étant celui qui est surveillé par l’interface multi-sites.

(54)

Multi-sites – Activer un site (2/2)

• Rendez-vous sur votre site « enfant »

• Cliquez sur l’icône Outils puis Options

• Cliquez sur le bouton Sauver au bas de l’écran

• Revenez sur votre multi-sites et rafraichissez la page; le site sera affiché en « vert »

(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

(56)

aeSecure's QuickIcon Administration

Module d’administration permettant l’ajout d’un module « Quick icons » dans

l’admin de Joomla!®

Compatible J1.5 jusqu’à J3.4

http://extensions.joomla.org/extensions/extension/access-a-security/aesecure-s-quickicon-administration-module

(57)

Scan & Nettoyage – Logiciel d’analyse

Un logiciel d’analyse et de nettoyage a été développé en

complément d’aeSecure afin de permettre de nettoyer des sites ayant été hackés; toutefois ce logiciel n’est pas téléchargeable.

Il est exclusivement destiné à un usage personnel dans le cadre de prestations de nettoyage.

Les slides ci-après ont donc une valeur

« informative ».

(58)

Scan & Nettoyage – Résultat partiel d’un scan

(59)

Scan & Nettoyage – Détection d’un hack

• Affichage de la menace

• Icônes d’action pour

« white lister » le fichier ou le supprimer

• Menu contextuel pour décrypter le code,

supprimer une portion du fichier, …

(60)

Analyse de logs Apache

Un logiciel d’analyse de logs Apache a également été développé pour simplifier la lecture des logs et analyser les vecteurs des

attaques. Ce logiciel n’est pas téléchargeable.

Il est exclusivement destiné à un usage personnel dans le cadre de prestations de nettoyage.

Les slides ci-après ont donc une valeur

« informative ».

(61)

Analyse de logs Apache

(62)

http://www.aesecure.com/fr/telechargement.html

http://www.aesecure.com/fr/forum/boite-a-idees.html

Merci pour votre attention !

https://www.facebook.com/aesecure https://twitter.com/aesecure

https://www.youtube.com/channel/UCcWKn7bn14libVhcf0Vu_zQ https://plus.google.com/+Aesecure789

Références

Documents relatifs

DÉCOUVRIR L’ ÉCRIT Identification de formes écrites.. Discriminer un groupe mot parmi d’autres

La couleur associée à chaque pixel est calculée à partir de photosites R, V et B (généralement dans des proportions respectives de 25 %, 50 %, 25 %) et les intensités captées par

Cela permet au smartphone d’enregistrer deux images très légèrement décalées, d’analyser la profondeur de la scène grâce à la parallaxe, et de mettre en avant le sujet.. Le

Extrait de Mon cahier d'école maternelle - Tout le programme - Petite section de Françoise Kretz-Idas et Brigitte Salinas, illustrations de Annette Boisnard, © Nathan.. EntoUre le moT

Tu dois aussi écrire à chaque phrase la question.. Quand tu as finis utilise ton guide

Pour chaque image réponds à la question en utilisant :.. « c’est ………

\\ Julien se couchera dans son lit.. \\ Tu regarderas

NC3 Se repérer sur une suite numérique Dépassé Acquis En cours d’acquisition. Non