Перейти к содержимому

Hardened и generic в чем разница

  • автор:

Astra Linux: зачем и для кого?

Всем привет, это моя вторая статья в цикле материалов по Astra Linux. Прошлая статья вызвала немало разногласий и теперь я собираюсь пояснить, что все-таки есть в Астре, чего нет в других дистрибутивах.

Немного истории

Не секрет, что само по себе ядро Linux было написано в 1991 году Линусом Торвальдсом. И единственной отличительной особенностью Linux от других ОС семейства Unix была отсутствие каких-либо лицензий в отношении его кода. Это обстоятельство привело к тому, что в начале нулевых “критическая масса” приложений, написанных под Linux превысила порог и Linux начал становиться общепринятым стандартом. Так что мне кажется не стоит рассуждать, кто, что и на каком ядре делал, ибо все ныне существующие Linux дистрибутивы содержат код, написанный Торвальдсом.

Вполне естественно, что в России давно пытаются создать свою защищенную ОС. Пусть не очень удобно, пусть с багами, зато проверено, безопасно и своё. Так появились Мобильная система Вооружённых Сил (МСВС), ОС «РОСА», ОС Qubes и других полноценных и не очень проектов. И тут вступает в игру АО «НПО РусБИТех» со своей операционной системой специального назначения (ОССН) Astra Linux SE.

Что значит «защищенная» ОС?

Есть 2 подхода к ответу на этот вопрос. С одной стороны, это ОС, отвечающая минимальным требованиям руководящих документов, регламентирующих требования к ПО (например, ГОСТ Р ИСО/МЭК 15408-3-2013, Профиль защиты операционных систем типа «А» второго класса Защиты от ФСТЭК и др.). О соответствии ПО этим требованиям говорит сертификация в различных ведомствах (ФСТЭК, ФСБ или МинОбр.). О сертификации ПО я планирую рассказать в одной из следующих статей. С другой стороны, в документе невозможно учесть все современные угрозы и быстро меняющуюся обстановку в сфере ИБ и поэтому в ОС должен обеспечиваться комплекс средств защиты информации (СЗИ), адекватный угрозам безопасности для конкретной системы (зачастую критически важной). Казалось бы, оба подхода говорят об одном и том же: не будут же в критических системах применяться ОС, не отвечающая хотя бы минимальным требованиям по безопасности. Однако не стоит забывать, что даже при полном выполнений всех норм и правил, система может оказаться контролируемой извне (например недобросовестным разработчиком). Так что согласно второму подходу под защищенностью системы подразумевают, что она является еще и доверенной (trusted).

Так что же такого в этой Астре?

Лично я считаю эту систему защищенной, так как:

  • Она сертифицирована одновременно ФСТЭК, ФСБ и МинОбром. Насколько сложно получить хотя бы один из этих сертификатов даже при малом объеме кода я знаю не понаслышке)
  • В ней реализован ряд модулей (о которых я расскажу ниже), которые сильно усложняют неконтролируемый доступ к объектам системы.

Среди администраторов безопасности ОС семейства Linux распространено мнение, что для её превращения в высокозащищённую ОС достаточно установить пакет Security Enhanced Linux (SELinux) специально разработанный для этой цели в АНБ США. Данный пакет широко и успешно применяется для реализации замкнутой программной среды, однако попытки его применить для реализации более сложных моделей управления доступом, как правило, заканчиваются неудачей, так как требуют существенных усилий по разработке соответствующих политик.

Поэтому наши разработчики собрались и разработали свою мандатную сущностно-ролевую ДП-модель безопасности управления доступом и информационными потоками (МРОСЛ ДП-модель). Уже само название звучит устрашающе, и модель ему полностью соответствует. Существует полное математическое описание и доказательство безопасности такого подхода, однако оно займет целую книгу и уйму времени, чтобы в нем разобраться. Поэтому доверимся разработчикам и идём дальше (кому надо, тот посмотрит).

Начнем с 2-х типов ядер в данной системе (generic и hardened).
Kernel Generic – ядро общего назначения, обеспечивающее базовую функциональность ОС.
Kernel Hardened – это ядро “на стероидах”. Помимо базовых функций оно поддерживает:

  • ряд функций модуля PaX (например, UDEREF и kernexec), устанавливающие правила доступа прикладных программ к адресному пространству памяти.
  • функции, например, такие, как PIE (Position Independent Executables) и SSP (Stack Smashing Protector), предотвращающие переполнения стека.
  • функции, используемые ядром при копировании данных в/из пространства памяти прикладных программ (userspace).
  • функции, предотвращающие внедрение вредоносного кода в процессы, путём перехвата начального потока управления.

Про каждую из этих функций вы можете прочитать отдельно, все эти идеи не новы.

В целом ядро hardened ориентировано на создание «живучих» серверных платформ. Правда при этом могут возникнуть проблемы с функционированием некоторых приложений.

Таким образом, Hardened является дополнительным уровнем защиты, наряду с мандатными управлением доступом и контролем целостности , а также с подсистемой безопасности PARSEC на основе МРОСЛ ДП-модели.

Ну вот мы и подошли в PARSECу.

