# Методика преподавателя — день 1 «Безопасность приложений»

> **Что это.** Авторское методическое руководство по проведению материалов первого
> дня в собственном курсе: структура занятия, три уровня сложности заданий,
> критерии оценивания, типичные ошибки группы и требования к учебной среде.
>
> **Происхождение.** Подготовлено по результатам участия в программе
> АО «Лаборатория Касперского» «Образовательная лаборатория Kaspersky Academy |
> Безопасность приложений». Основной AppSec-блок программы вёл Дмитрий Павлухин,
> архитектор по информационной безопасности.
> Документ не является официальным материалом АО «Лаборатория Касперского».
>
> **Лицензия.** CC BY 4.0. При переиспользовании указывайте программу и
> источник: <https://appsec-lections.pikov.expert/for-teachers.html>.

## 1. Зачем эта программа существует

Программа рассчитана на преподавателей, доцентов, деканов и технических
специалистов вузов — с явно заявленной целью: чтобы материал был перенесён
в собственные курсы. Поэтому ключевой результат занятия — не «слушатель узнал
про OWASP», а «преподаватель может провести это со своими студентами».

Заявленные результаты программы:

- уметь классифицировать уязвимости по OWASP Top 10:2025;
- уметь находить уязвимости в учебном приложении;
- уметь строить собственную лабораторную работу от цели до критериев оценки;
- уметь обновлять материалы курса в быстро меняющейся области, включая ИИ.

## 2. Структура занятия

| Время | Блок | Методический комментарий |
|---|---|---|
| 10:20 | Основы AppSec, мини-лекция и работа в группе | Закладывается словарь: актив, угроза, уязвимость, риск, CIA, три вопроса доступа. Самый недооценённый блок. |
| 11:00 | OWASP Top 10:2025 — A01–A03 | Одна категория — одна причина, один пример, одна проверяемая мера. Углубление оставить на разбор. |
| 12:30 | Лабораторный блок 1 | Первый выход в среду. Заложить время на технические сбои. |
| 14:30 | OWASP Top 10:2025 — A04–A06 | Лучше всего работает формат «до и после»: один и тот же код в уязвимом и исправленном виде. |
| 15:10 | Лабораторный блок 2 и разбор в группе | Разбор — обязательная часть, а не остаток времени. |
| 16:10 | Безопасность ИИ и организация учебного процесса | Ставится в конец намеренно: собирает воедино весь день. |
| 16:55 | Подведение итогов | Собирать не впечатления, а вопросы: три вещи, оставшиеся непонятными. |

### Учебный цикл, который нельзя сокращать

```
Короткая лекция → Практика → Разбор в группе → Оформление
     (язык)        (опыт)       (смысл)          (след)
```

Если выпадает разбор, занятие превращается в набор эффектных трюков: слушатель
уходит с ощущением «я взломал», но без ответа на вопрос, почему это сработало.
Если выпадает оформление — причина забывается за несколько дней.

Планируя занятие, отводите разбору фиксированный слот и защищайте его так же,
как защищаете лекцию.

## 3. Три уровня сложности

Меняется не цель задания, а объём подсказки и требования к результату. Группа
работает с одним учебным приложением и обсуждает общий предмет.

### Уровень 1 — знакомство

- **Даём:** пошаговую инструкцию и заранее известную цель.
- **Спрашиваем:** точное описание наблюдения и название нарушенного свойства
  из триады (конфиденциальность, целостность, доступность).
- **Критерий:** шаги выполнены, наблюдение описано без домыслов.

### Уровень 2 — самостоятельность

- **Даём:** только раздел приложения и класс риска.
- **Спрашиваем:** первопричину — где именно отсутствует проверка и почему она
  должна выполняться на сервере.
- **Критерий:** причина названа верно и подтверждена наблюдением.

### Уровень 3 — инженерный

