N IVEL DE ATAQUE
Nivel de Sistema Nivel de Aplicacion
INTRODUCCION
Es el nivel de acceso que representa ms riesgo. Es lo que todo intruso desea lograr en una mquina: tener el control total de los recursos... aduearse completamente de la mquina con los mismos privilegios que el propio administrador.
Nivel de Aplicacin Los ataques a nivel de aplicacin son aquellos que se realizan explotando vulnerabilidades de aplicaciones que permitan modificar los datos que la propia aplicacin manipula, pero sin la posibilidad de ejecucin de comandos sobre el sistema operativo.
INTRODUCCION
Las principales vulnerabilidades de este tipo de aplicaciones incluyen fallas de inyeccin de cdigo o de archivos (SQL injection o system commands injection)
Las Aplicaciones Web que son vulnerables a SQL injection pueden permitir que un a atacante obtenga acceso completo a su base de datos, este tipo de ataques se manifiesta en los sistemas de base de datos introduciendo sentencias SQL
(inyeccin directa de comandos SQL o SQL injection) Tcnica utilizada por personas maliciosas con el fin de alterar o atacar un sitio o servidor a travs de comandos SQL.
Las inyecciones utilizan informacin de entrada del usuario combinado con comandos SQL para construir una consulta SQL maliciosa
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 mquina donde est la base de datos.
El objetivo de SQL Injection es introducir datos arbitrarios, mayormente en las consultas a la base de datos, Introduce una cadena que es finalmente ejecutada por la base de datos,
MS SQL MySQL Oracle DB2 Postgres
Tenemos a ASP y PHP como los lenguajes ms habituales
Tipos de SQL Injection
Inyeccin Bsica. Conocimiento de la Base de Datos
Realizar Consultas con una o mas acciones
La informacin de errores, herramienta para realizar SQL Injection
E JEMPLO DE SQL I NJECTION B ASICO
Nombres: Ju'; drop table authors-Apellidos:
La consulta quedara asi:
M ECANISMOS DE I NYECCION SQL
Inyeccin A travs de Cookies:
La vulnerabilidad de la aplicacion Web esta cuando utiliza estos cookies para hacer consultas SQL.
Inyeccin a travs de variables del Servidor:
El atacante puede falsificar estas variables y ponerla en el network header.
Inyeccin de Segundo Orden:
se introduce de manera indirecta un disparador a la base de datos
INYECCIN A CIEGAS (BLIND INJECTION)
Identificacin de parmetros inyectables Descubrir tipo y versin de la base de datos Determinar el esquema de la base de datos Extraer datos, etc
F ORMAS DE C ONSEGUIR I NFORMACIN DE LA B ASE DE DATOS
Usuario: ' having 1=1-This provokes the following error:
Dato Errneo
Microsoft OLE DB Provider for ODBC Drivers error '80040e14' Objetivo del Atacante [Microsoft][ODBC SQL Server Driver][SQL Server]Column '[Link]' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause. /process_login.asp, line 35
M ETODOS PARA E VITAR L A I NYECCIN SQL
Prepared Statements
Magic Quotes
MSQL Exception
mysql_real_escape_string
Permisos
P REPARED S TATEMENTS
No todas las bases de datos ofrecen esta caracteristica
Evita la ejecucion multiple de ordenes(consultas)
Tambien separan los datos de la consulta
separan la sentencia SQL de los datos que vamos a usar.
M TODOS PARA E VITAR SQL I NJECTION
MSQL Exception.- function no permite realizar consultas mltiples en una sola llamada Magic Quotes.- magic_quotes_gpc, provee de una proteccin rudimentaria, si est habilitado, magic_quotes_gpc o magiq Quotes inserta un barra (backSlash) delante de una comilla simple
I NYECCIN SQL
EN
M Y SQL
mysql_real_escape_string: Evita todos los caracteres especiales del parmetro $name argumento, teniendo en cuenta el juego de caracteres usado en la conexin, de forma que sea segura usarla con Mysql_query. Permisos.- el usuario que accede a la base de datos usado por la aplicacin web tiene solamente los permisos mnimos Un administrador desactiva SHOW_ERRORS y SHOW_WARNINGS para evitar mostrar informacin
H ERRAMIENTAS
DE
D ETECCION A UTOMATICA
SQLMap
Sistemas Multiagentes
SQLMap
Amnesia
S ISTEMA MULTIAGENTE ORIENTADA A LA
DETECCIN DE ATAQUES BASADOS EN INYECCIN
SQL .
SQLM AP
Con esta herramienta se puede ejecutar comandos arbitrarios en el sistema operativo, y muchas tareas ms.
O todo el volcado de las tablas/columnas, especifica el dbms, ejecuta su propio SQL SELECT, leer archivos especficos en el sistema de archivos y mucho mas.
PANGLIN
Desarrollado por la empresa NOSEC
Automatiza el anlisis de seguridad, deteccin y ejecucin de Inyeccin SQL.
Tiene una versin gratuita y una versin de paga.
Investigadores del sitio de seguridad WEBSENSE detectaron un masivo ataque de tipo Inyeccion SQL A mas de 380000 urls y han bautizado este ataque con el nombre LizaMoon
C ONCLUSIONES /R ECOMENDA
CIONES
Los Ataques por SQL Injection son realmente peligrosos, no nicamente por la capacidad de dao que conllevan, sino porque son vulnerabilidades que muchos programadores no corrigen a tiempo (ni se preocupan, a posteriori, de hacerlo).
"LA SEGURIDAD INFORMTICA NO ES UN PRODUCTO SINO UN PROCESO"