LeSora
Несколько месяцев назад в Америке вышел закон, который аннулирует сетевой нейтралитет. То есть теперь провайдер на законных основаниях может собирать и анализировать информацию о деятельности пользователя в сети без получения согласия. На практике это означает, что будут собираться IP-адреса, которые с легкостью могут быть преобразованы в физическое местонахождение, историю посещения сайтов и содержимое страниц, просмотренных вне протокола HTTPS, включая информацию, отправленную через веб-формы. В фонде электронных рубежей (Electronic Frontier Foundation; EFF) полагают, что интернет-провайдеры могут пойти еще дальше и начать продавать собранную информацию третьим лицам.
Сокрытие данных от провайдера с помощью Noisy
Для сокрытия данных от провайдера поможет утилита Noisy, представляющая собой простой скрипт, написанный на Python. Он может генеририровать случайный HTTP/DNS-трафик в фоновом режиме, в то время когда вы посещаете сайты. Таким образом, ваша информация теряет уникальность, становится бесполезной для маркетологов и компаний, занимающихся анализом подобного рода сведений.
Идеи, реализованные в скрипте Noisy, не являются чем-то новым, и были почерпнуты из инструмента Squawk, представляющего собой скрипт, встраиваемый в веб-страницы для отсылки дополнительных случайных запросов. Однако Noisy проще использовать и модифицировать.
Рассмотрим пошагово, как работать с Noisy.
Установка зависимостей
У вас должен быть установлен Python. Noisy совместим с версиями 2.7 и 3.6. Для проверки версии Python в вашей системе введите следующую команду:
Клонирование Noisy из GitHub
После того как Python и все нужные зависимости установлены, загружаем Noisy из репозитория при помощи команды:
После загрузки распакуйте содержимое архива.
Знакомство с конфигурационным файлом
Теперь нужно отредактировать конфигурационный файл. Несмотря на то, что для корректной работы Noisy изменять настройки не требуется, попутно мы сможем разобраться, как работает программа. Вначале переходим в директорию с распакованным архивом при помощи команды:
Информация в файле хранится в формате JSON. Noisy берет первый адрес из списка «root_urls» и ждет случайное время в диапазоне между «min_sleep» и «max_sleep» (в секундах) перед тем, как кликнуть на случайную ссылку на странице. Глубина просмотра указана в параметре «max_depth». После завершения просмотров страниц на текущем сайте, берется следующий адрес из списка и так далее.
При посещении сайтов содержимое не показывается на экране, но может привлечь внимание того, кто занимается мониторингом локальной сети или в случае, если просмотр этих сайтов запрещен настройками прокси-сервера. Короче говоря, отредактируйте этот список на ваше усмотрение. Чем больше будет добавлено адресов, тем более случайным будет трафик.
Поскольку в файле config.json мало адресов, весь список будет пройден за не очень большое время. Как итог, потенциально может появиться опознаваемый кусок информации, который легко будет отфильтрован.
Добавление сайтов в конфигурационный файл
Если вы решите сделать свой собственный список сайтов, помните, что информация хранится в формате JSON, и каждый адрес должен быть заключен в двойные кавычки с запятой на конце. Кроме того, я всегда добавляю префикс https://, чтобы вначале попробовать зайти на сайт через протокол HTTPS. Пример:
После обновления файла config.json все готово для рандомизации трафика. При помощи команды cd зайдите в директорию noisy и запустите скрипт noisy.py с аргументом в виде конфигурационного файла:
Другие параметры в Noisy
Когда Noisy не запущен, используйте аргумент h или help для ознакомления с другими опциями, как, например, установка таймаута:
Как говорилось выше, можно поместить Noisy в контейнер на базе Docker при помощи следующей команды (но вначале нужно установить Docker):
Изучая конфигурационный файл, вы могли заметить, что задержка устанавливается в секундах. Сей факт означает, что наименьшая задержка может быть равна одной секунде, если настроить конфигурацию так:
Используя Docker-compose, мы можем запустить одновременно несколько контейнеров для генерации неограниченных объемов трафика. Нужно зайти в папку examples, собрать новый образ и запустить сборку на том количестве контейнеров, которое вам необходимо:
Как вы могли убедиться, Noisy – чрезвычайно простая утилита, и после некоторых настроек, вы получаете невероятно мощный инструмент, который должен стать вашим повседневным инструментом, если вы заботитесь о своей конфиденциальности.
Сокрытие данных от провайдера с помощью Noisy
Для сокрытия данных от провайдера поможет утилита Noisy, представляющая собой простой скрипт, написанный на Python. Он может генеририровать случайный HTTP/DNS-трафик в фоновом режиме, в то время когда вы посещаете сайты. Таким образом, ваша информация теряет уникальность, становится бесполезной для маркетологов и компаний, занимающихся анализом подобного рода сведений.
Идеи, реализованные в скрипте Noisy, не являются чем-то новым, и были почерпнуты из инструмента Squawk, представляющего собой скрипт, встраиваемый в веб-страницы для отсылки дополнительных случайных запросов. Однако Noisy проще использовать и модифицировать.
Рассмотрим пошагово, как работать с Noisy.
Установка зависимостей
У вас должен быть установлен Python. Noisy совместим с версиями 2.7 и 3.6. Для проверки версии Python в вашей системе введите следующую команду:
В Noisy используется модуль Requests, который можно установить при помощи следующей команды:python -V
Кроме того, еще большую пользу от Noisy можно получить, если установить Docker, поскольку в этом случае вы сможете изолировать трафик в ограниченной среде как отдельный канал. Однако использование Docker не является обязательным.pip install requests
Клонирование Noisy из GitHub
После того как Python и все нужные зависимости установлены, загружаем Noisy из репозитория при помощи команды:
Альтернативный вариант: зайти в репозиторий и загрузить .zip файл. Вначале нажмите на кнопку «Clone or download» и в открывшемся контекстном меню выберите пункт «Download ZIP»:git cloneВам необходимо выполнить Вход либо Регистрация для просмотра ссылок!
После загрузки распакуйте содержимое архива.
Знакомство с конфигурационным файлом
Теперь нужно отредактировать конфигурационный файл. Несмотря на то, что для корректной работы Noisy изменять настройки не требуется, попутно мы сможем разобраться, как работает программа. Вначале переходим в директорию с распакованным архивом при помощи команды:
Затем откройте файл config.json в вашем любимом текстовом редакторе. В качестве примера используем:cd noisy
Альтернативный вариант: на рабочем столе зайти папку «Files», а затем в директорию «noisy» и открыть файл config.json в редакторе Notepad++.vim config.json
Информация в файле хранится в формате JSON. Noisy берет первый адрес из списка «root_urls» и ждет случайное время в диапазоне между «min_sleep» и «max_sleep» (в секундах) перед тем, как кликнуть на случайную ссылку на странице. Глубина просмотра указана в параметре «max_depth». После завершения просмотров страниц на текущем сайте, берется следующий адрес из списка и так далее.
"max_depth": 25,
"min_sleep": 3,
"max_sleep": 6,
"timeout": false,
"root_urls": [
"Вам необходимо выполнить Вход либо Регистрация для просмотра ссылок!",
"Вам необходимо выполнить Вход либо Регистрация для просмотра ссылок!",
"Вам необходимо выполнить Вход либо Регистрация для просмотра ссылок!",
"Вам необходимо выполнить Вход либо Регистрация для просмотра ссылок!",
"Вам необходимо выполнить Вход либо Регистрация для просмотра ссылок!",
"Вам необходимо выполнить Вход либо Регистрация для просмотра ссылок!",
"Вам необходимо выполнить Вход либо Регистрация для просмотра ссылок!",
"Вам необходимо выполнить Вход либо Регистрация для просмотра ссылок!",
"Вам необходимо выполнить Вход либо Регистрация для просмотра ссылок!",
"Вам необходимо выполнить Вход либо Регистрация для просмотра ссылок!",
"Вам необходимо выполнить Вход либо Регистрация для просмотра ссылок!",
"blacklisted_urls": [
"Вам необходимо выполнить Вход либо Регистрация для просмотра ссылок!",
"t.umblr.com",
"messenger.com",
"itunes.apple.com",
"l.facebook.com",
"mediawiki",
".css",
".ico",
".xml",
"intent/tweet",
"twitter.com/share",
"dialog/feed?",
".json",
"zendesk",
"clickserve",
".png"
"user agents": [
"there are many user agents here!"
Как вы могли заметить, есть некоторые особенности, связанные с настройками. Во-первых, в списке «root_urls» всего 11 адресов. Во-вторых, при посещении некоторых сайтов в вышеуказанном списке могут возникнуть проблемы.
При посещении сайтов содержимое не показывается на экране, но может привлечь внимание того, кто занимается мониторингом локальной сети или в случае, если просмотр этих сайтов запрещен настройками прокси-сервера. Короче говоря, отредактируйте этот список на ваше усмотрение. Чем больше будет добавлено адресов, тем более случайным будет трафик.
Поскольку в файле config.json мало адресов, весь список будет пройден за не очень большое время. Как итог, потенциально может появиться опознаваемый кусок информации, который легко будет отфильтрован.
Добавление сайтов в конфигурационный файл
Если вы решите сделать свой собственный список сайтов, помните, что информация хранится в формате JSON, и каждый адрес должен быть заключен в двойные кавычки с запятой на конце. Кроме того, я всегда добавляю префикс https://, чтобы вначале попробовать зайти на сайт через протокол HTTPS. Пример:
Рандомизация трафика"Вам необходимо выполнить Вход либо Регистрация для просмотра ссылок!",
После обновления файла config.json все готово для рандомизации трафика. При помощи команды cd зайдите в директорию noisy и запустите скрипт noisy.py с аргументом в виде конфигурационного файла:
cd noisy
После запуска этой команды начнется генерация случайного трафика. Если все работает корректно, вы должны увидеть исходящий поток различных адресов как в примере ниже:python noisy.py --config config.json
INFO:root:VisitingВам необходимо выполнить Вход либо Регистрация для просмотра ссылок!
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): azerbaijantourism.az
INFO:root:VisitingВам необходимо выполнить Вход либо Регистрация для просмотра ссылок!
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): azerbaijantourism.az
INFO:root:VisitingВам необходимо выполнить Вход либо Регистрация для просмотра ссылок!
Чтобы остановить скрипт, нажмите комбинацию клавиш Ctrl+C.INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): azerbaijantourism.az
Другие параметры в Noisy
Когда Noisy не запущен, используйте аргумент h или help для ознакомления с другими опциями, как, например, установка таймаута:
Полный перечень аргументов:python noisy.py –help
Опциональные аргументы:noisy.py [-h] [--log -l] --config -c [--timeout -t]
-h, —help справка
-log -l уровень логирования событий
-config -c файл настройки
Запуск Noisy через Docker (необязательно)-timeout -t продолжительность работы паука в секундах
Как говорилось выше, можно поместить Noisy в контейнер на базе Docker при помощи следующей команды (но вначале нужно установить Docker):
Вы даже можете сделать сборку для устройства Raspberry Pi с операционной системой Raspbian, если хотите вынести рандомизатор трафика в отдельное место.docker build -t noisy .
После того как сборка выполнена, запуск осуществляется при помощи следующей команды:docker build -f Dockerfile.pi -t noisy .
Увеличение объемов случайного трафика (необязательно)docker run -it noisy --config config.json
Изучая конфигурационный файл, вы могли заметить, что задержка устанавливается в секундах. Сей факт означает, что наименьшая задержка может быть равна одной секунде, если настроить конфигурацию так:
"min_sleep": 0,
В некоторых случаях этой задержки может быть недостаточно, как, например, в ситуациях, когда в вашей сети много людей, и нужно генерировать большие объемы случайного трафика."max_sleep": 1,
Используя Docker-compose, мы можем запустить одновременно несколько контейнеров для генерации неограниченных объемов трафика. Нужно зайти в папку examples, собрать новый образ и запустить сборку на том количестве контейнеров, которое вам необходимо:
cd examples/docker-compose
docker-compose build
Однако в этом случае нужно отслеживать количество генерируемого трафика, поскольку при большом количестве работающих контейнеров может замедлиться скорость интернета. Кроме того, если у вас есть ограничения по трафику, нужно очень внимательно следить за тем, сколько генерируется случайных данных.docker-compose up --scale noisy=<number-of-containers>
Как вы могли убедиться, Noisy – чрезвычайно простая утилита, и после некоторых настроек, вы получаете невероятно мощный инструмент, который должен стать вашим повседневным инструментом, если вы заботитесь о своей конфиденциальности.