Skip to main content

Seguridad de documentos

Introducción

  • Importancia de la seguridad de documentos en backend: Garantizar la protección de datos sensibles.
  • Objetivos de la investigación: Analizar métodos para asegurar la integridad, confidencialidad y disponibilidad de documentos.
  • Contexto específico: Uso de Digital Ocean Spaces como servicio de almacenamiento y gestión de URLs en una base de datos.

Cumplimiento Normativo

¿Qué es el cumplimiento normativo?

Es el proceso de asegurar que tu organización y los servicios que utilizas cumplen con leyes, regulaciones y estándares aplicables. Esto incluye:

  • Implementar medidas técnicas (encriptación, controles de acceso).
  • Documentar procesos (políticas de privacidad, procedimientos de respuesta a incidentes).
  • Realizar auditorías para verificar el cumplimiento.

Normativas aplicables

  • Datos médicos (PHI): HIPAA (EE.UU.).
  • Datos financieros: PCI DSS, GLBA, SOX, GDPR, PSD2.
  • Datos personales: GDPR (UE), CCPA/CPRA (California), LGPD (Brasil).

Datos Médicos

HIPAA (Ley de Portabilidad y Responsabilidad de Seguros Médicos)

  • Qué es: Normativa estadounidense para proteger información médica sensible (PHI).
  • Requisitos clave:
    • Privacy Rule: Limita el uso y divulgación de PHI.
    • Security Rule: Medidas técnicas (encriptación) y administrativas (auditorías).
    • Acuerdo de Asociado Comercial (BAA): Proveedores que manejen PHI deben firmar este acuerdo.
  • Cumplimiento en Digital Ocean:
    • Ofrece un BAA para clientes que almacenan PHI.
    • Cumple con controles de seguridad física y lógica.
    • Permite encriptación de datos y registros de acceso.

Enlace al acuerdo HIPAA de Digital Ocean


Datos Financieros

PCI DSS (Estándar de Seguridad de Datos para la Industria de Tarjetas de Pago)

  • Qué es: Normativa global que protege información de tarjetas de crédito y débito.
  • Requisitos clave:
    • Encriptación de datos en tránsito y en reposo.
    • Control de acceso restringido.
    • Monitoreo y pruebas de seguridad.
  • Cumplimiento en Digital Ocean:
    • Encriptación AES-256 para datos en reposo.
    • Uso de HTTPS para datos en tránsito.
    • Herramientas de IAM para gestionar permisos.

GLBA (Ley Gramm-Leach-Bliley)

  • Qué es: Normativa estadounidense que protege información financiera de consumidores.
  • Requisitos clave:
    • Privacidad y protección de datos.
    • Prevención de fraudes.
  • Cumplimiento en Digital Ocean:
    • Encriptación de datos financieros.
    • Uso de IAM para control de acceso.

SOX (Ley Sarbanes-Oxley)

  • Qué es: Normativa estadounidense que regula la precisión de informes financieros.
  • Requisitos clave:
    • Controles internos y auditorías.
    • Retención de registros financieros.
  • Cumplimiento en Digital Ocean:
    • Herramientas de registro y monitoreo.
    • Controles de acceso estrictos.

CCPA/CPRA (Ley de Privacidad del Consumidor de California)

  • Qué es: Normativa de California que protege datos personales.
  • Requisitos clave:
    • Derechos del consumidor (acceso, eliminación).
    • Opt-out de venta de datos.
  • Cumplimiento en Digital Ocean:
    • Encriptación de datos personales.
    • Herramientas de IAM.

PSD2 (Directiva de Servicios de Pago, UE)

  • Qué es: Normativa europea que regula servicios de pago.
  • Requisitos clave:
    • Autenticación fuerte (2FA).
    • Acceso a datos con consentimiento.
  • Cumplimiento en Digital Ocean:
    • Encriptación de datos de pago.
    • Implementación de 2FA.

Datos Personales

GDPR (Reglamento General de Protección de Datos)

  • Qué es: Normativa europea que protege datos personales.
  • Requisitos clave:
    • Consentimiento explícito.
    • Derechos del titular (acceso, rectificación, eliminación).
    • Notificación de brechas en 72 horas.
  • Cumplimiento en Digital Ocean:
    • Encriptación AES-256.
    • Acuerdo de Procesamiento de Datos (DPA).

Enlace al acuerdo DPA de Digital Ocean

LGPD (Lei Geral de Proteção de Dados, Brasil)

  • Qué es: Normativa brasileña que protege datos personales.
  • Requisitos clave:
    • Consentimiento y derechos del titular.
    • Protección de datos.
  • Cumplimiento en Digital Ocean:
    • Encriptación de datos personales.
    • Uso de IAM.

Técnicas de Seguridad