Схема PARSEC

По факту этот модуль расширяет систему передачи привилегий обычным пользователям по выполнению действий админа, перехватывая и анализируя обращения к ядру системы. Реализован он на основе упомянутой выше МРОСЛ ДП-модели, применяя в том числе и мандатную и дискреционную модель доступа .

Что же касаемо сетевой безопасности, она реализована с помощью службы Astra Linux Directory (ALD), являющаяся аналогом Active Directory от Microsoft. Конечно, реализованы не все возможности AD, однако проект активно развивается и совместим с другими доменными инфраструктурами.

Теперь перейдём к вопросу для кого эта система? Прежде всего знание астры будет полезно сетевым администраторам в различных гос. организациях (рано или поздно), а также всем, кто желает поближе познакомиться с творением РусБИТеха и защищенными ОС в целом. Не стоит забывать, что безопасность требует жертв в виде определенных трудностей в использовании и администрировании системы (в чем вы сможете в последующих статьях)

Заключение

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

На этом все, я постарался в общих чертах объяснить суть творения российских разработчиков. Если остались вопросы, пишите в комментариях, постараюсь на них ответить.

Ядерная защита в Astra Linux SE 1.6 и как ее включить. Ядро Hardened

Как защититься от ядерных эксплоитов эксплуатирующих уязвимости ядра Linux? Рассмотрим как это реализовано в отечественной ОС Astra Linux SE 1.6.

Многие из Вас слышали, а кто-то давно уже использует ОС Astra Linux SE 1.6 — отечественную операционную систему, сертифицированную по ФСБ, Минобороны и ФСТЭК России. На платформе Astra Linux развернуты и функционируют десятки информационных систем — как в государственных, так и в коммерческих структурах. На фоне определенного ажиотажа вокруг отечественных ОС и темы импортозамещения становится особенно актуально применение Astra Linux SE. Много слов сказано о безопасности этой операционной системы и большинство пользователей считают, что достаточно просто установить ОС Astra Linux и они получат безопасную среду для работы автоматически, ничего не настраивая. Конечно это не так. И в этой статье я расскажу об одном из основных компонентов комплекса средств защиты (КСЗ) — ядре hardened и покажу как нужно его использовать.

Ядро hardened в Astra Linux SE 1.6

Ядро hardened — это несколько изменений в компиляторе и ядре, которые увеличивают общую защищенность системы от взлома. Ядро hardened умеет блокировать массу потенциально опасных операций. В ОС Astra Linux SE 1.6 поставляется две версии ядра — это hardened и generic. Ядро hardened более компактное по размеру. Из него убраны многие компоненты, которые не используются для обычной работы, но могут использоваться для отладки. Так же в этом ядре присутствуют технологии, которые обеспечивают очистку информации стека ядра после системных вызовов. Это позволяет защититься от некоторых эксплоитов, которые нацелены на считывание неочищенной информации после системных вызовов.

На практике hardened ядро на несколько (2-3%) медленнее, чем ядро generic, но оно обеспечивает эффективную защиту от эксплоитов, которые нацелены на эксплуатацию уязвимостей ядра (ядерных эксплоитов).

Ограничения по работе с памятью в ядре hardened:

  • запрет записи в область памяти, помеченную как исполняемая;
  • запрет создания исполняемых областей памяти;
  • запрет перемещения сегмента кода;
  • запрет создания исполняемого стека;
  • случайное распределение адресного пространства процесса;
  • очистка остаточной информации из стека ядра после системных вызовов.
Включаем использование ядра hardened в Astra Linux SE 1.6

Включить использование ядра hardened можно во время установки Astra Linux SE 1.6 и позже, уже непосредственно в установленной ОС.

Во время установки Astra Linux SE 1.6 эта настройка делается в разделе «Дополнительные настройки ОС».

Для того, чтобы ОС по умолчанию загружала ядро hardened необходимо отметить параметр «Использовать по умолчанию ядро Hardened».

Так же, чтобы исключить возможность выбора пользователем варианта загрузки незащищенного ядра generic, необходимо в этом же разделе установить параметр «Запретить вывод меню загрузчика».

Если Вы не установите параметры описанные выше, и продолжите установку Astra Linux SE 1.6, то после установки ОС, во время загрузки, по умолчанию будет загружаться незащищенное ядро generic, а не hardened. Так же, с такими настройками, у пользователя будет возможность выбора ядра generic для загрузки.

Скорее всего, такая ситуация с загрузкой по умолчанию незащищенного ядра generic встретится у многих администраторов. Для того, чтобы настроить загрузку защищенного ядра hardened в уже установленной ОС, необходимо администратором (высокоцелостным root) в графическом интерфейсе открыть — «Панель управления — Система — Загрузчик GRUB2» и сделать следующие настройки:

  • «Запись по умолчанию» — ядро hardened
  • «Следующая запись станет загружаемой по умолчанию» — выбрать
  • «Автоматически загружать запись по умолчанию после показа меню» — немедленно

После этих настроек, ОС будет сразу загружаться с защищенным ядром hardened, а возможность у пользователя выбрать для загрузки незащищенное ядро generic будет отсутствовать.

  • Information Security
  • Configuring Linux
  • Server Administration
  • System administration

