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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



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

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

 

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

 

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

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

— члены группы, его идентификатор группы совпадает с идентификаторам группы файла;

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

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

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

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

 

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

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

 

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

 

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

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

 

В ряде версий Unix программа создания каталогов mkdir имела атрибут SUID, а ее владельцем был root. Создание каталога происходило в две стадии. Сперва посредством специального системного вызова (mknod) для нового каталога выделялись необходимые ресурсы и его владельцем назначался roof. После этого с помощью другого системного вызова(chown) владельцем нового каталога назначался пользователь, вызвавший mkdir. Поскольку эти два этапа не были реализованы как атомарные операции, у пользователей имелась возможность стать владельцем любого каталога и файла в системе, в том числе и файла /etс/passwd. Для этого было достаточно запустить mkdir как фоновый процесс, и после выполнения первой стадии — создания каталога — приостановить его. После этого пользователь удалял созданный каталог, и под тем же именем создавал ссылку (link) на файл паролей /etc/passwd. Затем пользователь инициировал возобновление выполнения утилиты mkdir, которая делала пользователя владельцем созданного каталога. Однако, т.к. каталог предварительно был подменен ссылкой на файл /etс/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.

 

Неправильное использование ограничений доступа к каталогам электронной почты приводит к возникновению возможности преодоления системы защиты. В ряде версий Unix почтовая программа после добавления нового сообщения к файлу, в котором хранятся поступившие сообщения ("почтовый ящик" — mbox), назначает владельцем этого файла пользователя, на имя которого поступило сообщение. При этом не производится никаких проверок его атрибутов. В дополнение к этому многие системы настроены таким образом, что каталоги, содержащие электронную почту пользователей, доступны по записи для всех. Это означает, что любой пользователь может удалить "почтовый ящик" пользователя root, и заменить его копией командного интерпретатора с установленным атрибутом SUID и разрешением для выполнения любым пользователем. После этого пользователь может послать на имя root любое сообщение. Программа, обслуживающая почту, добавит это сообщение в конец файла — "почтового ящика" и назначит ему нового владельца — root. Таким образом, в системе появится командный интерпретатор, с установленным атрибутом SUID, владельцем root, и доступный для выполнения для любого пользователя.

 

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

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

 

В Unix имеется утилита Uux, реализующая удаленное выполнение ограниченного множества команд и программ. Командная строка, содержащая имя и параметры программы, которую необходимо выполнить, передается программой Uux на удаленную машину, где осуществляется ее анализ и проверка на принадлежность запускаемой программы к множеству доступных. Если анализ и проверка завершились успешно, порождается соответствующий процесс. В процедуре анализа командной строки содержалась ошибка, которая позволяла выполнять программы, не входящие в множество допустимых.

Разбор командной строки был организован следующим образом. Uux читала первое слово командной строки (имя команды), проверяла его, а затем пропускала (как аргументы и опции команды) все последующие символы до первого разделителя команд (признака конца команды). Затем производился разбор следующей команды и т.д. После окончания разбора вся строка целиком передавалась командному интерпретатору для выполнения. Но множество проверяемых разделителей команд было неполным, символы "|", "L", "," — учитывались, а "&" и "у" — нет. Таким образом, команды, следующие за неизвестным программе Uux разделителем, не проверялись на принадлежность к множеству допустимых, но выполнялись. Следовательно, пользователь мог осуществить удаленный запуск любых программ и выполнение любых команд в обход контроля Uux.

 

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

Источник информации: Е. Н. Spafford. "Crisis and Aftermath", Comm. of the ACM 32, June 1989, pp. 678-687.

 

Во многих версиях ОС Unix программа sendmail распространялась с установленной по умолчанию отладочной опцией, позволявшей неавторизованным пользователям получать проникать в удаленные системы. Отладочный режим позволяет посылать сообщения, снабженные программой-получателем, которая запускается на удаленной машине и осуществляет прием сообщения. Эта возможность использовалась разработчиками для отладки программы, и в коммерческой версии была оставлена по ошибке. Злоумышленник мог указать в качестве программы-приемника командный интерпретатор, а в текст сообщения включить нужные ему команды, что фактически превращало его в пользователя удаленной системы, несмотря на то, что он не был в ней зарегистрирован. Известный вирус Р. Моррисона использовал эту возможность для проникновения в удаленные системы.

 

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

Источник информации: D. Gwyn. "UNIX-wizard digest", Vol.6 No. 15, Nov. 1988.

 

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

 



Поделиться:


Последнее изменение этой страницы: 2016-08-14; просмотров: 154; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.137.192.3 (0.011 с.)