機械翻訳について

プロジェクトのNPMパッケージおよび依存関係のセキュリティ脆弱性の確認

セキュリティ監査は、セキュリティ脆弱性についてパッケージの依存関係を評価するプロセスです。 セキュリティ監査は、データ損失、サービスの停止、機密情報への不正アクセス、またはその他の問題を引き起こす可能性のある依存関係の既知の脆弱性を検出して解決するのに役立つため、パッケージを使用するユーザーを保護するのに役立ちます。

npm auditコマンドは、プロジェクト・パッケージに構成されている依存関係の説明をプロジェクトの組込みNPMレジストリに送信し、既知の脆弱性のレポートを要求します。 脆弱性が見つかった場合は、影響および適切な修正が計算されます。 監査レポートには、影響を受けるパッケージ名、脆弱性の重大度と説明、パスおよびその他の情報、および脆弱性を解決するためのパッチを適用するコマンド(使用可能な場合)が含まれます。

識別されたセキュリティ脆弱性の更新が使用可能な場合は、次のいずれかを実行できます:
  • npm audit fixを実行して、修正をパッケージ・ツリーに自動的に適用します。
  • 推奨されるコマンドを個別に実行して、脆弱な依存関係に対する更新を手動でインストールします。

識別された脆弱性に使用可能なパッチがない場合、監査レポートには脆弱性に関する情報が表示され、さらに調査するのに役立ちます。

セキュリティ脆弱性が見つからなかった場合は、既知の脆弱性を持つパッケージがパッケージの依存関係ツリーに見つからなかったことを意味します。 ただし、アドバイザ・データベースはいつでも更新できるため、npm auditを定期的に手動で実行するか(「npm監査の手動実行」を参照)、npm auditを含むビルド・ステップを継続的な統合プロセスに追加する必要があります。

また、npm installを使用してパッケージをインストールすると、デフォルトでnpm auditが自動的に実行されますが、必要に応じてパッケージのインストールでnpm auditをオフにすることもできます:
  • 単一のパッケージのインストール時にnpm auditをオフにするには、--no-auditフラグを使用します:
    npm install <package-name> --no-audit
  • すべてのパッケージのインストール時にnpm auditを無効にするには、ユーザーおよびグローバルnpmrc構成ファイルでaudit設定をfalseに設定します:
    npm set audit false

npm監査の手動実行

npm auditを手動で実行する方法を次に示します:
  1. コマンドラインで、cd path/to/your-package-nameと入力してパッケージ・ディレクトリに移動し、Enterを押します。
  2. パッケージにpackage.jsonおよびpackage-lock.jsonファイルが含まれていることを確認します。
  3. npm auditと入力し、Enterを押します。
  4. 監査レポートを確認し、推奨コマンドを実行するか、必要に応じてさらに調査します。

npm監査終了コードの理解

脆弱性が見つからない場合、npm auditコマンドは0の終了コードで終了し、脆弱性が見つかった場合は0以外のコードで終了します。 脆弱性が見つからない場合、または修正によってすべての脆弱性が正常に修正できる場合は、npm audit fixコマンドは終了コード0で終了します。 脆弱性が見つかった場合、終了コードは監査レベルの構成設定によって異なります。 CI環境では、--audit-level引数を含めて、コマンドが失敗する原因となる最小の脆弱性レベルを指定できます。 このオプションはレポート出力をフィルタせず、コマンド失敗のしきい値を変更するだけです。

プロジェクトの脆弱性をスキャンし、何も修正せずに詳細を表示します:
$ npm audit
予行演習を実行して、監査修正の実行内容を把握し、インストール情報をJSON形式で出力します:
$ npm audit fix --dry-run --json
dry-runオプションは、NPMに変更を加えないこと、およびNPMが実行した内容のみを報告することを示します。 これは、インストール、更新、アンインストール、パック、公開など、ローカル・インストールを変更する任意のコマンドに渡すことができます。 jsonオプションは、通常の出力ではなく、JSONデータを出力するかどうかを示します。
プロジェクトの脆弱性をスキャンし、脆弱な依存関係に対する互換性のある更新を自動的にインストールします:
$ npm audit fix
結果に中程度以上の脆弱性が含まれている場合にのみ、監査が失敗します:
$ npm audit --audit-level=moderate
audit-levelオプションは、npm auditがゼロ以外の終了コードで終了する脆弱性の最小レベル(「info」、「low」、「moderate」、「high」、「critical」、または「none」)を示します。