NodeSecure/js-x-ray

GitHub: NodeSecure/js-x-ray

一款专注于JavaScript和TypeScript生态的SAST静态分析工具,通过AST解析精准识别恶意代码模式和安全漏洞。

Stars: 271 | Forks: 36

@nodesecure/js-x-ray

npm version license ossf scorecard slsa level3 github ci workflow

**JS-X-Ray** 是一款 JavaScript 和 TypeScript [SAST](https://github.com/resources/articles/what-is-sast) 工具,用于识别恶意模式、安全漏洞和代码异常。可以将其视为 ESLint,但专注于安全分析。JS-X-Ray 最初是为 [NodeSecure CLI](https://github.com/NodeSecure/cli) 创建的,现已成为供应链保护的一个独立且重要的选择。 ## 🔎 工作原理 JS-X-Ray 将 JS 或 TS 代码解析为**抽象语法树 (AST)**,而不过度依赖正则表达式或 Semgrep 规则。这使得它能够进行变量追踪、动态导入解析,并检测那些基于模式匹配的工具所遗漏的复杂混淆代码。权衡之处在于,JS-X-Ray 专门致力于 JavaScript/TypeScript 生态系统。 ## 💡 功能特性 - 追踪 `require()`、`import` 和动态导入,并支持完整的变量追踪 - 检测混淆代码并识别所使用的工具(jsfuck、jjencode、obfuscator.io 等) - 标记恶意模式:数据窃取、`process.env` 序列化、不安全的 Shell 命令 - 检测易受攻击的代码:`eval()`、`Function()` 构造函数、易受 ReDoS 攻击的正则表达式、SQL 注入 - 标记弱加密算法(MD5、SHA1 等) - 提取基础设施指标:URL、IP、主机名、电子邮箱 - 可配置的敏感度模式(保守/激进)和可扩展的探测系统 - 同时支持 JavaScript 和 TypeScript ## 💃 快速上手 这些包可在 Node 包仓库中获取,可以使用 [npm](https://docs.npmjs.com/getting-started/what-is-npm) 或 [yarn](https://yarnpkg.com) 轻松安装。 ``` $ npm i @nodesecure/js-x-ray # 或 $ yarn add @nodesecure/js-x-ray ``` ## 👀 使用方法 ``` import { AstAnalyser } from "@nodesecure/js-x-ray"; const scanner = new AstAnalyser(); const { warnings, dependencies } = await scanner.analyseFile("./file.js"); console.log(dependencies); console.dir(warnings, { depth: null }); ``` 有关完整的 API 文档、警告目录和高级用法,请参阅 [@nodesecure/js-x-ray 包 README](./workspaces/js-x-ray/README.md)。 ## 工作空间 - [@nodesecure/js-x-ray](./workspaces/js-x-ray) - [@nodesecure/js-x-ray-ai](./workspaces/js-x-ray-ai) ### 内部 API 对于致力于 JS-X-Ray 内部开发的贡献者,以下资源记录了底层实用工具和 AST 操作模式: - [ESTree utilities](./workspaces/js-x-ray/src/estree/README.md) - 用于操作 ESTree AST 节点的底层辅助工具 - [ESTree assignment and declaration patterns (french)](./workspaces/js-x-ray/docs/estree/patterns-french.md) - AST 形式的 JavaScript 赋值和声明模式参考指南 ### 基准测试 js-x-ray 的性能使用 [mitata](https://github.com/evanwashere/mitata) 进行测量和跟踪。 要运行基准测试: 1. 导航到 `workspaces/js-x-ray`。 2. 运行 `npm run bench`。 基准测试结果存储在 workspaces/js-x-ray/benchmark/report.json 中。请勿手动编辑此文件;它会在每次拉取请求时自动更新。 ## 许可证 MIT
标签:CMS安全, DNS 反向解析, GNU通用公共许可证, GraphQL安全矩阵, JavaScript, MITM代理, Node.js, SAST, URL收集, 安全扫描器, 数据可视化, 盲注攻击, 网络安全, 自动化payload嵌入, 自动化攻击, 软件供应链安全, 远程方法调用, 错误基检测, 隐私保护, 静态代码分析