Skip to content

Security: EvilBit-Labs/OPNsense-config-faker

SECURITY.md

Security Policy

Supported Versions

This project maintains security updates for the following versions:

Version Supported
0.2.x Yes
0.1.x No
< 0.1 No

Reporting a Vulnerability

For Security Researchers and Users

IMPORTANT: This is a one-person operation. Please be patient and understanding with response times.

How to Report

  1. DO create a private GitHub security advisory for vulnerabilities
  2. DO NOT post about the vulnerability in public forums or social media
  3. DO use GitHub's security advisory feature for responsible disclosure
  4. DO include "SECURITY VULNERABILITY" in the advisory title

What to Include in Your Report

Please provide as much detail as possible:

  • Description: Clear explanation of the vulnerability
  • Impact: What could an attacker do with this vulnerability?
  • Steps to Reproduce: Detailed steps to demonstrate the issue
  • Environment: OS, Rust version, dependencies, etc.
  • Proof of Concept: Code or commands that demonstrate the issue (if safe to share)
  • Suggested Fix: If you have ideas for how to fix it
  • Timeline: When you discovered the issue
  • Disclosure Preferences: Your preferences for credit/acknowledgment

Response Timeline

  • Initial Response: Within 48-72 hours (Monday–Friday, 09:00–17:00 EST/EDT)
  • Status Updates: Weekly until resolution (Monday–Friday, 09:00–17:00 EST/EDT)
  • Fix Timeline: Depends on severity and complexity
  • Coordinated Disclosure: Disclosure will be coordinated with the reporter and only after an agreed embargo or once a fix is available and tested

For Contributors

If you discover a security issue while contributing:

  1. Immediately stop any work that might exploit the vulnerability
  2. Do not commit any code that demonstrates the issue
  3. Create a private GitHub security advisory with details
  4. Wait for guidance before proceeding with any related work

Security Considerations

What This Tool Does (and Doesn't Do)

Safe Operations

  • Generates test data only: All output is fake, non-functional configuration data
  • No network access: Tool operates entirely offline
  • No data collection: No telemetry, logging, or data transmission
  • No in-place mutations: Reads input files and writes outputs to new files; never overwrites existing configurations
  • Deterministic output: Same inputs produce same outputs (when seeded)

Security Considerations

  • File system access: Reads input files and writes new output files (no in-place edits or overwrites)
  • XML parsing: Processes XML files which could contain malicious content
  • Memory usage: Large configurations may consume significant memory
  • Temporary files: May create temporary files during processing

What This Tool Cannot Do

  • Cannot access networks: No internet connectivity or network scanning
  • Cannot execute code: No code execution capabilities
  • Cannot access system resources: No access to system files outside specified paths
  • Cannot persist data: No database or persistent storage

Security Best Practices

For Users

  1. Validate Input Files: Only use trusted XML files as base configurations
  2. Review Output: Inspect generated configurations before using in test environments
  3. Use Sandboxed Environments: Run the tool in isolated test environments
  4. Monitor Resource Usage: Large configurations may require significant memory
  5. Keep Updated: Use the latest stable release for security fixes

For Developers

  1. Dependency Management: Regularly update dependencies for security patches
  2. Input Validation: All user inputs are validated and sanitized
  3. Error Handling: Comprehensive error handling prevents information disclosure
  4. Memory Safety: Rust's memory safety prevents common vulnerabilities
  5. No Unsafe Code: The codebase forbids unsafe in CI (e.g., #![forbid(unsafe_code)] and lint checks)
  6. Fuzzing & Property Tests: Fuzz parsers and generators (e.g., cargo-fuzz) and add property-based tests (e.g., proptest) for robustness

Known Security Limitations

Current Limitations

  • XML Processing: Uses quick-xml which may have XML-related vulnerabilities
  • File I/O: Standard file operations with minimal validation
  • Memory Allocation: Large configurations may cause memory exhaustion
  • Error Messages: May reveal file paths in error messages

Planned Security Improvements

  • Add input file validation and sanitization
  • Implement memory usage limits
  • Add secure random number generation options
  • Improve error message sanitization
  • Add configuration file integrity checks

Security Architecture

Rust Security Features

This project leverages Rust's security features:

  • Memory Safety: No buffer overflows, use-after-free, or data races
  • Type Safety: Compile-time guarantees prevent many runtime errors
  • Zero-Cost Abstractions: Security features without performance overhead
  • Safe Concurrency: Thread-safe operations where applicable

Dependency Security

Security Scanning

  • cargo-audit: Regular vulnerability scanning of dependencies
  • GitHub Dependabot: Automated security updates for dependencies
  • Manual Review: Regular review of new dependencies

Dependency Policy

  • Minimal Dependencies: Only essential dependencies are included
  • Well-Maintained: Prefer actively maintained, widely-used crates
  • Security Focused: Choose crates with good security practices
  • Regular Updates: Keep dependencies updated to latest stable versions

Build Security

CI/CD Security

  • Secure Build Environment: GitHub Actions with minimal permissions
  • Dependency Scanning: Automated vulnerability scanning in CI
  • Artifact Verification: Verify build artifacts before release
  • Secrets Management: Secure handling of any required secrets

Release Security

  • Signed Releases: GPG-signed release artifacts (planned)
  • Checksum Verification: SHA256 checksums for all releases
  • Source Verification: Tagged releases match source code
  • Security Notes: Security-related changes documented in release notes

Incident Response

Security Incident Process

  1. Detection: Identify and confirm security issue
  2. Assessment: Evaluate severity and impact
  3. Containment: Prevent further exploitation
  4. Investigation: Determine root cause and scope
  5. Remediation: Develop and test fix
  6. Recovery: Deploy fix and verify resolution
  7. Post-Incident: Document lessons learned

Communication Plan

Internal Communication

  • Immediate: Maintainer notification via email
  • Assessment: Technical analysis and impact evaluation
  • Resolution: Fix development and testing
  • Deployment: Release planning and coordination

External Communication

  • Users: Security advisory via GitHub security advisories and releases
  • Community: Disclosure in project documentation
  • Vendors: Notify affected third-party dependencies
  • Media: No public statements unless necessary

Recovery Procedures

Code Recovery

  1. Revert Changes: If necessary, revert to last known good state
  2. Security Review: Conduct thorough security review of affected code
  3. Testing: Comprehensive testing of fixes
  4. Documentation: Update security documentation

User Recovery

  1. Advisory: Issue security advisory with details
  2. Guidance: Provide guidance for affected users
  3. Support: Offer support for migration/updates
  4. Monitoring: Monitor for any additional issues

Security Contacts

Primary Contact

  • GitHub Security Advisory: Create a private security advisory
  • Response Time: 48-72 hours (weekdays)
  • Process: Use GitHub's built-in security advisory workflow

Alternative Contact

  • Email: unclespider@pm.me (if GitHub is unavailable)
  • Response Time: 72-96 hours (weekdays)

PGP Key Information

-----BEGIN PGP PUBLIC KEY BLOCK-----
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
wD2hQEk3TLYp4Q==
=o/Ga
-----END PGP PUBLIC KEY BLOCK-----

Security Acknowledgments

Hall of Fame

Security researchers who have responsibly disclosed vulnerabilities:

  • [To be populated as vulnerabilities are reported and fixed]

Recognition

  • Responsible Disclosure: Credit given in security advisories
  • Contributions: Acknowledgment in project documentation
  • Collaboration: Invitation to contribute to security improvements

Security Resources

For Users

For Developers

For Security Researchers


Last Updated: August 2025
Version: 1.0
Maintainer: UncleSp1d3r (EvilBit Labs)

There aren’t any published security advisories