アプリケーションの信用を確立する
4 つのものが必要
コードを生成する信用されたユーザー
正常に動作するコードで実行される信用されたアプリケーション
正常にデプロイされたインフラ上で実行される信用されたアプリケーション
アプリケーションに対する悪意を持つ行動の監視
コードの生成、デプロイ、実行はデリケートなイベントの連鎖 (パイプライン)
いずれも保護する必要がある
サプライチェーンセキュリティ (supply chain security) に似ている
パイプラインの信用は 4 つのステージに分かれる
ソースコード → ソースコードの信用
ビルド / コンパイル → ビルドの信用
ディストリビューション → ディストリビューションの信用
実行 → アプリケーションの信用、ランタイムのセキュリティ
人間が関わる部分を限定する
コードがコミットされるところは人間がすべきこと
そのあとのビルドプロセスは自動化でよい
最終的に配布される成果物の選択には人間が関わるべき
いくつも方法はある
ビルドデータベースからリリースデータベースに成果物をコピーする
ソース管理システムで特定のコミットにタグ付けする
広く配布されるソフトウェアの署名に使用される秘密鍵は十分に保護される必要 → コード署名セレモニー
参考文献
ゼロトラストネットワーク ―― 境界防御の限界を超えるためのセキュアなシステム設計