SlideShare una empresa de Scribd logo
1 de 37
Miguel Ángel Arroyo Moreno
                                                        Carlos García García
                                                    Juan José Rider Jiménez




I Hacklab en Córdoba · www.hacklabcordoba.com
Algo sobre mi
     Profesional desde 2001.
     Experto en e-commerce: Verified By VISA,
        SecureCode, etc.
       OWASP member desde 2010. Miembro del Spain
        Chapter.
       Fundador empresa www.wul4.es
       Twitter: @jjriderWul4
       Email: jjrider@wul4.es / juan.rider@owasp.org



2
Algo sobre OWASP
    El proyecto abierto de seguridad en aplicaciones Web
    (OWASP por sus siglas en inglés) es una comunidad
    abierta y libre de nivel mundial enfocada en mejorar la
    seguridad en las aplicaciones de software.
    Nuestra misión es hacer la seguridad en aplicaciones
    "visible", de manera que las organizaciones pueden
    tomar decisiones sobre los riesgos en la seguridad de
    aplicaciones.
    Todo el mundo es libre de participar en OWASP y todos
    los materiales están disponibles bajo una licencia de
    software libre y abierto.
    http://www.owasp.org
3
¿Para qué sirve el OWASP Top 10?
 La madre del cordero:
    No se construyen web
       seguras a menos que se
       conozca cómo atacarlas
 El Problema:
    Para el 99% de los desarrolladores
       los tests de seguridad son un arte oscuro
 La solución?
    Formación básica y conocimiento de posibles ataques
OWASP Top 10
 A1 Ataques de inyección (SQL inyection, etc)
 A2 Cross-Site Scripting (XSS)
 A3 Gestión de sesiones y ataques contra la autenticación
A4 Exposición de referencias a objetos de forma directa      =

 A5 Cross-Site Request Forgery (CSRF)                        =

A6 Errores de configuración de la seguridad                 NEW

 A7 Errores al restringir accesos a URLs
A8 Redirects y Forwards no validados                        NEW

A9 Almacenamiento criptográfico inseguro
A10 Comunicaciones inseguras
¿Cómo se calcula el OWASP Top 10?




          Threat       Attack      Weakness      Weakness
                                                                Technical Impact   Business Impact
          Agent        Vector      Prevalence   Detectability

                   1     Easy      Widespread       Easy            Severe

            ?      2   Average      Common        Average          Moderate              ?
                   3   Difficult   Uncommon       Difficult          Minor


                          1            2             2                 1

    A1-Inyección                    1.66             *                 1
6

                                                  1.66 weighted risk rating
A1: Ataques de inyección
  En qué consiste…

  Mandar información a una aplicación y que ésta la interprete como parte de
   un comando, ya sea SQL, de sistema, LDAP, etc.

  Campos de acción

  Casi cualquiera que imaginemos… SQL, LDAP, XPath, ORM(Hibernate, etc),
   OS, etc.

  Impacto

  Severo. En el caso de PCI tenemos que tener especial cuidado en el acceso a los
    datos y en el control de acceso a las aplicaciones que muestran datos de
    tarjeta.
A1: Ataques de inyección
                                                                                                                                                                                              "SELECT * FROM
                                                                                                                                                                                               Account Summary
                                                                                                                                                                                              accounts WHERE
                                                                                                                                                                                            Account:




                                                                         Knowledge Mgmt
                                                                         Communication
                                                        Administration




                                                                          Bus. Functions




                                                                                                                  Legacy Systems



                                                                                                                                                                Human Resrcs
Application Layer




                                                                           E-Commerce
                                                         Transactions




                                                                                                                                   Web Services
                                                                                                                                                                                            acct=‘’ OR 1=1--
                                                                                                                                                                                               SKU::




                                                                                                                                                  Directories
                                             Accounts                                                                                                                                     Acct:5424-6066-2134-4334




                                                                                                      Databases
                                             Finance
                                                      HTTP




                                                                                                                                                                               Billing
                     HTTP                                  SQL                                                              DB Table                                                      Acct:4128-7574-3921-0192
                                                    response                                                                  
                                                                                                                                                                                                      ’"
                    request                                query                                                                                                                          Acct:5424-9383-2039-4029
                                                       
                    APPLICATION
                                                                                                                                                                                        Acct:4128-0004-1234-0293
                    
                    ATTACK
                                                            
                                                        Custom Code
                                                                                                                                                                                         1. Se presenta un formulario al
                                                                                                                                                                                         atacante
                                                                                                                                                                                         2. Se envía el ataque enviando
                                                                                                                                                                                         datos ‘no-esperados’
                                                        App Server
                                                                                                                                                                                         3. La aplicación reenvia esos
                                                        Web Server
                                                                                                                                                                                         datos embedidos en una SQL
                                                        Hardened OS
Network Layer




                                                                                                                                                                                         4. La BD ejecuta la query y
                                                                                                                                                                                         devuelve todos los datos a la
                                                                                                                                                                                         aplicación
                                                                                           Firewall
                                  Firewall




                                                                                                                                                                                         5. La aplicación toma los datos
                                                                                                                                                                                         y se los devuelve al atacante
A1: Ataques de inyección
  Cómo evitarse

 1. Evitar el uso de interpretes. Esto nomalmente no es posible.
 2. Usar un interfaz para acceder a estos interpretes que permita
    el ‘binding’ de estos valores. Ej: PreparedStatements o Stored
    Procedures.
 3. Codificar/Validar todas las entradas antes de pasarlas al
    intérprete.
     • Uso de ‘listas blancas’
     • Limitar privilegios de acceso a los datos(Usuario de BD)
     • ESAPI.Encoder

 Solución: Uso de filtros HTTP de validación en base a Patrones
    y PreparedStatements.

 Más info:
    http://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet
A2: Cross-Site Scripting (XSS)
  En qué consiste…

  Cuando se le devuelve a un usuario un script previamente introducido por un
   atacante. El usuario ‘confia’ en el portal.

  Campos de acción

  En aplicaciones donde lo que uno escribe/envía, otro lo recibe, etc.
  Varios tipos:
  1. Directo(El script puede encontrarse en BD)
  2. Indirecto o reflejado (La web usa un parámetro de entrada en la respuesta)
  3. XST(Cross Site Tracing) que usa el método TRACE de HTTP para obtener
      las credenciales de usuario ‘Basic-Auth’



  Impacto

  Severo. Desde obtener el identificador de sesión y reenviarlo de forma
    silenciosa a un atacante como instalar un proxy en el navegador para
    observar todo el tráfico.
A2: XSS
1       Supongamos que existe un servicio de ‘buzón’ de administrador

                                                            Aplicación con
                                                            vulnerabilidad XSS
                            El atacante envia el
                            script en el mensaje
                            que se almacena en BD




                                                                                          Communication
                                                                         Administration




                                                                                          Bus. Functions
                                                                                          E-Commerce
                                                                         Transactions

                                                                                          Knowledge
                                                              Accounts
             2   El administrador visualiza el mensaje




                                                              Finance




                                                                                          Mgmt
                                                               Custom Code


                            El script se interpreta
                            con los privilegios y
                            permisos del
                            administrador

    3     El Script envía la cookie de sesión al atacante
