Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Figura N 3. Inyeccin.
PREVENCIN:
Evitar una inyeccin requiere mantener los datos no confiables separados de los
comandos y consultas.
1. La opcin preferida es usar una API segura la cual evite el uso de intrpretes por
completo o provea una interface parametrizada. Sea cuidadoso con las APIs, como
los procedimientos almacenados, que son parametrizados, pero que an pueden
introducir inyecciones en el motor del interprete.
2. Si una API parametrizada no est disponible, debe codificar cuidadosamente los
caracteres especiales, usando la sintaxis de escape especfica del intrprete.
OWASP ESAPI provee muchas de estas rutinas de codificacin.
3. La validacin de entradas positiva o de "lista blanca" tambin se recomienda,
pero no es una defensa integral dado que muchas aplicaciones requieren caracteres
especiales en sus entradas. Si se requieren caracteres especiales, solo las
La gravedad de una inyeccin SQL est limitada por la habilidad e imaginacin del
atacante, y en menor medida a las contramedidas, como por ejemplo las
conexiones con bajo privilegio al servidor de bases de datos, entre otras. En
general, se considera a la inyeccin SQL de alto impacto.
La inyeccin SQL se ha convertido en un problema comn con sitios web que
cuentan con base de datos. La falla es fcilmente detectada y fcilmente explotada,
y como tal, cualquier sitio o paquete de software con incluso una mnima base de
usuario es propenso a ser objeto de un intento de ataque de este tipo.
Esencialmente, el ataque es llevado a cabo mediante la colocacin de una meta
carcter en los datos de entrada para colocar comandos SQL en el plano de control,
el cual antes no exista.
Este error depende del hecho de que SQL no hace real distincin entre los planos de
datos
y
los
de control. Las principales consecuencias son: Confidencialidad: Dado que las bases
de
datos
SQL generalmente almacenan informacin sensible, la prdida de la confiabilidad es
un problema frecuente con las vulnerabilidades de inyeccin SQL.
Autenticacin: Si se utilizan consultas SQL pobres para chequear nombres de
usuarios u contraseas, puede ser posible conectarse a un sistema como otro
usuario sin conocimiento previo de la contrasea.
Autorizacin: Si la informacin de autorizacin es almacenada en una base de
datos SQL, puede ser posible cambiar esta informacin mediante la explotacin
exitosa de una vulnerabilidad por inyeccin SQL.
Integridad: As como puede ser posible leer informacin sensible, tambin es
posible realizar cambios o incluso borrar esta informacin mediante un ataque por
inyeccin SQL.
TIPOS DE SQL INJECTION
Los ataques realmente varan de unos a otros, pero nos sentimos ms se pueden
clasificar en dos categoras:
a) Datos Ex filtracin: Ex filtracin de datos a travs de la inyeccin de SQL es lo
que ha contribuido a algunas de las violaciones de datos ms grandes hasta la
fecha. Los atacantes encuentran una vulnerabilidad que les permite a la
lista de todas las tablas y volcar todas las cuentas de usuario, correos electrnicos y
contraseas.
b) Cdigo Inyeccin: No vemos esto muy a menudo, que a menudo se basan en
algunas
de
vulnerabilidad inicial pre-pruebas que nos bloqueamos automticamente a travs
de
nuestro
Sitio Web Firewall por lo que es mucho ms difcil de grabar y tentativa.
5. ANLISIS DE UNA APLICACIN DE ENTRENAMIENTO
INTRODUCCIN A DVWA
Damn Vulnerable Web App (DVWA) es un reconocido entorno de entrenamiento en
explotacin de seguridad web escrito en PHP y MySQL cuyo objetivo principal es
permitir a programadores y tcnicos estudiar e investigar sobre las diferentes
temticas involucradas en dicho campo en un entorno completamente legal. [6]
Id, nombre,
Figura N 40. Mostrar todos los campos de las columnas en la tabla de usuario de
INFORMATION_SCHEMA
Instrucciones:
Introducimos el texto %' and 1=0 union select null, concat(table_name,0x0a,
column_name) from information_schema.columns where table_name = 'users' #
en el cuadro de texto ID del usuario.
Notas (FYI):
Se muestra todas las columnas en la tabla de usuarios.
Se observa que hay una columna user_id, nombre, apellido, usuario y contrasea.
otra para obtener la contrasea de cada usuario: 1 UNION ALL SELECT first_name,
password from dvwa.users
EN
LA
PGINA
DE
INTERNET:
No ha sido el nico ataque a esta compaa, uno de los ms relevantes, que incluso
se tom como asunto de Estado por parte de la administracin Obama, tuvo lugar el
24 de noviembre de 2014, un grupo llamado Guardians of Peace o los GOP (por sus
siglas en ingls), logr hackear ordenadores de Sony, hacindose con un botn de
pelculas sin estrenar y correos. Se emplearon tcnicas deextorsin, segn
expertos, de la que se cree que el objetivo fue evitar la proyeccin de la pelcula
TheInterview. Tras las amenazas de los hackers, numerosas salas de cine se
negaron a estrenar la cinta,obligando a Sony a cancelar el estreno. Corea del Norte
podra estar detrs del ataque ciberntico que sufri Sony Pictures, segn The Wall
Street Journal. La primeras investigaciones del FBI apuntan al pas asitico como
uno de los sospechosos de filtrar pelculas y documentos de la compaa. Pero el
rgimen de Kim Jong-Un ni confirm ni desminti su participacin. Alcanz tanto a la
esfera de lo poltico como de lo econmico en EE UU, al provocar prdidas ante la
cancelacin del rodaje de pelculas.
As mismo se accedi a los estrenos de la compaa (cinco pelculas en total), como
nmeros de identificacin fiscal y partes mdicos de ms de 3.000 empleados y
correos electrnicos privados en los que se critica a algunos actores.
Sin embargo, el punto de inflexin lo ha puesto la pelcula The Interview, una
comedia de Sony sobre un complot para asesinar al lder de Corea del Norte, Kim
Jong-un. Se cree que esta cinta el motivo de las amenazas a Sony y de todas las
filtraciones.
El 24 de noviembre de 2014, un mensaje ilustrado apareci en las pantallas de los
empleados de Sony. Pareca inquietantemente similar al que apareci el ao pasado
en las computadoras de los bancos de Corea del Sur, un ataque que le fue atribuido
a Corea del Norte.
El ataque de hackers a la empresa Sony Pictures, que fren la exhibicin del film
The Interview, pudo haber sido perpetrado por un empleado despedido y no por el
gobierno de Corea del Norte como inform el FBI, aunque tambin pudieron ser
ambos factores combinados.
COMO EVITAR ESTOS ATAQUES
El principal problema de estos ataques es que si dejamos que el usuario del
programa introduzca libremente caracteres sin control ninguno (mediante
formularios, por ejemplo) puede llegar a aprovecharse de las comillas (simples y
dobles con las que declaramos cadenas de texto o strings).
Por ejemplo,se podra realizar una consulta SQL a la que le mandamos dos
parmetros(independientemente del lenguaje, ya que cualquier lenguaje que use
bases de datos SQL podra ser vctima de estos ataques), que mediante el lenguaje
que elijamos escribir tal cual le mandemos los parmetros.
Por lo tanto la solucin genrica sera evitar que se pudieran introducir caracteres
especiales (como comillas) sin haberlas transformado antes (por ejemplo, una
comilla doble: debera de transformarse en \ que as interpretar como texto la
comilla y no como el carcter que cierra o abre el una texto en la consulta, pero
segn el lenguaje se puede implementar de distintas formas y algunas son
automticas y ms optimizadas.
En .NET evitaremos la inyeccin en SQL Server (con C#) estableciendo el tipo de
parmetro como literal con SqlDbType.VarChar :
DVWA hace uso en el nivel de seguridad high de algunas funciones PHP para filtrar la
informacin recibida desde el formulario: [9]
Para evitar los ataques SQL Injection, PHP cuenta con la directiva magic_quotes_gpc que
automticamente restringe todas las comillas. Esta directiva puede ser habilitada desde el
fichero de configuracin de PHP (php.ini), aunque se recomienda no habilitar las comillas
No
No
No
No
a) Firewall WEB, este software se instala entre el servidor WEB y el usuario, este
tipo
de
software
tiene reglas de validacin que proveen ataques de seguridad de diferente tipo entre
ellas
SQL
INJECTION, lo importante de este tipo de implementacin es que constantemente
los proveedores de estas soluciones actualizan sus reglas para nuevos tipos de
ataques.
b) Evitar usar variables en la URL, en lo posible se debe usar variables dentro de la
pgina URL, o en cookies haciendo que sea un poco ms laborioso para el atacante
encontrar la variable e inyectar cdigo.
SOLUCIONES INFORMTICAS FRENTE A ATAQUES DE SQL INJECTION [3]
Kona Site Defender es una solucin verstil de defensa que ofrece proteccin contra
los ataques distribuidos de denegacin del servicio (DDoS), as como contra los
ataques dirigidos a aplicaciones web,incluidas las inyecciones SQL y los ataques a
filtros de scripts de sitios. Kona Site Defender integra sofisticados controles de nivel
de aplicacin, incluido un conjunto de normas de firewall de aplicaciones web de
configuracin personalizada predefinidas que permiten realizar una inspeccin
profunda de paquetes de solicitud o respuesta HTTP/S y anlisis de carga, con el fin
de identificar y ofrecer proteccin contra ataques tales como las inyecciones SQL,
ataques a filtros de scripts de sitios, etc.