СофтХабрахабр

Как создается ОС, сертифицированная по I классу защиты

Рассказ из первых рук о том, как создается, а потом готовится к сертификации для работы с данными под грифом «особой важности» защищенная ОС Astra Linux.

Что представляет собой Astra Linux?

Пользовательский функционал закрыт по большей части компонентами из состава открытого программного обеспечения — стандартные механизмы Linux используются для выполнения основных задач, например, запуска приложений, виртуализации, поддержки аппаратного обеспечения или того же Steam. Astra — отечественный дистрибутив Linux, сочетающий в себе компоненты от сообщества, распространяющиеся по открытым лицензиями типа GPL, MPL, Xiph License и др., и программное обеспечение собственной разработки одноименной группы компаний. Компоненты собственной разработки в основном решают две ключевые задачи: обеспечения безопасности, а также взаимодействие графического интерфейса операционной системы и человека.

4 ГК РФ), т.е. С точки зрения лицензирования дистрибутив является сложным объектом (понятие из ч. Хотя все компоненты открытого программного обеспечения, входящие в продукт, сохраняют свой свободный статус. составным произведением, поэтому распространение его в целом имеет некоторые ограничения.

При этом наименование платформы «спрятано» в первую цифру номера версии: Версии Astra Linux существуют под самые разнообразные платформы.

  • 1 и 2 — Intel (версии Смоленск и Орел);
  • 3 — IBM System Z (Мурманск);
  • 4 — ARM (Новороссийск)
  • 6 — процессоры MIPS (Севастополь);
  • 8 — Эльбрус (Ленинград).

Казалось бы, непривычное решение — вынести на первую позицию тип платформы, получив странную последовательность версий — 1.6, 2.12.13, 8.1 и т.п. Но это сделано осознанно, чтобы упростить жизнь технической поддержке, поскольку визуально графический интерфейс операционной системы выглядит одинаково на любой аппаратной платформе вне зависимости от целевой области применения компьютера: от сервера до смартфона. Так в разговоре с пользователем можно быстрее понять, о какой именно платформе идет речь.

Здесь гайдлайнов нет, опираемся на чувство прекрасного. Кстати, версия под каждую платформу имеет свое кодовое имя в честь одного из городов-героев России.

С точки зрения пользовательского набора функций версии почти не различаются. Среди разрабатываемых версий Astra есть как обычные дистрибутивы, так и защищенные (Special Edition), ориентированные на работу с конфиденциальными данными, сертифицированные по требованиям безопасности информации всех систем сертификации России. Некоторые компоненты специальной версии, требующиеся для работы с конфиденциальными данными, хотя они и не обязательно избыточны для обычных пользователей и бизнеса, в обычную версию не включены,, т.к. Однако система защиты в них выстроена по-разному. нормативная и правовая база Российской Федерации требует их обязательной сертификации.

Базовая версия — что и для кого

Обычная версия Astra Linux ориентирована на корпоративных заказчиков. Для домашних пользователей при использовании в некоммерческих целях лицензия бесплатна — но в развитии мы стремимся удовлетворить потребности именно корпоративного сегмента. В конце концов, мы тоже коммерческая компания, а сегмент домашних пользователей — очень непростой. Для них есть различные дистрибутивы Linux, в том числе бесплатные.

Сторонние программы (браузеры, офисные пакеты и т.п.) запускаются точно так же, как и в других дистрибутивах Linux. В обычной версии Astra Linux используется дискреционная модель управления доступом — пользователи сами определяют, кому они могут предоставить права доступа к своим файлам.

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

Следуя общемировым тенденциям, версия активно развивается в направлении поддержки нового оборудования и технологий.

Специальная версия

Помимо обычных версий, у Astra Linux есть так называемые специальные версии — Special Edition, которые разрабатываются с расчетом на сертификацию ФСТЭК России и других систем сертификации. С точки зрения пользовательского функционала специальная версия практически ничем не отличается от обычной. Однако в ней реализованы дополнительные компоненты для повышения безопасности (как раз самописные), в частности:

  • мандатная модель управления доступом (MAC) и контроля целостности (MIC), когда все компоненты системы иерархически разделяются по степени важности для ее безопасности от самых недоверенных, пользовательских (уровень целостности 0), до системных, административных (уровень целостности по умолчанию 63);
  • автоматическая проверка электронной цифровой подписи любого файла в системе для защиты от несанкционированного изменения. Фактически механизм ЭЦП может блокировать не только отдельные файлы, но даже скрипты, написанные в любом текстовом редакторе на языках вроде Python или Perl. При попытке запуска или открытия файла модуль, висящий в памяти, на лету проверяет корректность ЭЦП и принимает решение о возможности запуска. В случае со скриптами ЭЦП помещается не в сам скрипт, а в расширенные атрибуты файловой системы. Отдельно хотелось бы отметить использование термина «электронно-цифровая подпись» в отношении реализованной функции безопасности. Такое наименование намеренно взято из национального стандарта ГОСТ Р 34.10 и используется в нашей документации и справочных материалах в целях четкого отделения реализованной в Astra Linux функции безопасности от задачи обеспечения юридической значимости электронного документа, решаемой соответствующими средствами создания и проверки электронной подписи;

  • режим киоска, на уровне ядра разрешающий запуск строго определенного набора приложений;
  • ограничение работы с интерпретируемыми языками программирования;
  • ограничение доступа пользователей к консоли;
  • возможность затирания файлов на диске последовательностями нулей и единиц в несколько проходов;
  • блокировка подключения «незнакомых» внешних устройств, препятствующая занесению в систему вредоносного ПО через различные хитрости с флешками. Не секрет, что системы предприятия можно скомпрометировать, просто разбросав симпатичные флешки с вредоносным ПО вокруг здания в расчете на то, что кто-нибудь из сотрудников да поднимет. В нашем случае такой трюк не пройдет.

Разумеется, это не полный список. Есть масса других модулей и компонентов. Все эти инструменты работают независимо друг от друга, обеспечивая эдакое эшелонирование системы безопасности. Все перечисленные функции безопасности реализованы на основе оригинальных отечественных разработок в области компьютерной безопасности без использования разработанного АНБ США SELinux.

Для некоторых компонент существуют разные режимы работы. При этом они включаются и отключаются независимо друг от друга (администратором системы). Все эти механизмы настраиваются администратором под политику безопасности, определенную руководством. Например, для средства проверки ЭЦП можно включить режим обучения, когда файлы с неверной ЭЦП (или у которых она отсутствует) все-таки запускаются, но на уровне системы выдается предупреждение. Безусловно, администраторам доступен весь набор инструментов консольном исполнении для автоматизации задач по настройке и конфигурированию подсистем безопасности. При этом почти вся настройка уже осуществляется как в графическом режиме.

6.
Текущая версия Astra Linux Special Edition — Смоленск 1.

Специальная версия развивается, как и обычная, однако нововведения в нее попадают только после тестирования и обкатки в обычном релизе.

Как мы готовили специальную версию к сертификации

Каждый безопасник и системный администратор по-своему расставляют приоритеты в вопросах информационной безопасности. Попроси их создать проект защиты некой IT-инфраструктуры, и каждый предложит свое решение, поскольку будет видеть какие-то свои угрозы и акценты. Если речь идет о коммерческих компаниях, решение о том, к чьему мнению прислушиваться, принимает бизнес — на свой страх и риск.

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

К примеру, сертификацией средств защиты информации занимается ФСТЭК России. В зависимости от функционала информационных систем вопросами их сертификации на возможность использования в работе с важными данными занимаются различные ведомства. К слову, Astra Linux Special Edition — единственная ОС, обладающая всеми сертификатами в нашей стране. Однако свои системы сертификации средств защиты также имеют ФСБ и Минобороны.

Степени секретности

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

На российском рынке продукты, соответствующие этим классам, уже не редкость. Низшие классы — с шестого по четвертый — это требования для защиты персональных данных, а также коммерческой и служебной тайны. И здесь самое сложное — даже не функциональные требования (в конце концов, разработать что-то — не проблема), а подтверждения доверия к ОС. Мы же поговорим о сертификации по высшим классам — с третьего по первый — с грифами «секретно», «совершенно секретно» и «особой важности» (живые примеры — чертежи нового истребителя Сухого или общие данные о состоянии критической инфраструктуры в стране, не так давно приравненные к государственной тайне). Т.е. Для этого необходима корректная математическая модель управления доступом к данным и обоснование соответствия реального программного продукта этой математической модели. процедура разработки системы, ориентированной на работу с секретными данными, многократно усложняется.

Вот пример реакции системы на включение политики MLS (multi level security) в SELinux в дистрибутиве Fedora:

Соответственно, всё это необходимо или перерабатывать или делать своё, что и сделано в Astra Linux. Как мы видим, ни графическая оболочка, ни консольные приложения не умеют по умолчанию корректно обрабатывать ситуацию, когда в системе включена политика работы с несколькими уровнями секретности.

Прохождение сертификации отражает удовлетворение минимальных требований, однако каждая компания, государственный орган и даже каждый отдельный безопасник могут усовершенствовать систему так, как считают нужным. К слову, сертификация не ограничивает свободу системных администраторов по части усиления защиты. Сертификация лишь подтверждает  «необходимый минимум» наличия функционала по защите информации и корректность его работы, а также обязательство вендора по сопровождению этого функционала в течение всего жизненного цикла, например:

  • идентификация и аутентификация;
  • управление доступом;
  • регистрация событий безопасности;
  • ограничение программной среды;
  • изоляция процессов;
  • защита памяти;
  • контроль целостности;
  • обеспечение надежного функционирования;
  • фильтрация сетевого потока

Подготовка к сертификации

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

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

При этом разные части продукта проверялись по-разному. Самое главное, что произошло за эти полгода — Astra Linux Special Edition прошла многоуровневую процедуру проверки и анализа программного кода.

В ней, кроме стандартной дискреционной используется мандатно-ролевая модель управления доступом и контроля целостности, поддерживающая существующие в России степени секретности информации — «секретно», «совершенно секретно» и т.п. Наиболее серьезной проверке подвергалась система безопасности. Например, файлы, созданные отделом производства танков уровня «совершенно секретно», недоступны другим отделам с уровнем доступа «секретно» или ниже. Согласно этой модели, каждой учетной записи пользователя, процессу, файлу или каталогу присваивается метка конфиденциальности, по которой и определяются права доступа. Даже если в результате эксплуатации уязвимости пользовательский процесс получит системные привилегии, он не сможет повлиять на работоспособность системы. Кроме того, всем учетным записям пользователей, процессам, файлам или каталогам присваивается метка целостности, в результате, например, пользовательские низкоцелостные процессы не смогут модифицировать системные высокоцелостные файлы.

На скриншоте пример того, как низкоцелостный пользователь получил права суперпользователя, но при этом не может скопировать данные.

Для обоснования безопасности такого предоставления доступа строилась математическая модель, которая проверялась на логическую целостность, замкнутость и корректность.

И это довольно сложная и трудоемкая процедура, которая выполнялась совместно с сотрудниками Института системного программирования РАН. Далее исходные коды системы безопасности проверялись на соответствие заявленной математической модели.

строк. Стоит отметить, что сейчас в России мы можем решать подобные задачи о проверке кода на соответствие математической модели для компонент объемом общей сложностью до 10 тыс. Но ядро Linux — это десятки миллионов строк кода, и инструментов по строгой математической верификации проекта такого объема на данный момент нет не только в компании, но и в стране в целом. И в эти лимиты система безопасности Astra Linux вполне укладывается. Задача данного этапа — проверить код на ошибки, закладки или бекдоры. Так что для них используются иные механизмы контроля — с помощью инструментов статического и динамического анализа кода от того же Института системного программирования РАН или собственной разработки. Прохождение этой проверки обеспечивает высокий уровень доверия к коду и, соответственно, возможность его сертификации на первый класс защиты информации.

Это связано как с ограничениями нормативных документов: чтобы подтвердить, что программный код не был изменен, так и реальными задачами по долговременному хранению оригинального носителя. Сертификация определяет не только, как выглядит код Astra Linux, но и каким образом продукт (точнее его специальная версия) поставляется пользователю — она распространяется только на дисках. Технически это может быть и флешка, но они имеют свойство ломаться, тогда как хранение на оптическом диске более предсказуемо (да и есть гарантия от перезаписи).

Что с конкурентами?

На данный момент сертификацией на такой высокий класс защиты не может похвастаться больше никто.

Барьером выступит та самая процедура сертификации, а точнее ее часть, касающаяся верификации программного кода. Но даже если предположить, что завтра появится конкурент с версией ОС, которая гипотетически могла бы соответствовать условиям сертификации, в ближайшее время он не сможет потеснить Astra Linux. Ресурсы и научные знания для этой процедуры, по нашим оценкам, в России есть только у Института системного программирования РАН и Astra Linux.

Компания обладает нужными ресурсами и компетенциями, они даже рассказывают о важности задачи верификации кода на YouTube. Если оценивать научно-технический потенциал компаний, то теоретически сертификацию в России могли бы пройти продукты Microsoft. И тем более не будут дорабатывать свою модель безопасности под российские требования (напомню, в США иной список требований к государственной сертификации). Однако открыть исходники они вряд решаться.

Выйти на сертификацию по второму классу пыталась компания «Базальт». Возможно, тем же путем мог бы пойти Google и Лаборатория Касперского с их проектом защищенной Kaspersky OS.Однако у нас информации на их счет нет. Но нам пока не ясно, есть ли у них технический и научный потенциал.

Кто использует Astra?

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

Иначе будет сложно настраивать систему безопасности, которой нет аналогов в ПО для широкого круга пользователей. Серийный продукт — в данном случае Astra Linux Special Edition — дешевле, логичнее, современнее, хоть и требует от администраторов прохождения этапа обучения.

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

Теги
Показать больше

Похожие статьи

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

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

Кнопка «Наверх»
Закрыть