08. Сетевое сканирование и разведка
Введение
Для защиты компьютерной сети необходимо понимать, какие устройства в ней находятся, какие сетевые службы работают, какие соединения разрешены и какие ресурсы доступны пользователям.
Однако эту же информацию может пытаться получить и злоумышленник.
Перед проведением многих атак злоумышленнику необходимо сначала изучить целевую инфраструктуру: - определить, какие устройства доступны; - узнать IP-адреса; - определить открытые сетевые порты; - выяснить, какие службы работают; - определить типы устройств; - найти потенциально уязвимые узлы; - понять структуру сети.
Процесс получения такой информации называется сетевой разведкой.
Одним из основных технических средств разведки является сетевое сканирование.
Для сетевого администратора понимание этих процессов важно по двум причинам: 1. необходимо знать, какую информацию потенциально может получить нарушитель; 2. необходимо уметь обнаруживать подозрительное сканирование собственной сети.
Что такое сетевая разведка
Сетевая разведка — это процесс получения информации о компьютерной сети, её устройствах, сервисах, структуре и особенностях работы.
Разведка может проводиться: - до непосредственной атаки; - во время подготовки атаки; - для поиска уязвимых ресурсов; - для определения структуры сети.
Важно понимать, что разведка не всегда является атакой.
Например, системный администратор может самостоятельно исследовать свою сеть, чтобы: - составить инвентаризацию устройств; - проверить настройки; - обнаружить неизвестные компьютеры; - проверить открытые сервисы; - найти ошибки конфигурации.
В таком случае разведка является частью законного администрирования и аудита безопасности.
Что такое сетевое сканирование
Сетевое сканирование — это процесс автоматизированной или ручной проверки сетевых адресов, портов и сервисов с целью определения доступных сетевых узлов и их характеристик.
Упрощённо:
Сканирующий компьютер
↓
Отправка сетевых запросов
↓
Устройства сети
↓
Ответы
↓
Анализ результатов
↓
Информация о сети
Например, в результате сканирования можно установить, что в определённом диапазоне адресов находятся:
192.168.1.10 — рабочая станция
192.168.1.20 — сервер
192.168.1.30 — принтер
192.168.1.40 — маршрутизатор
При этом сканирование может продолжаться на следующем уровне — исследовании доступных портов и сервисов.
Разведка и сканирование — в чём разница
Эти понятия связаны, но не полностью совпадают.
| Понятие | Смысл |
|---|---|
| Разведка | Более широкое получение информации о целевой системе |
| Сканирование | Техническая проверка адресов, портов, сервисов и других параметров |
Можно представить это следующим образом:
Сетевая разведка
↓
┌─────┼─────────┐
↓ ↓ ↓
Адреса Порты Сервисы
↓ ↓ ↓
Устройства Доступность
Сканирование является одним из инструментов сетевой разведки.
Пассивная и активная разведка
Разведку можно условно разделить на пассивную и активную.
Пассивная разведка
При пассивной разведке информация собирается без непосредственного взаимодействия с исследуемой системой или с минимальным взаимодействием.
Например, могут анализироваться: - уже имеющиеся журналы; - открытая документация; - информация об инфраструктуре; - сетевой трафик, доступный для наблюдения; - сведения из публичных источников.
Основное преимущество — такая деятельность может быть менее заметной для объекта исследования.
Активная разведка
При активной разведке исследователь непосредственно взаимодействует с сетевыми устройствами.
Например:
Исследователь
↓
Сетевой запрос
↓
Устройство
↓
Ответ
↓
Анализ
К активной разведке относятся различные виды сетевого сканирования.
Активная разведка может фиксироваться средствами мониторинга и журналирования.
Зачем проводится сетевое сканирование
Сканирование может использоваться как для защиты, так и для подготовки атаки.
Законные задачи администратора:
- инвентаризация оборудования;
- поиск неизвестных устройств;
- проверка открытых портов;
- контроль сетевой конфигурации;
- поиск ненужных сервисов;
- проверка сегментации;
- аудит безопасности.
Возможные цели нарушителя:
- поиск доступных устройств;
- поиск серверов;
- определение сетевых сервисов;
- поиск потенциально уязвимых систем;
- определение структуры сети;
- подготовка последующих действий.
Один и тот же технический инструмент может использоваться как администратором, так и злоумышленником.
Какие сведения можно получить при разведке
В результате разведки можно получить различные сведения.
Например:
Информация об устройствах
- IP-адрес;
- MAC-адрес;
- предполагаемый тип устройства;
- доступность устройства.
Информация о портах
- какие порты доступны;
- какие порты закрыты;
- какие порты фильтруются.
Информация о сервисах
- какие сетевые службы работают;
- какие протоколы используются;
- иногда — версия программного обеспечения.
Информация о сети
- используемые адресные диапазоны;
- сегментация;
- наличие маршрутизаторов;
- наличие серверов;
- доступность отдельных подсетей.
IP-адреса и обнаружение устройств
Первым этапом технического исследования часто является определение доступных сетевых узлов.
Например, имеется сеть:
192.168.10.0/24
В ней потенциально могут находиться различные устройства:
192.168.10.1 — шлюз
192.168.10.10 — сервер
192.168.10.20 — ПК
192.168.10.21 — ПК
192.168.10.30 — принтер
Сканирование позволяет определить, какие адреса отвечают на сетевые запросы.
Однако отсутствие ответа не всегда означает отсутствие устройства.
Причины могут быть различными: - firewall; - фильтрация ICMP; - отключённый сервис; - особенности маршрутизации; - устройство настроено не отвечать на определённые запросы.
Поэтому результаты сканирования необходимо правильно интерпретировать.
Сканирование портов
После обнаружения устройства можно исследовать его сетевые порты.
Порт — логический идентификатор, используемый сетевыми приложениями для организации соединений.
Упрощённо можно представить устройство как компьютер с большим количеством возможных точек входа:
Сервер
│
┌───────────┼───────────┐
↓ ↓ ↓
Порт Порт Порт
22 80 443
↓ ↓ ↓
SSH HTTP HTTPS
Открытый порт обычно означает, что на нём доступен определённый сетевой сервис.
Например:
| Порт | Часто используемый сервис |
|---|---|
| 22 | SSH |
| 53 | DNS |
| 80 | HTTP |
| 443 | HTTPS |
| 3389 | RDP |
Наличие открытого порта само по себе не означает наличие уязвимости.
Важно понимать, какой сервис работает, зачем он нужен и насколько корректно он защищён.
Открытые, закрытые и фильтруемые порты
При проверке портов можно условно выделить несколько состояний.
Открытый порт
На порту доступен сетевой сервис и устройство принимает соответствующие соединения.
Запрос → Порт → Сервис → Ответ
Закрытый порт
Устройство доступно, но соответствующий сервис на данном порту не принимает соединения.
Запрос → Порт → Сервиса нет
Фильтруемый порт
Firewall или другое средство защиты препятствует определению состояния порта.
Запрос → Firewall → Ответ отсутствует / фильтруется
Для администратора фильтрация может быть полезной, поскольку уменьшает количество информации, доступной извне.
Определение сетевых сервисов
Само обнаружение открытого порта не всегда достаточно.
Необходимо понять, какой сервис работает на этом порту.
Например:
Порт 80
↓
HTTP
↓
Веб-сервер
Или:
Порт 22
↓
SSH
↓
Удалённое администрирование
Получение информации о сервисах помогает определить назначение устройства и потенциальные риски.
Определение операционной системы и типа устройства
Некоторые средства сетевого анализа способны приблизительно определить: - операционную систему; - тип устройства; - сетевое оборудование; - сервер; - рабочую станцию.
Например:
IP: 192.168.10.20
↓
Предположительно:
рабочая станция
↓
Доступны:
определённые сетевые сервисы
Такая информация может использоваться для инвентаризации.
Но результаты не всегда точны.
Определение операционной системы по сетевым признакам является предположением, а не гарантированным фактом.
Сканирование сетевых сервисов
Особое значение имеет поиск сервисов, которые: - не должны быть доступны; - были забыты администратором; - используются без необходимости; - работают с устаревшими настройками.
Например, сервер организации должен предоставлять только веб-сервис:
Сервер
↓
HTTPS — нужен
SSH — нужен администраторам
Другие сервисы — не нужны
Если дополнительно доступны ненужные сервисы, они увеличивают поверхность атаки.
Поверхность атаки
Поверхность атаки — совокупность доступных точек, через которые потенциально может быть оказано воздействие на информационную систему.
Для сетевого устройства поверхность атаки может включать: - открытые порты; - сетевые сервисы; - интерфейсы управления; - удалённый доступ; - административные протоколы.
Упрощённо:
Чем больше доступных сервисов
↓
тем больше точек
↓
тем больше поверхность атаки
Это не означает, что каждый открытый сервис опасен.
Но каждый ненужный доступный сервис следует рассматривать как дополнительный элемент, требующий защиты.
Сканирование портов и безопасность
Представим сервер:
Сервер
├── 22 SSH
├── 80 HTTP
├── 443 HTTPS
├── 3306 База данных
└── другие сервисы
Если база данных не должна быть доступна из пользовательской сети, прямой доступ к ней необходимо ограничить.
Например:
Пользовательская сеть
↓
ACL
↓
┌────┴────┐
↓ ↓
HTTPS Запрещено
↓
База данных
Таким образом, сканирование позволяет администратору обнаружить неправильную архитектуру или чрезмерно широкий доступ.
Сканирование из разных сегментов
Очень важный момент — результат сканирования зависит от того, откуда оно выполняется.
Например:
Интернет
↓
Firewall
↓
DMZ
↓
Внутренняя сеть
Снаружи могут быть доступны только:
HTTPS
А из внутренней сети:
HTTPS
SSH
DNS
SMB
и другие сервисы
Поэтому проверять безопасность следует с учётом различных сетевых сегментов.
Сетевая разведка и сегментация
Сегментация сети ограничивает область, в которой устройства могут взаимодействовать друг с другом.
Например:
VLAN 10 — пользователи
│
↓
ACL
│
↓
VLAN 20 — серверы
Если между сегментами разрешены только необходимые соединения, разведка становится менее информативной.
Например, рабочая станция пользователя не должна иметь возможность свободно исследовать все административные и серверные ресурсы.
ARP и локальная сеть
В локальной сети важную роль играет протокол ARP, который позволяет сопоставлять IPv4-адреса с MAC-адресами.
Например:
IP-адрес
192.168.10.20
↓
ARP
↓
MAC-адрес устройства
Информация об ARP может помогать администратору анализировать устройства, находящиеся в локальном сегменте.
При этом ARP связан не только с разведкой.
В дальнейшем при изучении сетевых атак мы рассмотрим, как особенности ARP могут использоваться при ARP-spoofing.
DNS как источник информации
DNS также может предоставлять важную информацию об инфраструктуре.
Например, в организации могут существовать имена:
server.example.local
mail.example.local
www.example.local
vpn.example.local
По именам можно получить представление о назначении некоторых устройств.
Поэтому администратору важно контролировать: - какие DNS-записи существуют; - кто имеет доступ к внутреннему DNS; - какие сведения публикуются наружу.
Разведка с использованием открытой информации
Не вся разведка выполняется непосредственно против сетевого оборудования.
Часть информации может быть получена из открытых источников.
Например: - официальные сайты; - документация; - публичные DNS-записи; - сведения о доменах; - опубликованные адреса сервисов; - техническая документация; - сообщения сотрудников.
Такой подход называют OSINT — Open Source Intelligence, то есть разведкой по открытым источникам.
Для организации это означает, что необходимо контролировать не только настройки оборудования, но и то, какая техническая информация публикуется в открытом доступе.
Автоматизация сетевого сканирования
Ручная проверка каждого устройства занимает много времени.
Поэтому администраторы используют специализированные инструменты, которые позволяют автоматизировать: - обнаружение узлов; - проверку портов; - определение сервисов; - инвентаризацию; - контроль изменений.
Одним из широко известных инструментов является Nmap.
Его можно использовать для законного аудита собственной инфраструктуры.
Общий принцип работы:
Диапазон адресов
↓
Сканирование
↓
Обнаруженные устройства
↓
Открытые порты
↓
Сетевые сервисы
↓
Отчёт
При этом любые проверки должны выполняться только в сетях и системах, на исследование которых есть соответствующее разрешение.
Почему сканирование может быть заметно
Активное сканирование создаёт сетевой трафик.
Например:
Сканирующий компьютер
↓
Множество запросов
↓
Firewall / IDS / сервер
↓
Журналы
В логах могут появляться: - большое количество соединений; - обращения к множеству портов; - обращения к множеству IP-адресов; - последовательные попытки соединения; - необычная частота запросов.
Это может быть признаком разведывательной активности.
Признаки сетевого сканирования
Сетевой администратор может обратить внимание на следующие признаки:
1. Много соединений за короткое время
Один источник обращается к большому количеству узлов.
2. Последовательная проверка портов
Например, один компьютер последовательно обращается к большому количеству портов другого устройства.
3. Обращение к множеству IP-адресов
Источник последовательно проверяет разные адреса сети.
4. Необычный источник
Сканирование выполняется компьютером, который обычно не выполняет подобных задач.
5. Попытки обращения к неиспользуемым сервисам
Источник проверяет большое количество портов, включая те, которые в обычной работе не используются.
Как защититься от нежелательного сканирования
Полностью скрыть существование сети невозможно.
Однако можно уменьшить количество информации, доступной потенциальному нарушителю.
Основные меры: - firewall; - ACL; - сегментация сети; - отключение ненужных сервисов; - ограничение удалённого доступа; - закрытие административных интерфейсов от лишних сетей; - мониторинг; - журналирование; - IDS/IPS; - регулярный аудит.
Принцип минимально необходимого доступа
Важный принцип безопасности:
Устройство и пользователь должны иметь доступ только к тем ресурсам, которые действительно необходимы для работы.
Например, если пользовательскому ПК нужен только веб-доступ к серверу:
ПК пользователя
↓
HTTPS
↓
Веб-сервер
Необязательно разрешать ему:
SSH
SMB
RDP
административные интерфейсы
и другие сервисы
Чем меньше ненужных соединений разрешено, тем меньше информации и возможностей получает потенциальный нарушитель.
Разведка как часть цепочки атаки
Сетевая разведка часто является одним из первых этапов подготовки атаки.
Упрощённая цепочка:
Разведка
↓
Обнаружение устройств
↓
Определение сервисов
↓
Поиск потенциальных слабых мест
↓
Получение доступа
↓
Развитие атаки
↓
Достижение цели
Однако необходимо помнить: разведка сама по себе ещё не означает успешного проникновения в систему.
Она лишь позволяет получить информацию, которая может быть использована на следующих этапах.
Пример сетевой инфраструктуры
Представим небольшую организацию:
Интернет
↓
Firewall
↓
Маршрутизатор
↓
┌─────┴─────┐
↓ ↓
VLAN 10 VLAN 20
Пользователи Серверы
↓ ↓
ПК 1 Web-сервер
ПК 2 Файловый сервер
ПК 3 DNS
Администратор проводит аудит.
Он обнаруживает, что из VLAN пользователей доступны:
Web-сервер → разрешён
DNS → разрешён
Файловый сервер → разрешён
Административный интерфейс → тоже доступен
Последний пункт может быть проблемой.
Если пользовательскому сегменту не нужен административный доступ, его следует ограничить.
Например:
VLAN 10
↓
ACL
├── Web → Разрешить
├── DNS → Разрешить
├── Файловый сервер → по необходимости
└── Управление → Запретить
Таким образом, сетевое сканирование помогает обнаружить не только технические проблемы, но и ошибки архитектуры доступа.
Сканирование как инструмент администратора
Сетевое сканирование полезно не только для поиска уязвимостей.
Администратор может использовать его для:
Инвентаризации
Определить, какие устройства реально присутствуют в сети.
Контроля изменений
Сравнить текущее состояние сети с предыдущим.
Поиска неизвестных устройств
Например, обнаружить компьютер, который появился в сети без согласования.
Проверки firewall
Убедиться, что наружу доступны только необходимые сервисы.
Проверки сегментации
Проверить, действительно ли пользователи не имеют доступа к административным ресурсам.
Аудита
Регулярно проверять состояние инфраструктуры.
Почему результаты сканирования необходимо анализировать
Получить список открытых портов недостаточно.
Например:
Сканирование:
22 — открыт
80 — открыт
443 — открыт
Сам по себе этот результат ничего не говорит о наличии уязвимости.
Необходимо задать вопросы: - Действительно ли нужен SSH? - Кто должен иметь к нему доступ? - Используется ли безопасная настройка? - Нужен ли HTTP? - Почему открыт HTTPS? - Какие пользователи могут подключаться? - Есть ли ограничения по IP-адресам?
Таким образом:
Сканирование
↓
Получение информации
↓
Анализ
↓
Определение риска
↓
Исправление конфигурации
Отличие сканирования от поиска уязвимостей
Эти процессы часто путают.
Сканирование отвечает на вопрос:
Что доступно?
Например:
IP → 192.168.10.20
Порт → 443
Сервис → HTTPS
Поиск уязвимостей отвечает на другой вопрос:
Есть ли известная или потенциальная проблема в доступном сервисе?
Таким образом:
Сканирование
↓
Что доступно?
↓
Сервис
↓
Анализ безопасности
↓
Есть ли проблема?
Сканирование является одним из первых этапов технического аудита.
Как уменьшить объём информации, доступной нарушителю
Основные рекомендации:
Отключать ненужные сервисы
Если сервис не используется, его не следует оставлять доступным без необходимости.
Ограничивать административный доступ
Административные интерфейсы должны быть доступны только доверенным сегментам.
Использовать ACL и firewall
Они позволяют контролировать направления сетевых соединений.
Разделять сеть
Серверы, пользователи и административные устройства желательно размещать в отдельных сегментах.
Контролировать публикацию информации
Не следует без необходимости публиковать сведения о внутренней инфраструктуре.
Вести мониторинг
Необходимо отслеживать необычную сетевую активность.
Роль IDS и IPS
Для обнаружения подозрительной сетевой активности могут использоваться системы:
IDS (Intrusion Detection System) — система обнаружения вторжений.
Она анализирует активность и сообщает о подозрительных событиях.
IPS (Intrusion Prevention System) — система предотвращения вторжений.
Она не только обнаруживает подозрительную активность, но и может автоматически блокировать определённые действия.
Упрощённо:
Трафик
↓
IDS / IPS
↓
Анализ
↓
┌───────────────┐
│ Нормальный │ → Разрешить
│ трафик │
└───────────────┘
Подозрительная активность
↓
Сигнал / блокировка
Такие средства могут обнаруживать признаки сканирования.
Сетевая разведка и журналирование
Журналы позволяют восстановить последовательность событий.
Например:
12:01 — источник обратился к узлу №1
12:01 — источник обратился к узлу №2
12:01 — источник обратился к узлу №3
12:02 — источник проверил несколько портов
12:02 — зафиксированы многочисленные соединения
Такая последовательность может указывать на разведывательную активность.
Поэтому важно не только собирать логи, но и анализировать их.
Что делать при обнаружении сканирования
Сам факт сканирования ещё не означает, что необходимо немедленно блокировать любой источник.
Сначала необходимо определить: 1. откуда идёт сканирование; 2. является ли источник доверенным; 3. относится ли активность к плановой проверке; 4. какие устройства исследуются; 5. какие порты проверяются; 6. повторяется ли активность; 7. есть ли другие подозрительные события.
Например:
Обнаружено сканирование
↓
Проверка источника
↓
Администратор?
├── Да → Плановая проверка
│
└── Нет
↓
Анализ активности
↓
При необходимости:
блокировка / расследование
Это позволяет избежать ложных срабатываний.
Основные риски сетевой разведки
Само по себе сканирование не обязательно наносит ущерб системе.
Основная опасность заключается в том, что полученная информация может использоваться для дальнейших действий.
Например:
Сканирование
↓
Обнаружен сервер
↓
Определён сервис
↓
Определена структура сети
↓
Найден потенциально слабый узел
↓
Подготовка дальнейших действий
Поэтому сетевую разведку необходимо рассматривать как важную составляющую угрозы, особенно если она проводится неизвестным источником.
Сетевая разведка в рамках модели угроз
Рассмотрим общую модель:
Нарушитель
↓
Сетевая разведка
↓
Получение информации
↓
Анализ инфраструктуры
↓
Выбор потенциальной цели
↓
Попытка получения доступа
При этом защита должна действовать на разных этапах:
Firewall
↓
ACL
↓
Сегментация
↓
Защита сервисов
↓
IDS / IPS
↓
Мониторинг
↓
Реагирование
Практическое значение для сетевого администратора
Сетевой администратор должен регулярно задавать себе вопросы: - Какие устройства находятся в моей сети? - Какие сервисы работают? - Какие порты доступны? - Кто имеет к ним доступ? - Должны ли эти сервисы быть доступны? - Можно ли получить доступ к серверной сети из пользовательской? - Доступны ли административные интерфейсы? - Есть ли неизвестные устройства? - Фиксируется ли подозрительное сканирование? - Что произойдёт при компрометации одного компьютера?
Ответы на эти вопросы позволяют своевременно обнаружить ошибки конфигурации.
Основные понятия лекции
| Понятие | Определение |
|---|---|
| Сетевая разведка | Получение информации о сети, устройствах и сервисах |
| Сетевое сканирование | Проверка адресов, портов и сетевых параметров |
| Активная разведка | Разведка с непосредственным взаимодействием с системой |
| Пассивная разведка | Получение информации без активного воздействия на исследуемую систему |
| Порт | Логическая точка сетевого взаимодействия |
| Сетевой сервис | Программа или функция, предоставляющая сетевые возможности |
| Поверхность атаки | Совокупность потенциально доступных точек воздействия |
| IDS | Система обнаружения вторжений |
| IPS | Система предотвращения вторжений |
| OSINT | Получение и анализ информации из открытых источников |
Заключение
Сетевая разведка и сканирование являются важной частью современной информационной безопасности.
С одной стороны, они могут использоваться нарушителями для изучения инфраструктуры и подготовки последующих действий.
С другой стороны, те же методы необходимы администраторам для контроля собственной сети.
Администратор должен знать: - какие устройства находятся в сети; - какие сервисы работают; - какие порты доступны; - какие соединения разрешены; - какие сегменты могут взаимодействовать; - какие административные интерфейсы доступны; - какие изменения происходят в инфраструктуре.
Главная задача заключается не в том, чтобы сделать сеть полностью «невидимой».
Гораздо важнее контролировать доступную информацию и минимизировать количество ненужных сетевых возможностей.
Общая логика защиты выглядит следующим образом:
Инвентаризация
↓
Сканирование
↓
Анализ доступных сервисов
↓
Выявление лишнего доступа
↓
ACL / Firewall / Сегментация
↓
Мониторинг
↓
Обнаружение подозрительной активности
↓
Реагирование
Таким образом, сетевое сканирование является не только потенциальным инструментом злоумышленника, но и важным инструментом самого сетевого администратора.
Контрольные вопросы
- Что такое сетевая разведка?
- Что понимается под сетевым сканированием?
- Чем сетевая разведка отличается от сетевого сканирования?
- В чём различие между активной и пассивной разведкой?
- Какие сведения об инфраструктуре можно получить в результате сетевого сканирования?
- Что такое сетевой порт и какую информацию может дать его проверка?
- Чем отличаются открытый, закрытый и фильтруемый порт?
- Почему наличие открытого порта само по себе не означает наличие уязвимости?
- Что такое поверхность атаки и как количество доступных сервисов влияет на неё?
- Для каких законных задач сетевой администратор может использовать сетевое сканирование?
- Почему результаты сканирования из разных сетевых сегментов могут отличаться?
- Какие признаки могут указывать на проведение сетевого сканирования?
- Как сегментация сети, ACL и firewall помогают ограничить последствия сетевой разведки?
- В чём разница между сканированием и поиском уязвимостей?
- Почему сетевую разведку необходимо учитывать при проектировании и защите компьютерной сети?