CICD-SEC-7

定義

安全でないシステム構成のリスクはパイプライン全体のさまざまなシステム (SCM、CI、アーティファクトリポジトリなど) のセキュリティ設定、構成、堅牢化の欠陥に起因し、環境内で足場を拡大しようとする攻撃者にとって「簡単に達成できる成果」となることがよくあります。

解説

CI/CD 環境はさまざまなベンダーが提供する複数のシステムで構成されています。CI/CD セキュリティを最適化するために、防御側はパイプラインを流れるコードとアーティファクト、および個々のシステムの態勢と耐性の両方に重点を置くことが必要です。

データを保存および処理する他のシステムと同様に、CI/CD システムにはアプリケーション、ネットワーク、インフラストラクチャのすべてのレベルでさまざまな設定と構成が含まれます。これらの設定は CI/CD 環境のセキュリティ態勢と潜在的な侵害に対する影響度合いに大きな影響を与えます。あらゆる知識レベルの攻撃者は潜在的な CI/CD 脆弱性や構成ミスに常に目を光らせており、それらを利用して利益を得ることができます。

潜在的な堅牢化の欠陥の例:

  • 古いバージョンをしているか、重要なセキュリティパッチが適用されていない自己管理システムやコンポーネント。

  • 過度に寛容なネットワークアクセスコントロールを行うシステム。

  • 基盤となる OS に対する管理パーミッションを持つ自己ホスト型システム。

  • システム構成が安全でないシステム。一般的に構成は認可、アクセスコントロール、ログ記録などに関係する主要なセキュリティ機能を決定します。多くの場合、デフォルトの構成セットは安全ではなく、最適化が必要です。

  • 不十分な認証情報衛生 (inadequate credential hygiene) でのシステム。例えば、無効になっていないデフォルト認証情報、過度に寛容なプログラマチックトークンなど。

自己ホスト型の代替ではなく、Software as a Service (SaaS) CI/CD ソリューションを使用することで、システム堅牢化やネットワーク内のラテラルムーブメントに関連する潜在的なリスクの一部が排除されますが、組織は依然として SaaS CI/CD ソリューションを安全に構成することに高い注意を払う必要があります。各ソリューションには最適なセキュリティ態勢を維持するために不可欠な独自のセキュリティ構成とベストプラクティスのセットを備えています。

影響

CI/CD システムのひとつにあるセキュリティ欠陥が攻撃者に悪用され、システムへの非認可アクセスを獲得したり、さらに悪いことに、システムを侵害して基盤となる OS にアクセスする可能性があります。これらの欠陥は攻撃者によって悪用され、CI/CD フローを操作し、機密トークンを取得し、本番環境にアクセスする可能性があります。シナリオによっては、これらの欠陥は攻撃者が環境内および CI/CD システムのコンテキスト外でラテラルムーブできる可能性があります。

推奨事項

  • 各システムの指定所有者のマッピングを含め、使用中のシステムとバージョンのインベントリを維持します。これらのコンポーネントの既知の脆弱性を継続的に確認します。セキュリティパッチが利用可能な場合は、脆弱なコンポーネントをアップデートします。そうでない場合は、そのコンポーネントやシステムの削除を検討するか、システムへのアクセスを制限するか、機密性の高い操作を実行するシステムの機能を制限して、脆弱性を悪用した場合の潜在的な影響を軽減します。

  • システムへのネットワークアクセスが最小権限の原則に沿っていることを確認します。

  • システムのセキュリティ態勢に影響を及ぼす可能性のある設定について、すべてのシステム構成を定期的にレビューするプロセスを確立し、すべての設定が最適であることを確認します。

  • 最小権限の原則に従って、パイプライン実行ノードへのパーミッションが付与されていることを確認します。このコンテキストでよくある構成ミスは実行ノードへのデバッグパーミッションをエンジニアに付与することです。多くの組織ではこれが一般的な慣習ですが、デバッグモードで実行ノードにアクセスできるユーザーはすべてのシークレットがメモリにロードされている間に開示し、そのノードの ID を使用する可能性があることを考慮する必要があります。このパーミッションを持つすべてのエンジニアに効果的に昇格したパーミッションを付与してしまいます。

参考情報

  1. SolarWinds ビルドシステムの侵害。SolarWinds を介して 18,000 の組織にマルウェアを拡散するために使用されました。

    https://sec.report/Document/0001628280-20-017451/#swi-20201214.htm

  2. PHP git リポジトリに仕掛けられたバックドア。攻撃者は悪意のあるレビューされていないコードを PHP メインブランチに直接プッシュし、最終的に PHP の正式版としてすべての PHP ユーザーに拡散されました。この攻撃は自己管理型 git サーバーの侵害が原因であると考えられています。

    https://news-web.php.net/php.internals/113981

  3. 攻撃者はインターネットからアクセス可能な Stack Overflow の TeamCity ビルドサーバーを侵害しました。

    https://stackoverflow.blog/2021/01/25/a-deeper-dive-into-our-may-2019-security-incident/

  4. 攻撃者はパッチが適用されていない Webmin ビルドサーバーを侵害し、リポジトリからフェッチした後にコードのローカルコピーにバックドアを追加し、Webmin を使用するサーバーにサプライチェーン攻撃を引き起こしました。

    https://www.webmin.com/exploit.html

  5. 日産のソースコードが流出したのは、自己管理型の Bitbucket インスタンスがデフォルトの認証情報でインターネットからアクセス可能な状態にあったためでした。

    https://www.zdnet.com/article/nissan-source-code-leaked-online-after-git-repo-misconfiguration/

  6. Mercedes Benz のソースコードが流出したのは、自己管理型のインターネットに面した GitLab サーバーを自己登録向けとして公開していたためでした。

    https://www.zdnet.com/article/mercedes-benz-onboard-logic-unit-olu-source-code-leaks-online/

  7. New York 州政府の自己管理型 GitLab サーバーがインターネットに公開され、機密情報が保存されているシステムに誰でも自己登録してログインできました。

    https://techcrunch.com/2021/06/24/an-internal-code-repo-used-by-new-york-states-it-office-was-exposed-online/

Last updated