Как построить защищенную информационную систему. КнигаРефераты >> Программирование и компьютеры >> Как построить защищенную информационную систему. Книга
Приложение 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.
При программировании каналов ввода/вывода на этапе трансляции управляющая программа подвергается статическому анализу на допустимость используемых инструкций и обращений к областям памяти, однако при этом предполагается, что каждая команда имеет фиксированную длину и выровнена по границе слова. Фактически такие программы могут включать в себя команды переменной длины, не обязательно выровненные по границе слова, что при наличии команды перехода на произвольный адрес позволяет организовать передачу управления «в середину» команды. Этот трюк приводит к выполнению других команд, состоящих из фрагментов исходных и не подвергавшиеся трансляции и проверке. Соответствующим образом составив подобную программу, пользователь может запустить параллельный основным вычислениям процесс (как было отмечено выше, программы ввода/вывода имеют доступ к любым областям памяти) и осуществить неконтролируемый доступ к информации.