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