ソースコードは、あらゆるアプリケーションやソフトウェア製品の基本的な構成要素を形成する。これは、技術中心のあらゆる組織のバックボーンです。ソースコードは、企業の知的財産に関する専有情報を格納し、企業の運営を維持するデータを保護します。
サードパーティのオープンソースコンポーネントを統合することで、ソフトウェアチームはゼロから開発することなく、すでに利用可能なコードを簡単に利用できる。しかし残念ながら、このような利便性の弊害として、サードパーティー・ベンダーを標的にしたリスクが発生し、サプライチェーン攻撃が引き起こされる。サプライ・チェーン攻撃では、サイバー犯罪者がサードパーティのコードやビルド・システムにマルウェアを挿入し、組織や関連する顧客にマルウェアを配信する可能性がある。
このブログでは、MetaDefender Jenkinsプラグインを使用してソースコード内のマルウェアを防止する方法を紹介する。
Secure Jenkins 用MetaDefender プラグインによるビルド
MetaDefender for Jenkins プラグインは、Jenkins ビルドのマルウェアをスキャンし、ソースコードと成果物に脅威がないかチェックします。高度なマルウェアは、単一のアンチウイルス(AV)エンジンを簡単にバイパスすることができ、ソースコードを危険にさらすことになります。MetaDefender for Jenkinsは、マルチスキャン技術であるMetascanを利用して、ソフトウェアビルドの検出率を高め、検出時間を短縮します。
ここでは、マルウェアがどのように侵入するかを示す2つのシナリオを紹介する:ソースコードの中とビルドプロセスの中。
シナリオ1:ソースコード内のマルウェア
この場合のソースコードとは、あなた自身のソースコード(開発者が危険にさらしたマシンから)であったり、サードパーティ・ライブラリからであったりする。最初のシナリオでは、GitHubにあるサードパーティのライブラリ・リポジトリをチェックしたかった。リポジトリに脅威がないことを確認するために、JenkinsのMetaDefender プラグインでスキャンするビルドステップを追加した。

また、ソースコードに脅威がある場合は、ビルドが「失敗」と返されるようにしたかった。

ビルドを実行しようとした結果、MetaDefender Jenkinsプラグインによって感染したファイルが検出されたため、結果は「失敗」と表示された。

シナリオ2:ビルドプロセスで侵入したマルウェア
リポジトリをスキャンすれば、ソースコードを保護するのに十分だと考えているなら、必ずしもそうとは限りません。マルウェアの中には、元のソースコード・リポジトリには存在しないが、依存関係やライブラリなどのコンポーネントをダウンロードしたときに混入するものもある。この2つ目のビデオでは、2つ目のシナリオの例と、MetaDefender Jenkinsプラグインを使ってそれを防ぐ方法を実演しました。
ご覧の通り、最初の実行でソースコードをスキャンした結果、問題は見つからなかった。

その後、build.batファイルを使って新しいビルド・ステップを追加し、再びビルドを開始した。

デモのために、npmを使ってEICARテストパッケージをダウンロードし、実際のシナリオでマルウェアをインストールする動作をシミュレートしてみた。この場合、元のソースコードには脅威はなかったが、悪意のあるnpmパッケージがビルド中のスクリプトで発生した。MetaDefender Jenkinsプラグインはこの脅威を検出し、ビルドを失敗としました。

詳細なスキャン結果をMetaDefender Core に示す。

OPSWAT MetaDefender for Jenkins について
OPSWAT MetaDefender for Jenkins は、アプリケーションを一般に公開する前に、ビルドのマルウェアと機密情報をチェックします。30以上の主要なアンチウイルスエンジンを含むMetaDefender プラットフォームの全機能を搭載しています、 Deep CDRそして Proactive DLPJenkins 用MetaDefender プラグインは、ソースコードと成果物に脅威がないか徹底的にスキャンします。マルウェアの発生や機密データの漏えいを防ぐ内蔵のフェイルセーフ機能により、潜在的な問題が通知されます。MetaDefender for Jenkinsおよびその他のOPSWAT 無料ツールの詳細については、こちらをご覧ください。
詳細については、当社のサイバーセキュリティ専門家にお問い合わせください。