Оценка и соответствие
Версия: 0.1
1. Принцип
Система оценивается не по тому, загружается ли она, и не по количеству функций, которые в неё входят. Оценка отвечает на вопросы:
- можно ли восстановить систему по её собственной записи;
- всё ли в ней учтено и аутентифицировано;
- сохраняет ли она свои свойства безопасности в поставляемой конфигурации, а не в усиленном варианте;
- защищает ли она данные тех, кто её эксплуатирует;
- можно ли её безопасно обновить, откатить и в итоге вывести из эксплуатации;
- ограничены ли её заявления доказательствами.
Зелёный конвейер доказывает, что конвейер отработал. Ничего из перечисленного он не доказывает.
2. Уровни доказательств
| Уровень | Название | Что подтверждает |
|---|---|---|
| E0 | Декларация | кто-то утверждает, что свойство выполняется. Доказательством не считается. |
| E1 | Проверка спецификации | спецификация, фиксация входов (lock) и политика прочитаны и согласуются с требованием. |
| E2 | Офлайн-проверка артефактов | полученные артефакты проверены механически, без загрузки: конфигурация, параметры ядра, подписи, состав продукта (SBOM), результаты сканирования, проверки лицензий и товарных знаков. |
| E3 | Динамическая проверка в эмуляции | система загружена в виртуальной среде с прошивкой и виртуальным модулем безопасности, поведение наблюдалось. |
| E4 | Проверка на эталонном оборудовании | свойство продемонстрировано на заявленном эталонном оборудовании, включая взаимодействие с прошивкой, разблокировку шифрования накопителя, засыпание, обновление и откат. |
| E5 | Эксплуатационные доказательства | свойство подтверждено эксплуатационными данными, которые производитель вправе хранить на законном основании, данными поддержки, историей инцидентов или независимым аудитом. |
Свойство заявляется только на том уровне, на котором оно наблюдалось. Параметр ядра, присутствующий в файле конфигурации, — это доказательство уровня E2 о конфигурации, а не доказательство уровня E4 о работающей системе.
Требуемые минимальные уровни:
| Класс требований | Минимум |
|---|---|
| спецификация, происхождение, лицензирование, состав продукта (SBOM) | E2 |
| изоляция, усиление защиты, значения по умолчанию, учётные данные | E2, плюс E3 для всего, что должно наблюдаться во время работы |
| целостность загрузки, шифрование накопителя, измерение | E4 |
| обновление, откат, защита от отката, безопасность при прерывании | E4 |
| путь восстановления | E4 |
| поведение поставляемой системы в части приватности | минимум E3, для устройств E4 |
| доступность установщика, первого запуска и восстановления | согласно применимому профилю HIF |
3. Корпус проверок
Каждый продукт ведёт корпус проверок. Каждая запись имеет вид:
CHECK-ID
требование SCF-*
свойство что должно быть истинно
метод инструмент, команда или процедура
среда офлайн | эмуляция | эталонное оборудование
ожидаемый результат
уровень доказательств
ответственный
Приведённый ниже базовый корпус обязателен для каждого профиля, если профиль не зарегистрировал исключение. Он намеренно выражен через свойства и методы, а не через вызовы инструментов: инструменты меняются быстрее обязательств.
Базовый корпус — это минимум, а не полное отображение Конституции. Если требованию здесь нет соответствующей записи, продукт MUST добавить её в собственный корпус до того, как заявит это требование выполненным; требование, заявленное без записи, остаётся декларацией уровня E0.
3.1 Спецификация и происхождение
| Свойство | Метод | Среда |
|---|---|---|
| Lock разрешает каждый вход до версии и дайджеста | проверить lock; ошибка, если хотя бы один вход не зафиксирован | офлайн |
| У каждого источника есть аутентифицированный корень доверия под контролем производителя | проверить конфигурацию источников в собранном образе и в записи сборки | офлайн |
| Сборка использовала только lock | сверить входы из журнала сборки с lock | офлайн |
| Выпуск пересобираем | пересобрать из lock в чистой среде и сравнить | офлайн |
| В поставляемой конфигурации нигде нет флагов, отключающих доверие | найти в образе параметры, отключающие проверку подписей или сертификатов | офлайн |
3.2 Артефакты и аттестация
| Свойство | Метод | Среда |
|---|---|---|
| Манифест полон и согласован с артефактами | сверить манифест с полученными файлами и дайджестами | офлайн |
| Состав продукта (SBOM) присутствует, валиден и покрывает компоненты верхнего уровня | валидация схемы плюс сравнение покрытия с замыканием зависимостей | офлайн |
| Аттестация происхождения присутствует и проверяема | проверить подпись и указанный в ней lock | офлайн |
| Каждый распространяемый артефакт подписан, его дайджест опубликован | проверить подписи опубликованным ключом | офлайн |
| Инструкции по проверке опубликованы вместе с артефактом | осмотреть поверхность доставки | офлайн |
| Соответствующий исходный код доступен там же | получить его так, как это сделал бы получатель | офлайн |
3.3 Целостность загрузки
| Свойство | Метод | Среда |
|---|---|---|
| Загружается при включённой проверке прошивки | загрузить с включённой проверкой | эмуляция, затем эталонное оборудование |
| Компоненты загрузки несут текущее поколение отзыва | сравнить поставляемое поколение с действующей политикой отзыва | офлайн |
| Компоненты цепочки загрузки подписаны ключами, которым доверяет цепочка | проверить подписи загрузчика и ядра | офлайн |
| Значения измерений соответствуют документации там, где профиль требует измерений | прочитать измерения после загрузки | эмуляция, затем эталонное оборудование |
| Целостность системного тома обеспечивается там, где этого требует профиль | проверить во время работы и попытаться внести изменение | эмуляция |
| Защита от отката отвергает более старую версию | попытаться установить и загрузить более старый выпуск | эталонное оборудование |
3.4 Криптография и учётные данные
| Свойство | Метод | Среда |
|---|---|---|
| Шифрование накопителя использует параметры, соответствующие политике алгоритмов | проверить заголовок зашифрованного тома, созданного установщиком | эмуляция |
| Привязка ключа к состоянию платформы выполнена к содержательному состоянию | проверить регистрацию и намеренно изменить состояние | эталонное оборудование |
| Ни одно решение о доверии не использует устаревшие примитивы | проверить конфигурацию подписей и протоколов | офлайн |
| Нет поставляемых учётных данных, пустых паролей и непреднамеренных привилегированных учётных записей | проверить учётные записи и ключевой материал в образе | офлайн |
| Автоматический вход и беспарольное администрирование выключены | проверить конфигурацию менеджера входа и повышения привилегий | офлайн |
| Долгоживущие секреты генерируются при первой загрузке | запустить два экземпляра и сравнить | эмуляция |
3.5 Изоляция и поверхность атаки
| Свойство | Метод | Среда |
|---|---|---|
| Мандатное управление доступом в режиме принуждения, при первой загрузке нет неразобранных отказов | прочитать состояние принуждения и журнал аудита после чистой загрузки | эмуляция |
| Нет неожиданных слушающих служб | перечислить слушающие сокеты после первой загрузки и просканировать извне | эмуляция |
| Межсетевой экран активен, действует запрет входящего трафика по умолчанию | прочитать действующий набор правил | эмуляция |
| Базовый профиль усиления защиты ядра выполнен | сверить поставляемую конфигурацию ядра и параметры загрузки с базовым профилем | офлайн |
| Неподписанный код ядра не загружается | попытаться загрузить неподписанный модуль | эмуляция |
| Службы, доступные из сети, ограничены средствами изоляции | проверить ограничение каждой такой службы | офлайн |
| Установленный состав соответствует профилю | сравнить установленный набор с заявленным выбором | офлайн |
3.6 Данные и приватность
| Свойство | Метод | Среда |
|---|---|---|
| После первой загрузки нет сетевых обращений, кроме заявленных адресов | наблюдать трафик чистого экземпляра в течение заданного периода | эмуляция |
| Телеметрия выключена до явного выбора | проверить значения по умолчанию и поверхность первого запуска | офлайн плюс эмуляция |
| Устойчивый идентификатор устройства не передаётся без необходимости | проверить наблюдаемый трафик | эмуляция |
| Удаление данных и сброс к исходному состоянию возвращают систему в состояние поставки | выполнить документированную процедуру и проверить результат | эталонное оборудование |
| Журналирование можно отключить, его последствия документированы | выполнить процедуру | эмуляция |
3.7 Обновления и уязвимости
| Свойство | Метод | Среда |
|---|---|---|
| Обновления безопасности по умолчанию применяются автоматически | проверить конфигурацию, затем понаблюдать на работающем экземпляре | эмуляция |
| Обновления проверяются до применения | попытаться применить обновление, подписанное недоверенным ключом | эмуляция |
| Прерванное обновление оставляет систему загружаемой | прервать в нескольких точках | эталонное оборудование |
| Откат возвращает к предыдущему заведомо рабочему состоянию | выполнить откат после намеренно испорченного обновления | эталонное оборудование |
| Офлайн-путь обновления работает с теми же гарантиями | выполнить обновление офлайн | эмуляция |
| В поставляемых компонентах нет известных эксплуатируемых уязвимостей | сверить состав продукта (SBOM) с актуальными данными об уязвимостях | офлайн |
| Для принятых результатов проверки есть заявления об эксплуатируемости | проверить опубликованные заявления | офлайн |
3.8 Право и жизненный цикл
| Свойство | Метод | Среда |
|---|---|---|
| У каждого компонента определена лицензия, требуемые уведомления поставляются | проверить реестр лицензий и образ | офлайн |
| В образе не осталось знаков вышестоящего проекта, подлежащих удалению | автоматический поиск по файловой системе, загрузочному носителю, графике, метаданным и строкам | офлайн |
| Срок поддержки и дата окончания жизненного цикла заявлены и видимы | проверить карточку продукта и поверхность доставки | офлайн |
| Соответствие базовому профилю измерено там, где этого требует профиль | выполнить сканирование соответствия по названной редакции базового профиля | офлайн |
3.9 Поверхности взаимодействия с человеком
Проверяются по применимому профилю HIF, как минимум: установка без потери данных на машине с существующими данными; первый запуск, выполненный только с клавиатуры; первый запуск, выполненный с программой экранного доступа; корректное описание области действия у каждого разрушающего действия; вход в режим восстановления и выход из него без сети.
4. Severity
S0 Blocker— системе нельзя доверять и нельзя её использовать: она не загружается, обновление выводит её из строя, данные теряются, секрет общий для всех установок, артефакт не подписан или не учтён, либо сообщение об активной эксплуатации невозможно обработать.S1 Critical— заявленное продуктом свойство безопасности или приватности не выполняется в поставляемой конфигурации.S2 Major— требуемое свойство выполняется только после ручной настройки, либо откат и восстановление работают лишь в части случаев.S3 Moderate— доказательства слабее требуемого уровня, либо документация противоречит поведению.S4 Minor— локальная несогласованность, не влияющая на заявленные свойства.Observation— гипотеза, не подтверждённый дефект.
Серьёзность определяется последствиями для людей и организаций, которые эксплуатируют систему, а не заметностью проблемы.
5. Уровни соответствия
SCF-Declared
- профили выбраны;
- матрица трассировки существует;
- известные исключения зарегистрированы.
Это означает начало процесса. Это не знак качества, и он MUST NOT представляться как знак качества.
SCF-Conformant
- выполнено каждое применимое MUST;
- каждое исключение из
SHOULDобосновано и зарегистрировано; - весь базовый корпус проверок выполнен на требуемом уровне доказательств, включая проверки на эталонном оборудовании;
- выпуск пересобираем из своего lock;
- состав продукта (SBOM), происхождение и подписи полны;
- срок поддержки, контракт обновлений и политика раскрытия опубликованы.
SCF-Validated
- выполнено SCF-Conformant, дополнительно:
- выпуск независимо пересобран и сличён;
- пути высокого риска — целостность загрузки, обновление, откат, восстановление, удаление данных — продемонстрированы на эталонном оборудовании;
- процесс работы с уязвимостями не только описан, но и отработан;
- эксплуатационный мониторинг на срок поддержки определён и обеспечен людьми.
Заявление о соответствии MUST называть версию SCF, профили, выпуск, архитектуры и эталонное оборудование, к которым оно относится. Заявление без этих границ недействительно.
6. Матрица трассировки
обязательство (право, модель угроз, требование заказчика)
→ требование SCF
→ требование продукта
→ поле спецификации, компонент или политика
→ реализация
→ автоматическая проверка
→ ручной или аппаратный сценарий
→ текущие доказательства и их уровень
→ исключения
Требование, у которого нет пути к доказательству, неполно и MUST NOT считаться выполненным.
7. Контрольный этап перед выпуском
Перед подписанием выпуска:
- область изменения определена, затронутые профили перечислены;
- lock полон, каждый вход аутентифицирован и зафиксирован;
- сборка выполнена в соответствующем требованиям контуре, её журнал сохранён;
- все офлайн-проверки пройдены, включая проверки лицензий, товарных знаков и уязвимостей;
- состав продукта (SBOM), манифест и происхождение полны и валидны;
- поколение цепочки загрузки актуально относительно политики отзыва;
- динамическая проверка в эмуляции пройдена;
- проверка на эталонном оборудовании пройдена для загрузки, обновления, отката, восстановления и шифрования накопителя;
- проверки доступности, требуемые применимыми профилями HIF, пройдены;
- срок поддержки, канал и дата окончания жизненного цикла установлены и опубликованы;
- у каждого открытого исключения есть ответственный и не истёкшая дата пересмотра;
- выпуск утверждает названный человек, утверждение фиксируется вместе с доказательствами.
План отката и критерии отзыва выпуска входят в контрольный этап, а не принимаются позже.
8. Исключения
ID
версия и требование SCF
продукт и профиль
причина
затронутые пользователи, устройства и данные
риск и вероятность
компенсирующая мера
ответственный
срок действия или дата пересмотра
доказательства
Истёкшее исключение блокирует новое заявление о соответствии, пока не пересмотрено. Исключение MUST NOT использоваться для закрепления постоянного архитектурного решения; если требование неверно, предложите изменение стандарта.
9. После выпуска
Срок поддержки — часть продукта, поэтому оценка не заканчивается выпуском.
- отслеживать изменения входов в вышестоящих проектах для каждого поддерживаемого выпуска и уметь сказать, насколько каждый выпуск отстал;
- отслеживать данные об уязвимостях по составу продукта (SBOM) каждого поддерживаемого выпуска;
- отслеживать политику отзыва и политику удостоверяющих центров подписи;
- фиксировать время от сообщения до исправления и до публикации бюллетеня безопасности и пересматривать его;
- перезапускать корпус проверок для каждого обновления, затрагивающего загрузку, ядро, криптографию, логику обновления или значения по умолчанию;
- фиксировать эксплуатационные отказы относительно корпуса и добавлять проверку на каждый отказ, который корпус не поймал.
10. Изменение стандарта
Если продукт не может выполнить SCF:
- проверить, не является ли проблема локальной архитектурой, а не требованием;
- проверить альтернативы, включая другое семейство платформ;
- зарегистрировать исключение с доказательствами;
- собирать доказательства не менее одного цикла выпуска;
- только затем предложить изменение стандарта.
Широко распространённая отраслевая практика не является доказательством того, что требование неверно. Отсутствие возможности в вышестоящем проекте — ограничение, которое фиксируется, а не основание для более слабого заявления.