SlideShare una empresa de Scribd logo
1 de 22
Taint  Mode en Python ,[object Object],Juan José Conti [email_address] http://www.juanjoconti.com.ar
Presentación ,[object Object],[object Object],[object Object],[object Object],[object Object]
“ El objetivo de Taint Mode es alertar a los desarrolladores de potenciales problemas de seguridad en su software.”
El modelo de las manchas ,[object Object],[object Object],[object Object]
“ Si un valor manchado alcanza un sumidero sensible, entonces existe una vulnerabilidad en el programa.”
“ 42  or 1=1”
“ <script> alert('hola') </script>”
“ Si un valor con una mancha X alcanza un sumidero sensible a X, entonces existe una vulnerabilidad en el programa.”
Implementación ,[object Object],[object Object],[object Object]
dyntaint.py ,[object Object],[object Object],[object Object],[object Object],[object Object]
dyntaint.py KEYS  = [XSS, SQLI, OSI, II] =  range (4) TAINTED =  dict ([(x,  set ())  for  x  in  KEYS]) class  STR( str ): ... ,[object Object],[object Object]
Taint Flow a # manchada b # limpia c  =  a  +  b  # ahora c está manchada a * 8 a[3:10] “ esta %s limpio?” % a a.upper() a.split(',')
Valores no confiables untrusted @untrusted def  desde_el_exterior(): ... import  web web.input =  untrusted( web.input )
Valores no confiables untrusted_args class MyProtocol(LineOnlyReceiver): @untrusted_args([1]) def lineReceived(self, line): self.doSomething(line)
cleaner >>> texto_plano(&quot;Usar  <b> negrita </b> &quot;) 'Usar negrita' >>> texto_plano(&quot;Sin manchas&quot;) 'Sin manchas' @cleaner(XSS) def texto_plano(input): ... texto_plano =  cleaner(XSS) (texto_plano)
ssink eval =  ssink(II)( eval ) @ssink(II) def suma(a,b) return eval('%s + %s' % (a,b))
import web db = web.database(dbn=&quot;sqlite&quot;, db=DBNAME) db.delete =  ssink(SQLI)( db.delete ) db.select =  ssink(SQLI)( db.select ) db.insert =  ssink(SQLI)( db.insert ) ssink
Salida ============================================ Advertencia en la linea  N  del archivo  X Valor manchado:  M -------------------------------------------- if os.path.exists (f): wiki = open (f).read() doc = self.form(name, wiki) ==>   return skeleton (M) ============================================
Algunas cosas más ,[object Object],[object Object],[object Object],[object Object],[object Object]
Invitación ,[object Object],[object Object],[object Object],[object Object],[object Object]
¿Preguntas?
¡Muchas gracias! ,[object Object],[object Object],[object Object],[object Object]

Más contenido relacionado

La actualidad más candente (17)

Programa 8
Programa 8Programa 8
Programa 8
 
4 introduccion a-laprogramacionconcsharp
4 introduccion a-laprogramacionconcsharp4 introduccion a-laprogramacionconcsharp
4 introduccion a-laprogramacionconcsharp
 
Resumen claudia u5
Resumen claudia u5Resumen claudia u5
Resumen claudia u5
 
Ejemplos de estructura de control semestre 2
Ejemplos de estructura de control semestre 2Ejemplos de estructura de control semestre 2
Ejemplos de estructura de control semestre 2
 
Estructura de un programa
Estructura de un programaEstructura de un programa
Estructura de un programa
 
Instrucciones basicas-para-c++
Instrucciones basicas-para-c++Instrucciones basicas-para-c++
Instrucciones basicas-para-c++
 
Depuradores
DepuradoresDepuradores
Depuradores
 
Programa en java con el Metodo de la burbuja
Programa en java con el Metodo de la burbujaPrograma en java con el Metodo de la burbuja
Programa en java con el Metodo de la burbuja
 
Métodos en programacion
Métodos en  programacionMétodos en  programacion
Métodos en programacion
 
Informe#5
Informe#5Informe#5
Informe#5
 
06
0606
06
 
