情報確認日:2026年10月15日
AIが示したパッケージ名は、インストールする前に公式レジストリーと提供元の資料で照合してください。存在しない名前や、目的の製品とは別の似た名前が混ざる場合があります。検索で名前が見つかっても、それだけで安全性や公式との関係が確認できたわけではありません。
「見つかったら導入」で終えない理由
コードに必要な部品をまとめて配布するものを、パッケージと呼びます。JavaScriptではnpm、PythonではPyPIなどのレジストリーが利用されます。
USENIX Security 2025の研究は、16のLLMが生成したPython・JavaScriptのコードを調べ、存在しないパッケージ名を出す現象を報告しています。当時のモデルと実験条件の結果であり、今使う全AIの誤り率を示すものではありません。
存在しなかった名前で、後から誰かが別のパッケージを公開することも考えられます。「昨日は見つからなかったが今日はある」ことを、AIの提案が正しかった証拠にはできません。実在と、信頼する提供元の配布物であることを分けます。
最初に、導入を止めて名称を取り出す
AIがインストール命令を出したら、まず名前、版、利用目的を一覧にします。スペル、ハイフン、アンダースコア、npmの@組織名/名前などを省略せず残します。
依頼の例です。
まだインストールしないでください。追加するパッケージごとに、正式名称、指定する版、必要な理由、提供元の公式資料、レジストリーのURLを示してください。実在や提供元を確認できなければ、その点を未確認としてください。
AIがURLを作って示した場合も、実際に開いて内容を確認します。説明が流ちょうでも、名前が似ている別製品を指していないかを見ます。
npmは、導入せずメタデータを読む
公式のnpm viewは、レジストリー上のパッケージ情報を表示するコマンドです。たとえば次は、npm自体のリポジトリーURLを表示する公式例で、パッケージをインストールする命令ではありません。
npm view npm repository.url
調べたいパッケージでは、公式案内に沿って対象名や版、確認する項目を指定します。名前を省略した場合の対象や、会社内の独自レジストリー設定にも注意し、何をどこで調べたかを残してください。
ウェブのパッケージページでは、説明、公開者・管理者、ソースへのリンク、版の履歴などを見ます。提供元の公式サイトからも同じレジストリー名へリンクしているか、逆方向に照合すると取り違えを見つけやすくなります。
Pythonでは、名前と公式配布先を突き合わせる
PyPIで対象のプロジェクトページを開き、説明、版、プロジェクトのリンク、対応するPython等を確認します。Pythonで読み込むときの名前と、インストールする配布名が同じとは限らないため、提供元の導入手順を根拠にします。
開発担当者はPyPIのJSON APIでも情報を参照できます。ただし、公式資料も、メタデータはアップロード時に提供された値で、配布ファイルの内容と必ずしも一致しないと説明しています。作者欄やURLがあることだけで、ファイルの中身まで確認したとは扱いません。
見つからない場合は、AIに似た名前を次々試させず、正式な文書やソースリポジトリーへ戻ります。社内専用の部品なら、公開レジストリーに同名があるという理由で代用せず、管理者へ取得先を確認します。
来歴の表示も、安全性の保証とは区別する
npmは、来歴情報がある場合、パッケージページのバージョン欄のチェックから「View more details」を開き、ビルド環境やソースのコミット等を確認する方法を案内しています。npmのprovenance説明
これは、どこでどう公開されたかを調べる材料です。自分の目的に合うか、脆弱性がないか、信頼できる変更かをすべて判定する表示ではありません。逆に表示がないことだけで、直ちに悪意のある配布物と断定もしません。
採用後は、版と変更範囲を残す
必要性と提供元を確認して採用する場合は、承認された開発環境で、指定した版と実際に入った版、増えた依存関係を確認します。既存プロジェクトへ加える前には、設定ファイルと変更前の状態を残します。
もし不審なものをすでに実行した場合は、削除したことだけで影響がなくなったと判断しません。何をいつ実行したか、取得先、ログを保存し、組織の管理者へ連絡します。機密情報を含むログを、そのまま別のAIへ送らないようにしてください。
参照資料
あわせて読みたい記事
執筆・検証:カネさん(政経プラスチャンネル運営)+ ChatGPT
