Звезда по имени Linux: почему «военные» ОС прочнее

Евгений Лебеденко

10 мая 2011 года

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

Именно поэтому распоряжение Правительства Российской Федерации №2299-р от 17 декабря 2010 года, утверждающее План перехода федеральных органов исполнительной власти и федеральных бюджетных учреждений на использование свободного программного обеспечения, если и было замечено, то весьма узким кругом специалистов. Уж больно широк временной коридор перехода — целая пятилетка. Время есть, если учитывать, что народу не привыкать решать пятилетние планы за пару лет.

http://www.nnre.ru/kompyutery_i_internet/cifrovoi_zhurnal_kompyuterra_68/i609608postanovl-2299-r.jpg

А между тем, если отбросить историческую иронию, это распоряжение отражает важнейшую тенденцию в формировании облика информационных технологий, работающих в системе управления государством. Кратко её суть можно выразить следующим образом: в России, в достаточно короткие сроки, должна быть сформирована программная платформа, с одной стороны, полностью покрывающая потребности информационных систем госсектора, а с другой — снижающая зависимость этих систем от программного обеспечения зарубежных производителей. Зависимость эта особенно сильно начинает ощущаться в связи с интенсивным развитием аренды программного обеспечения на набирающих силу облачных сервисах (модель SaaS — Software as a Service).

Разработчики отечественного софта выразили свою озабоченность такой зависимостью в письме Правительству РФ, где отразили своё видение российской программной платформы (РПП). Её обсуждение привело к формированию и утверждению на правительственном уровне концепции национальной программной платформы (НПП), а также к рассмотрению вопросов, связанных с использованием свободного программного обеспечения в информационных системах госструктур.

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

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

Предвижу возражения: ну что же это за национальная операционная система? Взяли готовое ядро, дополнили готовыми утилитами и соответствующим прикладным софтом, всё это добро русифицировали, прилепили отечественный логотип — и вот она, отечественная ОС! Разве так делается? Наша система должна разрабатываться с нуля и в корне отличаться от имеющихся забугорных решений. Вот тогда она будет воистину нашей.

Здесь можно подискутировать. Во-первых, Linux не «забугорный», а международный проект, и российские программисты приложили к нему руку наравне с их зарубежными коллегами. Во-вторых, сама идеология свободного программного обеспечения, основанная на свободе изучения, распространения и совершенствования исходных кодов программ, даёт уникальную возможность посмотреть, как уже сделано, и сделать если не лучше, то по-своему.

Есть и третье соображение. Использование любого программного продукта в областях, где циркулирует информация различного уровня конфиденциальности (а управление государством — одна из таких областей), требует его обязательной и очень серьёзной сертификации. Которая предполагает наличие в сертифицируемой программе строго определённого набора функций и чёткого обоснования легитимности его применения при работе с конфиденциальными данными. Пройти такую сертификацию «наколенным» дистрибутивам просто невозможно. Чтобы получить свидетельство на применение своего продукта при работе с грифованными документами, его разработчикам придётся очень потрудиться, превратив, например, Linux — операционную систему «для всех» в Linux — систему специального назначения, прошедшую строгую проверку.

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

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

Сертификация. Азы и руководящие документы

Чтобы понять, что по-своему сделано в Astra Linux, нужно знать, что подлежит сертификации.

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

http://www.nnre.ru/kompyutery_i_internet/cifrovoi_zhurnal_kompyuterra_68/i609608systema-razgr-dostupa.jpg

Система разграничения доступа — чётко определённый перечень функций, соответствие которым и формирует защищённый вариант среды обработки информации.

При одном условии. Если в подобной системе не будет внутренних изъянов, позволяющих организовать хищение, невыхода за рамки установленных правил. Если такой изъян — «засланный казачок» есть, то следует говорить о недекларируемых возможностях (НДВ) системы: закладках, логических бомбах и прочих вещах, подрывающих чётко определённый порядок изнутри.

Так вот, сертификация — это, по сути, оценка уровня реализации системы разграничения доступа, обеспечивающей качественное противостояние НСД, и проверка полного или частичного отсутствия в системе НДВ.

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

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

Нормативные документы по НСД выделяют семь классов защищённости, объединённых в четыре группы. Системы, отнесённые к первой группе, в которую входит всего один класс номер 7, обладают самой низкой защищённостью. В противоположность им системы группы 1, отнесённые к классу номер 1, благодаря верифицированной защите имеют наивысший уровень защищённости. Группа 2, в состав которой входят классы номер 5 и 6, определяет системы с дискреционными методами защиты, а в третьей группе объединены классы номер 2, 3 и 4 для систем с мандатными методами защиты. В рамках каждого класса чётко определено, какие функции системы разграничения доступа должна поддерживать сертифицируемая система. Именно их наличие и определяет решение экспертов об отнесении её к тому или иному классу.