Linux-image-generic vs linux-image-hardened. В чем разница?

Изображение Linux-image-generic vs linux-image-hardened. В чем разница? в соцсети TenChat

Сравнение между linux-image-generic и linux-image-hardened:

1. Основная функциональность:
— linux-image-generic: Это общая образованная ядра Linux, предназначенная для использования на широком спектре аппаратного обеспечения. Она обеспечивает поддержку большинства оборудования и функций, что делает ее универсальным выбором для большинства пользователей.
— linux-image-hardened: Это специализированное ядро Linux, разработанное с упором на безопасность. Оно предназначено для защиты системы от различных атак и эксплойтов. Оно включает в себя дополнительные функции безопасности и механизмы, которые обеспечивают более высокий уровень защиты по сравнению с общим ядром.

2. Уровень безопасности:
— linux-image-generic: Общее ядро Linux, как правило, не содержит дополнительных механизмов безопасности. Оно предоставляет функциональность, необходимую для работы операционной системы и приложений, но без установки дополнительных мер безопасности.
— linux-image-hardened: Ядро Linux усиленной безопасности включает в себя ряд дополнительных механизмов безопасности, таких как обязательные метки безопасности (SELinux) и случайное расположение областей памяти (ASLR). Эти механизмы обеспечивают более высокий уровень защиты от различных атак и возможных уязвимостей.

3. Совместимость с оборудованием:
— linux-image-generic: Общее ядро Linux обычно предлагает поддержку широкого спектра аппаратного обеспечения, включая различные марки и модели компьютеров, ноутбуков и серверов. Оно позволяет использовать операционную систему на разных платформах.
— linux-image-hardened: Ядро Linux усиленной безопасности в большинстве случаев также обеспечивает совместимость с широким спектром оборудования, но могут возникнуть проблемы с некоторыми экзотическими устройствами или старым оборудованием. Возможно, требуется дополнительная настройка, чтобы обеспечить совместимость с определенными устройствами.

4. Частота обновлений:
— linux-image-generic: Общее ядро Linux обычно имеет более частые обновления, так как оно является широко используемым и поддерживаемым. Большое сообщество разработчиков работает над его совершенствованием и устранением уязвимостей.
— linux-image-hardened: Ядро Linux усиленной безопасности может иметь менее частые обновления, так как оно имеет более специализированный характер и требует дополнительных проверок безопасности перед выпуском обновлений. Это может требовать больше времени для тестирования и анализа, чтобы обеспечить высокий уровень безопасности.

Примечания:
— При выборе между linux-image-generic и linux-image-hardened, важно учитывать конкретные потребности и цели вашей системы. Если безопасность является вашим первоочередным интересом, то linux-image-hardened может быть предпочтительнее. Если вам важна общая совместимость и функциональность, linux-image-generic может быть более подходящим вариантом.
— Некоторые дистрибутивы Linux могут предлагать только один из вариантов ядра, поэтому проверьте доступные вам опции в вашей системе.
— В случае использования ядра Linux усиленной безопасности, возможно потребуется дополнительная настройка или обучение, чтобы использовать и обеспечить его соответствующую безопасность.

В целом, выбор между linux-image-generic и linux-image-hardened зависит от ваших конкретных требований по функциональности и безопасности. Обратитесь к руководству вашей операционной системы или консультанту по безопасности, чтобы принять информированное решение.

linux и linux с приставкой generic: в чём разница?

Подскажите, пожалуйста: в чём разница между ядром и его компонентами в репозитории Ubuntu и такими же точно, но с приставкой generic?

То есть: image, headers и так далее — всё тоже, версия таже, только прибавлено generic.

Jeffrey
05.01.13 19:40:58 MSK

generic это ядро без наложения убунтовских patch'(ев).

hope13 ★★★
( 05.01.13 19:46:52 MSK )
Ответ на: комментарий от hope13 05.01.13 19:46:52 MSK

linux-image — еще один метапакет, который в свою очередь зависит от linux-image-generic (так же и с headers). Разницы практически нет.

Скорее всего пакеты без приставки *generic оставили для выбора дефолтного ядра убунты (для неких будущих целей). Сейчас ядро по-умолчанию — это linux-image-generic (и там дальше по зависимостям).

KennyMinigun ★★★★★
( 05.01.13 19:51:15 MSK )
Последнее исправление: KennyMinigun 05.01.13 19:53:17 MSK (всего исправлений: 2)

Ответ на: комментарий от hope13 05.01.13 19:46:52 MSK

Простите, не могли бы вы помочь разобраться?

Я установил систему Ubuntu 12.10, ничего не ставил и не обновлял. И что я вижу?

uname -r 3.5.0-17-generic

Почему грузится ядро без патчей? И как грузить с патчами?

Jeffrey
( 05.01.13 19:56:20 MSK ) автор топика
Ответ на: комментарий от KennyMinigun 05.01.13 19:51:15 MSK

Скорее всего пакеты без приставки *generic оставили для выбора дефолтного ядра убунты (для неких будущих целей)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *