- •ВВЕДЕНИЕ
- •1. ОСНОВЫ ЗАХВАТА И АНАЛИЗА СЕТЕВОГО ТРАФИКА
- •1.1. Общие сведения о программе
- •1.2. Установка программы и подготовка к захвату
- •1.3. Пользовательский интерфейс программы
- •1.4. Фильтр отображения пакетов
- •1.8. Печать информации
- •1.9. Просмотр кадра в отдельном окне
- •1.10. Анализ протоколов Ethernet и ARP
- •1.5. Поиск кадров
- •1.6. Выделение ключевых кадров
- •1.7. Сохранение данных захвата
- •1.11. Анализ протоколов IP и ICMP
- •1.12. Анализ протокола TCP
- •2. ВЫЯВЛЕНИЕ СЕТЕВЫХ АТАК ПУТЕМ АНАЛИЗА ТРАФИКА
- •2.1. Этапы сетевой атаки
- •2.2. Исследование сетевой топологии
- •2.3. Обнаружение доступных сетевых служб
- •2.4. Выявление уязвимых мест атакуемой системы
- •2.5. Реализации атак
- •2.6. Выявление атаки на протокол SMB
- •3. ЗАЩИТА КОМПЬЮТЕРНОЙ СЕТИ С ИСПОЛЬЗОВАНИЕМ МЕЖСЕТЕВЫХ ЭКРАНОВ
- •3.1. Понятие межсетевого экрана
- •3.2. Компоненты межсетевого экрана
- •3.3. Политика межсетевого экранирования
- •3.4. Архитектура МЭ
- •3.5. Пример реализации политики МЭ
- •3.6. Сетевая среда лабораторной работы
- •3.7. Применение МЭ на основе двудомного узла
- •3.8. Применение МЭ на основе фильтрующего маршрутизатора
- •3.9. Применение МЭ на основе экранирующего узла
- •3.10. Применение технологии трансляции сетевых адресов
- •4. СИСТЕМЫ ОБНАРУЖЕНИЯ АТАК
- •4.1. Сигнатурный анализ и обнаружение аномалий
- •4.2. Обнаружение в реальном времени и отложенный анализ
- •4.3. Локальные и сетевые системы обнаружения атак
- •4.4. Распределенные системы обнаружения атак
- •4.5. Система обнаружения атак Snort
- •4.5.1. Общие сведения
- •4.5.2. Установка и запуск программы
- •4.5.3. Описание языка правил
- •4.5.4. Использование СОА Snort
- •4.5.5. Выявление факта сканирования портов
- •5. ОРГАНИЗАЦИЯ ВИРТУАЛЬНЫХ ЧАСТНЫХ СЕТЕЙ
- •5.1. Задачи, решаемые VPN
- •5.2. Туннелирование в VPN
- •5.3. Уровни защищенных каналов
- •5.4. Защита данных на канальном уровне
- •5.5. Организация VPN средствами протокола PPTP
- •5.5.1. Постановка задачи
- •5.5.2. Установка и настройка VPN
- •5.5.3. Анализ защищенности передаваемой информации
- •5.6. Защита данных на сетевом уровне
- •5.6.1. Протокол SKIP
- •5.6.2. Протокол IPSec
- •5.7. Организация VPN средствами СЗИ VipNet
- •5.7.1. Постановка задачи
- •5.7.2. Настройка сетевых соединений виртуальных машин
- •5.7.3. Установка СЗИ VipNet
- •5.7.4. Настройка СЗИ VipNet
- •5.8. Использование протокола IPSec для защиты сетей
- •5.8.1. Шифрование трафика с использованием протокола IPSec
- •5.8.2. Проверка защиты трафика
- •5.8.3. Настройка политики межсетевого экранирования с использованием протокола IPSec
- •5.9. Организация VPN средствами СЗИ StrongNet
- •5.9.1. Описание системы
- •5.9.2. Постановка задачи
- •5.9.3. Генерация и распространение ключевой информации
- •5.9.4. Настройка СЗИ StrongNet
- •5.9.5. Установка защищенного соединения
- •5.10. Защита на транспортном уровне
- •5.11. Организация VPN средствами протокола SSL в Windows Server 2003
- •5.11.1. Активизация IIS
- •5.11.3. Настройка SSL-соединения
- •5.12. Организация VPN прикладного уровня средствами протокола S/MIME и СКЗИ КриптоПро CSP
- •5.12.1. Организация почтового обмена
- •5.12.2. Активизация IIS
- •5.12.3. Установка СКЗИ КриптоПро CSP
- •5.12.4. Установка Центра сертификации в ОС Windows Server 2003
- •5.12.5. Получение сертификатов открытых ключей
- •5.12.6. Организация защищенного обмена электронной почтой
- •6. ПРИМЕНЕНИЕ ТЕХНОЛОГИИ ТЕРМИНАЛЬНОГО ДОСТУПА
- •6.1. Общие сведения о технологии терминального доступа
- •6.2. Обеспечение безопасности ОС Windows Server 2003
- •6.2.1. Ограничение возможности сетевого доступа
- •6.2.2. Ограничение возможности расширения полномочий при осуществлении локального доступа
- •6.3. Настройки сервера MSTS
- •6.4. Настройки протокола RDP
- •7. СЛУЖБЫ КАТАЛОГОВ
- •7.1. Общие сведения о службах каталогов
- •7.2. Структура каталога LDAP
- •7.2.1. Схема LDAP
- •7.2.2. Система имен LDAP
- •7.2.3. Инструментарий для работы с LDAP-каталогом
- •7.3.1. Общие сведения о протоколе Kerberos
- •7.3.3. Реализация Kerberos в ОС Windows Server 2003
- •7.3.4. Пример реализации системы SSO
- •7.4.1. Технология PAM
- •7.4.2. Технология NSS
- •8. АУДИТ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ КОМПЬЮТЕРНЫХ СИСТЕМ
- •8.1. Понятие аудита информационной безопасности
- •8.1.1. Активный аудит
- •8.1.2. Экспертный аудит
- •8.1.3. Аудит на соответствие стандартам ИБ
- •8.2. Методика проведения инструментальных проверок
- •8.3. Постановка задачи для проведения инструментальных проверок
- •8.4. Обнаружение сетевых узлов
- •8.5. Сканирование портов и идентификация ОС
- •8.6. Использование DNS для обнаружения и выяснения назначения сетевых узлов
- •8.7. Создание карт сети
- •8.8. Использование сканера безопасности Nessus
- •8.9. Анализ защищенности web-серверов
- •ПЕРЕЧЕНЬ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
82
Преимуществом использования распределенных систем является возможность собирать и анализировать значительно больший объем информации, что позволяет обнаруживать широкий спектр атак. В этом отношении наиболее эффективным является решение, объединяющее методологию локальных и сетевых СОА в единое целое. С другой стороны, распределенные системы обладают рядом недостатков, наиболее существенным из которых является меньшая защищенность их компонентов. Во-первых, сбор данных с нескольких узлов создает дополнительную нагрузку на сеть, которая, в случае полномасштабной атаки, может превысить ее пропускную способность. Вовторых, обмен информацией по сети подразумевает наличие открытых портов, потенциально доступных для атаки на отказ в обслуживании (переполнение очереди входящих TCP-соединений). В-третьих, на узлах информационной системы возможно внедрение вредоносного программного обеспечения, которое будет блокировать работу агента или пытаться подделывать информацию, им передаваемую.
Отдельной задачей, возникающей при проектировании распределенных СОА, является выбор идеологии процедуры принятия решения. Возможны несколько вариантов процедуры, отличающиеся степенью централизации. Наиболее простым является вариант процедуры с предельной степенью централизации, когда агенты занимаются лишь сбором данных и передачей их центральному узлу СОА — модулю принятия решения. Этот модуль анализирует поступающую информацию и выносит решение о факте атаки. Данный вариант характеризуется большим объемом передаваемых по сети данных, что повышает вероятность обнаружения факта работы СОА злоумышленником и делает систему уязвимой к атакам на отказ в обслуживании. Наиболее очевидным решением по использованию такого типа СОА является их установка в рамках подсетей небольшого размера, что позволит обойти проблему перегрузки сети пакетами, сгенерированными системой. Увеличение масштабов сети требует многоступенчатого подхода к принятию решения. Он заключается в том, что выделяются промежуточные модули принятия решения, которые собирают данные только с ограниченного числа «своих» агентов и передают на верхний уровень гораздо меньший объем информации, дополненный промежуточным решением. При любом варианте реализации процедуры принятия решения очевидно, что первоочередной становится задача обеспечения защищенности самой СОА.
4.5. Система обнаружения атак Snort
4.5.1. Общие сведения
Snort — это бесплатная система обнаружения атак с открытым исходным кодом, разработанная Мартином Рошем (Martin Roesch). Доступны версии программы, работающие под управлением операционных систем Win-
83
dows NT, Linux, BSD, Mac OS X, а также некоторых других. В соответствии с предложенной выше классификацией, Snort является сетевой СОА, основанной на сигнатурном анализе. Сигнатуры атак описываются при помощи правил — специальных синтаксических конструкций, позволяющих выявлять интересующую администратора информацию в полях заголовков и содержимом передаваемых по сети пакетов. Кроме того, в Snort реализовано несколько препроцессоров, выполняющих более сложные операции по анализу трафика, такие, например, как дефрагментация IP-пакетов, отслеживание TCPсоединений и выявление попыток сканирования портов.
4.5.2. Установка и запуск программы
Для обеспечения возможности перехвата сетевых пакетов программой Snort необходима предварительная установка и запуск службы WinPcap (WinPcap_3_1.exe).
Рис. 4.1. Служба WinPcap в перечне служб
Для установки СОА Snort версии 2.4.3 необходимо запустить файл «Snort_243_Installer.exe» и ответить на интересующие программу-инсталлятор вопросы. По умолчанию Snort устанавливается в каталог «С:\snort», а его исполняемый файл располагается в каталоге «С:\snort\bin». Запуск СОА Snort осуществляется из командной строки, в табл. 4.1 приведен неполный список параметров, с которыми может производиться запуск. Чтобы вывести этот список на экран во время работы, необходимо выполнить команду
snort -?
|
84 |
|
Таблица 4.1 |
|
Список параметров СОА Snort |
Параметр |
Описание |
|
|
-c |
Использовать файл правил <rules>. |
<rules> |
|
-E |
Добавлять предупреждения (alerts) в журнал регистрации со- |
|
бытий Windows NT (не создавая log-файла). |
-h <hn> |
Задать домашнюю сеть (home network) <hn>. |
-i <if> |
Подключиться к сетевому интерфейсу номер <if> (список ин- |
|
терфейсов можно получить при помощи команды snort -W). |
-I |
Добавлять к предупреждению наименование интерфейса. |
-K <mode> |
Режим регистрации предупреждений: pcap (по умолчанию) — |
|
в двоичном формате, ascii — в текстовом формате, none — |
|
без регистрации. |
-l <ld> |
Сохранять результаты регистрации в каталог <ld>. |
-L <file> |
Сохранять результаты регистрации в указанный файл формата |
|
tcpdump (будет располагаться в каталоге, предварительно ука- |
|
занном параметром -l). |
-n <cnt> |
Завершить работу программы после получения <cnt> паке- |
|
тов. |
-N |
Не сохранять в файлах регистрации содержимого пакетов (со- |
|
храняется лишь текст предупреждений). |
-p |
Анализировать только пакеты, отправленные на локальный ад- |
|
рес, и широковещательные пакеты. |
-r <tf> |
Прочитать и обработать файл <tf>, записанный в формате |
|
tcpdump. |
-S <n=v> |
Установить значение переменной n файла правил, равной v. |
-U |
Записывать временные метки в универсальном скоординиро- |
|
ванном времени (UTC). |
-v |
Отображать на экране заголовки всех перехваченных пакетов. |
-V |
Показать версию Snort. |
-W |
Показать доступные сетевые интерфейсы. |
-X |
Сохранять в файле журнала регистрации событий содержимое |
|
перехваченных пакетов в «сыром» виде, начиная с уровня link |
|
модели OSI. |
|
85 |
|
|
Параметр |
Описание |
|
|
-y |
Добавить месяц, день и год в отображаемые и сохраняемые |
|
временные отметки. |
-? |
Показать помощь по параметрам командной строки. |
Для проверки работоспособности СОА Snort рекомендуется выполнить следующие действия.
ВЫПОЛНИТЬ!
1.Установить СОА Snort.
2.Вывести на экран список доступных сетевых интерфейсов командой
snort –W
3.Запустить Snort на выбранном интерфейсе в режиме анализатора пакетов с выводом информации на экран, указав программе завершить работу после приема третьего пакета:
snort –v –i 1 –n 3
4.Выполнить любые действия, которые приведут к отправке или приему сетевых пакетов (например, отправить эхо-запрос на любой IP-адрес командой ping). Убедиться, что пакеты перехватываются и отображаются на экране.
4.5.3. Описание языка правил
Рассмотрим краткое описание языка правил, на котором задаются сигнатуры атак, обнаруживаемых СОА Snort. Полное описание языка правил со-
держится в файле документации «с:\snort\doc\snort_manual.pdf»
Правила записываются в одну строку, если возникает необходимость перенести текст правила на следующую строку, необходимо добавить в конце строки символ обратной косой черты «\».
Правила состоят из двух частей: заголовка и набора атрибутов. Заголовок, в свою очередь, состоит из:
1.Указания действия, которое необходимо выполнить (alert, log, pass и
др.).
2.Протокола (tcp, udp, icmp, ip).
3.IP-адреса и маски подсети источника и приемника информации, а также информации о портах источника и приемника.
Действие alert заключается в генерации предупреждающего события и сохранении содержимого пакета для дальнейшего анализа. Действие log предполагает сохранение пакета без генерации предупреждения. Действие
86
pass означает пропуск пакета (его игнорирование). Существует также ряд более сложных действий, которые здесь не рассматриваются.
Текст атрибутов располагается в скобках, каждая пара атрибут — значение имеет вид <атрибут>: <значение>;. Значения строковых атрибутов записываются в кавычках.
Рассмотрим пример простого правила (одна строка):
alert <протокол> <адрес_подсети1>[/маска_подсети1] <порт1> <направление> <адрес_подсети2>[/маска_подсети2] <порт2> ([msg:"Текст сообщения";] [другие_атрибуты])
где
−alert — действие, которое необходимо выполнить при обнаружении пакета, удовлетворяющего данному правилу, и которое заключается в генерации «предупреждения» — записи в журнале регистрации
−<протокол> — наименование протокола (tcp, udp, icmp, ip)
−<адрес_подсети>[/маска_подсети] — IP-адрес и маска подсети,
либо IP-адрес узла участника обмена в формате: 192.168.247.0/24, либо
192.168.247.1
−<порт> — номер порта либо диапазон портов в формате 1:1024 для обозначения диапазона портов от 1 до 1024, 1024: — с номерами больше или равными 1024, или :1024 — меньше или равными 1024 соответственно
−<направление> — обозначение направления в виде ->, <- или <>
Вместо IP-адресов и номеров портов могут использоваться псевдонимы any, являющиеся заменителем любого значения.
Атрибуты являются наиболее значимой частью правил, так как позволяют искать интересующую информацию в полях заголовков и содержимом пакетов. Существует четыре категории атрибутов:
−meta-data — предоставляют информацию о правиле, но не влияют на процесс обнаружения;
−payload — атрибуты данного типа предназначены для поиска информации в «полезной нагрузке» (содержимом) пакета;
−non-payload — предназначены для поиска информации в заголовках паке-
тов;
−post-detection — определяют поведение системы после обнаружения пакета, удовлетворяющего правилу.
Втабл. 4.2 приведен неполный список атрибутов, которые могут быть использованы при написании правил.
Если известно местонахождение интересующей информации в пакете, то целесообразно ограничить область поиска при помощи модификаторов
offset и depth, так как это существенно сократит время, затрачиваемое на анализ пакета.
|
87 |
|
|
|
|
Список атрибутов СОА Snort |
Таблица 4.2 |
||
|
|
|
||
|
|
|
|
|
Атрибут |
|
Описание |
|
|
|
|
|
|
|
meta-data |
|
|
|
|
|
|
|
||
msg: "<текст>"; |
|
Сообщение, которое добавляется в журнал регист- |
||
|
|
рации при активации правила. |
|
|
sid: |
|
Уникальный номер, используемый для идентифи- |
||
<идентификатор>; |
|
кации правил. Идентификаторы |
от |
100 до |
|
|
1 000 000 используются для правил, включенных в |
||
|
|
дистрибутив Snort. Для локальных правил следует |
||
|
|
использовать значения больше 1 000 000. |
|
|
rev: |
|
Целое число, служащее для обозначения номера |
||
<номер_редакции>; |
|
редакции правила. |
|
|
classtype: |
|
Используется для обозначения класса атаки. Пол- |
||
<имя_класса>; |
|
ный список классов приведен в документации по |
||
|
|
Snort. |
|
|
priority: |
|
Целое число, используемое для переопределения |
||
<приоритет>; |
|
приоритета, задаваемого указанным ранее классом |
||
|
|
атаки, или для назначения приоритета новому |
||
|
|
правилу. Наивысший приоритет — |
1, |
типичное |
|
|
значение атрибута составляет от 1 до 4. |
|
|
payload |
|
|
|
|
content: [!]"<строка>";
nocase;
depth: <число_байт>;
Позволяет искать заданную подстроку в содержимом полезной нагрузки пакета. Восклицательный знак означает отсутствие указанной информации в пакете. По умолчанию данный атрибут является чувствительным к регистру. Для обозначения двоичных данных следует использовать шестнадцатеричные значения, отделенные вертикальными чертами: |00 5С|. Атрибут content имеет несколько модификаторов, которые могут располагаться следом за ним.
Модифицирует стоящий ранее атрибут content, делая его нечувствительным к регистру.
Значение атрибута (в байтах) определяет, как далеко в полезной нагрузке пакета должен производиться поиск.
|
88 |
|
|
Атрибут |
Описание |
|
|
offset: |
Значение атрибута определяет, сколько байтов по- |
<число_байт>; |
лезной нагрузки следует пропустить. Поиск будет |
|
вестись, начиная с число_байт+1-го байта. |
distance: |
Атрибут похож на depth, но указывает, сколько |
<число_байт>; |
байт необходимо пропустить после предыдущей |
|
совпавшей подстроки перед продолжением поис- |
|
ка. |
within: |
Атрибут указывает системе искать совпадения |
<число_байт>; |
лишь в первых число_байт, начиная с конца |
|
предыдущей совпавшей подстроки. |
non-payload |
|
|
|
dsize: <размер>; |
Сравнить размер полезной нагрузки с заданным. |
|
Возможно указание диапазонов значений с ис- |
|
пользованием знаков >, < и <>. Например: >128, |
|
300<>500 (от 300 до 500). |
flags: |
Проверить, установлены ли указанные флаги в |
[!|*|+]<флаги> |
принятом TCP-пакете. Флаги записываются под- |
|
ряд без пробелов и обозначаются следующим об- |
|
разом: |
|
F — FIN (LSB в байте флагов) |
|
S — SYN |
|
R — RST |
|
P — PSH |
|
A — ACK |
|
U — URG |
|
1 — Резерв 1 (MSB в байте флагов) |
|
2 — Резерв 2 |
|
0 — флаги не установлены |
|
Могут быть дополнительно использованы сле- |
|
дующие модификаторы: |
|
! — указанные флаги не установлены |
|
* — установлен хотя бы один из указанных |
|
+ — установлены указанные и любые другие |
itype: <тип>; |
Сравнить тип ICMP сообщения с указанным. Воз- |
|
можно указание диапазонов значений с использо- |
|
ванием знаков >, < и <> (см. выше). |
icode: <код>; |
Сравнить код ICMP сообщения с указанным. |
