Incorporando la Seguridad de la Información al Desarrollo de · cara! operativos tienen virus •...
Transcript of Incorporando la Seguridad de la Información al Desarrollo de · cara! operativos tienen virus •...
![Page 1: Incorporando la Seguridad de la Información al Desarrollo de · cara! operativos tienen virus • El código de terceros es ... Memory Management Problems Incorrect Arithmetic Expressions](https://reader031.fdocuments.net/reader031/viewer/2022013018/5d195cb188c993495f8c964e/html5/thumbnails/1.jpg)
Incorporando la Seguridad de la Información al Desarrollo deInformación al Desarrollo de
SoftwareJuan Carlos Herrera Marchetti
VP Research&DevelopmentVP Research&Development
UshiroLabs
U hi S it d C l biUshiroSecurity de Colombia
![Page 2: Incorporando la Seguridad de la Información al Desarrollo de · cara! operativos tienen virus • El código de terceros es ... Memory Management Problems Incorrect Arithmetic Expressions](https://reader031.fdocuments.net/reader031/viewer/2022013018/5d195cb188c993495f8c964e/html5/thumbnails/2.jpg)
• Agenda • Temas no cubiertosAgenda– Estado del Arte
• Casos de Estudio
Temas no cubiertos– Criptografía
– Privacidad• Desmitificación
– Principios, Métodos y Técnicas
– Aspectos Legales• Excepto menciones
d l íTécnicas• Problema de Fondo
• Desarrollo de Software S
– Metodologías• Excepto menciones
Seguro
– Soluciones• A gran escala
• Casos de Estudio
![Page 3: Incorporando la Seguridad de la Información al Desarrollo de · cara! operativos tienen virus • El código de terceros es ... Memory Management Problems Incorrect Arithmetic Expressions](https://reader031.fdocuments.net/reader031/viewer/2022013018/5d195cb188c993495f8c964e/html5/thumbnails/3.jpg)
• GlosarioGlosario– Trustworthiness
• No exploitablevulnerabilitiesexistNo exploitablevulnerabilitiesexist, eitherofmaliciousorunintentionalorigin
– PredictableExecution• Justifiableconfidencethat software, whenexecuted, functions as intended
– Dependeable
– Safety/Security
![Page 4: Incorporando la Seguridad de la Información al Desarrollo de · cara! operativos tienen virus • El código de terceros es ... Memory Management Problems Incorrect Arithmetic Expressions](https://reader031.fdocuments.net/reader031/viewer/2022013018/5d195cb188c993495f8c964e/html5/thumbnails/4.jpg)
Conceptos/Principios/RequisitosConceptos/Principios/Requisitos
• De la INFORMACIONDe la INFORMACION– Confidencialidad
Integridad– Integridad
– Disponibilidad
![Page 5: Incorporando la Seguridad de la Información al Desarrollo de · cara! operativos tienen virus • El código de terceros es ... Memory Management Problems Incorrect Arithmetic Expressions](https://reader031.fdocuments.net/reader031/viewer/2022013018/5d195cb188c993495f8c964e/html5/thumbnails/5.jpg)
• Principios de Seguridad de la InformaciónPrincipios de Seguridad de la Información– Confidencialidad
Integridad– Integridad
– Disponibilidad
A li d l S ft• Aplicados al Software– La información VIVE en el software
• Mas allá de los datos
• Mas allá de los hackers
![Page 6: Incorporando la Seguridad de la Información al Desarrollo de · cara! operativos tienen virus • El código de terceros es ... Memory Management Problems Incorrect Arithmetic Expressions](https://reader031.fdocuments.net/reader031/viewer/2022013018/5d195cb188c993495f8c964e/html5/thumbnails/6.jpg)
![Page 7: Incorporando la Seguridad de la Información al Desarrollo de · cara! operativos tienen virus • El código de terceros es ... Memory Management Problems Incorrect Arithmetic Expressions](https://reader031.fdocuments.net/reader031/viewer/2022013018/5d195cb188c993495f8c964e/html5/thumbnails/7.jpg)
• TiposTipos– Diseño/Arquitectura
Código (Lógica Practicas)– Código (Lógica, Practicas)
• Desconocidos– Procesos de Negocio, Algoritmos, etc.
• Conocidos– OWASP/SANS/CWE
– Los mismos de siempre (Cero innovación!)
– INACEPTABLES
![Page 8: Incorporando la Seguridad de la Información al Desarrollo de · cara! operativos tienen virus • El código de terceros es ... Memory Management Problems Incorrect Arithmetic Expressions](https://reader031.fdocuments.net/reader031/viewer/2022013018/5d195cb188c993495f8c964e/html5/thumbnails/8.jpg)
• De acuerdo al sumario que se abrió en su oportunidad en contra del magistrado, habría incurrido en irregularidad al manipular el Sistema Informático de los Tribunales de Familia (Sitfa) para radicar su causa en el juzgado.
![Page 9: Incorporando la Seguridad de la Información al Desarrollo de · cara! operativos tienen virus • El código de terceros es ... Memory Management Problems Incorrect Arithmetic Expressions](https://reader031.fdocuments.net/reader031/viewer/2022013018/5d195cb188c993495f8c964e/html5/thumbnails/9.jpg)
Michelsonaplicó un complejo sistema que permitió defraudar a la entidadfinanciera, la que consistía en girar cheques propios y al mismo tiempo darlesorden de no pago por extravío. Luego, el imputadodepositaba los documentosp g p g , p pen cajeros automáticos y por un "déficit del sistema informático" del banco,estos dineros eran ingresados a su cuenta y, finalmente, retirados porventanilla.
![Page 10: Incorporando la Seguridad de la Información al Desarrollo de · cara! operativos tienen virus • El código de terceros es ... Memory Management Problems Incorrect Arithmetic Expressions](https://reader031.fdocuments.net/reader031/viewer/2022013018/5d195cb188c993495f8c964e/html5/thumbnails/10.jpg)
- El 15 de Julio del 2009Josh Muszynski, compro los cigarroscompro los cigarros mas caros de la historia!
- La transacción fue repetida 13.000 veces
- Explicación de VISA:Explicación de VISA: “temporaryprogramming error at Visa DebitProcessingServic
”es”
![Page 11: Incorporando la Seguridad de la Información al Desarrollo de · cara! operativos tienen virus • El código de terceros es ... Memory Management Problems Incorrect Arithmetic Expressions](https://reader031.fdocuments.net/reader031/viewer/2022013018/5d195cb188c993495f8c964e/html5/thumbnails/11.jpg)
• Caso Toyota (Safety)Caso Toyota (Safety)
![Page 12: Incorporando la Seguridad de la Información al Desarrollo de · cara! operativos tienen virus • El código de terceros es ... Memory Management Problems Incorrect Arithmetic Expressions](https://reader031.fdocuments.net/reader031/viewer/2022013018/5d195cb188c993495f8c964e/html5/thumbnails/12.jpg)
![Page 13: Incorporando la Seguridad de la Información al Desarrollo de · cara! operativos tienen virus • El código de terceros es ... Memory Management Problems Incorrect Arithmetic Expressions](https://reader031.fdocuments.net/reader031/viewer/2022013018/5d195cb188c993495f8c964e/html5/thumbnails/13.jpg)
![Page 14: Incorporando la Seguridad de la Información al Desarrollo de · cara! operativos tienen virus • El código de terceros es ... Memory Management Problems Incorrect Arithmetic Expressions](https://reader031.fdocuments.net/reader031/viewer/2022013018/5d195cb188c993495f8c964e/html5/thumbnails/14.jpg)
![Page 15: Incorporando la Seguridad de la Información al Desarrollo de · cara! operativos tienen virus • El código de terceros es ... Memory Management Problems Incorrect Arithmetic Expressions](https://reader031.fdocuments.net/reader031/viewer/2022013018/5d195cb188c993495f8c964e/html5/thumbnails/15.jpg)
![Page 16: Incorporando la Seguridad de la Información al Desarrollo de · cara! operativos tienen virus • El código de terceros es ... Memory Management Problems Incorrect Arithmetic Expressions](https://reader031.fdocuments.net/reader031/viewer/2022013018/5d195cb188c993495f8c964e/html5/thumbnails/16.jpg)
• Por que ocurren los defectos?Por que ocurren los defectos?
• HabilidadesC i i t P ti P ió M l dí t– Conocimiento, Practicas, Presión, Mal día, etc
• Lenguajes– Defectuosos, Mal diseñados, incompletos
• Mitos– …
![Page 17: Incorporando la Seguridad de la Información al Desarrollo de · cara! operativos tienen virus • El código de terceros es ... Memory Management Problems Incorrect Arithmetic Expressions](https://reader031.fdocuments.net/reader031/viewer/2022013018/5d195cb188c993495f8c964e/html5/thumbnails/17.jpg)
• Como toda creación • Nosotros no tenemosComo toda creación humana, el software no es mágico, tampoco
Nosotros no tenemos problemas de seguridad
• Tenemos Firewallsdebe ser misterioso.– Pero si es complejo y
t d t
• La Seguridad del Software es un
extremadamente poderoso
• Los computadores
problema de otro
• “Bala de Plata”Los computadores tienen virus– Falso, los sistemas
• La Seguridad es muy cara!
operativos tienen virus • El código de terceros es seguro
![Page 18: Incorporando la Seguridad de la Información al Desarrollo de · cara! operativos tienen virus • El código de terceros es ... Memory Management Problems Incorrect Arithmetic Expressions](https://reader031.fdocuments.net/reader031/viewer/2022013018/5d195cb188c993495f8c964e/html5/thumbnails/18.jpg)
![Page 19: Incorporando la Seguridad de la Información al Desarrollo de · cara! operativos tienen virus • El código de terceros es ... Memory Management Problems Incorrect Arithmetic Expressions](https://reader031.fdocuments.net/reader031/viewer/2022013018/5d195cb188c993495f8c964e/html5/thumbnails/19.jpg)
![Page 20: Incorporando la Seguridad de la Información al Desarrollo de · cara! operativos tienen virus • El código de terceros es ... Memory Management Problems Incorrect Arithmetic Expressions](https://reader031.fdocuments.net/reader031/viewer/2022013018/5d195cb188c993495f8c964e/html5/thumbnails/20.jpg)
I t l P j t
Project 1 Project 2Outsourcing
PartnersOutsourcing
Partners
Internal Projects
Third Party SoftwareThird Party SoftwarePartnersPartners Software VendorsSoftware Vendors
Third Party Software Vendors
Third Party Software Vendors
OpenSource
OpenSource
VendorsVendors
![Page 21: Incorporando la Seguridad de la Información al Desarrollo de · cara! operativos tienen virus • El código de terceros es ... Memory Management Problems Incorrect Arithmetic Expressions](https://reader031.fdocuments.net/reader031/viewer/2022013018/5d195cb188c993495f8c964e/html5/thumbnails/21.jpg)
Individuals working on
Linux“You break it, you bought it”
“Happy to fix if it’s my code”
Android Linux
OEM
Companies
![Page 22: Incorporando la Seguridad de la Información al Desarrollo de · cara! operativos tienen virus • El código de terceros es ... Memory Management Problems Incorrect Arithmetic Expressions](https://reader031.fdocuments.net/reader031/viewer/2022013018/5d195cb188c993495f8c964e/html5/thumbnails/22.jpg)
• ResourceLeaks • Memory‐corruptions• Programhangs • Insecure data handling– Memoryleaks
– Resourceleak in object
– Incomplete delete
– Microsoft COM BSTR memoryleak
• Uninitialized variables
– Out‐of‐boundsaccess
– Stringlengthmiscalculations
– Copyingtodestinationbufferstoosmall
– Overflowedpointerwrite
– Negative array indexwrite
• Infinite loop
• Doublelockormissingunlock
• Negativeloopbound
• Integeroverflow
• Loopbound by untrustedsource
• Write/read array/pointerwith• Uninitialized variables
– Missingreturnstatement
– Uninitializedpointer/scalar/array read/write
– Uninitialized data member in classorstructure
• ConcurrencyIssues
– Allocationsize error
• Memory‐illegalaccess– Incorrectdeleteoperator
– Overflowedpointerread
– Out‐of‐boundsread
• Threaddeadlock
• sleep() while holding a lock
• Nullpointerdifferences
untrustedvalue
• Formatstringwithuntrustedsource
S i b i i l i• ConcurrencyIssues– Deadlocks
– Raceconditions
– Blockingcallmisuse
• Integerhandlingissues
Out of boundsread
– Returningpointerto local variable
– Negative array indexread
– Use/readpointerafter free
• Control flowissues
• Dereferenceafter a null check
• Dereference a nullreturnvalue
• Dereferencebefore a null check
• Security best practicesviolations
• Possible buffer overflow
• Copyinto a fixedsize buffer
lli i k f i• Integerhandlingissues– Improper use ofnegativevalue
– Unintendedsignextension
• Improper Use ofAPIs
– Logicallydeadcode
– Missingbreak in switch
– Structurallydeadcode
• Error handlingissuesU h k d t l
• Codemaintainabilityissues
• Multiplereturnstatements
• Unusedpointervalue
• Callingriskyfunction
• Use ofinsecuretemporary file
• Time of check differentthan time of use– Insecurechroot
– Usinginvaliditerator
– printf() argumentmismatch
– Uncheckedreturnvalue
– Uncaughtexception
– Invalid use ofnegative variables• Performance inefficiencies
• Largestack use
of use
• Userpointerdereference
![Page 23: Incorporando la Seguridad de la Información al Desarrollo de · cara! operativos tienen virus • El código de terceros es ... Memory Management Problems Incorrect Arithmetic Expressions](https://reader031.fdocuments.net/reader031/viewer/2022013018/5d195cb188c993495f8c964e/html5/thumbnails/23.jpg)
• Base Técnica/Científica • ¿Todas las anteriores?/– Software
Certification/Assurance
• Soluciones
¿– ¿Por que no?
• Soluciones– Revisión de Código
• No escala
– HackingEtico/PenTest• Caja Negra
– Métodos Formales• Caro y Lento
– Historia!
– SMT
– Análisis Estático• Soundness &Completeness
![Page 24: Incorporando la Seguridad de la Información al Desarrollo de · cara! operativos tienen virus • El código de terceros es ... Memory Management Problems Incorrect Arithmetic Expressions](https://reader031.fdocuments.net/reader031/viewer/2022013018/5d195cb188c993495f8c964e/html5/thumbnails/24.jpg)
• Análisis EstáticoAnálisis Estático– Lo Bueno
Lo Malo– Lo Malo
– Lo Feo
![Page 25: Incorporando la Seguridad de la Información al Desarrollo de · cara! operativos tienen virus • El código de terceros es ... Memory Management Problems Incorrect Arithmetic Expressions](https://reader031.fdocuments.net/reader031/viewer/2022013018/5d195cb188c993495f8c964e/html5/thumbnails/25.jpg)
• Análisis Estático en la PracticaAnálisis Estático en la Practica– Experiencia
• 125 Proyectos Open Source125 Proyectos Open Source
• 27 Clientes (NDA)
• 57 millones de líneas de códigog
• Casos Atendidos– Severos Problemas de PerformanceSeveros Problemas de Performance
– Victimas de “Hackers”
Caídas de Sistemas– Caídas de Sistemas
![Page 26: Incorporando la Seguridad de la Información al Desarrollo de · cara! operativos tienen virus • El código de terceros es ... Memory Management Problems Incorrect Arithmetic Expressions](https://reader031.fdocuments.net/reader031/viewer/2022013018/5d195cb188c993495f8c964e/html5/thumbnails/26.jpg)
• Caso: Cliente Hackeado (Por ellos mismos)Caso: Cliente Hackeado (Por ellos mismos)
• Consultora Especializada en Seguridad reporto las siguientes Vulnerabilidades:las siguientes Vulnerabilidades:– Acceso No Autorizado
Ej ió A bi i d Códi– Ejecución Arbitraria de Código
– Denegación de Servicio
![Page 27: Incorporando la Seguridad de la Información al Desarrollo de · cara! operativos tienen virus • El código de terceros es ... Memory Management Problems Incorrect Arithmetic Expressions](https://reader031.fdocuments.net/reader031/viewer/2022013018/5d195cb188c993495f8c964e/html5/thumbnails/27.jpg)
Acceso No Autorizado Ejecución Arbitraria de Código Denegación de Serviciocceso o u o ado j g e egac ó de Se c o
MemoryReadOut ofBounds
MemoryWriteOut ofBounds
ResourceLeaks ProgramCrash ProgramHang
OverrunsofArraysandIterators
User inControl ofFormatString
PointerProblems
MemoryManagementProblems
IncorrectArithmeticExpressions
Use ofUnitializedVariablesg p
![Page 28: Incorporando la Seguridad de la Información al Desarrollo de · cara! operativos tienen virus • El código de terceros es ... Memory Management Problems Incorrect Arithmetic Expressions](https://reader031.fdocuments.net/reader031/viewer/2022013018/5d195cb188c993495f8c964e/html5/thumbnails/28.jpg)
• Áreas de AplicaciónÁreas de Aplicación– Detección Temprana de Defectos
Detección de Fraudes y Auditoria de Código– Detección de Fraudes y Auditoria de Código
– Descubrimiento de Reglas de Negocio
T f ió d L j /P– Transformación de Lenguajes/Procesos
– Medir Impacto en cambios
C l d P lí i /R l i L l– Control de Políticas/Regulaciones Legales
– Análisis de Arquitectura
• Ingeniería Reversa– Violaciones de Derechos de Autor
![Page 29: Incorporando la Seguridad de la Información al Desarrollo de · cara! operativos tienen virus • El código de terceros es ... Memory Management Problems Incorrect Arithmetic Expressions](https://reader031.fdocuments.net/reader031/viewer/2022013018/5d195cb188c993495f8c964e/html5/thumbnails/29.jpg)
• Demostración: Como funciona el AnálisisDemostración: Como funciona el Análisis Estático– DNA– DNA
– Path Analysis
SAT Solvers– SAT Solvers
– Prune False Paths
R l d A áli i P O S• Resultados Análisis Proyectos Open Source
![Page 30: Incorporando la Seguridad de la Información al Desarrollo de · cara! operativos tienen virus • El código de terceros es ... Memory Management Problems Incorrect Arithmetic Expressions](https://reader031.fdocuments.net/reader031/viewer/2022013018/5d195cb188c993495f8c964e/html5/thumbnails/30.jpg)
• ¿Solución?¿Solución?– Secure& Lean Software Development
• No es fabricar software como Toyota lo haceNo es fabricar software como Toyota lo hace– Ya sabemos que no es perfecto
• Fabricar Software en base a principios– No seguir reglas y estándares a ciegas
» Por que mi Jefe lo dice o algún “estándar” lo dice
• Preocupación por lo importante• Preocupación por lo importante– Personas
– Agregar Valor
![Page 31: Incorporando la Seguridad de la Información al Desarrollo de · cara! operativos tienen virus • El código de terceros es ... Memory Management Problems Incorrect Arithmetic Expressions](https://reader031.fdocuments.net/reader031/viewer/2022013018/5d195cb188c993495f8c964e/html5/thumbnails/31.jpg)
Muchas GraciasMuchas Gracias
Juan Carlos Herrera Marchetti
jcherrera@ushiro‐sec.comjcherrera@ushiro sec.com