A2: XSS
   Cómo evitarse

 1. Evitar devolver los valores de entrada en la página de salida. Ni
    incluir los valores recogidos.(esto es imposible en muchos casos)
 2. Escaneos periódicos
 3. Para defendernos, codificar/validar todas las entradas de usuario
    usando listas blancas, ESAPI, y en el caso de tener que incluir
    grandes cantidades de HTML, usar AntiSamy.
 http://www.owasp.org/index.php/ESAPI
 http://www.owasp.org/index.php/AntiSamy
 Solución: Uso de validaciones en base a Patrones. Uso de librerias
    de OWASP ESAPI y AntiSamy

 String safe = ESAPI.encoder().encodeForJavaScript( request.getParameter( "input" ) );

 Más info:
 http://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_S
     heet
A3: Sesiones y autenticación
  En qué consiste…

  En obtener los datos de autenticación del usuario(LDAP) o bien su
   identificador de sesión(JSESSIONID)

  Cómo se obtienen

  1.   HTTP es un protocolo sin-estado. Las credenciales viajan en TODA petición.
        Se debe usar protocolo seguro siempre que se envíen.
  2.   Accediendo a logs que contienen el identificador de sesión.  El
       identificador de sesión NO debe almacenarse en logs, ni usar reescritura de
       URLs…
  3.   Ataques de ‘session fixation’  Si un ID de sesión no es válido, no darle
       validez
  4.   Mediante sistemas de autologin, remember-me, recordatorios de password
       con email, etc.
  5.   Obtener las sesiones persistentes  Destruir la sesión y tiempos de vida
       cortos(15minutos)
  Impacto

  Severo. Apropiación indebida de los privilegios de usuario.
A3: Sesiones y autenticación
                                   1    Usuario envía credenciales




                                                                                Administration

                                                                                Communicatio



                                                                                Bus. Functions
    www.boi.com?JSESSIONID=9FA1DB9EA...




                                                                                 Transactions



                                                                                 E-Commerce
                                                                                  Knowledge
                                                                     Accounts
                                                                     Finance




                                                                                    Mgmt
                                                                                       n
                               Aplicación usa reescritura de 2
                               URLs
                                                                            Custom Code




                               3       El usuario cierra el browser y deja su PC




5   El hacker usa el id de             4     El hacker accede al PC y busca
    sesión y toma el control                  en el historico de navegación
    de la sesión
A3: Sesiones y autenticación correo o un
                   El hacker envía un
                                  1
                                link a un usuario registrado con
                                un id de session generado por él
www.boi.com?JSESSIONID=9FA1DB9EA...



                 El usuario accede a la aplicación y se
                 autentica
             2




                                                                                                                                        Knowledge Mgmt
                                                                                                                        Communication
                                                                                        Administration




                                                                                                                                                                      Bus. Functions
                                                                                                         Transactions




                                                                                                                                                         E-Commerce
                                                                   Accounts
                                                                              Finance
                 La aplicación admite el id de sesión porque
                                       cumple sus patrones
                                 3

                                                                                          Custom Code

                                                               Aplicación usa reescritura d
                                                               URLs


                                       4    El hacker usa el id de
                                            sesión y toma el control
                                            de la sesión
A3: Sesiones y autenticación
  Cómo evitarse

1. Verificar la arquitectura
    • Debe ser simple, centralizada y estandarizada (Ej. LDAP)
    • Asegurarse que tanto el id de sesión como las credenciales
       siempre viajan seguras
2. Verificar la implementación
    • Examinar todas las funciones de creación/destrucción de
       sesiones y comprobación de usuario.
    • Verificar que el logout destruye la sesión
3. Escaneos periódicos

Solución: Muchas opciones.
A4: Referencias inseguras a objetos
  En qué consiste…

  Hay que proteger el acceso a los datos. En una aplicación web esto implica
   acceso a opciones de menú, URLs, etc. Esto está en consonancia con el 6.5.7.

  The ‘schoolboy mistake’

  • Ocultar las referencias en campos hidden.
  • Sólo mostrar los objetos a los que tiene acceso el usuario(menús, botones,
    etc)
  • Realizar comprobaciones en el cliente …. Y luego no hacerlo en el servidor
  • Usar un valor de un parámetro (lista de valores) para acceder a una
    funcionalidad.
  Aplicaciones vulnerables

  Aquellas que reciben como parámetro el procedimiento remoto a ejecutar….

  Impacto
  Implica ciertos conocimientos de la aplicación a atacar. Acceso no autorizado a
    datos/operaciones.
A4: Referencias inseguras a objetos
                                            Como veo que un
https://www.onlinebank.com/user?acct=6065   campo es el ‘acct’
                                            con valor 6065…
                                            pruebo el 6066
                                            Y bingo!
                                            Ya tengo acceso a
                                            otra cuenta.
A4: Referencias inseguras a objetos
  Cómo evitarse

1. Eliminar el método de acceso usando una referencia fija Se
   pueden usar referencias ‘temporales’(ESAPI proporciona esa
   funcionalidad)
2. Validar la referencia al objeto
    • Validar el formato de la referencia
    • comprobar que el usuario realmente tiene privilegios(filtros,
       Spring Security, etc)
3. Cuidado con sistemas REST
A5: CSRF
  En qué consiste…
  Este tipo de ataque se produce cuando una web permite realizar operaciones
    sensibles a usuarios sin un rigor adecuado. A diferencia del XSS aquí quien
    confía es la web en el usuario y no el usuario en la web.


  La base del problema

  • Los navegadores incluyen las credenciales en cada petición. ¿Qué ocurre si
    en una web maligna se hace referencia a un contenido u operación de una
    aplicación que admite CSRF?
  • Así, TODAS las aplicaciones que dejan la autenticación/autorización
    únicamente en el sistema de credenciales del contenedor(Cookies de sesión,
    Basic-Auth, IP, Certificado X.509 de cliente, usuario de Dominio…) son
    VULNERABLES.

 Impacto

  Aunque en general todas las aplicaciones son vulnerables, es dificil explotar
   dicha vulnerabilidad porque implica un conocimiento profundo de la
   aplicación atacada.
A5: CSRF
         El atacante almacena en ataque en una web o bien manda un
     1       correo




                                                          Aplicación vulnerable
                       Un tag ‘<img ..>’                  a CSRF
                       contiene el ataque




                                                                      Administration

                                                                      Communicatio



                                                                      Bus. Functions
                                                                      Transactions



                                                                      E-Commerce
                                                                      n nowledge
                                                           Accounts
                                                           Finance




                                                                      Mgmt
         Mientras ve el portal del atacante, la victima
     2




                                                                      K
            se loguea sin saberlo en la aplicación
                                                            Custom Code


                                                                3
                                                           La aplicación cree que
                    El tag ‘<img’ cargado                  es una solicitud de un
                    por el browser de la                   usuario legítimo y
                    victima le lleva a la                  realiza la operación
                    aplicación y usa sus
                    credenciales
                    precargadas
A5: CSRF
  Cómo evitarse

  1. Enviar/Usar un token único que se debe enviar/recibir en
     operaciones sensibles.
  2. Realizar una segunda autenticación para determinadas
     operaciones.
  3. Sistemas CAPTCHA

  Qué NO VALE

  1. Sólo admitir peticiones por POST
  2. Reescritura de URLs

  Más info

  www.owasp.org/index.php/CSRF_Prevention_Cheat_Sheet
A6: Configuraciones de Seguridad
  En qué consiste…
  Si se usa una determinada API o plataforma de seguridad, es importante que
    se configure adecuadamente. Ejemplos de frameworks de seguridad: Spring
    Security, HDIV, ESAPI, JASS, Jguard, etc. Incluso las propias.
  También se engloban aquí las APIs criptográficas: BouncyCastle, JSSE, XML
    Signature, etc….

  La base del problema

  •   El código fuente no es un secreto.
  •   La configuración de la seguridad es distinta dependiendo del entorno.
  •   Desarrollo de ‘puertas traseras’ para pruebas que pasan a REAL
  •   Falta de actualización/control de las librerias de seguridad
  •   Presencia de cuentas por defecto, etc


  Impacto

  El atacante debe ser un poco friki(pero los hay). El atacante puede, al tener
    acceso, incorporar scripts XSS, obtener datos de usuarios, cuentas, etc.
A6: Configuraciones de Seguridad




                                           Knowledge Mgmt
                                           Communication
                          Administration




                                            Bus. Functions
                                             E-Commerce
                           Transactions
               Accounts
               Finance
                                                             Database


                          Custom Code

                   App Configuration




                                                                        Development
                          Framework

                          App Server
                                                                         QA Servers
                          Web Server

                          Hardened OS
  Atacante                                                               Test Servers



                                                                        Source Control
A6: Configuraciones de Seguridad
  Cómo evitarse

  1. Más formación y conocimiento en los sistemas de seguridad
  2. Revisiones de código: también la configuración de la
     seguridad
  3. Verificar periódicamente que no la API está libre de bugs de
     seguridad
  4. Tener una arquitectura de seguridad debidamente
     documentada
  Qué NO VALEperiódicos de AppScan
  5. Escaneos

  1. Dar por hecho que el framework lo hace todo
  2. Dar por hecho que la configuración es adecuada
  Más info

  Ver cada API/Librería
A7: Restricción de acceso a URLs
  En qué consiste…
  ¿Cómo se protege el acceso a determinadas URLs/páginas? Es importante
    entender que aquí no se trata de proteger la aplicación como un todo, sino
    que usuarios con un determinado nivel de acceso no accedan a páginas
    administrativas .




  The ‘schoolboy mistake’

  • Mostrar sólo los menús o links a los que tiene acceso el usuario en cuestión


  Impacto

  Es relativamente fácil el realizar estos ataques. El atacante puede visualizar
    información de otros usuarios o realizar acciones para las que no deberia
    tener permiso.
A7: Restricción de acceso a URLs
                                              Me doy cuenta que parte de
https://www.onlinebank.com/user/getAccounts
                                              la URL es el rol
                                                 /user/getAccounts

                                              Modifico la URL para ver si
                                              funciona
                                                /admin/getAccounts, or
                                                /manager/getAccounts

                                              Si funciona…soy
                                              administrador
A7: Restricción de acceso a URLs
  Cómo evitarse

  1. Verificar la arquitectura de seguridad
  2. Verificar que cada URL está protegida por un filtro (ya sea en
     el web.xml o producto /API) o bien introducir chequeos en el
     propio código(comprobación de roles y permisos) mediante
     sistemas como Spring Security, ESAPI, etc.
  3. Usar sistemas/frameworks que controlen esta funcionalidad
  4. Hacer hacking ético (WebScarab por ejemplo) para
     forzar/testar este tipo de intrusiones.
  5. Escaneos periódicos
  6. Toda aplicación debe cumplir:
      a) Restringir acceso sólo a usuarios autenticados
      b) Chequear el acceso en base al rol del usuario
      c) Deshabilitar acceso a ficheros protegidos o de
           configuración
A8: Redirects and forwards inválidos
  En qué consiste…
  Es relativamente común la práctica de redireccionar a otra página e incluso
    incorporar parámetros en la URL. Si no se chequean esos parámetros, el
    atacante podria reenviar al usuario a una página o portal malicioso.
  El caso de los forwards es similar. Consisten en enviar la misma petición a otra
    página(habitualmente de la misma aplicación). Si la página a realizarse el
    forward es un parámetro o similar, se podría saltar el control de
    autenticación o autorización.



  The ‘schoolboy mistake’

  • No validar los parámetros que pueden usarse al abrir una ventana o realizar
    un forward. Importante…. NO VALE CON COMPROBAR EN EL CLIENTE.
  • IMPORTANTE: ESTO NO ES PISHING

  Impacto

  Es complicado el llevar a cabo estos ataques porque no todas las aplicaciones
    usan estos métodos.
A8: Redirects and forwards inválidos
               1   El atacante envía el ataque via email o link

                     From: Tu Banco(o tu mujer)
                     Subject: Te ha tocado un premio
                     Enhorabuena, pincha aqui,                      3     La aplicación redirige
                     inconsciente de la vida!                             a la víctima al portal
                                                                          fraudulento




                                                                                                                                              Knowledge Mgmt
                                                                                                                             Communication
                                                                                             Administration




                                                                                                                                                                            Bus. Functions
                                                                                                              Transactions




                                                                                                                                                               E-Commerce
                                                                        Accounts
                                                                                   Finance
                   La victima pincha en el ink que le lleva a la
               2     página del banco…(con un regalo)

                                                                                             Custom Code


                               LA petición viaja a la
                               aplicación vulnerable, que
                               usa el parámetro mal
                               formado para reenviar al
                               usuario a la url incorrecta                                                                                   Evil Site



                                                             4     El atacante instala software
http://www.irs.gov/taxrefund/claim.jsp?year=                       en el PC del usuario o le
  2006&… &dest=www.evilsite.com                                    solicita información
A8: Redirects and forwards inválidos
  Cómo evitarse

  1. Evitar usar redirects y forwards
  2. Si se usan, no usar parámetros como parte de la URL
  3. Si se deben usar, validar que cada parámetro es válido y está
     autorizado para el usuario o bien ‘mapear’ la petición en el
     servidor con la URL en cuestión.
  4. Hacer hacking ético (WebScarab por ejemplo) para
     forzar/testar este tipo de intrusiones.
  5. Escaneos periódicos
  6. ESAPI proporciona métodos seguros de redirects y forwards.
        Ver: SecurityWrapperResponse.sendRedirect( URL )
        http://owasp-esapi-java.googlecode.com/svn/trunk_doc/org/owasp/esapi/filters/
              SecurityWrapperResponse.html#sendRedirect(java.lang.String)
A9: Almacenamiento criptográfico inseguro
  En qué consiste…
  Esto ocurre en las siguientes situaciones:
  1. No se identifica adecuadamente qué información se debe proteger.
  2. No se conoce adecuadamente donde se almacena dicha información(BD,
      ficheros, backups, etc)
  3. No se encripta la información de forma adecuada(criptografía insegura,
      claves criptográficas comprometidas, etc)
  4. No se tiene una política de destrucción de los datos cifrados ni renovación
      de las claves de cifrado

  The ‘schoolboy mistake’

  • Usar algoritmos de criptografía ‘debiles’. Ej: DES
  • Almacenar las claves de cifrado de forma insegura o directamente en claro.


  Impacto

  Es dificil que se produzca esta situación.
  Pérdida de credibilidad de toda la compañia.
