V10.3.2 Application Integrity
Requirement:#
Verify that the application employs integrity protections, such as code signing or subresource integrity. The application must not load or execute code from untrusted sources, such as loading includes, modules, plugins, code, or libraries from untrusted sources or the Internet.
Explanation:#
Если значения проверки целостности или «контрольные суммы» опущены в протоколе, невозможно определить, были ли данные повреждены при передаче. Отсутствие функции контрольной суммы в протоколе устраняет первую проверку данных на уровне приложения, которую можно использовать. Философия сквозных проверок гласит, что проверки целостности должны выполняться на самом низком уровне, на котором они могут быть полностью реализованы. За исключением дальнейших проверок работоспособности и проверки ввода, выполняемых приложениями, контрольная сумма протокола является наиболее важным уровнем контрольной суммы, поскольку она может выполняться более полно, чем на любом предыдущем уровне, и учитывает целые сообщения, а не отдельные пакеты.
Remediation:#
Вот несколько рекомендуемых шагов по исправлению, чтобы убедиться, что приложение использует защиту целостности:
- Подписание кода: Требуйте, чтобы весь код, модули, плагины, библиотеки и любые другие компоненты приложения были подписаны цифровой подписью. Это помогает убедиться в подлинности кода и в том, что он не был подделан.
- Целостность подресурсов (SRI): используйте SRI, чтобы гарантировать, что ресурсы, загруженные приложением, такие как файлы JavaScript и CSS, не были изменены при передаче. SRI позволяет приложению проверять хэш ресурса перед его загрузкой, гарантируя, что это ожидаемая версия.
- Белый список: убедитесь, что приложение загружает код и ресурсы только из надежных источников. Этого можно достичь, поддерживая белый список доверенных доменов и URL-адресов и загружая ресурсы только из этих доменов.
- Политика безопасности содержимого (CSP): Используйте CSP, чтобы указать, какие источники содержимого могут быть загружены приложением. Это помогает предотвратить выполнение приложением кода из ненадежных источников и уменьшает поверхность атаки приложения.
- Проверка входных данных: проверьте все входные данные для приложения, включая параметры запроса, заголовки, файлы cookie и данные форм, чтобы убедиться, что они действительны и не являются вредоносными.
- Поддерживайте программное обеспечение в актуальном состоянии: регулярно обновляйте приложение и все его компоненты, чтобы своевременно устранять любые уязвимости безопасности.
- Проводите регулярные оценки безопасности: регулярно проводите оценки безопасности приложения для выявления и устранения любых уязвимостей безопасности. Это может включать тестирование на проникновение, проверку кода и другие формы тестирования безопасности.
Выполняя эти шаги по исправлению, вы можете гарантировать, что приложение использует средства защиты целостности и что код и ресурсы загружаются только из надежных источников, что снижает риск несанкционированного доступа и выполнения вредоносного кода.
Additional:#
CWE - CWE-353: Отсутствует поддержка проверки целостности (4.10) (mitre.org)