安全に*インストールプロセスの一部として監査して、npm/yarnでパッケージをインストールします
NPQに関するメディアの報道:
NPQがインストールされたら、安全に*パッケージをインストールできます。
npq install express
npq
、構文のヒューリスティックを採用し、CVEデータベースを照会することにより、パッケージが安全であることを正気に確認するために、次の手順を実行します。
NPQがインストールを続行するように求められている場合、実際のパッケージインストールジョブをパッケージマネージャー(デフォルトでNPM)に渡すだけです。
安全に* - 保証された安全はありません。悪意のあるまたは脆弱なパッケージが存在する可能性があり、セキュリティの脆弱性は公開されておらず、NPQのチェックに合格します。
npm install -g npq
注: yarn
ではなくnpm
でインストールすることをお勧めします。そうすれば、 npq
シェルエイリアスを自動的にインストールできます。
npq install express
npq
、インストールしているNPMパッケージが安全であることを確認するための事前ステップであるため、日々のnpm
使用に安全に埋め込むことができるため、 npq
明示的に実行することを忘れないでください。
alias npm= ' npq-hero '
yarn
を使用している場合、または一般的にNPQを明示的に伝えたい場合は、使用するパッケージマネージャーを環境変数を指定できます: NPQ_PKG_MGR=yarn
例:パッケージマネージャーとしてYarnを使用してエイリアスを作成します。
alias yarn= " NPQ_PKG_MGR=yarn npq-hero "
注:デフォルトでは、 npq
、それぞれのパッケージのデューダイジェリジェンスを終了した後、すべてのコマンドとその引数をnpm
パッケージマネージャーにオフロードします。
マーシャル名 | 説明 | メモ |
---|---|---|
年 | NPMの年齢が22日未満の場合、パッケージの警告が表示されます | 特定のバージョンではなく、パッケージ作成日をチェックします |
著者 | 著者フィールドなしでパッケージが見つかった場合、警告が表示されます | 著者の最新バージョンをチェックします |
ダウンロード | 先月のダウンロード数が20未満の場合、パッケージの警告が表示されます | |
readme | パッケージにREADMEがない場合、またはNPMスタッフによってセキュリティプレースホルダーパッケージとして検出された場合、警告が表示されます | |
レポ | 有効で動作するリポジトリURLなしでパッケージが見つかった場合、警告が表示されます | リポジトリURLの最新バージョンをチェックします |
スクリプト | パッケージに事前/ポストインストールスクリプトがある場合は警告が表示されます。 | |
スナイク | Snykのデータベースに脆弱性があるパッケージが見つかった場合、警告が表示されます | SNYKが機能するには、有効なAPIトークンを備えたsnyk NPMパッケージをインストールするか、SNYK_TOKEN環境変数でトークンを使用できるようにする必要があり、NPQはそれを使用します |
ライセンス | ライセンスフィールドなしでパッケージが見つかった場合、警告が表示されます | ライセンスの最新バージョンをチェックします |
期限切れのドメイン | メンテナーの1人が期限切れのドメインを含む電子メールアドレスを持っている場合にパッケージが見つかった場合、警告が表示されます | 期限切れのドメインを持つメンテナーの依存関係バージョンをチェックします |
署名 | レジストリのパックメントに表示されるパッケージの署名と、npmjs.comレジストリで公開されているキーを比較します | |
出所 | 公開されたパッケージの出所メタデータのパッケージの証明を確認します |
Marshallを完全に無効にするには、MarshallのShortNameを使用して環境変数を設定します。
たとえば、Snykの脆弱性Marshallを無効にするには:
MARSHALL_DISABLE_SNYK=1 npq install express
npq install express --dry-run
node.jsを学ぶリランタルからの安全なコーディング手法とベストプラクティス
npm install
、脆弱性がある場合でもモジュールをインストールします。 NPQは、検出された問題を表示し、ユーザーにインストールを続行するかどうかの確認を促します。pre-install
スクリプトがあるかどうかなど、モジュールの特性について、Marshallsと呼ばれる合成チェックを実行します。 npm audit
そのようなチェックを実行せず、既知のセキュリティ問題についてのみ脆弱性データベースに相談します。npm audit
NPQが行うことではなく、SNYKが行うことにより機能に近いです。このプロジェクトへの貢献に関するガイドラインについては、寄付をご覧ください
liran tall [email protected]