close search bar

Sorry, not available in this language yet

close language selection
 

npm エコシステムおよびその他の環境の悪意のあるパッケージから組織を守る

npm エコシステムおよびその他の環境における悪意のあるパッケージの脅威から組織を守る方法を学びましょう。

malicious packages

ソフトウェアパッケージとは、オープンソース・ソフトウェアやサードパーティ・ソフトウェアを配布するための一般的な手段のひとつです。これらはパッケージ・マネージャーやインストーラ・プログラムを通じて外部のソースから取得されることが多く、通常、ソフトウェアの構築と実行に必要なソースコード、ライブラリ、ドキュメント、その他のファイルが含まれます。

悪意のあるパッケージには、正規のパッケージを装ったマルウェアが含まれており、ソフトウェアシステムに感染することが目的です。悪意のあるパッケージに含まれるマルウェアがシステムに感染してしまうと、機密データの窃取、セキュリティソフトウェアの無効化、ファイルの改竄や削除、さらには不正な目的のためにシステム全体やネットワークを乗っ取られる可能性があります。

コードの弱点や脆弱性(悪用されずに数か月から数年にわたってソフトウェア内に存在する可能性がある)とは異なり、悪意のあるパッケージは、特にソフトウェア・サプライチェーンに関しては、ほとんどの場合、速やかに対処する必要のある直接的で即時の脅威です。Gartner によれば、世界中の組織の 45% がソフトウェア・サプライチェーンに対する攻撃を経験しており、これは 2021 年から 3 倍に増加しています。攻撃者は、サプライチェーンがほぼ無制限の攻撃面を提供しており、ソフトウェアの自動更新、Software-as-a-service(SaaS)ツール、クラウド、さらには AI が生成した偽の情報(一般に「幻覚」として知られています)を悪用することで、開発者をだまして悪意のあるパッケージをダウンロードさせる可能性があることに気づいたのです。

悪意のあるパッケージの一般的な攻撃ベクター

悪意のあるパッケージの最も一般的なベクトルには、ブランドジャッキングタイポスクワッティング依存関係ハイジャック依存関係混乱などがあります。 ブランドジャッキングとは、攻撃者がパッケージの正当な所有者のオンライン ID を詐称することを意味します。タイポスクワッティングでは、ダウンロードした利用者が意図せずに悪意のあるバージョンを取得することを期待しており、攻撃者は、悪意のあるパッケージを人気のあるパッケージに似た名前で公開します。
依存関係ハイジャックや依存関係混乱攻撃も、正規のパッケージを悪意のあるパッケージに置き換えることによって実行されます。たとえば、2018 年には、世界最大のソフトウェアレジストリである npm で広く使用されている「event-stream」パッケージに依存関係として悪意のあるパッケージが追加された結果、わずか 3 か月弱で 800 万回以上ダウンロードされました。

四大オープンソースエコシステム

主なオープンソースエコシステムには、Java、Python、.NET、そして最大かつ最も人気のある JavaScript の 4 つがあります。それぞれ、独自のパッケージ配布と管理システムがありますが、JavaScript のランタイム node.js のデフォルトのパッケージ マネージャーは npm で、JavaScript と npm は、他の 3 つのエコシステムと比べて安全性が劣るわけではありませんが、いたるところで用いられているため、悪意を持った攻撃者の格好の標的となっています。どのようなオープンソースエコシステムを好む場合であれ、悪意のあるパッケージはアプリケーションの整合性とセキュリティに重大なリスクをもたらす可能性があるのです。

SDLCにおいて悪意のあるコードを特定し、それから保護する

npm における悪意のあるパッケージの脅威には、リスクを軽減するための事前の対策が必要です。 悪意のあるパッケージを誤ってインストールしないように開発者が採用すべき 3 つの戦略を次に示します。

  • ダウンロードしたライブラリを検証する
    パッケージの評判と信頼性を再確認してください。偽のアカウントやなりすましの兆候を探し出し、パッケージをインストールする前にそのソースの正当性を確認しましょう。
  • パッケージのオーナーシップと保守のレビュー
    最近メンテナーが変更されたパッケージを使用する場合は注意してください。バージョンが異なると機能が大幅に変更されている場合があるので注意しましょう。
  • npm のセキュリティツールを用いる
    これらには、悪意のあるパッケージのインストールを防ぐのに役立つ npm Audit および npm shrinkwrap コマンドが含まれます。

現在利用可能な多数のソフトウェア・コンポジション解析(SCA)ツールのいずれかを積極的に導入することを検討してください。 オープンソースとサードパーティのコードからなるソフトウェア部品表(SBOM)の作成とメンテナンスのプロセスを自動化するものを探してください。 多くの SCA ツールは、新たなセキュリティ脅威を継続的に監視して、出現した場合に通知し、実用的な緩和アドバイスとともにセキュリティ上の脅威に関するタイムリーなアドバイザリーを提供します。

npm エコシステムにおける悪意のあるパッケージの脅威について、実際の例と緩和策を詳しく調べるには、以下のリンクにある無料の eBook を参照ください。

 

npmエコシステムにおける悪意のあるパッケージに脅威ついてのeBookを読む

 

 
Synopsys Editorial Team

投稿者

Synopsys Editorial Team


More from オープンソースとソフトウェア・サプライ・チェーンのリスク