jeudi 27 mars 2014

Disponibilité des baselines SCM pour SQL Server 2012

Bonjour à tous,

Les baselines SCM pour SQL Server 2012 sont disponibles depuis quelques jours.

Vous pouvez soit télécharger les fichiers cab puis les importer dans SCM, soit passer directement par SCM pour les télécharger et les importer.



L'annonce de la sortie sur le blog Microsoft Security Guidance : SQL Server 2012 Baselines are now live !

Les fichiers en téléchargement direct :
SQL Server 2012 Security Compliance Baseline
SQL Server 2012 Security Compliance Baseline Attachements


samedi 8 mars 2014

Délégation d'administration Active Directory et Powershell


Bonjour à tous.

Je vous propose aujourd'hui un article sur la délégation d'administration Active Directory et Powershell.

Bien évidemment on peut toujours utiliser l'assistant de délégation d'administration ou les commandes dsacls pour mettre en place la délégation d'administration mais il est plus intéressant d'utiliser les fonctionnalités apportées par Powershell.


Avant de commencer il faut déjà parler du lecteur AD:\ qui est créé lors de l'import du module ActiveDirectory.
Lorsque vous importez le module Powershell ActiveDirectory, un lecteur nommé AD est créé et est mappé à un des contrôleurs de domaine.
 


Vous pouvez vous déplacer dans ce lecteur comme dans une arborescence classique de fichier.

 


Par défaut le lecteur est mapper sur le domaine mais il est possible de créer un autre lecteur et de le mapper un autre domaine ou une autre forêt avec la Cmdlet New-PSDrive.



Pour faire notre délégation, on va se servir de ce lecteur et de la Cmdlet Get-ACL.
En effet, on peut récupérer les ACL d'objets Active Directory via notre lecteur.



On récupère un objet de classe ActiveDirectorySecurity.


On va s'intéresser de plus près maintenant aux méthodes proposées par cette classe.
La liste des méthodes la classe est disponible dans le lien suivant : Méthodes ActiveDirectorySecurity

La méthode qui nous intéresse principalement est la méthode AddAccessRule qui permet d'ajouter une règle d'accès à la liste DACL d'un objet.

Le paramètre de cette méthode est un objet de classe ActiveDirectoryAccessRule qui représente une entrée de contrôle d'accès (ACE) dans la liste de contrôle d'accès discrétionnaire (DACL).

Nous allons donc voir comment construire des objets de classe ActiveDirectoryAccessRule.

Il existe différents constructeurs pour initialiser une nouvel objet de classe ActiveDirectoryAccessRule : Constructeurs ActiveDirectoryAccessRule

On utilisera ces différents constructeurs en fonction du besoin.


Prenons un exemple, j'ai une OU nommée Utilisateurs sur laquelle je veux déléguer la création de compte utilisateurs à un groupe nommé "Create User Accounts".

Je commence par récupérer les ACL de l'OU



Maintenant je dois construire mon ACE. J'ai d'abord besoin du SID de mon groupe.



Ensuite j'ai besoin du droit que je souhaite autoriser, à savoir la création d'objet enfant (de type utilisateur). La liste des droits est disponible ici : ActiveDirectoryRights


 Puis du type de contrôle d'accès qui est autoriser : AccessControlType


Et enfin le GUID du type d'objet auquel la règle d'accès doit s'appliquer, les objets de type utilisateur. Les GUID des classes d'objets sont disponibles ici : All Classes



On peut maintenant créer notre ACE.


Puis l'ajouter aux ACL de notre OU.


Et c'est terminé. On peut vérifier que la délégation a bien été faite.



Je n'irai pas plus loin dans la démonstration, ça peut paraitre au premier abord assez laborieux.
Une fois qu'on a jonglé avec les différents constructeurs ça devient vite compréhensible.

Voici le code que j'ai utilisé :

$ACL = Get-Acl "AD:\OU=Utilisateurs,DC=ROOT,DC=ADDS"

$Group = Get-ADGroup "Create User Accounts"

[System.Security.Principal.SecurityIdentifier] $SID = $Group.SID
[System.DirectoryServices.ActiveDirectoryRights] $ADRights = "CreateChild"
[System.Security.AccessControl.AccessControlType] $AccCtrlType = "Allow"
[System.guid] $GUID = "bf967aba-0de6-11d0-a285-00aa003049e2"

$ACE = New-Object -TypeName System.DirectoryServices.ActiveDirectoryAccessRule -ArgumentList $SID,$ADRights,$AccCtrlType,$GUID

$ACL.AddAccessRule($ACE)
$ACL|Set-ACL


L'intérêt est bien évidemment de pouvoir scripter un déploiement complet du modèle de délégation en utilisant les autres fonctionnalités de Powershell.

Je travaille en ce moment sur une autre série d'articles sur la délégation d'administration, je fournirai à chaque fois le code Powershell correspondant.

J'espère que cet article vous aura intéressé.

A bientôt et bon scripting

Durcissement des Systèmes, les ressources et solutions disponibles


Bonjour à tous,

On va continuer la série sur le Durcissement des Systèmes avec un article sur les ressources et les solutions disponibles pour mettre en œuvre du Durcissement sur des systèmes Microsoft dans votre infrastructure.

Dans cet article je vais juste vous faire une présentation des solutions, je détaillerais plus en profondeur celles que je trouve pertinentes dans des articles qui leurs seront dédiés.

On va débuter avec un peu de littérature. Il n'y a malheureusement pas beaucoup de ressources sur le sujet mais on peut néanmoins citer les ressources suivantes.


Benchmarks du Center for Internet Security (CIS)

Le Center for Internet Security (CIS) est une organisation à but non lucratif qui vise à améliorer la cybersécurité des entités des secteurs public et privé. Le CIS dispose d'une division dédiée aux benchmarks de sécurité. La mission de cette division est d'établir et promouvoir les meilleures pratiques de sécurité au travers de guide et d'outils.

Les Benchmarks sont publiés régulièrement par version de système d'exploitation.
Ils sont vraiment orientés durcissement local avec une distinction du niveau de sécurité pour les Contrôleurs de Domaine dans le cas de système d'exploitation de type Serveur.

Les documents ne sont pas très "digestes" et difficiles à exploiter mais ils ont le mérite d'exister et il peut être intéressant de les consulter pour comparer par exemple les recommandations entre différentes solutions.

Les Benchmarks sont en téléchargement libre, il faut juste répondre à 3 questions par oui ou non.

Le site du CIS : Center For Internet Security
Le site de la division Benchmarks : CIS Security Benchmarks
Les Benchmarks par Système d'Exploitation : Benchmarks OS Microsoft


Guides inclus dans Security Compliance Manager (SCM)

Security Compliance Manager fournit des fonctionnalités centralisées de gestion de base de sécurité pour accélérer la capacité de votre organisation à gérer efficacement la sécurité et le processus de mise en conformité des technologies les plus utilisés de Microsoft.



De nombreux guides de sécurité sont inclus dans SCM.
Ce sont pour moi les documents les plus intéressants et les plus exploitables que vous trouverez sur le sujet et qui ne se limitent pas uniquement au durcissement local.

Je reviendrais sur SCM plus en détails dans la suite de l'article.


On a fait le tour je pense de ce que l'on peut trouver comme documentation gratuite sur le sujet.
La NSA publiait des guides de sécurité mais redirige désormais vers le CIS et SCM.

Je vous conseille vraiment de lire les guides de sécurité inclus dans SCM qui sont pour moi les meilleures ressources sur le sujet actuellement.



On va passer maintenant aux solutions permettant de mettre en place du durcissement des systèmes.
Je vais commencer par les solutions incluses nativement dans les systèmes d'exploitation.


Best Practices Analyzer (BPA)

Ça peut paraitre étrange mais je pense que l'on peut déjà commencer par parler de Best Practices Analyzer.



Best Practices Analyzer (BPA) est un outil de gestion serveur qui est disponible depuis Windows Server 2008 R2. BPA va analyser les rôles installés sur votre serveur et vérifier que vous respectez bien les bonnes pratiques.

La portée de l'outil reste limité mais ça peut-être un début pour vérifier que vos serveurs sont correctement configurés en fonction des rôles qu'ils hébergent.

Pour plus d'informations sur BPA : Best Practices Analyzer


Security Configuration Wizard (SCW)

Un autre outil qui est inclus nativement dans les systèmes d'exploitation serveur.



Security Configuration Wizard vous guide à travers les étapes de création, de modification, d’application et d’annulation d’une stratégie de sécurité. Une stratégie de sécurité créée à l’aide de l’Assistant est un fichier .xml qui, lorsqu’il est appliqué, configure des services, la sécurité du réseau, des valeurs de Registre spécifiques et la stratégie d’audit. SCW est un outil basé sur les rôles : il permet de créer une stratégie qui active des services, des règles de pare-feu et des paramètres nécessaires à un serveur sélectionné pour remplir des rôles spécifiques tels qu'un serveur de fichiers, un serveur d'impression ou un contrôleur de domaine.

On a là un premier vrai outil de durcissement du système relativement simple à prendre en main grâce à l'assistant. Pratique pour sécuriser rapidement un serveur après en avoir fait l'installation, il a l'avantage de générer automatiquement les règles de pare-feu. L’inconvénient principal est qu'il faut une machine avec les rôles déjà installés pour générer une baseline qui pourra être réappliquée sur d'autres machines. On peut aussi transformer une baseline créée via SCW en GPO grâce à la commande scwcmd.

Pour plus d'informations sur SCW : Security Configuration Wizard


Software Restriction Policy (SRP) / AppLocker

