LOS 7 PECADOS DEL DESARROLO WEB & TENTACIÓN DEL USUARIOS EN APLICACIONES MOVILES. www.owasp.org



Documentos relacionados
Hacking Ético Web. I Jornadas Tecnológicas CEEPS Carlos García García i52gagac@uco.es

Seguridad en Sitios Web de Alto Tráfico. Ing. Enrique Hurtarte Juárez

About Me. Mario Robles Tencio

Ataques XSS en Aplicaciones Web

b1010 formas de escribir código (in)seguro

OWASP Top Los diez riesgos más importantes en aplicaciones web. The OWASP Foundation. Felipe Zipitría

Web : Ataque y Defensa. Claudio Salazar Estudiante Ing. Civil Informática UTFSM Pinguinux Team

Desarrollo seguro en Drupal. Ezequiel Vázquez De la calle

Ingeniero Técnico en Informática - UCA Máster en Ingeniería del Software - US Máster en Seguridad de las TIC - US

Session Hijacking: Secuestro de sesiones en aplicaciones web empresariales

CONDICIONES TÉCNICAS PARA SERVICIO ILUMINACIÓN ZONAS WIFI PARA CLIENTES CORPORATIVOS. Vicepresidencia de Infraestructura

Segurinfo NOA Seguridad en el desarrollo de aplicaciones Web

Web: Ataque y Defensa. my kung fu is stronger than yours, The lone Gunmen

Seguridad de un Portal

INTRODUCCIÓN A LA SEGURIDAD EN SISTEMAS Y WEBS

Detectar y solucionar infecciones en un sitio web

Sesión 13. Seguridad en la web. Luisa Fernanda Rincón Pérez

Circular de Tecnología Pautas de seguridad para el desarrollo de aplicaciones Web

Guía de doble autenticación

3-ANÁLISIS DE VULNERABILIDADES

Software Criptográfico FNMT-RCM

Seguridad. Carlos A. Olarte Bases de Datos II

Inseguridad de los sistemas de autenticación en aplicaciones web

SECURITY DAY PERU. Ataques a las Aplicaciones Web. Explotación de Aplicaciones Web. Technologies SOLUTIONS FOR KEEPING YOUR BUSINESS UP

Capítulo 2.- Vulnerabilidades en aplicaciones web.

LOGO. Modulo 1. Carlos Villanueva

Fundamentos de programación Estudia las estructuras de control y cómo definir funciones en JavaScript.

Servicio de Notificaciones Electrónicas y Dirección Electrónica Habilitada

Seguridad en Aplicaciones Web

SEGURIDAD INFORMATICA PHISHING: Definición:


Seguridad en Aplicaciones Web

Control de acceso para aplicaciones Web

Resumen de Requisitos Técnicos para incorporación de Organismos a la Plataforma Integrada de Servicios Electrónicos del Estado

Infraestructura Tecnológica. Sesión 10: Sistemas cortafuego

Q-expeditive Publicación vía Internet

AUDITORÍAS TÉCNICAS PARA LA CERTIFICACIÓN DE LOS SISTEMAS DE RECOGIDA DE INICIATIVAS CIUDADANAS EUROPEAS

Transport Layer Security (TLS) Acerca de TLS

SEGURIDAD EN APLICACIONES WEB CON APACHE TOMEE. Ing. Javier Mantilla Portilla

In-seguridad y malware en dispositivos móviles

Servicios de Seguridad de la Información

PROGRAMACIÓN PÁGINAS WEB CON PHP

