Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

This section introduces methods for verifying security without necessarily executing the application at runtime. You will learn how to:

Verification without runtime execution refers to analysing Python code and related artefacts without running the application. The objective is to identify weaknesses, insecure patterns, and compliance gaps through static inspection and structured review.

In the context of security testing, this approach is commonly known as static analysis or static verification.

It is particularly valuable because it:

When verifying without execution, you typically assess:

The focus is on identifying structural and logical weaknesses rather than runtime behaviour.

Typical Verification Steps

1. Define Scope and Criteria

Clear criteria are essential. Without them, verification becomes inconsistent and subjective.

2. Static Code Analysis

Use automated tools to detect insecure coding patterns such as:

Common tools include:

This tools analyse Python source code without executing it.

3. Dependency and Supply Chain Verification

Review third-party dependencies for known vulnerabilities and licensing risks.

Typical tools include:

This step addresses supply chain security risks, which are increasingly relevant in Python ecosystems.

4. Configuration Review

Manually or automatically verify:

Misconfiguration is a frequent cause of security incidents.


5. Secrets and Credential Scanning

Identify accidental exposure of:

Tools such as gitleaks or trufflehog scan repositories for embedded secrets.


6. Manual Code Review

Automated tools are effective but limited. A structured manual review helps detect:

Manual review is essential for deeper security assurance.


Advantages of Non-Execution Verification

However, it does not reveal runtime issues such as:

For that, dynamic testing is required.


Security Testing vs Formal Audit (ISO / NEN)

It is important to distinguish between security testing and a formal compliance audit.

Security Testing Perspective

Security testing:

Its primary goal is risk reduction through technical improvement.


Formal Audit Perspective (e.g. ISO or NEN)

A formal audit under standards such as ISO or NEN:

An auditor may review whether:

However, auditors typically do not perform deep technical exploitation or detailed code-level analysis unless explicitly scoped.


Key Differences

AspectSecurity TestingFormal Audit (ISO/NEN)
FocusTechnical weaknessesProcess and control compliance
DepthCode and configuration levelGovernance and documentation level
FrequencyContinuous or periodicPeriodic (e.g. annually)
OutputVulnerability findingsCompliance status and audit report
ObjectiveRisk reductionAssurance and certification

Complementary, Not Competing

Verification without runtime execution plays a role in both domains:

However, passing an ISO or NEN audit does not guarantee that the Python application is secure. It indicates that processes exist and are followed.

Conversely, performing static security testing does not automatically prove compliance with a formal standard.

A mature organisation integrates both:

Together, they provide stronger assurance than either approach alone.