Introducción a la seguridad web

38
Introducción a la seguridad web Daniel Correa Botero José López Vélez Universidad de Antioquia 2013-II

description

Introducción a la seguridad web. Daniel Correa Botero José López Vélez Universidad de Antioquia 2013-II. Ética y moral. ¿Qué clase de ingenieros y personas queremos ser para la sociedad?. Leyes en Colombia. LEY 1273 DE 2009 Diario Oficial No. 47.223 de 5 de enero de 2009 - PowerPoint PPT Presentation

Transcript of Introducción a la seguridad web

Page 1: Introducción a la seguridad web

Introducción a la seguridad web

Daniel Correa BoteroJosé López Vélez

Universidad de Antioquia 2013-II

Page 2: Introducción a la seguridad web

¿Qué clase de ingenieros y personas queremos ser para la sociedad?

Ética y moral

Page 3: Introducción a la seguridad web

LEY 1273 DE 2009 Diario Oficial No. 47.223 de 5 de enero de 2009CONGRESO DE LA REPÚBLICAPor medio de la cual se modifica el Código Penal, se crea un nuevo bien

jurídico tutelado - denominado “de la protección de la información y de los datos”- y se preservan integralmente los sistemas que utilicen las tecnologías de la información y las comunicaciones, entre otras disposiciones.

Artículo 269G: Suplantación de sitios web para capturar datos personales. El que con objeto ilícito y sin estar facultado para ello, diseñe, desarrolle, trafique, venda, ejecute, programe o envíe páginas electrónicas, enlaces o ventanas emergentes, incurrirá en pena de prisión de cuarenta y ocho (48) a noventa y seis (96) meses y en multa de 100 a 1.000 salarios mínimos legales mensuales vigentes, siempre que la conducta no constituya delito sancionado con pena más grave.

Artículo 269A: Acceso abusivo a un sistema informático.  El que, sin autorización o por fuera de lo acordado, acceda en todo o en parte a un sistema informático protegido o no con una medida de seguridad, o se mantenga dentro del mismo en contra de la voluntad de quien tenga el legítimo derecho a excluirlo, incurrirá en pena de prisión de cuarenta y ocho (48) a noventa y seis (96) meses y en multa de 100 a 1.000 salarios mínimos legales mensuales vigentes.

Leyes en Colombia

http://www.secretariasenado.gov.co/senado/basedoc/ley/2009/ley_1273_2009.html

http://www.eltiempo.com/justicia/ARTICULO-WEB-NEW_NOTA_INTERIOR-11242405.html

Page 4: Introducción a la seguridad web

To catch a thief, you must think like a thief.

Page 5: Introducción a la seguridad web
Page 6: Introducción a la seguridad web

La palabra hacker se relaciona con 2 significados:

◦ Tradicionalmente un hacker es aquella persona que le gusta jugar con software o sistemas electrónicos. Los hackers disfrutan de explorar y aprender como operan los sistemas informáticos.

◦ En los últimos años han tomado un nuevo significado. Se definen como aquellas personas que maliciosamente irrumpen en sistemas para obtener beneficios personales. Técnicamente estos criminales son CRACKERS (criminal hackers).

Hackers

Page 7: Introducción a la seguridad web

White hat (los chicos buenos)Dentro de los chicos buenos encontramos los ETHICAL HACKERS o investigadores de seguridad. Los cuales irrumpen en sistemas tratando de encontrar vulnerabilidades para proteger estos sistemas y corregir las fallas.

Grey hat (un poco de ambos)

Black hat (los chicos malos)

Categorías de hackers

Page 8: Introducción a la seguridad web

Curiosidad, adrenalina o desparche. Para algunos mientras el trabajo sea mas difícil mayor es la emoción.

Promover la descentralización de la información: ya que creen que toda la información debe ser libre.

Venganza. Obtener información personal o beneficios

económicos (robos de identidad). Búsqueda de fama. Terrorismo. Política.

