July 9, 2023

Введение в сканирование сетевых уязвимостей.

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

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

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

В этой главе мы рассмотрим следующее:

  • Базовые сети и их компоненты
  • Сканирование сетевых уязвимостей
  • Последовательность процедур, используемых при сканировании сетевых уязвимостей
  • Использование сканирования сетевых уязвимостей
  • Сложность выполнения сканирования сети
  • Как разработать план смягчения последствий и реагировать

Базовые сети и их компоненты

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

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

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

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

Сканирование уязвимостей имеет свои побочные эффекты в сетях, такие как увеличение задержки в сети, вызванное увеличением трафика, неотвечающие сетевые ресурсы и перезагрузка устройств и серверов. Таким образом, все внутренние проверки сети в организации должны выполняться с максимальной осторожностью и должным образом согласованы. Как правило, существует два типа методов сканирования, которые можно использовать: с проверкой подлинности и без проверки подлинности. Мы увидим рецепты для этих типов сканирования в Главе 4, Сканирование уязвимостей, и Главе 5, Аудит конфигурации.

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

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

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

Поток процедур

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

  • Обнаружение
  • Сканирование портов
  • Сканирование уязвимостей

Обнаружение

Обнаружение, также известное как обнаружение хостов, представляет собой процесс перечисления активных хостов и является очень важным компонентом этапа разведки деятельности по тестированию безопасности. Это поможет вам исключить нежелательные хосты из списка целей, что позволит вам использовать эти перечисленные хосты для выполнения целевых сканирований и тестов на проникновение. Некоторыми из инструментов, которые можно использовать для обнаружения сети, являются Nmap, Nessus, OpenVas и Wireshark.

На следующем снимке экрана показан пример хоста, отсканированного с помощью Nmap for Discovery. Это показывает, что хост работает, поэтому мы можем определить, что хост работает:

Эти инструменты пригодятся, если проверка связи по сети отключена. Я всегда предпочитаю использовать Nmap другим инструментам из-за его простоты использования и механизма сценариев Nmap (NSE), который позволяет пользователю писать и реализовывать собственные сценарии. Мы будем обсуждать NSE в следующих главах.

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

Сканирование портов

На этом этапе мы выполним обнаружение портов, открытых для определенного хоста, на основе связи между хостом на этом порту и вашей машиной. Этот метод помогает определить, открыт или закрыт конкретный порт. Этот метод отличается от протокола к протоколу. Например, для TCP связь и шаблон для заключения порта об открытии отличаются по сравнению с UDP. Некоторыми из инструментов, которые можно использовать для сканирования портов, являются Nmap, Nessus, OpenVas и Wireshark.

На следующем снимке экрана показан пример хоста, отсканированного с помощью Nmap для порта 80. На снимке экрана показано, что хост работает, а порт 80 открыт, поэтому мы можем определить, что хост находится в рабочем состоянии. Эти инструменты пригодятся, если пинг по сети отключен:

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

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

Как только открытые порты обнаружены на активных хостах, мы можем выполнить сканирование уязвимостей. Сканирование уязвимостей обнаруживает и идентифицирует известные проблемы с программным обеспечением и инструментами, установленными на хосте, такие как используемая более старая версия программного обеспечения, включенные уязвимые протоколы и пароли по умолчанию. Это действие сложно выполнить вручную; следовательно, этот этап необходимо выполнять с использованием автоматизированных инструментов, которые идентифицируют открытые порты и пробуют различные эксплойты на портах, чтобы определить, уязвим ли конкретный процесс / программное обеспечение, использующее порт, для эксплойта на основе процесса. Некоторыми из инструментов, используемых для сканирования уязвимостей, являются Nessus, OpenVas и Qualys.

На следующем снимке экрана показан пример хоста, просканированного на наличие уязвимостей с помощью OpenVas. Вы можете видеть, что вывод показывает список уязвимостей, которым подвержен хост:

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

Использование

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

  • Нежелательные порты открыты и запущены службы
  • Информация об учетной записи пользователя и пароле по умолчанию
  • Отсутствующие исправления, updates, и upgrades
  • Установлена ​​уязвимая версия ПО
  • Используемые уязвимые протоколы
  • Используемые уязвимые алгоритмы
  • Информация об использовании всех предыдущих уязвимостей

