Кибербезопасность и защита данных Обеспечивать безопасность данных Разрабатывать и создавать программы и приложения Писать программный код Анализировать данные Python Анализировать угрозы безопасности данных

Специалист DevSecOps

Автономная некоммерческая организация дополнительного профессионального образования "Академия АйТи"
272,00 часа длительность
Онлайн формат
Начальный уровень
1 поток (закрыт) 16.12.2021-22.03.2022

Описание

В настоящее время большинство отечественных компаний перешли к внутреннему (in-house) развитию ИТ-систем, до этого большинство систем и решений поставляли внешние зарубежные и реже отечественные производители ПО. По этой причине стало важным повысить качество, безопасность и скорость разработки ПО за счет формирования внутренних команд разработки и построения собственного производственного ИТ-процесса. Это привело к формированию десятков и сотен команд разработки ПО (от 500 до 30 000 штатных и внешних разработчиков ПО), каждая из которых использует свой набор методов для автоматизации развертывания приложений в различных средах (pipeline). Также это потребовало задействовать автоматическую доставку изменений на промышленные контуры. В результате, это позволило сформировать упомянутый набор методов и перевести разработку во внутренний сегмент не только для новых систем с гибкой микросервисной архитектурой, но и для большого числа сложных монолитных систем, базирующихся на «коробочных» решениях, адаптированных под требования отечественных цифровых предприятий.

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

Успешное окончание обучения по программе данного курса позволит специалистам: 

- Взаимодействовать с командами разработки ПО и операционными подразделениями для анализа функциональных и не функциональных требований, пользовательских сценариев на предмет безопасности; 

- Заниматься подготовкой требований по безопасности, а также контролировать соблюдение требований в процессе разработки ПО; 

- Проводить ревью безопасности разработанной архитектуры приложений (монолитной,  микросервисной), ревью исходного кода ПО, тестирование безопасности релизов и систем в продакшене; 

- Управлять требованиями по безопасности, в частности моделировать и анализировать угрозы безопасности; 

- Управлять уязвимостью программных систем. Вести их учет, оценивать критичность и контролировать исправления в разработке ПО; 

-Разрабатывать шаблоны безопасной архитектуры приложений, внедрять стандартны безопасного программирования, доводить требования безопасности до команд разработки ПО; 

- Внедрять лучшие практики разработки безопасного ПО, DevSecOps (SAST, DAST, dependency check и др); 

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

На обучение по программе зачисляются слушатели, имеющие опыт работы на персональном компьютере, знающие основы программирования и имеющие высшее или среднее профессиональное образование.

Часов в программе
128,00 часов
лекции
136,00 часов
практика
3,00 часа
промежуточная аттестация
1 час
входная диагностика
4 часа
итоговая аттестация
272,00 часа
всего
Цель программы
Получение компетенции для выполнения нового вида профессиональной деятельности в области программирования и создания ИТ- продуктов: cпособность к формализации и алгоритмизации поставленных задач разработки безопасного ПО, cпособность написания безопасного программного кода с использованием языков программирования, определения и манипулирования данными,
способность оформления программного кода в соответствии с установленными требованиями безопасности, способность проверки и отладки программного кода современных цифровых платформ и экосистем, способность проверки программного обеспечения на соответствие требованиям устойчивости и безопасности, способность разработки тестовых наборов данных, способность рефакторинга и оптимизации безопасного программного кода
Актуальность
В настоящей программе рассмотрены все основные приемы и способы разработки безопасных (доверенных) цифровых платформ и экосистем (DevSecOps). Это позволяет внедрить в практику отечественных цифровых предприятий достаточно сложный инженерный процесс разработки безопасного ПО, а также применять соответствующие инструментальные средства автоматизации. Здесь к основным практикам обеспечения информационной безопасности относятся:
• Контроль компонент с открытым исходным кодом при попадании в периметр разработки (Open Source Analysis, OSA);
• Статический анализ кода (Static Application Security Testing, SAST);
• Контроль состава компонент ПО (Software Composition Analysis, SCA);
• Все виды динамического анализа (Dynamic Application Security Testing, DAST/Interactive Application Security Testing, IAST/Behavioral Application Security Testing, BAST);
• Анализ бинарного кода и контроль состава контейнеров (Bytecode and Container Analysis, BCA);
• Реализация WAF (Web Application Firewall) и др. технических мер безопасности.
При масштабировании и трансформации процессов разработки ПО в производную парадигму DevSecOps также важным является:
• Использование безопасных по умолчанию библиотек фреймворков и компонент ПО в процессе разработки (Secure-by-Default);
• Интеграция технологических практик ИБ в самое начало конвейера CI/CD (Shift-Left подход);
• Автоматизация всех процессов в концепции Everything-as-a-Code;
• Воспитание security-лидеров (чемпионов), ответственных за выполнение производственных задач информационной безопасности в кросс-функциональных командах разработки безопасного ПО и повышение корпоративной культуры информационной безопасности в целом;
• Применение модели зрелости DevSecOps как для оценки существующего процесса, так и для постоянного совершенствования процесса разработки безопасного ПО;
• Достижение «прозрачности» мер безопасности для всех участников инженерного производственного процесса разработки безопасного ПО.
• Применение практики DevSecOps-оркестрации (Application Security Testing Orchestration, ASTO), реализующей сквозную интеграцию инструментального стека безопасности с инструментами разработки, автоматизированное управление конвейером (пайплайнами), а также сбор, консолидацию и анализ данных в рамках непрерывного процесса разработки защищенного ПО. Это позволяет значительно сэкономить ресурсы и сократить более чем в 10 раз общее время внедрения инициативы DevSecOps в сложных и гетерогенных инженерных средах.
Реализация программы обеспечивает как возможность приобретения права ведения профессиональной деятельности в новой сфере лицами, не имеющими базового образования в области программирования, так и расширение сферы деятельности программиста.
Входная диагностика 1 час
Входная диагностика - выявление стартовых возможностей слушателей, измерение соответствующих программе компетенций перед началом обучения.
Задачи входной диагностики: прогнозирование возможности успешного обучения, определение мотивационной готовности слушателей, определение базового уровня знаний и умений слушателей

Входная диагностика охватывает всех обучаемых и проводится в форме тестирования.
Входное тестирование разработано с учетом последующей возможности сопоставления полученных данных с итоговой диагностикой. Тестирование проводится в системе дистанционного обучения. На прохождение входного тестирования дается одна попытка. Тест включает в себя 15 вопросов.
Итоговая аттестация 4 часа
Выполнение практических заданий

Компетенции

Профессиональные


Способность к формализации и алгоритмизации поставленных задач по разработке безопасного ПО
Знать:

- Методы и приемы алгоритмизации поставленных задач разработки безопасного ПО
- Методы и приемы формализации задач разработки безопасного ПО
- Алгоритмы решения типовых задач разработки безопасного ПО, области и способы их применения

Уметь:

- Использовать методы и приемы разработки безопасного ПО
- Использовать методы и приемы алгоритмизации поставленных задач разработки безопасного ПО
- Использовать инструментальные средства разработки безопасного ПО на практике
- Применять стандартные алгоритмы разработки безопасного ПО в соответствующих областях

Владеть:

- Составления формализованных описаний решений поставленных задач по разработке безопасного ПО в соответствии с требованиями технического задания или других принятых в организации нормативных документов
- Разработки алгоритмов решения поставленных задач разработки безопасного ПО в соответствии с требованиями технического задания или других принятых в организации нормативных документов
- Оценки и согласования сроков выполнения поставленных задач разработки безопасного ПО

Способность написания безопасного программного кода с использованием языков программирования, определения и манипулирования данными.
Знать:

- Синтаксис выбранного языка программирования, особенности безопасного программирования на этом языке, стандартные библиотеки языка программирования.
- Методологии разработки безопасного программного обеспечения.
- Методологии и технологии проектирования безопасного ПО.

