
JavaScript 및 Node.js 오픈소스 SAST 스캐너. 가장 흔한 악성 패턴을 탐지하는 정적 분석기 🔬.
JS-X-Ray는 JavaScript 및 TypeScript SAST 도구로, 악성 패턴, 보안 취약점 및 코드 이상을 식별합니다. ESLint와 비슷하지만 보안 분석에 특화되어 있습니다. 원래 NodeSecure CLI를 위해 만들어졌지만, JS-X-Ray는 이제 독립적이고 진지한 공급망 보호 옵션으로 성장했습니다.
JS-X-Ray는 정규식이나 Semgrep 규칙을 많이 사용하지 않고 JS 또는 TS 코드를 **추상 구문 트리(AST)**로 파싱합니다. 이를 통해 변수 추적, 동적 import 해석, 패턴 매칭 도구가 놓치는 정교한 난독화 탐지가 가능합니다. 단점은 JS-X-Ray가 순수하게 JavaScript/TypeScript 생태계에만 전념한다는 것입니다.
require(), import 및 동적 import 추적process.env 직렬화, 안전하지 않은 셸 명령eval(), Function() 생성자, ReDoS 취약 정규식, SQL 인젝션이 패키지는 Node 패키지 저장소에서 제공되며 npm 또는 yarn으로 쉽게 설치할 수 있습니다.
$ npm i @nodesecure/js-x-ray
# or
$ 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를 참조하세요.
프로젝트에 기여하고자 하는 개발자는 먼저 CONTRIBUTING 가이드를 읽어야 합니다.
개발을 완료한 후 다음 스크립트를 실행하여 테스트(및 린터)가 여전히 정상인지 확인하세요:
$ npm run check
[!CAUTION] 새로운 기능을 추가하거나 버그를 수정하는 경우 해당 기능에 대한 테스트도 포함해야 합니다.
JS-X-Ray 내부 작업을 위한 기여자를 위해 다음 리소스는 저수준 유틸리티와 AST 조작 패턴을 문서화합니다:
js-x-ray의 성능은 mitata를 사용하여 측정 및 추적됩니다.
벤치마크를 실행하려면:
workspaces/js-x-ray로 이동합니다.npm run bench를 실행합니다.벤치마크 결과는 workspaces/js-x-ray/benchmark/report.json에 저장됩니다. 이 파일을 수동으로 편집하지 마십시오. 모든 풀 리퀘스트에서 자동으로 업데이트됩니다.
Thanks goes to these wonderful people (emoji key):
MIT
![]() tchapacan 💻 ⚠️ |
![]() mkarkkainen 💻 |
![]() Michael Mior 📖 |