Ошибка https фильтрации adguard не принимает наш сертификат

AdGuard Антибаннер эффективно блокирует рекламу, а также защищает от фишинговых сайтов, посредством которых мошенники могут завладеть личной информацией посетителей данных ресурсов. Время от времени при его использовании пользователи сталкиваются с техническими проблемами. Что делать, если произошел сбой приложения?

Если не работает АдГуард в Яндекс.Браузере, в Опере или другом браузере, попробуйте выполнить следующие действия.

Если плагин раньше работал корректно, и ошибка произошла единожды (то есть не носит системный характер), то можно попробовать решить ее путем закрытия и повторного запуска браузера. Не сработало? Тогда попробуйте удалить и заново установить расширение.

Вместо расширения для браузера, можно скачать АдГуард для ПК. Программа платная, но есть 14-дневный пробный период. Если она вас устроит, то можно будет потом установить взломанную версию.

Интерфейс АдГуард простой и интуитивно понятный.

В отличие от расширения, она работает также в приложениях.

Обратиться за помощью в техподдержку можно через специальную форму. Вам придется ответить на несколько вопросов, выполнить ряд действий и, возможно, прикрепить файлы. Вся эта информация отправляется сразу разработчику, что убыстряет решение вопроса.

Так что лучше сразу обращаться в техподдержку или установить программу АдГуард вместо браузерного расширения. Она обладает более широким функционалом, и в случае возникновения какой-либо ошибки шанс найти работающее решение существенно выше.


В этой статье собраны наиболее частые ошибки, с которыми вы можете столкнуться во время установки AdGuard для Windows, и возможные пути их решения.

Эта ошибка возникает, когда что-то не в порядке с разрешением на доступ. Почему у установщика AdGuard нет разрешения, которое требуется для завершения установки, может объясняться рядом причин. Выполните следующие действия:

Временно отключите антивирусы. Некоторые из них могут мешать установке, это зависит от степени жёсткости ваших настроек.

Выберите другую папку установки – возможно, что у текущей папки есть ограничения доступа. Также удостоверьтесь, что не выбрали внешний или виртуальный жёсткий диск.

Перезагрузите компьютер. Иногда проблемы с разрешением временные, и их можно решить с помощью простой перезагрузки.

Две разные ошибки с очень похожими решениями. Как видно из названия, в обоих случаях установщик AdGuard не нашёл достаточно места, чтобы завершить процесс. Вот что вы можете попробовать, чтобы устранить проблему:

Удалите некоторые программы или ненужные файлы с вашего диска, на который вы пытались установить AdGuard.

Загрузите, установите и запустите AdwCleaner, бесплатный инструмент от Malwarebytes. Помимо прочего, он очистит вашу систему от файлов, оставшихся после неправильно удалённых программ. Это освободит место на диске.

Перезагрузите компьютер. Иногда временные файлы могут занимать много места на диске, и перезагрузка компьютера – самый надёжный способ избавиться от них.

Запустите и пройдите перерегистрацию службы установщика Microsoft. На это потребуется некоторое время.

1) Нажмите комбинацию клавиш Win + R и введите services.msc.
2) Найдите его в списке и дважды щёлкните на Установщик Windows.
3) Нажмите кнопку Запустить под Service status и нажмите OK. Если статус запущен, сначала нажмите Остановить и затем Запустить.
4) Нажмите Win + R, напечатайте msiexec /unregister и нажмите Enter.
5) Снова нажмите Win + R, напечатайте msiexec /regserver и нажмите Enter

Перезагрузите компьютер и запустите установщик заново. Иногда этого достаточно, чтобы устранить проблему.

Если у вас этот код ошибки, весьма вероятно, что вы тем или иным способом прервали процесс установки вручную. Что вы можете сделать:

Не закрывайте окно установщика. Когда установка будет завершена, оно закроется автоматически.

Если во время установки всплывает диалоговое окно, нажмите «Да», чтобы предоставить установщику необходимое разрешение. Нажатие «Нет» отменит установку.

Не запускайте другие процессы во время установки.

Эта ошибка звучит страшнее, чем она есть на самом деле. На практике это довольно стандартная ошибка, которая может быть обусловлена разными причинами, и некоторые из них легко поправить. Попробуйте следующие решения:

Нажмите кнопку Win, найдите поиском приложение Командная строка и запустите её. В открывшемся окне вбейте sfc /scannow и нажмите Enter.

Выберите другую папку установки. Возможно, что у нынешней папки есть ограничения доступа. Также удостоверьтесь, что не выбрали внешний или виртуальный жёсткий диск.

Перезагрузите компьютер. Иногда проблемы с разрешением временные, и их можно решить с помощью простой перезагрузки.

​- Удалите AdGuard, используя наше специальное средство удаления, и затем повторите установку.

Эта ошибка возникает, когда установщик AdGuard запущен несколько раз. Что делать:​

Очень вероятно, что вы ранее устанавливали AdGuard.

Может быть, у вас остались файлы от предыдущей установки AdGuard. Удалите AdGuard, используя наше специальное средство удаления и повторите установку.

Другие ошибки

Если вы обнаружили ошибку, которая не перечислена выше, возможно, что мы можем её решить. Но чтобы это сделать, нам нужны ваши логи (файлы журналов). Пожалуйста, выполните следующие шаги:

Источник

Вопросы и ответы

Что такое AdGuard?

AdGuard – это единственный в своём роде интернет-фильтр, который защищает вас от вездесущей рекламы, вредоносных и фишинговых сайтов, онлайн-трекинга и многого другого.

