
Цель — провести триаж известных атак и узнать, как команды безопасности быстро реагируют.
Цель этого лабораторного занятия — разобрать ещё одну известную реальную уязвимость, Log4Shell, одну из самых широко эксплуатируемых уязвимостей последних лет из-за того, насколько часто затрагиваемая библиотека встречалась в корпоративном ПО.
Я перешёл в Национальную базу данных уязвимостей и нашёл нужную CVE:
https://nvd.nist.gov/vuln/search#/nvd/home?resultType=records
Я выполнил поиск по CVE-2021-44228 и открыл страницу с результатом.
Прочитав описание, я ответил на несколько базовых вопросов, чтобы понять, что именно находится под угрозой:
Я увидел на странице оценку CVSS и векторную строку:
Я прошёлся по векторной строке по частям, чтобы понять, что означает каждый компонент:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
Это примерно настолько плохая векторная строка, насколько это вообще возможно: не нужны привилегии, не нужно взаимодействие с пользователем, всё доступно по сети, и она может затрагивать даже объекты за пределами самого уязвимого компонента (Область действия: изменена). Именно такая комбинация — одна из причин, почему Log4Shell сочли столь срочной и массовой проблемой после её раскрытия.
Я проверил раздел Weakness Enumeration на странице NVD для этого CVE.
Указанная CWE — CWE-917: Improper Neutralization of Special Elements used in an Expression Language Statement. Простыми словами, это означает, что программное обеспечение принимает входные данные и обрабатывает их как часть выражения без надлежащей проверки, что и позволило злоумышленникам внедрять вредоносные JNDI-запросы через обычные сообщения журнала.
Я оценил, считал бы я эту уязвимость более или менее рискованной в двух разных сценариях.
Сценарий 1: Уязвимое ПО активно и доступно. Более высокий риск. Эта уязвимость позволяет злоумышленнику получать доступ к EL-выражениям (Expression Language) и изменять их, что напрямую влияет на конфиденциальность и целостность.
Сценарий 2: Уязвимое ПО установлено на машине, которая выключена и недоступна. Более низкий риск. Если до уязвимого ПО вообще нельзя добраться, конфиденциальность и целостность сохраняются, поскольку у злоумышленника нет возможности взаимодействовать с ним.
Среди CVE, которые я разбирал до сих пор, эта выделяется тем, как мало нужно злоумышленнику для её эксплуатации: никаких привилегий, никакого взаимодействия с пользователем, только доступ по сети — плюс способность уязвимости затрагивать системы за пределами самого компонента. Это хороший пример того, почему Log4Shell вызвал такой массовый переполох в индустрии после своего появления.