SlideShare una empresa de Scribd logo
1 de 41
Descargar para leer sin conexión
●   Enero 2011: Sony demanda a modders por hacer
    jailbreaking e ingeniería reversa de la PS3.
●   Abril 2011: PSN recibe ataques DDOS y SQL
    Injection los cuales roban información de tarjetas
    de crédito de sus usuarios. Sony cierra PSN por 24
    días.
●   Mayo 2011: Aparece un sitio de phishing en un
    servidor Sony
●   Junio 2011: Se filtran bases de datos y cupones
    de Sony Rusia, Sony Portugal, Sony Francia y Sony
    Europa.
Costo de los ataques para Sony:


USD 24x10⁹
      Costo de prevención:


< USD 10000
                 Fuente: Veracode, "Sony PSN Breach Infographic"
[cci]
                            Ciclo de
                            Charlas
                            Informáticas




Seguridad de Software: Una Introducción
Cristián Rojas
Consultor en Seguridad de Software – Investigador Asistente CLCERT Universidad de Chile
Primera parte:
¿Es importante la seguridad?




                  Seguridad de Software: Una Introducción
● 6 mitos sobre seguridad
● ¿Por qué los buenos desarrolladores

  escribimos mal código? 3 factores
  cruciales
● La trinidad de los problemas


● ¿No? Importancia de la seguridad




                      Seguridad de Software: Una Introducción
Mito 1: Seguridad 100%




            Seguridad de Software: Una Introducción
Mito 2: Seguridad "Next"
                         No, si mi framework trae
                         seguridad integrada. No
                       tengo de qué preocuparme.




             Seguridad de Software: Una Introducción
Mito 3: "Nunca nos han atacado"
●   Igual que los avisos de inversiones:
    "Rentabilidad pasada no asegura rentabilidad
    futura"
●   ¿Y para qué construir un paso de cebra frente al
    colegio si nunca han atropellado a nadie ahí? (¿O
    es muy tonto lo que estoy diciendo?)
●   La verdad es que no nos han atacado... aún.




                              Seguridad de Software: Una Introducción
Mito 3: "Nunca nos han atacado"
●   "Pero cómo podría alguien atacarnos si somos una
    empresa chica/PYME/startup"
    –   Generalmente no tienen medidas de seguridad
        implementadas
    –   Faltan especialistas que desarrollen políticas de
        seguridad
    –   83% de los ataques son oportunistas, más que
        orientados
        Biztech: "Hackers Have Their Eye On Small Business"




                                                Seguridad de Software: Una Introducción
Mito 4: "Tenemos un firewall"




                Seguridad de Software: Una Introducción
Mito 5: Los ataques sólo vienen de afuera
●   La incidencia de ataques
    desde dentro de la
    organización bordea el
    20%
●   Y pueden no
    necesariamente ser
    ataques
●   Los usuarios son el peor
    enemigo de una aplicación




                                Seguridad de Software: Una Introducción
Mito 5: Los ataques sólo vienen de afuera
●   Los usuarios son más
    peligrosos que los
    mismos crackers:
    –   Curiosos
    –   Torpes
    –   Crédulos
    –   Malévolos
    –   Petulantes



                           Seguridad de Software: Una Introducción
Mito 6: Sólo para "juáquers"

           Me han contado que los mejores
         crackers del mundo hacen esta pega
                   en 60 minutos...
            Lamentablemente yo necesito a
         alguien que la haga en 60 segundos.




"Swordfish", Warner Bros, 2001.                Seguridad de Software: Una Introducción
¿Por qué los buenos desarrolladores
      escribimos mal código?




                   Seguridad de Software: Una Introducción
Factores técnicos
●   “El todo es más que la suma de sus
    partes” (NOT!)
●   Hay fallas de seguridad que surgen
    espontáneamente ¿Por qué?




                        Seguridad de Software: Una Introducción
Factores psicológicos
●   Programar es una actividad difícil y frustrante
●   Nosotros descansamos en la abstracción... los
    chicos malos se fijan en los detalles
●   Nunca debemos confiar ciegamente en el código
    de otro (ahora... anda a que alguien llegue a
    desconfiar del de uno)




                               Seguridad de Software: Una Introducción
Desarrolladores escriben código
while(true) {
   Especialista en seguridad dice "UR DOIN IT WRONG!"
   Desarrolladores hacen cambios
}




                            Seguridad de Software: Una Introducción
Factores del mundo real
●   La fuente de nuestro código fuente
●   El desarrollo de software es un proceso
    democrático
●   La presión de producir, producir, producir
    –   ¡¡¡Margen, margen, margen!!! Y calidad, ¿cuándo?




                                  Seguridad de Software: Una Introducción
Factores del mundo real
●   “¿Cuán seguro?” “Lo suficiente”
    –   “¿Cuándo dejarán de vendernos esta porquería?”
        “Cuando Ustedes dejen de comprarla”
    –   Si se emplea tiempo en chequear posibles fallas de
        seguridad, habrá menos ingenieros dedicados a añadir
        nuevas características
    –   Muchas compañías restan importancia a incidentes
●   Se nos enseña a desarrollar, pero no en forma
    segura


                                 Seguridad de Software: Una Introducción