Programación páginas web con ASP.NET 3.5 (C#)

Especificaciones funcionales para el acceso al RAI por Web

ACCESO AL SERVIDOR EXCHANGE MEDIANTE OWA

PROGRAMA DEL CURSO. SEGURIDAD EN EQUIPOS INFORMATICOS MF0486_3 90 horas MEDIO-AVANZADO DURACION:

Seguridad en el manejo de la información asociada a las muestras (Ficheros automatizados) Granada 06/11/2012

Seguridad en Administración de Redes. INTEGRANTES: Santa Elena Rodríguez Calzada María de los Ángeles Ramírez Ortiz Liliana Gpe. Olivares Valdovinos.

Principales riesgos de seguridad en aplicaciones móviles OWASP Mobile Top 10

Diseño de aplicaciones móviles seguras en Android.

Seguridad en los Dispositivos Móviles. <Nombre> <Institución> < >

Ataques a Aplicaciones de Bases de Datos

DOCS. Pautas básicas para el DESARROLLO DE PLUGINS

S E G U R I D A D E N A P L I C A C I O N E S W E B

Información sobre seguridad

Un sistema adecuadamente refrigerado debe mantener una temperatura de grados.

Preguntas y respuestas sobre el cifrado de la información personal. La guía para aprender a cifrar tu información

Trucos para jugar con la criptografía en el desarrollo. Lic. Cristian Borghello, CISSP - MVP info@segu-info.com.

Seguridad. Estos son algunos de los elementos de alta tecnología que BANCOLOMBIA utiliza para garantizar la seguridad en sus transacciones:

Información sobre seguridad

Norma de uso Identificación y autentificación Ministerio del Interior N02

Seguridad en Servicios de Hosting

Su Seguridad es Nuestro Éxito

SISTEMAS IDEALES SISTIDE, S.A. SISTEMA GESTION DE USUARIOS

Trabajo elaborado para el área de Gestión de Redes y Datos

Invocación por protocolo de aplicaciones nativas desde páginas Web

Haga clic para modificar el estilo de título del patrón Haga clic para modificar el estilo de texto del patrón

Requisitos de control de proveedores externos

XPERTO EN DISEÑO DE PÁGINAS WEB

Capítulo 4 Pruebas e implementación de la aplicación CAPÍTULO 4 PRUEBAS E IMPLEMENTACIÓN DE LA APLICACIÓN

1

Capítulo VII PLAN DE IMPLEMENTACIÓN DE ALTO NIVEL

PARTE I. TECNICAS DE DESARROLLO

Gran número de usuarios accediendo a un único servicio y con un único protocolo. Servidores y clientes con distintos protocolos.

Procedimiento. Actualización de Kit de Conexión de Comercios Webpay versión 5.X a Canales Remotos Operaciones. Transbank S.A.

Seguridad en la red. Fuga o robo de información a causa de las siguientes razones:

Introducción a OWASP OWASP. The OWASP Foundation

INFORME DE EVALUACION DEL SISTEMA DE GESTION DE LA SEGURIDAD DE LA INFORMACION (SGSI), PERIODO

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

Infraestructura Tecnológica. Sesión 2: Mejoras adicionales al servidor de archivos

Cross Site Scripting. Conceptos Básicos y Casos prácticos. Antonio González Castro antonio@noveria.es

Infraestructura Tecnológica. Sesión 5: Arquitectura cliente-servidor

INTRODUCCIÓN A LA PROGRAMACIÓN WEB UNIDAD. Estructura de contenidos: cisvirtual@ucv.edu.pe. 1.

OWASP: Un punto de vista. aplicaciones web seguras

SERVICIO BODINTERNET GUÍA DE ACCESO AL MÓDULO DE CONFIGURACIÓN

Experiencias de Seguridad en SAP. Julio C. Ardita CYBSEC

Especificación WebService para:

Kaspersky Fraud Prevention for Endpoints

SEGURIDAD Y PROTECCION DE FICHEROS

Especificaciones de la oferta Servicios de administración de correo electrónico de Dell Security

SIEWEB. La intranet corporativa de SIE

Seguridad del Protocolo HTTP

Programación de código seguro

RETO FORENSE EPISODIO III Resumen Ejecutivo

RECETA ELECTRÓNICA Informe de Seguridad

Banco de la República Bogotá D. C., Colombia

Evolución de la seguridad en aplicaciones de comercio electrónico Dr. Gonzalo Álvarez Marañón

Contenido Derechos Reservados DIAN - Proyecto MUISCA

Transcripción:

LOS 7 PECADOS DEL DESARROLO WEB & TENTACIÓN DEL USUARIOS EN APLICACIONES MOVILES www.owasp.org

Quien soy? Ing. Elvin Vidal Mollinedo Mencia Profesional de seguridad + 9 años de experiencia en desarrollo seguro e infraestructura de telecomunicaciones, manejando de normativas CISA(COBIT), SOX(Ley Sarbanes Oxley), pentesting web, pentesting WI FI y electronica (hardware libre) Lider Capitulo Owasp Bolivia Miembro activo de la comunidad OWASP Elvin.mollinedo@owasp.org www.it-rational.com

Pecado I: Inyección Una inyección ocurre cuando los datos no validados (ni confiables) son enviados a un interprete como parte de un comando o consulta. Los datos hostiles del atacante pueden engañar al interprete, ejecutar comandos, o acceder datos no autorizados El atacante puede: BD completas - Descargar o eliminar información a la BD - Añadir comandos de SO - Ejecutar - Comprometer la BD o el servidor

Solicitud numérica (cliente) http://www.foo.bar/ver_productos.xxx?id= 1 or 1=1 Aplicación (servidor) select * from productos where prod_id = X Solicitud alfanumérica (cliente) http://www.foo.bar/ver_productos.xxx?nombre= nada or a = a Aplicación (servidor) select * from productos where prod_nombre = X

Usuario: Password: INICIO DE SESION admin'-- no importa Inyecciones Ingresar Código que genera el Query Si alguien se pregunta si esto tan grave puede ser real pues... sql = SELECT * FROM usuarios WHERE usuario = + usuario + and clave = + clave + Así se interpreta el query por el motor de BD SELECT * FROM usuarios WHERE usuario = admin -- and clave = no importa Este es un ejemplo de la vida real de un sitio que recibía pagos por tarjeta de crédito.

Usuario: Password: INICIO DE SESION UNION/**/.. no importa Ingresar 'UNION/**/SELECT/**/ CAST(usuario/**/as/**/int), Version(),1,1,1/**/ FROM/**/usuarios/**/ WHERE/**/usuario/**/>/**/ a '-- Inyección Código que genera el Query sql = SELECT * FROM usuarios WHERE usuario = + usuario + and clave = + clave + Así se interpreta el query por el motor de BD SELECT * FROM usuarios WHERE usuario = UNION SELECT CAST(usuario as int),version(),1,1,1 FROM usuarios WHERE usuario > a -- and clave = no importa Este es un ejemplo de la vida real de un sitio que recibía pagos por tarjeta de crédito.

OS Command Injection (OSi) Ejecución de comandos con información brindada por el usuario https://misitioinseguro.com/generarpdf.php?nombre=miinfo; cat /etc/passwd > /var/www/passwd Así se interpreta el comando al ejecutarse generarpdf reporte.html miinfo; cat /etc/passwd > /var/www/passwd.pdf El comando generarpdf genera un archivo PDF a partir de una platilla html Adicionalmente con el comando cat genera el archivo passwd.pdf en la raíz del sitio a partir del archivo passwd (Contraseñas) Por fortuna para el atacante el archivo passwd.pdf puede ser descargado desde: https://misitioinseguro.com/passwd.pdf

Prevención y remediación 1. SQLi Consultas parametrizadas Procedimientos almacenados Validación de entradas "*, ; : & % -( ) / < > + \" 2. OS Command Injection Listas blancas Validación de Entradas 3. Consejos comunes para hardening No utilizar el SA en su aplicación Cuenta de sistema operativo con permisos limitados Todas las validaciones se deben realizar en ambos lados: cliente y servidor

Pecado II: Fallo de autenticación Ocurre cuando usuarios anónimos intentan acceder a cuentas de usuarios válidos del sistema, cuando usuarios validos intentan obtener mayores privilegios de los reales o intentan disfrazar o eliminar acciones dentro del sistema

Sesiones 1. Para mantener el estado de la sesión se provee un identificador (Session_ID o Token) que es compartido entre el usuario y la aplicación web 2.Los atacantes pueden ejecutar dos tipos de Session Hijacking (secuestro de sesión): Orientados: el atacante impersonaliza a un usuario específico y privilegiado Genérico: impersonaliza a un usuario genérico del cual desconoce sus accesos Nombre de la Sesión de las aplicaciones PHP --> PHPSESSID J2EE --> JSESSIONID ColdFusion --> CFID y CFTOKEN ASP --> ASPSESSIONID ASP.NET --> ASP.NET_SessionId

Sesiones La sesión no debe tener información sensible (o debe estar cifrada) y debe ser almacenada en el servidor Podría (no deseable) contener dirección IP, User-Agent, e-mail, nombre de usuario, rol, privilegio, preferencias del usuario, último acceso, timeouts, etc. Credenciales y Sesiones No enviar información sensible en el URL http://example.com/accion; jsessionid=2p0oc2jdpxm0oqsndlpskhcjun2jv?parametro=valor No almacenar información sensible en Cookies Cookie: User=Juanito Cookie: Password=123

Sesiones 3 2 Ingeniería Social http://seguro.com/login.xxx? SessionID=1234 USUARIO Y CLAVE 1

Como evitar la Perdida de Autenticación y Gestión de Sesiones Verificar la arquitectura Autenticación debería ser simple, centralizada y estandarizada Utilizar el gestor desesiones estándar provisto por el servidor de aplicaciones no inventar uno propio! Estar seguro que SSL protege tanto las credenciales como las sesiones de usuario todo el tiempo Verificar la implementación No utilizar solamente análisis automático Verificar el certificado SSL Examinar todas las funciones relacionadas a autenticación Verificar que cierre de sesión efectivamente destruya la sesión Utilizar OWASP s WebScarab para testear la implementación

Pecado III XSS (Cross Site Scripting) Cross Site Scripting (XSS): ejecución de scripts y comandos no deseados a través de aplicaciones web, explotando la confianza del usuario Se originan por la validación incorrecta de variables que permiten ejecutar scripts en campos de entrada El atacante inyecta código malicioso (HTML y scripts) que son ejecutados en el entorno del navegador del cliente afectado

XSS (Cross Site Scripting) Mediante el control del navegador del usuario es posible realizar ataques de: Robo de sesión e identidad, mediante la manipulación de las cookies Phishing, mediante la modificación de la interface normal del sitio Redirección a sitios dañinos Existen tres tipo de XSS: Reflejados/No almacenados Almacenados DOM-XSS

1 XSS Atacante establece una trampa - actualiza perfil Aplicación con vulnerabilidad 2 Victima visualiza la página accede al perfil 3 Script silenciosamente envia la sesion de la victima al atacante

Como evitar Fallas de XSS No incluir entradas suministradas por el usuario en la página de salida Recomendación Principal: Codificar todos los datos de entrada en la página de salida (Utilizar OWASP s ESAPI para dicha tarea): http://www.owasp.org/index.php/esapi Siempre efectuar una validación positiva de todas las entradas realizadas por el usuario Definir políticas de Content Security Policy (W3C) (HTML5)

Pecado IV Referencia directa a objetos Una referencia directa a objetos ocurre cuando un desarrollador expone una referencia a un objeto de implementación interno, tal como un fichero, directorio, o base de datos.sin un chequeo de control de acceso u otra protección, los atacantes pueden manipular estas referencias para acceder datos no autorizados.

Referencia directa a objetos Atacante identifica su número de cuenta 6065?acct=6065 Lo modifica a un número parecido?acct=6066 Atacante visualiza los datos de la cuenta de la víctima

Como evitar Referencias Directas Inseguras a Objetos Eliminar la referencia directa a objetos Reemplazarla con un valor temporal de mapeo (ej. 1, 2, 3) ESAPI proporciona soporte para mapeos numéricos y aleatorios http://app?file=report123.xls http://app?file=1 http://app?id=9182374 http://aoo?id=7d3j93 Access Reference Map Report123.xls Acct:9182374 Validar la referencia directa al objeto Verificar que el valor del parámetro se encuentra adecuadamente formateado Verificar que el usuario se encuentra autorizado a acceder el objeto determinado Restricciones en los parámetros funcionan muy bien!

Pecado V Configuración defectuosa Una buena seguridad requiere tener definida e implementada una configuración segura para la aplicación, marcos de trabajo, servidor de aplicación, servidor web, base de datos, y plataforma. Todas estas configuraciones deben ser definidas, implementadas, y mantenidas ya que por lo general no son seguras por defecto. Esto incluye mantener todo el software actualizado, incluidas las librerías de código utilizadas por la aplicación.

Configuraciones inseguras Se requiere un proceso concertado, repetible y replicable, para desarrollar y mantener una correcta configuración de seguridad de la aplicación. Ejemplos: Plataformas vulnerables sin los últimos parches de seguridad Configuraciones iniciales o funciones innecesarias activadas Usuarios de sistema operativo o bases de datos con permisos excesivos LINUX & MAC OS Falla del bash Kernel MICROSOFT Configuracion por defecto Adminitrator sa

Prevenir configuraciones inseguras Los programas de auditoría de seguridad son por lo general buenos para abarcar grandes cantidades de pruebas para detectar la falta de parches de seguridad así como la existencia de configuraciones por defecto, la verificación manual posteriormente será una responsabilidad muy importante por parte del profesional de seguridad.

Pecado VI Protección Insuficiente en la capa de Transporte Las aplicaciones frecuentemente fallan al autenticar, cifrar, y proteger la confidencialidad e integridad de tráfico de red sensible. Cuando esto ocurre, es debido a la utilización de algoritmos débiles, certificados expirados, inválidos, o sencillamente no utilizados correctamente.

Protección Insuficiente en la capa de Transporte (TLS) Se utiliza SSL para proteger todo el tráfico relacionado con la autenticación? (Contra ataques MiTM) Se utiliza SSL para todos los recursos de páginas y servicios privados? Se debe evitar el acceso SSL únicamente a determinados recursos de una página ya que esto provoca advertencias en el navegador y puede exponer el identificador de sesión de los usuarios. Sólo se soportan algoritmos considerados fuertes. Todas las cookies de sesión tienen el atributo secure activado. El certificado debe ser legítimo y estar configurado correctamente para este servidor. Un usuario acostumbrado a lidiar con mensajes de error en su sitio perderá la desconfianza a un sitio falso con las mismas características

Protección Insuficiente en la capa de Transporte (TLS)

Pecado VII LFI y LFD Vulnerabilidades que se hacen presentes cuando se permite que el usuario incluya archivos en la aplicación Local File Inclusion (LFI): inclusión de archivos locales, donde se encuentre el sitio web vulnerable Local File Disclousure (LFD): permite la descarga de archivos en codigo fuente directo.

Evitar LFD y LFI UrlScan por defecto bloquea: exe, bat, cmd, com, htw, ida, idq, htr, idc, printer, ini, pol, dat, etc. Validar extenciones mediante un lista blanca En PHP se puede utilizar Mod_Security y/ o Suhosin Todas las validaciones se deben validar en ambos lados: cliente y servidor

Pecado con las aplicaciones moviles elvin.mollinedo@owasp.org

GRACIAS Ing. Elvin Vidal Mollinedo Mencia elvin.mollinedo@owasp.org