palais des
congrès
Paris




7, 8 et 9
février 2012
La Sécurité avec SQL Server


7 février 2012
Jean-Pierre Riehl                       Pascale Doz
MVP SQL Server               Consultante SQL Server
AZEO                                  Indépendante
Jean-Pierre.Riehl@azeo.com         pascale@pascale-doz.com
AZEO, LE PARTENAIRE MICROSOFT
incubateur de talents

 Pure-Player innovant focalisé sur la création de valeur

 Infrastructure, Collaboratif, Développement, Communication

 Gold Partner dans toutes nos Practices

                           AZEO ACCOMPAGNE DURABLEMENT
                           l’évolution de votre système d’informations

                           AZEO ENRICHIT LA CREATION DE VALEUR
                           grâce à un réseau de partenaires sélectionnés

                           AZEO DEVELOPPE VOTRE TALENT
                           et accélère votre réussite
Agenda

    Back to Basics

      Contrôle d’accès

         Protection des données

      Surveillance

    SQL Server 2012
Back to Basics
Back to Basics

 « La sécurité dépend du risque »

 « La sécurité est alignée sur le maillon le
 plus faible »

 « Principe du moindre-privilège »
A retenir
                           Back to Basics



   Accès



Protection



Surveillance
Accéder
Surface d’exposition

   Limiter les ouvertures
     Composants

     Endpoints



   Principe du moindre privilège



   Pensez à l’ensemble de votre SI
Accéder à SQL Server
 Principals
      Login vs User



   A la base, il y a toujours un Login
     Mode intégré ou mixte

     Permet de se connecter à l’instance SQL



   Le User/Certificat permet d’utiliser la base de données
     Donne un contexte au login

       Attention aux utilisateurs guest / dbo

   Rôles (serveur ou base de données)
Authentification

 La bonne pratique :

   Utilisation de la sécurité Windows
     Gestion centralisée avec Active Directory

     Respect des politiques d’entreprise

     Pas de gestion de mot de passe




   Mais toujours un besoin de la sécurité SQL pour les « clients »
   non-windows
Accéder à SQL Server
 Securables
     De l’instance SQL aux objets



   On donne ou refuse l’accès à un Principal
     GDR : GRANT, DENY, ou REVOKE



   Principe de résolution :
    1.   Définition du contexte de sécurité
    2.   Echec s’il y a au moins un DENY
    3.   Succès s’il y a au moins un GRANT

 Attention au principe de l’Ownership Chain
 Attention au Cross-Database Ownership, trustworthy
Accéder à SQL Server

  Quelques bonnes pratiques :

      Authentification intégrée, politique de mot de passe
      Pas d’utilisation de dbo ou sysadmin
      Utilisation des SCHEMAS
      Cloisonnement
      Principe du moindre privilège
Protéger
Une histoire de clés

 Service Master Key : niveau instance

 Database Master Key : niveau base de données

 Clés asymétriques
 Certificats
 Clés symétriques


 Importance des sauvegardes !
Une histoire de clés

 Extensible Key Management : EKM

 •   Nouveauté de SQL Server 2008
 •   Exportation de la gestion des clés dans une appliance
     dédiée
      • Hardware Security Module (HSM)

 Ex : Arx PrivateServer, Thales nCipher, SafeNet Luna
Chiffrement des données

  Ne remplace pas la politique d’autorisations
  Protection « In-depth »


  Différentes granularités
     Serveur : géré par Windows (EFS ou BitLocker)
    Base de données : Transparent Data Encryption

    Données : fonctions de chiffrement

  Différents algorithmes : DES, TRIPLE_DES, AES (128, 192, 256)

  Attention au canal de communication
Chiffrement des données

 Transparent Data Encryption

       Pas d’action de l’utilisateur : transparent
       Chiffrement des fichiers MDF et LDF
       Chiffrement dans TempDB
       Chiffrement des backups
       Les buffers en mémoire ne sont pas chiffrés

       Impact en performance : 3 à 5% (sur un TPC-C) mais
        28% de CPU en plus