AdGuard действительно справится с блокировкой абсолютно всех видов интернет-рекламы, ускорит загрузку страниц, сэкономит трафик, и повысит защиту вашего устройства от возможных угроз.

AdGuard использует уникальную технологию, позволяющую фильтровать трафик вашего устройства, для которой не требуются ROOT-права. Скорость работы фильтрации не будет зависеть от работы VPN-сервера, так как он размещается прямо на вашем устройстве.

Как работает защита AdGuard?

AdGuard фильтрует ваш трафик, блокируя запросы к фишинговым и вредоносным сайтам и удаляя навязчивую браузерную рекламу. AdGuard может использовать два режима фильтрации трафика.

Режим локального VPN.

Режим локального HTTP прокси сервера.

Режим локального VPN

В случае, если вы используете этот режим, AdGuard не требуются ROOT-права для осуществления фильтрации. При этом VPN-сервер находится на вашем же устройстве, так что для фильтрации не приходится пропускать ваш трафик через удаленный сервер.

Режим локального HTTP прокси сервера

В этом режиме AdGuard запускает на вашем устройстве локальный HTTP прокси сервер. Этот режим рекомендуется применять, если вы используете рутованное устройство. В обратном случае для применения этого режима понадобится ручная настройка HTTP прокси, а также будет невозможна фильтрация в мобильных сетях (Edge/3G/4G).

Нужно ли получение ROOT доступа?

В отличие от большинства приложений, занимающихся фильтрацией трафика, AdGuard не требует ROOT доступа к Вашему устройству. В режиме локального VPN сервера AdGuard будет фильтровать весь ваш трафик, и ROOT доступ ему не понадобится.

Как вручную настроить локальный HTTP прокси?

Если ваше устройство не поддерживает автоматическую настройку прокси, то вы можете настроить прокси-сервер вручную, используя предложенную ниже инструкцию.

В расширенных настройках AdGuard выберите режим работы Локальный HTTP прокси и способ установки Ручной.

Перейдите в настройки телефона, выберите Wi-Fi. Откроется список беспроводных сетей.

Если устройство еще не подключено, подключитесь к необходимой Wi-Fi сети. Откройте настройки сети путем зажатия строки этой сети. Появится меню действий с выбранной Wi-Fi сетью.

Выберите пункт Изменить сеть. В новом окне выберите пункт Дополнительно.

В пункте Прокси-сервер выберите Вручную.

Введите 127.0.0.1 в поле хоста прокси-сервера и тот же порт, что указан в настройках прокси в самом приложении AdGuard (по умолчанию в настройках AdGuard задан порт 8080).

Прокси сервер установлен. Теперь весь интернет-трафик будет фильтроваться AdGuard.

Как использовать другой VPN вместе с AdGuard?

Если вы уже используете VPN для каких-либо целей, для обеспечения работы AdGuard необходимо переключить приложение в режим HTTP прокси. Этот режим можно изменить в разделе Дополнительные настройки.

В данном режиме работы существует два способа установки прокси: автоматический и ручной.

Автоматический режим

В автоматическом режиме включение фильтрации не требует от вас совершения каких-либо действий. Фильтрация будет работать как в мобильных, так и в Wi-Fi сетях. Проблема в том, что автоматический режим может быть задействован только при наличии ROOT доступа.

Ручной режим

Этот подход может не сработать в некоторых случаях. Это зависит от прошивки и самого VPN приложения. В ряде ситуация трафик направляется в обход прокси, установленного вручную. В ручном режиме фильтрация будет работать только для Wi-Fi соединений. Также вам придётся вручную настраивать прокси для каждого нового Wi-Fi соединения.

Какие ограничения имеет режим VPN?

По умолчанию AdGuard фильтрует трафик, используя локальный VPN-сервер. В этом режиме существуют незначительные ограничения, описанные ниже.

В режиме локального VPN защита AdGuard не будет запускаться автоматически вместе в включением телефона, так как эта возможность блокируется самой операционной системой Android.

Фильтрация не может работать совместно с другими VPN приложениями. В этом случае рекомендуем использовать режим локального HTTP прокси.

Почему не получается установить флажок «Я доверяю», когда Android спрашивает разрешения на включение VPN?

Если вы используете приложения, которые изменяют отображение (например, Night Mode или Twilight), вам нужно временно отключить это приложение. Иначе Android запрещает установку флажка в целях улучшения безопасности.

Почему я вижу сообщение «Нет поддержки VPN»?

Это сообщение появляется, когда AdGuard не удается создать VPN-соединение на вашем устройстве. На данный момент мы знаем о нескольких ситуациях, когда это может происходить.

1. Нестандартная прошивка

Вы используете нестандартную прошивку, в которой вырезан модуль ядра tun.ko, необходимый для работы VPN на Android.

2. Неправильная настройка прошивки

Прошивка на вашем устройстве была неправильно настроена. Если производитель знает о проблеме, то он может исправить ее в будущих обновлениях прошивки.

Восстановить поддержку VPN

Если у вас есть ROOT доступ, вы можете попробовать восстановить модуль VPN (tun.ko), используя для этого специальную программу — tun.ko installer.

Переключить режим фильтрации

Вы можете переключиться на режим фильтрации Локальный HTTP Прокси в расширенных настройках AdGuard.

Почему статистика Android показывает, что AdGuard использовал больше трафика, чем сэкономил?

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

Надеемся, что этот ответ прояснил, что происходит.

Почему режим модема не работает вместе с AdGuard?

Android не позволяет соединениям в режиме модема использовать VPN. Это правило распространяется на любое VPN приложение, запущенное на устройстве без ROOT прав. Да и с ROOT правами обойти это ограничение очень сложно. Ограничение введено из соображений безопасности на случай, чтобы посторонний человек, получив доступ к вашей сети в режиме модема, не мог одновременно получить доступ к VPN.

Решения

Отключите AdGuard на время, пока вы хотите использовать режим модема.

Если у вас есть ROOT доступ, можете переключить режим фильтрации на «Локальный HTTP прокси» вместо использования VPN. Это можно сделать в расширенных настройках AdGuard.

Какие браузеры не поддерживаются AdGuard?

В целом, AdGuard не может фильтровать трафик браузеров с функцией сжатия трафика. Единственный браузер с такой функцией, который мы можем фильтровать, это Google Chrome.

Opera

AdGuard может фильтровать трафик браузера Opera если вы не используете режим сжатия. Иначе трафик сжимается так, что его фильтрация становится невозможной.

Opera Mini

Браузер Opera Mini всегда сжимает трафик, поэтому AdGuard не может фильтровать его.

UC Browser

AdGuard может фильтровать UC Browser в случае, если вы не используете Скоростной режим или Быстрый режим. Иначе трафик частично сжимается и шифруется, так что AdGuard не может его фильтровать.

Puffin Browser

Браузер Puffin всегда сжимает трафик, поэтому AdGuard не может фильтровать его.

Почему может не запускаться VPN на Android 5.0?

Существует два известных открытых дефекта Android 5.0, которые могут помешать создать VPN-соединение.
Единственное решение — перезагрузить устройство.

Как устранить известные конфликты с другими приложениями?

Эта секция содержит список приложений, при использовании которых вы можете столкнуться с проблемами совместимости. В некоторых случаях проблема может быть решена настройкой самого приложения или AdGuard.

Orbot Прокси в комплекте с Tor

Проблема: Orbot Прокси в комплекте с Tor является VPN приложением, а вы не можете использовать два VPN одновременно.

Решение: настройте AdGuard на использование Orbot как вышестоящего прокси-сервера.

Откройте AdGuard, откройте Настройки — Расширенные.

Откройте Настройки прокси.

Используйте следующие настройки:
Тип прокси SOCKS4, сервер 127.0.0.1, порт 9050.

Запустите защиту AdGuard.

VPN by Private Internet Access

Проблема: VPN by Private Internet Access является VPN приложением, а вы не можете использовать два VPN одновременно.

Решение: вы можете настроить AdGuard на использование SOCKS5 прокси, предоставляемого PIA. Дополнительную информацию можно получить на сайте PIA. Другое возможное решение — переключить режим фильтрации на Локальный HTTP прокси в расширенных настройках (требуются ROOT права).

Opera Max

Проблема: Opera Max является VPN приложением, а вы не можете использовать два VPN одновременно.

Решение: (требуется ROOT) переключите режим фильтрации на Локальный HTTP прокси в расширенных настройках.

Решение: переключите режим фильтрации на Локальный HTTP прокси в расширенных настройках AdGuard.

Почему в режиме прокси функционал брандмауэра ограничен и статистика не очень точна?

В Сети Интернет используется множество разных вариантов подключений и передачи данных. Обычные сайты, звонки по VoIP, игры, различные VPN, любой UDP трафик (включая DNS) и т.д. В режиме VPN мы передаем каждый пакет с данными, который исходит из какого-нибудь приложения, но в режиме прокси мы контролируем только небольшое, но самое часто используемое подмножество типов трафика. Поэтому мы не можем гарантировать полную блокировку передачи данных для некоторых приложений, а статистические данные AdGuard в режиме прокси могут быть не очень точными.

Значит, режим прокси — это плохо?

Конечно, нет. Если вам не обязательно блокировать передачу данных по UDP, или по нестандартным портам, или видеть точные данные в статистике, можете не обращать на них внимание и пользоваться режимом прокси без каких-либо сомнений.

Почему некоторые приложения находятся в списке исключений?

Некоторые приложения используют нестандартные способы соединения и пересылки данных, либо наша процедура фильтрации мешает их работе. Поэтому такие приложения исключены из фильтрации. Мы надеемся, что это временная мера, так как наши алгоритмы фильтрации и обработки трафика постоянно совершенствуются.

Как работает DNS-фильтрация?

AdGuard может фильтровать запросы, преобразующие доменное имя в IP-адрес, обрабатывать их локально, и блокировать попытки соединения с фишинговыми, вредоносными, рекламными и следящими системами. Блокировка осуществляется с помощью отправки поддельного ответа, который перенаправляет подключения на локальный сетевой интерфейс (с IP-адресом 127.0.0.1). Тогда браузер или приложение, которое пыталось соединиться с сервером на заблокированном домене, будет пытаться соединиться с собой же и получит ошибку подключения.

Это кажется идеальным способом блокировки рекламы, зачем использовать что-то еще?

Затем, что существует некоторое количество рекламных систем, которые используют одинаковые домены и для раздачи рекламы и для каких-нибудь полезных сервисов. DNS-фильтрация в данном случае позволяет быстрее блокировать часть рекламных и опасных доменов, что снижает нагрузку на процессор устройства и его батарею.

Почему я не могу использовать DNS-фильтрацию в режиме локального HTTP прокси сервера?

Потому что для DNS-фильтрации мы должны фильтровать весь сетевой трафик (все виды трафика и сетевых пакетов). Только режим локального VPN позволяет это делать.

Как работает фильтрация HTTPS?

HTTPS (аббр. от англ. HyperText Transfer Protocol Secure) — расширение протокола HTTP, для поддержки шифрования в целях повышения безопасности. Этот протокол используется для защищенной передачи важной информации — персональных данных, реквизитов банковских карт, и т.д.

Дело в том, что сейчас всё больше и больше сайтов, блогов и социальных сетей переходит на HTTPS. Кроме блогов и сайтов на HTTPS переходят всё больше рекламных сетей, так как это необходимо для отображения рекламы на сайте, работающем по HTTPS. Вот примеры популярных сайтов, рекламу на которых невозможно убрать без фильтрации HTTPS: youtube.com, facebook.com, twitter.com.

Как происходит фильтрация зашифрованного трафика?

Если бы это было просто, HTTPS не был бы безопасным. Для того чтобы отфильтровать защищенный трафик, AdGuard должен сам создать два защищенных соединения. Одно — с браузером или другим приложением, второе — с сервером. Важно, чтобы при этом браузер «доверял» AdGuard и созданному им соединению. Для этого AdGuard генерирует и устанавливает специальный корневой сертификат в систему и при необходимости — в некоторые браузеры (например, Firefox).

Остается ли мой трафик защищенным и зашифрованным?

Конечно! Ваше соединение с удаленным сервером остается зашифрованным и защищенным. AdGuard, точно также как и браузер, проверяет сертификат сервера перед тем как принимает решение о фильтрации. Также AdGuard по умолчанию не фильтрует сайты финансовых сервисов и сайты с важными персональными данными.

Существует два режима работы HTTPS-фильтрации:

Фильтровать ТОЛЬКО соединения с доменами из «черного» списка.

Фильтровать ВСЕ соединения, КРОМЕ соединений с доменами из «белого» списка. В этот список мы предварительно добавили домены финансовых организаций и банков, и он со временем пополняется.

Хорошо, как это всё включить?

Установите сертификат в системное хранилище сертификатов.

Если у вас не установлен пароль или графический ключ на экране блокировки, то Android потребует установить один из вариантов. Таково требование системы Android.

Перезапустите защиту. Если все выполнено верно, HTTPS трафик теперь будет фильтроваться наряду с обычным.

Как удалить сертификат из системы?

Зайдите в настройки Android -> Безопасность -> Надежные сертификаты. На странице пользовательских сертификатов выберите AdGuard Personal CA, прокрутите диалог вниз и нажмите «Удалить«.

Перейдите на вкладку «Пользователь«.

Выберите в списке «AdGuard Personal CA» (он может быть там один).

В открывшемся диалоге надо будет прокрутить страницу вниз и нажать кнопку «Удалить«.

Чем отличаются алгоритмы фильтрации AdGuard?

AdGuard включает в себя три алгоритма фильтрации:

Качественный алгоритм может использовать все типы правил фильтрации и блокирует весь рекламный контент. Данный алгоритм позволяет изменять HTML-код страницы, вырезая нежелательные элементы прежде, чем браузер загрузит страницу.

Качественный алгоритм может увеличить время загрузки страниц, поэтому его использование рекомендуется только на мощных устройствах.

Быстрый алгоритм может применять все правила, кроме правил фильтрации HTML, и способен фильтровать все, за исключением контента страниц. Данный алгоритм использует так называемые “косметические” правила фильтрации, которые, в отличие от базовых правил, предназначены не для блокирования рекламных запросов, а для обработки внешнего вида страниц. “Косметические” правила подразумевают под собой добавление специальных CSS-правил (стилей), которые маскируют нежелательные рекламные элементы на странице, а также скрывают «остатки» рекламы после блокировки, такие как пустые поля на месте заблокированного баннера и т.д

Упрощенный алгоритм использует базовые правила фильтрации и блокирует только рекламные запросы.

В отличие от качественного и быстрого алгоритмов, упрощенный алгоритм не использует “косметические” правила фильтрации.

Как управлять уведомлениями AdGuard?

AdGuard для версий Android 8 и новее поддерживает ряд различных каналов уведомлений (далее категорий уведомлений). С их помощью вы можете с легкостью управлять уведомлениями AdGuard — менять настройки для разных типов уведомлений, определять их приоритетность и т.д. Ниже вы найдете более подробную информацию о данных категориях, а также узнаете, какие функции по управлению уведомлениями AdGuard предлагает для устройств на предыдущих версиях Android.

Уведомления AdGuard на Android 8 и новее

Уведомления AdGuard на данных версиях Android подразделяются на 6 категорий. Для того, чтобы найти соответствующие настройки, воспользуйтесь следующим путем: откройте настройки вашего устройства и выберите — Приложения и уведомления → AdGuard → Уведомления приложения или Приложения и уведомления → Уведомления → AdGuard (возможны и другие вариации в зависимости от устройства).

Кроме того, существует еще более простой и быстрый способ найти необходимые настройки. Если вы нажмете и удержите любое появившееся уведомление от AdGuard, откроется окно, в котором вы сможете выбрать “Все категории”. Этот шаг также приведет вас в настройки уведомлений AdGuard.

Итак, вы на месте! Перед вами список из 6 различных категорий (см. скриншот ниже).

Каждая категория включает в себя определенные типы уведомлений:

  • Статус Защиты (постоянное уведомление со статусом защиты и статистикой фильтрации);
  • Статус Лицензии (уведомления об изменении статуса вашей лицензии);
  • Обновления (уведомления об обновлениях приложения и фильтров);
  • Исходящий прокси (постоянное уведомление со статусом исходящего прокси);
  • Брандмауэр (уведомления, позволяющие управлять доступом к сети);
  • Другие (уведомления о логировании, критических ошибках, конфликтах с другими приложениями и др.).

