dimanche 18 mai 2008

[PRIVILEGE ESCALATION]Alert! Your secret is known!

Si vous souhaitez récupérer les mots de passes d'une machine Windows, la solution classique consiste à booter le PC sur un CD. Outre le fait que cela prend pas mal de temps, il est possible d'empêcher le reboot sur le CD en configurant de manière sécurisée le BIOS. Alors comment fait-on ? Il est donc temps de vous présenter fgdump !


Installation

1/ Télécharger la dernière version de fgdump sur : http://swamp.foofus.net/fizzgig/fgdump/downloads.htm

2/ Euh ... c'est tout ! ;)


Utilisation basique

Tout d'abord, nous allons commencer par utiliser fgdump pour récupérer les mots de passe hashés sur la machine locale. Pour cela, nous avons besoin d'un compte ayant les droits d'administrateur sur la machine locale, ce qui est le cas du compte sur lequel nous sommes connectés. Si un antivirus tourne sur la machine (ce que nous osons espérer !), cet utilitaire se chargera de l'arrêter et de le redémarrer pour vous :)

fgdump -O 32 -v

Avec -O (optionnel) pour spécifier que la machine utilise une architecture 32 bits (sinon, 64) et -v pour "verbose". Nous obtenons les résultats suivants :



Nous voyons que l'opération a réussi. En plus d'informations utiles (comme la version exacte de l'OS), fgdump génère plusieurs fichiers dont le fichier 127.0.0.1.pwdump. Nous y trouvons notamment les informations concernant le compte jer001 qui est notre cible :

jer001:1013:B34CE522C3E4C8774A3B108F3FA6CB6D:B9F917853E3DBF6E6831ECCE60725930:::

Si de plus ce compte dispose de plus de droits que nous en avons actuellement, cela nous permettra de réussir une escalade de privilèges.

Encore faut-il cracker ce mot de passe ... John ! L'outil que nous allons utiliser est john-the-ripper, certainement le cracker de mot de passe offline le plus connu (téléchargeable à l'adresse http://www.openwall.com/john/).

john-386.exe --users=jer001 127.0.0.1.pwdump


Ensuite, pour afficher le mot de passe, nous utiliserons en plus un petit script, d'un autre agent que vous connaissez certainement ;) (Agent M.A) que je remercie au passage. Ce dernier permet d'obtenir la casse du mot de passe, ce que le cracker ne nous fournit pas.



Utilisation avancée

Parmi les options proposées par fgdump, voici les commandes qui me paraissent intéressantes :

1/ Fournir un nom pour obtenir le nom des répertoires partagés. Une fois le compte jer001 compromis, nous l'utilisons ainsi :

fgdump -u jer001 -O 32 -v


2/ Si nous auditons un sous-réseau, nous pouvons lancer la commande sur une machine distante avec l'option -h et mieux, une liste de machines distantes avec l'option -f . Nous pouvons faire encore mieux en définissant le nom d'utilisateur et le mot de passe pour chaque machine auditée avec l'option -H . La liste aura alors la forme suivante :

192.168.0.2:jer001:passw0rd
192.168.03:Alice:guess_me
192.168.0.4:Bob:Can_U_Find_Me?
...
Et pour terminer, nous ajoutons la commande -T pour exécuter plusieurs threads simultanément, ce qui permettra de rendre le travail plus rapide. Au final, nous obtenons donc la commande suivante pour tester le réseau :

fgdump -H liste.txt -T 5

Une dernière option intéressante : -s pour retrouver les mots de passe stockés par Outlook et/ou Internet Explorer :

Pour plus d'information, vous devriez lire la documentation des auteurs
ici.

vendredi 25 avril 2008

[Pentesting] [Discovery phase] When relevant information is available ... on the Internet!

Lorsque nous commençons nos tests d'intrusion, il est important d'engranger un grand nombre d'information. Cela constitue autant de piste d'attaque par la suite. En l'occurrence, les identifiants et mots de passe sont des données privilégiées, ainsi que les documents sensibles. Pour faciliter et automatiser une telle recherche, nous allons voir deux outils de la société Edge-Security. Cette dernière vient de sortir une nouvelle version de son outil Metagoofil et il vaut le détour ! Nous allons le voir tout de suite.


Préparation de l'attaque

1/ Commençons par télécharger l'outil à l'adresse suivante : http://www.edge-security.com/soft/metagoofil-1.4.tar.

2/ Dans votre console, décompressez-le :

tar -xvf metagoofil-1.4.tar

3/Installer extract qui est nécessaire pour l'extraction des méta-données des documents.

apt-get install extract

4/ Vérifier que dans le code de metagoofil, le chemin donné pour extract est le bon (fichier metagoofil.py). Sinon, changez-le pour avec le bon path : extcommand='<chemin>'.

C'est tout, vous êtes déjà prêts !


A l'exploration !

L'outil s'utilise de la manière suivante (ex : microsoft.com) :

./metagoofil -d microsoft.com -f xls -l 100 -o microsoft-test.html -t /home/jer/metagoofil/microsoft-test/

Avec :
  • -d ;
  • -f (peut être doc, xls, pdf, ... ou all) ;
  • -l (par défaut 100) ;
  • -t (où seront stockés les documents récupérés).
Ici, nous avons utilisé les formats doc car sinon, avec le paramètre all, l'outil récupérera plus de .pdf qui sont des documents légitimement accessibles sur le WEB ce qui devrait être moins le cas pour les .xls (même si c'est moins vrai dans l'exemple que nous prenons). Puisqu'il s'agit d'une grande entreprise, nous devrions récupérer un maximum d'information. Cela nous demanderait alors par conséquent plus de temps et d'espace disque.

Une fois terminé, nous voyons apparaître les chemins de documents et les noms d'utilisateurs trouvés ainsi que les noms de services de l'entreprise !

Evidemment, nous devons éliminer les informations non pertinentes à ce niveau. Les données ont été récupérées grâce aux champs "auteurs" et "chemin" des documents, eux-mêmes localisés avec des requêtes Google. Cela nous donnes une bonne base et même des formats (de mail ? d'identifiant ?) comme emma.pXXXXXXX. N'oublions pas qu'il peut aussi s'agir de partenaires ou de client de la cible est qu'il est important de trier les résultats. Quoiqu'il en soit, ces données devraient être intéressantes par la suite du test d'intrusion ;)


Les ressources fournies par Metagoofil

Outre l'output sur le terminal, Metagoofil fournit les stocke les documents récupérés dans le répertoire désigné par l'option -t. Vous devriez y trouver des informations très intéressantes sur votre cible ... Dans notre exemple, un tableau contenant le nom de commerciaux et leur numéro interne a été trouvé. Sur une autre requête exécutée sur les .doc, un CV d'un consultant de l'éditeur a été retrouvé.
Aussi, Metagoofil founit un fichier HTLM constituant le reporting de ses recherches. En résumé, nous y trouvons pour chaque fichier (au mieux) :
  • Le titre et descriptif du document ;
  • Le nom de l'auteur ;
  • Le suivi des révision ;
  • Le nom de la dernière personne ayant sauvegardé le fichier pour la dernière fois ;
  • La date de création du fichier et de modification ;
  • L'outil qui a servi a créer le fichier (ex : Acrobat Distiller) voire la version (5.0.2) et même l'OS (ex : Machintosh) ;
  • L'adresse MAC de la machine ;
  • Le chemin où est enregistré physiquement le fichier (et donc certainement un partage ouvert puisque le fichier a été récupéré depuis Internet ...) ;
  • Et souvent des données additionnelles sur les outils utilisés par la cible.
Entre fuite d'information et données importantes pour la suite du pentest, vous avez déjà ici de quoi faire ;) Voici deux examples :




Pour aller plus loin

Pour voir un autre exemple de l'utilisation de cet outil, une vidéo est disponible sur le site d'irongeek.
Pour approfondir vos recherches, il existe un certains nombre de requêtes Google qui peuvent être très utiles. Le site de Johnny LONG (auteur de "Google Hacking") devrait être une bonne source d'information. Son site se trouve ici.
Enfin, Edge-Security propose un autre outil - dans le même ordre d'idée - qui lui est plus focalisé sur la recherche d'adresses emails. Il se base aussi sur le moteur de recherche Google mais aussi le moteur de MSN, le serveur de PGP et le site linkedin. L'outil en question est appelé theHarvester et peut être téléchargé ici. Rapidement, en voici un exemple :

./theHarvester.py -d microsoft.com -l 100 -b google

Avec les options :
  • -d : ici, nous gardons le même exemple ;
  • -l : nombre de résultats limite ;
  • -b : source de l'information parmi Google, MSN, PGP et Linkedin.

Et vous, êtes vous sûrs qu'aucune de vos informations personnelles n'est accessible sur Internet ?

[Social Engineering] Is your money safe?

Tout a commencé par un SMS ... Une nouvelle mission ? Non ! Mais finalement, ça aurait pu le devenir ... Un matin, je reçois un SMS d'une certaine banque que nous appellerons X autre que la mienne. Le texto m'indique que "je" suis à découvert de 51,29€ avec un découvert autorisé de 200€. De plus, il est écrit pour le compte "CC 12345678" (les chiffres et caractères ont volontairement été changés bien sûr). A votre avis, jusqu'où peut nous mener une simple erreur de numéro de téléphone ? Bien plus loin que l'on pourrait le penser ... L'aventure commence !


Avant-propos

Ce post a pour unique but de sensibiliser les personnes et en l'occurrence, beaucoup de gens puisque toute personne ayant un compte bancaire consultable en ligne est concernée... C'est pour cela que les informations sont transformées de sorte à ne pas enfreindre ni la loi, ni la vie privée de la personne incriminée à son insu.


Etape 1 : Récupération de l'identifiant

Je commence par me balader sur le site de la banque comme un simple utilisateur pour signaler l'incident. Dans la partie "contact", outre l'appel surtaxé, je peux remplir un formulaire pour envoyer un mail. Entre autres, je remplis le champs avec le numéro de compte. Aussi, on me propose trois types de compte : "compte chèque, compte titre ou compte épargne". Le CC dans le SMS me fait opter pour un compte chèque (ce dont nous aurions pu nous douter puisqu'il n'existe pas de découvert sur les compte titre et d'épargne). Suite à une erreur dans le formulaire, je suis renvoyé sur la même page et je remarque que le numéro de compte a été modifié : le vrai numéro de compte est en réalité précédé de trois "0". Ok, donc le vrai numéro de compte est 00012345678 (pour reprendre notre exemple factice). J'ai donc à ma disposition le premier élément pour m'authentifier, l'identifiant. La deuxième information à obtenir est le mot de passe...


Etape 2 : Récupération du mot de passe

Je découvre rapidement que le mot de passe est constitué d'un certain nombre de chiffres puisque l'on me propose un clavier numérique. Bon, ça se corse car difficile de contrer ce genre de clavier (quoiqu'il paraît que des programmes malicieux - ou malwares - font des captures d'écran ...). Il y a un bouton "valider" sous le clavier numérique mais je remarque qu'il devient "cliquable" qu'une fois avoir sélectionné 6 chiffres (au hasard, ne connaissant pas le mot de passe). Ok, il y a donc exactement 6 chiffres dans le mot de passe. Reste l'obstacle du clavier mais celui-ci sera très vite déjoué puisque un lien sur la même page du site permet une authentification "autre" en cas de problème. Je clique et hop, je me retrouve sur une page où l'on peut s'authentifier sans clavier numérique mais seulement à l'aide de deux champs de formulaire classique. Sinon, il était joli le clavier :). Pour la petite histoire, au début des claviers numériques, ils ne fonctionnaient que sous IE pour la caisse d'épargne pendant une certain temps. Il suffisait alors d'utiliser un navigateur alternatif comme Firefox.
Quoiqu'il en soit, voilà qui nous simplifie la tâche puisque nous sommes alors en face d'un mot de passe faible voire très faible puisque composé d'exactement (et seulement 6 chiffres). Je pense que vous avez déjà connu plus difficile ;) Nous avons à ce stade suffisamment d'information pour lancer une attaque :
  • L'identifiant ;
  • La forme et la longueur du mot de passe ;
  • Des champs HTML pour tenter une attaque de type brute force.

Etape 3 : Récupération du mot de passe

Malheureusement ici, nous allons tout de suite devoir calmer nos ardeurs car nous entrerions dans un cadre non légal. Cependant, la technique est très simple et expliquée ici car elle peut servir dans de nombreux cas. C'est aussi l'occasion de voir un outil comme Brutus qui nous permet d'appliquer toutes les données récupérées. Normalement, ce logiciel est téléchargeable ici. Il se peut que vous rencontriez des problèmes mais Google est votre ami ;)

Tout d'abord, le panneau principal. Vous devez y choisir :

  • target = la page du site contenant le formulaire ;
  • type = HTTP (form) ;
  • port = 443 ;
  • Authentification options = checker "single user" et entrer le numéro de compte dans le champs User ID ;
  • Pass mode = Brute Force.
Ensuite, cliquer sur le bouton "Range" et le configurer de telle sorte que seuls les mots de passe de 6 chiffres seront tentés comme le montre l'image suivante :

Dernière étape du paramétrage, définir les champs de la page HTML. Brutus peut vous aider. Pour cela, cliquer sur le bouton "Modify Sequence" du panneau général. Une nouvelle fenêtre s'ouvre. Entrez l'adresse de la cible est la page et l'identifiant dans les champs correspondants puis cliquez sur le bouton "Learn Form Settings" :

Une fois trouvé, Brutus montre le fruit de ses recherches . Sélectionner alors le champ correspondant à l'identifiant et cliquer sur "Username". De même avec "Password".

Cliquez sur "Accept" et "OK" des fenêtres ouvertes pour revenir au panneau principal. Il ne vous reste plus qu'à cliquer sur le bouton "start" et l'attaque commence. Pour le post, nous nous arrêterons ici mais je pense que vous avez l'essentiel appris l'essentiel ;)

samedi 19 avril 2008

[CISSP] Learn about pentest

Aujourd'hui cher agent, vous allez devoir progresser dans la théorie ! Or, dans le cadre de l'apprentissage de l'examen CISSP, un module intitulé "Access Control Systems" tient compte des tests d'intrusion. Ce post - assez particulier - se propose de voir les notions à connaître et illustrer certains concepts.


Avant-propos

Le module que nous allons voir fait partie de la liste des 10 domaines à connaître pour réussir l'examen. Plus d'information sont disponible ici. Aussi, des pré-requis sont nécessaires comme des diplômes et quelques années d'expérience. Finalement, il vous faudra atteindre un score de 70% pour obtenir le CISSP. Avant de commencer, je tiens à préciser que ce post ne garantit pas une note quelconque ne serait-ce que pour le module abordé. Cependant, j'espère qu'il vous y aidera ;). Enfin, les diapos d'illustration sont en anglais car les livres que vous trouverez sur le sujet le seront aussi très certainement.


Part I - Quelques concepts à connaître ...

La sécurité informatique, c'est un combat permanent entre les hackers et les entreprises. Chacune dispose de ses caractéristiques et de ses buts, ce que ce premier schéma illustre de manière très simplifiée :



En bleu, nous avons les besoins de l'entreprise (synthétisés par la police de sécurité) alors qu'en noir, les contraintes portées à l'entreprise pouvant être concrétiser par l'attaquant (dont les points forts sont le temps, sa motivation et son esprit de défi par exemple). Pour bien faire la différence entre "Vulnérabilité", "menace" et "risque", prenons pour exemple une machine sous Windows XP SP2. Si une faille, mentionnée par Microsoft par exemple, impacte les machines Windows XP SP2 et moins, alors, il y a vulnérabilité. Si cette vulnérabilité est exploitée par un ver, alors ce dernier représente la menace. Pour terminer, plus les données contenues sur la machines sont sensibles et plus elle est atteignable pour un attaquant, plus le risque est grand (et inversement).

Dans un deuxième temps, le module demande à ce que les solutions de sécurité - en sens large - soient classifiées. Nous trouverons trois types de sécurité (organisationnelle, logique/technique et physique) et deux approches (préventive et post-active). Un exemple pour chacun est fourni ci-dessous :



Pour être précis dans notre classification, nous devons noter que dans une entreprise (organization), plusieurs rôles doivent être définis qui correspondent à des métiers et/ou fonctions. Dans ces rôles, nous trouvons les employés ou aussi utilisateurs au sens SI. Chacun d'eux disposent d'objets tels que des documents par exemple. Cela est très utile pour définir correctement les contrôles d'accès de manière granulaire.

La dernière sous-partie du module demande une connaissance générale des attaques les plus connues. Cette troisième image en fait l'illustration :



Je ne reviendra pas sur ces attaques que vous connaissez certainement déjà. Sinon, n'hésitez pas à vous documenter sur le Net. Enfin, il est toujours possible de poser des questions sur ce blog ;) Tout de même, nous allons voir pour exemple la "SYN Flood Attack" car très largement utilisée et d'ailleurs, c'était le sabre utilisé pour la dernière grande attaque portée contre les serveurs DNS racines d'autant plus que des scripts rendent l'attaque très simple. Pour comprendre, il faut savoir qu'une connexion s'établit en trois temps :
  • Le client envoie une requête "SYN" au serveur ;
  • Le serveur répond par un "SYN/ACK" pour confirmer la demande ;
  • Le client doit alors confirmer par un "ACK".
Si ce troisième échange n'a pas lieu, le serveur reste en attente jusqu'à provoquer un timeout. Pour chaque demande en cours, une socket est occupée. Alors si un certain nombre de machines effectuent ce genre de requête en laissant en attente les communications, nous sommes bien dans le cas d'un DDoS attaque basée sur le SYN Flood.


Part II - Les tests d'intrusion

Avant de commencer un test d'intrusion, il est très important de le définir avec l'entreprise. Il existe de nombreuses combinaisons en fonction des besoins :
  1. 1) S'agit-il d'un test interne ou externe ?
  2. 2) S'agit-il d'un test en boîte blanche, grise ou noire ?
  3. 3) Jusqu'où doit-on dérouler le test ? (en suivant la démarche logique quoiqu'il en soit)


