Денис Гамаюнов / Фёдор Сахаров, 3 курс, sec-sem

На этом форуме публикуются и уточняются постановки задач студентам, а также отслеживается ход их выполнения

Модератор: staff

Закрыто
Бычков Иван
Аспирант
Сообщения: 179
Зарегистрирован: 23 сен 2008 01:19 pm

Денис Гамаюнов / Фёдор Сахаров, 3 курс, sec-sem

Сообщение Бычков Иван »

Тема работы: Автоматизации разметки исполнимого кода программы контрольными точками для точного разделения пространства её состояний со стороны ядра ОС.


Расшифровка темы: В работе рассматриваются формализованные механизмы контроля поведения программ, используемые в ОС Linux - SELinux и AppArmor. В задачу студента входит проанализировать теоретическую базу этих механизмов, практический инструментарий в распространённых дистрибутивах (Debian, Ubuntu для AppArmor), достоинства и недостатки, в том числе по научной литературе. Основная цель данной работы - повысить гранулярность контроля поведения приложений в указанных системах за счёт отслеживания внутреннего состояния программы из ядра. В рамках работы предполагается делать это специальной разметкой программы на уровне исходных текстов, а также бинарных патчей (хотя бы на уровне исследования). Конечная цель - автоматизация такой разметки по тестам.

Актуальность: Существующие механизмы защиты ядра и контроля поведения приложений в ОС Linux (SELinux, AppArmor) имеют ряд недостатков, в частности, используемые в них методы выявления аномального поведения приложений не учитывают внутреннее состояние защищаемого приложения. В ряде случаев это накладывает сильные ограничения на допустимое поведение, что ограничивает применимость этих механизмов. Учёт внутреннего состояния контролируемого приложения позволит избежать жёстких обобщённых ограничений на его поведение.

Цель работы: Расширение функциональности систем защиты уровня ядра Linux (SELinux и AppArmor) за счёт повышения гранулярности отслеживания поведения приложений и разделения их внутренних состояний.

Постановка задачи:
В рамках работы должны быть решены следующие задачи:
1. Сравнительный анализ систем безопасности уровня ядра ОС Linux.
2. Исследование возможности автоматической простановки контрольных точек на уровне исходных текстов и бинарных патчей программ.
3. Разработка инструментальной системы для автоматизации проставления контрольных точек в программах по тестам.
4. Расширение профилей AppArmor, добавление состояний контролируемых приложений.
Федор Сахаров
Выпускник
Сообщения: 1
Зарегистрирован: 16 сен 2008 03:37 pm

Сообщение Федор Сахаров »

Отчет о работе за семестр
Студент: Сахаров Федор
Научные руководители: Д.Ю. Гамаюнов, С.О. Беззубцев

Тема работы:
Автоматизация разметки исполнимого кода программы контрольными точками для точного разделения пространства её состояний со стороны ядра ОС.

В рамках работы должны быть решены следующие задачи:
  • 1.Сравнительный анализ систем безопасности уровня ядра ОС Linux
    2.Исследование возможности автоматической простановки контрольных точек на уровне исходных текстов и бинарных патчей программ.
    3.Разработка инструментальной системы для автоматизации проставления контрольных точек в программах по тестам.
    4.Расширение профилей AppArmor/SELinux, добавление состояний контролируемых приложений.
Актуальность:
Существующие механизмы защиты ядра и контроля поведения приложений в ОС Linux (SELinux, AppArmor) имеют ряд недостатков, в частности, используемые в них методы выявления аномального поведения приложений не учитывают внутреннее состояние защищаемого приложения. В ряде случаев это накладывает сильные ограничения на допустимое поведение, что ограничивает применимость этих механизмов. Учёт внутреннего состояния контролируемого приложения позволит избежать жёстких обобщённых ограничений на его поведение.

