Skip to content

Latest commit

 

History

History
66 lines (44 loc) · 10.1 KB

0x15-V8-Resiliency_Against_Reverse_Engineering_Requirements.md

File metadata and controls

66 lines (44 loc) · 10.1 KB

V8: Требования к устойчивости к атакам на стороне клиента

Цель проверки

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

Требования в этом разделе должны применяться по мере необходимости, основываясь на оценке рисков, вызванных несанкционированным вмешательством в приложение и/или восстановлением исходного кода. Мы предлагаем обратиться к документу OWASP «Technical Risks of Reverse Engineering and Unauthorized Code Modification Reverse Engineering and Code Modification Prevention» (см. ссылки ниже) для составления списка бизнес рисков и связанных с ними технических угроз.

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

Следует рассмотреть следующие соображения:

  1. Должна быть определена модель угроз, в которой прописаны конкретные атаки на стороне клиента, от которых необходимо защититься. Кроме того, должна быть указана степень защиты, которую следует обеспечить. Например, цель внедрения защитных мер может заключаться в том, чтобы заставить авторов вредоносного ПО, нацеленного на данное приложение, приложить значительные усилия для реверс инжиниринга.

  2. Модель угроз должна отвечать здравому смыслу. Например, сокрытие криптографического ключа в whitebox реализации не имеет смысла, если злоумышленник может применить технику «code lifting».

  3. Эффективность защиты всегда должна проверяться экспертом, имеющим опыт тестирования методов обфускации и защиты от фальсификации (см. также главы «Реверс инжиниринг» и «Оценка защиты ПО» в OWASP MSTG.

Противодействие динамическому анализу и фальсификациям

# MSTG-ID Описание R
8.1 MSTG-RESILIENCE-1 Приложение обнаруживает и реагирует на наличие root или jailbreak, либо уведомляя пользователя, либо прекращая работу. x
8.2 MSTG-RESILIENCE-2 Приложение не позволяет использовать отладчики и/или обнаруживает и реагирует на использование отладчика. Все доступные протоколы отладки должны быть учтены. x
8.3 MSTG-RESILIENCE-3 Приложение обнаруживает и реагирует на внесения изменений в исполняемые файлы и критичные данные в своей песочнице. x
8.4 MSTG-RESILIENCE-4 Приложение обнаруживает и реагирует на наличие на устройстве широко используемых инструментов и фреймворков для реверс инжиниринга. x
8.5 MSTG-RESILIENCE-5 Приложение обнаруживает и реагирует на запуск на эмуляторе. x
8.6 MSTG-RESILIENCE-6 Приложение обнаруживает и реагирует на изменение своего кода и данных в оперативной памяти. x
8.7 MSTG-RESILIENCE-7 Приложение реализует несколько механизмов для каждой категории защиты (с 8.1 по 8.6). Обратите внимание, что на устойчивость к атакам влияет количество, разнообразие и оригинальность используемых механизмов. x
8.8 MSTG-RESILIENCE-8 Механизмы обнаружения инициируют ответные меры разных типов, включая отложенные и скрытые. x
8.9 MSTG-RESILIENCE-9 Обфускация применена в том числе и к тем программным механизмам, которые препятствуют деобфускации методами динамического анализа. x

Привязка к устройству

# MSTG-ID Описание R
8.10 MSTG-RESILIENCE-10 Приложение реализует функциональность привязки экземпляра приложения к устройству, формируя его отпечаток из нескольких свойств, уникальных для устройства. x

Противодействие восстановлению логики работы приложения

# MSTG-ID Описание R
8.11 MSTG-RESILIENCE-11 Все исполняемые файлы и библиотеки, принадлежащие приложению, зашифрованы на файловом уровне, либо важные участки кода и данных зашифрованы внутри исполняемых файлов. Простой статический анализ не позволяет обнаружить важный код или данные. x
8.12 MSTG-RESILIENCE-12 Если задачей обфускации является защита конфиденциальных данных, то используется схема обфускации, которая подходит не только для этой задачи, но и защищает от ручной тестирования и автоматизированных деобфускаторов и учитывает последние исследования по данной теме. Эффективность схемы обфускации должна быть проверена с помощью ручного тестирования. Обратите внимание, что использование аппаратных средств защиты (если они поддерживаются устройством) предпочтительнее обфускации. x

Противодействие Перехвату Сообщений

# MSTG-ID Description R
8.13 MSTG-RESILIENCE-13 В качестве глубокой защиты, наряду с существенным усилением защиты взаимодействия, шифрование обмениваемых приложением сообщений может шифроваться для дальнейшего предотвращения перехвата. x

Ссылки

OWASP MSTG содержит подробные инструкции по верификации соответствия требованиям, перечисленным в этом разделе.

Для получения дополнительной информации смотрите также: