applications web securite
TRANSCRIPT
-
8/17/2019 Applications Web Securite
1/14
APPLICATIONS WEB ET SECURITE
Une approche de terrain
Michel Chabanne – Administrateur sécurité – Ecole Polytechnique
-
8/17/2019 Applications Web Securite
2/14
Quelques constats
Premiers serveurs visés par les attaques: Web et
mail (placés en DMZ…)
Cibles d’attaque: logiciel serveur (IIS, Apache) et
processeur de script (ASP, .NET, PHP)
Objectif: simple « plaisanterie », prise de contrôle,
hébergement de contenu illicite
La sécurité des services web = sécurité du serveurmais pas seulement…
-
8/17/2019 Applications Web Securite
3/14
Sécurité multi-niveaux
Sécuriser son serveur: comme pour tous les types de
service!
Sécuriser les applications: le plus difficile…
Sécuriser la communication client-serveur: cryptage,
inspection de flux, proxy inverse
-
8/17/2019 Applications Web Securite
4/14
Sécuriser son serveur web (I)
Windows: IIS (Internet Information Server)
Actuellement en v6 (éradiquer la v5)
Les outils IISLockdown et URLScan sont obsolètes
Sécurité liée aux mises à jour WindowsUpdate Points clés Pas d’IIS sur un contrôleur de domaine
Les sites sont sur un disque non système
Verrouiller les permission NTFS sur les sites Supprimer tous les contenus fournis par défaut
Déterminer la techno de script à utiliser et activer seulementcelle-là (.NET, CGI, ASP, ISAPI…)
-
8/17/2019 Applications Web Securite
5/14
Sécuriser son serveur web (II)
Apache
Choisir son OS, le sécuriser ( *BSD ! )
Masquer la version
ServerSignature OffServerTokens Prod
Utilisateur d’exécution != root (trivial mais…)
Désactiver: Directory browsing, SSI
Désactiver les modules non nécessaires (mod_*)
-
8/17/2019 Applications Web Securite
6/14
Sécuriser son serveur web (III)
Apache [suite]
Se protéger contre les attaques DoS: Variables Timeout
LimitRequestBody
MaxSpareServers, MaxRequestsPerChild,ThreadsPerChild, ServerLimit, MaxSpareThreads
Utiliser le chrooting (= configuration « cage »). Lemodule mod_security pour Apache est utile!
Restreindre les accès (authentification, @IP…) Sécuriser les logiciels connexes (MySQL…): un autre
sujet ! – attention aux frontends (phpMyAdmin…)
http://www.modsecurity.org/http://www.modsecurity.org/
-
8/17/2019 Applications Web Securite
7/14
Sécuriser les applications: PHP (I)
Exemples d’attaques
© commentcamarche.net
-
8/17/2019 Applications Web Securite
8/14
Sécuriser les applications: PHP (II)
Un sujet très vaste
Minimiser diffusion d’informations serveur
Contrôle des saisies utilisateur
Ne pas utiliser de contrôle côté client (JScript, VBScript)
Utiliser du code de validation (type, taille des données)
Opérer intelligemment avec ses bases de données
Demander seulement l’info nécessaire !
Contrôler, contrôler et encore contrôler les données !!
Bien gérer les exceptions/codes erreur de retour
-
8/17/2019 Applications Web Securite
9/14
Sécuriser les applications: PHP (III)
-
8/17/2019 Applications Web Securite
10/14
Sécuriser les applications: PHP (IV)
Séparer le développement en couches
Accès aux données
Traitement
Présentation
Documenter son code en ligne (PHPDoc…)
Nomenclature des fonctions et variables
Utiliser des « templates » plutôt que de mixer le code
HTML et PHP Utiliser error_reporting() intelligemment
Journaliser au maximum les événements
-
8/17/2019 Applications Web Securite
11/14
Sécuriser la communication (I)
Le meilleur test: un sniffer !
Une règle: dès qu’il y a authentification, il y a
nécessité de SSL/TLS (Transport Layer Security)
Voir à ce sujet: certificats SSL RENATER gratuitshttp://www.renater.fr/spip.php?article429
Apache 2.x inclut un module SSL de base
mod_security offre des règles de filtrage baséessur les regex
-
8/17/2019 Applications Web Securite
12/14
Sécuriser la communication (II)
Dans le cas d’application n-tier: penser à sécuriser
la communication entre les serveurs (IPSEC?)
Sécurité des serveurs IIS : penser au reverse proxy
(mod_proxy d’Apache)
Serveurs sensibles: utilisation IDS « host »/IPS à
considérer; penser également à TripWire
Importance de la journalisation et aspects légauxde la conservation (1an, mais pas 2…)
-
8/17/2019 Applications Web Securite
13/14
Bilan
Penser la sécurité de bout en bout (des clients aux
– parfois multiples – serveurs)
Penser la sécurité en n-dimensions (sur toutes les
couches) Développer les applications avec la sécurité comme
premier objectif
Tenir ses briques à jour ! OS-PHP-Apache-*SQL
-
8/17/2019 Applications Web Securite
14/14
Merci de votre attention