Как стать автором
Обновить
64.68

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

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



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




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

С точки зрения лицензирования дистрибутив является сложным объектом (понятие из ч. 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, в том числе бесплатные.

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



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

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

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


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

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



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

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



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




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

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

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


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

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

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







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


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

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

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



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

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

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



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


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

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

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

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



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

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

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

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



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

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


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

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

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

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

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


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

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

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

Публикации

Информация

Сайт
astragroup.ru
Дата регистрации
Дата основания
Численность
1 001–5 000 человек
Местоположение
Россия