Перейти к содержанию

Хранение sensitive-информации в исходном коде приложения

Критичность: КРИТИЧНЫЙ
Способ обнаружения: DAST, FILES

Описание

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

Рекомендации

Несмотря на то, что восстановить исходный код в iOS из пакета приложения представляет собой трудоемкую задачу, статические данные (строки, константы, числа) хранятся в открытом виде и легко считываются из исполняемого файла

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

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

Ссылки

  1. Data Storage on iOS
  2. CWE - CWE-200: Exposure of Sensitive Information to an Unauthorized Actor (4.5)
  3. CWE - CWE-311: Missing Encryption of Sensitive Data (4.5)
  4. CWE - CWE-312: Cleartext Storage of Sensitive Information (4.5)
  5. Xcode seucre information
К началу