Node.jsセキュリティに関する優れたリソースのキュレーションリスト。



Liran Tal から Node.js のセキュアコーディング手法とベストプラクティスを学びましょう
目次
ツール
Webフレームワークの堅牢化
- Helmet - Helmet はさまざまな HTTP ヘッダーを設定することで、Express アプリをセキュアにするのに役立ちます。
- koa-helmet - koa-helmet はさまざまな HTTP ヘッダーを設定することで、Koa アプリをセキュアにするのに役立ちます。
- blankie - hapi 用の CSP プラグイン。
- fastify-helmet - fastify-helmet は重要なセキュリティヘッダーを設定することで、fastify アプリをセキュアにするのに役立ちます。
- nis2-express-middleware - EU の NIS2 コンプライアンス(ログ記録、アクティブディフェンス、セキュアなデフォルト設定)に対応する包括的な Express.js ミドルウェア。
- nuxt-security - 🛡 OWASP Top 10 と Helmet に基づく Nuxt 用セキュリティモジュール。
- reporting-api - CSP、COOP/COEP、Permissions-Policy、NEL、クラッシュ、非推奨のレポート(Reporting API v0/v1 およびレガシーの report-uri)を収集する Express ミドルウェア。
GitHub Actions と CI/CD のセキュリティ
静的コード解析
- eslint-plugin-security - Node Security向けのESLintルール。このプロジェクトは潜在的なセキュリティホットスポットの特定に役立ちますが、人間によるトリアージが必要な誤検知も多く見つかります。
- tslint-plugin-security - Node Security向けのTSLintルール。このプロジェクトは潜在的なセキュリティホットスポットの特定に役立ちますが、人間によるトリアージが必要な誤検知も多く見つかります。
- safe-regex - スター高さを1に制限することで、壊滅的な指数時間正規表現の可能性を検出します。
- vuln-regex-detector - このモジュールを使うと、正規表現の脆弱性をチェックできます。JavaScriptでは、正規表現(regex)が「脆弱」になる可能性があります。つまり、壊滅的なバックトラッキングに対して脆弱になるのです。アプリケーションがクライアント側で使用される場合、これはパフォーマンスの問題になり得ます。サーバー側では、正規表現サービス拒否攻撃(REDOS)にさらされる可能性があります。
- regolith - ReDoS攻撃を防ぐために作られたTypeScript向けの正規表現ライブラリ。正規表現サービス拒否攻撃を防ぐため、Rust RegexライブラリのTypeScriptバインディングを作成しました。
- git-secrets - シークレットや認証情報をgitリポジトリにコミットすることを防ぎます。
- DevSkim - DevSkimは、セキュリティの「リンティング」機能を提供するIDEプラグインとルールのセットです。CLIもサポートしているため、CI/CDパイプラインに統合できます。
- ban-sensitive-files - コミット対象のファイル名をファイル名ルールのライブラリと照合し、機密ファイルがGitに保存されるのを防ぎます。一部のファイルについては機密コンテンツ(たとえば.npmrcファイル内のauthToken)をチェックします。
- NodeJSScan - Node.jsアプリケーション向けの静的セキュリティコードスキャナ。問題の箇所と修正方法を示せる便利なUIも含まれています。
- NodeSecure CLI - 指定したnpmパッケージまたはディレクトリの依存関係ツリーを深く分析できるNode.js CLIです。
- Trust But Verify - TBVはnpmパッケージをそのソースリポジトリと比較し、生成された成果物が同一であることを確認します。
- lockfile-lint - セキュリティと信頼ポリシーを向上させるためにロックファイルをリントし、悪意あるパッケージの注入やその他の安全でない設定からクリーンな状態を保ちます。
- pkgsign - npmおよびyarnパッケージの署名と検証を行うCLIツールです。
- semgrep - 多くの言語に対応した、オープンソースでオフライン、カスタマイズが容易な静的解析ツールです。このリストにある他のいくつかのツール(NodeJSScan)はsemgrepをエンジンとして使用しています。
- npm-scan - インストール済みのnpmパッケージ向けの、拡張可能なヒューリスティックベースの脆弱性スキャンツールです。
- js-x-ray - さまざまな既知の悪意あるコードパターン(安全でないimport、安全でないstmt、安全でないRegEx、エンコードされたリテラル、ミニファイおよび難読化されたコード)を検出できるJavaScriptおよびNode.js向けSASTスキャナです。
- cspscanner - CSP Scannerは、開発者やセキュリティ専門家がサイトのコンテンツセキュリティ(CSP)を簡単に検査・評価できるようにします。
- eslint-plugin-anti-trojan-source - Trojan Source攻撃がコードベースに侵入するのを検出・防止するESLintプラグインです。
- sdc-check - プロジェクトの依存関係リストにおける潜在的なリスクを知らせる小さなツールです
- fix-lockfile-integrity - npmロックファイル内の弱い整合性ハッシュ(sha1)を、より安全な整合性ハッシュ(sha512)に修正するCLIツールです。
- Bearer - OWASP Top 10 に基づいてコード内のセキュリティおよびプライバシーリスクを検出し、修正を支援する CLI ツール。
- GuardDog - GuardDog は悪意のある PyPI および npm パッケージを特定する CLI ツール。
- repolyze - git ソースコードリポジトリを分析し、健全性シグナルとプロジェクトのバイタルを評価する。
- eslint-plugin-node-security - Node.js のコア API(fs、child_process、vm、path、Buffer)向けの ESLint ルール。コマンドインジェクション、パストラバーサル、コード実行のパターンを検出し、すべてのレポートに CWE 参照を付与する。
動的アプリケーションセキュリティテスト
- PurpleTeam - セキュリティ回帰テストのSaaSおよびCLIで、ビルドパイプラインへの組み込みに最適です。テストを自分で書く必要はありません。purpleteamはテスト方法を理解できるほど賢く、テストしたい内容を記述したJobファイルを提供するだけで済みます。