JASS

JASS (JumpStart Architecture and Security Scripts, también conocido como Solaris Security Toolkit) es un paquete software formado por diferentes herramientas cuyo objetivo es facilitar y automatizar la creación y el mantenimiento de entornos Solaris seguros; ha sido desarrollado por Alex Noordergraaf y Glenn Brunette, dos expertos en seguridad de Sun Microsystems conocidos - especialmente el primero de ellos - por los BluePrints que periódicamente publican. Se puede ejecutar sobre una máquina donde previamente hemos instalado Solaris (Standalone Mode), o bien durante la propia instalación del operativo (JumpStart Technology Mode): conseguimos así una instalación por defecto segura, algo que se echa de menos en casi cualquier Unix.

Probablemente la parte más importante de JASS son los denominados drivers, ficheros ón que especifican diferentes niveles de ejecución de la herramienta, definiendo qué scripts se han de ejecutar en cada uno de esos niveles y qué archivos se instalarán como resultado de la ejecución. Cada uno de estos drivers está ubicado en el subdirectorio Drivers/ del programa, y tiene tres partes bien diferenciadas ([NB01b]): la primera se encarga de inicializar ciertas variables de entorno necesarias para una correcta ejecución del driver, la segunda de definir qué ficheros se han de modificar y qué scripts se han de ejecutar, y una tercera parte es la encargada final de llevar a cabo los cambios correspondientes.

En un sistema Solaris ya instalado podemos invocar desde línea de órdenes a JASS pasándole como parámetro el driver que deseemos ejecutar, por ejemplo secure.driver (un driver que implementa por sí sólo todas las funcionalidades de JASS):
anita:/var/tmp/jass-0.3# ./jass-execute -d secure.driver -o jass.log
./jass-execute: NOTICE: Executing driver, secure.driver
./jass-execute: NOTICE: Recording output to jass.log
anita:/var/tmp/jass-0.3#
Todos los cambios que la ejecución anterior provoca (en el ejemplo anterior podemos verlos en el archivo `jass.log', o en salida estándar si no utilizamos la opción `-o') quizás convierten a nuestro sistema en uno `demasiado seguro': es posible que perdamos parte de la funcionalidad de la que disponíamos, debido al elevado número de restricciones llevadas a cabo en el sistema; es necesario que cada administrador revise sus necesidades y los scripts a los que va a invocar antes de ejecutar JASS. Afortunadamente, una de las características más importantes de esta herramienta es su capacidad para deshacer los cambios que cualquiera de sus ejecuciones haya llevado a cabo:
anita:/var/tmp/jass-0.3# ./jass-execute -u -o jass-undo.log
./jass-execute: NOTICE: Executing driver, undo.driver
Please select a JASS run to restore through:
1.  July 06, 2001 at 03:59:40 (//var/opt/SUNWjass/run/20010706035940)
Choice?  1
./jass-execute: NOTICE: Restoring to previous run //var/opt/SUNWjass/run/\
                20010706035940
./jass-execute: NOTICE: Recording output to jass-undo.log
anita:/var/tmp/jass-0.3#
Podemos ver que la desinstalación de los cambios llevados a cabo previamente, mediante la opción `-u' del programa, nos pregunta qué ejecución de JASS queremos desinstalar; como sólo lo habíamos lanzado una vez, hemos elegido `1', pero si ya hubiéramos ejecutado la herramienta en diferentes ocasiones se nos mostrarían todas ellas, con lo cual siempre podemos devolver a la máquina a un estado previo a cualquier ejecución de JASS. Esta característica es bastante importante, ya que volvemos a insistir en que, en función del driver al que invoquemos, el sistema puede quedar incluso demasiado `securizado': por poner un ejemplo, la ejecución de secure.driver eliminaría cualquier acceso estándar al sistema (telnet, FTP, rsh...), con lo que sería necesario de disponer de una consola o de SSH para acceder remotamente a la máquina tras la ejecución de JASS.

Como hemos dicho antes, también es posible integrar JASS en la propia instalación del sistema operativo Solaris; para ello hemos de basarnos en la arquitectura JumpStart de Sun Microsystems ([Noo01]), copiando el paquete de software en el directorio raíz del servidor JumpStart y siguiendo unos pasos simples explicados con detalle en [NB01c]. Con unas sencillas modificaciones de algunos ficheros, conseguiremos una instalación por defecto segura, lo que evitará que el administrador de los sistemas tenga que ir máquina a máquina para realizar el típico hardening postinstalación (cerrar puertos, configurar accesos...).

La que acabamos de ver es una herramienta muy recomendable en cualquier sistema Solaris, ya que consigue automatizar muchas tareas que de otra forma el administrador debería realizar manualmente. Su potencia, unida a su sencillez de uso (y `desuso'), la convierten en algo si no imprescindible sí muy importante en nuestros sistemas; incomprensiblemente no se utiliza de forma extendida, aunque es previsible que con sus nuevas versiones (actualmente está disponible la 0.3) esto comience a cambiar pronto. Podemos obtener información adicional de esta herramienta en los BluePrints publicados por Sun Microsystems y que se distribuyen, aparte de vía web, en el directorio Documentation/ de la misma: [NB01b], [NB01a], [NB01c], [NB01d]...
© 2002 Antonio Villalón Huerta