Chiffrement des données

 Transparent Data Encryption

   --création de la DEK
   CREATE DATABASE ENCRYPTION KEY
    WITH ALGORITHM = AES_128
    ENCRYPTION BY SERVER CERTIFICATE aCert;

   --activation de l’option
   ALTER DATABASE maBase
    SET ENCRYPTION ON;
Chiffrement des données

 Cell-Level Encryption

       Chiffrement explicite de l’utilisateur
          Impact sur les applications

       Granularité fine
       Attention aux « dictionnary-attack »

       Utilisation des fonctions : EncryptBy, DecryptBy, SignBy,
        VerifySignedBy, etc.
SQL Injection

   C’est l’attaque la plus fréquente

   Pour s’en protéger :
     Politique d’autorisation

          Principe du moindre privilège
      Proscrire le SQL Dynamique
      Utiliser des requêtes paramétrées
          Utilisation de SqlParameter
      Contrôler les saisies
          Utilisation des regexp
          Utilisation de QUOTENAME(), REPLACE()
Surveiller
Policy-based Management

 Policy :
      Evaluer des Conditions sur les Facets du serveur

   Possibilité de les évaluer
     À la demande

     Planifiée

     On Change
DDL Triggers

  Triggers sur les instructions DDL
    CREATE, ALTER, DROP etc. ,

  Scope Base de données ou Serveur
  Transactionnel

  Permet de rajouter du code :
    Annulation de la transaction

    Application de règles métier



  Event Notification (basé sur service Broker / asynchrone)
AUDIT

  Permet de tracer ce qu’il se passe sur un serveur

  Distinction entre le lieu ou on trace et ce qu’on trace
    CREATE SERVER AUDIT

    CREATE XXX AUDIT SPECIFICATION

  Granularité fine
    Limitation à des utilisateurs particuliers

    Limitation à un scope particulier (objets, actions)



  Basé sur le moteur d’événements
  Plus performant que la TRACE
Events et TRACE

  Le système d’événements est à la base des fonctionnalités de
  monitoring

  On peut utiliser les événements pour réagir dans
  « l’application »
    Traitement des événements via le Service Broker
      CREATE EVENT NOTIFICATION ev ON SERVER
      FOR CREATE_DATABASE
      TO SERVICE ‘serv
  La TRACE est optimisée pour ne pas perturber l’activité
    Pas de packaging XML

  La TRACE est exploitée en dehors de SQL Server
Et 2012 ?
Nouveauté !

 Contained Databases

   Séparation du lien avec l’instance
   Isolation de la base
     Plus besoin de LOGIN pour les utilisateurs




   Utilisation
     Pratique pour la mise en place du mirroring (AlwaysOn)

     Pratique pour les éditeurs
Conclusion
Conclusion

   Principe du moindre privilège

   Audit régulier (temps réel )

   Pensez la sécurité au niveau du SI
Mais encore…

         Analysis Services
                                 Data Quality Services
 Power Pivot
          Integration Services
                                    Service Broker
           Réplication

 Reporting Services        Log Shipping

                         AlwaysOn
         Mirroring
                      Master Data Services
Pour aller plus loin…

   Venez nous voir sur le stand SQL Server
     Retrouvez les experts Microsoft et MVP

     Assistez à des présentations des offres de nos partenaires



   Inscrivez-vous au « Virtual Launch Event » du 8 mars :
   http://aka.ms/vlefrance

   Visitez notre nouveau site : http://www.microsoft.fr/sql

   Evaluez dès aujourd’hui SQL Server 2012
     En téléchargeant la RC0 : http://aka.ms/sql2012

     En suivant nos « Virtual Labs » : http://aka.ms/sqllabs

