Python Privacy Engineering Risk Modeling CISA KEV

BreachGuard

Credential breach aggregation and policy analysis system with entropy-based risk scoring — reducing manual credential review overhead by approximately 40%.

~40%
Reduction in manual review
2
Live threat intel APIs
3
Risk scoring dimensions

BreachGuard was built to solve a real operational problem: security teams drowning in breach notification data with no structured way to prioritize which compromised credentials pose the most immediate risk.

The system aggregates breach intelligence from the Have I Been Pwned API and cross-references it against CISA's Known Exploited Vulnerabilities (KEV) catalog, applying an entropy-based scoring model to rank credential exposure by exploitability and organizational impact.

"Not all breached credentials are equal. BreachGuard surfaces the ones that matter — before an attacker uses them."

🔍
Breach Aggregation
Queries Have I Been Pwned API for credential exposure data across known breach databases. Deduplicates and normalizes results across sources.
📊
Entropy Scoring
Custom entropy model assesses password strength and reuse patterns. Higher entropy scores surface credentials most likely to enable lateral movement.
KEV Cross-Reference
Integrates CISA KEV data to flag breaches associated with actively exploited vulnerabilities, elevating priority for credentials tied to KEV-listed systems.
📋
Policy Analysis
Compares organizational password policies against breach patterns, generating structured remediation recommendations aligned with NIST SP 800-63B.
# Simplified scoring model
def calculate_risk_score(credential):
    score = 0

    # Entropy component (password strength)
    score += entropy_score(credential.password) * 0.4

    # KEV exposure — active exploitation indicator
    if credential.service in kev_catalog:
        score += 40

    # Reuse factor across breach databases
    score += reuse_count(credential) * 5

    return normalize(score)  # 0–100 risk scale
Python 3
HIBP API
CISA KEV
Pandas
Requests
NIST 800-63B