​​Пользователи интернета регулярно встречают новости (в том числе из рассылок ИБ) об обнаруженной опасной уязвимости в программном обеспечении или операционной системе. А что это такое и в чем их опасность?



Дмитрий Топорков, руководитель отдела средств защиты инфо-активов ГК «Иннотех», рассказал про уязвимости и о том, как можно себя от них обезопасить.



Уязвимость — это ошибка или недостаток в коде ПО, которая может позволить злоумышленнику получить несанкционированный доступ к информации или нарушить доступность системы. Они возникают из-за дефектов при проектировании или разработке. Уязвимости обнаруживались в подавляющем большинстве программ и операционных систем. Известные уязвимости разработчики закрывают, выпуская обновления.



Количество обнаруживаемых уязвимостей растёт ежегодно. В 2010 году было официально зарегистрировано 4500 уязвимостей, а в 2020 году — уже 18000. Чаще всего хакеры используют уязвимости, чтобы осуществить непредусмотренные разработчиком действия в системе.



При регистрации уязвимости ей присваивается уникальный идентификатор CVE (Common Vulnerabilities and Exposures), и она оцениваются по шкале CVSS от 0 до 10, где 10 — это самый высокий уровень критичности (уязвимость легко эксплуатируется и может привести к полной компрометации системы).



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



Эксплоит — это скрипт или программа, которая выполняет определённый набор команд для эксплуатации уязвимости. Они пишутся исследователями в области компьютерной безопасности или хакерскими группировками. Как правило, исследователи публикуют только Proof-of-concept (PoC) — код, который только демонстрирует наличие уязвимости в ПО и не выполняет никаких вредоносных действий. Хакеры могут использовать эксплоиты в реальных целевых атаках или продавать их в даркнете другим кибергруппировкам.



Как обнаруживаются уязвимости?



Существует несколько основных путей:

• Компания-разработчик ПО выявляет уязвимости в рамках жизненного цикла продукта и публикует информацию об угрозе только после выхода обновления, закрывающего уязвимость.

• Через программу обмена информации об угрозах или BugBounty. Разработчик по приватным канал информируется о наличии уязвимости. Публично подробности раскрываются лишь после выхода обновления ПО.

• Информация об уязвимости в продукте становится известна после её эксплуатации в реальной среде. Вендор узнаёт о ней постфактум, когда хакеры её уже использовали в атаках до выхода закрывающего обновления. Такие уязвимости называют 0-day, так как у разработчика было 0 дней на устранение дефекта до того, как о нём стало публично известно.



Примеры эксплуатации уязвимостей:



• В 2017 году WannaCry зашифровал более 1 млн компьютеров по всему миру. Заражение и распространение вируса происходило через уязвимость CVE-2017-0144 в реализации протокола SMB. Уязвимость позволяла удаленному злоумышленнику выполнить произвольный код в уязвимой системе посредством отправки вредоносного SMB-пакета. Суммарный финансовый ущерб от шифровальщика оценивается в более чем в $1 млрд. Вирусу удалось нанести такой ущерб за счёт опубликованного в открытых источниках эксплоита и пренебрежения пользователей к обновлениям ОС (обновление, закрывающее уязвимость, было опубликована за 2 месяца до начала распространения вируса).

• Кибергруппировка Cobalt активно использует уязвимость CVE-2017-11882, отправляя жертвам вредоносный Word-файл. При открытии файла, на компьютере жертвы исполняется вредоносный код. Ущерб от атак группы Cobalt в России превысил 1 млрд рублей.



Как защитить себя от уязвимостей?



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

• Своевременно обновлять ПО и операционную систему.

• Не открывать файлы от неизвестных отправителей или скаченных с незнакомых сайтов.

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