Loading…
Transcript

PCI para Desarrolladores

Que es PCI?

A tener en cuenta...

No seguir requerimiento 3.4 al pie..

- Utilizar un mecanismo de hash como SHA1

- Almacenar 6 primeros digitos y ultimos 4

Ejemplo:

4012888888881881

xxxxxxxxxxxxxxxx (10 quadrillones)

4xxxxxxxxxxxxxxx (visa - 4 quadrillones)

401288xxxxxx1881 (segun requisito 3.4)

Cuanto tiempo se tarda en crackearlo?

- Autenticación Segura

- Manejo adecuado de sesiones

- Cifrado de canal

- Cifrado de datos

- Prevención Inyección

- Prevención XSS

- Prevención CSRF

- Acceso Seguro a Datos

- Manejo de Errores

- Logging

5.3 segundos!

- Organización creada por Visa, Amex, Mastercard, Discover, JCB en 2006.

- Define estándares de seguridad para pagos con

tarjeta de crédito y débito.

Fabio Cerullo

Requisitos PCI-DSS

PCI PA-DSS

COMPLEMENTA

PCI-DSS

Requisitos PCI-PA DSS

Usted necesita almacenar el PAN?

Prevencion CSRF

Utilice un sistema de tokenizacion...

- Braintree

- Stripe

- otros...

Ecosistema PCI

Por que fue creado PCI?

Metodo: AddCSRFToken

Interfase: HTTPUtilities

Agrega un token unico

por operacion/transac.

Ayuda a prevenir incidentes de seguridad

con tarjetas de credito y debito.

Define requisitos a ser adoptados por:

- comercios que aceptan dicho medio de pago (PCI-DSS).

- empresas de software o implementadoras que proveen dicha funcionalidad (PCI-PA DSS).

Prevencion XSS

Me afecta PCI?

Usted acepta pagos online o por teléfono con tarjetas de crédito/débito?

Es esta información almacenada y/o procesada en SU servidor o por una tercera parte?

Datos de la tarjeta

Igual que Inyeccion

y el flag

HTTPUtilities.HTTPOnly

Típicos Errores

Acceso Seguro a Datos

- Referencia Indirecta a Objetos

- Control de Acceso a Datos

Referencia Indirecta a objetos

- Guardar datos de la tarjeta en texto plano.

- Contraseñas como parte del código.

- No hacer revisión de código.

- No hacer pentest de la aplicación.

- No utilizar SSL al momento de pago.

- Mecanismos de encripcion propios.

- No loguear información importante.

- Mejor aun... loguear TODA la información.

Prevención Inyección

Métodos: EncodeforXXX

Interfase: Encoder

Garantiza el adecuado

formato de los datos.

Método: getvalidinput

Interfase: validator

Previene entrada de

datos maliciosas.

/accounts/viewDetail?id=3540

Que pasa si cambio por?

/accounts/viewDetail?id=3541

Control de Acceso

Mientras tanto...

Metodos: isauthorizedForXXX / randomaccessmap

Interases: AccessReferenceMap / AccessController

Garantizan que solo los usuarios autorizados

acceden los recursos (datos, funciones, etc)

Manejo adecuado de sesiones

Método: changesessionid

Interfase: HTTP utilities

- Evita fijación de sesion.

- Garantiza un ID unico.

Como puede

ayudar OWASP?

Autenticación Segura con ESAPI

Cifrado de canal

- Guía Desarrollo Seguro

- Guía de Testeo

- Guía de Revisión de Código.

- OWASP ESAPI

- ZAP

Dos métodos: Login / Createuser

Interfase: authenticator

Todos los usuarios se crean deshabilitados y bloqueados por defecto.

El login solo funciona si es una conexión SSL.

Que es ESAPI?

Metodo: issecurechannel

Interfase: HTTP utilities

- Garantiza que la información solo se

transmita cifrada.

Flag: HTTPUtilities.ForceSecureSession

Manejo de Errores y Logs

- Librerías

de Seguridad.

- Gratuitas.

- Fáciles de usar.

Metodos: getusermessage / getlogmessage / isauthorizedforXXX

Dos logs distintos.

Cifrado de datos

Metodos: encrypt / seal

Interfase: Encryptor

Garantiza el cifrado de los datos.

(*) También existen métodos disponibles en los frameworks.

Otros frameworks

- Apache Shiro

- Spring Framework

- Visual Studio .Net (Guide

for PCI Compliance)

OWASP Top 10 2013

- Lanzado esta semana!

- Llamado a voluntarios

Gracias!