Interconectividad
  Extensibilidad
   Complejidad
(La Trinidad de los problemas)




        Seguridad de Software: Una Introducción
¿No? importancia de la seguridad
          ●   ROI (margen)
          ●   Ejercicio: ¿Cotizarías
              voluntariamente en una Isapre?

          ●   ¿Es bacán la seguridad?




                     Seguridad de Software: Una Introducción
Segunda parte:
¿Cómo asegurar nuestro
     software?



              Seguridad de Software: Una Introducción
Educación
●   ¿Sabemos qué
    vulnerabilidades hay y
    cómo mitigarlas?
    –   Tutoriales en línea
        (OWASP Top 10,
        CWE/Sans Top 25...)
    –   Libros




                              Seguridad de Software: Una Introducción
Educación
●   Aplicaciones débiles a
    propósito
    –   NOWASP (Mutillidae)
    –   Google Gruyére
    –   OWASP WebGoat




                              Seguridad de Software: Una Introducción
Análisis de seguridad
●   Minimizar la superficie
    de ataque:                     Acceso
                                   remoto
    1) ¿Esa característica es                                                   qu
                                                                                  e
                                                                             ata
      realmente importante?        Acceso
                                restringido                          ie
                                                                        de
                                                                erfic
                                                             up
    2) ¿Quien necesita esa                           ay
                                                       o   rs
                                   Acceso          M
      funcionalidad y desde          local

      dónde?
                                               Acceso           Acceso para            Acceso
    3) Reducir privilegios                    sólo para
                                               admin
                                                                 usuarios             anónimo




                                   Seguridad de Software: Una Introducción
Análisis de seguridad
●   Threat Modeling: Herramienta que busca obtener
    una visión general del sistema en términos de
    seguridad:
    1)   Determinar dependencias y supuestos
    2)   Modelar el sistema
    3)   Determinar las amenazas
    4)   Calcular riesgos
    5)   Mitigar



                                   Seguridad de Software: Una Introducción
Utilizar herramientas automatizadas
●   Análisis Interno
    –   Analizadores estáticos
●   Análisis externo
    (pentesting)
    –   Fuzzers




                                 Seguridad de Software: Una Introducción
Utilizar herramientas automatizadas
●   Limitaciones
    –   Las herramientas automatizadas tienen las mismas
        limitaciones que los antivirus
    –   Por lo mismo, utilizarlas como parte de un programa de
        desarrollo de software seguro
●   Precaución con el análisis externo
    –   Utilizar sandboxing
    –   NUNCA hacer las pruebas sobre un sitio en producción.



                                  Seguridad de Software: Una Introducción
Utilizar herramientas automatizadas
●   Analizadores estáticos:
    –   Findbugs, PMD, CodePro Analytix (Java)
    –   RATS, Flawfinder (C/C++/PHP/Python)
    –   FXCop (.NET)
    –   Brakeman (Rails)




                                 Seguridad de Software: Una Introducción
Utilizar herramientas automatizadas
●   Fuzzers:
    –   Websecurify
    –   W3AF
    –   Skipfish
●   Sandboxes
    –   Chroot
    –   Virtualizadores: Virtualbox (vagrant), VMWare...




                                    Seguridad de Software: Una Introducción
Aplicar buenas prácticas
●   Diseño simple
●   Prepared Statements y permisos para bases de
    datos
●   Validar entradas (contra XSS, inyecciones varias,
    usar lista blanca)
●   Poner atención a las configuraciones por defecto.
    Suelen ser inseguras.



                              Seguridad de Software: Una Introducción
Aplicar buenas prácticas
●   Completa mediación: Revisar privilegios siempre
    antes de hacer una operación crítica
●   Atentos a los privilegios (privilegio mínimo,
    separación de privilegios)
●   Compartimentalizar la aplicación
●   Aceptabilidad psicológica: No hacer el sistema tan
    seguro que termine siendo inusable



                                Seguridad de Software: Una Introducción
Seguridad de Software: Una Introducción
Soportar todo el software
●   Mucho de nuestro software depende de otro software:
    –   Bibliotecas externas
    –   Frameworks
    –   Etc.
●   Atentos a avisos de seguridad de software externo
●   Si las vulnerabilidades para ese software no se corrigen:
    –   Corregirlo nosotros mismos
    –   Buscar alternativas




                                     Seguridad de Software: Una Introducción
Desarrollar un "Security Response"
●   El software nunca quedará perfecto, por lo tanto es
    bueno armar un plan de respuesta a incidentes
●   Fomentar la divulgación: ¿Abierta o responsable?
●   Adelantarse: Encontrar las vulnerabilidades antes
    que un investigador/cracker/ocioso lo haga
●   Al lanzar un parche, no preocuparnos sólo de
    corregir, sino también de evitar regresiones



                              Seguridad de Software: Una Introducción
Demo
(Un intento por hacer bacán la seguridad)
    Fuente: https://github.com/injcristianrojas/swsec-intro




                                  Seguridad de Software: Una Introducción
Links interesantes
●   Veracode, "Sony PSN Breach Infographic"
    http://www.veracode.com/resources/sony-psn-infographic
●   "Hackers Have Their Eye On Small Business"
    http://www.biztechmagazine.com/article/2012/05/hackers-have-their-eye-small-business-infographic

●   Veracode: "Stay Cool, Nobody is Calling Your Baby
    Ugly"
    http://www.veracode.com/blog/2011/10/stay-cool-nobody-is-calling-your-baby-ugly/

●   Aplicación de demostración JEE/Maven
    https://github.com/injcristianrojas/swsec-intro


                                                       Seguridad de Software: Una Introducción
Links revelantes
●   OWASP Top 10
    https://www.owasp.org/index.php/Top_10
●   CWE/SANS Top 25 Most Dangerous Software Errors
    http://www.sans.org/top25-software-errors/
●   OWASP: "Threat Risk Modeling"
    https://www.owasp.org/index.php/Threat_Risk_Modeling
●   42+ best practices for secure mobile development in iOS and
    Android
    https://viaforensics.com/resources/reports/best-practices-ios-android-secure-mobile-development/

●   Microsoft: "SDL Process: Design"
    http://www.microsoft.com/security/sdl/discover/design.aspx




                                                        Seguridad de Software: Una Introducción
Blbliografía
●   McGraw: "Software Security: Building Security In"
●   Viega, McGraw: "Building Secure Software"
●   Howard, LeBlanc, Viega: "24 Sins of Software
    Security"
●   Howard, Lipner: "The Security Development
    Lifecycle"
●   Graff, Van Wyk: "Secure Coding: Principles &
    Practices"


                               Seguridad de Software: Una Introducción
Muchas gracias por su
     atención.
     ¿Preguntas?
    ¿Comentarios?
       Contacto:
injcristianrojas@gmail.com




                             Seguridad de Software: Una Introducción

Más contenido relacionado

La actualidad más candente

Hacktoberfest 2020 - Open source for beginners
Hacktoberfest 2020 - Open source for beginnersHacktoberfest 2020 - Open source for beginners
Hacktoberfest 2020 - Open source for beginnersDeepikaRana30
 
Effective testing with pytest
Effective testing with pytestEffective testing with pytest
Effective testing with pytestHector Canto
 
Intro to git and git hub
Intro to git and git hubIntro to git and git hub
Intro to git and git hubVenkat Malladi
 
Git - Basic Crash Course
Git - Basic Crash CourseGit - Basic Crash Course
Git - Basic Crash CourseNilay Binjola
 
Don't Be Mocked by your Mocks - Best Practices using Mocks
Don't Be Mocked by your Mocks - Best Practices using MocksDon't Be Mocked by your Mocks - Best Practices using Mocks
Don't Be Mocked by your Mocks - Best Practices using MocksVictor Rentea
 
Codifying the Build and Release Process with a Jenkins Pipeline Shared Library
Codifying the Build and Release Process with a Jenkins Pipeline Shared LibraryCodifying the Build and Release Process with a Jenkins Pipeline Shared Library
Codifying the Build and Release Process with a Jenkins Pipeline Shared LibraryAlvin Huang
 
Hackear Contraseñas De Facebook
Hackear Contraseñas De FacebookHackear Contraseñas De Facebook
Hackear Contraseñas De FacebookJacon Wilson
 
Web API authentication and authorization
Web API authentication and authorization Web API authentication and authorization
Web API authentication and authorization Chalermpon Areepong
 
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs Academy
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs AcademyBootCamp Online en DevOps (and SecDevOps) de GeeksHubs Academy
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs AcademyTelefónica
 
Manipulando JWT em apis Laravel
Manipulando JWT em apis LaravelManipulando JWT em apis Laravel
Manipulando JWT em apis LaravelEduardo Cesar
 
Best practices for RESTful web service design
Best practices for RESTful web service designBest practices for RESTful web service design
Best practices for RESTful web service designRamin Orujov
 
Android Penetration testing - Day 2
 Android Penetration testing - Day 2 Android Penetration testing - Day 2
Android Penetration testing - Day 2Mohammed Adam
 
Understanding GIT and Version Control
Understanding GIT and Version ControlUnderstanding GIT and Version Control
Understanding GIT and Version ControlSourabh Sahu
 

La actualidad más candente (20)

Hacktoberfest 2020 - Open source for beginners
Hacktoberfest 2020 - Open source for beginnersHacktoberfest 2020 - Open source for beginners
Hacktoberfest 2020 - Open source for beginners
 
Effective testing with pytest
Effective testing with pytestEffective testing with pytest
Effective testing with pytest
 
Github PowerPoint Final
Github PowerPoint FinalGithub PowerPoint Final
Github PowerPoint Final
 
Intro to git and git hub
Intro to git and git hubIntro to git and git hub
Intro to git and git hub
 
Revoke-Obfuscation
Revoke-ObfuscationRevoke-Obfuscation
Revoke-Obfuscation
 
Refactoring
RefactoringRefactoring
Refactoring
 
Git - Basic Crash Course
Git - Basic Crash CourseGit - Basic Crash Course
Git - Basic Crash Course
 
DevOps.pptx
DevOps.pptxDevOps.pptx
DevOps.pptx
 
Don't Be Mocked by your Mocks - Best Practices using Mocks
Don't Be Mocked by your Mocks - Best Practices using MocksDon't Be Mocked by your Mocks - Best Practices using Mocks
Don't Be Mocked by your Mocks - Best Practices using Mocks
 
Codifying the Build and Release Process with a Jenkins Pipeline Shared Library
Codifying the Build and Release Process with a Jenkins Pipeline Shared LibraryCodifying the Build and Release Process with a Jenkins Pipeline Shared Library
Codifying the Build and Release Process with a Jenkins Pipeline Shared Library
 
Tipos de datos Java
Tipos de datos JavaTipos de datos Java
Tipos de datos Java
 
Hackear Contraseñas De Facebook
Hackear Contraseñas De FacebookHackear Contraseñas De Facebook
Hackear Contraseñas De Facebook
 
Web API authentication and authorization
Web API authentication and authorization Web API authentication and authorization
Web API authentication and authorization
 
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs Academy
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs AcademyBootCamp Online en DevOps (and SecDevOps) de GeeksHubs Academy
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs Academy
 
Track code quality with SonarQube
Track code quality with SonarQubeTrack code quality with SonarQube
Track code quality with SonarQube
 
Git
GitGit
Git
 
Manipulando JWT em apis Laravel
Manipulando JWT em apis LaravelManipulando JWT em apis Laravel
Manipulando JWT em apis Laravel
 
Best practices for RESTful web service design
Best practices for RESTful web service designBest practices for RESTful web service design
Best practices for RESTful web service design
 
Android Penetration testing - Day 2
 Android Penetration testing - Day 2 Android Penetration testing - Day 2
Android Penetration testing - Day 2
 
Understanding GIT and Version Control
Understanding GIT and Version ControlUnderstanding GIT and Version Control
Understanding GIT and Version Control
 

Destacado

hardware and software: Seguridad
hardware and software: Seguridadhardware and software: Seguridad
hardware and software: Seguridadconkyman
 
Medidas de seguridad de software
Medidas de seguridad de softwareMedidas de seguridad de software
Medidas de seguridad de softwareLuisAbnerSoto
 
Seguridad informática introduccion
Seguridad informática introduccionSeguridad informática introduccion
Seguridad informática introduccionCarolina Cols
 
Proteccion y Seguridad en los Sistemas Operativos
Proteccion y Seguridad en los Sistemas OperativosProteccion y Seguridad en los Sistemas Operativos
Proteccion y Seguridad en los Sistemas OperativosEduardo Gomez
 
Diagramas de objetos
Diagramas de objetosDiagramas de objetos
Diagramas de objetosstill01
 
Software de seguridad
Software de seguridadSoftware de seguridad
Software de seguridadgarcijo
 
Manejo de software de seguridad
Manejo de software de seguridadManejo de software de seguridad
Manejo de software de seguridadMario Ramos
 
Problemas de seguridad en el software
Problemas de seguridad en el softwareProblemas de seguridad en el software
Problemas de seguridad en el softwarehelderpablo
 
Patrones de diseño y frameworks
Patrones de diseño y frameworksPatrones de diseño y frameworks
Patrones de diseño y frameworksDaniel Cam Urquizo
 
Ud4 Seguridad del hardware
Ud4 Seguridad del hardwareUd4 Seguridad del hardware
Ud4 Seguridad del hardwarecarmenrico14
 
politica de seguridad informatica
politica de seguridad informatica politica de seguridad informatica
politica de seguridad informatica libra-0123
 
Diferentes tipos de amenazas informaticas y
Diferentes tipos de amenazas informaticas yDiferentes tipos de amenazas informaticas y
Diferentes tipos de amenazas informaticas yfelixperezrozalen
 
PLAN DE SEGURIDAD DE COMPUTO
PLAN DE SEGURIDAD DE COMPUTOPLAN DE SEGURIDAD DE COMPUTO
PLAN DE SEGURIDAD DE COMPUTOchuchop
 
Seguridad en los sistemas de archivos
Seguridad en los sistemas de archivosSeguridad en los sistemas de archivos
Seguridad en los sistemas de archivosANDRES SALAZAR
 
Exposicion integracion metodos numericos
Exposicion integracion metodos numericosExposicion integracion metodos numericos
Exposicion integracion metodos numericosLucho Castagneto
 
Seguridad Informática en Sistemas Operativos.
 Seguridad Informática en Sistemas Operativos. Seguridad Informática en Sistemas Operativos.
Seguridad Informática en Sistemas Operativos.Noel Cruz
 

Destacado (20)

hardware and software: Seguridad
hardware and software: Seguridadhardware and software: Seguridad
hardware and software: Seguridad
 
Medidas de seguridad de software
Medidas de seguridad de softwareMedidas de seguridad de software
Medidas de seguridad de software
 
Seguridad informática introduccion
Seguridad informática introduccionSeguridad informática introduccion
Seguridad informática introduccion
 
Proteccion y Seguridad en los Sistemas Operativos
Proteccion y Seguridad en los Sistemas OperativosProteccion y Seguridad en los Sistemas Operativos
Proteccion y Seguridad en los Sistemas Operativos
 
Seguridad en redes
Seguridad en redesSeguridad en redes
Seguridad en redes
 
Diagramas de objetos
Diagramas de objetosDiagramas de objetos
Diagramas de objetos
 
Software de seguridad
Software de seguridadSoftware de seguridad
Software de seguridad
 
Manejo de software de seguridad
Manejo de software de seguridadManejo de software de seguridad
Manejo de software de seguridad
 
Prueba de Confiabilidad del Software
Prueba de Confiabilidad del SoftwarePrueba de Confiabilidad del Software
Prueba de Confiabilidad del Software
 
Problemas de seguridad en el software
Problemas de seguridad en el softwareProblemas de seguridad en el software
Problemas de seguridad en el software
 
Patrones de diseño y frameworks
Patrones de diseño y frameworksPatrones de diseño y frameworks
Patrones de diseño y frameworks
 
Ud4 Seguridad del hardware
Ud4 Seguridad del hardwareUd4 Seguridad del hardware
Ud4 Seguridad del hardware
 
politica de seguridad informatica
politica de seguridad informatica politica de seguridad informatica
politica de seguridad informatica
 
Diferentes tipos de amenazas informaticas y
Diferentes tipos de amenazas informaticas yDiferentes tipos de amenazas informaticas y
Diferentes tipos de amenazas informaticas y
 
PLAN DE SEGURIDAD DE COMPUTO
PLAN DE SEGURIDAD DE COMPUTOPLAN DE SEGURIDAD DE COMPUTO
PLAN DE SEGURIDAD DE COMPUTO
 
Seguridad en los sistemas de archivos
Seguridad en los sistemas de archivosSeguridad en los sistemas de archivos
Seguridad en los sistemas de archivos
 
Exposicion integracion metodos numericos
Exposicion integracion metodos numericosExposicion integracion metodos numericos
Exposicion integracion metodos numericos
 
Seguridad Informática en Sistemas Operativos.
 Seguridad Informática en Sistemas Operativos. Seguridad Informática en Sistemas Operativos.
Seguridad Informática en Sistemas Operativos.
 
Introducción a la Seguridad de los Sistemas Operativos
Introducción a la Seguridad de los Sistemas OperativosIntroducción a la Seguridad de los Sistemas Operativos
Introducción a la Seguridad de los Sistemas Operativos
 
Firewall
FirewallFirewall
Firewall
 

Similar a Seguridad de Software: Una Introducción

Protección de la Información: Una necesidad en los tiempos modernos
Protección de la Información: Una necesidad en los tiempos modernosProtección de la Información: Una necesidad en los tiempos modernos
Protección de la Información: Una necesidad en los tiempos modernosCristián Rojas, MSc., CSSLP
 
Herramientas de analisis de vulnerabilidades
Herramientas de analisis de vulnerabilidadesHerramientas de analisis de vulnerabilidades
Herramientas de analisis de vulnerabilidadesSergio Fuentes
 
Aplicaciones Difusas UNIDAD 5: ÉTICA Y PRIVACIDAD: Parte 1
Aplicaciones Difusas  UNIDAD 5: ÉTICA Y PRIVACIDAD: Parte 1Aplicaciones Difusas  UNIDAD 5: ÉTICA Y PRIVACIDAD: Parte 1
Aplicaciones Difusas UNIDAD 5: ÉTICA Y PRIVACIDAD: Parte 1Luis Fernando Aguas Bucheli
 
Seguridad Informática
Seguridad InformáticaSeguridad Informática
Seguridad InformáticaSoniayGeanina
 
Introduccion seguridad informatica - chakan
Introduccion seguridad informatica   - chakanIntroduccion seguridad informatica   - chakan
Introduccion seguridad informatica - chakanch4k4n
 
Seguridad informática y de ti
Seguridad informática y de tiSeguridad informática y de ti
Seguridad informática y de tiMario Nizama
 
Infecta a tus usuarios antes de que lo hagan otros
Infecta a tus usuarios antes de que lo hagan otrosInfecta a tus usuarios antes de que lo hagan otros
Infecta a tus usuarios antes de que lo hagan otrosRamon
 
UT.1 Introducción a la seguridad informática (1).ppt
UT.1 Introducción a la seguridad informática (1).pptUT.1 Introducción a la seguridad informática (1).ppt
UT.1 Introducción a la seguridad informática (1).pptdegido10
 
3.1. Ataques conceptos técnicas
3.1. Ataques   conceptos técnicas3.1. Ataques   conceptos técnicas
3.1. Ataques conceptos técnicasDavid Narváez
 
Memorias webCast Prevención de Ataques de Dia-0 con Aranda 360 ENDPOINT SECURITY
Memorias webCast Prevención de Ataques de Dia-0 con Aranda 360 ENDPOINT SECURITYMemorias webCast Prevención de Ataques de Dia-0 con Aranda 360 ENDPOINT SECURITY
Memorias webCast Prevención de Ataques de Dia-0 con Aranda 360 ENDPOINT SECURITYAranda Software
 
Seguridad informatica (clase 2)
Seguridad informatica (clase 2)Seguridad informatica (clase 2)
Seguridad informatica (clase 2)Haruckar
 
