Please enable JavaScript.
Coggle requires JavaScript to display documents.
TEMA 3. Seguridad en Servicios Web - Coggle Diagram
TEMA 3. Seguridad en Servicios Web
Arquitectura SOAP Riesgos de Seguridad
Amenazas
Spoofing
Un atacante construye y envía un mensaje con credenciales de tal manera que parece ser de un alguien autorizado
Forged claims
Un atacante construye un mensaje con credenciales falsas que aparecen válidas para el receptor
Man in the middle
Una tercera persona se pone entre el emisor y el proveedor y reenvía los mensajes de manera que los dos participantes no son conscientes, lo que permite al atacante ver y modificar todos los mensajes
Repetición del mensaje
Un atacante reenvía un mensaje enviado previamente.
Mensajes falsificados
Mensajes ficticios que el atacante intenta que se piense que se envían desde un remitente válido.
Repetición de partes del mensaje
Un atacante incluye porciones de uno o más mensajes enviados previamente en un nuevo mensaje
Pérdida de la confidencialidad
Información dentro de un mensaje se da a conocer a una persona no autorizada
Denegación de servicio
Un atacante hace que el sistema consuma recursos de forma desproporcionada, de tal manera que las solicitudes válidas no se pueden procesar.
Los servicios web pueden tener casi los mismos
tipos de vulnerabilidades
que tienen las aplicaciones web (consultar el proyecto web security threat classification de WASC: y otras añadidas debido a sus propias características, que posibilitan ataques de:
BUFFER OVERFLOW
ESCALADA DE PRIVILEGIOS
FORMAT STRING
PARAMETER TAMPERING
INFORMATION DISCLOSURE.
COMMAND INJECTION
PATH TRAVERSAL
XML INJECTION
SQLI
SOAP ARRAY ABUSE
XSS
XQUERY INJECTION
XML EXTERNAL ENTITIES
XPATH INJECTION
XML ATTRIBUTE BLOWUP
XML ENTITY EXPANSION
Alteración de mensajes
Un atacante inserta, elimina o modifica la información dentro de un mensaje para engañar al receptor.
Para la comunicación entre las diferentes entidades o aplicaciones que actúan como consumidores de servicios o proveedores de los mismos, los servicios web emplean un protocolo denominado SOAP que tiene estructura XML tienen:
-Una envoltura. -Una cabecera con datos descriptivos. -Un body o contenido.
Dimensiones
los elementos de seguridad deben garantizarse a través de las dimensiones de seguridad que tiene un entorno de servicios web.
Negociación
entre servicios, que por ejemplo faciliten el descubrimiento entre servicios.
Los
recursos
de los servicios.
Los
mensajes
que se intercambian entre entidades.
Relaciones de confianza
entre entidades para establecimiento de los servicios de autenticación y autorización que se requieran.
Propiedades
de seguridad.
Requisitos de seguridad
Cualquier software, incluidos los servicios web, deben satisfacer los requisitos de rendimiento, coste, facilidad de uso y seguridad.
Contratos de negocio
que faciliten el descubrimiento entre servicios
Disponibilidad
de los servicios
Registro seguro
para cuestiones de auditoría
Privacidad
de los datos, cifrado y firma de los mensajes o de partes del mismo para garantizar la característica de seguridad de extremo a extremo embebiendo la privacidad en el propio mensaje.
Control de acceso
Autenticación y autorización
Seguridad extremo-a-extremo
Cuando se ejecuta un servicio es necesario garantizar la seguridad durante todo el recorrido que efectúan los mensajes.
Implementar una
política de seguridad
que determine qué requisitos de seguridad se deben cumplir y cómo.
Otra visión de especificaciones de seguridad para alcanzar los requisitos de seguridad se presenta en el cuadro de la figura 6, a través de las capas de comunicación del protocolo TCPIP:
Firma XML
Control de acceso SAML o XACML
Cifrado XML
WS-Security
IPSEC
WS-policy
SSL/TLS
Elementos
Las diferentes entidades que intervienen en la prestación de uno o varios servicios web determinados pueden estar ubicados en cualquier parte en Internet y se instalan en servidores de aplicaciones similares a los de las aplicaciones web con las que comparten muchas de sus características.
Integridad
No repudio.
Confidencialidad.
Privacidad.
Autorización
Identificación y autenticación
Especificaciones de seguridad SW, conceptos de:
WS-trust
define cómo adquirir tokens de seguridad. Los tokens son una parte fundamental de la especificación WS Security.
Ticket kerberos
Certificados digitales X.509
SAML assertions
Usuario y password
WS-reliableMessaging
describe un protocolo que permite que los mensajes SOAP se entreguen de forma fiable entre aplicaciones distribuidas en presencia de errores de componentes de software, sistemas o redes
AtMostOnce -
ExactlyOnce
AtLeastOnce
InOrder
WS-Federation
Esta especificación define mecanismos para gestionar la identificación, el registro, la autenticación y la autorización de los usuarios, claves, a través de diferentes dominios y Web Services.
WS-SecureConversation
hay veces que para dar por finalizada una conversación entre cliente y servidor web basta con el intercambio de uno o dos mensajes SOAP, pero existen aplicaciones que necesitan intercambiarse gran cantidad de mensajes SOAPentre sí porque invocan una serie de operaciones.
WS- SecurityPolicy
Es una extensión del marco de WS-Policy que permite definir en un servicio Web un conjunto de requisitos que detallan cómo se deben asegurar los mensajes y qué tokens son requeridos por el servicio Web.
Autenticación y gestión de identidades, SAML
Cuando cualquier entidad de servicios web que realiza una petición a otra en un esquema de consumidor-proveedor, aquel debe ser autenticado de forma segura, para llevar esta función se disponen de mecanismos como:
SSL/TLS-certificate based authentication X.509
Tokens en la petición SOAP – SAML – KERBEROS
HTTP-based token authentication (no confiable)
Encadenamiento de peticiones
SAML
assertion
WS-Security
message
WS-Policy
Expresa que capacidades, requisitos y características generales de seguridad de las entidades de un sistema de Web Services basados en XML
WS-ReliableMessaging (oasis)
WS-Addressing (w3c)
Ws-securityPolicy (oasis)
WS-SecureConversation (oasis)
Modelos de autorización XML Advanced electronic signatures (XAdES)
Es un estándar del W3C y propuesto por el ETSI europeo. XADES define un estándar de firma de documentos basado en XML con:
Soporte a documentos complejos.
Soporte a múltiples formatos de documentos.
Soporte a múltiples documentos.
Soporte a múltiples firmas en tiempos distintos.
Soporte a múltiples CA's.
Soporte a time-stamping en tiempos distintos.
Gateways y firewalls XML
Conector de seguridad de PROVIDER
Descifra el elemento Order de la petición del consumer y verifica la firma. Se deben configurar para ello sus funciones en el menú WORKFLOW de provider.
Conector de seguridad de PAYMENT
Descifra la información de pago. Se deben configurar para ello sus funciones en el menú WORKFLOW de payment
Conector de seguridad de CONSUMER
Proceso resumido de instalación (cont.)
Análisis de Seguridad de los servicios web
Análisis funcional de requisitos de seguridad
Análisis estático y dinámico
Análisis de completitud de requisitos de seguridad
Para llevar a cabo la evaluación de la seguridad en el ámbito de servicios web se debe incluir en el Ciclo de Vida de Desarrollo Seguro la planificación de todas las actividades y pruebas o test de seguridad de la misma forma que se hace para todos los tipos de aplicaciones y se debe realizar iterativamente
Pruebas funcionales de seguridad basadas en el riesgo.
Revisión del código.
Análisis de riesgos de la arquitectura.
Pruebas de penetración.
Análisis de los requisitos de seguridad.
Operaciones de seguridad online.
Modelado de amenazas y casos de abuso.
Evaluación externa independiente.
Seguridad Online de los servicios web
Pasarelas XML
Los
gateways XML
pueden proporcionar
autenticación y autorización
, lo que podría mejorar la seguridad del servicio Web.
Los
Firewalls XML
efectúan validación del esquema y protegen de intrusiones contra ataques SQLI, XSS, XPAHTI... Nedgty, Corisecio,WSO2, Modsecurity (reglas gotroot) (licenced)
Una pasarela XML interactúa con un servicio Web (no de confianza) y transmite toda la comunicación a un servicio web interno, que actúa como intermediario entre los servicios no son de confianza y el servicio Web interno.
Firewall XML
Manipulación de parámetros
Modificación de los parámetros de un servicio web espera recibir en un intento de eludir la validación de entrada y obtener acceso no autorizado a algunas funciones. Cifrado integridad.
Ataques de repetición
Los intentos para reenviar solicitudes SOAP a repetir las transacciones sensibles. (SAML → token in response to).
Escaneo WSDL
Intenta recuperar el fichero WSDL de interfaz de servicios Web para obtener información que puede ser útil para un ataque.
Ataques recursivos con payloads
Los intentos de realizar una denegación de servicio contra el servicio Web mediante el envío de mensajes diseñados para sobrecargar el analizador XML
Envenenamiento de esquema
El suministro de un esquema con el documento XML de tal manera que el validador XML utilizará el esquema que se suministra, lo que permite un documento XML malicioso sea validado sin errores
Desbordamiento de búfer
Proporcionar parámetros especialmente diseñados que se sobrecargará los buffers de entrada de la solicitud y se bloqueará el servicio de Web-o potencialmente permite código arbitrario ejecutado.
Ataques de referencia externa
Los intentos de eludir la protección mediante la inclusión de referencias externas que se descargarán después de que el fichero XML haya sido validado, pero antes de su procesado por la aplicación.
SQL inyección
Proporcionar parámetros especialmente diseñados que se combinarán en el servicio Web para generar una consulta SQL definida por el atacante
Cross Site Scripting
Redirección indebida a sitios web malignos desde los que se inyecta código en el navegador de la víctima comprometiendo información de usuario a disposición del atacante
Especificaciones de seguridad para los servicios web
El objetivo es cumplir con los requisitos de seguridad que deben satisfacer los servicios web
4. Monitorización y auditoria
Un mecanismo común para la aplicación del mecanismo de registro es el desarrollo de intermediarios de servicios web que registran de forma transparente información sobre los mensajes SOAP capturados.
En SOA,
la auditoría
se lleva a cabo mediante el uso de un sistema seguro de registro distribuido y de firmas digitales WS-Security. A través de la instalación de un registro seguro, todos los elementos importantes firmados WS-Security se pueden almacenar para fines de auditoría para determinar qué servicio web realiza la acción.
5. Disponibilidad
tiene por objeto garantizar que la QoS y la fiabilidad se mantienen incluso cuando el servicio de web se somete a intentos intencionados para comprometer su operación
Si el servicio de web no puede evitar su fallo, no se producirá en un estado inseguro (es decir, el fracaso no dejará el servicio en sí, sus datos, o su entorno vulnerables) a menos que la política de la organización requiera que el servicio continúe operativo.
El servicio web continuará operando correctamente y de manera previsible en presencia de fallos intencionadamente asociados con los ataques de denegación de servicio DoS
3. Sistemas de gestión de identidades: autenticación, autorización
(IDMS), es responsable de verificar la identidad de las entidades, registrarlas y asignar identificadores digitales
Autenticación
Distribuidas
GATEWAYS XML
Federadas
para autenticación inter-dominios
Centralizadas
(Single Sign On, brokered)
Aisladas (parwise)
de poca escalabilidad, cada servicio deber tener su propia base de datos de identidades y gestionarla
Modelos de autorización
Role-Based Access Control
Es un mecanismo de autorización que asocia un conjunto de privilegios de acceso con una función particular, normalmente corresponde a una función de trabajo.
Risk Adaptive Access Control
El control de acceso adaptativo Riesgo (RAdAC) es otra variación en los métodos tradicionales de control de acceso
Policy-Based Access Control
El control de acceso basado en políticas (PBAC) es una extensión lógica y algo acotado de ABAC que es útil para la aplicación de políticas de control de acceso estrictas
Attribute-Based Access Control
Se puede utilizar la especificación XACML para implementar ABAC.
Atributos de recursos (R).
Atributos de entorno (E)
Atributos Tema (s)
Especificaciones para autenticación y autorización en SW
SAML (Security Authorization Markup Language)
es un protocolo que permite implementar los servicios de autenticación y autorización en SW.
ELEMENTOS -Statement -SubjectStatement -AuthenticationStatemen -AuthorizationDecisionStatement -AttributeStatement -Conditions
XACML (eXtensible Authorization Markup Language).
Es un lenguaje que permite realizar especificaciones y definiciones sobre políticas de acceso, permite utilizar escenarios
centralizados o descentralizados
6. Seguridad en el servicio de descubrimiento
Un
registro UDDI privado
proporciona un mecanismo para que aplicaciones internas y usuarios puedan descubrir y acceder a los servicios web dentro de una organización con poca o ninguna interacción humana. Proporciona servicios web que ofrecen a través de
tres interfaces
!
Páginas amarillas
que dividen en categorías las organizaciones y proporcionan información sobre sus servicios.
Páginas verdes
que proporcionan información sobre los servicios de la organización: la ubicación de los servicios y la información vinculante
Páginas blancas
que proporcionan la identidad e información de contacto de una organización.
WSDL
Informa acerca de ubicación, funciones, cómo acceder al servicio. El lenguaje de descripción de Web Service WSDL es un lenguaje XML que describe cuatro tipos de datos:
Información de los tipos de datos para todos los mensajes de petición y respuesta
Información acerca del protocolo de transporte a utilizar
Información de interfaz que describe todas las funciones públicamente accesibles
Información para localizar un servicio especifico
2. Confidencialidad e integridad
Aunque los mecanismos de seguridad de capa de transporte se proporcionan mediante el uso de protocolos de transporte seguros como SSL/TLS, la seguridad de la capa de aplicación de mensajes XML todavía necesita:
XML Digital Signature
Establecido por W3C, tiene como objetivo crear una serie de mecanismos que permitan la creación y manejo de firmas digitales basadas en el lenguaje XML. XML Signature, es el estándar de firmado desarrollado para establecer un esquema que permite interpretar el resultado obtenido de las firmas digitales y aplicarlas sobre los datos
XML Encryption
Esta especificación de W3C permite cifrar el mensaje entero o solamente partes del mismo, proporcionando seguridad de extremo a extremo de forma independiente a la seguridad de transporte mediante SSL-TLS (https).
Seguridad de los mensajes almacenados
Una vez que se recibe una transmisión y es descifrada la seguridad de capa de transporte no protege los datos contra accesos ilegales y alteraciones.
XKMS
Desarrollado por el W3C, está orientado a la obtención de información acerca de claves y certificados. Permite manejar los procesos de registro y revocación del servicio.
XML Key Information Service Specification (X-KISS)
Tiene como objetivo crear protocolos para el procesamiento de la información asociada a las claves de una firma XML y el contenido de las claves, ya sean públicas o privadas, de los datos.
XML Key Registration Service Specification (X-KRSS)
Esta especificación está dirigida a registrar un conjunto de claves que permiten realizar gestiones sobre la arquitectura pública y privada. Su objetivo primordial, es ofrecer una gestión global de los procesos de intercambio de claves
Independencia de transporte
Incluso si todos los enlaces de comunicación son seguros y los intermediarios son seguros, la autenticidad del emisor del mensaje debe ser traducida a otro protocolo de transporte seguro a lo largo de la ruta del mensaje.
Seguridad extremo a extremo
Los protocolos de transporte seguro pueden asegurar la seguridad de los mensajes solo durante la transmisión, debido a que se reciben y procesan los mensajes a través de intermediarios, la comunicación de extremo a extremo segura no es posible si estos intermediarios no son completamente confiables.
WS-Security
La especificación WS-Security describe la forma de asegurar los servicios web en el nivel de los mensajes, en lugar de en el nivel del protocolo de transferencia o en el de la conexión.
La integridad del mensaje se consigue mediante firmas digitales XML, que permiten garantizar que no se han alterado partes del mensaje desde que lo firmó el originador.
WS-Security utiliza tokens de seguridad para mantener esta información mediante un encabezado de seguridad del mensaje SOAP
La autenticación se ocupa de identificar al llamador.
La confidencialidad del mensaje se basa en la especificación XML Encryption y garantiza que solo el destinatario o los destinatarios a quien va destinado el mensaje podrán comprender las partes correspondientes
Se apoya en WS-Adressing para asegurar el no repudio
WS-Addressing
ofrece seguridad de extremo a extremo a la mensajería SOAP. Independientemente de los tipos de intermediarios como puertos workstations, cortafuegos, etc. que sean atravesados por un bloque en el camino al receptor, todo aquel que se encuentre por el camino sabrá:
Aquel que se encuentre por el camino sabrá:
De dónde viene
(Dirección postal) La dirección a donde se supone que va.
(Att) La persona o servicio específico en esa dirección que se supone va a recibirlo
Dónde debería ir si no puede ser remitido como estaba previsto.
Todo esto lo incluye en la cabecera del mensaje SOAP.
Tipos de elementos
Endpoint References (EPR)
referencias de invocación, que identifican al punto donde deben ser dirigidas las peticiones.
Message Information Headers
son cabeceras específicas que contienen información relacionada con la identificación que caracteriza al mensaje.
XML Advanced Electronic Signatures (XAdES)
Es un estándar del W3C y propuesto por el ETSI europeo. XADES define un estándar de firma de documentos basado en XML con:
Soporte a documentos complejos
Soporte a múltiples formatos de documentos
Soporte a múltiples documentos.
Soporte a múltiples firmas en tiempos distintos.
Soporte a múltiples CA's
Soporte a time-stamping en tiempos distintos
XAdES define seis perfiles (formas) según el nivel de protección ofrecido.
XAdES-T (timestamp)
añade un campo de sellado de tiempo para proteger contra el repudio.
XAdES-C (complete)
añade referencias a datos de verificación (certificados y listas de revocación) a los documentos firmados para permitir verificación y validación off-line en el futuro (pero no almacena los datos en sí mismos).
XAdES-EPES
forma básica a la que se la ha añadido información sobre la política de firma.
XAdES-X (extended)
añade sellos de tiempo a las referencias introducidas por XAdES-C para evitar que pueda verse comprometida en el futuro una cadena de certificados
XAdES-BES
forma básica que simplemente cumple los requisitos legales de la Directiva para firma electrónica avanzada
XAdES-X-L (extended long-term)
añade los propios certificados y listas de revocación a los documentos firmados para permitir la verificación en el futuro incluso si las fuentes originales (de consulta de certificados o de las listas de revocación) no estuvieran ya disponibles
XAdES-A (archivado)
añade la posibilidad de timestamping periódico (por ej. cada año) de documentos archivados para prevenir que puedan ser comprometidos debido a la debilidad de la firma durante un periodo largo de almacenamiento.
1. Política de seguridad
Para definir e implementar la política de seguridad en las conversaciones que tienen lugar entre un conjunto de servicios web determinados se pueden utilizar las siguientes especificaciones de seguridad.
WS-Trust
En esta especificación se incluye el proceso de solicitud, emisión y control sobre tokens de seguridad y se permite la gestión de las relaciones de confianza entre los servicios.
WS-Federation
En una comunicación entre SW, una de las partes podrá utilizar Kerberos y otro Certificados X.509, podría necesitarse una traducción de los datos que afectan a la seguridad entre las partes afectadas.
WS-Security Policy
Establece cómo se van a implementar la seguridad de los servicios web de acuerdo con la política de seguridad establecida, mediante WS Policy.
P3P (Platform for Privacy Preferences)
Es una especificación propuesta por el consorcio de W3C con el objetivo claro de indicar la política de privacidad de los participantes de manera estandarizada. P3P proporciona a los usuarios web facilidad y regularidad a la hora de decidir si quieren o no, y bajo qué circunstancia, revelar información personal.
WS-Policy.
Es la especificación encargada de delimitar las diferentes políticas de seguridad aplicables a los servicios web
SW: Evaluación seguridad SW
Pruebas unitarias de seguridad
Evaluación conjunta de vulnerabilidades
Pruebas de corrección funcionales de Seguridad
Análisis de seguridad del código. (SAST)
Test de penetración.
Herramientas
Herramientas HÍBRIDAS
Acunetix + Acusensor
PHP Vulnerabillity Hunter (open source)
IBM APPSCAN Enterprise
Whitehat Sentinel
HP FORTYFY hybrid analysis
Evaluación de la seguridad y SSDLC Aplicaciones Web: SAST vs DAST
CONCLUSIONES
Hay que utilizar distintos tipos de herramientas e incluso del mismo tipo
Hay que realizar correlación de resultados
Difícil cubrir toda la superficie de ataque
Hay que realizar auditoría posterior (falsos positivos y falsos negativos)
Las herramientas no son perfectas
Examinar cobertura de lenguajes en los tipos SAST/IAST
Proceso de análisis de la seguridad →Hay que seguir SSDLC
Examinar cobertura de vulnerabilidades en SAST/DAST/IAST
Analizar eficacia: ratio de verdaderos/falsos positivos
Estandarización de informes CWE, WASC, OWASP TOP TEN 2103, CAPEC, etc.
Herramientas IAST, RASP
IBM APPSCAN (glassbox)
Acunetix + Acusensor
HP FORTYFY (SecurityScope / RTA)
Whitehat
Seeker (Coverity)
Herramientas SAST
Commercial Tools
Software-as-a-Service (SaaS)
Free / Open Source Tools
Herramientas DAST
Evaluación de la seguridad: FUNCTIONAL-DAST
OPEN SOURCETOOLS para web services:
Codenomicon
IBM appscan
PushToTestTestMaker
HP webinspect
WebInject
Parasoft
Wsdigger
Cenciz
Wsfuzzwer
Qualys
Soapsonar
Acunetix
Soapui
Netsparker
N-stalker