Авторизация с помощью клиентских ssl сертификатов. – itc-life
Протокол безопасной передачи данных SSL (Secure Sockets Layer) помимо
обеспечения безопасной передачи данных позволяет также реализовать
авторизацию клиентов на сервере с помощью клиентских SSL сертификатов.
Данная статья является практическим руководством по реализации данного
вида авторизации. В статье не рассматриваются теоретические основы
криптографии или передачи данных по протоколу SSL. Подразумеваемся,
что читатель хотя бы поверхностно знаком с понятиями, используемыми в
этой статье, такими как сертификат, секретный ключ, подпись
сертификата и т.д.
Процесс авторизация выглядит следующим образом. При переходе клиента в
закрытую область сайта веб-сервер запрашивает у броузера клиента
сертификат, если проверка клиентского сертификата веб-сервером прошла
удачно, то клиент получает доступ к закрытым данным.
Наиболее наглядным примером использования авторизации посредством
клиентских сертификатов является система платежей WebMoney Transfer, а
точнее реализация WM Keeper Light. Данная схема авторизации признана
наиболее надежной и, в том или ином виде, широко используется в сфере
предоставления банковских услуг.
Практическая реализация рассматривается на основе популярной связки
веб-сервера Apache (https://httpd.apache.org/) и модуля mod_ssl (https://www.modssl.org/),
основанного на использовании библиотеки openssl (https://www.openssl.org/).
Предполагается, что соответствующее программное обеспечение у вас уже
установлено.
Для реализации процесса авторизации по клиентским сертификатам
требуется:
1. Создать собственный доверенный сертификат (Certificate Authority),
для того чтобы с помощью него подписывать и проверять клиентские
сертификаты.
2. Создать клиентские сертификаты, подписанные доверенным
сертификатом, для последующей передачи их клиентам.
3. Сконфигурировать веб-сервер для запроса и проверки клиентских
сертификатов.
Примечание: Для работы с ключами используется программа openssl,
входящая в пакет библиотеки openssl. Все приведенные в статье
примеры максимально адаптированы для их выполнения из серверных
скриптов при автоматизации процесса выдачи клиентских сертификатов,
в частности нигде не используется интерактивный режим. При создании
закрытых ключей не используется шифрование ключа, поэтому
рекомендуется максимально использовать систему ограничения прав
доступа операционной системы на файлы ключей.
Создание собственного самоподписанного доверенного сертификата.
Собственный доверенный сертификат (Certificate Authority – далее CA)
необходим для подписи клиентских сертификатов и для их проверки при
авторизации клиента веб-сервером. С помощью приведенной ниже команды
создается закрытый ключ и самоподписанный сертификат.
# openssl req -new -newkey rsa:1024 -nodes -keyout ca.key -x509 -days 500 -subj /C=RU/ST=Msk/L=Msk/O=My Inc/OU=Sale/CN=bla/emailAddress=usr@dom.ru -out ca.crt
Описание аргументов:
req
Запрос на создание нового сертификата.
-new
Создание запроса на сертификат (Certificate Signing Request –
далее CSR).
-newkey rsa:1023
Автоматически будет создан новый закрытый RSA ключ длиной 1024
бита. Длину ключа можете настроить по своему усмотрению.
-nodes Не шифровать закрытый ключ (См. примечание выше).
-keyout ca.key Закрытый ключ сохранить в файл ca.key.
-x509 Вместо создания CSR (см. опцию -new) создать самоподписанный сертификат.
-days 500
Срок действия сертификата 500 дней. Размер периода действия
можете настроить по своему усмотрению. Не рекомендуется вводить
маленькие значения, так как этим сертификатом вы будете
подписывать клиентские сертификаты.
-subj /C=RU/ST=Msk/L=Msk/O=My Inc/OU=Sale/CN=bla/emailAddress=usr@dom.ru
Данные сертификата, пары параметр=значение, перечисляются через
‘/’. Символы в значении параметра могут быть “подсечены” с
помощью обратного слэша “”, например “O=My Inc”. Также можно
взять значение аргумента в кавычки, например, -subj
“/xx/xx/xx”.
Описание параметров:
С – Двухсимвольный код страны (Country). Необязательный
параметр.
ST – Название региона/области/края/республики/… (State
Name). Необязательный параметр.
L – Название города/поселка/… (Locality Name).
Необязательный параметр.
O – Название организации (Organization Name).
Необязательный параметр.
OU – Название отдела (Organization Unit). Необязательный
параметр.
CN – Имя сертификата, при создании серверных сертификатов
используется доменное имя сайта, для клиентских
сертификатов может быть использовано что угодно (Common
Name). Обязательный параметр. Максимальная длина 64
символа.
emailAddress – почтовый адрес (E-mail address).
Необязательный параметр. Максимальная длина 40 символов.
Необязательные параметры могут быть пропущены, например,
/C=RU/CN=blabla/emailAddress=user@domain.ru.
-out ca.crt Сертификат сохранить в файл ca.crt.
В результате выполнения команды появятся два файла ca.key и ca.crt.
Просмотреть данные закрытого ключа и сертификата вы можете с помощью
команд:
# openssl rsa -noout -text -in ca.key (для ключа) # openssl x509 -noout -text -in ca.crt (для сертификата)
Создание клиентских сертификатов
Подготовка конфигурации и файлов для подписи сертификатов.
Создайте конфигурационный файл с именем ca.config следующего
содержания.
[ ca ] default_ca = CA_CLIENT # При подписи сертификатов # использовать секцию CA_CLIENT [ CA_CLIENT ] dir = ./db # Каталог для служебных файлов certs = $dir/certs # Каталог для сертификатов new_certs_dir = $dir/newcerts # Каталог для новых сертификатов database = $dir/index.txt # Файл с базой данных # подписанных сертификатов serial = $dir/serial # Файл содержащий серийный номер # сертификата # (в шестнадцатиричном формате) certificate = ./ca.crt # Файл сертификата CA private_key = ./ca.key # Файл закрытого ключа CA default_days = 365 # Срок действия подписываемого # сертификата default_crl_days = 7 # Срок действия CRL (см. $4) default_md = md5 # Алгоритм подписи policy = policy_anything # Название секции с описанием # политики в отношении данных # сертификата [ policy_anything ] countryName = optional # Код страны - не обязателен stateOrProvinceName = optional # ...... localityName = optional # ...... organizationName = optional # ...... organizationalUnitName = optional # ...... commonName = supplied # ...... - обязателен emailAddress = optional # ......
Создайте структуру каталогов и файлов, соответсвующую описанной в
конфигурационном файле
# mkdir db # mkdir db/certs # mkdir db/newcerts # touch db/index.txt # echo "01" > db/serial
Примечание: В файле db/serial записывается текущий серийный номер
подписываемого сертификата в шестнадцатиричном формате. В файл
db/index.txt сохраняются данные о подписываемых сертификатах.
Создание клиентского закрытого ключа и запроса на сертификат (CSR).
Для создания подписанного клиентского сертификата предварительно
необходимо создать запрос на сертификат, для его последующей подписи.
Аргументы команды полностью аналогичны аргументам использовавшимся при
создании самоподписанного доверенного сертификата (см. $1), но
отсутсвует параметр -x509.
# openssl req -new -newkey rsa:1024 -nodes -keyout client01.key -subj /C=RU/ST=Msk/L=Msk/O=Inc/OU=Web/CN=usr/emailAddress=usr@dm.ru -out client01.csr
В результате выполнения команды появятся два файла client01.key и
client01.csr. Просмотреть данные закрытого ключа и запроса на
сертификат (CSR) вы можете с помощью команд:
# openssl rsa -noout -text -in client01.key (для ключа) # openssl req -noout -text -in client01.csr (для запроса)
Подпись запроса на сертификат (CSR) с помощью доверенного сертификата (CA).
При подписи запроса используются параметры заданные в файле ca.config
# openssl ca -config ca.config -in client01.csr -out client01.crt -batch
Описание аргументов:
ca
Подпись запроса с помощью CA.
-config ca.config
Использовать конфигурационный файл ca.config.
-in client01.csr
CSR находится в файле client01.csr
-out client01.crt
Сохранить сертификат в файл client01.crt
-batch
Не спрашивать подтверждения подписи.
В результате выполнения команды появится файл клиентского сертификата
client01.crt. Просмотреть данные сертификата вы можете с помощью
команды:
# openssl x509 -noout -text -in client01.crt
Подготовка данных для передачи клиенту.
Для передачи полученных в результате предыдущих операций файлов
клиенту, обычно используется файл в формате PKCS#12. В этот файл
упаковывается и защищается паролем вся информация необходимая клиенту
для инсталяции сертификата в броузер.
# openssl pkcs12 -export -in client01.crt -inkey client01.key -certfile ca.crt -out client01.p12 -passout pass:q1w2e3
Описание аргументов:
pkcs12
Работа с файлами формата PKCS#12.
-export
Экспортирование данных в файл.
-in client01.crt
Файл клиентского сертификата.
-inkey client01.key
Файл закрытого ключа.
-certfile ca.crt
Файл доверенного сертификата.
-out client01.p12
Сохранить данные в файл client01.p12.
-passout pass:q1w2e3
Установить пароль q1w2e3 на файл (пароль может быть любым, в
том числе и пустым)
На этом процесс создания клиентского сертификата завершен. Теперь вам
необходимо передать клиенту файл client01.p12 и пароль к нему любым
удобным безопасным способом, а также проинструктировать его о
процедуре инсталяции сертификата в броузер.
Для создания новых клиентских сертификатов повторите операции с $2.2.
по $2.4.
Настройка веб-сервера.
Для реализации процесса авторизации по клиентским сертификатам
необходимо сконфигурировать веб-сервер для решения следующих задач:
1. Запрет доступа к защищаемой области по протоколу HTTP.
2. Запрос и проверка клиентских сертификатов.
Запрет доступа к защищаемой области по протоколу HTTP.
Найдите в конфигурационном файле веб-сервера httpd.conf секцию
, соответсвующую вашему сайту и добавьте в неё
следующие директивы
SSLRequire
Описание директив:
/path/to/secure/area/
Абсолютный путь до директории защищаемой области.
SSLRequire
Запрещает доступ клиенту, если при соединении не используется
протокол HTTPS (HTTP через SSL).
Запрос и проверка клиентских сертификатов.
Найдите в конфигурационном файле веб-сервера httpd.conf секцию ,
соответсвующую вашему сайту и добавьте в неё следующие директивы:
SSLCACertificateFile /path/to/ca.crt SSLVerifyClient require
Описание директив:
SSLCACertificateFile /path/to/ca.crt
Абсолютный путь до доверенного сертификата (см. $1.). Также в
качестве значения директивы SSLCACertificateFile может быть
указан файл, содержащий несколько доверенных сертификатов
(формируется путем обычной конкатенации файлов сертификатов),
тогда все они будут считаться доверенными сертификатами.
SSLVerifyClient require
При наличии этой директивы веб-сервер будет запрашивать
сертификат у клиента в обязательном порядке. Если клиент не
предоставляет сертификат, тогда сервер отклоняет запрос. Если
клиент предоставляет сертификат, то веб-сервер проверяет его
срок действия и поставщика сертификата (сертификат которым он
подписан), если сертификат поставщика присутсвует в файле
SSLCACertificateFile, то проверка считается успешной и клиенту
предоставляется доступ до защищенной области.
Для того, чтобы изменения конфигурационного файла веб-сервера вступили
в силу необходимо перезапустить веб-сервер
# apachectl restart
Альтернативные способы настройки веб-сервера.
В этом разделе будут рассмотрены альтернативные пути настройки
веб-сервера для авторизации по клиентским сертификатам. Вариантов
настройки и их комбинаций может быть много, нижеприведенные примеры
проиллюстрируют некоторые из них и помогут при разработке собственных
конфигураций.
Пример 1.
Допустим файл указанный в директиве SSLCACertificateFile содержит
несколько доверенных сертификатов (см. описание директивы
SSLCACertificateFile). Требуется разрешить доступ до защищенной
области только владельцам сертификатов, подписанных только одним из
поставщиков.
SSLVerifyClient require
SSLRequire %{SSL_CLIENT_I_DN_O} eq "First CA Inc."Описание директив:
SSLRequire %{SSL_CLIENT_I_DN_O} eq "First CA Inc."Требует чтобы организацией поставщика клиентского сертификата
являлась “First CA Inc.”. Аналогичным способом можно проверять
любые другие параметры клиентского сертификата или его
поставщика. Более подробную информацию о директиве SSLRequire и
именах переменных смотрите в документации по mod_ssl.
Пример 2.
Предположим требуется разрешить доступ до защищенной области
владельцам сертификатов со слишком разными данными, настолько, что их
сложно описать с помощью директивы SSLRequire. В этом случае полезно
использовать метод, основанный на имитации простой авторизации
веб-сервером по паролю.
SSLVerifyClient require SSLOptions FakeBasicAuth AuthName "My secure area" AuthType Basic AuthUserFile /path/to/passwd/file require valid-user
Содержимое файла /path/to/passwd/file
/C=RU/L=Msk/O=My Inc./CN=user/emailAddress=user@domain.ru:xxj31ZMTZzkVA /C=RU/L=Sam/O=My LTD./CN=vas/emailAddress=vas@domain.ru:xxj31ZMTZzkVA /C=RU/L=Zel/O=My LLC./CN=prs/emailAddress=prs@domain.ru:xxj31ZMTZzkVA ........
Описание директив:
SSLOptions FakeBasicAuth
Имитирует простую авторизацию веб-сервером. Имя пользователя и
пароль не запрашиваются, но сверяются данные клиентского
сертификата с данными в файле /path/to/passwd/file. Строка
идентифицирующая клиента может быть получена из клиентского
сертификата с помощью команды:
# openssl x509 -noout -subject -in client.crt
Или взята из базы данных db/index.txt, формируемой при подписи
CSR (см. $2.). В качестве пароля всегда используется строка
“xxj31ZMTZzkVA”, являющаяся результатом шифрования строки
“password” с помощью алгоритма DES.
Отзыв сертификатов.
Результат проверки веб-сервером клиентского сертификата будет успешным
на весь срок действия сертификата. Возникает вопрос, что делать в
случае если вы хотите отказать какому-либо клиенту в доступе по его
клиентскому сертификату. Для решения этой проблемы создается список
отзыва сертификатов (Certificate Revocation List – CRL). В списке
отзыва перечисляются отозванные вами клиентские сертификаты. В
соответсвии с этим списком веб-сервер будет отклонять запросы если
сертифкат клиента отозван.
Создание списка отзыва (CRL).
При создании списка отзыва используется тот же конфигурационный файл и
таже структура файлов, что и при подписи сертификатов (см. $2.1.),
поэтому при выполнении следующей команды вы должны находиться в том же
каталоге.
# openssl ca -gencrl -config ca.config -out ca.crl
Описание аргументов:
ca
При создании CRL также используется этот аргумент.
-gencrl
Создание списка отзыва сертификатов.
-config ca.config
Использовать конфигурационный файл ca.config.
-out ca.crl
Сохранить созданный список отзыва в файл ca.crl
В результате будет создан список отзыва, основанный на базе данных
подписанных сертификатах db/index.txt. Так как на данный момент ни
один из сертификатов в базе данных не помечен как отозванный, то
созданный список будет пустым. Просмотреть данные списка отзыва вы
можете с помощью следующей команды.
# openssl crl -in ca.crl -text -noout
Одной из важных черт списка отзыва является его срок действия,
указываемый в конфигурационном файле ca.config с помощью директивы
default_crl_days. Также альтернативно может быть использована
директива default_crl_hours, если вы планируете часто обновлять ваш
CRL. Список отзыва должен обновляться не позже истечения срока
действия. Для переодического вызова приведенной выше команды можно
использовать cron.
Отзыв сертификата.
Для того чтобы отозвать клиентский сертификат необходимо пометить его
в базе данных сертификатов db/index.txt как отозванный, тогда при
следующем обновлении списка отзыва, этот сертификат будет в него
включен. Для пометки сертификата как отозванного используйте
приведенную ниже команду.
# openssl ca -config ca.config -revoke client01.crt
Описание аргументов:
-revoke client01.crt Отозвать сертификат находящийся в файле client01.crt
Настройка веб-сервера
После создания списка отзыва сертификатов необходимо дать возможность
веб-серверу использовать его. Для этого добавьте приведенную ниже
директиву в конфигурационный файл веб-сервера.
SSLCARevocationFile /path/to/ca.crl
Описание директив:
SSLCARevocationFile /path/to/ca.crl Абсолютный путь до файла со списком отзыва сертификатов (см. $4.1.)
Не забывайте перезапускать веб-сервер после каждого изменения его
конфигурации.
# apachectl restart
Заключение.
Вышеизложенный материал можно дополнять и углублять, цель статьи –
минимальное руководство по реализации авторизации по клиентским
сертификатам на практике. Любой читатель, имеющий доступ к
использовавшемуся программному обеспечению, с помощью этой статьи
может за короткое время настроить свой веб-сервер для решения этой
задачи. Каждый из изложенных пунктов можно расширить и написать по
нему отдельную статью, заинтересовавшиеся читатели могут получить
дополнительные сведения в документации по Apache, mod_ssl и openssl. В
заключение хочется дать несколько советов по программной реализации
вышеописанных процессов.
В openssl не предусмотрен механизм блокирования одновременного доступа
к ресурсам, то есть, если две программы одновременно будут
осуществлять подпись сертификата, то корректность содержимого
текстовой базы данных, файла с серийным номером, как впрочем и самого
результата не гарантируется. Поэтому необходимо использовать внешний
механизм блокировки, например, так это можно реализовать на языке
Perl.
open ( LOCK, ">/tmp/cert-sign.lck" ) or error_handling(); flock ( LOCK, 2 ) or error_handling();
# … код, реализующий подпись сертификата …
close( LOCK );
Описанный метод чрезвычайно прост: ставится блокировка на временный
файл, выполняются критические действия, снимается блокировка с файла.
Если во всех программах, работающих с вашими файлами придерживаться
этого метода, то они не смогут в критические моменты вмешиваться в
процесс, а будут ждать снятия блокировки.
Второй совет связан с извлечением и обработкой данных клиентских
сертификатов в CGI-скриптах. При простой авторизации клиента по имени
и паролю веб-сервер помещает имя пользователя в переменную окружения
REMOTE_USER. Аналогичным образом из переменных окружения можно извлечь
данные клиентского сертификата при авторизации по сертификату. Для
того чтобы веб-сервер устанавливал значения переменных окружения,
относящихся к клиентскому сертификату необходимо добавить в
конфигурацию веб-сервера следующую директиву:
SSLOptions StdEnvVars ExportCertData
Описание директив:
StdEnvVars Включает установку в переменные окружения данных, относящихся к SSL.ExportCertDataВключает установку в переменные окружения текста сертификатов
использовавшихся при передаче данных.По умолчанию установка переменных окружения, относящихся к SSL,
отключена, так как их извлечение из сертификатов влечет за собой
снижение быстродействия веб-сервера. Поэтому следует добавлять эти
опции только в случае реальной необходимости.Альтернативой переменной REMOTE_USER могут служить следующие
переменные: SSL_CLIENT_M_SERIAL - серийный номер клиентского
сертификата, SSL_CLIENT_S_DN_CN - имя сертификата (Common Name) или
SSL_CLIENT_S_DN - данные сертификата (Subject Name, см. описание
аргумента -subj в $1). Если вы хотите использовать переменную
SSL_CLIENT_S_DN_CN для идентификации пользователя, то вы должны
обеспечить уникальность Common Name для разных сертификатов при
создании запросов на клиентский сертификат (см. $2.2.). Уникальность
SSL_CLIENT_M_SERIAL и SSL_CLIENT_S_DN гарантируется автоматически при
подписи сертификатов.Несколько мелких замечаний от Александр Елисеенко:
1) ключ -sabj при генерации сертификатов явно лишний, все именные
данные и так будут запрошены (в интерактиве). Для упрощения жизни
можно отредактировать файл openssl.cnf, секция [
req_distinguished_name ]. Тогда останется только жать ENTER.2) специально создавать файл ca.config нет смысла, дешевле
воспользоваться готовым openssl.cnf3) подробное освещение вопроса генерации сертификатов - дело нужное,
но не лишним было бы отметить, что в составе дистрибутива openssl есть
готовый скрипт CA (CA.sh или GA.pl), с помощью которого ключи
генерятся без всяких проблем(https://www.opennet.ru/tips/info/681.shtml)Ну и по вопросу организации проверки клиентских сертификатов на
сервере - не все так просто,как написано в статье.Корневой (или доверенный) сертификат может быть не один. Каталог, где
они размещены, указывается директивой SSLCACertificatePath. Для
каждого доверенного сертификата должен быть указан md5 hash. Все
доверенные сертификаты могут быть сгруппированы в один файл (вместе с
md5 хэшем, а не путем обычной конкатенации файлов сертификатов), путь
к нему в этом случае указывается директивой SSLCACertificateFile. Если
используются довереннные сертификаты, подписанные другими CA, то
директивой SSLVerifyDepth устанавливается глубина проверки цепочки
сертификатов.
Аутентификация по сертификатам
Сертификат — это набор данных, определяющих какую-либо сущность (пользователя или устройство) в привязке к открытому ключу ключевой пары открытый/секретный ключ. Обычный сертификат содержит информацию о сущности и указывает цели, с которыми может использоваться сертификат, а также расположение дополнительной информации о месте выпуска сертификата. Сертификат подписан цифровой подписью выпустившего его центра сертификации (СА).
Инфраструктура, используемая для поддержки сертификатов в организации, называется инфраструктурой открытого ключа (Public Key Infrastructure, PKI). [22]
Сертификат может быть сам по себе широкодоступен (передаваться по электронной почте). Открытый ключ каждого сертификата имеет связанный с ним секретный ключ, который содержится в тайне и, как правило, хранится локально самим объектом-сущностью.
Важно, что в отличие от алгоритмов с симметричным ключом, где для расшифрования и шифрования используется один и тот же ключ, в алгоритмах с открытым/ секретным ключом используются два ключа: один для шифрования, а другой — для расшифровки. Если шифрование осуществляется с использованием открытого ключа, то расшифровать зашифрованный текст можно только с помощью соответствующего секретного ключа. Если шифрование осуществляется на секретном ключе, то расшифровать текст можно только с помощью соответствующего открытого ключа.
При использовании сертификатов для аутентификации секретный ключ применяется для шифрования или цифровой подписи некоторого запроса или «вопроса». Соответствующий открытый ключ (доступный в сертификате) может использоваться сервером или центральным сервером аутентификации для расшифровки запроса. Если результат соответствует ожидаемому, подлинность считается доказанной. Так как с помощью соответствующего открытого ключа можно успешно расшифровать вопрос, а секретным ключом, посредством которого был зашифрован вопрос, обладает только объект-сущность, сообщение должно исходить именно от этого объекта-сущности. Ниже приведены шаги описанного процесса аутентификации.
1. Клиент подает запрос аутентификации.
2. Сервер создаст вопрос.
3. Рабочая станция использует свой секретный ключ для шифрования вопроса.
4. Ответ возвращается серверу.
5. Так как сервер содержит копию сертификата, он может использовать открытый ключ для расшифровки ответа. Результат сравнивается с вопросом.
6. Если наблюдается совпадение, клиент успешно проходит аутентификацию. Данная концепция представлена на рис. 4.2.

Рис. 4.2. Аутентификация с использованием открытого и секретного ключей
Здесь полезно понять, что исходный набор ключей генерируется клиентом и в центр сертификации передается только открытый ключ. СА генерирует сертификат и подписывает его с помощью секретного ключа, после чего возвращает копию сертификата пользователю и его базе данных. [23]
SSL/TLS
SSL (англ. Secure Sockets Layer — уровень защищённых сокетов) — криптографический протокол, обеспечивающий безопасную передачу данных по сети Интернет. При его использовании создаётся защищённое соединение между клиентом и сервером. SSL изначально разработан компанией Netscape Communications. Впоследствии на основании протокола SSL 3.0 был разработан и принят стандарт RFC, получивший имя TLS.
Данная система может использоваться в электронной коммерции или в любой другой сфере, где требуется машинная аутентификация или необходимы безопасные соединения. Transport Layer Security (TLS) – это версия SSL, стандартизированная для использования в Интернете (RFC 2246). Несмотря на то, что TLS и SSL выполняют одну и ту же функцию, они не являются совместимыми: сервер, использующий SSL, не может установить защищенный сеанс с клиентом, который использует только TLS. Необходимо обеспечить совместимость приложений с SSL или TLS, прежде чем использовать одну из этих двух систем.
Хотя наиболее общая реализация SSL обеспечивает безопасное соединение и аутентификацию сервера, может быть также реализована аутентификация клиента. Клиенты должны обладать для этой цели своими собственными сертификатами, веб-сервер должен быть настроен на требование аутентификации от клиентов.
В наиболее распространенном варианте использования SSL организация получает SSL-сертификат сервера из открытого центра сертификации, такого как VeriSign, и устанавливает его на свой Веб-сервер.
Процесс аутентификации состоит из следующих этапов.
1. Пользователь вводит URL сервера в браузере.
2. Запрос клиента на веб-страницу передается на сервер.
3. Сервер получает запрос и отправляет свой сертификат сервера клиенту.
4. Браузер клиента проверяет свое хранилище сертификатов на наличие сертификата от центра сертификации, выпустившего сертификат сервера.
5. Если обнаруживается сертификат СА, браузер подтверждает сертификат посредством проверки подписи на сертификате сервера с использованием открытого ключа, имеющегося в сертификате СА.
6. Если проверка завершается успешно, браузер принимает сертификат сервера и считает его действительным.
7. Генерируется симметричный ключ шифрования, происходит его шифрование клиентом с использованием открытого ключа сервера.
8. Зашифрованный ключ возвращается серверу.
9. Сервер расшифровывает ключ с помощью собственного секретного ключа сервера. Для компьютера теперь общий ключ шифрования, который может использоваться для обеспечения безопасности соединений между ними.[24]
Существует множество потенциальных проблем, связанных с данной системой.
· Если веб-сервер не настроен соответствующим образом на требование использования SSL, сервер не аутентифицируется относительно клиента, и может быть установлено обычное незащищенное соединение. Безопасность зависит от того, укажет ли пользователь в строке URL браузера протокол https:/ вместо http:/.
· Если у клиента нет копии сертификата СА, она будет предложена ему сервером. Несмотря на то, что это обеспечивает наличие шифруемого соединения между клиентом и сервером, данный подход не обеспечивает аутентификацию сервера. Безопасность соединения здесь зависит от пользователя, который, в лучшем случае, откажется от соединения с сервером, который не идентифицирован третьей стороной.
· Процесс получения сертификата СА в хранилище браузера не является четко контролируемым. В прошлом данное обстоятельство могло потребовать уплаты денежных средств или зависело от ваших связей. Теперь же Microsoft требует, чтобы сертификаты, устанавливаемые все браузеры, были выпущены центрами сертификации, прошедшими соответствующий аудит.
· Основой является защита секретного ключа. В то время как реализации по умолчанию требуют лишь нахождения ключа в защищенной области системы, возможно, применить аппаратные системы, требующие хранения секретного ключа только на аппаратном устройстве.
· Как в случае с любой системой, базирующейся на PKI, решение о предоставлении сертификата организации для его использования на сервере этой организации зависит от политик, созданных людьми, и, таким образом, данное решит принимается именно людьми. Поэтому могут допускаться различные ошибки Сертификат SSL, определяющий сервер как принадлежащий компании, может быть выпущен каким-либо лицом, не являющимся представителем этой компании. Кроме того, если даже истек срок действия сертификата или обнаружена другая проблема и выдан сигнал тревоги, многие пользователи просто проигнорируют это предупреждение.
Стойкость шифра SSL-сеанса прямо пропорциональна числу разрядов в ключе сеанса. Иначе говоря, считается, что ключи с большим числом разрядов безопаснее – их труднее взломать.
Для SSL-сеансов обычно применяются 40- и 128-разрядный уровни шифрования. Первый вариант подходит для большинства ситуаций, включая электронную коммерцию, а второй – обеспечивает дополнительную защиту важных личных и финансовых сведений клиента. В версиях Microsoft Windows для США реализовано 128-, а в экспортных версиях – 40-разрядное шифрование. Чтобы обновить сервер для 128-разрядного шифрования, необходимо установить специальный пакет обновления, распространяемый Microsoft.
Необходимо различать уровень шифрования SSL-сеансов (стойкость ключа сеанса, выраженная в разрядах) и уровень шифрования SSL-сертификатов (стойкость открытого и закрытого ключей сертификата, выраженная в разрядах). Обычно длина ключа шифрования, открытого или закрытого, составляет 512 или 1024 разряда. Внутренние американские и экспортные версии большинства приложений и ОС поддерживают ключи шифрования длиной 512 разрядов. Ключи длиной 1 024 и более разрядов во многих случаях не поддерживаются.
Когда пользователь пытается установить SSL-соединение с Web-сервером, клиентский браузер и сервер на основе своих ключей шифрования определяют максимально возможный уровень шифрования. Если длина ключей шифрования 512 разрядов, используется 40-разрядное, если 1 024 – 128-разрядное шифрование. Также доступны другие длины ключей и уровни шифрования.
§
Защита секретного ключа является важнейшим фактором в системах аутентификации посредством сертификатов. Если атакующий получит секретный ключом сможет под видом клиента успешно пройти аутентификацию. Реализация таких систем в значительной степени помогает защитить секретный ключ, однако, в конечном счете, если ключ хранится на компьютере, он потенциально может быть раскрыт злоумышленником.
Более надежна система, предусматривающая необходимость защиты секретного ключа и его отделения от компьютера. Для достижения данной цели могут использоваться смарт-карты. Хотя существует множество типов смарт-карт, карты, используемые для аутентификации, выглядят наподобие кредитных карт, НС держат микропроцессор, используемый для хранения секретного ключа и копии сертификата, а также для обеспечения обработки. Следует внимательно выбирать соответствующие смарт-карты для приложения, которое будет их использовать. Дополнительные аппаратные маркеры доступа, например, выпускаемые Rainbow Technologies и Datakey, могут быть USB-совместимыми и служить для тех же целей. Смарт-карты требуют наличия специальных считывателей смарт-карт для соединения между смарт-картами и компьютерными системами.
Использование смарт-карт для хранения секретного ключа и сертификатов решает проблему защиты ключей. Однако необходимо проводить обучение пользователей, чтобы они не записывали свой номер PIN на смарт-карту, или не фиксировали бы его каким-либо еще способом. Как в более традиционных системах аутентификации, в качестве пользователя идентифицируется человек, владеющий смарт-картой и номером PIN.[25]
Расширяемый протокол аутентификации (ЕАР) был разработан для включения в общий процесс аутентификации подключаемых модулей. Это означает, что интерфейсы аутентификации и основные процессы могут оставаться без изменений возможностью настройки приемлемых аутентификационных данных. После применения протокола ЕАР в системе можно добавлять в систему новые алгоритмы аутентификации по мере их разработки, и при этом не нужно будет вносить кардинальные изменения в операционную систему. ЕАР в настоящее время применяется в нескольких системах удаленного доступа, включая Microsoft-реализацию службы Remote Authentication Dial-In User Service (RADIUS) (Служба удаленной аутентификации пользователей по телефонным каналам).
Модули аутентификации, используемые с ЕАР, именуются типами ЕАР. Существует несколько типов ЕАР; имя каждого из них означает тип используемой аутентификации.
· EAP/TLS – использует протокол аутентификации TLS и обеспечивает возможность использования смарт-карт при удаленной аутентификации.
· EAP/MD5-CHAP – позволяет использовать пароли в организациях, требующих обеспечения дополнительного уровня безопасности при удаленной беспроводной аутентификации 802.1х, но в которых отсутствует PKI для поддержки паролей.[26]
Биометрические методы аутентификации являют собой самую надежную реализацию двух факторной аутентификации – то, что вы имеете, является неотъемлемой частью вашего организма. Биометрические системы включают в себя модули рас познавания и идентификации по лицу, радужной оболочке глаза, сетчатке глаза, отпечаткам пальцев и др.
Данный процесс базируется на двух моментах. Во-первых, можно с уверенностью утверждать, что каждая проверяемая часть человеческого тела является уникальной, и во-вторых, система может быть настроена на требование достаточного объема информации для установления уникальной личности и избегания ошибочного отказа в доступе, в то время как фиксируемой информации не будет слишком мало для возможности ошибочного предоставления доступа. Все используемые в настоящее время биометрические средства аутентификации представляют характеристики, являющиеся уникальными для людей. Относительная точность каждой системы определяется числом ошибочных отказов и фактов ошибочного предоставления доступа.
Авторизация
Процессом, противоположным аутентификации, является авторизация. В процессе аутентификации устанавливается личность пользователя, а при авторизации определяется, какие действия пользователь может выполнять. Процесс авторизации, как правило, рассматривается как метод получения доступа к ресурсам, таким как файлы и принтеры, и предусматривает наличие пакета привилегий, которыми пользователь может обладать в рамках системы или сети. При полноценном использовании, процесс авторизации даже указывает, может ли пользователь вообще иметь доступ к системе. Существует множество различных типов систем авторизации, включая права пользователей, авторизацию по ролям, списки контроля доступа и авторизацию по правилам.[27]
Привилегии – это понятие, отличное от разрешений. Права пользователей обеспечивают авторизацию для выполнения действий, которые влияют на всю систему в целом. Возможность создавать группы, присваивать группам пользователей, входить в систему и выполнять многие другие действия может быть присвоена с помощью прав пользователей. Другие права пользователей являются подразумеваемыми и присваиваемыми группам по умолчанию, т.е. группам, создаваемым операционной системой без участия администраторов. Эти права не могут быть удалены.
Каждая должность и организации подразумевает соответствие сотрудника определенной роли. Каждый сотрудник должен быть наделен привилегиями (т.е. правами на выполнение каких-либо действий) и разрешениями (предоставление доступа к ресурсам и указание того, какие действия можно выполнять относительно них), если он выполняет свои должностные обязанности. Первые разработчики компьютерных систем вспоминают, что нужды возможных пользователей могут быть совершенно разными, и что не всем пользователям следует присваивать право администрирования системы.[28]
Первыми ролями в компьютерных системах были роли пользователя и администратора. В ранних системах роли определялись для данных типов пользователей, которым посредством этого предоставлялся доступ, в зависимости от членства в одной из двух групп. Администраторы (суперпользователи, пользователи корневой учётной записи, и т.д.) наделялись специальными привилегиями и допусками к большому массиву компьютерных ресурсов, нежели рядовые пользователи.
В простейших примерах подобных ролевых систем пользователи добавляются в группы, имеющие определенные права и привилегии. В других ролевых системах используются более сложные системы контроля доступа, включая некоторые системы, которые могут быть реализованы только в том случае, если операционная система их поддерживает. В модели безопасности Белла-Ла Падула, например, информационные ресурсы поделены на уровни и зоны. Каждая зона представляет собой классификацию данных, и данные не могут переноситься из одной зоны в другую без специальной авторизации; пользователю должен быть предоставлен доступ к зоне, чтобы он мог работать с соответствующими данными. В этой роли пользователь не может осуществлять запись в зону, расположенную ниже в иерархической системе (например, из секретной области в конфиденциальную), а также не может считывать данные, находящиеся на более высоком уровне, чем тот, к которому у пользователя имеется доступ (например, если пользователю предоставлен доступ к общей зоне, то он не может считывать данные, находящиеся в конфиденциальной или секретной зонах).
Присутствие на некоторых общественных мероприятиях может быть ограничено только непосредственно приглашенными лицами. Чтобы обеспечить присутствие на мероприятии только приглашенных лиц, можно составить список авторизованных лиц и предоставить его тем, кто несет ответственность за приглашение участников. Если вы придете на мероприятие в качестве его участника, то ваше имя будет сверено со списком, и после этого вам будет либо предоставлен доступ на мероприятие, либо вам будет отказано. Здесь может также применяться аутентификация в виде проверки посредством фотоидентификации, и это надежный и простой пример использования списка контроля доступа (ACL).
В информационных системах списки контроля доступа также могут применяться для определения того, является ли авторизованной запрошенная служба или ресурс. Доступ к файлам на сервере часто контролируется посредством информации о каждом файле. Аналогично возможность различных видов соединений проходить через сеть может также контролироваться посредством списков контроля доступа.[29]
Авторизация по правилам требует разработки соответствующих правил. В этих правилах четко прописываются действия, которые может выполнять на системе конкретный пользователь.
Контрольные вопросы
1. В чем отличие аутентификации от авторизации?
2. Как работает Kerberos?
3. Каков механизм системы с одноразовыми паролями?
4. Как работает система аутентификации с использованием открытого и секретного ключей?
5. В чем отличие TLS от SSL?
6. Что такое «авторизация по правилам»
Библиографический список
Основная литература:
1. Ярочкин В.И. Информационная безопасность: учебник для студентов высших учеб. заведений, обучающихся по гуманитарным и социально-экономическим специальностям / В. И. Ярочкин. – М.: Акад. проект, 2008. – C.92-98.
Дополнительная литература:
1. Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006.
2. Брэгг Р. Безопасность сети на основе Microsoft Windows Server 2003 / Р. Брэгг; [пер. с англ. под общ. ред. А. Е. Соловченко]. – СПб.: Питер, 2005. – 672 с.
3. Мэйволд Э. Безопасность сетей: практическое пособие / Э. Мэйволд; [пер. с англ.] – М.: «СП ЭКОМ», 2005.
4. Щеглов А.Ю. Защита компьютерной информации от несанкционированного доступа / А. Ю. Щеглов. – СПб.: Наука и техника, 2004. – С.29-46.
§
5.1 Конфиденциальность
5.2 Целостность
5.3 Доступность
5.4 Приложения архитектуры безопасности данных
5.5 Вирусы и антивирусы
Конфиденциальность
С момента начала использования компьютерных технологий во всех сферах деятельности человека, появилось много проблем, связанных с защитой конфиденциальности. Главным образом это связано с обработкой документов с применением компьютерных технологий. Многие административные меры по защите конфиденциальности частных лиц и организаций утратили свою силу в связи с переходом документооборота в абсолютно новую среду.
При получении личных писем, при заключении договоров, во время деловой переписки, при телефонных разговорах со знакомыми и незнакомыми людьми, человек пользовался различными средствами аутентификации. Личные письма отправлялись с указанием существующего почтового адреса или имели штамп именно тех почтовых отделений, где проводилась обработка таких писем. При заключении договоров применялись бланки, произведенные на типографиях, на которых с использованием пишущих машинок, имевших уникальные серийные номера, печатался текст, который затем подписывался должностным лицом и заверялся печатью организации. При разговорах по телефону, достоверно было известно, что разговор ведется именно с тем человеком, голос которого был ранее известен. Многие сотни административных мер были направлены на защиту конфиденциальности при общении людей.
С внедрением компьютерных технологий в жизнь человека многое изменилось. При использовании, например, электронной почты появилась возможность указания несуществующего обратного адреса или имитации получения письма от знакомого человека. При повседневном общении через сеть Интернет многие признаки, идентифицирующие того или иного человека в обычной жизни (пол, возраст, степень образования), перестали быть таковыми. Появилась так называемая «виртуальная реальность».
Быстро и эффективно решить проблемы связанные с защитой конфиденциальности в компьютерных системах невозможно. Появилась необходимость в комплексном подходе к решению данных проблем. Этот подход должен предполагать использование организационных и правовых мер, а также программно-аппаратных средств, обеспечивающих защиту конфиденциальности, целостности и доступности.
Было время, когда содержание данных в секрете не представляло особых сложностей. Сотни лет назад, когда грамотными были лишь немногие люди, письменная информация уже сама по себе была секретной. Для хранения секрета нужно было знать, для кого доступна информация, и предотвращать возможность посторонних лиц обучаться чтению. Это звучит слишком примитивно, однако, согласитесь, что сложно понять суть документа, если он написан на незнакомом языке.[30]
История показывает, что важные секреты содержались посредством их записи и оберегания от попадания в руки грамотных людей. Персидские пограничники в IV веке до н.э. позволили передать пустые восковые таблички, в которых, на самом деле, были скрыты сообщения грекам о предстоящей атаке на их страну, заполированные тонким слоем свежего воска. Переписчики также татуировали бритые головы курьеров, нанося на них сообщения. Когда волосы отрастали, курьеры могли инкогнито преодолевать вражеские территории, после чего в пункте назначения их головы брили и, таким образом, обнаруживали сведения. Однако судьба государств не могла слишком долго зависеть от подобных методов сокрытия информации. Прошло еще немного времени, и древние военачальники разработали и начали использовать более сложные подходы.
Появилась концепция сокрытия смысла сообщения. Народы древних цивилизаций, как известно, любили сложные загадки. Что может быть интереснее, чем скрыть сообщение с использованием последовательности шагов? Если не знать, какие шаги были предприняты для сокрытия информации (т.е. какой алгоритм использовался для создания шифра – имени замаскированного сообщения), нельзя раскрыть сообщение без приложения больших усилий. Удивительно, но каждый знает, что разгадка неразрешаемой задачи требует привлечения лучших умов для ее разрешения. В конечном счете, каждый код был взломан и каждый секрет был раскрыт. Вскоре появились создатели кода и его взломщики, работающие на всех сторонах-оппонентах. Началась своеобразная «игра».[31]
Первые попытки шифрования основывались на методе перестановки. В словах сообщений просто изменялся порядок букв. Разумеется, для этого был необходим определенный алгоритм, иначе получатель не смог бы расшифровать сообщение. Использование шифра «Сцитала» спартанцами в V веке до н. э. является первым упоминанием о схеме шифрования посредством перестановки. На ветку наматывали лист бумаги с сообщением, после чего бумага разматывалась и занесенная на нее информация становилась нечитабельной. Если курьер попадал в плен, то передаваемое им сообщение враг не мог расшифровать. Если он успешно добирался до пункта назначения, то сообщение наматывалось на точно такую же ветвь и прочитывалось.
В других ранних криптографических попытках (современная криптография наука о защите данных посредством шифрования) использовался метод подстановки. В алгоритме подстановки каждый символ сообщения просто заменяется другим, как в шифре Цезаря. Аналогичные шифры используют школьники, чтобы скрыть от преподавателя то, что на самом деле написано на бумаге. Для создания таких сообщений следует совместить с текстом алфавит соответствующего языка и согласовать с получателем начальную букву. Предположим, абоненты договорились начать с четвертой буквы латинского алфавита D. Начиная с этой буквы, под старым алфавитом записывается новый алфавит.
Для записи зашифрованного сообщения следует просто каждый раз подставлять букву во втором ряду, соответствующую каждой букве из первого ряда. Таким образом, сообщение «The administrator password is password* примет вид «Wkh dgplqlvwudwru sdwzrug lv sdwzrug*. Очевидно, чтобы расшифровать сообщение, нужно просто взять соответствующие буквы зашифрованного сообщения во второй строке и заменить их буквами в первой строке.
Такие коды интересны, но в действительности их довольно просто взломать. Возможно, ваш код никогда не был взломан, однако, в XVI веке шифр, используемый королевой Шотландии Марией, был успешно раскрыт. Мария зашифровала текст, в котором говорилось о свержении королевы Англии Елизаветы, однако ее планы были обнаружены и раскрыты, после чего она была казнена.[32]
Использовать коды, в которых единственным залогом сохранности сообщения является знание алгоритма шифрования, не рекомендуется. Рано или поздно кто-то все равно расшифрует алгоритм, и все усилия окажутся напрасными. Моноалфавитные алгоритмы шифрования (алгоритмы, в которых используется один алфавит), такие как описанный выше шифр, легко взломать посредством статистического анализа. Он основан на том, что некоторые буквы в письменном языке встречаются чаше.
При наличии достаточно большого фрагмента шифрованного текста можно применить эти статистические знания для взлома кода. Статистический анализ является примером криптоанализа (анализ криптографических алгоритмов).
В итоге появились различные вариации алгоритмов подстановки. В них использовалось несколько алфавитов, которые нельзя было взломать посредством простого статистического анализа. В одном из таких шифров, называемом «квадратом Вигенера», использовалось 26 копий алфавита и ключевое слово для определения того, какая уникальная подстановка должна использоваться для каждой буквы сообщения. Этот сложный полиалфавитный алгоритм, разработанный в XVI веке французским дипломатом Блэз де Виженер, не могли взломать на протяжении 300 лет.
þпример
Шифрование используется для зашиты сообщений не только в правительственных структурах и частных компаниях. Во время «сухого закона» (конец 1920 – начало 1930-х гг.) в США было запрещено продавать алкогольные напитки, и все же имели случаи нелегального провоза и продажи алкоголя. Многие компании и объединения, занимавшиеся продажей алкоголя, шифровали сообщения, чтобы правительственные службы не узнали об их нелегальных действиях. В целях соблюдения закона береговая охрана США наняла на работу криптографа Элизабет Фридман, которая возглавила группу по расшифровке сообщений контрабандистов. Элизабет Фридман взломала код компании Consolidated Exporters Corporation, после чего эта компания была арестована, а персонал осужден и приговорен к 2 годам заключения.[33]
Одной из причин успешного применения этого кода являлось бесконечное множество различных ключей, т.е. используемое в шифре ключевое пространство. Сам по себе ключ, представлявший собой слово или случайную комбинацию символов, мог иметь переменную длину, и можно было использовать любую вероятную комбинацию символов. Вообще, чем больше ключевое пространство, тем сложнее взломать шифр.
В современных поточных и блочных шифрах применяются сложные алгоритмы шифрования, работающие на высокопроизводительных компьютерных системах, однако, их прародителями являются простые физические устройства, которые применялись еще давным-давно. Примером такого устройства является шифрующий диск. Шифрующий диск на самом деле состоял из двух дисков, на каждом из которых по краю были нанесены алфавиты. Так как диаметры дисков были различны, совмещение алфавитов было различным от одного набора к другому. Чтобы еще больше усложнить шифр, также указывался отступ, или начальная точка. Только владелец дубликата шифровального диска, знающий это смещение, мог воспроизвести идентичный «поток» символов.
В 1918 году в немецкой шифровальной машине «Энигма» был использован тот же принцип, однако при этом существовало 15 000 возможных настроек. Даже сам факт владения шифровальной машиной не давал никаких гарантий взлома кода, так как необходимо было знать стартовые параметры. Представьте себе набор вращающих элементов и перемещателей, которые изменяют их положение при использовании шифровального аппарата. Введя букву D, почти сразу получаем на выходе букву F. Введем еще раз букву D, в результате чего получим букву G или U. Хотя данное шифрование может показаться случайным, оно может быть воспроизведено, если имеется в наличии идентичная шифровальная машина, настроенная точно так же. Эта шифровальная машина широко использовалась во время Второй Мировой войны, однако, ее шифр был взломан при помощи математических, статистических и вычислительных методов. Ее ранние версии производились как коммерческие продукты, и еще задолго до прихода к власти Гитлера их шифр был взломан замечательным польским математиком Марианом Режевски. Во время Второй Мировой войны использовалась другая версия этой шифровальной машины. Алан Турннг и британские криптологи в Bletchley Park использовали машину «Энигма», предоставленную поляками, и снова взломали ее код.
Также были разработаны и другие устройства шифрования, которые применялись в то время. «Большая машина», разработанная в Правительстве США, выглядит как ранняя печатная машинка, напичканная различными устройствами. Этот шифровальный аппарат, известный под названием «Сигаба», является единственной известной шифровальной машиной, код которой не был взломан во время Второй Мировой войны. Также существовали другие шифровальные машины: Турех, разработанная для обеспечения безопасности соединений между Британией и США, American Tunney и Sturgeon, которые были способны как к шифрованию, так и к передаче данных, а также машины Japanese Purple и Jade.[34]
В современном шифровании аналогичным образом часто разрабатываются поточные шифры, такие как RC4. Программные поточные шифры используют ключ для создания таблицы ключей, после чего ее байт и байт открытого текста подвергаются операции XOR со следующим байтом сообщения в открытом тексте. После полного шифрования сообщения и образования шифра происходит его доставка. Операция XOR — исключительная операция OR — является логическим оператором, посредством которого могут добавляться единицы и нули. Так как функция XOR является обратимой, если известен исходный ключ и алгоритм составления таблицы, то текст может быть расшифрован.
В то время как поточный шифр обрабатывает единовременно только один символ, в блочных шифрах происходит одновременная обработка блоков из множества бит. При этом используется нелинейная функция Boolean. В отличие от поточных шифров в ранних блочных шифрах не предусматривалось изменение ключа, поэтому взломать их было относительно просто, так как шифрование одинаковых комбинаций символов приводило к образованию идентичных шифров. Для взлома кода можно было с успехом использовать частотный анализ. В более поздних блочных шифрах были введены дополнительные функции для обработки шифрованного текста с целью сокрытия какого-либо повторения данных. Алгоритм DES, являвшийся в одно время стандартным алгоритмом шифрования правительства США, представляет собой блочный шифр, в котором используется 16 циклов обработки 64-битного блока данных, причем с каждым никлом степень сложности обработки возрастает. Он хорошо известен, однако, без секретного ключа (длиной 40 или 56 бит) его взломать достаточно сложно. Действительно, алгоритм DES считался настолько безопасным, что для его взлома потребовался бы миллион лет. Однако ученые, используя вычислительное оборудование стоимостью менее 10 000 долл., взломали этот алгоритм всего за несколько часов.[35]
Triple DES (Тройной DES) — это усовершенствованный алгоритм DES; при этом шифруемый текст просто подвергается троекратному действию алгоритма DES с использованием до трех ключей. Стандарт Advanced Encryption Standard (AES) был разработан взамен DES и стал новым федеральным стандартом шифрования в США. AES (являющийся на самом деле алгоритмом Rijndael) представляет собой блочный алгоритм шифрования, в котором используются блоки размером 128, 192 и 256 бит и ключ длиной 128 бит. Блочными шифрами также являются RSA Data Security RC2 и RC5, Entrust CAST и Counterpane System Blowfish. В отличие от DES в этих алгоритмах могут использоваться большие ключи переменной длины.
Описанные выше алгоритмы шифрования основываются на использовании одного секретного ключа. Этот ключ может использоваться для создания других ключей, однако, принцип здесь будет идентичен. Одноключевые симметричные алгоритмы правильно функционируют, если ключ каким-либо образом может быть передан от одного абонента другому. В прошлом передача осуществлялась через курьера, при личной встрече или иным способом, также не предусматривающим какого-либо соединения. Со временем потребности в шифровании росли, и появилась необходимость в частой смене ключей, чтобы предотвратить их раскрытие или снизить ущерб, который может быть причинен в случае раскрытия ключа злоумышленником. Люди не всегда могли передать ключи из рук в руки или каким-либо образом масштабировать внешний метод передачи. Проблема становится особенно актуальной, когда требуется применить шифрование в отношении тысяч генерируемых компьютером соединений.
Решение данной проблемы было впервые предложено Уитфилдом Диффи и Мартином Хеллманом. Протокол согласования ключей Диффи-Хеллмана предусматривает использование двух наборов математически связанных ключей и сложное математическое уравнение, использующее данное взаимоотношение. Если каждый из двух компьютеров вычисляет свой собственный набор соответствующих ключей (ни один из наборов при этом не связан с другим) и сообщает один из ключей другому компьютеру, то каждый из них сможет независимо вычислить третий секретный ключ, который будет идентичен третьему секретному ключу, вычисленному на другом компьютере. Этот секретный ключ независимо используется для генерирования последовательности симметричных ключей, с помощью которых на двух компьютерах будет происходить расшифровка передаваемых данных.
Еще одним методом обмена сеансовым ключом является шифрование на открытом ключе. Данный алгоритм асимметричен – в нем используется набор связанных ключей. Если один ключ применяется для шифрования сообщения, то другой – для расшифровки, и наоборот. Это означает, что, если у каждой стороны есть один из ключей, то может быть успешно реализован защищенный обмен сеансовым ключом. Обычно каждая сторона обладает своим собственным набором асимметричных ключей. Один ключ в паре ключей называется секретным, а другой — открытым.
Помимо обмена ключами шифрование с открытым ключом применяется для создания цифровых подписей. Как правило, эти алгоритмы задействуют очень большие ключи, и, хотя можно было бы использовать их для шифрования всех сообщений целиком или блоков данных на диске, скорость данного процесса была бы очень низка в сравнении с шифрованием на симметричном ключе.
Следующие примеры решения криптографических задач иллюстрируют время, которое потребовалось для определения ключа, использованного для шифрования одного сообщения.
· 1997 г. 56-битный шифр RC5 был взломан группой Bovine с применением десятков тысяч компьютеров (пользователи-добровольцы в Интернете) за 256 дней.
· 1997 г. 56-битный шифр DES был взломан за 96 дней Роком Версером и его группой из Колорадо.
· 1998 г. 56-битный шифр DES был взломан с привлечением оборудования стоимостью 250000$ (DES Cracker) компанией Electronic Frontier Foundation (EFF) за три дня.
· 1999 г. 56-битный алгоритм DES, задача DES Challenge III, была решена посредством EEF Deep Crack посредством совмещения мощности 100 000 компьютеров в Интернете. Решение заняло 22 часа 15 минут; в процессе решения было перебрано огромное число – 245 миллиардов — ключей, пока не был найден нужный.
· 2002 г. Задача RC5-64 Secret- Key Challenge была решена командой distributed.net примерно за 4 года с привлечением 331252 добровольцев. (Обратите внимание, что было предложено 12 различных задач RC5, и в каждой из них использовался свой размер ключа. Однако RC5 представляет собой алгоритм секретного ключа с переменой длиной ключа и переменным размером блока, и в нем может использоваться переменное число циклов. В научных целях данная информация была обнародована, однако в реальном мире она умышленно являлась недоступной).
Чем больше – тем лучше, однако этот тезис может быть верен не во всех случаях. Большая часть систем безопасности, как в Интернете, так и вне его, основывается на алгоритмах с открытыми ключами, такими как RSA Security. Шифрование на открытом ключе базируется частично на недоступности факторизации больших чисел.
С 1991 года RSA представлялись задачи факторизации, математические проблемы, с помощью которых проверялась возможность участников факторизовать большие числа. В 1999 году за семь месяцев группа, возглавляемая Арьсном К. Ленстрой, с помощью 300 компьютеров смогла факторизовать RSA-155, число с 155 знаками. Это 512-битное число является замечательным фактом, так как 512 бит — это размер ключа по умолчанию для большей части открытых ключей, применяемых в электронной коммерции. В RSA говорят, что данный факт означает возможность взлома группой сотрудников с распределенными компьютерными ресурсами 512-битного ключа всего за несколько часов.
В RSA полагают, что стоимость использования распределенной сети для взлома ключей шифрования по-прежнему является слишком большой с точки зрения штрафных санкций, однако, интересно, имеют ли место открытые распределенные сети, или атаки, осуществляемые на компьютерах без разрешения пользователя, не могут использоваться для взлома шифра. Существует несколько схем распределенных сетей, например сети, в которых распространяется музыка через Интернет в обмен на разрешение использования времени простоя вашего компьютера в собственных целях провайдера. Если вам подходит такая схема, следует прежде всего разобраться, что при этом будет происходить. Злоумышленник или группа злоумышленников могут инициировать такую программу «взаимодействия» и использовать время простоя вашего компьютера для взлома кода. Очевиден факт, что для запуска распределенных атак на отказ в обслуживании (DDoS) осуществляется незаконное проникновение и злоумышленные действия в отношении большого числа компьютеров. Мощь распределенных сетей может быть незаконным образом использована для осуществления криптографических действий, противоречащих этическим нормам. Это не значит, что работа организаций с распределенными сетями направлена на выполнение злонамеренных действий; многие из выполняемых таким образом функций являются очень полезными. Однако перед вступлением в такую программу следует все проверить, чтобы обезопасить себя и свой компьютер.
Обмен ключами. Для обмена сеансовыми ключами используются пары открытых/секретных ключей. Каждая сторона, которой необходим обмен, генерирует пару ключей. Открытые ключи либо распространяются среди абонентов, либо содержатся в базе данных. Секретные ключи содержатся в секрете. Чтобы произвести обмен, одна сторона может зашифровать его с помощью открытого ключа другой стороны. Затем зашифрованный ключ передается другой стороне. Так как только у законного получателя сообщения есть секретный ключ, соответствующий открытому ключу, использованному для шифрования сеансового ключа, то только он сможет расшифровать сеансовый ключ.
Целостность
Целостность – это состояние данных, при котором информация гарантированно не может быть изменена случайным образом. Изменять данные могут лица, обладающие соответствующими полномочиями. Залогом целостности информации является ряд следующих процессов.
· Использование качественного ПО. Вычисления программируются корректным образом, и процессы выполняются в соответствии с установленным порядком.
· Использование соответствующего оборудования. Применение соответствующего по своим свойствам и качеству оборудования позволяет снизить риск повреждения данных и предупредить администраторов о возможности причинения ущерба.
· Следование корректным административным процедурам. Использование корректных алгоритмов резервного копирования и средств управления доступом.
· Защита от злонамеренного управления данными. Использование корректных средств обеспечения безопасности доступа к компьютерам, доступа к данным, а также проверка данных на наличие дополнительных записей.[36]
В ранних системах компьютерной связи главной задачей было обеспечение того, чтобы потенциальные ошибки при передаче данных не вызвали изменения информации. Данные передавались с одного компьютера на другой в разных городах в виде наборов электрических импульсов, и ошибки могли вызываться помехами на линии. Для обнаружения таких ошибок вычислялась контрольная сумма, присоединяемая к концу передаваемых данных. Контрольная сумма представляет собой численное значение, основанное на числе битов в сообщении. После принятия сообщения вычисляется другая контрольная сумма, получаемая на основе полученного сообщения, и если две контрольные суммы совпадают, то целостность данных считается сохраненной. Современное оборудование является более совершенным, однако данные по-прежнему могут подвергаться воздействию температуры, магнитных волн, скачков электроэнергии и даже пыли.
Использование шифрования – важный фактор целостности данных, так как может использоваться даже в том случае, если не требуется обеспечить конфиденциальность информации. С помощью шифрования можно просто убедиться, что данные не изменились, например, в процессе передачи. Если банковские записи хранятся на диске в зашифрованном виде и в таком же виде передаются в другое место, то дополнительным образом обеспечивается их целостность. Так как явные на диске зашифрованы, для изменения данных у соответствующего лица не только должны быть нужные для этого полномочия, но также и соответствующий ключ шифрования, что позволяет снизить вероятность несанкционированного изменения данных.
Следующие шаги описывают процедуру использования алгоритма хэширования для обеспечения целостности данных при передаче сообщения между двумя компьютерами – А и Б. Сообщение само по себе не шифруется. Если нужно сохранить в секрете само сообщение, его можно зашифровать посредством какого-либо другого алгоритма.
1. Данные кэшируются на А перед отправкой для получения результата хэширования – небольшого фрагмента данных, представляющего сообщение.
2. Открытое (незашифрованное) сообщение и результат хэш-функции передаются Б.
3. Б получает данные и с помощью такого же алгоритма создает свой собственный результат хэш-функции для сообщения.
4. Бсравнивает собственный результат с полученным от А. Если результаты впадают, это означает, что данные не были изменены в процессе передач. Если совпадения нет, то данные были изменены.[37]
Чтобы гарантировать идентичность отправленного сообщения полученному компьютером Б необходимо выполнить дополнительное действие. После подготовки результат хэширования компьютером А, А шифрует сообщение и результат хэш-функции использованием сеансового ключа, известного компьютеру Б. Когда Б получает сообщение, он расшифровывает его для получения сообщения в открытом виде и результата хэш-функции А. После этого Б может создать свой собственный результат хэш-функции и сравнить его с полученным от А. Если злоумышленник захочет внедрить ложное сообщение, ему сначала понадобится взломать шифр. SHA1 и MD5 являются примерами алгоритмов обеспечения целостности.
Доступность
Основной задачей информационной безопасности является обеспечение доступности данных для уполномоченных лип. Конфиденциальность, секретность и целостность играют очень важную роль, однако, безопасность информации не является единственным элементом, обеспечивающим доступность данных. Также имеют большое значение корректное управление системой и ее поддержание в должном состоянии.
Безопасность информации снижает уровень ее доступности. Если средства контроля не настроены должным образом, то санкционированные пользователи могут не получить нужную информацию. Если поддержка ключей шифрования осуществляется неправильно, то даже лица, обладающие правом доступа к информации, могут потерять возможность расшифровать информацию. Если пароли слишком длинны, пользователи не смогут их запомнить, и на восстановление паролей может потребоваться большое количество времени и денег.[38]
Шифрующая файловая система (EFS) — это бесплатная утилита шифрования в Microsoft Windows. По умолчанию обычные пользователи могут шифровать файлы и настраивать папки так, чтобы каждый записываемый в них файл шифровался. При этом используется как симметричный ключ, так и пара ключей «открытый/секретный». Симметричный ключ применяется для шифрования файла, а открытый ключ пользователя – для защиты симметричного. Ключевая пара ассоциируется с личностью пользователя, и только он имеет доступ к секретному ключу.
Еще одной проблемой является отказ от авторства. Для ее решения используется цифровая подпись.
Цифровые подписи создаются посредством шифрования на открытом ключе. В данном случае, секретный ключ отправителя используется для шифрования сообщения, а открытый ключ отправителя — для расшифровки. Если сообщение расшифровывается с помощью соответствующего открытого ключа, его отправитель подлинный.
В следующих шагах описывается процесс, выполняемый на компьютере А для отправки сообщения компьютеру Б с цифровой подписью.
1. А создает результат хэширования сообщения.
2. А использует свой секретный ключ дня шифрования результата хэширования.
3. А отправляет сообщение и зашифрованный результат хэширования компьютеру Б.
4. В использует открытый ключ пользователя А для расшифровки результата хэширования. Если с помощью открытого ключа удается расшифровать результат хэширования, то секретный ключ А использовался для его шифрования. (Если один ключ из пары применяется для шифрования данных, то только с помощью другого ключа из этой пары можно расшифровать их.) Так как секретный ключ пользователя А доступен только пользователю А, то можно утверждать, что зашифрованный результат хэширования поступил именно от компьютера А.
5. Б использует тот же алгоритм, что и А, для создания нового результата хэширования сообщения.
6. Б сравнивает два результата хэширования сообщений. Если они совпадают, то сообщение не было изменено (подтверждение целостности). В случае совпадения можно утверждать, что сообщение поступило от пользователя А и только от него, так как в шаге 4 было выяснено, что результат хэширования получен от А (это гарантирует невозможность отказа от авторства).[39]
Цифровая подпись не только подтверждает отправителя сообщения. Она также гарантирует, что ПО было разработано компанией, которой вы доверяете. Таким образом, подписаны сценарии Microsoft ActiveX, макросы Office и проверенные драйверы оборудования. Если секретные ключи надежно связаны с производителями ПО и содержатся в секрете, и вы доверяете разработчикам, то можно автоматизировать принятие ПО, в то же время предотвращая выполнение на вашем компьютере постороннего неизвестного кода.
Это не значит, что программа не содержит уязвимостей, а также вредоносный код. Вирус или «троянский конь» могут быть подписаны владельцем ключа подписи точно так же, как и остальные программы. Данный подход лишь позволяет с точностью знать, кто именно является автором кода. Вам решать, какие подписи вы будете считать приемлемыми; это зависит от того, насколько вы доверяете производителям ПО.
Ключевым аспектом в реализации и использовании шифрования с открытым ключом является уверенность в том, что секретные ключи в действительности содержатся в секрете и что присвоение ключей личности происходит с прохождением аутентификации. В современной криптографии с открытым ключом при присвоении ключей личности применяется сертификат. Он содержит информацию о владельце ключей и центре сертификации, а также копию открытого ключа, и подписан центром сертификации.
Сертификаты издаются самими организациями посредством внутренних центров сертификации либо приобретаются в открытых центрах сертификации, таких как VeriSign. Microsoft приобретает сертификаты для подписи ПО VeriSign, и однажды два сертификата Microsoft на программное обеспечение по ошибке были присвоены другой организации. Очевидно, система аутентификации VeriSign дала сбой. К счастью, аудиторы компании обнаружили ошибку и быстро оповестили Microsoft и пользователей.
Вирусы и антивирусы
Слово «вирусы» давно и хорошо знакомо пользователям компьютеров. Оно давно переросло свое первоначальное значение и теперь часто употребляется для обозначения любых вредоносных программ, способных «размножаться», распространяясь с компьютера на компьютер и заражая подчас целые компьютерные сети – вплоть до глобальных эпидемий в интернете.
Это «классические» вирусы, сетевые и почтовые черви, «троянские кони», backdoor-программы и др.
Результатом работы вируса может быть:
· относительно безвредное вмешательство в работу компьютера – например, злая шутка, когда экран гаснет и выдается сообщение, что ваш жесткий диск отформатирован;
· нанесение реального вреда – когда винчестер действительно форматируется, или стираются важные файлы;
· настоящее преступление – когда с помощью троянских программ злоумышленники крадут номера ваших кредитных карт, пароли доступа, другую конфиденциальную информацию.
Первый интернет-вирус, которому удалось нанести ущерб, назывался Morris, но его последствия не были особенно ужасными.. С другой стороны, в мае 2000 года было положено начало значительным переменам в компьютерной индустрии, касающимся вирусов. Один филиппинец написал вирус, концепция которого была неизвестна. Это был скрипт, который сам себя распространял посредством электронной почты. Этот вирус был отнюдь не первым Интернет-червем, но стал самым известным. Назывался он «Love letter*, но также был известен как «I love you».
Этот вирус был не смертелен (т.е. он не уничтожал систему инфицированного компьютера), но серьезен, потому что активировался, как только пользователь открывал инфицированное приложение. После запуска он рассылал себя по всем адресам, указанным в контактах почтового клиента пользователя. Таким образом, он задействовал большой объем ресурсов (некоторые почтовые серверы были испорчены, потому что не смогли справиться с такой нагрузкой), и это означало начало новой эры вирусов, которые становятся все более опасными и сложными. Тем не менее, основные свойства вирусов не меняются и остаются общими для всех. Они смертельны, потому что ничего пользователи видят письмо от друга и не боятся его открыть, но как только открывают его, вирус поражает их компьютер и распространяется дальше.
Вирусы становятся все более и более опасными, и теперь они вполне в силах причинить ущерб общемирового масштаба. Первый вирус, который получал доступ к документам компьютера пользователя, назывался Sircam. Он инфицировал их и рассылал по адресам, занесенным в книгу контактов пользователя.
Червь представляете собой вредоносный код, который копирует себя с помощью известных средств. Таким образом, ему не нужно распространяться через электронную почту. Червь Red Code был одним из первых, кто использовал дефект в ПО Информационного Сервера Интернета компании Microsoft и побил рекорд скорости инфицирования. Red Code был разработан, чтобы в определенный день атаковать веб-сайт Белого Дома. Существовали версии, согласно которым к его созданию приложило руку правительство Китая. В качестве меры предосторожности сайт был закрыт на реконструкцию в тот день, чтобы избежать атаки. [40]
Хотя эти вирусы и черви были пионерами своего дела, известны и другие: KJez, SQL Slammer, Goner и В. Trans.
Кто же создает вирусы?
1. Хакеры. Фактически большинство вирусов пишут хакеры. Обычно они создают вирусы, чтобы прославиться или показать, что они умнее, чем те, в чьи обязанности входит, зашита от вирусов.
2. Правительства. Известно, что правительства также принимают участие в создании вирусов. Вернитесь к разделу «Эволюция вирусов» чуть выше, в котором упоминается вирус Red Code. Или есть еще один известный факт: вирус «Волшебный фонарь» был создан ФБР. Предполагалось, что инфраструктура Америки подвержена риску кибер-атак.
3. Рассерженные сотрудники. Меньшую часть создателей вирусов составляют рассерженные сотрудники. Однако и они вносят свою лепту в это нелегкое дело. Обычно они не хотят в открытую саботировать работу корпоративной сети, потому что боятся быть пойманными. Вместо этого они пишут вирусы и распространяют их по офису.
Создать вирус (или получить готовый) не так сложно, как можно подумать. Многие генераторы вирусов свободно доступны в Интернете. Также существует множество компаний, которые предлагают вирусы с определенными возможностями. Такие компании даже дают гарантию, что если их вирус будет определен антивирусным ПО в течение года, они переделают код так, чтобы обойти программу.
После каждой волны поражений вирусами антивирусные компании обвиняются в том, что не могут своевременное средство защиты.
В настоящее время панацеи от вирусов не существует. Каждый новый вирус легко поражает свои цели, пока не найден способ борьбы с ним; по этой причине, даже если обновление антивирусного ПО становится доступным всего через нескольких часов после того, как вирус начал распространяться, оно вам не поможет, если ваша система уже поражена.
Как узнать, что вирус – это вирус? Казалось бы, простой вопрос, но следующая история заставляет задуматься.
þпример
ФБР подозревало некоего Никодемо С. Скарфо-мл. в ростовщичестве и проведении незаконных азартных игр. Однако агенты не могли этого доказать, потому что он зашифровал все свои документы с помощью средств PGP. Чтобы разрешить это затруднение, был установлен небольшой разработанный ФБР «троян», который назывался «Волшебный фонарь». Чтобы сделать историю не такой долгой, они украли его пароли и предъявили обвинение.
Антивирусная программа (антивирус) — изначально программа для обнаружения и лечения других программ, заражённых компьютерными вирусами, а также для профилактики — предотвращения заражения файла вирусом (например, с помощью вакцинации).
Многие современные антивирусы позволяют обнаруживать и удалять также троянские программы и прочие вредоносные программы. И напротив — программы, создававшиеся как файрволы, также получают функции, роднящие их с антивирусами.
Первые наиболее простые антивирусные программы появились почти сразу после появления вирусов. Сейчас разработкой антивирусов занимаются крупные компании. Как и у создателей вирусов, в этой сфере также сформировались оригинальные приёмы — но уже для поиска и борьбы с вирусами. Современные антивирусные программы могут обнаруживать десятки тысяч вирусов.
Антивирусное программное обеспечение состоит из компьютерных программ, которые пытаются обнаружить, предотвратить размножение и удалить компьютерные вирусы и другие вредоносные программы.
Антивирусные программы следует обновлять ежедневно или через определенный администратором период времени. Однако только поставщик ПО решает, как часто будут выпускаться новые базы данных сигнатур. Устаревшее ПО не будет эффективно против новых вирусов.
В настоящее время новые технологии пытаются бороться с вирусами более эффективно. Большинство из них уделяет особое внимание «стратегии песочницы» (описанной ниже), причем некоторые используют в качестве «песочницы» процессы, а часть — ОС в целом.
«Стратегия песочницы» представляет собой изолирование ПО путем помещения его в четко определенную среду. К примеру, Java – это «песочница». Если за ее пределами был запущен вирус, она должна определить, что он пытается инфицировать либо удалить файлы, или выйти в Интернет. Наиболее вероятно, что настройки «песочницы» не позволят вирусу сделать этого, таким образом, она будет обращаться с программным обеспечением как с враждебным элементом, удаляя его или ограничивая его возможности.
Некоторые продукты уже используют различные варианты «песочницы». Один из примеров — программа Storm Watch, разработанная компанией Okena.[41]
Антивирусное программное обеспечение обычно использует два отличных друг от друга метода для выполнения своих задач:
· Сканирование файлов для поиска известных вирусов, соответствующих определению в антивирусных базах
· Обнаружение подозрительного поведения любой из программ, похожего на поведение заражённой программы.
Метод «Обнаружение, основанное на сигнатурах». Это когда антивирусная программа, просматривая файл, обращается к антивирусным базам, которые составлены производителем программы-антивируса. В случае соответствия какого либо участка кода просматриваемой программы известному коду (сигнатуре) вируса в базах, программа-антивирус может по запросу выполнить одно из следующих действий:
· Удалить инфицированный файл.
· Заблокировать доступ к инфицированному файлу.
· Отправить файл в карантин (то есть сделать его недоступным для выполнения с целью недопущения дальнейшего распространения вируса).
· Попытаться «вылечить» файл, удалив вирус из тела файла.
Для того, чтобы такая антивирусная программа успешно работала на протяжении долгого времени, в базу сигнатур вирусов нужно периодически загружать (обычно, через Интернет) данные о новых вирусах. Если бдительные и имеющие склонность к технике пользователи определят вирус по горячим следам, они могут послать зараженные файлы разработчикам антивирусной программы, а те затем добавляют информацию о новых вирусах в свои базы.
Для многих антивирусных программ с базой сигнатур характерна проверка файлов в тот момент, когда операционная система создаёт, открывает, закрывает или посылает файлы по почте. Таким образом, программа может обнаружить известный вирус сразу после его получения. При этом системный администратор может установить в антивирусной программе расписание для регулярной проверки (сканирования) всех файлов на жёстком диске компьютера.
Хотя антивирусные программы, созданные на основе поиска сигнатур, при обычных обстоятельствах могут достаточно эффективно препятствовать вспышкам заражения компьютеров, авторы вирусов стараются держаться впереди таких программ-антивирусов, создавая «олигоморфические», «полиморфические» и, самые новые, «метаморфические» вирусы, в которых некоторые части шифруются или искажаются так, чтобы было невозможно обнаружить совпадение с определением в словаре вирусов.
Контрольные вопросы
1. Что означает термин «конфиденциальность информации»?
2. В чем отличие «Triple DES» от «DES»?
3. Что означает термин «целостность информации»?
4. Что означает термин «доступность информации»?
5. Что означает аббреиатура «EFS»?
6. Что означает аббреиатура «SAN»?
7. Как назывался первый вирус?
8. По какому принципу работает антивирусное ПО?
Библиографический список
Основная литература:
1. Ярочкин В.И. Информационная безопасность: учебник для студентов высших учеб. заведений, обучающихся по гуманитарным и социально-экономическим специальностям / В. И. Ярочкин. – М.: Акад. проект, 2008. – C.112-117.
Дополнительная литература:
1. Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006.
2. Мэйволд Э. Безопасность сетей: практическое пособие / Э. Мэйволд; [пер. с англ.] – М.: «СП ЭКОМ», 2005.
3. Щеглов А.Ю. Защита компьютерной информации от несанкционированного доступа / А. Ю. Щеглов. – СПб.: Наука и техника, 2004. – С.48-145.
Тема 6. Межсетевые экраны
6.1 Понятие межсетевого экрана
6.2 Классификация МЭ
6.3 Шлюзы приложений и контурного уровня
6.4 Межсетевые экраны с адаптивной проверкой пакетов
§
Межсетевой экран или сетевой экран — комплекс аппаратных или программных средств, осуществляющий контроль и фильтрацию проходящих через него сетевых пакетов на различных уровнях модели OSI в соответствии с заданными правилами.
Основной задачей сетевого экрана является защита компьютерных сетей или отдельных узлов от несанкционированного доступа. Также сетевые экраны часто называют фильтрами, так как их основная задача — не пропускать (фильтровать) пакеты, не подходящие под критерии, определённые в конфигурации (рис.6.1).
Межсетовой экран имеет несколько названий. Рассмотрим их.
Брандмауэр (нем. Brandmauer) — заимствованный из немецкого языка термин, являющийся аналогом английского firewall в его оригинальном значении (стена, которая разделяет смежные здания, предохраняя от распространения пожара). Интересно, что в области компьютерных технологий в немецком языке употребляется слово «firewall».
Файрвол, файервол, фаервол — образовано транслитерацией английского термина firewall, эквивалентного термину межсетевой экран, в настоящее время не является официальным заимствованным словом в русском языке.

Рис.6.1 Типовое размещение МЭ в корпоративной сети
Есть два четко различающихся типа межсетевых экранов, повседневно используемых в современном интернет. Первый тип правильнее называть маршрутизатор с фильтрацией пакетов. Этот тип межсетевого экрана работает на машине, подключенной к нескольким сетям и применяет к каждому пакету набор правил, определяющий переправлять ли этот пакет или блокировать. Второй тип, известный как прокси сервер, реализован в виде демонов, выполняющих аутентификацию и пересылку пакетов, возможно на машине с несколькими сетевыми подключениями, где пересылка пакетов в ядре отключена.
Иногда эти два типа межсетевых экранов используются вместе, так что только определенной машине (известной как защитный хост (bastion host)) позволено отправлять пакеты через фильтрующий маршрутизатор во внутреннюю сеть. Прокси сервисы работают на защитном хосте, что обычно более безопасно, чем обычные механизмы аутентификации.
Межсетевые экраны имеют различный вид и размер, и иногда это просто набор нескольких различных компьютеров. Здесь под межсетевым экраном подразумевается компьютер или компьютеры между доверенными сетями (например, внутренними) и недоверенными (например, Интернетом), которые проверяют весь проходящий между ними трафик. Эффективные межсетевые экраны обладают следующими свойствами:
· Все соединения должны проходить через межсетевой экран. Его эффективность сильно снижается, если есть альтернативный сетевой маршрут, — несанкционированный трафик будет передан в обход межсетевого экрана.
· Межсетевой экран пропускает только авторизованный трафик. Если он не способен четко дифференцировать авторизованный и неавторизованный трафик, или если он настроен на пропуск опасных или ненужных соединений, то польза от него значительно снижается. При сбое или перегрузке межсетевой экран должен всегда переключаться в состояние «отказ» или закрытое состояние. Лучше прервать соединения, чем оставить системы незащищенными.
· Межсетевой экран должен противостоять атакам против самого себя, так как для его защиты не устанавливаются дополнительные устройства.
Межсетевой экран можно сравнить с замком на входной двери. Он может быть самым надежным в мире, но если дверь не заперта, злоумышленники смогут запросто ее открыть. Межсетевой экран защищает сеть от несанкционированного доступа, как замок — вход в помещение. Стали бы вы оставлять ценные вещи дома, если бы замок на входной двери был ненадежным?
Межсетевой экран – это лишь элемент обшей архитектуры безопасности. Однако он играет очень важную роль в структуре сети и, как любое другое устройство, имеет свои преимущества и недостатки.
Преимущества межсетевого экрана:
· Межсетевые экраны – это прекрасное средство реализации корпоративных политик безопасности. Их следует настраивать на ограничение соединений согласно мнению руководства по этому вопросу.
· Межсетевые экраны ограничивают доступ к определенным службам. Например, общий доступ к веб-серверу может быть разрешен, а к telnet и другим непубличным службам – запрещен. Большинство межсетевых экранов предоставляет селективный доступ посредством аутентификации.
· Цель применения межсетевых экранов вполне конкретна, поэтому не нужно искать компромисс между безопасностью и удобством использования.
· Межсетевые экраны – это отличное средство аудита. При достаточном объеме пространства на жестких дисках или при поддержке удаленного ведения журнала они могут заносить в журналы информации о любом проходящем трафике.
· Межсетевые экраны обладают очень хорошими возможностями по оповещению персонала о конкретных событиях.
Недостатки межсетевых экранов:
· Межсетевые экраны не обеспечивают блокировку того, что было авторизовано. Они разрешают установку обычных соединений санкционированных приложений, но если приложения представляют угрозу, межсетевой экран не сможет предотвратить атаку, воспринимая это соединение как авторизованное. Например, межсетевые экраны разрешают прохождение электронной почты на почтовый сервер, но не находят вирусы в сообщениях.
· Эффективность межсетевых экранов зависит от правил, на соблюдение которых они настроены. Правила не должны быть слишком лояльны.
· Межсетевые экраны не предотвращают атаки социального инжиниринга или атаки авторизованного пользователя, который умышленно и злонамеренно использует свой адрес.
· Межсетевые экраны не могут противостоять некачественным подходам к администрированию или некорректно разработанным политикам безопасности.
· Межсетевые экраны не предотвращают атаки, если трафик не проходит через них.[42]
Некоторые люди предсказывали конец эры межсетевых экранов, которые с трудом разграничивают санкционированный и несанкционированный трафик приложений. Многие приложения, например средства мгновенного обмена сообщениями, становятся все более и более мобильными и совместимыми с работой через многие порты. Таким образом, они могут действовать в обход межсетевого экрана через порт, открытый для другой авторизованной службы. Кроме того, все больше приложений предусматривают передачу трафика через другие авторизованные порты, доступные с наибольшей долей вероятности. Примерами таких популярных приложений являются HTTP-Tunnel (www.http-tunnel.com) и SocksCap (www.socks.permeo.com). Более того, разрабатываются приложения, специально предназначенные для обхода межсетевых экранов, например приложение удаленного контроля над компьютерами GoToMyPC (www.gotomypc.com).
Однако межсетевые экраны не сдаются без боя. Текущие релизы ПО от крупнейших производителей содержат усовершенствованные средства по предотвращению вторжений и возможности экранирования прикладного уровня. Такие межсетевые экраны выявляют и фильтруют несанкционированный трафик, например, приложений по мгновенному обмену сообщениями, пытающийся проникнуть через порты, открытые для других санкционированных служб. Кроме того, сейчас межсетевые экраны сопоставляют результаты функционирования с опубликованными стандартами протоколов и признаками различной активности (аналогично антивирусному ПО) для обнаружения и блокировки атак, содержащихся в передаваемых пакетах. Таким образом, они остаются основным средством зашиты сетей. Однако если защита приложений, обеспечиваемая межсетевым экраном, недостаточна или неспособна к корректному разграничению авторизованного и неавторизованного трафика, следует рассмотреть альтернативные компенсирующие методы безопасности.[43]
Межсетевым экраном может быть маршрутизатор, персональный компьютер, специально сконструированная машина или набор узлов, специально настроенный на защиту частной сети от протоколов и служб, которые могут злонамеренно использоваться вне доверенной сети.
Метод защиты зависит от самого межсетевого экрана, а также от политик или правил, которые на нем настроены. Сегодня используются четыре технологии межсетевых экранов:
· Пакетные фильтры.
· Прикладные шлюзы.
· Шлюзы контурного уровня.
· Устройства адаптивной проверки пакетов.[44]
Прежде чем изучать функции межсетевых экранов, рассмотрим пакет протоколов контроля передачи и Интернета (TCP/IP).
TCP/IP обеспечивает метод передачи данных с одного компьютера на другой через сеть. Задача межсетевого экрана – контроль над передачей пакетов TCP/IP между узлами и сетями.
TCP/IP — это набор протоколов и приложений, выполняющих отдельные функции в соответствии с конкретными уровнями модели взаимодействия открытых систем (OSI). TCP/IP осуществляет независимую передачу блоков данных через сеть в форме пакетов, и каждый уровень модели TCP/IP добавляет в пакет заголовок. В зависимости от используемой технологии межсетевой экран обрабатывает информацию, содержащуюся в этих заголовках, в целях контроля доступа. Если он поддерживает разграничение приложений как шлюзы приложений, то контроль доступа также может осуществляться по самим данным, содержащимся в теле пакета.
Контроль информационных потоков состоит в их фильтрации и преобразовании в соответствие с заданным набором правил. Поскольку в современных МЭ фильтрация может осуществляться на разных уровнях эталонной модели взаимодействия открытых систем (OSI), МЭ удобно представить в виде системы фильтров. Каждый фильтр на основе анализа проходящих через него данных, принимает решение – пропустить дальше, перебросить за экран, блокировать или преобразовать данные (рис.6.2).

Рис.6.2 Схема фильтрации в МЭ.
Неотъемлемой функцией МЭ является протоколирование информационного обмена. Ведение журналов регистрации позволяет администратору выявить подозрительные действия, ошибки в конфигурации МЭ и принять решение об изменении правил МЭ.
Классификация экранов
Выделяют следующую классификацию МЭ, в соответствие с функционированием на разных уровнях МВОС (OSI):
· Мостиковые экраны (2 уровень OSI).
· Фильтрующие маршрутизаторы (3 и 4 уровни OSI).
· Шлюзы сеансового уровня (5 уровень OSI).
· Шлюзы прикладного уровня (7 уровень OSI).
· Комплексные экраны (3-7 уровни OSI).

Рис.6.3 Модель OSI
Мостиковые МЭ
Данный класс МЭ, функционирующий на 2-м уровне модели OSI, известен также как прозрачный (stealth), скрытый, теневой МЭ. Мостиковые МЭ появились сравнительно недавно и представляют перспективное направление развития технологий межсетевого экранирования. Фильтрация трафика ими осуществляется на канальном уровне, т.е. МЭ работают с фреймами (frame, кадр). К достоинствам подобных МЭ можно отнести:
· Нет необходимости в изменении настроек корпоративной сети, не требуется дополнительного конфигурирования сетевых интерфейсов МЭ.
· Высокая производительность. Поскольку это простые устройства, они не требуют больших затрат ресурсов. Ресурсы требуются либо для повышения возможностей машин, либо для более глубокого анализа данных.
· Прозрачность. Ключевым для этого устройства является его функционирование на 2 уровне модели OSI. Это означает, что сетевой интерфейс не имеет IP-адреса. Эта особенность более важна, чем легкость в настройке. Без IP-адреса это устройство не доступно в сети и является невидимым для окружающего мира. Если такой МЭ недоступен, то, как его атаковать? Атакующие даже не будут знать, что существует МЭ, проверяющий каждый их пакет.
Фильтрующие маршрутизаторы
Маршрутизатор это машина, пересылающая пакеты между двумя или несколькими сетями. Маршрутизатор с фильтрацией пакетов запрограммирован на сравнение каждого пакета со списком правил, перед тем как решить, пересылать его или нет.
Packet-filtering firewall (МЭ с фильтрацией пакетов)
Межсетевые экраны обеспечивают безопасность сетей, фильтруя сетевые соединения по заголовкам TCP/IP каждого пакета. Они проверяют эти заголовки и используют их для пропуска и маршрутизации пакета к пункту назначения или для его блокировки посредством сброса или отклонения (т. е. сброса пакета и уведомления об этом отправителя).
Фильтры пакетов выполняют разграничение, основываясь на следующих данных:
· IP-адрес источника;
· IP-адрес назначения;
· используемый сетевой протокол (TCP, UDP или ICMP);
· исходный порт TCP или UDP;
· порт TCP или UDP назначения;
· тип сообщения ICMP (если протоколом является ICMP).
Хороший фильтр пакетов также может функционировать на базе информации, не содержащейся непосредственно в заголовке пакета, например, о том, на каком интерфейсе происходит получение пакета. По сути, фильтр пакетов содержит недоверенный, или «грязный» интерфейс, набор фильтров и доверенный интерфейс. «Грязная» сторона граничит с недоверенной сетью и первой принимает трафик. Проходя через нее, трафик обрабатывается согласно набору фильтров, используемому межсетевым экраном (эти фильтры называются правилами). В зависимости от них трафик либо принимается и отправляется далее через «чистый» интерфейс в пункт назначения, либо сбрасывается или отклоняется. Какой интерфейс является «грязным», а какой – «чистым», зависит от направления движения конкретного пакета (качественные фильтры пакетов действуют и для исходящего, и для входящего трафика).
Стратегии реализации пакетных фильтров различны, но есть основные методы, которыми следует руководствоваться.
· Построение правил – от наиболее конкретных до наиболее общих. Большинство фильтров пакетов осуществляет обработку с помощью наборов правил «снизу вверх» и останавливает ее, когда обнаруживается соответствие. Внедрение в верхнюю часть набора правил более конкретных фильтров делает невозможным сокрытие общим правилом специфичного правила далее по направлению к нижнему элементу набора фильтров.
· Размещение наиболее активных правил в верхней части набора фильтров. Экранирование пакетов занимает значительную часть процессорного времени, и. как уже говорилось ранее, фильтр пакетов прекращает обработку пакета, обнаружив его соответствие какому-либо правилу. Размещение популярных правил на первом или втором месте, а не на 30 или 31 позиции, экономит процессорное время, которое потребовалось бы для обработки пакета более чем 30 правилами. Когда требуется единовременная обработка тысяч пакетов, не следует пренебрегать экономией мощности процессора.
Определение конкретных и корректных правил фильтрации пакетов — очень сложный процесс. Следует оценить преимущества и недостатки пакетных фильтров. Приведем некоторые преимущества.
· Высокая производительность. Фильтрация может осуществляться с линейной скоростью, сравнимой с быстродействием современных процессоров.
· Окупаемость. Пакетные фильтры являются относительно недорогими или вовсе бесплатными. Большая часть маршрутизаторов снабжена возможностями по фильтрации пакетов, интегрированными в их операционные системы.
· Прозрачность. Действия пользователя и приложения не требуется корректировать, чтобы обеспечить прохождение пакетов через пакетный фильтр.
· Широкие возможности по управлению трафиком. Простые пакетные фильтры можно использовать для сброса очевидно нежелательного трафика на сетевом периметре и между различными внутренними подсетями (например, применять граничные маршрутизаторы для сброса пакетов с исходными адресами, соответствующими внутренней сети (речь идет о подмененных пакетах), «частным» IP-адресам (RFC 1918) и пакетам вешания).
Рассмотрим недостатки фильтров пакетов.
· Разрешены прямые соединения между узлами без доверия и доверенными узлами.
· Низкий уровень масштабируемости. По мере роста наборов правил становится все труднее избегать «ненужных» соединений. Со сложностью правил связана проблема масштабируемости. Если невозможно быстро сканировать набор правил для просмотра результата внесенных изменений, придется его упростить.
· Возможность открытия больших диапазонов портов. Из-за динамической природы некоторых протоколов необходимо открывать большие диапазоны портов для правильного функционирования протоколов. Наихудший случай здесь – протокол FTP. FTP требует входящего соединения от сервера к клиенту, и пакетным фильтрам потребуется открыть широкие диапазоны портов для разрешения такой передачи данных.
· Подверженность атакам с подменой данных. Атаки с подменой данных (спуфинг), как правило, подразумевают присоединение фальшивой информации в заголовке TCP/IP. Распространены атаки с подменой исходных адресов и маскировкой пакетов под видом части уже установленных соединений.
Шлюз сеансового уровня
Circuit-level gateway (Шлюз сеансового уровня) — межсетевой экран, который исключает прямое взаимодействие между авторизированным клиентом и внешним хостом. Сначала он принимает запрос доверенного клиента на определенные услуги и, после проверки допустимости запрошенного сеанса, устанавливает соединение с внешним хостом.
После этого шлюз просто копирует пакеты в обоих направлениях, не осуществляя их фильтрации. На этом уровне появляется возможность использования функции сетевой трансляции адресов (NAT, network address translation). Трансляция внутренних адресов выполняется по отношению ко всем пакетам, следующим из внутренней сети во внешнюю. Для этих пакетов IP-адреса компьютеров-отправителей внутренней сети автоматически преобразуются в один IP-адрес, ассоциируемый с экранирующим МЭ. В результате все пакеты, исходящие из внутренней сети, оказываются отправленными МЭ, что исключает прямой контакт между внутренней и внешней сетью. IP- адрес шлюза сеансового уровня становится единственным активным IP- адресом, который попадает во внешнюю сеть.
Особенности:
· Работает на 4 уровне.
· Передает TCP подключения, основываясь на порте.
· Недорогой, но более безопасный, чем фильтр пакетов.
· Вообще требует работы пользователя или программы конфигурации для полноценной работы.
· Пример: SOCKS файрвол.
Шлюз прикладного уровня
Application-level gateways (Шлюз прикладного уровня) – межсетевой экран, который исключает прямое взаимодействие между авторизированным клиентом и внешним хостом, фильтруя все входящие и исходящие пакеты на прикладном уровне модели OSI.
Связанные с приложением программы-посредники перенаправляет через шлюз информацию, генерируемую конкретными сервисами TCP/IP.
Возможности:
· Идентификация и аутентификация пользователей при попытке установления соединения через МЭ;
· Фильтрация потока сообщений, например, динамический поиск вирусов и прозрачное шифрование информации;
· Регистрация событий и реагирование на события;
· Кэширование данных, запрашиваемых из внешней сети.
На этом уровне появляется возможность использования функций посредничества (Proxy).
Для каждого обсуживаемого протокола прикладного уровня можно вводить программных посредников – HTTP-посредник, FTP-посредник и т.д. Посредник каждой службы TCP/IP ориентирован на обработку сообщений и выполнение функций защиты, относящихся именно к этой службе. Также, как и шлюз сеансового уровня, прикладной шлюз перехватывает с помощью соответствующих экранирующих агентов входящие и сходящие пакеты, копирует и перенаправляет информацию через шлюз, и функционирует в качестве сервера-посредника, исключая прямые соединения между внутренней и внешней сетью. Однако, посредники, используемые прикладным шлюзом, имеют важные отличия от канальных посредников шлюзов сеансового уровня. Во-первых, посредники прикладного шлюза связаны с конкретными приложениями программными серверами), а во-вторых, они могут фильтровать поток сообщений на прикладном уровне модели OSI.
Особенности:
· Работает на 7 уровне.
· Специфический для приложений.
· Умеренно дорогой и медленный, но более безопасный и допускает регистрацию деятельности пользователей.
· Требует работы пользователя или программы конфигурации для полноценной работы.
· Пример: Web (http) proxy.
МЭ экспертного уровня
Stateful inspection firewall — межсетевой экран экспертного уровня, который проверяет содержимое принимаемых пакетов на трех уровнях модели OSI: сетевом, сеансовом и прикладном. При выполнении этой задачи используются специальные алгоритмы фильтрации пакетов, с помощью которых каждый пакет сравнивается с известным шаблоном авторизированных пакетов.
Особенности:
· Фильтрация 3 уровня.
· Проверка правильности на 4 уровне.
· Осмотр 5 уровня.
· Высокие уровни стоимости, защиты и сложности.
· Пример: CheckPoint Firewall-1.
Некоторые современные МЭ используют комбинацию вышеперечисленных методов и обеспечивают дополнительные способы защиты, как сетей, так и систем.
«Персональные» МЭ
Этот класс МЭ позволяет далее расширять защиту, допуская управление по тому, какие типы системных функций или процессов имеют доступ к ресурсам сети. Эти МЭ могут использовать различные типы сигнатур и условий, для того, чтобы разрешать или отвергать трафик. Вот некоторые из общих функций персональных МЭ:
· Блокирование на уровне приложений – позволять лишь некоторым приложениям или библиотекам исполнять сетевые действия или принимать входящие подключения
· Блокирование на основе сигнатуры – постоянно контролировать сетевой трафик и блокировать все известные атаки. Дополнительный контроль увеличивает сложность управления безопасностью из-за потенциально большого количества систем, которые могут быть защищены персональным файрволом. Это также увеличивает риск повреждения и уязвимости из-за плохой настройки.
Динамические МЭ
Динамические МЭ объединяют в себе стандартные МЭ (перечислены выше) и методы обнаружения вторжений, чтобы обеспечить блокирование «на лету» сетевых подключений, которые соответствуют определённой сигнатуре, позволяя при этом подключения от других источников к тому же самому порту. Например, можно блокировать деятельность сетевых червей, не нарушая работу нормального трафика.
Схемы подключения МЭ:
· Схема единой защиты локальной сети
· Схема защищаемой закрытой и не защищаемой открытой подсетями
· Схема с раздельной защитой закрытой и открытой подсетей.
Наиболее простым является решение, при котором межсетевой экран просто экранирует локальную сеть от глобальной. При этом WWW-сервер, FTP-сервер, почтовый сервер и другие сервера, оказываются также защищены межсетевым экраном. При этом требуется уделить много внимания на предотвращение проникновения на защищаемые станции локальной сети при помощи средств легкодоступных WWW-серверов.

Рис.6.4 Схема единой защиты локальной сети
Для предотвращения доступа в локальную сеть, используя ресурсы WWW-сервера, рекомендуется общедоступные серверы подключать перед межсетевым экраном. Данный способ обладает более высокой защищенностью локальной сети, но низким уровнем защищенности WWW- и FTP-серверов.
Рис.6.5 Схема защищаемой закрытой и не защищаемой открытой подсетями
§
Термин «шлюз приложения» имеет несколько значений. Это синоним таких понятий, как защитный узел, прокси-шлюз и прокси-сервер. Как уже упоминалось, прокси-службы могут функционировать непосредственно на межсетевом экране или на отдельном сервере, работающем совместно с ним.
Шлюз приложения контролирует доступ по информации пакета на всех семи уровнях модели OSI. Поэтому их часто называют шлюзами с поддержкой разграничения приложений.
Шлюзы приложений обеспечивают более высокий уровень безопасности, нежели пакетные фильтры, но за счет потери прозрачности для контролируемых служб. Они часто выступают в роли посредников для таких приложений, как программы электронной почты, FTP, Telnet, HTTP и т.д. Шлюз приложения играет роль сервера для клиента и клиента для реального сервера, в действительности обрабатывая запросы вместо пользователей, которых он защищает.
Возможность разграничения приложений позволяет межсетевому экрану выполнять дополнительную проверку соединений, которую не может осуществлять базовый фильтр пакетов. Шлюз приложения может проверять тот факт, что данные приложения находятся в приемлемом формате. Он может осуществлять дополнительные функции по аутентификации и записи информации в журнал, а также выполнять преобразование данных, если обладает такой возможностью. Например, шлюз приложения можно настроить на ограничение FTP-соединений, разрешив только команды get и запретив команды put. Это полезно, если требуется разрешить пользователям загружать файлы, одновременно запретив отгружать файлы на FTP-сервер. Шлюз приложения также можно настроить на возможность удаления нежелательного содержимого, например, сценариев ActiveX или Java, с веб-страниц.[45]
Шлюзы приложений можно использовать для зашиты уязвимых служб на защищенных системах. Прямое соединение между конечным пользователем и службой назначения не разрешается. Любые атаки на службу в действительности проводятся против «демона» шлюза, который соответствующим образом упрочнен для противостояния атакам.
Основным преимуществом, связанным с производительностью НТТР-прокси, является возможность кэширования результатов запросов пользователей. Вместо повторного приема веб-сайтов при запросе каждого нового пользователя, HTTP Proxy может кэшировать изначально полученные данные и затем обслуживать дальнейшие запросы из этого кэша. Полоса пропускания используется меньше, и повышается производительность, так как запросы могут обрабатываться локально, без обращения к Интернету. Защита, обеспечиваемая шлюзами приложений, требует некоторых жертв. Ниже перечислены недостатки, связанные с их использованием.
· Более низкая производительность. Каждый запрос в действительности подразумевает два отдельных соединения. Одно устанавливается между пользователем и шлюзом, а другое — между шлюзом и действительным узлом назначения.
· Недостаток прозрачности. Большая часть прокси-серверов требует изменения действий клиентов и пользователей. Нередки случаи, когда клиентское ПО не может работать через прокси-серверы.
· Необходимость в прокси-сервере для каждого приложения. Несмотря на то, что прокси-серверы для популярных служб широко доступны, прокси-серверы для новых или менее популярных служб найти значительно сложнее.
· Ограничения на разграничение приложений. Шлюз должен обладать возможностью разграничения безопасных и небезопасных функций приложения. Если прокси-сервер не может, выполнять такое разграничение или не может выявлять нежелательные пакеты без негативного влияния на нужные операции, степень его полезности снижается.
Шлюзы контурного уровня аналогичны шлюзам приложений, однако, они не могут разграничивать приложения. Они функционируют посредством коммутации TCP-соединений из доверенной сети в недоверенную. Это означает, что прямое соединение между клиентом и сервером никогда не устанавливается, но поскольку шлюзы контурного уровня не распознают протокол приложений, они нуждаются в информации о соединении от клиентов, которым она известна и которые запрограммированы на использование шлюза. Шлюзы приложений используют модифицированные процедуры, а шлюзы контурного уровня – модифицированные клиенты.
Основное преимущество шлюза контурного уровня в том, что он предоставляет службы для многих протоколов и может быть адаптирован к большому количеству соединений. Однако протоколы, требующие совместимости прикладного уровня, такие как FTP, который осуществляет динамическую передачу данных о портах, более адаптированы к шлюзам приложений. (Подробная информация о SOCKS приведена в RFC 1928.)
Есть и другие недостатки, связанные с зашитой сети.
· У клиентов должна быть возможность использовать эти устройства. Некоторые из них нельзя настроить на поддержку шлюзов контурного уровня, что ограничивает их доступ к внешним ресурсам. В других случаях необходимы немалые денежные средства для развертывания приложения, поддерживающего данную функциональность, что может ограничить число приложений или развертывание приложений, способных осуществлять доступ к внешним ресурсам.
· Шлюзы контурного уровня не могут осуществлять проверку на прикладном уровне, поэтому приложения могут использовать TCP-порты, которые были открыты для других легитимных приложений. Некоторые приложения для связи компьютеров или передачи мгновенных сообщений можно настроить на работу на случайных портах, таких как TCP 80. В результате возникает опасность нецелевого применения и использования потенциальных уязвимостей.[46]
§
Межсетевые экраны с адаптивной проверкой пакетов (SPI) пропускают и блокируют пакеты в соответствии с почти таким же набором правил, как и у пакетного фильтра. Но если межсетевой экран распознает различные состояния передачи данных, он осуществляет контроль не только на базе IP-адресов и портов, но также и по значениям SYN, АСК, номерам последовательности и другим данным, содержащимся в заголовке TCP. Фильтры пакетов пропускают или блокируют отдельные пакеты и требуют разрешительные правила для одобрения двусторонних ТСР-соединений. А межсетевые экраны SPI отслеживают состояние каждого сеанса и могут динамически открывать и закрывать порты в соответствии с требованиями различных сеансов.
Межсетевые экраны SPI были разработаны для объединения скоростных качеств и гибкости фильтров пакетов с безопасностью прикладного уровня прокси-серверов. Результатом стал компромисс между двумя типами межсетевых экранов: межсетевой экран SPI не является столь же быстродействующим, как межсетевой экран с фильтрацией пакетов, и не обладает такой же степенью разграничения приложений, как протокол приложений. Однако было доказано, что данный компромисс очень эффективен при реализации строгих политик сетевого периметра.[47]
Когда пакет поступает на интерфейс межсетевого экрана SPI, в механизме проверки происходят следующие действия.
· Заголовки TCP проверяются для определения, является ли пакет частью уже существующего и действующего потока передаваемых данных. Межсетевой экран, фильтрующий пакеты, посредством изучения состояния бита SYN (установлен/пуст) ищет признаки того, что пакет является частью существующего информационного TCP-взаимодействия. Межсетевой экран SPI имеет активную таблицу всех текущих сеансов и сравнивает входящие пакеты с се данными в процессе контроля доступа. Эта таблица, называемая таблицей соединений, отслеживает исходные и конечные IP-адреса, а также исходный и конечный порты для каждого сеанса. Кроме того, отслеживаются номера последовательности TCP, помогающие межсетевому экрану связывать каждый пакет с корректным сеансом.
· В зависимости от используемого протокола пакет может подвергаться дальнейшей проверке. Производители межсетевых экранов SPI реализовали подобную функциональность шлюза приложений для проверки прикладного уровня пакета и разграничения доступа на базе его содержимого.
· Если в пакете отсутствует соответствующая запись в таблице соединений, межсетевой экран проверит пакет с использованием установленного набора правил.
· Если после проверки источника, пункта назначения, протокола и содержимого пакета передача пакета разрешается, межсетевой экран передает пакет в пункт назначения, а затем создает или обновляет свою таблицу соединений. Внесенная запись соединения будет использоваться для проверки возвратного пакета вместо определения отдельного правила.[48]
Межсетевой экран, как правило, использует таймеры и систему идентификации TСP-пакета с помощью набора битов FIN, чтобы определить, когда нужно удалять запись из таблицы соединений.
Этот процесс имеет преимущество перед технологией фильтрации пакетов. Таблица соединений весьма значительно снижает вероятность того, что пакет будет замаскирован под часть имеющегося соединения. Так как межсетевые экраны с фильтрацией пакетов не ведут запись ожидающих соединений, они должны базироваться в своей работе на формате пакета, чтобы выяснить, является ли пакет частью ранее утвержденного соединения. Это обуславливает возможность подмены (маскировки) TCP-пакетов и не обеспечивает какого-либо метода определения состояния пакетов UDP или ICMP.
Преимущество межсетевых экранов SPI перед межсетевыми экранами с фильтрацией пакетов – в возможности изучать данные различных типов пакетов.
Основной недостаток межсетевого экрана SPI в том, что он разрешает прямые соединения между доверенными и недоверенными узлами. Здесь следует полагаться на процесс узла, а не на защищенную прокси-службы.
Контрольные вопросы
1. В чем состоит отличие брандмауэра от межсетевого экрана?
2. В чем заключаются преимущества и недостатки межсетевого экрана?
3. Что такое «динамический МЭ»?
4. Какие виды МЭ вы знаете?
5. В чем отличие «шлюза приложений» от «шлюза контурного уровня»?
6. Что означает аббревиатура «SPI» и для чего это используется?
Библиографический список
Основная литература:
1. Ярочкин В.И. Информационная безопасность: учебник для студентов высших учеб. заведений, обучающихся по гуманитарным и социально-экономическим специальностям / В. И. Ярочкин. – М.: Акад. проект, 2008. – C.79-89.
Дополнительная литература:
1. Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006.
2. Брэгг Р. Безопасность сети на основе Microsoft Windows Server 2003 / Р. Брэгг; [пер. с англ. под общ. ред. А. Е. Соловченко]. – СПб.: Питер, 2005. – 672 с.
3. Мэйволд Э. Безопасность сетей: практическое пособие / Э. Мэйволд; [пер. с англ.] – М.: «СП ЭКОМ», 2005.
4. Щеглов А.Ю. Защита компьютерной информации от несанкционированного доступа / А. Ю. Щеглов. – СПб.: Наука и техника, 2004. – С.373-376.
§
Распространенные IDS.
· Очень часто используются системы IDS, которые встроены в прокси-серверы и брандмауэры (например, в тот же самый Kerio WinRoute Firewall или Microsoft ISA Server). Обычно такие системы IDS не отличаются большой функциональностью – в них встроено буквально несколько правил обнаружения вторжений, например, на сканирование портов). Тем не менее даже такое решение может успешно применяться для немедленного реагирования на нападения.
· Очень распространенная система IDS (фактически классическая) – это система SNORT (www.snort.org). Изначально она была создана под Unix, затем перенесена и под платформу Windows. В классическом варианте необходимо руками редактировать текстовый файл конфигурации, но существует и графическое приложение для настройки SNORT под Windows – IDSCenter. SNORT, «упакованный» для более удобной установки и настройки под Windows и заранее переконфигурированный, называется EagleX (все перечисленные утилиты находятся в каталоге IDS на компакт-диске). К плюсам SNORT можно отнести надежность, большое количество документации и дополнительных утилит, а также бесплатность (утилита поставляется с открытым исходным кодом). К недостаткам – сложность в установке и настройке, а также то, что программа требует большого количества компонентов, которые необходимо доустанавливать отдельно (Apache, Perl, mySQL и т.п.). Фактически сейчас SNORT является стандартом де-факто для систем обнаружения вторжений. Его распространенность можно сравнить, например, с распространенностью Web-сервера Apache или DNS-сервера BIND.
· Существует большое количество коммерческих систем обнаружения вторжений (как правило, очень дорогих, но чрезвычайно мощных, с автоматически обновляемыми сигнатурами атак). В качестве примеров таких систем можно привести McAfee Entercept или ETrust Intrusion Detection фирмы Computer Associates.
· Есть и персональные системы обнаружения атак, которые предназначены для защиты единственного рабочего компьютера. Обычно они очень просты в настройке и нересурсоемки. К одной из самых удачных программ такого рода можно отнести Internet Periscope. Помимо обнаружения вторжений, эта система умеет также в автоматическом режиме находить сведения о домене и IP-сети, из которой пришел злоумышленник, показывать координаты для контактов его провайдера и т.п.
· В отдельный класс IDS можно отнести специальные программы, которые проводят не анализ сетевого трафика, а постоянный мониторинг журналов событий Windows (обычно при помощи них можно также настроить аудит). К таким системам относится, например, GFI SELM.
· Конечно, имеются также аппаратные системы обнаружения вторжений (часто объединенные с аппаратными брандмауэрами). Наиболее распространены такие устройства фирм CheckPoint и NetScreen.
Узловые IDS
Узловые IDS (HIDS) устанавливаются на узле, который они будут отслеживать. Узлом может быть сервер, рабочая станция или любое другое сетевое устройство (например, принтер, маршрутизатор или шлюз). HIDS устанавливает службу или демон либо изменяет ядро операционной системы или приложение для получения полномочий первичной проверки. HIDS могут прослушивать сетевой трафик отслеживаемого узла и прекрасно справляются с мониторингом и составлением отчетов о прямых взаимодействиях на прикладном уровне. При проведении прикладных атак возможно внесение изменений в память, выполнение злонамеренно искаженных запросов, переполнение буфера и попытки изменения файлов. Система HIDS проверяет каждую входящую команду, ищет признаки вредоносного воздействия или просто отслеживает несанкционированное изменение файлов.[49]
HIDS, предназначенные для контроля целостности файлов (используют моментальные «снимки» файлов и контрольные суммы), создают криптографический хэш важных файлов в известном «чистом» состоянии, а затем, через определенное время, проверяют эти файлы посредством сравнения. При обнаружении изменений администратору выдается предупреждение.
Системы HIDS, отслеживающие выполняемые в системах действия, осуществляют мониторинг в режиме реального времени и перехват потенциально вредоносных действий. Например, Windows HIDS выдает оповещения о попытках изменения реестра, манипуляциях с файлами, доступе в систему, изменении пароля, эскалации привилегий и о других изменениях, вносимых непосредственно в структуру и данные узла. На узле Unix система HIDS осуществляет мониторинг попыток доступа к исполняемым файлам системы, попыток загрузки файла /etc/passwd, использования команд setuid и setgid, а также внесения дополнений в «хрон» (от англ. Сгоп — демон ОС Unix, исполняющий предписанные команды в строго определенные дни и часы, указанные в специальном файле с именем crontab). HIDS, отслеживающая действия на веб-сервере, выполняет мониторинг входящих запросов и выдает предупреждения о злоумышленно составленных HTML-откликах, атаках с использованием межсайтовых сценариев или о внедрении кода SQL.
Раннее предупреждение и предотвращение являются основными преимуществами систем HIDS, действующими в режиме реального времени. HIDS реального времени постоянно отслеживает систему и вызовы приложений, поэтому она может изначально остановить развитие потенциально опасных событий. С другой стороны, мониторинг в режиме реального времени занимает значительную часть процессорного времени, что неприемлемо, если речь идет о защите высокопроизводительного оборудования, например популярного веб-сервера или крупного сервера базы данных. Мониторинг действий в режиме реального времени лишь позволяет обнаружить ранее определенные угрозы, а обновление признаков атак происходит несколько раз в год, поэтому необходимо обновлять системы мониторинга реального времени, во многом аналогичных антивирусным базам данных. Кроме того, если вторжение успешно пресекается блокиратором событий, работающим в режиме реального времени, система HIDS не сможет сгенерировать достаточное количество детальной информации о последствиях в отличие от систем HIDS, делающих «моментальный снимок» состояния защищаемой системы.
HIDS, фиксирующие состояние защищаемой системы, по сути реактивны. Они лишь генерируют отчеты о злоумышленных действиях и не пресекают их. Такие HIDS отлично подходят для судебной экспертизы. С помощью одного отчета можно выявить отличия нормального состояния системы от поврежденного. В этом случае не придется собирать по кусочкам различные состояния системы для определения изменений, внесенных в изначальное состояние. Оценивать ущерб в данном случае значительно проще, чем с помощью HIDS реального времени, так как HIDS, фиксирующая состояние защищаемой системы, может выдать точные данные о внесенных изменениях. При этом, чтобы определить, нужно ли полностью реконструировать узел или безопасно провести частичное восстановление, можно прибегнуть к сравнительному анализу отчетов. Кроме того, при проведении судебной экспертизы пригодятся «снимки» состояния системы до и после проявления угрозы.
Системы с фиксацией состояния системы полезны не только в области компьютерной безопасности. Они применяются в управлении конфигурацией и контроле изменений. Зафиксированное состояние системы может пригодиться, когда необходимо создать множество различных систем с одними и теми же параметрами конфигурации, идентичными настройкам первичного экземпляра системы. Сконфигурировав дополнительные системы и проведя сравнительный анализ, можно выяснить, идентичны ли конфигурации всех систем. Кроме того, генерирование отчетов о состоянии системы впоследствии позволит определить, были ли внесены в узел несанкционированные изменения. Очевидный недостаток HIDS, фиксирующей состояние системы, в том, что предупреждения и отчеты генерируются постфактум. Таким образом, действие этих систем не предотвращает несанкционированное внесение изменений и нанесение ущерба.
Системы HIDS типа «honeypot»
До сих пор речь шла о защите рабочих узлов. Однако некоторые системы HIDS устанавливаются как узлы-жертвы для использования в злонамеренных целях и незаконного проникновения. «Honeypot» — это специальная разновидность HIDS, подразумевающая исключительно мониторинг, обнаружение и перехват проявлений угроз относительно самой себя. Такая система может являться обыкновенным компьютером, моделирующим рабочую систему, без каких-либо обновлений и надстроек; кроме того, хостинг данной системы может осуществляться посредством программы — виртуального «honeypot». Виртуальные системы типа «honeypot» реализуются посредством специального эмулирующего программного обеспечения, симулирующего IP-стек конкретной платформы, отклики операционной системы, а иногда даже службы, приложения и содержимое.
Системы «honeypot» также принимают вредоносный трафик, отторгнутый устройством сетевого периметра, чтобы замедлить действия хакеров или автоматизированных программ-червей. Программа LaBrea представляет собой «опасную» систему «honeypot», отвечающую на вредоносные запросы, передаваемые по незанятым IP-адресам и портам. Посредством этого достигается пресечение действий хакеров и червей, т.е. их присутствие на протяжении длительного времени в виртуальной среде вез причинения какого-либо ущерба.[50]
Сетевые IDS (NIDS)
Сетевые IDS (NIDS) более популярны в области обнаружения вторжений, и их функционирование заключается в перехвате и анализе сетевых пакетов, проходящих через канал связи. В отличие от HIDS, NIDS предназначены для защиты более чем одного узла. Такие системы могут защищать группу компьютеров, например группу серверов, либо отслеживать всю сеть целиком. Перехваченный трафик сравнивается со спецификациями протокола, и нормальный трафик пропускается; также осуществляется проверка полезной информационной нагрузки на вредоносное содержимое. При обнаружении угрозы безопасности соответствующее событие записывается в журнал и генерируется оповещение.
При использовании HIDS программное обеспечение устанавливается на узле, мониторинг которого необходимо осуществлять, и вся работа выполняется этим ПО. Так как системы NIDS функционируют посредством проверки сетевых пакетов, включая трафик, не предназначенный для NIDS-узла в сети, здесь есть некоторые варианты физической установки. Как правило, новички в использовании NIDS долгие часы выясняют, почему установленные ими IDS не генерируют никаких оповещений. Иногда это происходит из-за отсутствия трафика, представляющего угрозу, иногда — из-за того, что NIDS не настроена на перехват пакетов, направленных на другие узлы. Верный признак неправильной конфигурации параметров сетевого уровня устройства NIDS — перехват только трафика вещания и пакетов, направленных на саму NIDS. Трафик не начнет отображаться в системе NIDS сразу после включения. Необходимо настроить NIDS и сеть так, чтобы трафик, который необходимо отслеживать, физически проходил через NIDS. Системы NIDS должны обладать «неразборчивыми» сетевыми картами с драйверами пакетного уровня и устанавливаться на каждом отслеживаемом сетевом сегменте.
Драйверы пакетного уровня. Перехват сетевых пакетов осуществляется посредством программного драйвера пакетного уровня, граничащего с картой сетевого интерфейса. Во многих системах Unix и Windows отсутствуют встроенные драйверы пакетного уровня, поэтому часто IDS-системы базируются на бесплатно распространяемых драйверах пакетного уровня, таких как libpcap или WinPcap 3.0. Перехват пакетов и их анализ с помощью свободно распространяемых средств, таких как tcpdump (www.tcpdump.org) или WinDump (http://windump.poIito.it), часто предусматривается системами IDS, открытыми для свободного пользования. В большинстве коммерческих IDS есть встроенные драйверы пакетного уровня и ПО для прослушивания пакетов.
«Неразборчивый» режим. Для прослушивания пакетов системой NIDS необходимо, чтобы пакеты передавались драйверу пакетного уровня картой сетевого интерфейса. По умолчанию большинство сетевых карт не функционируют в «неразборчивом» режиме, т.е. считывают из канала связи только те пакеты, которые предназначены именно им. Как правило, среди таких пакетов есть так называемые unicast-пакеты, предназначенные исключительно для конкретной рабочей станции, broadcast-пакеты, предназначенные для всех компьютеров, которых они достигнут, и multicast-трафик, предназначенный для двух или более заранее определенных узлов. В большей части сетей наблюдается unicast- и broadcast-трафик. Multicast-трафик менее распространен, однако, он часто используется при работе веб-приложений, осуществляющих потоковую передачу информации. По умолчанию сетевая карта в обычном режиме игнорирует трафик, направленный на другие компьютеры, а также пакеты, являющиеся результатом сбоев при передаче (коллизии, повреждение кабеля и т.д.). Перед установкой IDS следует убедиться в том, что сетевая карта этой системы работает в «неразборчивом» режиме и может пропускать через себя весь трафик, проходящий по кабелю.[51]
Датчики сетевых сегментов
В рамках данного раздела сетевой сегмент можно определить как одиночный логический пакетный домен. В контексте NIDS это означает, что весь сетевой трафик, направленный и исходящий со всех компьютеров в одном сетевом сегменте, может отслеживаться на физическом уровне.
Чтобы мониторинг сети был эффективным, необходимо наличие по крайней мере одного проверяющего NIDS-устройства в каждом сетевом сегменте. Это устройство может представлять собой полнофункциональный компьютер IDS или просто повторитель трафика, иначе называемый датчиком или заглушкой. Датчики и заглушки – это небольшие сетевые устройства, специально предназначенные для NIDS и имеющие два или более сетевых порта. Как правило, они лишены клавиатуры и других устройств ввода и требуют для настройки соответствующего административного ПО. Один порт подключается в центре соединения в отслеживаемом сетевом сегменте, а другой подсоединяется к кабелю, ведущему к центральной консоли IDS. Сетевой трафик снимается с канала связи и передается в консоль IDS. Заглушки и датчики, как правило, не имеют IP и МАС-адресов, поэтому они невидимы для злоумышленников. Компания Intrusion Inc. (www.intrusion.com) — производитель популярной серии датчиков и заглушек.
Каждое устройство на общем концентраторе имеет доступ к сетевому сегменту, так как каждому порту доступна вся сетевая информация, направленная на любой порт. Датчик можно расположить на любом концентраторе или порте моста и осуществлять перехват всех данных на локальном сегменте. Маршрутизаторы – это крайние точки сегментов, и необходимо разместить, хотя бы один датчик в каждом сегменте, который нужно отслеживать. Для повышения производительности может потребоваться большее количество датчиков, чем необходимо физически в данной сетевой топологии, либо необходимо установить датчики для конкретных групп компьютеров внутри одного сегмента.
Большинство современных Ethernet-сетей содержит коммутаторы. За исключением пакетов вешания, коммутаторы передают пакеты только в конкретные пункты назначения. В коммутируемой сети IDS не будет доступен трафик соседнего устройства, не являющийся трафиком вещания, и это значительная проблема при необходимости мониторинга всего сетевого сегмента.
Эту проблему можно решить несколькими способами в зависимости от оборудования. Во-первых, многие администраторы IDS используют заглушки или датчики для обхода сегментации коммутатором. Однако этот способ дорог и не практичен в коммутируемой сети, если нужно отслеживать каждый порт. Во-вторых, многие коммутаторы поддерживают зеркал ирование портов (перенаправление трафика). Зеркалирование портов выполняется посредством инструктирования коммутатора о копировании всего входящего и исходящего трафика конкретного порта на другой порт, на котором расположена IDS.
Во-вторых, некоторые коммутаторы позволяют осуществлять зеркалирование всех портов на определенный порт управления, а другие позволяют осуществлять единовременный мониторинг только лишь одного порта. Зеркалируемым портом может быть любой другой нормально коммутируемый порт, либо это может быть специальный порт управления с последовательным интерфейсом. Имейте в виду, что в некоторых случаях при зеркалировании порта осуществляется лишь копирование трафика, передаваемого в исходный порт, и не происходит отправки из него. Документация по коммутатору содержит все детальные сведения по этому вопросу.
Недостаток зеркалирования в том, что оно повышает уровень загруженности коммутатора при копировании трафика. Зеркалирование всех портов может значительно снизить общую производительность сети.
В-третьих, если коммутатор не поддерживает зеркалирование портов, то можно убедиться в возможности переключения коммутатора в режим моста, в котором весь трафик реплицируется по всем портам. Это полностью сводит на нет все преимущества коммутатора, поэтому здесь необходимо провести тщательный анализ затрат относительно получаемой выгоды. Если коммутатор не поддерживает режим моста, некоторые администраторы IDS прибегают к умышленному позиционированию посредством ARP или МАС-адреса, «обманывая» коммутатор с целью его принудительного перехода в режим моста. Данный метод должен применяться, только если необходим срочный мониторинг.
Еще одним распространенным способом является размещение IDS и всех защищаемых компьютеров на повторителе Ethernet или концентраторе, чтобы весь трафик был доступен для всех портов. Этот подход можно использовать при поиске конкретного вредоносного трафика, направленного на определенные серверы, или для подключения портативного IDS-компьютера в сегмент, подвергнутый воздействию вредоносного трафика.[52]
§
Обнаружение аномалий впервые было предложено в 1985 г. известным специалистом по безопасности доктором Дороти Е. Деннинг. Суть технологии заключалась в установке определенных базовых шаблонов и выявлении отклонений от них. Шаблоны могут устанавливаться для конкретного узла или определенного сегмента сети. Некоторые поставщики IDS называют системы AD «поведенческими», так как они отслеживают отклонения от нормального поведения контролируемых узлов. Если IDS отслеживает на предмет расхождений лишь заголовки сетевых пакетов, то AD выполняет обнаружение аномалий в протоколах.
Цель AD заключается в том, чтобы обеспечить возможность обнаружения широкого спектра вредоносных вторжений, включая те, для которых не существует предустановленных признаков. Определяя нормальное поведение систем, AD оповещает обо всех отклонениях. Обнаружение аномалий является статистическим и производится на базе концепции определения числа событий, происходящих за установленный интервал времени, для конкретного отслеживаемого показателя.
Пример: кто-то осуществляет вход в систему с многократным указанием неверного пароля, вызывая при этом блокировку учетной записи и генерирование сообщения для записи в журнал безопасности. Системы IDS, осуществляющие обнаружение аномалий, используют тот же принцип при работе с шаблонами сетевого трафика, событиями приложений и наблюдении за использованием систем. [53]
События, которые могут отслеживаться и пресекаться системами AD:
· необычная активность учетной записи пользователя;
· слишком активный доступ к файлам и объектам;
· высокая степень использования процессора;
· некорректное использование протокола;
· необычное местоположение входа пользователя на рабочей станции;
· необычная частота процедур входа в систему;
· высокое число фактов единовременного входа в систему;
· высокое число сеансов;
· любые операции над программным кодом;
· неожиданные попытки использования привилегий или эскалации;
· необычное содержимое.
Установленным шаблоном может быть, например, степень использования сети в конкретном сетевом сегменте не выше 20% с присутствием лишь протоколов HTTP, FTP и SMTP-трафика. Шаблон AD может подразумевать отсутствие unicast-пакетов между рабочими станциями, и такие пакеты могут присутствовать лишь между серверами и рабочими станциями. Если в результате DoS-атаки уровень использования сети начинает превышать 20% на протяжении определенного интервала времени или если кто-то пытается подключиться с помощью telnet к серверу в отслеживаемом сегменте, IDS сгенерирует событие нарушения безопасности. Слишком частое повторение идентичных символов в ответе HTTP говорит о попытке переполнения буфера.
Аномалии измеряются опытным путем как статистически заметные отклонения от базового шаблона. Они представляются в виде числа, процентного значения или числа стандартных отклонений. В некоторых случаях, таких как доступ к неиспользуемому системному файлу или использование неактивной учетной записи, для вызова AD-системы достаточно лишь одного события. В случае с нормальными повторяющимися событиями оповещение генерируется после двух или более отклонений от базового шаблона.
Модель обнаружения признаков
Системы IDS обнаружения признаков и обнаружения нецелевого использования являются наиболее распространенными типами IDS, функционирующими с помощью баз данных известных подозрительных поведений и действий. Это почти полная противоположность AD-системам. Когда идет речь о системе IDS, обнаруживающей признаки, ее следует рассматривать как антивирусный сканер сетевого трафика. Системы проверки признаков могут запросить любой фрагмент сетевого пакета или осуществить поиск конкретных наборов байт данных. Предопределенные схемы программного кода называются признаками, которые часто включаются в руководящее правило при использовании в системе IDS.
Признаки представляют собой последовательности байт, уникальные для той или иной опасной ситуации. Байтовый признак может содержать пример программного кода вируса, вредоносную комбинацию клавиш, используемую при переполнении буфера, либо текст, означающий, что злоумышленник выясняет, присутствует ли в конкретном каталоге конкретный файл. Для повышения производительности признак должен создаваться так, чтобы представлять собой минимально возможную последовательность байт, необходимых для надежного обнаружения соответствующей угрозы. Необходимо обеспечить тщательность обнаружения угрозы и отсутствие ложных оповещений. Признаки и правила могут быть объединены в большие наборы, называемые базами данных признаков или наборами правил.
Правила обнаружения признаков
Правила – это основной компонент системы обнаружения признаков. Правило обычно содержит следующую информацию:
· уникальная последовательность байт (признак);
· проверяемый протокол (например, TCP, UDP, ICMP);
· запрашиваемый IР-порт;
· проверяемый IP-адрес (конечный и начальный);
· действие в случае обнаружения угрозы (разрешение, отказ, оповещение, запись в журнал, отключение).
Большинство IDS поставляется с сотнями предопределенных признаков и правил. Все они либо включаются автоматически, либо могут быть выбраны вручную. Каждое активируемое правило или признак увеличивает процессорное время, необходимое для анализа каждого события. Если включить все правила и функцию проверки системы обнаружения признаков, весьма вероятно, что система вскоре не сможет справиться с задачей инспекции трафика. Администраторы должны активировать правила и функции, исходя из соотношения потери/выгода.
Большинство IDS позволяет создавать особые правила и признаки, что важно для немедленного реагирования на новые угрозы или для тонкой настройки IDS. Ниже приведены некоторые подсказки по созданию правил и признаков.
· Байтовые признаки должны иметь минимальную длину, но быть надежными и не вызывать генерирование ложных оповещений.
· Аналогичные правила должны располагаться рядом. Упорядочивание правил ускоряет выполнение задач по обслуживанию.
· Некоторые IDS и межсетевые экраны требуют расположения правил, блокирующих трафик, перед правилами, разрешающими его прохождение. Обратитесь к производителю устройства, чтобы выяснить, имеет ли значение порядок правил.
· Сначала следует создавать правила, действие которых будет широкомасштабным, т.к. они выполняют фильтрацию быстрее всех остальных. Например, если сетевой пакет содержит сетевую аномалию, он должен вызывать оповещение без анализа пакета с помощью более сложного и ресурсоемкого сканирования содержимого.
· Чтобы минимизировать число ложных оповещений, правила необходимо делать максимально конкретными с помощью информации, которая резко сужает спектр проверяемых пакетов.
Некоторые угрозы, такие как полиморфные или мультинаправленные вирусы, требуют нескольких признаков для обнаружения одной и той же угрозы. Например, многие компьютерные черви поступают в системы в виде исполняемых файлов, распространяются через общие внутренние устройства, отправляют сами себя с помощью своих же встроенных SMTP-систем, пресекают действия других «троянов» и вирусов, а также используют каналы интернет-чата для своего распространения. Каждый вектор атаки требует собственного признака.
Системы IDS, функционирующие посредством обнаружения признаков, отлично выявляют известные угрозы. При получении качественно созданного признака детекторы признаков выполняют задачу обнаружения схем, и, так как системы IDS с обнаружением признаков достаточно популярны, признак для обнаружения новой распространенной атаки появляется в течение всего лишь нескольких часов после того, как поступило сообщение об атаке. Это относится к большинству бесплатных и коммерческих средств безопасности.
Еще одним преимуществом IDS с обнаружением признаков является то, что она конкретным образом определяет угрозу, в то время как AD-система описывает ее лишь в общих чертах. AD оповестит об открытии нового TCP-порта на файловом сервере, a IDS с обнаружением признаков сообщит, какой именно код был при этом использован. Так как система с обнаружением признаков лучше идентифицирует конкретные угрозы, она позволит корректно предотвратить вторжение.
Несмотря на популярность IDS с обнаружением признаков все же имеют некоторые недостатки.
Невозможность распознания неизвестных атак. Как и антивирусные сканеры, системы IDS с обнаружением признаков не способны распознавать неизвестные атаки. Взломщик может изменить один байт в коде (создать его версию), чтобы сделать бесполезным весь признак обнаружения. Каждый год создаются сотни новых вредоносных программ, и системы IDS постоянно подвергаются обману. За последние несколько лет не было ни одной значительной угрозы, для которой отсутствовал бы предопределенный признак, но «время X» может настать в любой момент.
Снижение производительности при увеличении количества признаков и правил. Так как каждый сетевой пакет или событие сопоставляется с базой данных признаков или, по крайней мере, с подгруппой записей базы данных признаков, при росте числа признаков снижается производительность. Большинство IDS-администраторов, применяющих системы обнаружения признаков, в итоге переходят к использованию только наиболее распространенных признаков. Наиболее услужливые производители оценивают различные правила по степени риска соответствующих угроз, чтобы администратор мог принять решение, корректное по соотношению потери/ выгода. Несмотря на снижение степени использования процессора, данный метод также уменьшает надежность системы обнаружения.
Разумеется, использование общих признаков повышает вероятность ложных оповещений. Поставщики антивирусных средств недавно столкнулись с аналогичной проблемой, и вирусы определялись как общие вирусы загрузочного сектора и файлов. Некоторые производители зашли так далеко, что стали редко определять какие-либо угрозы по их конкретным названиям. Администраторам систем безопасности это совершенно не понравилось, и производителям пришлось вернуться к использованию более специфичных признаков.
Так как признаки представляют собой небольшие уникальные последовательности байт, для сокрытия атаки злоумышленнику надо изменить один-единственный байт, определенный в признаке. Угрозы с подобными небольшими изменениями называются варьированными. К счастью, большинство из них предусматривает использование некоторого общего фрагмента кода, который по-прежнему уникален для целого класса угроз, поэтому все семейство угроз может быть с успехом обнаружено при помощи одного соответствующего признака или общего признака.
Системы предотвращения вторжений
С началом разработки систем IDS стал актуален вопрос, смогут ли системы IDS делать нечто большее, чем просто отслеживать и сообщать о вторжениях. Какова польза от устройства, обеспечивающего только лишь обнаружение, когда в действительности требуется предотвратить вторжение? Это сравнимо с автомобильной сигнализацией, которая сообщает владельцу о воздействии на нее угонщика уже постфактум. Аналогично обнаружению вторжений их предотвращение долгое время производилось сетевыми администраторами. Примерами таких мер и средств являются средства контроля доступа, пароли, антивирусные сканеры режима реального времени, установка обновлений и установка периметровых межсетевых экранов. Применительно к IDS меры по предотвращению вторжений включают в себя контрмеры в режиме реального времени, предпринимаемые против конкретной активной угрозы. Например, IDS обнаруживает поток ping-запросов и в дальнейшем отклоняет весь трафик, исходящий с этого IP-адреса, узловая IDS блокирует вредоносную программу, предотвращая изменение системных файлов.[54]
Системы IDS второго поколения, обладая значительно более широкими возможностями, чем просто мониторинг и оповещение, называются системами предотвращения вторжений (IPS). Они либо блокируют саму атаку, либо взаимодействуют с внешней системой для предотвращения угрозы.
Для взаимодействия IDS с внешним устройством необходим общий язык сценариев, API или иной механизм соединения. Еще один распространенный метод работы IPS заключается в передаче устройством IDS пакетов сброса (RST) в обе стороны соединения, что приводит к принудительному сбросу соединения обоими источниками. Очевидно, это далеко не идеальный способ, так как часто успешный вредоносный код действует в то же время, когда происходит принудительный сброс, и датчики сами по себе могут также сбрасывать RST-пакеты.
IPS — последний «писк» в области систем IDS, однако, межсетевые экраны и большая часть IDS уже давно предотвращают вторжения. Обнаружение атак в настоящее время производится повсеместно, большинство IDS выполняют эту функцию достаточно хорошо, но ни одно устройство при этом не достигает стопроцентной эффективности. Производители пытаются дифференцировать свои продукты по тому, какие действия они выполняют с обнаруживаемыми вторжениями. Конечной целью любой IDS является обнаружение атаки и ее предотвращение без участия человека. В будущем ожидается внесение множества усовершенствований в системы IPS, хотя озадачивает тот факт, что производители стремятся как можно быстрее перейти на создание систем предотвращения вторжений, не повышая точность обнаружения.
Самый большой недостаток линейной системы IPS – ее отрицательное влияние на производительность сети. На линейном устройстве каждый пакет потенциально подвергается сравнению с тысячами различных вредоносных схем. Однако снижение производительности сети может быть просто неприемлемым.
Еще одна проблема заключается в сбое линейного устройства. Что лучше: перекрывать канал или оставлять его открытым, если устройство откажет? Если устройство сломается, и канал будет закрыт, работа сети приостановится до тех пор, пока IPS не будет восстановлена (разумеется, в сети могу присутствовать избыточные каналы, обеспечивающие отказоустойчивость). Если канал остается открытым после сбоя IPS, то в сеть могут проникнуть вредоносные данные. Если устройство выйдет из строя, то оно, вероятнее всего, не передаст уведомление об этом, и если после сбоя оставит канал открытым, сеть будет незащищенной длительное время, и об этом никто не будет знать. В компаниях, где на первое место ставятся вопросы безопасности, принято перекрывать канал связи в случае сбоя IPS и считаться с последующим временем простоя.
Широко известным последствием использования IPS является возможность обработки ложных срабатываний. В системах IDS ложное срабатывание приводит к бессмысленному заполнению места в журналах и трате времени, в течение которого администратор исследует легитимность угрозы. IPS действуют проактивно, и ложное срабатывание означает отклонение легитимной службы или узла. Нужно ли устанавливать персональный межсетевой экран (настольную IDS) лишь для того, чтобы служба Network Neighborhood (Сетевое окружение) остановила свою работу или вызвала проблемы при получении электронной почты? Злоумышленники даже используют меры предотвращения в качестве атак на отказ в обслуживании.
Журналы и оповещения
При обнаружении системами IDS событий, связанных с нарушением безопасности, генерируются оповещения и файлы журналов.
Оповещения генерируются при возникновении высокоприоритетных событий и передаются администраторам в режиме реального времени. Политика IDS определяет, какие угрозы являются наиболее опасными, и уровень приоритета устанавливается соответственно. Как правило, IDS-администратор не реагирует на NetBIOS-сканирование сети с межсетевым экраном так же быстро, как на успешную DoS-атаку на главный веб-сервер компании. Если событие рассматривается как очень опасное, о нем должно быть немедленно доложено.
Оповещения могут передаваться любым способом, включая:
· диалоговое окно на экране консоли;
· сообщение SMTP или SMS (служба коротких сообщений);
· буквенно-цифровой текст, передаваемый на пейджер;
· SNMP-ловушку;
· звуковой сигнал консоли.
Следует четко определить, какой метод будет использоваться для передачи этой информации. Например, большинство IDS-систем передает оповещения по электронной почте. В случае обнаружения быстро распространяющегося червя система электронной почты будет сильно перегружена сообщениями, и найти среди них оповещение будет трудно. По той же причине сохранение номера мобильного телефона или пейджера в телефонной книге системы электронной почты позволит червю быстро заполнить пейджер или телефон зараженными сообщениями, в которых затеряется оповещение о тревожной ситуации.
Более совершенные IDS-системы позволяют комбинировать идентичные оповещения, происходящие в установленный период времени, в одно событие. Это позволит администратору сразу понять, в чем дело, если в 3 часа ночи в течение минуты будет сгенерирована тысяча различных оповещений. Корреляция пороговых значений позволяет администратору системы безопасности получать соответствующие уведомления об атаках, не пугаясь вероятного захвата всей компьютерной сети.
Файлы журналов IDS записывают все обнаруженные события независимо от их приоритета и после механизма обнаружения оказывают наибольшее влияние на скорость работы и использование IDS. Журналы IDS предназначены для анализа данных и составления отчетов. Они могут содержать как сухую статистику событий, так и полную расшифровку сетевых пакетов. При проведении судебной экспертизы предпочтительно рассмотреть полный набор данных о происходящем в сети, однако подобный сбор информации может привести к скорому исчерпанию дискового пространства. В малой сети могут происходить сотни событий в минуту, а в сети среднего масштаба — десятки тысяч. Если планируется в течение нескольких дней записывать в файлы журнала полную расшифровку пакетов, жесткий диск системы IDS должен иметь объем не менее 80 Гб. Чтобы увеличить скорость записи, можно использовать SCSI-устройства с технологией RAID-5 (расщепленный массив с переходящим контролем четности).
Файлы журналов могут сохраняться в масштабируемой базе данных, такой как MS SQL или MySQL, либо в виде обычных текстовых файлов. Несмотря на очевидную распространенность базы данных SQL на большинстве предприятий высокоскоростные IDS могут быстро переполнить ее данными. IDS может записывать 100 ООО событий в секунду, а большинство баз данных SQL любой ценовой категории способно обрабатывать лишь несколько тысяч событий в секунду. Большая часть высокоскоростных IDS сохраняют свои журналы в простых, но эффективных с точки зрения обработки текстовых файлах ASCII. Текстовые файлы импортируются в другие системы баз данных для анализа и составления отчетов.
Независимо от того, в каком формате записываются файлы журналов IDS, все они должны часто сменяться для поддержания производительности и для предотвращения перегрузки. К сожалению, при смене файла журнала усложняется анализ угроз, так как возникает необходимость слияния нескольких файлов, чтобы проанализировать более продолжительный период времени. Среди распространенных форматов файлов журналов следует выделить текст ASCII фиксированной длины, текст ASCII с разделителями-запятыми, HTML, XML, CVS, syslog, SQL и др. Некоторые IDS ставят на файлы журналов цифровые подписи с целью аутентификации.
Файл журнала, как минимум, должен фиксировать местоположение события, временной штамп (дата и время с точностью до сотых долей секунды), описывать предпринятые попытки обработки события, его важность и IDS-отклик, если таковой имел место. Если событие было зафиксировано с использованием сетевых пакетов, то необходима дополнительная информация: исходный и конечный IP-адреса, протокол и номер порта. Журнал должен содержать краткое описание атаки и ссылки на производителя или другие сайты с информацией об уязвимостях, где можно получить более детальные сведения.
В большинстве баз данных уязвимостей событие, связанное с нарушением безопасности, описывается как исключительно вредоносная атака, однако, это не всегда соответствует действительности. Базы данных производителя IDS также должны содержать сведения о том, почему сообщение о событии может быть ложным. К примеру, если IDS сообщает о подмене IP-адреса, полезно знать, что это может быть результатом неправильно сконфигурированных, но легитимных VPN-соединений. Если в течение продолжительного времени поступают оповещения о сканировании портов и источником тревоги являются DNS-серверы интернет-провайдера, следует уяснить, что это их обычное поведение, являющееся следствием попыток ответить неправильно настроенным клиентским рабочим станциям.
Составление отчетов и анализ данных тесно связаны с ведением журналов. Средства составления отчетов (также называются анализаторами журналов) находят общие черты в файлах журналов (например, по типу атак или источнику угрозы) и подытоживают результаты для конкретного промежутка времени. Большинство коммерческих IDS-продуктов поставляется с набором предустановленных отчетов и позволяет создавать отчеты вручную. IDS-администраторы могут свободно использовать любое из имеющихся средств составления отчетов либо извлекать данные для анализа с помощью других утилит, таких как Crystal Reports.
Системы IDS удобны при отображении журналов в консоли, поочередном просмотре записей или составлении ежедневных отчетов. Однако, в зависимости от используемой IDS, утилиты составления отчетов и объема обрабатываемых данных, генерирование более старых отчетов может занять от нескольких минут до нескольких часов. IDS-отчет, покрывающий сотни тысяч событий, редко выполняется в течение многих часов. IDS-администраторы, управляющие высокоскоростными системами, часто составляют от одного до трех отчетов каждую неделю в поисках заметных событий или тенденций. Как правило, при этом разрешается выполнение отчетов в нерабочие часы для максимального использования процессоров, чтобы утром администратор утром пришел на работу и обнаружил готовый отчет. Для повышения производительности необходимо либо проверять меньший объем данных, либо использовать для решения проблемы больше вычислительных ресурсов. Большое число ложных оповещений и медленное составление отчетов говорит о том, что IDS-администратор вовсе не распечатывает отчеты. Такие администраторы уделяют основное внимание оповещениям реального времени и ежедневным файлам журналовС точки зрения анализа, IDS являются высокоинтеллектуальными системами. Они способны распознавать предопределенные схемы и отслеживать статистику, но более подробная картина доступна лишь опытному администратору IDS. К примеру, система IDS может обнаружить на порте необычное соединение, поступившее с рабочей станции конечного пользователя, однако, определить, что попытка соединения через порт в действительности исходит от нового «троянца» удаленного доступа, может только человек. Ожидается, что IDS следующего поколения будут обладать более развитыми аналитическими возможностями, чтобы снабжать администраторов четкими заключениями вместо «сырых» фактов.
Контрольные вопросы
1. Кактие компоненты включает в себя типовая архитектура системы обнаружения атак?
2. В чем состоит опасность «флагового эксплоита»?
3. В чем состоит опасность «атаки на сетевые протоколы»?
4. Для каких целей используется системы HIDS типа «honeypot»
5. В чем заключается суть «модели обнаружения аномалий»
6. Какую роль в системах обнаружения атак играют журналы и оповещения?
7. Какие основные недостатки систем обнаружения атак?
Библиографический список
Основная литература:
1. Ярочкин В.И. Информационная безопасность: учебник для студентов высших учеб. заведений, обучающихся по гуманитарным и социально-экономическим специальностям / В. И. Ярочкин. – М.: Акад. проект, 2008. – C.79-89.
Дополнительная литература:
1. Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006.
§
8.1 Технология атаки
8.2 Методы хакеров
8.3 Отказ в обслуживании
8.4 Выполнение атак
Технология атаки
Сетевая атака – действие, производимое злоумышленником и направленное на реализацию угрозы. Действие заключается в поиске какой-либо неисправности компьютерной системы.
Существуют четыре основных категории атак:
· атаки доступа;
· атаки модификации;
· атаки на отказ в обслуживании;
· атаки на отказ от обязательств.[55]
Существует множество способов выполнения атак: при помощи специально разработанных средств, методов социального инжиниринга, через уязвимые места компьютерных систем. При социальном инжиниринге для получения несанкционированного доступа к системе не используются технические средства. Злоумышленник получает информацию через обычный телефонный звонок или проникает внутрь организации под видом ее служащего. Атаки такого рода наиболее разрушительны.
Атаки, нацеленные на захват информации, хранящейся в электронном виде, имеют одну интересную особенность: информация не похищается, а копируется. Она остается у исходного владельца, но при этом ее получает и злоумышленник. Таким образом, владелец информации несет убытки, а обнаружить момент, когда это произошло, очень трудно.
Атака доступа — это попытка получения злоумышленником информации, для просмотра которой у него нет разрешений. Осуществление такой атаки возможно везде, где существует информация и средства для ее передачи. Атака доступа направлена на нарушение конфиденциальности информации.
Подсматривание — это просмотр файлов или документов для поиска интересующей злоумышленника информации. Если документы хранятся в виде распечаток, то злоумышленник будет вскрывать ящики стола и рыться в них. Если информация находится в компьютерной системе, то он будет просматривать файл за файлом, пока не найдет нужные сведения.[56]
Для получения несанкционированного доступа к информации злоумышленник должен находиться поблизости от нее. Очень часто при этом он использует электронные устройства. Внедрение беспроводных сетей увеличило вероятность успешного прослушивания. Теперь злоумышленнику не нужно находиться внутри системы или физически подключать подслушивающее устройство к сети.
В отличие от подслушивания перехват — это активная атака. Злоумышленник захватывает информацию в процессе ее передачи к месту назначения. После анализа информации он принимает решение о разрешении или запрете ее дальнейшего прохождения.
Атаки доступа
Атаки доступа принимают различные формы в зависимости от способа хранения информации: в виде бумажных документов или в электронном виде на компьютере.
Если необходимая злоумышленнику информация хранится в виде бумажных документов, ему потребуется доступ к этим документам. Они, возможно, отыщутся в следующих местах:
· в картотеках;
· в ящиках столов или на столах;
· в факсе или принтере;
· в мусоре;
· в архиве.
Следовательно, злоумышленнику необходимо физически проникнуть во все эти места. Если он является служащим данной организации, то сможет попасть в помещения с картотекой. Письменные столы он найдет в незапертых офисах. Факсы и принтеры обычно располагаются в общедоступных местах, и люди имеют привычку оставлять там распечатанные документы. Даже если все офисы закрыты, можно покопаться в мусорных корзинках, выставленных в холл для очистки. А вот архивы станут для взломщика проблемой, особенно если они принадлежат разработчикам и расположены в охраняемом месте.[57]
Физический доступ — это ключ к получению данных. Следует заметить, что надежная защита помещений оградит данные только от посторонних лиц, но не от служащих организации или внутренних пользователей.
Информация в электронном виде хранится:
· на рабочих станциях;
· на серверах;
· в портативных компьютерах;
· на флоппи-дисках;
· на компакт-дисках;
· на резервных магнитных лентах.
Злоумышленник может просто украсть носитель данных (дискету, компакт-диск, резервную магнитную лента или портативный компьютер). Иногда это сделать легче, чем получить доступ к файлам, хранящимся в компьютерах.
Если злоумышленник имеет легальный доступ к системе, он будет анализировать файлы, просто открывая один за другим. При должном уровне контроля над разрешениями доступ для нелегального пользователя будет закрыт, а попытки доступа зарегистрированы в журналах.
Правильно настроенные разрешения предотвратят случайную утечку информации. Однако серьезный взломщик постарается обойти систему контроля и получить доступ к нужной информации. Существует большое количество уязвимых мест, которые помогут ему в этом.
При прохождении информации по сети к ней можно обращаться, прослушивая передачу. Взломщик делает это, устанавливая в компьютерной системе сетевой анализатор пакетов (sniffer). Обычно это компьютер, сконфигурированный для захвата всего сетевого трафика (не только трафика, адресованного данному компьютеру). Для этого взломщик должен повысить свои полномочия в системе или подключиться к сети. Анализатор настроен на захват любой информации, проходящей по сети, но особенно — на пользовательские идентификаторы и пароли.
Появление беспроводной технологии позволяет взломщикам перехватывать трафик без физического доступа к системе. Беспроводные сигналы считываются на довольно большом расстоянии от их источника:
· на других этажах здания;
· на автомобильной стоянке;
· на улице рядом со зданием.
Подслушивание выполняется и в глобальных компьютерных сетях типа выделенных линий и телефонных соединений. Однако такой тип перехвата требует наличия соответствующей аппаратуры и специальных знаний. В этом случае наиболее удачным местом для размещения подслушивающего устройства является шкаф с электропроводкой.
Перехват возможен даже в системах оптико-волоконной связи с помощью специализированного оборудования, обычно выполняется квалифицированным взломщиком.
Информационный доступ с использованием перехвата — одна из сложнейших задач для злоумышленника. Чтобы добиться успеха, он должен поместить свою систему в линии передачи между отправителем и получателем информации. В интернете это выполняется посредством изменения разрешения имени, в результате чего имя компьютера преобразуется в неправильный. Трафик перенаправляется к системе атакующего вместо реального узла назначения.
При соответствующей настройке такой системы отправитель так и не узнает, что его информация не дошла до получателя.
Перехват возможен и во время действительного сеанса связи. Такой тип атаки лучше всего подходит для захвата интерактивного трафика типа telnet. В этом случае взломщик должен находиться в том же сегменте сети, где расположены клиент и сервер. Злоумышленник ждет, когда легальный пользователь откроет сессию на сервере, а затем с помощью специализированного программного обеспечения занимает сессию уже в процессе работы. Взломщик получает на сервере те же привилегии, что и пользователь.
Перехват более опасен, чем прослушивание, он означает направленную атаку против человека или организации.
Атаки модификации
Атака модификации — это попытка неправомочного изменения информации. Такая атака возможна везде, где существует или передается информация; она направлена на нарушение целостности информации.
Одним из видов атаки модификации является замена существующей информации, например, изменение заработной платы служащего. Атака замены направлена как против секретной, так и общедоступной информации.[58]
Другой тип атаки — добавление новых данных, например, в информацию об истории прошлых периодов. Взломщик выполняет операцию в банковской системе, в результате чего средства со счета клиента перемещаются на его собственный счет.
Как и атаки доступа, атаки модификации выполняются по отношению к информации, хранящейся в виде бумажных документов или в электронном виде на компьютере
Документы сложно изменить так, чтобы этого никто не заметил: при наличии подписи (например, в контракте) нужно позаботиться о ее подделке, скрепленный документ необходимо аккуратно собрать заново.
Очень трудно добавлять или удалять записи из журналов операций. Во-первых, информация в них расположена в хронологическом порядке, поэтому любое изменение будет сразу замечено. Лучший способ — изъять документ и заменить новым. Для атак такого рода необходим физический доступ к информации.
Модифицировать информацию, хранящуюся в электронном виде, значительно легче. Учитывая, что взломщик имеет доступ к системе, такая операция оставляет после себя минимум улик. При отсутствии санкционированного доступа к файлам атакующий сначала должен обеспечить себе вход в систему или удалить разрешения файла. Атаки такого рода используют уязвимые места систем, например, «бреши» в безопасности сервера, позволяющие заменить домашнюю страницу.
Изменение файлов базы данных или списка транзакций должно выполняться очень осторожно. Транзакции нумеруются последовательно, и удаление или добавление неправильных операционных номеров будет замечено. В этих случаях необходимо основательно поработать во всей системе, чтобы воспрепятствовать обнаружению.
Маскарад
Маскарад – это выполнение действий под видом другого пользователя или другой системы. Такая атака реализуется при связи через персональные устройства, при осуществлении финансовых операций или при передаче информации от одной системы к другой.
Отрицание события
Отрицание события – это отказ от факта совершения операции. Например, человек делает покупку в магазине при помощи кредитной карты. Когда приходит счет, он заявляет компании, предоставившей ему кредитную карту, что никогда не делал этой покупки.[59]
Атаки выполняются по отношению к информации, хранящейся в виде бумажных документов или в электронном виде. Сложность реализации атаки зависит от мер предосторожности, принятых в организации.
Злоумышленник выдает себя за другого человека, используя чужие документы. Это легче делать, если документ напечатан, а не написан от руки. Злоумышленник отрицает факт свершения сделки. Если на контракте или квитанции кредитной карты имеется подпись, он заявит, что это не его подпись. Естественно, планируя такую атаку, он постарается, чтобы подпись выглядела неправдоподобно.
Атаки на отказ от обязательств выполняются гораздо успешнее, если информация представлена в электронном виде. Ведь электронный документ может создать и отправить кто угодно. В поле «от» («from») адреса электронной почты легко изменить имя отправителя, подлинность которого не проверяется службой электронной почты.
Это справедливо и для информации, передаваемой компьютерными системами. Система может назначить себе любой IP-адрес и замаскироваться под другую систему.
В электронной среде гораздо легче отрицать факт свершения какого-либо события, ведь на цифровых документах и квитанциях кредитной карты нет рукописной подписи.
Если документ не имеет цифровой подписи, то невозможно доказать его принадлежность определенному человеку. Но даже если подпись имеется, всегда можно сказать, что она украдена или что раскрыт пароль, защищающий ключ. Таким образом, очень трудно связать конкретного человека с конкретным событием — намного легче отрицать это.
Для многих коммерческих компаний наиболее секретными сведениями являются картотека персонала и информация о заработке. Не нужно забывать о покупателях — об их номерах кредитных карт и номерах социального обеспечения. Финансовые организации и организации здравоохранения также имеют секретную информацию, которая определенным образом регулируется. Просматривая информацию и продумывая возможность атаки, поставьте своей целью сделать так, чтобы она не была раскрыта. Возможно, что для вашего бизнеса важно учесть атаки модификации, отказа в обслуживании и отказа от обязательств.[60]
Методы хакеров
Термин хакер здесь используется в его современном значении — человек, взламывающий компьютеры. Надо заметить, что раньше быть хакером не считалось чем-то противозаконным, скорее, это была характеристика человека, умеющего профессионально обращаться с компьютерами. В наши дни хакерами мы называем тех, кто ищет пути вторжения в компьютерную систему или выводит ее из строя.
Исследования показали, что хакерами чаще всего становятся:
· мужчины;
· в возрасте от 16 до 35 лет;
· одинокие;
· образованные;
· технически грамотные.
Хакеры имеют четкое представление о работе компьютеров и сетей, о том, как протоколы используются для выполнения системных операций.[61]
Мотивация дает ключ к пониманию поступков хакеров, выявляя замысел неудавшегося вторжения. Мотивация объясняет, почему компьютеры так привлекают их.
Первоначальной мотивацией взломщиков компьютерных систем было желание «сделать это». И до сих пор оно остается наиболее общим побудительным мотивом.
Хакеров привлекает не просто взлом конкретной системы, а стремление сделать это первым либо взломать сразу много систем. В отдельных случаях взломщики специально удаляют уязвимое место, с помощью которого они вывели компьютер из строя, чтобы никто больше не смог повторить атаку.
Желание привлечь к себе внимание порождает ненаправленные атаки, т. е. взлом выполняется ради развлечения и не связан с определенной системой. Направленные атаки, целью которых является получение конкретной информации или доступ к конкретной системе, имеют другую мотивацию. С точки зрения безопасности это означает, что любой компьютер, подключенный к интернету, представляет собой потенциальную мишень для атак.
Все чаще наблюдается еще одна форма мотивации – хактивизм (hactivism), или хакинг во имя общественного блага. Хактивизм связывает себя с политическими акциями и зачастую служит поводом для оправдания преступления. Он является более опасным, поскольку привлекает честных и наивных людей.
Алчность – один из самых старых мотивов для преступной деятельности. Для хакера это связано с жаждой получения любой наживы – денег, товаров, услуг, информации.
Если в системе обнаружится атак, большинство организаций исправит уязвимость, которая использовалась при атаке, восстановит систему и продолжит работу. Некоторые обратятся за поддержкой к правоохранительным органам, если не смогут выследить взломщика за недостатком доказательств, или если хакер находится в стране, где отсутствуют законы о компьютерной безопасности. Предположим, что хакер оставил улики и задержан. Далее дело будет вынесено на суд присяжных, и прокурор округа (или федеральный прокурор) должен будет доказать, что человек на скамье подсудимых действительно взломал систему жертвы и совершил кражу. Это сделать очень трудно!
þпример
Случай с хакером по имени Datastream Cowboy. Вместе с хакером Kuji он взломал систему Центра авиационных разработок базы ВВС Гриффиз (Griffis) в Риме и Нью-Йорке и украл программное обеспечение на сумму свыше двухсот тысяч долларов. Хакером Datastream Cowboy оказался 16-летний подросток из Великобритании — он был арестован и осужден в 1997 г. Его присудили к уплате штрафа размером в 1915 долларов.[62]
На этом примере важно понять следующее: должен существовать способ борьбы с преступниками, движущей силой которых является жажда наживы. В случае взлома системы риск быть схваченным и осужденным очень низок, а прибыль от воровства номеров кредитных карт, товаров и информации очень высока. Хакер будет разыскивать ценную информацию, которую можно продать или использовать с выгодой для себя.
Хакер, основным мотивом которого является алчность, ставит перед собой особые задачи — его главной целью становятся сайты с ценным содержанием (программным обеспечением, деньгами, информацией).
И последней мотивацией хакера может быть злой умысел, вандализм. В этом случае хакер не заботится о захвате управления системой (только если это не помогает ему в его целях). Вместо этого он старается причинить вред легальным пользователям, препятствуя их работе в системе, или законным владельцам сайта, изменяя его веб-страницы.
Коллективный доступ
Первоначальной целью при создании интернета был общий доступ к данным и совместная работа исследовательских институтов. Таким образом, большинство систем было сконфигурировано для коллективного использования информации. При работе в операционной системе Unix использовалась сетевая файловая система (Network File System, NFS), которая позволяла одному компьютеру подключать диск другого компьютера через локальную сеть (local area network, LAN) или интернет.
Этим механизмом воспользовались первые хакеры для получения доступа к информации — они подключали удаленный диск и считывали ее. NFS использовала номера идентификаторов пользователя (user ID, UID) в качестве промежуточного звена для доступа к данным на диске. Если пользователь JOE с номером ID 104 имел разрешение на доступ к файлу на своем домашнем компьютере, то другой пользователь ALICE с номером ID 104 на удаленном компьютере также мог прочитать этот файл. Опасность возросла, когда некоторые системы разрешили общий доступ в корневую файловую систему (root file system), включая файлы конфигурации и паролей. В этом случае хакер мог завладеть правами администратора и подключить корневую файловую систему, что позволяло ему изменять файлы конфигурации удаленной системы.
Общий доступ к файлам нельзя считать уязвимым местом, это, скорее, серьезная ошибка конфигурации. Самое интересное, что многие операционные системы (включая ОС Sun) поставляются с корневой файловой системой, экспортируемой для общедоступного чтения/записи.
Следовательно, любой пользователь на любом компьютере, связавшись с Sun-системой, может подключать корневую файловую систему и вносить в нее произвольные модификации. Если не изменить заданную по умолчанию конфигурацию системы, то это может сделать каждый, кто захочет.
Новые системы коллективного доступа к файлам, например Gnutella, позволяют компьютерам внутренней сети устанавливать общий доступ к файлам других систем в интернете. Эти системы имеют перенастраиваемую конфигурацию и могут открывать порты, обычно защищенные межсетевым экраном (например, порт 80). Такие системы представляют более серьезную опасность, чем NFS и общий доступ к файлам в ОС Windows.
В ту же самую категорию, что и совместное использование файлов и неправильная настройка, относится удаленный доступ с доверительными отношениями. Использование службы удаленного входа в систему без пароля rlogin является обычным делом среди системных администраторов и пользователей. Rlogin позволяет пользователям входить сразу в несколько систем без повторного ввода пароля. Этими разрешениями управляют файлы типа .rhost и host.
Слабые пароли
Наверное, самый общий способ, который используют хакеры для входа в систему, – это слабые пароли. Пароли по-прежнему применяются для аутентификации пользователей. Так как это стандартный метод идентификации для большинства систем, он не связан с дополнительными расходами. Кроме того, пользователи понимают, как работать с паролями. К сожалению, многие не знают, как выбрать сильный пароль. Очень часто используются короткие пароли (меньше четырех символов) или легко угадываемые. Короткий пароль позволяет применить атаку «в лоб», т. е. хакер будет перебирать предположительные пароли, пока не подберет нужный. Если пароль имеет длину два символа (и это буквы), то возможных комбинаций будет всего 676. При восьмисимвольном пароле (включающем только буквы) число комбинаций увеличивается до 208 миллионов. Естественно, гораздо легче угадать двухсимвольный пароль, чем восьмисимвольный![63]
Легко угадываемый пароль также является слабым паролем.
þпример
Червь Морриса. В 1988 г. студент Корнельского университета Роберт Моррис разработал программу, которая распространялась через интернет. Эта программа использовала несколько уязвимых мест для получения доступа к компьютерным системам и воспроизведения самой себя. Одним из уязвимых мест были слабые пароли. Программа наряду со списком наиболее распространенных паролей использовала следующие пароли: пустой пароль, имя учетной записи, имя учетной записи, добавленное к самому себе, имя пользователя, фамилию пользователя и зарезервированное имя учетной записи. Этот червь нанес ущерб достаточно большому количеству систем и весьма эффективно вывел из строя интернет.
Дефекты программирования
Хакеры пользовались дефектами программирования много раз. К этим дефектам относится оставленный в программе «черный ход» (back door), который позволяет впоследствии входить в систему. Ранние версии программы Sendmail имели такие «черные ходы». Наиболее часто использовалась команда WIZ, доступная в первых версиях Sendmail, работающих под Unix. При подключении с помощью Sendmail (через сетевой доступ к порту 25) и вводе команды WIZ появлялась возможность запуска интерпретатора команд (root shell). Эта функция сначала была включена в Sendmail как инструмент для отладки программы. Подобные функции, оставленные в программах общего назначения, позволяют хакерам моментально проникать в системы, использующие эти программы. Хакеры идентифицировали множество таких лазеек, большинство из которых было, в свою очередь, устранено программистами. К сожалению, некоторые «черные ходы» существуют до сих пор, поскольку не на всех системах обновилось программное обеспечение.
Социальный инжиниринг
Социальный инжиниринг – это получение доступа к информации или к системе без применения технических средств.
Вместо использования уязвимых мест или эсплоитов хакер играет на человеческих слабостях. Самое сильное оружие хакера в этом случае – приятный голос и актерские способности. Хакер может позвонить по телефону сотруднику компании под видом службы технической поддержки и узнать его пароль «для решения небольшой проблемы в компьютерной системе сотрудника». В большинстве случаев этот номер проходит.[64]
Иногда хакер под видом служащего компании звонит в службу технической поддержки. Если ему известно имя служащего, то он говорит, что забыл свой пароль, и в результате либо узнает пароль, либо меняет его на нужный. Учитывая, что служба технической поддержки ориентирована на безотлагательное оказание помощи, вероятность получения хакером хотя бы одной учетной записи весьма велика.
Другими формами социального инжиниринга являются исследование мусора организаций, виртуальных мусорных корзин, использование источников открытой информации (веб-сайтов, отчетов, предоставляемых в Комиссию по ценным бумагам США, рекламы), открытый грабеж и самозванство. Кража портативного компьютера или набора инструментов сослужит хорошую службу хакеру, который захочет побольше узнать о компании. Инструменты помогут ему сыграть роль обслуживающего персонала или сотрудника компании.
Самой лучшей обороной против атак социального инжиниринга является информирование служащих. Объясните им, каким образом служба технической поддержки может вступать с ними в контакт и какие вопросы задавать. Объясните персоналу этой службы, как идентифицировать сотрудника, прежде чем говорить ему пароль. Расскажите персоналу организации о выявлении людей, которые не должны находиться в офисе, и о том, как поступать в этой ситуации.
Переполнение буфера
Переполнение буфера – это одна из ошибок программирования, используемая хакерами. Переполнение буфера труднее обнаружить, чем слабые пароли или ошибки конфигурации. Однако требуется совсем немного опыта для его эксплуатации. К сожалению, взломщики, отыскавшие возможности переполнения буфера, публикуют свои результаты, включая в них сценарий эксплоита или программу, которую может запустить каждый, кто имеет компьютер.[65]
Переполнение буфера особенно опасно тем, что позволяет хакерам выполнить практически любую команду в системе, являющейся целью атаки. Большинство сценариев переполнения буфера дают хакерам возможность создания новых способов проникновения в атакуемую систему.
Следует отметить, что переполнение буфера не ограничивает доступ к удаленной системе. Существует несколько типов переполнений буфера, с помощью которых можно повысить уровень пользователя в системе. Локальные уязвимые места так же опасны (если не больше), как и удаленные.
Переполнение буфера – это попытка разместить слишком много данных в используемой компьютерной памяти. Например, если создана переменная длиной в восемь байтов и записать в нее девять байтов, то девятый байт разместится в памяти сразу вслед за восьмым. Если попробовать поместить еще больше данных в эту переменную, то в конечном итоге заполнится вся память, используемая операционной системой. В случае переполнения буфера интересуемая нас часть памяти называется стеком и является возвращаемым адресом функции, исполняемой на следующем шаге.
Стек управляет переключением между программами и сообщает операционной системе, какой код выполнять, когда одна часть программы или функции) завершает свою задачу. В стеке хранятся локальные переменные функции. При атаке на переполнение буфера хакер помещает инструкции в локальную переменную, которая сохраняется в стеке. Эти данные занимают в локальной переменной больше места, чем выделенный под нее объем, и переписывают возвращаемый адрес в точку этой новой инструкции. Эта новая инструкция загружает для выполнения программную оболочку (осуществляющую интерактивный доступ) или другое приложение, изменяет файл конфигурации (inetd.conf) и разрешает хакеру доступ посредством создания новой конфигурации.
Переполнение буфера происходит очень часто из-за ошибки в приложении, когда пользовательские данные копируются в одну и ту же переменную без проверки объема этих данных перед выполнением операции. Очень многие программы страдают этим. Однако данная проблема устраняется довольно быстро, сразу, как только выявляется и привлекает внимание разработчика. Но если это так легко сделать, то почему переполнение буфера существует до сих пор? Если программист будет проверять размер пользовательских данных перед их размещением в предварительно объявленной переменной, то переполнения буфера можно будет избежать.[66]
Переполнение буфера можно обнаружить в результате исследования исходного кода программ.
Отказ в обслуживании
Атаки на отказ в обслуживании (Denial-of-service, DoS) — это злонамеренные действия, выполняемые для запрещения легальному пользователю доступа к системе, сети, приложению или информации. Атаки DoS имеют много форм, они бывают централизованными (запущенными от одной системы) или распределенными (запущенными от нескольких систем).
Атаки DoS нельзя полностью предотвратить, их нельзя и остановить, если не удастся выявить источник нападения. Атаки DoS происходят не только в киберпространстве. Пара кусачек является нехитрым инструментом для DoS-атаки – надо только взять их и перерезать кабель локальной сети. В нашем рассказе мы не будем останавливаться на физических атаках DoS, а обратим особое внимание на атаки, направленные против компьютерных систем или сетей. Вы просто должны запомнить, что физические атаки существуют и бывают довольно разрушительны, иногда даже в большей степени, чем атаки в киберпространстве.
Следует отметить еще один важный момент в подготовке большинства атак. Пока взломщику не удастся проникнуть в целевую систему, DoS-атаки запускаются с подложных адресов. IP-протокол имеет ошибку в схеме адресации: он не проверяет адрес отправителя при создании пакета. Таким образом, хакер получает возможность изменить адрес отправителя пакета для скрытия своего расположения. Большинству DoS-атак для достижения нужного результата не требуется возвращение трафика в домашнюю систему хакера
Централизованные DoS-атаки
Первыми типами DoS-атак были централизованные атаки (single-source), т. е. для осуществления атаки использовалась одна-единственная система. Наиболее широкую известность получила так называемая синхронная атака (SYN flood attack) (рис. 8.1). При ее выполнении система-отправитель посылает огромное количество TCP SYN-пакетов (пакетов с синхронизирующими символами) к системе-получателю. SYN-пакеты используются для открытия новых TCP-соединений. При получении SYN-пакета система-получатель отвечает АСК-пакетом, уведомляющим об успешном приеме данных, и посылает данные для установки соединения к отправителю SYN-пакета. При этом система-получатель помещает информацию о новом соединении в буфер очереди соединений. В реальном ТСР-соединении отправитель после получения SYN АСК-пакета должен отправить заключительный АСК-пакет. Однако в этой атаке отправитель игнорирует SYN АСК-пакет и продолжает отправку SYN-пакетов. В конечном итоге буфер очереди соединений на системе-получателе переполняется, и система перестает отвечать на новые запросы на подключение.
Очевидно, что если источник синхронной атаки имеет легальный IP-адрес, то его можно относительно легко идентифицировать и остановить атаку. А если адрес отправителя является немаршрутизируемым, таким как 192.168.х.х? Тогда задача усложняется. В случае продуманного выполнения синхронной атаки и при отсутствии должной защиты IP-адрес атакующего практически невозможно определить.
Для защиты систем от синхронных атак было предложено несколько решений. Самый простой способ — размещение таймера во всех соединениях, ожидающих очереди. По истечении некоторого времени соединения должны закрываться. Однако для предотвращения грамотно подготовленной атаки таймер придется установить равным такому маленькому значению, что это сделает работу с системой практически невозможной. С помощью некоторых сетевых устройств можно выявлять и блокировать синхронные атаки, но эти системы склонны к ошибочным результатам, поскольку ищут определенное количество отложенных подключений в заданном промежутке времени. Если атака имеет несколько источников одновременно, то ее очень трудно идентифицировать.

Рис.8.1 Синхронная DoS-атака (SYN flood attack)
После синхронной атаки были выявлены и другие атаки, более серьезные, но менее сложные в предотвращении. При выполнении атаки «пинг смерти» (Ping of Death) в целевую систему отправлялся пинг-пакет (ICMP эхо-запрос). В обычном варианте пинг-пакет не содержит данных. Пакет «пинг смерти» содержал большое количество данных. При чтении этих данных системой-получателем происходило переполнение буфера в стеке протоколов, и возникал полный отказ системы. Разработчики стека не предполагали, что пинг-пакет будет использоваться подобным образом, и поэтому проверка количества данных, помещаемых в маленький буфер, не выполнялась. Проблема была быстро исправлена после выявления, и в настоящее время осталось мало систем, уязвимых для этой атаки.
«Пинг смерти» — лишь одна разновидность DoS-атаки, нацеленная на уязвимые места систем или приложений и являющаяся причиной их остановки. DoS-атаки разрушительны лишь в начальной стадии и быстро теряют свою силу после исправления системных ошибок.
Распределенные DoS-атаки
Распределенные DoS-атаки (Distributed DoS-attaks, DDoS) – это DoS-атаки, в осуществлении которых участвует большое количество систем. Обычно DDoS-атакой управляет одна главная система и один хакер. Эти атаки не обязательно бывают сложными. Например, хакер отправляет пинг-пакеты по широковещательным адресам большой сети, в то время как с помощью подмены адреса отправителя – спуфинга (spoofing) – все ответы адресуются к системе-жертве. Такая атака получила название smurf-атаки. Если промежуточная сеть содержит много компьютеров, то количество ответных пакетов, направленных к целевой системе, будет таким большим, что приведет к выходу из строя соединения из-за огромного объема передаваемых данных.[67]
Современные DDoS-атаки стали более изощренными по сравнению со smurf-атакой. Новые инструментальные средства атак, такие как Trinoo, Tribal Flood Network, Mstream и Stacheldraht, позволяют хакеру координировать усилия многих систем в DDoS-атаке, направленной против одной цели. Эти средства имеют трехзвенную структуру. Хакер взаимодействует с главной системой или серверным процессом, размещенным на системе-жертве. Главная система взаимодействует с подчиненными системами или клиентскими процессами, установленными на других захваченных системах. Подчиненные системы («зомби») реально осуществляют атаку против целевой системы. Команды, передаваемые к главной системе и от главной системы к подчиненным, могут шифроваться или передаваться с помощью протоколов UDP (пользовательский протокол данных) или ICMP (протокол управляющих сообщений), в зависимости от используемого инструмента. Действующим механизмом атаки является переполнение UDP-пакетами, пакетами TCP SYN или трафиком ICMP. Некоторые инструментальные средства случайным образом меняют адреса отправителя атакующих пакетов, чрезвычайно затрудняя их обнаружение.
Главным результатом DDoS-атак, выполняемых с использованием специальных инструментов, является координация большого количества систем в атаке, направленной против одной системы. [68]
Выполнение атак
Рассмотрим, что требуется для выполнения вышеперечисленных атак. В случае ARP-спуфинга, дублирования МАС-адресов или МАС-флудинга злоумышленник должен напрямую подключиться к атакуемому коммутатору. Такое подключение требуется и для имитации доменного имени.
Хакер должен установить систему на локальном коммутаторе. Он может вначале войти в систему через известную уязвимость, а затем инсталлировать необходимое для снифинга программное обеспечение. В другом варианте хакер уже находится внутри организации (он ее служащий или подрядчик). В этом случае он использует свой законный доступ в локальную сеть, что позволяет ему связаться с коммутатором.
Правильность IP-адресов в пакетах, передаваемых по сети, не проверяется. Следовательно, хакер может изменить адрес отправителя так, чтобы казалось, будто пакет прибывает с любого адреса. Сложность заключается в том, что возвращаемые пакеты (SYN АСК-пакеты в TCP-соединении) не смогут вернуться к системе-отправителю. Следовательно, попытка имитации IP-адреса (IP-спуфинг) для установки TCP-соединения связана с серьезными трудностями. Кроме того, в TCP-заголовке содержится порядковый номер, используемый для подтверждения приема пакета. Исходный порядковый номер (initial sequence number, ISN) для каждого нового соединения выбирается псевдо-случайным образом.
В 1989 г. была опубликована статья, в которой говорится о том, что во многих реализациях протоколов TCP/IP исходный порядковый номер не выбирается случайным образом, а вместо этого просто увеличивается с определенным приращением. Следовательно, при наличии данных о последнем известном ISN следующий номер можно вычислить заранее. Именно благодаря этому возможно выполнение атаки IP-имитации.
На рис. 8.2 показано выполнение атаки имитации IP-адреса. Вначале хакер идентифицирует свою цель. Он должен определить величину приращения исходного порядкового номера (IDN). Это можно сделать, выполняя серию легальных подключений к целевой системе и отмечая возвращаемые IDN (при этом хакер рискует «засветить» свой реальный IP-адрес).[69]
После определения величины приращения IDN хакер посылает к целевой системе TCP SYN-пакет с измененным IP-адресом отправителя. Система ответит TCP SYN АСК-пакетом, который будет передан по этому подложному адресу и до хакера, следовательно, не дойдет. SYN АСК-пакет содержит исходный порядковый номер целевой системы. Для завершения процесса установки подключения данный ISN необходимо подтвердить отправкой заключительного TCP АСК-пакета. Хакер подсчитывает приблизительный ISN (основываясь на величине приращения, которую он выяснил заранее) и отправляет АСК-пакет, содержащий подложный IP-адрес отправителя и подтверждение ISN.

