¿Qué son los defectos de inyección?

Una falla de inyección es una vulnerabilidad en la que las aplicaciones permiten que un atacante transmita código malicioso a través de una aplicación a otro sistema. Permite a los piratas informáticos inyectar comandos del lado del cliente o del lado del servidor. Estas son las fallas a través de las cuales los piratas informáticos pueden tomar el control de las aplicaciones web. Según el tipo de vulnerabilidad, un atacante podría inyectar consultas SQL, comandos javascript o os, etc. 

Injection Flaws diagram

 

Efectos de los defectos de inyección:

  • Permite a un atacante comprometer el sistema de la víctima.
  • Permite a los piratas informáticos ejecutar códigos maliciosos.
  • Permite a los atacantes realizar ataques de falsificación de solicitud de atacantes entre sitios (el sitio web no vio que la solicitud realmente se originó a partir de piratas informáticos o por sí misma).
  • Permite a los piratas informáticos comprometer las bases de datos.
  • La vulnerabilidad de carga de archivos arbitrarios puede resultar en el compromiso de toda la base de datos.
  • Pérdida de confidencialidad, integridad y disponibilidad.

 Desinfección de entrada inadecuada:

El hacker explota la aplicación web con comandos, códigos o tokens maliciosos, etc., y la aplicación web pasa y ejecuta estos datos ingresados ​​por el hacker sin desinfectar. Esto permite a los piratas informáticos obtener acceso a la aplicación.

Veamos el siguiente ejemplo,

                                                        Servidor de aplicaciones de aplicaciones web

página de inicio de sesión (el pirata informático ingresa el código malicioso aquí)—–> código malicioso ingresado en el servidor                                                    

Así es como el pirata informático ingresa el código malicioso en la aplicación web, siempre debemos desinfectar la solicitud antes de enviarla al servidor. 

Prevenciones de desinfección inadecuada de insumos:

  • Desinfecte la entrada después de recibirla del usuario. 
  • Use un filtro del lado del servidor apropiado.
  • La entrada debe validarse tanto en el lado del cliente como en el del servidor.

 ¿Desinfección de salida inadecuada?

El hacker explota la aplicación web inyectando comandos, códigos o tokens maliciosos, etc. y la aplicación inyecta estos datos sin desinfectar. Esto permite a los piratas informáticos controlar las respuestas HTTP/HTML.

Veamos el siguiente ejemplo:

                            Servidor de aplicaciones de aplicaciones web 

                   Hacker <—————-Respuesta a la entrada del usuario

Esto permite a los piratas informáticos analizar las requests y respuestas.

Cómo corregir la desinfección de salida incorrecta:

  • Desinfecte la salida antes de insertarla en la respuesta HTML/HTTP.
  • Codifica todos los caracteres especiales.

Aplicar privilegio mínimo:

Esto será efectivo. ya que una aplicación web se ejecuta solo con los privilegios que necesita para realizar su función. usar el acceso raíz puede dañar su dispositivo. Como superusuario, tiene todos los privilegios. Esta puede ser una oportunidad para un hacker. 

Tipos de ataques de inyección:

Hay tantos tipos de ataques de inyección. algunos de ellos son,

Cómo prevenir fallas de inyección:

  • Uso de declaraciones preparadas (con consultas parametrizadas)
  • Uso de procedimientos almacenados correctamente construidos
  • Validación de entrada de la lista de permitidos Escapar de todas las entradas proporcionadas por el usuario
  • Realización de la validación de entrada de la lista de permitidos como defensa secundaria
  • Use fuertes firewalls de aplicaciones web para dificultar la explotación 

Publicación traducida automáticamente

Artículo escrito por akshaysavanoor y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *