SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
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
Análisis de Eco
OWASP Conference, Noviembre 2008
Jesus Olmos Gonzalez (jolmos@isecauditors.com)

Su Seguridad es Nuestro Éxito
Análisis de eco

Índice
1. Problemática en la auditoría de Caja Negra.
2. Caja Negra sin eco.
3. Deducción de código.
4. Filtros vs Saneos.
5. Búsqueda de salidas.
6. ¿Qué es el eco?
7. Análisis de los ecos.
8. Ecos indirectos.
9. Autómatas finitos de cara a deducir la evasión.
10. Conclusiones y recomendaciones.

© I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 3
Análisis de eco

1. Problemática en la auditoría de Caja Negra.
•

No vemos el código.

•

Imposible probar todos los casos.

•

Los tipos de vulnerabilidades Web hoy día son “Well Known”
(la humanidad cuenta con un rico histórico de vulnerabilidades)

•

Los desarrolladores validan los datos cada vez más. (pero no mejor)

•

Se realizan validaciones deficientes que no protegen la vulnerabilidad y
además dificultan su detección.
Ejemplo:

„  ‟
/^‟.*(or|and)/

© I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 4
Análisis de eco

2. Caja Negra sin eco.
•
•
•
•
•

Se induce un input
Se observa el output
Se buscan relaciónes entre el input y el output
Se analizan las precondiciones
Se analizan las poscondiciones
Input

output

© I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 5
Análisis de eco

3. Deducción de código.
•

En vez de ir realizando ataques
hasta que alguno “funcione” es
más efectivo tantear en busca del
fallo y posteriormente explotarlo.

•

Este tanteo, consiste en estudiar
los input/output de cara a
elaborar un pseudocódigo.

•

Importante
analizar.

no

atacar,

sino

© I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 6
Análisis de eco

3. Deducción de código.
•

Es más importante una interpretación correcta del output, que emitir un
input acertado.

• Que componente interno nos da el error (BBDD, SA, SW, FWA, ..)
(Ejemplo real: percepción subconsciente de un FWA mediante un cambio
de fuente)
• Que inputs “hacen daño”
(cancelación de operativa, timmings largos, errores no controlados)
•

Cada aplicación funciona diferente, entender a los programadores,
estudiar código de cliente, analizar errores.

•

Variables de decisión, variables permanentes, variables de llamada
externa.
© I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 7
Análisis de eco

3. Deducción de código.
•

Correlación input  error, que input provoca que error.

•

Significado subyacente de los errores y de los timmings.

Ejemplo de análisis de una operativa:
„
>
}
|

 Error genérico.
 Continua la operativa correctamente.
 Tiempo de espera largo + Error genérico.
 Continúa la operativa + Error genérico.

¿Qué byte ha hecho más daño?

© I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 8
Análisis de eco

3. Deducción de código – Timmings.

Acceso a Datos

Segundos

Acceso a Sistema de Ficheros

Milisegundos

Acceso a memoria

Nanosegundos

Retardo Internet

Milisegundos

© I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 9
Análisis de eco

4. Filtros vs Saneos.
•

Los filtros permiten detectar y registrar el intento de ataque.

•

Los filtros deniegan la operativa, el atacante puede darse cuenta que
no se ha realizado la operativa. De manera que són más fáciles de
analizar.

•

Los saneos limpian las variables y proceden con la operativa.

•

Los filtros y saneos se pueden hacer en una sola instrucción de código
o diversas, el resultado no será el mismo. (análisis de orden de filtros)

•

Los saneos se pueden entorpecer entre ellos.

•

En ambos casos hay que tener en cuenta las transformaciones de
datos, por ejemplo decodificaciones. En cuanto se codifique o
decodifique o se transforme el valor se puede crear el ataque.
© I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 10
Análisis de eco

4. Filtros vs Saneos.
•

La mayoría vulnerabilidades existen simplemente por el escape de
contexto.

Ejemplo:

„input‟  El input no deberá de contener „
*input*  El input no deberá de contener *
comando del sistema ping „input‟  input no deberá contener „
•

Filtraremos o sanearemos el delimitador, para evitar escapes de
contexto.

© I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 11
Análisis de eco

4. Filtros vs Saneos.
Input
Dato incorrecto

Filtro de Longitud

Err Generico

Filtro de SQL
Acceso a fichero

Timming +
Err Generico

