INYECCION SQL(SEGURIDAD DE LA INFORMACION)

10
Profesor: José Fernando Castro Integrantes: Erika Berrun Martínez Nancy Yuridia Reyes Vargas Héctor Rebolledo Hernández Rodrigo García Valle Neyva Yazmín Barrera Trujillo Grupo: 1001 ING. EN TIC ´S

description

DESCRIPCION DETALLADA DE LA INYECCION SQL COMO SU DEFINICION, COMO ATACA, COMO EVITARLA Y ALGUNOS EJEMPLOS

Transcript of INYECCION SQL(SEGURIDAD DE LA INFORMACION)

Page 1: INYECCION SQL(SEGURIDAD DE LA INFORMACION)

Profesor: José Fernando Castro Integrantes:Erika Berrun MartínezNancy Yuridia Reyes VargasHéctor Rebolledo HernándezRodrigo García ValleNeyva Yazmín Barrera Trujillo

Grupo: 1001

ING. EN TIC ´S

Page 2: INYECCION SQL(SEGURIDAD DE LA INFORMACION)

INYECCCION SQL

2TEMA

Page 3: INYECCION SQL(SEGURIDAD DE LA INFORMACION)

¿QUE ES LA INYECCION SQL?3

Inyección SQL es un método de infiltración de código intruso que se vale de una vulnerabilidad informática presente en una aplicación para realizar consultas a una base de datos. Es la técnica utilizada por personas maliciosas con el fin de alterar o atacar una aplicación a través de comandos SQL.

La aplicación puede ser cualquier tipo de software que precise del uso de base de datos, o una aplicación web que interactúa con base de datos para funcionar.

Page 4: INYECCION SQL(SEGURIDAD DE LA INFORMACION)

¿CÓMO ATACA LA INYECCIÓN SQL?4

Las inyecciones "inyecta" un código SQL malicioso para alterar el funcionamiento normal de las consultas SQL programadas. Al no haber seguridad, el código se ejecuta con consecuencias alarmantes. Con estas inyecciones se pueden obtener datos escondidos, eliminar o sobrescribir datos en la base de datos y hasta lograr ejecutar comandos peligrosos en la máquina donde está la base de datos.

Page 5: INYECCION SQL(SEGURIDAD DE LA INFORMACION)

EJEMPLO:5

Este código es de una aplicación Web Vulnerable y tiene como parámetro “nombreUsuario”, que contiene el nombre del usuario a consultar.El código SQL original y vulnerable es:consulta := "SELECT * FROM usuarios WHERE nombre = '" + nombreUsuario + "';" Si el operador escribe un nombre, por ejemplo “Erika", nada anormal sucederá, la aplicación generaría una sentencia SQL similar a la siguiente, que es perfectamente correcta, en donde se seleccionarían todos los registros con el nombre “Erika" en la base de datos:SELECT * FROM usuarios WHERE nombre = ‘Erika';

Page 6: INYECCION SQL(SEGURIDAD DE LA INFORMACION)

6

Pero si un operador malintencionado escribe como nombre de usuario a consultar:Erika'; DROP TABLE usuarios; SELECT * FROM datos WHERE nombre Erika ' Se generaría la siguiente consulta SQL, (el color verde es lo que pretende el programador, el azul es el dato, y el rojo, el código SQL inyectado):SELECT * FROM usuarios WHERE nombre = ‘Erika';DROP TABLE usuarios;SELECT * FROM datos WHERE nombre Erika’';

En la base de datos se ejecutaría la consulta en el orden dado, se seleccionarían todos los registros con el nombre ‘Erika', se borraría la tabla 'usuarios' y finalmente se seleccionaría toda la tabla "datos", que no debería estar disponible para los usuarios web comunes.En resumen, podemos decir que con la Eyección SQL cualquier dato de la base de datos puede quedar disponible para ser leído o modificado por un usuario malintencionado.

Page 7: INYECCION SQL(SEGURIDAD DE LA INFORMACION)

CARACTERÍSTICAS DE INYECCIÓN SQL7

Disponible para las plataformas: Windows, Unix y Linux.

Soporta SSL

Realiza la técnica de inyección ciega de SQL. Comparando las respuestas verdaderas y falsas de las páginas o de los resultados de las cookies y los retrardos de tiempo.

Soporta los motores de bases de datos: Microsoft SQL Server, Oracle, MySQL, Sybase/Adaptive y DB2.

Page 8: INYECCION SQL(SEGURIDAD DE LA INFORMACION)

¿COMO EVITAR INYECCIÓN SQL?8

Filtrando las entradas de los usuarios reemplazando la aparición de ‘ por ‘’ (dos comillas simples).

Evitando que los usuarios puedan pasar caracteres como \ / “ ‘ o cualquier otro que se nos ocurra que puede causar problemas.

Limitar al máximo los permisos del usuario que ejecuta estas sentencias para evitar posibles problemas. Por ejemplo utilizando un usuario distinto para las sentencias SELECT, DELETE, UPDATE .

Trabajar con procedimientos almacenados. El modo en el que se pasan los parámetros a los procedimientos almacenados evita que la inyección SQL pueda ser usada.

Page 9: INYECCION SQL(SEGURIDAD DE LA INFORMACION)

BIBLIOGRAFIA9

http://es.wikipedia.org/wiki/Inyecci%C3%B3n_SQLhttp://www.alegsa.com.ar/Dic/inyeccion%20sql.phphttp://informatica-practica.net/solocodigo/index.php/2007/09/05/inyeccion-sql-en-aplicaciones-web-i/http://www.linux-party.com/modules.php?name=News&file=article&sid=3771http://bad-robot.blogspot.com/2009/02/herramientas-para-automatizacion-de.htmlhttp://www.desarrolloweb.com/articulos/1373.php

Page 10: INYECCION SQL(SEGURIDAD DE LA INFORMACION)

10

Inyección SQL es un método de infiltración de código intruso que se vale de una vulnerabilidad informática presente en una aplicación para realizar consultas a una base de datos.

Cuando el usuario se conecte sus privilegios deberán ser delimitados.

se recomienda no conectar a ningún usuario anónimo como root.

utilizar técnicas de cifrado de información para que en caso de ser extraída no sea manipulada con facilidad.

CONCLUSIONES