> your AI agent picks dependencies from memory; give it dated facts — try starlog.dev ↗ vet your agent's deps ↗ vibe-coding is fine. vibe-importing isn’t. — try starlog.dev ↗ vibe-importing isn’t fine ↗ your agent has never seen your private packages — try starlog.dev ↗ facts for private packages ↗ a linter for the dependencies your AI agent picks — try starlog.dev ↗ a linter for agent deps ↗

Back to Articles

Security-Harness: The Empty Promise of Autonomous AI Security Tool Curation

[ View on GitHub ]

Security-Harness: The Empty Promise of Autonomous AI Security Tool Curation

Hook

What if a security tool repository could crawl the internet, discover new harnesses, test them, and self-register the ones it's currently running? That's the vision behind security-harness—a repository with zero code but fascinating implications.

Context

The AI security landscape is fragmenting faster than practitioners can track it. Between LLM jailbreak frameworks, prompt injection detectors, model fingerprinting tools, and AI-powered vulnerability scanners, the tooling ecosystem has exploded across GitHub repos, Docker registries, and academic publications. There's no authoritative index, no standardized testing methodology, and no way to know if a tool claiming to 'secure your LLM' actually works or represents security theater.

Security-harness emerged from this chaos with an ambitious goal: create a living catalog of AI security tools that updates itself. The repository envisions an autonomous agent that would crawl multiple platforms, evaluate tools against undefined criteria, and maintain two lists—vetted harnesses ready for production and candidates awaiting review. It's metadata-as-infrastructure, an editorial workflow masquerading as code. But the gap between vision and implementation reveals something more interesting than the repository itself: the fundamental challenge of programmatically evaluating security tooling quality.

Technical Insight

Intended Automation

Manual Curation

crawl tools

extract metadata

automated scan

pass

fail

self-register

GitHub/Docker Hub

Search Engines

Discovery Agent

MISSING.md

Staging Area

Validation Scanner

LIST.md

Approved Tools

Running Security

Harness Tools

System architecture — auto-generated

The architecture, such as it exists, consists of three markdown files forming a manual curation pipeline. LIST.md would contain approved tools, MISSING.md serves as a staging area, and the README describes an automated discovery system that doesn't exist. The TASKS section outlines the intended workflow:

# Conceptual Pipeline (Not Implemented)
1. Crawl GitHub/Docker Hub/search engines for security harnesses
2. Extract tool metadata, documentation, test coverage
3. Run undefined 'scan' against candidate tools
4. Tools passing scan move from MISSING.md → LIST.md
5. Self-registration: tools currently executing add themselves

The self-registration concept is the most provocative architectural choice. Imagine a security harness like LLM Guard or Rebuff that, while running, detects it's not in the catalog and submits itself. The pseudo-implementation would look like:

# Hypothetical self-registration for AI security harness
import requests
import inspect
import os

class SecurityHarnessRegistry:
    REPO_API = "https://api.github.com/repos/infosec-cyber/security-harness"
    
    def __init__(self):
        self.tool_metadata = {
            "name": self.__class__.__name__,
            "version": self.get_version(),
            "capabilities": self.enumerate_capabilities(),
            "test_results": self.run_self_tests()
        }
    
    def enumerate_capabilities(self):
        # Reflect on available security methods
        return [m for m in dir(self) 
                if callable(getattr(self, m)) 
                and not m.startswith('_')
                and m in ['detect_injection', 'validate_output', 'scan_prompt']]
    
    def run_self_tests(self):
        # Execute internal test suite, return pass/fail
        # This is where undefined 'scan' criteria would live
        test_vectors = self.load_test_vectors()
        results = {}
        for vector in test_vectors:
            results[vector['name']] = self.evaluate(vector)
        return results
    
    def register_if_missing(self):
        # Check if already in catalog
        catalog = requests.get(f"{self.REPO_API}/contents/LIST.md").json()
        if self.tool_metadata['name'] not in catalog:
            self.submit_pr_to_missing()
    
    def submit_pr_to_missing(self):
        # Create PR adding tool to MISSING.md
        # Requires GitHub token, fork workflow, PR creation
        # Security nightmare without verification
        pass

This code would never work in practice because it requires solving multiple hard problems: authenticating tools without credentials leakage, preventing malicious tools from registering themselves, defining what "passing a scan" actually means, and establishing trust chains for automated contributions. The repository recognizes these problems exist but provides no solutions.

The more interesting architectural question is how you'd actually implement automated security tool evaluation. You'd need:

# Actual vetting pipeline requirements
class HarnessEvaluator:
    def evaluate_tool(self, tool_url):
        return {
            'static_analysis': self.check_code_quality(tool_url),
            'dependency_audit': self.scan_dependencies(tool_url),
            'functionality_test': self.verify_claimed_capabilities(tool_url),
            'adversarial_test': self.attempt_bypass(tool_url),
            'performance_benchmark': self.measure_overhead(tool_url),
            'documentation_quality': self.assess_docs(tool_url),
            'community_signals': self.check_stars_forks_issues(tool_url)
        }
    
    def verify_claimed_capabilities(self, tool_url):
        # If tool claims to detect prompt injection,
        # test against known injection datasets
        if 'prompt_injection' in tool_claims:
            return self.run_against_dataset(
                tool_url, 
                'datasets/prompt_injection_benchmark.json'
            )

This is production-grade infrastructure requiring CI/CD integration, containerized test environments, benchmark datasets, and human oversight. The repository has none of this—just aspirational markdown.

The dual-purpose scope is also architecturally problematic. Conflating "AI tools that find security issues" (like GPT-powered fuzzing or AI code reviewers) with "tools that secure AI systems" (like LLM guardrails or model scanning) creates category confusion. These serve different user bases with different threat models. An offensive security researcher testing APIs wants different tooling than a machine learning engineer deploying production LLMs. A proper architecture would separate these into distinct taxonomies with category-specific evaluation criteria.

Gotcha

The repository is currently unusable—there's no code, no tooling list, and no automation. The markdown files are empty templates. If you clone this expecting a curated catalog of AI security tools, you'll find placeholders and good intentions. This isn't a limitation you can work around; the repository fundamentally doesn't deliver its stated value proposition yet.

The autonomous discovery concept has serious security implications that aren't addressed. Allowing tools to self-register creates obvious supply chain attacks: a malicious actor could create a tool that passes superficial checks but contains backdoors, then auto-submits it to the catalog. Without robust human-in-the-loop verification, cryptographic signing of approved tools, and transparent evaluation criteria, the automation becomes an attack vector. The repository acknowledges none of these challenges, suggesting the architectural design is conceptual rather than operational. Even if implementation existed, trusting an automated system to evaluate security tooling quality is fundamentally questionable—you're delegating security judgment to code that itself needs securing.

Verdict

Skip if: you need actual AI security tools right now—use Awesome LLM Security, OWASP's AI Security Guide, or go directly to established tools like LLM Guard, Garak, or PyRift. Skip if you expect working automation or curated content; this repository is vaporware masquerading as infrastructure. Skip if you're looking for defensible evaluation criteria for security tooling; the 'scan' methodology is completely undefined. Use if: you're researching meta-problems in security tool discovery and want to understand the architectural challenges of automated curation. Use if you're building similar infrastructure and want to learn from an aspirational design that identified the right problems (fragmented tooling, no standardized evaluation, manual curation doesn't scale) but hasn't solved them. Use if you want to contribute to creating the missing implementation—the conceptual framework is sound, but someone needs to build the actual crawling, testing, and vetting pipeline.