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

Управление уязвимостями — это идентификация, оценка, классификация и выбор решения для устранения уязвимостей. Фундаментом управления уязвимостями являются репозитории информации об уязвимостях, один из которых - Система управления уязвимостями «Перспективного мониторинга».

Наше решение контролирует появление информации об уязвимостях в операционных системах (Windows, Linux/Unix-based), офисном и прикладном программном обеспечении, ПО оборудования, средствах защиты информации.

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

База данных Системы управления уязвимостями программного обеспечения «Перспективного мониторинга» автоматически пополняется из следующих источников:

  • Банк данных угроз безопасности информации (БДУ БИ) ФСТЭК России.
  • National Vulnerability Database (NVD) NIST.
  • Red Hat Bugzilla.
  • Debian Security Bug Tracker.
  • CentOS Mailing List.

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

Контроль уязвимостей программного обеспечения

C помощью Системы управления уязвимостями разработчики могут контролировать наличие и состояние обнаруженных уязвимостей в сторонних компонентах своего ПО.

Например, в модели Secure Software Developer Life Cycle (SSDLC - Безопасная разработка программного обеспечения) компании Hewlett Packard Enterprise контроль сторонних библиотек занимает одно из центральных мест.

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

Это работает так:

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

2. Мы ежедневно проверяем:

b. появились ли методы устранения ранее обнаруженных уязвимостей.

3. Оповещаем разработчика, если изменился статус или скоринг уязвимости, в соответствии с заданной ролевой моделью. Это значит, что разные группы разработчиков одной компании будут получать оповещения и видеть статус уязвимостей только для того продукта, над которым они работают.

Частота оповещений Системы управления уязвимостями настраивается произвольно, но при обнаружении уязвимости с CVSS-скорингом больше 7,5 разработчики получат немедленное оповещение.

Интеграция с ViPNet TIAS

Программно-аппаратный комплекс ViPNet Threat Intelligence Analytics System автоматически обнаруживает компьютерные атаки и выявляет инциденты на основании поступающих от различных источников событий информационной безопасности. Основной источник событий для ViPNet TIAS - ViPNet IDS, которая анализирует входящий и исходящий сетевой трафик при помощи баз решающих правил AM Rules разработки «Перспективного мониторинга». Некоторые сигнатуры написаны на детектирование эксплуатации уязвимостей.

Если ViPNet TIAS обнаруживает инцидент ИБ, в котором была проэксплуатирована уязвимость, то в карточку инцидента из СУУ автоматически заносится вся связанная с уязвимостью информация, включая методы устранения или компенсации негативного влияния.

Система управления инцидентами помогает и в расследованиях инцидентов ИБ , предоставляя аналитикам информацию об индикаторах компрометации и потенциальных затронутых инцидентом узлах информационной инфраструктуры.

Мониторинг наличия уязвимостей в информационных системах

Ещё один сценарий использования системы управления уязвимостями - проверка по требованию.

Заказчик самостоятельно формирует встроенными средствами или разработанным нами скриптом перечень установленного на узле (АРМ, сервер, СУБД, ПАК СЗИ, сетевое оборудование) системного и прикладного программного обеспечения и компонентов, передаёт этот перечень в СУУ и получает отчёт об обнаруженных уязвимостях и периодические оповещения об их статусе.

Отличия Системы от распространённых сканеров уязвимостей:

  • Не требует установки агентов мониторинга на узлах.
  • Не создаёт нагрузки на сеть, поскольку самой архитектурой решения не предусмотрены агенты и серверы сканирования.
  • Не создаёт нагрузку на оборудование, поскольку перечень компонентов создаётся системными командами или легковесным скриптом с открытым исходным кодом.
  • Исключает возможность утечки информации. «Перспективный мониторинг» не может ничего достоверно узнать о физическом и логическом местоположении или функциональном назначении узла в информационной системе. Единственная информация, которая покидает пределы контролируемого периметра заказчика, - txt-файл с перечнем программных компонентов. Этот файл проверяется на содержание и загружается в СУУ самим заказчиком.
  • Для работы системы нам не нужны учётные записи на контролируемых узлах. Информацию собирает администратор узла от своего имени.
  • Безопасный обмен информацией по ViPNet VPN, IPsec или https.