Pour bien aborder le concept de contrôle d'accès, il est nécessaire maintenant de comprendre ce qu'est l'identification et l'authentification. C'est le but du slide suivant :



Il y a donc trois façon de s'authentifier : A partir de quelque chose que l'on est, que l'on sait ou que l'on a. Il est possible de combiner plusieurs éléments. Nous parlons d'authentification forte à partir du moment que deux éléments ou plus sont combinés (par exemple, une carte à puce contenant le certificat d'authentification, cette première étant protégée par un code PIN).
En l'occurrence, lorsque nous parlons d'authentification, il est important de connaître ce que la biométrie et le SSO (pour Single Sign On) :



Il existe de nombreux systèmes de SSO mais il en est un que nous utilisons tous les jours : Kerberos. C'est pourquoi nous le prenons pour exemple ici :



Ensuite, le contrôle d'accès a pour objectif d'assurer l'intégrité, la confidentialité et la disponibilité des données. Or, généralement, celles-ci sont contenues dans les bases de données (BDD). Le lecteur doit donc connaître les principes des BDD et du langage associé, SQL.



Pour terminer, le chapitre, nous traitons des solutions de sécurité de type IDS dont SNORT est le plus connu en tant que solution Open Source. Même si l'image suivante n'est pas animée, elle illustre ce dernier point :



Il y a ici deux notions à comprendre. Un IDS peut fonctionner de deux manières différentes et nous avons alors :
  • mode IDS-Système ;
  • mode IDS-Réseau.
Mais attention, un même outil, comme SNORT encore une fois, peut être configuré dans chacun de ces deux modes. La différence est que dans le premier cas, la sonde IDS pourra vérifier les éléments du système (exemple : les logs) alors que dans le deuxième cas, la sonde fonctionne en temps réel pour analyser les paquets transitant sur le réseau et sera plus utile pour détecter une attaque en cours. Enfin, il faut savoir qu'une sonde IDS travaille à partir de "patern matching" de signatures et de contrôle de comportement basé sur des règles.


Conclusion

Voilà un résumé pour vous préparer à ce module. Néanmoins, il est indispensable d'approfondir toutes ces connaissances pour être capable de répondre aux questions du CISSP. Pour ceux que cela intéresse, je peux envoyer la présentation sur simple demande. Aussi, n'hésitez pas si vous avez des questions ;)

mercredi 16 avril 2008

[PENTESTING][Privilege Escalation] Get the power on Win XP!

Lors des tests d'intrusion internes, l'une de nos missions est de vérifier les possibilités d'escalade de privilèges sur les postes de travail à partir d'un compte ou non. La première chose qu'un agent tel que vous pensera à faire, c'est de vérifier s'il est possible de gagner un compte administrateur en démarrant l'OS sur un Live CD. Cette fois, nous allons plus loin, nous cherchons à gagner les droits SYSTEM !


