Documentos de Académico
Documentos de Profesional
Documentos de Cultura
AA11 - Evidencia 3 Foro Temático "Pruebas de Seguridad"
AA11 - Evidencia 3 Foro Temático "Pruebas de Seguridad"
AA11 - Evidencia 3 Foro Temático "Pruebas de Seguridad"
Hacking ético es una forma de referirse al acto de una persona usar sus conocimientos de
informática y seguridad para realizar pruebas en redes y encontrar vulnerabilidades.
Veo con buenos ojos este tipo de conocimiento y práctica, pues ellos pondrán a prueba la
infraestructura de una empresa con el fin de que tomen medidas para poder salvaguardar
mejor la información de sus usuarios y así evitar que los Black hat puedan ocasionar
severos daños a la empresa.
¿QUÉ ES SQL-INJECTION?
El sql injection es un tipo de ataque a una base de datos en el cual, por la mala filtración de
las variables se puede inyectar un código creado por el atacante al propio código fuente de
la base de datos.
Un ataque por inyección SQL consiste en la inserción o “inyección” de una consulta SQL
por medio de los datos de entrada desde el cliente hacia la aplicación. Un ataque por
inyección SQL exitoso
Puede leer información sensible desde la base de datos, modificar la información (Insert/
Update/ Delete), ejecutar operaciones de administración sobre la base de datos (tal como
parar la base de datos), recuperar el contenido de un determinado archivo presente sobre el
sistema de archivos del DBMS y en algunos casos emitir comandos al sistema operativo.
Los ataques por inyección SQL son un tipo de ataque de inyección, en el cual los comandos
SQL son insertados en la entrada de datos con la finalidad de efectuar la ejecución de
comandos SQL predefinidos.
¿QUÉ MECANISMOS PUEDEN ESTABLECERSE PARA PREVENIR LA
INYECCIÓN DE SQL?
Si en una consulta estamos a la espera de recibir un entero, no confiemos en que sea así,
sino que es aconsejable tomar medidas de seguridad y realizar la comprobación de que
realmente se trata del tipo de dato que estamos esperando. Para realizar esto, los lenguajes
de programación ofrecen funciones que realizan esta acción, como pueden ser ctype_digit()
para saber si es un número o ctype_alpha () para saber si se trata de una cadena de texto en
el caso del lenguaje PHP.
También es aconsejable comprobar la longitud de los datos para descartar posibles técnicas
de inyección SQL, ya que si por ejemplo estamos esperando un nombre, una cadena
extremadamente larga puede suponer que estén intentando atacarnos por este método. En el
caso de PHP, podemos utilizar la función strlen() para ver el tamaño de la cadena.
Asignar mínimos privilegios al usuario que conectará con la base de datos
El usuario que utilicemos para conectarnos a la base de datos desde nuestro código debe
tener los privilegios justos para realizar las acciones que necesitemos. No utilizar nunca un
usuario root con acceso a todas las bases de datos ya que de esta forma estaremos dando
facilidades a los hackers para que puedan acceder a toda la información.
Herramientas de análisis
Otra de las opciones que podemos utilizar para realizar un análisis de nuestro código es el
uso de herramientas que testen nuestras aplicaciones en busca de vulnerabilidades por
inyección SQL. Algunas de estas herramientas son:
SQLiHelper 2.7 SQL Injection: Se trata de una aplicación cuyo objetivo es facilitar la
extracción de información procedente de bases de datos utilizando para ello técnicas de
inyección SQL.
Pangolin: Se trata de una herramienta de pago que ofrece más posibilidades que la vista en
el punto anterior y que está destinada a descubrir vulnerabilidades tanto del tipo inyección
SQL como inyección SQL ciego.