220 lecturas

Si el cumplimiento de PCI-DSS hace que las aplicaciones sean más seguras, ¿por qué no lo hacemos todos?

por Victor Anuebunwa5m2025/05/30
Read on Terminal Reader

Demasiado Largo; Para Leer

El cumplimiento de PCI DSS ofrece beneficios de seguridad más allá de los pagos.Esta guía rompe con consejos de codificación segura prácticos y amigables para los desarrolladores para cualquier aplicación moderna.
featured image - Si el cumplimiento de PCI-DSS hace que las aplicaciones sean más seguras, ¿por qué no lo hacemos todos?
Victor Anuebunwa HackerNoon profile picture

Si alguna vez tuvo que escribir una aplicación para procesar pagos con tarjeta, no como integrar PayPal, sino como ser PayPal.

El estándar de seguridad de datos de la industria de tarjetas de pago (PCI DSS) es un estándar de seguridad de la información para las organizaciones que manejan tarjetas de crédito de marca de los principales esquemas de tarjetas.

Norma de Seguridad de Datos de la Industria de Tarjetas de Pago (PCI DSS)es un estándar de seguridad de la información para las organizaciones que manejan tarjetas de crédito de marca de los principales esquemas de tarjetas.Wikipedia

En otras palabras, es una lista de verificación gigante que dice: “Hey, si vas a almacenar o procesar el dinero de las personas, tal vez no dejes tu base de datos abierta al mundo”.

Why Am I Even Writing This?

¿Por qué estoy incluso escribiendo esto?

Después de trabajar en una aplicación compatible con PCI DSS, tuve un poco de crisis existencial y me pregunté: “¿Por qué no deben todas las aplicaciones seguir las prácticas de codificación segura de PCI DSS?”

Creedme, PCI DSS no es tan aterrador como suena. La gente de cumplimiento y privacidad tiene una manera de hacer que cada proceso simple suene enorme para sentirse bien sobre sí mismos. ¿Quieres tener un día estresante? Escucha a ellos hablar de PIA, DPIA, DSAR o ROPA.

Para no simplificar demasiado las cosas, el cumplimiento puede ser doloroso, pero si ayuda a proteger tus datos y te impide terminar con “Have I Been Pwned”.

Tips para asegurar el código

Si está construyendo un sistema de pago o simplemente tratando de dormir mejor por la noche, aquí están algunas maneras fáciles de asegurar la codificación que le llevará más cerca de la conformidad con PCI DSS.

Subnets, NAT Gateways, and the Drama of Networking

Si la base de datos de su aplicación está en una subred pública, voy a necesitar que deje de leer y corrija eso.

Asegúrese de utilizar subredes privadas para cualquier cosa sensible, luego dirija su tráfico a través de una Puerta NAT para que puedan acceder a Internet (para patches, actualizaciones, memes, etc.) sin estar directamente expuestos.

Para los amantes de “The Matrix”, el mundo de la Matrix es una subred privada, el mundo real es la subred pública, y el teléfono seguro que Neo y sus amigos usan para viajar entre mundos es el NAT Gateway.

Me encanta esa referencia, espero que tú también lo hagas.Me tomó un tiempo.

Encrypt All the Things

Lo has oído antes, lo volverás a oír.

  • Encriptado en reposo.
  • Encriptado en tránsito.
  • Encripta los registros, las copias de seguridad e incluso las variables ambientales si te sientes picante.

Para los servicios en la nube, gestionar la encriptación es fácil, solo tienes que habilitarlos.

Y por favor, Base64 no es una encriptación. Es para personas que se mienten a sí mismas.Sabes quién eres.Sí, tiene sus usos, pero la seguridad no es uno de ellos.

Security Headers

Los encabezados de seguridad son encabezados de respuesta HTTP que instruyen al navegador sobre cómo manejar aspectos relacionados con la seguridad de un sitio web. Te ayudan a prevenir ataques como Cross-Site Scripting (XSS), clickjacking y ataques man-in-the-middle.

Por lo menos, añade:

  • Estricta seguridad del transporte
  • Opciones de tipo de contenido X
  • Política de seguridad de contenidos
  • Opciones X-Frame

Son fáciles de configurar en la mayoría de los marcos y servicios en la nube.Hazlo una vez, y ya estás mejor que la mayoría.

Firewalls? Definitely Firewalls

Ruta las solicitudes públicas a tu aplicación a través de un firewall.Es como colocar un bouncer delante de tu aplicación.

A diferencia de los días de los boomers, donde configurar un firewall es como montar tus muebles con instrucciones de Asgard. Puedes conseguir que funcione, pero a qué costo? las aplicaciones actuales hacen que este proceso sea mucho más fácil.

Los servicios de nube como AWS WAF y Azure Firewall ya vienen con reglas preconfiguradas para amenazas comunes; sólo tienes que activarlas y funcionan.

Los firewalls con un mínimo de esfuerzo te ayudarán a detener patrones de ataque conocidos, filtrar IPs malos y bloquear que uno todavía intenta inyectar SQL desde 2008.

Access Control

Tu aplicación no es una biblioteca pública. No dejes a cada servicio acceso completo a todo simplemente porque es más fácil. ¡No eres Oprah Winfrey: “¡Tienes administrador! ¡Tienes administrador! ¡Todo el mundo tiene administrador!”

Sigue el “principio del mínimo privilegio”, que significa que cada usuario recibe sólo lo que absolutamente necesita.

Trate de rotar credenciales y claves regularmente y usar roles sobre claves estáticas cuando sea posible.

Staging Is Not Production

Tu entorno de escenario debe reflejar la producción en estructura, no en secretos.

  • Los atacantes no se preocupan de dónde obtienen los datos.
  • No copies los secretos de la producción en el escenario.
  • Implementar la vigilancia y las reglas WAF aquí también.

Los hackers aman un entorno de estreno con menos alarmas. ¿Cuál es un mejor lugar para probar sus scripts?

Change Management

PCI DSS requiere que tenga procedimientos para rastrear los cambios en el código, la infraestructura y las políticas de seguridad.

En términos simples, utilice Git, utilice la infraestructura como código (Serverless Framework, Terraform, AWS CDK, etc.) y establezca alertas.

Logging Saves Lives

Los registros son cruciales. Usted espera que nunca los necesite, pero si lo hace, realmente los necesita. Mantenga registros seguros y centralizados para todo lo que importa:

  • Logs de aplicaciones: Log de errores de aplicaciones y otra información importante para ayudarle a deshabilitar.
  • Logs de acceso: Log quien hizo qué y cuándo.
  • Logs de base de datos: capturar consultas lentas, patrones de acceso extraños y posibles violaciones.
  • Logs de auditoría: Logue los cambios en los permisos, las reglas del firewall y las implementaciones de código. Herramientas como AWS CloudTrail, GuardDuty y Config pueden ayudarte con esto.

Prefer ORMs

Esta es su primera línea de defensa (y sanidad). Olvide SQL crudo a menos que sea un asistente de base de datos con un deseo de muerte. Use un ORM. Sí, usted podría parametrizar su SQL crudo y mejorar la seguridad; sin embargo, todavía hay una gran posibilidad de que el futuro usted o su colega olvidará para parametrizar una consulta correctamente, y al igual que eso, usted está cocinado.

ORMs abstraen las interacciones de su base de datos, haciendo que el código sea más fácil de mantener y menos propenso a ataques de inyección.La mayoría de los ORMs modernos parameterizan las consultas fuera de la caja.DROP TABLE users;Durante una noche de compromiso.

In Conclusion

En conclusión

Ahora, en serio, ¿es tan profundo? Es una lista larga, pero estoy seguro de que está llena de cosas que ya está haciendo. ¡Sólo hay unos pocos ajustes aquí y allá, y usted está de acuerdo!

El cumplimiento es molesto, pero también es una violación de datos. PCI DSS puede sentirse como una lista gigante de “No, no puedes”, pero solo está tratando de mantener a usted y a sus clientes seguros.En plataformas en la nube como AWS, Azure y GCP, no hay excusa para no seguir estas mejores prácticas.Tienes las herramientas, tienes los documentos y ahora tienes una publicación de blog muy convincente.

Manténgase seguro. Manténgase conforme. Y por el amor de todo lo que es bueno, no almacene números de tarjetas sin cifrar en una columna de base de datos llamadacard_number.

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks