Кибериммунитет учебные курсы.md


Траектории обучения кибериммунной разработке как универсальной методологии

Learning path

О требованиях к студентам:

  • знание языка программирования Python - методология универсальна и не зависит от языка, однако имеющийся инструментарий для решения задач использует язык Python; возможны реализации учебных примеров с использованием других языков программирования (C/C++, Java, Javascript, Golang, Rust)
  • навыки работы с Linux-подобными системами (например, Ubuntu) на уровне пользователя
  • желательно - знакомство с технологиями виртуализации (virtuabox, kvm/qemu, hyper-v) и контейнеризации (docker) на уровне пользователя
  • в идеале - знание архитектурных шаблонов проектирования, в особенности - асинхронная модель взаимодействия компонентов распределённых систем

Курс “Кибериммунитет за три вечера: теория и база для практики”

Формат

  • три вебинара (примерно 2 часа каждый) + тест за две недели
  • Начало занятий: 12 декабря

Занятие 1. Теоретическая база: Процесс кибериммунной разработки, ключевые компоненты и артефакты

  • MILS, FLASK и учебная реализация
  • ЦПБ, DFD, сценарии, политики
  • домашнее задание: разработать учебное ТЗ для примера на КИ

Занятие 2. Учебная инфраструктура и пример

  • отладка компонентов
  • ручные тесты
  • робот-доставщик
  • домашнее задание: добавить сценарии и политики роботу-доставщику, протестировать результат (вручную или написать авто-тесты)
  • составить список вопросов для занятия 3

Занятие 3. Закрепление материала

  • разбор домашнего задания
  • обсуждение открытых вопросов

Курс “Кибериммунитет: Базовый”

Формат

  • вебинары раз в неделю (примерно 2 часа каждый) + домашние задания

Пререквизиты

  • для работы с примерами и домашним заданием нужен компьютер с 8-16 GB RAM, 50 GB свободной дисковой памяти. в идеале - ОС из семейства Linux (с правами суперпользователя) или Windows/MAC OS c возможностью установить ПО для виртуализации (WSL2 в Windows, VirtualBox или аналог).

Занятие 1. Теоретические основы КИ и основные артефакты

  • ключевые концепции MILS, FLASK
  • ЦПБ, сценарии, декомпозиция

Занятие 2. Особенности постановки задач и методика их решения на примере “безопасное обновление”

  • обязательные разделы
  • критерии качества задания
  • функциональные и нефункциональные требования
  • инструменты построения диаграмм и документирование решения

домашнее задание

  • сформулировать учебную задачу на КИ (взять одну из имеющихся тем или предложить свою) аналогично задаче с дроном-опрыскивателем

Занятие 3. Инструментарий для решения учебных примеров

  • шина сообщений (Kafka) и монитор безопасности как облегчённая реализация FLASK
  • контейнеризация как облегчённая реализация MILS
  • политики безопасности: как выглядят, как их писать и отлаживать
  • тестирование и отладка всей системы с использованием MS Visual Studio Code

Занятие 4. Контроль качества работы системы

  • автоматизация тестирования
  • дополнительные способы мониторинга для контроля работы системы и возможной доработки политик

Занятие 5. Разбор решения учебного примера “робот-доставщик”

  • домашнее задание: решить задачу “дрон-опрыскиватель”

Занятие 6. Разбор решения ДЗ (“дрон-опрыскиватель”)

  • ЦПБ
  • негативные сценарии
  • архитектура (DFD)
  • политики безопасности
  • тесты (функциональные и безопасности)

  • обратная связь от экспертов-аналитиков и разработчиков ЛК

  • домашнее задание: доработка своих решений с учётом обратной связи

Занятие 7. Разбор доработанных / финальных версий решений. Вопросы и ответы

  • Подведение итогов
  • получение обратной связи от участников
  • вручение сертификата о прохождении курса

Курс “Кибериммунитет с KasperskyOS” для архитекторов и разработчиков

~16 занятий (30 часов лекции/семинары/практики) + 60 часов на самостоятельную работу

Траектории обучения

Learning path KOS

  • занятия 1-7 см. курс “базовый”

Занятие 8. Микроядерные ОС. Микроядро Kaspersky OS

  • Характеристики микроядра Kaspersky OS, сравнение с другими микроядерными ОС
  • практическое занятие: запуск учебных примеров на базе Kaspersky OS с использованием эмулятора

Занятие 9. Шаблоны обеспечения безопасности

  • шаблоны и примеры
    • Distrustful Decomposition (Privilege Reduction)
    • Defer to Kernel (Policy Enforcement Point (PEP), Separation Kernel, Protected System, Enclave)
    • Policy Decision Point (PDP) (Reference Monitor, Policy, Check Point, Access Decision Function)
    • Privilege Separation
    • Secure State Machine
    • Secure Logger
    • Information Obscurity
    • Раздельные хранилища
  • практическое занятие: реализовать один из шаблонов безопасности в инфраструктуре KasperskyOS

Занятие 10. Описание сущностей, компонентов и интерфейсов

  • язык XDL
  • практическое занятие: добавить и описать новые сущности в учебном примере

Занятие 11. Модели безопасности в Kaspersky OS

  • язык написания политик PSL
  • язык написания тестов политик PAL
  • практическое занятие: добавить новые политики безопасности в учебном примере

Занятие 12. Основы Kaspersky OS API

  • методы вызова ядра
  • динамический запуск процессов
  • динамические библиотеки

Занятие 13. Сетевое взаимодействие и VFS

Занятие 14. POSIX и его ограничения

Занятие 15. Загрузка системы

  • основы u-boot

Занятие 16. Система сборки cmake и способы отладки

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

Для обучающихся

По вопросу обучения на любом из описанных курсов пишите нам на cyberimmunity-edu@kaspersky.com.

Для преподавателей

По запросу описание курсов в формате программы учебной дисциплины пишите на cyberimmunity-edu@kaspersky.com.

Для методистов

По вопросу участия в разработке курсов пишите нам на cyberimmunity-edu@kaspersky.com или приходите к нам на форум https://forum.kaspersky.com/topic/%D0%BA%D0%B8%D0%B1%D0%B5%D1%80%D0%B8%D0%BC%D0%BC%D1%83%D0%BD%D0%B8%D1%82%D0%B5%D1%82-%D0%BA%D0%B0%D0%BA-%D0%BF%D0%BE%D1%87%D0%B5%D0%BC%D1%83-%D0%BE%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B-29387/#comment-120173

Ссылка на вики репозиторий