Live data from Hacker News

A €0.01 bank transfer could compromise a banking AI agent

blue41.com

111–120 of 213 posts

Re: A €0.01 bank transfer could compromise a banking AI agent

#111
post #52

Earlier quoted context omitted.

So it can write code to prevent the problem described?

[flagged]

How does this prevent prompt injection described in the article?

How does it prevent DDOSing and/or exposing the database from an injected prompt?

Re: A €0.01 bank transfer could compromise a banking AI agent

#112
post #79

Why would the agent send the results of the query "Show me my recent transactions" to LLM? This pretty deterministic results which involve no LLM interpretation or decision making. I understand that people are no longer writing IF expression in their code, because they think it's too brittle, and so they delegate all "IF" branching logic to LLM, but it beats me why displaying of the results from a database query shou…

Why would this even be in the chat? Showing recent transactions is a basic functionality of a bank.

Re: A €0.01 bank transfer could compromise a banking AI agent

#114

This line really stood out to me. > It may look like ordinary text, but when it is placed into an LLM context window, the model may interpret it as an instruction rather than as data. I feel like as long as this is the case, we'll never have secure LLMs. It concisely summarises the alarm bell I hear every time someone talks about adding AI features to their product. I plan on using this as a sort of benchmark for fut…

I have been working on this issue for a bit, and the most interesting approach I have seen so far comes from the research domain of information-flow control, specifically Microsoft’s FIDES work.

The idea is not to distinguish instructions from data. It is closer to having different privilege levels. Not all code has to run in kernel space, some code runs in unprivileged user space. So what is the equivalent for LLM agents?

In FIDES-style systems, every piece of information that enters the agent context is labeled along two dimensions: integrity and confidentiality. Integrity captures whether the data is trusted or untrusted (i.e. could it contain a prompt injection attack). Confidentiality captures who is allowed to see or receive it [0].

The privileged agent, sometimes called the planning agent, should not directly see untrusted data because it would be susceptible to prompt injection attacks. In the article’s example, a bank transaction’s sender-supplied reference would be untrusted. Instead, the planning agent receives a variable token. It can then either delegate processing of that variable to an unprivileged / quarantined agent with no or limited tool access, or pass the token as a reference to a tool.

Tools then have policies attached to their arguments and outputs. These policies specify which integrity and confidentiality levels are allowed, and whether the tool call may proceed. The policy also determines how the result should be labeled.

For example:

1. High-confidentiality data should not be allowed to flow into a `send_email` tool call addressed to an external recipient.

2. A tool call whose result depends on untrusted input should generally produce untrusted output.

3. A sensitive side-effecting tool should be able to reject calls that are influenced by untrusted context.

So the answer to “how do you separate data from instructions?” may be: you do not rely on the model to do that separation. You track provenance and privilege outside the model, and then enforce the security policy at the tool boundary.

[0] In the simplest implementation, confidentiality is assessed with a binary low/high value, however, in a more advanced implementation, confidentiality can be represented as the set of users or principals allowed to learn that information.

Re: A €0.01 bank transfer could compromise a banking AI agent

#115

Earlier quoted context omitted.

It's not possible with today's LLM models, but we are not wedded to the current architecture.

Realistically, we are. This is not some arbitrary design choice, it's the core compromise to make LLMs viable to train at all .

Define "realistically". You're basically saying attention is all we need indefinitely into the future and all other gains come from more compute or scaffolding around current architectures.

Attention is all we need because it is currently the best parallelizable way to model long-range dependencies on current hardware constraints, not because flat tokens yield some natural law of intelligence inherently.

Who's to say we won't find a way to encode provenance or privilege natively into models such that the tradeoff changes?

It's hard to say what the solution will be. If I knew it, I'd build it. But it's even harder to sustain that the current architecture is a crystalized global optimum.

Re: A €0.01 bank transfer could compromise a banking AI agent

#116
post #59

Earlier quoted context omitted.

I really think one needs a "Harvard architecture" for AIs (data independent of instructions). Though yes, that may not be possible.

I doubt it's possible, regardless of specific architecture, because if you want an AI that can do general purpose tasks like "look at my calendar and find a restaurant for the lunch meeting that the other people also like, but make sure nobody has to travel more than 20 minutes to get there, and it can't be too cold inside", then it has to ingest and understand a bunch of data to do that. The whole point is that the…

Humans are vulnerable to prompt injection as well. We usually call it something like "social engineering."

Re: A €0.01 bank transfer could compromise a banking AI agent

#117

This line really stood out to me. > It may look like ordinary text, but when it is placed into an LLM context window, the model may interpret it as an instruction rather than as data. I feel like as long as this is the case, we'll never have secure LLMs. It concisely summarises the alarm bell I hear every time someone talks about adding AI features to their product. I plan on using this as a sort of benchmark for fut…

> separating data from instructions There's been a lot of talk about this (for years, honestly), but it all stems from a fundamental nonunderstanding of how LLMs work. There is no distinction for an LLM; "instructions" are a prompt concept, nothing more. It's not possible to separate the two, because LLMs simply take text (ie your instructions, then the data, or maybe in a different order, or maybe something complete…

Right, you have to set boundaries. You put each task and user input into a box, and then the LLM makes a decision. It can only access APIs that have user identity attached, that act within the scope of the requesting user.

It can be done, but unsurprisingly it looks exactly like microservices distributed auth (also ZTP).

It's all the same problem, just instead of a JVM, it's an LLM.

Re: A €0.01 bank transfer could compromise a banking AI agent

#118

Earlier quoted context omitted.

> separating data from instructions There's been a lot of talk about this (for years, honestly), but it all stems from a fundamental nonunderstanding of how LLMs work. There is no distinction for an LLM; "instructions" are a prompt concept, nothing more. It's not possible to separate the two, because LLMs simply take text (ie your instructions, then the data, or maybe in a different order, or maybe something complete…

Right, you have to set boundaries. You put each task and user input into a box, and then the LLM makes a decision. It can only access APIs that have user identity attached, that act within the scope of the requesting user. It can be done, but unsurprisingly it looks exactly like microservices distributed auth (also ZTP). It's all the same problem, just instead of a JVM, it's an LLM.

User identity attached is not a solution, it doesn't solve anything if you have to pull in external data that you can't control.

Like in the banking world, you can make everything super authenticated, but if you have an API that receives the latest wire transfer YOU received with the message attached, you don't control the message content and it can be an attack vector.

Being authenticated/authorized is not the solution, it is data that the user can access.

Re: A €0.01 bank transfer could compromise a banking AI agent

#119

Earlier quoted context omitted.

So? Did they ask me about it? I don't approve of it and I don't think it's secure enough for a bank. Absolute negligence.

You jest but I agree. Also I think the "stochastic" arguments is getting old. What if XML was stochastic? Does it matter if it is "stochastic" or does it matter if it is correct? You know my compiler generates a different binary every time I compile the exact same code. My CPU definitely is not fully deterministic yet it makes a nice show of it being so. I don't care and nobody cares as long as it works. And what "wo…

The argument is getting old in the sense that it was first used longer and longer ago.

However, it's still just as applicable as ever. Perhaps more.

> Does it matter if it is "stochastic" or does it matter if it is correct?

In this case, we can only determine whether it's correct after it's too late to do anything about it. So if it was correct, we can say it didn't matter, but only in retrospect.

Re: A €0.01 bank transfer could compromise a banking AI agent

#120

Earlier quoted context omitted.

That's precisely why I am using a different analogy when talking about this. The SQL injection analogy only matches the injection part, not the rest. There is nothing to secure, because there is no SQL query. You want the agent to work on data, in a "general" way, otherwise you'd just use a script. The better analogy is phishing. Because that's what's happening here. The "prompt injection" attack is trying to "phish"…

> There is nothing to secure, because there is no SQL query. Yet.

I thought the whole value proposition of this thing was supposed to be that the interface is "natural" human language. If interact with it using a structured and specified language... then what are we doing exactly? Is this AI? Maybe we just re-invented GraphQL or something?
Post reply on HN