Auditoría RACF: Introducción y problemas de seguridad más frecuentes

Buenas,

Tenia pendiente hablar un poco de seguridad RACF en el blog, y una reciente conversación con un amiguete me ha recordado que le debía un articulo sobre el tema.

Voy a estructurar el artículo en dos grandes secciones:

  1. En primer lugar haremos una introducción, tanto técnica como no técnica, para comprender un poco mejor que es RACF y como funciona. El objetivo es disponer del conocimiento previo necesario para abordar la auditoria con garantías, evitando la tentación de que el trabajo lo realicen personas que siguen un programa de trabajo sin entender realmente que se cuece por debajo (tristemente, algo usual en el mundo de la auditoría de sistemas)
  2. Seguidamente daremos un repaso a los 10 errores mas frecuentes en la configuración de seguridad RACF. Cumplir estos 10 puntos no garantiza que la seguridad del montaje sea ideal, pero su análisis facilita realizar una auditoria rápida y determinar, sin la necesidad de invertir una cantidad de recursos enorme, una primera fotografía del estado del gestor de seguridad.
  3. Queda pendiente, quizás para otro artículo futuro, hablar de los pasos de auditoría usuales en RACF, que son muchos más que diez. Es un tema denso, y nos puede llevar llevar una decena de artículos tranquilamente. De momento pondremos atención a la introducción y los problemas más frecuentes.

1. INTRODUCCIÓN Y FUNDAMENTOS TÉCNICOS DE RACF

En el mundo de los mainframes IBM, Resource Access Control Facility (RACF) es probablemente el estándar de facto a la hora de gestionar la seguridad del sistema. No es la única solución, ya que existen competidores con ofertas similares, como es el caso de ACF2 y TopSecret, de Computer Associates, aunque me atrevería a decir que el grueso de la clientela de estos mainframes se suele inclinar por RACF por una razón sencilla y obvia: es una solución muy decente y la facilita el propio fabricante, con lo que no hay que andar negociando con terceros la presencia de software crítico en el sistema, especialmente en lo que a implementación y mantenimiento se refiere.

RACF es una solución que tradicionalmente ha proporcionado a los sistemas z/OS y z/VM control de acceso (autenticación y autorización) y trazas de auditoria. La tendencia actual y futura es, sin embargo, que RACF se ocupe de otras tareas, como por ejemplo, servicios PKI, y que pueda ser empleado por otros sistemas además de los mainframes, como por ejemplo los derivados UNIX.

RACF es complejo, y auditarlo no es una tarea sencilla. Existen infinidad de puntos de control que podemos auditar y por tanto, el trabajo puede extenderse durante periodos prolongados de tiempo si no definimos un alcance acotado. Tal y como hemos mencionado anteriormente, nos centraremos solo en aspectos esenciales, dejando al lector la tarea de documentarse y ampliar el programa de trabajo que aquí esbozaremos.

Técnicamente hablando merece la pena comentar que el control de acceso y la auditoria la realiza en primera instancia SAF (System Authorisation Facility). Cuando cualquier porción de código requiere la toma de decisiones relacionadas con la seguridad, se constituye lo que se denomina un punto de control. Estos puntos de control le pasan a SAF la información necesaria para que SAF pase a gobernar la situación a través del uso del servicio RACROUTE.

SAF es un componente que los gestores de recursos utilizan para poder determinar el curso de acción en acciones de control de acceso y auditoria. Sin embargo, lo normal es que este servicio se configure para delegar en RACF (o en el gestor de seguridad que se haya escogido) los citados mecanismos. SAF puede funcionar sin software satelital de apoyo en un modo independiente, pero esto es extremadamente infrecuente. Es parte del sistema operativo base z/OS y puede ser invocado desde numerosas instancias en el sistema, incluso por software de terceros. Es habitual encontrar en la literatura referencias al router SAF para denominar al punto único de gestión del componente al que se dirigen las peticiones que deben ser procesadas.

Las tres funcionalidades de seguridad que hemos mencionado (autenticación, autorización y auditoria) se corresponden con tres definiciones del servicio RACROUTE claramente diferenciadas:

  • Autenticación y verificación: RACROUTE REQUEST=VERIFY
  • Autenticación: RACROUTE REQUEST=AUTH
  • Auditoria: RACROUTE REQUEST=AUDIT