On continue avec SRP et AppLocker.

SRP permet de contrôler l'exécution de logiciels sur une machine. En utilisant des stratégies de restriction logicielle on peut empêcher les programmes indésirables de s'exécuter. Cela inclut les virus et les chevaux de Troie ou d'autres logiciels qui sont connue pour provoquer des problèmes. 

AppLocker est une évolution des stratégies de restriction logicielle. AppLocker contient des nouvelles fonctions et extensions qui vous permettent de créer des règles pour autoriser ou refuser des applications de s'exécuter selon identité unique des fichiers et spécifier quels utilisateurs ou groupes pouvant exécuter ces applications.

AppLocker peut être utilisé pour les scénarios suivants :
  • empêcher des logiciels malveillants (programmes malveillants) et des applications non prises en charge d'affecter les ordinateurs dans votre environnement ;
  • empêcher des utilisateurs d'installer et d'utiliser des applications non autorisées ;
  • implémenter une stratégie de contrôle des applications pour respecter les exigences en matière de stratégie de sécurité ou de conformité dans votre organisation. 
 
C'est donc une fonctionnalité très intéressante dans le durcissement des systèmes mais dont la mise en œuvre est assez longue et complexe. Bien utilisé, il peut permettre de limiter les solutions tiers de sécurité qui augmentent la surface d'attaque du système (ex : anti-virus sur certains type de serveur).

Un livre blanc sur AppLocker est disponible dans le lien suivant : AppLocker Design Guide


Je vais m'arrêter ici pour les solutions incluses nativement. On pourrait bien-sûr configurer manuellement les paramètres de sécurité en suivant par exemple les benchmarks du CIS mais ce serai extrêmement laborieux et ce qu'on recherche avant tout est l'industrialisation du processus.


Security Compliance Manager (SCM)

On revient donc sur SCM, SCM est un outil gratuit de l'équipe Microsoft Solution Accelerators qui vous permet de configurer et gérer rapidement les ordinateurs de votre environnement en utilisant les stratégies de groupe. L'outil est fourni avec des baselines déjà configurées en fonction des versions du système d'exploitation ou du produit et de l'utilisation qui en est faite. L'outil propose 3 niveaux de criticité pour les paramètres : critique, important et optionnel.
Chaque paramètre bénéficie d'information sur son utilisation, les vulnérabilités et les contre-mesures associées. 




Attention toutefois à ne pas appliquer directement ces baselines sans les avoir testées !
Elles nécessiteront sûrement des ajustements pour correspondre à vos besoins et à votre environnement.

L'outil propose d'autres fonctions très intéressantes tels que l'export au format DCM qui permet via SCCM de vérifier que vos machines respectent bien vos baselines, l'export des paramètres au format excel pour documenter votre durcissement, l'import de backup de GPO existantes, l'export de vos baselines en backup de GPO pour les intégrées dans vos masters ...

C'est mon outil principal de durcissement et une excellente source d'information avec les guides et les informations de chaque paramètre.

L'outil est disponible dans le lien suivant : Security Compliance Manager


Attack Surface Analyzer (ASA)

On continue avec Attack Surface Analyzer. Cet outil permet d'identifier les modifications apportées au système d'exploitation et à sa surface d'attaque lors de l'installation d'une application.
Son fonctionnement est relativement simple. ASA prend un instantané de l'état du système avant et après l'installation du produit et affiche les modifications apportées à un certain nombre d'éléments clés de la surface d'attaque de Windows.




C'est un très bon outil facile à utiliser mais qui doit s'inscrire dans un process de développement ou de pré-production. Son utilisation est donc plutôt réserver aux infrastructures ayant une très bonne maturité dans leur politique de sécurité.

L'outil est disponible dans le lien suivant : Attack Surface Analyzer


Enhanced Mitigation Experience Toolkit (EMET)

EMET est un outil qui empêche l'exploitation des vulnérabilités logicielles. EMET y parvient grâce à l'utilisation de technologies de réduction des risques de sécurité. Ces technologies fonctionnent comme des obstacles et des protections, que l'auteur d'une attaque doit mettre en échec pour pouvoir exploiter les vulnérabilités logicielles. Ces technologies de réduction des risques de sécurité ne garantissent pas que des vulnérabilités ne puissent pas être exploitées. Toutefois, elles font en sorte que l'exploitation soit aussi difficile que possible.



EMET est pour moi un outil plus orienté poste de travail et qui peut apporter un niveau de sécurité supplémentaire.

L'outil est disponible dans le lien suivant : Enhanced Mitigation Experience Toolkit 4.1


Je vais m'arrêter ici, il existe sûrement d'autres solutions permettant de faire du durcissement.
J'espère que cet article vous a intéressé et que vous avez découvert de nouveaux outils.
Je reviendrais plus en détails sur certaines de ces solutions dans de nouveaux articles.

A bientôt.