Encriptación en Reposo (SSE)

  • Qué es: Técnica de seguridad donde los archivos se encriptan automáticamente al almacenarlos.
  • Funcionamiento: Usa el estándar AES-256.
  • Beneficios: Protege contra robos físicos o accesos no autorizados.

Estrategia de Seguridad Integral

Encriptación en Tránsito

  • Configuración TLS Avanzada (NGINX):
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 1d;
    add_header Strict-Transport-Security "max-age=63072000" always;
  • Política CORS Estricta:
    [
    {
    "AllowedHeaders": ["Content-Type"],
    "AllowedMethods": ["GET", "POST"],
    "AllowedOrigins": ["https://dominio-principal.com"],
    "ExposeHeaders": ["ETag"],
    "MaxAgeSeconds": 3600
    }
    ]

Control de Acceso y Autorización

  • Políticas de Bucket:
    {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Effect": "Allow",
    "Principal": {"AWS": "arn:aws:iam::user-id"},
    "Action": ["s3:GetObject", "s3:PutObject"],
    "Resource": "arn:aws:s3:::bucket-name/*",
    "Condition": {
    "IpAddress": {"aws:SourceIp": "192.0.2.0/24"},
    "DateLessThan": {"aws:CurrentTime": "2024-12-31T23:59:59Z"}
    }
    }
    ]
    }

Auditoría y Cumplimiento

  • Registros de Actividad:
    • Accesos a buckets.
    • Operaciones críticas (delete).
    • Intentos fallidos.
  • Escaneos Proactivos:
    • Herramientas: Nessus, Clair, OWASP ZAP.
    • Frecuencia: Semanal, trimestral, continua.

Recuperación ante Desastres

  • Estrategia 3-2-1:
    • 3 copias de datos.
    • 2 medios diferentes.
    • 1 copia off-site.

Almacenamiento Seguro en DigitalOcean Spaces

1. Configuración del Bucket Privado

const AWS = require('aws-sdk');
const spacesEndpoint = new AWS.Endpoint('nyc3.digitaloceanspaces.com');
const s3 = new AWS.S3({
endpoint: spacesEndpoint,
accessKeyId: process.env.DO_SPACES_KEY,
secretAccessKey: process.env.DO_SPACES_SECRET
});

const createPrivateBucket = async (bucketName) => {
const params = {
Bucket: bucketName,
ACL: 'private',
CreateBucketConfiguration: {
LocationConstraint: 'nyc3'
}
};
await s3.createBucket(params).promise();
};

2. Generación de URLs Firmadas

app.get('/document/:id', auth, async (req, res) => {
const { id } = req.params;
const doc = await db.collection('documents').findOne({
_id: new ObjectId(id),
userId: req.user.id,
status: 'active'
});
if (!doc) return res.status(404).send('Documento no encontrado');

const params = {
Bucket: 'mi-bucket-seguro',
Key: doc.fileKey,
Expires: 900 // 15 minutos
};
const url = s3.getSignedUrl('getObject', params);
res.json({ url });
});

3. Protección contra Hotlinking

const antiHotlinkingPolicy = {
Version: "2012-10-17",
Statement: [
{
Effect: "Deny",
Principal: "*",
Action: "s3:GetObject",
Resource: "arn:aws:s3:::mi-bucket-seguro/*",
Condition: {
StringNotLike: {
"aws:Referer": [
"https://midominio.com/*",
"https://*.midominio.com/*"
]
}
}
}
]
};

4. Flujo de Seguridad Completo

  1. Subida de archivo:
    • Cliente: Encripta archivo con Web Crypto API.
    • Servidor: Almacena metadata en MongoDB.
  2. Descarga segura:
    • Validación JWT → Consulta MongoDB → Generación URL firmada.

5. Hardening Adicional

app.use(helmet({
contentSecurityPolicy: {
directives: {
defaultSrc: ["'self'"],
imgSrc: ["'self'", "data:", "https://*.digitaloceanspaces.com"]
}
}
}));

6. Monitorización

const CloudWatch = new AWS.CloudWatch();
const logSuspiciousActivity = (userId, action) => {
CloudWatch.putMetricData({
MetricData: [
{
MetricName: 'SuspiciousAccessAttempts',
Dimensions: [{ Name: 'UserId', Value: userId }],
Value: 1,
Unit: 'Count'
}
],
Namespace: 'Security'
}).promise();
};

Este marco cumple con:

  1. GDPR (Art. 32)

    • Qué es: Regulación de la UE para proteger datos personales.
  2. ISO 27001:2022

    • Qué es: Estándar internacional para la gestión de la seguridad de la información.
  3. NIST SP 800-185

    • Qué es: Guía técnica del NIST sobre criptografía segura.
  4. PCI DSS v4.0

    • Qué es: Estándar de seguridad para proteger datos de tarjetas de pago.