Seguridad informatica 2
Seguridad informatica 2Seguridad informatica 2
Seguridad informatica 2danny1712
 
Seguridad informatica 2
Seguridad informatica 2Seguridad informatica 2
Seguridad informatica 2danny1712
 

Similar a Seguridad de Software: Una Introducción (20)

Protección de la Información: Una necesidad en los tiempos modernos
Protección de la Información: Una necesidad en los tiempos modernosProtección de la Información: Una necesidad en los tiempos modernos
Protección de la Información: Una necesidad en los tiempos modernos
 
Herramientas de analisis de vulnerabilidades
Herramientas de analisis de vulnerabilidadesHerramientas de analisis de vulnerabilidades
Herramientas de analisis de vulnerabilidades
 
Developers: Ignorance is... bliss?
Developers: Ignorance is... bliss?Developers: Ignorance is... bliss?
Developers: Ignorance is... bliss?
 
Aplicaciones Difusas UNIDAD 5: ÉTICA Y PRIVACIDAD: Parte 1
Aplicaciones Difusas  UNIDAD 5: ÉTICA Y PRIVACIDAD: Parte 1Aplicaciones Difusas  UNIDAD 5: ÉTICA Y PRIVACIDAD: Parte 1
Aplicaciones Difusas UNIDAD 5: ÉTICA Y PRIVACIDAD: Parte 1
 
Seguridad en sl
Seguridad en slSeguridad en sl
Seguridad en sl
 
Entendiendo al enemigo
Entendiendo al enemigoEntendiendo al enemigo
Entendiendo al enemigo
 
Ingenieria de software - Unidad 4 seguridad
Ingenieria de software - Unidad 4 seguridadIngenieria de software - Unidad 4 seguridad
Ingenieria de software - Unidad 4 seguridad
 
Seguridad Informática
Seguridad InformáticaSeguridad Informática
Seguridad Informática
 
Introduccion seguridad informatica - chakan
Introduccion seguridad informatica   - chakanIntroduccion seguridad informatica   - chakan
Introduccion seguridad informatica - chakan
 
Seguridad informática y de ti
Seguridad informática y de tiSeguridad informática y de ti
Seguridad informática y de ti
 
Infecta a tus usuarios antes de que lo hagan otros
Infecta a tus usuarios antes de que lo hagan otrosInfecta a tus usuarios antes de que lo hagan otros
Infecta a tus usuarios antes de que lo hagan otros
 
UT.1 Introducción a la seguridad informática (1).ppt
UT.1 Introducción a la seguridad informática (1).pptUT.1 Introducción a la seguridad informática (1).ppt
UT.1 Introducción a la seguridad informática (1).ppt
 
3.1. Ataques conceptos técnicas
3.1. Ataques   conceptos técnicas3.1. Ataques   conceptos técnicas
3.1. Ataques conceptos técnicas
 
Memorias webCast Prevención de Ataques de Dia-0 con Aranda 360 ENDPOINT SECURITY
Memorias webCast Prevención de Ataques de Dia-0 con Aranda 360 ENDPOINT SECURITYMemorias webCast Prevención de Ataques de Dia-0 con Aranda 360 ENDPOINT SECURITY
Memorias webCast Prevención de Ataques de Dia-0 con Aranda 360 ENDPOINT SECURITY
 
Seguridad informatica (clase 2)
Seguridad informatica (clase 2)Seguridad informatica (clase 2)
Seguridad informatica (clase 2)
 
Seguridad informatica 2
Seguridad informatica 2Seguridad informatica 2
Seguridad informatica 2
 
Seguridad informatica 2
Seguridad informatica 2Seguridad informatica 2
Seguridad informatica 2
 
Amenazas lógicas
Amenazas lógicasAmenazas lógicas
Amenazas lógicas
 
Amenazas lógicas
Amenazas lógicasAmenazas lógicas
Amenazas lógicas
 
Amenazas lógicas
Amenazas lógicasAmenazas lógicas
Amenazas lógicas
 

Último

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
 
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
 
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
 
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
 
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
 
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
 
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
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
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
 
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
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxlosdiosesmanzaneros
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilJuanGallardo438714
 
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
 
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
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 

Último (15)

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
 
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
 
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
 
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
 
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
 
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
 
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
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
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
 
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
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptx
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmeril
 
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
 
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
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 

