Files
2026-07-07 12:12:47 +00:00

214 lines
21 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 1. Общая информация о компетенциях
### 1.1. «Кибериммунная автономность» (КИА)
Эта компетенция входит в чемпионат «Профессионалы». Её суть — разработка систем защиты для автономных робототехнических систем, способных противостоять киберугрозам и внутренним сбоям.
**Что нужно уметь:**
- Запускать и инициализировать робототехническую систему (цифровой двойник и физического робота).
- Формулировать цели и предположения безопасности.
- Выделять критический функционал системы.
- Разрабатывать и внедрять модуль безопасности на Python.
- Писать код для журналирования событий и противодействия киберпрепятствиям (КП).
**Легенда заданий** (вариативна, но есть типовые сценарии):
- Обслуживание нефтеперерабатывающего производства.
- Лунная миссия по обслуживанию энергетического реактора.
- Военный сценарий с разминированием и поражением целей(спасибо никите за данный щедевр)
### 1.2. «Конструктивная информационная безопасность автономных транспортных систем» (КИБАТС)
Эта компетенция входит в Чемпионат высоких технологий. Участники создают архитектуры и механизмы безопасности для инфраструктуры автономного транспорта.
**Что нужно уметь:**
- Проектировать кибериммунную архитектуру.
- Реализовывать монитор безопасности с политиками (whitelist, rate limiting, replay protection).
- Нейтрализовать киберпрепятствия (инъекции, подмена источника, DoS-флуд, Replay-атаки).
- Интегрировать систему с внешними источниками команд с авторизацией.
Типовое задание — система управления светофором с защитой от атак.
---
## 2. Структура репозитория KIBATS
Ваш репозиторий содержит следующие ключевые папки и файлы:
| Путь | Содержание |
|------|------------|
| `/KIBATS_SVETOFOR/` | Материалы **регионального этапа 2026 по КИБАТС** (компетенция «Конструктивная информационная безопасность...»). Включает конкурсное задание, критерии оценки и инфраструктурный лист. |
| `/megreg_KIA_2026/` | Материалы **межрегионального этапа 2026 по КИА** (компетенция «Кибериммунная автономность»). |
| `/regKIA2026_finalKIA2025/` | Материалы **финала 2025 и регионального этапа 2026 по КИА**. |
| `/NikitaSVO/` | **Вариация задания** (военный сценарий) от Благова Никиты с описанием киберпрепятствий CybC_01CybC_03. |
| `/readme.md` | Рекомендасьен |
| `/Приложение №4. ГОСТ Р Защита информации. Системы с конструктивной информационной безопасностью. Методология разработки` | ГОСТ |
**Важно:** Основные файлы для выполнения заданий (архивы с кодом, виртуальные машины, дистрибутивы АСО) находятся на Яндекс.Диске по ссылкам в README каждой папки. В самом репозитории лежат только конкурсные задания (docx) и критерии оценки (xlsx).
---
## 3. Пошаговая инструкция по подготовке
### 3.1. Общие подготовительные шаги (для обеих компетенций)
1. **Изучите нормативную базу:**
- ГОСТ Р 72118-2025 «Защита информации. Системы с конструктивной информационной безопасностью. Методология разработки» (упоминается в обоих КЗ как обязательный к применению).
- Требования компетенции (раздел 1 в каждом конкурсном задании) — таблица с перечнем профессиональных задач и их важностью.
2. **Освойте инструментарий:**
- **Python** — основной язык программирования. Уверенное владение ООП, многопоточностью, работа с очередями, логированием.
- **Jupyter Notebook** — среда разработки, в которой пишется код модулей.
- **Git** — для фиксации результатов (коммиты в репозиторий обязательны для сдачи «в зачёт»).
- **Цифровой двойник (ЦД)** — среда симуляции полигона и робота.
- **АСО (Автоматизированная система отслеживания)** — ПО для регистрации местоположения, статусов и инцидентов.
3. **Скачайте и разверните рабочие материалы:**
- Перейдите по ссылкам из README в соответствующих папках репозитория:
- Для КИБАТС (регион): [https://disk.yandex.ru/d/hRNTxnsgCIw-iA](https://disk.yandex.ru/d/hRNTxnsgCIw-iA)
- Для КИА (межрегион): [https://disk.yandex.ru/d/AL4GQAHEW9vBOQ](https://disk.yandex.ru/d/AL4GQAHEW9vBOQ)
- Для КИА (регион/финал): [https://disk.yandex.ru/d/iMo0GqK-c1VJCQ](https://disk.yandex.ru/d/iMo0GqK-c1VJCQ)
- Распакуйте архивы. Внутри — Jupyter Notebook-файлы с шаблонами (`mod_X_code.ipynb`), тестовые ячейки, документация и, возможно, виртуальные машины или установщики АСО.
4. **Поймите систему оценки:**
- Оценка идёт по результату, а не по скорости (но лимит 10 минут на заезд).
- Код не должен превышать **600 строк** (нарушение = штраф).
- Обязательны: журналирование действий с указанием идентификаторов КП, git commit, описание решения.
- При одинаковом количестве баллов побеждает тот, у кого меньше длительность заезда.
Данная система оценки уникальна для каждого варианта заданий, перед выполнением стоит изучить критерии и сраные комменты в Jupyter Notebook
---
### 3.2. Подготовка по компетенции «Кибериммунная автономность» (КИА)
#### 3.2.1. Изучите структуру модулей (из КЗ)
| Модуль | Время | Задачи |
|--------|-------|--------|
| **А** (инвариант) | 6 ч (рег) / 5 ч (межрег) | Сборка, инициализация, задачи робота 1–2, КП CybO, CybP_0102 в ЦД. |
| **Б** (инвариант) | 4 ч | Задача робота 3, КП CybP_03–04, адаптация кода на физического робота. |
| **В** (инвариант) | 4 ч | Задача робота 4, КП CybZ_0103 в ЦД. |
| **Г** (инвариант) | 4 ч | Задача робота 5, КП CybZ_04, финальный заезд на физическом роботе. |
В межрегиональном этапе структура может меняться (например, 4 модуля по 3–5 часов без физического робота).
#### 3.2.2. Изучите типовые задачи робота (из легенды)
1. **Доставка устройства для тушения** (или картриджа гелия-3) — выезд из старта, погрузка, выгрузка в целевой зоне.
2. **Очистка корпуса** — заезд на рампу, запрос очистки, ожидание завершения.
3. **Прибытие на финиш**.
4. **Оценка состояния оборудования** — считывание цветов с трёх индикаторов, вывод статуса.
5. **Определение утечки** — опрос четырёх ячеек датчиком загрязнения, вывод номера ячейки с максимумом.
#### 3.2.3. Изучите киберпрепятствия (КП) и их обработку
| КП | Уровень | Суть | Действие МБ |
|----|---------|------|-------------|
| **CybO** | — | Журналирование действий | Логировать все действия и инциденты с уровнями. |
| **CybP_01** | Высокий | Компрометация кода автопилота | Проверить аутентичность, восстановить целостность, перезагрузить АП. |
| **CybP_02** | Средний | Неполадки связи «Робот–Диспетчер» | Отслеживать heartbeat, логировать время начала/окончания. |
| **CybP_03** | Средний | Компрометация кода приводов | Проверять цифровые подписи, уведомлять АП. |
| **CybP_04** | Высокий | Зона эвакуации персонала | Остановить робота при нахождении в зоне, возобновить после снятия. |
| **CybZ_01** | Средний | Несанкционированное замедление | Отслеживать скорость (<0.1 м/с), перезагрузить контроллер скорости. |
| **CybZ_02** | Средний | Угроза отцепления груза | Блокировать магнитный захват через обходные цепи. |
| **CybZ_03** | Низкий | Неверное считывание цвета | Восстановить цвет по двум крайним + цветовой температуре. |
| **CybZ_04** | Низкий | Нестабильность датчика загрязнения | Обработать 30% ложноположительных срабатываний (повторные измерения). |
**Важные правила обработки КП:**
- На реакцию даётся **2 секунды** с момента активации (кроме CybZ_01 — 15 секунд).
- Каждое КП требует вывода сообщения в журнал с идентификатором.
- Низкий уровень — логирование + уведомление. Средний — предупреждение + действие. Высокий — полная остановка до устранения.
#### 3.2.4. Порядок подготовки к КИА
1. **Начните с модуля А в ЦД:** отработайте запуск, инициализацию, задачи 1–2 и КП CybO, CybP_0102.
2. **Переходите к модулю Б:** добавьте задачу 3 и КП CybP_03–04. Отработайте перенос кода на физического робота.
3. **Модуль В:** добавьте задачу 4 и КП CybZ_01–03. Всё ещё в ЦД.
4. **Модуль Г:** добавьте задачу 5 и КП CybZ_04. Соберите всё воедино на физическом роботе для финального заезда.
5. **Особое внимание:** журналирование (CybO) — без него все остальные КП не засчитываются!
---
### 3.3. Подготовка по компетенции «Конструктивная информационная безопасность автономных транспортных систем» (КИБАТС)
#### 3.3.1. Изучите структуру модулей (из КЗ)
| Модуль | Время | Задачи |
|--------|-------|--------|
| **А** (инвариант) | 4 ч | Кибериммунная архитектура: ЦБ, ПБ, классы Event, Monitor, ControlSystem, LightsGPIO. |
| **Б** (инвариант) | 4 ч | Монитор безопасности: политики whitelist, логирование, rate limiting. |
| **В** (инвариант) | 3 ч | Нейтрализация киберпрепятствий: CybTL_0104. |
| **Г** (вариатив) | 4 ч | Интеграция с внешними системами: CitySystemConnector, авторизация. |
#### 3.3.2. Изучите ключевые классы и политики
**Модуль А:**
- `Event` — поля: source, destination, operation, params, timestamp.
- `ALLOWED_STATES` — список допустимых состояний (минимум 4, без конфликтов).
- `Monitor` — методы: add_policy, _check_policies, run, stop.
- `ControlSystem` — request_state_change (создаёт Event и отправляет в очередь Monitor).
- `LightsGPIO` — set_state, run (изолирован, не вызывается напрямую из ControlSystem).
**Модуль Б:**
- Политика Б.1 (whitelist) — проверка params против ALLOWED_STATES.
- Политика Б.2 (логирование) — запись нарушений с timestamp, source, operation.
- Политика Б.3 (rate limiting) — не более 5 событий/сек, блокировка источника при ≥14 из 20.
**Модуль В (киберпрепятствия):**
- CybTL_01 — инъекция запрещённого состояния.
- CybTL_02 — подмена источника (только доверенные источники).
- CybTL_03 — DoS-флуд (rate limiting по источнику).
- CybTL_04 — Replay-атака (timestamp старше 1 секунды отклоняется).
**Модуль Г (вариатив):**
- `CitySystemConnector` — get_command_from_city(), send_command_to_monitor().
- Политика авторизации — команда проходит только при from_city=True AND authorized=True.
#### 3.3.3. Порядок подготовки к КИБАТС
1. **Модуль А:** реализуйте все классы согласно шаблонам. Убедитесь, что архитектурная диаграмма соответствует политике (ControlSystem → Monitor → LightsGPIO).
2. **Модуль Б:** добавьте три политики. Проверьте, что журнал нарушений содержит все обязательные поля.
3. **Модуль В:** реализуйте защиту от четырёх типов атак. Все тесты CybTL_01–04 должны проходить.
4. **Модуль Г (вариатив):** реализуйте коннектор к городской системе и политику авторизации. Убедитесь, что городская система не обходит монитор.
5. **На протяжении всех модулей:** поддерживайте порядок на рабочем месте, следите за длиной кода (<600 строк), делайте коммиты.
---
## 4. Дополнительные советы и ресурсы
### 4.1. Где брать информацию
- **Официальный репозиторий с документацией и примерами:** [https://gitflic.ru/company/agts-regional-2026](https://gitflic.ru/company/agts-regional-2026) (для КИА) и [https://gitflic.ru/company/kibats-region-2026](https://gitflic.ru/company/kibats-region-2026) (для КИБАТС).
- **Документация Python:** [https://docs.python.org/3/](https://docs.python.org/3/)
- **Документация Jupyter:** [https://docs.jupyter.org/en/latest/](https://docs.jupyter.org/en/latest/)
- **Материалы ИРПО** [(сайт института развития профессионального образования)](https://esim.firpo.ru/d/c).
### 4.2. Ключевые правила, которые нельзя нарушать
- **Запрещено** использовать в коде проверки, определяющие наступление КП по знанию исходного кода автопилота, времени или других недопустимых данных.
- **Запрещено** воздействовать на робота или полигон во время незавершённого заезда.
- **Запрещено** использовать любые интернет-ресурсы, кроме разрешённых.
- **Запрещено** проносить на площадку мобильные устройства, микронаушники, заготовленный код.
- **Запрещено** общение с третьими лицами с целью получения преимущества.
- Нарушение любого правила → **аннулирование баллов за модуль**.
### 4.3. Рекомендации по тренировкам
1. **Тренируйтесь в ЦД до автоматизма** — все задачи робота и КП должны отрабатываться без ошибок.
2. **Отрабатывайте перенос кода на физического робота** — различия в среде могут вызвать ошибки (пути, версии библиотек, задержки).
3. **Ведите журнал (лог) с самого начала** — это обязательное условие для сдачи «в зачёт».
4. **Следите за длиной кода** — пишите компактно, но читаемо. Используйте функции и классы для переиспользования.
5. **Делайте коммиты после каждого значимого изменения** — это требование критериев оценки.
6. **Изучите вариативные сценарии** (например, из папки NikitaSVO) — они могут встретиться на региональных этапах.
---
## 5. Заключение
Подготовка к этим компетенциям требует системного подхода: от изучения теории (ГОСТ, архитектура) до отработки практических навыков (код, тесты, работа с ЦД и физическим роботом). Ваш репозиторий KIBATS содержит все необходимые конкурсные задания и критерии, а ссылки на Яндекс.Диск дают доступ к рабочему окружению.
**Главные принципы успеха:**
- Понимание целей безопасности и умение их формализовать.
- Владение Python на уровне написания модуля безопасности с политиками.
- Навык быстрой адаптации кода под физическую реализацию.
- Строгое соблюдение правил (журналирование, длина кода, коммиты, порядок на рабочем месте).
Удачи в подготовке и на чемпионатах! Если появятся дополнительные вопросы по конкретным модулям или КП — обращайтесь.