Защищенное программирование

Код курса

КП75

Продолжительность

40 ак. часов (5 дней)

Вендор

Курсы экспертов

Стоимость

60 000 

Форма обучения

Очно

Онлайн-трансляция

Тип программы

Практический курс

Ближайшая дата

19 - 23 апреля 2021

498789

Защищенное программирование

Код курса КП75, 5 дней

Статус

Курсы экспертов.

Аннотация

Данный курс предназначен для обучения разработчиков ПО принципам безопасного программирования. Поскольку лучше всего знания усваиваются на практике, в курсе изучаемые принципы, подходы и технологии разбираются на реальных примерах кода. Testing Driven Development (TDD) пришедший из экстремального программирования является одним из таких подходов. Немалое внимание уделяется и инструментальным средствам, разработанным для выявления ошибок и проблем безопасности в коде.

Аудитория

Курс предназначен для руководителей и специалистов:

  • отделов разработки и тестирования;
  • классификация уязвимостей в СОИ;
  • IT-подразделений;
  • подразделений по технической защите информации.

Предварительная подготовка

Опыт работы программистом, ведущим проекта, архитектором, специалистом по безопасности, системным администратором или специалистом по информационной безопасности.

Пакет слушателя

Раздаточные материалы в электронном виде, ручка, тетрадь.

Дополнительно

После успешной сдачи зачета выпускники получают свидетельства об обучении Учебного центра "Информзащита".

Выпускники Учебного центра могут получать бесплатные консультации специалистов центра в рамках пройденного курса.

Требования к рабочему месту для дистанционных слушателей

Оборудование: компьютеры слушателей с процессорами не ниже Core i5 (или его аналога на платформе AMD), не менее 16GB RAM и не менее 250GB свободного места на HDD. Доступ в интернет.

Программное обеспечение:

  • Windows 7 и выше
  • VirtualBox 5.2
  • Adobe Reader DC
  • Офисный пакет (MsOffice или LibreOffice)
  • Mozilla Firefox

Программа курса

Модуль 1. Defensive Programming

  • Сокращение числа ошибок в ПО
  • Создание отчуждаемого исходного кода
  • Практика: Разбор примеров оформления исходного кода и влияния стандартов кодирования на читаемость программ, лёгкость их поддержки и развития
  • ПО должно вести себя предсказуемо, несмотря на неожиданные вводные данные или действия пользователя
  • Практика: Разбор примеров непредсказуемого поведения ПО и способов исправления ситуации

Модуль 2. Типичные ошибки в ПО

  • Переполнение буфера
  • Уязвимости форматной строки
  • Некорректная аутентификация
  • Проблемы с авторизацией
    • Авторизация проведена некорректно
    • Слишком много доверия к пользовательскому вводу
    • Ошибки канонизации
  • Практика: Разбор примеров кода, содержащего типовые ошибки, и способов их исправления

Модуль 3. Проблемы криптографии

  • Слабые криптоалгоритмы: DES, Triple DES, RC4 и MPPE
  • Слабые hash-функции: LM-hash, MD2, MD4 и MD5
  • Хранение ключевой информации в контейнере
  • Хранение ключевой информации в памяти
  • Коллоквиум: Обсуждение проблем безопасности, связанных с криптографией, и их решение

Модуль 4. Проектирование по контракту

  • Возможные типы входных данных и их значение
  • Типы возвращаемых данных и их значение
  • Условия возникновения исключений, их типы и значения
  • Присутствие побочного эффекта метода
  • Предусловия, которые могут быть ослаблены (но не усилены) в подклассах
  • Постусловия, которые могут быть усилены (но не ослаблены) в подклассах
  • Инварианты, которые могут быть усилены (но не ослаблены) в подклассах
  • Гарантии производительности, например, временная сложность или сложность по памяти
  • Практика: Разбор примеров, использующих данный подход

Модуль 5. DevOps

  • Проектирование
    • Система работы с требованиями
    • CASE-средства
  • Разработка
    • Система работы с требованиями
    • Система контроля версий
    • Среда разработки
    • Баг-трекер
  • Тестирование
    • Баг-трекер
    • Система автоматизации функционального тестирования
  • Эксплуатация
    • Ansible
  • Коллоквиум: Построение интегрированной инфраструктуры проекта и сокращение сроков выхода релиза

Модуль 6. Методологии создания ПО

  • Waterfall
  • RATIONAL UNIFIED PROCESS (RUP)
  • Microsoft Solution Framework (MSF)
  • Гибкие методологии (Agile)
    • Экстремальное программирование (XP)
    • Scrum
    • Kanban
  • Коллоквиум: Обсуждение сильных и слабых сторон каждой из методологий с позиций исключения уязвимостей и устойчивости ко взлому

Модуль 7. Требования безопасного программирования

  • Все данные важны, пока не доказано обратное
  • RATIONAL UNIFIED PROCESS (RUP)
  • Все данные испорчены, пока не доказано обратное
  • Весь код небезопасен, пока не доказано обратное
  • Практика: Разбор примеров, иллюстрирующих данные требования

Модуль 8. Введение в функциональное тестирование

  • Факторы качества ПО
  • Аспекты качества ПО
  • Управление качеством продукта
  • Отладка и тестирование
  • Жизненный цикл тестирования
  • Виды тестирования
  • Критерии черного ящика
  • Критерии белого ящика
  • Взаимосвязь требований к ПО
  • Документы, создаваемые в процессе тестирования
    • План тестирования
    • Критерии начала и окончания тестирования
    • Тест-дизайн
    • Тестовые случаи (Test Cases)
  • Жизненный цикл дефекта
  • Покрытие входных данных
  • Эквивалентное разбиение
  • Модуль-драйвер и модуль-заглушка при тестировании программ
  • Методы тестирования: блочное, интеграционное и системное
  • Покрытие кода тестами
  • Тестирование безопасности
  • Практика: Подготовка плана тестирования и тестовых случаев

Модуль 9. Автоматизированное функциональное тестирование

  • Проблемы автоматизации
  • Этапы автоматизированного функционального тестирования
    • Этап исследования и разработки пилотных автоматических тестов
    • Анализ и планирование
    • Подготовка тестовой среды и тестовых данных
    • Разработка тестовых скриптов, осуществляющих покрытие функционала приложения, на основе готовой архитектуры
    • Запуск автоматических скриптов
    • Представление результатов тестирования
  • Стратегия тестирования
  • Сценарий тестирования
  • Практика: Создание автоматизированного сценария

Модуль 10. Автоматизация развертывания и обновления конфигураций

  • Как работает Ansible
  • Практика: Установка Ansible
  • Практика: Проверка работоспособности
  • Практика: Управление конфигурациями
К007_3.9 БТ15 Навигатор КП05

Дата

Цена

Формат

К007_3.9 БТ15 Навигатор КП05