Incorporando la Seguridad de la Información al Desarrollo de · cara! operativos tienen virus •...

Preview:

Citation preview

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

• 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

• GlosarioGlosario– Trustworthiness

• No exploitablevulnerabilitiesexistNo exploitablevulnerabilitiesexist, eitherofmaliciousorunintentionalorigin

– PredictableExecution• Justifiableconfidencethat software, whenexecuted, functions as intended

– Dependeable

– Safety/Security

Conceptos/Principios/RequisitosConceptos/Principios/Requisitos

• De la INFORMACIONDe la INFORMACION– Confidencialidad

Integridad– Integridad

– Disponibilidad

• 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

• 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

• 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.

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.

- 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”

• Caso Toyota (Safety)Caso Toyota (Safety)

• 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– …

• 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

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

Individuals working on 

Linux“You break it, you bought it”

“Happy to fix if it’s my code”

Android Linux

OEM

Companies

• 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

• 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

• Análisis EstáticoAnálisis Estático– Lo Bueno

Lo Malo– Lo Malo

– Lo Feo

• 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

• 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

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

• Á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

• 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

• ¿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 

Muchas GraciasMuchas Gracias

Juan Carlos Herrera Marchetti

jcherrera@ushiro‐sec.comjcherrera@ushiro sec.com

Recommended