La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Openhack IV : sécurité SQL Server et application Web Cyril VOISIN Chef de programme Sécurité Microsoft France.

Présentations similaires


Présentation au sujet: "Openhack IV : sécurité SQL Server et application Web Cyril VOISIN Chef de programme Sécurité Microsoft France."— Transcription de la présentation:

1 Openhack IV : sécurité SQL Server et application Web Cyril VOISIN Chef de programme Sécurité Microsoft France

2 Sommaire Introduction : notions utiles Comprendre les attaques dinjection SQL Comprendre les attaques de Cross Site Scripting Lexemple OpenHack IV Le principe Larchitecture Les composants mis en jeu Les bonnes pratiques utilisées pour OpenHack IV IIS 5 Windows 2000 Server Stratégies IPsec Application SQL Server 2000 Compléments sur la sécurité de SQL Server Le ver Slammer et ses conséquences Recommandations de sécurisation de SQL Server 2000 Conclusion

3 Attaque : injection SQL

4 Injection SQL if (isPasswordOK(Request.form("name"),Request.form("pwd"))) { Response.write("Authenticated!"); // Do stuff } else { Response.write("Access Denied"); }

5 function isPasswordOK(strName, strPwd) { var fAllowLogon = false; var oConn = new ActiveXObject("ADODB.Connection"); var strConnection="Data Source=c:\\auth\\auth.mdb;" oConn.Open(strConnection); var strSQL = "SELECT count(*) FROM client WHERE " + "name='" + strName + "' " + " and pwd='" + strPwd + "'"; var oRS = new ActiveXObject("ADODB.RecordSet"); oRS.Open(strSQL,oConn); fAllowLogon = (oRS(0).Value > 0) ? true : false; oRS.Close(); delete oRS; oConn.Close(); delete oConn; return fAllowLogon; } Injection SQL

6 Méchant Username: blabla' or '1' = '1 Password: blabla' or '1' = '1 SELECT count(*) FROM client WHERE name='b' or '1'='1' and pwd='b' or '1'='1' Où est le problème ? Gentil Username: cyril Password: &y-) 4Hi=Qw8 SELECT count(*) FROM client WHERE name=cyril' and pwd='&y-)4Hi=Qw8'

7 Solutions Dune manière générale, il ne faut jamais faire confiance à ce qua entré lutilisateur Ne pas utiliser la concaténation de chaîne Utiliser des procédures stockées Autre possibilité : requêtes paramétrées Doù limportance davoir des développeurs sensibilisés et formés sur le sujet

8 Attaque : Cross Site Scripting (XSS)

9 Cross Site Scripting (XSS) Vulnérabilité très courante Une faille côté serveur sert à compromettre le client Lerreur consiste simplement à reproduire les entrées sans les valider ! Le contenu dune page Web est traité daprès sa source (par ex: un serveur Web a le droit de réclamer laccès à son cookie mais pas un autre serveur) Le but est dici de faire renvoyer au serveur une page Web contenant un contenu défini par lattaquant Comment ? En utilisant un problème sur le serveur Web qui ne filtre pas correctement les entrées des utilisateurs : Lien qui reproduit un de ses paramètres dans son rendu Page qui contient des données stockées dans une base de données non traitées Formulaire…

10 XSS en Action scénario avec un lien Les acteurs Barry, Le Méchant Marie,Linnocente Le piège Barry veut voler le cookie de Marie pour le site pleindetrous.com.

11 XSS en Action bienvenue.asp Bonjour Possède le site mechant.com

12 XSS en Action idForm.cookie.value=document.cookie; idForm.submit(); > here

13 OpenHack IV Description résumée de la configuration mise en œuvre par Microsoft pour remporter le 4 ème concours OpenHack

14 OpenHack IV Concours organisé par eWeek (22 octobre au 8 novembre 2002) Sécurité dune application dentreprise exposée sur le Web Les fournisseurs mirent en place une solution à partir de lapplication Web exemple fournie par eWeek (site Web eWeek eXcellence Awards) Un appel fut alors lancé pour venir compromettre les solutions ! Les brèches autorisées (et récompensées) : cross-site scripting, divulgation de code source de page Web dynamique, défiguration de page Web, envoi réussi de commandes SQL malicieuses aux bases de données, et vol des données de cartes de crédit dans les bases de données. La solution Microsoft na pas été compromise malgré les tentatives dattaques

