Cadena de URL aleatoria: ¿Qué tipo de ataque es este y qué se puede hacer para detenerlo?

8

EDIT:

Ha pasado un poco desde que se publicó, pero estoy aquí para informar que esto no parece haber NOT haber sido algún tipo de ataque después de todo.

Más bien, esta cadena de URL en particular indica una sesión sin cookies .

Parece que esto no fue más que uno (o varios) de nuestros usuarios que ingresaron a nuestro sitio con las cookies deshabilitadas, y nuestra aplicación no estaba configurada para manejar esto de manera adecuada al insertarse en la cadena de la URL.

Supongo que es todavía posible que alguien esté tratando de manipular este efecto (las marcas de tiempo y la frecuencia fueron interesantes), pero creo que esto fue más probable en el caso de que saltemos sobre el "nosotros están siendo atacados! " entrenar un poco demasiado temprano ¡Fue sorprendentemente difícil encontrar información sobre esto!

En última instancia, lo descubrimos cuando encontré este patrón de URL exacto en nuestro entorno de prueba (aislado) y decidí realizar una investigación adicional sobre el problema.

Gracias a todos por su ayuda con esto, y perdón por cualquier confusión! Dejo la pregunta inicial intacta para evitar invalidar las respuestas que ya están presentes.

Texto original:

Trabajo para una empresa que tiene un sitio web público para nuestros clientes. En las últimas semanas, hemos visto una serie de entradas de registro que se parecen a esto:

The controller for path '/(x(1)s(mpwcjessdyhikng0a1kyud1z))/' was not found or does not implement IController.

Estas entradas suelen tener una diferencia de aproximadamente 1 segundo y siempre comienzan con x(1)s seguido de una cadena aleatoria de caracteres, seguidos de varias rutas a diferentes páginas, especialmente /account or /account/recoverpasswordrequest/ . Esto tiende a durar entre 10 y 30 minutos, y luego no volvemos a verlo hasta el día siguiente, aunque ocurre casi todos los días.

Hemos incluido en la lista negra varias IP de las que ha sucedido esto, pero esta persona (s) obviamente está usando muchas IP diferentes para ejecutar cualquier script que esté haciendo esto.

¿Puede alguien ayudarme a comprender qué está pasando aquí, especialmente con qué x(1)s es, o qué tipo de información podría estar tratando de obtener esta persona? Resulta que el ataque está fallando porque no tenemos un controlador con nombre al azar que acepte esta información, pero sería maravilloso poder detener esto o al menos tener una mejor comprensión de lo que está sucediendo.

EDITAR: Esta "solicitud" siempre sigue el mismo patrón (x(1)s(random)) . Hay 3 URL que están siendo afectadas principalmente:

The controller for path '/(x(1)s(31k5il1as0vxxnbfnnsrzm3b))/' was not found or does not implement IController. The controller for path '/(x(1)s(31k5il1as0vxxnbfnnsrzm3b))/account/register' was not found or does not implement IController. The controller for path '/(x(1)s(31k5il1as0vxxnbfnnsrzm3b))/account/recoverpasswordrequest' was not found or does not implement IController.

La URL completa sería: https://example.com/(these requests)

El sitio utiliza MVC, por lo que estos mensajes de error en particular se deben a que no tenemos un controlador llamado (x(1)s(blah)) al que esta URL puede resolver. Las entradas del registro muestran la misma cadena aleatoria utilizada para las 3 URL, luego se genera una nueva cadena aleatoria y se vuelve a intentar el mismo patrón.

Estas entradas de registro provienen de esta solicitud y generan una excepción en la lógica de nuestra aplicación. Por lo tanto, están pasando por alto el firewall y en realidad están fallando dentro de nuestro código.

    
pregunta levelonehuman 01.06.2015 - 16:03
fuente

4 respuestas

2

Estoy de acuerdo con @RomeoNinov en que es probable que fuzz logic / testing o simplemente un escáner que barra todas las aplicaciones disponibles. En cuanto a detener esto, es mejor que no haga una lista blanca de todas las solicitudes aceptables. De lo contrario, estarás jugando a whack-a-mole bloqueando todas las solicitudes innecesarias, que son demasiado grandes para mantenerte al día.

Mi recomendación es aprovechar el filtrado de solicitudes de IIS ya que es una funcionalidad nativa dentro de IIS7 +. Agregue todas las URL de la aplicación (es decir, cs-uri-stem) a la configuración alwaysAllowedUrls . Luego, configure las extensiones de archivo permitidas a lo siguiente, ya que solo permitirá el documento predeterminado y ningún otro. El solo hecho de tener estos dos elementos en su lugar habría devuelto un HTTP 404 muy temprano en el canal de IIS, por lo que la solicitud no habría sido procesada por el código de la aplicación.

<fileExtensions allowUnlisted="false">
    <clear/>
    <add fileExtension="." allowed="true" />
</fileExtensions>

FWIW, he estado publicando en mi blog sobre la definición de umbrales para el filtrado de solicitudes de IIS. Todavía hay mucho que agregar, pero espero que te ayude a comenzar.

    
respondido por el user2320464 02.06.2015 - 08:04
fuente
3

Este patrón me parece a fuzz logic / testing.

El motivo puede ser la huella digital de su infraestructura

y / o

Obtenga / encuentre cualquier error en su software web que pueda ser explorado más adelante

y / o

Encuentre recursos no seguros en el sitio web para robar información interna / del cliente.

El uso de la lógica fuzz también parece ser para buscar una ruta válida en el sitio web / aplicación (s)

P.S. Por supuesto, este ejemplo es el peor de los casos, pero en seguridad, en mi humilde opinión, esta es la manera de obtener una buena evaluación de un problema en particular

    
respondido por el Romeo Ninov 01.06.2015 - 20:31
fuente
1

Parece que esto puede ocurrir si el usuario tiene las cookies deshabilitadas, por lo que vuelve a incluir información en la URL:

enlace

    
respondido por el AaronLS 16.03.2017 - 20:26
fuente
0

Algunos sistemas Unix no manejan paréntesis no escapados correctamente en los nombres de ruta, especialmente si el sistema está usando algún tipo de script para reescribir URL o algo así.

No sé a qué te refieres con "MVC" (System.Web.Mvc framework?).

No hay nada que puedas hacer para detener este sondeo, excepto la prohibición de IP. En los viejos tiempos cuando solía ejecutar un servidor web, tenía que bloquear toda la isla de Taiwán (porque en ese momento todo el tráfico de China pasaba por Taiwán).

    
respondido por el Tyler Durden 02.06.2015 - 06:59
fuente

Lea otras preguntas en las etiquetas