Vulnerabilidades en Aplicaciones Web PHP CIISA 2007 “ You can't consider the problem of defense without first understanding the problem of attack ” - Doug.

Slides:



Advertisements
Presentaciones similares
Presentación – Web Attack
Advertisements

Nau Gran dHivern Intr. a la creación y gestión de páginas web Introducción a la web.
Internet y tecnologías web
Sistemas de Información
CUPS Configuración y Uso de Paquetes de Software
Algunos tips en Seguridad ASP.NET 2.0
El mecanismo básico de interacción entre el usuario y un sitio web esta dado por el uso de formularios html. El server envía un formulario que el browser.
Que es y su funcionamiento básico
Hoy en día cuando nos hablan de servidores pensamos tanto en grandes bases de datos como en servidores web, con una capacidad tan grande que pueden soportar.
Web Attacks Mauren Alies Maria Isabel Serrano Sergio Garcia
CGI I La mayor parte de los elementos HTML de que disponemos permite al visitante visualizar los contenidos de un sitio, pero no interactuar con él. Dicho.
ADMINISTRACION DE REDES SECUENCIA DE COMANDOS EN SITIOS CRUZADOS(XSS)
Errores comunes al desarrollar websites
Capacitación de Herramientas para el Desarrollo WEB Modulo I- Fundamentos de Internet Sesión #1 María Paz Coloma M.
Servicios de Internet (1)World Wide Web [WWW] (2)Transferencia de ficheros (FTP)
Aplicación informática. formando parte de una red. pone sus recursos a disposición de las demás computadoras(clientes) de la red. Maneja información.
DIRECT ACCESS.
Telnet y SSH Integrantes: Carlos Parra José Isabel
Tema 5 SRI Vicente Sánchez Patón I.E.S Gregorio Prieto
Que es el protocolo “SSL”
"java del lado del servidor" Servlet y JSP Java Server Pages.
PROGRAMA DE MAESTRÍA EN REDES DE INFORMACION Y CONECTIVIDAD MRIC-I
OBJETO REQUEST. El objeto Request Por qué el objeto request Funcionamiento Colecciones: – Transferencia de variables por URL –Transferencia de variables.
Curso de PHP Tema 6: Seguridad.
Seguridad del protocolo HTTP
DÍAZ OSCAR IVÁN HOYOS ANDRÉS FELIPE ORDOÑEZ JOSÉ LUIS INFORMÁTICA, SEMESTRE II.
ADMINISTRACION DE REDES TEMA REDIRECCIONES Y REENVÍOS NO VALIDADOS
© 2003 Cisco Systems, Inc. All rights reserved.. 2 Session Number Presentation_ID Troubleshooting de Protocolos de Enrutamiento.
ADMINISTRACION DE REDES SECUNECIA DE COMANDOS EN SITIOS CRUZADOS(XSS) DIEGO ALEXANDER MADRID DUQUE GABRIEL ANDRES AGUIRRE JARAMILLO INSTITUTO TECNOLOGICO.
Almacenar variables en cookies en PHP
Los Diez Riesgos Más Importantes en Aplicaciones WEB Top A1-Inyección Oscar William Monsalve Luis Alberto Suarez Jorge Eliecer Betancur Diana Marcela.
Constantes en PHP Programación en Internet II. Constantes en PHP Programación en Internet II Universidad de Guadalajara | Centro Universitario de la Costa.
WEB VULNERABLE DVWA Universidad de Almería
The OWASP Foundation OWASP AppSec Aguascalientes 2010 Guía de Desarrollo Seguro Francisco Aldrete Miembro de OWASP capítulo Aguascalientes.
FIREWALLS.
POP3 UCLV Mapas Conceptuales para la enseñanza de Redes de Computadoras.
InfoPath Ventajas y Uso.
INFOPATH Mylénne Arellano N.. Microsoft InfoPath es una aplicación usada para desarrollar formularios de entrada de datos basados en XML.
MICROSOFT ISA SERVER PRESENTADO A: FABIO LASSO
Copiando y pegando archivos enteros Programación en Internet II.
UD 1: “Adopción de pautas de seguridad informática” Análisis de las principales vulnerabilidades de un sistema informático. Luis Alfonso Sánchez Brazales.
Introducción a ataques de tipo inyección: Inyección SQL
 Un servidor proporciona información a los ordenadores que se conecten a él.  Cuando lo usuarios se conectan a un servidor pueden acceder a programas,
Programación Web Dinámica Universidad Nacional del Comahue Facultad de Informática Generador de Captcha.
CONCEPTOS DE REDES Y PUERTOS MAS CONOCIDOS
 Claudia Jordan Idrovo.  Son los puntos de enganche para cada conexión de red que realizamos. El protocolo TCP (el utilizado en internet) identifica.
S EGURIDAD Y A LTA D ISPONIBILIDAD Nombre: Adrián de la Torre López 24/09/ Adrián de la Torre López.
1. Escucha o rastreo de puertos (scanning) : Por medio de una serie de programas, es posible analizar el estado de los puertos de una máquina conectada.
S ERVICIOS DE RED E I NTERNET T EMA 4 : I NSTALACIÓN Y ADMINISTRACIÓN DE SERVICIOS W EB Nombre: Adrián de la Torre López.
Seguridad del protocolo HTTP:
File Transfer Protocol.
Jorge De Nova Segundo. SSH File Transfer Protocol (también conocido como SFTP o Secure File Transfer Protocol) es un protocolo del nivel de aplicación.
Protocolos del modelo TCP/IP
Se producen cuando una aplicación recibe datos no confiables y estos no han sido validados adecuadamente antes de procesarlos, lo cual puede llevar a que.
Gabriel Montañés León.  El sistema de nombres de dominio (DNS, Domain Name System) se diseñó originalmente como un protocolo. Antes de considerar qué.
Johnny Alexander Salazar Jhon Fredy Giraldo Giraldo Sebastián Cardona.
Unidad 2: Tareas básicas de InfoPath 2010
Luis Villalta Márquez Servicios SFTP/SCP. SFTP SSH File Transfer Protocol (también conocido como SFTP o Secure File Transfer Protocol) es un protocolo.
Realización de las tareas básicas de internet. ¿Qué es Internet? Podemos definir a Internet como una "red de redes", es decir, una red que no sólo interconecta.
Análisis de las principales vulnerabilidades de un sistema informático. Gabriel Montañés León.
Protocolo ssl. Introducción El protocolo SSL (Secure Sockets Layer) fue diseñado con el objeto de proveer privacidad y confiabilidad a la comunicación.
Secuencia de Comandos en Sitios Cruzados XSS
Almacenamiento virtual de sitios web: «Hosts» virtuales
HTTP Session Management Desarrollo de Aplicaciones para Internet.
FIREWALLS, Los cortafuegos
Modelo Cliente - Servidor. La Web funciona siguiendo el denominado modelo cliente-servidor, habitual en las aplicaciones que funcionan en una red. Existe.
El protocolo SSL (Secure Sockets Layer) fue diseñado con el objeto de proveer privacidad y confiabilidad a la comunicación entre dos aplicaciones. Este.
Análisis de las principales vulnerabilidades de un sistema informático. Javier Rodríguez Granados.
Planificación Curso UNIDAD 1. INTRODUCCIÓN A LOS SERVICIOS EN RED UNIDAD 2. SERVICIOS DHCP UNIDAD 3. SERVICIOS DNS UNIDAD 4. SERVICIOS DE ACCESO REMOTO.
FTP Y HTTP. HTTP Y HTTPS El Protocolo de transferencia de hipertexto (HTTP, Hypertext Transfer Protocol), uno de los protocolos en el conjunto de aplicaciones.
Transcripción de la presentación:

Vulnerabilidades en Aplicaciones Web PHP CIISA 2007 “ You can't consider the problem of defense without first understanding the problem of attack ” - Doug Tygar - Moisés H. Silva 1

Agenda 2. SQL Injection * Qué es? * Cómo Atacar? * Cómo Protegerme? 3. Code Injection * Qué es? * Cómo Atacar? * Cómo Protegerme? 4. Session Hijacking * Qué es? * Cómo Atacar? * Cómo Protegerme? 1. Vulnerabilidades en PHP * PHP, lenguaje inseguro? * Estadísticas 2

 - Poder, Versatilidad y Facilidad son una fórmula para la inseguridad.   - PHP ha crecido de forma desorganizada.  - Zend está intentando poner un orden, PHP5 es un gran paso.  - La seguridad de un lenguaje de programación es inversamente proporcional a  la cantidad de responsabilidad delegada al programador.  - Sólo un programador debería escribir programas, PHP se lo permite a otros. PHP, Lenguaje Inseguro? 3

Estadísticas Fuente: - Crecimiento de PHP 4

- Servicios de red más usados Fuente: 5

- Top 10 de vulnerabilidades web Fuente: 6

SQL Injection  - SQL injection es el término usado para la introducción de datos en una aplicación  con la intención de ejecutar sentencias SQL para las que el sistema no fué diseñado  y/o para las cuales el usuario no tiene privilegios.  - Cualquier aplicación que haga uso de datos externos para crear consultas SQL  puede ser vulnerable sin importar el lenguaje en el que se encuentre escrita.  - Las aplicaciones web son más vulnerables debido a:  * La mayoría de los sitios web tienen al menos 1 base de datos.  * Anonimato del atacante y miles de aplicaciones online.  * Ejecución remota y automatizada de ataques.  * Aplicaciones de comercio online ( objetivo: tarjetas de crédito ). Qué es? 7

SQL Injection Cómo funciona un ataque?  - Se buscan los puntos de entrada de datos de la aplicación. En web, usualmente  los formularios.  - Deliberadamente se introducen datos incorrectos o posiblemente inesperados.   * Letras donde solo números son esperados.  * Caracteres de significado especial en sentencias SQL, en especial, comillas.  * Texto de longitudes no esperadas. ( Nombre de 500 caracteres? )  * Límites impuestos en el formulario localmente pueden ser excedidos con cURL.  - Esperamos errores SQL incorrectamente mostrados junto con el HTML, esto puede  darnos una idea del esquema de la base de datos o de la forma en que los datos del  formulario están siendo usados.  - Usar la información obtenida para intentar inyectar SQL. 8

SQL Injection Formas de Protección  - Validar TODOS los datos que ingresan a la base de datos.  - No confiar en datos externos. Los datos externos más comunes son:  * HTTP/GET  * HTTP/POST  * FileSystem  - Estos datos no son confiables, ningún usuario es confiable.   - register_globals = off, pero eso todo mundo lo sabe, correcto?  - Usa mysql_escape_string, pg_escape_string y similares..  - Si es posible, utiliza PDO ( PHP Data Objects ) y prepared statements. 9

Code Injection Qué es?  - Similar al SQL injection, pero más poderoso, el objetivo es ejecutar código  arbitrario.  - La causa es la incorrecta validación de datos que pueden provenir de fuentes no  confiables.  - Uno de los ataques más conocidos se basa en una funcionalidad de PHP  configurada mediante la directiva allow_url_fopen y allow_url_include.  - Archivos incluidos con include(), include_once(), require_once() son ejecutados  por el intérprete de PHP. 10

Code Injection Cómo funciona un ataque?  - Se busca la entrada de datos que alimenta la inclusión de un archivo.  - Una vez encontrado, se alimenta la inclusión del archivo con un script que  contenga el código que se desea ejecutar.  - Debido a que el código será evaluado en el servidor de la víctima, se adquiere  control completo sobre la aplicación pudiendo inclusive comprometer el servidor.  - Otro tipo de ataque puede basarse en el constructor de php eval(). 11

