10 Principales Controles Proactivos de OWASP

Post on 13-Apr-2017

354 views 6 download

Transcript of 10 Principales Controles Proactivos de OWASP

root@b3h1qu3:~# CONTROLES PROACTIVOS DE OWASP ■

M e t o d ó l o g o y J e f e d e P r o y e c t o s d e H a c k i n g É t i c o | D i r e c c i ó n d e S e g u r i d a d I n f o r m á t i c a | V i c e r r e c t o r í a d e T e c n o l o g í a | U n i v e r s i d a d d e l a s C i e n c i a s I n f o r m á t i c a s | B l o g > B e h i q u e D i g i t a l

Msc. Henry Raúl González Brito

-C1-VERIFICA LA SEGURIDAD ANTES Y DESPUÉS

VERIFICA LA SEGURIDAD ANTES Y DESPUÉS

• Ten en cuenta la seguridad desde etapas tempranas de concepción del proyecto.

•No existe una tecnología que sea inmune a las vulnerabilidades. Desde el comienzo debes tener en cuenta que tu aplicación deberá permitir que le sea que actualizada la base tecnológica.

• Selecciona una base tecnológica de fabricantes que suministran soporte.

-C2- PARAMETRIZA LAS CONSULTAS

PARAMETRIZA LAS CONSULTAS

• Los ataques de inyección de código SQL son unos de los más importantes problemas de seguridad a nivel mundial.

• La inserción de un simple código SQL puede permitir que la base de datos entera sea robada, eliminada o modificada.

• Si tenemos en cuenta que normalmente las bases de datos de varias aplicaciones web son gestionadas por el mismo SGBD. Puede afirmarse que un ataque contra una aplicación puede afectar al resto de las aplicaciones que consuman servicios del SGBD común.

-C3- CODIFICA LOS DATOS

CODIFICA LOS DATOS

• Convertir caracteres especiales de una forma que evite la ejecución de código ofuscado en el cliente.

•Debe aplicarse en el momento en que se adicionen los datos al documento HTML.

-C4- VALIDA TODAS LAS ENTRADAS

VALIDA TODAS LAS ENTRADAS

• Todos los datos provenientes del clientes deben ser tratados como no confiables y deben ser analizados antes de ejecutar cualquier operación con ellos.

• La validación debe ser sintáctica y semántica.

• La validación final siempre tiene que ejecutarse en el servidor de aplicaciones.

VALIDA TODAS LAS ENTRADAS

• Campos de formularios.

• Encabezados HTTP

• Cookies.

• Parámetros GET y POST (incluyendo campos ocultos)

• Archivos.

•Servicios (Web service, XML-RPC, etc.)

• ¿Otros métodos HTTP?

VALIDA TODAS LAS ENTRADAS

•Utiliza listas negras de contenido malicioso.

•Utiliza listas blancas de contenido “confiable”.

• Recuerda que la validación no hace necesariamente las entradas más seguras.

• La seguridad de la aplicación tiene que reforzarse donde las entradas son empleadas.

-C5- IMPLEMENTA CONTROLES DE IDENTIDAD Y

AUTENTICACIÓN

IMPLEMENTA CONTROLES DE IDENTIDAD Y AUTENTICACIÓN

• Implementa un mecanismo racional ante ataques de fuerza bruta.

• Implementa un mecanismo seguro de recuperación de contraseñas.

• Evita que las contraseñas sean recordadas y cacheadas.

IMPLEMENTA CONTROLES DE IDENTIDAD Y AUTENTICACIÓN

• ¿Cómo se generan, activan, expiran y transmiten los ID de sesión? (Ataques: Fijación de sesiones, secuestro de sesiones, predicción de ID de sesiones, etc.)

• Repetir el proceso de autenticación ante operaciones sensibles como la confirmación de una compra o el cambio de contraseña.

• Envía siempre las credenciales a través de canales seguros.

IMPLEMENTA CONTROLES DE IDENTIDAD Y AUTENTICACIÓN

• Evita usar credenciales por defecto y la predicción de las existentes.

IMPLEMENTA CONTROLES DE IDENTIDAD Y AUTENTICACIÓN

• Evita la enumeración de credenciales de usuarios.

IMPLEMENTA CONTROLES DE IDENTIDAD Y AUTENTICACIÓN

• Evita el envío constante de credenciales primarias de usuarios.

IMPLEMENTA CONTROLES DE IDENTIDAD Y AUTENTICACIÓN

• ¿Cómo expiran las cookies de sesión?

IMPLEMENTA CONTROLES DE IDENTIDAD Y AUTENTICACIÓN

-C6- IMPLEMENTA CONTROLES DE ACCESO

IMPLEMENTA CONTROLES DE ACCESO

•No confundir la autorización con la autenticación.

• Los controles de acceso son simples: Solo tienen que decir si el usuario tiene o no acceso a un determinado recurso.

•Obliga todas las peticiones a pasar por un mecanismo único de autorización.

