"名前って何? 私たちがバラと呼ぶものは、他の名前で呼んでも同じように甘い香りがするでしょう。」 シェイクスピアが 2 年にこれらの言葉 (ロミオとジュリエット、第 2 幕、第 1596 場) を書いたとき、彼は名前は単なる慣習にすぎないと言いました。 本質的な意味はありません。 ジュリエットは名前ではなく、ありのままのロミオを愛しています。
しかし、シェイクスピアは知らず知らずのうちに、依存性混乱攻撃についても説明していました。
依存関係の混乱とは、コードで使用しているパッケージが自分のものではない場合に発生します。 これらは同じ名前ですが、本番環境で実行されているコードではありません。 同じ名前ですが、一方のパッケージはバラのような香りがし、もう一方のパッケージは…臭いです。
最近の調査レポートでは、組織の 41% ~ 49% が依存関係の混乱攻撃の危険にさらされていると推定されています。 OX Security の新しい調査によると、組織が依存関係の混乱攻撃の危険にさらされている場合、その資産の 73% が脆弱になることがわかっています。 この調査は、中規模および大規模組織 (1 人以上、8 人) に焦点を当てています。K+、80K金融、ゲーム、テクノロジー、メディアなど、幅広いセクターにわたって調査を行ったところ、あらゆる規模の組織のあらゆるセクターにリスクがあることがわかりました。 この調査では、1 億人を超えるユーザーがいるほぼすべてのアプリケーションが、依存関係の混乱に対して脆弱な依存関係を使用していることも判明しました。
この記事は、依存関係の混乱とそれを防ぐ方法を理解するのに役立つことを目的としています。
ダブル、ダブル
依存関係 (パッケージとも呼ばれます) は、ソフトウェアの構成要素です。 通常、これらのソフトウェアは、コミュニティ全体で開発されたか企業内で開発されたかにかかわらず、共通の必要なタスクを実行します。
パッケージ マネージャーは、依存関係をインストールし、更新し続けるためによく使用されます。 パブリックおよびプライベートのレジストリをスキャンしてパッケージの名前を調べ、他のすべての条件が等しい場合に、最も高いバージョン番号を選択します。 攻撃者はこれを利用して、同じ名前でより高いバージョンの「ダミー」パッケージをパブリック レジストリに配置します。
パッケージ マネージャーが XNUMX つの同一のパッケージ (XNUMX つはパブリック レジストリに、もう XNUMX つはプライベート レジストリにある) に遭遇すると混乱が生じます。そのため、「依存関係の混乱」と呼ばれています。 XNUMX つのパッケージは同一であるため、マネージャーは自動的に、より高いバージョンのパッケージをインストールすることを選択します。 - この場合は、攻撃者の悪意のあるパッケージです。
これにより、ハイジャッカーにソフトウェアへのバックドアが与えられます。 この時点から、彼らはデータ侵害を実行したり、知的財産を盗んだり、その他の信頼できるソフトウェア サプライ チェーンを侵害する可能性があります。 また、コンプライアンス違反を引き起こし、厳しい規制上の罰則が科せられる可能性もあります。
労苦とトラブル
依存性混乱攻撃にはさまざまなアプローチがあります。
- 名前空間。 悪意のあるソフトウェア ライブラリをパブリック レジストリ (Python Package Index (PyPI) や JavaScript など) にアップロードすることによって npmレジストリ - あれは 似たような名前の 信頼できる内部使用ライブラリに対して、名前空間/URL チェックを省略したり、プライベート レジストリからのフェッチを強制しないシステムでは、誤って悪意のあるコードを引き込む可能性があります。 の 最近の PyTorch 依存関係の混乱事件 そのような例のXNUMXつです。
- DNSスプーフィング。 DNS スプーフィングのような手法を使用すると、システムは、正規の内部 URL/パスのように見えるものを表示しながら、悪意のあるリポジトリから依存関係を取得するように指示される可能性があります。
- スクリプティング。 ビルド/インストール スクリプトを変更するか、 継続的インテグレーション/継続的デリバリー (CI/CD) パイプライン構成では、システムがだまされて、ローカル リポジトリではなく悪意のあるソースからソフトウェアの依存関係をダウンロードする可能性があります。
物事は丁寧かつ丁寧に行われる
依存関係の混乱を防ぐために、次のプラクティスを確立してください。
- パッケージマネージャーでポリシーを設定します。 パッケージ マネージャーがプライベート パッケージよりもパブリック パッケージを優先することを禁止します。
- 必ず .npmrc ファイルを含めてください。 一般的な NPM をパッケージ マネージャーとして使用している場合は、特定の組織スコープ内のパッケージをフェッチする場所を指定する .npmrc ファイルを必ず含めてください。
- パッケージ名をパブリック レジストリに予約します。 依存関係の混乱攻撃から保護するもう XNUMX つの方法は、パッケージ名をパブリック レジストリに予約して、ハイジャッカーがそのパッケージ名を使用できないようにすることです。したがって、パッケージ マネージャーを「騙して」悪意のあるパッケージをインストールさせることができません。
依存関係の混乱攻撃から完全に保護するには、組織は常に次のコマンドを使用する必要があります。 すべての内部パッケージの組織スコープ内部レジストリに公開する場合でも。 組織のスコープも NPM のパブリック レジストリに登録する必要があります。これにより、誰かがスコープを乗っ取って混乱を利用することを防ぐことができます。
パッケージ名も公開登録する必要があります。 たとえば、組織が Python 依存関係のパッケージ マネージャーとして人気の PIP を使用している場合、認識可能ですべてのプロジェクトで機能する厳密なサフィックスを持つ内部パッケージを作成する必要があります。 同じ名前の空のパッケージをプレースホルダーとしてパブリック レジストリ PyPI にアップロードします。
パッケージ名をパブリック レジストリに予約するもう XNUMX つの理由は、誰かが (悪意があるかどうかにかかわらず) パッケージ名を予約した場合、開発者はプライベート レジストリ内のすべてのパッケージ名をパブリック レジストリでまだ予約されていない名前に変更する必要があるためです。 これは長くて退屈なプロセスになる可能性があります。
すべてのパッケージ レジストリでユーザーがパッケージ名を予約できるわけではないことに注意することが重要です。そのため、予約できるパッケージ レジストリを必ず見つけてください。
熊に追われて退場
依存関係の混乱攻撃は、世界中の組織に深刻かつ差し迫ったサイバーセキュリティの脅威をもたらします。 全組織の約半数が危険にさらされており、それらの組織の資産の 73% が危険にさらされています。 この増大する脅威に対抗するには、組織は強力な予防措置を導入し、サイバーセキュリティのベスト プラクティスを採用する必要があります。
シェイクスピアのバラは、依存性混乱攻撃のリスクを何百年も前から予見していたかもしれませんが、吟遊詩人の別の引用には、依存性混乱攻撃から身を守るための知恵が含まれているかもしれません。 「すべての目で交渉し、代理人を信用しないようにしましょう。」 (何もないことについての騒ぎ、第 2 幕、シーン 1)
- SEO を活用したコンテンツと PR 配信。 今日増幅されます。
- PlatoData.Network 垂直生成 Ai。 自分自身に力を与えましょう。 こちらからアクセスしてください。
- プラトアイストリーム。 Web3 インテリジェンス。 知識増幅。 こちらからアクセスしてください。
- プラトンESG。 自動車/EV、 カーボン、 クリーンテック、 エネルギー、 環境、 太陽、 廃棄物管理。 こちらからアクセスしてください。
- プラトンヘルス。 バイオテクノロジーと臨床試験のインテリジェンス。 こちらからアクセスしてください。
- チャートプライム。 ChartPrime でトレーディング ゲームをレベルアップしましょう。 こちらからアクセスしてください。
- ブロックオフセット。 環境オフセット所有権の近代化。 こちらからアクセスしてください。
- 情報源: https://www.darkreading.com/edge-articles/software-supply-chain-strategies-to-parry-dependency-confusion-attacks
- :持っている
- :は
- :not
- :どこ
- 1
- 7
- a
- 私たちについて
- 越えて
- 行為
- 採用
- 利点
- に対して
- エージェント
- 目指して
- すべて
- 許す
- ほとんど
- また
- 常に
- an
- および
- 別の
- どれか
- 誰も
- アプローチ
- です
- 記事
- AS
- 資産
- At
- 攻撃
- 攻撃
- 自動的に
- バック
- BE
- なぜなら
- さ
- BEST
- ベストプラクティス
- 10億
- ブロック
- 違反
- 建物
- 焙煎が極度に未発達や過発達のコーヒーにて、クロロゲン酸の味わいへの影響は強くなり、金属を思わせる味わいと乾いたマウスフィールを感じさせます。
- by
- コール
- 呼ばれます
- 缶
- 場合
- 原因
- チェーン
- 変化する
- チェック
- 選択する
- コード
- comes
- コマンドと
- コミュニティ
- 会社
- コンプライアンス
- 妥協
- 混乱
- 大会
- カウンター
- 作ります
- サイバーセキュリティ
- データ
- データ侵害
- 依存関係
- 依存関係
- 発展した
- 開発者
- 指示された
- 表示
- DNS
- do
- ありません
- 行われ
- によって
- ほかに
- 社員
- 全体
- 等しい
- 推定
- さらに
- あらゆる
- 例
- 実行します
- 露出した
- 目
- File
- ファイナンス
- もう完成させ、ワークスペースに掲示しましたか?
- 焦点を当て
- 強
- 発見
- 頻繁に
- から
- 完全に
- 賭博
- 与える
- グローバルに
- 成長
- 半分
- 持ってる
- he
- 助けます
- それゆえ
- より高い
- 最高
- 彼の
- 認定条件
- How To
- HTTPS
- 何百
- 同一の
- if
- 差し迫った
- 実装する
- 重要
- in
- include
- index
- install
- インストールする
- 機関
- 知的
- 知的財産
- 内部
- 内部で
- に
- 本質的な
- 紹介する
- IT
- ITS
- 自体
- JavaScriptを
- ただ
- キープ
- 知っている
- 大
- 正当な
- う
- 図書館
- ような
- ローカル
- 長い
- LOOKS
- で
- make
- マネージャー
- マネージャー
- 五月..
- 意味
- 措置
- メディア
- 他には?
- ずっと
- しなければなりません
- 名
- 名
- 必要
- 新作
- いいえ
- 何も
- 数
- of
- on
- ONE
- or
- 組織
- 組織
- その他
- さもないと
- が
- パッケージ
- パッケージ
- 実行する
- ピース
- パイプライン
- プレースホルダー
- プラトン
- プラトンデータインテリジェンス
- プラトデータ
- ポイント
- ポリシー
- 人気
- ポーズ
- プラクティス
- 防ぐ
- 予防
- 優先順位付け
- プライベート
- プロセス
- 生産
- プロジェクト(実績作品)
- 財産
- 守る
- 保護
- 公共
- 公然と
- 出版
- Python
- パイトーチ
- 率
- 範囲
- むしろ
- RE
- 理由
- 登録された
- レジストリ
- レジストリ
- レギュレータ
- レポート
- 倉庫
- 研究
- ご予約
- 予約済み
- 予約済み
- リスク
- 堅牢な
- ROSE
- ランニング
- s
- 同じ
- 格言
- スキャン
- シーン
- スコープ
- スクリプト
- セクター
- セクター
- セキュリティ
- 深刻な
- 厳しい
- すべき
- 作品
- から
- サイズ
- So
- ソフトウェア
- ソフトウェアサプライチェーン
- 一部
- 誰か
- ソース
- 特定の
- 作戦
- 厳格な
- そのような
- 供給
- サプライチェーン
- 確か
- 甘い
- システム
- 取る
- 取得
- 仕事
- テクノロジー
- より
- それ
- 盗難
- それら
- したがって、
- ボーマン
- 彼ら
- 物事
- この
- それらの
- 脅威
- 従って
- 〜へ
- トリガー
- 信頼
- 信頼されている
- 2
- 一般的に
- 下
- わかる
- 更新しました
- アップロード
- つかいます
- 中古
- users
- さまざまな
- バージョン
- 違反
- 脆弱な
- ました
- 仕方..
- we
- WELL
- この試験は
- いつ
- かどうか
- which
- while
- 誰
- ワイド
- 広い範囲
- 意志
- 知恵
- 以内
- 無し
- 言葉
- 仕事
- でしょう
- 書いた
- 年
- まだ
- You
- あなたの
- ゼファーネット