Регламент удалённого доступа: условия, заявка, срок, журнал сессий и отзыв

0
10
Обложка статьи: Регламент удалённого доступа: условия, заявка, срок, журнал сессий и отзыв

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

Как поднять туннель и вести журнал подключений: WireGuard. Как обеспечить второй фактор: MFA для SSH и WireGuard. Доступ подрядчиков через шлюз: изолированный шлюз. Общие правила доступа: политика управления доступом.

Как проходит удалённый доступ

Путь удалённого доступаУдалённый доступ выдаётся по заявке с согласованием, подключается через VPN со вторым фактором, сессии пишутся в журнал, доступ отзывается по сроку.Заявкакто, зачем,на какой срокСогласованиеруководительи ИБВыдачаVPN, MFA,ограничениепо ресурсамСессиижурналподключенийОтзывпо сроку илиувольнениюСрок доступа ставится при выдаче; продлить можно только новой заявкой, а немолчаливо.
Каждый удалённый доступ имеет владельца, срок и запись о том, что им пользовались.

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

Условия по категориям пользователей

Категория Условия Согласует Срок
Сотрудник с корпоративным устройством Устройство под управлением компании, шифрование диска, второй фактор, доступ только к ресурсам роли Руководитель Постоянный, пересмотр ежеквартально
Сотрудник с личным устройством Только веб-доступ к почте и корпоративным сервисам или виртуальный рабочий стол, без полного туннеля: BYOD Руководитель и ИБ По решению, пересмотр ежеквартально
Администратор Отдельная учётная запись, MFA, вход только через jump-хост: jump-хост ИБ и руководитель ИТ Постоянный, пересмотр ежеквартально
Подрядчик Именная учётная запись, договор с обязательствами по ИБ, доступ через шлюз к конкретным системам Владелец договора и ИБ До окончания договора, не дольше трёх месяцев без продления
Специалист вендора для поддержки Только по запросу, под наблюдением сотрудника, на время работ, запись сессии Владелец системы и ИБ Часы или дни

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

Заявка

Заявка на удалённый доступ — это тот же документ, что и обычная заявка на доступ, с несколькими обязательными полями. Минимальный шаблон:

Заявка на удалённый доступ

Кому: Иванов И.И., подрядчик ООО «Пример», договор № 14 от 01.09
Устройство: ноутбук подрядчика (корпоративное: нет; описание: Windows 11, шифрование включено)
К чему: сервер приложений srv-app-02, порт 443 и 22; нужна роль «сопровождение»
Зачем: настройка интеграции, задача № 482
Срок: с 20.10 по 20.11
Согласовал руководитель: Петров П.П., 18.10
Согласовал ИБ: Сидорова С.С., 18.10 (условия: MFA, шлюз, запись сессии)
Выдано: администратор Козлов К.К., 19.10 (peer ivanov-ooo-primer, адрес 10.8.0.15)
Отозвано: ______ (дата, кто)

Поле «Отозвано» заполняется всегда, в том числе при окончании срока. Пустое поле через месяц после даты окончания — повод для проверки.

Срок доступа: автоматический отзыв

Самая надёжная мера — чтобы доступ закрывался сам. Если для отзыва нужно помнить, он не произойдёт. Для WireGuard это делает небольшой скрипт: в файле /etc/wireguard/peers.expiry хранятся пары «публичный ключ, дата окончания» (в формате ГГГГ-ММ-ДД), а скрипт раз в сутки убирает истёкшие peer.

#!/usr/bin/env bash
# /usr/local/sbin/wg-expire.sh: удаляет peer WireGuard, у которых истёк срок доступа
IF=wg0
FILE=/etc/wireguard/peers.expiry          # формат строки: ПУБЛИЧНЫЙ_КЛЮЧ ГГГГ-ММ-ДД ИМЯ
TODAY=$(date +%F)

while read -r key until name; do
  [ -z "$key" ] && continue
  if [[ "$until" < "$TODAY" ]]; then
    wg set "$IF" peer "$key" remove && logger -t wg-expire "peer=$name удалён, срок истёк $until"
  fi
done < "$FILE"
sudo chmod 750 /usr/local/sbin/wg-expire.sh
echo '15 1 * * * root /usr/local/sbin/wg-expire.sh' | sudo tee /etc/cron.d/wg-expire
sudo journalctl -t wg-expire --since yesterday

Ожидаемо: у peer с истёкшей датой в журнале появляется запись об удалении, он пропадает из wg show. Скрипт удаляет peer только в памяти; чтобы он не вернулся после перезагрузки, удалите блок из wg0.conf или генерируйте конфигурацию из той же таблицы. Для других средств (OpenVPN, IPsec, шлюзов) принцип тот же: срок живёт в учётной записи или в конфигурации, а закрывает его планировщик.

Журнал сессий и мониторинг

Для проверки нужны журналы, в которых видно: кто подключился, когда, откуда, к чему обращался. Что собирать:

Что Откуда Как смотреть
Подключения и отключения VPN Журнал wg-audit (WireGuard), журнал VPN-сервера journalctl -t wg-audit
Входы на серверы и шлюзы Журналы SSH, RDP-шлюза, шлюза доступа journalctl -u ssh | grep -E "Accepted|Failed"
События необычного поведения Ночные подключения, вход из новых стран, множественные отказы Правила в Wazuh: аномалии доступа

Собирайте эти журналы в одном месте и храните по политике: политика журналирования.

Еженедельная сверка: выдано и согласовано

Раз в неделю нужно проверять, что в технике нет доступов, которых нет в заявках. Для WireGuard простой вариант: список peer сравнивается со списком согласованных ключей.

# approved.txt: публичные ключи по согласованным заявкам, по одному в строке
wg show wg0 peers | sort > /tmp/active.txt
sort approved.txt > /tmp/approved.sorted

echo "Есть в VPN, но нет в согласованных заявках:"
comm -23 /tmp/active.txt /tmp/approved.sorted
echo "Согласованы, но не заведены (проверить выдачу):"
comm -13 /tmp/active.txt /tmp/approved.sorted

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

Когда доступ отзывается

  • Окончание срока: автоматически, по скрипту выше.
  • Увольнение или окончание договора: в день события, по чек-листу увольнения.
  • Потеря или кража устройства: немедленно, до выяснения обстоятельств; нужен контакт, по которому об этом можно сообщить в любое время.
  • Подозрение на компрометацию: немедленно, затем расследование: плейбук недозакрытого доступа.
  • Нарушение условий (передача доступа другому лицу, подключение с неразрешённого устройства): по решению ИБ.

Каркас регламента

РЕГЛАМЕНТ УДАЛЁННОГО ДОСТУПА
Версия 1.0, утверждён [дата]

1. Область: все способы подключения к сети и системам извне (VPN, шлюзы, RDP, SSH, веб-консоли).
2. Категории пользователей и условия (приложение 1).
3. Порядок получения: заявка по форме (приложение 2), согласование руководителем и ИБ.
4. Технические требования: второй фактор при каждом подключении; личный ключ или учётная запись;
   доступ только к ресурсам согласованной роли; срок указывается при выдаче.
5. Журналирование: подключения, отключения и действия записываются, хранятся [12] месяцев.
6. Контроль: еженедельная сверка выданного с согласованным, ежеквартальный пересмотр.
7. Отзыв: по сроку, увольнению, потере устройства, подозрению на компрометацию.
8. Ответственность: за нарушение условий доступ отзывается; серьёзные нарушения расследуются.

Какие артефакты хранить

Что хранить Что показывает
Утверждённый регламент удалённого доступа Процесс описан и согласован
Согласованные заявки на удалённый доступ с подписями руководителя и ИБ Условия предоставления соблюдаются, ИБ участвует
Журнал удалённых подключений за последние месяцы Сессии логируются и пригодны для мониторинга
Результаты еженедельной сверки и список отозванных доступов Контроль работает, лишние доступы закрываются

Диагностика

Симптом Причина и что делать
В VPN есть люди, которых нет в заявках Доступ выдавали «по просьбе». Отзовите, найдите, кто выдал, введите правило: нет заявки — нет доступа
Подрядчик продлевал доступ молча Срок не был технически ограничен. Включите автоматический отзыв и требуйте новую заявку на продление
Администратор подключается с личного ноутбука Не определены условия для категории. Закрепите в регламенте и ограничьте на уровне шлюза
Журналов нет, когда нужно разбираться Не включены или хранятся недолго. Проверьте источники из таблицы и срок хранения
Скрипт отзыва удаляет peer, а после перезагрузки он возвращается Блок остался в wg0.conf. Генерируйте конфигурацию из таблицы со сроками

Где это в модели зрелости

Материал относится к направлению «Управление доступом» (хаб: управление доступом, карта: карта зрелости), смежное направление — сетевая безопасность. На втором уровне разработаны процедуры согласования и контроля удалённого доступа с условиями предоставления, ведётся журнал сессий и мониторинг. Заявки с согласованием ИБ, журналы и регламент — три подтверждения этого пункта.

Как проверить

  1. Для пяти случайных VPN-учётных записей есть согласованные заявки с датами.
  2. У каждой подрядной учётной записи есть дата окончания, а скрипт отзыва в расписании.
  3. Журнал подключений содержит записи за последние сутки с идентификацией пользователя.
  4. Сверка за последнюю неделю проведена, расхождения отозваны.
  5. Регламент утверждён и содержит категории и условия.

Источники

  • NIST SP 800-46 Rev. 2, безопасность удалённого доступа и работы вне офиса: csrc.nist.gov.
  • CIS Control 6, управление доступом: cisecurity.org/controls.
  • WireGuard, документация по управлению peer: wireguard.com.

Комментарии закрыты.