SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Downloaden Sie, um offline zu lesen
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
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 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
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
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
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
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
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
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
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
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”
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
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
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
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
…
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
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
Tratamiento seguro de datos en aplicaciones

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

&lt;B&gt;?&#191;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

Weitere ähnliche Inhalte

Ähnlich wie OWASP Meeting. Tratamiento de Datos

153. pwd migracion-datos_1
153. pwd migracion-datos_1153. pwd migracion-datos_1
153. pwd migracion-datos_1Jabes Rivera
 
Diseño de entradas para sistemas de información
Diseño de entradas para sistemas de informaciónDiseño de entradas para sistemas de información
Diseño de entradas para sistemas de informaciónYaskelly Yedra
 
Dragonjarcon2015 - ¿Cómo programar aplicaciones seguras? por Paulino Calderon...
Dragonjarcon2015 - ¿Cómo programar aplicaciones seguras? por Paulino Calderon...Dragonjarcon2015 - ¿Cómo programar aplicaciones seguras? por Paulino Calderon...
Dragonjarcon2015 - ¿Cómo programar aplicaciones seguras? por Paulino Calderon...Websec México, S.C.
 
Industrializacionde la IA Maria Borbones
Industrializacionde la IA Maria BorbonesIndustrializacionde la IA Maria Borbones
Industrializacionde la IA Maria BorbonesWiMLDS_Madrid
 
BYOD – SQL Azure y Dynamics 365 F&O
BYOD – SQL Azure y Dynamics 365 F&OBYOD – SQL Azure y Dynamics 365 F&O
BYOD – SQL Azure y Dynamics 365 F&OJuan Fabian
 
Los 10 principales riesgos en aplicaciones web #CPMX5
Los 10 principales riesgos en aplicaciones web #CPMX5Los 10 principales riesgos en aplicaciones web #CPMX5
Los 10 principales riesgos en aplicaciones web #CPMX5SemanticWebBuilder
 
Big data, Big Objects
Big data, Big ObjectsBig data, Big Objects
Big data, Big ObjectsNimacloud
 
Eje tematico3. entradas de sistemas de informacion
Eje tematico3. entradas de sistemas de informacionEje tematico3. entradas de sistemas de informacion
Eje tematico3. entradas de sistemas de informacionJulian Uasapud
 
Diseño de entradas y controles de sistemas
Diseño de entradas y controles de sistemasDiseño de entradas y controles de sistemas
Diseño de entradas y controles de sistemascaod24
 
Diseño de entradas y controles de sistemas
Diseño de entradas y controles de sistemasDiseño de entradas y controles de sistemas
Diseño de entradas y controles de sistemascaod24
 
Diseño de entradas y controles de sistemas
Diseño de entradas y controles de sistemasDiseño de entradas y controles de sistemas
Diseño de entradas y controles de sistemascaod24
 
Taller cybersecurity 2016
Taller cybersecurity 2016Taller cybersecurity 2016
Taller cybersecurity 2016Gonzalo Vigo
 
Exposición Grupo 3
Exposición Grupo 3Exposición Grupo 3
Exposición Grupo 3CAROLINA
 
Seguridad de aplicaciones web 2.0
Seguridad de aplicaciones web 2.0Seguridad de aplicaciones web 2.0
Seguridad de aplicaciones web 2.0Pablo Viquez
 
Los Anillos de Seguridad - AWS Security Day Chile - 2023
Los Anillos de Seguridad - AWS Security Day Chile - 2023Los Anillos de Seguridad - AWS Security Day Chile - 2023
Los Anillos de Seguridad - AWS Security Day Chile - 2023Alvaro Garcia
 
3 importancia de la validación
3 importancia de la validación3 importancia de la validación
3 importancia de la validaciónBitter Lemon
 
Keepler | Data Analysis Lifecycle
Keepler | Data Analysis LifecycleKeepler | Data Analysis Lifecycle
Keepler | Data Analysis LifecycleKeepler Data Tech
 
Auditoria bd
Auditoria bdAuditoria bd
Auditoria bdHaydee Lo
 

