Опишите найденные причинно-следственные связи в виде пар «причина – следствие».
Поищите ещё пары «причина-следствие», важные для вашего объяснения в контексте выдвинутых гипотез.
Укажите для каждой пары, какой типы причины вы предполагаете (необходимая, достаточная, способствующая).
Собрал все предыдущие пункты в таблицу с типами:
| Причина | Следствие | Тип |
|---|---|---|
| Замена обычных базовых образов на Docker Hardened Images | Меньше пакетов в базовых образах и работы с уязвимостями в них, меньше итоговый размер | Достаточная |
| Замена обычных базовых образов на chainguard | Меньше пакетов в базовых образах и работы с уязвимостями в них, меньше итоговый размер | Достаточная |
| Замена обычных базовых образов на distroless | Отстутствие shell в продовых образах | Необходимая |
| Использование более компактных базовых образов в проде | Меньше пакетов в базовых образах и работы с уязвимостями в них, меньше итоговый размер | Достаточная |
| Ограничивать добавление новых пакетов в базовые образы вместо перехода на distroless | Меньше лишних пакетов в базовых образах, только минимально необходимые | Необходимая (но если вообще пакеты не добавлять, то как будто просто одна из достаточных) |
| Ограничивать добавление новых пакетов в базовые образы вместо перехода на distroless | Лишние пакеты установлены в базовый образ до нас (например, тот же shell) | Достаточная |
| Удаление лишних пакетов из обычных базовых образов | От части лишних пакетов удастся избавиться | Необходимая |
| Удаление лишних пакетов из обычных базовых образов | Размер образов от этого не уменьшается | Достаточная (можно ничего не удалять и будет то же самое) |
| Автоматическая пересборка базовых образов | Обновление пакетов с исправлениями уязвимостей | Достаточная (сами они не обновляются, но у команд тоже есть возможность обновлять пакеты) |
| Более частая пересборка базовых образов | Меньше уязвимостей будут обнаружено на более поздних этапах жизненного цикла ПО | Достаточная (у команд тоже есть возможность обновлять пакеты, могут это делать в любой момент) |
| Более частая пересборка базовых образов | Уязвимости в базовых образах автоматически закрываются, команды разработки не блокируются найденными уязвимостями | Достаточная (у команд тоже есть возможность обновлять пакеты, могут это делать в любой момент) |
| Добавление distroless базовых образов рядом с обычными | Меньше пакетов в базовых образах для большей части приложений (они типовые) и работы с уязвимостями в них | Достаточная (добавление от замены тут почти не отличается) |
Обязательно придумайте хотя бы один пример контрфактического рассуждения по теме вашего исследования (возможно, ещё расширьте список причин и сделствий), и опишите отдельно возможный мир, соответствующий этому рассуждению.
Будем считать, что гипотеза 4 из предыдущего задания является таким контрфактическим рассуждением: если не цепляться за distroless-образы, можно ли как-то уменьшить ручные усилия на закрытие уязвимостей в базовых образах? Distroless-образы не видели живых динозавров, до того, как их начали предлагать вендоры, не все компании тихо собирали их у себя, и до этого уязвимости в ПО как-то закрывали и требованиям соответствовали. В вебинаре “Ошибка - не вариант”, Анатолий рассказывал про оценку вариантов, и как раз упоминал комплаенс/безопасность - нужно приемлемое решение, а не лучшее, максимизировать характеристику в нашем случае нет смысла.
Эссе о продолжении исследования с примерами написано и размещено в клубе Мастерской.
Для подробного описания результатов вашей работы сделайте табличный формат.
Вы продолжите выполнения этого задания после изучения следующего раздела.
Будем считать, что выполнение задания и есть эссе.