Сканирование сетевых уязвимостей позволяет идентифицировать ненужные открытые порты и службы, работающие на этих портах. Например, приложение/веб-сервер в демилитаризованной зоне не требует, чтобы TCP-порт 22 был открыт и открыт для доступа в Интернет. Эти нежелательные порты делают хост/устройство уязвимыми для атак. Большинство сканеров при идентификации интерфейса входа в любую из размещенных служб пытаются войти в систему, используя уже существующую базу данных имен пользователей и паролей, и предоставляют отчет обо всех именах пользователей и паролях по умолчанию, использование которых может скомпрометировать службу.

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

Сканирование сетевых уязвимостей также выделяет различные уязвимые протоколы, используемые в сети или на узлах. Например, если на сервере запущен общий ресурс SMB, поддерживающий протокол SMBv1, он будет выделен как уязвимость с рейтингом риска выше среднего, поскольку SMBv1 уязвим для различных известных вредоносных атак. Кроме того, сканирование выявляет уязвимые шифры и методы аутентификации, используемые работающими службами, которые подвержены известным атакам типа «человек посередине». Например, если веб-сервер использует базовую аутентификацию по протоколу HTTP, он уязвим для раскрытия учетных данных пользователя, когда в сети выполняется атака «человек посередине».

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

На следующем снимке экрана приведены ссылки на документы, в которых содержится информация об уязвимости, обнаруженной сканером:

Наряду с предыдущими техническими вариантами использования сетевая уязвимость также имеет различные применения с точки зрения организации, например следующие:

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

Сложность

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

Если мы хотим выполнить сканирование на основе IP для любого из сетевых компонентов, мы должны быть уверены, что все сгенерированные пакеты данных достигают пункта назначения в целости и сохранности и не подвергаются влиянию каких-либо промежуточных устройств или решений. Например, если Алиса сканирует компьютер Боба по сети, и оба они разделены брандмауэром, где подсеть Боба настроена на режим блокировки проверки связи WAN, в рамках которого пакеты проверки связи будут идентифицированы и отброшены на уровне брандмауэра. , обнаружение компьютеров Алисой компьютера Боба приведет к ложному срабатыванию, что компьютер не работает.

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

  • Объем сканирования
  • Сетевая архитектура
  • Доступ к сети

Объем сканирования

Если нам требуется выполнить оценку уязвимости для инфраструктуры конкретного приложения, очень важно определить источники передачи данных и компоненты, участвующие в сквозном обмене данными. Это позволит тестировщику на проникновение выполнить сканирование уязвимостей в этой области и выявить уязвимости, характерные для этого приложения. Вместо этого, если мы решим сканировать подсети или более широкий диапазон IP-адресов, мы можем в конечном итоге выделить ненужные уязвимости, что в большинстве случаев приводит к путанице на этапе исправления. Например, если мы хотим провести аудит веб-приложения, мы можем включить веб-приложение, сервер приложений, веб-сервер и сервер базы данных как часть области аудита.

Сетевая архитектура

Всегда важно понимать размещение IP-адреса или компонента, на котором мы выполняем сканирование уязвимостей. Это поможет нам настроить наш подход и уменьшить количество ложных срабатываний. Например, если Алиса пытается сканировать веб-приложение, размещенное за брандмауэром веб-приложений, ей необходимо настроить полезные нагрузки или сценарии, используемые для выявления уязвимостей, используя такие методы, как кодирование, чтобы гарантировать, что полезные нагрузки не блокируются веб-приложением. брандмауэр.

Доступ к сети

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

Ответ

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

  • Закройте нежелательные порты и отключите нежелательные службы
  • Используйте надежные и необычные пароли
  • Всегда применяйте последние исправления и обновления
  • Удалите или обновите старые версии программного обеспечения
  • Отключить устаревшие и старые используемые протоколы
  • Используйте надежные алгоритмы и механизм аутентификации

По результатам необходимо составить отчет и поставить задачи соответствующим отделам. Например, все уязвимости, связанные с Windows, должны устраняться соответствующей командой, отвечающей за обслуживание машин Windows. После распределения обязанностей между командами ожидается, что команды проведут анализ воздействия и осуществимости решения, представленного в отчете. Команды должны проверить решения на соответствие целям безопасности, конфиденциальности, целостности и доступности. Эти меры можно использовать в качестве основы для создания документов по усилению безопасности, включая любые другие доступные базовые версии в общедоступных или частных доменах.

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

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

  1. Оценка уязвимости
  2. Анализ смягчения последствий
  3. Исправление, обновление и смягчение последствий

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

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

Краткое содержание

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