Как построить защищенную информационную систему. Книга
Рефераты >> Программирование и компьютеры >> Как построить защищенную информационную систему. Книга

Приложение IV

Статистика нарушений безопасности компьютерных систем

(заимствовано из Carl E. Landwehr, Alan R. Bull, John P. McDermott, and William S. Choi.

A Taxonomy of Computer Security Flaws, with Examples)

Данная подборка материалов ни в коей мере не мо­жет претендовать на исчерпывающее описание всех из­вестных нарушений безопасности ВС и приведена здесь исключительно для иллюстрации таксономии причин возникновения ИЗ и ее обеспечения практическими при­мерами. Приведенные данные охватывают широкий спектр как различных типов вычислительных систем, так и различных видов нарушений безопасности, что необ­ходимо для выявления основных закономерностей воз­никновения и проявления ИЗ.

Все эти примеры отражают реально имевшие место нарушения безопасности и реализованные атаки на вы­числительные системы. В каждом примере указывается тип вычислительной системы, в которой имело место на­рушение безопасности, кратко описываются ее особенно­сти и слабые стороны, использованные для осуществления атаки, суть нарушения безопасности и его последствия. Примеры расположены в хронологическом порядке. Группам примеров, относящихся к одной вычислительной системе, предшествует краткое описание ее структуры и принципов функционирования, позволяющее понять реализованную в ней концепцию зашиты.

Индексы примеров соответствуют системе обозначе­ний, принятой в [1] (см. литературу к главе 3). В начале обозначения присутствует префикс, определяющий тип ВС, за которым следует порядковый номер примера для данной системы. В приложение вошли не все приведен­ные в [1] случаи, а только наиболее характерные пред­ставители различных классов, в связи с чем некоторое номера пропущены. В главе 3 отражены результаты, по­лученные при анализе всей доступной информации, в том числе и не включенной в данное Приложение.

Система IBM 360/370

В архитектуре систем IBM 360/370 существуют два состояния процессора — режим выполнения прикладной программы, в котором запрещено выполнение подмно­жества привилегированных команд (загрузка PSW, ини­циализация ввода/вывода и т.п.), и режим супервизора, в котором возможно выполнение любых команд. Попытка выполнения прикладным процессом привилегированной команды вызывает прерывание, вызов привилегирован­ных команд из прикладных (непривилегированных) про­цессов осуществляются посредством специального вызова — Supervisor Call (SVC).

Оперативная память разделена на страницы, каждая из которых ассоциирована с четырехбитным ключом доступа. Обычно для отведенных пользователю страниц памяти значение ключа доступа равно 8, в то время как значение ключей для областей памяти, используемых самой системой, лежит в интервале от 0 до 7. Процесс, выполняющийся в области памяти с ненулевым значени­ем ключа, имеет неограниченный доступ к другим об­ластям памяти с тем же (ключом доступа. Кроме того, процесс может читать области памяти с другими значе­ниями ключей, если только они не помечены как защищенные. Попытка записи в область памяти с другим значением ключа приводит к возникновению прерыва­ния. Процессы операционной системы выполняются в областях памяти со значением ключа, равным 0. Такие процессы имеют неограниченный доступ ко всем облас­тям памяти вне зависимости от их ключей и статуса за­щищенности.

Подсистема ввода/вывода состоит из т. н. каналов, которые по сути представляют собой специализирован­ные программируемые микрокомпьютеры, осуществ­ляющие обмен данными между памятью и внешними устройствами. С каналом ввода/вывода может быть свя­зана специальная программа, которая выполняется про­цессором ввода/вывода и осуществляет управление об­меном данными между оперативной памятью и внешним устройством. Такие программы после их инициализации функционируют независимо от основного процессора и имеют неограниченный доступ к оперативной памяти. Таким образом, управление процессом ввода/вывода и контроль доступа возлагается на программу, управляю­щую каналом ввода/вывода.

В многозадачной системе MVS имеется опция разде­ления времени Time Sharing Option (TSO), которая по­зволяет одновременно нескольким пользователям вы­полнять команды с интерактивных терминалов. В MVS существует категория привилегированных процессов, объединенных понятием авторизованные программы (Authorized Program Facility — APF). Эти программы занимают области памяти с ключом доступа, равным 7. Им предоставлены возможности, недоступные осталь­ным прикладным процессам, в частности перевод про­цессора в режим супервизора. Данные процессы рас­сматриваются как расширение операционной системы и считаются гарантированно безопасными (trustworthy).

Система IBM 370 является развитием системы 360 и представляет собой монитор виртуальных машин. На ее основе министерством обороны США разработана система KVM/370, обеспечивающая более высокий уровень защиты информации. Университетом штата Мичиган разработана система MTS (Michigan Terminal System), специально предназначенная для работы как в пакетном, так и в интерактивном режиме.

Индекс: I1. Система: IBM 360

Источник информации: A. S. Tanenbaum. Operating System Design and Implementation. Prentice-Hall, Engle-wood Cliffs, NJ, 1987.

В системе IBM 360 имеется возможность нарушения контроля доступа к файлам. В этой системе для обраще­ния к некоторым файлам требуется ввести соответствую­щий пароль, причем процедура проверки правильности пароля организована следующим образом: в систему вводится имя файла и пароль, а затем, в случае коррект­ности пароля, осуществляется открытие файла. Однако существует возможность подмены имени файла между проверкой подлинности пароля и открытием файла. Для этого можно использовать фоновый процесс, который имеет возможность записи в системные области памяти, например процесс обмена с накопителями на магнитной ленте. Пользователь выдает запрос на доступ к файлу, пароль которого ему известен. Система проверяет га-роль и разрешает доступ. Однако после проверки, но до открытия файла, фоновый процесс может заменить имя файла, что приведет к получению доступа не к тому файлу, для которого проверялся пароль, а к другому, не­смотря на то что пароля для него пользователь не знает.

Индекс: 14. Система: IBM VM/370

Источник информации: С. R. Attanasio, P. W. Markstein, R. J. Phillips «Penetrating at Operating System: a study of VM/370 integrity», IBM System Journal, 1976, PP.102—116.

При программировании каналов ввода/вывода на этапе трансляции управляющая программа подверга­ется статическому анализу на допустимость исполь­зуемых инструкций и обращений к областям памяти, однако при этом предполагается, что каждая команда имеет фиксированную длину и выровнена по границе слова. Фактически такие программы могут включать в себя команды переменной длины, не обязательно вы­ровненные по границе слова, что при наличии коман­ды перехода на произвольный адрес позволяет органи­зовать передачу управления «в середину» команды. Этот трюк приводит к выполнению других команд, со­стоящих из фрагментов исходных и не подвергавшиеся трансляции и проверке. Соответствующим образом со­ставив подобную программу, пользователь может за­пустить параллельный основным вычислениям процесс (как было отмечено выше, программы ввода/вывода имеют доступ к любым областям памяти) и осущест­вить неконтролируемый доступ к информации.


Страница: