Rezillion - Винтажные уязвимости все еще в строю!

15 августа 2022 г. 15:37
 605

Более 400 известных эксплуатируемых уязвимостей относятся к периоду до 2020 года.

Введение.

Мода на одежду в среде киберпреступников (по крайней мере, если верить популярным СМИ) остается верна старой доброй толстовке, ничем не отличается и их любовь к винтажным уязвимостям.

Как мы покажем в нашем исследовательском отчете, известные уязвимости - даже те, которым уже стукнуло более 10 лет - все еще чрезвычайно распространены и, как таковые, все еще представляют значительный риск. Несмотря на то, что исправления для этих уязвимостей доступны в течение многих лет, и несмотря на то, что они широко известны, программное обеспечение и устройства остаются уязвимыми.

На самом деле, если мы изучим список известных эксплуатируемых уязвимостей CISA, то увидим, что существует более 400 известных эксплуатируемых уязвимостей, относящихся к периоду до 2020 года.

 

Рис. 1: Уязвимости по годам.

 

Мы решили подробнее рассмотреть некоторые из этих уязвимостей и выяснить, насколько серьезную угрозу они до сих пор несут.

В целом, нам удалось выявить более 4,5 миллионов устройств, выходящих в интернет, которые на сегодняшний день уязвимы к багам, обнаруженным в период с 2010 по 2020 год. Для большинства из этих уязвимостей мы также выявили активные попытки сканирования/эксплуатации.

 

 

Прежде чем мы погрузимся в фактическое исследование, давайте подробнее разберемся, что такое «время жизни уязвимости».

Немного предыстории.

Жизненный цикл уязвимости состоит из нескольких этапов, начиная с момента появления уязвимости в коде и заканчивая моментом, когда она эффективно исправлена и не представляет дополнительного риска.

 

Рис. 2: Жизненный цикл уязвимости безопасности.

 

Этот промежуток времени можно разделить на два различных диапазона:

  1. С момента появления уязвимого кода до момента обнаружения/сообщения об уязвимости. В течение этого периода времени уязвимость существует, потенциально может быть использована, но никто о ней не знает, и она не будет исправлена. Если по какой-то случайности злоумышленники узнают об уязвимости на этом этапе, она классифицируется как уязвимость нулевого дня.
  2. С момента, когда производитель, ответственный за уязвимый код, выпускает патч или исправленный релиз, до момента развертывания патча. На этом этапе уязвимость уже известна и может быть использована только в тех средах, в которых патч/исправление еще не было установлено.

 

В данном исследовании мы сосредоточимся на последней группе и выделим некоторые из наиболее критических уязвимостей, которые уже исправлены, но, как показывает практика, поверхность атаки, актуальная для этих уязвимостей, все еще существует, следовательно, вероятность эксплуатации высока.

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

  • Мы сосредоточились только на CVE, обнаруженных в 2020 году или ранее.
  • Представленная информация ограничена возможностями используемых инструментов анализа угроз. Эти инструменты имеют доступ только к тем элементам программного обеспечения, которые находятся на серверах, выходящих в интернет (т.е. общедоступных). Можно предположить, что существует множество других уязвимых серверов, не имеющих выхода в интернет (т.е. находящихся во внутренних сетях).
  • Это исследование в основном сосредоточено на уязвимостях, которые могут быть использованы по сети с помощью вектора удаленной атаки. Существует множество других типов уязвимостей, которые остались за рамками данного исследования (например, локальная эскалация привилегий), которые злоумышленник может использовать после установления первоначального присутствия в системе для осуществления латерального перемещения, утечки данных и т.д.

Почему данная тема важна?

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