- **Даём:** задачу целиком, без указания места.
- **Спрашиваем:** исправление, оценку его влияния на функциональность и
  отрицательный тест, который не проходит на уязвимой версии.
- **Критерий:** исправление обосновано, тест действительно различает версии.

**Приём подачи.** Не объявляйте уровни как «слабый / средний / сильный». Выдайте
всем один текст задания, а уровни оформите как необязательные разделы:
«минимум», «если получилось быстро», «для тех, кто хочет довести до конца».

## 4. Критерии оценивания

| Критерий | Что смотрим | Признак слабой работы |
|---|---|---|
| Полнота выполнения | Обязательные шаги пройдены, среда и её версия зафиксированы | Не указано, что именно и где проверялось |
| Объяснение первопричины | Названо конкретное место отсутствующей или неверной проверки | «Приложение уязвимо к XSS» без источника и приёмника |
| Конкретность исправления | Предложена серверная мера и способ проверить регрессию | «Нужно фильтровать ввод» без контекста и механизма |
| Качество и безопасность оформления | Доказательства обезличены, секретов и чужих данных нет | Скриншоты с реальными токенами или персональными данными |

Найденный «флаг» сам по себе баллов не приносит. Работа сделана тогда, когда
слушатель может назвать изменение, после которого перестанет получаться.

**Не принимается ни при каком уровне задания:** отчёт с чужими персональными
данными, реальными ключами и токенами, а также любые действия за пределами
разрешённой учебной среды.

## 5. Где группа спотыкается

1. **Аутентификация и авторизация как синонимы.** Развести до разбора A01,
   иначе категория останется непонятой.
2. **Начинают с уязвимости, а не с актива.** Разворачивайте обсуждение назад:
   именно на активе видно, почему одна и та же уязвимость стоит по-разному.
3. **Не называют цепочку поставки.** При составлении карты поверхности атаки
   зависимости и сборку не вспоминают почти никогда — это стоит зафиксировать
   вслух как объяснение того, почему категория A03 существует.
4. **Технические сбои на старте практики.** Часть группы не запустит среду с
   первого раза. Нужен запас времени и запасной сценарий.
5. **Флаг вместо объяснения.** Лечится жёсткой формой отчёта, где поле
   «первопричина» нельзя оставить пустым.
6. **Желание проверить «на чём-нибудь настоящем».** Правило проговаривается до
   начала практики: за пределами выданной локальной среды — ничего и никогда.

## 6. Подготовка среды: чек-лист ведущего

- [ ] Образ учебного приложения скачан заранее и запускается офлайн.
- [ ] Версия образа зафиксирована и одинакова у всех участников.
- [ ] Сервис слушает только локальный интерфейс и недоступен из сети аудитории.
- [ ] Правило «только эта среда» объявлено до начала практики и записано в задании.
- [ ] Форма отчёта роздана вместе с заданием, а не после него.
- [ ] Готов запасной сценарий, если среда не поднимется у части группы.

Подробный порядок запуска, правила доказательств и публикационный фильтр —
в методичке практикума: `практикум-безопасность-приложений-методичка.md`.

## 7. Блок про ИИ: что именно обсуждать с преподавателями

Заключительный блок работает как сборка всего дня. Полезный приём — предложить
группе классифицировать три риска систем с языковыми моделями по уже знакомым
категориям A01–A06. Совпадение оказывается почти полным, и это лучший аргумент
за то, что база не устарела.

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

## 8. Связанные материалы

- Конспект и схемы первого дня: <https://appsec-lections.pikov.expert/day-01.html>
- Глоссарий терминов: <https://appsec-lections.pikov.expert/glossary.html>
- Практикум и правила безопасной работы: <https://appsec-lections.pikov.expert/practice.html>
- Шаблон отчёта: `шаблон-отчёта-лабораторной-работы.md`
- Чек-лист слушателя: `чек-лист-слушателя.md`
- Источники и версии: `источники-и-версии.md`
- Права и атрибуция: `права-и-атрибуция.md`