Результаты работы
  • 1.Были рассмотрены различные системы безопасности уровня ядра как Linux, так и других систем (Windows, BSD, Феникс) и проведен сравнительный анализ. Были проанализированы их достоинства и недостатки.

    2.Более детально были рассмотрены принципы функционирования двух систем безопасности уровня ядра Linux – AppArmor и SELinux. В SELinux решения принимаются на основании специально определенных политик. Политики описывают допустимые действия для объектов системы. Основными понятиями при описании политик являются домены (для приложений) и типы (для файлов). При этом, приложения могут изменять свои домены при необходимости произвести некоторые действия над объектами. Примером может служить изменение домена при попытке выполнить некоторое приложение.

    3.Определены возможности обмена информацией между пространством ядра и пользовательскими приложениями. Данный вопрос имеет весьма важное значение, так как процесс обмена информацией должен быть эффективным и безопасным. (файлы устройств, либо procfs/sysfs)

    4.Рассмотрено внутреннее устройство SELinux, схема его работы на примере определения прав на доступ к файлу. Кроме этого, был рассмотрен синтаксис языка описания политики. Предложены изменения, необходимые для описания возможных изменений доменов при изменении внутреннего состояния приложения. Основной идеей является описание множества доменов, которым может принадлежать приложение. Приложение, в свою очередь, при помощи встроенных в него контрольных точек сообщает системе безопасности свое текущее состояние. В ответ на это система должна принять решение возможности данного изменения состояния и в случае, если данный запрос удовлетворяет политике, меняет необходимые атрибуты процесса.
Планы на следующий семестр
  • 1.Составление плана «работ»
    2.Внесение соответствующих изменений в язык описания политики и инструменты работы с бинарными файлами политик.
    3.Разработка контрольных точек
    4.Добавление возможности изменения домена процесса на основании информации о внутреннем состоянии приложения, предоставляемой контрольными точками
    5.Разработка инструментария для простановки контрольных точек в коде программы по тестам (для исходных текстов)
Использованная литература:
Установка и настройка SELinux
http://linux-applied.net/O.Reilly-SELinux/tindex.htm
Документация об архитектуре SELinux на официальном сайте АНБ
http://www.nsa.gov/selinux/
Руководство по SELinux на сайте Red Hat
http://www.redhat.com/docs/manuals/ente ... nux-guide/
Страница, посвященная сравнению AppArmor и SELinux
http://www.novell.com/linux/security/ap ... rison.html
Статистика об использовании SELinux
http://www.tresys.com/innovation.php
ОС Феникс http://www.ssl.stu.neva.ru/fenix

Книги:
Linux Device Drivers, 3rd Edition By Jonathan Corbet, Greg Kroah-Hartman, Alessandro Rubini
Understanding the Linux Kernel by Daniel P. Bovet, Marco Cesati
d Hat
Никита Ющенко
Сотрудник
Сообщения: 155
Зарегистрирован: 25 авг 2004 01:02 pm

Сообщение Никита Ющенко »

Как я понял из отчёта, основное достижение - предложено заменить домен приложения на группу доменов, и "контрольную точку" сделать системным вызовом смены домена в рамках этой группы?

А никакой проделанной работы в сторону автоматизации расстановки таких контрольных точек в отчёте не отражено. Да и в планах это как-то расплывчато: что может означать пункт "3. Разработка контрольных точек", что значит упонянутая в пункте 5 "простановки контрольных точек в коде программы по тестам"? А упомянутая в постановке задачи работа с бинарными патчами в отчёте не упоминается вовсе.

Хотелось бы чтобы студент прокомментировал это на защите.

Также у меня как у специалиста по ядру вызвала недоумение фраза "Определены возможности обмена информацией между пространством ядра и пользовательскими приложениями... (файлы устройств, либо procfs/sysfs)"
Это по меньшей мере неточно.
Приложению информация от ядра доступна через системные вызовы. Ядру информация от приложения доступна любая и когда угодно.
Вероятно, имеется в виду что-то другое.
Закрыто