Безопасность операционных систем и сетей. Trustworthy Computing
Ключевые термины
Data Encryption Standard (DES) – технология криптования, основанная на подстановке символов и изменении их порядка на основе ключа, предоставляемого авторизованным пользователям через защищенный механизм.
DREAD (Damage, Reproducibility, Exploitability, Affected users, Discoverability) – формула корпорации Microsoft для определения последствий атак.
Elevation of privilege – попытка расширить полномочия (например, до полномочий системного администратора) c целью злонамеренных действий.
Pharming – перенаправление пользователя на злонамеренный Web-сайт (обычно с целью phishing ).
Phishing – попытка украсть конфиденциальную информацию пользователя путем ее обманного получения от самого пользователя (например, с помощью тревожного электронного письма).
SDLC (Security Development Life Cycle) – схема жизненного цикла разработки безопасных программ, предложенная и применяемая фирмой Microsoft.
SD3C (Secure in Design, by Default, in Deployment, and Communication) – формула требований к безопасности программного продукта фирмы Microsoft.
Spoofing – " подделка" под определенного пользователя, злонамеренное применение его логина, пароля и полномочий.
SSL (Secure Socket Layer) - семейство криптографических протоколов, предназначенное для обмена криптованными сообщениями через сокет.
STRIDE (Spoofing, Tampering with data, Repudiation, Denial of service, Elevation of privilege) – формула компании Microsoft для определения видов атак.
Tampering with data – атака путем искажения или порчи данных.
Tripwire - системные программы (для UNIX), проверяющие, не изменялись ли некоторые файлы и директории, например, файлы, содержащие пароли.
Trustworthy Computing (TWC) Initiative – инициатива корпорации Microsoft (2002), направленная на улучшение безопасности разрабатываемого кода.
Аутентификация (authentication) – идентификация пользователей при входе в систему.
Безопасность (security) – защита от внешних атак.
Брандмауэр (firewall) – системное программное обеспечение для защиты локальной сети от внешних атак, как бы образующее стену между "доверенными" и "не доверенными" компьютерами.
Вирус – фрагмент кода, встраивающийся в обычные программы с целью нарушения работоспособности этих программ и всей компьютерной системы.
Вход в ловушку (Trap Door) – атака путем использования логина или пароля, который позволяет избежать проверок, связанных с безопасностью.
Журнал аудита (audit log) – системный журнал подсистемы безопасности, в который записывается время, пользователь и тип каждой попытки доступа к системным объектам и структурам.
Закрытый ключ (private key) – ключ, известный только пользователю и применяемый им для декриптования данных.
Ключ криптования ( encryption key ) – секретный параметр алгоритма криптования, от которого зависит результат его работы.
Криптование на основе открытого ключа – метод криптографии, основанный на использовании пары ключей: на принципе, при котором пользователю известны два ключа: открытый ключ для криптования данных и закрытый ключ для декриптования данных.
Криптография – преобразование понятного текста в зашифрованный текст с целью защиты информации.
Логин (login, loginname) – зарегистрированное имя пользователя для входа в систему.
Отказ в обслуживании (Denial of Service – DoS) – атака на сервер путем создания его искусственной перегрузки с целью препятствовать его нормальной работе.
Открытый ключ ( public key) – ключ, известный всем пользователям, и используемый для криптования данных.
Пароль (password) – секретное кодовое слово, ассоциируемое и вводимое в секретном режиме вместе с логином.
Переполнение буфера (Buffer Overrun) – атака путем использования ошибки в программе (переполнения буфера в памяти) для обращения к памяти другого пользователя или процесса с целью нарушения ее целостности.
Троянская программа (Trojan Horse) – атакующая программа, которая "подделывается" под некоторую полезную программу, но при своем запуске злонамеренно использует свое окружение, например, получает и использует конфиденциальную информацию.
Червь (Worm) – злонамеренная программа, использующая механизмы самовоспроизведения (размножения) и распространяющаяся через сеть.
Краткие итоги
Безопасность –защита от внешних атак. В настоящее время она особенно важна в связи с ростом киберпреступности. Любая программная система должна иметь подсистему безопасности, защищающую от несанкционированного доступа, злонамеренной модификации, разрушения, случайного ввода неверной информации.
Аутентификация (идентификация) пользователей чаще всего реализуется через логины и пароли. Пароли должны сохраняться в секрете, периодически меняться, не быть легко угадываемыми.
Различаются следующие виды атак: троянские программы; входы в ловушку (обход подсистемы безопасности); использование переполнения стека или буфера; черви – самовоспроизводящиеся программы, распространяемые через сеть; вирусы – фрагменты кода, присоединяющиеся к обычным программам с вредоносными целями; отказ в обслуживании – создание искусственной перегрузки сервера с целью добиться его отказа.
Современные типы атак: phishing – выуживание конфиденциальной информации у пользователя; pharming – перенаправление пользователя на враждебные web-сайты; tampering with data – искажение или порча данных; spoofing – подделка под определенного пользователя с целью злоупотребления его полномочиями; elevation of privilege – попытка расширить полномочия до полномочий администратора системы со злонамеренными целями.
Инициатива Trustworthy Computing (TWC) фирмы Microsoft (2002) направлена на повышение безопасности кода и усиление внимания к вопросам безопасности. Основные принципы TWC: безопасность, надежность, сохранение конфиденциальности информации, корректность и оперативность бизнеса. Фирма Microsoft финансировала обучение основам TWC, разработала и внедрила новую схему SDLC жизненного цикла разработки безопасных программ. Суть SDLC заключается в том, что безопасности уделяется постоянное внимание на всех этапах жизненного цикла, выполняется анализ рисков, связанных с безопасностью, статические проверки и тестирование кода на безопасность, в разработке участвуют внешние эксперты по безопасности.
Формулы безопасности, предложенные фирмой Microsoft:
SD3C (secure in design, by default, in deployment + communication) – принципы разработки безопасного кода;
STRIDE (spoofing, tampering, repudiation, information disclosure, denial of service, elevation of privilege) – классификация атак;
DREAD (damage, reproducibility, exploitability, affected users, discoverability) – схема оценки ущерба от атак.
Рекомендуемые меры борьбы с атаками: проверка на подозрительные примеры активности; использование журналов аудита; периодическое сканирование системы на предмет дыр в безопасности; проверки на короткие пароли, на изменение системных файлов и директорий и т.д.
Брандмауэр – системное программное обеспечение, играющее роль стены между доверенными компьютерами локальной сети и всеми остальными.
Методы обнаружения попыток взлома компьютерных систем: аудит и ведение журнала; tripwire (системных программ автоматической проверки состояния системных файлов и директорий); слежение за последовательностью системных вызовов.
Криптография – преобразование понятного текста в зашифрованный с целью защиты информации. Схема криптования должна зависеть не от секретного алгоритма, а от его секретного параметра (ключа криптования). Наиболее часто используемые методы: асимметричное криптование на основе использования открытого и скрытого ключей; DES. Пример криптования – SSL, используемый в Web-технологиях для ввода конфиденциальной информации через Web-сайты.
Различаются четыре уровня безопасности компьютеров в США – D, C, B, A, от минимальной безопасности до использования формальных методов для обеспечения безопасности.
Безопасность в Windows NT основана на идентификаторах безопасности каждого пользователя и на дескрипторах безопасности обрабатываемых объектов.
Безопасность в .NET наиболее развита. Она включает безопасность доступа к коду, безопасность на основе свидетельств о двоичной сборке, безопасность на основе ролей, управлении безопасностью на основе атрибутов и вызовов системных методов.
Набор для практики
Вопросы
- Что такое безопасность?
- От каких действий должна защищать подсистема безопасности?
- Что такое аутентификация и каким методом она выполняется?
- Что такое троянская программа?
- Что такое вход в ловушку (trap door)?
- Как организована атака типа переполнения буфера?
- Что такое сетевой червь?
- Что такое компьютерный вирус?
- В чем суть атаки типа отказ в обслуживании?
- Что такое phishing?
- Что такое pharming?
- Что такое tampering with data?
- Что такое spoofing?
- Что такое elevation of privilege?
- В чем суть и каковы принципы Trustworthy Computing Initiative фирмы Microsoft?
- Каковы особенности схемы жизненного цикла SDLC?
- Что такое SD3C?
- Что такое STRIDE?
- Что такое DREAD?
- Каковы рекомендуемые методы борьбы с атаками?
- Что такое журнал аудита?
- Что такое брандмауэр?
- Каковы рекомендуемые методы обнаружения попыток взлома системы?
- Что такое криптография?
- В чем суть схемы криптования на основе открытого с скрытого ключей?
- В чем суть метода криптования DES?
- Что такое SSL и где используется эта технология криптования?
- Каковы уровни безопасности компьютеров в США?
- Как организована безопасность в Windows NT?
- Как организована безопасность в .NET?
Упражнения
- Реализуйте схему аутентификации пользователей с помощью логинов и паролей.
- Предложите метод защиты от атаки типа переполнение буфера.
- Реализуйте программу проверки неизменности системных файлов и директорий.
- Реализуйте программу проверки неизменности системных путей (path).
- Реализуйте метод криптования на основе открытого и скрытого ключей.
- Реализуйте алгоритм криптования DES.
Темы для курсовых работ, рефератов, эссе
- Методы организации безопасности в операционных системах (реферат).
- Современные методы криптографии (реферат).
- Trustworthy Computing Initiative (реферат).
- Реализация схемы аутентификации пользователей с помощью логинов и паролей (курсовая работа).
- Разработка и реализация метода защиты от атаки типа переполнение буфера (курсовая работа).
- Реализация программы проверки неизменности системных файлов и директорий (курсовая работа).
- Реализация программы проверки неизменности системных путей (path) (курсовая работа).
- Реализация метода криптования на основе открытого и скрытого ключей (курсовая работа).