12.07.2015 Views

img - Xakep Online

img - Xakep Online

img - Xakep Online

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Все вспомогательные утилиты SELinux собраны в нескольких пакетах:setools или policycoreutils, policycoreutils-newrole. Первый, какправило, уже установлен в системе, остальных нет. Например, newrole,дающая возможность пользователю сменить роль, доступна именно вpolicycoreutils. После установки в системе присутствуют только наборыполитик для targened, остальные наборы политик скачиваются впакетах selinux-policy*. Сорцы политик для их самостоятельной сборкивынесены в selinux-policy-devel.Разобраться в более чем 200 файлах, имеющих несколько тысяч строк,врукопашную очень трудно. Автоматизировать эту задачу призванпитоновый скрипт audit2allow (в policycoreutils), он генерирует новыеполитики на основе анализа журналов и блокировок SELinux.Типичная политика AppArmorСбиваем спесь со SkypeНаверное, больше всего претензий с точки зрения безопасности упользователя вызывает Skype. Куда только не лезет эта прога (см. статьюКриса «Skype: скрытая угроза», www.xakep.ru/post/38543/default.asp). Описываемые технологии как раз и позволяют обезопасить себя.Забегая вперед, скажу, что пользователи уже давно нагенерировалипрофили для большинства популярных прог, и скайп здесь не исключение.Смотри, например, здесь: www.cynapses.org/tmp/apparmor/usr.bin.skype. Некоторые профили собраны в отдельном пакете —apparmor-profiles.Но профиль легко создать и самому. Для этого в комплекте идет утилитаaa-genprof (или просто genprof). Запускаем ее с указанием исполняемогофайла в качестве параметра:$ sudo aa-genprof /usr/bin/skypeДалее работаем как обычно: звоним, отсылаем сообщения, принимаемфайлы, добавляем и удаляем учетки. По окончании прерываемработу в каталоге /etc/apparmor.d/usr.bin.skype. Затем перезапускаемAppArmor или просто активируем профиль в enforce-режиме:$ sudo aa-enforce skypeВсе проблемы и замечания по работе профилей AppArmor ищи в логах.Чтобы просмотреть все контексты, связанные с httpd, введи такуюкоманду:# grep -iR httpd /etc/selinux/targeted/contextsAPPARMORТехнология Application Armor изначально разработана Immunix Inc.После того, как софтверный гигант Novell приобрел эту компанию,код открыли под лицензией GNU GPL, а затем включили в составopenSUSE. Позднее AppArmor стал доступен и в других дистрибутивах.Но когда команда Immunix покинула Novell, дальнейшее развитиепроекта остановилось. И хотя в том же openSUSE поддержка AppArmorбыла сохранена, в дистрибутив интегрировали SELinux. В итоге началиразноситься слухи а-ля «AppArmor is dead», что у одних вызвалорадость, так как теперь все усилия можно бросить на развитие однойсистемы защиты, у других критику — отсутствие конкуренции еще ник чему хорошему не приводило. Сегодня апологетом этой технологииявляется Canonical, разработчики которого не смотря ни на что продолжаютразвитие AppArmor. Так, в последних версиях добавлен механизмкэширования правил, что позволило ускорить их загрузку. Для этих жецелей, и чтобы защитить сетевые сервисы на раннем этапе загрузки,часть профилей вынесли в initramfs. И главное — в Ubuntu AppArmorприкрутили к LSM (Linux Security Modules), задействовав security_pathвместо vfs.Основная идея AppArmor состоит в том, что система защиты не должнабыть сложной и не должна мешать. В отличие от SELinux, AppArmor неиспользует расширенные атрибуты и не зависит от файловой системы.Доступ к ресурсам определяется на основе профилей (profiles), которыепривязаны к пути файла или каталога, причем самого файла может и небыть на момент активации профиля. Профиль разрабатывается индивидуальнопод каждое приложение. Хотя в этом есть и недостаток: припереносе файла в SELinux за ним полностью сохраняется контекст безопасности,в AppArmor — нет, но этого от него и не требовали. Хотя, еслифайл имеет два имени, и профиль блокирует доступ к одному из них,есть возможность работать с другим. Это следует учитывать. Также, еслисредствами SELinux можно предусмотреть несколько уровней доступа кобъекту для разных субъектов, то AppArmor этого не умеет.В настоящее время созданы профили для большинства популярныхсерверов и приложений, поэтому наличие активного AppArmor обычнонезаметно, он не создает проблем. Кроме того, в комплекте поставкиидут два скрипта aa-genprof и aa-logprof, которые помогут быстро создатьпрофиль для новой программы. Управление AppArmor производитсяпри помощи init-скрипта, который запускает модуль ядра, инициализируетпрофили и монтирует псевдофайловую систему securityfs.Ты увидишь, что для разных ситуаций контекст будет отличаться.Теперь получим список всех параметров SELinux: «getsebool -a». Дляустановки используй команду setsebool (с ключом '-P' для сохранениязначения после перезагрузки) или графическую утилиту system-configsecuritylevel.Вывод «sestatus -v» покажет все текущие установки. Не забываем и ожурналах:# dmesg | grep -i selinuxSELinux: Initializing.SELinux: Starting in permissive mode# grep -iR selinux /var/log/messages$ sudo /etc/init.d/apparmor startЧтобы просмотреть список загруженных профилей, достаточно считатьфайл /sys/kernel/security/apparmor/profiles (или запустить /etc/init.d/apparmor status); в зависимости от варианта дистрибутива Server/Desktop количество активных профилей будет различно. Сами профилихранятся в файлах (отдельно для каждого приложения) в каталоге /etc/apparmor.d и внутри содержат описание каталогов и отдельных файлов,с указанием прав доступа. Также указывается работа в сети и совместимостьс другими профилями. Для упрощения задачи используютсярегулярные выражения. По умолчанию профили AppArmor работают впринудительном enforce-режиме. Когда сервис не может выйти за рамкиустановок, все попытки блокируются и фиксируются в журнале. ПриXÀÊÅÐ 08 /139/ 10 091

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!