Программа курса:
Раздел 1. Основы информационной безопасности. Основные руководящие нормативные и методические документы РФ. Основные методы защиты от угроз нарушения конфиденциальности, целостности и доступности информации. Модели угроз, нарушителя и модели защиты.
• Создание проекта модели угроз, нарушителя и модели защиты с использованием БДУ ФСТЭК России.
Раздел 2. Хроника языков программирования. Проектирование архитектуры программного обеспечения. Жизненный цикл разработки безопасного программного обеспечения.
• Практика создания программ на популярных языках программирования с учетом требований безопасности.
Раздел 3. Методологии разработки безопасного программного обеспечения.
• Основные практики и принципы безопасной разработки;
• Software Development Lifecycle (SDLc);
• Основные практики Security Development Lifecycle (SDL);
• DevOps;
• DevSecOps;
• Методики оценки зрелости ИБ процессов;
• Принципы дизайна.
Раздел 4. Понятийная база (основные термины и определения) процессов безопасной разработки программного обеспечения.
• Оценивание программного обеспечения в соответствии с ГОСТ ИСО/МЭК 15408-Х (ч. 1, 2, 3);
• Изучение взаимосвязи мер по разработке безопасного программного обеспечения (ГОСТ Р 56939–2024 (с ретроспективой требований ГОСТ Р 56939–2016)) и требований ГОСТ Р ИСО/МЭК 15408–3.
Раздел 5. Общие сведения о сертификации и лицензировании программного обеспечения. Основные руководящие нормативные и методические документы. Сертифицированные испытания. Структура документации для подачи заявки и проведения сертификационных испытаний по требованиям доверия согласно требованиям приказа ФСТЭК России от 2 июня 2020 г. № 76. Структура документации для подачи заявки и проведения сертификационных испытаний в соответствии с требованиями приказа Министра обороны Российской Федерации 2020 года № 488.
• Создание проекта документации для подачи заявки на проведение сертификационных испытаний, проведения сертификационных испытаний по требованиям доверия в соответствии с требованиями приказа ФСТЭК России от 2 июня 2020 г. № 76;
• Проведение сертификационных испытаний по требованиям доверия в соответствии с требованиями приказа ФСТЭК России от 2 июня 2020 г. № 76.
Раздел 6. Общие сведения о сертификации программного обеспечения в соответствии с требованиями приказа Министра обороны Российской Федерации. Основные руководящие нормативные и методические документы. Сертифицированные испытания. Структура документации для подачи заявки и проведения сертификационных испытаний в соответствии с требованиями приказа Министра обороны Российской Федерации 2020 года № 488.
• Проведение сертификационных испытаний по требованиям системы сертификации средств защиты информации в Министерстве обороны Российской Федерации;
• Создание проекта для подачи заявки на проведение сертификационных испытаний, проведения сертификационных испытаний по требованиям системы сертификации средств защиты информации в Министерстве обороны Российской Федерации.
Раздел 7. Организация на предприятии процессов БРПО. Руководство по разработке безопасного ПО в соответствии с требованиями ГОСТ Р 56939–2024 (с ретроспективой требований ГОСТ Р 56939–2016).
• Руководство по разработке безопасного ПО в соответствии с требованиями ГОСТ Р 56939–2024 (с ретроспективой требований ГОСТ Р 56939–2016).
Раздел 8. Планирование процессов разработки безопасного ПО. Процессы жизненного цикла ПО. Порядок организации работ по созданию безопасного ПО, выполняемых в рамках процессов жизненного цикла ПО.
• Порядок организации работ по созданию безопасного ПО, выполняемых в рамках процессов жизненного цикла ПО;
• Дорожная карта (алгоритм) внедрения БРПО на предприятии.
Раздел 9. Обучение сотрудников в соответствии с требованиями ГОСТ Р 56939–2024 (с ретроспективой требований ГОСТ Р 56939–2016).
• Создание проекта плана обучения. Организация учёта обучения сотрудников;
• Мероприятия по повышению осведомленности разработчика о возможных типовых угрозах, ошибках и уязвимостях в разрабатываемом ПО, механизмах их недопущения или минимизации вероятности их возникновения, порядке сопровождения ПО и управления жизненным циклом.
Раздел 10. Формирование и предъявление требований безопасности к ПО.
• Формирование требований к безопасному ПО с учётом требований законов, нормативных правовых актов, отраслевых стандартов, перечня требований пользователя, а также сценариев применения безопасного ПО. Разработка технического задания на создание безопасного ПО в соответствии с требованиями ГОСТ 19.201.
Раздел 11. Управление конфигурацией ПО.
• Регламент управления конфигурацией в рамках жизненного цикла ПО;
• Регламент управления конфигурацией в рамках жизненного цикла ПО.
Раздел 12. Управление недостатками и запросами на изменение ПО.
• Требования безопасности к принципам проектирования архитектуры ПО, направленным на снижение количества потенциальных уязвимостей с учетом результатов моделирования угроз безопасности информации;
• Как получить документально оформленный проект архитектуры программы.
Раздел 14. Моделирование угроз.
• Меры по нейтрализации угроз безопасности, связанных с особенностями реализации архитектуры ПО, модель угроз.
Раздел 15. Разработка описания поверхности атаки.
• Описание поверхности атаки. Угрозы безопасности ПО, актуальные для выполненных изменений. Анализ поверхности атаки методом сканирования интерфейсов ПО (локальных и сетевых интерфейсов взаимодействия с ПО (модулями ПО) пользователя и взаимодействий модулей ПО между собой, средой функционирования и внешними объектами при их наличии;
• Перечень целей (функциональных подсистем, программных модулей ПО и их интерфейсов) для проведения дальнейших исследований безопасности ПО (например, фаззинг - тестирования) с учетом архитектуры ПО, результатов моделирования угроз и выполнения анализа поверхности атаки для разработанного кода ПО).
Раздел 16. Статический анализ исходного кода. Регламент проведения статического анализа исходного кода ПО. Инструменты статического анализа.
• Практика применения статических анализаторов на стеке разработки веб-приложений.
Раздел 17. Применение статического анализа для обеспечения безопасной разработки. Инструменты статического анализа. Методы статического анализа программного кода.
• Практика применения статических анализаторов для компилируемых языков;
• Статический анализ кода, экспертиза исходного кода программы (ручное рецензирование). Применение автоматизированных средств при сертификационных испытаниях на примере использования анализатора исходных текстов «АК-ВС 3». Разбор дефектов и ручная разметка результатов статического анализатора.
Раздел 18. Подходы к формированию исходных данных для выполнения динамического анализа кода программы, фаззинг-тестирования программы и тестирования на проникновение в рамках процесса квалификационного тестирования ПО. Квалификационное тестирование ПО.
• Практика применения динамических анализаторов на стеке разработки веб-приложений.
Раздел 19. Динамический анализ кода программы. регламент проведения динамического анализа кода ПО. Инструменты динамического анализа и фаззинг -тестирования.
• Практика применения динамических анализаторов для компилируемых языков;
• Практика применения динамических анализаторов для анализа бинарных исполняемых модулей без исходного кода.
Раздел 20. Использование безопасной системы сборки ПО.
• Регламент безопасной сборки ПО.
Раздел 21. Обеспечение безопасности сборочной среды ПО.
• Регламент обеспечения безопасности сборочной среды;
• Схема сборочной среды. Журналы аудита процессов сборки ПО.
Раздел 22. Проверка кода на предмет внедрения вредоносного кода через цепочки поставок.
• Организация контроля зависящих от сторонних поставщиков элементов разработки. • Организация контроля договорных обязательств со сторонними поставщиками. • Организация процесса выявления элементов инфраструктуры разработчика, воздействие на которые может повлиять на возникновение недекларированных возможностей в ПО.
Раздел 23. Функциональное тестирование.
• План функционального тестирования. Отчет по результатам функционального тестирования. Журналы регистрации хода проведения функционального тестирования;
• Системы управления ошибками.
Раздел 24. Нефункциональное тестирование. Проведение нефункциональных тестов, в том числе, имитирующих действия потенциального нарушителя.
• Регламент проведения нефункционального тестирования. Описание объекта нефункционального тестирования. Отчет по результатам нефункционального тестирования.
Раздел 25. Теоретическая часть по анализу уязвимостей (тестирования на проникновение). Введение в OWASP Top 10. Разбор наиболее опасных уязвимостей веб-приложений.
• Проведение тестирования на проникновение на примере уязвимого веб-приложения. Практика применения автоматизированных средств (инструментов) при сертификационных испытаниях.
Практика выявления уязвимостей при проведении сертификационных испытаний класса:
• «Cross Site Scripting»;
• «Cross Site Request Forgery»;
• «SQL injection»;
• «Path traversal».