Уязвимость на уровне кода — это проблема безопасности, связанная с ошибкой в коде вашего приложения. После того, как вы включите и настроите АппОптима Runtime Vulnerability Analytics , АппОптима начнет проверять ваши библиотеки и исходный код для обнаружения уязвимостей на уровне кода.
- В правом верхнем углу страницы уязвимостей на уровне кода отображается вращающийся радар, указывающий на то, что ваша среда отслеживается. Если анализ уязвимостей на уровне кода отключен, информация на этой странице недоступна, а экран радара в правом верхнем углу останавливается с предупреждением о том, что мониторинг остановлен. Пожалуйста, проверьте настройки . Потенциальные причины, по которым это может произойти, см. в разделе
Monitoring stopped
error . - Индикатор проблем с безопасностью на верхней панели АппОптима отображает количество критических или серьезных уязвимостей в вашей среде. Выберите его, чтобы перейти на страницу уязвимостей на уровне кода .
Список уязвимостей на уровне кода
Чтобы просмотреть список обнаруженных уязвимостей на уровне кода в вашей среде, в меню АппОптима перейдите к пункту Уязвимости на уровне кода . Отображается следующая информация.
Обнаружены уязвимости
Список обнаруженных уязвимостей на уровне кода в вашей среде. Для оптимизации производительности одновременно отображается не более 500 уязвимостей. Вы можете сузить результаты, применив фильтры . Чтобы отсортировать список по какому-либо элементу, выберите соответствующий заголовок столбца. Чтобы добавить или удалить заголовки столбцов, выберите Формат таблицы .
Уязвимости
- Идентификатор уязвимости АппОптима (пример:
S-3694
) - Тип уязвимости на уровне кода и соответствующее место кода, где она была обнаружена (например,
SQL injection at DatabaseManager.updateBio():82
) - Уязвимый компонент (имя затронутой группы процессов, например:
launch.Main
).
Уровень риска
- Уровень риска уязвимости (обычно
Critical
), указывающий серьезность уязвимости и связанный с ней символ. - Символ общедоступного доступа, если уязвимость затрагивает хотя бы один процесс, доступный в Интернете. Это анализируется на основе трафика, который попадает в процесс напрямую, через исходный IP-адрес или косвенно, через заголовок, установленный промежуточной службой, такой как
_X-Forwarded-For_
). Если символ зачеркнут и перечеркнут, публичного доступа нет. Если символ отсутствует, данные недоступны.
Статус
- Открыто: в настоящее время присутствует уязвимость на уровне кода.
- Устранено: Уязвимость на уровне кода была устранена автоматически, поскольку основная причина (расположение уязвимого кода) больше не существует.
- Приглушено: уязвимость на уровне кода была скрыта по запросу. Примечание. Замаскированная уязвимость, которая была устранена автоматически, не меняет свой статус на
Resolved
.
Атаки
Количество атак, связанных с этой уязвимостью на уровне кода, за последние 365 дней. Одна и та же уязвимость может быть использована несколькими атаками.
Примечание . Этот столбец отображается, только если активирована защита приложений АппОптима Runtime .
Затронутые процессы
Количество процессов, затронутых уязвимостью на уровне кода. Каждый затронутый процесс запускает код, в котором была обнаружена эта уязвимость.
Впервые обнаружено
Когда АппОптима впервые обнаружил уязвимость на уровне кода.
Последнее обновление
Последний раз уязвимость на уровне кода была обновлена из-за изменений в базовых данных, обнаруженных АппОптима.
Примечание. Чтобы отобразить этот столбец, выберите Формат таблицы и добавьте Последнее обновление в список.
Подробности
Разверните строки уязвимости, чтобы узнать подробности или выполнить следующие действия:
- Выберите Изменить статус , чтобы скрыть, включить или снова скрыть уязвимость с другой причиной или комментарием.
- Выберите Просмотреть сведения об уязвимости , чтобы перейти на страницу сведений об уязвимости.
Сведения об уязвимости на уровне кода
Чтобы просмотреть сведения об уязвимости на уровне кода, выберите уязвимость на странице Уязвимости на уровне кода . Отображается следующая информация.
Название уязвимости
Пример заголовка:
- Тип уязвимости на уровне кода и соответствующий участок кода, в котором она была обнаружена (пример:
SQL injection at DatabaseManager.updateBio():82
) - Идентификатор уязвимости АппОптима (пример:
S-3694
) - Затронутый объект (пример:
SpringBoot org.АппОптима.ssrfservice.Application unguard-proxy-service-*
)
Инфографика ключевых особенностей
- Уровень риска: уязвимость на уровне кода имеет
Critical
уровень риска. После устранения уязвимости значок уровня риска становится серым. - Публичное интернет-разоблачение: если есть какое-либо общедоступное интернет-разоблачение. Возможные состояния:
- Публичная сеть: общедоступный доступ в Интернет.
- Нет воздействия: не было обнаружено воздействия в Интернете.
- Недоступно: данные недоступны, так как соответствующие узлы работают в режиме только инфраструктуры. Подробнее см. в разделе Режимы мониторинга .
- Доступные активы данных: если затронуты какие-либо доступные активы данных. Возможные состояния:
- В пределах диапазона: затронуты доступные активы данных.
- Не затронуто: не найдено доступных ресурсов данных.
- Недоступно: данные недоступны, так как соответствующие узлы работают в режиме только инфраструктуры. Подробнее см. в разделе Режимы мониторинга .
- Атаки: количество атак, обнаруженных на местоположение кода с разных исходных IP-адресов. Примечание. Эта функция отображается только в том случае, если активирована защита приложений во время выполнения .
- Процессы: количество процессов, затронутых уязвимостью.
- Тип: тип эксплойта (внедрение SQL, внедрение команды или неправильная проверка ввода).
Чтобы изменить статус уязвимости , выберите Изменить статус в правом верхнем углу страницы.
Контекст и детали
- Описание типа уязвимости.
- Точное расположение кода.
- Уязвимая функция.
- Оператор SQL (в случае внедрения SQL), команда (в случае внедрения команды) или имя поиска JNDI (в случае неправильной проверки ввода). Фактический вредоносный ввод выделен. Примечание. В целях защиты данных
*****
вместо информации о пользователе отображаются звездочки ( ). - Затронутые объекты:
- Группа процессов, в которой была обнаружена уязвимость.
- Количество затронутых процессов. Выберите имя группы процессов, чтобы перейти на страницу сведений о соответствующей группе процессов.
Пути атаки
Этот раздел отображается, только если
- Защита приложений во время выполнения активирована .
- На затронутую уязвимость было совершено менее 500 атак.
Визуальное представление путей атаки с информацией об IP-адресах источника атаки, точках входа, затронутой уязвимости и имени цели.
Обнаружены атаки
Этот раздел отображается только в том случае, если активирована Защита приложений во время выполнения .
- Определяет, сколько атак было обнаружено на одну и ту же уязвимость, и оценивает их по типу (сколько атак было использовано, заблокировано и занесено в белый список из общего числа атак).
- Перечисляет последние пять атак, произошедших за последние 365 дней, с такими подробностями, как идентификатор атаки (и ссылка на соответствующую страницу сведений об атаке, точка входа, статус (использовано, заблокировано, внесено в белый список), исходный IP-адрес и отметка времени.
- Выберите Параметры защиты приложений , чтобы перейти к разделу Защита приложений: Общие параметры .
- Выберите Просмотреть все атаки , чтобы перейти на страницу Атаки , отфильтрованную по идентификатору уязвимости.
Связанные объекты
Количество приложений, служб, хостов и баз данных, которые так или иначе связаны с выявленной уязвимостью на уровне кода, за последний час, со ссылками на страницу сведений о связанных объектах:
- Приложения: приложения, которые вызывают уязвимую службу, или приложения, которые вызывают неуязвимую службу, которая вызывает уязвимую службу.
- Ограничения: При определении связанных приложений распределенные трассировки АппОптима PurePath® не анализируются.
- Службы. Службы, которые работают непосредственно в уязвимом экземпляре группы процессов.
- Хосты: хосты, на которых работает уязвимый процесс.
- Базы данных: базы данных, которые работают в уязвимом процессе.
- Рабочие нагрузки Kubernetes: в средах Kubernetes — рабочие нагрузки, к которым относится уязвимый процесс.
- Кластеры Kubernetes: в средах Kubernetes — кластеры, к которым принадлежит уязвимый процесс.
Разделы «Рабочие нагрузки Kubernetes» и «Кластеры Kubernetes» отображаются только в том случае, если обнаружены рабочие нагрузки или кластеры Kubernetes.
Эволюция уязвимости
- Статус: текущий статус уязвимости. Отображается следующая информация:
- Для открытых уязвимостей:
- Текущий уровень риска (например,
Critical risk vulnerability
) и время открытия уязвимости (например,Opened 100 d 1 h ago (January 03 08:28)
). - Текущая оценка риска (например,
Exposed to public internet
). - Количество затронутых процессов (например,
1 affected process
) или, в случае уязвимостей Kubernetes, затронутых узлов. - Количество атак на эту уязвимость за последние 365 дней (например,
1,449 attacks
). Примечание. Атаки отображаются только в том случае, если активирована защита приложений во время выполнения .
- Текущий уровень риска (например,
- Для устраненных уязвимостей:
- Текущий статус и время, когда он был решен.
- Для открытых уязвимостей:
- Последние события: последние пять изменений статуса уязвимости за последние 30 дней. Возможные изменения статуса происходят, когда
- Уязвимость открыта, устранена или повторно открыта. Отображает изменение статуса (например,
Vulnerability resolved
), время, когда произошло изменение, и оценку риска (для повторно открытых уязвимостей). - Уязвимость скрыта или включена. Отображает пользователя, выполнившего изменение, причину изменения, любые комментарии и дату внесения изменения.
- Уязвимость открыта, устранена или повторно открыта. Отображает изменение статуса (например,
Выберите Показать больше , чтобы увидеть следующие пять изменений статуса уязвимости.
Доступные активы данных
Перечисляет доступные активы данных, открытые в результате атаки на уязвимость на уровне кода, за последний час (применимо только для типов SQL-инъекций).
Примечание. Выберите имя базы данных, чтобы перейти на соответствующую страницу сведений о базе данных.