Introducing 

Prezi AI.

Your new presentation assistant.

Refine, enhance, and tailor your content, source relevant images, and edit visuals quicker than ever before.

Loading content…
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!

Learn more about creating dynamic, engaging presentations with Prezi