Skip to content

Latest commit

 

History

History
168 lines (97 loc) · 6.62 KB

File metadata and controls

168 lines (97 loc) · 6.62 KB
title Python Code Audit
short_title Python Code Audit

Python Code Audit is a Static Application Security Testing (SAST) tool used to find security weaknesses in Python code.

:::{tip} You can directly try and use the webbased version!

{button}Launch webbased version <https://nocomplexity.com/codeauditapp/dashboardapp.html>

No installation needed, 100% local browser application. :::

Python Code Audit offers a powerful yet straightforward security solution:

  • Ease of Use: Simple to operate for quick audits.

  • Extensibility: Easy to customize and adapt for diverse use cases.

  • Impactful Analysis: Powerful detection of security weaknesses that have the potential to become critical vulnerabilities.

Features

Python Code Audit is a modern security-focused source code analysis tool for Python, built on a zero-trust mindset. It identifies security risks, hidden behaviours, and trust boundaries without ever executing the code. This makes it safe to use on both your own projects and third-party code.

Python Code Audit is specifically designed for Python codebases. It is tailored to Python’s syntax and unique constructs, enabling it to identify potential security issues effectively.

:::{tip} Key Features of Python Code Audit

  • Vulnerability Detection
    Detects potential security issues in Python source files. This is essential for validating trust in third-party modules and supporting security research.

+++

  • External Egress Detection
    Identifies embedded API keys and logic that enables communication with remote services, helping uncover hidden data exfiltration paths.

+++

  • Complexity & Security-Relevant Statistics
    Reports code metrics relevant to security analysis, including a fast and lightweight cyclomatic complexity calculation using the Python AST.

+++

  • Module Usage & Known Vulnerabilities
    Detects imported modules and correlates them with known security vulnerabilities.

+++

  • Inline Issue Reporting
    Highlights potential security issues directly in context, including line numbers and relevant code snippets.

+++

  • Static HTML Reports
    Generates clean, self-contained HTML reports that can be viewed in any modern web browser.

:::

Capability Overview

Python Code Audit provides a comprehensive set of features designed to enhance Python code security analysis:

Code Complexity & Statistics

Analyzes individual Python files or entire packages prior to execution and collects security relevant metrics, including:

  • Number of files
  • Total lines of code
  • AST node count
  • Imported modules
  • Defined functions
  • Defined classes
  • Comment lines

Statistics are reported per file, along with an aggregated summary for the entire package or directory.

Module Usage Reporting

Identifies and lists all modules imported by each Python file, providing visibility into dependencies and potential attack surfaces.

Module Security Intelligence

Surfaces known security information and vulnerabilities associated with the detected modules.

Per-File Vulnerability Detection

Detects potential security weaknesses within individual Python files and reports:

  • Affected line numbers
  • Relevant code snippets
  • Contextual details to aid investigation

External Egress Detection

Scans for:

  • Over 135 known API key formats
  • Common networking and remote-connection patterns

This capability helps determine whether a Python file or library can transmit data to external services.

Directory-Wide (Package-Level) Scanning

Performs vulnerability detection across all Python files in a directory or package, making it ideal for assessing the security posture of Python libraries and distributions.

APIs for Integration

The Python Code Audit APIs empower you to build your own Python security tools or create seamless integrations you need! So create your own security dashboards, CICD integrations or custom integrations needed for your security management system. Powerfull but simple APIs are provided.

Installation

Python Code Audit is compatible with both Unix-based systems (Linux/macOS) and Windows.

Try without installation

You can use Python Code Audit without installing it on your system:

{button}Launch webbased version <https://nocomplexity.com/codeauditapp/dashboardapp.html>

:::{note} The browser-based version runs 100% locally; however, please note that not all functionality is available. You can perform a security scan on packages available from PyPI. :::

Install for full functionality

To enable all features of Python Code Audit, install the package locally.

Installation command

To install or upgrade to the latest version, run the following command in your terminal or command prompt:

pip install -U codeaudit

Verify your installation

Once the installation is complete, you can begin scanning Python packages immediately. Open a new shell or Command Prompt window and execute any of the Python Code Audit commands to verify the setup.

Example usage

codeaudit filescan ultrafastrss

This command scans the ultrafastrss package directly from PyPI.org and generates an HTML report.

Risk Mitigation Through Static Application Security Testing (SAST)

Static Application Security Testing (SAST) is a cornerstone of a robust Secure Software Development Lifecycle (SSDLC) for Python applications. By analyzing source code without execution, SAST enables security issues to be identified and addressed long before they reach production.

Key Benefits of SAST include:

  • Prevention: It shifts security left by detecting weaknesses early in the development process, dramatically reducing the likelihood of vulnerabilities making their way into production environments.

  • Awareness and Education: SAST tools help foster a strong security culture by highlighting risky coding patterns, gradually improving developers’ ability to write secure code proactively.

  • Systematic Remediation: While secure architecture and design are fundamental, consistently identifying and fixing weaknesses remains one of the most effective ways to reduce an application’s overall attack surface and security risk.

Most commercial Python SAST tools require users to manually configure and tune rules for effective results — a complex and time-consuming task. In contrast, Python Code Audit stands out by providing the most comprehensive built-in coverage of security risks in the Python Standard Library out of the box, significantly reducing configuration overhead while delivering strong security insights immediately upon scanning.