Посты
Вы любите кофе? Лично я его обожаю в абсолютно разных вариантах. Хоть латте, хоть раф, хо…
3 марта 2026 г. в 13:05•Max Knyazev is typing…Зеркало Telegram

Вы любите кофе? Лично я его обожаю в абсолютно разных вариантах. Хоть латте, хоть раф, хоть на воде, хоть на миндальном (я как представитель поколения зумеров, да еще и житель Москвы, должен подпитывать стереотипы). Но поговорим мы сегодня не совсем о кофе 😉
Буквально только что на Хабре вышла моя новая статья, в которой я постарался рассказать про безопасность цепочки поставок (Supply Chain Security на языке Шекспира) через метафору процесса приготовления кофе. К ее написанию я пришел довольно просто: SBOM часто объясняют как список продуктов или ингредиентов, а когда я подумал об атаках на цепочку поставок (шальные мысли очень любят мою голову), я пил кофе. Все эти компоненты подружились у меня в черепной коробке и создали идею, которую я смог развить в полноценную статью
В двух словах идея статьи такая: зерна (код и зависимости), обжарка (CI/CD и сборка), фильтр (SBOM), вода (инфраструктура) и бариста (люди и процессы) вместе создают вам кофе, который вы пьете, не контролируя выполнение каждого отдельного компонента и этапа. Вы просто доверяете всей этой цепочке. И если где-то по пути вам подмешали «что-то лишнее», на выходе может получиться что-то нормальное на вид, но жуткое на вкус (или даже небезопасное для здоровья). Подробнее с моими размышлениями вы можете ознакомиться в самой статье, а здесь мы перейдем к тому, ради чего мне вообще захотелось написать этот пост (ну кроме того, чтобы просто рассказать вам про выход моей статьи, естественно😏 )
Мне кажется, индустрия наконец перестала притворяться, что современная разработка представляет собой просто написание софта. Сейчас разработка больше похожа на сборку продукта. Мы уже не столько пишем ПО, сколько конструируем решение, на основе огромного количества готовых чужих деталей, которые в свою очередь живут вообще собственной жизнью. Зависимости, которые мы добавили в проект, тянут транзитивные зависимости (о которых мы необязательно и не всегда в курсе). Пакеты обновляются без нашего согласования (поэтому не рекомендую использовать latest нигде). Расписывать тут можно много
Но в итоге то это все приходит к тому, что безопасность вот этого сложного комплексного продукта больше не равна безопасности вашего репозитория. Можно вылизать свой код до блеска, оттриажить все SAST-файндинги, закрыться правилами… и все равно получить инцидент, потому что слабое звено вообще оказалось не на нашей стороне, а где-то в зависимости, которую кто-то там неудачно обновил🤌
Supply chain атаки поэтому так и бесят. Ты то вроде все сделал правильно, а тебя ломают через «инструмент», «плагин», «пакет», «обновление», «образ» (нужное подчеркнуть), а не через то, что ты сам написал. И мне кажется, главный сдвиг последних лет в том, что мы постепенно все таки уходим от убийственной концепции уровня "Безопасность как бонус" к "Security by design"
Современная безопасность не заключается в том, чтобы развернуть один сканер и поставить галочку в отчете. Нужно видеть свою цепочку поставок как полноценную систему. Понять, где начинаются точки доверия, кто может влиять на сборку, какие компоненты мы реально проверяем и тд. А Security by design в контексте цепочки поставок (да и вообще) скорее является привычкой думать не только о коде, который мы пишем, но и о пути, который этот код проходит до прода
Потому что пользователь видит только чашку кофе. Он не обязан разбираться в зернах, фильтрах и обжарке. Ему бы просто хотелось выпить нормальный кофе. И если что-то пойдет не так, он не будет разбираться, на каком этапе произошла ошибка. Ответственность всегда останется на том, кто ему этот кофе приготовил☕️
P.S. Буду вам очень благодарен, если прочитаете статью и поделитесь своим мнением в комментариях (здесь или на Хабре)
#информационная_безопасность
Открыть исходный пост в TelegramБуквально только что на Хабре вышла моя новая статья, в которой я постарался рассказать про безопасность цепочки поставок (Supply Chain Security на языке Шекспира) через метафору процесса приготовления кофе. К ее написанию я пришел довольно просто: SBOM часто объясняют как список продуктов или ингредиентов, а когда я подумал об атаках на цепочку поставок (шальные мысли очень любят мою голову), я пил кофе. Все эти компоненты подружились у меня в черепной коробке и создали идею, которую я смог развить в полноценную статью
В двух словах идея статьи такая: зерна (код и зависимости), обжарка (CI/CD и сборка), фильтр (SBOM), вода (инфраструктура) и бариста (люди и процессы) вместе создают вам кофе, который вы пьете, не контролируя выполнение каждого отдельного компонента и этапа. Вы просто доверяете всей этой цепочке. И если где-то по пути вам подмешали «что-то лишнее», на выходе может получиться что-то нормальное на вид, но жуткое на вкус (или даже небезопасное для здоровья). Подробнее с моими размышлениями вы можете ознакомиться в самой статье, а здесь мы перейдем к тому, ради чего мне вообще захотелось написать этот пост (ну кроме того, чтобы просто рассказать вам про выход моей статьи, естественно
Мне кажется, индустрия наконец перестала притворяться, что современная разработка представляет собой просто написание софта. Сейчас разработка больше похожа на сборку продукта. Мы уже не столько пишем ПО, сколько конструируем решение, на основе огромного количества готовых чужих деталей, которые в свою очередь живут вообще собственной жизнью. Зависимости, которые мы добавили в проект, тянут транзитивные зависимости (о которых мы необязательно и не всегда в курсе). Пакеты обновляются без нашего согласования (поэтому не рекомендую использовать latest нигде). Расписывать тут можно много
Но в итоге то это все приходит к тому, что безопасность вот этого сложного комплексного продукта больше не равна безопасности вашего репозитория. Можно вылизать свой код до блеска, оттриажить все SAST-файндинги, закрыться правилами… и все равно получить инцидент, потому что слабое звено вообще оказалось не на нашей стороне, а где-то в зависимости, которую кто-то там неудачно обновил
Supply chain атаки поэтому так и бесят. Ты то вроде все сделал правильно, а тебя ломают через «инструмент», «плагин», «пакет», «обновление», «образ» (нужное подчеркнуть), а не через то, что ты сам написал. И мне кажется, главный сдвиг последних лет в том, что мы постепенно все таки уходим от убийственной концепции уровня "Безопасность как бонус" к "Security by design"
Современная безопасность не заключается в том, чтобы развернуть один сканер и поставить галочку в отчете. Нужно видеть свою цепочку поставок как полноценную систему. Понять, где начинаются точки доверия, кто может влиять на сборку, какие компоненты мы реально проверяем и тд. А Security by design в контексте цепочки поставок (да и вообще) скорее является привычкой думать не только о коде, который мы пишем, но и о пути, который этот код проходит до прода
Потому что пользователь видит только чашку кофе. Он не обязан разбираться в зернах, фильтрах и обжарке. Ему бы просто хотелось выпить нормальный кофе. И если что-то пойдет не так, он не будет разбираться, на каком этапе произошла ошибка. Ответственность всегда останется на том, кто ему этот кофе приготовил
P.S. Буду вам очень благодарен, если прочитаете статью и поделитесь своим мнением в комментариях (здесь или на Хабре)
#информационная_безопасность