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

Индекс: D1. Система: DEC VMS

Источник информации: «VMS code patch eliminates security breach». Digital Review, June 1, 1987, p. 3.

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

Операционная система Unix

Операционная система Unix разрабатывалась луч­шими специалистами в области создания ОС с одной целью — обеспечить удобную интерактивную среду об­работки данных на компьютерах малой производи­тельности. Поэтому на ранних стадиях разработки во­просам безопасности уделялось относительно мало внимания. Unix поддерживает иерархическую файло­вую систему с контролем доступа, основанным на по­нятии «владельца» файла. С каждым файлом связаны идентификаторы владельца и группы, а также атрибуты доступа. Эти идентификаторы можно изменить с по­мощью команд chown, chgrp. Атрибуты файла опреде­ляют права доступа к нему. Все пользователи подразде­ляются на три категории:

· владелец файла, его идентификатор совпадает с идентификатором владельца файла;

· члены группы владельца, их идентификатор груп­пы совпадает с идентификатором группы файла;

· прочие — все остальные.

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

Все пользователи системы зарегистрированы в спе­циальном файле /etc/passwd, В нем указаны имена поль­зователей, их идентификаторы и пароли в зашифрован­ном виде. Всем пользователям, кроме root, разрешен доступ к этому файлу только по чтению. Если злоумыш­ленник получил возможность записи в этот файл, он мо­жет создать пользователя с полномочиями root и полу­чить полный контроль над системой.

Когда пользователь запускает процесс, как правило, ему присваивается идентификатор этого пользователя, что дает процессу возможность действовать от имени данного пользователя и с его правами доступа. Этому механизму недостает гибкости, поэтому для того, чтобы пользователи могли, например, осуществлять модифи­кацию файла /etc/passwd в пределах относящейся к ним записи, был введен атрибут SUID. Наличие у программы этого атрибута означает, что при ее запуске соответст­вующий процесс будет иметь идентификатор и права не запустившего его пользователя, а пользователя, являю­щегося владельцем файла, содержащего программу. Как правило, этот атрибут устанавливается у системных ути­лит, владельцем которых является root, требующий для своей работы его полномочий. Например, утилита setpass, позволяющая пользователю изменять свои пароль, должна иметь возможность осуществлять запись в файл /etc/passwd. При этом безопасность системы полностью зависит от корректности реализации подобных! программ, поскольку они позволяют любому пользова­телю выйти за рамки своих полномочий.

Индекс: U2. Система: Unix

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

Присутствующая во многих версиях Unix утилита lpr помещает файл в очередь печати, а при указании опции «r», еще и удаляет его. В ранних версиях Unix при ис­пользовании указанной опции проверка наличия полно­мочий на удаление заданного файла у пользователя, вы­звавшего утилиту lpr, отсутствовала. Это позволяло пользователю удалить любой файл, в том числе и файл /etc/passwd, после чего ни один пользователь не мог вой­ти в систему.

Индекс: U3. Система: Unix

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

В ряде версий Unix программа создания каталогов mkdir имела атрибут SUID, а ее владельцем был root. Создание каталога происходило в две стадии. Сначала посредством специального системного вызова mknod для нового каталога выделялись необходимые ресурсы и его владельцем назначался root. После этого с помощью другого системного вызова chown владельцем нового ка­талога назначался пользователь, вызвавший mkdir. По­скольку эти два этапа не были реализованы как атомар­ные операции, у пользователей имелась возможность стать владельцем любого каталога и файла в системе, в том числе и файла /etc/passwd. Для этого было достаточ­но запустить mkdir как фоновый процесс и после выпол­нения первой стадии — создания каталога, приостано­вить его. После этого пользователь удалял созданный каталог и под тем же именем создавал ссылку {link) на файл паролей /etc/passwd. Затем пользователь инициировал возобновление выполнения утилиты mkdir, которая делала пользователя владельцем созданного каталога. Однако, так как каталог предварительно был подменен ссылкой на файл /etc/passwd, пользователь становился его владельцем. Далее, в соответствии со своими полно­мочиями владельца, он мог изменять этот файл, получая таким образом полный контроль над системой.

Индекс: U4. Система: Unix

Источник информации: А.V. Discolo, «4.2 BSD Unix security». Computer Science Department, University of California, Santa-Barbara, Apr. 1985.

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

Проверка полномочий пользователя на доступ к файлу параметров не осуществлялась, так как sendmail имела атрибут SUID, а ее владельцем был root, так что пользователь легко мог ознакомиться с содержанием любого файла, просто указав его в качестве файла пара­метров программы sendmail (очевидно, что вероятность соответствия строк интересующего пользователя файла синтаксису, принятому в sendmail, крайне мала).

Индекс: U5. Система: Unix

Источник информации: М.Bishop. «Security problems with the UNIX operating system». Computer Science Department, Purdue University, West Lafayette, Indiana, March. 1982.


Страница: