# 依存関係の混乱 {% hint style="success" %} AWSハッキングを学び、実践する:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ GCPハッキングを学び、実践する:[**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
HackTricksをサポートする * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
{% endhint %}
{% embed url="https://websec.nl/" %} ## 基本情報 要約すると、依存関係の混乱脆弱性は、プロジェクトが**スペルミス**のある名前、**存在しない**、または**バージョンが指定されていない**ライブラリを使用しているときに発生し、使用される依存関係リポジトリが**公開**リポジトリから**更新されたバージョンを取得する**ことを許可します。 * **スペルミス**:`requests`の代わりに**`reqests`**をインポート * **存在しない**:**もはや存在しない**内部ライブラリ`company-logging`をインポート * **バージョンが指定されていない**:**内部**の**存在する**`company-requests`ライブラリをインポートするが、リポジトリは**より新しいバージョン**があるかどうかを**公開リポジトリ**で確認する。 ## 悪用 {% hint style="warning" %} すべての場合において、攻撃者は被害者企業が使用しているライブラリの**名前を持つ悪意のあるパッケージを公開する**だけで済みます。 {% endhint %} ### スペルミスと存在しない あなたの会社が**内部でないライブラリをインポートしようとしている**場合、ライブラリのリポジトリは**公開リポジトリ**でそれを探す可能性が非常に高いです。攻撃者がそれを作成している場合、あなたのコードと実行中のマシンは非常に高い確率で侵害されるでしょう。 ### バージョンが指定されていない 開発者が使用するライブラリの**バージョンを指定しない**、または**メジャーバージョン**だけを指定することは非常に一般的です。その後、インタープリターはその要件に合った**最新バージョン**をダウンロードしようとします。\ ライブラリが**既知の外部ライブラリ**(例えば、Pythonの`requests`)である場合、**攻撃者はあまりできることがありません**。なぜなら、彼は`requests`という名前のライブラリを作成できないからです(彼が元の著者でない限り)。\ しかし、ライブラリが**内部**である場合、例えばこの例の`requests-company`のように、**ライブラリリポジトリ**が**外部からの新しいバージョンの確認を許可する**場合、公開されている新しいバージョンを探します。\ したがって、**攻撃者が**会社が`requests-company`ライブラリの**バージョン1.0.1**(マイナーアップデートを許可)を使用していることを知っている場合、彼は**バージョン1.0.2**のライブラリ`requests-company`を**公開**し、会社は内部のものの代わりに**そのライブラリを使用する**ことになります。 ## AWSの修正 この脆弱性はAWSの**CodeArtifact**で発見されました([**このブログ投稿の詳細を読む**](https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d))。\ AWSは、ライブラリが内部か外部かを指定できるようにすることで、外部リポジトリから内部依存関係をダウンロードするのを避けるように修正しました。 ## 脆弱なライブラリの発見 [**依存関係の混乱に関する元の投稿**](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610)で、著者はJavaScriptプロジェクトの依存関係を含む数千の公開されたpackage.jsonファイルを検索しました。 ## 参考文献 * [https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610) * [https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d](https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d)
{% embed url="https://websec.nl/" %} {% hint style="success" %} AWSハッキングを学び、実践する:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ GCPハッキングを学び、実践する:[**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
HackTricksをサポートする * [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください! * **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** * **[**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してハッキングトリックを共有してください。**
{% endhint %}