Рис.8.2 Атака имитации IP-адреса
Если все это будет правильно выполнено, хакер закроет легальное подключение к целевой системе. Он сможет посылать команды и информацию к системе, но не будет получать ответы.
При атаке имитации IP-адреса компьютерная система считает, что она взаимодействует с другой системой. Как это реализуется на практике? Ясно, что подобная атака, нацеленная на службу электронной почты или веб-службу, много не даст. То же самое справедливо и для атак «грубой силы» с помощью командной строки telnet.
При обнаружении системы, имеющей доверительные отношения с другой системой и находящейся в сети, к которой можно подключиться, имитация IP-адреса позволит хакеру получить доступ в эту систему. Однако есть еще одна проблема, которую он должен решить. Целевая система в ответ на подложные пакеты будет отправлять данные доверенной системе. В соответствии со спецификацией TCP доверенная система может ответить перезагрузкой или пакетом сброса (RST-пакетом), поскольку она не имеет сведений о подключении. Хакер не должен допустить этого и обычно выполняет DoS-атаку против доверенной системы
Вирусы
Компьютерные вирусы являются паразитами по отношению к другим компьютерным программам. Они сделаны так, что не могут жить самостоятельно. При выполнении программы, в которую внедрен вирус, исполняется код вируса, реализующий собственные функции. Эти функции обычно включают заражение других программ и распространение на другие диски. Некоторые вирусы являются вредоносными — они удаляют файлы или выводят из строя систему. Другие вирусы не наносят никакого вреда, кроме распространения самих себя по компьютерным системам.
Вирусы начали появляться в то время, когда компьютеры использовали дисковую операционную систему – DOS. Эти вирусы распространялись через файлы, доступные на электронных досках объявлений, или через дискеты. Позднее были созданы вирусы, которые прикреплялись к файлам текстовых редакторов и исполнялись как часть языка макросов в программах обработки текста.
Все типы вредоносного кода относят к категории компьютерных вирусов. Запомните описания вирусов и попробуйте понять, как работает код, чтобы правильно его классифицировать. Принципы работы этих программ напрямую связаны с выбором наиболее эффективных механизмов защиты.
«Троянские кони»
Термин «троян» происходит из древнегреческих мифов. Древние греки спрятали в подношении воинов, готовящих нападение. Так и «троянский конь» скрывает свою вредоносную сущность под видом полезной и интересной программы. «Троянский конь» является законченной и независимой программой, которая разработана для выполнения вредоносных действий. Она обычно маскируется под новую программу или электронную почту.
Большинство программ типа «троянский конь» содержат механизмы самораспространения на другие компьютеры-жертвы. Возьмем для примера программу ILOVEYOU. Она попадает на компьютер через сообщение электронной почты с вложением, содержащим программу на Visual Basic. Это вложение выглядит, как обычный текстовый файл. Но если пользователь откроет этот файл, то выполнится код на Visual Basic. Он отправит сам себя по почте всем пользователям, адреса которых найдет в адресной книге жертвы.
Черви
Червь — это программа, которая «переползает» от системы к системе без всякой помощи со стороны жертвы. Червь сам себя распространяет и воспроизводит. Все, что требуется от его создателя, запустить червя.
Первым известным примером является червь, созданный Робертом Моррисом в 1989г. Червь Морриса был запрограммирован на использование множества уязвимых мест, в том числе слабых паролей. С их помощью он отыскивал в интернете системы, в которые проникал и выполнялся. Попав в систему, червь начинал разыскивать другие жертвы. По прошествии некоторого времени он вывел из строя весь интернет.
Также большую известность приобрел червь CodeRed. Он использовал уязвимые места в информационных службах интернета (IIS) от Microsoft для распространения через всемирную сеть. Поскольку он использовал для атаки легальные веб-соединения, защитить от него компьютеры не смогли даже межсетевые экраны. Попав в систему, CodeRed выбирал произвольный адрес для следующей атаки.
В первоначальной версии червя CodeRed имелась проблема выбора адреса для следующей атаки. В поздних версиях червя она была решена, за счет чего червь стал распространяться быстрее. До сих пор еще встречаются инфицированные червем CodeRed системы, сканирующие интернет в поисках систем, которые можно вывести из строя.
þпример
В сентябре 2002 г. в интернете появился червь Slapper, который продемонстрировал потенциальную опасность червей. Этот червь действовал не сразу, подготавливая «плацдарм» для будущей атаки. Следует отметить, однако, что даже в момент своего наивысшего подъема червь Slapper не затронул такого количества систем, как червь CodeRed.
Червь Slapper использовал уязвимое место в модуле OpenSSL веб-сервера Apache (OpenSSL позволяет работать с протоколом защищенной передачи гипертекстов HTTPS). Попав в систему, червь выбирал IP-адрес для атаки из списка сетей класса А, запрограммированных в коде червя. Затем Slapper исследовал IP-адрес целевой системы и проверял, выполняется ли на ней веб-сервер. В случае положительного ответа он выяснял, не является ли этот веб-сервер сервером Apache, работающим на платформе Intel (поскольку он имеет свои специфические «бреши»). В конце концов червь определял наличие в целевой системе уязвимого места для атаки.
Сама атака выполнялась посредством использования HTTPS и порта 443. Это затрудняло обнаружение нападения, так как трафик шифровался. Единственное, что выдавало деятельность червя: при поиске уязвимого места он использовал стандартный протокол HTTP и порт 80 и легко обнаруживал себя.
Эксплоит, выполнявшийся на целевой системе, позволял червю получить доступ к командам оболочки shell, с помощью которых он копировал и компилировал самого себя, а затем выполнял получившуюся программу. Далее он отыскивал новые жертвы и запускал процесс снова и снова. После инфицирования одной системы червь продолжал с нее поиск других уязвимых систем.
Гибриды
Имеется еще одна разновидность вредоносных программ — объединение двух типов программ в одну. Можно встретить программы, действующие одновременно и как черви, и как «троянские кони». Прекрасным примером является червь Nimda, который использовал уязвимые места веб-сервера для перемещения с одной системы на другую, подобно червю. Однако Nimda распространялся и через вложения электронной почты, сделанные весьма привлекательными для пользователя, чтобы соблазнить его открыть файл. После открытия вложения червь распространялся далее через электронную почту. Он использовал системы жертв для атаки веб-серверов.[70]
Контрольные вопросы
1. Какие существуют основные категории атак?
2. Что представляет из себя «атака модификации»?
3. Что такое «Маскарад»?
4. Какие методы действия хакеров Вы знаете?
5. Как выполняется распределенная DoS-атака?
6. Какие осуществляется атака с использованием имитации IP-адреса?
Библиографический список
Основная литература:
1. Ярочкин В.И. Информационная безопасность: учебник для студентов высших учеб. заведений, обучающихся по гуманитарным и социально-экономическим специальностям / В. И. Ярочкин. – М.: Акад. проект, 2008. – C.131-183.
Дополнительная литература:
1. Мэйволд Э. Безопасность сетей: практическое пособие / Э. Мэйволд; [пер. с англ.] – М.: «СП ЭКОМ», 2005.
§
VPN (Virtual Private Network — виртуальная частная сеть) — логическая сеть, создаваемая поверх другой сети, например Интернет. Несмотря на то, что коммуникации осуществляются по публичным сетям с использованием небезопасных протоколов, за счёт шифрования создаются закрытые от посторонних каналы обмена информацией. VPN позволяет объединить, например, несколько офисов организации в единую сеть с использованием для связи между ними неподконтрольных каналов.
Аббревиатуру VPN можно расшифровать не только как Virtual Private Network, но и как Virtual Protected Network, т.е. Виртуальная Защищенная Сеть.
Термин «private» имеет два основных значения: частный (собственный) и конфиденциальный (закрытый). Если говорить о первом значении, то частная сеть – это сеть, в которой всё оборудование, включая территориальные кабельные системы, коммутирующие устройства, средства управления, являются собственностью предприятия. Такая сеть отвечает требованиям и второго определения, так как в собственной сети легче соблюдать конфиденциальность, поскольку все ресурсы сети используются только сотрудниками предприятия – владельца сети.
VPN – это частная сеть передачи данных, использующая открытую телекоммуникационную инфраструктуру и сохраняющая при этом конфиденциальность передаваемых данных посредством применения протоколов туннелирования и средств защиты информации.
Цель VPN-технологий состоит в максимальной степени обособления потоков данных одного предприятия от потоков данных всех других пользователей сети общего пользования. Обособленность должна быть обеспечена в отношении параметров пропускной способности потоков и в конфиденциальности передаваемых данных.
История зарождения VPN уходит своими корнями далеко в 60-е годы прошлого столетия, когда специалисты инженерно-технического отдела нью-йоркской телефонной компании разработали систему автоматического установления соединений абонентов АТС – Centrex (Central Exchange). Другими словами это не что иное, как виртуальная частная телефонная сеть, т.к. арендовались уже созданные каналы связи, т.е. создавались виртуальные каналы передачи голосовой информации. В настоящее время данная услуга заменяется более продвинутым ее аналогом – IP-Centrex.
Серьёзные компании создали множество решений, обеспечивающих функциональность частных приватных сетей, как на программном, так и на аппаратном уровне. Свою реализацию VPN предлагало большинство известных IT компаний:
· Cisco — L2F (Layer 2 Forwarding), L2TP (Layer 2 Tunnelling Protocol), L2TPV3 (Layer 2 Tunnelling Protocol version 3) .
· Microsoft — PPTP (Point-To-Point Tunnelling Protocol) .
· Check Point Software Technologies — VPN-1 .
· Redcreek Communications — Ravlin .
· Intel — Landrover VPN Express .
· и многие др.
Количество программных реализаций VPN от энтузиастов-любителей очень и очень велико. Большинство из них содержали в себе ряд серьёзных уязвимостей, зачастую в них был достаточно посредственно проработан вопрос шифрования — использовались достаточно слабые криптоалгоритмы, ни о какой многоплатформенности нельзя было и говорить. Но, несмотря на то, что большинство умирало на уровне альфа-бета версий, некоторые семена выросли в достаточно серьёзные решения, например, OpenVPN. Первые создаваемые реализации VPN обеспечивали лишь создание защищённого канала точка-точка между двумя серверами, по которому передавались все виды трафика. Со временем функциональность VPN расширялась, стали поддерживать более сложные, чем точка-точка, конфигурации сети: extranet VPN, intranet VPN, remote access VPN и VPN смешанных типов. Следствием этого явилось увеличение числа пользователей в виртуальных частных сетях, и на передний план вышли проблемы управления акаунтами, ассоциации с ними необходимых прав доступа, оперативное изменение прав в рамках всей создаваемой сети. Затем, в связи с увеличением числа пользователей стали повышаться требования к масштабируемости и расширяемости. Помимо постоянного увеличения числа пользователей изменился контент и объём передаваемых данных. Если на заре VPN по сетям в основном передавались текстовые данные, то на сегодняшний день эти сети часто используются для передачи медиа данных, на основе виртуальных частных сетей нередко устраивают видеоконференции и обеспечивают голосовую связь. Подобный «взрыв» объёмов трафика стал создавать огромные нагрузки на виртуальные частные сети, часто важная информация стала доходить со значительным запозданием из-за загрузки сетей. Это поставило перед разработчиками VPN решений новую проблему — проблему обеспечения качества обслуживания, которая на сегодняшний день наиболее актуальна.
VPN туннели
VPN соединение состоит из канала типа точка-точка, Это соединение также известно под названием туннель. Туннель создаётся в незащищённой сети, в качестве которой чаще всего выступает Интернет. Соединение точка-точка подразумевает, что оно всегда устанавливается между двумя компьютерами, которые называются узлами или peers. Каждый peer отвечает за шифрование данных до того, как они попадут в туннель и расшифровке этих данных после того, как они туннель покинут.
Хотя VPN туннель всегда устанавливается между двумя точками, каждый peer может устанавливать дополнительные туннели с другими узлами. Для примера, когда трём удалённым станциям необходимо связаться с одним и тем же офисом, будет создано три отдельных VPN туннеля к этому офису. Для всех туннелей peer на стороне офиса может быть одним и тем же. Это возможно благодаря тому, что узел может шифровать и расшифровывать данные от имени всей сети, как это показано на рис. 9.1.

Рис.9.1 VPN шлюз к сети
В этом случае VPN узел называется VPN шлюзом, а сеть за ним – доменом шифрования (encryption domain). Использование шлюзов удобно по нескольким причинам. Во-первых, все пользователи должны пройти через одно устройство, которое облегчает задачу управления политикой безопасности и контроля входящего и исходящего трафика сети. Во-вторых, персональные туннели к каждой рабочей станции, к которой пользователю надо получить доступ, очень быстро станут неуправляемыми (т.к. туннель – это канал типа точка-точка). При наличие шлюза, пользователь устанавливает соединение с ним, после чего пользователю открывается доступ к сети (домену шифрования).
Интересно отметить, что внутри домена шифрования самого шифрования не происходит. Причина в том, что эта часть сети считается безопасной и находящейся под непосредственным контролем в противоположность Интернет. Это справедливо и при соединении офисов с помощью VPN шлюзов. Таким образом гарантируется шифрование только той информации, которая передаётся по небезопасному каналу между офисами. Рис.9.2 показывает VPN соединяющую два офиса.
Рис.9.2 Защищённая сеть на основе незащищённой сети
Сеть A считается доменом шифрования VPN шлюза A, а сеть B доменом шифрования VPN шлюза B, соответственно. Когда пользователь сети A изъявляет желание отправить данные в сеть B, VPN шлюз A зашифрует их и отошлёт через VPN туннель. VPN шлюз B расшифрует информацию и передаст получателю в сети B.
Всякий раз, когда соединение сетей обслуживают два VPN шлюза, они используют режим туннеля. Это означает, что шифруется весь пакет IP, после чего к нему добавляется новый IP заголовок. Новый заголовок содержит IP адреса двух VPN шлюзов, которые и увидит пакетный сниффер при перехвате. Невозможно определить компьютер-источник в первом домене шифрования и компьютер-получатель во втором домене.
Существует много вариантов VPN шлюзов и VPN клиентов. Это может быть аппаратное VPN устройство или программное VPN обеспечение, которое устанавливается на маршрутизаторах или на ПК.
Независимо от используемого ПО, все VPN работают по следующим принципам:
· Каждый из узлов идентифицирует друг друга перед созданием туннеля, чтобы удостовериться, что шифрованные данные будут отправлены на нужный узел
· Оба узла требуют заранее настроенной политики, указывающей какие протоколы могут использоваться для шифрования и обеспечения целостности данных
· Узлы сверяют политики, чтобы договориться об используемых алгоритмах; если это не получается, то туннель не устанавливается
· Как только достигнуто соглашение по алгоритмам, создаётся ключ, который будет использован в симметричном алгоритме для шифрования/расшифровки данных.
Есть несколько стандартов регламентирующих вышеописанное взаимодействие: L2TP, PPTP, и IPSec.
Протокол IPSec
Стандарт IPSec был разработан для повышения безопасности IP протокола. Это достигается за счёт дополнительных протоколов, добавляющих к IP пакету собственные заголовки, которые называются инкапсуляциями.
AH (Authentication Header) – протокол заголовка идентификации. Обеспечивает целостность путём проверки того, что ни один бит в защищаемой части пакета не был изменён во время передачи. Не будем вдаваться в подробности, какая часть пакета защищается и где находятся данные AH заголовка, т.к. это зависит от используемого типа шифрования и в деталях, с диаграммами описывается в соответствующем RFC. Использование AH может вызвать проблемы, например, при прохождении пакета через NAT устройство. NAT меняет IP адрес пакета, чтобы разрешить доступ в Интернет с закрытого локального адреса. Т.к. пакет в таком случае изменится, то контрольная сумма AH станет неверной. Также стоит отметить, что AH разрабатывался только для обеспечения целостности. Он не гарантирует конфиденциальности путём шифрования содержимого пакета.
ESP (Encapsulating Security Protocol) – инкапсулирующий протокол безопасности, который обеспечивает и целостность и конфиденциальность. В режиме транспорта ESP заголовок находится между оригинальным IP заголовком и заголовком TCP или UDP. В режиме туннеля заголовок ESP размещается между новым IP заголовком и полностью зашифрованным оригинальным IP пакетом.
Т.к. оба протокола – AH и ESP добавляют собственные заголовки, они имеют свой ID протокола, по которому можно определить что последует за заголовком IP. Каждый тип заголовка имеет собственный номер. Например, для TCP это 6, а для UDP – 17. При работе через firewall важно не забыть настроить фильтры, чтобы пропускать пакеты с ID AH и/или ESP протокола. Для AH номер ID – 51, а ESP имеет ID протокола равный 50.
Третий протокол, используемый IPSec – это IKE или Internet Key Exchange protocol. Как следует из названия, он предназначен для обмена ключами между двумя узлами VPN. Насмотря на то, что генерировать ключи можно вручную, лучшим и более масштабируемым вариантом будет автоматизация этого процесса с помощью IKE. Необходимо помнить, что ключи должны часто меняться, и вам наверняка не хочется полагаться на свою память, чтобы найти время для совершения этой операции вручную.
SA (Security Association) – это термин IPSec для обозначения соединения. При настроенном VPN, для каждого используемого протокола создаётся одна SA пара (т.е. одна для AH и одна для ESP). SA создаются парами, т.к. каждая SA – это однонаправленное соединение, а данные необходимо передавать в двух направлениях. Полученные SA пары хранятся на каждом узле. Если ваш узел имеет SA, значит VPN туннель был установлен успешно.
Т.к. каждый узел способен устанавливать несколько туннелей с другими узлами, каждый SA имеет уникальный номер, позволяющий определить к какому узлу он относится. Это номер называется SPI (Security Parameter Index) или индекс параметра безопасности.
SA хранятся в базе данных с названием SAD (Security Association Database) или БД ассоциаций безопасности.
Каждый узел IPSec также имеет вторую БД – SPD или Security Policy Database (БД политики безопасности). Она содержит настроенную вами политику узла. Большинство VPN решений разрешают создание нескольких политик с комбинациями подходящих алгоритмов для каждого узла, с которым нужно установить соединение.
Настройки включает:
· Симметричные алгоритмы для шифрования/расшифровки данных
· Криптографические контрольные суммы для проверки целостности данных
· Способ идентификации узла. Самые распространенные способы – это предустановленные ключи (pre-shared secrets) или RSA сертификаты.
· Использовать ли режим туннеля или режим транспорта
· Какую использовать группу Diffie Hellman
· Как часто проводить переидентификацию узла
· Как часто менять ключ для шифрования данных
· Использовать ли PFS
· Использовать ли AH, ESP, или оба вместе.
При создании политики, как правило, возможно создание упорядоченного списка алгоритмов и Diffie Hellman групп. В таком случае будет использована первая совпавшая на обоих узлах позиция. Запомните, очень важно, чтобы всё в политике безопасности позволяло добиться этого совпадения. Если за исключением одной части политики всё остальное совпадает, узлы всё равно не смогут установить VPN соединение. При настройке VPN между различными системами уделите время изучению того, какие алгоритмы поддерживаются каждой стороной, чтобы иметь выбор наиболее безопасной политики из возможных.
§
Далее рассмотрим как происходит установка и поддержка туннелей. Эти действия производятся в два этапа (фазы). На первом – два узла договариваются о методе идентификации, алгоритме шифрования, хэш алгоритме и группе Diffie Hellman. Они также идентифицируют друг друга. Всё это может пройти в результате обмена тремя нешифрованными пакетами (т.н. агрессивный режим) или через обмен шестью нешифрованными пакетами (стандартный режим – main mode). Предполагая, что операция завершилась успешно, создаётся SA первой Фазы – Phase 1 SA (также называемый IKE SA) и процесс переходит к Фазе Два.
На втором этапе генерируются данные ключей, узлы договариваются насчёт используемой политики. Этот режим, также называемый быстрым режимом (quick mode), отличается от первой фазы тем, что может установиться только после первого этапа, когда все пакеты второй фазы шифруются. Такое положение дел усложняет решение проблем в случае неполадок на второй фазе при успешном завершении первой. Правильное завершение второй фазы приводит к появлению Phase 2 SA или IPSec SA, и на этом установка туннеля считается завершённой.
Рассмотрим, в какой момент это всё происходит. Сначала на узел прибывает пакет с адресом назначения в другом домене шифрования, и узел инициирует Фазу Один с тем узлом, который отвечает за другой домен. Допустим, туннель между узлами был успешно установлен и ожидает пакетов. Однако узлам необходимо переидентифицировать друг друга и сравнить политику через определённое время. Это время известно как время жизни Phase One или IKE SA lifetime.
Узлы также должны сменить ключ для шифрования данных через другой отрезок времени, который называется временем жизни Phase Two или IPSec SA lifetime. Phase Two lifetime короче, чем у первой фазы, т.к. ключ необходимо менять чаще. Типичное время жизни Phase Two – 60 минут. Для Phase One оно равно 24 часам.
Контрольные вопросы
1. Для каких целей используется VPN?
2. Что из себя представляет VPN-туннель?
3. Что такое «IPSec»?
4. Во сколько этапов происходит установка и поддержка VPN туннеля?
5. Как происходит установка и поддержка VPN туннеля?
6. Какое типичное время жизни Phase Two?
Библиографический список
Основная литература:
1. Ярочкин В.И. Информационная безопасность: учебник для студентов высших учеб. заведений, обучающихся по гуманитарным и социально-экономическим специальностям / В. И. Ярочкин. – М.: Акад. проект, 2008. – C.184-196.
Дополнительная литература:
1. Мэйволд Э. Безопасность сетей: практическое пособие / Э. Мэйволд; [пер. с англ.] – М.: «СП ЭКОМ», 2005.
Тема 10. Безопасность беспроводных сетей
10.1 Беспроводные сети
10.2 Средства безопасности беспроводных сетей
Беспроводные сети
За последние несколько лет беспроводные сети (WLAN) получили широкое распространение во всём мире. И если ранее речь шла преимущественно об использовании беспроводных сетей в офисах и хот-спотах, то теперь они широко используются и в домашних условиях, и для развертывания мобильных офисов (в условиях командировок). Специально для домашних пользователей и небольших офисов продаются точки беспроводного доступа и беспроводные маршрутизаторы класса SOHO, а для мобильных пользователей – карманные беспроводные маршрутизаторы. Однако, принимая решение о переходе к беспроводной сети, не стоит забывать, что на сегодняшнем этапе их развития они имеют одно уязвимое место.
Безопасность беспроводных сетей, или, точнее, боязнь незащищенности беспроводных сетей, – одна из важнейших тем в современной IT-индустрии. Это основное препятствие для расширения мирового рынка беспроводных сетей, надежно засевшее в головах руководящего IT-персонала компаний. В соответствии со многими заявлениями продавцов средств защиты беспроводных сетей, сделанных на крупных конференциях и выставках, таких как 2003 Wireless Event в Лондоне, «незащищенность беспроводных сетей и связанные с ней угрозы являются результатом разработки новой прогрессивной технологии в последние несколько лет, которая направлена на обеспечение новых уровней мобильной коммуникации». История перехвата радиосигналов уходит в далекое прошлое, и первые подобные случаи имели место во время Первой Мировой войны, опередив атаки на отказ в обслуживании (DOS-атаки) более чем на полвека. Первая функционирующая беспроводная сеть была построена в 1969 году – за 4 года до появления технологии Ethernet. Это была пакетная радиосеть ALOHA, разработанная в Гавайском Университете; она привела сотрудника Xerox PARC по имени Боб Меткалф к созданию алгоритма CSMA/CD (изначально названного Alto Aloha Network), что облегчило внедрение стандартов DIX Ethernet и 802.3.
§
Любая беспроводная сеть состоит как минимум из двух базовых компонентов – точки беспроводного доступа и клиента беспроводной сети (режим ad-hoc, при котором клиенты беспроводной сети общаются друг с другом напрямую без участия точки доступа, мы рассматривать не будем). Стандартами беспроводных сетей 802.11a/b/g предусматривается несколько механизмов обеспечения безопасности, к которым относятся различные механизмы аутентификации пользователей и реализация шифрования при передаче данных.
Протокол WEP
Все современные беспроводные устройства (точки доступа, беспроводные адаптеры и маршрутизаторы) поддерживают протокол безопасности WEP (Wired Equivalent Privacy), который был изначально заложен в спецификацию беспроводных сетей IEEE 802.11. Данный протокол является своего рода аналогом проводной безопасности (во всяком случае, расшифровывается он именно так), однако реально никакого эквивалентного проводным сетям уровня безопасности он, конечно же, не предоставляет.
Протокол WEP позволяет шифровать поток передаваемых данных на основе алгоритма RC 4 с ключом размером 64 или 128 бит.
Данные ключи имеют так называемую статическую составляющую длиной от 40 до 104 бит и дополнительную динамическую составляющую размером 24 бита, называемую вектором инициализации (Initialization Vector, IV).
На простейшем уровне процедура WEP-шифрования выглядит следующим образом: первоначально передаваемые в пакете данные проверяются на целостность (алгоритм CRC-32), после чего контрольная сумма (integrity check value, ICV) добавляется в служебное поле заголовка пакета. Далее генерируется 24-битный вектор инициализации, (IV) и к нему добавляется статический (40-или 104-битный) секретный ключ. Полученный таким образом 64-или 128-битный ключ и является исходным ключом для генерации псевдослучайного числа, использующегося для шифрования данных. Далее данные смешиваются (шифруются) с помощью логической операции XOR с псевдослучайной ключевой последовательностью, а вектор инициализации добавляется в служебное поле кадра. Вот, собственно, и всё.
Протокол безопасности WEP предусматривает два способа аутентификации пользователей: Open System (открытая) и Shared Key (общая). При использовании открытой аутентификации никакой аутентификации, собственно, и не существует, то есть любой пользователь может получить доступ в беспроводную сеть. Однако даже при использовании открытой системы допускается использование WEP-шифрования данных.
Протокол WPA
Протокол WEP имеет ряд серьёзных недостатков и не является для взломщиков труднопреодолимым препятствием. Поэтому в 2003 году был представлен следующий стандарт безопасности — WPA (Wi-Fi Protected Access). Главной особенностью этого стандарта является технология динамической генерации ключей шифрования данных, построенная на базе протокола TKIP (Temporal Key Integrity Protocol), представляющего собой дальнейшее развитие алгоритма шифрования RC 4. По протоколу TKIP сетевые устройства работают с 48-битовым вектором инициализации (в отличие от 24-битового вектора WEP) и реализуют правила изменения последовательности его битов, что исключает повторное использование ключей. В протоколе TKIP предусмотрена генерация нового 128-битного ключа для каждого передаваемого пакета. Кроме того, контрольные криптографические суммы в WPA рассчитываются по новому методу под названием MIC (Message Integrity Code).
Кроме того, протокол WPA поддерживает шифрование по стандарту AES (Advanced Encryption Standard), то есть по усовершенствованному стандарту шифрования, который отличается более стойким криптоалгоритмом, чем это реализовано в протоколах WEP и TKIP.
Фильтрация MAC-адресов
Фильтрация MAC-адресов, которая поддерживается всеми современными точками доступа и беспроводными маршрутизаторами, хотя и не является составной частью стандарта 802.11, тем нее менее, как считается, позволяет повысить уровень безопасности беспроводной сети. Для реализации данной функции в настройках точки доступа создаётся таблица MAC-адресов беспроводных адаптеров клиентов, авторизованных для работы в данной сети.
Режим скрытого идентификатора сети SSID
Ещё одна мера предосторожности, которую часто используют в беспроводных сетях – это режим скрытого идентификатора сети. Каждой беспроводной сети назначается свой уникальный идентификатор (SSID), который представляет собой название сети. Когда пользователь пытается войти в сеть, то драйвер беспроводного адаптера прежде всего сканирует эфир на наличие в ней беспроводных сетей. При использовании режима скрытого идентификатора (как правило, этот режим называется Hide SSID) сеть не отображается в списке доступных, и подключиться к ней можно только в том случае, если, во-первых, точно известен её SSID, и, во-вторых, заранее создан профиль подключения к этой сети.
Контрольные вопросы
1. Почему тема безопасности беспроводных сетей является одной из важнейших тем в IT-индустрии?
2. Что из себя представляет протокол WEP?
3. Что из себя представляет протокол WPA?
4. Для чего используется технология «фильтрации MAC-адресов»
Библиографический список
Основная литература:
1. Ярочкин В.И. Информационная безопасность: учебник для студентов высших учеб. заведений, обучающихся по гуманитарным и социально-экономическим специальностям / В. И. Ярочкин. – М.: Акад. проект, 2008. – C.199-236.
Дополнительная литература:
1. Мэйволд Э. Безопасность сетей: практическое пособие / Э. Мэйволд; [пер. с англ.] – М.: «СП ЭКОМ», 2005.
Заключение
Согласно результатам исследования компании «Ibas», 70% сотрудников воруют конфиденциальную информацию с рабочих мест. Больше всего с работы уносят такие вещи, как книги электронных адресов, базы данных клиентов, а также коммерческие предложения и презентации. И, более того, 72% опрошенных не страдают этическими проблемами, считая, что имеют законные права на нематериальное имущество компании.
Важным выводом является тот факт, что для совершения преступления в области информационной безопасности злоумышленнику необязательно быть специалистом по информационным технологиям. Практически любой сотрудник организации потенциально в состоянии нанести серьезный ущерб компании с использованием программных средств. В Интернете можно найти огромное число обучающих материалов и готовых программных продуктов для реализации несанкционированного доступа к любым компьютерам, где-бы они не находились.
Опыт показывает, что для достижения удачных решений по защите информации необходимо сочетание правовых, организационных и программно-аппаратных мер. Это сочетание определяется конфиденциальностью защищаемой информации, характером опасности и наличием средств защиты. В общем случае программно-аппаратные меры безопасности составляют незначительную часть от общих мер защиты. Однако ни одну из них упускать нельзя. Каждая мера дополняет другую, и недостаток или отсутствие любого способа приведет к нарушению общей (комплексной) защищенности.
Работы по развитию информационной безопасности организации включают в себя следующие этапы:
· анализ состава и содержания конфиденциальной информации организации;
· анализ ценности информации с позиций возможного ущерба от ее утери (получения злоумышлинниками);
· оценка уязвимости информации, доступности ее для злоумышленника;
· исследование существующей информационной безопасности организации;
· оценка затрат на разработку системы безопасности;
· организация мер повышению уровня информационной безопасности организации;
· закрепление персональной ответственности за защиту информации;
· реализация технологии защиты информации;
· контроль результатов разработки и прием в эксплуатацию новой системы защиты.
Также специалистам в области безопасности необходимо постоянно следить за последними новостями свойе сферы деятельности. И своевременно пренимать адекватные меры.
[1] Гец Д. Война будущего / Д. Гец, М. Розенбах, А. Шандар. – «Профиль». – №05/16. – 2009. – С.53-56.
[2] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С 56-57.
[3] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С. 69.
[4] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С. 68.
[5] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С. 70.
[6] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.72.
[7] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.75.
[8] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.79.
[9] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.81.
[10] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.82.
[11] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.83.
[12] Мэйволд Э. Безопасность сетей: практическое пособие / Э. Мэйволд; [пер. с англ.] – М.: «СП ЭКОМ», 2005. – С. 139.
[13] Мэйволд Э. Безопасность сетей: практическое пособие / Э. Мэйволд; [пер. с англ.] – М.: «СП ЭКОМ», 2005. – С. 141.
[14] Мэйволд Э. Безопасность сетей: практическое пособие / Э. Мэйволд; [пер. с англ.] – М.: «СП ЭКОМ», 2005. – С. 147.
[15] Мэйволд Э. Безопасность сетей: практическое пособие / Э. Мэйволд; [пер. с англ.] – М.: «СП ЭКОМ», 2005. – С. 153.
[16] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.89.
[17] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.164.
[18] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.165.
[19] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.167.
[20] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.175.
[21] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.177.
[22] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.178.
[23] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.179.
[24] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.180.
[25] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.182.
[26] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.183.
[27] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.186.
[28] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.187.
[29] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.189.
[30] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.194.
[31] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.195.
[32] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.195.
[33] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.196.
[34] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.198.
[35] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.199.
[36] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.205.
[37] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.207.
[38] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.207.
[39] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.209.
[40] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.445.
[41] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.451.
[42] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.275.
[43] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.276.
[44] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.276.
[45] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.282.
[46] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.283.
[47] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.283.
[48] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.284.
[49] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.358.
[50] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.361.
[51] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.362.
[52] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.364.
[53] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.366.
[54] Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006. – С.376.
[55] Мэйволд Э. Безопасность сетей: практическое пособие / Э. Мэйволд; [пер. с англ.] – М.: «СП ЭКОМ», 2005. – С.39.
[56] Мэйволд Э. Безопасность сетей: практическое пособие / Э. Мэйволд; [пер. с англ.] – М.: «СП ЭКОМ», 2005. – С.40.
[57] Мэйволд Э. Безопасность сетей: практическое пособие / Э. Мэйволд; [пер. с англ.] – М.: «СП ЭКОМ», 2005. – С.43.
[58] Мэйволд Э. Безопасность сетей: практическое пособие / Э. Мэйволд; [пер. с англ.] – М.: «СП ЭКОМ», 2005. – С.45.
[59] Мэйволд Э. Безопасность сетей: практическое пособие / Э. Мэйволд; [пер. с англ.] – М.: «СП ЭКОМ», 2005. – С.50.
[60] Мэйволд Э. Безопасность сетей: практическое пособие / Э. Мэйволд; [пер. с англ.] – М.: «СП ЭКОМ», 2005. – С.52.
[61] Мэйволд Э. Безопасность сетей: практическое пособие / Э. Мэйволд; [пер. с англ.] – М.: «СП ЭКОМ», 2005. – С.54.
[62] Мэйволд Э. Безопасность сетей: практическое пособие / Э. Мэйволд; [пер. с англ.] – М.: «СП ЭКОМ», 2005. – С.57.
[63] Мэйволд Э. Безопасность сетей: практическое пособие / Э. Мэйволд; [пер. с англ.] – М.: «СП ЭКОМ», 2005. – С.60.
[64] Мэйволд Э. Безопасность сетей: практическое пособие / Э. Мэйволд; [пер. с англ.] – М.: «СП ЭКОМ», 2005. – С.61.
[65] Мэйволд Э. Безопасность сетей: практическое пособие / Э. Мэйволд; [пер. с англ.] – М.: «СП ЭКОМ», 2005. – С.63.
[66] Мэйволд Э. Безопасность сетей: практическое пособие / Э. Мэйволд; [пер. с англ.] – М.: «СП ЭКОМ», 2005. – С.63.
[67] Мэйволд Э. Безопасность сетей: практическое пособие / Э. Мэйволд; [пер. с англ.] – М.: «СП ЭКОМ», 2005. – С.68.
[68] Мэйволд Э. Безопасность сетей: практическое пособие / Э. Мэйволд; [пер. с англ.] – М.: «СП ЭКОМ», 2005. – С.69.
[69] Мэйволд Э. Безопасность сетей: практическое пособие / Э. Мэйволд; [пер. с англ.] – М.: «СП ЭКОМ», 2005. – С.75.
[70] Мэйволд Э. Безопасность сетей: практическое пособие / Э. Мэйволд; [пер. с англ.] – М.: «СП ЭКОМ», 2005. – С.80.
Двухфакторная аутентификация в домене с использованием токенов и ms ca | my blog
Пароль является не очень надежным средством защиты. Очень часто используются простые, легко подбираемые пароли или же пользователи не особо следят за сохранностью своих паролей (раздают коллегам, пишут на бумажках и т.д.). В Microsoft уже давно реализована технология, позволяющая для входа в систему использовать SmartCard, т.е. аутентифицироваться в системе по сертификату. Но не обязательно использовать непосредственно смарт-карты, ведь для них нужны еще и считыватели, поэтому проще их заменить на usb токены. Они позволят реализовать двухфакторную аутентификацию: первый фактор — это пароль от токена, второй фактор — это сертификат на токене. Далее на примере usb токена JaCarta и домена Windows я расскажу как внедрить этот механизм аутентификации.
Первым делом в AD создадим группу «g_EtokenAdmin» и уч. запись «Enrollment Agent», входящую в эту группу. Эта группа и пользователь будут рулить центром сертификации.
![]()
Далее добавим серверу роль AD CA (центр сертификации).

