PAW

Lic. en Sistemas de Información

PAW

Lic. en Sistemas de Información

Speaker:

Tomás DELVECHIO

tdelvechio@unlu.edu.ar

Desarrollo Web Seguro

Desarrollo Web Seguro

Contexto: Internet

Posibles ataques desde cualquier lugar del mundo

Concepto: Superficie de Ataque

¿Que Cosas estan fuera de nuestro control (como desarrolladores)?

Hardware

Red

Plataforma (nube)

La aplicación debe ser en si misma segura

¿Como abordar todo esto?

Estandares

Controles

Metodologías

Controles

Controlar el Estandar y las Metodologias

Control de Versiones

Testing

CI -> CD

Estandares

Estandarizar como Proceso

Formato de Código

Como se gestiona una excepción

Como se valida / sanitiza

Metodologías

Como detectar vulnerabilidades

Como Rankear vulnerabilidades

Metodologías - STRIDE

Spoofing Identity - Suplantación

Tampering Data - Manipulación de datos

Repudiation - Negar la autoría de una acción.

Information Disclosure - Revelación de Información

Denial of Service - Denegación de Servicio

Elevation of Privilege - Obtener mayores capacidades que las permitidas

Metodologías - DREAD

(DAMAGE + REPRODUCIBILITY + EXPLOITABILITY + AFFECTED USERS + DISCOVERABILITY) / 5

OWASP

Open Web Application Security Project

https://owasp.org/

Si lo tuyo no es la seguridad, algunos de sus proyectos es lo mínimo necesario para saber

OWASP Top Ten

Esfuerzo global por catalogar las 10 vulnerabilidades mas comunes en proyectos web

OWASP Top Ten

A1:2017 - Inyección de Código


              $query = "SELECT * FROM accounts WHERE custID='" . request->getParameter("id") . "'";
              // URL: http://example.com/app/accountView?id=' or '1'='1
              // $query == SELECT * FROM accounts WHERE custID='' or '1'='1'
          

OWASP Top Ten

A2:2017 - Pérdida de autenticación

  • Ataques de Fuerza Bruta
  • No usar MultiFactor de autenticación
  • Permitir contraseñas "debiles"
  • Sesiones "extensas"

OWASP Top Ten

A3:2017 - Exposición de datos sensibles

  • No usar mecanismo de encriptación
  • O usarlos de forma incorrecta
  • O usarlos de forma parcial
  • Datos hasheados de forma incorrecta o debil

OWASP Top Ten

A3:2017 - Exposición de datos sensibles


            $password = 'Password';
            $hash_pass = password_hash($password, PASSWORD_DEFAULT);
            password_verify('Password', $hash_default_salt ) # true
          
Password Hash With Salt

OWASP Top Ten

A5:2017 - Pérdida del Control de Acceso

  • Carencia de Controles sobre autorizaciones
  • Otorgar privilegios a partir de datos que vienen de Cliente
  • Elevación de privilegios no autorizada

OWASP Top Ten

A6:2017 - Configuraciones de Seguridad Incorrectas

  • Web Servers
  • Lenguaje
  • Framework
  • Dependencias

OWASP Top Ten

A6:2017 - Configuraciones de Seguridad Incorrectas

Web Server Configs En produccion


            ServerSignature Off
            ServerTokens Prod
            FileETag None

            # En virtualhosts
            Options -Indexes
            AllowOverride None
          

Ejemplos de Apache Dir Index: 1, 2

OWASP Top Ten

A6:2017 - Configuraciones de Seguridad Incorrectas

Configuraciones de Seguridad en Lenguajes


            php -m # ver modulos activos
            
            # En php.ini
            display_errors=Off # production; On para dev
            max_execution_time =  30
            max_input_time = 30
            memory_limit = 40M
            post_max_size=1K
            upload_max_filesize=1M
          

OWASP Top Ten

A7:2017 - Secuencia de Comandos en Sitios Cruzados (XSS)

Ver Ejemplo

OWASP Top Ten - Otras vulnerabilidades

No mantenerse actualizado (A9:2017)

Falta de Logs (A10:2017)

Falta de Monitoreo (A10:2017)

Otros Proyectos de OWASP

OWASP ASVS - Application Security Verification Standard

OWASP Proactive Controls

OWASP SAMM - Software Assurance Maturity Model

Referencias Bibliográficas

Mitnick, K. D., & Simon, W. L. (2011). The art of deception: Controlling the human element of security. John Wiley & Sons.

Tori, C. (2008). Hacking ético.

Viega, J., & McGraw, G. R. (2001). Building secure software: how to avoid security problems the right way. Pearson Education.