Подключение к сервису управления уязвимостями «Перспективного мониторинг» помогает заказчику выполнить требование АНЗ.1 «Выявление, анализ уязвимостей информационной системы и оперативное устранение вновь выявленных уязвимостей» приказов ФСТЭК России № 17 и 21. Наша компания - лицензиат ФСТЭК России на деятельность по технической защите конфиденциальной информации.

Стоимость

Минимальная стоимость - 25 000 рублей в год за 50 подключённых к системе узлов при наличии действующего контракта на подключение к

Другой способ взглянуть на эту проблему заключается в том, что компании должны быстро реагировать, когда приложение имеет уязвимость. Это требует, чтобы ИТ-отдел имел возможность окончательно отслеживать установленные приложения, компоненты и патчи с помощью средств автоматизации и стандартных инструментов. Существуют отраслевые усилия по стандартизации тегов программного обеспечения (19770-2), которые представляют собой файлы XML, установленные с приложением, компонентом и/или патчем, которые идентифицируют установленное программное обеспечение, а в случае компонента или патча, какое приложение они часть. Теги имеют авторитетную информацию издателя, информацию о версии, список файлов с именем файла, безопасный хэш файла и размер, которые могут использоваться для подтверждения того, что установленное приложение находится в системе, и что двоичные файлы не были изменены третьей стороной. Эти метки подписываются цифровой подписью издателем.

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

Существует группа компаний, работающих через некоммерческую организацию IEEE/ISTO под названием TagVault.org (www.tagvault.org) с правительством США, на стандартную реализацию ISO 19770-2, которая позволит этот уровень автоматизации. В какой-то момент эти теги, соответствующие этой реализации, скорее всего, будут обязательными для программного обеспечения, проданного правительству США в какой-то момент в ближайшие пару лет.

Поэтому, в конце концов, хорошей практикой является не публикация о том, какие приложения и конкретные версии программного обеспечения вы используете, но это может быть затруднено, как указывалось ранее. Вы хотите убедиться в том, что у вас есть точный, современный инвентарь программного обеспечения, что он регулярно сравнивается со списком известных уязвимостей, таких как NVID от NVD, и что ИТ-отдел может предпринять немедленные действия для реминирования угрозы, Это наряду с новейшим обнаружением вторжений, антивирусным сканированием и другими методами блокировки среды, по крайней мере, будет очень сложно скомпрометировать вашу среду, и если/когда это произойдет, то она не будет обнаружена для длительный период времени.

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

Уязвимости появляются вследствие добавления в состав ПО сторонних компонентов или свободно распространяемого кода (open source). Чужой код часто используется «как есть» без тщательного анализа и тестирования на безопасность.

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

Классификация уязвимостей программ

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

В зависимости от стадии появления этот вид угроз делится на уязвимости проектирования, реализации и конфигурации.

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

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

Риски использования уязвимых программ

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

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

Заражение в последнем случае происходит по следующему алгоритму:

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

Исследования, проводимые различными компаниями («Лаборатория Касперского», Positive Technologies), показывают, что уязвимости есть практически в любом приложении, включая антивирусы. Поэтому вероятность установить программный продукт, содержащий изъяны разной степени критичности, весьма высока.

Чтобы минимизировать количество брешей в ПО, необходимо использовать SDL (Security Development Lifecycle, безопасный жизненный цикл разработки). Технология SDL используется для снижения числа багов в приложениях на всех этапах их создания и поддержки. Так, при проектировании программного обеспечения специалисты по ИБ и программисты моделируют киберугрозы с целью поиска уязвимых мест. В ходе программирования в процесс включаются автоматические средства, сразу же сообщающие о потенциальных изъянах. Разработчики стремятся значительно ограничить функции, доступные непроверенным пользователям, что способствует уменьшению поверхности атаки.

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

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

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

Введение

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

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

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

Классификация уязвимостей защиты

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

