Control Domain 1
Section 1
Executive Summary
AI-enabled application security is a system property. Reviewing AI services, model inputs and outputs, frontend, API, worker, infrastructure and dependencies in isolation can miss the attack paths created at their seams.
This review method joins AI/LLM threat modeling, bounded model controls, adversarial regression, source inspection, repository analysis and software-supply-chain checks. It treats user input, uploaded documents, retrieved content and model output as untrusted until deterministic application controls validate and authorize the next action.
Assessment principle. The model can assist with classification or judgment, but identity, authorization, schemas, permitted actions and high-impact approvals belong to deterministic application code.
Section 2
Scope and Reviewed Technology
The reviewed application pattern combines Azure AI document understanding and model-assisted processing (Azure AI Document Intelligence and Azure OpenAI in Azure AI Foundry) with a React and TypeScript web application, Python 3.12 and FastAPI APIs, an asynchronous Python worker, Docker, Bicep and Azure DevOps.
Supporting Azure services include application hosting on Azure Container Apps, Azure App Configuration, Azure Blob and Queue Storage, an operational document database on Azure Cosmos DB, a dedicated secret store in Azure Key Vault and centralized monitoring with Azure Monitor.
- AI/LLM boundaries and deterministic controls
- Adversarial regression and verification behavior
- Frontend authentication flows
- API authorization boundaries
- Request and response contracts
- File ingestion and conversion
- Asynchronous queue processing
- Service-to-service access
- Infrastructure and deployment scripts
- Dependency and container risk
The reviewed flow (illustrative)
Click or tap a zone or checkpoint on the diagram to jump to the related illustrative security examples.
Review lenses per component
| Component | What the review examines | Representative risks (Microsoft-documented) |
|---|---|---|
| React + TypeScript frontend | Authentication flows, token storage and configuration exposure | Script-readable token storage; backend-only configuration reaching the browser |
| FastAPI API | Authentication and authorization per operation, contracts and error handling | Missing object-level authorization; mass assignment through permissive contracts; detailed errors reaching callers |
| Async Python worker | Queue trust, identity scope and processing isolation | Unauthenticated or replayable work items; one identity spanning many data scopes |
| File ingestion and conversion | Format validation and resource budgets | Unbounded conversion of attacker-controlled files ahead of paid processing |
| Azure AI Document Intelligence + Azure OpenAI | Prompt construction, output handling and callback trust | Document-borne instructions steering the model; free-form output reaching persistent records; unvalidated callback addresses |
| Dependencies (pip-audit, npm audit) | Known vulnerabilities prioritized by data exposure | Vulnerable packages on the client-data path; unpinned transitive dependencies |
| Containers (Trivy) | Image contents, base layers and runtime user | Vulnerable base images; containers running as root; stale digests |
| Delivery (Azure DevOps) [planned] | The designed pipeline: scans, gates, identities and rollback | Secrets in repository history; mutable image references; missing approval gates |
Review lenses are generic and drawn from Microsoft security-baseline and Well-Architected guidance. Representative risks are typical finding categories for each component, not engagement findings.
Section 3
Methodology
- Trace critical flows. Follow user and document actions across browser, API, worker, storage and AI boundaries.
- Review enforcement points. Locate authentication, authorization, validation, error handling and service access in code.
- Assess dependencies. Compare locked packages and container inputs with public vulnerability data.
- Threat-model AI behavior. Examine direct and indirect prompt injection, disclosure, unsafe output and excessive agency.
- Challenge observations. Use complementary model roles and human review to test evidence and confidence.
- Define verification. Give accepted remediation work an observable completion condition rather than a prose recommendation alone.
Section 4
Control Domains and Examples at a Glance
Each control domain has its own page with worked, explicitly fictional severity examples. The table lists every example for quick scanning.
Control Domain 2
Adversarial Regression and Guardrail Drift
Control Domain 3
Application and Service Boundaries
Control Domain 4
Files, APIs and Safe Output Handling
Control Domain 5
Software Supply-Chain Assessment
Section 5
Relationship to the Azure Review
The Azure review assesses running configuration, service relationships and observable operational controls using safe, read-only evidence. The application review assesses source code, infrastructure as code, dependencies and delivery artifacts. Areas of overlap are intentionally compared. Agreement between the two evidence streams strengthens confidence, while differences reflect their distinct scopes and evidence boundaries.
Read the companion Azure architecture, deployment and operational security review.
Section 6
Public Edition and Disclosure
This purpose-built public edition is intended for external sharing. It contains no client names, tenant or subscription identifiers, resource names, internal URLs, work-item references, source paths, commit identifiers, screenshots, sample data, credentials, or combinations of details that could reconstruct a specific finding.
The severity-labelled material in Sections 4 through 9 consists only of newly authored fictional examples. It does not report, summarize or imply any engagement finding or actual severity rating.
Cross-reference links point only to newly authored demonstration evidence in Section 10. They are not client source links, Azure resource links or engagement tool output.
Section 7
Limitations
This report explains the assessment scope, methodology, control domains and generalized security lessons. It does not reproduce client-specific findings, severity ratings, evidence, remediation status or current production configuration. It is not a penetration-test report, certification, assurance opinion or statement that any example weakness was present. Inclusion of a topic means it was assessed, not that a finding existed. Severity labels apply only to the fictional examples and illustrate prioritization methodology.
Section 8