Дополнительно установим Web службу для запроса сертификатов.

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

Введем имя CA и выберем срок действия основного сертификата.
Остальные параметры оставляем по умолчанию и запускаем процесс установки.

После установки зайдем в оснастку центра сертификации и настроим права на шаблоны.
После установки зайдем в оснастку центра сертификации и настроим права на шаблоны.
Нас будут интересовать два шаблона: Агент регистрации (Enrollment Agent) и Вход со смарт-картой (Smartcard logon).
Зайдем в свойства этих шаблонов и на вкладке безопасность добавим группу «g_EtokenAdmin» с правами чтение и заявка.

Далее включим эти шаблоны.

И они появятся у нас в общем списке.

Следующим шагом настроим групповые политики:
Первым делом расскажем всем компьютерам домена о корневом центре сертификации, для этого изменим Default Domain Policy.
Конфигурация компьютера -> Политики -> Конфигурация Windows -> Параметры безопасности -> Политики открытого ключа -> Доверенные корневые центры сертификации -> Импорт

Выберем наш корневой сертификат, расположенный по пути: C:WindowsSystem32certsrvCertEnroll. Закрываем Default Domain Policy.
На следующем шаге создадим политику для контейнера, в котором будут находится компьютеры с аутентификацией по токену (Смарт-карте).

По пути Конфигурация компьютера -> Политики -> Конфигурация Windows -> Параметры безопасности -> Локальные политики -> Параметры безопасности. Настроим два параметра «Интерактивный вход в систему: требовать смарт-карту» и «Интерактивный вход в систему: поведение при извлечении смарт-карты».

На этом с настройками все, теперь можно генерировать клиентский сертификат и проверять аутентификацию по токену.
Залогинемся на компьютере под учетной записью «Enrollment Agent» и откроем браузер, перейдя по ссылке http://Имя_сервера_MS_CA/certsrv

Выбираем пункт Запрос сертификата -> Расширенный запрос сертификата -> Создать и выдать запрос к этому ЦС
Если возникнет ошибка вида «Чтобы завершить подачу заявки на сертификат, следует настроить веб-узел для ЦС на использование проверки подлинности по протоколу HTTPS», то нужно на сервере IIS, на котором установлен MS CA, сделать привязку сайта к протоколу https.

Продолжим получение сертификата, для этого на открывшейся странице выберем шаблон: «Агент регистрации» и нажмем кнопку выдать и установить сертификат.

Теперь пользователь Enrollment Agent может выписывать сертификаты для других пользователей. К примеру запросим сертификат для пользователя test. Для этого откроем консоль управления сертификатами certmgr.msc, т.к. через web интерфейс не получится записать сертификат на usb токен.
В этой консоли на папке личное сделаем запрос от имени другого пользователя

