Gestión de las listas de las cuentas usuario, definición
de los permisos, vigilancia de las aplicaciones...
Definir quién tiene el derecho de hacer qué puede llegar
a ser, rápidamente, un dolor de cabeza para el desarrollador.
Entonces, ¿Cómo asegurar la seguridad de un sistema sin
llegar a frenar la productividad de una empresa ?
En este documento encontrará algunas pistas para orientar su reflexión.
Al final del artículo encontrará nuestra solución
favorita.
Asegurar el uso de los recursos de una empresa es un tema delicado por
diversos aspectos.
Sobre todo porque se debe combinar la seguridad de los sistemas y la autonomía
de los usuarios.
Un sistema de seguridad muy apremiante, aún cuando el mismo tenga la ventaja de ser perfectamente seguro, constituirá en el largo plazo un freno para la reactividad de la empresa.
Favorecer la autonomía de los usuarios da una mayor reactividad
a la empresa. Sin embargo, también puede inducir riesgos de seguridad
que deben ser cubiertos.
Tomemos el ejemplo de la gestión diaria de las cuentas usuario
y de sus permisos. Enseguida mencionamos algunos puntos que nos ofrecen
un margen de maniobra:
La gestión de las cuentas usuario :
Esta tarea consume mucho tiempo y muchos recursos técnicos.
¿Podríamos delegar esta tarea a los administradores no técnicos
?
La gestión de los permisos :
Una buena política de seguridad debe poder adaptarse a la realidad
del negocio. En efecto, es mucho más productivo conocer el trabajo
diario de los usuarios para otorgarles permisos adecuados a sus tareas.
¿Podríamos delegar este tipo de tarea? Lo anterior supone
preguntas tanto técnicas como estratégicas.
Esta decisición necesita de un importante trabajo de análisis para tomar en cuenta la realidad de la actividad de cada empresa.
Aqui le presentamos algunas preguntas clave :
¿Qué tareas podemos delegar a los administradores
?
Gestión de las cuentas usuario : La creación/supresión
de cuentas es una tarea que podemos delegar con facilidad. Técnicamente
es muy simple, el impacto sobre la seguridad es fácilmente dominable.
La gestión de los permisos
Esta decisión es más complicada :
Desde un punto de vista estratégico: ¿Deseamos transferir
este tipo de responsabilidades a los administradores no técnicos
?
Desde un punto de vista técnico : ¿Cómo podemos hacer
para que un permiso « funcional », atribuido por un administrador,
sea efectivamente aplicado al usuario ?
¿Qué herramientas podemos utilizar ?
Se necesita crear herramientas que permitan ejecutar las tareas delegadas.
Nota : Es altamente recomendado tomar en cuenta la sensibilidad de
los usuarios finales : las herramientas poco ergonómicas repelerán
a los usuarios y los incitarán a encontrar soluciones alternativas
que meterán en peligro la seguridad de su sistema.
¿Cómo garantizar la fiabilidad del sistema ?
Para mantener un nivel de seguridad elevado, se debe poder controlar lo
que fue hecho al interior del sistema (saber qué administrador
otorgó qué permiso, etc..). Se debe por lo tanto preveer
herramientas de auditoría.
¿Cuántos administradores serán necesarios
?
Si los administradores son numerosos, usted debe preveer los roles y los
permisos de los mismos dentro de las herramientas de administración.
Por ejemplo: un administrador general y diversos sub-administradores que
tendrán responsabilidades limitadas.
¿Cómo gestionar el caso de sitios distantes ?
En función de la estructura de la empresa se podrá poner
en práctica herramientas de administración que funcionan
sin conexión a la base de datos para garantizar la autonomía
de los administradores.
¿Comprar o desarrollar en interno ?
Se trata de una decisión estratégica clásica.
El caso del control de acceso conlleva especificidades en este dominio.
Es particularmente difícil elaborar una solución que sea
a la vez :
Además, los costos escondidos pueden afectar en un largo plazo el presupuesto de desarrollo :
Teniendo en cuenta la complejidad del tema, un estudio preliminar sobre
las soluciones existentes se justifica.
Una estimación precisa de los costos (en el corto y largo plazo)
y de las necesidades específicas de la empresa le permitirán
tomar una decisión.
Novalys ha desarrollado Visual Guard una solución de control de
acceso que responde a un buen número de las preguntas mencionadas
anteriormente.
En particular.
Nota : Desde un punto de vista técnico, todas las aplicaciones
.Net son soportadas : Winform, Webform, Asp.net, WCF, WPF, etc…
asi como las aplicaciones PowerBuilder.
El objetivo es proporcionar un solo sistema de seguridad centralizado
para todas las aplicaciones.
Una nueva versión multi-lenguages se está desarrollando
para soportar también las aplicaciones no .Net: Java, C++, PHP
Nota : Concretamente, lo anterior quiere decir que usted puede reutilizar las cuentas Windows para autenticar los usuarios de sus aplicaciones. Además de evitar crear un sistema de autenticación, el principio de la autenticación única Single Sign-on de Windows será implementado de manera automática.
Nota : Tecnicamente, la herramienta se basa en los principios de
bajo nivel del framework .Net., los permisos son aplicados dinámicamente
sin pasar por la etapa del despliegue.
Un permiso atribuído en la consola, por un administrador, es inmediatamente
activo.
Estas funcionalidades permiten combinar la seguridad de los sistemas
y la flexibilidad de los usuarios.
Desde un punto de vista funcional, los administradores tienen su propia
herramienta para la gestión de las cuentas.
En función de las necesidades específicas de la empresa,
ellos podrán únicamente declarar los usuarios o se les podrá
otorgar privilegios avanzados como la atribución de permisos.
Los diferentes niveles de roles permiten establecer una jerarquía
entre los administradores. La funcionalidad de la bitácora garantiza
el seguimiento de las acciones de seguridad.
Desde un punto de vista técnico, las ventajas de Visual Guard
son numerosas :
Es compatible con múltiples sistemas de autenticación.
La autenticación Windows implementa automáticamente el Single
Sign-On (autenticación única). Las funcionalidades ligadas
a los permisos y a la auditoría están disponibles en estándar.
El caso de sitios remotos también es tomado en cuenta, así
como el funcionamiento en modo off-line.
Finalmente, la externalización de la actualización del sistema
de seguridad y del seguimiento de las evoluciones de las tecnologías
Microsoft constituye un ahorro consecuente de tiempo y de dinero. Los
equipos de desarrollo pueden así concentrar sus esfuerzos en las
tareas estratégicas.