Слайды
Один крупный экран на проекторе. Переходы стрелками, колесом мыши, свайпом или кнопками снизу.
Большой учебный лендинг В.А. Пикова о том, как превращать идеи, пользовательские сценарии, ГОСТы и требования РБПО в проверяемое ТЗ.
По умолчанию открыт режим слайдов с крупными шрифтами. Лонгрид нужен слушателю после занятия: поиск, копирование, печать и повторение.
Один крупный экран на проекторе. Переходы стрелками, колесом мыши, свайпом или кнопками снизу.
Все экраны идут вертикально. Слева появляется содержание, активная тема подсвечивается при прокрутке.
Кнопка A переключает крупный и очень крупный режим. Базовый вариант сразу рассчитан на аудиторию.
Раздаточный материал лежит рядом с лендингом и открывается без сервера, базы данных и внешних зависимостей.
Скачать методичку Markdownmaterials/лекции/методичка-по-написанию-ТЗ.md ↓Курс построен как инженерный маршрут: сначала понять продукт, потом написать требования, потом связать их с приемкой и РБПО.
Если нет пользователя, сценариев, интерфейсов, архитектурных ограничений и модели угроз, документ будет имитировать определенность.
Закажите аудит текущего ТЗ или проведите корпоративное обучение для вашей команды. Мы внедрим практики РБПО и ГОСТ без остановки разработки.
Методолог, эксперт по информационной безопасности и разработке безопасного ПО (РБПО).
Более 15 лет в ИТ и ИБ. Специализируется на стыке государственных стандартов (ГОСТ) и современных практик разработки (Agile, DevSecOps).
Обучение проводится на базе одного из ведущих учебных центров страны в области защиты информации.
Образовательная деятельность по программам повышения квалификации и профпереподготовки.
Слушатели получают документы установленного образца, признаваемые регуляторами.
Разбор реальных кейсов, работа с инструментами анализа (SAST/SCA) и шаблонами ГОСТ.
Я открыт для предложений по аудиту ТЗ, внедрению процессов РБПО и корпоративному обучению.
ТЗ становится рабочим инструментом только тогда, когда оно управляет границами, сроками, приемкой и безопасностью.
В нем должны быть не красивые формулировки, а управляемые единицы работ: что реализуем, почему, как проверяем, кто принимает.
Получает контроль результата, бюджета, сроков и состава приемки.
Получает однозначный объем работ и защиту от бесконечных переделок.
Получает трассируемые критерии соответствия и подтверждающие артефакты.
Понимание должно быть проверяемым: одинаковая трактовка у заказчика, аналитика, разработчика, тестировщика и специалиста по ИБ.
Один текст допускает разные варианты реализации.
Нельзя построить тест, измерение, инспекцию или демонстрацию.
Не описаны роли, ограничения, данные, исключения и критерии приемки.
Один и тот же пункт должен быть понятен разным участникам проекта, но в каждой роли он отвечает на свой вопрос.
| Роль | Вопрос | Что должно быть в ТЗ |
|---|---|---|
| Бизнес | Какой результат покупаем? | Цель, границы, критерии успеха, ограничения бюджета и сроков. |
| Разработка | Что именно делать? | Функции, интерфейсы, данные, статусы, ошибки, интеграции. |
| Испытания | Как принять? | Методы проверки, ожидаемые результаты, связь с ПМИ. |
| ИБ | Что защищаем? | Угрозы, меры, процессы РБПО, SAST/SCA/SBOM, артефакты. |
Шаблон помогает оформить результат размышления. Он не должен подменять исследование продукта, пользователя, архитектуры и рисков.
Даже длинный документ может не защищать заказчика, если в нем нет однозначных критериев приемки и границ трактования.
ТЗ фиксирует договоренности о продукте, а не заменяет обсуждение продукта.
Качественное ТЗ заранее определяет, что будет считаться готовым результатом.
Четкое ТЗ защищает команду от ситуации, когда после реализации выясняется, что “имелось в виду другое”.
Понятно, какие функции, интерфейсы и процессы входят в работу.
Видны технологические, организационные, безопасностные и эксплуатационные рамки.
Команда понимает, какие проверки завершат работу и какие артефакты нужны.
Чем позже обнаружена неоднозначность, тем дороже ее исправление: меняется код, тесты, документация, сроки и доверие.
| Стадия | Что ломается | Цена исправления |
|---|---|---|
| До ТЗ | Формулировка и сценарий | Низкая: меняем текст и договоренность. |
| Во время разработки | Код, задачи, архитектурные решения | Средняя: меняем реализацию и план. |
| На приемке | Результат и договорные ожидания | Высокая: спор, переработка, перенос сроков. |
| После внедрения | Эксплуатация и безопасность | Критическая: инциденты, простой, уязвимости. |
Требования безопасности должны появляться из угроз, регуляторики, архитектуры, состава компонентов и процессов разработки.
Документ задает проверяемую рамку. Качество появляется, когда требования связаны с архитектурой, кодом, тестами, сборкой и приемкой.
Что должно быть выполнено.
Как команда воплотит требование в коде и конфигурации.
Каким тестом, анализом или документом будет доказано выполнение.
Если документ помогает понять, реализовать, проверить и принять результат, он работает. Если нет — это просто текст.
ГОСТы задают дисциплину документа, а инженерные практики помогают формулировать требования так, чтобы они работали в разработке.
Стандарт помогает не забыть обязательные разделы, стадии, контроль и приемку. Но содержание требований все равно рождается из проекта.
Подходит, когда основной объект разработки — программа, программное изделие или компонент.
Для чего создается программа и какие задачи должна решать.
Функции, надежность, условия эксплуатации, совместимость, документация.
Порядок испытаний, приемки и подтверждения соответствия.
АС включает пользователей, процессы, данные, технические средства, интеграции, эксплуатацию и ввод в действие.
| Раздел | Что дает проекту |
|---|---|
| Общие сведения | Основание, заказчик, исполнитель, сроки, источники финансирования. |
| Назначение и цели | Зачем создается система и как измерить результат. |
| Требования к системе | Функции, надежность, безопасность, эргономика, интерфейсы. |
| Состав работ | Стадии, этапы, контроль, приемка, подготовка объекта автоматизации. |
Если ТЗ не переводится в программу и методику испытаний, оно не готово к управлению результатом.
Для безопасной разработки мало описать функции продукта. Нужно предъявить требования к процессам разработки, сборки, анализа, компонентов и поддержки.
Формирование и предъявление требований безопасности к ПО.
Статический анализ исходного кода и управление результатами.
Композиционный анализ, зависимости, SBOM/PPK, лицензии и уязвимости.
В ТЗ нужно не ссылаться на стандарт общими словами, а перечислять процессы, условия применимости и состав подтверждающих артефактов.
Модель угроз нужна не для приложения к ТЗ, а для вывода конкретных мер, ограничений и критериев проверки.
Эти источники полезны, когда ГОСТ задает процесс, а проекту нужны конкретные требования к аутентификации, авторизации, сессиям, журналам и API.
Проверяемые требования к прикладной безопасности.
Карта распространенных классов рисков веб-приложений.
Словарь классов ошибок, который связывает требования, SAST и обучение разработчиков.
В проектах системного ПО и САПР нельзя ограничиться веб-чеклистом. Нужны правила безопасного C/C++ и контроль компиляции.
Рамка полезна для сопоставления российских требований РБПО с понятными практиками secure software development.
Политики, роли, инструменты, обучение, критерии готовности.
Защита кода, секретов, сборочной среды и цепочки поставки.
Уязвимости, исправления, уведомления, lessons learned.
Требования продукта должны жить в системе управления: роли, риски, контроль изменений, поставщики, инциденты и улучшения.
Часто нужен не один документ, а комбинация: структура ТЗ по ГОСТ 19/34 плюс процессы безопасности по ГОСТ Р 56939.
| Ситуация | Базовый каркас | Что добавить |
|---|---|---|
| Программный компонент | ГОСТ 19.201-78 | РБПО, SAST, SCA, требования к сборке. |
| Автоматизированная система | ГОСТ 34.602-2020 | Интерфейсы, ввод в действие, эксплуатация, безопасность. |
| ОКР с безопасным ПО | ГОСТ 19/34 + ГОСТ Р 56939 | Явное перечисление процессов и артефактов по п. 4.15. |
| MVP или малый проект | Упрощенный шаблон | User stories, критерии приемки, security baseline. |
ТЗ сильное тогда, когда нормативный каркас соединен с реальными сценариями, угрозами, ограничениями и проверками.
Бизнес, пользователь, функционал, интерфейсы, backend/администрирование и безопасность должны быть понятны до формализации требований.
Без цели требования превращаются в набор несвязанных пожеланий. Цель задает границы, приоритеты и критерии успеха.
Что изменится после внедрения системы.
Как измерить, что проект действительно сработал.
Сроки, бюджет, регуляторика, контур эксплуатации, доступность ресурсов.
Требование должно быть связано с тем, кто выполняет действие, зачем и в какой ситуации.
Как <роль>, я хочу <действие>, чтобы <ценность/результат>.
Критерий: сценарий можно продемонстрировать и принять.
Перечень функций сам по себе слаб. Нужны входные данные, действия пользователя, бизнес-правила, исключения и ожидаемый результат.
Для UI, API и интеграций нужно заранее понимать точки взаимодействия и контракты.
| Интерфейс | Что фиксировать |
|---|---|
| Пользовательский UI | Экран, состояние, ошибка, роль, доступность, язык сообщений. |
| API | Метод, endpoint, схема данных, коды ответов, лимиты, аутентификация. |
| Интеграция | Стороны обмена, формат, расписание, retries, журналирование. |
| Админка | Роли, настройки, аудит, экспорт, блокировки, ручные операции. |
Многие критичные требования не видны пользователю: данные, роли, журналы, фоновые задачи, конфигурация и эксплуатационные процедуры.
Сущности, жизненный цикл, хранение, резервирование, удаление.
Права доступа, администраторы, операторы, аудиторы, сервисные учетные записи.
Импорт, экспорт, настройки, мониторинг, журналы, восстановление.
ТЗ должно отражать активы, нарушителей, поверхность атаки и меры защиты, иначе раздел безопасности будет декларативным.
Нельзя требовать поведение, которое противоречит выбранной платформе, интеграционному контуру, режиму эксплуатации или безопасной сборке.
Если этих материалов нет, ТЗ будет строиться на догадках и быстро начнет конфликтовать с реальностью проекта.
| Артефакт | Зачем нужен |
|---|---|
| Описание проблемы | Понимать ценность и границы результата. |
| Список ролей | Вывести сценарии и права доступа. |
| User stories | Связать требования с пользовательской ценностью. |
| Wireframes/API | Уточнить интерфейсы и контракты. |
| Модель угроз | Вывести требования безопасности. |
| Черновик ПМИ | Проверить приемочность требований. |
Визуально документ выглядит солидно, но не отвечает на вопросы разработки и приемки.
Эта последовательность удерживает документ от преждевременной формализации.
Когда входные артефакты собраны, документ становится инструментом фиксации, а не средством коллективного угадывания.
Требование — это рабочая единица проектирования, разработки, тестирования и приемки. У нее есть ID, источник, критерий и статус.
Описание текущего состояния, пожелание или рассуждение не являются требованием.
Если пункт нельзя проверить одним тестом или одной связанной группой проверок, его надо разделить.
Если заказчик, разработчик и испытатель понимают слово по-разному, требование не готово.
Определяет термины: пользователь, администратор, заявка, инцидент, компонент.
Указывает роли, состояние системы, исключения и ограничения.
Показывает, как требование будет выглядеть в сценарии или тесте.
Проверка может быть тестом, демонстрацией, измерением, анализом или инспекцией. Без проверки это не требование, а пожелание.
| Метод | Когда применять |
|---|---|
| Демонстрация | Поведение видно в интерфейсе или сценарии. |
| Тест | Поведение воспроизводится по шагам. |
| Измерение | Нужны численные показатели: время, нагрузка, доступность. |
| Анализ | Проверяется код, архитектура, модель угроз или конфигурация. |
| Инспекция | Проверяются документы, журналы, настройки и артефакты. |
Реализуемость зависит от технологий, сроков, квалификации, регуляторики, контуров эксплуатации и инструментов.
Источник объясняет, почему требование существует и кто имеет право его изменить.
Цель, эффект, договоренность, KPI.
Сценарий, роль, боль, контекст работы.
Модель угроз, ГОСТ, OWASP, CWE, BDU/NVD/OSV.
Платформа, контур, интеграции, ограничения эксплуатации.
Пробелы создают догадки, а дубли создают конфликты при изменениях.
Конфликт может быть функциональным, архитектурным, безопасностным, эксплуатационным или договорным.
Трассируемость нужна не для красоты. Она отвечает на вопрос: почему это есть, кто делает, где проверяется и чем подтверждено.
Не все требования одинаково важны. Критичность нужна для планирования, компромиссов, приемки и обработки дефектов.
| Словарь | Когда удобен |
|---|---|
| Must / Should / Could | MVP, продуктовая разработка, гибкие проекты. |
| Critical / High / Medium / Low | Безопасность, уязвимости, дефекты, SAST/SCA. |
| Обязательное / рекомендуемое | Нормативные и договорные требования. |
Минимальные поля должны позволять найти источник, понять формулировку, проверить выполнение и управлять статусом.
| Поле | Смысл |
|---|---|
| ID | Стабильная ссылка на требование. |
| Источник | Почему требование существует. |
| Формулировка | Что должно быть выполнено. |
| Критерий приемки | Как понять, что выполнено. |
| Метод проверки | Тест, анализ, инспекция, демонстрация или измерение. |
| Приоритет и статус | Как управлять жизненным циклом. |
Одно требование, один источник, один критерий приемки и понятный метод проверки.
SEC-REQ-014
Источник: модель угроз TM-03; ГОСТ Р 56939-2024 п. 5.3
Формулировка: система должна регистрировать все неуспешные попытки аутентификации
с указанием идентификатора пользователя, времени, IP-адреса и причины отказа.
Критерий приемки: запись появляется в журнале аудита и доступна роли администратора безопасности.
Метод проверки: функциональное испытание + инспекция журнала.
Приоритет: High.
В авторской лекции по РБПО отдельно звучит мысль: требования безопасности имеют статусы, даты, ответственных и историю изменений.
В лекции такие моменты полезно визуально выделять: аудитория должна увидеть, где начинается риск будущего спора.
| Плохо | Почему плохо | Как исправить |
|---|---|---|
| Система должна быть безопасной | Нельзя проверить | Разложить на угрозы, меры и критерии. |
| Должна быть удобной | Субъективно | Указать сценарий, метрику или критерий доступности. |
| Учесть ГОСТ Р 56939 | Нет состава работ | Перечислить процессы и артефакты. |
| Все ошибки должны обрабатываться | Слишком общо | Описать классы ошибок, ответы, журналы, уведомления. |
Не надо ждать конца проекта. Слабое требование дешевле исправить до постановки задач.
Оно сообщает, что нужно сделать, почему это нужно, как проверить и как управлять изменениями.
Смешение типов требований делает ТЗ мутным. Разделение типов помогает выбрать метод проверки и владельца.
Что система делает.
С каким уровнем сервиса работает.
Как предотвращает угрозу, снижает риск или выполняет нормативное требование.
Оно проверяется демонстрацией сценария или функциональным тестом.
FT-AUTH-001.
Система должна предоставлять пользователю возможность входа
по адресу электронной почты и паролю.
Слова “быстро”, “удобно”, “надежно” должны быть переведены в метрики, условия и способ измерения.
NFT-PERF-001.
Время ответа API поиска не должно превышать 500 мс
для 95 процентиля запросов при нагрузке 100 одновременных пользователей.
Оно может быть функциональным по форме, но его источник — риск, нормативка, модель угроз или известный класс уязвимостей.
SEC-AUTH-003.
Система должна блокировать учетную запись на 15 минут после
5 последовательных неуспешных попыток аутентификации в течение 10 минут.
Если участники путаются, возвращаемся к трем диагностическим вопросам.
| Тип | Главный вопрос | Проверка |
|---|---|---|
| Функциональное | Что система делает? | Функциональный тест или демонстрация. |
| Нефункциональное | С каким качеством работает? | Измерение, нагрузка, мониторинг. |
| Безопасность | Какой риск или норматив закрываем? | Модель угроз, SAST, DAST, SCA, инспекция. |
Лучше показать источники на слайде, чем оставлять безопасность как “общий раздел”.
Активы, нарушители, сценарии атаки, поверхность атаки.
БДУ ФСТЭК, NVD, OSV: известные CVE и обновления компонентов.
OWASP, CWE, CERT C/C++, MISRA C/C++, ГОСТ Р 56939.
Требования безопасности должны закрывать реальные точки взаимодействия, а не абстрактную “защищенность”.
Если продукт пишется на C/C++, ТЗ может и должно задавать требования к SAST, sanitizers, compiler hardening и правилам кодирования.
| Направление | Пример требования |
|---|---|
| Память | Запрет небезопасных API без обоснования и wrapper-слоя. |
| Компиляция | Включить stack protector, FORTIFY, warnings-as-errors по согласованному профилю. |
| Sanitizers | Регламентировать ASan/UBSan/TSan для тестовых сборок. |
| Стандарты кода | CERT C/C++ или MISRA C/C++ как источник правил. |
Без SCA и SBOM заказчик не понимает, что входит в продукт, какие лицензии используются и какие уязвимости уже известны.
Наименование, версия, поставщик, лицензия, источник получения.
Формализованный состав поставки и база для проверок.
BDU/NVD/OSV, критичность, статус исправления или принятия риска.
Поздняя безопасность почти всегда дороже, слабее и конфликтует с уже принятыми решениями.
Отчет SAST, SBOM, протокол тестирования, журнал исправлений и решение о риске — это приемочные артефакты, а не внутренние заметки команды.
Пока тип не определен, команда спорит не о реализации, а о самом смысле пункта.
ГОСТ Р 56939-2024 требует управлять не только продуктом, но и процессом разработки безопасного ПО.
Это центральный процесс для темы ТЗ: требования безопасности должны быть сформированы, предъявлены, отслежены и пересмотрены.
Как организация управляет требованиями безопасности.
ID, формулировка, даты, приоритеты, ответственные и статусы.
Критерии изменения набора требований при событиях проекта.
В лекции отдельно подчеркивается: регламент не должен быть формальностью, он описывает, кто, что, как и когда делает.
ГОСТовая логика требует не только текст, но и атрибуты жизненного цикла.
| Поле | Зачем |
|---|---|
| ID | Стабильная трассировка требования. |
| Формулировка | Что предъявлено исполнителю. |
| Дата | Когда требование появилось или изменилось. |
| Приоритет | Как планировать реализацию и приемку. |
| Срок | Когда требование должно быть выполнено. |
| Предъявивший / принявший | Кто отвечает за постановку и принятие. |
| Статус | Предъявлено, принято, реализуется, проверено, отклонено. |
Пересмотр нужен не только по расписанию, но и при событиях: изменениях архитектуры, угроз, компонентов, назначения ПО.
Появились новые интерфейсы, контуры, интеграции, роли.
Новая CVE/BDU/OSV затрагивает компонент или платформу.
Изменились бизнес-функции, класс данных, режим эксплуатации.
Вопрос аудитора: что было на входе, что сделали, что получили и где это проверяется.
| Элемент | Пример |
|---|---|
| Вход | ТЗ, модель угроз, нормативные требования, архитектура, сведения о компонентах. |
| Действие | Анализ, формирование, согласование, предъявление, пересмотр. |
| Выход | Реестр требований безопасности, изменения, статусы, задачи, артефакты приемки. |
| Контроль | ПМИ, документарная проверка, выборочная инструментальная проверка. |
Если меняется код, сборка, инструмент или требование, это должно быть управляемым изменением.
Иначе требования безопасности теряются между трекером, перепиской и устными договоренностями.
В ТЗ нужно указать профиль правил, периодичность, пороги, разбор срабатываний и финальный отчет.
| Что требовать | Как проверять |
|---|---|
| Профиль правил | Соответствие языкам, критичности и типам проекта. |
| Первичный анализ | Отчет baseline и план обработки. |
| Финальный анализ | Отчет перед поставкой и статусы Critical/High. |
| Разметка срабатываний | True positive, false positive, accepted risk, fixed. |
Если сборка не описана и не воспроизводима, трудно доказать, что поставлен именно проверенный результат.
В лекции отдельно звучит вопрос: кто может читать, менять, удалять и передавать исходный код и результаты проверки.
Разработчик, reviewer, security, release manager, auditor.
Чтение, запись, merge, release, просмотр отчетов.
Журналы доступа, защита веток, обязательное ревью.
Требование должно описывать хранение, доступ, ротацию и проверку секретов.
ТЗ должно требовать перечень компонентов, лицензии, версии, источники, уязвимости и статус реагирования.
| Артефакт | Содержание |
|---|---|
| SBOM/PPK | Компоненты, версии, поставщики, лицензии, источники. |
| Отчет SCA | Уязвимости, критичность, затронутые версии, рекомендации. |
| License review | Совместимость лицензий и ограничения распространения. |
| Решение по риску | Исправить, обновить, заменить, принять риск с обоснованием. |
Тесты не должны жить отдельно. Каждое требование получает проверку, а каждый тест имеет ожидаемый результат.
Без регламента поддержки уязвимость превращается в переписку без владельца, срока и решения.
Пользователь должен понимать, когда прекращается поддержка, как мигрировать и что происходит с уязвимостями после EOL.
Сроки, адресаты, каналы, последствия.
Рекомендации по обновлению или замене.
Что остается на стороне пользователя после завершения поддержки.
В ПМИ нужно включить документарный контроль регламентов, отчетов, журналов и решений по рискам.
Если процесс не назван и артефакт не указан, приемка безопасности будет спорной.
Финальная проверка курса: каждое требование должно перейти в метод проверки, пункт ПМИ и приемочный артефакт.
Она связывает ID требования, источник, метод проверки, пункт ПМИ и ожидаемый результат.
| ID | Источник | Метод | ПМИ | Ожидаемый результат |
|---|---|---|---|---|
| FT-ORD-001 | User Story US-05 | Тест | PMI-FT-012 | Пользователь создает заказ. |
| NFT-PERF-002 | SLA проекта | Измерение | PMI-NFT-004 | p95 API не выше 500 мс. |
| SEC-SCA-001 | ГОСТ Р 56939 п. 5.16 | SCA + инспекция | PMI-SEC-008 | Есть SBOM/PPK без критичных неисправленных уязвимостей. |
Нельзя все проверять демонстрацией. Безопасность и качество часто требуют анализа, измерения и инспекции.
Показываем сценарий в интерфейсе.
Выполняем шаги и сверяем результат.
Фиксируем численные показатели.
Проверяем код, архитектуру, модель угроз.
Проверяем документы, журналы, отчеты и настройки.
Gate нужен не для бюрократии, а для защиты проекта от неясных требований и неуправляемой безопасности.
Лендинг не только показывает слайды, но и ведет к материалам, шаблонам, чек-листам и примерам.
Слушатель может открыть Markdown, чек-листы, шаблоны и примеры прямо с сайта.
Перед финалом лекции это удобно выделить красным: аудитория должна унести строгий критерий готовности.
Одна трактовка у всех участников.
Есть техническая возможность и границы.
Есть метод и ожидаемый результат.
Есть пункт ПМИ и артефакт приемки.
Курс соединяет продуктовую ясность, нормативную дисциплину, качество требований, РБПО и приемку.
Авторский курс по техническим заданиям, ГОСТ и разработке безопасного программного обеспечения.