Prérequis

Je tiens à préciser que je n'ai rien inventé. ce post a juste pour vocation d'illustrer la faille. En terme de conditions de tests, nous avons, comme le montre ce premier screenshot :
  • une machine sous Windows XP patchée
  • un compte administrateur, jer001, que nous supposerons avoir obtenu grâce au crackage du mot de passe après avoir récupéré la base SAM (en bootant sur un Live CD).




La prise de pouvoir !

Pour commencer, lancer l'invite de commande pour y taper le code suivant :



at 18:07 /interactive "cmd.exe"

Plus précisément, il était 18h06 au moment de l'exécution de la commande. Nous choisissons la minute suivante pour que le commande s'exécute bientôt. Ensuite, pour vérifier, nous tapons tout simplement :

at

A l'heure donnée, ici 18h07, une invite de commande se lance. Gardons-là ouverte, elle va nous servir juste après. Pour l'instant, allez dans la lite des tâches (ou task manager) pour y arrêter le processus explorer.exe.



Retrouver la fenêtre avec l'invite de commande lancée automatiquement pour y taper :

explorer.exe




Après quelques paramétrages de la part de l'OS, le compte SYSTEM est à vous !


mercredi 26 mars 2008

[Security Solution] [Ops Mgr 2007] Be careful to not be catched!

Operations Manager (Ops Mgr) est l’outil de supervision proposé par Microsoft. Anciennement appelé MOM (pour Microsoft Operations Manager), cette nouvelle version propose des fonctions de sécurité dont le chiffrement de bout en bout. Si cette solution est capable d’auditer des événements de toute nature, l’article focalisera sur les aspects sécurité.


Etape 0 : Définition du traitement de l’information

Afin de cadrer notre sujet, il est important de distinguer les différentes étapes du traitement de l’information :
  • La collecte qui consiste à récupérer les informations par des agents généralement.
  • L’agrégation qui consiste à rassembler les informations et de les transférer vers un composant d’exploitation des données.
  • La consolidation qui consiste à exploiter les informations (statistique, reporting, …) qui sont rassemblées et enregistrées dans une base de données associée ;
  • La corrélation qui consiste à exploiter l’information de manière intelligente, basée sur des règles et une intelligence artificielle. Cela permet par exemple de déterminer une attaque grâce à la corrélation de plusieurs alertes.
En l’occurrence, la supervision d’un Système d’Information va de la collecte des données à leur consolidation.


Etape 1: Classification des données

Ce sont les données auditées qui détermineront la suite, c'est-à-dire le choix de l’outil, l’architecture, l’installation des composants et les configurations par exemple. Les questions suivantes devraient aiguiller le choix de l’entreprise :
  • Quel est le but de la collecte ? (détection d’attaque, statistiques, reporting, …) ;
  • Quel est l’existant de l’entreprise ? (solution de supervision déjà mise en place, logs déjà centralisés, alertes déjà remontées, incidents déjà traités, …) ;
  • L’entreprise est-elle exposée ? (accès Internet, serveurs applicatifs en frontal, accès VPN, …) ;
  • L’entreprise est-elle ciblée ? (peu ou de nombreux incidents ont-il été détectés ? Quelle est la criticité de ces incidents ?) ;
  • Quelles sont les moyens mis à disposition ? (Espace disque, bande passante, et autre performance matérielle) ;
  • Quelle est la nature des données transitant sur les réseaux de l’entreprise ? (informelle, critique, top secret, …) ;
  • Etc.
La liste établie, l’étape suivante consiste à déterminer des catégories d’information comme :
  • Les contrôles d’accès (ex : les tentatives de connexion) ;
  • La sécurité de l’administration des serveurs (ex : gestion du domaine) ;
  • La sécurité des ressources (ex : l’accès aux données sensibles) ;
  • La sécurité des traces (ex : les règles de traçage) ;
  • Etc.
Pour terminer, nous classons l’information par criticité :
  • Le niveau critique qui demande une action urgente pour éviter un risque de compromission et de propagation ;
  • Le niveau intermédiaire pour les évènements à traiter dès que possible et les preuves dans le cadre d’une investigation ;
  • Le niveau basic pour les évènements additionnels qui nous apporterons des éléments nécessaires pour une action de forensics ou d’incident sécurité général.

Etape 2: Le choix de l’architecture

Nous supposons maintenant que le choix de la solution est Operations Manager 2007 qui nous servira donc d’exemple dans le reste de cet article. En voici les composants de sécurité :
  • Le Root Management Server (RMS) : ce rôle est indispensable. C’est le point central de l’architecture et d’où seront déployées les configurations ;
  • Le Management Server (MS) : rôle intermédiaire entre le RMS et les agents (ou le rôle Gateway Server). Il a le rôle de consolidation des informations ;
  • L’Audit Collector Server (MS-ACS) : il s’agit d’un MS particulier chargé de traiter les informations de sécurité. Ils sont reliés à une base de données dédiées aux évènements de sécurité, l’Audit Database ;
  • Le Gateway Server : ce rôle est une passerelle qui permet notamment de traverser des zones réseaux en assurant la sécurité des communications. A ce niveau, nous parlons d’agrégation de l’information ;
  • Les Agents : ils ont pour but de superviser les serveurs ou les postes de travail. Ils ne sont pas indispensables car il existe un mode sans agent mais cela n’est pas recommandé d’un point de vue sécurité. Une fois l’agent installé sur une machine, nous pouvons configurés des Management Packs (MP), c'est-à-dire des modules dédiés à la supervision de machines particulières. Par exemple, il existe un MP Exchange 2007.
Etape suivante, le design de l’architecture. Il dépend de l’existant et des besoins de l’entreprise mais voici des principes de bonnes pratiques :
  • Installer un rôle ACS par chaque zone cloisonnée du périmètre pour assurer que tous les évènements souhaités sont remontés ;
  • Relier chaque ACS à une base Audit Database dans le même sous-réseau ;
  • Installer chaque ACS sensible en cluster ;
  • Relier les ACS à un RMS, le dernier devant être dans une zone sécurisée puisqu’il contient l’ensemble des informations de l’entreprise ;
  • Installer le rôle Gateway Server avant de traverser un pare-feu. Ainsi, une seule connexion est à ouvrir entre les deux zones ;
  • Installer des agents sur les serveurs et machines à auditer. En effet, le mode sans agents utilise des flux RPC et DCOM non protégés ;
  • Eviter au mieux le déplacement d’information sensible ;
  • Eviter au mieux la transmission d’information sur des réseaux externes ou non sécurisés (cas des entreprises internationales).

Etape 3 : Sécuriser les échanges

Par défaut, les authentifications reposent sur le protocole Kerberos v5. Cependant, il est possible de mettre en place une authentification mutuelle basée sur SSLv3.
Dans le cas où les agents et le MS ne sont pas installés sur le même domaine, l’authentification via Kerberos n’est plus possible. Par conséquent, seul SSL peut apporter la sécurité suffisante. A noter que l’exemple donné entre les agents et le MS est valable aussi entre les agents et un Gateway Server, deux MS dans un même domaine ou un MS et un RMS par exemple.
Si l’entreprise fait le choix de mettre en place une authentification avec SSL, il est recommandé d’utiliser les certificats de la PKI groupe de la compagnie.

Une fois les composants authentifiés, la communication repose sur la même sécurité que le protocole d’authentification, c'est-à-dire Kerberos ou SSL. En général, il est recommandé de mettre en place SSL dans les cas suivants :
  • les données traversent deux zones et/ou deux domaines différents ;
  • les données traversent une zone externe (comme l’Internet) ou non de confiance.

Etape 4 : La gestion des rôles, des comptes et des droits

Etape 4.1 : Au niveau de l’agent

L’agent doit disposer de droits suffisants pour récupérer les évènements de sécurité (notamment les Event logs de Windows par exemple). En fait, l’application des droits se fait sur un compte de service nommé agent action account. Pour fournir un minimum de droit, nous devons lui attribuer un compte de domaine avec les droits suivant uniquement :
  • Membre du groupe Local Users ;
  • Membre du groupe Performance Monitor Users ;
  • Attribuer le droit Allow log on locally.
S’il s’agit des droits minima requis, en réalité, les droits nécessaires dépendent aussi des Management Packs déployés et des politiques de sécurité de l’entreprise.

Quant au déploiement des agents, ils requièrent des droits administrateurs via un compte dédié. Ce dernier peut ensuite être supprimé. En pratique, le déploiement pourra être réalisé par un outil tel que SCCM.

Etape 4.2 : Au niveau des serveurs

En premier lieu, un compte de service est aussi activé sur chaque composant de la solution de supervision. Les droits à attribuer sont similaires, la contraintes des Managements Packs en moins.

Ensuite, le rôle des administrateurs doit être défini pour chacun afin de lui attribuer l’un des rôles fournis par Ops Mgr. Il est important de profiter de la granularité des profiles proposés par la solution. Les rôles en question sont : Administrator, Author, Advanced Operator, Operator, Read-Only Operator et Report Operator.


Conclusion

La supervision sécurité est un sujet indispensable pour se prémunir des attaques informatiques. Autant se faire attaquer peut être grave pour l’entreprise, autant se faire attaquer et ne pas le savoir n’est pas concevable. Aussi, il est important de savoir que la supervision demande un travail en amont (la classification des informations) et en aval (comme la corrélation et la détection d’attaque) afin que le projet fournisse un réel bénéfice à l’entreprise.