http://www.nnre.ru/kompyutery_i_internet/cifrovoi_zhurnal_kompyuterra_68/i609608zaschita-klassy.jpgСемь классов защищённости от НСД собраны в четыре группы, характеризующиеся разными методами защиты.

Аналогичным образом обстоят дела и с определением отсутствия в системе НДВ.

Четыре уровня контроля отсутствия НДВ определяют возможность использования системы для обработки конфиденциальной (уровень 4), секретной (уровень 3), совершенно секретной (уровень 2) информации и информации особой важности (уровень 1).

http://www.nnre.ru/kompyutery_i_internet/cifrovoi_zhurnal_kompyuterra_68/i609608urovni-ndv.jpgЧетыре уровня контроля отсутствия НДВ определяют, какие грифованные документы может обрабатывать информационная система.

Чтобы применяться в информационных системах, обрабатывающих определённый вид конфиденциальной информации, программа должна пройти сертификацию на возможность её обработки.

К примеру, операционная система Astra Linux Special Edition отнесена к третьему классу защищённости от НСД и второму уровню контроля отсутствия НДВ.

А вот операционные системы семейства Microsoft Windows 7 сертифицированы по пятому классу защищённости от НСД.

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

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

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

Astra Linux. Релиз «Смоленск»

Системы семейства Astra Linux выпускаются ОАО «НПО РусБИТех» в двух вариантах. Первые — общего назначения (Common Edition), распространяемые совершенно свободно. Релизы этих систем носят имена городов воинской славы. Так, текущий релиз Astra Linux Common Edition именуется «Орёл», и в оформлении его инсталлятора, а также в хранителе экрана присутствуют виды этого города.

http://www.nnre.ru/kompyutery_i_internet/cifrovoi_zhurnal_kompyuterra_68/i609608astra-linux-orel-install-screen.jpg

Второй — специального назначения (Special Edition). Эти дистрибутивы распространяются на коммерческой основе. Релизы специальной версии Astra Linux носят имена городов-героев России и стран СНГ. Текущий релиз именуется «Смоленск», и в розницу одна лицензия на его использование стоит 18 000 рублей. Приобретение более чем одной лицензии требует дополнительных финансовых вложений. Довольно дорого за свободное ПО, не правда ли? Неправда. Понятие «свободное программное обеспечение» вовсе не синоним бесплатного ПО, если учесть, сколько усилий вложено разработчиками в то, чтобы превратить «Смоленск» в вариант защищённой системы, способной поддерживать обработку совершенно секретных документов. Кстати, в конечную стоимость «Смоленска» стоит включить и немалые затраты на её сертификацию.

В основе проекта Astra Linux лежит отлично зарекомендовавший себя дистрибутив Debian GNU/Linux, на базе которого сделаны такие известные системы, как Ubuntu, Linux Mint и, к примеру, мобильный вариант Maemo. Общим отличием debian-ориентированных систем является использование единой системы распространения пакетов программ APT (advanced packaging tool), работающей как локально, так и с удалёнными хранилищами (репозиториями). Система APT настолько популярна, что применяется за пределами Debian и даже Linux. Например, апологет свободы яблочного мира — репозиторий Cydia базируется на системе APT.

В этом смысле выбор Debian GNU/Linux в качестве донора «Смоленска» действительно оправдан. Внутри организации можно создать локальный apt-репозиторий доверенных программ и эффективно решать задачи администрирования даже большой информационной системы.

Что же делает «Смоленск» настолько особенной ОС? Отнесение его к третьему классу защиты от НСД говорит о наличии в этом релизе Astra Linux мандатного метода разграничения доступа (MAC — Mandatory Access Control). MAC применяется наряду с традиционным для POSIX-систем дискреционным методом разграничения доступа (DAC — Discretionary Access Control), при котором за каждым объектом файловой системы закреплён его владелец, определяющий права доступа (чтение, запись, исполнение) для себя, группы, в которую он входит, и всех остальных пользователей. Мандатная система эффективно дополняет дискреционный метод, слабым местом которого является зависимость прав доступа к объектам от желаний их владельцев. Мандатная система, которую частенько именуют системой принудительного контроля доступа, обеспечивает централизованное определение прав доступа к любым объектам системы (не только к файлам, а, к примеру, процессам) на основе меток их конфиденциальности и ранжирование всех пользователей по возможности доступа к ним.

http://www.nnre.ru/kompyutery_i_internet/cifrovoi_zhurnal_kompyuterra_68/i609608astra-linux-smolensk-urovni-zaschity.jpg

К слову сказать, в базовом релизе Debian GNU/Linux мандатная система представлена модулем SELinux — разработкой Агентства национальной безопасности США. Только вот его использование в сертифицированных у нас системах весьма ограничено. Разработчики Astra Linux реализовали собственный MAC-модуль — компактное и продуманное в администрировании решение, с одной стороны, не уступающее SELinux в функциональности, а с другой — учитывающее особенности эксплуатации системы в реалиях обработки российской конфиденциальной информации. Кроме того, собственная разработка позволяет упростить доказательство отсутствия НДВ, а это весьма важная составляющая процесса сертификации.

