CS-SCC
Средний40 часов

Безопасное программирование: C/C++

Курс охватывает основные принципы безопасности в C/C++ и уязвимости программного обеспечения, вызванные небезопасным кодированием. В нем рассматривается, как выявлять недостатки безопасности и реализовывать контрмеры безопасности в различных областях жизненного цикла разработки программного обеспечения, а также применять эти навыки для улучшения общего качества продуктов и приложений

от 44 400₽
Для физ. лиц - 44 400₽
Для организаций - 52 900₽
Ближайшая группа
22.06.2026-26.06.2026
Формат
Онлайн
Длительность
40 часов
Часы занятий
18:00–21:00

Целевая аудитория

Курс предназначен для разработчиков C/C++, дизайнеров и архитекторов ПО (имеющих опыт разработки на С/С++ не менее одного года)

Необходимая предварительная подготовка

Для эффективного обучения на курсе, слушатели должны обладать следующими знаниями и навыками
  • Навыки программирования на C/C++ от года
  • Навыки работы без фреймворков (на чистом C/C++)
  • Понимание концепций функционирования операционных систем

Получаемые знания и навыки

По окончании курса слушатели овладеют навыками безопасного программирования и основами анализа и проектирования безопасности. Слушатели научатся разрабатывать, проектировать и поддерживать приложения, используя методы обеспечения безопасности в разрабатываемом коде.
от 44 400₽
Для физ. лиц - 44 400₽
Для организаций - 52 900₽

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

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

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

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

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

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

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

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

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

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

  • Как работает Ansible
  • Практика: Установка Ansible
  • Практика: Проверка работоспособности
  • Практика: Управление конфигурациями

Стоимость и условия оплаты

от 44 400₽
Для физ. лиц - 44 400₽
Для организаций - 52 900₽

Записаться на курс можно

По телефону
+7(495)648-35-00
Через наш
Telegram-чат

Расписание курсов

СреднийОнлайн40 часов
CS-SCC

Безопасное программирование: C/C++

22.06.2026-26.06.2026
Онлайн
40 часов
18:00–21:00
44 400₽
52 900₽
Для физ. лиц - 44 400₽
Для организаций - 52 900₽
СреднийГибридный40 часов
CS-SCC

Безопасное программирование: C/C++

05.10.2026-09.10.2026
Гибридный
40 часов
10:00–17:00
44 400₽
52 900₽
Для физ. лиц - 44 400₽
Для организаций - 52 900₽
СреднийГибридный40 часов
CS-SCC

Безопасное программирование: C/C++

07.12.2026-11.12.2026
Гибридный
40 часов
10:00–17:00
44 400₽
52 900₽
Для физ. лиц - 44 400₽
Для организаций - 52 900₽