OVH Cloud OVH Cloud

Systeme de gestion des vulnerabilites

9 réponses
Avatar
jnury
Bonjour,

je pensais l'autre jour à un système qui permettrait de gerer les
vulnérabilités d'un parc informatique hétérogène. J'ai résumé cette
idée ici : http://www.galipeur.com/sah

Je me demande si celà n'éxiste pas déjà, si ça interesserais qqun à
part moi etc...

Toutes les idées/commentaires sont les bienvenus :)

Cordialement

Julien Nury

9 réponses

Avatar
T0t0
"Julien Nury" wrote in message
news:
je pensais l'autre jour à un système qui permettrait de gerer les
vulnérabilités d'un parc informatique hétérogène. J'ai résumé cette
idée ici : http://www.galipeur.com/sah
Je me demande si celà n'éxiste pas déjà, si ça interesserais qqun à
part moi etc...


Ca intéresse du monde, à mon avis.
Le sujet comporte donc deux phases, à mon avis.
- d'une part, une phase de collecte permettant d'avoir une vision du
parc et des logiciels installés (versions, etc.)
- d'autre part une base des vulnérabilités associés à ces logiciels,
qui soit à jour

Enfin, on peut y associer la possiblité d'automatiser la mise à jour,
mais ce n'est pas obligatoirement un bon choix...

J'ai bossé sur deux projets qui correspondent aux deux phases.
Malheureusement, la proposition de rapprocher les deux outils n'a
pas abouti :-(
Pour la première partie, on a fait un développement de petits scripts
qui sont déployés sur toutes les machines et qui les scannent
régulièrement et envoient un rapport d'audit sur un servreur
cetralisé. Ca donne une vision assez précise du parc.
Pour la seconde partie, on utilise une base de données de vulnerabilité
externe qui est l'ICAT, si je ne m'abuse. Mais je n'ai pas eu trop
de retours là dessus.

Sinon, je ne sais pas s'il y a des outils tout fait qui proposent ca.
Si ce n'est pas le cas, ca vaut le coup de s'y pencher à mon avis.


--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG

Avatar
jnury
"T0t0" wrote in message news:...
Pour la première partie, on a fait un développement de petits scripts
qui sont déployés sur toutes les machines et qui les scannent
régulièrement et envoient un rapport d'audit sur un servreur
cetralisé. Ca donne une vision assez précise du parc.


Quelle technique avais tu utilisée pour récolter la liste des
applis et leurs versions sur les machines clientes ?

Je pensais à envoyer le résultat d'un "find *" (ou équivalent sous
Windows) vers un soft qui lirait l'entete du fichier pour déterminer
s'il s'agit d'un exe ou une dll, celà permettrait de détecter
exhaustivement tous les fichiers sans se baser sur leur nom (se qui de
toute façon ne marcherait pas sous Unix :D ). Ce soft, s'il détermine
que le fichier est un exe ou une dll, éxtrait les différentes valeur
de versions, revisions etc.. et les place dans un fichier de log. Une
fois tous les fichiers de la machine passés par ce soft, le fichier de
log serait uploadé (ftp ? http ?) vers le serveur central.

Ce serveur pourrait s'appuyer sur une base qui contiendrait des
entrées du type : nom_fichier:numero_version:revision ->
Nom_appli:version
De cette maniere le traitement local sur les machine est restreint (et
donc impacte peu la prod) et les échanges de données client-serveur ne
vont que dans un sens.

Le probleme majeur est qu'il faut construire la base qui fait
correspondre les infos d'un fichier à un nom d'appli... Pour ce faire,
je propose de passer par un serveur publique qui contiendrait des
signatures soumises par les utilisateurs du projet... Bref, on repose
sur la bonne volonté des gens. Le systeme central dans une entreprise
constiturait donc sa base de signature locale au fur et à mesure qu'il
requeterait le serveur publique. Pour remplir la base publique on
pourrait aussi imaginer une moulinette qui, a partir d'un fichier
d'install, d'un package, d'un patch etc... serait en mesure d'éxtraire
les informations nécessaire à la base.

Bref, le principal frein à la réalisation de ce projet est la base
de signature... Pensez vous qu'il soit surmontable ? N'éxisterait'il
pas déjà des bases contennant ce genre d'infos ?

PS : on pourrait aussi se baser sur des commandes du type "dpkg -l"
sous Debian Linux ou sur la liste des applications installées sous
Windows. Mais j'ai peur que les informations ne soient pas toutes
présentées (exemple : version de IIS...)

Avatar
Gilles Cuesta
On 07 Jun 2004 18:41:37 GMT
(Julien Nury) wrote:

Bonjour,

