Page 2 - Ataques de SQL Injection
P. 2
Laboratorio de Ciberseguridad
Hasta aquí todo está bien. Sin embargo, El tercer criterio se relaciona con el nivel
un atacante podría intentar introducir de confianza, como desarrolladores solo
algo malicioso en los campos del podemos garantizar y confiar en el
formulario. Por ejemplo, si el atacante sistema desarrollado por nosotros, por lo
introduce ' OR '1'='1 como contraseña y que todo lo que provenga desde fuera de
cualquier cosa como usuario (porque no nuestro sistema es considerado
importará), la consulta SQL se vería así: sospechoso, esto incluye usuarios o
SELECT * FROM usuarios WHERE sistemas con los que interactuamos.
usuario = 'cualquier_texto' AND pass Es importante evaluar el riesgo al que se
= 'cualquier_contraseña' OR '1'='1';
ve expuesto nuestro sistema, cuanto
Según los conceptos de lógica mayor es la superficie expuesta, existe un
proposicional, al evaluar la expresión mayor riesgo a recibir un ataque.
lógica en la cláusula WHERE, esta Otro factor a considerar es el objetivo y
expresión siempre será verdadera porque sector en donde se desempeña el sistema,
'1'='1' siempre es verdadero. Como para los atacantes es más interesante un
resultado, el atacante podría acceder al sistema que potencialmente pueda ser
sistema sin necesidad de proporcionar monetizable o con información relevante,
credenciales válidas.
que el sistema de un pequeño negocio
A nivel usuario es poco lo que se puede que, a modo de ejemplo, solo registra el
hacer para protegernos de este tipo de corte de pelo de un cliente.
amenazas, puesto que los atacantes Las pruebas técnicas y los test de
explotan facetas no protegidas del seguridad son un factor fundamental a la
software.
hora de detectar vulnerabilidades y/o
Como desarrolladores, según Microsoft, problemas de seguridad. Detectar
una de las tareas a nivel de código que problemas en una etapa de desarrollo
debemos hacer es Validar todos los datos permite actuar proactivamente y reducir
especificados por el usuario (Microsoft, significativamente los potenciales
2024) problemas y costos asociados.
Existen distintas estrategias que pueden Bibliografía
aplicarse en el desarrollo de sistemas
cuando se debe acceder a bases de datos,
donde la mayoría de ellas dependen kaspersky. (06 de 06 de 2024). ¿Qué es la
exclusivamente del desarrollador. inyección de SQL? Definición y explicación.
Un desarrollador que aplica técnicas de Obtenido de
desarrollo seguro sabe que debe validar https://latam.kaspersky.com/resource-
los datos ingresados por el usuario, esta es center/definitions/sql-injection
una de las primeras líneas de defensa que
existen sobre los ataques por inyección Microsoft. (06 de 06 de 2024). Inyección de
SQL. Nunca se debe confiar en los datos
ingresados por el usuario, por lo que, la código SQL. Obtenido de
validación y el chequeo es una tarea https://learn.microsoft.com/es-
imprescindible. es/sql/relational-databases/security/sql-
El segundo punto importante es injection?view=sql-server-ver16
considerar el entorno de producción. Los
programas se diseñan considerando un OWASP. (06 de 06 de 2024). Inyección
entorno seguro, pero en muchas SQL. Obtenido de
ocasiones también pueden ejecutarse en https://owasp.org/www-
entornos inseguros.
community/attacks/SQL_Injection