Отчёт о риске VPN проигнорирован? Напишите решение, а не оценку
Находка — не решение. Превратите «VPN небезопасен» в два названных варианта, датированные доказательства и одного ответственного, чтобы кто-то мог это утвердить или отклонить.
Записка о риске, заканчивающаяся рейтингом серьёзности, даёт руководителю приговор и никаких действий. Поэтому так многие из них возвращаются с «спасибо, учёл» и ничем больше. Записки, которые утверждают, имеют одну форму: одно узкое проверяемое утверждение, два названных варианта с ценой и человек, который должен ответить к определённой дате. Всё ниже — о создании этой формы без преувеличения того, что вы знаете.
Оценка отвечает на вопрос, который никто не задал
Арифметика вероятности, умноженной на воздействие, даёт число, которое упорядочивает находки друг относительно друга. Оно не говорит директору, что подписывать, и приглашает к спору о множителе вместо решения о шлюзе. Я видел, как показатель экспозиции с двумя знаками после запятой поглотил целое совещание, пока настоящий вопрос — финансировать ли обновление в этом квартале — так и не был задан.
В этой области есть лишь несколько настоящих решений. Финансировать обновление, принять ограниченную экспозицию до названной даты или сократить круг тех, кто может добраться до сервиса. У каждого свой ответственный и своя цена, и ни одно из них не «снизить риск на 40 процентов».
Инфляция серьёзности ухудшает проблему. Когда каждая находка критична, рейтинг перестаёт различать, и читатель возвращается к единственному оставшемуся сигналу — к тому, кто громче всех жаловался. Записка, где сказано, что выпуск вне поддержки, что это уже второй квартал вне поддержки и что от него зависит определённая группа сотрудников, гораздо действеннее красного значка.
Неопределённость — другая неудача. «VPN небезопасен» невозможно разрешить, потому что не сказано, какое развёртывание, какая версия и кто до чего может добраться. Фраза, которую читатель может проверить, — минимальная единица полезного отчёта.
Уменьшайте утверждение, пока кто-то не сможет его проверить
Привяжите утверждение к опубликованной границе, а не к мнению. Отсутствие поддержки поставщика, пропущенный обязательный шаг аутентификации или доступность из сегмента сети, который не должен его видеть, — всё это утверждения, за которыми стоит проверка. Для первого проверка — три команды на самом шлюзе:
openvpn --version | head -n 1
dpkg-query -W -f='${Version}\n' openvpn
openssl x509 -in /etc/openvpn/server.crt -noout -enddate
Строка версии и запрос пакета обычно совпадают, а когда нет, вы нашли вторую проблему, достойную отдельного отчёта. Дата истечения сертификата — это поле, о проверке которого забывают, пока клиенты не перестают подключаться, и оно относится к тому же приложению с доказательствами, что и строка выпуска.
Запишите, откуда взят каждый вывод и когда он снят. Записку «шлюз gw1, собрано во вторник» скептик может запустить заново; скриншот, обрезанный до интересной строки, — нет. Удалите ключи, приватные адреса и имена учётных записей, прежде чем файл покинет вашу машину.
Напишите записку как выбор между названными вариантами
Записка о решении коротка, потому что выполняет одну работу. Вот форма, которую я использую, заполненная для вымышленной средней организации, чей выпуск удалённого доступа вышел из поддержки:
Ask: approve one of two upgrade paths for remote access before 30 June.
Claim: gw1 runs a release that left vendor support in January.
Evidence: version output and vendor notice, attached, collected 14 March.
Option A: upgrade in place, one maintenance window, staff on the current client build.
Option B: replace the gateway, two windows, client reinstall for 180 staff.
Cost of waiting: no security fixes for a service 180 staff use daily.
Owner: platform team. Decision needed from: IT director, by 28 March.
Каждая строка заслуживает своего места. Просьба — одно предложение, и в нём есть дата. Утверждение проверяемо. Вариант B существует для того, чтобы вариант A был выбором, а не формальностью, и он называет переустановку клиента, потому что это та цена, которую люди недооценивают. Цена ожидания описывает следствие, а не вероятность.
| Line in the note | What it prevents |
|---|---|
| Ask with a date | A reply of "agreed in principle" that funds nothing |
| Claim with a command behind it | A debate about whether the problem is real |
| Two options with different costs | A single proposal that can only be approved or refused |
| Named decision owner | A thread where everyone assumes someone else signed |
Записка не должна протаскивать вывод, который вы не можете обосновать. Если компрометация не показана, скажите это одной строкой, потому что читатель, который позже обнаружит преувеличение, скинет и следующие три ваши записки.
Что должно содержать принятие риска
Принятие — это не отсутствие решения и не молчание. Если ответ — какое-то время жить с экспозицией, записке нужны три дополнения: дата окончания, шаг мониторинга, который кто-то действительно выполняет, и названный человек, который вновь открывает вопрос, когда дата наступит.
Временная мера требует такого же подхода. Ограничение сервиса меньшей группой снижает экспозицию только тогда, когда ограничение где-то применяется и кто-то ведёт список. Блокировка, которая тихо останавливает ночную пакетную задачу, — это не мера, это сбой с лучшей документацией.
Держите владельца изменения и владельца решения раздельно, когда это разные люди. Команда платформы исполняет; директор принимает. Запись обоих имён в записке убирает самый частый затор — хорошо подготовленный план, который ждёт человека, никогда его не видевшего.
Проверьте записку по развёртыванию, прежде чем отправить её
Утверждения плохо стареют в организациях с несколькими шлюзами. Находка, скопированная из ветки форума о другом выпуске или с хоста, пересобранного в прошлом месяце, будет оспорена на совещании, и остальная записка уйдёт вместе с ней. Прогоните доказательства заново на каждом хосте, который называет записка:
for h in gw1 gw2; do
ssh "$h" 'openvpn --version | head -n 1; systemctl is-active openvpn@server'
done
Если два хоста расходятся, записка теперь о смешанном парке, а это другая и обычно более убедительная находка. Если сервис неактивен на хосте, который вы считали обслуживающим трафик, остановитесь и исправьте инвентарь, прежде чем записка куда-либо уйдёт.
Затем приложите вывод, поставьте дату решения в тему письма и отправьте его человеку, который может сказать «да», а не группе, которая будет это обсуждать. Если ответ приходит как «не сейчас», спросите дату, когда это станет «сейчас», и впишите эту дату в следующую версию записки.