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
   1   2