From 63d283600ae69378b541417c5fb4f9c9f36aad74 Mon Sep 17 00:00:00 2001 From: Bashir Khadra Date: Fri, 17 Jul 2026 12:03:37 +0400 Subject: [PATCH 1/2] Add Google API key detection to AG001 --- CHANGELOG.md | 1 + src/agentguard/rules/secrets.py | 1 + 2 files changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e527387..a7ac255 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ All notable changes follow [Keep a Changelog](https://keepachangelog.com/en/1.1. ### Added - Initial public project and community launch materials. +- AG001 now detects hardcoded Google API keys (`AIza...`). ## [0.1.0] - 2026-07-16 diff --git a/src/agentguard/rules/secrets.py b/src/agentguard/rules/secrets.py index dbf5ea7..84fdcd1 100644 --- a/src/agentguard/rules/secrets.py +++ b/src/agentguard/rules/secrets.py @@ -23,6 +23,7 @@ class HardcodedSecretRule(Rule): ("OpenAI API key", re.compile(r"\bsk-(?:proj-)?[A-Za-z0-9_-]{20,}\b")), ("AWS access key", re.compile(r"\b(?:AKIA|ASIA)[A-Z0-9]{16}\b")), ("GitHub token", re.compile(r"\bgh[pousr]_[A-Za-z0-9]{30,}\b")), + ("Google API key", re.compile(r"\bAIza[0-9A-Za-z_-]{35}\b")), ("private key", re.compile(r"-----BEGIN (?:RSA |EC |OPENSSH )?PRIVATE KEY-----")), ( "assigned credential", From 19c63570165dfcaa36d0137e63bc740bcbcc80b1 Mon Sep 17 00:00:00 2001 From: Bashir Khadra Date: Fri, 17 Jul 2026 12:04:33 +0400 Subject: [PATCH 2/2] Updated Tests to check for Google authentication keys --- tests/test_rules.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/test_rules.py b/tests/test_rules.py index 969b008..f47965e 100644 --- a/tests/test_rules.py +++ b/tests/test_rules.py @@ -13,6 +13,7 @@ ("filename", "content", "rule_id"), [ ("agent.py", 'OPENAI_API_KEY = "sk-proj-abcdefghijklmnopqrstuvwxyz123456"', "AG001"), + ("agent.py", 'GOOGLE_API_KEY = "AIzaSyB3X_97fX7Z-2kLmNpQrStUvWxYz123456"', "AG001"), ("agent.py", "import os\nos.system(user_input)", "AG002"), ("agent.py", "Agent(tools=[shell, browser])", "AG003"), ("agent.py", 'prompt = f"Summarize: {user_input}"', "AG004"), @@ -50,6 +51,13 @@ def test_placeholder_secret_is_ignored(project: Path) -> None: assert Scanner().scan(project).findings == [] +def test_google_api_key_placeholder_is_ignored(project: Path) -> None: + (project / "settings.py").write_text( + 'GOOGLE_API_KEY = "AIzaSyYOUR_API_KEY_HERE1234567890123456"', encoding="utf-8" + ) + assert Scanner().scan(project).findings == [] + + def test_rule_suppression(project: Path) -> None: (project / "agent.py").write_text( "# agentguard: ignore[AG002]\nos.system(trusted_constant)", encoding="utf-8"