BlogCyber Weapons Lab

Cómo: Inundar su ISP con datos aleatorios y ruidosos para proteger su privacidad en Internet

La neutralidad de la red está muerta y sus proveedores de servicios de Internet pueden recopilar todos los datos que deseen. Si bien las VPN son una excelente manera de proteger parte de esa privacidad, no son perfectas. Sin embargo, hay otra opción, llamada Ruidoso, que fue creado por Itay Hury. Inunda a su ISP con tanto ruido HTTP / DNS aleatorio que sus datos son inútiles para cualquiera, incluso si los obtienen.

Si te has estado escondiendo debajo de una roca durante el último año y no lo sabes que es la neutralidad de la red, entonces vamos a ponerte al día muy rápido. …

De lo que la gente ha estado hablando últimamente es SJRes.34, el proyecto de ley (ahora ley) que deroga la neutralidad de la red. Esto significa que su ISP ahora puede recopilar legalmente sus datos web sin su conocimiento o consentimiento. En términos prácticos, eso significa sus direcciones IP, que podrían convertirse en una ubicación física, su historial web y páginas web y contenido que no sean HTTPS, incluidos los formularios enviados. La Electronic Frontier Foundation (EFF) cree que podrían hacer incluso más que eso, utilizando los datos en sí mismos o vendiéndolos al mejor postor en masa.

Aquí es donde entra en juego Noisy. La herramienta ayuda a proteger sus datos ocultándolos a la vista. Más precisamente, es una “secuencia de comandos de Python simple que genera ruido de tráfico HTTP / DNS aleatorio en segundo plano mientras navega por la web”. De esta manera, sus datos ya no son únicos ni útiles para los anunciantes u otras empresas de análisis de datos.

Noisy no es una idea nueva, ya que se inspiró en Graznido, que es un fragmento de código HTML agregado a los sitios web que hace que las páginas envíen solicitudes aleatorias adicionales, pero Noisy lo convierte en un programa Python fácil de usar y de modificar. Echemos un vistazo a cómo ponerlo en funcionamiento.

Paso 1: instalar dependencias

Como programa de Python, necesitará tener Python instalado. En Kali Linux, ya está instalado. Es compatible con Python 2.7 y 3.6. Puede usar el siguiente comando para verificar la versión que tiene.

python -V

El programa Noisy utiliza el módulo de solicitudes para Python, por lo que lo necesitará. Puedes usar pepita para instalarlo:

pip install requests

Además, puede sacar más provecho de Noisy si tiene Docker instalado, ya que puede aislar el tráfico en un entorno contenido de lo que está tratando de ocultar, pero no es necesario para que el programa se ejecute.

Paso 2: Clonar Noisy desde GitHub

Ahora que se encarga de Python, descargue Noisy de GitHub con git:

git clone https://github.com/1tayH/noisy.git

Alternativamente, puede navegar a la Repositorio de GitHub y descargue el archivo .zip. Haga clic en “Clonar o descargar”, luego “Descargar ZIP”. Una vez descargado, abra el archivo y haga clic en “Extraer todo” para descomprimir el archivo.

Paso 3: abra el archivo de configuración

Ahora necesitamos editar el archivo de configuración. No es necesario para que el programa se ejecute, pero es una excelente oportunidad para discutir cómo funciona el programa y mejorarlo. Primero, muévase al directorio Noisy con CD:

cd noisy

Después de eso, querrá abrir su archivo config.json en su editor de texto favorito. Por ejemplo, si desea usar Vim, simplemente use este comando:

vim config.json

Alternativamente, puede abrir la carpeta “Archivos” en su escritorio, navegar a “ruidoso” y luego abrir el archivo config.json con su editor de texto favorito. Me gusta usar Bloc de notas ++.

Una vez que abra el archivo, verá algunos JSON datos. Noisy funciona comenzando desde “root_urls” y luego esperando un tiempo aleatorio entre “min_sleep” y “max_sleep” (en segundos) antes de hacer clic en un enlace aleatorio de la página que va a la profundidad de los enlaces “max_depth”. Luego se mueve a la siguiente URL raíz y las recorre en orden.

{
    "max_depth": 25,
    "min_sleep": 3,
    "max_sleep": 6,
    "timeout": false,
    "root_urls": [
        "http://4chan.org",
        "https://www.reddit.com",
        "https://www.yahoo.com",
        "http://www.cnn.com",
        "https://p---hub.com",
        "https://www.ebay.com",
        "https://wikipedia.org",
        "https://youtube.com",
        "https://github.com",
        "https://medium.com",
        "https://thep-----bay.org",
    ],
    "blacklisted_urls": [
        "https://t.co",
        "t.umblr.com",
        "messenger.com",
        "itunes.apple.com",
        "l.facebook.com",
        "bit.ly",
        "mediawiki",
        ".css",
        ".ico",
        ".xml",
        "intent/tweet",
        "twitter.com/share",
        "dialog/feed?",
        ".json",
        "zendesk",
        "clickserve",
        ".png"
    ],
    "user agents": [
        "there are many user agents here!"
    ]
}

Es posible que observe algunos problemas con este archivo config.json. Para empezar, solo hay 11 URL raíz. Además, algunas de esas URL raíz podrían ser problemáticas según el entorno en el que se encuentre.

Los sitios raíz no aparecerán en la pantalla, pero podrían llamar la atención no deseada si alguien está monitoreando la red local o si existen proxies o prohibiciones en esos sitios en particular. Es posible que desee considerar eliminarlos, pero tenga cuidado, porque desea tantos sitios diferentes en esta lista como sea posible. Cuantos más sitios, más aleatorio será el ruido.

Este es el mayor problema con el archivo config.json predeterminado: solo hay 11 URL raíz. Con ellos en orden y retrocediendo una vez que llega al final, podría potencialmente crear un patrón de datos fácilmente reconocible que se puede filtrar.

Paso 4: agregar más sitios al archivo de configuración

Para ayudar a solucionar el problema anterior, decidí hacer un archivo config.json personalizado. Decidí que un millón de URL sería un buen número, así que descargué el Alexa encabeza el millón de sitios web y usó un programa Python rápido y sucio para aleatorizar su orden. A continuación, pasé la lista por el aleatorizador cinco veces más para asegurarme de que estaban bien mezcladas. Finalmente, copié la lista de URL en el archivo config.json, lo que hará que el ruido que genera Noisy sea mucho más aleatorio.

Si desea utilizar mi archivo config.json (que tiene más de 25 MB de tamaño), visite su página de GitHub y haga clic derecho en “Descargar” y seleccione “Guardar enlace como” o simplemente haga clic en “Descargar” para abrir el archivo. Si hizo clic en “Descargar”, una vez que se haya cargado, haga clic derecho sobre él y “Guardar página como” en su carpeta “ruidosa” para reemplazar el config.json original. Si lo descargó inmediatamente, asegúrese de mover el archivo a la carpeta “ruidosa” manualmente.

Si decide introducir sus propias URL, recuerde que estamos editando datos JSON, por lo que cada URL debe tener comillas dobles (“”) a ambos lados y una coma (,) al final. También me gusta poner en el https: // por lo que siempre probará primero la versión HTTPS del sitio. Por ejemplo:

"https://website.com",

Paso 5: Empiece a ser ruidoso

Con el archivo config.json actualizado, ¡estamos listos para hacer ruido! Asegúrate de estar en el ruidoso directorio con CDy luego ejecute el programa Python con el argumento de configuración requerido:

cd noisy
python noisy.py --config config.json

Y eso es. Ahora está generando tráfico aleatorio. Si todo funciona, debería comenzar a ver un flujo de salida como el que se muestra a continuación, solo que con diferentes URL.

INFO:root:Visiting https://azerbaijantourism.az/about
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): azerbaijantourism.az
INFO:root:Visiting https://azerbaijantourism.az/
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): azerbaijantourism.az
INFO:root:Visiting https://azerbaijantourism.az/booking-conditions
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): azerbaijantourism.az

Para detener Noisy, simplemente presione Ctrl-C en tu teclado.

Paso 6: vea qué más puede hacer en entornos ruidosos

Cuando Noisy no se esté ejecutando, utilice el h o ayuda argumento para ver qué más puede hacer, como establecer un tiempo de espera.

python noisy.py --help

Estos son los otros argumentos que puede utilizar:

usage: noisy.py [-h] [--log -l] --config -c [--timeout -t]

optional arguments:
  -h, --help    show this help message and exit
  --log -l      logging level
  --config -c   config file
  --timeout -t  for how long the crawler should be running, in seconds

Paso 7: Ejecutar ruidosamente con un Docker (opcional)

También es posible contener Noisy mediante el uso de Docker, como se discutió anteriormente. Si desea hacer esto, es tan fácil como usar el construir mando. (Es posible que primero deba instalar Docker en su sistema).

docker build -t noisy .

Incluso puede construirlo para una Raspberry Pi que ejecute Raspbian stretch; Esta sería una gran opción si desea descargar Noisy para que se ejecute en un Pi en otro lugar de la red.

docker build -f Dockerfile.pi -t noisy .

Una vez finalizada la compilación de Docker, puede iniciarla con Docker ejecutar:

docker run -it noisy --config config.json

Paso 8: Sea el más ruidoso con ruidoso en Docker (opcional)

Es posible que haya notado al mirar el archivo config.json que el tiempo de suspensión es un número entero aleatorio en segundos. En términos prácticos, esto significa que lo más rápido que Noisy puede funcionar es una nueva URL cada segundo, si establecemos la configuración así:

"min_sleep": 0,
"max_sleep": 1,

Sin embargo, esto no será lo suficientemente rápido para algunos usuarios. Por ejemplo, si tiene muchas personas reales en su red, es posible que desee generar más tráfico falso para ofuscar sus datos. Pero eso no es posible con la limitación de un segundo.

Afortunadamente, Docker-compose puede salvarnos al permitirnos ejecutar múltiples contenedores simultáneamente para generar ruido ilimitado. Simplemente muévase a la carpeta de ejemplos, luego cree la nueva imagen de la ventana acoplable y ejecútela con la cantidad de contenedores que desee.

cd examples/docker-compose
docker-compose build
docker-compose up --scale noisy=<number-of-containers>

Si sigue esta ruta, tenga cuidado con la cantidad de datos que está utilizando. Si tiene una conexión de datos ilimitada, entonces debería estar bien, solo ralentizando ligeramente la velocidad de Internet. Por otro lado, si tiene algún tipo de límite de datos, tenga en cuenta cuánto de eso está siendo utilizado por Noisy.

Como ha visto, Noisy es increíblemente sencillo de configurar y, una vez que ha realizado una pequeña configuración, es increíblemente poderoso. Debería ser parte de la estrategia de privacidad de todos, garantizando que si alguien obtiene sus datos, es inútil para ellos.

¡Gracias por leer! Si tiene alguna pregunta, pregunte a continuación o en Twitter. @El_Campo.

Imagen de portada y capturas de pantalla de Hoid / Null Byte

Publicaciones relacionadas

Deja una respuesta

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

Botón volver arriba
Cerrar