Seguridad VS autonomía de los usuarios

¿Cómo gestionar el acceso de los usuarios a los recursos de la empresa ?


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.

Combinar la Seguridad y la autonomía de los usuarios

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.

Pistas de reflexión

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 :

  • Técnicamante viable
  • Adaptada a las necesidades funcionales (muy complejas para este campo)
  • Que garantice un alto nivel de seguridad

Además, los costos escondidos pueden afectar en un largo plazo el presupuesto de desarrollo :

  • El mantenimiento cotidiano : gestión de las cuentas, nuevos permisos con cada nueva versión de la aplicación, etc…
  • Seguimiento de las evoluciones tecnológicas mayores de Microsoft.

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.

La solución propuesta por Novalys : Visual Guard

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.

  • La gestión de las cuentas usuario es delegada a los administradores no técnicos con la ayuda de una consola dedicada a esta tarea. A partir de una interfaz única, los usuarios pueden gestionar, con mucha facilidad, las cuentas usuario y los permisos de todo un portafolio de aplicaciones.

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

  • Un administrador puede entonces crear sin asistencia técnica las cuentas de tipo login/contraseña (guardadas directamente en el repositorio interno de la solución) o reutilizar las cuentas Windows guardadas en el Active Directory.

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.

  • Siguiendo con la misma interfaz, el administrador puede atribuir a los usuarios permisos predefinidos para los desarrolladores.

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.

  • La consola también está disponible en Webform. Podemos por lo tanto efectuar tareas de administración sin conexión directa a la base de datos o a la red local. Una conexión Internet basta. La gestión de las cuentas usuario y de los derechos puede por lo tanto ser descentralizada (en el caso de sitios distantes).
  • Visual Guard contiene una selección de roles para los administradores, que les permiten controlar la gestión de la seguridad. Una funcionalidad de auditoría guarda las acciones de administración y genera reportes de las mismas en formato .pdf.

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.