je pensais l'autre jour à un système qui permettrait de gerer les
vulnérabilités d'un parc informatique hétérogène. J'ai résumé cette
idée ici : http://www.galipeur.com/sah


Meme si les buts et les besoins ne sont pas le memes, on doit pouvoir
rapprocher ca d'un SIM (Security Information Management).
Voir:
http://www.ossim.net/whatis.php

Quelques screenshots:
http://www.ossim.net/screenshots/riskmeter.jpg
http://www.ossim.net/screenshots/vulnmeter.jpg
http://www.ossim.net/screenshots/metrics.jpg

Comme c'est Open Source, ca ne demande qu'a s'etoffer ;)

Cdt.

--
Gilles Cuesta
Netimedias - http://www.netimedias.com

Avatar
Ange_Fleole
Julien Nury wrote:
Bonjour,

je pensais l'autre jour à un système qui permettrait de gerer les
vulnérabilités d'un parc informatique hétérogène. J'ai résumé cette
idée ici : http://www.galipeur.com/sah

Je me demande si celà n'éxiste pas déjà, si ça interesserais qqun à
part moi etc...

Toutes les idées/commentaires sont les bienvenus :)

Cordialement



ça existe deja, c fait par sourcefire sur une base snort.

http://www.sourcefire.com/products/rna.html

Avatar
jnury
Ange_Fleole wrote in message news:<40c628d0$0$24784$...
ça existe deja, c fait par sourcefire sur une base snort.

http://www.sourcefire.com/products/rna.html


Bonjour,

Sauf erreur de ma part, ce produit se base sur un scanne externe
(réseau), hors c'est justement ce que je décris dans l'idée comme une
faiblesse du produit :
- Ce genre de produit ne voit pas les failles locales (un user qui a
le droit de se loguer via ssh et qui devient root grace à une faille
noyau).
- S'il éxiste une attaque par rebond, ou par injection via un acces
licite, ce genre de produit ne le voit pas.
- Si la machine est protegée de manière périmetrique, ce genre de
produit ne pourra pas détecter une faille qui apparaitra une fois la
protection perimetrique contournée.
- Ce genre de produit ne voit que les failles des logiciels serveurs
(les failles internet explorer, par exemple, ne sont pas détectées).
- Si une machine est sur plusieurs réseaux, il faut que le scanne soit
opéré sur chaque réseau.

J'imagine qu'il y a d'autres inconvénients ...

Avatar
T0t0
"Julien Nury" wrote in message
news:
Quelle technique avais tu utilisée pour récolter la liste des
applis et leurs versions sur les machines clientes ?


Ce n'est pas moi qui ai développé les scripts, mais apparemment c'est
simplement un ps qui est fait en parsant la sortie.
Sous windows, c'est en parcourant des clefs dans la base des registres,
c'est celles qui sont utilisées dans ajouter/supprimer un programme.

Ce n'est pas le top...

Une fois tous les fichiers de la machine passés par ce soft, le
fichier de log serait uploadé (ftp ? http ?) vers le serveur central.


On fait ca en SFTP (SSH) étant donné que les donénes qui circulent
sont en partie confidentielles.

Le probleme majeur est qu'il faut construire la base qui fait
correspondre les infos d'un fichier à un nom d'appli... Pour ce faire,
je propose de passer par un serveur publique qui contiendrait des
signatures soumises par les utilisateurs du projet...


Oui, c'est la base de l'ICAT qui est téléchargeable.

Bref, le principal frein à la réalisation de ce projet est la base
de signature... Pensez vous qu'il soit surmontable ? N'éxisterait'il
pas déjà des bases contennant ce genre d'infos ?


Voir au dessus ;-)

PS : on pourrait aussi se baser sur des commandes du type "dpkg -l"
sous Debian Linux


Ah oui mais non, je ne suis pas sûr que tu auras les applis
compilées manuellement.

Mais j'ai peur que les informations ne soient pas toutes
présentées (exemple : version de IIS...)


Oui, c'est le risque. C'est vrai qu'un ps permet de voir ce qui
tourne.
C'est un beau sujet à creuser ;-)




--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG

Avatar
jnury
"T0t0" wrote in message news:...
Oui, c'est la base de l'ICAT qui est téléchargeable.


