Протоколирование и аудит шифрование контроль целостности » История » Редакция 2
Редакция 1 (С. Антошкин, 05.12.2023 10:04) → Редакция 2/3 (1 1, 24.12.2023 14:20)
h1. Протоколирование и аудит шифрование контроль целостности {{TOC}} !clipboard-202312051240-6s564.png! --- h2. Протоколирование и аудит Под *протоколированием* понимается сбор и накопление информации о событиях, происходящих в информационной системе. У каждого сервиса свой _набор возможных событий_. Их можно разделить на внешние (вызванные действиями других сервисов), внутренние (вызванные действиями самого сервиса) и клиентские (вызванные действиями пользователей и администраторов). *Аудит* — это анализ накопленной информации. Он проводится оперативно, в реальном времени или периодически (например, раз в день). Оперативный аудит с автоматическим реагированием на выявленные не- штатные ситуации называется активным. Реализация протоколирования и аудита решает следующие задачи: * обеспечение подотчетности пользователей и администраторов; * обеспечение возможности реконструкции последовательности событий; * обнаружение попыток нарушений информационной безопасности; * предоставление информации для выявления и анализа проблем. Протоколирование требует для своей реализации здравого смысла. Какие события регистрировать? С какой степенью детализации? На подобные вопросы невозможно дать универсальные ответы. Необходимо следить за тем, чтобы, с одной стороны, достигались перечисленные выше цели, а, с другой, расход ресурсов оставался в пределах допустимого. Слишком обширное или подробное протоколирование не только снижает производительность сервисов (что отрицательно сказывается на доступности), но и затрудняет аудит, то есть не увеличивает, а уменьшает информационную безопасность Применительно к операционным системам предлагается протоколировать следующие события: * вход в систему (успешный или нет; нет); * выход из системы; * обращение к удаленной системе; * операции с файлами (открыть, закрыть, переименовать, удалить; удалить); * смена привилегий или иных атрибутов безопасности (режима доступа, уровня благонадежности пользователя и т.п.). тп.). При протоколировании события рекомендуется записывать, по крайней мере, следующую информацию: * дата и время события; * уникальный идентификатор пользователя — инициатора действия; * тип события; * результат действия (успех или неудача; неудача); * источник запроса (например, имя терминала; терминала); * имена затронутых объектов (например, открываемых или удаляемых файлов; файлов); * описание изменений, внесенных в базы данных защиты (например, новая метка безопасности объекта). Еще одно важное понятие, выборочное протоколирование, как в отношении пользователей (внимательно следить только за подозрительными), так и в отношении событий. Реализация протоколирования и аудита — зависит от других средств безопасности. Идентификация и аутентификация является обязательным условием регистрации действий пользователей, (иначе все действия будут записаны на «гостя»). Логическое управление доступом защищает конфиденциальность и целостность регистрационной информации. Возможно, для защиты привлекаются и криптографические методы. Возвращаясь к целям протоколирования и аудита, отметим, что обеспечение подотчетности важно в первую очередь как *сдерживающее средство*. Если пользователи и администраторы знают, что все их действия фиксируются, они, возможно, воздержатся от незаконных операций. Очевидно, если есть основания подозревать какого-либо пользователя в нечестности, можно регистрировать все его действия, вплоть до каждого нажатия клавиши. При этом обеспечивается не только возможность расследования случаев нарушения режима безопасности, но и откат некорректных изменений (если в протоколе присутствуют данные до и после модификации). Тем самым защищается целостность информации. *Реконструкция последовательности событий* позволяет выявить слабости в защите сервисов, найти виновника вторжения, оценить масштабы причиненного ущерба и вернуться к нормальной работе. *Обнаружение попыток* нарушений информационной безопасности — функция активного аудита, о котором пойдет речь в следующем разделе. Обычный аудит позволяет выявить подобные попытки с опозданием, но и это оказывается полезным. В свое время поимка немецких хакеров, действовавших по заказу КГБ, началась с выявления подозрительного расхождения в несколько центов в ежедневном отчете крупного вычислительного центра. *Выявление и анализ проблем* могут помочь улучшить такой параметр безопасности, как доступность. Обнаружив узкие места, можно попытаться переконфигурировать или перенастроить систему (увеличить оперативную память), снова измерить производительность и т.д. т.д Непросто осуществить организацию согласованного протоколирования и аудита в распределенной разнородной системе. Во-первых, некоторые компоненты, важные для безопасности (например, маршрутизаторы), могут не обладать своими ресурсами протоколирования; в таком случае их нужно экранировать другими сервисами, которые возьмут протоколирование на себя. Вовторых, необходимо увязывать между собой события в разных сервисах. --- h2. Активный аудит Под подозрительной активностью понимается поведение пользователя или компонента информационной системы, являющееся злоумышленным (в соответствии с заранее определенной политикой безопасности) или нетипичным (согласно принятым критериям). Задача активного аудита — оперативно выявлять подозрительную активность и предоставлять средства для автоматического реагирования на нее. Активность, не соответствующую политике безопасности, целесообразно разделить на *атаки*, направленные на незаконное получение полномочий, и на действия, выполняемые в рамках имеющихся полномочий, но нарушающие политику безопасности. Атаки нарушают любую осмысленную политику безопасности. Иными словами, активность атакующего является разрушительной независимо от политики. Следовательно, для описания и выявления атак можно применять универсальные методы, инвариантные относительно политики безопасности, такие как *сигнатуры* и их обнаружение во входном потоке событий с помощью аппарата экспертных систем. *Сигнатура атаки* — это совокупность условий (действий), при выполнении которых атака считается имеющей место, что вызывает заранее определенную реакцию. Простейший пример сигнатуры — «зафиксированы три последовательные неудачные попытки входа в систему с одного терминала», пример ассоциированной реакции — блокирование терминала до прояснения ситуации. Действия, выполняемые в рамках имеющихся полномочий, но нарушающие политику безопасности, мы будем называть злоупотреблением полномочиями. *Злоупотребления полномочиями* возможны из-за неправильного разграничения доступа, не соответствующего выбранной политике безопасности. Простейшим примером злоупотреблений является неэтичное поведение суперпользователя, просматривающего личные файлы других пользователей. Анализируя регистрационную информацию, можно обнаружить подобные события и сообщить о них администратору безопасности. Выделение злоупотреблений полномочиями в отдельную группу неправомерных действий, выявляемых средствами активного аудита, не является общепринятым, однако, на наш взгляд, подобный подход имеет право на существование, и мы будем его придерживаться, хотя наиболее радикальным решением было бы правильное разграничение доступа. Нетипичное поведение выявляется статистическими методами. В простейшем случае применяют систему порогов, превышение которых является подозрительным. (Впрочем, «пороговый» метод можно трактовать и как вырожденный случай сигнатуры атаки). Применительно к средствам активного аудита различают *ошибки первого* и *второго рода*: пропуск атаки и ложные тревоги, соответственно. Нежелательность ошибок первого рода очевидна: ошибки второго рода не менее неприятны, поскольку отвлекают администратора безопасности от действительно важных дел, косвенно способствуя пропуску атак _Достоинства сигнатурного метода_ высокая производительность, малое число ошибок второго рода, обоснованность решений. Основной недостаток — неумение обнаруживать неизвестные атаки и вариации известных атак. Основные _достоинства статистического подхода_ — универсальность и обоснованность решений, потенциальная способность обнаруживать неизвестные атаки, то есть минимизация числа ошибок первого рода. Минусы заключаются в относительно высокой доле ошибок второго рода, плохой работе в случае, когда неправомерное поведение является типичным, когда типичное поведение плавно меняется от легального к неправомерному, а также в случаях, когда типичного поведения нет (как показывает статистика, таких пользователей примерно 5-10%). Средства активного аудита могут располагаться на всех линиях обороны информационной системы. На границе контролируемой зоны они могут обнаруживать подозрительную активность в точках подключения к внешним сетям (не только попытки нелегального проникновения, но и действия по «прощупыванию» сервисов безопасности). В корпоративной сети, в рамках информационных сервисов и сервисов безопасности, активный аудит в состоянии обнаружить и пресечь подозрительную активность внешних и внутренних пользователей, выявить проблемы в работе сервисов, вызванные как нарушениями безопасности, так и аппаратнопрограммными ошибками. Важно отметить, что активный аудит, в принципе, способен обеспечить защиту от атак на доступность. К сожалению, формулировка «в принципе, способен обеспечить защиту» не случайна. Активный аудит развивается более десяти лет, и первые результаты казались весьма многообещающими. Довольно быстро удалось реализовать распознавание простых типовых атак, однако затем было выявлено множество проблем, связанных с обнаружением заранее неизвестных атак, атак распределенных, растянутых во времени и т.п. Было бы наивно ожидать полного решения подобных проблем в ближайшее время. (Оперативное пополнение базы сигнатур атак таким решением, конечно, не является.) Тем не менее, и на нынешней стадии развития активный аудит полезен как один из рубежей (вернее, как набор прослоек) эшелонированной обороны --- h2. Шифрование Мы приступаем к рассмотрению криптографических сервисов безопасности. Поскольку криптография изучается в отдельном курсе, мы рассмотрим только основные принципы компьютерной криптографии. Криптография необходима для реализации, по крайней мере, трех сервисов безопасности: * шифрование; * контроль целостности; * аутентификация *Шифрование* — наиболее мощное средство обеспечения конфиденциальности. Во многих отношениях этот сервис занимает центральное место среди программно-технических регуляторов безопасности. Шифрование является основой реализации других сервисов безопасности, в частности средств контроля целостности. Оно иногда бывает единственным средством. Например, для портативных компьютеров только шифрование позволяет обеспечить конфиденциальность данных даже в случае кражи. В большинстве случаев и шифрование, и контроль целостности играют обеспечивающую роль, являясь доступным и для приложений, и для пользователей. Типичное место этих сервисов безопасности — на сетевом и транспортном уровнях реализации компьютерных сетей Различают два основных метода шифрования: симметричный и асимметричный. В первом из них один и тот же ключ (хранящийся в секрете) используется и для зашифрования, и для расшифрования данных. Разработаны весьма эффективные (быстрые и надежные) методы симметричного шифрования (DES, AES). Для определенности мы будем вести речь о защите сообщений, хотя события могут развиваться не только в пространстве, но и во времени, когда зашифровываются и расшифровываются никуда не перемещающиеся файлы. Основным недостатком симметричного шифрования является то, что секретный ключ должен быть известен и отправителю, и получателю. С одной стороны, это создает новую проблему распространения ключей. С другой стороны, получатель на основании наличия зашифрованного и расшифрованного сообщения не может доказать, что он получил это сообщение от конкретного отправителя, поскольку такое же сообщение он мог сгенерировать самостоятельно. !clipboard-202312051253-tnd9j.png! В асимметричных методах используются два ключа. Один из них, несекретный (он может публиковаться вместе с другими открытыми сведениями о пользователе), применяется для шифрования, другой (секретный, известный только получателю) — для расшифрования. Самым популярным из асимметричных является метод RSA (Райнест, Шамир, Адлеман), основанный на операциях с большими (скажем, 100-значными) простыми числами и их произведениями. !clipboard-202312051254-zw98u.png! Существенным недостатком асимметричных методов шифрования является их низкое быстродействие, поэтому данные методы приходится сочетать с симметричными (асимметричные методы на 3-4 порядка медленнее). Так, для решения задачи эффективного шифрования с передачей секретного ключа, использованного отправителем, сообщение сначала симметрично зашифровывают случайным ключом, затем этот ключ зашифровывают открытым асимметричным ключом получателя, после чего сообщение и ключ отправляются по сети. Отметим, что асимметричные методы позволили решить важную задачу совместной выработки секретных ключей (это существенно, если стороны не доверяют друг другу), обслуживающих сеанс взаимодействия, при изначальном отсутствии общих секретов. Для этого используется алгоритм Диффи-Хелмана. --- h2. Контроль целостности Криптографические методы позволяют надежно контролировать целостность, как отдельных порций данных, так и их наборов (таких как поток сообщений); определять подлинность источника данных, гарантировать невозможность отказаться от совершенных действий («неотказуемость»). В основе криптографического контроля целостности лежат два понятия: * хэш-функция; * электронная цифровая подпись (ЭП). *Хэш-функция* — это труднообратимое преобразование данных (односторонняя функция), реализуемое, как правило, средствами симметричного шифрования со связыванием блоков. Результат шифрования последнего блока (зависящий от всех предыдущих) и служит результатом хэш-функции. Пусть имеются данные, целостность которых нужно проверить, хэшфункция и ранее вычисленный результат ее применения к исходным данным (так называемый *дайджест* или цифровой отпечаток). Обозначим хэшфункцию через h, исходные данные — через T, проверяемые данные — через Т'. Контроль целостности данных сводится к проверке равенства h(Т') = h(Т). Если оно выполнено, считается, что Т' = Т. Совпадение дайджестов для различных данных называется коллизией. В принципе, коллизии, конечно, возможны, поскольку мощность множества дайджестов меньше, чем мощность множества хэшируемых данных, однако то, что h есть функция односторонняя, означает, что за приемлемое время специально организовать коллизию невозможно. Рассмотрим теперь применение асимметричного шифрования для выработки и проверки электронной цифровой подписи. Пусть Е(Т) обозначает результат зашифрования текста Т с помощью открытого ключа, а D(Т) — результат расшифрования текста Т (как правило, шифрованного) с помощью секретного ключа. !clipboard-202312051258-eanxw.png! Таким образом, электронная цифровая подпись защищает целостность сообщения и удостоверяет личность отправителя, то есть защищает целостность источника данных и служит основой неотказуемости. Для контроля целостности последовательности сообщений (то есть для защиты от кражи, дублирования и переупорядочения сообщений) применяют временные метки и нумерацию элементов последовательности, при этом метки и номера включают в подписываемый текст. --- h2. Цифровые сертификаты !clipboard-202312051302-ri9gv.png! При использовании асимметричных методов шифрования (и, в частности, электронной цифровой подписи) необходимо иметь гарантию подлинности пары (имя пользователя, открытый ключ пользователя). Для решения этой задачи в спецификациях Х.509 вводятся понятия *цифрового сертификата* и *удостоверяющего центра*. Удостоверяющий центр - это компонент глобальной службы каталогов, отвечающий за управление криптографическими ключами пользователей. Открытые ключи и другая информация о пользователях хранится удостоверяющими центрами в виде цифровых сертификатов, имеющих следующую структуру: * порядковый номер сертификата; * идентификатор алгоритма электронной подписи; * имя удостоверяющего центра; * срок годности; * имя владельца сертификата (имя пользователя, которому принадлежит сертификат); * открытые ключи владельца сертификата (ключей может быть несколько), * идентификаторы алгоритмов, ассоциированных с открытыми ключами владельца сертификата; * электронная подпись, сгенерированная с использованием секретного ключа удостоверяющего центра (подписывается результат хэширования всей информации, хранящейся в сертификате). Цифровые сертификаты обладают следующими свойствами: * любой пользователь, знающий открытый ключ удостоверяющего центра, может узнать открытые ключи других клиентов центра и проверить целостность сертификата; * никто, кроме удостоверяющего центра, не может модифицировать информацию о пользователе без нарушения целостности сертификата. В спецификациях Х.509 не описывается конкретная процедура генерации криптографических ключей и управления ими, однако даются некоторые общие рекомендации. В частности, оговаривается, что пары ключей могут порождаться любым из следующих способов. * ключи может генерировать сам пользователь. В таком случае секретный ключ не попадает в руки третьих лиц, однако нужно решать задачу безопасной связи с удостоверяющим центром; * ключи генерирует доверенное лицо. В таком случае приходится решать задачи безопасной доставки секретного ключа владельцу и предоставления доверенных данных для создания сертификата; * ключи генерируются удостоверяющим центром. В таком случае остается только задача безопасной передачи ключей владельцу. Цифровые сертификаты в формате Х.509 версии З стали не только формальным, но и фактическим стандартом, поддерживаемым многочисленными удостоверяющими центрами