¿Cuáles son las razones para irrumpir en diferentes sistemas?

Page 9: Introducción a la seguridad web

Los únicos datos que tenemos es el nombre del sitio web. Y que el dueño es un vecino.

Misión: desactivar el sitio web de armamento nuclear ruso.

Page 10: Introducción a la seguridad web

¿Cómo obtener toda la información posible acerca de nuestro objetivo?

Analizar su sitio web. Google (usar google dorks). Who.is. Nmap. Whireshark. Ingeniería social

Paso 1: Information gathering or scanning systems

Page 11: Introducción a la seguridad web

Utilizar google para encontrar información sensitiva.

http://www.exploit-db.com/google-dorks/9/

Google dorks

DATE Title Summary25/11/20

13 filetype:password jmxremote Passwords for Java Management Extensions (JMX Remote) Used by jconsole, Eclipse's MAT, Java Vi...

24/09/2013 "BEGIN RSA PRIVATE KEY" filetyp

e:key -gi...To find private RSA Private SSL Keys ...

22/04/2013 filetype:sql insite:pass && user Google Dork: filetype:sql insite:pass && user We Can get

login username and password...

02/11/2012 filetype:xls "username | passwo

rd"filetype:xls "username | password" This search reveals

usernames and/or passwords of ...

Page 12: Introducción a la seguridad web

http://www.thekeyboardcowboys.org/downloads/postfix/postfix-db.sql

Google dorks

Page 13: Introducción a la seguridad web

Paso 1: información recopilada

Page 14: Introducción a la seguridad web

Paso 1: información recopilada

Puertos abiertos

Page 15: Introducción a la seguridad web

Paso 1: información recopilada

Page 16: Introducción a la seguridad web

La ingeniería social es la explotación de la naturaleza confiada de los seres humanos para obtener información con fines maliciosos.

Supongamos que la información encontrada no es suficiente (aunque encontramos la dirección de la compañía) y que deseamos recopilar mas información sobre la compañía de armamento nuclear. ¿Que ataques “no técnicos” o de ingeniería social utilizaríamos?

Ingenieria social

Page 17: Introducción a la seguridad web

La Falacia del experto.

¿Qué es la falacia del experto? El mundo en que vivimos es tan complejo, estamos inundados de tantos mensajes, imágenes, y sonidos permanentemente lo que hace muy difícil descifrarlo, es por eso que nuestro cerebro nos ayuda buscando algunas señales que nos permita interpretar de una manera ágil y confiable una realidad. Dada esta necesidad, nuestro cerebro construye su percepción de lo que ve, usando unas ideas preconcebidas y nos hace confiar en aquellas personas que dan una imagen de estabilidad (El Médico y su bata blanca, o el abogado que usa traje y corbata por ejemplo). Por lo tanto, confiamos mas en lo que nos dicen, porque el cerebro envía un mensaje de confiabilidad por la interpretación que le da, a la realidad que ve.

Ingenieria social

Page 18: Introducción a la seguridad web

Ataques no técnicos:◦ Entrar en el edificio de la compañía (normalmente

utilizando la falacia del experto) y buscar en las papeleras, zonas de computación y servidores, información.

◦ Realizar llamadas telefónicas haciéndose pasar por un técnico de la empresa de telefonía y preguntar por contraseñas.

◦ Pagar a algún empleado para que entregue la contraseña o simplemente preguntarle.

◦ Realizar (shoulder surfing)

Ingenieria social

Page 19: Introducción a la seguridad web

Shoulder Surfing

Page 20: Introducción a la seguridad web

Ingeniería social

Page 21: Introducción a la seguridad web

Las vulnerabilidades son puntos débiles del software que permiten que un atacante comprometa la integridad, disponibilidad o confidencialidad del mismo. Algunas de las vulnerabilidades más severas permiten que los atacantes ejecuten código arbitrario, denominadas vulnerabilidades de seguridad, en un sistema comprometido.

