Security Features

The application includes security scanning capabilities.

Security Scanner

The core logic resides in app/security_scanner_gemini_all_code_withsecondpass.py.

  • Functionality: Scans code files (identified by extensions like .py, .js, etc.) within the repository for potential security vulnerabilities.

  • Analysis Process:
    • First Pass: Performs an initial analysis using a configured Gemini model (default gemini-2.0-flash-thinking-exp-01-21 or user-selected) to identify potential issues. It extracts vulnerability details like name, description, location, remediation, threat level, and CWE ID. Results are saved to security_vulnerabilities.json.

    • Second Pass (Optional): If selected by the user, a second Gemini model (default gemini-2.0-flash-thinking-exp-01-21 or user-selected) refines the initial findings. It uses the full repository context (uploaded as a text file) to filter out likely false positives and improve the accuracy of the reports. Refined results are saved to improved_security_vulnerabilities.json.

  • Output: Generates JSON files containing lists of vulnerabilities found, including threat summaries. The format includes fields specified in the analysis prompts.

  • Rate Limiting: Includes delays (time.sleep) to manage API rate limits.

SECURITY.md Generator

The app/gui/security_generator.py module provides a GUI tab to create a SECURITY.md file.

  • It prompts the user for policy details like reporting methods, disclosure timelines, preferred languages, and contact information.

  • It uses a template prompt and potentially information from the README.md and LICENSE files to generate the content using an LLM.

  • The generated file is saved to the repository.