Введение в безопасность ОС
В октябре 1988 г. в США произошло событие, названное специалистами крупнейшим нарушением безопасности амеpиканских компьютеpных систем из когда-либо случавшихся. 23-летний студент выпускного куpса Коpнеллского унивеpситета Робеpт Таппан Моppис запустил в компьютеpной сети ARPANET пpогpамму; пpедставлявшую собой pедко встpечающуюся pазновидность компьютеpных виpусов - сетевых чеpвей. В pезультате атаки был полностью или частично заблокиpован pяд общенациональных компьютеpных сетей, в частности Internet, CSnet, NSFnet, BITnet, ARPANET и несекpетная военная сеть Milnet. В итоге виpус поpазил более 6200 компьютеpных систем по всей Амеpике, включая системы многих кpупнейших унивеpситетов, институтов, пpавительственных лабоpатоpий, частных фиpм, военных баз, клиник, агентства NASA. Общий ущеpб от этой атаки оценивается специалистами минимум в 100 миллионов доллаpов. Р. Моppис был исключен из унивеpситета с пpавом повтоpного поступления чеpез год, и пpиговоpен судом к штpафу в 270 тыс.долл. и тpем месяцам тюpемного заключения.
Важность решения проблемы информационной безопасности в настоящее время общепризнанна, свидетельством чему служат громкие процессы о нарушении целостности систем. Убытки ведущих компаний США в связи с нарушениями безопасности информации в период с 1997 по 1999 годы составили $360'720'555. Причем только 31% опрошенных компаний смог определить количественно размер потерь. Проблема обеспечения безопасности носит комплексный характер, для ее решения необходимо сочетание законодательных, организационных и программно-технических мер.
Таким образом, обеспечение информационной безопасности требует системного подхода и нужно использовать разные средства и приемы морально-этические, законодательные, административные и технические. Нас будут интересовать последние. Технические средства реализуются программным и аппаратным обеспечением и решают разные задачи по защите и могут быть встроены в операционные системы, либо могут быть реализованы в виде отдельных продуктов. Во многих случаях центр тяжести смещается в сторону защищенности операционных систем.
Говоря об информационной безопасности, иногда различают два термина protection и security. Термин security используется для рассмотрения проблемы в целом, а protection для рассмотрения специфичных механизмов ОС сохраняющих информацию в компьютере. Граница здесь не отчетлива.
Есть несколько причин для реализации защиты. Hаиболее очевидная - помешать внешним вредным попыткам нарушить доступ к конфоденциальной информации. Не менее важно, однако, гарантировать, что каждый программный компонент в системе использует системные ресурсы только способом, совместимым с установленной политикой использования этих ресурсов. Эти требования абсолютно необходимы для надежной системы.
Наличие защитных механизмов может увеличить надежность системы в целом за счет обнаружения скрытых ошибок интерфейса между компонентами системы. Ранее обнаружение ошибок может предотвратить влияние неисправной подсистемы на здоровую.
Политика в отношении ресурсов может меняться в зависимости от приложения и во времени. По этой причине защита не может быть исключительно предметом дизайна ОС. Она также должна давать инструменты прикладным программистам для создания и поддержки защищенных ресурсов. Важный принцип - отделение политики от механизмов. Механизмы определяют то, как что-то может быть сделано, тогда, как политика решает, что должно быть сделано. Отделение политики от механизмов важно для гибкости системы. Политика может меняться в зависимости от места и времени. Желательно по возможности наличие общих механизмов, тогда как изменение политики требует лишь модификации системных параметров или таблиц.
Введем еще несколько понятий (см. также [30]).
Безопасная система обладает свойствами конфиденциальности, доступности и целостности.
Конфиденциальность(confidentiality) уверенность в том, что секретные данные будут доступны только тем пользователям, которым этот доступ разрешен (такие пользователи называются авторизованными).
Доступность (availability) гарантия того, что авторизованные пользователи всегда получат доступ к данным.
Целостность (integrity) уверенность в том, что данные сохраняют правильные значения. Это требует средств проверки целостности и обеспечивается запретом для неавторизованных пользователей, каким либо образом модифицировать данные.
Любое действие, которое направлено на нарушение конфиденциальности, целостности и доступности информации называется угрозой. Реализованная угроза называется атакой.
Классификация угроз
Знание возможных угроз, а также уязвимых мест защиты, которые эти угрозы обычно эксплуатируют, необходимо для того, чтобы выбирать наиболее экономичные средства обеспечения безопасности.
Общей классификации угроз не существует. Имеет смысл различать неумышленные и умышленные угрозы.
Неумышленные угрозы связаны с:
v Ошибками оборудования или матобеспечения: сбои процессора, питания, нечитаемые дискеты, ошибки в коммуникациях, ошибки в программах.
v Ошибками человека: некорректный ввод, неправильная монтировка дисков или лент, запуск неправильных программ, потеря дисков или лент.
v Форс-мажорными обстоятельствами
Умышленные угрозы, в отличие от случайных, преследуют цель нанесения ущерба пользователям ОС и, в свою очередь, подразделяются на активные и пассивные. Пассивная угроза - несанкционированный доступ к информации без изменения состояния системы, активная - несанкционированное изменение системы. Можно выделить следующие типы угроз:
Ø Незаконное проникновение под видом легального пользователя
Ø Нарушение функционирования системы с помощью программ-вирусов или программ-червей.
Ø Нелегальные действия легального пользователя.
Ø Типизация угроз не слишком строгая.
А.Таненбаум приводит свой список наиболее успешных атак на ОС:
Попытки чтения страниц памяти, дисков и лент, которые сохранили информацию предыдыдущего пользователя.
Попытки выполнения нелегальных системных вызовов, или системных вызовов с нелегальными параметрами
Внедрение программы, которая выводит на экран слово login . Многие легальные пользователи, видя такое, начинают пытаться входить в систему, и их попытки могут протоколироваться (вариант Троянского коня).
Попытки торпедировать программу проверки входа в систему путем многократного нажатия клавиш del, break, rubout, cancel и.т.д. В некоторых системах проверочная программа погибает, и вход в систему становится возможным.
Подкуп персонала. Hапример, малооплачиваемого секретаря.
Использование закладных элементов (дыр), специально оставленных дизайнерами системы.
И т.д.
Много говорят и пишут и о программных вирусах, червях, троянских конях. В этой связи обратим внимание на следующий факт, несмотря на экспоненциальный рост числа известных вирусов, аналогичного роста количества инцидентов, вызванных вирусами, не зарегистрировано. Соблюдение несложных правил компьютерной гигиены сводит риск заражения практически к нулю. Многопользовательские компьютеры меньше страдают от вирусов по сравнению с персональными компьютерами, поскольку там имеются системные средства защиты. Мы не будем останавливаться на уточнении понятий "зловредный код", "вирус", "червь", "Троянский конь", бомба.
Таковы основные угрозы, на долю которых приходится львиная доля урона, наносимого информационным системам.