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