Метод анализа CAST и с чем его едят
Как и обещал, последнюю неделю старался погрузиться в методы анализа CAST и STPA. С первым уже боле-менее разобрался, поэтому расскажу немного о нем.
Что такое CAST? CAST (Causal Analysis Based on Systems Theory) - причинно-следственный анализ, основанный на теории систем. Данный метод предназначен для понимания причин любого нежелательного события в системе, от которого хотелось бы защититься в будущем. CAST меняет подход к разбору аварий:
- Учитывайте все факторы, а не только "очевидные" причины.
- Избегайте предвзятости.
- Оценивайте действия оператора или системы с их точки зрения — у них могло не быть всей информации, что есть у вас сейчас.
- Задавайте "почему" и "как", а не "кто виноват".
- Спрашивайте: "Почему средства контроля не сработали?" и "Как их усилить?".
Этапы анализа CAST
-
Сбор данных: a. Определите систему (например, кластер k8s) и границы анализа. b. Опишите потери (допустим, downtime из-за сбоя pod’а) и опасное состояние (перегрузка ресурсов). c. Установите ограничения, которые могли бы предотвратить потери (например, лимиты CPU). d. Опишите события без обвинений, составьте вопросы "почему это произошло?". e. Найдите неэффективные средства контроля (скажем, отсутствие алертов) и другие факторы (неверные настройки).
-
Моделирование структуры контроля: постройте схему безопасности для этой угрозы. В k8s это может быть взаимодействие ingress, RBAC, autoscaling и мониторинга — как они должны были предотвратить перегрузку.
-
Анализ компонентов: разберите, почему средства контроля подвели: - Autoscaling не сработал из-за узких лимитов? - Почему оператор не заметил проблему (нет дашборда)? - Почему это казалось нормальным в тот момент?
-
Системные выводы: выявите общие слабости (например, недостаточный мониторинг ресурсов).
-
Рекомендации: предложите улучшения — добавить алерты, пересмотреть лимиты, усилить RBAC.