NB : Bientôt, vous trouverez sur Internet une version plus longue ... patience et bonne recherche cher agent ;)

jeudi 20 mars 2008

[Security Solution] [MAIL] Exchange 2007

Exchange 2007 est la nouvelle solution de messagerie proposée par Microsoft. En comparaison avec la dernière version, datant de 2003, de nombreuses fonctionnalités ont été apportées, notamment en termes de sécurité. En tant qu’agent, vous pouvez être amenés à auditer la messagerie de l’entreprise. Alors pour avoir tous les atouts de votre côté, mieux vaut connaître l’outil et trouver les pistes d’exploitation au fur et à mesure de la lecture de cette nouvelle mission. En six étapes, nous allons étudier les points de sécurité que nous pouvons rencontrer, qu’il s’agisse d’une attaque interne ou externe. Dans la situation inverse, s’il s’agit de votre messagerie, vous connaîtrez ainsi les points qui devraient être sécurisés.


Etape 1: La sécurité de l'architecture

Exchange 2007 est constitué de cinq rôles qui sont appliqués sur les serveurs lors de l’installation. Puisqu’ils peuvent être mutualisés, prendre la main sur un rôle pourra nous donner des droits sur un autre rôle installé sur le même serveur physique. Plus précisément, ces rôles sont :
  • Rôle Mailbox : Normalement placé dans le LAN interne de l’entreprise car ces serveurs hébergent les bases de données contenant les emails et les profils utilisateurs et donc les données sensibles. C’est pour cela que pour des raisons de disponibilité du service de messagerie, des clusters devraient être installés. Sinon, ils pourraient être sensibles à des attaques de type DoS. A savoir : les serveurs Mailbox sont directement et étroitement liés aux serveurs AD… Dans le pire des cas, supprimer un compte de messagerie supprime un compte AD et la création d’un compte de messagerie ? Concernant les droits des administrateurs, ils ont été séparés les droits entre la messagerie et l’AD … depuis cette version d’Exchange seulement …;
  • Rôle Hub Transport : Connecté aux serveurs Mailbox, ces serveurs doivent être séparés par un pare-feu. Ils représentent en fait les relais SMTP. En général, le serveur Hub Transport est installé par domaine. Attention, mal configurés, ils peuvent être reliés directement à l’Internet … ;
  • Rôle Client Access Server (CAS) : Connecté aux serveurs Mailbox, ce serveur fournit les fonctionnalités de messagerie à distance (cf. Etape 3). Selon que le rôle Edge Transport est installé ou non, le CAS est le plus exposé à l’Internet et y est installé un serveur IIS. Nous devrions donc vérifier qu’il n’existe pas de faille sur le serveur WEB ;
  • Rôle Edge Transport : Rôle non obligatoire. Il sert de sas entre l’Internet et le CAS. Il sera alors placé dans une DMZ. Un grand nombre de propriétés de sécurité sont définies ici tandis qu’elles seront configurées sur le Hub Transport s’il n’est pas prévu d’utiliser le rôle Edge Transport
  • Rôle Unified Messaging : Ce type de serveur a surtout pour objectif d’apporter des fonctionnalités liées à la messagerie unifiée tel que la vidéo-conférence ou la synchronisation avec la VoIP par exemple. Avis aux experts !




Etape 2: La sécurité des serveurs de messagerie

Chaque rôle devrait avoir subi un hardening. Quelque soit le rôle traité, seuls les services nécessaires devraient être lancés et seuls les programmes nécessaires devront être installés. Cela peut être fait avec le Security configuration Wizard (SCW) de Windows. Ensuite, des ACL devraient être imposées sur les dossiers créés et notamment les dossiers publiques sur les serveurs Mailbox tandis qu’ils devraient être déconnectés, ils devraient ...
Pour tous les serveurs, une politique de rôles d’administration devraient être appliquée en appliquant une gestion des droits. Six profiles différents sont prédéfinis nativement dans Exchange 2007, le but étant d’appliquer le principe de « moindre privilège ». Ici, il faut miser sur des rôles attribués de manière trop laxiste.

Ensuite, nous un antivirus dédié et une solution anti-spam devraient être installés. Qu’il s’agisse de la solution Forefront Security for Exchange proposée par Microsoft ou non selon ses besoins, les solutions retenues utilisent normalement une architecture 64bits et proposent des protections adéquates pour ce système de messagerie. Il faudra donc identifier la présence puis la nature de ces solutions si nous avons besoin de les contourner.
Pour terminer sur la partie serveur, ces derniers devront bénéficier d’une solution de backup, de monitoring et de haute disponibilité. Si ce n’est pas le cas, il sera plus facile de ne pas laisser de traces pour l’attaquant.


Etape 3: La sécurité des clients de messagerie

Les clients de messagerie sont Outlook 2007 (client lourd), OWA (Webmail) et Outlook Anywhere (Outlook avec accès distant).


Etape 3.1 : Authentification

Exchange 2007 peut bloquer les communications entre un serveur Mailbox et une version d’Outlook autre que 2007. Ensuite, il faut savoir que les fichiers personnels de l’utilisateur, et donc sensibles, sont présents sur chaque poste client mais non chiffrés … La solution proposée par Microsoft est d’utiliser le chiffrement EFS ou BitLocker.

