Анализ форка systemd без birthDate для ВКР: приватность как архитектурное требование

В марте 2026 года вокруг systemd развернулась показательная история: в upstream добавили в userdb поле birthDate, а в homectl — опцию --birth-date. Ответом стал форк, вычистивший эту функциональность и обещающий синхронизироваться с веткой main. Отдельно GrapheneOS отказался встраивать верификацию возраста. Для выпускника ИТ это не новость «из мира Linux», а готовый кейс для ВКР по защите информации и системному программированию: здесь есть конфликт «функциональность против приватности», архитектурное решение, юридические требования и измеримые метрики. Ниже — как превратить этот сюжет в диплом, который не стыдно защищать.

Частые вопросы до старта работы

Можно ли взять темой ВКР «форк systemd» — не слишком ли узко?

Узко, если писать «я форкнул systemd». Широко — если тема звучит как «Проектирование подсистемы идентификации пользователей с минимизацией хранимых персональных данных». Форк становится артефактом реализации, а предметом — модель угроз и архитектурные компромиссы.

Где брать исходные данные, если это открытый проект?

Три источника: репозитории systemd и форка (git log, патчи, issues), документация userdb и homectl, публичные заявления GrapheneOS. Плюс нормативка — 152-ФЗ, GDPR Art. 5 (data minimisation), ISO/IEC 25010 (privacy как нефункциональное требование).

Как посчитать эффективность, если метрика — «приватность»?

Приватность раскладывается на измеримые величины: количество полей PII в хранилище, размер поверхности атаки (число точек доступа к userdb), количество обращений к идентификационным данным в логах, число зависимостей, требующих возраст. Их и считаем — до и после форка.

Хватит ли компетенций студента-бэкендера или сетевика?

Да, если выбрать роль системного аналитика или специалиста по ИБ. Достаточно понимать systemd как набор демонов, уметь читать C-патчи и строить диаграммы. Полный рефакторинг ядра никто не просит.

Темы ВКР, вырастающие из кейса

  • «Минимизация персональных данных в подсистеме идентификации Linux: анализ userdb systemd»
    Актуальность — прямое следствие статьи: добавление birthDate в userdb повышает объём PII в системе.
    Цель — спроектировать модель userdb без избыточных идентификационных полей.
    Задачи: разобрать схему userdb, построить STRIDE-модель угроз, описать политику минимизации, сравнить форк и upstream по метрикам.
    Главы: 1) анализ стандартов и нормативки (152-ФЗ, ISO/IEC 25010), 2) проектирование схемы без birthDate (C4 + UML class diagram), 3) тестирование и оценка сокращения PII.
  • «Форк как метод управления техническим долгом и приватностью ПО»
    Актуальность — форк синхронизируется с main, значит, встаёт классическая задача сопровождения diverged-ветки.
    Цель — оценить стоимость поддержки форка с точки зрения релизного цикла.
    Задачи: измерить объём патчей, построить диаграмму процесса sync, посчитать частоту конфликтов слияния, оценить трудозатраты.
    Главы: 1) теоретическая база (MBSE, ГОСТ 34), 2) реализация процесса синхронизации, 3) метрики (lead time, MTTR конфликтов).
  • «Верификация возраста в операционных системах: архитектурный конфликт и его последствия»
    Актуальность — отказ GrapheneOS показывает, что технические ограничения неотделимы от политики.
    Цель — построить модель взаимодействия сервисов верификации возраста и локальной ОС без утечки идентификаторов.
    Задачи: анализ регуляторики, проектирование протокола с zero-knowledge подходом, оценка угроз, нагрузочное тестирование сценария.
    Главы: 1) анализ предметной области и OWASP-риски, 2) проектирование архитектуры (диаграммы последовательностей), 3) верификация модели угроз и метрики latency.

Как встроить кейс в главы ВКР

Глава 1. Аналитическая часть

Начните с разбора коммитов: где именно в userdb появилось поле birthDate, какие модули его читают, кто является потребителем. Затем — нормативная база: 152-ФЗ (ст. 5, минимизация), GDPR Art. 5, ISO/IEC 25010 (quality model, характеристика security с подхарактеристикой confidentiality). Соберите таблицу «требование → техническое решение → метрика проверки». Именно здесь уместна ссылка на новость как на первичный источник.

Глава 2. Проектирование и реализация

Постройте C4-диаграмму контейнеров: ядро Linux, systemd-userdbd, homectl, приложения-клиенты. Обозначьте точки, где PII проходит через границы доверия. Затем — диаграмму классов userdb до и после форка. Реализация форка проста в понимании, если показать патч:

--- a/src/userdb/userrecord.c
+++ b/src/userdb/userrecord.c
@@
-        if (birth_date) {
-                r = json_variant_set_field(&v, "birthDate", birth_date);
-                if (r < 0)
-                        return r;
-        }
+        /* Поле birthDate удалено: минимизация PII.
+         * См. политику обработки персональных данных. */

Дополните пример конфигом проверки на отсутствие утечек: grep-правило для CI, которое валит сборку при появлении идентификационных полей в выводе userdb.

Глава 3. Тестирование и оценка

Метрики поддомена ИБ: сокращение числа полей PII (штук), сокращение поверхности атаки (количество функций, читающих идентификацию), MTTR синхронизации форка с upstream, покрытие тестами изменённых модулей. Схема замеров: baseline (upstream) vs target (форк). Используйте OpenTelemetry для сбора событий обращения к userdb — это даст фактическую статистику, а не гипотезу.

МетрикаUpstreamФоркИсточник данных
Полей PII в userdbNN−1schema userdb
Точек чтения идентификацииMM−kстат. анализ кода
Зависимостей от возраста—0dependency graph
Стоимость sync-цикланизкаясредняяci-метрики

Чему вы научитесь

  • Строить threat model по STRIDE и привязывать её к архитектуре ОС.
  • Оформлять требования приватности как измеримые характеристики по ISO/IEC 25010.
  • Читать и анализировать патчи C-кода и отличать интерфейсные изменения от логических.
  • Проектировать диаграммы C4 и UML так, чтобы нормоконтроль их принял.
  • Считать метрики сопровождения форка: lead time, MTTR, частота конфликтов.
Чек-лист перед сдачей
  • Все задачи из введения дословно совпадают с выводами по главам.
  • Каждая нормативная ссылка (152-ФЗ, ГОСТ 34, ISO/IEC 25010) имеет точную редакцию и дату.
  • Диаграммы пронумерованы, подписаны, есть список обозначений.
  • Метрики в главе 3 посчитаны для двух состояний — до и после.
  • Оформление списка литературы по ГОСТ Р 7.0.100-2018.
  • Отчёт о проверке на антиплагиат с исходным файлом.
  • Приложения содержат полные листинги патчей, а не скриншоты.
Типичные ошибки студентов
  1. Путают форк и удаление кода. Форк — это сопровождение diverged-ветки, а не разовый патч. Если в работе не описана стратегия синхронизации с upstream, тема не раскрыта. Опишите хотя бы rebase-flow и политику конфликтов.
  2. Считают «приватность» без метрики. Формулировка «стало приватнее» на защите не принимается. Привяжите к числу полей, точкам доступа, объёму логов. Иначе рецензент справедливо спросит: как вы это измерили?
  3. Игнорируют регуляторику. Вывод про возраст без ссылки на 152-ФЗ или GDPR выглядит публицистикой. Статья про GrapheneOS — отличный повод показать, что техническое решение конфликтует с правовым полем.
Если тема кажется объёмнее, чем есть времени, — это нормально. Подготовка полноценной ВКР занимает около 120 часов: литобзор, моделирование, реализация, оформление. Можно взять бесплатную консультацию и обсудить, как сузить кейс форка до защищаемого объёма, а можно заказать диплом у специалистов — поможем с любой темой, включая ИБ и системное ПО.

Материал подготовлен экспертами компании [Название сайта]. Мы помогаем студентам с 2010 года: от выбора темы и составления плана до нормоконтроля и подготовки к защите. Если вам нужна помощь с дипломом или отдельной главой — наши специалисты готовы подсказать.

Последнее обновление: 2026-09-12

Источник: Создан форк systemd без хранения возраста. GrapheneOS отказался верифицировать возраст (опубликовано 2026-03-24)