Как построить защищенную информационную систему. КнигаРефераты >> Программирование и компьютеры >> Как построить защищенную информационную систему. Книга
Индекс: 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.