Все категории уведомлений активированы по умолчанию. Вы можете управлять настройками каждой из них (см. предыдущий скриншот — справа) — изменять степень важности, выбирать звук уведомлений из поддерживаемых устройством, включать/отключать вибрацию и т.д.

Cтепень важности позволяет определить приоритетность категорий (см. скриншот ниже).

Будьте внимательны, начиная с версии Android 9 «Важность» преименована в «Действия»

Вы можете выбрать из 4-х представленных степеней важности:

  • Крайняя важность (уведомления сопровождаются звуковым сигналом и всплывают на экране устройства);
  • Высокая (уведомления сопровождаются звуковым сигналом);
  • Средняя (уведомления не сопровождаются звуковым сигналом);
  • Низкая (уведомления не сопровождаются звуковым сигналом и визуальными эффектами).

Обратите внимание: вы не можете включать/отключать вибрацию для тех категорий уведомлений, степень важности которых определена как Средняя или Низкая.

В случае, если вы решите, что те или иные уведомления не представляют для вас никакой значимости, вы сможете отключить соответствующую категорию.

Мы надеемся, что данные функции помогут вам сортировать уведомления AdGuard и настраивать их самым удобным для вас способом!

Уведомления AdGuard на Android 7 и предыдущих версиях

Если вы являетесь пользователем устройства на платформе Android 7 или одной из предыдущих версий, AdGuard также предлагает вам ряд возможностей по управлению уведомлениями.

Для этого вам необходимо открыть настройки устройства, а затем выбрать — Уведомления → AdGuard или Приложения → AdGuard → Уведомления. При необходимости вы можете активировать следующие функции:

  • Без звука — означает, что уведомления не будут сопровождаться звуковым сигналом, вибрировать или всплывать на экране;
  • На заблокированном экране — означает, что содержание уведомлений будет отображаться на заблокированном экране;
  • Переопределить режим “Не беспокоить” — эта опция позволит уведомлениям всплывать на экране и/или издавать звуковой сигнал, даже если активирован режим “Не беспокоить”.

Вы также можете отключить все уведомления AdGuard, выбрав опцию “Блокировать все”. Однако мы не рекомендуем вам этого делать, так как работа приложения в таком случае может быть остановлена системой в любое время.

Кроме вышеперечисленного, вы можете управлять уведомлением о статусе защиты, используя Основные настройки приложения AdGuard (AdGuard → Настройки → Основные настройки → Иконка уведомления).

Вы можете выбрать одну из следующих опций:

  • По умолчанию (на экране будет отображаться как само уведомление, так и соответствующая иконка);
  • Уведомление без иконки (на экране будет отображаться только уведомление, без иконки);
  • Нет (ни уведомление, ни иконка не будут отображаться на экране).

Пожалуйста, обратите внимание: при удалении иконки Android сможет остановить работу приложения AdGuard в любое время. Именно поэтому мы рекомендуем вам использовать “Уведомление без иконки” вместо выбора последней опции.

Источник

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Pick a username
Email Address
Password

By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.

Already on GitHub?
Sign in
to your account

Прошли те времена, когда мобильные приложения мужественно игнорировали все ошибки, связанные с SSL, и позволяли перехватывать и модифицировать трафик.

Автор: Cody Wass

Прошли те времена, когда мобильные приложения мужественно игнорировали все ошибки, связанные с SSL, и позволяли перехватывать и модифицировать трафик. Современные приложения, как минимум, проверяют цепочки сертификатов на валидность и принадлежность к достоверному центру сертификации. Мы, пентестеры, ставим перед собой задачу «убедить» приложение, что сертификат надежный с целью выполнения атаки типа «человек посередине» и последующего изменения трафика. В этой статье будут рассмотрены следующие техники обхода проверок SSL-сертификатов в Android:

  • Добавление сертификатов в хранилище достоверных сертификатов.
  • Перезапись упакованных сертификатов.
  • Использование скрипта Frida для обхода проверок SSL-сертификатов.
  • Изменение кода проверки сертификата.

Некоторые из вышеуказанных техник — простые, другие – более сложные в реализации. Мы рассмотрим каждый из этих методов без особого углубления в специфические детали.

Зачем нужна MITM-атака на SSL

Чтобы просматривать и изменять вызовы веб-службы, используемой мобильным приложением, нам понадобится промежуточный прокси сервер для перехвата, созданный при помощи утилит навроде BurpSuite или ZAP. При перехвате SSL-трафика SSL-соединение прерывается на стороне прокси-сервера. Сертификат, отсылаемый прокси-сервером, анализируется мобильным приложением, как если бы прокси был оконечной точкой веб-службы. По умолчанию самоподписанный сертификат, генерируемые утилитами наподобие Burp, не будет принадлежать проверенной достоверной цепочке. Если сертификат нельзя проверить на достоверность, большинство мобильных будут обрывать соединение вместо того, чтобы подключаться и работать в потенциально незащищенном канале. Техники, представленные ниже, предназначены для одной цели – убедить мобильное приложение, что сертификат, отправляемый прокси-сервером, является достоверным.

Техника 1 – Добавление сертификата в хранилище пользовательских сертификатов

Самый простой способ избежать SSL-ошибок – обзавестись валидным и надежным сертификатом. Эта задача решается относительно просто, если вы сможете установить достоверный сертификат на устройство. Если операционная система доверяет вашему центру сертификации, то будет доверять и сертификату, подписанному центром сертификации.