Ähnlich wie OWASP Meeting. Tratamiento de Datos (20)

153. pwd migracion-datos_1
153. pwd migracion-datos_1153. pwd migracion-datos_1
153. pwd migracion-datos_1
 
S8-DAW-2022S1.pptx
S8-DAW-2022S1.pptxS8-DAW-2022S1.pptx
S8-DAW-2022S1.pptx
 
Diseño de entradas para sistemas de información
Diseño de entradas para sistemas de informaciónDiseño de entradas para sistemas de información
Diseño de entradas para sistemas de información
 
Dragonjarcon2015 - ¿Cómo programar aplicaciones seguras? por Paulino Calderon...
Dragonjarcon2015 - ¿Cómo programar aplicaciones seguras? por Paulino Calderon...Dragonjarcon2015 - ¿Cómo programar aplicaciones seguras? por Paulino Calderon...
Dragonjarcon2015 - ¿Cómo programar aplicaciones seguras? por Paulino Calderon...
 
Industrializacionde la IA Maria Borbones
Industrializacionde la IA Maria BorbonesIndustrializacionde la IA Maria Borbones
Industrializacionde la IA Maria Borbones
 
BYOD – SQL Azure y Dynamics 365 F&O
BYOD – SQL Azure y Dynamics 365 F&OBYOD – SQL Azure y Dynamics 365 F&O
BYOD – SQL Azure y Dynamics 365 F&O
 
Los 10 principales riesgos en aplicaciones web #CPMX5
Los 10 principales riesgos en aplicaciones web #CPMX5Los 10 principales riesgos en aplicaciones web #CPMX5
Los 10 principales riesgos en aplicaciones web #CPMX5
 
Big data, Big Objects
Big data, Big ObjectsBig data, Big Objects
Big data, Big Objects
 
Eje tematico3. entradas de sistemas de informacion
Eje tematico3. entradas de sistemas de informacionEje tematico3. entradas de sistemas de informacion
Eje tematico3. entradas de sistemas de informacion
 
Recomendaciones de seguridad informática
Recomendaciones de seguridad informáticaRecomendaciones de seguridad informática
Recomendaciones de seguridad informática
 
Diseño de entradas y controles de sistemas
Diseño de entradas y controles de sistemasDiseño de entradas y controles de sistemas
Diseño de entradas y controles de sistemas
 
Diseño de entradas y controles de sistemas
Diseño de entradas y controles de sistemasDiseño de entradas y controles de sistemas
Diseño de entradas y controles de sistemas
 
Diseño de entradas y controles de sistemas
Diseño de entradas y controles de sistemasDiseño de entradas y controles de sistemas
Diseño de entradas y controles de sistemas
 
Taller cybersecurity 2016
Taller cybersecurity 2016Taller cybersecurity 2016
Taller cybersecurity 2016
 
Exposición Grupo 3
Exposición Grupo 3Exposición Grupo 3
Exposición Grupo 3
 
Seguridad de aplicaciones web 2.0
Seguridad de aplicaciones web 2.0Seguridad de aplicaciones web 2.0
Seguridad de aplicaciones web 2.0
 
Los Anillos de Seguridad - AWS Security Day Chile - 2023
Los Anillos de Seguridad - AWS Security Day Chile - 2023Los Anillos de Seguridad - AWS Security Day Chile - 2023
Los Anillos de Seguridad - AWS Security Day Chile - 2023
 
3 importancia de la validación
3 importancia de la validación3 importancia de la validación
3 importancia de la validación
 
Keepler | Data Analysis Lifecycle
Keepler | Data Analysis LifecycleKeepler | Data Analysis Lifecycle
Keepler | Data Analysis Lifecycle
 
Auditoria bd
Auditoria bdAuditoria bd
Auditoria bd
 

Mehr von Internet Security Auditors

Explotando los datos como materia prima del conocimiento
Explotando los datos como materia prima del conocimientoExplotando los datos como materia prima del conocimiento
Explotando los datos como materia prima del conocimientoInternet Security Auditors
 