Concernant OWA, l’authentification par défaut s’effectue via un mot de passe et utilise le protocole Kerberos ou NTLM en cas d’échec. Il se trouve que des outils comme rozntlm permettent de tester les connexions NTLM … Il est cependant possible d’utiliser une authentification forte reposant sur des Smart Cards avec code PIN pour chiffrer les communications via SSL.

Quant à Outlook Anywhere, l’authentification se fait par mot de passe (via NTLM ou le mode Basic) puis les flux peuvent être chiffrés avec SSL. Pour cela, il conviendra de configurer un serveur IIS sur les serveurs Edge Transport (ou les CAS si non installés).

Etape 3.2 : Limitation des risques de propagation virale et de spams

Outlook et OWA sont capables de filtrer les emails en fonction des extensions des pièces jointes. Plusieurs niveaux de blocage peuvent être configurés.

Les fonctionnalités d’anti-spam proposées reposent des listes (blanches et noires), le contenu des messages (à base de mots clés) et un filtre comportemental.

Enfin, l’Object Model Guard a pour but de vérifier qu’un programme illicite n’essaie pas d’atteindre le carnet d’adresses ou d’envoyer un email avec le profil de l’utilisateur.


Etape 4: La sécurité des communications

Etape 4.1 : La sécurité des communications serveur <-> serveur

La grande nouveauté d’Exchange 2007 est la possibilité de chiffrer les communications en utilisant le protocole SSL/TLS avec authentification mutuelle entre les serveurs via certificats. Si par défaut Exchange propose l’installation de certificats auto-signés il est recommandé de mettre en place des certificats générés par la PKI de l’entreprise et les faire signer par l’autorité de certification racine. Il est aussi possible d’utiliser IPSec à la place de ou en plus de SSL/TLS.

Etape 4.2 : La sécurité des communications serveur <-> client

Autre nouveauté d’Exchange 2007, le chiffrement des communications entre Outlook 2007 et les serveurs Exchange (les serveurs Mailbox pour être précis). Côté client, cette option devraient être appliquée et imposée au client par GPO. Si cela n’est pas le cas, nous pourrons sur le poste client désactiver les options de sécurité en nous baladant dans les menus d’Outlook.


Etape 5: Renforcer le niveau de sécurité

Etape 5.1 : Appliquer les restrictions

Pour des raisons de performance, la taille des emails entrants et sortant et le nombre de destinataires sont certainement limités. Ces restrictions peuvent être contrôlées à plusieurs niveaux : au niveau de l’entreprise, du périmètre Exchange 2007, des connecteurs, des serveurs ou des utilisateurs.

Dans un deuxième temps, il est possible que des listes d’expéditeurs soient paramétrées. Si l’expéditeur fait partie de la liste, plusieurs actions pourront de dérouler : accepter le message, refuser le message ou demander à ce que tous les expéditeurs soient identifiés.

Etape 5.2 : Le filtrage des emails

Avec Exchange 2007, il existe de nombreuses méthodes pour filtrer et/ou traiter les messages à implémenter sur les serveurs Hub Transport pour être sûr que chaque email est traité :

  • Le blocage des emails selon l’extension ou le contenu d’un fichier de type MIME ;
  • Le filtrage des expéditeurs qui se fait sur l’analyse du contenu du champ MAIL FROM.
  • Le filtrage des destinataires dont l’analyse porte sur le contenu du champ RCPT TO ;
  • Identification du serveur SMTP expéditeur : Il s’agit de vérifier que le serveur SMTP envoyant le message appartient bien au domaine auquel il prétend ;
  • Evaluer la réputation de l’expéditeur : grâce à un algorithme, il s’agit d’attribuer à l’expéditeur un niveau de réputation ;
  • Le postmark : Il s’agit d’un marqueur qui est placé dans l’entête de l’email envoyé pour s’assurer qu’il ne s’agit pas d’un courrier indésirable ;
  • Le blocage de l’affichage des images ;
  • La classification des messages : l’expéditeur peut attribuer une classe à son message (ex : « confidentiel »). En fonction de cette classe, une action pourra être exécutée.


Etape 6 : La maintenance du niveau de sécurité

Selon que l’entreprise met en place ou non des actions de maintenance en termes de sécurité, il sera plus ou moins facile pour l’attaquant de percer la sécurité de la messagerie dans le temps :

  • Les outils de vérification tels que Microsoft Exchange Best Practices Analyzer, MBSA, IIS Lockdown tool devraient être lancés régulièrement (ou les contrôles de SCCM) ;
  • La sécurité devraient être évaluée grâce à des tests de vulnérabilité sur les serveurs de messagerie et des audits de configuration sur les serveurs et les clients ;
  • Une gestion des mises à jour devrait assurer que les serveurs ne sont pas exploitables par les nouvelles failles ;
  • Une gestion des traces pour des raisons légales, pour la gestion des incidents et le recouvrement des emails devrait être configurée.


Pour plus d’information, je vous laisse trouver dans quelques jours, sur Internet une version (plus !) longue de ce Post.

Locations of visitors to this page