Skip to content

dev-kas/auditor

Repository files navigation

Contributing to Auditor 🛡️

First off, thanks for taking the time to contribute! As an open-source SAST tool, Auditor relies on the community to keep up with the ever-evolving landscape of security vulnerabilities.

By contributing to this project, you agree that your contributions will be licensed under the GNU GPL v3.

How You Can Help

1. Adding New Rules

The most impactful way to contribute is by adding new vulnerability detection patterns in the rules/ directory.

  • Identify a Sink: Find a dangerous function (e.g., eval(), fs.writeFile()).
  • Define Taint Flow: Map out how user input (Sources) reaches that Sink.
  • Test: Create a snippet in test-snippets/ to verify your rule triggers correctly.

2. Enhancing the Engine

If you're a fan of static analysis, help us build out the core logic in src/:

  • Parser: Improve AST traversal for complex JavaScript patterns.
  • Symbols: Help resolve aliased imports (like const { exec: run } = require('child_process')).
  • Reporters: Add support for SARIF, JSON, or HTML output formats.

Technical Workflow

  1. Fork the repository and create your branch from main.
  2. Install dependencies: npm install.
  3. Run tests: (npm run test).
  4. Commit your changes: Use descriptive commit messages (e.g., feat: add rule for prototype pollution).
  5. Submit a Pull Request: Explain why the change is necessary and include test snippets.

Our Philosophy

  • Reciprocity: We believe in the "Give and Take" of Open Source. If you improve the detection logic or the engine, those improvements belong to the community.
  • Clarity over Complexity: Rules should be readable and well-documented.
  • False Positive Reduction: A security tool is only as good as its signal-to-noise ratio.

Coding Standards

  • Use CommonJS (as defined in package.json).
  • Follow the existing directory structure:
  • src/: Engine logic.
  • rules/: YAML-based detection logic.
  • signatures/: Metadata for sources/sinks.

Questions? Feel free to open an Issue to discuss a new feature or rule before you start coding!

About

simple open-source sast tool for nodejs

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors