Срываем покровы — как протестировать браузер на наличие шпионажа.

Поддержка защиты конфиденциальности — это один из главных критериев, по которому пользователи выбирают (или, в любом случае, должны выбирать) веб-браузер. Часто, мнения о приватности браузера производятся на основании предположений, маркетинга, или на основании политики конфиденциальности (которую может быть тяжело прочесть и понять, и которая может упускать информацию или открыто врать). Было бы заметельно, будь у нас способ доказать, действительно ли браузер заботится о защите вашей конфиденциальности, или просто выделывается, неся чушь? К счастью, существует мощный инструмент, чётко позволяющий видеть, что творит браузер за вашей спиной, и я расскажу вам о нём прямо сейчас. Сорвём же покровы!

Получение, запуск и настройка инструмента

Прежде всего, установите mitmproxy. Вы можете сделать это просто набрав эту команду в терминале: pip3 install mitmproxy (вам понадобится сначала установить python3 — он должен быть доступен в большинстве репозиториев Linux). Что такое mitmproxy? Говоря простым языком, это локальный прокси-сервер, к которому вы можете подключить свой браузер, что позволит вам увидеть соединения им совершаемые (у него гораздо больше возможностей помимо этой, но только её мы рассматриваем в этой статье).

Подключение браузера к mitmproxy

Сначала запустите mitmproxy, набрав команду терминала mitmproxy -p 3128. 3128 — это порт, на котором выполняется прокси. Теперь зайдите в свойства прокси вашего браузера и вставьте IP — 127.0.0.1 и порт — 3128 (нужно заполнить и секцию HTTP, и HTTPS). Для основанных на Chrome браузеров всё немножко сложнее, поскольку ими конфигурация прокси через GUI [графический интерфейс] не поддерживается. Вам придётся запускать их из командной строки примерно так: имя браузера --proxy-server="127.0.0.1:3128". Замените "имя браузера" на имя исполняемого файла, например iridium-browser --proxy-server="127.0.0.1:3128".

Включение расшифровывания SSL

Теперь, если ваш браузер из семейства шпионского ПО, вам уже должны быть заметны какие-то запросы в окне вашего терминала — но постойте: развёртывание mitmproxy всё ещё не окончено. По умолчанию он отображает исключительно HTTP запросы, поскольку браузеры не позволят ему расшифровывать SSL. К счастью, у него есть простой способ добавления корневого сертификата в ваш браузер, что и позволит именно это вам сделать (к этому и относится часть "mitm" в "mitmproxy"). Переключитесь на окно вашего браузера и введите mitm.it в адресной строке. Теперь выберите свою платформу и следуйте дальнейшим инструкциям. Если у вас всё успешно получилось, то у вас должна быть возможность пойти на любой HTTPS вебсайт и увидеть соответствующий запрос в mitmproxy (который начнётся с GET https://). Заметка: инструкции для Chrome безосновательно сложны и, как оказывается, даже не работают. Всё, что вам нужно, — это зайти в Настройки, найти "серт" сверху и кликнуть Настроить сертификаты, затем импортировать mitmproxy-ca-cert.pem file (вкладка Доверенные). Окэй, расшифровывание SSL мы включили — что же остаётся теперь?

Использование mitmproxy

Только подождать! Да, именно это и остаётся. Вся суть в ожидании и наблюдении за запросами, которые браузер делает без вашего участия. Вы можете перемещаться между запросами клавишами стрелок и рассматривать их детально нажатием Enter. Так вы увидите ВСЕ данные, которые браузер отправляет и получает. Конечно, для их понимания нужно много опыта, но зато, как минимум, у вас есть возможность при желании Сорвать Покровы! Вы можете быть чрезвычайно удивлены, наблюдая, как типичные веб-браузеры — даже те, которые общепринято считаются "уважающими вашу конфиденциальность" — делают сотни запросов без вашего ведома. Например, Waterfox набирает целых 109 нежелательных запросов только при включении! А вот рекламируется он как ориентированный на защиту конфиденциальности — но, благодоря mitmproxy, вы можете сорвать покровы, и выставить рекламное утверждение ложью, которой оно и является. Это ли не мощь? Больше нет нужды полагаться на популярные мнения, на дезинформирующую рекалму или на дерьмовые политики конфиденциальности (которые следовало бы называть политиками шпионажа). Теперь, это всё, что вы должны проверить.

Конечно, вы не обнаружите всё шпионское ПО одним лишь ожиданием. Некоторые могут скрываться в местах, таких как страница новой вкладки или требовать посещение веб-сайта (например, сбор Oper'ой истории посещения сайтов). Также, многие запросы производятся только при первом запуске браузера — тогда, когда они пока ещё не проходят через mitmproxy, что не позволит вам их увидеть. Как преодолеть это препятствие?

Для основанных на Chrome

Закройте свой браузер. Теперь идите в конфигурационную папку браузера (например /home/hackerman/.config/vivaldi/) и удалите файл "First Run". Это должно помочь. Воспользуйтесь клавишей Z в mitmproxy, чтобы удалить все предыдущие запросы, поскольку таким образом будет проще увидеть новые. Снова запустите браузер.

Для основанных на Firefox

Чуть-чуть сложнее. Вам также нужно пойти в конфигурационную папку браузера, но в пути к ней будет не .config, а .mozilla (для FF и IceCat), или .waterfox (для Waterfox), или .moonchild productions (для Pale Moon). Теперь ЗАКРОЙТЕ СВОЙ БРАУЗЕР (если он у вас открыт), найдите файл prefs.js, а в нём — строку user_pref("network.proxy.http", "127.0.0.1");. Затем скопируйте всё от этой строки до user_pref("network.proxy.type", 1);. Удалите всё остальное в этом файле и сохраните его. Ваш prefs.js должен выглядеть примерно так (сейчас, наверное, уже не всё обязательно нужно удалять, но давайте быть в безопасности..). Также удалите и все остальные файлы, кроме prefs.js и cert8.db (содержащий информацию о сертификате mitmproxy) — таким образом, ваш браузкр, основанный на Firefox, станет отличаться от исходной чистой инсталяции ТОЛЬКО свойствами прокси.

Другие области применения mitmproxy

Бесконечны. Вы можете даже проверить, делает ли дополнение ненужные запросы. Некоторые из так называемых дополнений для защиты конфиденциальности в действительности будут вашу конфиденциальность нарушать, делая запросы у вас за спиной. Да вы даже можете заняться заняться настоящим хареством с его помощью, — таким как выявление паролей или как отправка фэйковой веб-страницы вашей жертве — но это гораздо сложнее, чем простое тестирование конфиденциальности браузера, и является предметом для другой статьи. Вы точно также можете подключить и любую другую программу, передающую данные через HTTP, например, RSS-клиент. Наслаждайтесь..

Translated by silverblack 29 / 06 / 2019.