Existen otros servicios RACROUTE además de los citados, como DEFINE (para definir, modificar, renombrar o eliminar un recurso de RACF), DIRAUTH (para comparar dos etiquetas de seguridad), EXTRACT (para recuperar o reemplazar determinados campos en un perfil RACF), FASTAUTH (para comprobar la autorización de acceso a un recurso por parte de un usuario), LIST (para aprovisionar perfiles), SIGNON (para gestionar las listas de acceso relacionadas con verificación persistente) , STAT (para determinar si RACF esta activo), TOKENBLD (para construir UTOKENS, user tokens, los tokens de seguridad de un usuario), TOKENMAP (para mapear un token del sistema) y TOKENEXTR (para extracción de UTOKENS).

Respecto a los mecanismos de auditoria, es frecuente que en sistemas z/OS se hable de los mensajes SYSLOG y los eventos SMF. Cuando los requisitos de seguridad son elevados se hace indispensable la conservación de todo lo disponible, lo que suele generar un problema de almacenamiento especialmente relevante, sobre todo si el sistema es un sistema transaccional, donde los registros de auditoria que derivan de cientos o incluso miles de operaciones por segundo pueden y de hecho requieren cantidades ingentes de almacenamiento, lo que en la practica hace necesario seleccionar con inteligencia que eventos se conservaran, dejando fuera los que no aportan valor para la instalación. Normalmente SYSLOG se ocupa de mensajes operacionales, aunque no debemos descartar su utilización para la monitorización de seguridad.

Respecto a que tipos de registros SMF conservar no existe mucho consenso al respecto, o yo al menos no he encontrado nunca una definición exacta. Todo dependerá de los requisitos de seguridad y operación de la maquina. Así, por poner un ejemplo, desde el punto de vista de seguridad, el tipo 119 -que ofrece estadísticas TCP/IP- podría de entrada ser poco relevante para ciertas organizaciones, mientras que otras grabaran con gusto los subtipos 119-70 y 119-72, que registran transferencias FTP completadas y errores de acceso vía FTP. En lo que a estrictamente seguridad se refiere, los tipos ochenta son los que suelen tener mas relevancia. El tipo por excelencia suele ser el 83, el registro de auditoria para juegos de datos, siendo el tipo 82 frecuente en mainframes financieros con requisitos criptográficos, como por ejemplo, autoservicios o puntos de venta. Los tipos 80 (procesamiento de productos de seguridad) y 81 (inicialización RACF) son igualmente interesantes y deben ser considerados. Menos frecuente es el tipo 84, para monitorizar el subsistema de entrada de trabajos JES3, aunque podría servir para implementar controles de acceso ilegitimo a producción. El tipo 85 es especifico al rendimiento de transacciones OAM, el tipo 88 esta relacionado con datos de almacenamiento de un sistema determinado en un Parallel Sysplex de producción, y el tipo 89 esta orientado a uso del sistema y los productos de seguridad que lo conforman, lo que suele ser empleado para obtención de información relacionada con licencias de uso.

La variabilidad de las trazas y su repercusión hace necesarios que antes de ponernos a examinar aspectos específicos obtengamos una buena imagen de lo que se esta grabando, tanto SYSLOG como SMF. Una vez entendamos que se esta auditando, estaremos en condiciones de emitir una mejor opinión.

2. LAS 10 PROBLEMÁTICAS MAS USUALES EN LA CONFIGURACIÓN DE SEGURIDAD DE RACF

