FreeBSD et les versions récentes de Mac OS X sont livrées avec un système d'audit intégré, dérivé du Basic Security Module de SUN, et disponible en logiciel libre sous le nom d'OpenBSM. Ce système d'audit se décompose en deux parties : un ensemble d'appels systèmes dédiés et de librairies d'un côté, et des logiciels "utilisateur" de l'autre. Sauf précision contraire, les explications présentées ici sont valables à la fois pour FreeBSD 7 et 8, et Mac OS X 10.6. Dans cette série d'articles je ne vais aborder que l'aspect "utilisateur" du système d'audit : comment l'activer, comment le configurer, comment exploiter les résultats.
Le système d'audit fourni par OpenBSM a pour but la surveillante des actions des utilisateurs. Un certain nombre d'évènements peuvent être mis sous surveillance, pour tout ou partie des utilisateurs. Quand le système d'exploitation détecte qu'un utilisateur sous surveillance génère un des évènements à surveiller, il averti le démon auditd qui se charge de reporter cet évènement dans un fichier de log. Lire le reste de cet article
Galerie PixelPost
Catégories
Tags
Archives
Autres pages

Depuis quelques temps, le très petit monde du jeu sur Mac s'est considérablement élargi avec l'arrivée de la plateforme 







Utiliser auditd sur Mac OS X et FreeBSD – 2
Cet article est la suite de Utiliser auditd sur Mac OS X et FreeBSD - 1
Configuration : quid des utilisateurs comme www ?
J'expliquais précédemment que le système d'audit ne peut suivre un utilisateur que si ce dernier se connecte à la machine (par ssh par exemple), et que quelques soient les ruses utilisées (su, sudo...) c'est toujours l'UID réelle de l'utilisateur qui est suivie.
À cause de cela, il est totalement impossible de traquer des évènements appartenant à des utilisateurs qui ne peuvent pas se connecter au système. Ainsi, une ligne comme celle-ci dans
audit_userne permettra de traquer aucun évènement :Il serait pourtant très intéressant de savoir ce que fait Apache dans votre dos, parfois sous la direction de méchants pirates.
De nos jours, La plupart des serveurs utilisent des protocoles comme l'HTTP qui permettent aux utilisateurs d'accéder aux ressources sans être authentifiés au niveau du système. Les utilisateurs en question n'existent d'ailleurs pas au niveau du système. Néanmoins, les applications web permettent de faire énormément de choses via les langages comme le PHP, y compris d'interagir avec le système, en lançant des commandes, en créant des fichiers, etc.
Si on souhaite qu'auditd puisse contrôler les actions de www, il faut recourir à un artifice. Attention tout de même, ce qui suit est plus proche d'un hack que d'une méthode vraiment propre, et je ne peux pas garantir son fonctionnement correct dans un environnement de production.
En premier lieu il faut installer un programme spécifique, qui va permettre de forcer
auditdà suivre les actions pour une UID donnée, sans que l'utilisateur correspondant ait besoin de se connecter à la machine.Cela vous donne, si tout se passe bien, le binaire
setaudit, que l'on va utiliser sous cette forme :Pour suivre les évènements d'exécution de commande sous respectivement FreeBSD et Mac OS X, cela donnera :
Ainsi, toutes les commandes lancées par Apache (donc sous l'UID www) sont enregistrées par
auditd.Comme le masque des évènements (les flags de l'argument
-m) décrit ce que l'on doit suivre, il est même inutile de renseigner le fichieraudit_user.Pour résumer :
audit_control, et gérer les cas particuliers dansaudit_user.setauditpour activer l'audit au moment du lancement du service correspondant.Troisième partie de l'article ->