Классификация уязвимостей защиты в зависимости от программных ошибок:

  • Переполнение буфера (buffer overflow). Эта уязвимость возникает из-за отсутствия контроля за выходом за пределы массива в памяти во время выполнения программы. Когда слишком большой пакет данных переполняет буфер ограниченного размера, содержимое посторонних ячеек памяти перезаписывается, и происходит сбой и аварийный выход из программы. По месту расположения буфера в памяти процесса различают переполнения буфера в стеке (stack buffer overflow), куче (heap buffer overflow) и области статических данных (bss buffer overflow).
  • Уязвимости "испорченного ввода" (tainted input vulnerability). Уязвимости "испорченного ввода" могут возникать в случаях, когда вводимые пользователем данные без достаточного контроля передаются интерпретатору некоторого внешнего языка (обычно это язык Unix shell или SQL). В этом случае пользователь может таким образом задать входные данные, что запущенный интерпретатор выполнит совсем не ту команду, которая предполагалась авторами уязвимой программы.
  • Ошибки форматных строк (format string vulnerability). Данный тип уязвимостей защиты является подклассом уязвимости "испорченного ввода". Он возникает из-за недостаточного контроля параметров при использовании функций форматного ввода-вывода printf, fprintf, scanf, и т. д. стандартной библиотеки языка Си. Эти функции принимают в качестве одного из параметров символьную строку, задающую формат ввода или вывода последующих аргументов функции. Если пользователь сам может задать вид форматирования, то эта уязвимость может возникнуть в результате неудачного применения функций форматирования строк.
  • Уязвимости как следствие ошибок синхронизации (race conditions). Проблемы, связанные с многозадачностью, приводят к ситуациям, называемым "состояние гонки": программа, не рассчитанная на выполнение в многозадачной среде, может считать, что, например, используемые ею при работе файлы не может изменить другая программа. Как следствие, злоумышленник, вовремя подменяющий содержимое этих рабочих файлов, может навязать программе выполнение определенных действий.

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

Обзор существующих анализаторов

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

  • Динамические отладчики. Инструменты, которые позволяют производить отладку программы в процессе её исполнения.
  • Статические анализаторы (статические отладчики). Инструменты, которые используют информацию, накопленную в ходе статического анализа программы.

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

В данной статье предложен обзор нескольких существующих статических анализаторов. Рассмотрим подробнее каждый из них.

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

  • Вирусы : файлы, содержащие вредоносный код, который может повлиять на безопасность и производительность вашего ПК.
  • Уязвимое ПО : программы, требующие обновления, которые могут быть использованы злоумышленниками для доступа к вашей системе.
  • Браузерные расширения с плохой репутацией : расширения браузера, которые обычно устанавливаются без вашего ведома и оказывают влияние на производительность системы.
  • Ненадежные пароли : пароли, которые используются для доступа более чем к одной учетной записи в Интернете и могут быть легко взломаны или скомпрометированы.
  • Сетевые угрозы : уязвимости вашей сети, которые могут сделать возможными атаки на ваши сетевые устройства и маршрутизатор.
  • Проблемы с производительностью : объекты (ненужные файлы и приложения, проблемы, связанные с настройками), которые могут препятствовать работе ПК.
  • Конфликтующие антивирусы : антивирусные программы, установленные на ПК вместе с Avast. Наличие нескольких антивирусных программ замедляет работу ПК и снижает эффективность антивирусной защиты.

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

Решение обнаруженных проблем

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

Чтобы просмотреть конкретные сведения об обнаруженных проблемах, щелкните элемент Решить все . Интеллектуальное сканирование показывает сведения о каждой проблеме и предлагает возможность исправить ее немедленно, щелкнув элемент Решить , или сделать это позже, нажав Пропустить этот шаг .

Примечание . Журналы сканирований антивируса можно увидеть в истории сканирования , перейти к которой можно, выбрав Защита ▸ Антивирус .

Управление настройками интеллектуального сканирования

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

  • Вирусы
  • Устаревшее ПО
  • Надстройки браузера
  • Сетевые угрозы
  • Проблемы с совместимостью
  • Проблемы с производительностью
  • Ненадежные пароли

По умолчанию включены все типы проблем. Чтобы прекратить проверку на наличие определенной проблемы при выполнении интеллектуального сканирования, щелкните ползунок Включено рядом с типом проблемы, чтобы он изменил состояние на Выключено .

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