Seguridad de Software: Una Introducción

  • 1.
  • 2. Enero 2011: Sony demanda a modders por hacer jailbreaking e ingeniería reversa de la PS3. ● Abril 2011: PSN recibe ataques DDOS y SQL Injection los cuales roban información de tarjetas de crédito de sus usuarios. Sony cierra PSN por 24 días. ● Mayo 2011: Aparece un sitio de phishing en un servidor Sony ● Junio 2011: Se filtran bases de datos y cupones de Sony Rusia, Sony Portugal, Sony Francia y Sony Europa.
  • 3. Costo de los ataques para Sony: USD 24x10⁹ Costo de prevención: < USD 10000 Fuente: Veracode, "Sony PSN Breach Infographic"
  • 4. [cci] Ciclo de Charlas Informáticas Seguridad de Software: Una Introducción Cristián Rojas Consultor en Seguridad de Software – Investigador Asistente CLCERT Universidad de Chile
  • 5. Primera parte: ¿Es importante la seguridad? Seguridad de Software: Una Introducción
  • 6. ● 6 mitos sobre seguridad ● ¿Por qué los buenos desarrolladores escribimos mal código? 3 factores cruciales ● La trinidad de los problemas ● ¿No? Importancia de la seguridad Seguridad de Software: Una Introducción
  • 7. Mito 1: Seguridad 100% Seguridad de Software: Una Introducción
  • 8. Mito 2: Seguridad "Next" No, si mi framework trae seguridad integrada. No tengo de qué preocuparme. Seguridad de Software: Una Introducción
  • 9. Mito 3: "Nunca nos han atacado" ● Igual que los avisos de inversiones: "Rentabilidad pasada no asegura rentabilidad futura" ● ¿Y para qué construir un paso de cebra frente al colegio si nunca han atropellado a nadie ahí? (¿O es muy tonto lo que estoy diciendo?) ● La verdad es que no nos han atacado... aún. Seguridad de Software: Una Introducción
  • 10. Mito 3: "Nunca nos han atacado" ● "Pero cómo podría alguien atacarnos si somos una empresa chica/PYME/startup" – Generalmente no tienen medidas de seguridad implementadas – Faltan especialistas que desarrollen políticas de seguridad – 83% de los ataques son oportunistas, más que orientados Biztech: "Hackers Have Their Eye On Small Business" Seguridad de Software: Una Introducción
  • 11. Mito 4: "Tenemos un firewall" Seguridad de Software: Una Introducción
  • 12. Mito 5: Los ataques sólo vienen de afuera ● La incidencia de ataques desde dentro de la organización bordea el 20% ● Y pueden no necesariamente ser ataques ● Los usuarios son el peor enemigo de una aplicación Seguridad de Software: Una Introducción
  • 13. Mito 5: Los ataques sólo vienen de afuera ● Los usuarios son más peligrosos que los mismos crackers: – Curiosos – Torpes – Crédulos – Malévolos – Petulantes Seguridad de Software: Una Introducción
  • 14. Mito 6: Sólo para "juáquers" Me han contado que los mejores crackers del mundo hacen esta pega en 60 minutos... Lamentablemente yo necesito a alguien que la haga en 60 segundos. "Swordfish", Warner Bros, 2001. Seguridad de Software: Una Introducción
  • 15. ¿Por qué los buenos desarrolladores escribimos mal código? Seguridad de Software: Una Introducción
  • 16. Factores técnicos ● “El todo es más que la suma de sus partes” (NOT!) ● Hay fallas de seguridad que surgen espontáneamente ¿Por qué? Seguridad de Software: Una Introducción
  • 17. Factores psicológicos ● Programar es una actividad difícil y frustrante ● Nosotros descansamos en la abstracción... los chicos malos se fijan en los detalles ● Nunca debemos confiar ciegamente en el código de otro (ahora... anda a que alguien llegue a desconfiar del de uno) Seguridad de Software: Una Introducción
  • 18. Desarrolladores escriben código while(true) { Especialista en seguridad dice "UR DOIN IT WRONG!" Desarrolladores hacen cambios } Seguridad de Software: Una Introducción
  • 19. Factores del mundo real ● La fuente de nuestro código fuente ● El desarrollo de software es un proceso democrático ● La presión de producir, producir, producir – ¡¡¡Margen, margen, margen!!! Y calidad, ¿cuándo? Seguridad de Software: Una Introducción
  • 20. Factores del mundo real ● “¿Cuán seguro?” “Lo suficiente” – “¿Cuándo dejarán de vendernos esta porquería?” “Cuando Ustedes dejen de comprarla” – Si se emplea tiempo en chequear posibles fallas de seguridad, habrá menos ingenieros dedicados a añadir nuevas características – Muchas compañías restan importancia a incidentes ● Se nos enseña a desarrollar, pero no en forma segura Seguridad de Software: Una Introducción
  • 21. Interconectividad Extensibilidad Complejidad (La Trinidad de los problemas) Seguridad de Software: Una Introducción
  • 22. ¿No? importancia de la seguridad ● ROI (margen) ● Ejercicio: ¿Cotizarías voluntariamente en una Isapre? ● ¿Es bacán la seguridad? Seguridad de Software: Una Introducción
  • 23. Segunda parte: ¿Cómo asegurar nuestro software? Seguridad de Software: Una Introducción
  • 24. Educación ● ¿Sabemos qué vulnerabilidades hay y cómo mitigarlas? – Tutoriales en línea (OWASP Top 10, CWE/Sans Top 25...) – Libros Seguridad de Software: Una Introducción
  • 25. Educación ● Aplicaciones débiles a propósito – NOWASP (Mutillidae) – Google Gruyére – OWASP WebGoat Seguridad de Software: Una Introducción
  • 26. Análisis de seguridad ● Minimizar la superficie de ataque: Acceso remoto 1) ¿Esa característica es qu e ata realmente importante? Acceso restringido ie de erfic up 2) ¿Quien necesita esa ay o rs Acceso M funcionalidad y desde local dónde? Acceso Acceso para Acceso 3) Reducir privilegios sólo para admin usuarios anónimo Seguridad de Software: Una Introducción
  • 27. Análisis de seguridad ● Threat Modeling: Herramienta que busca obtener una visión general del sistema en términos de seguridad: 1) Determinar dependencias y supuestos 2) Modelar el sistema 3) Determinar las amenazas 4) Calcular riesgos 5) Mitigar Seguridad de Software: Una Introducción
  • 28. Utilizar herramientas automatizadas ● Análisis Interno – Analizadores estáticos ● Análisis externo (pentesting) – Fuzzers Seguridad de Software: Una Introducción
  • 29. Utilizar herramientas automatizadas ● Limitaciones – Las herramientas automatizadas tienen las mismas limitaciones que los antivirus – Por lo mismo, utilizarlas como parte de un programa de desarrollo de software seguro ● Precaución con el análisis externo – Utilizar sandboxing – NUNCA hacer las pruebas sobre un sitio en producción. Seguridad de Software: Una Introducción
  • 30. Utilizar herramientas automatizadas ● Analizadores estáticos: – Findbugs, PMD, CodePro Analytix (Java) – RATS, Flawfinder (C/C++/PHP/Python) – FXCop (.NET) – Brakeman (Rails) Seguridad de Software: Una Introducción
  • 31. Utilizar herramientas automatizadas ● Fuzzers: – Websecurify – W3AF – Skipfish ● Sandboxes – Chroot – Virtualizadores: Virtualbox (vagrant), VMWare... Seguridad de Software: Una Introducción
  • 32. Aplicar buenas prácticas ● Diseño simple ● Prepared Statements y permisos para bases de datos ● Validar entradas (contra XSS, inyecciones varias, usar lista blanca) ● Poner atención a las configuraciones por defecto. Suelen ser inseguras. Seguridad de Software: Una Introducción
  • 33. Aplicar buenas prácticas ● Completa mediación: Revisar privilegios siempre antes de hacer una operación crítica ● Atentos a los privilegios (privilegio mínimo, separación de privilegios) ● Compartimentalizar la aplicación ● Aceptabilidad psicológica: No hacer el sistema tan seguro que termine siendo inusable Seguridad de Software: Una Introducción
  • 34. Seguridad de Software: Una Introducción
  • 35. Soportar todo el software ● Mucho de nuestro software depende de otro software: – Bibliotecas externas – Frameworks – Etc. ● Atentos a avisos de seguridad de software externo ● Si las vulnerabilidades para ese software no se corrigen: – Corregirlo nosotros mismos – Buscar alternativas Seguridad de Software: Una Introducción
  • 36. Desarrollar un "Security Response" ● El software nunca quedará perfecto, por lo tanto es bueno armar un plan de respuesta a incidentes ● Fomentar la divulgación: ¿Abierta o responsable? ● Adelantarse: Encontrar las vulnerabilidades antes que un investigador/cracker/ocioso lo haga ● Al lanzar un parche, no preocuparnos sólo de corregir, sino también de evitar regresiones Seguridad de Software: Una Introducción
  • 37. Demo (Un intento por hacer bacán la seguridad) Fuente: https://github.com/injcristianrojas/swsec-intro Seguridad de Software: Una Introducción
  • 38. Links interesantes ● Veracode, "Sony PSN Breach Infographic" http://www.veracode.com/resources/sony-psn-infographic ● "Hackers Have Their Eye On Small Business" http://www.biztechmagazine.com/article/2012/05/hackers-have-their-eye-small-business-infographic ● Veracode: "Stay Cool, Nobody is Calling Your Baby Ugly" http://www.veracode.com/blog/2011/10/stay-cool-nobody-is-calling-your-baby-ugly/ ● Aplicación de demostración JEE/Maven https://github.com/injcristianrojas/swsec-intro Seguridad de Software: Una Introducción
  • 39. Links revelantes ● OWASP Top 10 https://www.owasp.org/index.php/Top_10 ● CWE/SANS Top 25 Most Dangerous Software Errors http://www.sans.org/top25-software-errors/ ● OWASP: "Threat Risk Modeling" https://www.owasp.org/index.php/Threat_Risk_Modeling ● 42+ best practices for secure mobile development in iOS and Android https://viaforensics.com/resources/reports/best-practices-ios-android-secure-mobile-development/ ● Microsoft: "SDL Process: Design" http://www.microsoft.com/security/sdl/discover/design.aspx Seguridad de Software: Una Introducción
  • 40. Blbliografía ● McGraw: "Software Security: Building Security In" ● Viega, McGraw: "Building Secure Software" ● Howard, LeBlanc, Viega: "24 Sins of Software Security" ● Howard, Lipner: "The Security Development Lifecycle" ● Graff, Van Wyk: "Secure Coding: Principles & Practices" Seguridad de Software: Una Introducción
  • 41. Muchas gracias por su atención. ¿Preguntas? ¿Comentarios? Contacto: injcristianrojas@gmail.com Seguridad de Software: Una Introducción