Руслан Рахметов, Security Vision
Процесс поиска, анализа и оценки уязвимостей – это основополагающий этап в обеспечении информационной безопасности. В текущем обзоре мы рассмотрим его основные этапы и расскажем про важные составляющие, ведь уязвимости – это неизбежная часть любой системы. Даже самая защищённая система может содержать слабые места, но регулярный поиск (про способы которого мы расскажем в следующей части), анализ и устранение уязвимостей – три ключа к поддержанию безопасности.
Систематический подход спасает время и ресурсы, позволяет избежать хаоса, минимизировать ошибки и эффективно устранять проблемы. А комбинированные методы дают лучшие результаты: автоматические сканеры находят проблемы и позволяют сократить время для ручного анализа сложных или уникальных уязвимостей. Весь этап описываемого в текущем обзоре процесса можно разделить на несколько этапов:
1) Определение цели и границ (Scope Definition) позволяет выделить элементы, которые необходимо тестировать (например, только веб-приложение, подсеть пользовательских рабочих станций или все узлы, входящие в ИС). Отвечая на вопросы «Что нужно защитить?» и «Какие системы, приложения или инфраструктура подлежат анализу?» стоит учитывать юридические и технические ограничения (например, запрещено использовать методы, нарушающие доступность системы, или необходимо провести анализ с перебором паролей и алгоритмов шифрования).
2) Сбор информации (Reconnaissance) помогает понять, с чем вы имеете дело. Обычно применяется комбинация из автоматизированного сбора (например, инструменты Nmap или Shodan) для выявления открытых портов, версий ПО и доступных сервисов), ручной анализ сетевой инфраструктуры (настроек, публичных данных и конфигураций технологических платформ и систем) и попытки взаимодействия с сотрудниками для извлечения информации (похоже на методы социальной инженерии, о которых мы рассказывали ранее для благих целей).
3) Идентификация уязвимостей (Vulnerability Discovery) также выделяет автоматизированный и ручной подходы: такие инструменты, как Security Vision VS и OpenVAS используются для автоматического выявления известных уязвимостей, а ручное тестирование обеспечивает проверку на уязвимости, такие как XSS, SQL-инъекции, неправильные настройки доступа с помощью специализированных инструментов или собственных скриптов. Отдельно можно выделить анализ исходного кода, например, статический анализ с использованием инструментов (SonarQube, Checkmarx) или динамические анализаторы приложений (аналогичные режимам пентеста), которые «простукивают» приложения «уязвимостями-пустышками» для определения слабых мест.
На протяжении первых трёх шагов мы определяем, что не работает как надо или является брешью, через которую все можно сломать. Например, проверка, все ли окна закрыты и насколько надёжны замки на дверях (чтобы грабитель не мог войти) или ревизия еды в холодильнике (чтобы найти продукты, которые портятся или составить список покупок на будущую неделю).
После наступает процесс анализа и оценки последствий.
4) Этап анализа уязвимостей (Vulnerability Analysis) включает классификацию (например, выделение ошибок конфигурации, баг в коде, недостатки выбранного протокола взаимодействия), определяет контекст (насколько уязвимость релевантна для защищаемой системы) и воспроизводимость уязвимости (для определения условий, необходимых для её эксплуатации).
5) Оценка риска (Risk Assessment) отвечает на вопросы «Как легко использовать уязвимость?» (что зависит от уровня навыков потенциального злоумышленника и наличия эксплойтов и др.) и определяет, какие последствия будут для компании (финансовые, репутационные, юридические). С точки зрения технических уязвимостей обычно применяется система CVSS (Common Vulnerability Scoring System) для расчёта базового уровня риска, а для бизнес-ориентированного подхода применяются методы моделирования угроз и оценки рисков количественными и качественными подходами.
Эти этапы – возможность убедиться, что уязвимость является реальной, а не ложным срабатыванием (например, иногда автоматизированные сканеры могут выдавать ложные предупреждения). Тут мы решаем, насколько опасна проблема и как срочно её нужно исправлять. Например, насколько серьёзно протекающая труба повредит интерьер при протечке или стоит ли возвращаться домой за забытыми ключами. Процесс анализа и оценки можно применить к любым техническим системам в компаниях, включая веб-приложения, сети, серверы или IoT-устройства. Важно регулярно повторять его вместе с этапами идентификации, так как новые уязвимости могут появляться ежедневно, а для завершения полного цикла вводятся этапы устранения и регулярной отчётности.
Анализ и оценка уязвимостей – это процесс, позволяющий понять природу выявленных уязвимостей, оценить их влияние на систему и определить приоритеты для их устранения:
6) Устранение и повторная проверка (Remediation) включают непосредственное исправление недочётов и ретест (повторное тестирование для проверки, что уязвимость устранена), которые поддаются автоматизациии, тогда такой процесс называют «автопатчингом».
7) Завершением процесса становится этап подготовки отчёта (Reporting), в котором будут указаны обнаруженные уязвимости и детали их воспроизведения. А также чёткие инструкции по устранению (например, обновить ПО или изменить настройки конфигураций для эталонного значения).
На завершающих этапах процесса мы определяем, что делать с выявленными уязвимостями и как выстроить очередь задач. Например, сначала починить протекающую крышу, а потом трещины в стенах – на случай потопа при дожде.
Сами действия по устранению уязвимостей носят технический характер, мы не будем сегодня углубляться ещё раз в эти особенности, но они очень похожи на обычные наши бытовые задачи, когда мы устраняем проблемы или смягчаем их влияние на жизнь. Например, замена замков на новые, ремонт крыши и закупка новой кровли, выключение газа в случае возможной утечки и уборка мусора в доме перед праздником или приходом гостей.
Оценка и приоритизация – основа для разумного планирования. Не все уязвимости одинаково опасны, а умение выделить критические проблемы помогает сосредоточить усилия там, где это действительно важно. Процесс работы с уязвимостями никогда не заканчивается: мир технологий и угроз меняется и усложняется. Поэтому регулярный пересмотр политики безопасности и обновление инструментов помогает идти в ногу со временем.
Культура безопасности важнее любой технологии, ведь даже самый продвинутый инструмент бессилен, если пользователи не понимают основ безопасного поведения. Постоянное обучение и повышение осведомлённости – это неотъемлемая часть защиты.
Поиск, анализ и устранение уязвимостей — это не разовая задача, а непрерывный процесс, который должен стать частью культуры любой организации или отдельного человека. Системный подход и внимание к деталям позволят минимизировать риски и быть готовым к новым вызовам, а мы надеемся, что помогли вам выстроить логику работы основных инструментов ИБ- и ИТ-специалистов в этой сфере. Чтобы сделать этот процесс проще, мы с экспертами подготовили для вас чек-лист полезных действий для поиска, анализа и оценки уязвимостей, который вы можете скачать на страницах наших продуктов: Vulnerability Scanner, Vulnerability Management и Security Profile Compliance.