Brecha en Fidelity Investments: 77,000 Clientes y Números de Seguro Social Afectados por Cuentas Fraudulentas
En notificaciones legales remitidas a autoridades estatales, la multinacional de fondos de inversión y corretaje Fidelity Investments reveló una brecha de seguridad que expuso información personal y financiera de 77,099 clientes. Entre el 17 y el 19 de agosto de 2024, un atacante dio de alta dos cuentas de cliente falsas y abusó de una debilidad en un microservicio de consulta de documentos para visualizar y descargar expedientes e imágenes que contenían Números de Seguro Social de otros usuarios.
Mecánica de la Falla BOLA (Broken Object-Level Authorization)
El ataque no requirió intrusión en servidores ni despliegue de malware, sino que abusó de la lógica de negocio de la API de clientes:
- El atacante creó dos cuentas de usuario mediante el proceso público habitual.
- Estando autenticado legítimamente, manipuló las llamadas HTTP al servicio encargado de visualizar documentos de verificación de identidad.
- Dado que el microservicio no comprobaba si el usuario solicitante era el titular del documento consultado, el atacante iteró identificadores numéricos y descargó expedientes ajenos.
# Petición HTTP vulnerable a autorización a nivel de objeto (BOLA)
GET /api/v2/customer/documents/view?doc_id=DOC-2024-984210 HTTP/1.1
Host: accounts.fidelity.com
Authorization: Bearer [Token_JWT_Del_Atacante]
# Respuesta: Retorna el documento de OTRO cliente sin verificar pertenencia
HTTP/1.1 200 OK
Content-Type: image/tiff
Datos Expuestos y Respuesta de Fidelity
Fidelity confirmó que se expusieron nombres completos, direcciones, fechas de nacimiento, Números de Seguro Social (SSN) y copias de identificaciones oficiales. Las cuentas de inversión, saldos y sistemas de negociación de acciones no fueron afectados. La empresa cerró las cuentas maliciosas, subsanó el fallo de autorización y ofreció 24 meses de monitorización crediticia gratuita a los afectados.
Recomendaciones Técnicas
- Validación Estricta de Propiedad en Middleware: Asegurar que cada consulta a la base de datos filtre explícitamente por
WHERE doc_id = ? AND user_id = session.user_id. - Uso de UUIDv4 No Predecibles: Sustituir identificadores secuenciales por identificadores aleatorios o tokens firmados criptográficamente con tiempo de expiración corto.