Filtro de Trasnversal

Acceso a BD

¿El código conduce al
usuario o el usuario
conduce al código?

Operación OK
© I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 12
Análisis de eco

5. Búsqueda de salidas.
•

Existe una vulnerabilidad, pero el filtro nos impide ver su existencia.
 Analizar los filtros en vez de atacar directamente.
 Aplicar evasiones.

•

Es posible incluso estar explotándola correctamente pero no percibirlo.
 Buscar una salida.
• Provocar retardos.
(sleeps de SO, BD, …, carga de ficheros largos, SQL pesada)
• Retroconexiones.
• Envío por email
• Aprovechar componentes que permitan una salida
(ej envío de sms)
• DoS en terceras aplicaciones

© I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 13
Análisis de eco

6. ¿Que es el eco o echo?
•

Si input ~= output  eco

Input

output

© I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 14
Análisis de eco

6. ¿Que es el eco o echo?

© I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 15
Análisis de eco

7. Análisis de eco

Ejemplo:
eco‟|”<  Búsquedas relacionadas con: <b>eco&#39;|&quot;&lt;</b>
eco*  <title>eco* - Buscar con Google</title>
•
•

Saneados = { „,“,< }
Aceptados = {e,c,o,|,*}

•

Se puede determinar el alfabeto permitido con el cual crear palabras de
ataque.

•

El eco permite analizar con mayor exactitud las alteraciones que ha
sufrido el input antes de llegar al output.

© I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 16
Análisis de eco

7. Análisis de eco
•

Chequeo automatizado:

Is vulnerable to echo analysis
' ==> &#39; Sanitized
" ==> &quot; Sanitized
` ==> ` Accepted
$ ==> $ Accepted
- ==> - Accepted
* ==> * Accepted
%3f(?) ==> ? Accepted
%26(%26) ==> &amp;
Sanitized
< ==> &lt; Sanitized
> ==> &gt; Sanitized
( ==> ( Accepted
) ==> ) Accepted

…
%39(9) ==> 9 Accepted
%3a(:) ==> : Accepted
%3b(;) ==> ; Accepted
%3c(%3c) ==> &lt; Sanitized
%3d(=) ==> = Accepted
%3e(%3e) ==> &gt; Sanitized
%3f(?) ==> ? Accepted
%40(@) ==> @ Accepted
%41(A) ==> A Accepted
%42(B) ==> B Accepted
%43(C) ==> C Accepted
…

© I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 17
Análisis de eco

8. Eco indirecto
•

No hay eco pero se puede intuir a partir de la respuesta.

© I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 18
Análisis de eco

8. Eco indirecto

© I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 19
Análisis de eco

8. Eco indirecto

• No filtran ni sanean el asterisco.

© I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 20
Análisis de eco

8. Eco indirecto

•
• No filtra el byte º <b>owaspº</b>
• Parece un error interno bien disimulado, pero no lo es.
© I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 21
Análisis de eco

8. Eco indirecto

• En una variable cambia < por &lt; sin embargo en otra lo suprime y no
influye en la búsqueda ni a 3º party apps.
© I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 22
Análisis de eco

8. Eco indirecto

.

© I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 23
Análisis de eco

8. Eco indirecto
Input: búsqueda
WS: decodifica
Saneo1

Saneo2

Outputs eco:
titulo,recuerda búsqueda,
búsquedas relacionadas

Operativas
Output: timming
Outputs eco indirecto:
Resultados de búsqueda

• En el eco el input está conectado con el output, en el “indirecto” tenemos un
output generado a partir del input
© I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 24
Análisis de eco

9. Autómatas finitos de los filtros
•

Una vez identificada la validación, se puede analizar los estados de
aceptación de su autómata finito.

•

Ejemplo:
•

Regexp:

•

Alfabeto del atacante E = { „ a-z }

•

Serán aceptadas: λ (null) o comillas que no estén al inicio
λ
A

/^„.*/ (todo lo que comience por comilla es un ataque)

a-z

„

„ a-z
B

© I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 25
Análisis de eco

10. Conclusiones y Recomendaciones
•

Analisis de filtro en vez de probar ataques y probar evasiones.
(un analizador automático que haga esto está bien, detectará
rápidamente las vulnerabilidades menos escondidas)

•

Solventar los problemas desde diseño, el poner una validación en
algunos casos implica tapar el problema.