Уметь:

-Применять выбранные языки программирования для написания безопасного программного кода
- Использовать выбранную среду безопасного программирования на практике
- Использовать возможности имеющейся технической и/или программной архитектуры

Владеть:

-Создание безопасного программного кода в соответствии с техническим заданием.
- Оптимизация безопасного программного кода с использованием специализированных программных средств.

Способность оформления безопасного программного кода в соответствии с установленными требованиями
Знать:

- Инструментарий для создания безопасного ПО.
- Методы повышения безопасности программного кода.

Уметь:

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

Владеть:

- Форматирование исходного безопасного программного кода в соответствии с установленными в организации требованиями.
- Комментирование и разметка программного кода в соответствии с установленными в организации требованиями.

Способность проверки и отладки безопасного программного кода
Знать:

- Типы и форматы сообщений об ошибках и уязвимостях ПО
- Способы использования технологических журналов, форматы и типы записей журналов

Уметь:

- Выявлять ошибки, дефекты и уязвимости в программном коде
- Применять методы и приемы тестирования, статического и динамического анализа, фаззинг тестирования и отладки безопасного программного кода
- Интерпретировать сообщения об ошибках, предупреждения, записи технологических журналов

Владеть:

- Статического и динамического анализа программного кода
- Отладки безопасного программного кода на уровне программных модулей
- Отладка безопасного программного кода на уровне межмодульных взаимодействий и взаимодействий с окружением

Способность проверки программного обеспечения на требования устойчивости и безопасности
Знать:

- Методы и средства проверки программного обеспечения на требования устойчивости и безопасности
- Среда проверки программного обеспечения на требования устойчивости и безопасности

Уметь:

- Применять методы и средства проверки программного обеспечения на требования устойчивости и безопасности
- Интерпретировать диагностические данные
- Анализировать значения полученных характеристик безопасного программного обеспечения

Владеть:

- Проверка программного обеспечения на требования устойчивости и безопасности на основе разработанных тестовых наборов данных
- Оценка соответствия программного обеспечения требуемым характеристикам устойчивости и безопасности
- Сбор и анализ полученных результатов проверки устойчивости и безопасности программного обеспечения

Способность разработки тестовых наборов данных для проверки устойчивости и безопасности программного обеспечения
Знать:

- Методы создания и документирования контрольных примеров и тестовых наборов данных для проверки устойчивости и безопасности программного обеспечения
- Правила, алгоритмы и технологии создания тестовых наборов данных для проверки устойчивости и безопасности программного обеспечения
- Требования к структуре и форматам хранения тестовых наборов данных для проверки устойчивости и безопасности программного обеспечения

Уметь:

- Разработка и оформление контрольных примеров для проверки устойчивости и безопасности программного обеспечения
- Разработка процедур генерации тестовых наборов данных с заданными характеристиками устойчивости и безопасности
- Подготовка наборов данных, используемых в процессе проверки устойчивости и безопасности программного обеспечения

Владеть:

- Подготовка тестовых наборов данных для проверки устойчивости и безопасности программного обеспечения в соответствии с выбранной методикой
- Оценка и согласование сроков выполнения поставленных задач по разработке безопасного ПО

Способность рефакторинга и оптимизации безопасного программного кода
Знать:

- Методы и средства рефакторинга и оптимизации безопасного программного кода
- Языки программирования и среды разработки безопасного ПО
- Внутренние нормативные документы, регламентирующие требования к устойчивости и безопасности программного кода, порядок отражения изменений в системе контроля версий

Уметь:

- Применять методы, средства для рефакторинга и оптимизации безопасного ПО
- Применять инструментальные средства коллективной работы над безопасным программным кодом
- Использовать систему контроля версий для регистрации произведенных изменений

Владеть:

- Анализ программного кода на соответствие требованиям по читаемости и производительности, устойчивости и безопасности
- Внесение изменений в безопасный программный код и проверка его работоспособности

Требования

Нет
Образование
  • Высшее образование
  • Среднее профессиональное образование

Модули

свернуть
151,00ч
Модуль 1 Базовый модуль: Основы программирования и составления алгоритмов
Слушатели знакомятся с основными элементами и этапами составления алгоритмов, способами хранения данных в компьютере и типовыми операторами языков программирования, этапами перевода блок-схем в код программы, особенностями и тонкостями перевода программы из алгоритмов в операторы, обозначат основные отличия массива от списка, узнают о кодировках текста и особенностях хранения и обработки текстовой информации, использовании стека, очереди, списка, дерева, узнают различные версии языка Python, познакомятся с интерпретаторами и трансляторами, основными принципами работы интерпретатора Python, основными элементами программирования, научатся устанавливать и запускать интерпретатор Python, устанавливать и тестировать среды разработки Python, узнают об основных операторах ветвления и цикла, генераторами словарей и списков. Успешное прохождение модуля позволит специалистам: составлять алгоритм решения типовых задач, составлять подходящие типы данных для реализации типовых алгоритмов, составлять алгоритмы поиска данных и оценивать их эффективность, составлять алгоритмы с использованием массивов для реализации наиболее актуальных задач, составлять алгоритмы по реализации стека, очереди и других аналогичных конструкций, разбираться в версиях языка Python, устанавливать и запускать интерпретатор Python, устанавливать и тестировать среды разработки Python, составлять программы с использованием генераторов словарей и списков.
116,00ч
Модуль 2 Профильный модуль. Разработка безопасного ПО.
В профильном модуле "Разработка безопасного ПО" слушатели познакомятся с основными концепциями DevSecOps, основными практиками DevSecOps, трансформацией DevOps в DevSecOps, национальными требования (ГОСТ Р 56939-2016 и ГОСТ Р ИСО/МЭК 12207) в части разработки безопасного ПО, изучат роли и кадровое обеспечение DevSecOps, отработают на практике полученные знания.
151,00ч
Модуль 1 Базовый модуль: Основы программирования и составления алгоритмов
Слушатели знакомятся с основными элементами и этапами составления алгоритмов, способами хранения данных в компьютере и типовыми операторами языков программирования, этапами перевода блок-схем в код программы, особенностями и тонкостями перевода программы из алгоритмов в операторы, обозначат основные отличия массива от списка, узнают о кодировках текста и особенностях хранения и обработки текстовой информации, использовании стека, очереди, списка, дерева, узнают различные версии языка Python, познакомятся с интерпретаторами и трансляторами, основными принципами работы интерпретатора Python, основными элементами программирования, научатся устанавливать и запускать интерпретатор Python, устанавливать и тестировать среды разработки Python, узнают об основных операторах ветвления и цикла, генераторами словарей и списков. Успешное прохождение модуля позволит специалистам: составлять алгоритм решения типовых задач, составлять подходящие типы данных для реализации типовых алгоритмов, составлять алгоритмы поиска данных и оценивать их эффективность, составлять алгоритмы с использованием массивов для реализации наиболее актуальных задач, составлять алгоритмы по реализации стека, очереди и других аналогичных конструкций, разбираться в версиях языка Python, устанавливать и запускать интерпретатор Python, устанавливать и тестировать среды разработки Python, составлять программы с использованием генераторов словарей и списков.
116,00ч
Модуль 2 Профильный модуль. Разработка безопасного ПО.
В профильном модуле "Разработка безопасного ПО" слушатели познакомятся с основными концепциями DevSecOps, основными практиками DevSecOps, трансформацией DevOps в DevSecOps, национальными требования (ГОСТ Р 56939-2016 и ГОСТ Р ИСО/МЭК 12207) в части разработки безопасного ПО, изучат роли и кадровое обеспечение DevSecOps, отработают на практике полученные знания.
80 000 p
Авторизуйтесь чтобы записаться

Профстандарт

Программист

06.001

Ответственный за программу

gyunicheva@it.ru

+79677403554