0
Su Seguridad es Nuestro Éxito

c. Santander, 101. Edif. A. 2º I 08030 Barcelona I Tel.: 93 305 13 18 I Fax: 93 278 22 48 I...
Tratamiento seguro de datos en aplicaciones
OWASP Conference 2007
Barcelona, Julio 2007

Su Seguridad es Nuestro Éxito
Tratamiento seguro de datos en aplicaciones

Definición de Aplicación:
“Una aplicación es un programa informático diseñado...
Tratamiento seguro de datos en aplicaciones

• Las aplicaciones reciben datos, los procesan y luego muestran los
resultado...
Tratamiento seguro de datos en aplicaciones

Las aplicaciones pueden
utilizar un mismo dato en
distintos contextos.

SELEC...
Tratamiento seguro de datos en aplicaciones

• Un tratamiento incorrecto de los datos puede ocasionar que un
cambio de con...
Tratamiento seguro de datos en aplicaciones

Cross Site Scriptint (XSS)
• Es un error que se produce en contexto de lengua...
Tratamiento seguro de datos en aplicaciones

SQL Injection
• Es un error que se produce en contexto de sentencia SQL.
• Un...
Tratamiento seguro de datos en aplicaciones

PATH Traversal
• Es un error que se produce en contexto de ruta de fichero.
•...
Tratamiento seguro de datos en aplicaciones

Buffer overflow
• Es un error que se produce en contexto de buffer de
memoria...
Tratamiento seguro de datos en aplicaciones

Validación de datos de entrada ¿Solución?

¡NO!
• Se suele decir que una apli...
Tratamiento seguro de datos en aplicaciones

Validación de datos de entrada ¿Solución?

¡NO!
• Si se verifican únicamente ...
Tratamiento seguro de datos en aplicaciones

Validación de datos de entrada ¿Solución?

¡NO!
• No podemos “generalizar” la...
Tratamiento seguro de datos en aplicaciones

Validación de datos en cambios de contexto ¿Solución?

¡SI!
• Te garantiza qu...
Tratamiento seguro de datos en aplicaciones

Contexto

Validaciones

Sentencia SQL

Escapar caracteres (comillas, contraba...
Tratamiento seguro de datos en aplicaciones

Validación de datos en cambios de contexto ¿Solución?

¡SI!
“’ OR ‘’=‘”

“<B>...
Tratamiento seguro de datos en aplicaciones

¿Validamos la entrada? Sí, la entrada de datos es un cambio de
contexto.
•Si ...
Tratamiento seguro de datos en aplicaciones

<B>’¿Dudas?<B>
<B>’¿Dudas?<B>

&lt;B&gt;?¿Dudas?&lt;B&gt;

© I n t e r n e t ...
Upcoming SlideShare
Loading in...5
×

OWASP Meeting. Tratamiento de Datos

120

Published on

Presentación de la jornada sobre la Seguridad en Medios de Pago y la norma PCI DSS.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
120
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "OWASP Meeting. Tratamiento de Datos"

  1. 1. Su Seguridad es Nuestro Éxito c. Santander, 101. Edif. A. 2º I 08030 Barcelona I Tel.: 93 305 13 18 I Fax: 93 278 22 48 I info@isecauditors.com I www.isecauditors.com
  2. 2. Tratamiento seguro de datos en aplicaciones OWASP Conference 2007 Barcelona, Julio 2007 Su Seguridad es Nuestro Éxito
  3. 3. Tratamiento seguro de datos en aplicaciones Definición de Aplicación: “Una aplicación es un programa informático diseñado para facilitar al usuario un determinado tipo de trabajo.” (Fuente: Wikipedia) Compentes de una Aplicación: • Procesos • Datos Datos de entrada Procesos Datos de salida Entrada de usuario Parámetros Fichero Base de datos Conexión de red … © I n t e r n e t S e c u r i t y A u d i t o r s • Ciudad • 01. 01 . 2 0 0 7 • P. 3
  4. 4. Tratamiento seguro de datos en aplicaciones • Las aplicaciones reciben datos, los procesan y luego muestran los resultados. • Los datos introducidos en una aplicación pueden utilizarse en distintos contextos. • Nombre de fichero • Consultas SQL • Consultas XPATH • En códigos de marcas (XML, HTML, etc) • … © I n t e r n e t S e c u r i t y A u d i t o r s • Ciudad • 01. 01 . 2 0 0 7 • P. 4
  5. 5. Tratamiento seguro de datos en aplicaciones Las aplicaciones pueden utilizar un mismo dato en distintos contextos. SELECT * FROM id = ‘dato’ Cada contexto puede tener implicaciones distintas. “dato” File://usr/info/dato.xml <HTML> <TITLE>Página Web</TITLE> <BODY> <H1>dato</H1> </BODY> </HTML> © I n t e r n e t S e c u r i t y A u d i t o r s • Ciudad • 01. 01 . 2 0 0 7 • P. 5
  6. 6. Tratamiento seguro de datos en aplicaciones • Un tratamiento incorrecto de los datos puede ocasionar que un cambio de contexto suponga una vulnerabilidad en la aplicación. SQL injection “’ OR ‘’=‘” SELECT * FROM id = ‘’ OR ‘’=‘’ Path Traversal “../../../file” File://usr/info/../../../file.xml Cross Site Scripting “<B>BOLD</B>” <HTML> <TITLE>Página Web</TITLE> <BODY> <H1><B>BOLD</B></H1> </BODY> </HTML> © I n t e r n e t S e c u r i t y A u d i t o r s • Ciudad • 01. 01 . 2 0 0 7 • P. 6
  7. 7. Tratamiento seguro de datos en aplicaciones Cross Site Scriptint (XSS) • Es un error que se produce en contexto de lenguaje de marcas HTML, al generar la presentación de una página web. • Un usuario puede inyectar código malicioso (HTML/Javascript) que se ejecuta en el cliente. • Permite comprometer otros usuarios (ejecutar código, robar cookies). “<B>BOLD</B>” <HTML> <TITLE>Página Web</TITLE> <BODY> <H1><B>BOLD</B></H1> </BODY> </HTML> © I n t e r n e t S e c u r i t y A u d i t o r s • Ciudad • 01. 01 . 2 0 0 7 • P. 7
  8. 8. Tratamiento seguro de datos en aplicaciones SQL Injection • Es un error que se produce en contexto de sentencia SQL. • Un usuario es capar de alterar la sentencia SQL y alterar el comportamiento de la aplicación. • • • • • Añadir datos Borrar datos Extraer datos Ejecutar comandos del sistema … • Se puede comprometer datos y servidores. “’ OR ‘’=‘” SELECT * FROM id = ‘’ OR ‘’=‘’ © I n t e r n e t S e c u r i t y A u d i t o r s • Ciudad • 01. 01 . 2 0 0 7 • P. 8
  9. 9. Tratamiento seguro de datos en aplicaciones PATH Traversal • Es un error que se produce en contexto de ruta de fichero. • El usuario es capaz de manipular la ruta de un fichero para que se acceda a ficheros de forma no controlada, generalmente escapando del directorio mediante ‘..’ • Se pueden comprometer datos y servidores, dependiendo del uso que se le de los ficheros a los que se accede. “../../../file” File://usr/info/../../../file.xml © I n t e r n e t S e c u r i t y A u d i t o r s • Ciudad • 01. 01 . 2 0 0 7 • P. 9
  10. 10. Tratamiento seguro de datos en aplicaciones Buffer overflow • Es un error que se produce en contexto de buffer de memoria. • Se copia de un buffer de memoria a otro sin verificar que el buffer de destino sea mayor o igual que el buffer de origen. • Permite modificar la memoria de la aplicación y tomar el control. “AAAA….AAAA” Buffer origen “AAAA….AAAA” > Buffer destino © I n t e r n e t S e c u r i t y A u d i t o r s • Ciudad • 01. 01 . 2 0 0 7 • P. 10
  11. 11. Tratamiento seguro de datos en aplicaciones Validación de datos de entrada ¿Solución? ¡NO! • Se suele decir que una aplicación es segura si valida sus datos de entrada, pero eso no es cierto. • Un dato validado en la entrada de la aplicación puede ‘mutar’. Validación de la entrada “dato” Funcion 1 “../dato” Funcion 1 © I n t e r n e t S e c u r i t y A u d i t o r s • Ciudad • 01. 01 . 2 0 0 7 • P. 11 “../<B>dato”
  12. 12. Tratamiento seguro de datos en aplicaciones Validación de datos de entrada ¿Solución? ¡NO! • Si se verifican únicamente las entradas de datos se pueden producir ataques ‘de segundo nivel’. • Ejemplo: Un dato se verifica, se introduce en la base de datos pero luego al reutilizarse no se verifica de nuevo. Validación de la entrada “dato’” “dato’” “dato’” © I n t e r n e t S e c u r i t y A u d i t o r s • Ciudad • 01. 01 . 2 0 0 7 • P. 12
  13. 13. Tratamiento seguro de datos en aplicaciones Validación de datos de entrada ¿Solución? ¡NO! • No podemos “generalizar” la validación de datos en la entrada, ya que podemos perder la usabilidad. • Ejemplo: Una validación que “generalizada” que elimina (o escapa) todos los caracteres sospechosos (>, <, ‘, etc). Validación de la entrada ¡Eh! Que yo me llamo Eto’o, “Eto’o” “Etoo” <HTML> no<TITLE>Página Web</TITLE> Etoo. <BODY> <H1>Bienvenido Etoo</H1> </BODY> </HTML> © I n t e r n e t S e c u r i t y A u d i t o r s • Ciudad • 01. 01 . 2 0 0 7 • P. 13
  14. 14. Tratamiento seguro de datos en aplicaciones Validación de datos en cambios de contexto ¿Solución? ¡SI! • Te garantiza que SIEMPRE estarás tratando con datos de forma segura en todo momento. • En cada cambio de contexto deberían aplicarse únicamente las medidas necesarias para asegurar el dato en ese contexto, de manera se mejora la usabilidad. © I n t e r n e t S e c u r i t y A u d i t o r s • Ciudad • 01. 01 . 2 0 0 7 • P. 14
  15. 15. Tratamiento seguro de datos en aplicaciones Contexto Validaciones Sentencia SQL Escapar caracteres (comillas, contrabarra) Código HTML Codificar los datos en HTML (HTMLencode) Nombre de un fichero Filtrar caráracteres (barra, contrabarra, puntos al inicio de fichero) Buffer de memoria Verificar tamaño de origen y destino. … … © I n t e r n e t S e c u r i t y A u d i t o r s • Ciudad • 01. 01 . 2 0 0 7 • P. 15 SQL Injection Cross site scripting Path traversal Buffer overflow …
  16. 16. Tratamiento seguro de datos en aplicaciones Validación de datos en cambios de contexto ¿Solución? ¡SI! “’ OR ‘’=‘” “<B>BOLD</B>” SELECT * FROM id = ‘’ OR ‘’=‘’ <HTML> <TITLE>Página Web</TITLE> <BODY> <H1>&lt;B&gt;BOLD&lt;/B&gt;</H1> </BODY> </HTML> © I n t e r n e t S e c u r i t y A u d i t o r s • Ciudad • 01. 01 . 2 0 0 7 • P. 16
  17. 17. Tratamiento seguro de datos en aplicaciones ¿Validamos la entrada? Sí, la entrada de datos es un cambio de contexto. •Si el dato de entrada es de un tipo cerrado o debe cumplir una serie de condiciones debemos filtrar y/o verificar que los datos son correctos. • Ejemplo: Dato de entrada en una aplicación web que contiene un identificador numérico. “12” “12” Validación de entrada “12abc” “12” © I n t e r n e t S e c u r i t y A u d i t o r s • Ciudad • 01. 01 . 2 0 0 7 • P. 17
  18. 18. Tratamiento seguro de datos en aplicaciones <B>’¿Dudas?<B> <B>’¿Dudas?<B> &lt;B&gt;?¿Dudas?&lt;B&gt; © I n t e r n e t S e c u r i t y A u d i t o r s • Ciudad • 01. 01 . 2 0 0 7 • P. 18
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×