•

Diseñar evasiones personalizadas para el filtro / saneo identificado.

•

Usar variables de decisión para esquivar validaciones.

•

Reducir los inputs y outputs.

•

Reducir la inferencia de los outputs.

© I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 26

Mais conteúdo relacionado

Semelhante a OWASP Meeting. Análisis de ECO

Convertir a word este manual bueno
Convertir a word este manual buenoConvertir a word este manual bueno
Convertir a word este manual bueno
soportemv
 
Gestiondeauditoriasdeseguridad
GestiondeauditoriasdeseguridadGestiondeauditoriasdeseguridad
Gestiondeauditoriasdeseguridad
oscar lopez
 
Sistema digita l_analogico
Sistema digita l_analogicoSistema digita l_analogico
Sistema digita l_analogico
Alberto Vargas
 
Sistema digita l_analogico
Sistema digita l_analogicoSistema digita l_analogico
Sistema digita l_analogico
luisj9212
 

Semelhante a OWASP Meeting. Análisis de ECO (20)

Analogico y-digital
Analogico y-digitalAnalogico y-digital
Analogico y-digital
 
2014 ii c02t-estacion meteorologica
2014 ii c02t-estacion meteorologica2014 ii c02t-estacion meteorologica
2014 ii c02t-estacion meteorologica
 
COMPUERTAS_logicasssssssssssss [Autoguardado].ppt
COMPUERTAS_logicasssssssssssss [Autoguardado].pptCOMPUERTAS_logicasssssssssssss [Autoguardado].ppt
COMPUERTAS_logicasssssssssssss [Autoguardado].ppt
 
COMPUERTASlogicasssssssssssssssssssss.ppt
COMPUERTASlogicasssssssssssssssssssss.pptCOMPUERTASlogicasssssssssssssssssssss.ppt
COMPUERTASlogicasssssssssssssssssssss.ppt
 
Laboratorio fisica resistencias
Laboratorio fisica resistenciasLaboratorio fisica resistencias
Laboratorio fisica resistencias
 
Convertir a word este manual bueno
Convertir a word este manual buenoConvertir a word este manual bueno
Convertir a word este manual bueno
 
Sistema AnalóGico Y Sistema Digital
Sistema AnalóGico Y Sistema DigitalSistema AnalóGico Y Sistema Digital
Sistema AnalóGico Y Sistema Digital
 
Seminario2
Seminario2Seminario2
Seminario2
 
Gestiondeauditoriasdeseguridad
GestiondeauditoriasdeseguridadGestiondeauditoriasdeseguridad
Gestiondeauditoriasdeseguridad
 
Owasp top 10 2010: Riesgos de seguridad en las Aplicaciones Web
Owasp top 10 2010: Riesgos de seguridad en las Aplicaciones WebOwasp top 10 2010: Riesgos de seguridad en las Aplicaciones Web
Owasp top 10 2010: Riesgos de seguridad en las Aplicaciones Web
 
Sistema digita l_analogico
Sistema digita l_analogicoSistema digita l_analogico
Sistema digita l_analogico
 
Sistema digita l_analogico
Sistema digita l_analogicoSistema digita l_analogico
Sistema digita l_analogico
 
Diagnostico de-sistema-electronico-automotriz
Diagnostico de-sistema-electronico-automotrizDiagnostico de-sistema-electronico-automotriz
Diagnostico de-sistema-electronico-automotriz
 
Control automático de un sistema de riego
Control automático de un sistema de riegoControl automático de un sistema de riego
Control automático de un sistema de riego
 
Curso
CursoCurso
Curso
 
ECDA
ECDAECDA
ECDA
 
Tratamiento seguro de datos en aplicaciones. OWASP Conference 2007.
Tratamiento seguro de datos en aplicaciones. OWASP Conference 2007.Tratamiento seguro de datos en aplicaciones. OWASP Conference 2007.
Tratamiento seguro de datos en aplicaciones. OWASP Conference 2007.
 
Auditoria informática
Auditoria informáticaAuditoria informática
Auditoria informática
 
Auditoria informatica
Auditoria informaticaAuditoria informatica
Auditoria informatica
 
Practica 1
Practica 1Practica 1
Practica 1
 

Mais de Internet Security Auditors

Mais de 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.
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (11)

Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 

