GOST

1.

Разработка безопасного
программного
обеспечения в
соответствии с ГОСТ Р
56939-2016
Понятия и средства статического и динамического анализа
программного обеспечения. Понятие фаззинга. Функциональное
тестирование программного обеспечения.

2.

Цель и задачи работы
Цель работы:
Изучить принципы разработки безопасного программного обеспечения в соответствии с ГОСТ Р 56939-2016 и рассмотреть методы анализа и
тестирования программного кода.
Задачи:
Ознакомиться с основными положениями ГОСТ Р 56939-2016.
Рассмотреть понятия статического и динамического анализа программного обеспечения.
Изучить принципы фаззинга и функционального тестирования.
Понять роль этих методов в обеспечении безопасности ПО.

3.

ГОСТ Р 56939-2016
«Защита информации. Разработка безопасного программного обеспечения.
Общие требования»
Требования к процессу
Устанавливает требования к процессу создания безопасного программного
обеспечения.
Жизненный цикл
Определяет принципы безопасного жизненного цикла разработки (SSDLC).
Встраивание мер
Требует встраивания мер безопасности на всех этапах разработки.
Контроль и анализ
Включает контроль кода, тестирование, анализ уязвимостей и
документирование.

4.

SSDLC (Secure Software Development Life Cycle)
Это процесс, при котором меры безопасности внедряются на каждом этапе разработки программного обеспечения.
Основные этапы:
Анализ требований
Реализация
(кодирование)
Ввод в эксплуатацию
Использование безопасных
развёртывание системы.
Определение функционала и
требований безопасности.
Безопасная настройка и
практик программирования.
1
2
3
4
5
6
Проектирование
Тестирование
Сопровождение
Разработка архитектуры с
Проверка кода с помощью
Обновления, устранение
учётом защиты данных и доступа.
статического, динамического
уязвимостей, контроль
анализа и фаззинга.
изменений.

5.

Статический анализ
Это проверка исходного кода без его выполнения, с целью выявить ошибки и уязвимости.
Основные задачи:
• Поиск уязвимостей (SQL-инъекции, переполнение буфера, XSS и др.)
• Проверка соблюдения стандартов кодирования
• Поиск логических ошибок
• Оценка качества и читаемости кода
Инструменты:
PVS-Studio
SonarQube
Fortify
Checkmarx
Klocwork

6.

Динамический анализ
Цель: Обнаружение ошибок, уязвимостей и аномалий, которые проявляются только при работе программы.
Позволяет выявить:
• Утечки памяти
• Ошибки в работе с потоками
• Неправильную обработку данных
• Неожиданное поведение программы
Инструменты:
Valgrind
OWASP ZAP
AppDynamics
Burp Suite
Dynatrace

7.

Фаззинг (Fuzz Testing)
Фаззинг (fuzz testing) — это метод динамического тестирования, при котором программе подаются случайные,
некорректные или искажённые данные, чтобы проверить её устойчивость.
Цели фаззинга:
• Найти уязвимости и ошибки обработки данных
• Проверить устойчивость программы к сбоям
• Выявить непредусмотренные реакции системы
Инструменты:
AFL (American Fuzzy Lop)
libFuzzer
OSS-Fuzz (Google)
Burp Intruder

8.

Функциональное тестирование
Функциональное тестирование — это проверка того, что программа выполняет заявленные функции и соответствует требованиям.
Основные виды:
1
2
3
4
Модульное
Проверка отдельных функций и компонентов.
Интеграционное
Проверка взаимодействия модулей.
Системное
Тестирование всей системы в целом.
Приёмочное
Проверка соответствия требованиям заказчика.
Цель: Убедиться, что программа работает корректно и выполняет все функции, указанные в техническом задании.

9.

Интеграция методов анализа и тестирования
Все методы — части единого процесса обеспечения безопасности в рамках ГОСТ Р 56939-2016.
Метод
Когда применяется
Основная цель
Статический анализ
На этапе разработки
Поиск ошибок и уязвимостей в коде без запуска
Динамический анализ
На этапе тестирования
Анализ поведения программы при выполнении
Фаззинг
При тестировании
Проверка устойчивости к некорректным данным
Функциональное тестирование
Перед внедрением
Проверка соответствия требованиям
Совместное использование этих методов обеспечивает:
2
Повышение надёжности и безопасности ПО
Снижение рисков эксплуатации уязвимостей
1
Выявление ошибок на ранних этапах
3

10.

Выводы
Стандарты ГОСТ
Безопасность на всех этапах
ГОСТ Р 56939-2016 задаёт стандарты безопасного жизненного
Безопасность должна обеспечиваться на всех этапах: от
цикла разработки (SSDLC).
проектирования до сопровождения.
Ключевые инструменты
Комплексный подход
Методы статического и динамического анализа, фаззинг и
Комплексное применение этих методов повышает надёжность и
функциональное тестирование — ключевые инструменты
устойчивость программного обеспечения.
выявления уязвимостей и ошибок.
Значение:
1
Снижение риска кибератак и
утечек данных.
2
Повышение доверия
пользователей и заказчиков.
3
Соответствие национальным и
международным стандартам
безопасности.

11.

Спасибо за
внимание !
English     Русский Правила