XIII Jornadas STIC CCN-CERT. OSINT de la información a la inteligencia
XIII Jornadas STIC CCN-CERT. OSINT de la información a la inteligenciaXIII Jornadas STIC CCN-CERT. OSINT de la información a la inteligencia
XIII Jornadas STIC CCN-CERT. OSINT de la información a la inteligenciaInternet Security Auditors
 
Proceso de implementación de los sistemas de gestión ISO 27001 e ISO 22301
Proceso de implementación de los sistemas de gestión ISO 27001 e ISO 22301Proceso de implementación de los sistemas de gestión ISO 27001 e ISO 22301
Proceso de implementación de los sistemas de gestión ISO 27001 e ISO 22301Internet Security Auditors
 
Problemática de implementación de un SGSI o un SGCN en contact centers y BPOs
Problemática de implementación de un SGSI o un SGCN en contact centers y BPOsProblemática de implementación de un SGSI o un SGCN en contact centers y BPOs
Problemática de implementación de un SGSI o un SGCN en contact centers y BPOsInternet Security Auditors
 
PCI DSS en el Cloud: Transferencia Internacional Datos
PCI DSS en el Cloud: Transferencia Internacional DatosPCI DSS en el Cloud: Transferencia Internacional Datos
PCI DSS en el Cloud: Transferencia Internacional DatosInternet Security Auditors
 
Problematicas de PCI DSS en Contact Centers & BPO
Problematicas de PCI DSS en Contact Centers & BPOProblematicas de PCI DSS en Contact Centers & BPO
Problematicas de PCI DSS en Contact Centers & BPOInternet Security Auditors
 
Proteccion de Datos Personales: Conceptos, Sanciones, Metodologia
Proteccion de Datos Personales: Conceptos, Sanciones, MetodologiaProteccion de Datos Personales: Conceptos, Sanciones, Metodologia
Proteccion de Datos Personales: Conceptos, Sanciones, MetodologiaInternet Security Auditors
 
GigaTIC 2017 - Más allá del futuro: Negocio, tecnología y robótica. (Abril 2017)
GigaTIC 2017 - Más allá del futuro: Negocio, tecnología y robótica. (Abril 2017)GigaTIC 2017 - Más allá del futuro: Negocio, tecnología y robótica. (Abril 2017)
GigaTIC 2017 - Más allá del futuro: Negocio, tecnología y robótica. (Abril 2017)Internet Security Auditors
 
RootedCon 2017 - Workshop: IoT Insecurity of Things?
RootedCon 2017 - Workshop: IoT Insecurity of Things?RootedCon 2017 - Workshop: IoT Insecurity of Things?
RootedCon 2017 - Workshop: IoT Insecurity of Things?Internet Security Auditors
 
Cambios de las versiones 3.2, Cuestionarios y Ecosistema de Normas PCI
Cambios de las versiones 3.2, Cuestionarios y Ecosistema de Normas PCICambios de las versiones 3.2, Cuestionarios y Ecosistema de Normas PCI
Cambios de las versiones 3.2, Cuestionarios y Ecosistema de Normas PCIInternet Security Auditors
 
