
retire.js v5.5.0
既知の脆弱性があるJavaScriptライブラリの使用を検出するスキャナー。見つけたライブラリのSBOMも生成できます。
Retire.js
あなたが使用するものは、あなた自身も引退させなければならない
ウェブアプリケーションやNode.jsアプリケーション向けに、膨大な数のJavaScriptライブラリのエコシステムが存在します。これらのライブラリは開発を大幅に加速しますが、セキュリティ脆弱性に迅速に対処するために継続的なメンテナンスも必要です。2013年には、「既知の脆弱性を持つコンポーネントの使用」がOWASP Top 10の重要なセキュリティリスクリストに追加され、古くなったまたは安全でない依存関係がウェブアプリケーションにもたらす深刻な脅威が強調されました。Retire.jsは、開発者が既知の脆弱性を持つJavaScriptライブラリのバージョンを特定するのを支援するために作成されました。特に、パッケージマニフェストに含まれておらず、単にダウンロードされてソースコントロールに置かれているライブラリを対象としています。
Retire.jsはさまざまな方法で使用できます。
- コマンドラインスキャナーとして
- Chrome拡張機能として - 非公式 Chromeウェブストアでは提供されていません
- Burp拡張機能として または OWASP ZAPアドオンとして
- Firefox拡張機能として - 非推奨 メンテナンスして非推奨を解除したい場合はお知らせください。
- ヘッドレスウェブサイトスキャナー
- Gruntプラグインとして(非推奨)
- Gulpタスクとして(非推奨)
コマンドラインスキャナー
ウェブアプリやNodeアプリをスキャンして、脆弱なJavaScriptライブラリやNode.JSモジュールが使用されていないか確認します。まだの場合は、まずnode/npmをインストールしてください。アプリケーションフォルダのソースコードフォルダで以下のコマンドを実行します。
$ npm install -g retire
$ retire
SBOM生成
retire.jsはCycloneDX形式でSBOMを生成できます。
$ retire --outputformat cyclonedx
デフォルトでは、retire.jsは脆弱性を発見した場合、コード13で終了します。これは--exitwith 0で上書きできます。
ChromeおよびFirefox拡張機能
訪問したサイトをスキャンして安全でないライブラリへの参照を検出し、開発者コンソールに警告を表示します。アドレスバーのアイコンも、脆弱なライブラリが読み込まれたかどうかを示します。
Burp拡張機能とOWASP ZAPアドオン
@h3xstreamは、ペネトレーションテストツールBurpおよびOWASP ZAP用のプラグインとしてRetire.jsを移植しました。
OWASP ZAPチームはRetire.jsアドオンを公式にサポートしており、ZAPマーケットプレイスから入手可能で、ZAPのウィークリーリリースにはデフォルトで含まれています: https://www.zaproxy.org/docs/desktop/addons/retire.js/
ヘッドレスサイトスキャナー
retire-site-scanner https://github.com/RetireJS/retire-site-scanner を使用すると、ウェブサイトをヘッドレスモードでスキャンできます(Chrome/Firefox拡張機能を使用する代わりに)。
Gruntプラグイン(非推奨)
アプリケーションのビルドルーチンやその他の自動化ワークフローの一部としてRetire.jsを実行するためのGruntタスクです。
Gulpタスク(非推奨)
以下は、gulpfileで使用してプロジェクトファイルを自動的に監視およびスキャンできるGulpタスクの例です。ウォッチパターンや(オプションの)Retire.jsオプションは自由に変更できます。
const c = require("ansi-colors");
var gulp = require("gulp");
var beeper = require("beeper");
var log = require("fancy-log");
var spawn = require("child_process").spawn;
gulp.task("retire:watch", ["retire"], function (done) {
// Watch all javascript files and package.json
gulp.watch(["js/**/*.js", "package.json"], ["retire"]);
});
gulp.task("retire", function () {
// Spawn Retire.js as a child process
// You can optionally add option parameters to the second argument (array)
var child = spawn("retire", [], { cwd: process.cwd() });
child.stdout.setEncoding("utf8");
child.stdout.on("data", function (data) {
log(data);
});
child.stderr.setEncoding("utf8");
child.stderr.on("data", function (data) {
log(c.red(data));
beeper();
});
});
寄付
寄付はツールと脆弱性リポジトリのメンテナンスに使用されます。