•Deniega el acceso a los recursos por defecto.

• Aplica el principio de menor privilegio.

• Evita mezclar él código de la lógica de procesos con el código de la lógica de autorización: This makes auditing or proving the security of that software very difficult and time consuming.

IMPLEMENTA CONTROLES DE ACCESO

• Realiza chequeos de autorización dato/usuario en lugar de dato/rol.

IMPLEMENTA CONTROLES DE ACCESO

• Los datos necesarios para la autorización deben provenir del servidor y no del cliente.

IMPLEMENTA CONTROLES DE ACCESO

-C7- PROTEGE LOS DATOS

PROTEGE LOS DATOS

•Determina cuales son los datos sensibles y encríptalos (Ej. Contraseñas almacenadas en la BD)

• Encripta los datos transmitidos usando mecanismo como TLS (HTTPS).

• Trata de que los datos no sean expuestos accidentalmente.

• Evita la captura de información mediante técnicas de enumeración.

• Si vas a crear un método de encriptación propio, más vale que sepas lo que haces.

-C8- IMPLEMENTA MECANISMOS DE REGISTROS DE

EVENTOS Y DETECCIÓN DE INTRUSOS

IMPLEMENTA MECANISMOS DE REGISTROS DE EVENTOS Y DETECCIÓN

DE INTRUSOS•Monitoreo de la aplicación

• Estadísticas de procesos.

• Auditoría informática.

•Detección de Intrusos (IDS)

• Actividades forenses.

•Debe colectarse la información necesaria, ni mucha ni poca.

• Registrar los ¿Quién, Qué, Cuando, Cómo?

•No registrar datos confidenciales (Desde contraseñas de usuarios hasta información secreta)

• Estar al tanto de las alertas y registros de actividades.

• Implementar firewall de aplicaciones.

IMPLEMENTA MECANISMOS DE REGISTROS DE EVENTOS Y DETECCIÓN

DE INTRUSOS

-C9-FORTALECE Y APÓYATE EN LA SEGURIDAD DE

LA TECNOLOGÍA BASE

FORTALECE Y APÓYATE EN LA SEGURIDAD DE LA TECNOLOGÍA BASE

• Casi siempre la tecnología base viene con un conjunto de prácticas de seguridad implementadas.

• Los fabricantes mantienen un control sobre las vulnerabilidades descubiertas y liberan nuevas versiones para corregir estas.

• La tecnología base viene con una arquitectura de seguridad predefinida que es preferible comprender y usar antes de forzarla a utilizar métodos personalizados.

FORTALECE Y APÓYATE EN LA SEGURIDAD DE LA TECNOLOGÍA BASE

• Infórmate periódicamente sobre las vulnerabilidades y actualizaciones disponibles para aplicar los parches necesarios.

• Planificar la actualización de la base tecnológica según los plazos de soporte de los fabricantes.

•Desarrollar teniendo en cuenta que tienes que actualizar la tecnología base y sigue las pautas de los fabricantes.

• Asume el cambio como algo permanente.

-C10- GESTIONA CORRECTAMENTE LOS ERRORES

GESTIONA CORRECTAMENTE LOS ERRORES

• Los errores exponen estructuras internas de las aplicaciones web, permitiendo adquirir un mejor conocimiento de esta en función de diversificar las opciones de ataques disponibles.

• Los mensajes de error específicos pueden ayudar a un atacante a tomar decisiones durante la intrusión.

• Los errores pueden colocar el sistema en un estado inestable.

Existe el usuario pero la Contraseña no es

incorrectaEl usuario no existe

• Los mensajes de errores deben contener informaciones generales pero deben permitir que el usuario pueda guiarse.

GESTIONA CORRECTAMENTE LOS ERRORES

•Gestiona los errores de forma centralizada y evitando bloques duplicados try/catch.

• Registra los errores producidos en el log de la aplicación web.

GESTIONA CORRECTAMENTE LOS ERRORES

GESTIONA CORRECTAMENTE LOS ERRORES

• Registra los errores producidos en el log de la aplicación web.

root@b3h1qu3:~# CONCLUSIONES ■

CIBERDELINCUENTES

USUARIOSAplicación informática

CONCLUSIONES

• La seguridad informática es un proceso.

•Hay que estar actualizado sobre los incidentes y nuevas vulnerabilidades descubiertas.

• Profundiza en las buenas prácticas, componentes y soluciones para reforzar y mantener actualizada la seguridad de tus aplicaciones.

root@b3h1qu3:~# CONTROLES PROACTIVOS DE OWASP ■

M e t o d ó l o g o y J e f e d e P r o y e c t o s d e H a c k i n g É t i c o | D i r e c c i ó n d e S e g u r i d a d I n f o r m á t i c a | V i c e r r e c t o r í a d e T e c n o l o g í a | U n i v e r s i d a d d e l a s C i e n c i a s I n f o r m á t i c a s | B l o g > B e h i q u e D i g i t a l

Msc. Henry Raúl González Brito