Muchas veces – ya sea por temas de seguridad y auditabilidad, por acceso al código fuente, por restricciones económicas o por preferencias personales o empresariales – se emplea software de código abierto (Open Source) dentro de la infraestructura informática de una compañía. Cuando se requiere la implementación de controles de seguridad provenientes de un estándar como PCI DSS se pueden encontrar múltiples opciones para su despliegue tanto a nivel comercial como Open Source, con sus ventajas y desventajas, consideraciones que deben ser analizadas y sopesadas por la organización antes de proceder con un despliegue en producción.
Si en su empresa se han planteado usar software Open Source, en este artículo se enumerarán algunas de las soluciones más conocidas que pueden ser utilizadas para cubrir total o parcialmente los controles lógicos exigidos por PCI DSS. Como siempre, es indispensable que el diseño y la implementación sean supervisadas por un profesional PCIP, ISA o un asesor QSA quienes cuentan con el criterio idóneo para garantizar que dicha solución se adapta a los niveles de seguridad exigidos.
A continuación se presenta un listado de las herramientas Open Source (con cualquier licencia incluida en Open Source Initiative) que pueden ser empleadas para cubrir los requerimientos del estándar PCI DSS:
Requisito 1: Instale y mantenga una configuración de firewalls para proteger los datos de los titulares de las tarjetas
Firewalls / NAT (Req. 1.1, 1.2, 1.3, 1.4):
Dentro de los subsistemas de filtrado de paquetes «stateful inspection» se encuentran:
- Linux NetFilter IPTABLES / NFTABLES
- OpenBSD Packet Filter (PF)
- BSD IPFilter
- NetBSD NPF
Así mismo, se pueden emplear distribuciones específicas que incluyen funcionalidades de GUI y servicios adicionales (filtrado de URL, QoS, etc.) como:
Más información en los artículos «Controles técnicos de PCI DSS parte II: Cortafuegos (Firewall)» y «La red ideal de PCI DSS«
Respaldo (backup) y sincronización de ficheros de configuración de equipos de red (Req 1.2.2):
Proxy (Req. 1.3.7):
- Apache mod_proxy
- Squid
- SwiperProxy
- Tinyproxy
- ExaProxy
Verificación de filtrado de paquetes (como soporte a la implementación del Req. 1):
Requisito 2: No utilizar contraseñas de sistemas y otros parámetros de seguridad provistos por los proveedores
Validación del cambio de contraseñas y usuarios por defecto (Req.2.1):
- Nmap con los módulos de NSE de fuerza bruta
- Ncrack
- Changeme
- THC-Hydra
- John the ripper
- Medusa
- Rainbowcrack
- Hashcat
Automatización de hardening (Req. 2.2):
Despliegue de configuraciones (Como soporte al Req 2.2) :
- Ansible
- CFEngine
- Chef
- Puppet
- Salt
- FAI – Fully Automatic Installation
- Cobbler
- Spacewalk
- Capistrano
- Opsi
- AutoYast
- Fog Project
- Foreman
Virtualización (Req. 2.2.1):
- OpenVZ
- Xen
- Kernel-based Virtual Machine (KVM) + Ovirt
- Linux-VServer
- Oracle VirtualBox
- Bochs
- User-Mode Linux
- QEMU
Validación de configuración segura (Req. 2.1, 2.2, 2.3):
- SPICE
- Lynis
- Tiger
- Open-scap
- OVAL Interpreter
- SSH Audit (para validar la configuración de servidores SSH)
Inventario de dispositivos en el entorno de cumplimiento (Req. 2.4):
Requisito 3: Proteja los datos del titular de la tarjeta que fueron almacenados
Software de búsqueda de datos de tarjeta de pago (Req. 3.1):
Ver artículo «Herramientas Free y Open Source para la búsqueda de datos de tarjetas de pago en medios de almacenamiento«
Encriptación de archivos (Req. 3.4):
Encriptación de disco (Req. 3.4.1):
- Veracrypt
- CipherShed
- DiskCryptor
- dm-Crypt/LUKS – Más información en el artículo «Cifrado de unidades LVM y el requerimiento 3.4.1 de PCI DSS«
- eCryptfs
- EncFS
- GBDE
- GELI
Gestión de claves de cifrado (Req. 3.5 y 3.6):
Requisito 4: Cifrar la transmisión de los datos del titular de la tarjeta en las redes públicas abiertas
Protección de datos de tarjeta transmitidos vía TLS (Req. 4.1):
Más información en el artículo «Evita que las vulnerabilidades de SSL/TLS afecten tu cumplimiento de PCI DSS con estas recomendaciones«.
VPN (Req. 4.1):
- OpenSWAN – Más informacion en el artículo «Cómo configurar una VPN IPSEC + L2TP con una Raspberry Pi y conectarte usando tu móvil o tu PC«
- OpenVPN
- SoftEther VPN
- StrongSWAN
Túneles seguros (Req. 4.1):
- stunnel
- tlstunnel
- OpenSSH – Más informacion en el artículo «Evita que espíen tu navegación. Usa un túnel de SSH«
Protección de datos de tarjeta en tecnologías de mensajería de usuario final (Req. 4.2):
Requisito 5: Proteger todos los sistemas contra malware y actualizar los programas o software antivirus regularmente
Antimalware (Req. 5.1 y 5.2):
- ClamAV a partir de la versión 0.99 cuenta con soporte para escaneos en tiempo real (On-Access Scanning) y cumple con el control 5.3
- Linux Malware Detect
Más información en «Controles técnicos de PCI DSS parte III: Antivirus (Antimalware)»
Anti-rootkit (Req. 5.1 y 5.2):
Validación de la funcionalidad de las herramientas antimalware:
Requisito 6: Desarrolle y mantenga sistemas y aplicaciones seguras
Obtención de información de nuevas vulnerabilidades (Req. 6.1):
- cve-search
- vFeed – The Correlated Vulnerability and Threat Intelligence Database Wrapper
Revisión de actualización (Req. 6.1 y 6.2):
- Pkg-audit (solamente para FreeBSD)
- Arch-audit (solamente para Arch Linux)
- cvechecker
Despliegue de actualizaciones (Req. 6.2):
Muchas de las herramientas de despliegue de configuración descritas en el Req. 2 pueden ser empleadas para la distribución de actualizaciones de seguridad (por ejemplo, Spacewalk).
Herramientas de revisión de código fuente (Req. 6.3.2):
Un listado exhaustivo de herramientas de análisis de código fuente puede ser encontrado en OWASP «Source Code Analysis Tools«
Web Application Firewall (Req. 6.6):
- Mod_security
- Vulture Project
- AQTRONIX WebKnight (para IIS)
- IronBee
- [email protected]
- NAXSI (para nginx)
- Shadow Daemon
- Fwaf (Machine learning driven web application firewall)
Más información en el artículo «Controles técnicos de PCI DSS parte I: WAF (Web Application Firewall)»
Verificación de vulnerabilidades a nivel de aplicación (Req. 6.6):
Requisito 7: Restrinja el acceso a los datos del titular de la tarjeta según la necesidad de saber que tenga la empresa
Sistema centralizado de control de acceso (Req. 7.2):
Requisito 8: Identificar y autenticar el acceso a los componentes del sistema
Gestión de identidades y aprovisionamiento:
Autenticación multifactor (Req. 8.3):
Requisito 9: Restringir el acceso físico a los datos del titular de la tarjeta
Requisito 10: Rastree y supervise todos los accesos a los recursos de red y a los datos de los titulares de las tarjetas
Registro de actividad de usuarios con privilegios administrativos (Req. 10.2.2):
Servidores de tiempo (Req. 10.4):
Servidores de centralización de logs (Req. 10.5.3 y 10.4.4):
Revisión y monitorización de logs (Req. 10.6):
Más información en el artículo «Controles técnicos de PCI DSS parte VI: Registro de eventos (logs)»
Requisito 11: Pruebe con regularidad los sistemas y procesos de seguridad
Monitorización de redes inalámbricas (Req. 11.1):
- Vistumbler (Windows)
- NetStumbler (Windows)
- Kismet
- Aircrack-NG
Herramientas para análisis de vulnerabilidades (Req. 11.2):
Herramientas para pruebas de penetración (Req. 11.3):
- Metasploit framework + Armitage
- The Social-Engineer Toolkit (SET)
- Dradis Framework
- Las herramientas incluidas en Kali Linux
Sistemas de detección y prevención de intrusiones (Req. 11.4):
File Integrity Monitoring (Req. 11.5):
Requisito 12: Mantener una política que aborde la seguridad de la información de todo el personal
Gestión de incidentes de seguridad / Ticketing (Req. 12.10):
- Request Tracker for Incident Response
- OTRS
- FIR (Fast Incident Response)
- OSTicket
Análisis de incidentes (Req. 12.10):
- Cyphon (Open Source Incident Management and Response Platform)
- Fully Integrated Defense Operation (FIDO)
- IRMA (Incident Response Malware Analysis)
- OSQuery
- Google Rapid Response (GRR)
- Yara
Controles compensatorios
En el caso que no sea posible la implementación puntual de un control de PCI DSS por razones técnicas o administrativas, se pueden emplear las siguientes soluciones como controles compensatorios:
Debido a los cambios en el desarrollo de estas herramientas y a la publicación de nuevas versiones, si conoces alguna herramienta que hace falta en el listado o si detectas alguna errata, no dudes en dejarnos un comentario en el artículo para actualizarlo.
7 Comentarios en respuesta a "¡Cumplir con PCI DSS solamente usando software Open Source es posible! Aquí te explicamos cómo hacerlo"