15 Composants mis en jeu Application Web IIS 5.0 Windows 2000 Advanced Server Stratégies IPsec Gestion et surveillance à distance SQL Server 2000 Mots de passe Défense en profondeur (stratégie de défense par couches successives) Remarque: aucun pare-feu utilisé!

16 Architecture Administrateur RRAS IIS SQL Server Terminal Services routeur

17 IIS 5.0 Dernier Service Pack + tous les correctifs de sécurité appliqués Changement du répertoire dIIS de C:\inetpub\ vers un autre volume (cf attaque..\) Exécution de loutil (gratuit) IIS Lockdown en mode serveur Web statique pour réduire la surface dattaque et supprimer le support de types de contenu dynamique Installation de.NET, ses correctifs, MDAC

18 IIS 5.0 Exceptés les.aspx, quelques types dimages et de feuilles de style, toutes les extensions redirigées vers 404.dll dIIS Lockdown Exécution du code ASP.NET avec un compte avec peu de privilèges (ASPNET) Ajout du compte ASPNET au groupe « Web application group » dIIS Lockdown pour lui interdire lexécution des exécutables en ligne de commande non autorisés en cas de brèche Autorisation dexécution du compilateur C# et du convertisseur de ressources

19 IIS 5.0 URLScan 2.5 Filtre ISAPI pour IIS, configurable, qui bloque les URL qui ressemblent à des attaques Autorisation explicite des extensions gérées, blocage de tout le reste Blocage des requêtes trop longues Permissions sur les répertoires de contenu Web (lecture pour ASPNET, lecture seule pour utilisateur anonyme) Restrictions daccès sur les répertoires de log dIIS et dURLScan (SYSTEM et Administrators seulement)

20 Windows 2000 Server Dernier SP + tous les correctifs Désactivation des services inutiles (Messenger, Alerter, Clipbook,…) Suppression des LMHashes Pas dexemption IPsec (port source 88) Désactivation du routage IP par la source Réglage anti SYN-flood

21 Stratégies IPsec Configurées localement Avantages Déclaration explicite du trafic nécessaire pour utiliser et administrer lapplication Authentification des communications entre systèmes par certificats Authentification et chiffrement du trafic dadministration Blocage de tout trafic non explicitement autorisé (règle de refus par défaut)

22 Stratégies IPsec Une stratégie a 3 composants : Le filtre qui identifie le trafic manipulé Laction qui doit être prise quand un tel trafic est trouvé par le filtre Le mécanisme dauthentification utilisé pour établir une association de sécurité

23 Stratégies IPsec Cartographier le trafic Cartographier le trafic Serveur Web doit communiquer avec la base de données sur le serveur SQL Server Serveur RRAS doit accepter le VPN en entrée pour les administrateurs et donner accès au segment réseau dadministration Serveur dadministration doit accepter des sessions Terminal Server depuis le serveur RRAS, permettre laccès et la copie de fichiers Tous les systèmes doivent permettre sur leur interface du réseau privé louverture dune session Terminal Server depuis le serveur dadministration Tous les systèmes doivent pouvoir accéder aux partages de fichiers du serveur dadministration Déterminer les dactions : Déterminer les dactions :BloquerAutoriser Authentifier et signer Authentifier, signer et chiffrer

24 Stratégies IPsec Les filtres Les filtres Blocage par défaut (tout sauf ce qui est autorisé) Permission du trafic Web à destination du serveur Web, quelle que soit la source Remarques : pour émettre les certificats, une autorité de certification autonome a été installée puis mise hors ligne (Certificate Services) La signature évite que les paquets puissent être modifiés alors quils transitent vers les systèmes (intégrité) Le chiffrement a été utilisé pour éviter les écoutes des manipulations administratives (confidentialité)

25 Stratégies IPsec Les règles sont évaluées des plus spécifiques aux moins spécifiques Sur chaque système, les 2 règles suivantes étaient installées : Bloquer tout le trafic IP Bloquer tout le trafic ICMP Ensuite les règles spécifiques étaient ajoutées

26 Stratégie IPsec Administrateur RRAS IIS SQL Server Terminal Services routeur Permit 443 L2TP+IPsec Permit 445, 3389 SHA1/3DES 445, 3389 SHA1 2443

27 Application Authentification par formulaire (web.config), transmission en SSL Validation des entrées (expressions régulières) pour naccepter que ce qui est valide Attention : lapproche consistant à rejeter ce qui est interdit est déconseillée Stockage de secrets (chiffrement)