Resulta muy difícil sintetizar en 10 las problemáticas habituales en un gestor RACF. A buen seguro si contactas a 10 auditores distintos, probablemente escucharás 10 versiones distintas, con lo que se hace realmente difícil reducir a un número determinado los problemas usuales. De entre las muchas opciones posibles me quedo con el decálogo de Vanguard, un fabricante de software de auditoría para RACF. De mayor a menor gravedad:

  1. Modos NOPROTECTALL o PROTECTALL(WARNING) activos. Quizás el peor de los problemas, y bastante frecuente además, por increíble que parezca. Estos modos de protección permiten disponer de data sets sin custodia completa de RACF, con lo que podrían ser creados y accedidos. La diferencia entre ambos es que el modo PROTECTALL(WARNING) al menos deja una traza de auditoría, mientras que NOPROTECTALL ni tan siquiera la deja. El caldo de cultivo ideal para un programador con conocimiento y ganas de colocar código malicioso en ejecución.
  2. Uso excesivo de atributos privilegiados. Este problema no sólo es patrimonio de RACF, sino de muchos otros sistemas. Es relativamente frecuente, por mal diseño de la solución, emplear los atributos SPECIAL y OPERATIONS en exceso, con el peligro que ello conlleva: ambos permiten acceso completo a la base de datos RACF y a todos los data sets de z/OS. Los identificadores de usuario con atributo SPECIAL deberían ser los mínimos posibles y sujetos a fuerte monitorización, y aquellos con atributo OPERATIONS no tienen razón de existir. Eliminadlos, y negociad sólo el uso de este atributo para usuarios no humanos que sean precisos para administrar la producción.
  3. Protección inadecuada en librerías APF. Las librerías APF (Authorized Program Facility) se emplean para agrupar programas que correrán en el sistema con privilegios especiales y que suelen tener impacto muy elevado en el sistema. Si estas librerías están mal protegidas, nada impide que alguien coloque en ellas programas que correrán con altos niveles de privilegios, causando problemas en el sistema que podrían llegar a desestabilizarlo, además de tener capacidad de evitar los mecanismos de seguridad. Este problema se puede solventar, entre otras medidas, con listas específicas de acceso. Caldo de cultivo para colocar código malicioso que pase inadvertido.
  4. Presencia de excesivos data sets con modo WARNING. El modo WARNING, aunque permite la escritura de una traza de auditoría y el aviso en tiempo real en la consola de operadores, no impide que se permita el acceso al recurso. El modo FAIL suele ser la mejor manera de abordar el problema, que siempre representa un claro indicativo de que la administración de seguridad es inadecuada.
  5. Colocación maliciosa de programas en las tablas de propiedades de programas con el atributo de salto de protección mediante contraseña. En este escenario, aplicando dicho atributo, se conseguirán data sets que no serán custodiados por los mecanismos de acceso de RACF, quedando invalidada la auditoría. Ojo.
  6. Accesos universales por defecto (UACC) incorrectos en data sets críticos. Este es un fallo típico, e implica que un determinado data set, si se configura con nivel de acceso inadecuado, puede quedar expuesto a cualquier usuario con cuenta en el sistema. La situación ideal es aplicar NONE a todos los datos como valor de UACC, dejando excepciones para READ cuando sea preciso. En el primer caso el acceso universal sería impedido, y en el segundo, sólo se permitiría la lectura.
  7. Tareas en ejecución con atributos inadecuados o erróneos de privilegio (PRIVILEGE) o confianza (TRUSTED). La concesión de estos atributos a las tareas en ejecución puede tener efectos catastróficos cuando la situación ni está justificada ni monitorizada. El atributo de privilegio tiene consecuencias tan graves como la ausencia de auditoría, mientras que el atributo de confianza sólo debe otorgarse a tareas del sistema base muy específicas y determinadas. Es frecuente que esto se pase por alto, mucho ojo.
  8. Ausencia de monitorización y gestión de incidentes. RACF está pensado para dotar al sistema de una granularidad en la seguridad excepcional, lo que permite construir mecanismos monitorización, notificación y alerta igualmente granulares. Por muy bien que se encuentre el gestor, no tiene utilidad ninguna si no está respaldado por un sistema de monitorización que permita detectar en tiempo y forma las problemáticas.
  9. Usuarios para la gestión de trabajos en producción con excesivas capacidades. Deriva también de la mala planificación y la administración inadecuada. Los usuarios con responsabilidad relacionada con el control de trabajos en producción tienen que tener sus capacidades restringidas a los trabajos que los atañen, debiéndose impedir que estos usuarios tengan acceso a todos los data sets del sistema. Adicionalmente, estos usuarios no deberían tener el atributo OPERATIONS, y en caso de ser estrictamente necesario, es obligatoria la monitorización.
  10. Número de usuarios inactivos excesivo. Un problema común causado por la ausencia de uan administración adecuada, y que no requiere más explicación. Se puede solventar automatizando la eliminación de usuarios periódicamente.

Espero que el artículo os haya sido de utilidad. Si os queda alguna duda, dejad un comentario :)

Saludos,

Las implicaciones del desarrollo tecnológico en la auditoría de sistemas: IBM zEnterprise System.

Hola,

