
npmパッケージの信用スコア。パッケージをインストールする前に、パッケージの評判、保守状況、セキュリティ、公開者の信頼性、エコシステムの健全性を分析します。
npmパッケージの信用スコア。
Reveraは、npm installを実行する前にパッケージをインストールする価値があるかどうかの判断を支援します。パッケージ品質、メンテナンス、セキュリティ、エコシステムの健全性、パブリッシャーの信頼性を分析し、依存関係グラフ全体にリスクを推移的に伝播させて、説明可能なベイズ流のレピュテーションレポートを生成します。
reveraがパッケージをリアルタイムで検査・解説する様子をご覧ください。
インストール不要ですぐにreveraを実行:
npx revera check react
requestのようなパッケージ(2020年に非推奨となった)を検査すると、具体的な理由とともに即座に警告します:
$ revera why request
▲ revera EXPLAIN
──────────────────────────────────────────────────
Package: [email protected]
Overall: 38/100 Not Recommended
Score Breakdown
Maintenance 15/100 ███░░░░░░░░░░░░░░░░░
Release cadence, commit activity, issue responsiveness, maintainer count
Stability 90/100 ██████████████████░░
SemVer compliance, major version history, API volatility over time
Security 100/100 ████████████████████
Known CVEs, install scripts, repository transparency
Package Quality 40/100 ████████░░░░░░░░░░░░
README completeness, license, test coverage indicators, exports
Ecosystem 100/100 ████████████████████
Weekly download volume, GitHub stars, community forks
Documentation 90/100 ██████████████████░░
README length, code examples, API references, external docs presence
Developer Experience 40/100 ████████░░░░░░░░░░░░
TypeScript support, ESM compatibility, CLI tooling
Publisher Trust 100/100 ████████████████████
Known malicious releases, protestware history, supply-chain incidents
Why it scores well
+ Stable API (v1.0.0+)
+ Low API volatility
+ Zero known vulnerabilities
+ Permissive open-source license
+ Code examples in README
+ Structured API documentation
+ No known publisher trust incidents
Minor deductions
- Last release was 59 months ago
- Single maintainer (bus factor of 1)
- Missing native type definitions
- Legacy CommonJS only
- No native typings (bad TypeScript DX)
Warnings
! Last release: 59 months ago. No recent updates detected. This may be normal for mature, stable libraries.
! Package has been officially marked as deprecated by the maintainer.
Verdict
Request has low confidence. revera recommends looking for alternatives due to security, activity, or stability concerns.
任意のディレクトリから実行できるようにグローバルインストールします:
npm install -g @aaravmaloo/revera
パッケージを分析し、概要レポートを取得します:
revera check lodash
キャッシュファイルを使用してオフラインモードで実行:
revera check express --offline
スコア、肯定的なシグナル、減点項目の詳細な内訳を取得します:
revera why node-ipc
インストール前にパッケージをスクリーニングし、レピュテーションが設定したしきい値を下回ると警告します:
revera add express
パッケージマネージャーにフラグを直接渡すこともできます:
revera add typescript --save-dev
現在のプロジェクト内の全パッケージ(推移的依存関係を含む)を監査し、プロジェクト全体の健全性スコアを算出します:
revera audit
本番依存関係のみを監査:
revera audit --prod
推移的依存関係をスキップし、直接依存関係のみを監査:
revera audit --direct
GitHubで認証してAPIレート制限を引き上げます(匿名は1時間あたり60回、認証済みは1時間あたり5,000回)。ブラウザベースのOAuth2またはPersonal Access Tokenの手動入力のどちらかを選択できます。認証が完了すると、reveraはトークンを安全に暗号化してOSのキーリング(Windows DPAPI、macOS Keychain、Linux Secret Service)に保存します:
revera login
~/.revera/config.jsonに保存されたローカル設定を管理します:
revera config
revera config set minScoreThreshold 75
revera config get minScoreThreshold
環境設定、APIのステータス、ネットワーク接続レイテンシを検証します:
revera doctor
ローカルメタデータキャッシュの確認またはクリア:
revera cache
revera cache clear
reveraエンジンの最新バージョンを実行しているか確認します:
revera update
| 機能 | npm audit | osv-scanner | Socket | revera |
|---|---|---|---|---|
| CVE脆弱性 | ✔ | ✔ | ✔ | ✔ |
| 複数の脆弱性DB | ✖ | 一部 | ✔ | ✔ |
| エコシステムのレピュテーション | ✖ | ✖ | 一部 | ✔ |
| 説明可能なスコアリング | ✖ | ✖ | 一部 | ✔ |
| パブリッシャー信頼性チェック | ✖ | ✖ | 一部 | ✔ |
| タイポスクワット検出 | ✖ | ✖ | 一部 | ✔ |
| 推移的リスク伝播 | ✖ | ✖ | ✖ | ✔ |
| ベイズ信頼区間 | ✖ | ✖ | ✖ | ✔ |
Revera v2は、従来のフラットな重み付き合計モデルを、4段階のベイズDAGパイプラインに置き換えました。
プロジェクト内のすべての依存関係は、有向非巡回グラフ(DAG)に解決されます。各ノードは完全な推移的依存セットを追跡するため、後続のステージで正確なブラスト半径を計算できます。
lodash ──► your-app
express ──► your-app
axios ──► some-lib ──► your-app ← transitive
8つのスコアリングカテゴリはそれぞれ、フラットな無情報ベースラインではなく、アーキタイプ固有の事前分布(framework、cli、types-only、utility)から始まります。観測されたシグナルはベータ分布の事後分布を更新します。つまり、タイムアウトやデータ欠落は「クリーン」として暗黙に扱うのではなく、信用区間を広げることになります。
| カテゴリ | 重み | 重点領域 |
|---|---|---|
| セキュリティ | 20% | アクティブなCVE(3つのDB)、インストールスクリプト、リポジトリの透明性 |
| パブリッシャーの信頼性 | 15% | プロテストウェアの履歴、意図的なサボタージュ、アカウント乗っ取りインシデント |
| メンテナンス | 13% | 公開頻度、最近のコミット、オープンイシューへの対応率 |
| 安定性 | 12% | SemVer準拠、メジャーバージョンの頻度、1.0未満の成熟度 |
| パッケージ品質 | 13% | ソースファイルサイズ、ライセンス、エクスポート設定 |
| エコシステム | 13% | 週間ダウンロード数(対数スケール)、GitHubスター、コントリビューター数 |
| ドキュメント | 9% | READMEの充実度、コード例、APIリファレンスの網羅性 |
| 開発者体験 | 5% | ネイティブTS型定義、ESMエクスポート、ツリーシェイキング対応 |
最終的なパッケージごとのスコアは、カテゴリ事後分布の信頼度重み付き集計(逆分散重み付け)であり、点推定値と95%信用区間の両方を生成します。
3つのハードオーバーライドはベイズスコアリングを完全にバイパスし、パッケージを即座に不合格とします:
| 拒否権 | トリガー |
|---|---|
| 重大な信頼性インシデント | パブリッシャーに確認済みのサプライチェーン攻撃またはプロテストウェアのリリースがある |
| タイポスクワット | トップNパッケージからの編集距離が1以下(例:lodahs、expres) |
| 未パッチの重大なCVE | パッチ済みバージョンが存在しないCRITICAL深刻度の脆弱性 |
パッケージごとのスコアが計算された後、リスクはDAGをボトムアップで(トポロジカル順序、まずリーフから)伝播します:
effectiveRiskがしきい値を超えると、その親のリスクは0.8にフロアリングされます(taintedとしてフラグ付け)。effectiveRisk × transitive_dependent_count。最終的な監査レポートは、固有スコア、継承されたtaint、信用区間、ブラスト半径を1つのランク付けされた出力に統合します。ワークスペース全体のスコアは、ブラスト半径による加重平均です。
Reveraは毎回のチェックで3つの独立した脆弱性データベースを並行して照会します。結果はスコアリングに使用される前に、CVE/GHSAエイリアスによってマージ・重複排除されます。
| データベース | ソース | 認証必須 | 備考 |
|---|---|---|---|
| OSV (osv.dev) | Google Open Source Security | ✖ | NVD、GitHub Advisory、RUSTSECなどを集約 |
| GitHub Advisory DB | GitHub Security | ✖ | 詳細なCVSSスコア+パッチ済みバージョン範囲 |
| npm Advisory | registry.npmjs.org | ✖ | npm auditと同じデータ。OSVより先に公開されることもある |
あるソースがタイムアウトまたはエラーになっても、他のソースは独立して継続します。VulnResultは、どのソースが応答したか(sources)と、どのソースが失敗したか(failedSources)を公開するため、ベイズスコアラーはクリーンと想定するのではなく、不確実性区間を適切に広げることができます。