28 Application Chaîne de connexion Non codée en dur dans lapplication !! Utilisation de lauthentification intégrée Windows La chaîne ne contient alors que le nom du du serveur et celui de la base de données Chiffrée en utilisant les fonctions de lAPI de protection de données (DPAPI) CryptProtectData et CryptUnprotectData Intérêt : chiffre des secrets sans avoir à gérer ou stocker des clés Stockée dans le registre Permission sur cette clé accordée Aux administrateurs Au processus ASPNET

29 OpenHack - SQL Server Machine physique isolée Interaction avec la base de données uniquement via des procédures stockées Typage fort des paramètres. Ceux-ci sont vérifiés avant tout autre chose Toutes les données qui seront renvoyées à lutilisateur sont encodées en HTML (but : éviter une attaque de cross site scripting)

30 OpenHack – SQL Server Réduction de la surface dattaque Logiciels installés Authentification Compte de service Protocoles de communication Permissions de lapplication

31 OpenHack – SQL Server Logiciels Service pack 2 + les derniers correctifs de sécurité (Remarque : à lépoque le SP3 nétait pas disponible) Non installés Outils de mise à jour (Upgrade tools) Symboles de débogage Support de la réplication Documentation en ligne Outils de développement DésactivésMsdtc Agent SQL Server Microsoft search

32 OpenHack – SQL Server Modification de la stratégie de sécurité locale pour nautoriser que NTLMv2 Configuration en mode intégré Windows seulement Pas besoin de stocker un identifiant et son mot de passe sur le serveur Web (y compris SA) Mise en place dun mot de passe SA très très complexe Au cas où quelquun changerait par erreur le mode dauthentification Mise en place de laudit des Échecs Preuves des tentatives dattaques Mode paranoïaque : activer les Succès aussi au cas où le pirate ait deviné le mot de passe…

33 OpenHack – SQL Server Compte de service Par défaut : LocalSystem Bien trop permissif ! Création dun compte local non privilégié pour le service SQL Mot de passe fort Que lutilisateur ne peut pas changer Aucun accès à Terminal Server Si laccès au réseau avait été nécessaire, il aurait alors fallu utiliser un compte non privilégié du domaine

34 OpenHack – SQL Server Protocoles de communication Dans lutilitaire réseau serveur (server network utility) : cacher SQL Server des broadcasts de clients Enlever le protocole canaux nommés (on a besoin uniquement de TCP/IP) Suppression des bases exemples (Northwind, Pubs) Création de la base de lapplication Accorder au compte de lapplication les permissions sur les procédures stockées plutôt que sur les tables elles- même Interdire lexécution de requêtes ad hoc Sassurer que ce compte na pas de permissions ailleurs dans SQL Server

35 Compléments sur la sécurisation de SQL Server 2000 : recommandations générales

36 Recommandations Installer le dernier Service Pack (SP3a) Évaluer le niveau de la configuration avec MBSA : Service Packs et mises à jour manquants Vérifier si le groupe Administrateurs est répertorié en tant que membre du rôle Sysadmin Vérifier si CmdExec est limité exclusivement à Sysadmin Vérifier si SQL Server est exécuté sur un contrôleur de domaine Vérifier si le mot de passe du compte d'administrateur système (sa) est exposé Vérification des autorisations d'accès des dossiers d'installation de SQL Server Vérifier si le compte Invité a accès aux bases de données Vérifier si le groupe Tout le monde a accès aux clés du Registre SQL Server Vérifier si les comptes de service SQL Server sont membres du groupe Administrateurs local Vérifier si les comptes SQL Server utilise des mots de passe simples ou vides Vérification du mode d'authentification de SQL Server Vérification du nombre de membres du rôle Sysadmin

37 Recommandations Utiliser lauthentification intégrée Windows Dans Enterprise Manager : Expand a server group. Right-click a server, and then click Properties. On the Security tab, under Authentication, click Windows only. Isoler le serveur (de manière logique et physique) et le sauvegarder régulièrement Mettre un mot de passe fort sur sa Expand a server group, and then expand a server. Expand Security, and then click Logins. In the details pane, right-click SA, and then click Properties. In the Password box, type the new password.

