Upload
jonathan-imbaquingo-castillo
View
220
Download
2
Embed Size (px)
Citation preview
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERA DE SISTEMAS
INGENIERA EN SISTEMAS INFORMTICOS Y DE COMPUTACIN
PERODO ACADMICO: 2014-B
ASIGNATURA: SIC814 Gestin de Seguridad Informtica
PROFESOR: Jenny Torres
TIPO DE INSTRUMENTO: Actividad de Aprendizaje 1
FECHA DE APLICACIN: 02/07/2015
NOMBRE: Jonathan Fernando Imbaquingo Castillo
Tema: SQL Injection Objetivo: Caracterizar un ataque de esta lista, buscar un ejemplo y la tcnica para solucionar.
Caractersticas: SQL Injection es uno de los muchos mecanismos de ataque web utilizados por los hackers para robar datos de las organizaciones. Es quizs una de las tcnicas ms comunes de ataques de capa de aplicacin utilizados en la actualidad. Es el tipo de ataque que se aprovecha de la codificacin incorrecta de sus aplicaciones web que permite a los hackers para inyectar comandos SQL en digamos un formulario de acceso para que puedan tener acceso a los datos contenidos en la base de datos. En esencia, se plantea la inyeccin de SQL porque los campos disponibles para la entrada del usuario permiten que las sentencias SQL para pasar a travs y consultar la base de datos directamente [1]. Debido a la falta de validacin en la entrada de datos y a la conexin a la base de datos con privilegios de super-usuario o de alguien con privilegios para crear usuarios, el atacante podra crear un super-usuario en la base de datos [2]. Ejemplo [3]:
Formulario:
Query: SELECT id FROM logins WHERE username = '$username' AND password = '$password
Ataque: SELECT id FROM logins WHERE username = 'Joe' AND password = 'anything' OR 'x'='x' Tcnica para solucionar [2]:
Nunca se conecte como superusuario o como propietario de la base de datos. Siempre utilice usuarios personalizados con privilegios muy limitados
Emplee sentencias preparadas con variables vinculadas. Son proporcionadas por PDO, MySQLi y otras bibliotecas
Compruebe si la entrada proporcionada tiene el tipo de datos previsto. PHP tiene un amplio rango de funciones para validar la entrada de datos, desde las ms simples, encontradas en Funciones de variables y en Funciones del tipo carcter (p.ej., is_numeric(), ctype_digit() respectivamente), hasta el soporte para Expresiones regulares compatibles con Perl
Si la expresin espera una entrada numrica, considere verificar los datos con la funcin ctype_digit(), o silenciosamente cambie su tipo utilizando settype(), o emplee su representacin numrica por medio de sprintf().
Bibliografa:
[1] Acunetix, [En lnea]. Available: https://www.acunetix.com/websitesecurity/sql-
injection/. [ltimo acceso: 02 07 2015].
[2] Inyeccin de SQL, [En lnea]. Available: http://php.net/manual/es/security.database.sql-
injection.php. [ltimo acceso: 02 07 2015].
[3] w3school.com, [En lnea]. Available: http://www.w3schools.com/sql/sql_injection.asp.
[ltimo acceso: 02 07 2015].