Как показало недавнее исследование, проведенное учеными из Университета Тренто в Италии, вопреки распространенному заблуждению, большинство современных продвинутых хакерских групп (Advanced Persistent Threat, APT, используют общеизвестные уязвимости.

Исследователи вручную собрали базу данных атак APT, охватывающую 86 группировки и 350 кампаний, проведенных в период с 2008 по 2020 год, изучив векторы атак и типы используемых уязвимостей (например, «нулевые дни» или публичные уязвимости), а также затронутое программное обеспечение и его версии.

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

Источники данных.

В ходе данного исследования мы использовали множество источников данных, среди которых основные это:

  • Shodan.io - поисковая система для подключенных к Интернету устройств. Shodan собирает информацию обо всех устройствах, непосредственно подключенных к Интернету. Большая часть данных, которые собирает Shodan, берется из баннеров, которые представляют собой метаданные о программном обеспечении, запущенном на устройстве.
  • GreyNoise - GreyNoise пассивно собирает пакеты с сотен тысяч IP-адресов, которые ежедневно сканируют интернет. Затем он анализирует и обогащает эти данные для определения поведения, методов и намерений, предоставляя информацию о попытках активной эксплуатации.

 

Давайте рассмотрим некоторые из известных «старинных» уязвимостей, датируемых периодом до 2020 года, которые все еще остаются в моде.

Выдающиеся примеры.

CVE-2012-1823 - Удаленное выполнение кода PHP CGI.

  • CVSS2 - 7.5.
  • Известно, что уязвимость эксплуатируется в кибератаках – Да.
  • Возраст уязвимости: 10 лет.

 

Описание уязвимости:

Уязвимость неправильной проверки ввода, которая позволяет злоумышленникам удаленно выполнить произвольный код, поместив опции командной строки в строку запроса. Ошибка связана с тем, как URI используется и передается PHP CGI, когда в URL отсутствует символ `=`. Поскольку URI передается в двоичный файл php-cgi без достаточной фильтрации или кодировки, злоумышленник может передать дополнительный аргумент в командную строку php-cgi.  Интересным аспектом этой уязвимости является то, что она была обнаружена во время CTF-соревнований, и прошло около четырех месяцев, прежде чем было выпущено исправление.

Потенциально уязвимых и доступных через Интернет приложений по данным Shodan.io - более 569 000.

 

Рис. 3: Географическое распространение CVE-2012-1823.

 

Несмотря на то, что уязвимости уже десять лет, GreyNoise сообщает о 15 уникальных IP-адресах, пытавшихся использовать CVE-2012-1823 за последние 30 дней.

CVE-2014-0160 («HeartBleed») - Утечка информации из памяти процесса в OpenSSL.

  • CVSS2 - 7,5.
  • Известно, что уязвимость эксплуатируется в кибератаках – Да.
  • Возраст уязвимости: 8 лет.

 

Описание уязвимости:

Уязвимость, обнародованная в апреле 2014 года, затрагивает расширение heartbeat (RFC 6520), реализованное в OpenSSL 1.0.1 - 1.0.1f, и при эксплуатации может привести к утечке содержимого памяти от сервера к клиенту и от клиента к серверу.  Таким образом, любой человек в Интернете может читать память систем, использующих уязвимые версии программного обеспечения OpenSSL.  Тот факт, что эксплуатация уязвимости не очень сложна, а также не оставляет видимых следов на атакованной машине, сделал уязвимость HeartBleed одной из наиболее разрушительных уязвимостей последних лет.

Потенциально уязвимых и доступных через Интернет приложений по данным Shodan.io -  более 228 000.

 

Рис. 4: Географическое распространение CVE-2014-0160.

 

CVE-2015-1635 - Удаленное выполнения кода в Microsoft HTTP.sys.

  • CVSS2 – 10.
  • Известно, что уязвимость эксплуатируется в кибератаках – Да.
  • Возраст уязвимости: 7,5 лет.

 

Описание уязвимости:

CVE-2015-1635 (также известная как MS15-034) - это уязвимость удаленного выполнения кода в модуле обработки протокола HTTP (HTTP.sys) в Microsoft Internet Information Service. Уязвимость может привести к удаленному выполнению кода путем отправки специально созданного HTTP-запроса на пораженную систему Windows.

Потенциально уязвимых и доступных через Интернет приложений по данным Shodan.io -  более 164 000.

 

Рис. 5: Географическое распространение CVE-2015-1635.

 

CVE-2018-13379 - Fortinet FortiOS и FortiProxy.

  • CVSS3 - 9.8.
  • Известно, что уязвимость эксплуатируется в кибератаках – Да.
  • Возраст уязвимости: 4,5 года.

 

Описание уязвимости:

CVE-2018-13379 - это уязвимость обхода пути в веб-портале FortiProxy SSL VPN, которая существует уже более четырех лет и по-прежнему входит в топ самых часто эксплуатируемых уязвимостей. После эксплуатации ошибка может позволить неаутентифицированному злоумышленнику удаленно загрузить системные файлы FortiProxy через специально созданные HTTP-запросы к ресурсам.

Как и ожидалось от уязвимости, которая эксплуатируется уже более 4 лет и используется для кражи данных и распространения шифровальщиков, у нее длинная и богатая история. За прошедшие годы CISA выпустила несколько рекомендаций, в которых подробно описывалось ее использование хакерами, якобы связанными с Ираном и Российской Федерацией, для получения доступа к многочисленным правительственным, коммерческим сетям и сетям технологических служб.

Еще в феврале 2022 года компания SentinelLabs сообщила, что якобы связанная с Ираном группировка TunnelVision использует CVE-2018-13379, а также другие более поздние уязвимости, такие как Log4Shell и ProxyShell, для атак на организации.

Потенциально уязвимых и доступных через Интернет приложений по данным Shodan.io -  более 538 000.

 

Рис. 6: Географическое распространение CVE-2018-13379.

 

Активные попытки эксплуатации CVE-2018-13379  за последние 30 дней по данным Greynoise.io: 162 уникальных IP.

CVE-2018-7600 («Drupalgeddon2») - Удаленное выполнение кода в Drupal.

  • CVSS3 - 9.8
  • Известно, что уязвимость эксплуатируется в кибератаках - Да
  • Возраст уязвимости: 4,5 года

 

Описание уязвимости:

Drupalgeddon 2 - это уязвимость удаленного выполнения кода, затрагивающая Drupal версий 7.x до 7.58, 8.3.x до 8.3.9, 8.4.x до 8.4.6 и 8.5.x до 8.5.1.  Уязвимость, не требующая аутентифицированного доступа, может быть использована злоумышленником для того, чтобы заставить сервер с Drupal выполнить вредоносный код, который может полностью скомпрометировать установку Drupal, а в определенных конфигурациях потенциально скомпрометировать и хост-машину.  После обнаружения уязвимости было подсчитано, что более 1 миллиона сайтов подвержены CVE-2018-7600.

Потенциально уязвимых и доступных через Интернет приложений по данным Shodan.io -  более 9980.

 

Рис. 7: Географическое распространение CVE-2018-7600.

 

Активные попытки эксплуатации CVE-2018-7600 за последние 30 дней по данным Greynoise.io: 86 уникальных IP.

CVE-2019-0708 («BlueKeep») - Удаленное выполнение кода в Remote Desktop Services (RDP).

  • CVSS3 - 9.8.
  • Известно, что уязвимость эксплуатируется в кибератаках – Да.
  • Возраст уязвимости: 3 года.

 

Описание уязвимости:

BlueKeep - это критическая уязвимость RCE в RDP, обнаруженная Национальным центром кибербезопасности Великобритании в мае 2019 года. Уязвимость затронула все непропатченные версии Microsoft Windows на базе Windows NT, начиная с Windows XP, Windows 2000 и заканчивая Windows Server 2008 R2 и Windows 7. Windows XP получила внеочередное обновление от Microsoft из-за потенциальной серьезности уязвимости, хотя на тот момент она уже находилась в состоянии End of Life.

Потенциально «червячная» уязвимость была даже рассмотрена в специальной рекомендации АНБ, призывающем организации как можно скорее поставить заплатки на уязвимые версии.

Потенциально уязвимых и доступных через Интернет приложений по данным Shodan.io -  более 75 000.

 

Рис. 8: Географическое распространение CVE-2019-0708.

 

CVE-2020-0796 («SMBGhost») - Удаленное выполнение кода в Microsoft Server Message Block 3.1.1 (SMBv3).

  • CVSS3 – 10.
  • Известно, что уязвимость эксплуатируется в кибератаках – Да.
  • Возраст уязвимости: 2,5 года.

 

Описание уязвимости:

Самый молодой член нашего списка, CVE-2020-0796, представляет собой ошибку в механизме сжатия SMBv3.1.1. Уязвимость, о которой впервые публично сообщили в марте 2020 года, затрагивает Windows 10 версий 1903 и 1909. Первоначальный анализ классифицировал уязвимость как неаутентифицированную удаленную DoS-уязвимость, но код эксплойта, опубликованный исследователем безопасности три месяца спустя, продемонстрировал, как уязвимость может быть использована для достижения неаутентифицированного удаленного выполнения кода.

Потенциально уязвимых и доступных через Интернет приложений по данным Shodan.io -  более 165 000.

 

Рис. 9: Географическое распространение CVE-2020-0796.

 

Уникальные IP-адреса, сканирующие на наличие уязвимости SMBGhost за последние 30 дней, по данным Greynoise.io: 31.

Заключение.

ВСЕ Уязвимости, проанализированные в данном исследовании, существуют уже несколько лет, для всех них выпущены исправления, и все они применяются в реальных кибератаках.

Тем не менее, как мы показали, их поверхность атаки остается огромной. Почему так?

Не секрет, что эффективное исправление уязвимостей требует времени и значительных усилий. Учитывая постоянный рост числа уязвимостей, обнаруживаемых каждый год, и нехватку квалифицированных специалистов, организациям просто трудно угнаться.

Следующая визуализация представляет собой простой график, который показывает распределение уязвимостей по степени серьезности с течением времени. Выбор между LOW, MEDIUM и HIGH основан на рейтинге CVSS V2. Более подробную информацию о том, как были построены эти данные, можно найти на странице NVD CVSS.

 

Рис. 10: Распределение критичности CVSS по времени.

 

В то время как в 2021 году в Национальную базу данных уязвимостей было добавлено рекордное количество новых уязвимостей - 20 157, согласно данным CyberSeek Global Security Heatmap, в настоящее время только в США насчитывается более 700 000 незаполненных вакансий в сфере кибербезопасности.

Еще одним фактором, который может объяснить этот пробел в исправлениях, является то, что патчи часто вносят нестабильность. Хотя производители стараются проверять свое программное обеспечение по мере возможностей, не все грани совместимости могут быть проверены. Часто обновления безопасности связаны с функциональностью продукта, что иногда может привести к непредвиденным проблемам совместимости патчей.

Это приводит к мышлению «не чини что не сломалось», особенно в организациях с низким уровнем развития системы безопасности.

Наконец, менее зрелым организациям часто не хватает понимания их реальной поверхности атак. Без надлежащего инструментария и процессов управления уязвимостями они практически слепы к риску, а актив, об уязвимости которого вы не знаете, вряд ли будет исправлен.

 

Что же можно сделать?

Во-первых, рискуя сказать очевидное - управление уязвимостями просто необходимо!

Убедитесь, что у вас есть видимость существующей поверхности атаки (CVEs), а также возможность идентифицировать уязвимые компоненты в вашей среде, связанные с уязвимостями, которые требуют исправления. В этом контексте нельзя не подчеркнуть важность наличия действенной спецификации программного обеспечения.

Эффективное исправление требует наличия вспомогательных процессов. Контроль изменений, тестирование и обеспечение качества необходимы для учета возможных проблем совместимости.

Как только вы изучите основы, убедитесь, что ваши усилия по управлению уязвимостями могут масштабироваться.

Поскольку тенденция роста числа обнаруженных уязвимостей не изменится, для масштабирования усилий по исправлению уязвимостей необходима автоматизация и разумная расстановка приоритетов.

Учитывая все вышесказанное, и особенно чем больше и сложнее организация, предполагать, что все системы будут постоянно обновляться, непрактично. Поскольку вы не можете обновить все, вам нужно уметь определять приоритеты исправлений, которые имеют наибольшее значение.

Определение приоритетов только по CVSS не закрывает всю проблему. Вы должны стремиться использовать подход, основанный на оценке риска (выявление и приоритезация уязвимостей высокого риска по сравнению с незначительными дефектами), при принятии решения о том, какие исправления являются критическими для вашей среды. Это можно сделать, изучив данные об эксплуатации уязвимостей в атаках - например, список известных эксплуатируемых уязвимостей CISA или другие источники информации об угрозах - определив, работают ли уязвимые элементы программного обеспечения в вашей среде, или приняв во внимание другие меры по смягчению или компенсации, которые вы применяете.

Наконец, сделайте акцент на постоянном мониторинге и оценке. В современных условиях, когда использование стороннего кода (коммерческого или с открытым исходным кодом) неизбежно, мы неоднократно наблюдали случаи, когда уязвимый код, который уже был исправлен, возвращался в производственную среду с помощью процессов CI/CD.

Когда вы порвали джинсы, вы можете приклеить заплатку к прорехе, потратив немного времени и имея навыки шитья. То же самое относится и к исправлению программного обеспечения: при наличии соответствующих инструментов, времени и исследований можно наложить заплатку, чтобы предотвратить атаку киберпреступников. Винтажные уязвимости все еще в моде, но если мы как индустрия «сделаем патчи снова крутыми», мы сможем сделать винтажные уязвимости модным трендом прошлого сезона.

О компании Rezilion.

Платформа Rezilion автоматически защищает программное обеспечение, которое вы поставляете клиентам. Постоянный анализ Rezilion обнаруживает уязвимые компоненты программного обеспечения на любом уровне программного стека и определяет возможность их использования, отсеивая до 95% выявленных уязвимостей. Затем Rezilion автоматически устраняет уязвимости, которые можно эксплуатировать, на протяжении всего SDLC, сокращая количество нерассмотренных уязвимостей и сроки их устранения с месяцев до нескольких часов и возвращая DevOps-командам время на разработку.

Узнайте больше о платформе управления поверхностью атаки программного обеспечения Rezilion на сайте www.rezilion.com.

 

Источник: https://www.rezilion.com

Системы Информационной Безопасности