Безопасность операционных систем и сетей. Trustworthy Computing
Презентацию к данной лекции Вы можете скачать здесь.
Введение
Безопасность – одна из наиболее актуальных проблем в области ИТ в настоящее время, ввиду сильной зависимости повседневной деятельности и бизнеса от компьютерных технологий и ввиду резко возрастающего числа сетевых атак (киберпреступности). Особенно важна безопасность для операционных систем и сетей как основных объектов атак. В лекции рассмотрены следующие вопросы:
- Проблема безопасности
- Аутентификация
- Программные угрозы (атаки)
- Системные угрозы (атаки)
- Защита систем
- Обнаружение взлома
- Криптография
- Безопасность в Windows NT / 2000 / XP / 2003 / Vista, в.NET
- Инциатива Trustworthy Computing Initiative корпорации Microsoft.
Проблема безопасности
Безопасность (security) – это защита от внешних атак. В настоящее время наблюдается значительный рост числа самых разнообразных атак хакеров, угрожающих целостности информации, работоспособности компьютерных систем и зависящих от них компаний, благосостоянию и личной безопасности людей. Для защиты от атак необходимы специальные меры безопасности, компьютерные технологии и инструменты.
В любой компьютерной системе должна быть реализована подсистема безопасности, которая должна проверять внешнее окружение системы и защищать ее от:
- Несанкционированного доступа
- Злонамеренной модификации или разрушения
- Случайного ввода неверной информации.
Практика показывает, что легче защитить от случайной, чем от злонамеренной порчи информации.
Аутентификация
Одной из наиболее широко используемых мер безопасности является аутентификация (authentication) – идентификация пользователей при входе в систему. Такая идентификация пользователей наиболее часто реализуется через логины – зарегистрированные имена пользователей для входа в систему – и пароли – секретные кодовые слова, ассоциируемые с каждым логином.
Основной принцип использования паролей в том, что они должны сохраняться в секрете. Поэтому одна из традиционных целей атакующих хакеров состоит в том, чтобы любыми способами выведать у пользователя его логин и пароль. Для сохранения секретности паролей предпринимаются следующие меры.
- Частая смена паролей. Аналогичные меры применялись в армии во время войны. Большинство сайтов и других систем (например, сайт партнеров фирмы Microsoft) требуют от пользователей регулярной (например, не реже. чем раз в три месяца) смены паролей, иначе сайт блокируется для доступа. Подобные меры вполне оправданы.
- Использование "не угадываемых" паролей. Практически все системы требуют от пользователя при регистрации устанавливать пароли, не являющиеся легко угадываемыми: например, как правило, пароль должен содержать большие и маленькие буквы и цифры, специальные символы и иметь длину не менее 7-8 символов. Используются также автоматические генераторы не угадываемых паролей. Поэтому использование в качестве паролей легко угадываемых слов – например, имени любимой собаки или общеупотребительного понятия – не рекомендуется.
- Сохранение всех неверных попыток доступа. Во многих системах реализован системный журнал, в котором фиксируются все неверные попытки ввода логинов и паролей. Обычно дается фиксированное число таких попыток (например, три).
Пароли также могут быть закриптованы или разрешены для доступа лишь один раз, после чего от пользователя требуется смена пароля.
Программные угрозы (атаки)
Рассмотрим некоторые типичные виды угроз и атак, используемые хакерами.
Троянская программа (Trojan Horse) – атакующая программа, которая "подделывается" под некоторую полезную программу, но при своем запуске не по назначению (злонамеренно) использует свое окружение, например, получает и использует конфиденциальную информацию. Троянские программы используют системные механизмы для того, чтобы программы, написанные одними пользователями, могли исполняться другими пользователями.
Вход в ловушку (Trap Door) - использование логина или пароля, который позволяет избежать проверок, связанных с безопасностью.
Переполнение стека и буфера (Stack and Buffer Overflow) - использование ошибки в программе (переполнение стека или буферов в памяти) для обращения к памяти другого пользователя или процесса с целью нарушения ее целостности.
Системные угрозы (атаки)
Рассмотрим также некоторые типичные атаки, использующие уязвимости (vulnerabilities) в системных программах – ошибки и недочеты, дающие возможность организации атак.
Черви (Worms) – злонамеренные программы, использующие механизмы самовоспроизведения (размножения). Например, один из Интернет-червей использует сетевые возможности UNIX (удаленный доступ) и ошибки в программах finger и sendmail. Принцип его действия следующий: некоторая постоянно используемая в сети системная программа распространяет главную программу червя.
На рис. 24.1 изображен принцип действия Интернет-червя Morris, использующего уязвимости в системных программах UNIX.
Вирусы – фрагменты кода, встраивающиеся в обычные программы с целью нарушения работоспособности этих программ и всей компьютерной системы. В основном вирусы действуют на микрокомпьютерные системы. Вирусы скачиваются с публично доступных сайтов или с дисков, содержащих "инфекцию". Для предотвращения заражения компьютерными вирусами необходимо соблюдать принципы безопасности при использовании компьютеров ( safe computing ) – использовать антивирусы, guards – программы, постоянно находящиеся в памяти и проверяющие на вирусы каждый открываемый файл - .exe, doc, и т.д.
Отказ в обслуживании (Denial of Service – DoS) – одна из распространенных разновидностей атак на сервер, заключающаяся в создании искусственной перегрузки сервера с целью препятствовать его нормальной работе. Например, для Web-сервера такая атака может заключаться в том, чтобы искусственно сгенерировать миллион запросов "GET". Если сервер реализован не вполне надежно, подобная атака чаще всего приводит к переполнению памяти на сервере и необходимости его перезапуска.
Типы сетевых атак
Рассмотрим некоторые типы современных сетевых атак, которых необходимо постоянно остерегаться пользователям.
Phishing – попытка украсть конфиденциальную информацию пользователя путем ее обманного получения от самого пользователя. Даже само слово phishing – искаженное слово fishing (рыбная ловля), т.е. хакер с помощью этого приема как бы пытается поймать чересчур наивного пользователя "на удочку". Например, напугав в своем сообщении пользователя, что его логин и пароль, кредитная карта или банковский счет под угрозой, хакер пытается добиться от пользователя в ответ ввода и отправки некоторой конфиденциальной информации. Обычно phishing-сообщение по электронной почте приходит как бы от имени банка и подделывается под цвета, логотипы и т.д., используемые на сайте банка. Однако для его разоблачения обычно достаточно подвести курсор мыши (не кликая ее) к приведенной web-ссылке или email-адресу (при этом она высвечивается) и убедиться в том, что адрес указывает отнюдь не на банк, а на совершенно посторонний сайт или email. Поэтому пользователям не следует быть слишком наивными. Другая действенная мера, если phishing происходит регулярно с одних и тех же email-адресов, - включить эти адреса в черный список на email-сервере. Тогда подобные сообщения вообще не будут доходить до входного почтового ящика пользователя.
Pharming – перенаправление пользователя на злонамеренный Web-сайт (обычно с целью phishing). Меры предотвращения со стороны пользователя мы уже рассмотрели. В современные web-браузеры встроены программы антифишингового контроля, которые запускаются автоматически при обращении к сайту. Хотя это отнимает у пользователя некоторое время, подобные меры помогают предотвратить многие атаки.
Tampering with data – злонамеренное искажение или порча данных. Действенной мерой по борьбе с подобными атаками является криптование информации.
Spoofing – " подделка" под определенного пользователя (злонамеренное применение его логина, пароля и полномочий). Логин и пароль при этом либо получены от пользователя обманным путем (например, в результате phishing), либо извлечены из "взломанного" хакерской программой системного файла.
Elevation of privilege – попытка расширить полномочия (например, до полномочий системного администратора) c целью злонамеренных действий. Поэтому наиболее секретная информация в любой компьютерной системе – пароль системного администратора, который необходимо защищать особенно тщательно.