azurenoops / azurenoops/spin_agent

[CRIT-1] Generated ATO documents fabricate facts

Open
#641 5 comments 0 reactions 0 assignees View on GitHub
area:ato-generation area:security bug priority:critical
Dominant language
C#
Stars
3
Forks
1
Avg merge
18h 9m
Merged PRs (30d)
43

Description

## Problem

The SSP/SAR/POA\&M generator hardcodes `Impact Level=High`, `Azure Government`, and the boundary string, and guesses the target system by selecting the "first active system". There is no grounding guard — fabricated or assumed entities can flow directly into AO-signed documents. This is the highest-cited risk across all static reviewers.

## Evidence / Location

- ATO document generation service (SSP/SAR/POA\&M generator)
- Hardcoded values for Impact Level, cloud environment, and authorization boundary
- System selection logic: `first active system` heuristic with no explicit binding

## Fix

1. Source `Impact Level`, `AuthorizationBoundaryDefinition`, and environment from `SecurityCategorization` / `AuthorizationBoundaryDefinition` / `RegisteredSystem` — all already present in the model.
2. Require an explicit `systemId` parameter; reject generation requests that omit it.
3. Add a grounding guard that validates all narrative-bound entities against model data before rendering output.

## Source Reviewers

Tony (B2) · Vision · Banner — all rated CRITICAL. Most-cited risk across the review.

---
> ⚠️ **Caveat:** All findings are static read-reviews; build/tests were not run. Reproduce before treating fix as confirmed.
> 📋 **Note:** War Machine's ATO/RMF findings are still pending and will be folded in as a second batch.

Contributor guide

Open the contributing guide

Research direction

Start by locating the ATO document generation service and its SecurityCategorization, AuthorizationBoundaryDefinition, and RegisteredSystem models. Verify that generation requires an explicit systemId, rejects missing bindings, and renders Impact Level, environment, boundary, and system details from the selected model data rather than hardcoded or guessed values.

Written by the indexing model from the issue text.

Assessment

Tech stack
azure, csharp
Domain
backend, security
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.