OWASP Meeting. Análisis de ECO

  • 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. Análisis de Eco OWASP Conference, Noviembre 2008 Jesus Olmos Gonzalez (jolmos@isecauditors.com) Su Seguridad es Nuestro Éxito
  • 3. Análisis de eco Índice 1. Problemática en la auditoría de Caja Negra. 2. Caja Negra sin eco. 3. Deducción de código. 4. Filtros vs Saneos. 5. Búsqueda de salidas. 6. ¿Qué es el eco? 7. Análisis de los ecos. 8. Ecos indirectos. 9. Autómatas finitos de cara a deducir la evasión. 10. Conclusiones y recomendaciones. © I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 3
  • 4. Análisis de eco 1. Problemática en la auditoría de Caja Negra. • No vemos el código. • Imposible probar todos los casos. • Los tipos de vulnerabilidades Web hoy día son “Well Known” (la humanidad cuenta con un rico histórico de vulnerabilidades) • Los desarrolladores validan los datos cada vez más. (pero no mejor) • Se realizan validaciones deficientes que no protegen la vulnerabilidad y además dificultan su detección. Ejemplo: „  ‟ /^‟.*(or|and)/ © I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 4
  • 5. Análisis de eco 2. Caja Negra sin eco. • • • • • Se induce un input Se observa el output Se buscan relaciónes entre el input y el output Se analizan las precondiciones Se analizan las poscondiciones Input output © I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 5
  • 6. Análisis de eco 3. Deducción de código. • En vez de ir realizando ataques hasta que alguno “funcione” es más efectivo tantear en busca del fallo y posteriormente explotarlo. • Este tanteo, consiste en estudiar los input/output de cara a elaborar un pseudocódigo. • Importante analizar. no atacar, sino © I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 6
  • 7. Análisis de eco 3. Deducción de código. • Es más importante una interpretación correcta del output, que emitir un input acertado. • Que componente interno nos da el error (BBDD, SA, SW, FWA, ..) (Ejemplo real: percepción subconsciente de un FWA mediante un cambio de fuente) • Que inputs “hacen daño” (cancelación de operativa, timmings largos, errores no controlados) • Cada aplicación funciona diferente, entender a los programadores, estudiar código de cliente, analizar errores. • Variables de decisión, variables permanentes, variables de llamada externa. © I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 7
  • 8. Análisis de eco 3. Deducción de código. • Correlación input  error, que input provoca que error. • Significado subyacente de los errores y de los timmings. Ejemplo de análisis de una operativa: „ > } |  Error genérico.  Continua la operativa correctamente.  Tiempo de espera largo + Error genérico.  Continúa la operativa + Error genérico. ¿Qué byte ha hecho más daño? © I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 8
  • 9. Análisis de eco 3. Deducción de código – Timmings. Acceso a Datos Segundos Acceso a Sistema de Ficheros Milisegundos Acceso a memoria Nanosegundos Retardo Internet Milisegundos © I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 9
  • 10. Análisis de eco 4. Filtros vs Saneos. • Los filtros permiten detectar y registrar el intento de ataque. • Los filtros deniegan la operativa, el atacante puede darse cuenta que no se ha realizado la operativa. De manera que són más fáciles de analizar. • Los saneos limpian las variables y proceden con la operativa. • Los filtros y saneos se pueden hacer en una sola instrucción de código o diversas, el resultado no será el mismo. (análisis de orden de filtros) • Los saneos se pueden entorpecer entre ellos. • En ambos casos hay que tener en cuenta las transformaciones de datos, por ejemplo decodificaciones. En cuanto se codifique o decodifique o se transforme el valor se puede crear el ataque. © I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 10
  • 11. Análisis de eco 4. Filtros vs Saneos. • La mayoría vulnerabilidades existen simplemente por el escape de contexto. Ejemplo: „input‟  El input no deberá de contener „ *input*  El input no deberá de contener * comando del sistema ping „input‟  input no deberá contener „ • Filtraremos o sanearemos el delimitador, para evitar escapes de contexto. © I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 11
  • 12. Análisis de eco 4. Filtros vs Saneos. Input Dato incorrecto Filtro de Longitud Err Generico Filtro de SQL Acceso a fichero Timming + Err Generico Filtro de Trasnversal Acceso a BD ¿El código conduce al usuario o el usuario conduce al código? Operación OK © I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 12
  • 13. Análisis de eco 5. Búsqueda de salidas. • Existe una vulnerabilidad, pero el filtro nos impide ver su existencia.  Analizar los filtros en vez de atacar directamente.  Aplicar evasiones. • Es posible incluso estar explotándola correctamente pero no percibirlo.  Buscar una salida. • Provocar retardos. (sleeps de SO, BD, …, carga de ficheros largos, SQL pesada) • Retroconexiones. • Envío por email • Aprovechar componentes que permitan una salida (ej envío de sms) • DoS en terceras aplicaciones © I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 13
  • 14. Análisis de eco 6. ¿Que es el eco o echo? • Si input ~= output  eco Input output © I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 14
  • 15. Análisis de eco 6. ¿Que es el eco o echo? © I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 15
  • 16. Análisis de eco 7. Análisis de eco Ejemplo: eco‟|”<  Búsquedas relacionadas con: <b>eco&#39;|&quot;&lt;</b> eco*  <title>eco* - Buscar con Google</title> • • Saneados = { „,“,< } Aceptados = {e,c,o,|,*} • Se puede determinar el alfabeto permitido con el cual crear palabras de ataque. • El eco permite analizar con mayor exactitud las alteraciones que ha sufrido el input antes de llegar al output. © I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 16
  • 17. Análisis de eco 7. Análisis de eco • Chequeo automatizado: Is vulnerable to echo analysis ' ==> &#39; Sanitized " ==> &quot; Sanitized ` ==> ` Accepted $ ==> $ Accepted - ==> - Accepted * ==> * Accepted %3f(?) ==> ? Accepted %26(%26) ==> &amp; Sanitized < ==> &lt; Sanitized > ==> &gt; Sanitized ( ==> ( Accepted ) ==> ) Accepted … %39(9) ==> 9 Accepted %3a(:) ==> : Accepted %3b(;) ==> ; Accepted %3c(%3c) ==> &lt; Sanitized %3d(=) ==> = Accepted %3e(%3e) ==> &gt; Sanitized %3f(?) ==> ? Accepted %40(@) ==> @ Accepted %41(A) ==> A Accepted %42(B) ==> B Accepted %43(C) ==> C Accepted … © I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 17
  • 18. Análisis de eco 8. Eco indirecto • No hay eco pero se puede intuir a partir de la respuesta. © I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 18
  • 19. Análisis de eco 8. Eco indirecto © I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 19
  • 20. Análisis de eco 8. Eco indirecto • No filtran ni sanean el asterisco. © I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 20
  • 21. Análisis de eco 8. Eco indirecto • • No filtra el byte º <b>owaspº</b> • Parece un error interno bien disimulado, pero no lo es. © I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 21
  • 22. Análisis de eco 8. Eco indirecto • En una variable cambia < por &lt; sin embargo en otra lo suprime y no influye en la búsqueda ni a 3º party apps. © I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 22
  • 23. Análisis de eco 8. Eco indirecto . © I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 23
  • 24. Análisis de eco 8. Eco indirecto Input: búsqueda WS: decodifica Saneo1 Saneo2 Outputs eco: titulo,recuerda búsqueda, búsquedas relacionadas Operativas Output: timming Outputs eco indirecto: Resultados de búsqueda • En el eco el input está conectado con el output, en el “indirecto” tenemos un output generado a partir del input © I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 24
  • 25. Análisis de eco 9. Autómatas finitos de los filtros • Una vez identificada la validación, se puede analizar los estados de aceptación de su autómata finito. • Ejemplo: • Regexp: • Alfabeto del atacante E = { „ a-z } • Serán aceptadas: λ (null) o comillas que no estén al inicio λ A /^„.*/ (todo lo que comience por comilla es un ataque) a-z „ „ a-z B © I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 25
  • 26. Análisis de eco 10. Conclusiones y Recomendaciones • Analisis de filtro en vez de probar ataques y probar evasiones. (un analizador automático que haga esto está bien, detectará rápidamente las vulnerabilidades menos escondidas) • Solventar los problemas desde diseño, el poner una validación en algunos casos implica tapar el problema. • Diseñar evasiones personalizadas para el filtro / saneo identificado. • Usar variables de decisión para esquivar validaciones. • Reducir los inputs y outputs. • Reducir la inferencia de los outputs. © I n t e r n e t S e c u r i t y A u d i t o r s • Barcelona • 21. 11 . 2 0 0 8 • P. 26