Présentation de l'outil JASS (Solaris Security Toolkit)

Date :06 Juillet 2005

Publication: Article

JASS est un outil realisé par SUN, qui permet de sécuriser une machine Solaris (versions 2.5.1, 2.6, 7 ou 8). Dans une utilisation typique, JASS est lancé en fin d'installation de la plate-forme (i.e. après installation du système d'exploitation et des patches). Il procède alors à la sécurisation du système d'exploitation en effectuant toute un série d'ajustements des fichiers système (par exemple, ajustement des paramètres TCP/IP, durcissement des permissions sur les fichiers, etc...).

Nous avons eu des retours tout à fait positifs sur l'utilisation de cet outil (voir en fin d'article) et avons décidé de vous le présenter dans ce bulletin.

1°) Description

JASS est constitué d'un ensemble de scripts et de fichiers de configuration qui le rendent fortement paramétrable.

A l'exécution, un moteur générique ‘jass-execute' appelle successivement chacun des scripts pour :

  • ajuster certains paramètres de la configuration du système,
  • ou même remplacer un fichier de configuration par une version complètement ré-écrite.

La liste des scripts à exécuter et des fichiers à remplacer est donnée dans un fichier personnalisable d'extension ‘driver'. Le comportement de certains de ces scripts est paramétrable par l'intermédiaire des variables initialisées dans des fichiers d'extension ‘.init'.

- Modes d'utilisation

JASS peut être utilisé selon deux modes différents : en mode Standalone ou en mode Jumpstart :

  • Le mode Standalone permet de sécuriser rapidement une machine en particulier.
  • JASS peut être utilisé dans un contexte d'installation par réseau. Dans ce cas, JASS va chercher l'ensemble des informations et fichiers (patches, packages, drivers, fichiers) dont il a besoin sur un serveur central. Ce mode d'exécution est appelé Jumpstart.

2°) Organisation

Le répertoire dans lequel JASS est installé contient un certain nombre de sous-répertoires, les plus importants étant les suivants :

  • Drivers : Contient les fichiers ‘driver' qui définissent les actions à mener sur le système.
  • Files : Contient les fichiers de configuration qui écraseront les fichiers du système que l'on veut remplacer.
  • Finish : Contient la collection de scripts élémentaires de sécurisation. Ces derniers sont en partie référencés dans le fichier ‘driver' et seront exécutés par le moteur ‘jass-execute'.

JASS permet également d'installer des packages supplémentaires et les patches système.

- Drivers

Lorsque l'on lance JASS, on lui passe en paramètre un fichier "Driver". C'est en fait ce fichier qui dirige le déroulement de la sécurisation. Il indique à JASS quels fichiers du système doivent être remplacés, et quels scripts de sécurisation il faut exécuter. Il existe toute une collection de drivers permettant de réaliser une sécurisation type pour différents installations de Solaris.

- Scripts

Les scripts de sécurisation sont classés en trois grands thèmes :

  • Disable, Remove : Stoppe ou désinstalle une fonctionnalité jugée inutile voire dangereuse en terme de sécurité.
  • Enable, Install : Active ou installe une fonctionnalité jugée utile voire nécessaire pour la sécurité du système.
  • Set, Update : Modifie des paramètres du système (droits d'accès, modification de fichiers de configuration,…)

Une description complète des scripts se trouve dans le répertoire Doc du répertoire d'installation de JASS ou à l'adresse suivante http://www.sun.com/blueprints/tools/.

- Exemple :

Comme exemple nous nous basons sur le listing du driver ci-dessous (tous les drivers sont construits sur le même squelette):

DIR="`/bin/dirname $0`"
export DIR
${DIR}/driver.init
JASS_FILES="
/etc/issue
/etc/motd
"
JASS_SCRIPTS="
set-user-umask.fin
"
${DIR}/driver.run

Le lancement de JASS avec ce driver aura pour effet  :

  • d'écraser les fichiers indiqués dans la variable JASS_FILES (‘/etc/issue' et ‘/etc/motd') par les fichiers de même nom contenus dans le répertoire ‘Files' du répertoire d'installation de JASS.
  • d'exécuter les scripts indiqués dans la variable JASS_SCRIPTS (dans cet exemple, le script ‘set-user-umask.fin' qui permet de configurer l'umask par défaut des utilisateurs).

3°) Exécution

Pour exécuter JASS : ouvrir une session sur la console en tant qu'utilisateur ‘root', se placer dans le répertoire racine de JASS : / jass-0.3.4/ et lancer la commande :

#./jass-execute –d secure.driver -o /export/tmp/jass-log

L'option "-d" permet de spécifier le driver utilisé. L'option "-o" permet de rediriger la sortie console vers un fichier spécifique. L'ensemble des actions enterprises par JASS est affiché à l'écran lors de son exécution. La machine doit être redémarrée après l'exécution de JASS.

Il est important de noter que cette procédure de sécurisation doit être déroulée après chaque nouvelle application de correctifs.

- Fonction ‘Undo'

Cette fonctionnalité, disponible depuis la version 0.3, permet d'annuler une installation JASS et de retourner à un état précédent du système.

4°) Retour sur expérience

L'outil JASS a été testé en mode Standalone pour sécuriser un système Solaris hébergeant un Checkpoint Firewall-1. Les résultats se sont révélés satisfaisants ; de plus JASS est assez simple d'utilisation. Un avantage certain est qu'il est vraiment transparent : Il est possible d'éditer un script pour voir ce qu'il fait.

Il serait intéressant de tester cet outil à plus grande échelle, en mode Jumpstart sur un parc plus important de machines.

Référence

Document de Sun : http://www.sun.com/blueprints/tools/