PDF de programación - Aspectos de seguridad en el provisioning de servidores

Imágen de pdf Aspectos de seguridad en el provisioning de servidores

Aspectos de seguridad en el provisioning de servidoresgráfica de visualizaciones

Actualizado el 22 de Febrero del 2020 (Publicado el 4 de Noviembre del 2019)
143 visualizaciones desde el 4 de Noviembre del 2019
125,8 KB
4 paginas
Creado hace 4a (15/03/2015)
Aspectos de seguridad en el provisioning de servidores

Lanfranco, Einar

Benencia, Raúl

einar@info.unlp.edu.ar

rbenencia@linti.unlp.edu.ar

Macia, Nicolás

Venosa, Paula

nmacia@linti.unlp.edu.ar

pvenosa@linti.unlp.edu.ar

1. Resumen

En este trabajo se presentará la problemática que
supone el mantenimiento de configuraciones y ac-
tualizaciones de múltiples sistemas informáticos en
un ambiente descentralizado, dando en lo posible,
un enfoque de solución que utilice productos de soft-
ware libre [1] como premisa inicial.

Entre los alcances esperados de esta línea de
I/D/I están los de analizar los distintos mecanis-
mos y herramientas de provisioning, minimizando
los problemas tanto de seguridad como de disponi-
bilidad a los que se expone un sistema informático.
Entre las precondiciones que tomamos se puede
mencionar que los mecanismos tienen que servir tan-
to para reconfigurar sistemas ya puestos en produc-
ción como para realizar nuevas instalaciones, tenien-
do como objetivo máquinas con sistema operativo
tipo *nix [2] y considerando que las las herramien-
tas a utilizar deben ser software libre.

Se incorpora en este trabajo, además del análi-
sis de mecanismos y herramientas, el relato de la
implementación realizada hasta el momento y los
objetivos alcanzados.

En base al conocimiento adquirido, se espera es-
tablecer un mecanismo que permita cumplir buenas
prácticas de configuración o actualización que habi-
liten, por ejemplo, el cambio de perfiles o anulación
de los accesos de un usuario, debido tanto a un com-
promiso de sus credenciales de acceso como a la baja
o reubicación laboral del mismo.

Palabras clave: provisioning, software libre, ges-

tión centralizada, seguridad

2. Contexto

La línea de investigación presentada está inser-
ta en el proyecto de incentivos Redes, Seguridad

y Desarrollo de Aplicaciones para e-educación, e-
salud, e-gobierno y e-inclusión”del LINTI [3] de la
Facultad de Informática de la Universidad Nacional
de La Plata (UNLP) [4].

En el marco de este proyecto un grupo de trabajo
de docentes/investigadores del LINTI se avocan al
estudio y aplicación de estándares y tecnologías vin-
culadas a la seguridad y privacidad en redes y aplica-
ciones, incluyendo en esta línea también la concien-
tización y capacitación en temas vinculados con la
seguridad de la información en el ámbito académico.

3.

Introducción

Administrar un conjunto de servidores dentro de
una organización implica la necesidad de mantener
la consistencia entre ciertas configuraciones comu-
nes a éstos. En este sentido, resulta frecuente la
necesidad de aplicar reglas de seguridad como, por
ejemplo, filtros de firewall que permitan el acceso a
servicios sólo desde determinadas subredes; defini-
ción de usuarios junto con sus contraseñas y/o cla-
ves públicas; definición de privilegios dependiendo
del servidor, a determinados usuarios; servicios que
deben ejecutarse por defecto para mantener la con-
sistencia de los logs, como la sincronización horaria
con el servicio de NTP [5]; configuraciones de envío
de logs hacia servidores de logs; etc.

El precepto de mantener la consistencia de la con-
figuración se aplica también cuando un usuario deja
de formar parte de la organización o es movido de
función. Tanto su usuario como sus credenciales de-
ben ser revocadas y deshabilitadas de los servidores
donde ya no formará parte. Fallar en cumplir esta
consigna puede provocar severas consecuencias en la
organización puesto que se abre una ventana para
una posible brecha de seguridad.

1

Mantener la coherencia entre la configuración de
un conjunto de servidores conlleva trabajo manual
donde el operador habitualmente requiere conectar-
se a cada dispositivo para aplicar una serie de reglas
genéricas. Esta actividad, secuencial y repetitiva, es
propensa a errores debido al factor humano involu-
crado en la tarea. Por lo tanto, surge la necesidad
de encontrar una solución para automatizar estas ta-
reas con el objetivo de optimizar el uso del tiempo
de los recursos humanos y minimizar las amenazas
de seguridad no intencional que implica la realiza-
ción manual de las mismas.

El problema descripto, con el que conviven a dia-
rio los administradores de sistemas, actualmente se
soluciona utilizando técnicas de provisioning. El pro-
visioning consiste en establecer una serie de reglas o
propiedades que un host debe cumplir. Luego, me-
diante algún mecanismo propio de la herramienta
utilizada, estas propiedades se transmiten al dispo-
sitivo pertinente y se asegura su subordinación a las
reglas establecidas. De esta forma se puede asegurar
que la totalidad de servidores de una organización
se rige bajo un único conjunto de reglas de configu-
ración.

El provisioning también favorece el ciclo de mejo-
ra contínua de los procesos de administración y del
sistema de gestión de seguridad de la organización,
dado que resulta más sencillo el aplicar cambios re-
queridos en el marco del PDCA [6].

En toda organización es fundamental mantener
algún esquema de usuarios y permisos. Dicho es-
quema facilita la separación de privilegios y permite
controlar de forma granular el acceso a los recursos
compartidos. La carencia de un sistema de este tipo
provoca que todos los miembros de la organización
mantengan el mismo nivel de privilegios, lo cual cla-
ramente genera un grave riesgo de seguridad.

En sistemas operativos tipo *nix el esquema de
separación de privilegios se basa en usuarios, grupos
y permisos de lectura, escritura y ejecución. Cuan-
do la organización o el grupo de administradores
es pequeño, es normal mantener un único usuario
privilegiado con una contraseña maestra comparti-
da. Indudablemente esto es una mala práctica pues-
to que si uno de los administradores deja el grupo,
habrá que cambiar la contraseña maestra en todas
las máquinas afectadas. Además, utilizar un esque-
ma de este estilo no permite mantener la trazabili-
dad de las acciones efectuadas por cada administra-

dor.

Es entonces esencial mantener una relación unidi-
reccional entre usuarios y miembros de la organiza-
ción. Inevitablemente esta actividad conlleva un ma-
yor esfuerzo de administración, puesto que por ca-
da servidor se debería configurar cada usuario junto
con su contraseña. Por este motivo, el mencionado
problema habitualmente se resuelve utilizando un
servidor centralizado de autenticación, o algún árbol
de directorios como LDAP [7] en conjunto con algún
esquema de permisos como PAM [8].

Estas soluciones, que son aceptables desde el pun-
to de vista de la seguridad de la información, siem-
pre y cuando estén correctamente implementadas,
poseen dos problemas que impulsan a buscar otras
alternativas. En primer lugar, el grupo de trabajo
que lleva a cabo esa investigación utiliza SSH [9]
con autenticación por clave pública para conectar-
se remotamente a sus servidores. Configurar cada
usuario con una clave pública no es algo que se pue-
da implementar de forma sencilla con un servidor
centralizado de autenticación. Tampoco existe un
método directo para hacerlo utilizando servicios co-
mo LDAP. En segundo lugar, es preferencia de nues-
tro grupo de trabajo no mantener servicios que im-
pliquen un único punto de falla. Si por algún motivo
el hipotético servidor de autenticación centralizada
no estuviera disponible, entonces el resto de la in-
fraestructura se vería inutilizada puesto que no sería
posible autenticarse, provocando efectivamente una
denegación de servicio [10] no solo al servicio com-
prometido sino a la totalidad de los servicios de la
organización.

Ante las decisiones de diseño tomadas, entonces,
se optó por seguir una metodología de provisioning
de usuarios y credenciales. De esta forma, los usua-
rios y claves públicas se configuran en un único pun-
to, pero luego esta configuración es distribuida e ins-
talada en cada servidor involucrado. De esta forma
se obtienen los beneficios de un servicio de autenti-
cación centralizada, pero se elimina el problema de
que sea un único punto de falla.

Existen diversas herramientas licenciadas como
software libre para realizar provisioning. En par-
ticular, se evualuaron aquellas que funcionan des-
de y para sistemas operativos tipo *nix, siendo re-
querimiento fundamental que tengan buen sopor-
te para aquellas distribuciones basadas en Debian
GNU/Linux como ser el propio Debian [11], Ubun-

2

tu [12] o Lihuen GNU/Linux [13], la distribución de
la Facultad de Informática. Las herramientas más
destacadas que cumplen con estos requisitos son
Chef [14], Puppet [15] y Ansible [16]. Sin embar-
go, para efectuar las experiencias realizadas por este
grupo de trabajo se decidió utilizar Propellor [17],
una herramienta para hacer provisioning que aún
está dando sus primeros pasos, pero no por ello es
menos efectiva.

El paradigma de distribución de configuraciones
de Propellor es interesante de analizar y merece una
breve descripción en este artículo. Para empezar,
Propellor es una librería escrita utilizando Haskell
[18], un lenguaje de programación funcional puro.
El usuario de Propellor debe escribir su programa
donde cada host sobre el que se requiera hacer pro-
visioning es representado por una lista de propieda-
des. Este aspecto no es muy distinto a Chef con sus
recetas, Puppet con sus módulos o Ansible con sus
playbooks. Tanto el programa escrito como la librería
se versionan en un repositorio git [19]. Cuando se
desea hacer deploy de las configuraciones se dispo-
nen de dos alternativas. En primer lugar se puede
realizar una conexión directa vía SSH al host in-
volucrado, transmitiendo de esta forma los cambios
o actualizaciones de la configuración vía un commit
en el repositorio git. La otra alternativa consiste en
que los mismos hosts sobre los que se hace provisio-
ning intenten cada cierto tiempo descargar nuevos
commits de un repositorio git centralizado c
  • Links de descarga
http://lwp-l.com/pdf16852

Comentarios de: Aspectos de seguridad en el provisioning de servidores (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad