Открыть сервис

Сканирование уязвимостей

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

Классификация и виды

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

По типу цели

  • Сканирование сетевой инфраструктуры (Network Scanning): Направлено на выявление уязвимостей в сетевых устройствах (маршрутизаторах, коммутаторах, межсетевых экранах), серверах и рабочих станциях. Проверяет открытые порты, версии служб, наличие устаревших протоколов (например, SSLv2, Telnet) и неправильные конфигурации.
  • Сканирование веб-приложений (Web Application Scanning): Ориентировано на поиск дефектов в веб-сайтах и веб-сервисах. Выявляет такие типы уязвимостей, как межсайтовый скриптинг (XSS), SQL-инъекции, небезопасные прямые ссылки на объекты (IDOR), уязвимости в системах аутентификации и управления сессиями.
  • Сканирование баз данных (Database Scanning): Проверяет системы управления базами данных (СУБД) на наличие уязвимостей, связанных с небезопасными конфигурациями, слабыми паролями, отсутствием обновлений и неправильными правами доступа.
  • Сканирование облачных сред (Cloud Scanning): Анализирует конфигурации облачных ресурсов (например, Amazon Web Services, Microsoft Azure, Google Cloud Platform) на предмет неправильных настроек доступа, открытых хранилищ данных (S3-бакетов), неиспользуемых ресурсов и утечек ключей доступа.
  • Сканирование мобильных приложений (Mobile Application Scanning): Проверяет установочные файлы (APK для Android, IPA для iOS) и работающие приложения на наличие уязвимостей, таких как небезопасное хранение данных, слабая криптография, утечки через логи и возможность внедрения вредоносного кода.

По методу проверки

  • Аутентифицированное сканирование (Authenticated / Credentialed Scanning): Сканер получает легитимные учётные данные для доступа к целевой системе (например, логин и пароль администратора). Это позволяет выполнить глубокий анализ: проверить наличие обновлений, конфигурационные файлы, права доступа, содержимое реестра (в Windows) и файловые системы. Обеспечивает более точные результаты, снижая количество ложных срабатываний.
  • Неаутентифицированное сканирование (Unauthenticated / Non-Credentialed Scanning): Сканер работает без предоставления учётных данных, имитируя действия внешнего злоумышленника. Он анализирует только те службы и порты, которые доступны из сети. Этот метод выявляет уязвимости, которые могут быть найдены удалённым атакующим, но даёт менее полную картину и может генерировать больше ложных срабатываний.

По глубине анализа

  • Поверхностное сканирование (Lightweight / Quick Scan): Быстрая проверка, направленная на выявление наиболее критичных и широко известных уязвимостей (например, наличие устаревших версий ПО, открытых портов). Занимает мало времени, но может пропустить сложные или скрытые дефекты.
  • Глубокое сканирование (Full / Deep Scan): Тщательный анализ, включающий проверку всех возможных векторов атак, проверку конфигураций, тестирование на инъекции, анализ логики приложений. Требует значительного времени и может создавать высокую нагрузку на целевую систему.

Процесс сканирования

Стандартный процесс сканирования уязвимостей включает несколько этапов:

  1. Планирование и разведка: Определение целей сканирования (IP-адреса, домены, диапазоны портов), выбор типа и глубины анализа, получение разрешений на проведение тестирования.
  2. Сбор информации (Discovery): Сканер выполняет разведку сети: отправляет ICMP-запросы (ping), сканирует порты (TCP/UDP), определяет версии операционных систем и служб (fingerprinting).
  3. Проверка уязвимостей (Vulnerability Assessment): На основе собранной информации сканер обращается к своей базе данных уязвимостей (например, базам CVE, CWE, OWASP Top 10) и выполняет серию тестов для подтверждения наличия конкретных уязвимостей. Это может включать отправку специально сформированных пакетов, инъекций, проверку заголовков HTTP и т.д.
  4. Анализ и верификация: Сканер сопоставляет результаты тестов с базой знаний, присваивает каждой уязвимости уровень критичности (например, Critical, High, Medium, Low) на основе метрик CVSS (Common Vulnerability Scoring System). На этом этапе часто происходит фильтрация ложных срабатываний.
  5. Формирование отчёта: Генерируется детальный отчёт, содержащий список найденных уязвимостей, их описание, уровень риска, рекомендации по устранению (например, установка патча, изменение конфигурации, обновление версии ПО). Отчёт может включать также технические детали (например, CVE-идентификаторы, доказательства эксплуатации).

