Objetivo del laboratorio

Fundamento teórico: La gestión segura de datos es un pilar fundamental de la ciberseguridad. Según el Informe de Costo de una Filtración de Datos 2024 de IBM, el costo promedio global de una violación de datos alcanzó los $4.88 millones de dólares, con un tiempo promedio de identificación de 207 días. La norma ISO/IEC 27001:2022 dedica el Anexo A.8 (Gestión de activos) y A.9 (Control de acceso) a la protección de los datos.

Este laboratorio tiene como objetivo implementar medidas de seguridad en la gestión de datos, aplicando principios de confidencialidad, integridad y disponibilidad según las buenas prácticas de la norma ISO/IEC 27001.

¿Qué aprenderás? Clasificar datos según su nivel de sensibilidad, cifrar información con GPG, realizar backups cifrados y establecer políticas de retención de datos.

Requisitos y escenario

¿Por qué estas herramientas? GnuPG (GNU Privacy Guard) es la implementación libre del estándar OpenPGP (RFC 4880). Duplicity utiliza librsync para backups incrementales cifrados con GPG, ahorrando espacio comparado con backups completos.
  • Sistema Linux (Ubuntu/Debian/Kali) con conexión a internet
  • Usuario con privilegios sudo
  • Espacio en disco: 5 GB disponibles para prácticas
  • Herramientas a instalar: gnupg, duplicity
Instalación de herramientas
$ sudo apt update && sudo apt install -y gnupg duplicity
$ gpg --version | head -n 1
✓ gpg (GnuPG) 2.2.27
$ duplicity --version
✓ duplicity 0.8.21

Clasificación de datos según ISO 27001

Teoría - Clasificación de datos según ISO 27001: El Anexo A.8.2 de ISO 27001:2022 establece que "los activos de información deben ser clasificados según su valor, requisitos legales, sensibilidad y criticidad". Una correcta clasificación permite aplicar controles proporcionales al riesgo.
1

Niveles de clasificación según sensibilidad

NivelDescripciónEjemploControl recomendado
■ PúblicoInformación de libre accesoBrochure, web públicaSin cifrado, control de integridad
■ Uso internoSolo para empleadosPolíticas internasAcceso por autenticación
■ ConfidencialAcceso restringidoDatos de clientesCifrado en reposo y tránsito
■ Alta confidencialidadMáxima protecciónSecretos comercialesCifrado AES-256, doble autenticación
Crear estructura de directorios clasificados
$ mkdir -p ~/datos_lab/{publico,interno,confidencial,alta_confidencialidad}
$ echo "Información pública" > ~/datos_lab/publico/readme.txt
$ echo "CLIENTE: Juan Pérez - Contrato #12345" > ~/datos_lab/confidencial/clientes.txt
$ echo "CLAVE_MAESTRA_API=sk-9876543210" > ~/datos_lab/alta_confidencialidad/api_keys.env
$ chmod 700 ~/datos_lab/alta_confidencialidad/
$ ls -la ~/datos_lab/

Cifrado simétrico con GPG (AES-256)

Teoría - Cifrado simétrico: Utiliza la misma clave para cifrar y descifrar. El estándar actual es AES-256, aprobado por la NSA para información clasificada. GPG implementa AES-256 como algoritmo predeterminado.
1

Cifrado y descifrado con contraseña

Cifrado simétrico - Práctica
$ echo "Datos sensibles: NIP 1234-5678" > ~/datos_lab/confidencial/datos.txt
$ gpg --symmetric --cipher-algo AES256 ~/datos_lab/confidencial/datos.txt
Enter passphrase: ••••••••
$ ls ~/datos_lab/confidencial/
datos.txt datos.txt.gpg
$ gpg --decrypt ~/datos_lab/confidencial/datos.txt.gpg > ~/datos_lab/confidencial/datos_descifrado.txt
Enter passphrase: ••••••••
$ diff ~/datos_lab/confidencial/datos.txt ~/datos_lab/confidencial/datos_descifrado.txt
✓ Archivos idénticos
Advertencia: La contraseña es el único medio para descifrar los datos. Si se pierde, los datos son irrecuperables. Use frases largas (passphrases) en lugar de contraseñas cortas.

Cifrado asimétrico con GPG (PKI)

Teoría - Cifrado asimétrico (PKI): Utiliza un par de claves: una pública (para cifrar) y una privada (para descifrar). RSA es el algoritmo más usado, con longitudes recomendadas de 4096 bits.
1

Crear par de claves (pública/privada)

Generar clave GPG (RSA 4096 bits)
$ gpg --full-generate-key
# Seleccionar opciones:
(1) RSA and RSA (default)
Tamaño de clave: 4096
Expiración: 1y (1 año)
Nombre real: Lab Seguridad
Dirección de correo: lab@hackwise.local
Gestión de claves GPG
$ gpg --list-keys --keyid-format LONG
pub rsa4096/ABCDEF1234567890 2026-05-01 [SC]
uid Lab Seguridad <lab@hackwise.local>
$ gpg --export --armor lab@hackwise.local > clave_publica_lab.asc
$ gpg --encrypt --recipient lab@hackwise.local --armor ~/datos_lab/alta_confidencialidad/api_keys.env
$ gpg --decrypt ~/datos_lab/alta_confidencialidad/api_keys.env.asc > api_keys_descifradas.env
✓ Archivo descifrado correctamente
Concepto clave: Cifrar con clave pública garantiza que solo el dueño de la clave privada pueda leer el mensaje.

Backup cifrado con Duplicity

Teoría - Estrategia 3-2-1 de backups: 3 copias de los datos, en 2 tipos diferentes de medios, con 1 copia fuera del sitio (offsite). ISO 27001 A.12.3 exige procedimientos documentados de respaldo.
1

Backups incrementales cifrados con GPG

Duplicity - Práctica
$ export PASSPHRASE="MiFraseSecretaBackup2026!"
$ duplicity --encrypt-key ABCDEF1234567890 ~/datos_lab file:///home/$USER/backup_cifrado
✓ Backup completo realizado
$ duplicity collection-status file:///home/$USER/backup_cifrado
$ duplicity verify --encrypt-key ABCDEF1234567890 file:///home/$USER/backup_cifrado ~/datos_lab
✓ Verificación completada
$ duplicity restore file:///home/$USER/backup_cifrado ~/datos_lab_restaurado
$ unset PASSPHRASE
Práctica recomendada: Programe backups automáticos con crontab. Ejemplo: 0 2 * * * duplicity --encrypt-key ID_CLAVE ~/datos_lab file:///backup_cifrado

Políticas de retención y auditoría

Teoría - Marco legal y retención de datos: El GDPR (Artículo 17) establece el "derecho al olvido". ISO 27001 A.8.10 requiere "políticas para la retención de información" documentadas.
1

Implementar política de retención

Categoría de datosTiempo de retenciónBase legalAcción al vencimiento
Logs del sistema90 días - 1 añoISO 27001 A.12.4Archivar o eliminar
Datos de clientes5 añosCódigo de Comercio / GDPRAnonimizar o eliminar
Backups30 - 90 díasPolítica internaRotación automática
Contratos y facturas7-10 añosLey Sarbanes-OxleyArchivo histórico
Script de rotación automática de backups
#!/bin/bash
BACKUP_DIR="/home/usuario/backup_cifrado"
DAYS_TO_KEEP=30
find $BACKUP_DIR -type f -name "*.gpg" -mtime +$DAYS_TO_KEEP -delete
echo "$(date): Rotación completada" >> /var/log/backup_rotation.log
Auditoría de integridad con hashes
$ sha256sum ~/datos_lab/confidencial/clientes.txt
a3b5c7d9e1f2a4b6c8d0e2f4a6b8c0d2... clientes.txt
$ find ~/datos_lab -type f -exec sha256sum {} \; > ~/hash_integridad_base.txt
$ sha256sum -c ~/hash_integridad_base.txt 2>/dev/null | grep -v "OK"
$ find ~/datos_lab -type f -mtime -1 -ls # Archivos modificados en últimas 24h
Cumplimiento normativo: La política de retención debe estar documentada, aprobada por la dirección y auditada periódicamente. Consulte siempre con el departamento legal.

Resumen: Comandos útiles

Cheatsheet - Comandos esenciales de seguridad
╔═══════════════════════════════════════════════════════════════════════╗
║ CLASIFICACIÓN Y PERMISOS ║
╚═══════════════════════════════════════════════════════════════════════╝
$ chmod 600 ~/datos_lab/alta_confidencialidad/*
$ chmod 700 ~/datos_lab/alta_confidencialidad/
╔═══════════════════════════════════════════════════════════════════════╗
║ CIFRADO SIMÉTRICO (AES-256) ║
╚═══════════════════════════════════════════════════════════════════════╝
$ gpg --symmetric --cipher-algo AES256 archivo.txt
$ gpg --decrypt archivo.txt.gpg > archivo_descifrado.txt
╔═══════════════════════════════════════════════════════════════════════╗
║ CIFRADO ASIMÉTRICO (RSA) ║
╚═══════════════════════════════════════════════════════════════════════╝
$ gpg --full-generate-key
$ gpg --export --armor ID_CLAVE > clave_publica.asc
$ gpg --encrypt --recipient ID_CLAVE archivo.txt
╔═══════════════════════════════════════════════════════════════════════╗
║ BACKUPS CIFRADOS CON DUPLICITY ║
╚═══════════════════════════════════════════════════════════════════════╝
$ duplicity --encrypt-key ID_CLAVE /origen file:///destino
$ duplicity restore file:///destino /ruta/restauracion
$ duplicity remove-older-than 30D --force file:///destino
╔═══════════════════════════════════════════════════════════════════════╗
║ INTEGRIDAD Y HASHES ║
╚═══════════════════════════════════════════════════════════════════════╝
$ sha256sum archivo.txt
$ find /ruta -type f -exec sha256sum {} \; > hashes.txt
$ sha256sum -c hashes.txt

¿Qué sigue?

Certificaciones relacionadas: CDPSE (Certified Data Privacy Solutions Engineer) de ISACA, CIPP/E de IAPP, e ISO 27001 Lead Implementer.

Backup en la nube

Configura Rclone con Google Drive o AWS S3

DLP

Implementa prevención de fugas de datos

Cifrado de disco

Aprende LUKS para cifrado completo

SIEM

Centraliza logs con Wazuh o ELK Stack

¡Laboratorio completado!

Has implementado un sistema completo de gestión segura de datos: clasificación según sensibilidad, cifrado simétrico y asimétrico con GPG, backups cifrados con rotación automática, y auditoría de integridad. Estos conocimientos son fundamentales para cumplir con requisitos de ISO 27001 y GDPR.