38 Recommandations Limiter les privilèges des services de SQL Server (le faire via les outils de SQL Server) Désactiver les ports de SQL Server sur votre pare-feu TCP/1433UDP/1434 Nutiliser que des partitions NTFS (permettent lutilisation de permissions et le chiffrement EFS) Supprimer ou sécuriser les anciens fichiers dinstallation (utiliser loutil killpwd)

39 Recommandations Auditer les connexions à SQL Server To enable auditing of failed connections with Enterprise Manager in SQL Server: Expand a server group. Right-click a server, and then click Properties. On the Security tab, under Audit Level, click Failure.

40 Compléments sur SQL Server 2000 : le ver Slammer et ses conséquences

41 Slammer : conséquences Le ver Slammer était le plus rapide de lhistoire, il doublait de taille toutes les 8.5 sec, ce qui est 250 fois plus rapide que « Code Red ». Il a infecté 90 % des systèmes vulnérables en 10 min. Au moins serveurs ont été infectés: vols annulés, élections perturbés, distributeurs dargent arrêtés, etc. Plus dinformations:

42 24 janvier 2003 : Slammer Version initiale sans charge Exploite une vulnérabilité de SQL Server 2000 et MSDE 2000 dont la correction était disponible depuis juillet 2002 (et incluse dans le SP3 sorti quelques jours avant lattaque, incluant les améliorations du Security Push)

43 24 janvier 2003 : Slammer Actions 3 outils spécifiques développés en 3 jours Correctif avec installateur automatisé Sortie du SP3a Contenu identique au SP3 avec quelques améliorations (donc pas la peine de le passer si SP3 déjà installé, mais préférable pour de nouvelles installations) Rappel : le SP3 est la première version à avoir suivi le processus de développement Trustworthy Computing Réduit la surface dattaque : pas découte sur le port UDP 1434 Modifications dans la fourniture de SQL Server 2000 et MSDE 2000

44 SQL Server 2000 SP3 : intérêt du processus de développement Trustworthy Computing ? Bulletins: 2002 – 12 bulletins, 4 critiques 2003 – 1 Service Pack, 2 bulletins, 0 critique 2004* – 1 bulletin, 0 critique (* début avril) Critique Important Modéré Faible

45 Conclusion Même si toutes les étapes vues ne sappliquent pas directement à toute solution Web, la démarche peut être retenue et ré-utilisée : Planifier la sécurité dès le début (y compris la gestion des correctifs de sécurité) Toujours installer les derniers Service Pack / mises à jour Toujours utiliser des mots de passe complexes Réduire la surface dattaque en désactivant tout ce qui nest pas nécessaire Appliquer le principe du moindre privilège Anticiper les imperfections et mettre en place une défense en profondeur pour réduire leurs impacts Pour IIS5, utiliser IIS Lockdown et URLScan Valider toutes les données en entrée Utiliser des requêtes paramétrées plutôt que de générer des requêtes dynamiques

46

47 Références Cette présentation est tirée en partie de larticle MSDN : us/dnnetsec/html/openhack.asp us/dnnetsec/html/openhack.asp us/dnnetsec/html/openhack.asp Securing SQL Server curingsqlserver.asp curingsqlserver.asp curingsqlserver.asp Livre blanc Microsoft SQL Server 2000 Security ityWP.doc ityWP.doc ityWP.doc Config C2 r=/france/sql/info/sql2000_c2securityguide.html&xmlpath=/france/tec hnet/Produits/sql/admin.xml&rang=2 r=/france/sql/info/sql2000_c2securityguide.html&xmlpath=/france/tec hnet/Produits/sql/admin.xml&rang=2 r=/france/sql/info/sql2000_c2securityguide.html&xmlpath=/france/tec hnet/Produits/sql/admin.xml&rang=2 Le site Web de Microsoft France sur la sécurité : Le newsgroup en français : news://microsoft.public.fr.securite news://microsoft.public.fr.securite

48 MS Baseline Security Analyser (MBSA)

49 Assistant de verrouillage IIS IIS Lockdown Durcit la configuration dIIS (4 ou 5) Désactive les services inutiles Restreint laccès aux commandes système URLScan Filtre ISAPI pour IIS4/5, configurable, qui bloque les URL qui ressemblent à des attaques ISA Server : parefeu (dont passerelle applicative) Url scan Serveur Web IIS ClientPare-feu ISA Server


Télécharger ppt "Openhack IV : sécurité SQL Server et application Web Cyril VOISIN Chef de programme Sécurité Microsoft France."

Présentations similaires


Annonces Google