Введение в сканирование сетевых уязвимостей.
В наше время, когда хакеры преобладают и в различных продуктах ежедневно обнаруживаются критические уязвимости, корпоративные сети должны создавать процедуры для выявления, анализа и устранения уязвимостей в режиме реального времени. В этой кулинарной книге мы рассмотрим различные процедуры и инструменты, необходимые для выполнения сканирования сетевой безопасности, а также для понимания полученных результатов и принятия соответствующих мер.
Эта кулинарная книга предоставит любому читателю базовые знания о компьютерных сетях рецепты для подготовки, планирования и выполнения сканирования уязвимостей сети и определения целей для теста на проникновение или просто для понимания состояния безопасности сети. Это поможет начинающим тестерам на проникновение освоить и научиться готовить свои методы для выполнения предварительных действий по выявлению уязвимостей.
Эта глава познакомит вас с основами компьютерных сетей. В нем также рассматриваются процедуры, способы использования и различные сложности, которые необходимо учитывать при выполнении сканирования сетевых уязвимостей. Эта глава предоставит вам базовые знания о том, как планировать сканирование сетевых уязвимостей.
В этой главе мы рассмотрим следующее:
- Базовые сети и их компоненты
- Сканирование сетевых уязвимостей
- Последовательность процедур, используемых при сканировании сетевых уязвимостей
- Использование сканирования сетевых уязвимостей
- Сложность выполнения сканирования сети
- Как разработать план смягчения последствий и реагировать
Базовые сети и их компоненты
Базовая корпоративная сеть обычно состоит из конечных точек, таких как настольные/ноутбуки, серверы, устройства безопасности, такие как брандмауэр, прокси-сервер, системы обнаружения и предотвращения вторжений, и сетевые устройства, такие как концентраторы, коммутаторы и маршрутизаторы. В большинстве случаев они приобретаются у разных поставщиков, поэтому они подвержены различным атакам и подвергают сеть большей поверхности атаки. Эти компоненты могут быть атакованы хакером с использованием общедоступных эксплойтов или уязвимости нулевого дня для получения доступа к устройству/машине с возможностью получения доступа к другому устройству/машине в сети или всей сети. Обратите внимание на следующую диаграмму, иллюстрирующую это:
Сканирование сетевых уязвимостей
Уязвимость — это слабое место в системе или устройстве, которое может быть атаковано. Сканирование сетевых уязвимостей — это процесс выявления и обнаружения уязвимостей в сетевых компонентах, таких как клиенты, серверы, сетевые устройства и конечные точки, с использованием различных автоматизированных или ручных инструментов и методов. В целом его можно разделить на два типа: сканирование уязвимостей внутренней сети и сканирование уязвимостей внешней сети.
Внутреннее и внешнее сканирование уязвимостей используют схожий процесс, но различаются сетевым размещением сканирующего устройства или системы. Внешнее сканирование уязвимостей предназначено для выявления лазеек с точки зрения злоумышленника, находящегося через Интернет и нацеленного на сеть через общедоступные 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. Этот цикл, если выполнять его ежеквартально, может обеспечить максимальную защиту вашей сети.
Всегда следите за тем, чтобы решения были реализованы в тестовой среде для любого влияния на непрерывность приложений, размещенных в сети; также ищите любые зависимости, чтобы убедиться, что функциональность сети не затронута.
Краткое содержание
В заключение, сканирование сетевых уязвимостей представляет собой трехэтапный процесс, включающий обнаружение, сканирование портов и сканирование уязвимостей. Это, если все сделано правильно, поможет организации определить свое текущее состояние безопасности и создать действенные решения для улучшения этого состояния. В этой главе мы рассмотрели шаги по планированию сканирования сетевых уязвимостей и различные связанные с этим факторы. В следующих главах мы рассмотрим учебные пособия о том, как выполнить это сканирование уязвимостей сети, чтобы выявить уязвимости и принять меры по их устранению.