В Android есть два встроенных хранилища сертификатов, которые отслеживают, каким центрам сертификации доверяет операционная система: системное хранилище (хранит предустановленные сертификаты) и пользовательское хранилище (хранит сертификаты, добавленные пользователями).

Выдержка с сайта developer.android.com:

По умолчанию безопасные соединения (использующие протоколы TLS, HTTPS и им подобные) во всех приложениях доверяют предустановленным системным сертификатам. В Android 6.0 (API level 23) и более ранних версиях по умолчанию также считаются достоверными сертификаты, добавленные пользователями. Приложение может настраивать свои собственные соединения на уровне приложения (base-config) и на уровне домена (domain-config).

Сей факт означает, что, если мы имеем дело с приложением, которое работает в Android 6.0 и более ранних версиях, то можно просто добавить сертификат в пользовательское хранилище. Когда приложение пытается проверить достоверность цепочки для нашего сертификата, то обнаружит, что наш центр сертификации связан с достоверным хранилищем и, следовательно, будет доверять нашему сертификату. В более новых версиях приложение не будет доверять хранилищу пользовательских сертификатов. Чтобы решить эту проблему, нужно прописать такой уровень API и версию Android, чтобы приложение стало доверять пользовательским центрам сертификации. Мы будем редактировать атрибут «platformBuildVersionCode» элемента «manifest» в файле AndroidManifest.xml.

<manifest xmlns:android=»http://schemas.android.com/apk/res/android&quot; package=»com.test.app» platformBuildVersionCode=»25″ platformBuildVersionName=»7.1.1″>

В коде выше в строке «platformBuildVersionCode=25» нужно поменять значение 25 на 23, а в строке platformBuildVersionName=»7.1.1″ значение 7.1.1 на 6.0.

<manifest xmlns:android=»http://schemas.android.com/apk/res/android&quot; package=»com.test.app» platformBuildVersionCode=»23″ platformBuildVersionName=»6.0«>

После переупаковки приложения с обновленным файлом AndroidManifest.xml, доверие пользовательским центрам сертификации будет восстановлено.

