Введение
Публичные сети (такие как сеть Интернет) – это довольно опасное место. Любой пользователь, у которого есть компьютер, подключенный к Интернету (даже если этот пользователь выходит в сеть на непродолжительное время), понимает угрозы, которые несут эти сети. Злоумышленники могут воспользоваться имеющимися в системе уязвимостями, чтобы получить неавторизованный доступ к важной информации, либо чтобы несанкционированно использовать ваш компьютер с целью рассылки спама или участия в атаках на более важные узлы сети (например, применять SYN-флад в качестве составной части DDoS-атак).
В DDoS-атаках (Distributed Denial of Service) используются многочисленные компьютеры, подключенные к Интернету (т.н. «компьютеры-зомби»). В результате такой атаки (при которой используется уязвимость трехэтапной процедуры установления соединения, используемой в протоколе TCP) на атакуемой системе происходит чрезмерное расходование ресурсов, что делает ее недоступной для пользователей. Для получения информации о протоколе SCTP (Stream Control Transmission Protocol), в котором исключена возможность такой атаки благодаря использованию четырехэтапной процедуры установления соединения с применением cookies, обратитесь к разделу «Ресурсы».
Происхождение SELinux
SELinux – это правительственная и промышленная разработка. В создании SELinux приняли участие NSA, Network Associates, Tresys и многие другие организации. Хотя изначально NSA представило SELinux в виде набора исправлений, теперь SELinux является основополагающим элементом ядра Linux версии 2.6.
GNU/Linux является очень надежной, но в то же время динамично развивающейся операционной системой. В результате вносимых изменений в ней могут появиться уязвимости, которыми могут воспользоваться злоумышленники. Несмотря на то, что значительное внимание уделяется предотвращению несанкционированного доступа к системе, что будет, если все-таки такой доступ произойдет?
В этой статье рассматривается общая архитектура SELinux, а также описываются основные принципы, на которых построена данная операционная система. Полный обзор SELinux мог бы стать темой для написания целой книги (пример такой книги можно найти в разделе belize «Ресурсы»), поэтому в данной статье дается только основная информация о том, почему ОС SELinux действительно так важна, и как реализуются механизмы, заложенные в ней.
Методы управления доступом
В большинстве операционных систем имеются средства управления доступом, которые определяют, может ли определенный объект (пользователь или программа) получить доступ к определенному ресурсу. В системах UNIX® применяется разграничительный контроль доступа (discretionary access control, DAC). Этот метод позволяет ограничить доступ к объектам на основе групп, к которым они принадлежат. Например, в GNU/Linux для каждого файла определены владелец, группа, а также указаны права доступа к этому файлу. Правами доступа определяется, кто может получить доступ к файлу, кто может открыть его для чтения, кто может внести в него изменения, кто может запустить этот файл на выполнение. Права доступа определены для трех категорий: пользователь (владелец файла), группа (все пользователи, которые являются членами группы) и другие (все пользователи, которые не являются ни владельцем файла, ни членами группы).
Такое разграничение прав доступа может привести к возникновению ряда проблем из-за того, что программа, в которой может быть обнаружена уязвимость, наследует все права доступа пользователя. Следовательно, она может выполнять действия с тем же уровнем привилегий, какой есть у пользователя (что нежелательно). Вместо того чтобы определять ограничения подобным образом, более безопасно использовать принцип наименьшего уровня привилегий (principle of least privilege), согласно которому программы могут делать только то, что им необходимо для выполнения своих задач, и не более того. Например, если у вас есть программа, задача которой состоит в приеме запросов через сокеты, при этом ей не нужно иметь доступ к файловой системе, то такая программа будет иметь возможность только прослушивать определенный сокет и не будет иметь доступа к файловой системе. Таким образом, даже если в программе будет обнаружена уязвимость, то возможности доступа данной программы будет жестко ограничены. Такой тип контроля называется принудительным управлением доступом (mandatory access control, MAC).
Другим методом управления доступом является управление доступом на основе ролей (role-based access control, RBAC). При использовании RBAC права доступа предоставляются на основе ролей, выдаваемых системой безопасности. Отличие концепции ролей от традиционных групп состоит в том, что группа представляет одного или нескольких пользователей, в то время как роль, хотя она также может быть применена к нескольким пользователям, представляет совокупность полномочий на выполнение определенных действий.
SELinux добавляет в операционную систему GNU/Linux поддержку как MAC, так и RBAC. В следующем разделе рассказывается о реализации SELinux, а также о том, как было прозрачным образом произведено усиление защиты ядра Linux.
Обеспечение безопасности в Linux
Когда на ранней стадии своего развития SELinux еще являлась набором исправлений, она предоставляла свою собственную инфраструктуру безопасности. Это вызывало определенные сложности, поскольку ограничивало GNU/Linux жесткими рамками архитектуры, основанной на одном методе управления доступом. Вместо принятия такого подхода ядро Linux унаследовало общую инфраструктуру, в которой политика и усиление безопасности были разделены. Такого разделения удалось достичь благодаря использованию модуля LSM (Linux Security Module). Общесистемная инфраструктура безопасности, предоставляемая модулем LSM, такова, что позволяет реализовывать модели безопасности в виде загружаемых модулей ядра (рисунок 1).
Рисунок 1. В SELinux усиление безопасности происходит независимо от применяемых политик
Рисунок 1. В SELinux усиление безопасности происходит независимо от применяемых политик
Перед доступом к внутренним объектам производится изменение кода ядра. Это осуществляется с помощью специальной функции усиления безопасности (перехватчика вызовов системных функций ОС), посредством которой применяется политика безопасности. Данная функция выполняет проверку возможности выполнения определенной операции на основании заранее определенных политик. Функции безопасности хранятся в структуре безопасных операций, охватывающей основные операции belize caye, защиту которых необходимо обеспечить. Например, функция security_socket_create (security_ops->socket_create) осуществляет проверку прав доступа перед созданием нового сокета и проверяет семейство протоколов, тип, протокол, а также то, на каком именно уровне (уровне ядра или уровне пользователя) создается сокет. В листинге 1 показан фрагмент кода из файла ./linux/net/socket.c, с помощью которого осуществляется создание сокета.
Листинг 1. Код ядра, с помощью которого осуществляется создание сокета
static int __sock_create(int family, int type, int protocol,
struct socket **res, int kern)
{
int err;
struct socket *sock;
/*
* Check protocol is in range
*/
if (family < 0 || family >= NPROTO)
return -EAFNOSUPPORT;
if (type < 0 || type >= SOCK_MAX)
return -EINVAL;
err = security_socket_create(family, type, protocol, kern);
if (err)
return err;
...
Функция security_socket_create определена в файле ./linux/include/linux/security.h. Она обеспечивает косвенный вызов из функции security_socket_create в функцию, динамически подставляемую в структуру security_ops (листинг 2).
Листинг 2. Косвенный вызов для проверки создания сокета
static inline int security_socket_create (int family, int type,
int protocol, int kern)
{
return security_ops->socket_create(family, type, protocol, kern);
}
Функция в структуре security_ops подставляется модулем безопасности. В этом случае функции-перехватчики определены в загружаемом модуле ядра SELinux. Все вызовы SELinux определены в файле функций-перехватчиков, который используется на завершающей стадии перенаправления из функции ядра в динамический вызов для конкретного модуля безопасности (см. фрагмент кода, представленный в листинге 3, взятый из файла .../linux/security/selinux/hooks.c).
Комментарии
Louboutin Pas Cher a un
Louboutin Pas Cher a un penchant pour le Moyen-Orient et a une maison de vacances en Egypte, sur le Nil à Louxor.
Comment avez- Louboutin Chaussures obtenir de gawping au danseurs de montage de ses créations sur les beautés classe tels que la princesse Caroline de Monaco, Catherine Deneuve et la reine Rania de Jordanie? Ce qui rend les chaussures de Christian Louboutin Chaussures se démarquer, outre leur qualité exquise, artisanat d'art, sexy talons hauts et des dessins originaux, est la brillante vernis à ongles semelle rouge.Christian Louboutin Paris sont élégantes, de style ainsi que un seul de ce genre. à peu près tous dame aime à posséder ces types de Christian Louboutin Pas Cher chaussures.
Una delle poche aziende
Una delle poche aziende abbigliamento di lusso,Moncler Outlet ha incorporato di alta moda con la funzionalità completa,offrendo una linea completa di tendenze del design e stili differenti.Outlet Moncler giacca Branson è destinato ad attrarre verso di sé stesso in quanto offre l'abbigliamento migliore Moncler 2012 inverno e fa in modo che si cammina in grande stile in tutto il inverni.Essere alla moda anche nelle peggiori condizioni climatiche non è un Piumini Moncler problema se si possiede un giubbotto Moncler.
Borse Designer,Gucci Sito
Borse Designer,Gucci Sito Ufficiale conosciuto per essere il miglior amico delle femmine,sono un'estensione della personalità di una donna,che danno la sua classe,eleganza e senso dello stile.Tutte le serie di Gucci Borse da donna sono leggeri,durevoli e unico per colore,forma e stile!Grande abbastanza da contenere tutti gli elementi essenziali,ma abbastanza piccolo per dare glamour a ogni occasione Gucci Borse 2012 - che si tratti di giorno o di sera Sia che preferiate elegante o casual,si può avere lo stile e la scelta dei colori nel nostro sito Borsa Gucci web per creare il proprio look,in qualsiasi occasione.