A9: Almacenamiento criptográfico inseguro

                   La víctima introduce
              1    su PAN para comprar




                                               Bus. Functions
                                               Administration

                                               Communicatio
                                                Transactions



                                                E-Commerce
                                                 Knowledge
                                                  Accounts
                                                   Finance




                                                    Mgmt
                                                      n
                                                 Custom Code



           El atacante recopila                     Log files
       4
           los logs y roba 4               La aplicación guarda en     2
           millones de                         los logs el PAN pq lo
           tarjetas                                  necesita luego

                    Las trazas están   3
              accesibles a todos los
                operadores, uno de
            ellos, becario, pasando
                    una mala racha
A9: Almacenamiento criptográfico inseguro
  Como evitarlo
  1. Verificar la Arquitectura:
      a) Identificar qué se debe proteger.
      b) Identificar dónde se almacena(BD, ficheros, backups, etc)
      c) No se encripta la información de forma adecuada(criptografía
           insegura, claves criptográficas comprometidas, etc)
      d) No se tiene una política de destrucción de los datos cifrados ni
           renovación de las claves de cifrado
  2. Usar mecanismos de encriptación adecuados. Posibilidades:
      a) Ficheros completos
      b) Base de Datos
      c) Elemento en cuestión
  3. Usar los mecanismos correctamente:
      a) Strong cryptography (Preferiblemente, un HSM)
      b) Proteger las claves(generación, uso y destrucción)  HSM
      c) Tener planificado un posible cambio de claves(incluso en caso de
           urgencia)
  4. Verificar la implementación(código, librerias, etc)
A10: Insuficiente protección de comunicaciones
  En qué consiste…
  Esto ocurre en las siguientes situaciones:
  1. No se identifica adecuadamente qué información a enviar/recibir se debe
      proteger(identificadores de clientes, tarjetas, etc)
  2. No se conoce adecuadamente donde se envía dicha información(BD,
      clientes, servicios web o procesos remotos internos)
  3. No se utilizan métodos adecuados para proteger las comunicaciones
  4. A veces, el problema es el cliente (proxy)

  The ‘schoolboy mistake’

  • Se encriptan con HTTPS la navegación, pero es posible también hacerlo por
    HTTP o bien se envían las credenciales de usuario por email ordinario



  Impacto

   Es ciertamente dificil que se produzca este ataque(Man in the middle)
   Pérdida de credibilidad de toda la compañia.
A10: Insuficiente protección de comunicaciones


                                                          Clientes
Victima
                  Custom Code   Backend Systems




                                                            Empleados
              1                                   2
             Se capturan                        Se capturan
             credenciales y                     credenciales y
             datos                              datos que viajan
Desde el                                        por la red
exterior..                            Desde el interna
                                      interior…
A10: Insuficiente protección de comunicaciones
  Como evitarlo
  1. Verificar la Arquitectura:
      a) Identificar qué se debe proteger.
      b) Identificar dónde se almacena(BD, ficheros, backups, etc)
      c) No se encripta la información de forma adecuada(criptografía
           insegura, claves criptográficas comprometidas, etc)
      d) No se tiene una política de destrucción de los datos cifrados ni
           renovación de las claves de cifrado
  2. Usar mecanismos de encriptación adecuados. Posibilidades:
      a) Ficheros completos
      b) Base de Datos
      c) Elemento en cuestión
  3. Usar los mecanismos correctamente:
      a) Strong cryptography (Preferiblemente, un HSM)
      b) Proteger las claves(generación, uso y destrucción)  HSM
      c) Tener planificado un posible cambio de claves(incluso en caso de
           urgencia)
  4. Verificar la implementación(código, librerias, etc)

Más contenido relacionado

Destacado

Galileo galilei
Galileo galileiGalileo galilei
Galileo galileimerizzhr
 
La adicción a los videojuegos
La adicción a los videojuegosLa adicción a los videojuegos
La adicción a los videojuegosDthlatorre
 
Control y regulación de la iluminación en edificios
Control y regulación de la iluminación en edificiosControl y regulación de la iluminación en edificios
Control y regulación de la iluminación en edificiosE-Controls
 
Otros tipos de investigacion
Otros tipos de investigacionOtros tipos de investigacion
Otros tipos de investigacionSandy De La Ossa
 
Primer foro de empresarios estrategicos
Primer foro de empresarios estrategicosPrimer foro de empresarios estrategicos
Primer foro de empresarios estrategicoserasocial
 
Portafolio de trabajo profesional Arq. mauricio bravo moreno
Portafolio de trabajo profesional Arq. mauricio bravo morenoPortafolio de trabajo profesional Arq. mauricio bravo moreno
Portafolio de trabajo profesional Arq. mauricio bravo morenoMauricio Bravo
 
Diseño de la_investigacion
Diseño de la_investigacionDiseño de la_investigacion
Diseño de la_investigacionSandy De La Ossa
 

Destacado (20)

Potencia
PotenciaPotencia
Potencia
 
Galileo galilei
Galileo galileiGalileo galilei
Galileo galilei
 
Darwin ochoa
Darwin ochoaDarwin ochoa
Darwin ochoa
 
Amor Y Amistad
Amor Y AmistadAmor Y Amistad
Amor Y Amistad
 
Evitar la triangulación
Evitar la triangulaciónEvitar la triangulación
Evitar la triangulación
 
La adicción a los videojuegos
La adicción a los videojuegosLa adicción a los videojuegos
La adicción a los videojuegos
 
Control y regulación de la iluminación en edificios
Control y regulación de la iluminación en edificiosControl y regulación de la iluminación en edificios
Control y regulación de la iluminación en edificios
 
10 cosas de emily
10 cosas de emily10 cosas de emily
10 cosas de emily
 
Aula virtual taty
Aula virtual tatyAula virtual taty
Aula virtual taty
 
Travajo
TravajoTravajo
Travajo
 
Mantenimiento
MantenimientoMantenimiento
Mantenimiento
 
Otros tipos de investigacion
Otros tipos de investigacionOtros tipos de investigacion
Otros tipos de investigacion
 
Primer foro de empresarios estrategicos
Primer foro de empresarios estrategicosPrimer foro de empresarios estrategicos
Primer foro de empresarios estrategicos
 
Portafolio de trabajo profesional Arq. mauricio bravo moreno
Portafolio de trabajo profesional Arq. mauricio bravo morenoPortafolio de trabajo profesional Arq. mauricio bravo moreno
Portafolio de trabajo profesional Arq. mauricio bravo moreno
 
Bd no sql
Bd no sqlBd no sql
Bd no sql
 
Apple
AppleApple
Apple
 
Diseño de la_investigacion
Diseño de la_investigacionDiseño de la_investigacion
Diseño de la_investigacion
 
Trabajo blog
Trabajo blogTrabajo blog
Trabajo blog
 
It essentials 3
It essentials 3It essentials 3
It essentials 3
 
Darwin ochoa
Darwin ochoaDarwin ochoa
Darwin ochoa
 

Similar a Hacklab cordoba owasp-top10

Aseguramiento de Vulnerabilidades Web con tecnologías OWASP
Aseguramiento de Vulnerabilidades Web con tecnologías OWASPAseguramiento de Vulnerabilidades Web con tecnologías OWASP
Aseguramiento de Vulnerabilidades Web con tecnologías OWASPcampus party
 
