Каталог курсов

Курсы Security

Основы безопасного программирования с использованием инструментальных средств анализа программного кода

 
Код курса  Код: PRO MUK01    Заявка  Предварительная запись    Продолжительность  Кол-во часов: 32 , Кол-во дней: 4


Качественный, настроенный и ориентированный на безопасность жизненный цикл разработки программного обеспечения (ЦРПО) - это ключ к успеху приложений. Наши эксперты по безопасности помогут Вашей команде разработчиков создавать безопасные приложения, встраивая требования безопасности в процесс разработки, начиная с самой первой фазы.

Что такое безопасный ЦРПО?
Проблемы безопасности в приложениях часто являются следствием недоработок на уровне проектирования, недостаточно высоких стандартов программирования и ошибок программистов. К сожалению, устаревший взгляд, что проверка безопасности должна проводиться только на завершающей стадии, и важна только перед выпуском приложения, все еще очень распространен. Безопасность приложения зависит от успешной интеграции и включения мер обеспечения и требований безопасности в течение всего цикла разработки программного обеспечения (ЦРПО).

Почему безопасный ЦРПО так важен?
Безопасный ЦРПО предполагает использования стандартов и практик безопасного программирования, позволяя разработчикам лучше понять влияние их решений и быть в курсе, какие части приложения могут стать объектом атаки.
Самая лучшая броня - быть дальше, чем расстояние выстрела.

Цель курса:
• Введение в проблему безопасного программирования.
• Обучение работы с инструментальными средствами анализа кода Splint
Целевая аудитория: специалисты служб ИТ и/или ИБ, ответственные за внедрение программных продуктов, разработчики, инженеры по тестированию, программисты.

Пакет слушателя
• Фирменное учебное пособие в электронном виде.
• Организационно-распорядительные и методические материалы, на основе которых ведется обучение, дополнительная и справочная информация по тематике курса в электронном виде.

Программа курса
День 1
Модуль 1. Понятие уязвимости.
Модуль 2. Почему уязвимости опасны, кто и как их эксплуатирует.
Модуль 3. Теоретические сведения и практические примеры уязвимостей в программном коде.
Модуль 4. Теоретические основы формирования хакерских атак
Модуль 5.. Примеры успешных хакерских атак на систему посредством эксплуатации уязвимостей.
Модуль 6. Причины возникновения уязвимостей в программном коде.
Модуль 7. Классификаторы уязвимостей.
Модуль 8. Анализ устойчивости операционной системы к воздействию вредоносных программ (подмена, замещение, модификация целевых файлов).
Модуль 9. Введение в цикл разработки ПО.
Модуль 10. Особенности современной разработки и описание типовых сценариев появления уязвимостей в программном коде.
Модуль 11. Введение в SDLC (secure development lifecycle).
Модуль 12. Понятие электронно-цифровой подписи (ЭЦП) и её использование при разработке.

День 2
Модуль 13.. Принципы работы статических анализаторов кода. Чем анализаторы отличаются и как они работают.
Модуль 14. Сравнение разных статических анализаторов на учебных приложениях (учебные приложения составляются с наглядными уязвимостями, сконцентрированными в небольшом приложении).
Модуль 15. Принципы анализа кода, внутреннее представление программы для анализа.
Модуль 16. Правила для описания новых уязвимостей.
Модуль 17. Повышение качества работы статического анализатора.
Модуль 18. В практическом блоке упражнений будут предложены задания для сравнения работы разных анализаторов на практике. Сравнение полноты анализа.
Модуль 19. Статический анализ реальных проектов.
Модуль 20. Анализ многоязыковых приложений.
Модуль 21. Ложные срабатывания (False positive) – теоретическая составляющая: причины возникновения ложных срабатываний.
Модуль 22. Фильтрация ложных срабатываний.
Модуль 23. Полнота анализа и пропущенные ошибки (False negative).

День 3
Модуль 24. Ошибки, которые статический анализатор не находит.
Модуль 25. Динамический анализ и анализ времени выполнения.
Модуль 26. Почему нужен Dynamic analysis, если есть Static analysis?
Модуль 27. Принцип работы динамического анализатора.
Модуль 28. Принцип работы анализатора времени выполнения.
Модуль 29. Какие уязвимости можно обнаружить, какие требования выдвигаются к приложениям, чтобы можно было применять инструментальные средства анализа кода.
Модуль 30. Демонстрация работы динамического модуля и модуля времени выполнения.
Модуль 31. Примеры эксплуатации уязвимостей Web-приложений и защита от них посредством использования динамического модуля и модуля времени выполнения.
Модуль 32. Разработка безопасного ПО с использованием лучших практик.
Модуль 33.. Повышение качества разработки ПО при использовании сканеров безопасности
Модуль 34.. Настройка модуля динамического анализа.
Модуль 35. Настройка модуля времени выполнении приложений.
Модуль 36. Интеграция инструментальных средств анализа кода с другими инструментальными системами, участвующими в разработке ПО.
Модуль 37. Сканеры безопасности как средство анализа ПО.
Модуль 38. Контроль целостности и модификации исполняемых файлов.

День 4.
Демонстрация решений — сканеров безопасности:
• Сканера WEB – приложений;
• Сканера общего назначения;
• Сканера решений класса InfoWatch;
• Сканера решений для контроля целостности файлов
• Сканера HIPS.
Подведение итогов, ответы на вопросы.



Ссылка курса обучения
Назад в раздел