image integrity или image signing, хотелось бы остановиться на одном очень интересном и тонком моменте.В
kubernetes manifest ссылаться на образ можно через digest или tag. В случае, если используется tag, многие решения из данной области транслируют tag в digest, проводят проверку, и затем (в случае успеха) патчат исходный manifest, меняя tag на digest. Можно задаться вопросом к чему такие сложности?!Все очень, просто
tag можно просто менять и навешивать его на разные образы, а с digest так не получится. И если всего этого не делать, то присутствует проблема TOCTOU (Time-of-check to time-of-use). Атакующий может подать сначала образ с правильной подписью, а затем перевесить tag на вредоносный образ, а в случае использования digest такое провернуть не получится...Но тут появляется другая проблема. Если вы используете
GitOps подход/оператор, то система может входить в бесконечный цикл, когда GitOps оператор будет видеть расхождения того, что лежит в Git (тут по tag), и то, что запущено в кластере (тут по digest). В некоторых, решения есть опция не мутировать manifest, то тогда сами понимаете остается проблема TOCTOU.