Paso 2: análisis de vulnerabilidades

Exploit es un fragmento de software, fragmento de datos o secuencia de comandos y/o acciones, utilizado con el fin de aprovechar una vulnerabilidad de seguridad de un sistema de información para conseguir un comportamiento no deseado del mismo.

http://www.exploit-db.com/

Page 22: Introducción a la seguridad web

Se dan por mala programación y poca experiencia de los desarrolladores. Comúnmente se encuentran en módulos, plugins o librerías adicionales que

suben los integrantes de las diferentes comunidades de desarrollo. Desarrolladores de joomla, wordpress, etc.

Suponga que una compañía le vende a usted un sitio web de ventas online, al mes de finalizado el proyecto se descubre un exploit en uno de los módulos utilizados en su sitio web.

¿Cree usted que la compañía lo llamará para indicarle como solucionar el problema?

¿Cree usted que este inconveniente es responsabilidad de la compañía o suya?

Exploits

Page 23: Introducción a la seguridad web

Backtrack

Page 24: Introducción a la seguridad web

Supongamos que luego de recopilar la información del sitio web nuclear encontramos cosas tales como:1. Utilizan joomla para uno

de sus portales.2. Todos los empleados se

conectan desde una red de wifi de la compañía.

3. Utilizamos Acunetix para búsqueda de vulnerabilidades con los siguientes resultados.

Paso 2: análisis de vulnerabilidades

¿Qué haríamos luego de recopilar esa información?

Page 25: Introducción a la seguridad web

Luego de detectar las vulnerabilidades procedemos a explotarlas. Este paso es de mucha paciencia y no siempre una vulnerabilidad encontrada garantiza acceso al sistema.◦ Para 1: podríamos utilizar un joomscan

Paso 3: explotación de vulnerabilidades.

Page 26: Introducción a la seguridad web

◦ Para 2: podríamos utilizar whireshark – ettercap - xplico

Paso 3: explotación de vulnerabilidades.

Page 27: Introducción a la seguridad web

◦ Para 3: podríamos utilizar sqlmap

Paso 3: explotación de vulnerabilidades.

Page 28: Introducción a la seguridad web

Cuando no se limpian bien las variables, ni se crean bien las consultas, dejamos un hueco de seguridad en el sistema. Y los hackers utilizando herramientas como el sqlmap pueden averiguar información tal como: nombres de bases de datos, tablas, columnas, filas, etc.

Solución: utilizar mysql_real_escape_string() u otras funciones para limpiar variables antes de ejecutar una consulta sql. Igualmente verificar que donde exista una variable hayan comillas antes y al final de la variable en la consulta.

Ejemplo:

$id=mysql_real_escape_string($id);“SELECT * FROM usuarios WHERE id=‘$id’”;

Sql injection

Debido a que diferentes programadores no utilizaron esos 2 elementos encontramos cientos

de sitios vulnerables.

Page 29: Introducción a la seguridad web

Para encontrar un sitio web vulnerable se buscan rutas en las cuales se envien datos por GET y se coloca al final una comilla simple. Si sale un error de sintaxis es muy probable que el sitio sea vulnerable.

Sql injection

Page 30: Introducción a la seguridad web

¿Qué pasa si un hacker logra obtener la información de nuestra tabla de usuarios?

Podría buscar un panel de administración y loguearse.◦ Podría modificar la información de nuestro sitio web.◦ Podría cargar archivos o información maliciosa.◦ Recopilar muchos más datos de los visitantes

nuevos.◦ Enviar correos spam.◦ Subir un shell.

Sql injection

Page 31: Introducción a la seguridad web

¿Suponga que un hacker encontró la forma de acceder a la administración de su software web, pero de alguna manera se entero de que el ing. de sistemas ya sabe como corregir el error, que cree usted que haría el hacker?

Backdoors - shell

Page 32: Introducción a la seguridad web

Es un archivo malicioso que permite acceder a un sin número de funciones dentro de un servidor, tales como: modificar archivos, crear archivos, subir archivos, crear carpetas, borrar carpetas, enviar correos, entre otros.

Shell

Page 33: Introducción a la seguridad web

¿Cuáles crees que son las 10 contraseñas mas utilizadas a nivel mundial?

Passwords

Page 34: Introducción a la seguridad web

La encripción de passwords es supremamente importante, debido a que supongamos que un hacker accede a la info de la base de datos. Si las contraseñas están encriptadas le será mucho mas difícil encontrar su solución, si están desencriptadas podrán aprovecharlas y acceder a otros sistemas tales como:◦ Tu cuenta en facebook.◦ Tu correo electrónico.◦ Tus cuentas en foros, etc.

Esto debido a que muchas personas utilizan la misma contraseña para todo.

Mientras mas compleja la contraseña mas difícil de desencriptar.

Encriptar passwords

Para encriptar contraseñas

recomendamos PHPASS. Tratar de no utilizar

MD5 ya que en internet hay

muchos sistemas para desencriptar este tipo de contraseñas.

Page 35: Introducción a la seguridad web

Mucho cuidado con la información que colocas en el cliente (ojo con los input type hidden, y los códigos en javascript). Revísalos y asegúrate que no puedan vulnerar la aplicación por este medio.

Ej: registrarse en un sitio web<form action=“registrar.php” method=“post”><input type=“text” name=“nombre”>

<input type=“text” name=“edad”> <input type=“hidden” name=“tipo_usuario” value=“normal”>

</form>

Otras sugerencias

Aunque el usuario final no lo ve a simple vista, puede usar

firebug o la consola de chrome para modificarlo.

Page 36: Introducción a la seguridad web

Cuando uno de los requisitos sea cargar archivos como fotos, docs, etc. Valida muy bien el tipo de dato que cargan los usuarios y establece un directorio a donde carguen estos archivos. Dentro de este directorio coloca un .htaccess que impida ejecutar archivos de otro tipo.

Nunca subas backups o información importante a carpetas dentro de tu propio servidor.

Establece permisos para carpetas y archivos, no permitas que mas usuarios de diferentes cuentas puedan acceder a información de tu servidor.

Otras sugerencias

Page 37: Introducción a la seguridad web

1. No debes proteger tus sistemas contra TODO. Sencillamente no puedes, la única protección contra TODO es desconectar el pc o servidor y esconderlo donde nadie pueda encontrarlo (incluso tu mismo).

2. Debes proteger tus sistemas contra las vulnerabilidades y ataques mas comunes.

3. Hackea tus propios sistemas sin dañarlos.

4. Realiza un documento o informe con las vulnerabilidades que encuentres.

5. Elimina las vulnerabilidades.

Como proteger tus sistemas de los chicos malos

Page 38: Introducción a la seguridad web

Beaver, Kevin. Hacking for dummies. John Wiley & Sons, 2013. Stuttard, David; Pinto, Marcus. The Web Application Hacker's

Handbook: Finding and Exploiting Security. ISBN-10: 1118026470. 2011.

ESET-LA [Online] http://blogs.eset-la.com/laboratorio/2012/06/21/google-dorks-ocultar-informacion-critica-servidores/

CSIRC Universidad de Granada [Online] http://csirc.ugr.es/informatica/ServiciosCorporativos/PaginaWeb/AccesoRestringido.html

SQL Injection Are Your Web Applications Vulnera-ble? SPI Dynamics. 2002. http://www.spidynamics.com/papers/SQLInjectionWhitePaper.pdf

BackTrack [Online] http://www.backtrack-linux.org/ Acunetix [Online] http://www.acunetix.com/ Alguien en la Fisi - Blog [Online]

http://alguienenlafisi.blogspot.com/2011/08/sql-injection-web-attacks-parte-vii.html

ElHacker.Net http://www.elhacker.net

Bibliografía