¿Qué es Insecure Direct Object Reference y cómo solucionarlo?

Share this…

Insecure Direct Object Reference, también llamado IDOR. Se refiere a cuando una referencia a un objeto de implementación interna, tal como un archivo o llave de base de datos, se expone a los usuarios sin ningún otro control de acceso. Según el curso de protección de datos personales, el atacante puede manipular esas referencias para obtener acceso a los datos no autorizados.

 Predominio

No hay buenos números para basar la estimación en él. Sin embargo, al observar eventos conocidos, así como los informes de bug bounty públicas se puede afirmar que se trata de una vulnerabilidad muy común que afecta protección de datos personales. Esto es también lo que hemos descubierto durante nuestra propia investigación sobre protección de datos personales.

Impacto potencial

Es imposible decir cuál es el impacto potencial de IDOR, ya que varía mucho dependiendo de qué tipo de datos o archivos que el atacante puede conseguir. Podría ser cualquier cosa desde información inocente hasta estados de cuenta, y mucho más según profesores de curso de protección de datos personales.

 

Explotabilidad

Debido a que es tan fácil para un atacante aprovecharlo sin algún sistema de protección de datos personales, IDOR es muy probable que sea abuse. Por supuesto, esto también varía, ya que no siempre puede ser obvio cómo enumerar los enlaces para los archivos.

 

Acontecimientos bien conocidos

De regreso en 2010, cuando el iPad era el gadget más cool para los primeros usuarios, AT & T sufrio de una insegura referencia de objeto directo que expuso los datos perosnales de al menos más de 100.000 propietarios. Se expuso la dirección de correo electrónico de los propietarios, así como las ICC-IDs (el ID de la tarjeta SIM). A medida que Apple proporcionó los datos a AT & T, a menudo recibió la culpa de esta vulnerabilidad que afecto protección de datos personales.

Mediante el envío de una solicitud a AT & T, junto con un ICC-ID, el servidor respondería con la dirección de correo electrónico correspondiente. A medida que el ICC-IDs se puede enumerar examinado sólo unos identificadores, este ataque pudo ser totalmente automatizado permitiendo una fuga de datos personales considerable.

 ¿Cómo descubrirlo?

Según el curso de protección de datos personales, el análisis de código es adecuado para este tipo de vulnerabilidad. Cada lugar que presenta los datos restringidos debe ser investigado, para asegurarse de que hay controles en el lugar, lo que garantiza que el usuario está autorizado para la información solicitada.

Esto puede por supuesto ser automatizado, en cierta medida, sin acceso al código fuente del sitio, y tenerlo es una gran ventaja. Con la fuente en la mano, la vulnerabilidad de este tipo es a menudo bastante fácil de descubrir.

Un ejemplo muy basico de aplicación vulnerable

Cuando un usuario accede al panel de control en la dirección del banco, el usuario se redirige a la siguiente dirección:

https://bank/balance?acc=123

En este caso, 123 es el ID de la cuenta del usuario, por lo que el usuario verá el saldo. Si el usuario quisiera abusar de esto, sería posible simplemente cambiar la URL de parámetros de identificación de otra persona y en lugar de tener acceso a la cuenta de ese ID.

 

Remediación

Según el curso de protección de datos personales, la única solución real a este problema es la implementación de un control de acceso. El usuario tiene que ser autorizado por la información solicitada antes de que el servidor proporcione la misma.

También se recomienda a menudo usar algo menos obvio que sea más difícil de enumerar como referencia. Ej., Una cadena aleatoria en lugar de un número entero. Esto puede ser una buena idea por varias razones, pero no debe confiar absolutamente en esto como la única prevención contra este tipo de ataque según expertos de protección de datos personales. Además deben capacitar sus equipos de TI con curso de protección de datos personales para que entiendan como arreglarlo.