Если требуется запуск на конкретной версии платформы, мы можем определить тэг trust-anchors в файле «/res/xml/network_security_config.xml». Например, следующий файл (https://developer.android.com/training/articles/security-config.html) определяет новый достоверный сертификат, который должен храниться по адресу /res/raw/my_ca.

 <?xml version="1.0"  encoding="utf-8"?>
  <network-security-config>
  <base-config>
  <trust-anchors>
  <certificates src="@raw/my_ca"/>
  </trust-anchors>
  </base-config> 
</network-security-config>

Если в приложении будет проходить проверку только указанный сертификат, условия для успешного выполнения этой техники выполняются.

Техника 2 – Перезапись упакованного сертификата

Если после установки сертификата в пользовательское хранилище, изменении в настройках версии Android и успешном прохождении проверок при просмотре других ресурсов, защищенных протоколом SSL, все равно возникают ошибки, значит, разработчики внедрили дополнительные условия, которым должны удовлетворять достоверные центры сертификации. Если не забыли, в предыдущей технике внутри тэга trust-anchors добавлялся новый путь к сертификату. Подобный трюк может использоваться разработчиками для защиты приложений от перехвата SSL.

Если в приложении используется индивидуальная цепочка сертификатов, может сработать метод, связанный с перезаписью сертификата. Поскольку в некоторых случаях разработчики могут предусмотреть дополнительные методы для проверки достоверной цепочки, эта техника не гарантирует стопроцентного результата.

Ручная установка сертификата на устройствах с Android 11 | AdGuard Knowledgebase
Рисунок 1: Перечень сертификатов, используемых приложением

Если открыть пакет приложения при помощи, например, APK Studio, то можно сразу увидеть перечень привязанных сертификатов. На картинке выше сертификаты находятся в папке «assets». Замена явно бросающегося в глаза сертификата UniversalRootCA позволит нам подсунуть приложению наш сертификат.

Техника 3 – Подключение к функциям через фреймворк Frida

Если установки собственного сертификата недостаточно для успешного перехвата SSL-трафика, скорее всего, в приложении используются техники навроде SSL pinning или дополнительная SSL-валидация. В этом случае нужно блокировать проверки через непосредственное подключение к соответствующим функциям. Ранее эта техника была доступна для реализации только на устройствах с правами суперпользователя. Однако на данный момент при помощи библиотеки Frida Gadget можно работать с приложением и получить доступ к полному функционалу фреймворка Frida без прав суперпользователя.

Если вы уже выполняли пентесты мобильных приложений, то, вероятно, знакомы с этим фреймворком. Описание всей функциональности Frida выходит за рамки этой статьи, но если говорить в общем, то этот фреймворк позволяет изменять логику работы приложения во время выполнения. Обычно Frida работает как отдельное приложение и требует прав суперпользователя на устройстве. Если у нас нет прав суперпользователя, мы можем инжектировать в пакет приложения динамическую библиотеку Frida Gadget, содержащую большую часть функционала фреймворка Frida. Эта библиотека загружается во время выполнения приложения и позволяет вносить изменения в код.
Чтобы загрузить Frida Gadget, нужно распаковать APK, вставить динамическую библиотеку, отредактировать smali-код так, чтобы динамическая библиотека вызывалась самой первой, а затем переупаковать и установить пакет. Весь этот процесс хорошо задокументирован Джоном Козиракисом (John Kozyrakis). Вначале лучше пройти все этапы вручную, чтобы лучше понять, как работает эта технология. Чтобы сэкономить время, существует утилита — Objection, которая автоматизирует весь вышеупомянутый процесс. Требуется лишь указание целевого пакета, над которым нужно выполнить манипуляции.

 C:  >objection patchapk -s test_app.apk
  No  architecture specified. Determining it using `adb`...
  Detected  target device architecture as: armeabi-v7a
  Github  FridaGadget is v10.6.28, local is v10.6.13. Updating...
  Downloading  armeabi-v7a library to  C:.objectionandroidarmeabi-v7alibfrida-gadget.so.xz...
  Unpacking  C:.objectionandroidarmeabi-v7alibfrida-gadget.so.xz...
  Cleaning up  downloaded archives...
  Using Gadget  version: 10.6.28
  Unpacking  test_app.apk
  App already  has android.permission.INTERNET
  Reading  smali from:  C:Temptmp8dxqks1u.apktempsmalicom/test/app/TestMainActivity.smali
  Injecting  loadLibrary call at line: 10
  Writing  patched smali back to: C:Temptmp8dxqks1u.apktempsmalicom/test/app/TestMainActivity.smali
  Creating  library path: C:Temptmp8dxqks1u.apktemplibarmeabi-v7a
  Copying  Frida gadget to libs path...
  Rebuilding  the APK with the frida-gadget loaded...
  Built new  APK with injected loadLibrary and frida-gadget
  Signing new  APK.
  jar signed.
  Signed the  new APK
  Performing  zipalign
  Zipaling  completed
  Copying  final apk from  C:UserscwassAppDataLocalTemptmp8dxqks1u.apktemp.aligned.objection.apk to  current directory...
Cleaning up  temp files...

После завершения в нашей рабочей директории должен появиться файл «test_app.objection.apk». По умолчанию утилита objection добавляет постфикс «.objection» к имени пакета. Далее мы можем установить этот пакет так же, как и любой другой APK, при помощи команды adb install test_app.objection.apk. После того как измененный пакет установлен на целевом устройстве, во время запуска приложение должно встать на паузу на начальном экране. В этот момент мы можем подключиться к серверу Frida, который отслеживает наше устройство:

C:>frida-ps -U
PID Name
—- ——
6383 Gadget

C:>frida -U gadget
____
/ _ | Frida 10.3.14 — A world-class dynamic instrumentation framework
| (_| |
> _ | Commands:
/_/ |_| help -> Displays the help system
. . . . object? -> Display information about ‘object’
. . . . exit/quit -> Exit
. . . .
. . . . More info at http://www.frida.re/docs/home/

[Motorola Moto G (5) Plus::gadget]-> Java.available
true

Alternatively, Objection supports interaction with the listening Frida server by using the ‘explore’ command:

C:>objection explore
___| |_ |_|___ ___| |_|_|___ ___
| . | . | | | -_| _| _| | . | |
|___|___|_| |___|___|_| |_|___|_|_|
|___|(object)inject(ion) v1.2.2

Runtime Mobile Exploration
by: @leonjza from @sensepost

[tab] for command suggestions
com.test.app on (motorola: 7.0) [usb] # android hooking search classes TrustManager
android.security.net.config.RootTrustManager
android.app.trust.ITrustManager$Stub$Proxy
android.app.trust.ITrustManager
android.security.net.config.NetworkSecurityTrustManager
android.security.net.config.RootTrustManagerFactorySpi
android.app.trust.TrustManager
android.app.trust.ITrustManager$Stub
com.android.org.conscrypt.TrustManagerImpl
com.android.org.conscrypt.TrustManagerImpl$ExtendedKeyUsagePKIXCertPathChecker
com.android.org.conscrypt.TrustManagerImpl$TrustAnchorComparator
com.android.org.conscrypt.TrustManagerFactoryImpl
javax.net.ssl.TrustManagerFactory$1
javax.net.ssl.TrustManager
javax.net.ssl.TrustManagerFactory
javax.net.ssl.X509TrustManager
javax.net.ssl.TrustManagerFactorySpi
javax.net.ssl.X509ExtendedTrustManager
[Ljavax.net.ssl.TrustManager;

Теперь вы можете воспользоваться функцией для обхода технологии SSL pinning:

com.test.app on (motorola: 7.0) [usb] # android sslpinning disable
Job: 2f633f86-f252-4a57-958e-6b46ac8d69d1 — Starting
[6b46ac8d69d1] [android-ssl-pinning-bypass] Custom, Empty TrustManager ready
Job: 2f633f86-f252-4a57-958e-6b46ac8d69d1 – Started

Техника 4 – Реверс-инжиниринг кода верификации сертификата

Возможен такой случай, когда разработчик использует собственные SSL-библиотеки вместо системных для верификации сертификата. В этой ситуации нам нужно распаковать пакет, сконвертировать smali-код в Java-код и найти функции, отвечающие за проверку сертификата.

Если использовать «dex2jar», синтаксис будет следующим:

C:>d2j-dex2jar.bat «C:test_app.apk»
dex2jar C:test_app.apk -> .test_app-dex2jar.jar

Полученный файл .jar должен быть пригоден для открытия в вашей любимой утилите для исследования Java-приложений (например, JD-GUI).

После того как вы нашли функции, отвечающие за проверку сертификата, можно либо полностью пропатчить код, либо подцепиться к нужной функции при помощи Frida. Чтобы сэкономить время и не пересобирать полностью приложение, эффективнее подцепиться к функциям, отвечающим за проверку сертификата. Шаги, описанные в предыдущей технике, позволят подключиться к приложению, и далее вы можете либо подцепиться к функции при помощи утилит фреймворка Frida, либо при помощи приложения Objection.

Заключение

Техники, описанные в этой статье, позволяют перехватывать SSL-трафик и обходить некоторые наиболее распространенные защиты, используемые разработчиками. Кроме того, я кратко рассказал об утилите Objection и фреймворке Frida. Обход технологии SSL pinning и других защит лишь небольшая часть возможностей, которые позволяют реализовать эти инструменты.

Надеюсь, мне удалось на доступном языке рассказать о техниках, которые могут быть пригодны для оценки безопасности мобильных Android-приложений и демонстрируют важность наличия нескольких способов проведения подобного рода исследований.

Comments

@adguard-bot

Issue URL (Incorrect Blocking)

https://yoomoney.ru/

Comment

ошибка сертификата. не работает защищенный режим в яндекс браузере на странице yoomoney.ru при включенной https фильтрации в adguard

Screenshots

Screenshot 1

Screenshot 1

Screenshot 2

Screenshot 2

System configuration

Information value
AdGuard product: AdGuard for Windows v7.9 nightly 5
Browser: Yandex
AdGuard driver: TDI
Stealth mode: disabled
DNS filtering: disabled
Filters: Ad Blocking:
AdGuard Base

Privacy:
AdGuard Tracking Protection

Social Widgets:
AdGuard Social Media

Annoyances:
I don’t care about cookies,
AdGuard Annoyances

Security:
NoCoin Filter List

Other:
Filter unblocking search ads and self-promotion,
AdGuard Experimental

Language-specific:
Official Polish filters for AdBlock, uBlock Origin & AdGuard,
Polish Anti Adblock Filters,
AdGuard Russian

Userscripts: https://userscripts.adtidy.org/beta/adguard-extra/1.0/adguard-extra.user.js,
https://userscripts.adtidy.org/beta/popup-blocker/2.5/popupblocker.user.js

@Alex-302

Это вопрос к Яндексу, почему наш сертификат считается неизвестным. Антивирусы фильтруют трафик ровно таким же образом.

@adguard-bot

@github-actions

This issue has been automatically marked as stale because it has been open for 10 days with no activity.
Unfortunately, our resources are limited and we can not always take the time to respond to requests about websites that are not popular enough. The issue will be closed if no further activity occurs.
Please note, that AdGuard Filters is an open-source project that is used by different content blockers and we welcome contributions. If you have some technical knowledge about how websites work, you are welcome to create a pull request following these instructions.

2 participants

@Alex-302

@adguard-bot

Статья обновлена 18 января 2021
Ознакомление с этой статьей может потребовать от вас базовых знаний о шифровании, протоколе TLS и устройстве HTTPS.

Для начала, приведем диаграмму, которая показывает, как в целом устроена фильтрация HTTPS в AdGuard:

What is HTTPS filtering

AdGuard копирует свойства TLS-соединения, которые использует ваш браузер:

  • AdGuard использует ту же самую версию TLS.
  • AdGuard использует те же методы шифрования (ciphers), что и ваш браузер.

Так что если вы используете современный и безопасный браузер — это хорошо, ведь известные проблемы TLS в нем уже учтены, и он не будет пытаться использовать небезопасные методы шифрования.

Как ведет себя AdGuard в случае, если есть сомнения в валидности сертификата?
В случае, если есть какие-то сомнения в валидности сертификата, AdGuard полностью прекращает фильтрацию соединений к этому домену, и отдает это на откуп браузеру.

Известные недостатки

Фильтрация HTTPS в AdGuard имеет некоторые недостатки. Практически все мы планируем устранить в ближайших версиях AdGuard.

Ниже перечислены все известные нам проблемы и сроки их устранения.

Проверка оригинального сертификата

Самым важным недостатком HTTPS фильтрации является то, что она «прячет» оригинальный сертификат вебсайта. Вы просто не можете увидеть реальный сертификат — вместо него вы видите тот, который был сгенерирован AdGuard.

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

Certificate Transparency

Благодаря совеременной криптографии бразуеры обычно могут легко обнаружить вредоносные сайты с подделанными сертификатами. Однако, этих механизмов недостаточно для обнаружения вредоносных сайтов, которые используют сертификаты, выданные по ошибке настоящим (но, к примеру, скомпрометированным) центром сертификации. Certificate Transparency призван стать защитой от подобного рода угроз, сделав процедуру выдачи SSL сертификатов открытой и прозрачной для всех.

В нашем случае проблема в том, что браузеры игнорируют заголовок Expect-CT для локальных сертификатов, и проверка на certificate transparency просто не производится при включенном AdGuard. Для того, чтобы получить тот же уровень защиты, мы должны самостоятельно проводить эту проверку на уровне AdGuard.

Что мы хотим сделать:

  • Добавить поддержку Certificate Transparency в библиотеку валидации

Срок реализации:

  • Ожидаемый срок реализации: третий квартал 2021.

Замечания и пожелания?

Если вы хотите что-то добавить, указать нам на ошибки или несоответствия или задать вопрос, пишите пожалуйста на адрес devteam at adguard.com.

Понравилась статья? Поделить с друзьями:
  • Ошибка in5p опель зафира
  • Ошибка illegalattributevalue при печати
  • Ошибка https прокси 502 неверный маршрут
  • Ошибка illegalargumentexception invalid characters in hostname
  • Ошибка in5p опель астра что это