В качестве подписи выбираем единственный сертификат «Enrollment Agent» и переходим к следующему шагу, на котором выбираем пункт «Вход со смарт-картой» и нажимаем подробности для выбора криптопровайдера.
В моем случае я использую токены JaCarta, поэтому вместе с драйверами был установлен криптопровайдер «Athena…»:

На следующем шаге выбираем доменного пользователя, для которого выписываем сертификат и нажимаем на кнопку «Заявка».

Вставляем токен, вводим пин код и начинается процесс генерации. В итоге мы должны увидеть диалоговое окно с надписью «Успешно».
Если процесс окончился неудачно, возможно дело в шаблоне получения сертификата, в моем случае его надо было немного подправить.
Приступим к тестированию, проверим работу токена на компьютере, находящемся в OU с групповой политикой входа по смарт-карте.
При попытке войти под учетной записью с паролем мы должны получить отказ. При попытке войти со смарт-картой (токеном) мы получим предложение ввести пин и должны успешно зайти в систему.

P.s.
1) Если не работает автоматическая блокировка компьютера или выход из системы, после вытаскивания токена, смотрите запущена ли служба «Политика удаления смарт-карт»
2) На токен можно записать (сгенерировать сертификат) только локально, через RDP не получится.
3) Если не получается запустить процесс генерации сертификата по стандартному шаблону «Вход с смарт-картой», создайте его копию с такими параметрами.

На этом все, если будут вопросы, задавайте, постараюсь помочь.