Code Injection Formas de Protección  - allow_url_fopen = off en php.ini puede ayudar, sin embargo muchas aplicaciones  actuales confian en tener esta directiva habilitada.  - A partir de php 5.2, la directiva allow_url_include fué incluida como una solución  al problema que presentaba allow_url_fopen = off.  - Validar todos los datos utilizados para incluir y ejecutar archivos. 12

Session Hijacking Qué es?  - Es el término utilizado para referirse a un tipo de ataque web en la que el  atacante logra personificarse ante la aplicación web como un usuario que ya  ha iniciado una sesión.  - Las aplicaciones web son mas vulnerables debido a que dependen de HTTP,  un protocolo sin conciencia de la existencia de sesiones.  - HTTP es también un protocolo textual y sin protección alguna de los datos  transmitidos. Cualquier dato puede ser expuesto mediante sniffers como  tcpdump y ethereal.  - Las aplicaciones web usan un session id para identificar una sesión iniciada.  Esto significa que el session id tiene que ser enviado en cada request del  cliente.  - El session id es el objetivo principal de un atacante. Si el session id es conocido,  es muy probable que la sesión pueda ser comprometida. 13

Session Hijacking - Flujo del establecimiento de una sesión web con cookies 14

Session Hijacking Cómo funciona un ataque?  - Para secuestrar una sesión se requiere conocer el session id (sessid)  - El session id es transmitido usando cookies o por la URL de las páginas web.  - 3 formas comunes de obtener el sessid son:  * Fuerza Bruta  * Intercepción  * Fixation ( pre-establecimiento de la sesión )  - Fuerza bruta requiere de enviar HTTP request al sitio web con diferentes  sessid's. Algunos de estos sessids pueden ser obtenidos del directorio /tmp  de un hosting compartido.  - La intercepción requiere que el atacante se encuentre en el mismo segmento  de red que la víctima, o en algún punto por el que los paquetes TCP de la víctima  sean ruteados. 15

Session Hijacking Cómo funciona un ataque?  - El pre-establecimiento del sessid requiere de cierta confianza o ingenuidad  de parte de la víctima ( factores comunmente encontrados )  - Sniffear el tráfico web de la red en la que se encuentra la víctima.  - Es posible usar ARP spoofing para obligar al switch o al usuario a que sus  paquetes pasen por la máquina del atacante.  - Una vez que el sessid es conocido solo resta hacer un request HTTP con el  sessid obtenido.  - El conocimiento del sessid suele ser suficiente para tomar el control de la  sesión, sin embargo otras protecciones pueden existir.  - Además de obtener el sessid, puede ser requerido conocer algunos datos de  la víctima, como su direcciòn IP. 16

Session Hijacking Formas de Protección  - El pre-establecimiento de sesión puede evitarse habilitando PHP para sólo  usar cookies para la sesión y no aceptarlas por URL.  - Siempre crear un nuevo session id al recibir los datos de autenticación.  - Todas las sesiones deben tener un tiempo de expiración por inactividad y  absoluto.  - La intercepción puede ser evitada utilizando HTTPS ( SSL ) para la conexiones  que requieran ser seguras.  - Los ataques de fuerza bruta y otros ataques basados en el conocimiento de un  universo de sessid's pueden ser protegidos guardando los sessid's en una base  de datos utilizando session_set_save_handler().   - Para protección extra se puede crear el session id de acuerdo a la dirección  IP o algún otro dato proveniente del cliente de forma que desde otra dirección  IP o cliente no se pueda utilizar el mismo session id.  17

More people are killed every year by pigs than by sharks, which shows you how good we are at evaluating risk. - Bruce Schneier - Being able to break security doesn't make you a hacker anymore than being able to hotwire cars makes you an automotive engineer. - Eric Raymond - The only truly secure system is one that is powered off, cast in a block of concrete and sealed in a lead-lined room with armed guards - Gene Spafford - 18

Referencias

Moisés Humberto Silva Salmerón Gracias. 20