Overdrive Hacking Conference 2016 - Riesgos en el uso de las Redes Sociales (...
Overdrive Hacking Conference 2016 - Riesgos en el uso de las Redes Sociales (...Overdrive Hacking Conference 2016 - Riesgos en el uso de las Redes Sociales (...
Overdrive Hacking Conference 2016 - Riesgos en el uso de las Redes Sociales (...Internet Security Auditors
 
Conferencia sobre Protección de Datos (Bogotá): Errores comunes en la identif...
Conferencia sobre Protección de Datos (Bogotá): Errores comunes en la identif...Conferencia sobre Protección de Datos (Bogotá): Errores comunes en la identif...
Conferencia sobre Protección de Datos (Bogotá): Errores comunes en la identif...Internet Security Auditors
 
Conferencia sobre Protección de Datos (Bogotá): Aprendiendo de las Sanciones
Conferencia sobre Protección de Datos (Bogotá): Aprendiendo de las SancionesConferencia sobre Protección de Datos (Bogotá): Aprendiendo de las Sanciones
Conferencia sobre Protección de Datos (Bogotá): Aprendiendo de las SancionesInternet Security Auditors
 
Catosfera 2016: Anàlisi de xarxes socials amb finalitats d'investigació: ris...
Catosfera 2016:  Anàlisi de xarxes socials amb finalitats d'investigació: ris...Catosfera 2016:  Anàlisi de xarxes socials amb finalitats d'investigació: ris...
Catosfera 2016: Anàlisi de xarxes socials amb finalitats d'investigació: ris...Internet Security Auditors
 
VI Foro Evidencias Electrónicas en la Investigación Policial. Análisis forens...
VI Foro Evidencias Electrónicas en la Investigación Policial. Análisis forens...VI Foro Evidencias Electrónicas en la Investigación Policial. Análisis forens...
VI Foro Evidencias Electrónicas en la Investigación Policial. Análisis forens...Internet Security Auditors
 
CIBERSEG '15 - Taller: Ingeniería inversa en aplicaciones Android
CIBERSEG '15 - Taller: Ingeniería inversa en aplicaciones AndroidCIBERSEG '15 - Taller: Ingeniería inversa en aplicaciones Android
CIBERSEG '15 - Taller: Ingeniería inversa en aplicaciones AndroidInternet Security Auditors
 
(ISC)2 Security Congress EMEA. You are being watched.
(ISC)2 Security Congress EMEA. You are being watched.(ISC)2 Security Congress EMEA. You are being watched.
(ISC)2 Security Congress EMEA. You are being watched.Internet Security Auditors
 

Mehr von Internet Security Auditors (20)

Explotando los datos como materia prima del conocimiento
Explotando los datos como materia prima del conocimientoExplotando los datos como materia prima del conocimiento
Explotando los datos como materia prima del conocimiento
 
XIII Jornadas STIC CCN-CERT. OSINT de la información a la inteligencia
XIII Jornadas STIC CCN-CERT. OSINT de la información a la inteligenciaXIII Jornadas STIC CCN-CERT. OSINT de la información a la inteligencia
XIII Jornadas STIC CCN-CERT. OSINT de la información a la inteligencia
 
Proceso de implementación de los sistemas de gestión ISO 27001 e ISO 22301
Proceso de implementación de los sistemas de gestión ISO 27001 e ISO 22301Proceso de implementación de los sistemas de gestión ISO 27001 e ISO 22301
Proceso de implementación de los sistemas de gestión ISO 27001 e ISO 22301
 
Problemática de implementación de un SGSI o un SGCN en contact centers y BPOs
Problemática de implementación de un SGSI o un SGCN en contact centers y BPOsProblemática de implementación de un SGSI o un SGCN en contact centers y BPOs
Problemática de implementación de un SGSI o un SGCN en contact centers y BPOs
 
PCI DSS en el Cloud: Transferencia Internacional Datos
PCI DSS en el Cloud: Transferencia Internacional DatosPCI DSS en el Cloud: Transferencia Internacional Datos
PCI DSS en el Cloud: Transferencia Internacional Datos
 
Problematicas de PCI DSS en Contact Centers & BPO
Problematicas de PCI DSS en Contact Centers & BPOProblematicas de PCI DSS en Contact Centers & BPO
Problematicas de PCI DSS en Contact Centers & BPO
 
PCI DSS: Justificacion del Cumplimiento
PCI DSS: Justificacion del CumplimientoPCI DSS: Justificacion del Cumplimiento
PCI DSS: Justificacion del Cumplimiento
 
Proteccion de Datos Personales: Conceptos, Sanciones, Metodologia
Proteccion de Datos Personales: Conceptos, Sanciones, MetodologiaProteccion de Datos Personales: Conceptos, Sanciones, Metodologia
Proteccion de Datos Personales: Conceptos, Sanciones, Metodologia
 
GigaTIC 2017 - Más allá del futuro: Negocio, tecnología y robótica. (Abril 2017)
GigaTIC 2017 - Más allá del futuro: Negocio, tecnología y robótica. (Abril 2017)GigaTIC 2017 - Más allá del futuro: Negocio, tecnología y robótica. (Abril 2017)
GigaTIC 2017 - Más allá del futuro: Negocio, tecnología y robótica. (Abril 2017)
 
RootedCon 2017 - Workshop: IoT Insecurity of Things?
RootedCon 2017 - Workshop: IoT Insecurity of Things?RootedCon 2017 - Workshop: IoT Insecurity of Things?
RootedCon 2017 - Workshop: IoT Insecurity of Things?
 
PCI DSS en la Nube
PCI DSS en la NubePCI DSS en la Nube
PCI DSS en la Nube
 
Cambios de las versiones 3.2, Cuestionarios y Ecosistema de Normas PCI
Cambios de las versiones 3.2, Cuestionarios y Ecosistema de Normas PCICambios de las versiones 3.2, Cuestionarios y Ecosistema de Normas PCI
Cambios de las versiones 3.2, Cuestionarios y Ecosistema de Normas PCI
 
Overdrive Hacking Conference 2016 - Riesgos en el uso de las Redes Sociales (...
Overdrive Hacking Conference 2016 - Riesgos en el uso de las Redes Sociales (...Overdrive Hacking Conference 2016 - Riesgos en el uso de las Redes Sociales (...
Overdrive Hacking Conference 2016 - Riesgos en el uso de las Redes Sociales (...
 
Conferencia sobre Protección de Datos (Bogotá): Errores comunes en la identif...
Conferencia sobre Protección de Datos (Bogotá): Errores comunes en la identif...Conferencia sobre Protección de Datos (Bogotá): Errores comunes en la identif...
Conferencia sobre Protección de Datos (Bogotá): Errores comunes en la identif...
 
Conferencia sobre Protección de Datos (Bogotá): Aprendiendo de las Sanciones
Conferencia sobre Protección de Datos (Bogotá): Aprendiendo de las SancionesConferencia sobre Protección de Datos (Bogotá): Aprendiendo de las Sanciones
Conferencia sobre Protección de Datos (Bogotá): Aprendiendo de las Sanciones
 
Catosfera 2016: Anàlisi de xarxes socials amb finalitats d'investigació: ris...
Catosfera 2016:  Anàlisi de xarxes socials amb finalitats d'investigació: ris...Catosfera 2016:  Anàlisi de xarxes socials amb finalitats d'investigació: ris...
Catosfera 2016: Anàlisi de xarxes socials amb finalitats d'investigació: ris...
 
CIBERSEG'16. Técnicas #OSINT
CIBERSEG'16. Técnicas #OSINTCIBERSEG'16. Técnicas #OSINT
CIBERSEG'16. Técnicas #OSINT
 
VI Foro Evidencias Electrónicas en la Investigación Policial. Análisis forens...
VI Foro Evidencias Electrónicas en la Investigación Policial. Análisis forens...VI Foro Evidencias Electrónicas en la Investigación Policial. Análisis forens...
VI Foro Evidencias Electrónicas en la Investigación Policial. Análisis forens...
 
CIBERSEG '15 - Taller: Ingeniería inversa en aplicaciones Android
CIBERSEG '15 - Taller: Ingeniería inversa en aplicaciones AndroidCIBERSEG '15 - Taller: Ingeniería inversa en aplicaciones Android
CIBERSEG '15 - Taller: Ingeniería inversa en aplicaciones Android
 
(ISC)2 Security Congress EMEA. You are being watched.
(ISC)2 Security Congress EMEA. You are being watched.(ISC)2 Security Congress EMEA. You are being watched.
(ISC)2 Security Congress EMEA. You are being watched.
 

OWASP Meeting. Tratamiento de Datos

  • 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. Tratamiento seguro de datos en aplicaciones OWASP Conference 2007 Barcelona, Julio 2007 Su Seguridad es Nuestro Éxito
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Tratamiento seguro de datos en aplicaciones <B>’¿Dudas?<B> <B>’¿Dudas?<B> &lt;B&gt;?&#191;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