Прошли те времена, когда мобильные приложения мужественно игнорировали все ошибки, связанные с 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" 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" 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.
Если в приложении используется индивидуальная цепочка сертификатов, может сработать метод, связанный с перезаписью сертификата. Поскольку в некоторых случаях разработчики могут предусмотреть дополнительные методы для проверки достоверной цепочки, эта техника не гарантирует стопроцентного результата.
Рисунок 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-приложений и демонстрируют важность наличия нескольких способов проведения подобного рода исследований.
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
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
Closed
TheHasagi opened this issue
Sep 5, 2019
· 16 comments
Assignees
Comments
Somehow from time to time user will receive a notification (see attachment) about HTTPS filtering error that some application does not accept our certificate. It can not be reproduced easily but it does exist.
Does the user have HTTPS filtering enabled for Outlook? We don’t filter it by default
Copy link
Contributor
Author
I guess not, can be reproduced with default settings (after a clean install of the application).
If this can help, please find the logs here: 2307731
Copy link
Contributor
Author
I move cert adguard to system,
For me it really is not «from time to time» but constantly and it completely breaks HTTP Filtering.
@Murgeye
I suppose this is your mail to support — 2354792
Thanks for the provided logs.
Added to NCloud
@Murgeye
I suppose this is your mail to support — 2354792
Thanks for the provided logs.
Added to NCloud
Yes it is, sorry, I forgot to mention it here after sending in a support request.
Btw., there seems to be no good way to work around this bug(?) in Beta except by adding every single App or Domain to the whitelist. Disabling the notifications in the low level settings causes some Apps to be unable to open any TLS connections at all.
Some of the apps do TLS pinning and HTTPS filtering won’t work for them.
Ideally, you should disable HTTPS filtering for such apps.
@AdguardTeam/developers I think we should have a list of apps known for using TLS pinning and suppress this notification for them.
We should expose this list via low-level settings to make it transparent to the users.
ameshkov
changed the title
HTTPS filtering error
Suppress HTTPS filtering error notification for the apps that use pinning techniques
Oct 23, 2019
What was the default behavior before the notification was added? I haven’t seen this notification before the last beta update, but had no problems with the same applications. I find it highly unlikely that almost all apps have suddenly started using certificate pinning for domains like crashlytics.com.
Additionally, I was able to use all of them without in-app ads before.
BTW., the exclude domain button from the notification does not seem to work for me, as it always overrides the last domain added to the HTTPS whitelist. (Therefore, you can only always add a single domain to the whitelist and it is getting replaced by the next one.)
I can confirm the issue Murgeye mentioned above. Running latest beta 3.3.2.
Is it better to report this separately somewhere else?
The bug was present in 3.3 beta 1 as well by the way.
This bug will be fixed in beta 3.
So here’s what we have here:
- We should add a new low-level setting
pref.https.ignore.filtering.error
with the list of apps that are known to use pinning techniques (@artemiv4nov plz post the exact list) - We should fix the «exclude» buttons: Suppress HTTPS filtering error notification for the apps that use pinning techniques #3052 (comment)
Иногда при переходе на нужный веб-ресурс выскакивает сообщение — «Ваше соединение не защищено», это значит, что вы пытаетесь зайти на сайт с безопасным соединением, но вашему браузеру не удается проверить его сертификат. Так как интернет обозреватель не может дать гарантии, что открываемый портал безопасен, он его блокирует и выдает такое сообщение.
Варианты решения проблемы
Чтобы избавится от неприятности, потребуется вначале выяснить, блокируется ли данный ресурс Эдгардом или это происходит по какой-либо другой причине. Приступим к решению проблемы.
Способ 1: Отключение Adguard
Первое что нужно сделать — это отключить Adguard и попробовать повторно зайти на требуемый сайт. Таким образом, мы узнаем виноват ли Эдгард в блокировке ресурса.
- Для отключения приложения нажмите на его иконку правой кнопкой мыши, в системной панели рядом с часами, и выберите пункт «Закрыть Adguard».
- После этого зайдите на сайт, который выдает сообщение о незащищенном соединении еще раз. Если надпись все равно появляется, то вам потребуется настроить ваш браузер, а в случае если она исчезла, и ресурс открывается нормально — перейдите к следующему варианту устранения проблемы.
Способ 2: Добавление в исключения
Чтобы приложение не блокировало нужный ресурс можно добавить его в исключения, и тогда на нем не будет применяться фильтрация. Для этого потребуется произвести следующие действия:
- Нажмите на надпись «Настройки» в главном меню программы.
- После этого, в открывшемся окне пролистайте страницу в самый низ и нажмите кнопку «Управлять HTTPS-исключениями».
- Далее нажмите на значок «+».
- Впишите адрес нужного сайта в открывшуюся строку.
- Нажмите кнопку «Сохранить».
Веб-ресурс добавиться в белый список и на нём не должна будет применяться фильтрация. Если данный способ вам не помог, можно попробовать следующий вариант.
Способ 3: Переустановка Сертификата
Для того, чтобы Adguard мог корректно фильтровать защищенные соединения, он устанавливает свой собственный корневой сертификат в ваш браузер. В случае его некорректной работы, могут блокироваться нужные сайты.
- Для начала опять потребуется зайти в настройки программы, нажав на одноименную кнопку.
- После этого нажать «Переустановить сертификат».
- Adguard оповестит вас о том, что все браузеры будут закрыты. Убедитесь, что у вас нет открытых страниц с нужной информацией и нажмите на кнопку «OK» для начала переустановки.
- Программа переустановит сертификат и оповестит вас о завершении работы.
- Далее нажмите на кнопку «Закрыть».
- Попробуйте заново зайти на нужный вам сайт. В том случае, если вам не помог и этот способ, перейдите к следующему.
Способ 4: Отключение Фильтрации
В Эдгард можно полностью отключить фильтрацию защищенных соединений, для этого вам потребуется:
- Зайти в настройки приложения.
- В опциях фильтрации убрать галочку напротив варианта «Фильтровать HTTPS протокол».
- Программа оповестит вас о том, что на некоторых ресурсах будет появляться реклама.
- Нажмите на кнопку «OK» для подтверждения действия.
Все, теперь сайты с защищенным соединением не будут блокироваться, и вы сможете попасть на нужный вам ресурс.
В этой статье мы рассмотрели главные методы устранения проблемы с сообщением «Ваше подключение не защищено». Используя описанные способы, вы сможете устранить возникшую проблему, но если это не помогло, то можно прибегнуть к полному удалению программы и установки её заново, после перезагрузки компьютера.
Фильтрация в Internet Explorer и Edge
Что делать, если не работает фильтрация в Internet Explorer или Microsoft Edge?
Скорее всего дело в том, что вы используете Windows 10, Windows 8 или 8.1, и в Internet Explorer (Microsoft Edge) включен расширенный защищенный режим. Существует два варианта решения этой проблемы.
Вариант №1 — включить использование WFP-драйвера в сетевых настройках AdGuard.
- Перейдите в раздел «Сеть».
- Включите WFP драйвер как это сделано на картинке:
Вариант №2 — отключить расширенный защищенный режим в браузере.
- Запустите Internet Explorer
- В правом верхнем углу окна браузера нажмите на кнопку «Сервис» и выберите пункт «Свойства браузера», как это показано на картинке.
Если вы используете Windows 10, нажмите кнопку «Пуск», выберите пункт «Параметры» в Главном меню Windows, затем в окне Панели управления нажмите «Сеть и интернет» -> «Свойства обозревателя».
- В окне «Свойства браузера» на закладке «Дополнительно» снимите флажок «Включить расширенный защищенный режим» и нажмите на кнопку «ОК».
Источник
После обновления с 6.4 на 7.2 не стартует сетевая защита
ghazan
New Member
В окне программы — красный восклицательный знак, перезагрузка не помогает.
В логе сервиса вот такое:
INFO, AdguardSvc, 27, 13.09.2019 18:10:15.397, ApplicationState: Starting network filtering.
INFO, AdguardSvc, 27, 13.09.2019 18:10:15.398, Starting network filtering
INFO, AdguardSvc, 27, 13.09.2019 18:10:15.398, Changing filtering status from «Error» to «Starting»
INFO, AdguardSvc, 27, 13.09.2019 18:10:15.459, Adguard.Core.Certificate.CertificateInstaller | Start generating CA certificate Adguard Personal CA
INFO, AdguardSvc, 27, 13.09.2019 18:10:16.030, Adguard.Core.Certificate.CertificateInstaller | Generating CA certificate Adguard Personal CA has been completed successfully
INFO, AdguardSvc, 27, 13.09.2019 18:10:16.031, Start installing certificate Adguard Personal CA into all CA storages
INFO, AdguardSvc, 27, 13.09.2019 18:10:16.031, Adguard.Core.Api.CoreApi | Start installing certificate Adguard Personal CA via ‘C:Program Files (x86)AdguardAdguard.Core.Tools.exe’ tool
INFO, AdguardSvc, 27, 13.09.2019 18:10:16.031, Adguard.Core.Certificate.CertificateInstaller | Start installing CA certificate Adguard Personal CA into the SYSTEM store
INFO, AdguardSvc, 27, 13.09.2019 18:10:16.031, Adguard.Core.Certificate.CertificateInstaller | Start storing certificate Adguard Personal CA to the C:WINDOWSsystem32configsystemprofile391c4011229141d09b8b0a7edc2fdc1cAdguard Personal CA.cer
INFO, AdguardSvc, 27, 13.09.2019 18:10:16.032, Adguard.Core.Certificate.CertificateInstaller | Storing certificate Adguard Personal CA to the C:WINDOWSsystem32configsystemprofile391c4011229141d09b8b0a7edc2fdc1cAdguard Personal CA.cer has been completed successfully
INFO, AdguardSvc, 27, 13.09.2019 18:10:17.953, Adguard.Core.Certificate.CertificateInstaller | Executing the certificate command /cert_install has been completed successfully with the result:
INFO, AdguardSvc, 27, 13.09.2019 18:10:17.954, Changing filtering status from «Starting» to «Error»
ERROR, AdguardSvc, 27, 13.09.2019 18:10:17.954, Cannot start network filtering: System.ComponentModel.InvalidEnumArgumentException: The executing command /cert_install returns an invalid value
Source: Adguard.Core
Stack trace: at Adguard.Core.Certificate.CertificateInstaller.InvokeCertCommand[TResult](String command, CACertificate caCertificate, CertificateConfiguration certificateConfiguration, ADG_PROXY_CERT_STORE store)
at Adguard.Core.Certificate.CertificateInstaller.Install(CACertificate caCertificate, CertificateConfiguration certificateConfiguration, ADG_PROXY_CERT_STORE store)
at Adguard.Core.Api.CoreApi.InstallCertificate(CACertificate caCertificate, CertificateConfiguration certificateConfiguration, ADG_PROXY_CERT_STORE store)
at Adguard.Service.Filtering.NetworkFilteringService.b0Hp6yXdHqpwVswqfVL(Object , Object , Object , ADG_PROXY_CERT_STORE )
at Adguard.Service.Filtering.NetworkFilteringService.zdy2CJZPSW(CACertificate )
at Adguard.Service.Filtering.NetworkFilteringService.Start()
Т.е. видно, что сервис ищет сертификат в папке C:WINDOWSsystem32configsystemprofile, в то время. как Process Monitor показывает, что файл создается в SysWOW64:
12:16:19,5695159 AdguardSvc.exe 9764 CreateFile C:WindowsSysWOW64configsystemprofile3abf4d52ff1a43fc8f2608cbb662fadd SUCCESS Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened
12:16:19,5695406 AdguardSvc.exe 9764 QueryNetworkOpenInformationFile C:WindowsSysWOW64configsystemprofile3abf4d52ff1a43fc8f2608cbb662fadd SUCCESS CreationTime: 12.09.2019 12:16:17, LastAccessTime: 12.09.2019 12:16:17, LastWriteTime: 12.09.2019 12:16:17, ChangeTime: 12.09.2019 12:16:17, AllocationSize: 01.01.1601 3:00:00, EndOfFile: 01.01.1601 3:00:00, FileAttributes: D
12:16:19,5695513 AdguardSvc.exe 9764 CloseFile C:WindowsSysWOW64configsystemprofile3abf4d52ff1a43fc8f2608cbb662fadd SUCCESS
12:16:19,5695905 AdguardSvc.exe 9764 IRP_MJ_CLOSE C:WindowsSysWOW64configsystemprofile3abf4d52ff1a43fc8f2608cbb662fadd SUCCESS
12:16:19,5697438 AdguardSvc.exe 9764 CreateFile C:WindowsSysWOW64configsystemprofile3abf4d52ff1a43fc8f2608cbb662fadd SUCCESS Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened
12:16:19,5697638 AdguardSvc.exe 9764 QueryNetworkOpenInformationFile C:WindowsSysWOW64configsystemprofile3abf4d52ff1a43fc8f2608cbb662fadd SUCCESS CreationTime: 12.09.2019 12:16:17, LastAccessTime: 12.09.2019 12:16:17, LastWriteTime: 12.09.2019 12:16:17, ChangeTime: 12.09.2019 12:16:17, AllocationSize: 01.01.1601 3:00:00, EndOfFile: 01.01.1601 3:00:00, FileAttributes: D
12:16:19,5697739 AdguardSvc.exe 9764 CloseFile C:WindowsSysWOW64configsystemprofile3abf4d52ff1a43fc8f2608cbb662fadd SUCCESS
12:16:19,5697890 AdguardSvc.exe 9764 IRP_MJ_CLOSE C:WindowsSysWOW64configsystemprofile3abf4d52ff1a43fc8f2608cbb662fadd SUCCESS
12:16:19,5699355 AdguardSvc.exe 9764 CreateFile C:WindowsSysWOW64configsystemprofile3abf4d52ff1a43fc8f2608cbb662fadd SUCCESS Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened
12:16:19,5699548 AdguardSvc.exe 9764 QueryNetworkOpenInformationFile C:WindowsSysWOW64configsystemprofile3abf4d52ff1a43fc8f2608cbb662fadd SUCCESS CreationTime: 12.09.2019 12:16:17, LastAccessTime: 12.09.2019 12:16:17, LastWriteTime: 12.09.2019 12:16:17, ChangeTime: 12.09.2019 12:16:17, AllocationSize: 01.01.1601 3:00:00, EndOfFile: 01.01.1601 3:00:00, FileAttributes: D
12:16:19,5699645 AdguardSvc.exe 9764 CloseFile C:WindowsSysWOW64configsystemprofile3abf4d52ff1a43fc8f2608cbb662fadd SUCCESS
12:16:19,5699773 AdguardSvc.exe 9764 IRP_MJ_CLOSE C:WindowsSysWOW64configsystemprofile3abf4d52ff1a43fc8f2608cbb662fadd SUCCESS
12:16:19,5701240 AdguardSvc.exe 9764 CreateFile C:WindowsSysWOW64configsystemprofile3abf4d52ff1a43fc8f2608cbb662fadd SUCCESS Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened
12:16:19,5701431 AdguardSvc.exe 9764 QueryNetworkOpenInformationFile C:WindowsSysWOW64configsystemprofile3abf4d52ff1a43fc8f2608cbb662fadd SUCCESS CreationTime: 12.09.2019 12:16:17, LastAccessTime: 12.09.2019 12:16:17, LastWriteTime: 12.09.2019 12:16:17, ChangeTime: 12.09.2019 12:16:17, AllocationSize: 01.01.1601 3:00:00, EndOfFile: 01.01.1601 3:00:00, FileAttributes: D
12:16:19,5701526 AdguardSvc.exe 9764 CloseFile C:WindowsSysWOW64configsystemprofile3abf4d52ff1a43fc8f2608cbb662fadd SUCCESS
12:16:19,5701652 AdguardSvc.exe 9764 IRP_MJ_CLOSE C:WindowsSysWOW64configsystemprofile3abf4d52ff1a43fc8f2608cbb662fadd SUCCESS
12:16:19,5702441 AdguardSvc.exe 9764 CreateFile C:WindowsSysWOW64configsystemprofile3abf4d52ff1a43fc8f2608cbb662fadd SUCCESS Desired Access: Read Data/List Directory, Synchronize, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened
12:16:19,5702738 AdguardSvc.exe 9764 QueryDirectory C:WindowsSysWOW64configsystemprofile3abf4d52ff1a43fc8f2608cbb662fadd* SUCCESS Filter: *, 1: .
12:16:19,5703052 AdguardSvc.exe 9764 QueryDirectory C:WindowsSysWOW64configsystemprofile3abf4d52ff1a43fc8f2608cbb662fadd SUCCESS 0: . 1: Adguard Personal CA.cer
12:16:19,5704002 AdguardSvc.exe 9764 CreateFile C:WindowsSysWOW64configsystemprofile3abf4d52ff1a43fc8f2608cbb662faddAdguard Personal CA.cer SUCCESS Desired Access: Read Attributes, Delete, Disposition: Open, Options: Non-Directory File, Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened
12:16:19,5704309 AdguardSvc.exe 9764 QueryAttributeTagFile C:WindowsSysWOW64configsystemprofile3abf4d52ff1a43fc8f2608cbb662faddAdguard Personal CA.cer SUCCESS Attributes: A, ReparseTag: 0x0
12:16:19,5704463 AdguardSvc.exe 9764 C:WindowsSysWOW64configsystemprofile3abf4d52ff1a43fc8f2608cbb662faddAdguard Personal CA.cer SUCCESS
12:16:19,5704625 AdguardSvc.exe 9764 CloseFile C:WindowsSysWOW64configsystemprofile3abf4d52ff1a43fc8f2608cbb662faddAdguard Personal CA.cer SUCCESS
12:16:19,5705245 AdguardSvc.exe 9764 IRP_MJ_CLOSE C:WindowsSysWOW64configsystemprofile3abf4d52ff1a43fc8f2608cbb662faddAdguard Personal CA.cer SUCCESS
Пробовал стирать и ставить начисто — не помогает. Windows 10 Pro 64 бита
Источник
Проблемы с запуском на macOS
Иногда macOS может вызывать нарушение работы модуля AdGuard Network Extension, тем самым делая невозможным использование приложения. В таком случае вам необходимо среди нижеприведённых инструкций выбрать ту, что подходит для вашей версии ОС, и выполнить соответствующие шаги.
Проблемы с запуском на операционных системах macOS 11 и выше
Если у вас возникли проблемы при запуске AdGuard для Mac на операционных системах Big Sur и Monterey, воспользуйтесь этой инструкцией:
- Перезагрузите Mac и войдите в режим восстановления.
- Отключите SIP (запустите Терминал из меню Утилиты и введите csrutil disable .
- Перезагрузите Mac.
- Закройте приложение AdGuard, откройте Терминал и введите systemextensionsctl reset .
- Перезагрузите Mac и войдите в режим восстановления.
- Включите SIP (запустите Терминал из меню Утилиты и введите csrutil enable ).
- Запустите приложение AdGuard и включите защиту.
Проблемы с запуском на операционных системах macOS 10
Если у вас возникли проблемы при запуске AdGuard для Mac на операционных системах Sierra, Mojave и Catalina, воспользуйтесь этой инструкцией:
- Откройте Терминал и введите команду ls -@lOae /private/var/db/KernelExtensionManagement .
- Убедитесь, что флаг restricted отсутствует (как на скриншоте).
- Перезагрузите ваш Mac в режиме восстановления.
- Откройте Утилиты ->Терминал.
- Введите csrutil disable .
- Введите пароль администратора.
- Перезагрузите ваш Mac.
- Откройте Терминал и введите команду sudo chflags restricted /private/var/db/KernelExtensionManagement .
- Перезагрузите ваш Mac в режиме восстановления.
- Откройте Утилиты ->Терминал -> Введите csrutil enable -> Введите пароль администратора ->
Перезагрузите ваш Mac. - Включите защиту AdGuard.
Источник
Программа не хочет работать через прокси(
TORREN
New Member
avatar
Administrator
Можете запустить Adguard в режиме отладки и прислать нам получившийся лог?
Принцип примерно такой:
1. Удаляете файл agent.log из папки программы
2. Запускаете ее в режиме отладки (есть иконка в меню пуск для этого)
3. Повторяется ошибка с «Нет связи», присылаете нам файл agent.log для разбора.
Вопрос еще насчет настроек прокси в IE. Как именно выглядят настройки прокси? В каких там полях что прописано?
TORREN
New Member
Attachments
avatar
Administrator
Кхмхм, ошибку вижу, а вот почему она вылезла — пока не вижу.
Нужна еще информация.
Что нужно сделать:
1. Пуск — Выполнить — «cmd»
2. Вводите команду ipconfig /all > C:ipconfig.txt
3. Жмете «Enter»
Файл C:ipconfig.txt нужен для анализа.
TORREN
New Member
Attachments
avatar
Administrator
Вообщем разобрался. Сразу к выводам — судя по всему в ближайшее время починить эту проблему не получится, есть технические ограничения.
Проблема такая — у вас для доступа в интернет используется только прокси сервер, и нет доступа ни к какому DNS-серверу. DNS нужен чтобы понимать, какому доменному имени сайта какой IP-адрес соответствует. Браузеру для доступа к сайтам это не нужно, а вот нам нужно (ограничения, накладываемой библиотекой, которую мы используем для запросов к страницам).
В будущем мы, возможно, перейдем на использование своей собственной библиотеки для доступа по HTTP. Но на это нужно время.
——
Попиарю пока новую разработку. У вас же на работе UserGate используется. Есть у него такой конкурент — Traffic Inspector.
Мы вместе с ними выпускаем в ближайшее время плагин Adguard для Traffic Inspector. Так что если убедите своих перейти на TI, не нужно будет на свою машину ничего устанавливать.
Источник
Comments
AdGuard (v3.6.7 (41)) не фильтрует трафик с хрома (87.0.4280.101) на MIUI 12.0.10, что на базе 10-го андроида по https даже при наличии установленного сертификата. Прокси задан через ключ —proxy-server=»127.0.0.1:8080″ в /data/local/tmp/chrome-command-line с активацией флага #enable-command-line-on-non-rooted-devices. http-сайты фильтруются. https-нет. В инфо сайтов видно их исходные сертификаты, а не сертификат AdGuard. В логе AdGuard’a видны туннелированные https-запросы, т.е. https трафик таки идёт через прокси, но не фильтруется. При всём при этом при активации локального VPN’a https фильтруется на ура. WTF ? Мне не нужна (по ряду причин) фильтрация всей системы через локальный VPN. Мне нужно фильтровать лишь конкретный браузер через прокси, но по непонятным причинам я вместо этого ловлю обломинго
А вот и ответ, где собака порылась :
AdGuard не воспринимает запросы от хрома через прокси, как запросы от хрома, а воспринимает их как запросы от ОС и без премиума отказывается фильтровать. На 5.1 запросы через прокси AdGuard’a того же билда спокойно детектятся как хромовские и фильтруются. Ну и что с этим делать ?
@ngorskikh, другими словами, на 10-м андроиде без рута и без премиума при попытке использовать прокси — фильтрацию для https через плагины браузеров или иными методами (см. command-line), дабы не пропускать весь трафик через adguard, я и остальные пользователи, что попытаются так сделать «ловят обломинго» образно выражаясь ? Т.е. либо VPN, либо премиум ? Я правильно понимаю :/ ?
Статья обновлена 18 января 2021
Ознакомление с этой статьей может потребовать от вас базовых знаний о шифровании, протоколе TLS и устройстве HTTPS.
Для начала, приведем диаграмму, которая показывает, как в целом устроена фильтрация HTTPS в AdGuard:
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
.