El pasado 22 de Julio IBM presentó el nuevo miembro de su gama más alta de productos de computación. IBM zEnterprise System. En líneas muy generales, zEnterprise System está compuesto por tres componentes principales: núcleos zEnterprise 196 (z196), aceleración de aplicaciones en rack de hardware independiente zEnterprise BladeCenter Extension (zBX) y ejecución multiplataforma con un único punto de control centralizado mediante zEnterprise Unified Resource Manager.

Para los que estéis familiarizados con los mainframes de IBM, este nuevo engendro comparte la arquitectura z/Architecture 2 (ARCHLVL 3) con System Z10. Impulsado por procesadores z196 5.2 GHz, formados por cuatro núcleos y con funcionamiento en ejecución fuera de orden u OoOE (Out-of-Order Execution), estas nuevas máquinas soportan hasta 3 TB de memoria DDR3 en una configuración especial de alta disponilibilidad llamada RAIM (Redundant Array of Independent Memory) que proporciona mecanismos de comprobación de errores y corrección de los mismos, lo cual es verdaderamente interesante habida cuenta de lo problemáticos que suelen ser los fallos de cualquier componente hardware de un mainframe, especialmente de la memoria.

Este nuevo juguetito, siempre según el fabricante, incrementa el rendimiento de z10 en un 60% con una reducción del consumo energético del 80%. A mí me parecen números un tanto forzados, seguramente producto de pruebas en laboratorio y no procedentes de una explotación real, aunque seguramente el rendimiento y el consumo han mejorado bastante. Para los que deseéis ampliar conocimiento sobre esta nueva familia, el pasado 28 de Julio se publicó, bajo el formato de Redbooks, zEnterprise System Technical Introduction. Este libro gratuito contiene información sobre z196, zBX y la gestión centralizada, y está especialmente indicado para casi todo tipo de perfiles, ya que no requiere conocimiento previo de la tecnología y terminología IBM System z. A los que les sepa a poco la introducción pueden optar por la guía técnica completa IBM zEnterprise System Technical Guide.

He querido seleccionar este lanzamiento para ilustrar un inconveniente que sufrimos los que nos dedicamos a la seguridad y a la auditoría de sistemas. La imparable evolución tecnológica trae consigo imparables cambios en la manera en la que gestionamos la seguridad y auditamos los sistemas. Estos cambios los pueden producir cambios en los negocios o cambios en la tecnología que los sustenta. Aquellos que creen que las cosas nunca cambian y que pueden sortear la evolución tecnológica sin refrescar conocimiento están condenados al fracaso, siendo la misma idea es aplicable a los que creen que los negocios siempre se hacen igual y que son invariables en el tiempo. Es por esto que lo primero que debe hacer un auditor es comprender bien, aunque sea la decimonovena vez que audita lo mismo, cuál es la situación actual del negocio y de la tecnología sobre la que tiene que opinar.

Para el caso que nos ocupa, zEnterprise System, parte del cambio de nomenclatura es meramente mercadotécnico, aunque sería injusto asumir que tras el cambio de nomenclatura sólo hay cambios estéticos. Existe un cambio muy relevante en la tecnología subyacente, y esto nos obliga a comprender los cambios para ver hasta qué punto nuestros programas de auditoría y seguridad precisan ser actualizados.

Esta labor de actualización también es relevante para los que explotan estas máquinas y planifican los cambios. Por ejemplo, z196 será el último servidor que soporte ISC-3 para Parallel Sysplex, con lo que los clientes deben migrar al nuevo formato de conexión Parallel Sysplex InfiniBand (PSIFB). Es sólo un ejemplo de los muchos cambios que, como cualquier otro producto que debe ser soportado, se van introduciendo con los cambios de versión. Por citar un ejemplo, imaginaos las repercusiones en la auditoría, derivadas de la nueva apuesta centralizada, que puede tener un cambio de arquitectura completo, donde una transacción determinada que antes pasaba por cinco dominios tecnológicos ahora sólo pase por un par de ellos.

Todos los cambios tienen implicaciones en cómo se aborda el análisis de seguridad o la auditoría de un sistema determinado, con lo que es crucial conocer las modificaciones para realizar un trabajo de calidad. Esto nos recuerda nuevamente la imperiosa necesidad que tenemos los que nos dedicamos a la seguridad y auditoría de infraestructuras tecnológicas de estar, permanente e inexcusablemente, atentos a los cambios de aquello que es susceptible de ser revisado como parte de nuestro cometido profesional.

Un saludo,