La sécurité avec SQL Server 2012

  • 1.
  • 2.
    La Sécurité avecSQL Server 7 février 2012 Jean-Pierre Riehl Pascale Doz MVP SQL Server Consultante SQL Server AZEO Indépendante Jean-Pierre.Riehl@azeo.com pascale@pascale-doz.com
  • 3.
    AZEO, LE PARTENAIREMICROSOFT incubateur de talents Pure-Player innovant focalisé sur la création de valeur Infrastructure, Collaboratif, Développement, Communication Gold Partner dans toutes nos Practices AZEO ACCOMPAGNE DURABLEMENT l’évolution de votre système d’informations AZEO ENRICHIT LA CREATION DE VALEUR grâce à un réseau de partenaires sélectionnés AZEO DEVELOPPE VOTRE TALENT et accélère votre réussite
  • 4.
    Agenda Back to Basics Contrôle d’accès Protection des données Surveillance SQL Server 2012
  • 5.
  • 6.
    Back to Basics « La sécurité dépend du risque » « La sécurité est alignée sur le maillon le plus faible » « Principe du moindre-privilège »
  • 7.
    A retenir Back to Basics Accès Protection Surveillance
  • 8.
  • 9.
    Surface d’exposition Limiter les ouvertures  Composants  Endpoints Principe du moindre privilège Pensez à l’ensemble de votre SI
  • 10.
    Accéder à SQLServer Principals  Login vs User A la base, il y a toujours un Login  Mode intégré ou mixte  Permet de se connecter à l’instance SQL Le User/Certificat permet d’utiliser la base de données  Donne un contexte au login  Attention aux utilisateurs guest / dbo Rôles (serveur ou base de données)
  • 11.
    Authentification La bonnepratique : Utilisation de la sécurité Windows  Gestion centralisée avec Active Directory  Respect des politiques d’entreprise  Pas de gestion de mot de passe Mais toujours un besoin de la sécurité SQL pour les « clients » non-windows
  • 12.
    Accéder à SQLServer Securables  De l’instance SQL aux objets On donne ou refuse l’accès à un Principal  GDR : GRANT, DENY, ou REVOKE Principe de résolution : 1. Définition du contexte de sécurité 2. Echec s’il y a au moins un DENY 3. Succès s’il y a au moins un GRANT Attention au principe de l’Ownership Chain Attention au Cross-Database Ownership, trustworthy
  • 13.
    Accéder à SQLServer Quelques bonnes pratiques :  Authentification intégrée, politique de mot de passe  Pas d’utilisation de dbo ou sysadmin  Utilisation des SCHEMAS  Cloisonnement  Principe du moindre privilège
  • 14.
  • 15.
    Une histoire declés Service Master Key : niveau instance Database Master Key : niveau base de données Clés asymétriques Certificats Clés symétriques Importance des sauvegardes !
  • 16.
    Une histoire declés Extensible Key Management : EKM • Nouveauté de SQL Server 2008 • Exportation de la gestion des clés dans une appliance dédiée • Hardware Security Module (HSM) Ex : Arx PrivateServer, Thales nCipher, SafeNet Luna
  • 17.
    Chiffrement des données Ne remplace pas la politique d’autorisations Protection « In-depth » Différentes granularités  Serveur : géré par Windows (EFS ou BitLocker)  Base de données : Transparent Data Encryption  Données : fonctions de chiffrement Différents algorithmes : DES, TRIPLE_DES, AES (128, 192, 256) Attention au canal de communication
  • 18.
    Chiffrement des données Transparent Data Encryption  Pas d’action de l’utilisateur : transparent  Chiffrement des fichiers MDF et LDF  Chiffrement dans TempDB  Chiffrement des backups  Les buffers en mémoire ne sont pas chiffrés  Impact en performance : 3 à 5% (sur un TPC-C) mais 28% de CPU en plus
  • 19.
    Chiffrement des données Transparent Data Encryption --création de la DEK CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_128 ENCRYPTION BY SERVER CERTIFICATE aCert; --activation de l’option ALTER DATABASE maBase SET ENCRYPTION ON;
  • 20.
    Chiffrement des données Cell-Level Encryption  Chiffrement explicite de l’utilisateur  Impact sur les applications  Granularité fine  Attention aux « dictionnary-attack »  Utilisation des fonctions : EncryptBy, DecryptBy, SignBy, VerifySignedBy, etc.
  • 21.
    SQL Injection C’est l’attaque la plus fréquente Pour s’en protéger :  Politique d’autorisation  Principe du moindre privilège  Proscrire le SQL Dynamique  Utiliser des requêtes paramétrées  Utilisation de SqlParameter  Contrôler les saisies  Utilisation des regexp  Utilisation de QUOTENAME(), REPLACE()
  • 22.
  • 23.
    Policy-based Management Policy:  Evaluer des Conditions sur les Facets du serveur Possibilité de les évaluer  À la demande  Planifiée  On Change
  • 24.
    DDL Triggers Triggers sur les instructions DDL  CREATE, ALTER, DROP etc. , Scope Base de données ou Serveur Transactionnel Permet de rajouter du code :  Annulation de la transaction  Application de règles métier Event Notification (basé sur service Broker / asynchrone)
  • 25.
    AUDIT Permetde tracer ce qu’il se passe sur un serveur Distinction entre le lieu ou on trace et ce qu’on trace  CREATE SERVER AUDIT  CREATE XXX AUDIT SPECIFICATION Granularité fine  Limitation à des utilisateurs particuliers  Limitation à un scope particulier (objets, actions) Basé sur le moteur d’événements Plus performant que la TRACE
  • 26.
    Events et TRACE Le système d’événements est à la base des fonctionnalités de monitoring On peut utiliser les événements pour réagir dans « l’application »  Traitement des événements via le Service Broker CREATE EVENT NOTIFICATION ev ON SERVER FOR CREATE_DATABASE TO SERVICE ‘serv La TRACE est optimisée pour ne pas perturber l’activité  Pas de packaging XML La TRACE est exploitée en dehors de SQL Server
  • 27.
  • 28.
    Nouveauté ! ContainedDatabases Séparation du lien avec l’instance Isolation de la base  Plus besoin de LOGIN pour les utilisateurs Utilisation  Pratique pour la mise en place du mirroring (AlwaysOn)  Pratique pour les éditeurs
  • 29.
  • 30.
    Conclusion Principe du moindre privilège Audit régulier (temps réel ) Pensez la sécurité au niveau du SI
  • 31.
    Mais encore… Analysis Services Data Quality Services Power Pivot Integration Services Service Broker Réplication Reporting Services Log Shipping AlwaysOn Mirroring Master Data Services
  • 32.
    Pour aller plusloin… Venez nous voir sur le stand SQL Server  Retrouvez les experts Microsoft et MVP  Assistez à des présentations des offres de nos partenaires Inscrivez-vous au « Virtual Launch Event » du 8 mars : http://aka.ms/vlefrance Visitez notre nouveau site : http://www.microsoft.fr/sql Evaluez dès aujourd’hui SQL Server 2012  En téléchargeant la RC0 : http://aka.ms/sql2012  En suivant nos « Virtual Labs » : http://aka.ms/sqllabs

Notes de l'éditeur

  • #10 PascaleLe pire est rare, mais jamais decevantIl faut tout d’abord maitriser la Surface d’exposition de l’instance SQL ServerCeci se pense en globalité dans le SIComment se place mon Instance SQL dans mon Système d’informationutilisation et droit du compte de service dédiéListe des services : SQL Browser, etc.Endpoints : TCP 1433, BrokerOn peut citer des fonctions à désactiver : CLR IntegrationRemote use of a dedicated administrator connectionOLE Automation system proceduresSystem procedures for Database Mail and SQL MailAd hoc remote queries (the OPENROWSET and OPENDATASOURCE functions)xp_cmdshell availability
  • #13 PascaleFin: JPDémo: cross databaseownership JPR
  • #16 JPCommentaire éventuel de Pascale
  • #19 JPRPour les buffers, considérez les dump mémoireDémo: Pascale
  • #26 PascaleDémo JP
  • #28 Surcout divisé par 2 par rapport à la trace
  • #29 TRACE n’est pas sensible au rollback de transactionPush vs. Pull