Fonctionnement
Tout d'abord, les polices sont contenues dans un fichier qui a pour nom le chemin de l'application protégée (en remplaçant les / par des _). Par exemple, la police pour l'application /usr/sbin/named est contenue dans le fichier usr_sbin_named.
Dans ces fichiers, on trouve des restrictions d'acces pour les appels système.
Exemples:
$--$ native-accept: permit L'appel système accept() est autorisé pour tout le monde. $--$ native-bind: sockaddr match "inet-*:53" then permitLors de l'appel de la primitive bind(), seuls les appels dont sockaddr correspond à la chaine de caractères inet-*:53 sont autorisés.
Intégration de Systrace dans Prelude
Systrace est surtout nécessaire à Prelude dans le cas où on utilise Honeyd. En effet, comme Honeyd échange des informations avec des attaquants potentiels, il faut protéger le système en évitant que ces attaquants n'exploitent les failles de Honeyd : c'est le rôle de Systrace.
L'intégration se fait uniquement en installant Systrace et en appliquant un patch.
Systrace devient alors une sonde Prelude comme une autre.
Le patch est encore en développement donc nous ne l'avons pas testé.
Installation
Nous n'avons pas installé Systrace. Néanmoins, c'est un package de la Debian (en unstable et testing seuleument): systrace1.0-4
Le patch se trouve à l'adresse suivante : http://www.rstack.org/oudot/prelude/systrace/files/