- Ядерная защита в Astra Linux SE 1.6 и как ее включить. Ядро Hardened
- Ядро hardened в Astra Linux SE 1.6
- Включаем использование ядра hardened в Astra Linux SE 1.6
- Операционные системы Astra Linux
- Ядерная защита в Astra Linux SE 1.6 и как ее включить. Ядро Hardened
- Ядро hardened в Astra Linux SE 1.6
- Включаем использование ядра hardened в Astra Linux SE 1.6
- Ядерная защита в Astra Linux SE 1.6 и как ее включить. Ядро Hardened
- Ядро hardened в Astra Linux SE 1.6
- Включаем использование ядра hardened в Astra Linux SE 1.6
- Hardening — путь самурая
- Введение
- Моя платформа — моя крепость
- Linux Hardening
- Аккаунты
- Файловая система
- SeLinux/AppArmor
- Итд Итп
Ядерная защита в 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:
- запрет записи в область памяти, помеченную как исполняемая;
- запрет создания исполняемых областей памяти;
- запрет перемещения сегмента кода;
- запрет создания исполняемого стека;
- случайное распределение адресного пространства процесса;
- очистка остаточной информации из стека ядра после системных вызовов.
Многие компоненты КСЗ Astra Linux SE 1.6 работают именно на уровне ядра, именно поэтому становится необходимым включение и использование защищенного ядра 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 будет отсутствовать.
Источник
Операционные системы Astra Linux
Оперативные обновления и методические указания
Операционные системы Astra Linux предназначены для применения в составе информационных (автоматизированных) систем в целях обработки и защиты 1) информации любой категории доступа 2) : общедоступной информации, а также информации, доступ к которой ограничен федеральными законами (информации ограниченного доступа).
1) от несанкционированного доступа;
2) в соответствии с Федеральным законом от 27.07.2006 № 149-ФЗ «Об информации, информационных технологиях и о защите информации» (статья 5, пункт 2).
Операционные системы Astra Linux Common Edition и Astra Linux Special Edition разработаны коллективом открытого акционерного общества «Научно-производственное объединение Русские базовые информационные технологии» и основаны на свободном программном обеспечении. С 17 декабря 2019 года правообладателем, разработчиком и производителем операционной системы специального назначения «Astra Linux Special Edition» является ООО «РусБИТех-Астра».
На web-сайтах https://astralinux.ru/ и https://wiki.astralinux.ru представлена подробная информация о разработанных операционных системах семейства Astra Linux, а также техническая документация для пользователей операционных систем и разработчиков программного обеспечения.
Мы будем признательны Вам за вопросы и предложения, которые позволят совершенствовать наши изделия в Ваших интересах и адаптировать их под решаемые Вами задачи!
Репозитория открытого доступа в сети Интернет для операционной системы Astra Linux Special Edition нет. Операционная система распространяется посредством DVD-дисков.
Информацию о сетевых репозиториях операционной системы Astra Linux Common Edition Вы можете получить в статье Подключение репозиториев с пакетами в ОС Astra Linux и установка пакетов.
В целях обеспечения соответствия сертифицированных операционных систем Astra Linux Special Edition требованиям, предъявляемым к безопасности информации, ООО «РусБИтех-Астра» осуществляет выпуск очередных и оперативных обновлений.
Очередные обновления (версии) предназначены для:
- реализации и совершенствования функциональных возможностей;
- поддержки современного оборудования;
- обеспечения соответствия актуальным требованиям безопасности информации;
- повышения удобства использования, управления компонентами и другие.
Оперативные обновления предназначены для оперативного устранения уязвимостей в экземплярах, находящихся в эксплуатации, и представляют собой бюллетень безопасности, который доступен в виде:
- инструкций и методических указаний по настройке и особенностям эксплуатации ОС, содержащих сведения о компенсирующих мерах или ограничениях по примене- нию ОС при эксплуатации;
- отдельных программных компонентов из состава ОС, в которые внесены изменения с целью устранения уязвимостей, инструкций по их установке и настройке, а также информации, содержащей сведения о контрольных суммах всех файлов оперативного обновления;
- обновлений безопасности, представляющих собой файл с совокупностью программных компонентов из состава ОС, в которые внесены изменения с целью устранения уязвимостей, а также информации, содержащей сведения о контрольных суммах всех файлов обновлений безопасности, указания по установке, настройке и особенностям эксплуатации ОС с установленными обновлениями безопасности.
Ввиду совершенствования нормативно-правовых документов в области защиты информации и в целях обеспечения соответствия информационных актуальным требованиям безопасности информации, а также обеспечения их долговременной эксплуатации, в том числе работоспособности на современных средствах вычислительной техники, рекомендуется на регулярной основе планировать проведение мероприятий по применению очередных и оперативных обновлений операционной системы.
Источник
Ядерная защита в 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:
- запрет записи в область памяти, помеченную как исполняемая;
- запрет создания исполняемых областей памяти;
- запрет перемещения сегмента кода;
- запрет создания исполняемого стека;
- случайное распределение адресного пространства процесса;
- очистка остаточной информации из стека ядра после системных вызовов.
Многие компоненты КСЗ Astra Linux SE 1.6 работают именно на уровне ядра, именно поэтому становится необходимым включение и использование защищенного ядра 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 будет отсутствовать.
Источник
Ядерная защита в 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:
- запрет записи в область памяти, помеченную как исполняемая;
- запрет создания исполняемых областей памяти;
- запрет перемещения сегмента кода;
- запрет создания исполняемого стека;
- случайное распределение адресного пространства процесса;
- очистка остаточной информации из стека ядра после системных вызовов.
Многие компоненты КСЗ Astra Linux SE 1.6 работают именно на уровне ядра, именно поэтому становится необходимым включение и использование защищенного ядра 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 будет отсутствовать.
Записки IT специалиста
Хорошо говорить об отечественном ПО у нас почему-то не принято. Да, многие образцы ведомственных программ представляют шедевры криворукости, но это не повод мазать всю отрасль одной краской. Сегодня существует определенный ажиотаж вокруг отечественной ОС и темы импортозамещения. Если отбросить отсюда всю информационную мишуру, то мы не видим в данной затее ничего плохого, особенно если речь идет об информационных структурах государственных и силовых ведомств. Сегодня мы решили рассмотреть отечественную ОС Astra Linux, недавно получившую допуск для работы с данными высшей степени секретности.
В отличие от недавно рассмотренного нами Эльбруса, который был выложен в виде мало к чему пригодного полуфабриката, Astra Linux является завершенным коммерческим продуктом. Существуют две основных редакции ОС: общего назначения (Common Edition) — релиз «Орел» и специального назначения (Special Edition) — релиз «Смоленск». Понятно, что все доступы и сертификаты имеет ОС специального назначения и просто так получить ее не представляется возможным, в то же время «Орел» доступен всем желающим и бесплатен для некоммерческого применения.
Чтобы сразу пресечь спекуляции по поводу платного Linux, скажем, что свободное ПО не ставит знак равенства с бесплатным. Хотя мы и считаем, что финансирование отечественной ОС должно производиться государством, коммерческая модель здесь тоже имеет место и если деньги за систему пойдут отечественным разработчикам — ничего плохого в этом не будет. Тем более основные заказчики Astra Linux — это силовые ведомства, а там свои методы финансирования и взаимоотношений с подрядчиками.
С учетом того, что Astra Linux в полной мере поддерживает отечественную криптографию, цена лицензии на ОС общего назначения не так уж велика.
Но не будем долго растекаться мыслью по дереву, а собственными глазами посмотрим на продукт отечественных разработчиков. Astra Linux основан на базе Debian, поэтому уже становится понятно, что нам следует ожидать и как должна работать данная ОС. Debian — хорошая система, стабильная, с большим набором ПО и документации, а также наиболее свободная из основных дистрибутивов (никакая зарубежная корпорация за ней не стоит), поэтому ее выбор за основу вполне обоснован.
Инсталлятор представляет собой стандартный инсталлятор Debian, поэтому мы не будем подробно на нем останавливаться, все привычно и понятно. Сразу обратим внимание на предлагаемый выбор ПО, а именно на графическую оболочку Fly, которая является собственной разработкой. Это сразу ставит Astra Linux несколько особняком от других дистрибутивов на базе Debain, собственными графическими оболочками могут похвастаться немногие из них.
Что касается набора ПО, то для рабочей станции он достаточно сбалансирован, а что-то специализированное всегда можно поставить отдельно, специалисты обычно знают, что им нужно, а простому пользователю обилие «непонятных» пакетов ни к чему.
Отдельно предлагается ряд специфичных настроек, скажем, возможность использовать ядро Hardened, включающее в себя дополнительные настройки безопасности или возможность использовать службу ALD (Astra Linux Directory). Про нее следует сказать отдельно, это не очередная свободная реализация Active Directory, а полностью самостоятельная разработка с прицелом на создание собственной доменной системы. Процитируем разработчиков:
При разработке ALD задача имитации контроллера домена Microsft Windows не решалась. Таким образом, включение машины ОС Microsft Windows в домен ALD штатными средствами ОС Microsft Windows невозможно. Установив в ОС Microsft Windows клиента MIT Kerberos вы сможете получить билеты Kerberos на сервере ALD. Далее вы получите доступ к серверам печати, СУБД, WEB и электронной почты в сеансе с нулевыми мандатными атрибутами. Если вам необходимо получать доступ к ресурсам серверов, работающих под управлением Astra Linux, в ненулевом мандатном контексте, то вам необходимо самостоятельно разработать клиента ALD под Microsft Windows.
Может показаться, что разработчики изобретают очередной велосипед, но это не так, обычные, «гражданские» системы, в том числе и Active Directory, применяют дискреционное (избирательное) управление доступом. Это предполагает, что у каждого объекта системы есть свой владелец, который и устанавливает права доступа к нему, также может быть суперпользователь (Администратор, root и т.д.) который может изменить владельца и права доступа к любому объекту.
В структурах с конфиденциальной и секретной информацией применяется иной подход — мандатное (принудительное) управление доступом, основанное на имеющихся у субъекта уровнях доступа.
Простой пример: допустим Василий на некоторое время был переведен в отдел A, получил на файловом сервере свою папку и работал в ней с документами, потом вернулся в отдел B. При избирательном доступе Василий потеряет доступ к папкам отдела А, но сохранит доступ к собственной папке и файлам, так как является их владельцем. При мандатном доступе, покинув отдел А от потеряет право доступа к документам с отметкой «для служебного использования», в том числе и к тем, что он создал.
Astra Linux Directory как раз представляет реализацию домена с мандатной системой и никоим образом не заменяет и не подменяет Active Directory, представляя систему с принципиально иным подходом к разграничению прав доступа.
В остальном процесс установки ничем не отличается от Debian и каких-либо затруднений не вызывает. Окно входа в систему выполнено достаточно аккуратно, преимущественно в плоском стиле, в строгой цветовой гамме.
После входа в систему нас встречает рабочий стол. От былой аляповатости не осталось и следа, все строго и выверено. И если встречать по одежке, то здесь у Astra Linux все хорошо, а сам рабочий стол чем-то напоминает KDE и Windows одновременно, представляя собой классическое рабочее пространство, что не должно вызвать сложностей с его освоением.
Меню Пуск также выполнено в классическом стиле и ему не хватает интерактивного поиска, но в остальном впечатления только приятные. Набор прикладного софта преимущественно стандартный, входящий в актуальный Debain, подобран хорошо и закрывает большинство потребностей пользователя из коробки.
Терминал также собственный, с поддержкой вкладок, вкладки можно называть по собственному усмотрению, что весьма удобно. Также система имеет собственные репозитории, выше на скриншоте мы как раз запустили процесс обновления.
Файловый менеджер довольно прост, на уровне простых оболочек вроде XFCE или LXDE, но понятен и удобен в работе.
Но есть и интересные «фишки» вроде двухпанельного режима:
Также обращает внимание довольно скромное потребление системных ресурсов, на виртуальной машине с 2 ГБ памяти Astra Linux чувствует себя достаточно комфортно.
В качестве офисного пакета используется LibreOffice с плоской темой, отлично вписываясь в общий вид системы, некоторое недоумение вызвал только калькулятор. Нет, он очень крутой, но большинству этого не надо.
Даже если говорить за себя, то такой калькулятор нам нужен, но не на каждый день. Тем более что в репозиториях мы нашли более привычный вариант:
Игры и Linux до сих пор остаются в напряженных отношениях, так и здесь, в комплекте идет пару простейших игр типа сапера, древняя стратегия и неожиданно для себя мы обнаружили достаточно неплохой платформер, на обеде в офисе будет чем заняться.
Панель управления также несет в себе сильное влияние Windows и в данном случае это хорошо, пользователь получает более-менее привычные инструменты, что позволяет решать многие задачи просто по аналогии.
Скажем настройка автозагрузки:
Или переменных окружения:
Понятные русские описания опций заслуживают отдельного внимания. Вроде бы мелочь, но из таких мелочей и складывается впечатление о продукте.
Одним из недостатков системы некоторые обозреватели ставят отсутствие магазина приложений. Да это так, и это можно было бы записать в недостаток, если бы не четкое позиционирование данной системы для государственных и силовых учреждений. Спросите любого системного администратора что он думает о магазине в Windows 10, узнаете много интересного, скорее всего в непечатной форме. Исходя из этого, отсутствие магазина становится не столь критичным. Нужное ПО установит администратор, а у пользователей будет меньше соблазнов.
Из графических инструментов доступен привычный Synaptic и простая утилита для обновления:
Второй из озвучиваемых недостатков — слабая поддержка Samba из коробки. Действительно, ее нужно настраивать руками. Хотя, учитывая стремление разработчиков к собственной экосистеме со своим доменом, это выглядит вполне обоснованным. Там, где будет применяться Astra Linux, особенно специальный выпуск, взаимодействие с Windows машинами будет далеко не самой главной задачей, а скорее наоборот.
Ну а при необходимости нормальный администратор все быстро настроит, Samba она везде одинаковая. Также можно скачать из репозитория графический инструмент управления, который поможет быстро расшарить папку.
В целом же система очень приятна, как по внешнему виду, так по комфорту работы. Существенных недостатков мы не обнаружили, а описанные выше явно притянуты за уши, особенно если учитывать назначение системы.
Так как у нас система общего назначения, то попробуем установить что-нибудь со стороны, для этого выпуска это вполне допустимо, в отличии от систем специального назначения. Попробуем скачать и установить Google Chrome. Никаких проблем у нас при этом не возникло, а все зависимости подтянулись из собственных репозиториев дистрибутива.
Как видим, система не ставит никаких палок в колеса и позволяет без проблем ставить сторонние пакеты, подключать сторонние репозитории и вам доступны все возможности экосистемы Debian.
Но мы пошли дальше, попробовав установить клиентскую часть 1С:Предприятие, что не вызвало у нас ни малейших затруднений.
За все время работы в Astra Linux у нас не возникло каких-либо серьезных проблем. По большинству ощущений это все тот же Debain, если вы умеете работать с ним или его производными, то и с Astra проблем не возникнет. Но в тоже время Astra Linux не просто еще один Debian, многие пакеты, такие как SSH, OpenVPN, веб-сервера скомпилированы с поддержкой отечественной криптографии, что важно для определенных сфер применения.
В заключение хочется сказать, что Astra Linux нам понравился. Это хорошая отечественная система с довольно специфичными областями применения, но в тоже время она выглядит очень достойно и в качестве дистрибутива общего назначения. И особенно приятно, что она идет против всех сложившихся стереотипов о российском ПО, представляя пример отличного современного дистрибутива с собственной графической оболочкой и внимательным подходом к мелочам.
Hardening — путь самурая
Сегодня мы поговорим о такой важной составляющей ИБ, как укрепление сервера (hardening). Мы рассмотрим базовый подход к укреплению классического Linux сервера и разберем, насколько данный процесс важен и полезен.
Введение
Hardening — процесс усиления защищенности системы с целью снижения рисков от возможных угроз. Данный процесс применяется ко всем компонентам системы, тем самым, в идеальном случае, делая сервер неприступной крепостью. Судя по описанию, штука скучная и нехакерская, но с другой стороны, именно это и есть то, что мы называем процессами ИБ.
Более того, часто можно слышать о том, как безопасно писать код, какие страшные есть на свете уязвимости и т.д., но харденинг — это базис всего подхода к защите, поэтому не мудрено, что фактически именно этот процесс лежит в основе требований такого стандарта, как PCI DSS. Во всех организациях, где ИБ — это не мерзкая обязанность из-за того, что какие-то «бумажные специалисты» этого требуют, а реальная необходимость, именно харденинг является одним из главных атрибутов любой выкатываемой в продакшн системы.
Результат работы утилиты PHP Auditor
Моя платформа — моя крепость
Допустим у нас есть система, построенная на Linux/Apache/MySQL/PHP. Мейнстрим, но мы потерпим. Давай предположим, что у нас есть фронт-енд, торчащий в интернет (Linux/Apache/PHP) и бэк-енд (Linux/MySQL). Мы опустим бэкапы, балансировку и защиту от DDoS на уровне архитектурных решений, ну и о MySQL, PHP и Apache мы поговорим, может быть, потом. Сегодня только ОС.
Здесь и далее: все советы нужно применять с умом, то есть надо понимать, на что влияет та или иная настройка, чтобы финальная конфигурация не убила функционал системы. В любом случае, принцип подхода — отключи то, что не нужно, остальное настрой так, чтобы работало согласно требованиям, а не по умолчанию. Это относится и к ядру. Все ненужные модули можно смело отключить. Тот же принцип и для пакетов — все ненужные сервисы и пакеты можно смело отрубить/отключить.
Linux Hardening
«Сеть — это Компьютер» (с), так что начнем наш процесс с настроек TCP/IP. В целом, еще нет глобальной поддержки ipv6, поэтому можно смело отключать поддержку этого протокола на сетевых интерфейсах. IPv6 довольно молодой и дырявый протокол, лишних проблем с его настройками нам не надо, как и лишних угроз.
# Проверка ядра [ -f /proc/net/if_inet6 ] && echo ‘IPv6 ready system!’ # Вывод интерфейсов с включенной поддержкой IPv6 ip -o -6 addr
Остальные сетевые настройки: отключим поддержку ICMP редиректов, форвардинг пакетов, ответы на широковещательный пинг — все эти чеки можно легко автоматизировать на bash:
# Проверяем IP Forwarding (не роутер же у нас, а просто сервер…) if grep -q -P «^s*net.ipv4.ip_forwards*=s*1s*$» /etc/sysctl.conf; then echo «IP Forwarding enabled»; fi # Но одно дело в конфиге, другое дело в памяти. Так даже будет надежнее. В конфиге может быть ничего не указано, а в памяти есть все текущие настройки: if ! grep -q -P «^s*0s*$» /proc/sys/net/ipv4/ip_forward; then echo «IP Forwarding enabled»; fi # Проверяем поддержку маршрутизации от источника (проверяем сразу для all и default и сразу в памяти) if (! (grep -q -P «^s*0s*$» /proc/sys/net/ipv4/conf/all/accept_source_route && grep -q -P «^s*0s*$» /proc/sys/net/ipv4/conf/default/accept_source_route)); then echo «Source routing enabled»; fi
Таким же образом проверяем остальные сетевые настройки:
- net.ipv4.conf.(all|default).accept_redirects — ставим 0, игнорируем ICMP редиректы, так как не хотим, чтобы маршрут мог быть изменен.
- net.ipv4.icmp_echo__broadcasts — ставим 1, кому нужны широковещательные пинги в 21 веке?
- net.ipv4.icmp__bogus_error_messages — зачем нам разбирать кривые ICMP пакеты? Что там может быть хорошего, только логи засорять. В топку!
- net.ipv4.tcp_syncookies — тут надо ставить 1. Классическая защита от SynFlood атак, лишней не будет 8).
- net.ipv4.conf.(all|default).rp_filter — тут конечно 1. Верификация IP источника, полезная фича для защиты IP Spoofing атак.
Есть и другие фичи для параноиков, но это базовые. Кто-то не любит пинги вообще, а у некоторых так health_check делается, поэтому здесь советовать сложно. Все проверки легко автоматизируются, что полезно, если ты производишь авто-деплоймент.
Кое-что про фаервол. Это вопрос архитектуры системы, то есть, например, если наша машинка работает в Амазоне или же вся сетка режется каким-то красивым роутером/межсетевым экраном или хитрыми VLAN’ами, то ясно, что вся фильтрация и логика доступа будет там, но если мы закидываем сервак в непонятный дата-центр, где у нас куча других проектов, то возникает угроза горизонтальных атак в пределах дата-центра. То есть наш MySQL сервер не видит инета, и его не видно из инета, но другие хосты дата-центра его видят. В таком варианте локальные правила фильтрации будут нелишними. Проверить это автоматом сложно, так как по умолчанию, особенно если проектов много, ты не знаешь, кому какие правила доступа требуются, и нужно все внимательно изучать и допиливать. Но вот быстрый чек замутить можно:
if (iptables -S|grep -P «^-Ps+((INPUT)|(FORWARD)|(OUTPUT))s+ACCEPT$»); then echo «Your firewall suck»; fi
Аккаунты
Кроме сети, у нас еще есть стандартные сервисы, типа SSH. Требования здесь достаточно просты:
- У каждого юзверя свой аккаунт.
- Админы заходят через свой аккаунт. Если нужен root, аккуратно помещаем их учетки в sudoers.
- Никаких паролей — вся аутентификация только по ключам.
- В sudoers никаких палевных записей, типа «tomcat ALL=NOPASSWD: /bin/sh -c cat *».
Большая часть чеков так же легко автоматизируется, не буду тут это расписывать.
Tiger security scripts в действии
Файловая система
Это самая важная часть. Например, классикой жанра является уязвимость LFI, и раньше было модно инъектить в логи апача PHP код для дальнейшего RCE. Это, конечно, старый и унылый пример, но это показывает силу хардининга. Дело в том, что Апач у нас пишет логи от рута, а вот дочерние процессы (форки) запущены с правами непривилегированного пользователя, например apache. Так вот, в идеальном мире этот юзер не должен иметь прав на чтение в директории /var/log/httpd/, что сведет к неудаче попытку чтения через LFI (но мы-то, конечно, знаем про php и upload директорию…) И это минимальный пример. В других примерах есть куча директорий и файлов, которые не желательны для доступа другим юзерам, типа apache. Это различные конфиги, логи и бэкапы, в которых может быть чувствительная информация и, о нет, персональные данные. Для автоматизации этого чека можно запилить скрипт, который проверяет права чтения и записи «для всех». Может оказаться полезным.
Кроме того, имеет смысл сварганить скрипт, который ищет чувствительные данные по ФС. Зачем это нужно? Очень просто, запускаем этот скрипт от юзера апач или даже рута, он мучается несколько минут, а затем должен показать, что он ничего не нашел в открытом и доступном виде. Этот трик применяется всеми вменяемыми PCI DSS аудиторами, которые по регекспам ищут следы номеров кредитных карт, и если такой скрипт находит их, то аудитор справедливо выписывает пачку люлей 8). Соответственно, мы определяем, какие данные для нас важны, и какие данные мы защищаем, затем пишем их фингерпринт и чекаем автоматом, что фактически означает быструю проверку на тему «не может ли хакИр, в случае RCE, LFI или Traversal, найти что-то ценное». Примеры таких данных:
- Маска номеров кредитных карт
- Логины и пароли
- Персональные данные
- Коды активных сессий
Кроме того, несмотря на все вышесказанное, все равно следует проверять /etc/passwd, /etc/shadow, /etc/group — на наличие аккаунтов со слабыми паролями (MD5 хэшами), аккаунтов без паролей, и проверить все акки с логин-шеллом. Это так же легко автоматизируется на баше с грепом.
SeLinux/AppArmor
Отдельно хочется сказать про этот слой защиты. На самом деле, данные системы контроля доступа на уровне ядра являются очень эффективными инструментами. Но вот их настройка дело сложное, и не всегда тривиальное. Крайне рекомендую озаботиться, но стоит помнить, что любые изменения в логике работы системы могут быть заблокированы SeLinux/AppArmor, что приводит к дополнительным проблемам с поддержкой системы.
Итд Итп
Продолжать описывать рекомендации можно долго: и поиск SUID бит исполняемых бинариков, и настройки Апача, MySQL — все эти вещи должны быть выполнены, но поверь — это того стоит, даже если программист совершит ошибку, даже если атакующий проведет атаку, именно hardening будет последней надеждой на то, что урон окажется минимальным. Усиление сервера можно проводить до бесконечности — установить системы контроля целостности, систему мониторинга логов, контроля WAF и т.д.
Источник