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

Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
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
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 

Último (10)

Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
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
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 

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.