Practica 6
Practica 6Practica 6
Practica 6
 
Tarea sesion 14
Tarea sesion 14Tarea sesion 14
Tarea sesion 14
 
P2
P2P2
P2
 
Java 2
Java 2Java 2
Java 2
 
Programa 16
Programa 16Programa 16
Programa 16
 
Editable
EditableEditable
Editable
 

Destacado

Af3 649 (li1 via) - Servicio Tecnico Fagor
Af3 649 (li1 via) - Servicio Tecnico FagorAf3 649 (li1 via) - Servicio Tecnico Fagor
Af3 649 (li1 via) - Servicio Tecnico Fagorserviciotecnicofagor
 
comparateur loi-madelin07
comparateur loi-madelin07comparateur loi-madelin07
comparateur loi-madelin074copybridge
 
Copia de handbook español web
Copia de handbook español webCopia de handbook español web
Copia de handbook español webFitira
 
La mutuelle sante Loi Madelin
La mutuelle sante Loi MadelinLa mutuelle sante Loi Madelin
La mutuelle sante Loi Madelinveincold6
 
windows server 2012 e windows 8 = melhores juntos
windows server 2012 e windows 8 = melhores juntoswindows server 2012 e windows 8 = melhores juntos
windows server 2012 e windows 8 = melhores juntosFabio Hara
 
Software Assurance Services im Überblick
Software Assurance Services im ÜberblickSoftware Assurance Services im Überblick
Software Assurance Services im ÜberblickMicrosoft Österreich
 
DREES : la solidarité dans les complémentaires santé
DREES : la solidarité dans les complémentaires santéDREES : la solidarité dans les complémentaires santé
DREES : la solidarité dans les complémentaires santéSociété Tripalio
 
Ideas 4 Change - entendendo o mercado
Ideas 4 Change - entendendo o mercadoIdeas 4 Change - entendendo o mercado
Ideas 4 Change - entendendo o mercadoTroposlab
 
Complémentaire santé: note des économistes atterrés
Complémentaire santé: note des économistes atterrésComplémentaire santé: note des économistes atterrés
Complémentaire santé: note des économistes atterrésSociété Tripalio
 
Selling sa to_smb_field_100 (2)
Selling sa to_smb_field_100 (2)Selling sa to_smb_field_100 (2)
Selling sa to_smb_field_100 (2)Fitira
 
IDCC 733 Avenant n°86 a l'accord du 12 octobre 2015
IDCC 733 Avenant n°86  a l'accord du 12 octobre 2015IDCC 733 Avenant n°86  a l'accord du 12 octobre 2015
IDCC 733 Avenant n°86 a l'accord du 12 octobre 2015Société Tripalio
 
TDC 2015 - 1 QA num mar de Devs - Resultados Digitais - Quality Assurance
TDC 2015 - 1 QA num mar de Devs -  Resultados Digitais - Quality AssuranceTDC 2015 - 1 QA num mar de Devs -  Resultados Digitais - Quality Assurance
TDC 2015 - 1 QA num mar de Devs - Resultados Digitais - Quality AssuranceFausto Siqueira
 
ALFA TRALL Quality Assurance
ALFA TRALL Quality Assurance ALFA TRALL Quality Assurance
ALFA TRALL Quality Assurance ALFA-TRALL
 
Fiche de paye 2016 CHF H'MONTPELLIER'C
Fiche de paye 2016 CHF H'MONTPELLIER'CFiche de paye 2016 CHF H'MONTPELLIER'C
Fiche de paye 2016 CHF H'MONTPELLIER'CFabrice CLAMAGIRAND
 

Destacado (20)

Af3 649 (li1 via) - Servicio Tecnico Fagor
Af3 649 (li1 via) - Servicio Tecnico FagorAf3 649 (li1 via) - Servicio Tecnico Fagor
Af3 649 (li1 via) - Servicio Tecnico Fagor
 
comparateur loi-madelin07
comparateur loi-madelin07comparateur loi-madelin07
comparateur loi-madelin07
 
Youth Mode - Marketing Digital
Youth Mode - Marketing DigitalYouth Mode - Marketing Digital
Youth Mode - Marketing Digital
 
Copia de handbook español web
Copia de handbook español webCopia de handbook español web
Copia de handbook español web
 
La mutuelle sante Loi Madelin
La mutuelle sante Loi MadelinLa mutuelle sante Loi Madelin
La mutuelle sante Loi Madelin
 
windows server 2012 e windows 8 = melhores juntos
windows server 2012 e windows 8 = melhores juntoswindows server 2012 e windows 8 = melhores juntos
windows server 2012 e windows 8 = melhores juntos
 
Software Assurance Services im Überblick
Software Assurance Services im ÜberblickSoftware Assurance Services im Überblick
Software Assurance Services im Überblick
 
DREES : la solidarité dans les complémentaires santé
DREES : la solidarité dans les complémentaires santéDREES : la solidarité dans les complémentaires santé
DREES : la solidarité dans les complémentaires santé
 
Bien comprendre et bien choisir votre complémentaire santé
Bien comprendre et bien choisir votre complémentaire santéBien comprendre et bien choisir votre complémentaire santé
Bien comprendre et bien choisir votre complémentaire santé
 
Ideas 4 Change - entendendo o mercado
Ideas 4 Change - entendendo o mercadoIdeas 4 Change - entendendo o mercado
Ideas 4 Change - entendendo o mercado
 
Complémentaire santé: note des économistes atterrés
Complémentaire santé: note des économistes atterrésComplémentaire santé: note des économistes atterrés
Complémentaire santé: note des économistes atterrés
 
Selling sa to_smb_field_100 (2)
Selling sa to_smb_field_100 (2)Selling sa to_smb_field_100 (2)
Selling sa to_smb_field_100 (2)
 
Paty-Aguilera-book2015
Paty-Aguilera-book2015Paty-Aguilera-book2015
Paty-Aguilera-book2015
 
Youth mode
Youth modeYouth mode
Youth mode
 
Presentacion para evento Microsft - DHS
Presentacion para evento Microsft - DHSPresentacion para evento Microsft - DHS
Presentacion para evento Microsft - DHS
 
IDCC 733 Avenant n°86 a l'accord du 12 octobre 2015
IDCC 733 Avenant n°86  a l'accord du 12 octobre 2015IDCC 733 Avenant n°86  a l'accord du 12 octobre 2015
IDCC 733 Avenant n°86 a l'accord du 12 octobre 2015
 
TDC 2015 - 1 QA num mar de Devs - Resultados Digitais - Quality Assurance
TDC 2015 - 1 QA num mar de Devs -  Resultados Digitais - Quality AssuranceTDC 2015 - 1 QA num mar de Devs -  Resultados Digitais - Quality Assurance
TDC 2015 - 1 QA num mar de Devs - Resultados Digitais - Quality Assurance
 
Políticas e estratégias internacionais em segurança cibernética
Políticas e estratégias internacionais em segurança cibernéticaPolíticas e estratégias internacionais em segurança cibernética
Políticas e estratégias internacionais em segurança cibernética
 
ALFA TRALL Quality Assurance
ALFA TRALL Quality Assurance ALFA TRALL Quality Assurance
ALFA TRALL Quality Assurance
 
Fiche de paye 2016 CHF H'MONTPELLIER'C
Fiche de paye 2016 CHF H'MONTPELLIER'CFiche de paye 2016 CHF H'MONTPELLIER'C
Fiche de paye 2016 CHF H'MONTPELLIER'C
 

Similar a Taint Mode en Python (20)

A1 u1-16230227
A1 u1-16230227A1 u1-16230227
A1 u1-16230227
 
Instituto tecnológico particular
Instituto tecnológico particularInstituto tecnológico particular
Instituto tecnológico particular
 
Encuentro Linux 2011
Encuentro Linux 2011Encuentro Linux 2011
Encuentro Linux 2011
 
Introduccion Lenguaje C Blanca
Introduccion Lenguaje  C BlancaIntroduccion Lenguaje  C Blanca
Introduccion Lenguaje C Blanca
 
JAVA.PPT
JAVA.PPTJAVA.PPT
JAVA.PPT
 
JAVA (1).PPT
JAVA (1).PPTJAVA (1).PPT
JAVA (1).PPT
 
JAVA (1).PPT
JAVA (1).PPTJAVA (1).PPT
JAVA (1).PPT
 
TUTORIAL JAVA
TUTORIAL JAVATUTORIAL JAVA
TUTORIAL JAVA
 
Lo básico para programar
Lo básico para programarLo básico para programar
Lo básico para programar
 
Introduccion a c++
Introduccion a c++Introduccion a c++
Introduccion a c++
 
Unmsm03 2008
Unmsm03 2008Unmsm03 2008
Unmsm03 2008
 
05 sentencias basicas
05 sentencias basicas05 sentencias basicas
05 sentencias basicas
 
Lo básico para programar
Lo básico para programarLo básico para programar
Lo básico para programar
 
El lenguaje c
El lenguaje cEl lenguaje c
El lenguaje c
 
Introduccion a C++.pdf
Introduccion a C++.pdfIntroduccion a C++.pdf
Introduccion a C++.pdf
 
Lenguajecviviana
LenguajecvivianaLenguajecviviana
Lenguajecviviana
 
Seguridad En Programación
Seguridad En ProgramaciónSeguridad En Programación
Seguridad En Programación
 
Securizando por construcción mediante MDE
Securizando por construcción mediante MDESecurizando por construcción mediante MDE
Securizando por construcción mediante MDE
 
Algoritmo En Programa
Algoritmo En ProgramaAlgoritmo En Programa
Algoritmo En Programa
 
C sharp intro0
C sharp intro0C sharp intro0
C sharp intro0
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
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 XXIhmpuellon
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
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.pptxAlan779941
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
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 estossgonzalezp1
 
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 ASPECTOSpptxJorgeParada26
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
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.FlorenciaCattelani
 
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...JohnRamos830530
 
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 eyvanamcerpam
 

Último (12)

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
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
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
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
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
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
 
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
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
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.
 
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
 

Taint Mode en Python

  • 1.
  • 2.
  • 3. “ El objetivo de Taint Mode es alertar a los desarrolladores de potenciales problemas de seguridad en su software.”
  • 4.
  • 5. “ Si un valor manchado alcanza un sumidero sensible, entonces existe una vulnerabilidad en el programa.”
  • 6. “ 42 or 1=1”
  • 8. “ Si un valor con una mancha X alcanza un sumidero sensible a X, entonces existe una vulnerabilidad en el programa.”
  • 9.
  • 10.
  • 11.
  • 12. Taint Flow a # manchada b # limpia c = a + b # ahora c está manchada a * 8 a[3:10] “ esta %s limpio?” % a a.upper() a.split(',')
  • 13. Valores no confiables untrusted @untrusted def desde_el_exterior(): ... import web web.input = untrusted( web.input )
  • 14. Valores no confiables untrusted_args class MyProtocol(LineOnlyReceiver): @untrusted_args([1]) def lineReceived(self, line): self.doSomething(line)
  • 15. cleaner >>> texto_plano(&quot;Usar <b> negrita </b> &quot;) 'Usar negrita' >>> texto_plano(&quot;Sin manchas&quot;) 'Sin manchas' @cleaner(XSS) def texto_plano(input): ... texto_plano = cleaner(XSS) (texto_plano)
  • 16. ssink eval = ssink(II)( eval ) @ssink(II) def suma(a,b) return eval('%s + %s' % (a,b))
  • 17. import web db = web.database(dbn=&quot;sqlite&quot;, db=DBNAME) db.delete = ssink(SQLI)( db.delete ) db.select = ssink(SQLI)( db.select ) db.insert = ssink(SQLI)( db.insert ) ssink
  • 18. Salida ============================================ Advertencia en la linea N del archivo X Valor manchado: M -------------------------------------------- if os.path.exists (f): wiki = open (f).read() doc = self.form(name, wiki) ==> return skeleton (M) ============================================
  • 19.
  • 20.
  • 22.