훌륭한 Node.js 보안 리소스의 엄선된 목록입니다.



Liran Tal로부터 Node.js 보안 코딩 기법과 모범 사례를 배우세요
목차
도구
웹 프레임워크 강화
- 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 보안을 위한 ESLint 규칙입니다. 이 프로젝트는 잠재적인 보안 핫스팟을 식별하는 데 도움을 주지만, 사람이 분류해야 하는 많은 오탐을 발견합니다.
- tslint-plugin-security - Node 보안을 위한 TSLint 규칙입니다. 이 프로젝트는 잠재적인 보안 핫스팟을 식별하는 데 도움을 주지만, 사람이 분류해야 하는 많은 오탐을 발견합니다.
- safe-regex - 별 높이(star height)를 1로 제한하여 잠재적으로 치명적인 지수 시간 정규 표현식을 탐지합니다.
- vuln-regex-detector - 이 모듈을 사용하면 정규식의 취약점을 확인할 수 있습니다. JavaScript에서 정규 표현식(regex)은 "취약"할 수 있습니다. 즉, 치명적인 백트래킹에 취약합니다. 애플리케이션이 클라이언트 측에서 사용되는 경우 성능 문제가 될 수 있습니다. 서버 측에서는 정규 표현식 서비스 거부(REDOS)에 노출될 수 있습니다.
- regolith - ReDoS 공격을 방지하기 위해 만들어진 TypeScript용 정규식 라이브러리입니다. 정규 표현식 서비스 거부 공격을 방지하기 위해 Rust Regex 라이브러리에 대한 TypeScript 바인딩을 만들었습니다.
- git-secrets - 비밀 정보와 자격 증명을 git 저장소에 커밋하는 것을 방지합니다.
- DevSkim - DevSkim은 보안 "린팅" 기능을 제공하는 IDE 플러그인 및 규칙 모음입니다. CI/CD 파이프라인에 통합할 수 있도록 CLI도 지원합니다.
- ban-sensitive-files - 커밋하려는 파일 이름을 파일 이름 규칙 라이브러리와 대조하여 Git에 민감한 파일이 저장되는 것을 방지합니다. 일부 파일의 민감한 내용(예: .npmrc 파일 내의 authToken)을 검사합니다.
- NodeJSScan - Node.js 애플리케이션을 위한 정적 보안 코드 스캐너입니다. 문제가 있는 위치와 해결 방법을 알려주는 깔끔한 UI를 포함합니다.
- NodeSecure CLI - 주어진 npm 패키지 또는 디렉터리의 의존성 트리를 심층 분석할 수 있는 Node.js CLI입니다.
- Trust But Verify - TBV는 npm 패키지를 소스 저장소와 비교하여 결과 아티팩트가 동일한지 확인합니다.
- lockfile-lint - 악성 패키지 주입 및 기타 안전하지 않은 구성으로부터 깨끗하게 유지하기 위해 보안 및 신뢰 정책을 개선하도록 lockfile을 린트합니다.
- 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 - 코드베이스에 트로이 목마 소스 공격이 유입되는 것을 탐지하고 방지하는 ESLint 플러그인입니다.
- sdc-check - 프로젝트 의존성 목록의 잠재적 위험을 알려주는 작은 도구입니다.
- fix-lockfile-integrity - npm lockfile의 약한 무결성 해시(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은 테스트 방법을 알 만큼 충분히 똑똑하며, 테스트하고자 하는 내용을 purpleteam에 알려주는 Job 파일만 제공하면 됩니다.