jueves, 26 de diciembre de 2013

Conceptos Básicos: La Administración de Control de Accesos Tradicional en UNIX y Linux

Múltiples Capacidades-Múltiples Soluciones

Tradicionalmente los sistemas UNIX y Linux usan componentes separados para la implementación de servicios de directorio, resolución de nombres, autenticación, gestión de usuario privilegiado, auditoria y gestión de configuración. 
Nota de moderación: En este blog, se va a referir a la familia de sistemas operativos UNIX (incluyendo a Linux) como UNIX.

Servicios de Directorio en UNIX
Las plataformas UNIX han estado presentes en computación hace varias décadas; estas plataformas son la base del Internet, o sea que su legado es importante para la historia de la tecnología moderna;  con en nacimiento de las plataformas de código abierto la popularidad de estas plataformas ha crecido de manera exponencial.
Este legado implica que tanto las cosas buenas como los desafíos siguen presentes en la plataforma, por ejemplo los usuarios en sistemas UNIX existen:
  • Localmente en el archivo /etc/passwd, o
  • en un  sistema Network Information System (NIS), o
  • en un servicio de directorio dedicado LDAP (como OpenLDAP), o
  • en soluciones comerciales y hasta en el Directorio Activo
El Name Server Switch
Name Server Switch (o NSS, siglas en Inglés) es un mecanismo para proporcionar fuentes de configuración (incluyendo servicios de directorio) de manera que cada programa use la facilidad en vez de tener que ser compilado para cada servicio independiente.  Fue creado por Sun Microsysems (ahora Oracle) para el sistema operativo Solaris.  Es sumamente importante entender NSS ya que es una de los interfaces usados por Centrify para proporcionar servicios  con el Directorio Activo.  El archivo de configuración de NSS en las plataformas UNIX está ubicado en /etc/nsswitch.conf.

Servicios de Autenticación en UNIX
Al igual que los servicios de directorio, la autenticación en UNIX se puede efectuar de las siguientes maneras:
  • Localmente contra el archivo/etc/shadow
  • En un archivo remoto presentado por un dominio NIS
  • Con Kerberos (ejemplos: MIT Kerberos or Heimdal)
Los Pluggable Authentication Modules
Debido a la misma razón de existencia que NIS; Los Módulos de Autenticación Modular (siglas PAM en Inglés) permiten el uso de interfaces de programación para efectuar la autenticación mediante objetos compartidos.  Los módulos PAM se pueden apilar para acomodar múltiples fuentes ó aspectos de la autenticación.  Por ejemplo, un módulo de cuentas (account) puede verificar si la cuenta del usuario es válida en el directorio remoto, el módulo de contraseñas (password) puede verificar si la contraseña ingresada es correcta; el módulo de sesión (session) puede presentar un mensaje del sistema al usuario durante el inicio de sesión.  
Junto con NSS, Centrify usa un módulo PAM para proporcionar servicios de autenticación mediante la implementación de Kerberos del Directorio Activo.

Resolución de Nombres en UNIX/Linux
El servidor BIND es el estándar por defecto para proporcionar servicios DNS en UNIX. 
El cliente (basado en la plataforma) se configura mediante el archivo /etc/resolv.conf file.

Gestión de Usuarios Privilegiados en UNIX/Linux
Cuentas compartidas:
En UNIX, la cuenta de super usuari (root) es equivalente a un Dios.  Esta puede impersonar cualquier usuario y puede apoderarse de cualquier archivo o proceso.  Lamentablemente es muy común (hasta en empresas con alto nivel de madurez) que las credenciales del super usuario son compartidas por el personal de TI.  Esto se presta a abuso o error y es generalmente una mala práctica ya que minimiza la posibilidad de establecer la responsabilidad de las acciones del usuario final.
La práctica de usar cuentas compartidas es generalmente considerada como una mala práctica de seguridad que amerita un comentario de auditoría.
sudo
sudo es una utilidad de gestión de privilegios que permite al usuario final la ejecución de un programa en el contexto de seguridad de otro usuario.  Usa el archivo /etc/sudoers.  Esta práctica es bastante confiable y común.

Soluciones Comerciales:
En el mercado existe una variedad de soluciones para resolver el tema de la gestión de privilegios en UNIX.  En este blog noes enfocaremos en el uso del Directorio Activo y Centrify, sin embargo, otros productios incluyen:
  • Soluciones que ussan programación:  com PowerBroker de BeyondTrust
  • Bóvedas de contraseñas:  Como Cyber-Ark
  • A nivel de Kernel:  como Access Control de Computer Associates.

Contabilidad/Auditoría en UNIX/Linux
El syslog es el repositorio principal de mensajes e incluye los eventos de seguridad.  Nota importante, cuando se usa la cuenta de super usuario algunos eventos no son registrados en el syslog!!!!

Administración de Configuraciones on UNIX/Linux
Tradicionalmente, la gestión de configuración se consigue mediante el uso de programas o scripts creados por los administradores de sistemas.  Sin embargo esta técnica no es atractiva a las grandes empresas (a menos que sea una empresa tecnológica como Google o AOL que pueden comercializar los programas desarrollados internamente); por esto tienden a usar soluciones comerciales como Chef, Puppet, etc.

No hay comentarios:

Publicar un comentario