1 はじめに

本ドキュメントは、一般的なソフトウェア開発と運用・保守に多く用いられる継続的インテグレーション/継続的デリバリ(以下、「CI/CD」という。)パイプライン環境において、考慮すべきセキュリティ対策を提示する。

1.1 背景と目的

「政府情報システムにおけるクラウドサービスの適切な利用に係る基本方針」は、政府情報システムにおける「効率性」と「セキュリティ」等の非機能要件を向上する上で、「アジャイル的な手法」及び「オンプレミス時代の人海戦術的な方式を踏襲せず自動化する」ことを重視している。そのために、迅速な変更要求に応えて効率的に変更差分をリリースできる体制が求められ、特に同文書で例として挙げられた「CI/CDパイプライン」が欠かせない。

CI/CDパイプライン自体は、「アジャイル的な」開発を実践しているWebアプリケーションやスマートフォンアプリの運営において、広く普及したシステム・コンポーネントである。CI/CDパイプラインは元となるソースコードに対する作業から、最終的な成果物のサーバ等の環境への配送及び実行といった、一連の業務プロセスを自動化する。政府情報システムそのもののモダンアプリケーション化、その継続的かつ効率的な提供のため、CI/CDパイプラインは重要な役割を担うことが予想される。

一方、業務要件上、CI/CDパイプラインはサーバやアクセス管理等のリソースに対して変更を行える高い権限を有する。そのため、CI/CDパイプラインは本質的にリスクの高いシステム・コンポーネントである。その重要度及びリスクへの注目、そして実際に発生したCI/CDパイプラインに侵害するインシデントの事例から、米国におけるCI/CDパイプラインの保護に関するガイドラインが急増している。こういった海外の動向や、本来のCI/CDパイプラインにおける業務上の重要性及びリスクから、我が国でもガイドラインの整備が将来的に必要になるであろう。本技術レポートは、CI/CDパイプラインの保護の検討に必要となるセキュリティ対策を整理し、提供する。

具体的には、CI/CDパイプラインに関する概観及び用語を整理しつつ、情報システムの開発からリリースまでの一連の業務に対して、CI/CDパイプラインが担う処理を紹介する。また、CI/CDパイプラインにおいて必要とされる対策について記述する。

1.2 適用対象

本文書は、政府情報システムにおけるCI/CDパイプラインを適用の対象とする。

1.3 位置づけ

本文書は、標準ガイドライン群のInformative(情報提供)のレベルの参考文書である。

1.4 本書の構成

本文書ではCI/CDパイプラインにおけるセキュリティ対策を解説する。具体的には2章で、CI/CDパイプラインのシステム・コンポーネントとしての概観を紹介し、注視すべき対象であることを述べる。続く3章では、CI/CDパイプラインを3つのフェーズに分解し、それぞれにおける技術的な対策を紹介する。

1.5 用語

表 1‑1 用語の定義

用語 意味
成果物

ソフトウェア開発・運用・保守業務の中で主にCI等の過程で生成されるファイルの総称である。次のようなものを含む [1][2]。

  • 実行形式のファイル、コンテナイメージ、IaC(Infrastructure as Code)テンプレート及び実行手順ファイル、ソースコードファイル、zipファイル、tarファイル、設定ファイル、パッケージ等

CI Continuous Integrationの略称である。ソースコードに対する同時的な複数の変更を、継続的な検証によってソフトウェアの完全性を担保しながら自動的に取り込む考え方及び手順を指す。その際に、動作確認をするテストや、ソースコードから成果物の生成も合わせて行う [3]。
CD Continuous Deliveryの略である。ソースコードあるいはソースコードを元にした成果物を実際に実行する環境に配送(Delivery)する業務を、自動的かつ継続的に実施する手順を指す [3]。似たような用語に、Continuous Deployがあるが、こちらは利用者に対するリリース及び提供を指す。本文書でContinous Deployは技術的な観点から説明の対象にしない。
CI/CDパイプライン 新規あるいは変更したソフトウェアを、新しいバージョンとしてリリースするための一連の手順・考え方である。継続的かつ迅速なソフトウェアの改善のため、ソフトウェア開発のライフサイクルを自動化する。CIとCDを内包する [3]。
モダンアプリケーション 「政府情報システムにおけるクラウドサービスの適切な利用に係る基本方針」より、市場に一定レベルで普及した新しい技術によって構築されているアプリケーションを指す [4]。
シークレット 統一基準群における「主体認証情報」を指す。主体認証をするために、主体が情報システムに提示する情報である。サービスアカウントの認証情報やAPIアクセストークン等がこれに該当する。
統一基準 「政府機関等の対策基準策定のためのガイドライン」を指す。本レポート作成時は「令和5年度版」である [5]。
作業者 モダンアプリケーションのソースコードファイルや、インフラのInfrastructure as Code (IaC)ファイル等を作成・変更・削除する開発・運用・保守業務に携わる主体を指す。
ソースコード管理システム プログラムのソースコードやファイルのバージョン管理を行うシステムを指す [6]。