Vlad
Green Team
- 28.01.2019
- 92
- 27
Пиннинг сертификатов - это дополнительный уровень безопасности для обеспечения защиты. Он гарантирует, что только сертифицированные центры сертификации (Certificate Authorities, CA) могут подписывать сертификаты для вашего домена, а не любой центр сертификации в магазине вашего браузера.
Разработчики приложений реализуют пиннинг сертификатов, чтобы избежать обратного инжиниринга, это позволяет разработчикам указывать, какому сертификату приложение может доверять. Вместо того, чтобы полагаться на хранилище сертификатов.
Анализ исходного кода для SSL-пининга
При поиске таких строк, как «checkClientTrusted» или «checkServerTrusted», будет показан фрагмент кода с пиннингом.Если код не запутан, то мы модифицируем код, чтобы избавиться от пиннинга, перекомпилируем и подпишем его с помощью APKTOOL.
Также, вы можете выполнить статический анализ с помощью фреймворка безопасности, такого как MOBSF, если вы найдете «Файлы сертификатов / ключей, запрограммированные внутри приложения» или «Обнаружено закодированное хранилище ключей», то он имеет SSL pinning.
Обход SSL-пининга
Чтобы отключить, нужно декомпилировать файл приложения и найти метод, связанный с контролем пиннинга и удалить проверку. Конечная цель заключается в том, чтобы клиент принял ваш SSL-сертификат как действительный.
В нашем сценарии мы используем приложение Android, если у вас есть рутированное устройство, то вы можете использовать Xposed Framework модули, доступные для отключения SSL Pinning. Это очень простой и понятный метод.
Но лучший способ - это провести ручную проверку, разобрав apk, где в небольшом исходном коде выполняется проверка пиннинга сертификата.
Код:
$ apktool -d test.apk
После того, как вы закончили модификацию кода, необходимо скомпилировать и повторно оформить приложение с сертификатом разработчика. Здесь сертификат с кодовой подписью обеспечивает целостность и гарантирует, что приложение не будет подделывать.
Код:
$ apktool b test / -o example.modified.apk
После этого приложение необходимо просто переустановить на устройстве и протестировать его на предмет устойчивости. После установки приложение все еще работает, как предполагалось, однако, в настоящее время склонен к устройству, находящемуся в центре атаки в результате обхода закрепленного сертификата.
Обход сертификата pinning любым из этих способов позволяет эффективно вести человека в средней атаке на приложения, защищенные с помощью HTTPS и SSL, имея возможность перехватывать сеансы и даже видеть имена пользователей и пароли в обычном тексте в таком инструменте, как burp suite или fiddler.
Обход SSL
Срок действия сертификата имеет тенденцию к истечению, так как согласно CAB форуму, CA сертификаты не будут выдаваться с максимальным сроком 3 года. Поэтому вам следует запланировать обновление приложения с обновленным сертификатом.Мы должны реализовать методы обфуска́ции, чтобы избежать декомпиля́ции нашего исходного кода. Вы можете отправить приложение для пентестинга компаний для анализа исходного кода.
----------
ИСТОЧНИК