.. _security-module-section:
*******************
Módulo de Seguridad
*******************
Dada la naturaleza inevitable y tendencia creciente de amenazas y ataques
de seguridad, es de vital importancia que todo software disponga de un
conjunto de medidas de refuerzo y prevención de fallos de seguridad y
vulnerabilidades, que puedan poner en riesgo la aplicación y por ende, la
privacidad del usuario.
A continuación se presenta en detalle cada una de las medidas y
funcionalidades que integran el **Módulo de Seguridad** extendido para WOCU
Monitoring.
.. _change_password:
Cambio de contraseñas forzado
=============================
En la creación o restablecimiento de cuentas de usuario, se generan
unas contraseñas iniciales que son únicamente válidas en el primer
inicio de sesión del usuario. Tras este, el sistema obliga al cambio
de contraseña.
El proceso es muy sencillo, el usuario debe ingresar primero la contraseña
inicial proporcionada para poder definir seguidamente una nueva, imitando
un patrón preestablecido para cumplir con la :ref:`password-policy`
aplicada. Por último, habrá que introducir de nuevo esta nueva credencial
como confirmación de la misma.
Si la contraseña cumple con los requisitos solicitados, la acción será
verificada y se permitirá al usuario acceder al interfaz de inicio de
la herramienta, mediante el botón :guilabel:`Go to Dashboard`.
.. image:: ../images/additional_modules/6_001_security-module_change-initial-password_0-43.jpg
:align: center
.. Attention::
Si no se efectúa el cambio inicial de contraseña forzado, la cuenta de
usuario asociada se mantiene deshabilitada. Con esta medida es posible la
creación automática de usuarios de una forma totalmente segura.
.. _password-policy:
Política de contraseñas estricta
=================================
Como medida de refuerzo de seguridad y protección de la herramienta, se
emplea una política de contraseñas estricta constituida por las siguientes
medidas de control:
.. image:: ../images/additional_modules/6_002_security-module_change-password_0-43.jpg
:align: right
:scale: 55%
**✓ Cada contraseña tiene una validez máxima permitida de 90 días**.
Asimismo, a través de una tarea de expiración de usuarios
ejecutada periódicamente, se identificarán y bloquearán las cuentas de
usuarios inactivas que no hayan iniciado sesión durante un periodo de
tiempo determinado (este es valor es configurable).
Luego los usuarios que superen al menos una de las restricciones de tiempo
marcadas, quedarán deshabilitados en WOCU.
**✓ En el cambio de contraseñas**:
- Comprobación de la propuesta contra un diccionario de contraseñas no
recomendables. Si existe coincidencia, esta será denegada por el sistema.
- Comprobación de la propuesta contra un histórico de contraseñas para
evitar su reutilización y repetición. Si existe coincidencia, esta será
denegada por el sistema.
**✓ Requisitos mínimos en la construcción de contraseñas**:
- Se prohíbe la utilización de más de dos caracteres idénticos de
forma sucesiva.
- La contraseña no podrá ser idéntica al nombre de usuario de la cuenta.
- Longitud mínima de 8 caracteres.
- Debe contener al menos 2 de cada uno de los siguientes elementos:
mayúsculas, minúsculas, números y caracteres especiales (no alfanuméricos).
Las contraseñas deben cumplir y superar todos los requisitos de complejidad
estipulados, considerados esenciales para mitigar cualquier amenaza
de seguridad existente.
.. _reset_password:
Reseteo de contraseñas
======================
Disponibilidad de un portal independiente para restablecer contraseñas
por parte del propio usuario (independientemente de su rol).
Este portal estará accesible desde la barra superior de navegación, en el
menú desplegable del usuario (con el que se ha accedido al sistema) aparecerá
la nueva opción :guilabel:`Change Password`, tal como se muestra en la
siguiente imagen:
.. image:: ../images/additional_modules/6_003_security-module_main-menu-user_0-43.jpg
:align: center
:scale: 60%
Para proceder al reseteo de la contraseña, es necesario insertar la contraseña
antigua y dos veces la nueva como medida de confirmación. Recuerda que debe
cumplir con la :ref:`password-policy` estipulada.
.. image:: ../images/additional_modules/6_004_security-module_view-change-password_0-43.jpg
:align: center
:scale: 60%
.. _captchas:
Captchas
========
Inserción de esta tecnología de verificación de usuarios, a fin de limitar la
capacidad de los atacantes de ingresar en el interfaz utilizando medios
automáticos.
Este recurso permanecerá fijo en la página de ingreso a la herramienta,
ubicado a continuación de la solicitud de credenciales de acceso del usuario.
Siempre que se inicie una nueva sesión, el usuario debe superar dicha prueba.
El desafío consiste en escribir las letras ofuscadas mostradas en la imagen.
.. image:: ../images/additional_modules/6_005_security-module_view-captchas_0-43.jpg
:align: center
:scale: 60%
.. Note::
Aunque el sistema usa un captcha básico, la implementación permite el
uso del recaptcha de Google.
.. _lock_user:
Bloqueo de cuentas ante sucesivos intentos fallidos
===================================================
Capacidad de monitorización de los intentos de acceso al interfaz y
prevención de ataques de fuerza bruta cuando se excede un límite de intentos
permitidos previamente configurado. Se controlarán los intentos de acceso
por dirección IP, nombre de usuario, *user agent*, o por una combinación
de ambos.
Cuando se supere el límite de intentos fallidos sucesivos, la cuenta quedará
bloqueada automáticamente durante al menos 20 minutos. Solo el Administrador
de la plataforma podrá habilitar/deshabilitar el bloqueo de cuentas
de usuarios.
.. image:: ../images/additional_modules/6_006_security-module_account-locked-info_0-43.jpg
:align: center
:scale: 50%
La información de estas actividades persistirá en la base de datos,
posibilitando la realización de auditorías o reenvío de los eventos
registrados a otros sistemas.
.. Important::
El número de intentos fallidos y el tiempo de deshabilitación
de la cuenta bloqueada, son totalmente configurables.
Adicionalmente, habiendo ya accedido a la herramienta, se incluye nuevos datos
en las siguientes vistas informativas:
.. image:: ../images/additional_modules/6_007_security-module_main-menu-options_0-43.jpg
:align: center
:scale: 60%
* :guilabel:`Login Information`: esta vista solo está accesible para
Administradores e incluye la siguiente información:
* Cuentas conectadas que han iniciado sesión en ese mismo momento:
mostrando datos identificativos de la cuenta, sesiones totales y último
ingreso satisfactorio a la aplicación.
* Antecedentes de intentos fallidos: especificando usuario y las
marcas de tiempo de los intentos erróneos.
.. image:: ../images/additional_modules/6_008_security-module_login-info_0-43.jpg
:align: center
:scale: 60%
* :guilabel:`User Login Information`: esta vista está accesible para
el usuario que ha ingresado a la aplicación e incluye la siguiente
información:
* Datos identificativos de la cuenta de usuario registrada en WOCU.
* Histórico de intentos fallidos desde el último inicio de sesión
satisfactorio.
.. image:: ../images/additional_modules/6_009_security-module_user-login-info_0-43.jpg
:align: center
:scale: 60%
.. _reuse_password:
Reutilización de contraseñas
============================
Como se indica en la :ref:`password-policy` aplicada, existe un histórico de
*hashes* (identificadores únicos e irrepetibles) para la comprobación durante
el cambio de contraseñas.
Se trata de una medida de prevención ante la reutilización y repetición de
contraseñas usadas previamente en una cuenta. Por lo tanto, si existe
coincidencia entre algún elemento del histórico y la contraseña propuesta,
esta será denegada por el sistema.
.. Note::
El número de contraseñas por usuario que se salvan en el historial es
configurable. El sistema establece 12 por defecto.
.. _control:
Control de sesiones
===================
El Módulo de Seguridad no permite la reutilización de *tokens* de sesión,
como impedimento del filtrado de sesiones.
Como contraposición WOCU actúa de la siguiente manera:
✓ Se registra la dirección IP y la firma del navegador por cada inicio
de sesión en la plataforma.
✓ Se comprueba que el *token* de sesión utilizado por un usuario,
pertenece a la misma dirección IP y firma de navegador registradas.
✓ Si un atacante usa el mismo *token* de sesión utilizando otra dirección
IP o navegador web, la sesión queda automáticamente invalidada para
dicho atacante.
.. image:: ../images/additional_modules/6_010_security-module_control-sesions_0-43.jpg
:align: center
Estas comprobaciones evitan que en caso de que la sesión de un usuario
sea obtenida, por ejemplo, mediante un ataque *man in the middle* a una
conexión sin cifrar, esta no pueda ser reutilizada desde una dirección IP
distinta, ni desde un *User-Agent* distinto. Ante la reutilización de esta,
la sesión vulnerada en cuestión es invalidada de inmediato.
.. _2factor:
Segundo factor de autenticación
===============================
Por último, este módulo incluye la posibilidad de integrar mecanismos de
doble factor de autenticación, previa instalación de la aplicación
``Google Authenticator`` o alguna análoga
que soporte el protocolo **TOTP**.
Básicamente, este mecanismo de seguridad permite
establecer un reto adicional a la contraseña y al :ref:`captchas`
durante el inicio de sesión.
La configuración de dicha funcionalidad se llevará a cabo desde un nuevo
portal independiente llamado :guilabel:`Two Factor Authentication`, accesible
desde la barra superior de navegación, en el menú desplegable del usuario
(con el que se ha accedido al sistema), como se muestra en la siguiente
imagen:
.. image:: ../images/additional_modules/6_011_security-module_second-factor-option_0-44.jpg
:align: center
Una vez dentro del portal de configuración, se habilitará la funcionalidad
haciendo uso de la opción :guilabel:`Enable Two-Factor Authentication`.
.. image:: ../images/additional_modules/6_012_security-module_second-factor_account-enable_0-44.jpg
:align: center
En la siguiente vista habrá que confirmar nuevamente la habilitación de
este mecanismo, haciendo clic en el botón :guilabel:`Next`. Podemos revocar
la acción retrocediendo a la vista anterior mediante el botón :guilabel:`Back`
o cancelar el proceso haciendo clic en :guilabel:`Cancel`.
.. image:: ../images/additional_modules/6_013_security-module_second-factor_account-enable_0-44.jpg
:align: center
A continuación, se accederá a una nueva ventana donde habrá que escanear (con
la aplicación ``Google Authenticator`` o alguna análoga
que soporte el protocolo **TOTP**) el código QR mostrado.
Una vez escaneado, la aplicación devolverá automáticamente un código que el
usuario debe ingresar en el campo :guilabel:`Token`.
.. image:: ../images/additional_modules/6_014_security-module_second-factor_account-qr_0-44.jpg
:align: center
Validada la acción, el segundo factor quedará
habilitado correctamente para el usuario en cuestión.
.. image:: ../images/additional_modules/6_015_security-module_second-factor_account-confirmation_0-44.jpg
:align: center
Aunque no es estrictamente necesario, se recomienda a los usuarios guardar
*tokens* de un solo uso, que podrán introducir en caso de que
hayan perdido el acceso a su dispositivo móvil.
Para ello, habilitado el segundo factor de autenticación, dentro
de la vista **Account Security** en la sección **Backup Tokens**, habrá
que seleccionar la opción :guilabel:`Show Codes` para acceder al
listado completo de *tokens* de un único uso, útil como método de respaldo.
.. Attention::
Recuerda copiar en un lugar seguro el código para su futuro uso.
.. image:: ../images/additional_modules/6_016_security-module_second-factor_account-backup_0-44.jpg
:align: center
Finalizada la configuración, una vez el usuario acceda nuevamente en la
herramienta e ingrese sus credenciales de acceso y supere el :ref:`captchas`,
deberá introducir el *token* generado en su dispositivo móvil o el
*token backup* de un único uso.
.. image:: ../images/additional_modules/6_017_security-module_second-factor_account_0-44.jpg
:align: center
Por último, desde la vista **Account Security**, sección
**Disable Two-Factor Authentication**, es posible deshabilitar este
mecanismo de seguridad. Para ello, habrá que marcar
la casilla :guilabel:`Yes, I am sure` y confirmar la acción haciendo clic
en el botón :guilabel:`Disable`.
.. image:: ../images/additional_modules/6_018_security-module_second-disable_0-44.jpg
:align: center
Restricción de la indexación de portales expuestos
==================================================
Se trata de una medida de bloqueo del rastreo e indexación de
portales de acceso a la aplicación, por parte de motores de búsqueda.
Es decir, con la implementación de esta función de refuerzo, se impide
la localización y accesibilidad a las distintas instancias de
**WOCU-Monitoring** que están siendo expuestas a internet y en consecuencia,
son servidas como resultados de búsquedas realizadas.
.. admonition:: Limitaciones del Módulo de Seguridad
Actualmente, el Módulo de Seguridad no incluye soporte para autenticación
delegada como ``LDAP`` o ``Active Directory``. Por tanto, dicho módulo
no podrá ser usado en conjunto con el módulo de autenticación delegada
que también provee WOCU.
.. admonition:: Módulo adicional y cómo contratarlo
El :ref:`security-module-section` no se distribuye por defecto en
**WOCU-Monitoring**, este viene incluido en la
`versión Platinium `_.
Está destinado a clientes con determinadas necesidades de seguridad. Si es
su caso,
`contacte con nuestro Equipo Comercial `_
y resolverán todas sus dudas.