Специалист DevSecOps
Автономная некоммерческая организация дополнительного профессионального образования "Академия АйТи"
Описание
В настоящее время большинство отечественных компаний перешли к внутреннему (in-house) развитию ИТ-систем, до этого большинство систем и решений поставляли внешние зарубежные и реже отечественные производители ПО. По этой причине стало важным повысить качество, безопасность и скорость разработки ПО за счет формирования внутренних команд разработки и построения собственного производственного ИТ-процесса. Это привело к формированию десятков и сотен команд разработки ПО (от 500 до 30 000 штатных и внешних разработчиков ПО), каждая из которых использует свой набор методов для автоматизации развертывания приложений в различных средах (pipeline). Также это потребовало задействовать автоматическую доставку изменений на промышленные контуры. В результате, это позволило сформировать упомянутый набор методов и перевести разработку во внутренний сегмент не только для новых систем с гибкой микросервисной архитектурой, но и для большого числа сложных монолитных систем, базирующихся на «коробочных» решениях, адаптированных под требования отечественных цифровых предприятий.
Таким образом, переход к практикам DevSecOps является одним из стратегических направлений (стримов) современных отечественных цифровых предприятий и подразумевает трансформацию служб, занимающиеся разработкой, тестированием и эксплуатацией ПО, в так называемые кросс-функциональные команды, работающие над одной бизнес-функциональностью. В свою очередь это потребовало включения в состав упомянутых команд разработки ПО специалистов по архитектуре и разработке ПО, технологов, тестировщиков и DevSecOps-инженеров. Такой переход к кросс-функциональным командам предъявил новые требования к процессам управления кодом (исходным, тестирования, развертывания и т. д.), управления тестированием и разработкой. Там, где ранее были допустимы разрывы в процессах, сейчас они становятся критическими препятствиями, и необходимо постоянно совершенствовать DevSecOps ландшафт в части инструментов и устранения разрывов в процессах. В условиях трансформации бизнеса и сокращения времени вывода новых цифровых продуктов на рынок основным индустриальным вызовом становится обеспечение информационной безопасности на всех этапах непрерывного производственного процесса.
Успешное окончание обучения по программе данного курса позволит специалистам:
- Взаимодействовать с командами разработки ПО и операционными подразделениями для анализа функциональных и не функциональных требований, пользовательских сценариев на предмет безопасности;
- Заниматься подготовкой требований по безопасности, а также контролировать соблюдение требований в процессе разработки ПО;
- Проводить ревью безопасности разработанной архитектуры приложений (монолитной, микросервисной), ревью исходного кода ПО, тестирование безопасности релизов и систем в продакшене;
- Управлять требованиями по безопасности, в частности моделировать и анализировать угрозы безопасности;
- Управлять уязвимостью программных систем. Вести их учет, оценивать критичность и контролировать исправления в разработке ПО;
-Разрабатывать шаблоны безопасной архитектуры приложений, внедрять стандартны безопасного программирования, доводить требования безопасности до команд разработки ПО;
- Внедрять лучшие практики разработки безопасного ПО, DevSecOps (SAST, DAST, dependency check и др);
- Своевременно информировать команды разработчиков ПО об обнаружении новых и ранее неизвестных уязвимостях программного кода и предлагать обоснованные решения для их нейтрализации.
На обучение по программе зачисляются слушатели, имеющие опыт работы на персональном компьютере, знающие основы программирования и имеющие высшее или среднее профессиональное образование.
Часов в программе
Цель программы
способность оформления программного кода в соответствии с установленными требованиями безопасности, способность проверки и отладки программного кода современных цифровых платформ и экосистем, способность проверки программного обеспечения на соответствие требованиям устойчивости и безопасности, способность разработки тестовых наборов данных, способность рефакторинга и оптимизации безопасного программного кода
Актуальность
• Контроль компонент с открытым исходным кодом при попадании в периметр разработки (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 часа
Компетенции
Профессиональные
Способность к формализации и алгоритмизации поставленных задач по разработке безопасного ПО
- Методы и приемы алгоритмизации поставленных задач разработки безопасного ПО
- Методы и приемы формализации задач разработки безопасного ПО
- Алгоритмы решения типовых задач разработки безопасного ПО, области и способы их применения
- Использовать методы и приемы разработки безопасного ПО
- Использовать методы и приемы алгоритмизации поставленных задач разработки безопасного ПО
- Использовать инструментальные средства разработки безопасного ПО на практике
- Применять стандартные алгоритмы разработки безопасного ПО в соответствующих областях
- Составления формализованных описаний решений поставленных задач по разработке безопасного ПО в соответствии с требованиями технического задания или других принятых в организации нормативных документов
- Разработки алгоритмов решения поставленных задач разработки безопасного ПО в соответствии с требованиями технического задания или других принятых в организации нормативных документов
- Оценки и согласования сроков выполнения поставленных задач разработки безопасного ПО
Способность написания безопасного программного кода с использованием языков программирования, определения и манипулирования данными.
- Синтаксис выбранного языка программирования, особенности безопасного программирования на этом языке, стандартные библиотеки языка программирования.
- Методологии разработки безопасного программного обеспечения.
- Методологии и технологии проектирования безопасного ПО.
-Применять выбранные языки программирования для написания безопасного программного кода
- Использовать выбранную среду безопасного программирования на практике
- Использовать возможности имеющейся технической и/или программной архитектуры
-Создание безопасного программного кода в соответствии с техническим заданием.
- Оптимизация безопасного программного кода с использованием специализированных программных средств.
Способность оформления безопасного программного кода в соответствии с установленными требованиями
- Инструментарий для создания безопасного ПО.
- Методы повышения безопасности программного кода.
- Применять нормативные документы, определяющие требования к разработке безопасного ПО.
- Применять инструментарий для создания безопасного ПО.
- Применять имеющиеся шаблоны безопасного ПО для составления технической документации.
- Форматирование исходного безопасного программного кода в соответствии с установленными в организации требованиями.
- Комментирование и разметка программного кода в соответствии с установленными в организации требованиями.
Способность проверки и отладки безопасного программного кода
- Типы и форматы сообщений об ошибках и уязвимостях ПО
- Способы использования технологических журналов, форматы и типы записей журналов
- Выявлять ошибки, дефекты и уязвимости в программном коде
- Применять методы и приемы тестирования, статического и динамического анализа, фаззинг тестирования и отладки безопасного программного кода
- Интерпретировать сообщения об ошибках, предупреждения, записи технологических журналов
- Статического и динамического анализа программного кода
- Отладки безопасного программного кода на уровне программных модулей
- Отладка безопасного программного кода на уровне межмодульных взаимодействий и взаимодействий с окружением
Способность проверки программного обеспечения на требования устойчивости и безопасности
- Методы и средства проверки программного обеспечения на требования устойчивости и безопасности
- Среда проверки программного обеспечения на требования устойчивости и безопасности
- Применять методы и средства проверки программного обеспечения на требования устойчивости и безопасности
- Интерпретировать диагностические данные
- Анализировать значения полученных характеристик безопасного программного обеспечения
- Проверка программного обеспечения на требования устойчивости и безопасности на основе разработанных тестовых наборов данных
- Оценка соответствия программного обеспечения требуемым характеристикам устойчивости и безопасности
- Сбор и анализ полученных результатов проверки устойчивости и безопасности программного обеспечения
Способность разработки тестовых наборов данных для проверки устойчивости и безопасности программного обеспечения
- Методы создания и документирования контрольных примеров и тестовых наборов данных для проверки устойчивости и безопасности программного обеспечения
- Правила, алгоритмы и технологии создания тестовых наборов данных для проверки устойчивости и безопасности программного обеспечения
- Требования к структуре и форматам хранения тестовых наборов данных для проверки устойчивости и безопасности программного обеспечения
- Разработка и оформление контрольных примеров для проверки устойчивости и безопасности программного обеспечения
- Разработка процедур генерации тестовых наборов данных с заданными характеристиками устойчивости и безопасности
- Подготовка наборов данных, используемых в процессе проверки устойчивости и безопасности программного обеспечения
- Подготовка тестовых наборов данных для проверки устойчивости и безопасности программного обеспечения в соответствии с выбранной методикой
- Оценка и согласование сроков выполнения поставленных задач по разработке безопасного ПО
Способность рефакторинга и оптимизации безопасного программного кода
- Методы и средства рефакторинга и оптимизации безопасного программного кода
- Языки программирования и среды разработки безопасного ПО
- Внутренние нормативные документы, регламентирующие требования к устойчивости и безопасности программного кода, порядок отражения изменений в системе контроля версий
- Применять методы, средства для рефакторинга и оптимизации безопасного ПО
- Применять инструментальные средства коллективной работы над безопасным программным кодом
- Использовать систему контроля версий для регистрации произведенных изменений
- Анализ программного кода на соответствие требованиям по читаемости и производительности, устойчивости и безопасности
- Внесение изменений в безопасный программный код и проверка его работоспособности
Требования
Образование
- Высшее образование
- Среднее профессиональное образование
Модули
свернутьПрофстандарт
Программист
06.001Ответственный за программу
+79677403554