Scuriser les serveurs Web IIS 5 et IIS
Sécuriser les serveurs Web (IIS 5 et IIS 6)
Sommaire Généralités Principes fondamentaux de la sécurité Présentation du serveur IIS 5. 0 Mettre en oeuvre un serveur IIS 5. 0 sécurisé Etape 0 : Préparation à l’installation Etape 1 : Installation du serveur IIS Etape 2 : Post-installation Etape 3 : Configuration du serveur IIS et des services IIS 6. 0
Généralités
Principes fondamentaux de la sécurité La sécurité informatique repose sur quelques grands principes L’authentification des utilisateurs Le contrôle d’accès aux ressources La confidentialité des données L’intégrité des données La non-répudiation La disponibilité du service L’audit des traces de sécurité Les objectifs de sécurité doivent être adaptés aux besoins Niveau de sécurité global d’un système Niveau de sécurité du maillon le plus faible
Principes fondamentaux de la sécurité Classification des risques Menace : potentialité de mise en danger du système Vol d’informations confidentielles Modification de contenu Interruption de service Vulnérabilité : faille risquant de permettre la concrétisation d’une menace Faille matérielle Faille logicielle Erreur d’administration Attaque : exploitation d’une vulnérabilité existante Exposition de données Corruption de données Déni de service
Présentation d’IIS 5. 0 Caractéristiques IIS : Internet Information Service Version 5. 0 Disponible sur plateforme Windows 2000 Server Installé par défaut Fournit les services suivants : HTTP Mais aussi FTP, SMTP et NNTP
Présentation d’IIS 5. 0 Windows 2000 & IIS Le niveau de sécurité d’un serveur IIS est étroitement lié au niveau de sécurité du serveur Windows 2000 sous-jacent Permissions sur les fichiers Base de registre Droits utilisateurs Avantages de cette intégration : Pas d’augmentation inutile de la complexité Limitation des risques liés à l’empilement de couches de sécurité Meilleures performances Risques : Mauvaise sécurisation de Windows 2000 Affaiblissement du niveau de sécurité d’IIS 5
Mise en œuvre d’un serveur IIS 5 sécurisé
Mettre en œuvre un serveur Microsoft IIS 5. 0 sécurisé Préparation à l’installation PRE Installation INST Post-installation POST Configuration CONF
Préparation à l’installation PRE INST POST CONF Placer le serveur dans un espace sécurisé physiquement Si possible, installer le serveur Dans un domaine dédié Sans relation d’approbation avec les autres domaines du SI Ex : dans un domaine dédié aux serveurs en DMZ Protéger au maximum le serveur de toute attaque réseau pendant la phase de sécurisation Fermer les accès Internet (au niveau du routeur par ex) Limiter autant que possible les accès depuis l’Intranet
Sécurisation de Windows 2000 PRE INST POST CONF Appliquer le dernier Service Pack et les derniers correctifs Outil MBSA http: //www. microsoft. com/technet/security Microsoft Security Notification Service http: //www. microsoft. com/technet/security/bulletin/notify. asp Partitionner les disques de manière à pouvoir installer sur des partitions différentes Le système d’exploitation Les contenus publiés par chacun des services Les journaux d’événements Modifier les permissions NTFS Par défaut fixées à "Tout le monde – Contrôle Total" Voir base de connaissance, document Q 271071 "Minimum NTFS Permissions Required for IIS 5. 0 to Work"
Sécurisation de Windows 2000 PRE INST POST CONF Conserver uniquement les éléments nécessaires Supprimer les comptes inutiles Désactiver les services inutiles (Telnet, Messenger, …) Ne surtout pas installer d’outils de développement Laisser désactivée l’option « Routage et accès distants » (par défaut) Supprimer toutes les piles réseaux exceptée la pile TCP/IP (sauf celles nécessaires, dans le cas d’un Intranet par exemple) Supprimer la liaison entre Net. BIOS et TCP/IP Définir un mot de passe très fiable pour l’administrateur Au moins 9 caractères (ex : "M#=H|&Fb{")
Mettre en œuvre un serveur Microsoft IIS 5. 0 sécurisé Préparation à l’installation PRE Installation INST Post-installation POST Configuration CONF
Installation du serveur IIS 5. 0 PRE INST POST CONF Installer uniquement les composants nécessaires ! Pour plus de sécurité, effectuer l’installation à partir d’un fichier de réponses permettant de Modifier l’emplacement du répertoire racine Installation par défaut du répertoire racines dans C: Inetpub Renommer le répertoire racine Protection contre certains outils automatiques d’attaque Utiliser la commande sysocmgr pour effectuer une installation d’IIS à partir d’un fichier de réponse Sysocmgr /i: %windir%infsysoc. inf /u: <chemin_fichier>
Mettre en œuvre un serveur Microsoft IIS 5. 0 sécurisé Préparation à l’installation PRE Installation INST Post-installation POST Configuration CONF
Comptes & Permissions Accès anonyme PRE INST POST CONF Si l’accès anonyme n’est pas autorisé Supprimer le compte IUSR_Nomduserveur Si l’accès anonyme est autorisé Modifier les paramètres de l’utilisateur IUSR_Nomduserveur Ne pas autoriser l’utilisateur à changer son mot de passe Sélectionner l’option « le mot de passe n’expire jamais » Modifier les permissions associées au compte Autoriser l’ouverture de session locale Supprimer les ouvertures de session En tant que tâche Distantes
Comptes & Permissions Web. Admins & Web. Users PRE INST POST CONF Créer pour chaque site Un groupe local d’administration du site – y ajouter les comptes utilisateurs nécessaires Ex : Web. Admins_t 2003 iis Un groupe local d’utilisateurs du site et n’y inclure que les comptes nécessaires (éventuellement IUSR_Nomduserveur) Ex : Web. Users_t 2003 iis Utiliser ces comptes pour modifier les permissions NTFS sur les répertoires et fichiers des sites publiés Supprimer le compte IUSR_Nomduserveur des autres groupes
Arborescence du site PRE INST POST CONF Supprimer les répertoires d’exemples par défaut et les scripts associés Dans la mesure du possible éviter de les installer Créer l’arborescence des sites En séparant les fichiers par type Contenu statique (. HTML, images, …) Scripts (. ASP) CGI (. exe, . dll, . cmd, . pl) Fichiers de déclaration (. inc, . shtml, . shtm) Modifier les permissions NTFS Ne mettre que les permissions NTFS nécessaires Supprimer les permissions du groupe Tout le monde Utiliser les groupes Web. Users et Web. Admins
Sécurisation de la metabase IIS PRE INST POST CONF La Metabase contient les paramètres de configuration d’IIS Elle présente des avantages en termes de performance par rapport à la base de registre Rapidité Flexibilité Montée en charge Elle est stockée par défaut dans le fichier Win. NTsystem 32inetsrvMetabase. bin Elle contient des informations sensibles et doit être protégée Limiter les accès au seul groupe local Administrateurs Déplacer et renommer le fichier HKLMSoftwareMicrosoftInet. MgrParameters : ajouter une rubrique Metadata. File contenant le chemin complet vers le nouveau fichier
Journaux d’événements PRE INST POST CONF Afin de compliquer l’éventuelle dissimulation d’opérations non-autorisées, on pourra Déplacer et renommer le répertoire contenant les journaux d’événements De préférence sur une partition dédiée aux journaux d’événements Limiter l’accès aux seuls groupes Administrateurs et SYSTEM Les journaux d’événements devront Être, de préférence, au format « W 3 C Étendu » Contenir les informations requises pour servir de base aux audits de sécurité Date et heure de l’événement Requête effectuée Adresse IP du client Statut de la requête Nom de l’utilisateur Temps de traitement Méthode d’accès utilisée Adresse IP du serveur ? Ressource demandée Port du serveur ?
Analyse de la sécurité PRE INST POST CONF Détection et correction de points de sécurité non-traités Utilisation du snap-in "Analyse et configuration de la sécurité" Lancer une analyse du serveur Comparer la configuration à un modèle de sécurité adapté Microsoft propose le modèle Hisecweb. inf ou les modèles MSS Baseline. inf + MSS IIS Role. inf Modifier le modèle pour l’adapter aux spécificités du serveur Appliquer le modèle de sécurité Recommandations Ne pas appliquer le modèle de sécurité sur un serveur en production Vérifier le bon fonctionnement de toutes les applications après l’application du modèle
Mettre en œuvre un serveur Microsoft IIS 5. 0 sécurisé Préparation à l’installation PRE Installation INST Post-installation POST Configuration CONF
Configuration générale Les outils PRE INST POST CONF Utilisation de la Microsoft Management Console (recommandée) Requiert le snap-in "Gestionnaire des Services Internet" (ISM) Permet la délégation de l’administration des sites Préparation de consoles spécifiques en fonction des rôles et des habilitations Constitue la solution la plus souple et la plus complète Utilisation de l’interface Web d’administration Incomplète Délégation de pouvoir difficile Nécessité de mettre en œuvre les éléments de sécurité suivants : Communiquer via un tunnel SSL, après authentification du client par certificat Limiter l’accès à l’administrateur du serveur IIS Forcer la connexion depuis une IP prédéfinie
Configuration du serveur PRE INST POST CONF Deux niveaux de configuration Propriétés générales du serveur IIS Concernent les caractéristiques communes aux différents services WWW FTP Journaux d’événements Seront automatiquement héritées par tout site créé Permettent d’éviter de laisser accidentellement des options par défaut dangereuses lors de la création d’un nouveau site Propriétés spécifiques à chaque service proposé par le serveur Sont prioritaires par rapport aux propriétés générales du serveur
Assistant de verrouillage IIS Lockdown Durcit la configuration d’IIS (4 ou 5) Désactive les services inutiles Restreint l’accès aux commandes système URLScan Filtre ISAPI pour IIS 4/5, configurable, qui bloque les URL qui ressemblent à des attaques ISA Server : pare-feu (dont passerelle applicative) Serveur Web IIS Url sca n Parefeu ISA Server Client
IIS 6. 0
Vulnérabilités pré-IIS 6. 0 Challenges Problèmes de canonisation Buffer Overflow Utilisation de ressource intense Cross-Site Scripting Résultats Exécution à distance d’application Elévation de privilège Divulgation d’information Denial-of-Service …
Nouvelle approche IIS 6. 0 est sécurisé : Par conception (secure by design) Nouvelle architecture de fonctionnement Par défaut (secure by default) Non installé et fonctionnement par défaut Pour le déploiement (secure in deployment)
Nouvelle architecture du serveur Web IIS 6. 0 Fonctionnalités Web séparés Isolation des applications (pools d’applications) Améliorations des performances
Fonctionnement de IIS 5. 0 vs IIS 6. 0 Application Pool 1 INETINFO DLLHOST. exe metabase ISAPI Filters Config Mgr ISAPI Extensions (ASP, etc. ) Process Mgr WAS W 3 WP. EXE ASP. NET ISAPI Application Pool 2 W 3 WP. EXE ASP. NET metabase CLR App Domain ISAPI Extensions (ASP, etc. ) ISAPI Filters TCP/IP HTTP. SYS Web Garden W 3 WP. EXE Aspnet_wp. exe ASP. NET ISAPI CLR ASP. NET App CLR Domain App Domain ISAPI CLR App Domain CLRCLR App CLR Domain App Domain CLRCLR App Domain
Sécurisé par conception et pour le déploiement Processus IIS exécutés avec des privilèges le plus bas possible Code tierce exécuté uniquement dans un processus de travail Isolation des processus Journalisation des requêtes HTTP Surface des attaques réduites (Ex. : Do. S) Protection rapide contre les incidents Recyclage des processus de travail Affinité par processeur …
Sécurisé par défaut Plus de 20 services NT sont désactivés sous Windows Server 2003 IIS n’est plus installé par défaut (exception de Windows Server 2003 Web Edition) Si on installe IIS… IIS components IIS 5. 0 clean install IIS 6. 0 clean install Static file support enabled ASP enabled disabled Server-side includes enabled disabled Internet Data Connector enabled disabled Web. DAV enabled disabled Index Server ISAPI enabled disabled Internet Printing ISAPI enabled disabled CGI enabled disabled Frontpage Server Extensions enabled disabled Password Change Functionality enabled disabled SMTP enabled disabled FTP enabled disabled ASP. NET X disabled BITS X disabled
Sécurisé par défaut Pas de répertoire virtuel avec des exécutables /SCRIPTS /MSADC Limites et timeouts Limitation de la taille des en-tête à 16 Ko Anciens codes supprimés ISM. DLL. HTR Sub-authentication Vérification de l’existence des fichiers
Sécurisé par défaut URLScan intégré Utilitaires en ligne de commande inaccessibles Canonisation des URL’s Protection en écriture du contenu Sécurité par ACL’s sur Logfiles Custom Error Directory On Cache Directories ASPEnable. Parent. Path = FALSE Hang detection Internal Health Detection
Mise à jour de IIS 5. 0 vers IIS 6. 0 Soit faire une installation neuve Soit Exécuter « IIS Lockdown » avant la mise à niveau Spécifier les paramètres durant la mise à niveau
Extensions du service Web Sécurisé par défaut Ne sert que du contenu statique (HTML, JPG, GIF…) Protection contre les « script kiddies » listant les capacités du serveur Activation manuelle des autres fonctionnalités Nouveau nœud dans la console d’administration Autoriser/Interdire les extensions Ajouter/Supprimer les extensions Erreurs 404 Erreur générique renvoyée Fichiers de log donnant des détails complémentaires Utile pour analyse
Isolation des applications Pool d’applications Isolation des applications Utilisation de compte avec des privilèges bas (service réseau) Chaque pool peut utiliser son propre compte utilisateur
IIS Worker Process Group IIS_WPG Nouveau groupe Toutes les identités des pools applicatif doivent en être membre A les droits et permissions nécessaires pour exécuter un process w 3 wp. exe
Actions complémentaires Arrêter les services inutiles Désactivé ou démarrage manuel Authentification Basique Digest Intégrée Passport© Permissions – NTFS Restriction par adresse IP Outils Log. Parser (resource kit) SSLDiagnostics (download)
Log d’état HTTP Les logs IIS enregistrent tous les événements et les statuts Nouveaux “substatus” spécifiques Exemple: Access denied due to Web Service Extensions Le client reçoit une erreur 404 mais… IIS log l’erreur associée (404. 2) Voir l’aide en ligne pour les codes Impacts: résolution des problèmes plus rapide >> plus d’info = meilleure action
Types Mime non définis désactivés Les extensions de fichier doivent être déclarés comme type MIME Le client reçoit une erreur 404, mais l’erreur 404. 3 est enregistrée Caractère joker utilisable pour la définition Peut être spécifique à un répertoire Impacts: Les applications ou les fichiers de pirate utilisant des extensions non définies ne fonctionneront pas Ajouter. tmp pour Visual Studio. net (corrigé dans le SP 1) SI une application est désinstallée, les fichiers ne seront pas accessibles si le mappage MIME est supprimé
Problèmes avec le service FTP Exécution de la commande cd puis dir Visualisation de TOUS les autres répertoires >> divulgation d’informations
Isolation des utilisateurs FTP Isolation des utilisateurs Ne peuvent voir que leur répertoire La commande cd reste à la racine de LEUR répertoire Types d’isolation Aucune (= IIS 5) Local AD
Firewall - Antivirus Les firewalls globaux peuvent ne pas être suffisants Un firewall pour chaque serveur Réduit les risques de type Blaster, Slammer Interdire tout sauf ce que vous souhaitez que le serveur serve Utiliser et maintenir à jour un anti-virus
Résumé IIS 6. 0 non installé par défaut Contrôle du contenu exécutable via les Web Service Extensions Enregistrement dans les logs des « sub-codes » d’état HTTP Personnalisation des identités des worker process Accès au chemin parent désactivé ( « Parent Paths » ) Types MIME non défini inactifs … Rien que l’amélioration de la sécurité justifie la migration vers IIS 6. 0 …ainsi que les améliorations concernant les performances et la disponibilité
Étapes suivantes 1. Être informé sur la sécurité u S'inscrire aux bulletins de sécurité : http: //www. microsoft. com/france/securite/bulletins_securite/default. asp u Obtenir l'aide la plus récente de Microsoft sur la sécurité : http: //www. microsoft. com/france/securite/default. asp 2. Obtenir des activités de formation supplémentaires sur la sécurité 1. Trouver des séminaires de formation : http: //www. microsoft. com/france/events/default. asp 1. Trouver un centre de formation local agréé Microsoft (CTEC) pour des cours pratiques : http: //www. microsoft. com/france/formation/centres/recherche. asp
Pour plus d'informations Site Microsoft sur la sécurité (tout public) http: //www. microsoft. com/france/securite/default. asp Site Tech. Net sur la sécurité (informaticiens) http: //www. microsoft. com/france/technet/themes/secur/default. asp Site MSDN sur la sécurité (développeurs) http: //msdn. microsoft. com/security (en anglais) Guide de sécurisation de Windows 2000 Server http: //www. microsoft. com/france/technet/produits/Win 2000 S/info. asp? mar =/france/technet/themes/secur/info/20031211 securingwin 200 s. html&xmlpath=/france/technet/produits/win 2000 s/actus. xml& rang=0 Securing Windows 2000 Server http: //www. microsoft. com/downloads/details. aspx? Family. Id=9964 CF 42 -E 2364 D 73 -AEF 4 -7 B 4 FDC 0 A 25 F 6&displaylang=en
Des questions ?
- Slides: 48