Merci pour tes réponses, mais malheureusement, la base de l'ICAT ne
contient "que" les vulnérabilités (c'est utile pour le recoupement de
l'info)... Mais le gros du boulot consite a découvrir les logiciels
installés


Voilà comment ce passe la collecte de la liste des applis
installées :

1 - Récupération de la liste de tous les fichiers présents sur la
machine.

2 - On teste chaque fichiers pour savoir s'il s'agit d'un exe ou d'une
dll

3 - Pour les exe et les dll, on lit l'entete (PE sous windows, ELF
sous Linux) pour en extraire le numero de version, revision, Timestamp
. On génére une liste qui ressemble à celà (exemple avec des exe et
dll du répertoire d'Outlook Express 6.0.2800.1123) :

| FileName | Timestamp | Version | Revision |
+-------------+-----------+---------+----------+
| MSIMN.EXE | 3DA74BF6 | 5.1 | 4.0 |
| MSOE.DLL | 4044FA27 | 5.1 | 4.0 |
| WABFIND.DLL | 3DA74BE0 | 5.1 | 4.0 |
| WABIMP.DLL | 3DA74BDE | 5.1 | 4.0 |
| ... | ... | ... | ... |


4 - On envoi cette liste au serveur central, celui ci hash les
différentes valeurs pour limiter la taille des données :

| FileName | HASH |
+-------------+------------+
| MSIMN.EXE | G25F5Z9T48 |
| MSOE.DLL | FT13S14E9W |
| WABFIND.DLL | V19M4F7QSE |
| WABIMP.DLL | C7KLP36CD9 |
| ... | ... |


5 - Le serveur compare cette liste à une base locale qui donne la
correspondance :

| FileName | HASH | -> | Application | Version |
+-------------+------------+ -> +-----------------+---------------+
| MSIMN.EXE | G25F5Z9T48 | -> | Outlook Express | 6.0.2800.1123 |
| MSOE.DLL | FT13S14E9W | -> | Outlook Express | 6.0.2800.1123 |
| WABFIND.DLL | V19M4F7QSE | -> | Outlook Express | 6.0.2800.1123 |
| WABIMP.DLL | C7KLP36CD9 | -> | Outlook Express | 6.0.2800.1123 |
| ... | ... | -> | ... | ... |


6 - Le serveur compare la version des applications installées, à la
liste des vulnérabilités éxistantes (Base ICAT). S'il detecte une
application Vulnérable, il avertit l'administrateur.


Dans le point 5, je parle de base locale, mais il est fort probable
que la plupart des signatures ne soient pas présentes sur le serveur
local (ou alors, c'est que l'administrateur saisi lui même la base).
C'est pour celà que le systeme nécessite une base publique que les
systemes locaux pourront interroger de manière à se mettre à jour.

La difficulté du projet réside donc dans la création de cette base
car il faudrait créé l'empreinte de tous les logiciels (du moin des
plus courants)...

Cordialement

Julien Nury

Avatar
tchelaviek
Salut, Julien Nury. Tu as écrit:

Voilà comment ce passe la collecte de la liste des applis installées
:

1 - Récupération de la liste de tous les fichiers présents sur la
machine.
[snip]

4 - On envoi cette liste au serveur central, celui ci hash les
différentes valeurs pour limiter la taille des données :

5 - Le serveur compare cette liste à une base locale qui donne la
correspondance :
[snip]

6 - Le serveur compare la version des applications installées, à la
liste des vulnérabilités éxistantes (Base ICAT). S'il detecte une
application Vulnérable, il avertit l'administrateur.


Si une vulnérabilité est présente, ta machine est potentiellement
compromise. Mais tu comptes quand même sur elle pour remonter les infos
au serveur. Mauvais design.

Tiens, j'espère que tu trouveras de bonnes inspirations ici:
<http://www.math.duke.edu/~yu/tw/>

Bon courage.

--
tchelaviek

Avatar
jnury
tchelaviek wrote in message news:<40cdb302$0$19658$...
Si une vulnérabilité est présente, ta machine est potentiellement
compromise. Mais tu comptes quand même sur elle pour remonter les infos
au serveur. Mauvais design.

Tiens, j'espère que tu trouveras de bonnes inspirations ici:
<http://www.math.duke.edu/~yu/tw/>

Bon courage.
Hello,


C'est exact, mais le but de ce systeme est de prevenir les
vulnerabilites, en gros, dés la publication d'une vulnérabilité, le
tableau de bord indique quelles machines il faut patcher. Pour ce
faire, il se base sur une liste d'application qui date d'avant la
découverte de cette vulnérabilité. Biensur ce systeme doit etre
utilisé sur des machines saines, pour continuer a garantir leur mise à
jour, un peu comme TripeWire doit signer des systemes sains ;-)

D'une manière générale, on ne peut pas se fier à une machine
inconnue et ce avec n'importe quel systeme de sécurité (antivirus,
scanner de vulnérabilité, signature de fichiers etc...). Une machine
compromise est capable (via rootkit) de faire voir tout et n'importe
koi aux softs locaux et distants.

Le systeme décrit sert à garder un parc informatique à jour, pas à
le remettre à jour, ni à l'auditer ;-)

Merci pour le lien, je vais quand même y chercher l'inspiration.

Bonne journée

Cordialement

Julien Nury