Este servicio se ejecuta siguiendo el proceso publicado en el catálogo de servicios estándar según el modelo de calidad de la Agencia.
Se puede consultar en el siguiente enlace: S08 - Evaluación de seguridad de sistemas de información
Para esta Oficina de Calidad, el servicio tiene como alcance la verificación de aplicaciones web (53 verificaciones), la verificación de servicios web (15 verificaciones) y la verificación de aplicaciones móviles (68 verificaciones). Estas verificaciones están alineadas con las medidas de seguridad del ENS, pudiéndose consultar las correspondencias en el apartado "Documentación".
Las vulnerabilidades están asociadas al CVSS* siguiendo las pautas establecidas en "https://www.incibe-cert.es/blog/cvss3-0" a través del formulario "https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator" en su versión 3.0 conforme a ellas, se puede ver la siguiente correlación entre Puntuación y Severidad.
*Nota: el valor de CVSS que se muestra en la descripción del servicio es orientativo. El CVSS final puede cambiar dependiendo de la gravedad de la situación a la que la vulnerabilidad expone a la aplicación.
A continuación, se detallan cada una de estas verificaciones para evaluar el Servicio en aplicaciones web:
Identificador | Descripción | Severidad | CVSS |
---|---|---|---|
SEG-01 | La aplicación tiene una robustez suficiente contra ataques de fuerza bruta o de diccionario. | Media | 6.0 |
SEG-02 | Existe un control en la aplicación para evitar el acceso tras un tiempo inactivo. | Media | 5.7 |
SEG-03 | La desconexión de la sesión debe ser controlada desde la aplicación tras un tiempo de inactividad. | Baja | 3.8 |
SEG-04 | La aplicación tiene implementado funcionalidad para salir de la misma y evitar robo de identidad. | Media | 5.9 |
SEG-05 | Identificación de escenarios de denegación de servicio por bloqueo de cuentas de usuarios tras un número determinado de intentos de acceso fallidos. | Baja | 3.9 |
SEG-06 | La aplicación controla la reflexión inmediata y los ataques almacenados. Protegiendo de la inyección del tipo "Cross-Site Scripting". | Alta | 7.7 |
SEG-07 | La inyección SQL es evitada por la aplicación. | Alta | 7.9 |
SEG-08 | La inyección LDAP es evitada por la aplicación. | Alta | 7.0 |
SEG-09 | La inyección XML es evitada por la aplicación. | Media | 5.6 |
SEG-10 | Verificar que la aplicación no permite inyección de comandos en el sistema operativo. | Media | 6.5 |
SEG-11 | El espacio de claves utilizados debe ser suficiente grande para prevenir ataques de fuerza bruta. | Alta | 7.1 |
SEG-12 | Verificar que la aplicación genera automáticamente contraseñas de autenticación fuertes. | Media | 5.7 |
SEG-13 | Verificar que en la operación de cambio de contraseña se solicita el valor antiguo del mismo. | Media | 5.7 |
SEG-14 | Los algoritmos de cifrado deben cumplir con la normativa de seguridad. | Alta | 7.1 |
SEG-15 | Comprobar que los datos sensibles se almacenan en el sistema encriptados. | Media | 5.5 |
SEG-16 | Comprobar que la información sensible es tratada sin cifrar solo en las ocasiones en la que es imprescindible desencriptarla. | Baja | 3.8 |
SEG-17 | Verificar que no existe una protección insuficiente en la capa de transporte que revele datos críticos, como contraseñas. | Alta | 8.0 |
SEG-18 | No deben mostrarse parámetros en la URL. | Baja | 3.8 |
SEG-19 | No deben mostrarse en la URL parámetros cuyo nombre pueda indicar la información que contienen. | Baja | 3.8 |
SEG-20 | Las referencias cruzadas de páginas no deben contener información de direcciones IP físicas. | Baja | 3.8 |
SEG-21 | Comprobar que no se pueden realizar ataques por fijación de sesión, ni se revela el o los parámetros que identifican la sesión en la URL. | Alta | 7.8 |
SEG-22 | Comprobar que el o los parámetros que identifican la sesión no se generan mediante algoritmos predecibles. | Media | 5.7 |
SEG-23 | Verificar que no existe un inapropiado manejo de la información y de errores que puedan ayudar a aumentar el riesgo de otras vulnerabilidades. | Media | 4.3 |
SEG-24 | Verificar que no se utilizan cuentas y usuarios predeterminados o predecibles. | Baja | 3.9 |
SEG-25 | Verificar que no es posible realizar escalado de privilegios. | Alta | 7.6 |
SEG-26 | Verificar que se registra los accesos de los usuarios al sistema. | Baja | 3.8 |
SEG-27 | Comprobar que no se puede realizar una ejecución maliciosa de archivos en el lado del servidor pudiéndose perder el control total sobre la máquina. | Alta | 7.1 |
SEG-28 | Comprobar que no existen referencias a objetos inseguras, ni que se pueden realizar ataques por transversal path. | Alta | 7.1 |
SEG-29 | Verificar que las peticiones más críticas de la aplicación no son susceptibles de ataques CSRF (Cross-site request forgery). | Alta | 7.6 |
SEG-30 | Verificar que no se pueden realizar ataques de manipulación de "proxys" o "caches" (por ejemplo mediante http response splitting). | Media | 5.7 |
SEG-31 | Verificar que no existen fallos a la hora de restringir el acceso a las URLs. | Media | 4.6 |
SEG-32 | Verificar que no se puede acceder a la información mediante protocolos con niveles de seguridad diferentes (por ejemplo http y https). | Media | 5.7 |
SEG-33 | Verificar que no es posible acceder sin permisos a los ficheros de configuración del entorno web. | Media | 4.4 |
SEG-34 | Verificar que no se almacenan archivos obsoletos en directorios de la aplicación dentro del servidor de aplicaciones. | Baja | 2.8 |
SEG-35 | Verificar que los documentos publicados no contienen metadatos relevantes. | Baja | 3.8 |
SEG-36 | Verificar que no se utilizan campos HTML ocultos que almacenan información sensible sin establecer mecanismos de seguridad. | Media | 4.0 |
SEG-37 | Verificar el uso del doble factor de autenticación en la aplicación | Alta | 7.0 |
SEG-38 | Verificar que no es posible evitar los controles de seguridad que evalúan si el usuario no es un proceso automático (captcha, etc). | Baja | 3.7 |
SEG-39 | Verificar que existen controles de seguridad efectivos que evitan ataques por desbordamiento de buffers. | Baja | 2.7 |
SEG-40 | Verificación de las vulnerabilidades públicas existentes para los productos utilizados o integrados en la aplicación. | * | * |
SEG-41 | Verificación de vulnerabilidades especificas del aplicativo auditado, como puede ser por ejemplo en un servicio de webmail, no poder enviar mensajes suplantando la identidad de otro usuario. | * | * |
SEG-42 | Verificar el uso correcto de métodos HTTP para el envío de información entre el cliente y el servidor | Media | 6.3 |
SEG-43 | Verificar el uso del atributo "autocomplete" en el campo de contraseña de la aplicación. | Baja | 3.8 |
SEG-44 | Comprobar que existe un tiempo de expiración para las cookies de autenticación | Media | 4.1 |
SEG-45 | Comprobar que existe un manejo adecuado de roles y permisos en la aplicación | Alta | 7.5 |
SEG-46 | Comprobar que existe un manejo adecuado de los atributos de las cookies de sesión | Media | 6.4 |
SEG-47 | Verificar el cierre de todas las sesiones abiertas al cambiar la contraseña | Baja | 3.9 |
SEG-48 | La inyección HTTP es evitada por la aplicación | Media | 5.0 |
SEG-49 | Comprobar que la aplicación rechaza cualquier dato inesperado (Inyección de código) | Alta | 7.5 |
SEG-50 | Autentificar y autorizar al usuario antes de cargar o descargar cualquier archivo | Baja | 3.6 |
SEG-51 | Comprobar que no es posible renombrar archivos dentro de la aplicación | Media | 5.0 |
SEG-52 | Comprobar que existe un tiempo de expiración para las transacciones | Baja | 3.9 |
SEG-53 | Utilización de la información almacenada en la caché. | Media | 4.6 |
*NOTA: SEG-40: El mapeo no se ha podido llevar a cabo, debido a que el mapeo depende de las vulnerabilidades conocidas de los productos o componentes empleados por el sistema.
*NOTA: SEG-41: Este mapeo no se ha podido realizar porque depende de las vulnerabilidades específicas del sistema auditado.
A continuación, se detallan cada una de estas verificaciones para evaluar el Servicio en Servicios web:
Identificador | Descripción | Severidad | CVSS |
---|---|---|---|
SEG-01 | El servicio web tiene una robustez suficiente contra ataques de fuerza bruta o de diccionario. | Alta | 6 |
SEG-02 | El servicio web tiene implementado una petición específica para cerrar la sesión y evitar robo de identidad. | Media | 4.6 |
SEG-03 | Existe un control en el servicio web para evitar el envío de peticiones tras un tiempo inactivo. | Media | 4.6 |
SEG-04 | Verificar en el servicio web que no existe un inapropiado manejo de la información y de errores que puedan ayudar a aumentar el riesgo de otras vulnerabilidades. | Baja | 3.2 |
SEG-05 | Verificar en el servicio web que no se produce un comportamiento inesperado al realizar peticiones con elementos duplicados. | Media | 5.2 |
SEG-06 | Verificar en el servicio web que no se produce un comportamiento inesperado al omitir elementos en las peticiones. | Media | 5.2 |
SEG-07 | Verificar en el servicio web que no se produce un comportamiento inesperado al realizar peticiones con elementos mal formados. | Media | 5.2 |
SEG-08 | Verificar en el servicio web que no se produce un comportamiento inesperado al sobrecargar los elementos en las peticiones. | Media | 5.2 |
SEG-09 | La inyección XPath es evitada por el servicio web. | Alta | 5.3 |
SEG-10 | La inyección SQL es evitada por el servicio web. | Alta | 7.6 |
SEG-11 | Verificar en el servicio web que no se produce un comportamiento inesperado al realizar peticiones con inyección de valores aleatorios en los campos. | Baja | 3.2 |
SEG-12 | Verificar en los servicios web que no es posible obtener información útil del sistema al violar la restricción de tipos de datos. | Media | 4.6 |
SEG-13 | Verificar en los servicios web que no es posible obtener información útil del sistema al violar los valores límites de los campos. | Media | 5.2 |
SEG-14 | Los servicios web controlan la reflexión inmediata y los ataques almacenados. Protegiendo de la inyección del tipo "Cross-Site Scripting". | Alta | 7.4 |
SEG-15 | Verificación de vulnerabilidades especificas del aplicativo auditado, como puede ser por ejemplo en un servicio de webmail, no poder enviar mensajes suplantando la identidad de otro usuario. | N/A | N/A |
En la metodología definida para la auditoría de seguridad de aplicaciones móviles, los test se basan en el estándar establecido por OWASP para este tipo de aplicaciones y que incluyen las siguientes verificaciones (61 pautas, incluidas en el Top TEN de OWASP para aplicaciones móviles, revisión 2016):
A continuación, se detallan cada una de estas verificaciones para evaluar el Servicio en aplicaciones móviles:
- M1 - Uso inapropiado de la Plataforma
- M2 - Almacenamiento de Datos Inseguro
- M3 - Comunicación Insegura
- M4 - Autenticación Insegura
- M5 - Criptografía Insuficiente
- M6 - Autorización Insegura
- M7 - Calidad del Código en el Cliente
- M8 - Manipulación de Código
- M9 - Ingeniería Inversa
- M10 - Funcionalidades Extrañas
1. Interacción con la plataforma (M1 - Uso inapropiado de la Plataforma)
Identificador | Descripción | Severidad | CVSS |
---|---|---|---|
SEG-1.1 | Verificar que la aplicación solo requiera el conjunto mínimo de permisos necesarios. | Alta | 7.4 |
SEG-1.2 | Verificar que todas las entradas de fuentes externas y el usuario estén validados y, si es necesario, desinfectados. Esto incluye datos recibidos a través de la interfaz de usuario, mecanismos de IPC como intentos, URLs personalizadas y fuentes de red. | Media | 6.4 |
SEG-1.3 | Verificar que la aplicación no exporta funcionalidad sensible a través de esquemas de URL personalizados, a menos que estos mecanismos estén protegidos adecuadamente. | Baja | 3.1 |
SEG-1.4 | Verificar que la aplicación no exporta funcionalidad sensible a través de las instalaciones de IPC, a menos que estos mecanismos estén protegidos adecuadamente. | Media | 6.0 |
SEG-1.5 | Verificar que JavaScript esté deshabilitado en WebViews a menos que se requiera explícitamente. | Media | 5.3 |
SEG-1.6 | Verificar que las WebViews estén configuradas para permitir sólo el conjunto mínimo de handlers de protocolos necesarios (idealmente, solo https). Los handlers potencialmente peligrosos, como archivo, teléfono y aplicación-id, están deshabilitados. | Baja | 3.1 |
SEG-1.7 | Si los métodos nativos de la aplicación están expuestos a la WebView, verificar que la WebView sólo presente JavaScript dentro del paquete de la aplicación. | Baja | 3.5 |
SEG-1.8 | Verificar que la serialización de objetos, si la hay, se implementa utilizando las API seguras de serialización. | Media | 4.2 |
2. Almacenamiento de datos y privacidad (M2 - Almacenamiento de Datos Inseguro)
Identificador | Descripción | Severidad | CVSS |
---|---|---|---|
SEG-2.1 | Verificar que las instalaciones de almacenamiento de credenciales del sistema se utilicen de forma adecuada para almacenar datos confidenciales, como credenciales de usuario o claves criptográficas. | Media | 5.3 |
SEG-2.2 | Verificar que no se escriban datos confidenciales en los registros de la aplicación (logs). | Media | 4.2 |
SEG-2.3 | Verificar que no se compartan datos confidenciales con terceros a menos que sea una parte necesaria de la arquitectura. | Baja | 2.6 |
SEG-2.4 | Verificar que la memoria caché del teclado esté desactivada en las entradas de texto que procesan datos confidenciales. | Media | 6.8 |
SEG-2.5 | Verificar que el portapapeles esté desactivado en los campos de texto que pueden contener datos confidenciales. | Baja | 2.4 |
SEG-2.6 | Verificar que no haya datos sensibles expuestos a través de los mecanismos de IPC. | Media | 4.9 |
SEG-2.7 | Verificar que no se muestren datos confidenciales, como contraseñas y números de tarjetas de crédito, a través de la interfaz del usuario o que se filtren capturas de pantalla. | Media | 4.6 |
SEG-2.8 | Verificar que no se incluyan datos confidenciales en las copias de seguridad. | Media | 5.7 |
SEG-2.9 | Verificar que la aplicación elimine los datos confidenciales de las vistas cuando están en segundo plano. | Baja | 2.4 |
SEG-2.10 | Verificar que la aplicación no contenga datos confidenciales en la memoria más tiempo de lo necesario y que la memoria se borra explícitamente después de su uso. | Media | 4.7 |
SEG-2.11 | Verificar que la aplicación aplique una política mínima de seguridad de acceso al dispositivo, como solicitar al usuario que establezca un código de acceso del dispositivo. | Baja | 3.8 |
SEG-2.12 | Verificar que la aplicación eduque al usuario sobre los tipos de información de identificación personal procesada, así como sobre las mejores prácticas de seguridad que el usuario debe seguir para usar la aplicación. | Baja | 1.6 |
3. Comunicación de red (M3 - Comunicación Insegura)
Identificador | Descripción | Severidad | CVSS |
---|---|---|---|
SEG-3.1 | Verificar que los datos estén encriptados en la red usando TLS. El canal seguro se usa de manera consistente en toda la aplicación. | Alta | 7.5 |
SEG-3.2 | Verificar que la configuración de TLS esté en línea con las mejores prácticas actuales, en la medida en que sean compatibles con el sistema operativo móvil. | Media | 5.9 |
SEG-3.3 | Verificar que la aplicación comprueba el certificado X.509 del punto extremo remoto cuando se establezca el canal seguro. Sólo se aceptan certificados firmados por una CA válida. | Alta | 8.5 |
SEG-3.4 | Verificar que la aplicación utiliza su propio almacén de certificados o fija el endpoint o la clave pública y, posteriormente, no establece conexiones con los puntos finales que ofrecen un certificado o clave diferente, incluso si está firmado por una CA confiable. | Baja | 3.7 |
SEG-3.5 | Verificar que la aplicación no dependa de un solo canal de comunicación inseguro (correo electrónico o SMS) para operaciones críticas, como inscripciones y recuperación de cuentas. | Alta | 7.1 |
SEG-3.6 | Verificar que la aplicación solo dependa de bibliotecas actualizadas de conectividad y seguridad. | Media | 6.5 |
4. Autenticación y administración de sesiones (M4 - Autenticación Insegura y M6 -Autorización Insegura)
Identificador | Descripción | Severidad | CVSS |
---|---|---|---|
SEG-4.1 | Verificar que si la aplicación proporciona a los usuarios acceso a un servicio remoto, se realiza una forma de autenticación aceptable, como la autenticación de nombre de usuario / contraseña en el endpoint remoto. | Alta | 8.1 |
SEG-4.2 | Verifique que el punto extremo remoto use identificadores de sesión generados aleatoriamente, si se usa la administración clásica de sesiones del lado del servidor, para autenticar las solicitudes del cliente sin enviar las credenciales del usuario. | Media | 5.6 |
SEG-4.3 | Verifique que el punto extremo remoto utilice tokens firmados del lado del servidor, si se utiliza la autenticación sin estado, para autenticar las solicitudes del cliente sin enviar las credenciales del usuario. | Alta | 7.3 |
SEG-4.4 | Verificar que el punto extremo remoto finaliza la sesión existente cuando el usuario cierra la sesión. | Media | 6.6 |
SEG-4.5 | Verificar que exista una política de contraseñas y se aplique en el punto final remoto. | Media | 5.6 |
SEG-4.6 | Verificar que el punto extremo remoto implemente un retroceso exponencial o que bloquee temporalmente la cuenta de usuario cuando se envían credenciales de autenticación incorrectas una cantidad excesiva de veces. | Alta | 7.3 |
SEG-4.7 | Verificar que las sesiones finalicen en el punto final remoto después de un período de inactividad predefinido. | Media | 4.1 |
SEG-4.8 | Verificar que la autenticación biométrica, si la hay, no está unida a un evento (es decir, que utiliza una API que simplemente devuelve "true" o "false"). En cambio, se basa en desbloquear el llavero / almacén de claves. | Media | 5.0 |
SEG-4.9 | Verificar que exista un segundo factor de autenticación en el punto extremo remoto y que el requisito 2FA se aplique de manera coherente. | Media | 4.2 |
SEG-4.10 | Verificar que se requiera autenticación incremental para habilitar acciones que se ocupen de datos o transacciones confidenciales. | Media | 6.2 |
SEG-4.11 | Verificar que la aplicación informe al usuario de todas las actividades de inicio de sesión con su cuenta. Los usuarios pueden ver una lista de los dispositivos utilizados para acceder a la cuenta y bloquear dispositivos específicos. | N/A | N/A |
5. Criptografía (M5 - Criptografía Insuficiente)
Identificador | Descripción | Severidad | CVSS |
---|---|---|---|
SEG-5.1 | Verificar que la aplicación no dependa de la criptografía simétrica con claves codificadas como único método de encriptación. | Media | 4.6 |
SEG-5.2 | Verificar que la aplicación utiliza implementaciones comprobadas de primitivas criptográficas. | Media | 5.9 |
SEG-5.3 | Verificar que la aplicación utiliza primitivas criptográficas que son apropiadas para el caso de uso particular, configuradas con parámetros que se adhieren a las mejores prácticas de la industria. | Media | 5.9 |
SEG-5.4 | Verificar que la aplicación no utiliza protocolos criptográficos o algoritmos que, en general, se consideran obsoletos por motivos de seguridad. | Media | 5.9 |
SEG-5.5 | Verificar que la aplicación no vuelva a utilizar la misma clave criptográfica para múltiples propósitos. | Baja | 3.1 |
SEG-5.6 | Verificar que todos los valores aleatorios se generen utilizando un generador de números aleatorios suficientemente seguro. | Baja | 3.7 |
6. Calidad del código y configuraciones de compilación (M7 - Calidad de código en el Cliente)
Identificador | Descripción | Severidad | CVSS |
---|---|---|---|
SEG-6.1 | Verificar que la aplicación esté firmada y provista con un certificado válido. | Alta | 7.5 |
SEG-6.2 | Verificar que la aplicación se haya creado en modo de lanzamiento, con las configuraciones apropiadas para una compilación de lanzamiento (p. Ej., non-debuggable). | Media | 4.3 |
SEG-6.3 | Verificar que los símbolos de depuración se hayan eliminado de los binarios nativos. | N/A | N/A |
SEG-6.4 | Verificar que se haya eliminado el código de depuración y que la aplicación no registre errores detallados ni mensajes de depuración. | Baja | 2.4 |
SEG-6.5 | Verificar que todos los componentes de terceros usados por la aplicación, como librerías y frameworks, estén identificados y verificados para detectar vulnerabilidades conocidas. | N/A | N/A |
SEG-6.6 | Verificar que la aplicación capte y maneje posibles excepciones. | Baja | 3.7 |
SEG-6.7 | Verificar que la lógica de manejo de errores en los controles de seguridad niega el acceso por defecto. | Baja | 3.7 |
SEG-6.8 | Verificar que en el código no administrado, la memoria se asigna, libera y usa de forma segura. | Baja | 1.8 |
SEG-6.9 | Verificar que las funciones de seguridad gratuitas que ofrece la cadena de herramientas, como byte-code minification, stack protection, PIE support y el conteo automático de referencias, estén activadas. | Alta | 7.5 |
7. Impedir el análisis dinámico y la manipulación (M8 - Manipulación de Código y M9 - Ingeniería Inversa)
Identificador | Descripción | Severidad | CVSS |
---|---|---|---|
SEG-7.1 | Verificar que la aplicación implemente dos o más métodos funcionalmente independientes de detección de root y responda a la presencia de un dispositivo rooteado ya sea alertando al usuario o finalizando la aplicación. | Baja | 3.7 |
SEG-7.2 | La ofuscación es aplicada a las defensas programáticas, lo que a su vez impide la des-ofuscación mediante el análisis dinámico. | Baja | 3.9 |
8. Arquitectura, diseño y modelado de amenazas (M10 - Funcionalidades extrañas)
Identificador | Descripción | Severidad | CVSS |
---|---|---|---|
SEG-8.1 | Verificar que todos los componentes de la aplicación estén identificados y se sepa que son necesarios. | N/A | N/A |
SEG-8.2 | Verificar que los controles de seguridad nunca se apliquen solo en el lado del cliente, sino en los respectivos enpdpoints remotos. | N/A | N/A |
SEG-8.3 | Verificar que se haya definido una arquitectura de alto nivel para la aplicación móvil y todos los servicios remotos conectados y que la seguridad se haya abordado en esa arquitectura. | N/A | N/A |
SEG-8.4 | Verificar que los datos considerados sensibles en el contexto de la aplicación móvil estén claramente identificados. | N/A | N/A |
SEG-8.5 | Verificar que todos los componentes de la aplicación estén definidos en términos de las funciones de negocio y / o funciones de seguridad que proporcionan. | N/A | N/A |
SEG-8.6 | Verificar que existe un mecanismo para aplicar las actualizaciones de la aplicación móvil. | N/A | N/A |
SEG-8.7 | Verificar que las pruebas de seguridad se realicen como parte del ciclo de vida de desarrollo. | N/A | N/A |