<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Securing the Realm - Blog</title>
  <description>Epic adventures in cybersecurity, Azure, and AI through the lens of fantasy storytelling.</description>
  <link>https://securing.quest</link>
  <atom:link href="https://securing.quest/blog/rss.xml" rel="self" type="application/rss+xml" />
  <language>en-us</language>
  <item>
    <title>One Key to the Whole Dungeon</title>
    <description>The first Arcane Scrolls dispatch: APIM&apos;s AI Gateway in preview, a token cache that leaks between tenants, and two retirement dates for the diary.</description>
    <pubDate>Fri, 31 Jul 2026 00:00:00 GMT</pubDate>
    <link>https://securing.quest/blog/one-key-to-the-whole-dungeon/</link>
    <guid isPermaLink="true">https://securing.quest/blog/one-key-to-the-whole-dungeon/</guid>
    <category>newsletter</category>
    <category>azure-apim</category>
    <category>ai-security</category>
    <category>microsoft-foundry</category>
    <category>ai-agents</category>
    <category>ai-governance</category>
    <category>agent-security</category>
    <category>mcp-servers</category>
    <category>azure</category>
    <category>microsoft</category>
    <category>enterprise-ai</category>
    <content:encoded><![CDATA[<p><strong>Welcome to the first Securing the Realm newsletter.</strong> We already cover agentic AI security on the podcast; this is the written version - what shipped this week, and what to go and check in your own estate.</p>
<p><em>This went out first to <a href="https://str.riverside.com/p/one-key-to-the-whole-dungeon-1">Arcane Scrolls</a> subscribers.</em></p>
<h2 id="a-new-choice-of-castle-gate">A new choice of castle gate</h2>
<p>Microsoft shipped a new choice of castle gate this week. The <a href="https://techcommunity.microsoft.com/blog/integrationsonazureblog/ai-gateway-tier-of-api-management-now-in-public-preview/4540170?WT.mc_id=AI-MVP-5004204">AI Gateway tier of Azure API Management entered public preview on 27 July</a>: <a href="https://learn.microsoft.com/azure/api-management/ai-gateway-overview?WT.mc_id=AI-MVP-5004204">a fully managed gateway</a> in front of models from Microsoft Foundry, AWS Bedrock, Google Vertex AI, OpenAI and Anthropic, plus federated MCP servers and more than 1,400 connector-backed tools. Policies are JSON rather than policy XML, so you can manage them as code and enforce them fleet-wide with Azure Policy. Azure AI Content Safety and token quotas attach per asset, and token metrics come out on OpenTelemetry conventions, so cost attribution and anomaly detection across five providers finally run off the same telemetry.</p>
<p>The governance gain is real. Provider keys leave application code entirely; the gateway holds backend credentials and supports API key, OAuth client credentials, managed identity and mTLS.</p>
<p>Runtime access keys are gateway-scoped, though: one key reaches every model and every tool behind the gate. A skeleton key to the kingdom. Issue one key per application and environment, and grant least privilege deliberately, because the platform does not do it for you yet. Developers can take the OAuth 2.0 route instead. The preview covers two regions, East US 2 and Sweden Central, with no published pricing. Pilot it now, but put nothing regulated behind it this quarter.</p>
<h2 id="the-quieter-item-check-your-token-cache-keys">The quieter item: check your token cache keys</h2>
<p>The quieter item requires more thought. Microsoft published <a href="https://devblogs.microsoft.com/foundry/building-agents-that-act-on-your-behalf-with-toolboxes-in-foundry/?WT.mc_id=AI-MVP-5004204">its case for Toolboxes</a>, now <a href="https://azure.microsoft.com/blog/frontier-models-and-production-agents-advancing-microsoft-foundry-for-the-agentic-era/?WT.mc_id=AI-MVP-5004204">GA in Foundry</a>, with a potential failure mode within ‘hand-rolled’ on-behalf-of authentication: a mis-partitioned token cache. Get the cache key wrong and one user’s downstream API access leaks to another user, or another tenant, silently. No error. No log line. A reportable incident waiting in code that looks like it works. If you have hand-rolled delegation anywhere, check this week that every token cache key includes both user and tenant. Highest severity-per-effort fix on the board.</p>
<h2 id="defaults-that-write-the-session-down">Defaults that write the session down</h2>
<p><a href="https://devblogs.microsoft.com/agent-framework/the-microsoft-agent-framework-harness-is-now-released/?WT.mc_id=AI-MVP-5004204">The Agent Framework Harness</a> shipped in Python and .NET on 22 July, and the default settings have a good security story: tool approval gates, chat history persisted after every individual model call, OpenTelemetry built in. Agents built on it produce an auditable, replayable record by construction - the DM asking “are you sure?” before the barbarian pulls the lever, with the whole session written down. One survey this year put over half of production agents at zero security oversight or logging. Defaults are how that number moves.</p>
<p>Before you upgrade, read the list of features that have been gated. Background agents, file access, automatic looping and shell tooling all sit behind opt-in warnings. Experiment today but hold off on production until the warning labels come off.</p>
<h2 id="two-dates-for-the-diary">Two dates for the diary</h2>
<p>One deadline for the diary: <a href="https://learn.microsoft.com/azure/foundry/agents/concepts/workflow?WT.mc_id=AI-MVP-5004204">Foundry retires visual Workflows on 1 December 2026</a>. The designer goes; exported YAML definitions keep running as hosted agents. Export your YAML now - copy those workflows as if they’re the character sheet from a treasured campaign! Then decide per workflow whether it moves to Agent Framework or Logic Apps. Pro Tip: While you’re looking at this, give the <a href="https://learn.microsoft.com/azure/foundry/openai/concepts/model-retirement-schedule?WT.mc_id=AI-MVP-5004204">model retirement schedule</a> an owner.</p>
<p>Stability AI image models retire in Foundry on 31 July [today!], and a retired model returns HTTP 410 - Gone, don’t roll a saving throw…</p>
<hr>
<p>We have a new podcast episode out on Monday 3rd August 2026 with <a href="https://www.linkedin.com/in/brunolecoq/">Bruno Lecoq of BEMO</a> - find it on Apple Podcasts, or via <a href="https://securing.quest/">securing.quest</a>.</p>
]]></content:encoded>
  </item>
  <item>
    <title>Your AI Agents Need a Bouncer</title>
    <description>Using Azure APIM with Microsoft Foundry to govern models, tools, and agents.</description>
    <pubDate>Sat, 28 Feb 2026 00:00:00 GMT</pubDate>
    <link>https://securing.quest/blog/your-ai-agents-need-a-bouncer/</link>
    <guid isPermaLink="true">https://securing.quest/blog/your-ai-agents-need-a-bouncer/</guid>
    <category>azure-apim</category>
    <category>ai-security</category>
    <category>microsoft-foundry</category>
    <category>ai-agents</category>
    <category>api-management</category>
    <category>ai-governance</category>
    <category>azure</category>
    <category>microsoft</category>
    <category>appsec</category>
    <category>prompt-injection</category>
    <category>agent-security</category>
    <category>mcp-servers</category>
    <category>enterprise-ai</category>
    <content:encoded><![CDATA[<p><strong>Using Azure APIM with Microsoft Foundry to govern models, tools, and agents.</strong></p>
<h2 id="the-problem-agents-everywhere-governance-nowhere">The problem: agents everywhere, governance nowhere</h2>
<p>Agents might seem like magic, but most are orchestration loops - a language model receives prompts and tool definitions, selects an action, and returns a structured response. Once you see the loop clearly, there are many places you can track, limit, or audit actions so your agents do what you expect.</p>
<p>The challenge is that many organisations are building agents in more than one place, and with appropriate controls, that’s fine. Those using Copilot Studio or custom GPTs have different needs from those using Microsoft Foundry, and in a multicloud world, agents also live outside the Microsoft ecosystem - perhaps on Google Vertex AI or AWS Bedrock. On top of the agents themselves, there’s the supporting infrastructure - the tools, the MCP servers, and the data sources that agents can access or that get injected as context.</p>
<h2 id="framing-the-risks">Framing the risks</h2>
<p>Two OWASP frameworks help us think about these risks: the <a href="https://owasp.org/www-project-top-10-for-large-language-model-applications/">LLM Top 10 2025</a> and the newer <a href="https://genai.owasp.org/resource/owasp-top-10-for-agentic-applications-for-2026/">Top 10 for Agentic Applications 2026</a>. The LLM Top 10 covers foundational model risks - prompt injection, sensitive information disclosure, supply chain vulnerabilities. The Agentic Top 10 extends this to autonomous systems that plan, delegate, and act across tools and other agents. Together, they give us a shared language for the risks we need to govern.</p>
<p>Four risks thread through everything that follows:</p>
<table>
<thead>
<tr>
<th>Risk</th>
<th>Framework</th>
<th>Why it matters here</th>
</tr>
</thead>
<tbody>
<tr>
<td>Unbounded Consumption (LLM10)</td>
<td>LLM Top 10 2025</td>
<td>Agents in loops can spiral API calls and costs without guardrails</td>
</tr>
<tr>
<td>Excessive Agency (LLM06)</td>
<td>LLM Top 10 2025</td>
<td>Agents with unchecked autonomy take actions beyond their intended scope</td>
</tr>
<tr>
<td>Identity and Privilege Abuse (ASI03)</td>
<td>Agentic Top 10 2026</td>
<td>Agents inherit or delegate credentials without proper scoping, creating attribution gaps</td>
</tr>
<tr>
<td>Insecure Inter-Agent Communication (ASI07)</td>
<td>Agentic Top 10 2026</td>
<td>Weaknesses in agent-to-agent protocols and semantic validation open lateral attack paths</td>
</tr>
</tbody>
</table>
<p>If the core risk is that agents call APIs or use tools that might delete files or update databases in ways you don’t expect - excessive agency (LLM06) in OWASP terms - then you need to govern that traffic. That means a single place to validate agent identity (ASI03), scan for prompt injection, enforce rate limiting to prevent runaway loops or cost spikes (LLM10), and add observability so you can see what’s happening.</p>
<p>Many agents across many systems means heavy traffic and a mix of protocols - including agent-to-agent communication that may lack consistent validation (ASI07). How do we manage all of this and standardise - perhaps even create a single pane of glass for governing it?</p>
<h2 id="enter-azure-api-management">Enter Azure API Management</h2>
<p>APIM has been the developer workhorse for API governance for years. Its ‘<a href="https://learn.microsoft.com/azure/api-management/genai-gateway-capabilities?WT.mc_id=AI-MVP-5004204">AI Gateway</a>’ capabilities position it as the central hub for your enterprise AI backends, creating a single chokepoint where all agentic traffic converges. It covers three governance surfaces: models (LLM endpoints), tools (MCP servers and function calls), and agents (autonomous identities acting on behalf of users).</p>
<h2 id="architecture-apim-ai-gateway-in-the-agentic-stack">Architecture: APIM AI Gateway in the agentic stack</h2>
<p>The AI Gateway is a set of capabilities built into APIM - a service that processes 3 trillion requests monthly. It sits between your agents and your backends, providing a consistent governance layer across Foundry model deployments, MCP servers, A2A agent endpoints, data and vector stores, content safety services, monitoring through <a href="https://learn.microsoft.com/azure/api-management/api-management-howto-app-insights?WT.mc_id=AI-MVP-5004204">Application Insights</a>, and third-party LLM providers like Google and Amazon.</p>
<p>If you’re using Microsoft Foundry, the <a href="https://learn.microsoft.com/azure/ai-foundry/configuration/enable-ai-api-management-gateway-portal?WT.mc_id=AI-MVP-5004204">AI Gateway integration</a> auto-provisions a Basic v2 APIM instance with a free tier included (see <a href="https://azure.microsoft.com/pricing/details/api-management/">API Management Pricing</a> for current details). You can configure it in the Foundry portal under Operate &gt; Admin &gt; AI Gateway, with governance surfaces for models (TPM rate limits per project), agents (registration and throttling), and tools (MCP governance and discovery). For production workloads, Standard v2 or Premium v2 is recommended - see the <a href="https://azure.microsoft.com/pricing/details/api-management/">pricing page</a> for costs by tier.</p>
<img src="/_astro/apim-bifrost-add-new.BitB1BbR_2ah95U.webp" alt="Screenshot of the Microsoft Foundry portal's Operate tab, showing the Add AI Gateway button and options to create or select an APIM instance." style="max-width: 100%; height: auto; margin: 2rem auto; display: block;" loading="lazy" decoding="async" width="1430" height="617">
<blockquote>
<p><strong>Note</strong> - If you already have a ‘traditional’ APIM instance, it won’t be detected in the Foundry Admin portal. You’ll need to create a new one as an AI gateway.</p>
</blockquote>
<figure><img src="/_astro/fig2-apim-architecture.qniANa51_Z1rK4ER.svg" alt="Architecture diagram showing agents on the left sending requests through a seven-step APIM AI Gateway policy pipeline, then into a backend pool of up to 30 endpoints organised by priority, with PTU first and serverless fallback." style="max-width: 100%; height: auto; margin: 2rem auto; display: block;" loading="lazy" decoding="async" width="1100" height="620"><figcaption>Figure 2: All agentic traffic flows through the APIM AI Gateway’s seven-step policy pipeline before reaching a <a href="https://learn.microsoft.com/azure/api-management/backends?WT.mc_id=AI-MVP-5004204">backend pool</a> of up to 30 endpoints, organised by priority (PTU first, serverless fallback) with circuit breakers, weighted routing, and session-aware load balancing.</figcaption></figure>
<h2 id="token-rate-limiting-and-cost-governance">Token rate limiting and cost governance</h2>
<p><em>Maps to: OWASP LLM10 - Unbounded Consumption</em></p>
<p>APIM gives you two token governance policies - <a href="https://learn.microsoft.com/azure/api-management/azure-openai-token-limit-policy?WT.mc_id=AI-MVP-5004204"><code>azure-openai-token-limit</code></a> for Azure OpenAI backends, and <a href="https://learn.microsoft.com/azure/api-management/llm-token-limit-policy?WT.mc_id=AI-MVP-5004204"><code>llm-token-limit</code></a> for everything else including third-party models and Azure AI Model Inference. Both let you set tokens-per-minute limits for burst control and token quotas over longer periods for hard budget caps. You can configure these in the Foundry Admin portal or directly as APIM policies.</p>
<p>The feature worth knowing about is <code>estimate-prompt-tokens</code>. APIM can pre-calculate how many tokens a request will consume before it reaches the backend. If it’s over your limit, the request gets rejected at the gateway - no backend tokens consumed, no cost incurred. Pair that with <a href="https://learn.microsoft.com/azure/api-management/llm-emit-token-metric-policy?WT.mc_id=AI-MVP-5004204">token metrics</a> flowing into Application Insights and you get cost control and visibility from the same layer. When an agent gets stuck in a loop, you’ll see the token spike in your dashboard before it hits your invoice.</p>
<blockquote>
<p><strong>Note</strong> - Token estimates and actual token emission can still vary.</p>
</blockquote>
<h2 id="prompt-shielding-and-content-safety">Prompt shielding and content safety</h2>
<p><em>Maps to: OWASP LLM01 - Prompt Injection, ASI01 - Agent Goal Hijack</em></p>
<p>APIM integrates with <a href="https://learn.microsoft.com/azure/api-management/llm-content-safety-policy?WT.mc_id=AI-MVP-5004204">Azure AI Content Safety</a> to moderate prompts at the gateway. Out of the box, it checks four harm categories (hate, sexual, self-harm, violence) with independent severity thresholds. Content that trips a threshold gets a 403 before it ever reaches your model.</p>
<p>The more interesting capability for agentic workloads is <a href="https://learn.microsoft.com/azure/ai-services/content-safety/concepts/jailbreak-detection?WT.mc_id=AI-MVP-5004204">prompt shielding</a>. This detects both direct injection (jailbreaks, role-play attacks, encoding tricks) and indirect injection - hidden instructions embedded in documents or web content that the agent processes. That second category is the one that catches people out. Your agent summarises a customer’s PDF and the PDF contains a hidden instruction to exfiltrate data. Prompt shielding catches that at the gateway before the model sees it.</p>
<p>You can also extend scanning to model outputs, giving you bidirectional protection. If the model generates something it shouldn’t, it gets blocked on the way out. Custom blocklists let you add organisation-specific terms on top. You’ll need an Azure AI Content Safety resource, a backend entity in APIM pointing to it, and the APIM managed identity with the Cognitive Services User role - quick to set up if you’re already running APIM.</p>
<h2 id="semantic-caching">Semantic caching</h2>
<p><em>Maps to: cost and latency reduction, supports LLM10 mitigation</em></p>
<p><a href="https://learn.microsoft.com/azure/api-management/azure-openai-enable-semantic-caching?WT.mc_id=AI-MVP-5004204">Semantic caching</a> lets APIM vectorise incoming prompts and check them against previously cached responses in Azure Managed Redis. If someone asks a question that’s semantically close enough to one that’s already been answered, the cached response comes back with no backend call. Cached responses typically return in under 200ms - often more than 10x faster than a full LLM call, and at zero token cost.</p>
<p>The threshold matters here. Microsoft recommends starting strict (0.05) and loosening cautiously - go above 0.2 and you risk returning responses that don’t actually match the question. In practice, stripping system prompts before embedding improves hit rates without sacrificing accuracy, since the system prompt is usually identical across requests and just adds noise to the similarity comparison.</p>
<p>One infrastructure note: you need Azure Managed Redis with the RediSearch module enabled at creation time. It can’t be added later, so plan for it upfront.</p>
<h2 id="governing-mcp-tools">Governing MCP tools</h2>
<p><em>Maps to: OWASP LLM06 - Excessive Agency, ASI02 - Tool Misuse</em></p>
<p>APIM’s <a href="https://learn.microsoft.com/azure/api-management/mcp-server-overview?WT.mc_id=AI-MVP-5004204">MCP server support</a> (currently in preview) works in two ways. You can expose any existing REST API as an MCP server directly from the portal - APIM wraps it and generates the MCP endpoint, no custom MCP code required. Or you can proxy external MCP servers built with any framework, applying the same authentication, rate limiting, and content safety policies to all proxied traffic. Either way, your agents get tools through a governed pipe.</p>
<p>The governance layer is where this gets practical. Agents never hold backend tokens directly - APIM manages OAuth credentials on their behalf. JWT validation, rate limiting, IP filtering, and audit logging all apply at the gateway. <a href="https://learn.microsoft.com/azure/api-center/register-discover-mcp-server?WT.mc_id=AI-MVP-5004204">Azure API Center</a> (mcp.azure.com) acts as your enterprise MCP registry, so you can configure it as a private registry for VS Code agent mode and GitHub Copilot. That means you control which tools your agents can even discover, not just which ones they can call.</p>
<p>The <a href="https://github.com/Azure-Samples/remote-mcp-apim-functions-python">remote-mcp-apim-functions-python</a> sample is a good starting point - it implements the MCP Authorisation specification with OAuth 2.0/PKCE via Entra ID.</p>
<h2 id="agent-identity-with-microsoft-entra-agent-id">Agent identity with Microsoft Entra Agent ID</h2>
<p><em>Maps to: OWASP ASI03 - Identity and Privilege Abuse, ASI10 - Rogue Agents</em></p>
<p>If agents are acting autonomously across your systems, they need identities you can govern. The instinct is to reuse existing app registrations or service principals, but agents aren’t traditional applications - they make decisions, delegate to other agents, and act on behalf of users. <a href="https://learn.microsoft.com/entra/agent-id/identity-platform/what-is-agent-id?WT.mc_id=AI-MVP-5004204">Microsoft Entra Agent ID</a> (currently in preview) treats them as what they are: a distinct identity type.</p>
<p>The model is built around accountability. You define blueprints for each agent type, then create agent identities from those blueprints with unique IDs and limited permissions by default. Every agent has a sponsor - a human user who’s accountable for it. If that person leaves the organisation, sponsorship transfers to their manager automatically. No orphaned agents silently running with nobody responsible. The <a href="https://learn.microsoft.com/entra/agent-id/identity-platform/what-is-agent-registry?WT.mc_id=AI-MVP-5004204">Agent Registry</a> gives you centralised visibility across all deployed agents, including those outside the Microsoft ecosystem.</p>
<p>APIM plugs into this directly. You can authenticate agents at the gateway, enforce per-agent rate limits, and apply conditional access policies before anything hits your backends. Agents can’t sign in to Entra ID sign-in pages, can’t join dynamic groups, and tokens are bounded within the agent’s tenant - so if an agent identity is compromised, the blast radius is contained by design.</p>
<p>This is the practical answer to two of the OWASP risks we flagged earlier. Limited-by-default permissions and sponsor accountability address the credential scoping gaps in ASI03. The centralised registry and tenant-bounded tokens give you the visibility to catch rogue agents (ASI10) before they drift.</p>
<h2 id="owasp-risk-mapping">OWASP risk mapping</h2>
<p>The following table shows how APIM’s AI Gateway capabilities map to the two OWASP frameworks. APIM is transport-layer governance - the chokepoint where you enforce auth, rate limiting, content safety, and observability. It does that well. But it doesn’t inspect function-calling payloads, doesn’t orchestrate agent workflows, and has limited reach into model-level risks like data poisoning or embedding weaknesses. You still need complementary controls at the model, application, and data layers. APIM is a strong foundation, not the whole house.</p>
<table>
<thead>
<tr>
<th>OWASP Risk</th>
<th>APIM Capability</th>
<th>Coverage</th>
</tr>
</thead>
<tbody>
<tr>
<td>LLM01 Prompt Injection</td>
<td><code>llm-content-safety</code> with <code>shield-prompt</code></td>
<td>Strong (direct + indirect)</td>
</tr>
<tr>
<td>LLM05 Improper Output Handling</td>
<td><code>enforce-on-completions</code> scanning</td>
<td>Strong</td>
</tr>
<tr>
<td>LLM06 Excessive Agency</td>
<td>MCP governance, OAuth, per-consumer rate limits</td>
<td>Strong</td>
</tr>
<tr>
<td>LLM10 Unbounded Consumption</td>
<td>Token rate limiting, semantic caching, circuit breakers</td>
<td>Strong</td>
</tr>
<tr>
<td>ASI02 Tool Misuse</td>
<td>MCP server auth, rate limits</td>
<td>Moderate (server-level, not per-tool)</td>
</tr>
<tr>
<td>ASI03 Identity Abuse</td>
<td>Entra Agent ID + <a href="https://learn.microsoft.com/azure/api-management/validate-azure-ad-token-policy?WT.mc_id=AI-MVP-5004204"><code>validate-azure-ad-token</code></a></td>
<td>Strong (preview)</td>
</tr>
<tr>
<td>ASI07 Insecure Inter-Agent Comms</td>
<td>A2A APIs with mutual auth and TLS</td>
<td>Moderate (preview)</td>
</tr>
<tr>
<td>LLM04 Data and Model Poisoning, LLM08 Vector and Embedding Weaknesses, LLM09 Misinformation</td>
<td>Limited - model/data layer concerns</td>
<td>Weak - needs complementary controls</td>
</tr>
</tbody>
</table>
<h2 id="getting-the-policy-order-right">Getting the policy order right</h2>
<p>When you combine all these controls into a single APIM policy, the sequence matters - requests that fail early never reach later stages, which protects both your backends and your budget.</p>
<p>Think of inbound processing as a series of gates, where each one reduces what hits the next. Authenticate first - unauthenticated requests never reach content safety. Content safety comes second - a prompt injection caught here never burns your rate limit tokens. Cache lookup sits before rate limiting, so a cached response doesn’t count against your quota. Then rate limiting, emit metrics, routing, and finally backend auth using managed identity. By the time a request actually reaches your backend, it’s authenticated, safe, within quota, logged, and routed - in that order.</p>
<p>The AI-Gateway labs repo includes a complete annotated production policy template you can use as a starting point.</p>
<h2 id="getting-started">Getting started</h2>
<p>Everything described in this post is deployable via Bicep. If you’re using agentic coding tools like Claude Code or GitHub Copilot, the Azure CLI is quick and scriptable for iterating. But from an IaC perspective, you’ll want proper templates. Four repos are worth bookmarking, depending on where you’re starting from.</p>
<ul>
<li><strong><a href="https://github.com/Azure-Samples/AI-Gateway">Azure-Samples/AI-Gateway</a></strong> - The flagship. 30+ Jupyter notebook labs covering load balancing, rate limiting, auth, MCP, and agentic orchestration. Also includes an enterprise AI Gateway e-Book. Start here if you want to understand the full picture.</li>
<li><strong><a href="https://github.com/Azure-Samples/apim-genai-gateway-toolkit">Azure-Samples/apim-genai-gateway-toolkit</a></strong> - Accelerator with an OpenAI API Simulator for cost-free testing and Locust load tests. Demonstrates PTU spillover, request prioritisation, and lowest-latency routing. Start here if you want to test without spending.</li>
<li><strong><a href="https://github.com/Azure-Samples/apim-lbpool-openai-quickstart">Azure-Samples/apim-lbpool-openai-quickstart</a></strong> - Minimal Bicep quickstart. A Basic v2 instance with two Azure OpenAI backends in a native pool. Start here if you just want to learn the pool feature without the complexity.</li>
<li><strong><a href="https://github.com/Azure/apim-landing-zone-accelerator">Azure/apim-landing-zone-accelerator</a></strong> - Cloud Adoption Framework-aligned enterprise architecture, including a GenAI Gateway workload scenario with private endpoints and opinionated policies. Available in both Bicep and Terraform. Start here if you’re deploying at enterprise scale.</li>
</ul>
<h2 id="conclusion">Conclusion</h2>
<p>APIM is already the control plane where models, tools, and agents converge. If you’re already running it, you don’t need new infrastructure - you have new policies to configure. There’s a wealth of other policies and configuration available in APIM that apply to AI and non-AI API’s alike. Give them a go!</p>
<p>The GA capabilities handle transport-level risks today: token limiting, content safety, semantic caching, and backend pools. The preview features - MCP governance, agent identity, and Foundry integration - address the agentic risks that OWASP formalised in December 2025 and are being hardened for regulated workloads. Preview features may change before reaching general availability. You’ll still need controls at the model, application, and data layers, but starting with auth, rate limiting, content safety, and observability will take you a long way - extending your existing AppSec investment rather than replacing it.</p>
<p>Get started with the <a href="https://github.com/Azure-Samples/AI-Gateway">AI-Gateway labs</a>, use the production policy template and Bicep templates to codify your governance baseline, and build from there. Josh and Chris will also be at <a href="https://scottishsummit.com/">Scottish Summit 2026</a> running a workshop on APIM and AI Gateways in multi-cloud scenarios if you want hands-on support.</p>
<h2 id="appendix-feature-maturity">Appendix: Feature maturity</h2>
<p>Preview features are subject to change and may have different terms of use. The table below reflects status as of February 2026.</p>
<table>
<thead>
<tr>
<th>Capability</th>
<th>Status</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td>Token rate limiting (<code>azure-openai-token-limit</code> / <code>llm-token-limit</code>)</td>
<td>GA</td>
<td>All tiers except Consumption</td>
</tr>
<tr>
<td>Token metrics (<code>emit-token-metric</code>)</td>
<td>GA</td>
<td>All tiers including Consumption</td>
</tr>
<tr>
<td>Content safety (<code>llm-content-safety</code>)</td>
<td>GA</td>
<td>Since April 2025</td>
</tr>
<tr>
<td>Semantic caching</td>
<td>GA</td>
<td>All tiers; not workspaces</td>
</tr>
<tr>
<td>Backend pools with priority routing</td>
<td>GA</td>
<td>All tiers</td>
</tr>
<tr>
<td>Circuit breaker with <code>acceptRetryAfter</code></td>
<td>GA</td>
<td>All except Consumption</td>
</tr>
<tr>
<td><code>validate-azure-ad-token</code></td>
<td>GA</td>
<td>All tiers</td>
</tr>
<tr>
<td>Premium v2 tier</td>
<td>GA</td>
<td>Since November 2025</td>
</tr>
<tr>
<td>MCP server support (Patterns A and B)</td>
<td>Preview</td>
<td>Classic + v2 + self-hosted</td>
</tr>
<tr>
<td>AI Gateway in Microsoft Foundry</td>
<td>Preview</td>
<td>V2 tiers; since November 2025</td>
</tr>
<tr>
<td>Session-aware load balancing</td>
<td>Preview</td>
<td>Early update channel, v2 tiers</td>
</tr>
<tr>
<td>Microsoft Entra Agent ID</td>
<td>Preview</td>
<td>Expanded November 2025</td>
</tr>
<tr>
<td>Agent Registry</td>
<td>Preview</td>
<td>Since November 2025</td>
</tr>
<tr>
<td>API Center as MCP Registry</td>
<td>Preview</td>
<td>Free tier available</td>
</tr>
</tbody>
</table>]]></content:encoded>
  </item>
  <item>
    <title>AI AppSec Is Still AppSec</title>
    <description>Why AI systems must inherit and grow, not work in parallel to traditional AppSec.</description>
    <pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate>
    <link>https://securing.quest/blog/ai-appsec-is-still-appsec/</link>
    <guid isPermaLink="true">https://securing.quest/blog/ai-appsec-is-still-appsec/</guid>
    <category>ai-security</category>
    <category>appsec</category>
    <category>devsecops</category>
    <category>mlops</category>
    <category>azure-ai-foundry</category>
    <category>prompt-injection</category>
    <category>model-security</category>
    <category>agent-security</category>
    <category>mcp-servers</category>
    <category>iso-27034</category>
    <category>supply-chain-security</category>
    <category>runtime-protection</category>
    <category>microsoft</category>
    <category>enterprise-ai</category>
    <category>ai-governance</category>
    <content:encoded><![CDATA[<p><strong>Why AI systems must inherit and grow, not work in parallel to traditional AppSec.</strong></p>
<p>While there are specific vulnerabilities and attacks related to applications built with AI - including language models both large (LLMs) and small (SLMs), as well as multi-modal models suitable for audio, video and images - the development of Agentic Systems and more traditional machine learning approaches demands we think of security for AI as additive, rather than security in a parallel universe. What has been done before should be reviewed, not removed.</p>
<p>Machine-learning isn’t new, and neither are the concepts surrounding AI systems. What is new is the significantly reduced barriers to implementing the latest AI technologies within the systems we are building today. If we think of security for AI as additive, have you already applied best practices to the systems you’ve deployed?</p>
<p>For example, API management - is your MCP server gated? Without this, your identity and authentication may all be for naught whilst an adversary makes calls to your APIs without ever seeing your login page, potentially exfiltrating data and significantly increasing your cloud spend.</p>
<p>All this said, AI Applications are still new applications. What’s more, through both AI code generation and the demand for AI agents, there are more and more ‘apps’ than ever.</p>
<p>The most secure AI applications will implement a multidisciplinary approach, as with many aspects of AI, particularly those more novel elements of a modern AI application. As noted by Microsoft and OpenAI ahead of the launch of GPT-5 family of models, the team was made up of not only AI and Security teams, but numerous lines of business, bringing the consumers of AI products closer to the notion of secure &amp; responsible AI.</p>
<h2 id="ai-applications-as-applications">AI Applications as Applications</h2>
<p>AI - Artificial Intelligence - is generally used to refer to the ability for computers to take on tasks that previously only humans could do. Over time, other definitions have appeared, like “Artificial General Intelligence” or AGI, for computers to think like we do - or even in ways that are superior to us.</p>
<p>The reality today is that AI systems are composite applications - complex webs of code that bring together data, automation, and business logic. Some forms of AI might be simple call and response tasks, and others might use goal-seeking logic to form agents, or webs of agents.</p>
<p>Getting more specific, these composite applications can include open-source libraries, closed source logic, or calls out to managed services, including data ingestion pipelines, machine learning model training and storage, inference endpoints to run models, or feedback and retraining loops. On top of that, we still have traditional user interfaces including the web, desktop / mobile applications, or digital conversational channels like SMS or WhatsApp.</p>
<p>If we can agree that AI (today, at least) is implemented as a composite application, then we can look at existing standards for application security. ISO/IEC 27034 describes three pillars of application security.</p>
<img src="/_astro/iso27034-overview.CRKJY5Ka_ZwyucO.webp" alt="A three-pillar diagram of ISO/IEC 27034 application security framework. The left pillar (blue) shows ONF - Organization Normative Framework, containing Application Security Control Library, ASLCRM Reference Model, Contexts, Levels of Trust Scale, and Roles &amp; Responsibilities. The middle pillar (green) displays ASMP - Application Security Management Process with 5 steps: Specify Requirements &amp; Context, Risk Assessment &amp; Threat Modeling, Create Application Normative Framework, Implement &amp; Deploy Application, and Audit &amp; Continuous Verification, with a note about Continuous Process. The right pillar (purple) presents ANF - Application Normative Framework, including Application-Specific Instantiation, Risk-Driven Selection, Architecture Mapping, Verification Specifications, and Living Documentation." style="max-width: 100%; height: auto; margin: 2rem auto; display: block;" loading="lazy" decoding="async" width="1266" height="668">
<h2 id="translating-appsec-principles-to-ai">Translating AppSec Principles to AI</h2>
<p>If you have a set of baseline controls for your Secure Software Development Lifecycle, particularly if you’ve been using them for a while, you should absolutely start with that!</p>
<p>What you may find is that the controls can broadly remain the same, but the focus will shift. Looking for a good place to start? You may see the <strong>data and information protection</strong> more heavily weighted than many apps, as well as your <strong>logging, monitoring &amp; auditing</strong> controls, and <strong>API management</strong>.</p>
<p>You’ll find some scenarios where the control is the same, but the implementation is completely new. For example, Input Validation is hugely important to AI apps, for much the same reasons, but the way you implement it must change or in many cases expand. From writing regular expressions for a field, to creating prompt shields to filter content in a brave new fuzzy world and defining whether this takes place before a model has a chance to review the user input, or after.</p>
<p>Let’s explore the other controls you may be familiar with and what they translate into in your AI Application:</p>
<table>
<thead>
<tr>
<th><strong>Control</strong></th>
<th><strong>AI Translation</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>Access Control</td>
<td>As before, but also consider agent identity, access to both the app and the AI endpoint, and data authorization before inference</td>
</tr>
<tr>
<td>Code Integrity</td>
<td>Now should be inclusive of model weight integrity</td>
</tr>
<tr>
<td>Secure by Design</td>
<td>Incorporating multi-disciplinary AI red-teaming, including users and threat modelling, threat modelling, threat modelling!</td>
</tr>
<tr>
<td>Patch Management</td>
<td>Is equally applicable to the model (your own or vendor) and how your app interacts with the model, as tested via model evaluations</td>
</tr>
<tr>
<td>Logging, Monitoring, &amp; Auditing</td>
<td>Now should consider tracking the risk of not only data drift, but model drift, and emphasise data lineage</td>
</tr>
</tbody>
</table>
<p>Of course, all of this depends on the details of your solution, and who is consuming your solution.</p>
<h2 id="the-ai-specific-amplifiers">The AI-Specific Amplifiers</h2>
<p>So, if AI is additive, once we have extended and applied traditional AppSec approaches, what are those AI-specific amplifiers we need to consider?</p>
<p>New primitives are required for complex AI applications that weren’t required in older application architectures - including agent identity, prompt inspection at runtime, and policy-driven tool access.</p>
<p>This is because we have new risk dimensions. When you use a closed-source model, or an open model where only model weights are provided, you have a potential risk of data poisoning; has the model been trained to respond erratically to certain prompts, potentially allowing attackers to exfiltrate data, and other forms of adversarial manipulation.</p>
<p>We also have to consider how our systems may inadvertently replicate or introduce bias or produce unfair outcomes; not just at development, but over time as data the system processes continues to increase.</p>
<p>Importantly though, whilst these specific challenges are new, each can be mapped back to existing AppSec control categories, such as validation, confidentiality, integrity, and accountability.</p>
<h2 id="how-might-we-implement-these-controls-to-our-ai-application---particularly-when-developing-on-foundry">How might we implement these controls to our AI Application - particularly when developing on Foundry?</h2>
<p>As Microsoft MVPs, we will focus our examples assuming you’re developing on Microsoft Foundry, but these controls are applicable to all the major hyperscalers.</p>
<img src="/_astro/tools-for-design-build-run.DeQyetCS_1GGXIS.webp" alt="A three-column diagram showing AI security tools across the software development lifecycle. The Design column (yellow) includes Tool Selection with Model Catalog and Safety Scores, and GitHub MCP Server with Code Scanning and GitHub Advanced Security. The Build column (dark teal) features Data Validation with Foundry IQ, AI Search, and Bing API; Secure Storage with Key Vault and Azure Storage; Data Privacy &amp; Integrity with Foundry Synthetic Data; AI Identity &amp; Access with Entra ID, RBAC, and Agent Identity; Adversarial Testing with PyRIT and Red Teaming Agent; and Input Validation with Prompt Shields, Content Safety, and Spotlighting. The Run column (orange) shows Application &amp; Service Monitoring with Defender for AI Services, DevOps, and Sentinel Integration; Data Protection with Purview DLP and DSPM for AI; and Continuous Evaluations with Azure DevOps and GitHub Actions. Footer shows 3 Lifecycle Phases, 11 Security Capabilities, and 20+ Microsoft Tools." style="max-width: 100%; height: auto; margin: 2rem auto; display: block;" loading="lazy" decoding="async" width="1275" height="828">
<h3 id="design">Design</h3>
<p><strong>Foundry Models and Model Leaderboards</strong> - Meet Secure by Design controls with up-to-date benchmarking from Microsoft. With the ‘Safety’ scoring, review attack success rates against each model.</p>
<p><strong>GitHub MCP Server</strong> - MCP Servers are usually associated with security risk, not mitigation, but the GitHub MCP Server is accessible from most development platforms, including Azure AI Foundry. Leverage GitHub Advanced Security features including examining security findings, review Dependabot alerts, analyse code patterns, and get codebase insights.</p>
<h3 id="build">Build</h3>
<p><strong>Grounding</strong> reduces hallucinations and improves response quality, impacting the data validation control. Ground models on enterprise data with Foundry IQ &amp; Azure AI Search and for anything else, consider grounding with Bing Search to verify data on the web.</p>
<p><strong>Secure Storage and Access</strong> to enterprise storage data via Azure Key Vault with Azure Storage, and even synthetic data generation via Microsoft Foundry, helping control data poisoning and the inappropriate use of personal or confidential data.</p>
<p><strong>Evaluations</strong> across Agents, Models and Datasets on Microsoft Foundry, including AI Red Teaming agent &amp; the open source PyRIT framework.</p>
<p><strong>Implement Microsoft Foundry Guardrails</strong> via both prompt &amp; response filters for a variety of undesired content, such as direct/indirect prompt injection PII leakage, custom blocklists of prohibited phrases, and potential intellectual property violations.</p>
<p><strong>Identity and Access Management</strong> - Each Foundry project comes with a Managed Identity allowing for Entra ID integration natively. Need more depth? Govern at the agent level and create Entra Agent Identities and leverage integration with Agent 365. Just don’t take a key-based AI application into production.</p>
<h3 id="run">Run</h3>
<p>Integrate Foundry with the power of Microsoft Defender for AI Services, the wider Defender for Cloud family for AI app security posture management and workload protection, surfacing alerts and violations into Defender for Cloud &amp; Sentinel. Integrate Microsoft Purview to implement wide-reaching Data Loss Prevention policies and govern AI access to documents and files. Integrate Microsoft Foundry Evaluations into CI/CD pipelines on Azure DevOps or GitHub Actions, to enable continuous evaluations each time you ship.</p>
<h2 id="operational-reality-embedding-in-devsecops--mlops">Operational Reality: Embedding in DevSecOps / MLOps</h2>
<p>You don’t rebuild your pipeline - you augment it with AI-specific security controls at the appropriate stages. MLOps isn’t a separate discipline - it’s DevSecOps extended with model and data artefacts.</p>
<h3 id="the-extra-layer-philosophy">The “Extra Layer” Philosophy</h3>
<p>Focusing on this “Extra Layer” philosophy, traditional CI/CD gates (code quality, vulnerability scanning, dependency checks) remain mandatory. What’s added is a new set of artefacts to be secured, across the stages of build and run.</p>
<p>Most of the time, you’ll likely be using an off the shelf model from a third party; sometimes you will be fine-tuning that model further for your use case. For this reason, we’ll talk about Model Refinement - encompassing model selection &amp; context engineering, custom training, and fine-tuning.</p>
<h3 id="pre-model-refinement">Pre-Model Refinement</h3>
<p>Add new AI artefacts to your pipeline, tracking either model versions used or model weights used; training datasets; prompt templates; and MCP Server configurations. Version control and signing apply equally to models as they do to container images. Just as you scan dependencies with Dependabot, you must verify model provenance and scan training data for injection attacks. For example, Microsoft partners with HiddenLayer to scan models deployed through Azure AI Foundry. CodeQL scans for vulnerabilities; Copilot Autofix suggests remediation.</p>
<h3 id="post-model-refinement">Post-Model Refinement</h3>
<p>Security validation intensifies after model selection or fine-tuning - this is where theoretical vulnerabilities can become practical attack vectors. Three critical security checks define this stage: training data scanning, model signature verification, and MCP server validation.</p>
<p><strong>Data scanning</strong> - After selecting a model, or fine-tuning, it’s important to review for prompt injection attacks beyond simple pattern matching. Modern injection techniques embed subtle manipulations within seemingly legitimate training examples - customer service datasets might contain hidden instructions to reveal sensitive data when triggered by specific phrases.</p>
<p><strong>Model Verification</strong> - At each stage, each model artefact requires a complete chain of custody. Verify that deployed weights match exactly what your training pipeline produced, confirm no backdoors were injected during storage or transfer, and validate behaviour aligns with previously tested specifications.</p>
<p><strong>MCP Server Supply Chain</strong> - You wouldn’t upload your core systems of record to other random API endpoints, and an MCP server is no different. If you don’t control the underlying system, then you don’t ultimately know how the data you submit is being used. Consider swapping out PII for token substitutions, and re-inserting PII after processing. These servers bridge models to external tools and data, so use the same supply chain scrutiny you’d use for critical dependencies: verify server implementation authenticity, ask how vendors you might rely on manage their own software supply chain, and ensure configurations haven’t been modified to redirect queries to malicious endpoints. A single compromised MCP server can cascade through your entire AI system. Regular audits must validate not just the servers but their communication patterns - confirming authorised connections only and preventing data leakage through side channels.</p>
<h3 id="pre-deployment">Pre-Deployment</h3>
<p><strong>Adversarial testing</strong> must systematically attempt to break your AI system before real attackers can. Run red team exercises targeting prompt injections, jailbreak attempts, and context manipulation attacks. Validate that AI Content Safety policies work under pressure, not just ideal conditions. Stress test every endpoint with malformed inputs, oversized payloads, and extraction attempts.</p>
<p><strong>Model Consistency</strong> validates that updated models maintain predictable behaviour across versions. As models evolve, identical inputs can produce different outputs, breaking downstream dependencies. Implement automated validation comparing new versions against baseline responses. When drift exceeds thresholds, trigger automated rollback or flag for human intervention to adjust prompts and context. Track response quality metrics, semantic similarity scores, and edge case handling. Some providers deprecate older models, forcing prompt adjustment rather than rollback - your consistency framework must accommodate both scenarios.</p>
<p><strong>API Gating</strong> - Your API management layer must gate all model endpoints without exception - a single unprotected endpoint can compromise everything.</p>
<p>Test the model. Validate behaviour. Secure the endpoints.</p>
<h3 id="deployment-and-runtime">Deployment and Runtime</h3>
<p><strong>Prompt Protection</strong> - Runtime protection requires active defence mechanisms that respond to threats as they occur. In Azure, Prompt Shield acts as your first line of defence, analysing incoming requests and blocking injection attempts before they reach your model. This real-time filtering catches both obvious attacks and sophisticated attempts that use encoding tricks or context manipulation.</p>
<p><strong>Security as Code</strong> - Apply the same infrastructure-as-code rigour you apply to cloud resources. Define your AI security configurations in version-controlled files, treating them like Terraform modules with full change tracking and approval workflows. When incidents occur, you can roll back problematic changes instantly. More importantly, you can replicate security configurations across environments, ensuring development, staging, and production maintain consistent protection levels.</p>
<p><strong>Runtime Operations</strong> - DevSecOps principles extend to runtime AI operations through three key mechanisms. First, <em>runtime-to-code traceability</em> connects production incidents directly to source code - when Prompt Shield detects injection attempts, tools like AI Foundry Control Plane trigger alerts in the GitHub repository containing the vulnerable template, enabling rapid fixes. Second, <em>agent identity</em> requires new security primitives, whether just-in-time access tokens or first-class identity systems like Microsoft Entra Agent ID. Third, <em>agent governance</em> demands centralised registries (using open-source indexes or Agent 365) to track every agent with API access, enforce unique identities, log all actions, and require human verification for destructive operations like deletions or significant data modifications. This prevents shadow AI agents just as you prevent shadow IT.</p>
<h3 id="its-all-devsecops">It’s all DevSecOps</h3>
<p>AI-specific monitoring extends traditional approaches, and these techniques allow you to track model drift, prompt injection attempts, data exfiltration patterns, and unexpected tool usage.</p>
<p>Measure AI-specific KPIs: prompt rejection rate, model version consistency, MCP server authentication failures, agent policy violations - but integrate telemetry into existing SIEM/SOAR platforms - don’t create separate dashboards.</p>
<h2 id="convergence-not-reinvention">Convergence, Not Reinvention</h2>
<p>So, where can you take this from here? Our suggestion is to integrate AI controls into and extend your Application Security Posture Management (ASPM) to include the idiosyncrasies that the rapid development of new AI protocols and architectural patterns are introducing. <strong>Your AI Security Roadmap starts on Monday!</strong></p>
<blockquote>
<p>“The future of AI assurance isn’t a new branch of security - it’s the next version of AppSec, compiled for machine learning.”</p>
</blockquote>
<p>For example, ASPM will need to include your upgrade approach for language models (LLMs or SLMs) that your organisation relies upon. Will upgrades to those models cause the same inputs to give the same expected outputs?</p>
<p>How about your Model Context Protocol (MCP) servers? Do you know the underlying software supply chain for those MCPs? Are they hosted by actors that you trust now, and will continue to trust for the future? Can your MCPs exfiltrate confidential data, from API keys to financial reporting?</p>
<p>Where does your data come from for your AI systems? Is the data both up to date, and is it free of potential prompt injections, or malicious/sloppy instructions that could cause a vulnerability or an outbound network connection?</p>
<p>These are taking traditional areas of ASPM such as application data privacy and compliance, application misconfiguration management, or an inventory of applications - and extending them to be fit for purpose in today’s world. We suggest you measure your maturity and then introduce new controls to account for this additional threat surface. Failing to adapt to AI isn’t an option - not because the technology is magical, but because your employees will otherwise engage in using Shadow AI, such as ChatGPT or Claude on their own mobile phone. Work to enable people, and security will follow. Block, and the castle will fall.</p>
<h3 id="how-can-you-get-started">How can you get started?</h3>
<p>Remember: Your existing security team already has 80% of the skills needed. The remaining 20% is understanding how AI changes the threat surface - not learning entirely new disciplines. <strong>Start where you are, use what you have, do what you can.</strong></p>
<p>Leverage your cloud provider’s AI security tools; and inventory all AI touchpoints in your organisation - including shadow AI usage through personal accounts.</p>
<p>Review your ISO27034 implementation as-is, and review where AI specific controls, such as those we’ve described, can be applied.</p>
<p><strong>More information</strong></p>
<p><a href="./iso27034-application-security-for-ai-applications.pdf" target="_blank" rel="noopener noreferrer">Here’s a downloadable cheat sheet</a> you can use to review the latest ISO27034 controls you might want to apply on the Microsoft stack, and a <a href="./iso27034-owasp-microsoft-ai-security.pdf" target="_blank" rel="noopener noreferrer">downloadable framework for implementing ISO27034 and OWASP Top10 LLM to your Microsoft AI Application</a>.</p>]]></content:encoded>
  </item>
  <item>
    <title>Welcome to the Library</title>
    <description>The first chapter in the Securing the Realm blog – where cybersecurity, Azure, and AI meet adventure.</description>
    <pubDate>Sun, 01 Dec 2024 00:00:00 GMT</pubDate>
    <link>https://securing.quest/blog/welcome/</link>
    <guid isPermaLink="true">https://securing.quest/blog/welcome/</guid>
    <category>welcome</category>
    <category>meta</category>
    <content:encoded><![CDATA[<h1 id="welcome-to-the-library">Welcome to the Library</h1>
<p>Welcome, traveller. You’ve entered <strong>the Library</strong> – the heart of <em>Securing the Realm</em>, where we chronicle our adventures across cybersecurity, Azure, and AI.</p>
<h2 id="what-awaits-inside">What Awaits Inside</h2>
<p>Among these shelves you’ll uncover:</p>
<ul>
<li><strong>Technical Deep Dives</strong> – explorations of Azure, AI models, and secure architectures</li>
<li><strong>Quest Chronicles</strong> – stories from real-world projects and the battles fought along the way</li>
<li><strong>Spell Books</strong> – hands-on guides and tutorials to sharpen your craft</li>
<li><strong>Arcane Knowledge</strong> – insights into the technologies shaping tomorrow’s defences</li>
</ul>
<h2 id="why-we-write">Why We Write</h2>
<p><em>Securing the Realm</em> began with a simple idea: learning should feel like an adventure.
By blending fantasy storytelling with technical precision, we make complex topics accessible and memorable – a map through the ever-shifting lands of digital transformation and security.</p>
<p>Whether you’re reforging cloud defences, taming AI agents, or building trust in your kingdom’s data, this Library is your guide.</p>
<h2 id="join-the-quest">Join the Quest</h2>
<p>Return often. The story grows with each chapter.</p>
<ul>
<li>Visit the <strong>Tower</strong> for talks and videos</li>
<li>Explore the <strong>Forge</strong> for open-source creations</li>
<li>Subscribe to <strong>Arcane Scrolls</strong> for updates from the Realm</li>
</ul>
<p>The gates are open. The torches are lit.
Adventure awaits. 🏰✨</p>
]]></content:encoded>
  </item>
</channel>
</rss>