Owasp lnhg-2011-06-1 juan david parra (seg. y redes)
Owasp lnhg-2011-06-1 juan david parra (seg. y redes)Owasp lnhg-2011-06-1 juan david parra (seg. y redes)
Owasp lnhg-2011-06-1 juan david parra (seg. y redes)campus party
 
El éxito en la Nube
El éxito en la NubeEl éxito en la Nube
El éxito en la NubeMundo Contact
 
Presentación gralwinper2011 b-v2
Presentación gralwinper2011 b-v2Presentación gralwinper2011 b-v2
Presentación gralwinper2011 b-v2FreddydelaCruz
 
TISSAT
TISSATTISSAT
TISSAThuanho
 
Osmius 8.01 - Open Source Monitoring Tool
Osmius 8.01 - Open Source Monitoring ToolOsmius 8.01 - Open Source Monitoring Tool
Osmius 8.01 - Open Source Monitoring Toolosmius
 
Aplicaciones De Ti Cs
Aplicaciones De Ti CsAplicaciones De Ti Cs
Aplicaciones De Ti CsBalbiG
 
"Alta tecnología en sistemas de Nomina y Administración de Personal"
"Alta tecnología en sistemas de Nomina  y Administración de Personal""Alta tecnología en sistemas de Nomina  y Administración de Personal"
"Alta tecnología en sistemas de Nomina y Administración de Personal"STARK GROUP
 
Ficha contabilidad c3
Ficha contabilidad c3Ficha contabilidad c3
Ficha contabilidad c3hhebagonzalez
 
PresenceTech and Huaris Case Study
PresenceTech and Huaris Case StudyPresenceTech and Huaris Case Study
PresenceTech and Huaris Case StudyPresence Technology
 
Una apuesta por la integración: Huaris
Una apuesta por la integración: HuarisUna apuesta por la integración: Huaris
Una apuesta por la integración: HuarisJose M. Pena
 
Introducción de la Telegesión
Introducción de la TelegesiónIntroducción de la Telegesión
Introducción de la TelegesiónMaoAlex_SS
 
Estrategia de implantacion_de_itil_en_una_gran_corporacion_telefonica
Estrategia de implantacion_de_itil_en_una_gran_corporacion_telefonicaEstrategia de implantacion_de_itil_en_una_gran_corporacion_telefonica
Estrategia de implantacion_de_itil_en_una_gran_corporacion_telefonicaRochin Piolin
 
Tecnología en Retail - Lecciones Aprendidas
Tecnología en Retail - Lecciones AprendidasTecnología en Retail - Lecciones Aprendidas
Tecnología en Retail - Lecciones AprendidasFernando De los Ríos
 

Similar a Hacklab cordoba owasp-top10 (20)

Aseguramiento de Vulnerabilidades Web con tecnologías OWASP
Aseguramiento de Vulnerabilidades Web con tecnologías OWASPAseguramiento de Vulnerabilidades Web con tecnologías OWASP
Aseguramiento de Vulnerabilidades Web con tecnologías OWASP
 
Owasp lnhg-2011-06-1 juan david parra (seg. y redes)
Owasp lnhg-2011-06-1 juan david parra (seg. y redes)Owasp lnhg-2011-06-1 juan david parra (seg. y redes)
Owasp lnhg-2011-06-1 juan david parra (seg. y redes)
 
El éxito en la Nube
El éxito en la NubeEl éxito en la Nube
El éxito en la Nube
 
Presentación gralwinper2011 b-v2
Presentación gralwinper2011 b-v2Presentación gralwinper2011 b-v2
Presentación gralwinper2011 b-v2
 
TISSAT
TISSATTISSAT
TISSAT
 
Osmius 8.01 - Open Source Monitoring Tool
Osmius 8.01 - Open Source Monitoring ToolOsmius 8.01 - Open Source Monitoring Tool
Osmius 8.01 - Open Source Monitoring Tool
 
Aplicaciones De Ti Cs
Aplicaciones De Ti CsAplicaciones De Ti Cs
Aplicaciones De Ti Cs
 
Aranda Dash Board
Aranda Dash BoardAranda Dash Board
Aranda Dash Board
 
STARK GROUP
STARK GROUPSTARK GROUP
STARK GROUP
 
"Alta tecnología en sistemas de Nomina y Administración de Personal"
"Alta tecnología en sistemas de Nomina  y Administración de Personal""Alta tecnología en sistemas de Nomina  y Administración de Personal"
"Alta tecnología en sistemas de Nomina y Administración de Personal"
 
SATRK GROUP
SATRK GROUPSATRK GROUP
SATRK GROUP
 
Soluciones Servicios Atlas
Soluciones Servicios AtlasSoluciones Servicios Atlas
Soluciones Servicios Atlas
 
Ficha contabilidad c3
Ficha contabilidad c3Ficha contabilidad c3
Ficha contabilidad c3
 
PresenceTech and Huaris Case Study
PresenceTech and Huaris Case StudyPresenceTech and Huaris Case Study
PresenceTech and Huaris Case Study
 
Una apuesta por la integración: Huaris
Una apuesta por la integración: HuarisUna apuesta por la integración: Huaris
Una apuesta por la integración: Huaris
 
Introducción de la Telegesión
Introducción de la TelegesiónIntroducción de la Telegesión
Introducción de la Telegesión
 
Ruei niveles servicio
Ruei niveles servicioRuei niveles servicio
Ruei niveles servicio
 
Estrategia de implantacion_de_itil_en_una_gran_corporacion_telefonica
Estrategia de implantacion_de_itil_en_una_gran_corporacion_telefonicaEstrategia de implantacion_de_itil_en_una_gran_corporacion_telefonica
Estrategia de implantacion_de_itil_en_una_gran_corporacion_telefonica
 
Estilo arquitectonico
Estilo arquitectonicoEstilo arquitectonico
Estilo arquitectonico
 
Tecnología en Retail - Lecciones Aprendidas
Tecnología en Retail - Lecciones AprendidasTecnología en Retail - Lecciones Aprendidas
Tecnología en Retail - Lecciones Aprendidas
 

Último

Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfvictorbeltuce
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxNataliaGonzalez619348
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docxAgustinaNuez21
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxJUANCARLOSAPARCANARE
 
MODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docxMODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docxRAMON EUSTAQUIO CARO BAYONA
 
05 Fenomenos fisicos y quimicos de la materia.pdf
05 Fenomenos fisicos y quimicos de la materia.pdf05 Fenomenos fisicos y quimicos de la materia.pdf
05 Fenomenos fisicos y quimicos de la materia.pdfRAMON EUSTAQUIO CARO BAYONA
 
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfFichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfssuser50d1252
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Angélica Soledad Vega Ramírez
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxEribertoPerezRamirez
 
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfFichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfssuser50d1252
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressionsConsueloSantana3
 

Último (20)

Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docx
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
 
MODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docxMODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docx
 
05 Fenomenos fisicos y quimicos de la materia.pdf
05 Fenomenos fisicos y quimicos de la materia.pdf05 Fenomenos fisicos y quimicos de la materia.pdf
05 Fenomenos fisicos y quimicos de la materia.pdf
 
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfFichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
Earth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversaryEarth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversary
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...
 
PPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptxPPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptx
 
recursos naturales america cuarto basico
recursos naturales america cuarto basicorecursos naturales america cuarto basico
recursos naturales america cuarto basico
 
TL/CNL – 2.ª FASE .
TL/CNL – 2.ª FASE                       .TL/CNL – 2.ª FASE                       .
TL/CNL – 2.ª FASE .
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
 
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfFichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressions
 
La luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luzLa luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luz
 

Hacklab cordoba owasp-top10

  • 1. Miguel Ángel Arroyo Moreno Carlos García García Juan José Rider Jiménez I Hacklab en Córdoba · www.hacklabcordoba.com
  • 2. Algo sobre mi  Profesional desde 2001.  Experto en e-commerce: Verified By VISA, SecureCode, etc.  OWASP member desde 2010. Miembro del Spain Chapter.  Fundador empresa www.wul4.es  Twitter: @jjriderWul4  Email: jjrider@wul4.es / juan.rider@owasp.org 2
  • 3. Algo sobre OWASP El proyecto abierto de seguridad en aplicaciones Web (OWASP por sus siglas en inglés) es una comunidad abierta y libre de nivel mundial enfocada en mejorar la seguridad en las aplicaciones de software. Nuestra misión es hacer la seguridad en aplicaciones "visible", de manera que las organizaciones pueden tomar decisiones sobre los riesgos en la seguridad de aplicaciones. Todo el mundo es libre de participar en OWASP y todos los materiales están disponibles bajo una licencia de software libre y abierto. http://www.owasp.org 3
  • 4. ¿Para qué sirve el OWASP Top 10?  La madre del cordero:  No se construyen web seguras a menos que se conozca cómo atacarlas  El Problema:  Para el 99% de los desarrolladores los tests de seguridad son un arte oscuro  La solución?  Formación básica y conocimiento de posibles ataques
  • 5. OWASP Top 10 A1 Ataques de inyección (SQL inyection, etc) A2 Cross-Site Scripting (XSS) A3 Gestión de sesiones y ataques contra la autenticación A4 Exposición de referencias a objetos de forma directa = A5 Cross-Site Request Forgery (CSRF) = A6 Errores de configuración de la seguridad NEW A7 Errores al restringir accesos a URLs A8 Redirects y Forwards no validados NEW A9 Almacenamiento criptográfico inseguro A10 Comunicaciones inseguras
  • 6. ¿Cómo se calcula el OWASP Top 10? Threat Attack Weakness Weakness Technical Impact Business Impact Agent Vector Prevalence Detectability 1 Easy Widespread Easy Severe ? 2 Average Common Average Moderate ? 3 Difficult Uncommon Difficult Minor 1 2 2 1 A1-Inyección 1.66 * 1 6 1.66 weighted risk rating
  • 7. A1: Ataques de inyección En qué consiste… Mandar información a una aplicación y que ésta la interprete como parte de un comando, ya sea SQL, de sistema, LDAP, etc. Campos de acción Casi cualquiera que imaginemos… SQL, LDAP, XPath, ORM(Hibernate, etc), OS, etc. Impacto Severo. En el caso de PCI tenemos que tener especial cuidado en el acceso a los datos y en el control de acceso a las aplicaciones que muestran datos de tarjeta.
  • 8. A1: Ataques de inyección "SELECT * FROM Account Summary accounts WHERE Account: Knowledge Mgmt Communication Administration Bus. Functions Legacy Systems Human Resrcs Application Layer E-Commerce Transactions Web Services acct=‘’ OR 1=1-- SKU:: Directories Accounts Acct:5424-6066-2134-4334 Databases Finance HTTP Billing HTTP SQL DB Table Acct:4128-7574-3921-0192 response  ’" request query Acct:5424-9383-2039-4029  APPLICATION   Acct:4128-0004-1234-0293  ATTACK  Custom Code 1. Se presenta un formulario al atacante 2. Se envía el ataque enviando datos ‘no-esperados’ App Server 3. La aplicación reenvia esos Web Server datos embedidos en una SQL Hardened OS Network Layer 4. La BD ejecuta la query y devuelve todos los datos a la aplicación Firewall Firewall 5. La aplicación toma los datos y se los devuelve al atacante
  • 9. A1: Ataques de inyección Cómo evitarse 1. Evitar el uso de interpretes. Esto nomalmente no es posible. 2. Usar un interfaz para acceder a estos interpretes que permita el ‘binding’ de estos valores. Ej: PreparedStatements o Stored Procedures. 3. Codificar/Validar todas las entradas antes de pasarlas al intérprete. • Uso de ‘listas blancas’ • Limitar privilegios de acceso a los datos(Usuario de BD) • ESAPI.Encoder Solución: Uso de filtros HTTP de validación en base a Patrones y PreparedStatements. Más info: http://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet
  • 10. A2: Cross-Site Scripting (XSS) En qué consiste… Cuando se le devuelve a un usuario un script previamente introducido por un atacante. El usuario ‘confia’ en el portal. Campos de acción En aplicaciones donde lo que uno escribe/envía, otro lo recibe, etc. Varios tipos: 1. Directo(El script puede encontrarse en BD) 2. Indirecto o reflejado (La web usa un parámetro de entrada en la respuesta) 3. XST(Cross Site Tracing) que usa el método TRACE de HTTP para obtener las credenciales de usuario ‘Basic-Auth’ Impacto Severo. Desde obtener el identificador de sesión y reenviarlo de forma silenciosa a un atacante como instalar un proxy en el navegador para observar todo el tráfico.
  • 11. A2: XSS 1 Supongamos que existe un servicio de ‘buzón’ de administrador Aplicación con vulnerabilidad XSS El atacante envia el script en el mensaje que se almacena en BD Communication Administration Bus. Functions E-Commerce Transactions Knowledge Accounts 2 El administrador visualiza el mensaje Finance Mgmt Custom Code El script se interpreta con los privilegios y permisos del administrador 3 El Script envía la cookie de sesión al atacante
  • 12. A2: XSS Cómo evitarse 1. Evitar devolver los valores de entrada en la página de salida. Ni incluir los valores recogidos.(esto es imposible en muchos casos) 2. Escaneos periódicos 3. Para defendernos, codificar/validar todas las entradas de usuario usando listas blancas, ESAPI, y en el caso de tener que incluir grandes cantidades de HTML, usar AntiSamy. http://www.owasp.org/index.php/ESAPI http://www.owasp.org/index.php/AntiSamy Solución: Uso de validaciones en base a Patrones. Uso de librerias de OWASP ESAPI y AntiSamy String safe = ESAPI.encoder().encodeForJavaScript( request.getParameter( "input" ) ); Más info: http://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_S heet
  • 13. A3: Sesiones y autenticación En qué consiste… En obtener los datos de autenticación del usuario(LDAP) o bien su identificador de sesión(JSESSIONID) Cómo se obtienen 1. HTTP es un protocolo sin-estado. Las credenciales viajan en TODA petición.  Se debe usar protocolo seguro siempre que se envíen. 2. Accediendo a logs que contienen el identificador de sesión.  El identificador de sesión NO debe almacenarse en logs, ni usar reescritura de URLs… 3. Ataques de ‘session fixation’  Si un ID de sesión no es válido, no darle validez 4. Mediante sistemas de autologin, remember-me, recordatorios de password con email, etc. 5. Obtener las sesiones persistentes  Destruir la sesión y tiempos de vida cortos(15minutos) Impacto Severo. Apropiación indebida de los privilegios de usuario.
  • 14. A3: Sesiones y autenticación 1 Usuario envía credenciales Administration Communicatio Bus. Functions www.boi.com?JSESSIONID=9FA1DB9EA... Transactions E-Commerce Knowledge Accounts Finance Mgmt n Aplicación usa reescritura de 2 URLs Custom Code 3 El usuario cierra el browser y deja su PC 5 El hacker usa el id de 4 El hacker accede al PC y busca sesión y toma el control en el historico de navegación de la sesión
  • 15. A3: Sesiones y autenticación correo o un El hacker envía un 1 link a un usuario registrado con un id de session generado por él www.boi.com?JSESSIONID=9FA1DB9EA... El usuario accede a la aplicación y se autentica 2 Knowledge Mgmt Communication Administration Bus. Functions Transactions E-Commerce Accounts Finance La aplicación admite el id de sesión porque cumple sus patrones 3 Custom Code Aplicación usa reescritura d URLs 4 El hacker usa el id de sesión y toma el control de la sesión
  • 16. A3: Sesiones y autenticación Cómo evitarse 1. Verificar la arquitectura • Debe ser simple, centralizada y estandarizada (Ej. LDAP) • Asegurarse que tanto el id de sesión como las credenciales siempre viajan seguras 2. Verificar la implementación • Examinar todas las funciones de creación/destrucción de sesiones y comprobación de usuario. • Verificar que el logout destruye la sesión 3. Escaneos periódicos Solución: Muchas opciones.
  • 17. A4: Referencias inseguras a objetos En qué consiste… Hay que proteger el acceso a los datos. En una aplicación web esto implica acceso a opciones de menú, URLs, etc. Esto está en consonancia con el 6.5.7. The ‘schoolboy mistake’ • Ocultar las referencias en campos hidden. • Sólo mostrar los objetos a los que tiene acceso el usuario(menús, botones, etc) • Realizar comprobaciones en el cliente …. Y luego no hacerlo en el servidor • Usar un valor de un parámetro (lista de valores) para acceder a una funcionalidad. Aplicaciones vulnerables Aquellas que reciben como parámetro el procedimiento remoto a ejecutar…. Impacto Implica ciertos conocimientos de la aplicación a atacar. Acceso no autorizado a datos/operaciones.
  • 18. A4: Referencias inseguras a objetos Como veo que un https://www.onlinebank.com/user?acct=6065 campo es el ‘acct’ con valor 6065… pruebo el 6066 Y bingo! Ya tengo acceso a otra cuenta.
  • 19. A4: Referencias inseguras a objetos Cómo evitarse 1. Eliminar el método de acceso usando una referencia fija Se pueden usar referencias ‘temporales’(ESAPI proporciona esa funcionalidad) 2. Validar la referencia al objeto • Validar el formato de la referencia • comprobar que el usuario realmente tiene privilegios(filtros, Spring Security, etc) 3. Cuidado con sistemas REST
  • 20. A5: CSRF En qué consiste… Este tipo de ataque se produce cuando una web permite realizar operaciones sensibles a usuarios sin un rigor adecuado. A diferencia del XSS aquí quien confía es la web en el usuario y no el usuario en la web. La base del problema • Los navegadores incluyen las credenciales en cada petición. ¿Qué ocurre si en una web maligna se hace referencia a un contenido u operación de una aplicación que admite CSRF? • Así, TODAS las aplicaciones que dejan la autenticación/autorización únicamente en el sistema de credenciales del contenedor(Cookies de sesión, Basic-Auth, IP, Certificado X.509 de cliente, usuario de Dominio…) son VULNERABLES. Impacto Aunque en general todas las aplicaciones son vulnerables, es dificil explotar dicha vulnerabilidad porque implica un conocimiento profundo de la aplicación atacada.
  • 21. A5: CSRF El atacante almacena en ataque en una web o bien manda un 1 correo Aplicación vulnerable Un tag ‘<img ..>’ a CSRF contiene el ataque Administration Communicatio Bus. Functions Transactions E-Commerce n nowledge Accounts Finance Mgmt Mientras ve el portal del atacante, la victima 2 K se loguea sin saberlo en la aplicación Custom Code 3 La aplicación cree que El tag ‘<img’ cargado es una solicitud de un por el browser de la usuario legítimo y victima le lleva a la realiza la operación aplicación y usa sus credenciales precargadas
  • 22. A5: CSRF Cómo evitarse 1. Enviar/Usar un token único que se debe enviar/recibir en operaciones sensibles. 2. Realizar una segunda autenticación para determinadas operaciones. 3. Sistemas CAPTCHA Qué NO VALE 1. Sólo admitir peticiones por POST 2. Reescritura de URLs Más info www.owasp.org/index.php/CSRF_Prevention_Cheat_Sheet
  • 23. A6: Configuraciones de Seguridad En qué consiste… Si se usa una determinada API o plataforma de seguridad, es importante que se configure adecuadamente. Ejemplos de frameworks de seguridad: Spring Security, HDIV, ESAPI, JASS, Jguard, etc. Incluso las propias. También se engloban aquí las APIs criptográficas: BouncyCastle, JSSE, XML Signature, etc…. La base del problema • El código fuente no es un secreto. • La configuración de la seguridad es distinta dependiendo del entorno. • Desarrollo de ‘puertas traseras’ para pruebas que pasan a REAL • Falta de actualización/control de las librerias de seguridad • Presencia de cuentas por defecto, etc Impacto El atacante debe ser un poco friki(pero los hay). El atacante puede, al tener acceso, incorporar scripts XSS, obtener datos de usuarios, cuentas, etc.
  • 24. A6: Configuraciones de Seguridad Knowledge Mgmt Communication Administration Bus. Functions E-Commerce Transactions Accounts Finance Database Custom Code App Configuration Development Framework App Server QA Servers Web Server Hardened OS Atacante Test Servers Source Control
  • 25. A6: Configuraciones de Seguridad Cómo evitarse 1. Más formación y conocimiento en los sistemas de seguridad 2. Revisiones de código: también la configuración de la seguridad 3. Verificar periódicamente que no la API está libre de bugs de seguridad 4. Tener una arquitectura de seguridad debidamente documentada Qué NO VALEperiódicos de AppScan 5. Escaneos 1. Dar por hecho que el framework lo hace todo 2. Dar por hecho que la configuración es adecuada Más info Ver cada API/Librería
  • 26. A7: Restricción de acceso a URLs En qué consiste… ¿Cómo se protege el acceso a determinadas URLs/páginas? Es importante entender que aquí no se trata de proteger la aplicación como un todo, sino que usuarios con un determinado nivel de acceso no accedan a páginas administrativas . The ‘schoolboy mistake’ • Mostrar sólo los menús o links a los que tiene acceso el usuario en cuestión Impacto Es relativamente fácil el realizar estos ataques. El atacante puede visualizar información de otros usuarios o realizar acciones para las que no deberia tener permiso.
  • 27. A7: Restricción de acceso a URLs Me doy cuenta que parte de https://www.onlinebank.com/user/getAccounts la URL es el rol /user/getAccounts Modifico la URL para ver si funciona /admin/getAccounts, or /manager/getAccounts Si funciona…soy administrador
  • 28. A7: Restricción de acceso a URLs Cómo evitarse 1. Verificar la arquitectura de seguridad 2. Verificar que cada URL está protegida por un filtro (ya sea en el web.xml o producto /API) o bien introducir chequeos en el propio código(comprobación de roles y permisos) mediante sistemas como Spring Security, ESAPI, etc. 3. Usar sistemas/frameworks que controlen esta funcionalidad 4. Hacer hacking ético (WebScarab por ejemplo) para forzar/testar este tipo de intrusiones. 5. Escaneos periódicos 6. Toda aplicación debe cumplir: a) Restringir acceso sólo a usuarios autenticados b) Chequear el acceso en base al rol del usuario c) Deshabilitar acceso a ficheros protegidos o de configuración
  • 29. A8: Redirects and forwards inválidos En qué consiste… Es relativamente común la práctica de redireccionar a otra página e incluso incorporar parámetros en la URL. Si no se chequean esos parámetros, el atacante podria reenviar al usuario a una página o portal malicioso. El caso de los forwards es similar. Consisten en enviar la misma petición a otra página(habitualmente de la misma aplicación). Si la página a realizarse el forward es un parámetro o similar, se podría saltar el control de autenticación o autorización. The ‘schoolboy mistake’ • No validar los parámetros que pueden usarse al abrir una ventana o realizar un forward. Importante…. NO VALE CON COMPROBAR EN EL CLIENTE. • IMPORTANTE: ESTO NO ES PISHING Impacto Es complicado el llevar a cabo estos ataques porque no todas las aplicaciones usan estos métodos.
  • 30. A8: Redirects and forwards inválidos 1 El atacante envía el ataque via email o link From: Tu Banco(o tu mujer) Subject: Te ha tocado un premio Enhorabuena, pincha aqui, 3 La aplicación redirige inconsciente de la vida! a la víctima al portal fraudulento Knowledge Mgmt Communication Administration Bus. Functions Transactions E-Commerce Accounts Finance La victima pincha en el ink que le lleva a la 2 página del banco…(con un regalo) Custom Code LA petición viaja a la aplicación vulnerable, que usa el parámetro mal formado para reenviar al usuario a la url incorrecta Evil Site 4 El atacante instala software http://www.irs.gov/taxrefund/claim.jsp?year= en el PC del usuario o le 2006&… &dest=www.evilsite.com solicita información
  • 31. A8: Redirects and forwards inválidos Cómo evitarse 1. Evitar usar redirects y forwards 2. Si se usan, no usar parámetros como parte de la URL 3. Si se deben usar, validar que cada parámetro es válido y está autorizado para el usuario o bien ‘mapear’ la petición en el servidor con la URL en cuestión. 4. Hacer hacking ético (WebScarab por ejemplo) para forzar/testar este tipo de intrusiones. 5. Escaneos periódicos 6. ESAPI proporciona métodos seguros de redirects y forwards. Ver: SecurityWrapperResponse.sendRedirect( URL ) http://owasp-esapi-java.googlecode.com/svn/trunk_doc/org/owasp/esapi/filters/ SecurityWrapperResponse.html#sendRedirect(java.lang.String)
  • 32. A9: Almacenamiento criptográfico inseguro En qué consiste… Esto ocurre en las siguientes situaciones: 1. No se identifica adecuadamente qué información se debe proteger. 2. No se conoce adecuadamente donde se almacena dicha información(BD, ficheros, backups, etc) 3. No se encripta la información de forma adecuada(criptografía insegura, claves criptográficas comprometidas, etc) 4. No se tiene una política de destrucción de los datos cifrados ni renovación de las claves de cifrado The ‘schoolboy mistake’ • Usar algoritmos de criptografía ‘debiles’. Ej: DES • Almacenar las claves de cifrado de forma insegura o directamente en claro. Impacto Es dificil que se produzca esta situación. Pérdida de credibilidad de toda la compañia.
  • 33. A9: Almacenamiento criptográfico inseguro La víctima introduce 1 su PAN para comprar Bus. Functions Administration Communicatio Transactions E-Commerce Knowledge Accounts Finance Mgmt n Custom Code El atacante recopila Log files 4 los logs y roba 4 La aplicación guarda en 2 millones de los logs el PAN pq lo tarjetas necesita luego Las trazas están 3 accesibles a todos los operadores, uno de ellos, becario, pasando una mala racha
  • 34. A9: Almacenamiento criptográfico inseguro Como evitarlo 1. Verificar la Arquitectura: a) Identificar qué se debe proteger. b) Identificar dónde se almacena(BD, ficheros, backups, etc) c) No se encripta la información de forma adecuada(criptografía insegura, claves criptográficas comprometidas, etc) d) No se tiene una política de destrucción de los datos cifrados ni renovación de las claves de cifrado 2. Usar mecanismos de encriptación adecuados. Posibilidades: a) Ficheros completos b) Base de Datos c) Elemento en cuestión 3. Usar los mecanismos correctamente: a) Strong cryptography (Preferiblemente, un HSM) b) Proteger las claves(generación, uso y destrucción)  HSM c) Tener planificado un posible cambio de claves(incluso en caso de urgencia) 4. Verificar la implementación(código, librerias, etc)
  • 35. A10: Insuficiente protección de comunicaciones En qué consiste… Esto ocurre en las siguientes situaciones: 1. No se identifica adecuadamente qué información a enviar/recibir se debe proteger(identificadores de clientes, tarjetas, etc) 2. No se conoce adecuadamente donde se envía dicha información(BD, clientes, servicios web o procesos remotos internos) 3. No se utilizan métodos adecuados para proteger las comunicaciones 4. A veces, el problema es el cliente (proxy) The ‘schoolboy mistake’ • Se encriptan con HTTPS la navegación, pero es posible también hacerlo por HTTP o bien se envían las credenciales de usuario por email ordinario Impacto Es ciertamente dificil que se produzca este ataque(Man in the middle) Pérdida de credibilidad de toda la compañia.
  • 36. A10: Insuficiente protección de comunicaciones Clientes Victima Custom Code Backend Systems Empleados 1 2 Se capturan Se capturan credenciales y credenciales y datos datos que viajan Desde el por la red exterior.. Desde el interna interior…
  • 37. A10: Insuficiente protección de comunicaciones Como evitarlo 1. Verificar la Arquitectura: a) Identificar qué se debe proteger. b) Identificar dónde se almacena(BD, ficheros, backups, etc) c) No se encripta la información de forma adecuada(criptografía insegura, claves criptográficas comprometidas, etc) d) No se tiene una política de destrucción de los datos cifrados ni renovación de las claves de cifrado 2. Usar mecanismos de encriptación adecuados. Posibilidades: a) Ficheros completos b) Base de Datos c) Elemento en cuestión 3. Usar los mecanismos correctamente: a) Strong cryptography (Preferiblemente, un HSM) b) Proteger las claves(generación, uso y destrucción)  HSM c) Tener planificado un posible cambio de claves(incluso en caso de urgencia) 4. Verificar la implementación(código, librerias, etc)

Notas del editor

  1. javascript:void prompt(&quot;Introduce la cookie:&quot;,document.cookie).replace(/[^;]+/g,function(_){document.cookie=_;});