A06:2021 - Уязвимые и устаревшие компоненты
Содержание:
Обзор
Она занимает второе место в Топ-10 по результатам опроса сообщества, но также имеет достаточно данных для попадания в Топ-10 по результатам наших анализов. Эта категория является известной проблемой, которую мы с трудом тестируем и оцениваем ее риски. Это единственная категория, в которой нет общих уязвимостей (CWE), сопоставленных с включенными в нее CWE, поэтому в их оценках по умолчанию учитывается эксплойт и вес воздействия 5,0. Известные CWE: CWA-1104: Использование не обслуживаемых компонентов сторонних производителей и два CWE из Топ-10 2013 и 2017 годов.
Описание
Вы незащищены:
- Если не знаете версии всех используемых вами компонентов (как на стороне клиента, так и на стороне сервера). Это включает компоненты, которые вы используете напрямую, а также со стороны.
- Если программное обеспечение незащищено, не поддерживается или устарело. Это включает операционную систему, веб-сервер/сервер приложений, систему управления базами данных (СУБД), приложения, API и все компоненты, среды выполнения и библиотеки.
- Если не проводите регулярную проверку на наличие уязвимостей и не подписываетесь на бюллетени по безопасности, относящиеся к используемым вами компонентам.
- Если своевременно не исправите или не обновите базовую платформу, фреймворки и зависимости с учетом рисков. Это обычно происходит в средах, когда исправление выполняется ежемесячно или ежеквартально под контролем изменений, оставляя организации открытыми для ненужного воздействия на дни или месяцы.
- Если разработчики программного обеспечения не проверяют совместимость обновленных, модернизированных или исправленных библиотек.
- Если не защитите конфигурации компонентов (см. A05:2021 - Неправильная конфигурация безопасности).
Как предотвратить
Должен существовать процесс управления исправлениями, чтобы:
- Удалить неиспользуемые зависимости, ненужные функции, компоненты, файлы и документацию.
- Непрерывная инвентаризация версий как клиентских, так и серверных компонентов (например, фреймворков, библиотек) и их зависимостей с использованием таких инструментов, как версии, проверка зависимостей OWASP, retire.js, и т.д. Постоянно контролируйте источники, такие как Общие уязвимости и риски (CVE), и Национальная база данных уязвимостей (NVD), на предмет уязвимостей в компонентах. Используйте инструменты анализа состава программного обеспечения для автоматизации процесса. Подпишитесь на уведомления по электронной почте об уязвимостях безопасности, связанных с используемыми вами компонентами.
- Приобретайте компоненты только из официальных источников по защищенным ссылкам. Отдавайте предпочтение подписанным пакетам, чтобы уменьшить вероятность включения измененного вредоносного компонента (см. A08:2021 - Сбои в целостности программного обеспечения и данных).
- Следите за библиотеками и компонентами, которые не поддерживаются или не создают исправлений безопасности для более старых версий. Если исправление невозможно, рассмотрите развертывание виртуального исправления для мониторинга, обнаружения или защиты от проблемы.
Каждая организация должна обеспечить постоянный план мониторинга, сортировки и применения обновлений или изменений конфигурации в течение всего срока службы приложения или портфолио.
Примеры сценариев атак
Сценарий № 1: Компоненты обычно выполняются с теми же правами, что и само приложение, поэтому недостатки в любом компоненте могут привести к серьезным последствиям. Такие недостатки могут быть случайными (ошибка кодирования) или преднамеренными (бэкдор в компоненте). Вот некоторые примеры обнаруженных уязвимостей эксплуатируемых компонентов:
- CVE-2017-5638, уязвимость удаленного выполнения кода Struts 2, обвинили в серьезных нарушениях, так как она позволяет выполнять произвольный код на сервере.
- В то время как интернет вещей (IoT) трудно или невозможно исправить, важность их исправления огромна (например, биомедицинские устройства).
Существуют автоматизированные инструменты, помогающие злоумышленникам находить незащищенные или неправильно настроенные системы. Например, поисковая система интернета вещей Shodan может помочь вам найти устройства, которые все еще страдают от уязвимости Heartbleed, исправленной в апреле 2014 года.