あなたのDevOpsスタックデータに潜むリスクとその対策方法

Image

DevOpsはイノベーションを促進し、コラボレーションを簡素化しますが、同時に独自のリスクや脆弱性も伴います。開発者はGitHub、Azure DevOps、Bitbucket、GitLabなどのGitベースのプラットフォームを利用してコード作業を行っています。

リポジトリには通常、ミッションクリティカルなデータが含まれており、成長とともにチームが拡大し、ワークフローが複雑になることで、データに影響を及ぼす潜在的なリスクも増加します。

共有責任モデル 

SaaSデータ保護に関する責任分担は、プラットフォーム固有の共有責任モデルで示されています。SaaSアカウントに保存されたデータについては、顧客であるあなたが責任を負います。GitHubのようなプラットフォームは、データ復旧を支援する義務はありません。

サービスプロバイダーはサービスの稼働時間に責任を持ち、ユーザーはデータ、アカウント、デバイスのセキュリティに責任を持ちます。

つまり、ユーザーは厳格なアクセス制御の実施、認証情報の保護、自動バックアップの活用などを行い、ランサムウェア攻撃や人的ミス(誤削除など)、サービス障害からデータを守る必要があります。さらに、SaaSプラットフォーム自体も、ユーザーに独自のバックアップ実施を推奨しています。

プラットフォーム間のセキュリティの違い 

GitLabのような主要な分散型VCSプラットフォームは、組み込みのセキュリティ機能を提供しています。これらはサイバー防御戦略の構築に役立ちます。各プラットフォームで具体的な制御やツールは異なり、PATからアクセス制御、定期的なレビューまで幅広く存在します。

GitHub 

GitHubでは、シークレットスキャン、プッシュ保護、依存関係レビューやDependabotアラートなどのコードセキュリティ機能を含むネイティブコントロールが利用できます。

プッシュ保護は新しいパブリックリポジトリでデフォルトで有効化されており、既知のシークレットをプッシュ時にブロックします。シークレットスキャンもすべてのパブリックリポジトリで有効化されており、プライベートリポジトリにも拡張可能です。

すべてのプロジェクトでMFAとブランチ保護の強制を推奨します。

Bitbucket 

Bitbucketは階層型アクセスとチーム/グループコントロールを備えています。また、プロジェクトレベルの権限は、そのプロジェクト内のすべてのリポジトリに適用されます(より厳しくしない限り)。

セキュリティは主に、管理者がグループスコープやリポジトリのプライバシーを定期的にレビューすることに依存します。Bitbucket Secret Scanning機能は、コミットやプッシュ時の認証情報漏洩を監視します。

パイプライン変数を適切に設定し、機密データの露出を避けてください。BitbucketはJiraなどのAtlassianツール群と連携できる点も注目です。

GitLab 

GitLabは、ソースコード管理、CI/CD、セキュリティテストをカバーする包括的なDevSecOpsプラットフォームです。

リスクは主にセルフマネージド環境で発生し、管理者が強化、パッチ適用、バックアップに責任を持ちます。

GitLabのドキュメントでは、パッチ適用やホストセキュリティはセルフマネージド顧客の責任とされています。厳格なロール分離を実施し、ランナーを分離して運用してください。

Azure DevOps 

MicrosoftのAzure DevOpsは、Microsoft Entra ID(SSO、MFA、条件付きアクセス)によるID管理と統合されています。

Azure DevOpsデータの強固なセキュリティ体制には、サービス接続の正しい設定と、プロジェクト/組織の階層的な権限管理が必要です。

Microsoftは、共有責任モデルに従ったAzure DevOpsの設定について顧客の責任を強調しています。

一般的なDevOpsセキュリティのギャップと課題 

Bitbucketなどのプラットフォームに保存されたデータや設定は、現代のソフトウェア開発に不可欠です。したがって、ソースコードはサイバー攻撃や内部脅威の格好の標的となります。これらの悪意ある攻撃者は、事業継続やセキュリティが依存するデータにアクセスし、身代金を要求します。

セキュリティを左シフトし、業界で知られる脆弱性に対処することが重要です。

  • 弱いアクセス制御 

  • 不適切なリポジトリ権限や設定 

  • 多要素認証(MFA)やシングルサインオン(SSO)の未導入

  • 古いシステムやワークフロー 

  • 自動バックアップがない(またはGitHub、GitLab、Azure DevOps、Bitbucketをバックアップとして扱っている)

  • テスト済みの災害復旧戦略の欠如 

  • 業界規制への非準拠 

例えば、人気のGitHub Action「tj-actions/changed-files」を標的としたサプライチェーン攻撃がありました。攻撃者は同じパッケージ名で悪意あるアップデートを公開し、数千のリポジトリで使用されていたため、リポジトリデータやCI/CDシークレットが漏洩する可能性がありました。

攻撃ベクトル

攻撃者が脆弱性を悪用してデータにアクセスする方法はさまざまです。フィッシングや認証情報の窃取からランサムウェア攻撃まで多岐にわたります。ランサムウェアはデータを暗号化または消去しますが、その手法はプラットフォームによって異なります:

プラットフォーム

悪用方法

ランサムウェアを可能にする理由

予防策 

GitHub

盗まれたPAT/OAuthトークン、悪意あるGitHub Actions、侵害されたCIランナー

トークンや悪意あるActionはリポジトリの書き込み/削除、悪意あるコミットのプッシュ、依存関係の汚染、アーティファクトの暗号化が可能

細分化されたPAT、SSO&MFA、Actionの許可リスト、エフェメラルランナー、シークレットスキャン、外部のイミュータブルバックアップ

GitLab

侵害されたセルフマネージドランナーや管理者アカウント、不正なランナーによる任意ジョブの実行

これらの侵害されたランナー/管理者は、リポジトリの削除や改ざん、CIの改変、同一ノード上のローカルバックアップの削除を可能にする

ランナーのエフェメラル化/分離、ランナー登録者の制限、厳格なロール分離、迅速なパッチ適用、外部イミュータブルバックアップ(設定・メタデータ含む)

Bitbucket

過剰なプロジェクト権限、漏洩したパイプライン変数、悪用された統合/サービスフック

クラウド認証情報やパイプラインシークレットにより、攻撃者がアーティファクトストアやミラー、クラウドバックアップにアクセスし、暗号化/削除が可能

プロジェクト/リポジトリ権限の厳格化、キーのローテーション、変数の適切な利用、サードパーティアプリの制限、外部イミュータブルバックアップ

Azure DevOps

侵害されたEntra(Azure AD)アカウント、過剰な権限のサービス接続、誤設定されたパイプライン

サービス接続やAzureリソースアクセスにより、アーティファクトの暗号化、バックアップの削除、大規模な破壊的パイプラインジョブが可能

条件付きアクセス&MFAの強制、最小権限のサービス接続、パイプラインIDの制限、テナント外へのバックアップストレージ分離

誤削除

もう一つのリスクは、誤った削除や悪意ある内部関係者による組織内からの破壊行為です。これは単純なコマンドミスや過剰な権限によるプロジェクト削除などですが、バックアップや柔軟な復旧手段がなければ長期的に壊滅的な結果を招きます。

悪意ある内部関係者は、意図的に業務を妨害したり、ログを無効化したりすることができます。どちらの場合も、リポジトリ履歴の消失、高額な復旧コスト、データの消失や業務停止につながります。

サービス障害 

ソフトウェア開発チームは、依存する重要なプラットフォームのサービス障害に直面します。ダウンタイムは、重要なリポジトリやCI/CDパイプラインへのアクセス不能を意味し、ビジネス活動が完全に停止する可能性もあります。結果として、納期遅延や顧客信頼の喪失、リソースの無駄遣いなどの影響が生じます。

DevOpsデータのセキュリティを向上させる方法

上記のリスクに対処し、gitホスティングプラットフォーム上のデータを保護するために、組織はセキュリティを左シフトし、業界規制のコンプライアンス要件を遵守する必要があります。シークレットは決してリポジトリに保存しないことも重要です。

アクセス管理 

厳格なアクセス制御とは、RBAC(ロールベースアクセス制御)の実装と最小権限の原則の遵守を意味します。

この方法では、各ロールに合わせて権限を調整し、過剰なアクセスを誰にも与えません。すべての権限は定期的に確認し、非アクティブなアカウントは取り消してください。

バックアップと災害復旧

GitProtectのようなサードパーティのバックアップ・災害復旧ソリューションは、安全ネットの役割を果たします。ソリューション選定時は、DevOpsスタック(プロジェクトデータ、リポジトリ、すべてのメタデータ)を完全にカバーしているか確認しましょう。理想的には、バックアップは自動化され、暗号化され、地理的冗長性があり、WORM準拠のイミュータブル形式で保存されるべきです。

これに加え、柔軟な復旧手段(粒度の細かいリストア、クロスオーバーリカバリ、ポイントインタイムリストア、完全データ復旧)が必要です。 

これらの条件を満たすバックアップ・災害復旧ソリューションを導入すれば、ランサムウェア対策、業界標準への準拠、3-2-1バックアップルールの遵守が保証されます。他にも、監視や監査対応、直感的なユーザーインターフェース、アラートや通知、明確なログなども重要なポイントです。

GitProtectの14日間無料トライアルで、コンプライアンスに準拠したDevOpsバックアップとリカバリを実現しましょう。クレジットカード不要!

翻訳元: https://www.bleepingcomputer.com/news/security/the-hidden-risks-in-your-devops-stack-data-and-how-to-address-them/

ソース: bleepingcomputer.com