SecureLoop AI | Web Security Assessment Prototype
Developed SecureLoop AI prototypes for web vulnerability assessment and AI-assisted security analysis. The public implementation combines Python/FastAPI, Nuclei, a React results interface, and Docker lab management. A separate prototype explores CWE-based attack-chain mapping and Groq-generated explanations and remediation suggestions with PostgreSQL storage.
Unifying Vulnerability Scans and Evidence Triage
In traditional web vulnerability assessments, security teams frequently execute command-line scanner tools that generate massive, unstructured text logs or raw output streams. Correlating raw template output, validating user permissions, organizing request/response payloads, and summarizing risks for junior analysts creates substantial operational drag.
Core Objective: To bring vulnerability scan initiation, structured findings, request/response evidence, and analyst-readable explanations into a coherent assessment workflow, streamlining initial assessment for security teams.
Public Scanner Implementation
Repository: navinjith5-oss/secureloop-ai1The publicly released scanner codebase is an operational FastAPI-driven assessment tool that executes Nuclei scans asynchronously, normalizes JSONL findings, manages target lab containers, and renders findings in a responsive React interface.
Captures user target URL, enforces explicit authorization confirmation checkbox, polls scan status, and renders normalized findings with severity filters.
Validates authorization header/payload, assigns in-memory scan ID, launches background Nuclei scan process, and manages Docker target lab container state.
Executes vulnerability detection templates against the specified target (lab or approved URL) and streams raw findings in JSONL format.
Parses Nuclei stream output into structured Pydantic models containing template IDs, severity, endpoints, and request/response evidence.
Code-Supported Capabilities
- Explicit scan authorization confirmation required prior to dispatching scans (user confirmation assertion, not target ownership proof).
- Asynchronous scan dispatching with unique scan IDs, status polling, and finding retrieval endpoints.
- Nuclei scanner integration configured with vulnerability templates and stream JSONL output parsing.
- Finding normalization capturing template ID, name, severity, matched endpoint, description, references, tags, and request/response evidence.
- Interactive React results interface with full-text search, severity filtering (Critical, High, Medium, Low, Info), and detailed modal/drawer views.
- Docker target-lab container management (start, stop, status) with HTTP reachability checks.
Verified Source Code Snippets
Directly inspected from public repository files. Links open the exact GitHub source lines.
@router.post("/start", response_model=ScanStartResponse)
async def start_scan(request: ScanRequest, background_tasks: BackgroundTasks):
# Explicit authorization check required by policy
if not request.authorized:
raise HTTPException(
status_code=400,
detail="Explicit scan authorization must be confirmed before proceeding."
)
scan_id = str(uuid.uuid4())
scan_store[scan_id] = {
"status": "queued",
"target": str(request.target_url),
"created_at": datetime.utcnow().isoformat(),
"findings": []
}
background_tasks.add_task(run_nuclei_scan_task, scan_id, str(request.target_url))
return ScanStartResponse(scan_id=scan_id, status="queued")async def run_nuclei_scan(target_url: str, output_path: str) -> List[Dict[str, Any]]:
if not is_nuclei_available():
logger.warning("Nuclei binary not detected. Returning simulated development findings.")
return get_simulated_development_findings(target_url)
cmd = [
"nuclei",
"-u", target_url,
"-jsonl",
"-o", output_path,
"-silent"
]
process = await asyncio.create_subprocess_exec(
*cmd,
stdout=asyncio.subprocess.PIPE,
stderr=asyncio.subprocess.PIPE
)
await process.wait()
return parse_nuclei_jsonl(output_path)def check_lab_status(container_name: str = "secureloop-dvwa-lab") -> Dict[str, Any]:
try:
client = docker.from_env()
container = client.containers.get(container_name)
return {
"name": container_name,
"status": container.status,
"reachable": ping_container_endpoint(container)
}
except docker.errors.NotFound:
return {"name": container_name, "status": "not_found", "reachable": False}AI Analysis & Remediation Prototype
Private Iteration • Human-in-the-LoopIn a separate research iteration (private codebase), an experimental pipeline evaluates whether rule-based CWE matching combined with Groq LLM inference can help analysts correlate multi-step vulnerability patterns and draft human-reviewed remediation guidance.
Groups findings by CWE identifier and evaluates deterministic rules to surface potential vulnerability combinations.
Sends structured finding contexts to Groq LLM API to generate preliminary technical explanations and OWASP remediation references.
Stores raw findings, mapped chains, LLM-generated narrative drafts, and proposed code diffs with strict schema validation.
Human analyst inspects and validates generated explanations; no automated exploitation or autonomous patching is performed.
Researched Capabilities
- •Python orchestration synthesizing HTTP header/cookie checks and Nuclei findings.
- •Rule-based CWE grouping identifying potential multi-vulnerability exposure combinations (e.g., Missing Anti-CSRF + Sensitive State Change).
- •Groq LLM API integration prompting language models for technical vulnerability narratives and context.
- •Remediation guidance synthesis requesting OWASP-aligned code/configuration fixes for analyst review.
- •PostgreSQL / SQLAlchemy storage schema persisting normalized findings, attack chains, narratives, and remediation suggestions.
- •Narrow automated security-header verification experiment targeting local mock environments.
AI Prototype Boundaries
- •AI-assisted prototype is for analyst triage assistance only; matching a CWE rule does not prove exploitability or autonomous SOC operations.
- •LLM-generated remediation suggestions require manual security engineer validation; requesting an OWASP reference does not guarantee correctness.
- •The separate AI prototype is in a private research repository and is distinct from the public scanner implementation.
- •No custom foundation model training, autonomous exploitation, universal self-healing, or measured benchmark accuracy is claimed.
Honest Engineering Boundaries
In alignment with SOC integrity, these constraints define the current prototypes without exaggerated or unsupported claims:
Simulated Mock Findings: When Nuclei is not installed locally, the public scanner generates labeled mock findings for UI testing.
Target Authorization: Scan authorization is a user assertion in the API request, not cryptographically verified target domain ownership.
Separate Prototypes: The public scanner (FastAPI/React/JSONL) and the AI prototype (Groq/PostgreSQL) are distinct iterations and not a single monolithic cloud product.
Unbenchmarked Performance: No detection accuracy rates, false-positive metrics, or commercial customer deployments have been claimed or measured.
Future Research & Architectural Work
Explicitly planned development directions (distinguished from completed features):
Cryptographic Domain Ownership Verification: Implementing DNS TXT or HTTP well-known token verification prior to scanning external hosts.
Unified Workflow Architecture: Consolidating the public scanner service with the PostgreSQL-backed AI analysis pipeline under a single Docker Compose stack.
Automated Baseline Reporting: Generating standardized PDF/HTML executive and technical audit reports compliant with ISO 27001 / SOC 2 reporting guidelines.
CI/CD Pipeline Integration: Creating GitHub Actions / GitLab CI plugins to trigger authorized scans as part of pull request security gates.
Interested in discussing the implementation or SOC applications?
Open to Tier 1 SOC Analyst and Cybersecurity Analyst opportunities.