Нарушения прав доступа к файлу
Нарушения прав доступа к файлу создают благоприятные условия для начала атаки. Используя нарушения прав доступа к файлу и методы, описанные в секции «Утечка информации», злоумышленник может добраться до секретной информации типа имен пользователей или их паролей в системе, получить доступ к другим файлам при помощи, например, смены владельца файла или атаки символических ссылок (symboliclink attack).
Права
Один из самых простых способов обеспечить безопасность файла состоит в обеспечении прав работы с ним. Часто это один из наиболее освещаемых аспектов безопасности системы. Некоторые однопользовательские системы типа Microsoft Windows 3.1/95/98/ME не поддерживают права доступа к файлам. В то же время многопользовательские системы имеют, по крайней мере, одно, а обычно несколько возможностей управления доступом к файлам.
Например, Unix-подобные системы и некоторые Windows-системы поддерживают
В дополнение к стандартному набору прав владельца файла группы пользователей и многие Unix-подобные системы поддерживают более изощренные методы разрешения доступа к файлу. Их реализация разнообразна: от простого – типа предоставления возможности определить, какие пользователи имеют доступ к файлу, – до более сложного – назначения ролевого имени для открытия пользователям доступа к набору утилит. В составе операционной системы Solaris имеется два таких примера: ролевое управление доступом (Role-Based Access Control – RBAC) и списки управления доступом (ACL – Access Control Lists).
Списки управления доступом ACL позволяют пользователю определить доступ к файлу для отдельных пользователей системы. Список доступа связан с владельцем и членством в группе.
Ролевое управление доступом RBAC – сложный инструментарий, предусматривающий различные слои прав. Инструментарий можно настраивать, предоставляя пользователям обширные общие роли для выполнения таких функций, как добавление пользователей, изменение некоторых настроек системы и т. п. Также можно ограничить права пользователей, разрешив им выполнять только отдельные функции.
Примечание
Дополнительные сведения о RBAC и ACL можно найти в книге издательства Syngress
Атаки символических связей
Атаки символических связей – это проблема, которая обычно используется злоумышленником для реализации своих замыслов. Цель подобных атак состоит в изменении полномочий работы с файлом, разрушении файла в результате добавления в конец новых данных или перезаписи файла с уничтожением ранее содержащейся в нем информации.
Атаки символических связей часто начинаются из директорий для хранения временных данных. Обычно проблема возникает из-за ошибки программирования. Когда запускается уязвимая программа, она создает файл с параметрами, делающими его уязвимым для нападения. Таких параметров два.
Первый – права работы с файлами. Второй – создание небезопасных временных файлов, то есть уязвимых для нападения злоумышленника. Если файл был создан с опасными с точки зрения безопасности системы правами работы, то он может быть изменен злоумышленником. В зависимости от алгоритма работы программы возможна ситуация, когда измененные злоумышленником данные временного файла могут быть переданы сессии пользователя.
Во втором случае, если программа не проверяет существование файла на диске перед его созданием, атака на систему реализуется следующим образом. Если пользователь в состоянии определить имя временного файла прежде, чем он будет создан, то создается символическая связь с временным файлом, который будет создан и который намечен для нападения. В следующем примере продемонстрирован исходный текст программы, создающей файл с предсказуемым именем: