ソフトウェアサプライチェーンの構築段階における脅威

ソフトウェアサプライチェーンのライフサイクルがソースコードから実行可能な成果物へと進むにつれて、ビルド段階は重要な分岐点となります。しかし、この変革段階は、ソフトウェアの完全性や信頼性を損なう可能性のあるさまざまな脅威にもさらされています。 build securityこれらの脅威は、確立されたセキュリティ対策を回避するなど、さまざまな方法でビルドプロセスに侵入する可能性があります。 CI/CD pipelineソースコード管理後のコード変更、ビルドプロセス自体の侵害、アーティファクトリポジトリの操作など、様々な脅威が存在します。このブログ記事では、これらの脅威を詳細に掘り下げ、最も一般的なソフトウェアサプライチェーンのビルド攻撃について検証します。このコンテンツは、ソフトウェアサプライチェーンのビルド攻撃を探求するブログシリーズの続きです。 software supply chain security 全体で SDLC.

ソフトウェア開発ライフサイクルにおける構築段階 

ソフトウェアサプライチェーンライフサイクルの構築段階は、ソースコードを実行可能なソフトウェア成果物に変換するプロセスを指します。この段階では、ソースコードのコンパイル、リンク、パッケージ化に加え、インストールパッケージと構成ファイルの生成が行われます。

Build security 脅威とは、攻撃者がソースコードを変更することなく、ビルドプロセス中にソフトウェアに不正な変更を加えることを可能にする脆弱性のことです。これらの脅威は、ビルド環境の侵害やビルドツールの脆弱性の悪用など、さまざまな方法で発生する可能性があります。 

ソフトウェアサプライチェーンセキュリティ構築攻撃ソフトウェアサプライチェーン構築攻撃

最も一般的なソフトウェアサプライチェーンの脅威 - ビルド攻撃

希釈水 CI/CD

これは、確立された法律を回避する行為を指します。 CI/CD (継続的インテグレーションと継続的デリバリー) pipeline 公式機関が通常実施する厳格なテスト、検証、監査プロセスを経ずに、ソフトウェアを直接構築および公開すること pipelineこれは、ソフトウェアを外部で手動でビルドすることによって実行できます。 CI/CD 環境を利用したり、ビルドプロセスへの不正な変更を可能にするツールやスクリプトを使用したりすることによって。この種の攻撃ベクトルの例としては、 ジェンキンス攻撃2022年、ハッカーが建物に侵入した。 pipeline 人気のあるオープンソースソフトウェアプロジェクトであるJenkinsの脆弱性を悪用したハッカーが、ビルドプロセスを定義するスクリプトであるJenkinsfileに悪意のあるコードを注入した。この悪意のあるコードにより、ハッカーは CI/CD pipelineセキュリティチェックを行い、ビルドプロセスに独自のコードを挿入します。このコードは、ソフトウェアをインストールした組織のシステム上で実行されます。

ソースコード管理後にコードを修正する 

この行為は、ソースコードが承認された後に、許可されていない変更を加えることを含みます。 commit信頼できるソースコード管理システム(SCS)に修正されたコードを送信し、その修正されたコードを使用してソフトウェアをビルドします。これは、開発者のワークステーションでコードを直接修正するか、外部ツールやスクリプトを使用してビルドプロセスに悪意のあるコードを注入することによって実行できます。この攻撃手法の一例として、2022年のGitLab攻撃があります。ハッカーはビルドプロセスに侵入しました。 pipeline of GitLabハッカーたちはGitLabに悪意のあるコードを注入した。 CI/CD pipelineこれは、 build security 悪意のあるコードによって、ハッカーはソースコード管理システムにチェックインされた後でもコードを改変することができた。これにより、ハッカーは自身のコードをソフトウェアに挿入することができ、そのコードはソフトウェアをインストールした組織のシステム上で実行された。

妥協した構築プロセス

これは、ビルド環境への直接アクセス、またはビルドツールやサードパーティの依存関係の脆弱性を悪用することによって、ビルドプロセス自体を操作または変更することを含みます。これは、ビルド出力に悪意のあるコードを挿入したり、ビルドの出所を改ざんしたり、ビルドプロセス全体を妨害したりするために行われます。このベクトル攻撃の最も有名な例は、 SolarWinds 攻撃攻撃者がSolarWindsのビルドプラットフォーム(SolarWinds Orionソフトウェアのコンパイルとパッケージ化に使用されるシステム)に不正アクセスしました。このスクリプトは、コンパイル済みのSolarWinds Orionソフトウェアに悪意のあるコードを注入しました。ユーザーが侵害されたソフトウェアをインストールすると、悪意のあるコードがシステム上で実行され、攻撃者はシステムへの不正アクセスが可能になりました。攻撃者はまた、認証情報、知的財産、顧客情報などの機密データをシステムから盗み出すことにも成功しました。

侵害されたアーティファクトリポジトリ

これは、ソフトウェアパッケージやバイナリが内部または外部ユーザーへの配布のために保存されているアーティファクトリポジトリへの不正アクセスや改ざんを指します。攻撃者はこの脆弱性を悪用して悪意のあるコードを導入したり、ソフトウェアの真正性を改ざんしたり、展開プロセスを妨害したりすることができます。この攻撃ベクトルの例は次のとおりです。 2022年のルビージェムズハッカーがRubyGemsのアーティファクトリポジトリに侵入しました。ハッカーは正規のアーティファクトを悪意のあるアーティファクトに置き換え、そのアーティファクトはRuby on Railsでソフトウェアを開発している数千もの組織によってダウンロードされました。この悪意のあるアーティファクトにより、ハッカーはソフトウェアをインストールした組織のシステム上で任意のコードを実行できるようになりました。これにより、データの窃盗、マルウェアのインストール、業務の妨害などが行われる可能性がありました。

最終的な備考

組織が自動化と継続的デリバリーを重視するソフトウェア開発手法を採用し続けるにつれ、ソフトウェア構築プロセスのセキュリティ確保の重要性はかつてないほど高まっています。構築段階全体にわたって堅牢なセキュリティ対策を実施することで、組織はソフトウェアの完全性とセキュリティを損なう可能性のある悪意のある攻撃の被害に遭うリスクを大幅に軽減できます。

このブログ記事で概説した戦略と提供された事例は、ソフトウェアサプライチェーンにおいて構築段階が脆弱なポイントであることを改めて認識させるものです。組織はこれらの脅威に注意を払い、ソフトウェアを攻撃から保護するために必要なセキュリティ対策を実施する必要があります。そうすることで、ユーザーと顧客に対してソフトウェアの完全性、セキュリティ、信頼性を確保することができます。

安全なソフトウェアエコシステムを目指す私たちの旅に参加しませんか?

ソフトウェアサプライチェーンの脅威を回避するための最先端技術をいち早く入手するこの機会をお見逃しなく。今すぐブログにご登録いただくと、最新の情報をいち早くお届けし、進化し続ける脅威の中でも組織の回復力とセキュリティを確保します。共に、より強固で安全なソフトウェアエコシステムを構築していきましょう。

Xygeniの機能をチェックしよう!
ビデオデモをご覧ください
sca-tools-ソフトウェア構成分析ツール
ソフトウェアのリスクを優先順位付けし、修復し、保護する
無料アカウントを作成しましょう。
いいえ、クレジットカードは必要ありません。

ソフトウェア開発と納品を安全に

Xygeni製品スイートと共に