http://www.nnre.ru/kompyutery_i_internet/cifrovoi_zhurnal_kompyuterra_68/i609608astra-linux-smolensk-mandatory-settings.jpg

Разработка собственного модуля мандатной системы разграничения доступа позволила эффективно модифицировать и другие компоненты системы. Так, на принципах MAC в Astra Linux созданы собственные реализации механизмов многозадачной работы системы с изоляцией адресных пространств выполняющихся процессов и контролируемого межпроцессного взаимодействия, дополнения стандартной для Linux системы регистрации событий технологиями регистрации событий над объектами доступа (файлами, процессами, записями баз данных), основанными на мандатной системе, и режима «киоск» — собственной технологии предоставления пользователю доступа только к определённым программам и только с жёстко определёнными правами.

На базе мандатной системы функционирует ещё одна собственная разработка Astra Linux — менеджер окон Fly. Этот рабочий стол наряду с простотой использования (термины большинства его объектов полностью соответствуют таковым в графическом интерфейсе знакомой абсолютному большинству пользователей Windows XP) обеспечивает разграничение на основе мандатной системы как программ с графическим интерфейсом к ответственному за графический режим X-серверу, так и самого X-сервера к аппаратным средствам графического режима (видеокартам, например). Согласитесь, возможность задать такие правила разграничения доступа — лишний способ закрыть целый ряд потенциальных лазеек.

http://www.nnre.ru/kompyutery_i_internet/cifrovoi_zhurnal_kompyuterra_68/i609608astra-linux-smolensk-fly.jpgМенеджер окон Fly

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

Ещё одной собственной реализацией требований сертификации в Astra Linux является механизм маркировки печатаемых документов, отражающий уровень их конфиденциальности.

http://www.nnre.ru/kompyutery_i_internet/cifrovoi_zhurnal_kompyuterra_68/i609608astra-linux-smolensk-printer-mac.jpg

Благодаря полученной в наследство от Debian системе управления программными пакетами APT и наличию в «Смоленске» механизма контроля замкнутости программной среды собственной разработки, разработчики программ получают возможность создавать приложения, имеющие цифровую подпись, а администраторы системы — создавать репозитории таких доверенных программ.

Перечисленные выше возможности распространяются не только на саму операционную систему, но и на ряд ключевых программных продуктов. Так, правилам мандатной системы подчиняются: СУБД PostgreSQL, веб-сервер Apache 2, почтовый сервер Exim и менеджер печати CUPS. Все они модифицированы с учётом условий работы в разработанном в Astra Linux окружении разграничения доступа к информации.

Кроме собственно разработок система сертификации требует подробнейшей проектной документации на них, скрупулёзно описывающей функциональную модель взаимодействия всех объектов внутри системы, их алгоритмы и исходные коды. Именно эта скрупулёзность и позволяет выявить наличие или отсутствие тех или иных НДВ.

Высокие класс защищённости от НСД и уровень контроля отсутствия НДВ, присвоенные Astra Linux, говорят о качественно проделанной работе.

Astra Linux и другие защищённые системы

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

И в этом смысле Astra Linux не одинок. Наиболее близким по возможностям проектом защищённой операционной системы является МСВС (Мобильная система вооружённых сил), разработанная Всероссийским научно-исследовательским институтом автоматизации управления в непромышленной сфере (ВНИИИНС) на базе популярного Linux-дистрибутива Red Hat.

http://www.nnre.ru/kompyutery_i_internet/cifrovoi_zhurnal_kompyuterra_68/i609608msvs-boot-screen.jpg

Третий релиз МСВС не обновлялся достаточно давно, что, впрочем, говорит не о его функциональной отсталости, а об узости его применения (защищённые автоматизированные системы управления), не требующей развития системы семимильными шагами. Кстати, тот же ВНИИИНС основательно прошерстил дистрибутив Red Hat Enterprise Linux 4, что позволило сертифицировать его по четвёртому уровню контроля отсутствия НДВ.

Чуть в стороне в плане областей применения, но тем не менее имеющая сертификат ФСТЭК по четвёртому классу защиты от НСД и третьему уровню контроля отсутствия НДВ, располагается система ALT Linux СПТ 6.0. Её разработчик — компания ALT Linux является одним из застрельщиков проекта рассмотренной выше национальной программной платформы и активно продвигает свои решения в секторе бюджетных организаций (например, школы). Появление сертифицированного варианта ALT Linux — серьёзная заявка на применение своих решений в секторе госуправления.

Впрочем, считать Astra Linux и эти системы прямыми конкурентами не стоит. И не потому, что каждая из них нашла собственную область применения.

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