OC3 2026 | The Weakest Link in AI: Hardening MCP Servers with CC with Pawan Khandavilli

OC3 2026 | The Weakest Link in AI: Hardening MCP Servers with CC with Pawan Khandavilli

Microsoft Azure

0:07 (upbeat music)- Hello, everyone, thank you so much for joining.

0:17 I'm Pawan Khandavilli, I'm a Senior Product Manager

0:20 on the Azure Confidential Computing team at Microsoft.

0:24 And today, I'm here to talk about

0:26 how confidential computing technology that this community has

0:30 been building and taking forward solves a new

0:33 and urgent problem in the AI space.

0:36 Just before I begin, this is not a Microsoft product.

0:40 We use experts here are on my own,

0:42 of on my own and cannot represent Microsoft's (indistinct).

0:45 So I just want to make sure we get the disclaimer out of the way.

0:50 And so the talk today will have three main portions, right?

0:55 Like we have the problem on why MCP servers are uniquely high

1:00 value targets and why some of the existing controls might not work.

1:05 The solution on how do we close the gap with using

1:08 confidential computing as a defense in depth and the framework

1:15 on how to think beyond trust execution environments and confidential

1:20 computing to protect the full threat surface of pure MCP servers.

1:24 So that's where the talk will go today, so let's get started.

1:30 So for those...

1:32 This is bit of an orientation slide for folks who are not following this pace.

1:36 So confidential computing...

1:38 Sorry, MCP servers short for Model Context Protocol server

1:44 are sort of the USB-C of agent tooling, right?

1:47 It's like a universal interface for LLMs and agent high assist

1:51 to sort of talk to the external world and do real-world actions.

1:57 Like this is one of the reasons why adoption is exploding.

2:01 Almost every major AI framework is adding MCP

2:05 support and that gets it to the second row,

2:09 where to talk to these external world and have all these accesses,

2:14 so you need credentials, right?

2:16 Like it could be GitHub, AWS, Slack, Stripe,

2:20 whatever it is that you need to access and do things outside in the real world,

2:25 you need that access.

2:26 So we have a credential aggregation problem here.

2:31 And just going beyond that, like LLMs,

2:33 the LLM intent is transferred into the real

2:37 world through MCP server execution as I mentioned before,

2:42 and lots of credentials, and sometimes (indistinct) Slack can be part

2:47 of this, which can be a single point of compromise.

2:52 So the right way to think about MCP is not as a two-layer,

2:57 but a capability system.

2:58 That means you need permissioning,

3:00 isolation, auditing, and blast radius control.

3:02 And I'll be talking about isolation and blast

3:06 radius control through the stock and we can,

3:08 at the end, touch upon some of the other things we can do.

3:14 So this slide, I'm trying to bring together

3:17 what we mean by the credential aggregation problem, right?

3:20 This is a realistic example of how a remote MCP server would look like,

3:25 that's maybe engineering focused or developer focused, right?

3:28 So it could have GitHub tokens, Slack tokens,

3:32 et cetera that are loaded that the MCP server uses to communicate.

3:39 And before we go further, like I know MCP is a lot,

3:44 it's a open protocol, there's ways to extend it.

3:48 So there's local MCP servers...

3:51 Sorry, local MCPs and CP servers that are hosted remotely.

3:56 I'm not going to talk about the local site today because

3:59 they're run as child processes and they have a different threat model.

4:03 What we're focused on is Zoom modem CP servers deployed as a service

4:08 shared across users or agents running on cloud or hosted infrastructure,

4:13 and that's where this threat model sort of applies.

4:18 So if you think about this, all this credential aggregation,

4:21 the blast radius is pretty high, right?

4:24 Like if you...

4:25 This could be depending on the access control

4:30 and other permissions that are part of these tokens,

4:35 it could be (indistinct) to all GitHub

4:38 perhaps and even sometimes full database access.

4:41 So the blast radius of, you know,

4:44 a memory dump are being able to get these credentials is pretty high.

4:51 So just to sum it up, to make your LLMs and agents useful,

4:55 they need to use MCP to talk to the real world

4:59 and the more the tools you add to make it work for you,

5:03 the larger the blast radius.

5:08 So there are controls that are in place, right?

5:12 There is IAM, Role-Based Access Control, and other controls.

5:18 So we can go each one, one by one and we have IAM and RBAC,

5:24 which assumes the host is trusted again,

5:27 but this does not prevent any memory reads.

5:31 Secrets vault, this is very good in practice.

5:35 It needs to be there,

5:37 and this protects data addressed and the secrets addressed.

5:43 But once they get into the MCP server so that they can be used,

5:47 that's when they get vulnerable.

5:49 And just by the way their work MCP servers do

5:53 have to talk to the external world to be useful.

5:59 So there is external outbound network policies that let

6:02 the MCP servers talk to these external worlds, so there could be exfiltration.

6:10 And then container isolation,

6:12 this is another good practice where you build containers to run these servers.

6:17 But again, if you get access to the host, all these controls sort of go away,

6:24 and we need to remove the assumption just because of the credential

6:30 aggregation and blast radius that we have, that MCP servers.

6:35 So again, the core problem is you could...

6:39 If you, again, root sort of host access, you can inspect the memory,

6:43 extract the secrets, and then we will be able to exfiltrate via CTPS.

6:50 So let's talk about how confidential

6:53 computing can help prevent these attacks, right?

6:55 I'm sure folks who are familiar with confidential

6:59 computing kind of see where this is going.

7:03 So for each TEE property, there is a threat that's closed.

7:07 So the first one which is memory encryption,

7:10 you can dump the memory to try and get the credentials,

7:13 but all you see is SAP text and you can't gain access.

7:19 Remote attestation, think about tampered image.

7:23 If you apply remote attestation and verification the right way,

7:27 even though if it gets deployed normally,

7:32 key wall checks and other checks where you could

7:35 gate the credentials will not be able to pass,

7:41 because the attestation will show that this is

7:44 an image that hasn't been approved.

7:48 Attestation-gated credential delivery,

7:50 like this is what we call a secure key release in most scenarios.

7:56 So any secret that needs to be loaded to the MCP server,

8:00 whether it be baseline credentials that you need to talk

8:06 to a surface versus scoped tokens that agents might send per session,

8:11 all of this can be gated based on the attestation.

8:16 Code integrity, like it can help with supply chain attacks,

8:20 like if there is a malicious dependency that gets into the container build,

8:26 the CPU can measure the anti-measured launch.

8:29 So if the measurements don't match the known good hash,

8:33 then the key release attestation, all of them will fail.

8:36 So this can catch supply chain attacks that could lead to exploitation.

8:41 And the final one, which at least is

8:44 my favorite when it comes to TEEs and confidential computing,

8:51 the measurement becomes sort of the cryptographic identity, right?

8:56 Because the same source code and the build

9:00 process always produce the same measurements.

9:02 I know this could be tricky to get right,

9:05 but this does get to the same measurements.

9:10 And then once you publish the known good measurement,

9:13 any relaying party including the agent orchestrator, control plane, auditor,

9:19 like can verify via remote attestation before connecting,

9:23 and this is the identity at the hardware level that cannot be forced easily.

9:29 So all this gives sort of the right properties

9:35 to close the threat models that we are seeing.

9:38 And I just want to add a bit

9:40 here because when we talk about protecting AI workloads,

9:45 we think about GPUs a lot, and they are very important.

9:49 We need to have the right GPU support.

9:53 I'm glad that we are investing in confidential GPUs.

9:57 But all of this MCPs are not GPU bond workloads,

10:04 these are CPU workloads that can be protected

10:07 with the current CPU technology that we have.

10:10 I know we're getting GPUs, but this is something that we can do beyond the work

10:18 that is already being done on the GPU and the ecosystem around it.

10:25 So one pattern, right?

10:26 This is the same architecture that can be reused to protect MCP servers.

10:32 So we need a hardware TEE.

10:35 This could be AMD SEV-SNPm, Intel TDX, or ARM CCA.

10:39 All this encrypts VM memory in the silicon.

10:42 Computational containers like this fits right in because it

10:46 provides the ability to provide these measurements and use them.

10:51 We need an attestation service to verify

10:54 and validate the hardware codes that the relying party

10:57 can use and also gated key release policies

11:03 that secrets are bound to the attested code measurements.

11:06 So these patterns are supported by the CoCo project,

11:10 the Confidential Container project.

11:13 Our friends at Edgeless have contrast that can do

11:16 this and also hyperscalers like some of the products

11:19 that I work on also support sort of these feature

11:23 sets that can be used to protect the servers.

11:28 So trying to bring all of this together into one concrete slide.

11:34 So as it described, I see MCPs having a two-layer credential model, right?

11:40 So the first model is the baseline cervix accounts, that could be DB_URLs,

11:46 GitHub service tokens, et cetera, and also agent scoped tokens.

11:51 Both of these have different days to get the secrets in to the servers.

11:57 One could be at the boot up time that are really fault or HSM.

12:05 And agents that have the user context or an action

12:09 by the user or credentials provided by a user that are

12:16 agents scoped can be sent to the MCP server after

12:23 validation with attestation similar to what the key walls do.

12:28 So just sort of brings the whole project together.

12:31 We have the means of reducing the blast radius and ensuring

12:36 that we are communicating with a good known MCP server

12:40 that can reduce the credential leakage and harm that comes

12:48 with the segregation while still keeping LLMs and our agent harnesses useful.

12:58 So we have the hardware proofs that, you know,

13:02 this is the right image relying party verify,

13:05 and then we have the credential flows going

13:08 in, and there's several failure modes that can break this chain.

13:13 If it's a modified container image, it can be caught.

13:16 If debug mode is enabled on any of the servers,

13:20 which can make it easy to get these credentials, that can be caught.

13:24 If it's been a while since the attestation happened, it can be caught.

13:29 And the same with the host route that's prevented with this model and approach.

13:38 So we have to be honest, right?

13:41 Confidential computing is a different in-depth mechanism.

13:44 So TEEs are necessary, but not sufficient.

13:46 We have to pair them with prompt injection and which...

13:51 Sorry, prompt injection guarantees that we need to sort of work through.

13:56 Sampling is another attack that I feel is something that isn't too well-known,

14:02 like so it's sort of reverses like usually in the normal workflow,

14:08 the agent or LLM talk to the MCP server,

14:12 but sampling reverses that model where an MCP server can

14:15 ask an LLM to generate text on it on its behalf.

14:18 So reversing the direction of influence,

14:21 I sometimes call it an MCP server social engineering, the LLM.

14:25 There's tool poisoning attacks,

14:26 so all these cannot be prevented by just TEEs alone.

14:30 So all this have to be thought through,

14:33 but we do close the privileged host access and the supply chain attacks,

14:40 that part of the threat model here.

14:43 So this is what we need for some of the full defense.

14:48 And like as I mentioned,

14:50 we need to think beyond just protecting these credentials to secure MCP servers.

14:57 We need to have a good permission design, runtime controls,

15:01 and isolation as we talked about to help prevent any of these attacks,

15:06 credential attacks that happen.

15:08 So I think we need to think through all these and then

15:13 a TEE can definitely reduce the attack surface and the credential leaking.

15:22 And like what to do Monday, like I know folks try to like end with this.

15:27 So map your MCP credential surface,

15:29 try to figure out what secrets your MCP server has access

15:33 to or they audit host access to AI and your workloads,

15:38 and should the MCP capability model,

15:41 including the isolation, that confidential computing provides.

15:45 So I think that's the end of the topic.

15:50 I do have reference implementation,

15:53 which is based on Azure that I can share further here,

15:58 and yeah, we can cut with me for any questions.

16:01 (upbeat music)

Study with Looplines Download Captions Watch on YouTube