Под идентификацией понимается присвоение субъектом и объектом доступа идентификатора и сравнения предъявленного с перечнем присвоенных идентификаторов. Идентификация состоит из процедур, позволяющих внешним по отношению к некоторой вычислительной системы агентам уведомлять систему об их личности. При этом разделяются понятие уведомления системы и гарантии того, что это уведомление корректно. В результате идентификацию объединяют со вторым понятием аутентификацией, которое гарантирует корректность идентификационной последовательности.
Под аутентификацией понимается проверка принадлежности субъекту доступа предъявленного им идентификатора, подтверждение подлинности. Под информацией аутентификации понимается информация, используемая для установления подлинности запрашиваемой личности.
Методы обычно включают:
1. метод проверки правильности данных, дающий доказательство или выражающий доверие факту, что личность, о которой сообщалось - допустима;
2. функции добавления новых идентификаторов в систему с обеспечением соответствующей информации аутентификации, а так же удаление устаревшей и соответствующей им информации аутентификации из системы;
. функции генерации, изменения и просмотра авторизированными пользователями информации аутентификации;
. функции проверки целостности и предотвращения неавторизированного использования информации аутентификации;
. функции ограничения количества попыток ввода для некорректной информации аутентификации.
Выделяются три метода аутентификации:
1) аутентификация, основанная на обладании предметом (карточкой, ключом...);
2) аутентификация, основанная на воплощенных характеристиках;
) аутентификация, основанная на знаниях.
Биометрическая аутентификация основана на аутентификации в распознавании некоторой характеристики являющейся неотъемлемой частью агента: голос, отпечатки пальцев, сетчатая оболочка глаза. Этот метод относится к биометрическим системам.
Парольная аутентификация - это аутентификация, основанная на знаниях. Под паролем понимается конфиденциальная информация, обычно состоящая из строки символов.
В парольной аутентификации предъявляют ряд требований как к администраторам и пользователям, так и к механизму аутентификации.
Требования к администратору:
1) требование к администратору системы (инициализация парольной системы). Многие системы поставляются с встроенными учетными записями, администратор должен заменить все встроенные в систему учетные записи;
2) администратор должен сгенерировать пароли всех новых учетных записей и проинформировать об этом пользователей;
) пользователь может забыть пароль, или администратор может обнаружить, что пароль скомпрометирован, для решения подобных проблем администратор должен иметь возможность изменения пароля любого пользователя даже не зная забытого пароля;
) не в один из моментов функционирования системы два пользователя не могут иметь два одинаковых идентификатора или знать для них пароль;
) администратор отвечает за своевременное удаление учетных записей из системы.
Требования к пользователям системы:
1) пользователи несут ответственность за тайну пароля и докладывают администратору обо всех нарушениях безопасности, т.е. помогают администратору обнаружить нарушения;
2) пароли должны меняться периодически и пользователи должны помнить пароли;
Требования к механизму аутентификации:
1) при внутреннем хранении паролей база данных паролей должна быть защищена, а пароли должны быть зашифрованы. При проверке паролей их не расшифровывают, а сравнивают как зашифрованное значение кэш-функции;
2) система не должна отображать пароли, вводимые пользователями;
) количество попыток неуспешного входа в систему должно быть ограничено;
) система должна регистрировать использование и смену пароля, при этом сами пароли не регистрируются;
) при входе в систему с некоторой учетной записью пользователь должен быть оповещен о времени последнего входа в систему с этой учетной записью, месте последнего входа и результате последнего входа с этой учетной записью. В этом же документе должна быть приведена оценка пароля со следующими параметрами:
L - максимальное время жизни пароля, M - длина пароля, А - количество символов в пароле, Р - вероятность того, что пароль может быть подобран за время его жизни, R - количество возможных попыток подбора в единицу времени, S - количество паролей, которое может создать генератор,
=Am
G- количество попыток подбора, то вероятность того, что пароль может быть
подобран за
Là S=G/P = L×R/P,
M=logA(L×R/P); P=10-6, Pкр=10-20.
4.1 Реализация подсистемы идентификации /аутентификации в Windows 2000
Поддержку механизмов идентификации/аутентификации осуществляет диспетчер учетных записей (Security Account Manager - SAM). База данных SAM представляет собой один из кустов реестра Windows 2000, находящийся в ветви HKey_Local_Machine.База данных SAM находиться в файле à winnt\root\system32\config\sam. Доступ к данным для обычных пользователей и групп запрещен. Пароли в базе данных SAM хранятся в виде двух 16-тибайтовых последовательностях, которые зашифрованыt кэшированные пароли системы Windows2000 и системы LAN Manager. В Windows 2000 пароль в виде строки символов Unicode преобразуется с использованием кэш-функции RSA MD-4, а полученное 16-тибайтовое число шифруется по алгоритму DES. Стандарт системы LAN считается одним из слабых мест парольной системы Windows 2000, поскольку пароль состоит из двух частей 14-тибайтового пароля, которые обрабатываются независимо, поэтому имеется возможность оценить длину пароля > или < 8 символов, а длинный пароль эквивалентен двум коротким, а это облегчает взлом.
Процедуру интерактивного входа с механизмом идентификации/аутентификации можно представить следующим образом:
пользователь набирает комбинацию: CTRl/ALT/DEL, которая обрабатывается системой на низком уровне и препятствует созданию программ, маскирующихся под системный процесс входа и перехватывающих введение пароля;
в диалоговом окне пользователь вводит пользовательское имя и пароль, и
имя домена, на котором происходит вход в систему и это зависит от места
нахождения пользовательской учетной записи. Процесс входа в систему вызывает
пакет аутентификации.
5. Аудит
Под аудитом понимается использование автоматизированных механизмов, вызывающих создание и хранение в защищенном компьютерном журнале записей деятельности вычислительной системы.
Учетность - свойство, обеспечивающее однозначное отслеживание собственных действий любого логического объекта.
Механизм аудита:
) просмотр:
· попыток доступа к отдельным объектам;
· активности процессов и пользователей;
· использование механизмов защиты системы;
2) обнаружение попыток обхода механизмов защиты авторизированными пользователями и нарушителями;
) для выявления использования привилегий больших, чем необходимо пользователю;
) для использования в качестве мер защиты сообщений нарушителям, о том, что их действия фиксируются;
) для использования в качестве гарантии надежности для авторизированных пользователей, что все попытки обхода системы защиты будут зафиксированы.
Пользователи механизма аудита:
аудиторы;
пользователи механизма аудита.
Аудиторы - настраивают механизмы аудита, выбирая события в системе, которые надо фиксировать и выполняют анализ этих событий. Обычно эти функции выполняет системный администратор.
Пользователи - не только генерируют события аудита, но и знают, что механизм аудита присутствует, т.е. не будут нарушать правила безопасности.
Механизм аудита регистрирует следующие операции:
1) доступ субъектов к объектам;
2) использования механизмов администрирования вычислительной системы;
) действия администратора и других привилегий пользователей;
) вывод документов на печать и др. события, которые могут повлиять на безопасность вычислительной системы.
Записи аудита:
дата и время события;
идентификатор пользователя;
тип события;
результат события.
К подсистеме аудита могут быть предъявлены следующие дополнительные требования:
сжатие данных;
ведение нескольких журналов аудита;
представление данных аудита в удобной форме.
.1 Реализация подсистемы аудита Windows 2000
Существует 3 журнала:
1) системный журнал, который ведется для критичных событий
2) (сбой системы, отказ компонентов);
) журнал приложений, события в который добавляют приложения пользователей;
) журнал безопасности, фиксируются записи о событиях, относящихся к безопасности.
Категории событий аудита
) Privilege user -использование привилегий;
) System-системные события;
) Object access-доступ к объектам;
) Logon- вход в систему;
) Policy change- изменение политики безопасности, и др.
Для просмотра событий имеются средства просмотра событий аудита и администратор может определить реакцию системы на переполнение журнала аудита, которое может быть представлено:
остановка системы;
запрет функционирования системы аудита;
удаление старых записей;
6. Уязвимость
Уязвимость - это некоторая слабость, которую можно использовать для нарушения безопасности системы или содержащейся в ней информации.
Уязвимости могут возникать из-за следующих причин:
1) логическая ошибка, которая может содержаться в операционной системе или пользовательском приложении (ошибка реализации механизма безопасности);
2) слабость, т.е. такой механизм, что его использование при определенных условиях приводит к нарушению безопасности (устаревшее аппаратное программное обеспечение, небезопасная конфигурация) ;
) некорректное использование системы, пользователи системы сами нарушают политику безопасности, которая создает условия для успеха атаки.
Уязвимость характеризуется:
1) ошибка и тип ошибки, приводящей к образованию уязвимости;
2) последствия, т.е. степенью компрометации безопасности системы (получение нарушителем прав администратора, получение доступа к системе с правами авторизированного пользователя, получение несанкционированного доступа к защищенным файлам, отказ системы или её функциональной части в обслуживании);
) авторизация (права, необходимые нарушителю для осуществления атаки и определения его уровня возможностей);
) местонахождение (представляет необходимость физического доступа нарушителя для проведения атаки):
доступ к системному серверу;
доступ к сети;
При проектировании систем процесс занесения уязвимости состоит из следующих этапов (процедур):
1) обнаружение уязвимостей;
2) оповещение пользователей;
) присвоение уязвимости идентификатора, на основе которого она будет распознаваться или именоваться;
) предложение для включения в список уязвимостей новых уязвимостей;
) модификация (изменение) характеристик уязвимостей;
) публикация (оповещение списка уязвимостей);
) переоценка (изменение списка уязвимостей).
.1 Ошибки, приводящие к уязвимости
1) ошибки синхронизации (несовпадение событий);
2) ошибки проверки условий;
) ошибки проверки входных данных;
) ошибка переполнения буфера, данные выходят за пределы буфера и ссылки за продолжение работы программы, за пределом буфера могут быть перехвачены злоумышленником. Атаки на переполнение буфера могут быть связаны с:
адрес возврата из функции (управление может быть передано на код нарушителя);
указатель на функцию;
указатель на данные.
) ошибки администрирования:
ошибки конфигурации;
ошибки окружения.
.2 Поиск уязвимостей в процессе разработки и анализа систем
Поиск уязвимостей может осуществляться в два этапа:
1) анализ исходных текстов программ (статика);
2) динамический анализ безопасности программ.
При статическом анализе решаются следующие задачи:
1) исследование структуры программ;
2) выделение набора стандартных функций;
) выявление способов и целей взаимодействия программы с внешними устройствами и ресурсами;
) поиск типовых уязвимостей;
) поиск разрушающих средств в коде программы.
Динамический анализ: исследование поведения программы под воздействием разнообразной входной информации с обеспечением полного контроля использования внешних устройств и системных ресурсов.
К средствам динамического анализа относятся:
автоматизированные отладчики;
средства мониторинга.
Отладчики:
1) программа NuMegaBoundsChecker осуществляет детальный анализ ошибок программирования на С++, диагностирует ошибки в статической памяти, в стеке и "куче".
Позволяет спроектировать трассу отлаживаемого приложения в виде дерева функций с указанием адреса вызова, значения аргументов и результатов вывода;
2) программа Rational Software Purify - служит отладчиком, оптимизатором, проверяет элементы Ole и Activex, библиотеки системы компоновки (MFC); компоненты Visial Basic, Internet и приложения Microsoft Office, приложения, выполняющиеся в режиме эмуляции WinCe под управлением Windows NT.
Кроме динамического анализа исполняемого кода существуют программы мониторинга, обращения к файловой системе и системному реестру: Filemon, Regmon.
Комбинация графической среды пользователя и драйвер-устройств; драйверы регистрируют в системе и перехватывают обращения к системе и системному реестру, при этом отсеиваются обращения всех запущенных приложений; оболочка пользователя служит для отображения информации о перехваченных обращениях и настройки драйверов.
Возможности Filemon:
отображает следующую информацию о запросах к файловой системе:
имя процесса, отправившего запрос;
имя файла, к которому производиться обращение;
тип запроса (чтение, запись…);
время отправки запроса или продолжительность обработки;
результат выполнения запроса.
Возможности Regmon:
отображает следующую информацию о запросах к файловой системе:
имя процесса;
имя ключа;
значения которыми производиться обращение;
тип запроса;
результат.
Наша система Melkoskop:
Её можно установить на различные компьютеры и сегменты сети, она выполняет следующие задачи:
настройка параметров программного обеспечения на сервере системы;
задания в режиме обучения или администрирования правил безопасного поведения прикладного программного на сервере системы;
разрешения запуска на клиентских станциях ограниченного множества прикладных программ;
сбор данных на клиентских станциях;
анализ безопасности в зависимости от заданных правил;
реакция на нарушение ограничения;
хранение результатов на сервере системы.относится к динамическим
средствам отладки.
.3 Сканеры уязвимостей
Сканеры уязвимостей - это программа, которая обнаруживает уязвимости удаленной или локальной системы.