Инструменты

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

  • Коммерческие сканеры:
  • Nessus (Tenable): Один из наиболее распространённых сетевых сканеров. Поддерживает широкий спектр уязвимостей, имеет обширную базу плагинов и интеграцию с системами управления уязвимостями.
  • QualysGuard (Qualys): Облачная платформа для сканирования сетей, веб-приложений и облачных сред. Предлагает непрерывный мониторинг и автоматизированное управление уязвимостями.
  • Rapid7 Nexpose / InsightVM: Инструмент для сканирования и управления уязвимостями, интегрирующийся с метасплойтом (Metasploit) для проверки эксплуатабельности уязвимостей.
  • Acunetix (Invicti): Специализированный сканер веб-приложений, известный высокой точностью обнаружения SQL-инъекций и XSS.
  • Burp Suite (PortSwigger): Платформа для тестирования безопасности веб-приложений, включающая сканер уязвимостей, прокси-сервер и инструменты для ручного анализа.
  • Бесплатные и открытые сканеры:
  • OpenVAS (Greenbone Networks): Является частью дистрибутива Greenbone Vulnerability Management (GVM). Предлагает мощный сетевой сканер с открытым исходным кодом и регулярно обновляемой базой уязвимостей.
  • Nmap: Утилита для сканирования сети, обнаружения хостов и определения версий служб. Хотя Nmap не является сканером уязвимостей в полном смысле, он часто используется как первый этап разведки, а его скриптовый движок (NSE) позволяет выполнять проверки на наличие уязвимостей.
  • Nikto: Сканер веб-серверов, проверяющий на наличие устаревших версий ПО, неправильных конфигураций и известных уязвимостей.
  • Wapiti: Сканер веб-приложений, выполняющий тестирование на инъекции (SQL, XSS, LDAP, Command Injection) и другие уязвимости.

Применение и значение

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

  • Регулярная оценка защищённости: Компании проводят периодическое сканирование (еженедельно, ежемесячно) для выявления новых уязвимостей в своей инфраструктуре, особенно после установки обновлений, изменения конфигураций или добавления нового оборудования.
  • Соответствие требованиям стандартов: Многие отраслевые и государственные стандарты (например, PCI DSS, ISO 27001, Федеральный закон № 152-ФЗ «О персональных данных», требования ФСТЭК России) требуют проведения регулярного сканирования уязвимостей.
  • Проверка перед релизом (Pre-release Assessment): Перед развёртыванием нового программного обеспечения или сервиса в продуктивной среде проводится сканирование для выявления критических дефектов безопасности.
  • Тестирование на проникновение (Penetration Testing): Сканирование является первым этапом пентеста, позволяя получить начальную информацию о целях и выявить потенциальные точки входа.
  • Управление уязвимостями: Результаты сканирования служат основой для приоритизации и устранения уязвимостей в рамках процесса управления уязвимостями.

Ограничения и риски

Несмотря на свою важность, сканирование уязвимостей имеет ряд ограничений:

  • Ложные срабатывания: Сканеры могут ошибочно идентифицировать уязвимость там, где её нет, что приводит к неоправданным затратам ресурсов на проверку.
  • Ложноотрицательные результаты: Сканер может не обнаружить реальную уязвимость, особенно если она является сложной, требует специфических условий или не описана в базе данных сканера.
  • Нагрузка на целевую систему: Глубокое сканирование может создавать значительную нагрузку на сеть и серверы, что может привести к снижению производительности или даже отказу в обслуживании (DoS). Это особенно критично для продуктивных систем.
  • Необходимость ручной верификации: Сканеры не могут полностью заменить эксперта по безопасности. Для подтверждения критических уязвимостей и оценки их эксплуатабельности часто требуется ручная проверка.
  • Правовые и этические аспекты: Проведение сканирования без разрешения владельца системы может быть расценено как несанкционированное вторжение и преследоваться по закону (например, по статье 272 УК РФ «Неправомерный доступ к компьютерной информации»).

Интересные факты

  • Первые коммерческие сканеры уязвимостей появились в середине 1990-х годов. Одним из пионеров был инструмент ISS (Internet Security Scanner), разработанный Кристофером Клаусом.
  • База данных уязвимостей CVE (Common Vulnerabilities and Exposures) является основным словарём для идентификации уязвимостей. Сканеры, как правило, ссылаются на CVE-идентификаторы в своих отчётах.
  • В России действуют собственные базы данных уязвимостей, такие как БДУ ФСТЭК России (Банк данных угроз безопасности информации), который содержит сведения об уязвимостях, актуальных для российских информационных систем.

Источники

  • Федеральный закон от 27.07.2006 № 152-ФЗ «О персональных данных».
  • Приказ ФСТЭК России от 18.02.2013 № 21 «Об утверждении Состава и содержания организационных и технических мер по обеспечению безопасности персональных данных при их обработке в информационных системах персональных данных».
  • Методика оценки угроз безопасности информации (ФСТЭК России).
  • Common Vulnerability Scoring System (CVSS) v3.1 Specification Document (FIRST.org).
  • OWASP Testing Guide (Open Web Application Security Project).
  • NIST Special Publication 800-115: Technical Guide to Information Security Testing and Assessment.
  • Tenable Nessus Documentation.
  • Greenbone Vulnerability Management (GVM) Documentation.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →