Волшебная таблетка, или Централизованная настройка параметров безопасности ОС Astra Linux с помощью ALD Pro

d9af4f56c659950310fda232ed20c5a6.png

Привет, Хабр!  Я инженер в «Группе Астра» из команды ALD Pro. В статье расскажу, как мы создали расширенные групповые политики и инструмент для их применения на базе существующего механизма групповых политик ALD Pro. Благодаря этому получилось упростить настройку конечных рабочих мест и соблюсти требования по информационной безопасности.

Статья будет интересна системным администраторам или администраторам безопасности, которые работают с ОС Astra Linux SE и которым нужно привести доменные компьютеры в соответствие требованиям ФСТЭК.

План хорош, но есть одно но

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

Нормативные акты

«Требования о защите информации, не составляющей государственную тайну, содержащейся в государственных информационных системах» (утв. приказом ФСТЭК России 11.02.2013 г. №17),
«Состав и содержание организационных и технических мер по обеспечению безопасности персональных данных при их обработке в информационных системах персональных данных» (утв. приказом ФСТЭК России от 18.02.2013 г. №21),
«Требования по обеспечению безопасности значимых объектов критической информационной инфраструктуры Российской Федерации» (утв. приказом ФСТЭК России от 25.12.2017 г. №239),
«Требования к обеспечению защиты информации в автоматизированных системах управления производственными и технологическими процессами на критически важных объектах, потенциально опасных объектах, а также объектах, представляющих повышенную опасность для жизни и здоровья людей и для окружающей природной среды» (утв. приказом ФСТЭК России от 14.03.2014 г. №31).

Несмотря на множество требований, в «Реестре российского программного обеспечения» Минцифры РФ есть продукты, которые им соответствуют. Одно из таких решений — операционная система Astra Linux Special Edition. Эта сертифицированная ОС со встроенными средствами защиты информации закрывает указанные потребности по защите от несанкционированного доступа, предлагая сотни параметров безопасности. С их помощью администраторы могут настроить окружение пользователей под любые потребности организаций. Чтобы ориентироваться в многообразии настроек, мы разработали методические рекомендации и поддерживаем в актуальном состоянии соответствующие разделы сайта wiki.astralinux.ru

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

Импортируем дополнительные параметры групповых политик по взмаху одного скрипта

Следуя поговорке «Критикуешь — предлагай, а предлагаешь — действуй», для решения задачи с централизованной настройкой рабочих мест сделали в службе каталога ALD Pro механизм групповых политик, который работает по модели «pull», как в Active Directory. Агентская часть сама извлекает из LDAP-каталога необходимые ей параметры в соответствии с положением компьютера и пользователя в иерархии структурных подразделений, выполняет суммирование параметров и применяет их с использованием системы управления конфигурациями SaltStack — такое архитектурное решение позволило существенно снизить нагрузку с сервера, обеспечило высокую масштабируемость и упростило расширение набора доступных параметров. Вместе с продуктом «из коробки» поставляются сотни параметров групповых политик для настройки всех ОС Astra Linux. Системным администраторам доступны также инструменты для разработки собственных параметров — с их помощью можно централизованно управлять любым ПО, в том числе и расширенными настройками безопасности.

Для того чтобы привести доменные компьютеры в соответствие требованиям ФСТЭК, продуктовой командой были разработаны четыре десятка дополнительных параметров групповых политик. Их можно импортировать в систему выполнением всего одного bash-скрипта import.sh:

$ cat import.sh
# Импорт групповых политик
sh import_folder_common.sh
sh import_folder_security.sh

sh import_parameter_common_firefox_policy.sh
sh import_parameter_common_source_list.sh
sh import_parameter_common_packages.sh

sh import_parameter_sec_auth_1_auto_login_enable.sh
sh import_parameter_sec_auth_1_auto_re_login.sh
sh import_parameter_sec_auth_1_no_pass_enable.sh
sh import_parameter_sec_auth_1_preselect_user.sh
sh import_parameter_sec_auth_5_max_logins.sh
sh import_parameter_sec_auth_6_screen_lock_user.sh
sh import_parameter_sec_auth_6_screen_lock.sh
sh import_parameter_sec_auth_6_show_info_user.sh
sh import_parameter_sec_auth_6_show_info.sh
...

Скрипт импорта каждого отдельного параметра является вызовом Python-утилиты policy.py, которая обращается к бэкенду ALD Pro через REST API. Скрипт позволяет задать имя параметра, место его расположения, подробное описание для справки, набор атрибутов, имя скрипта и комментарий:

python3 policy.py parameter add \
--host \
--id 'rbta_ldap_custom_gp_host_sec_auth_6_screen_lock' \
--name 'Блокировка экрана после бездействия' \
--parent-folder 'Авторизация' \
--description 'Позволяет централизованно настраивать блокировку экрана после бездействия, изменяя значения параметров секции [Variables] в файле /usr/share/fly-wm/theme/default.themerc

Вручную режим можно изменить в окне «Пуск > Панель управления > Рабочий стол > Оформление Fly > Блокировка».
Атрибут «Блокировать экран» устанавливает значение параметров LockerOnDPMS, LockerOnLid, LockerOnSleep и LockerOnSwitch. Допустимые значения:

- true - экран блокируется (по умолчанию)
- false - экран не блокируется

Для всех классов защищенности информационной системы с К3 по К1 и всех уровней защищенности персональных данных с УЗ4 по УЗ1 рекомендуемым значением является:

- Блокировать экран = true

Атрибут «Время бездействия в секундах» устанавливает значение параметра ScreenSaverDelay, значение по умолчанию 300.

Для классов защищенности информационной системы с К3 по К2 и уровней защищенности персональных данных с УЗ4 по УЗ2 рекомендуемым значением является 900 (15 минут). Для К1 и УЗ1 рекомендованным значением является 300 (5 минут).' \
--attr 'Блокировать экран':screen_lock:'' \
--attr 'Время бездействия в секундах':screen_saver_delay:'' \
--script 'import_parameter_sec_auth_6_screen_lock.sls' \
--script-comment 'Версия 1.0'

Скрипты параметров написаны с учетом особенностей реализации механизма групповых политик ALD Pro. Например, параметры скрипту передаются через Pillar. Для конфигурирования init файлов на целевых хостах SaltStack предоставляет очень удобный модуль состояний ini_manage, который в несколько строк позволяет задать набор необходимых параметров:

$ сat import_parameter_sec_auth_6_screen_lock.sls 
{% set id = 'rbta_ldap_custom_gp_host_sec_auth_6_screen_lock' %}
{% set node = salt['grains.get']('nodename') %}
{% set gpo = salt['pillar.get']('aldpro-hosts:' + node + ':' + id) %}
{% if gpo %}

    {% macro getvalid(value, available) -%}
        {{- value if value!='' and value.lower() in available|lower else available[0] -}}
    {%- endmacro %}

    {% set screen_lock = getvalid(gpo['screen_lock'], ['true', 'false']) %}
    {% set screen_saver_delay = gpo['screen_saver_delay'] | int(300) %}

    {{ id }}:
        ini.options_present:
            - name: /usr/share/fly-wm/theme/default.themerc
            - separator: '='
            - strict: False
            - sections:
                'Variables':
                    LockerOnDPMS: '{{ screen_lock }}'
                    LockerOnLid: '{{ screen_lock }}'
                    LockerOnSleep: '{{ screen_lock }}'
                    LockerOnSwitch: '{{ screen_lock }}'
                    ScreenSaverDelay: '{{ screen_saver_delay }}'

{% endif %}

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

Рисунок 1. Дополнительные параметры групповых политик для приведения доменных компьютеров в соответствие требованиям ФСТЭК

Рисунок 1. Дополнительные параметры групповых политик для приведения доменных компьютеров в соответствие требованиям ФСТЭК

Чтобы оставить администраторам полный контроль над работой этого инструмента, мы не стали создавать какой-то один «рубильник», задающий нужный уровень защищенности. Каждый параметр имеет один и более атрибутов, для которых системный администратор и/или администратор безопасности может выбрать желаемое значение. Но если значение не будет задано, то по умолчанию мы руководствуемся наиболее строгими требованиями.

Например, настройка параметра «Блокировка экрана после бездействия» по умолчанию имеет значение 300 секунд. Это соответствует методическому документу «Меры защиты информации в государственных информационных системах» (утв. ФСТЭК России от 11.02.2014) и закрывает одно из требований к усилению УПД.10 — о блокировке сеанса пользователя после установленного времени бездействия (неактивности).

Пошаговая настройка групповых политик

Настройка групповых политик с использованием дополнительных параметров ничем не отличается от использования параметров «из коробки» и организовано так же, как в Active Directory. Сначала нужно создать объект групповой политики, затем на вкладках «Параметры компьютеров» и «Параметры пользователей» включить необходимые параметры, задать значения их атрибутов и в самом конце этот объект нужно назначить на одно и более структурных подразделений.

На примере параметра «Блокировка экрана после бездействия» нам доступно два атрибута, как видно на рисунке 2. А для параметра «Блокировка интерпретаторов» атрибут только один (рисунок 3). Для получения дополнительной информации об атрибутах и их допустимых значениях можно обратиться к справке — нужно просто кликнуть по иконке вопроса в правом верхнему углу.

Рисунок 2. Применение параметра «Блокировка экрана после бездействия»

Рисунок 2. Применение параметра «Блокировка экрана после бездействия»

Рисунок 3. Применение параметра «Блокировка интерпретаторов»

Рисунок 3. Применение параметра «Блокировка интерпретаторов»

Рисунок 4. Справка о назначении параметра

Рисунок 4. Справка о назначении параметра

Вместо заключения

Набор предлагаемых дополнительных параметров поможет при настройке ОС и выполнении части требований, описанных в мерах защиты информации: ИАФ.1, ИАФ.3, ИАФ.4, УПД.1, УПД.6, УПД.13, УПД.10, УПД.14, УПД.15, ОПС. 1, ОПС. 2, ОПС. 3, ОПС. 4, РСБ.2, РСБ.3, РСБ.4, РСБ.6, РСБ.7, АНЗ.3, АНЗ.4, ОЦЛ.1, ОЦЛ.2, ОЦЛ.8, ЗИС. 15, ЗИС. 16, ЗИС. 21 и др. При этом важно понимать, что требования приказов ФСТЭК не регламентируют конкретные настройки средств защиты, а определяют базовый набор мер защиты. Перечень мер защиты должен уточняться в зависимости от структурно-функциональных характеристик и модели угроз конкретных объектов информатизации.

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

© Habrahabr.ru