BarsUP.AM: cómo desarrollamos una herramienta para proteger la información de las aplicaciones web

imagen

BarsUp.Access Manager (BarsUp.AM) : nuestro paquete de software para proteger la información confidencial. Al diseñar y desarrollar este sistema de acuerdo con los requisitos de los documentos reglamentarios del FSTEC de Rusia, encontramos dificultades para administrar el acceso a las aplicaciones web utilizando herramientas de seguridad de la información certificadas.

La Orden del FSTEC de Rusia No. 17 dice que la elección debe hacerse de los medios de protección de la información certificados para el cumplimiento de los requisitos de seguridad de la información, teniendo en cuenta su costo, la compatibilidad con las tecnologías de la información y los medios técnicos. Observamos lo que había en el mercado en ese momento y entendimos: el costo de las soluciones compatibles con nuestros sistemas de información a menudo excedía el costo de los sistemas mismos, o eran incompatibles.

En este caso, el regulador informa que, en ausencia de medios adecuados de protección de la información, se organiza su desarrollo (revisión) y certificación de acuerdo con la legislación de la Federación de Rusia o el ajuste de las decisiones de diseño . Decidimos desarrollar y certificar en FSTEC de Rusia un software que implementa las funciones de identificación y autenticación de usuarios, control de acceso y registro de eventos de seguridad para su posible uso:

  • En sistemas automatizados hasta clase de seguridad 1G inclusive, de acuerdo con los requisitos del documento de orientación “Sistemas automatizados. Protección contra el acceso no autorizado a la información. Clasificación de sistemas automatizados y requisitos de protección de la información ”(Comisión Técnica del Estado de Rusia, 1992);
  • 11 2013 . № 17 « , , » 11 2014 . « »;
  • 1 18 2013 . № 21 « ».

El producto se llama BarsUP.Access Manager o BarsUP.AM . Eliminaré los problemas relacionados con la obtención de una decisión del FSTEC y la celebración de acuerdos con un laboratorio de pruebas y un organismo de certificación más allá de las fronteras de este material, y describiré cómo desarrollamos software para proteger las aplicaciones web.

comienzo


Formamos un equipo compuesto por un gerente de proyecto, ingeniero de seguridad de la información, analista, arquitecto de software y dos desarrolladores líderes. Durante la implementación del proyecto, identificamos las siguientes etapas de trabajo:

imagen

en la etapa de análisis, recopilamos los requisitos de los documentos reglamentarios que pueden implementarse como un medio de protección para la web, luego trabajamos junto con los desarrolladores sobre la posibilidad de su implementación en términos de recursos gastados y tiempo. Al analizar los requisitos, tradujimos la redacción de los actos jurídicos a un lenguaje que fuera comprensible para los analistas y desarrolladores, formamos una hoja de ruta: lo que debería implementarse en primer lugar, que es opcional. Escribimos documentación para la certificación en paralelo y después del desarrollo del producto.

En la salida, recibimos un producto que resuelve las siguientes tareas:

  • (SSO) ;
  • ;
  • ;
  • ;
  • ;
  • .
  • , ;
  • ;
  • () , TOTP ;
  • ;
  • ;
  • () ;
  • ;
  • ;
  • escalabilidad horizontal del sistema debido a la agrupación.

El software admite dos estándares para implementar el inicio de sesión único:

  • lenguaje de marcado de aserción de seguridad (SAML);
  • OpenID Connect 1.0.

Implementación de inicio de sesión único SAML


De acuerdo con los términos del estándar SAML, el software actúa como un proveedor de identidad (IdP). Los subsistemas IP actúan como proveedores de servicios (SP).

El procedimiento general para trabajar con inicio de sesión único a través de SAML se presenta a continuación:

imagen

  1. El usuario está intentando implementar el acceso web a la aplicación (SP);
  2. La aplicación verifica la presencia de un contexto de seguridad y, en su ausencia, genera un mensaje AuthnRequest y redirige el navegador del usuario al servidor de autorización BarsUP.AM (IdP);
  3. El usuario se conecta al servidor de autorización e ingresa sus credenciales;
  4. , ;
  5. Response;
  6. , Response. Response .

El intercambio de mensajes entre las partes se realiza en forma de declaraciones SAML (aserciones) . Los reclamos de SAML se transmiten usando el protocolo seguro HTTPS.

Se establece una relación de confianza entre el proveedor de identidad IdP y los proveedores de servicios SP. Los mensajes SAML enviados, incluidos AuthRequest y AuthResponse, se firman utilizando certificados digitales SP e IdP, respectivamente.

Un mensaje de AuthRequest se firma con la clave privada de la aplicación y se entrega al servidor de autorización utilizando los mensajes HTTP Redirect, HTTP POST o HTTP Artifact. Un mensaje AuthRequest, en particular, contiene la siguiente información:

  • URL de aplicación
  • URL del proveedor de identidad de IdP (servidor de autorización BarsUP.AM);
  • Identificación y hora de creación de la solicitud.

El mensaje de respuesta de AuthnResponse se firma con la clave privada del servidor de autorización. Un mensaje de AuthnResponse, en particular, contiene la siguiente información:

  • Identificador de solicitud de AuthRequest al que corresponde esta respuesta;
  • URL del manejador de respuestas
  • el período durante el cual la respuesta se considera válida;
  • Fecha y hora de autenticación del usuario
  • identificador de sesión de usuario;
  • atributos del usuario y sus valores.

Implementación de inicio de sesión único basado en OpenID Connect


OpenID Connect es una extensión diseñada para proporcionar identificación y autenticación de usuarios a través del protocolo OAuth 2.0.

En el proceso de implementación del inicio de sesión único utilizando la tecnología OpenID Connect, BarsUP.AM actúa como un proveedor de OpenID (Proveedor de OpenID, OP). Los sistemas de información (es decir, aplicaciones web específicas a las que accede el usuario) actúan como la Parte Confiable (RP), que utiliza el OP para autenticar al usuario.

La implementación del inicio de sesión único a través de OpenID Connect se describe en la siguiente figura:

imagen

  1. Un usuario está intentando acceder a una aplicación web (SP);
  2. La aplicación genera una Solicitud de código de autorización (protocolo OAuth2.0) y redirige el navegador del usuario al servidor de autorización BarsUP.AM (OP);
  3. El usuario ingresa sus credenciales en OP;
  4. OP ;
  5. , OP RP . , Authorization Response, ;
  6. RP OP, (Token Request). TLS;
  7. , OP RP (ID Token, Access Token);
  8. RP .

BarsUP.AM web-


Para evitar ataques destinados a falsificar el OP o RP, deben autenticarse mutuamente.

BarsUP.AM admite los métodos de autenticación definidos en la especificación para OpenID Connect. El principio de funcionamiento de OpenID Connect y OAuth 2.0 se basa en el uso de tokens de identificación (token de identificación) y autorización (token de acceso).

Daré la implementación de las funciones básicas de seguridad en software:

  • identificación de usuario y autenticación;
  • control de acceso;
  • registro de eventos de seguridad.

Autenticación de usuario y autenticación


La identificación y autenticación se implementa en BarsUP.AM en función del nombre de usuario y la contraseña. El usuario ingresa sus credenciales en la página web de autenticación BarsUP.AM. En este caso, las credenciales se transmiten de forma segura a través del protocolo HTTPS. El acceso a la aplicación de destino solo se permite si la autenticación es exitosa. Por lo tanto, la identificación y autenticación del usuario se realizan con acceso web remoto a la IP.

Al ingresar la contraseña, la contraseña no se muestra en el formulario web y se reemplaza el especial. caracteres. Debido a esto, la protección de retroalimentación se implementa al ingresar información de autenticación.

La política de contraseña BarsUP.AM proporciona la siguiente configuración:

  • algoritmo de hashing;
  • prohibir el nombre de usuario en la contraseña;
  • número mínimo de dígitos en una contraseña;
  • longitud mínima de contraseña;
  • número mínimo de letras minúsculas;
  • número mínimo de letras mayúsculas;
  • número mínimo de caracteres especiales;
  • longitud del historial de contraseña;
  • cambio forzado de contraseña después de un cierto período de tiempo;
  • El número mínimo de caracteres cambiado en la nueva contraseña.

BarsUP.AM también admite la autenticación de usuarios multifactor (dos factores).

Control de acceso


BarsUP.AM implementa soporte automatizado de administración de cuentas de usuario y bloqueo automático de cuentas de usuario.

El administrador puede crear, modificar, eliminar, bloquear y desbloquear cuentas de usuario a su discreción. El administrador crea las cuentas de usuario utilizando la consola web del servidor de administración BarsUP.AM. Al crear una cuenta, se indican el nombre, la dirección de correo electrónico, el período de validez de la cuenta y, si es necesario, otros atributos del usuario. El usuario cambia la contraseña en el primer inicio de sesión de acuerdo con la política de contraseña. Las cuentas de usuario se pueden agrupar con atributos y permisos de grupo específicos.

Los siguientes mecanismos de bloqueo de cuentas de usuario son:

  • bloqueo de administrador;
  • bloqueo al final del período de tiempo establecido para usar la cuenta;
  • bloqueo después de un período de tiempo específico de no uso de la cuenta;
  • bloqueo al exceder intentos fallidos de inicio de sesión;
  • bloqueo cuando se excede el número de sesiones concurrentes.

El administrador desbloqueará la cuenta o después de que haya transcurrido el tiempo de espera de bloqueo (por ejemplo, cuando está bloqueada por exceder el número de intentos fallidos de inicio de sesión).

BarsUP.AM implementa el control de acceso de los sujetos al ingresar a la IP. A cada usuario o grupo de usuarios en BarsUP.AM se le pueden asignar roles y derechos. Los derechos pueden aplicarse a un sistema específico o al dominio completo que incluye varios sistemas (aplicaciones). El administrador establece la información sobre el rol y los derechos y se fija en forma de atributos de acceso.

Registro de eventos de seguridad


BarsUP.AM implementa la recopilación, grabación y almacenamiento de información sobre eventos de seguridad durante el acceso web remoto a IP. En particular, se registran los eventos relacionados con el cambio de las contraseñas de los usuarios, la configuración y eliminación de cuentas de usuarios, el cambio de las reglas de control de acceso y los permisos de los usuarios.

Los eventos de seguridad se registran en el registro de eventos. Para cada evento, se registran la fecha y la hora, el tipo de evento, el sistema afectado, el usuario asociado con el evento y la dirección IP del nodo. El servidor de registro se utiliza para almacenar registros de eventos.

Los eventos se dividen en categorías, que incluyen eventos de seguridad y eventos del sistema. Los derechos para ver el registro de eventos se otorgan al administrador.

La composición de los eventos de seguridad que se grabarán se puede personalizar. La definición de los eventos de seguridad que se registrarán y sus períodos de almacenamiento se registran en los documentos organizacionales y administrativos para la protección de la información.

Total


El proyecto nos llevó 6 meses, excluyendo el tiempo de prueba y el trabajo del organismo de certificación. Ahora, al implementar proyectos para garantizar la protección de la información en los sistemas de información, no tenemos dolor de cabeza, cómo proteger las aplicaciones web.

Source: https://habr.com/ru/post/undefined/


All Articles