Prezi

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in the manual

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

PCI para desarrolladores

No description
by Fabio Cerullo on 14 June 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of PCI para desarrolladores

Prevención Inyección
Prevención Inyección
PCI para Desarrolladores
Fabio Cerullo
- 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.
Cifrado de canal
Metodo: issecurechannel
Interfase: HTTP utilities
- Garantiza que la información solo se
transmita cifrada.

Flag: HTTPUtilities.ForceSecureSession
Datos de la tarjeta
- Guía Desarrollo Seguro
- Guía de Testeo
- Guía de Revisión de Código.
- OWASP ESAPI
- ZAP
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?
5.3 segundos!
Que es PCI?
Típicos Errores
Mientras tanto...
Como puede
ayudar OWASP?
- 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.
Autenticación Segura con ESAPI
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.
Por que fue creado PCI?
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).
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?
Ecosistema PCI
PCI PA-DSS

COMPLEMENTA

PCI-DSS
Requisitos PCI-DSS
Requisitos PCI-PA DSS
A tener en cuenta...
- 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
Que es ESAPI?
- Librerías
de Seguridad.
- Gratuitas.
- Fáciles de usar.
Manejo adecuado de sesiones
Método: changesessionid
Interfase: HTTP utilities
- Evita fijación de sesion.
- Garantiza un ID unico.
Cifrado de datos
Metodos: encrypt / seal
Interfase: Encryptor

Garantiza el cifrado de los datos.

(*) También existen métodos disponibles en los frameworks.
Método: getvalidinput
Interfase: validator

Previene entrada de
datos maliciosas.
Métodos: EncodeforXXX
Interfase: Encoder

Garantiza el adecuado
formato de los datos.
Prevencion XSS
Igual que Inyeccion
y el flag
HTTPUtilities.HTTPOnly
Prevencion CSRF
Metodo: AddCSRFToken
Interfase: HTTPUtilities

Agrega un token unico
por operacion/transac.
Acceso Seguro a Datos
- Referencia Indirecta a Objetos
- Control de Acceso a Datos
Referencia Indirecta a objetos
/accounts/viewDetail?id=3540

Que pasa si cambio por?

/accounts/viewDetail?id=3541
Control de Acceso
Metodos: isauthorizedForXXX / randomaccessmap
Interases: AccessReferenceMap / AccessController

Garantizan que solo los usuarios autorizados
acceden los recursos (datos, funciones, etc)
Manejo de Errores y Logs
Metodos: getusermessage / getlogmessage / isauthorizedforXXX

Dos logs distintos.
Otros frameworks
- Apache Shiro
- Spring Framework
- Visual Studio .Net (Guide
for PCI Compliance)
Gracias!
Usted necesita almacenar el PAN?
Utilice un sistema de tokenizacion...

- Braintree
- Stripe
- otros...
OWASP Top 10 2013
- Lanzado esta semana!
- Llamado a voluntarios
See the full transcript