← Back to library

Transcript: Agentic Development Security — Ezra Tanzer, Snyk

AI Engineer27m 33sTranscript ✅Added Jul 30, 9:47 pm GMT+8

Source video ID: cgimkNGNjvU

Transcript

  • 0:01 — [music] I’m a product director here at Sneak and going to be talking to you about agentic development security and specifically talking about how we can gain confidence when we use agents um especially as we give them more autonomy. It’s a very common theme we’ve heard in this track and a number of the other tracks um today. Um, I’m not going to go through the full history of LMS, but the model
  • 0:32 — context protocol release was a really big moment. Until then, I don’t know what you guys were doing, but I was very often copying and pasting between uh, Aenta clients and some other services. And with MCP, I think people really started to connect this and have a much more um, really connected AI system. U,, and I’m not saying that MCP is the end- all beall, and I may or may not have been amongst the people who were saying that MCP would die at some point last year. Um but it has been a gamecher in the sense that developers started to connect agents to external tools and
  • 1:03 — services. Um and at that time there really wasn’t any security to speak of. Like most companies we released an MCP server almost immediately. Um ours specifically enabled local directories to be scanned by our security scanning engines. Uh developers could ask questions in natural language about the security issues that were identified. they could learn why specific vulnerabilities uh were important or how they might be exploited and then work iteratively towards a fix. Um shortly thereafter we decided to pair our MCP
  • 1:33 — server with rules. Um and the rules basically ensured that any AI generated code would be tested and if there were security issues identified that they would be automatically fixed. It was simple was fast to deploy and it did solve a meaningful pain point for our customers. Uh so that really was our original position. Secure agent generated code at the moment of inception. Oops. Uh but over the last year we learned that this framing was really incomplete. Um our customers started telling us that they were not only worried about the
  • 2:03 — code that was being generated, they were also worried about what the agent had access to and then also the actions the agent might be taking. Um so I’m going to just mention like briefly a few incidents that have come up over the last last year or so. I think we’ve talked about them. Um and in the keynote that Minoj gave earlier today, but also I think we’ve seen some of these in other presentations. But just as a quick refresher, um about a year ago, we saw um Replet’s agent um ignore a code freeze instruction and ultimately deleted a production database. It tried to cover up that it
  • 2:35 — did this fabricated records uh to basically say like no, there there was no issue whatsoever. Um and finally, it said that there was no way to recover. Fortunately, it turned out that that was wrong. They were able to recover, but the damage was still done. Then in April, I know we just we talked about this just a couple hours ago, but uh there’s the Pocket OS incident. An agent again found an overprivileged API token and that resulted in a production database being deleted. The backups were also deleted. And so a three-month old backup is what was could be used to
  • 3:06 — ultimately uh you know try to get back to recovery. What was really interesting here is that the agent wasn’t acting maliciously. It was actually trying to solve a problem. It was trying to solve what it perceived to be a credential mismatch. Uh but there was nothing in place to stop it. Those two examples were really about the agent actions that might be taken, but that’s not always the case. That’s not always what the attack surface is. Just last month, Team PCP was able to exfiltrate uh almost 4,000 of GitHub’s internal repositories using a malicious VS Code extension.
  • 3:37 — So all of this and kind of us being in the security space for the last 10 years and talking to our customers um it’s really shaped how we think about what uh agentic development security and what that really means. And our our belief is that in order to confidently use agents for software development at scale and to start letting them operate more autonomously in longunning tasks, whether it’s just getting up to make a cup of coffee or letting them run overnight. Uh it’s really critical to secure what agents generate, what they use, and what they do. Um and I’ll spend
  • 4:08 — a couple minutes talking about our journey in each of these pillars over the last year, what we’ve learned and uh and our current perspective. As I mentioned at the top, um this has been our longest area of experimentation and investment. It’s securing the code that the agents generate. Um and the reason for that is we don’t want issues to make it to production. We don’t want to kind of increase that backlog which has been so challenging to manage and is now a luxury that companies just cannot afford. Uh most companies do have security checks in their deployment
  • 4:38 — pipelines. Um and so even if they don’t make it to production, we want to ensure that bottlenecks are not getting in uh created at at those stages. Um I mentioned our original approach MCP server plus rules. Um, and it was really easy to paste a an MCP configuration um, and a rule definition and and over time we added shortcuts to make that even easier and the agent clients actually uh made it like simple commands to enable these configurations through plugins or just simple simple CLI tools. Uh, but the approach did have real limitations.
  • 5:08 — Agents sometimes ignored the rule files. Uh, scan execution did add latency at the end of its run. Um and every time that we ran scans through the context window that consumed tokens and so we were not the only ones dealing with these challenges. Fortunately um outside of security these same pain points existed. Um and the good news is that the agent client providers they provided new mechanisms for how to direct agents. Um primarily this has been in the form of skills and hooks. I think everybody might have their own opinion on which
  • 5:38 — one you want to use uh for which but they they really solve a lot of these problems. Uh our current recommendation um is to use Pythonbased hooks for this use case that can fire asynchronously on agent tool calls. And so immediately after an agent writes a new file or modifies a file, we can kick off a scan using our CLI, not even using the MCP server asynchronously. And that will write uh write any newly identified and newly introduced issues to a temporary file. And finally, on the session stop event, that’s when a hook triggers the
  • 6:08 — agent and it will check that temp file to see if there were new newly introduced issues. Only then will it kick off a fix and validate loop. So now the workflow is deterministic. Latency is removed because all that testing happens asynchronously. And again because newly introduced issues are the only thing that’s being surfaced to that agent context. The context window doesn’t get any unnecessarily unnecessary bloat. When we talk about agent supply chain, we’re really thinking about the things that help you build more connected agentic workflows. But like everyone’s
  • 6:38 — been saying today this is this also presents a new attack surface. Last year we acquired a company called Invariant Labs. Um and following that we produced a report uh which you can access if you want with this QR code. You can also come and talk to us um at our booth uh if you want to see this here. Uh but there’s many similarities between package ecosystem risk which is where kind of sneak got its got its start um and that of agent skills but we really think that skills are more problematic. Um they have higher
  • 7:08 — privilege by default. Natural language prompted detection cannot be detected through uh through typical code detection. Um and malicious skills can modify agent memory. So even if you remove a malicious skill, they can still persist. That risk can still persist after the fact. Um, and in an audit that we did of nearly 4,000 skills on Claw Hub, uh, over one in eight had a critical severity issue and we actually found 76 malicious payloads, uh, in in that subset. So the solution that we built here autodiscocovers all the agent components
  • 7:39 — on your machine. Um, it if you have MCP servers configured, it will connect to them, retrieve the tool descriptions, analyze them to see what security risks are present. It will do the same thing for skill files. will look at your skill.mmd file, see the dependent uh files that are associated with that skill, um and look to see what threats might exist. I demoed this or I tried to demo this during keynote earlier. The internet didn’t play super nice, so we showed a little video, but we can show this in action afterwards uh as well. Um just in the last month, we produced a
  • 8:11 — report based on some anonymized data following the release of the capabilities that I just mentioned. Um, and I think these numbers are probably going to be uh pretty low based on the expectations of the group that we see here, but I think it’s worth reminding you that uh not everyone is as kind of AI forward as the the folks that are attending uh this this conference here. Uh but kind of from the average developer, we saw that um more than half were using MCP servers and a fifth were leveraging skills. Um, beyond just adoption, one in 12 developers uh in
  • 8:43 — this group had an MCP server where there was either a high or critical severity finding identified in that MCP server itself. I realize this is probably pretty small but just want to highlight that these are some of the categories of risk that we look for when we analyze MCP servers. And similarly for skills there’s a number of different risks that we can also also look for. Um, this happens to be one of the one of the skill uh skills that I did an assessment of during that recorded demo that we showed earlier.
  • 9:14 — Very very risky. Um, malicious in some cases, but also just kind of maybe some negligent negligent behavior that that could cause problems for me. Um, the last leg of this stool uh for agentic development security is governing agent behavior. This is currently in open preview and it’s really focused on how we ensure that an agent is not taking excfiltrative, destructive or otherwise malicious or risky actions. Um I’m choosing to show here the policy configuration view because I want to
  • 9:45 — highlight the actions that we are trying to intercept today. Depending on how you use agents, the types of policies that you set might ultimately be different. Um I think in an ideal world, you’re always able to steer an agent towards the right action. um and kind of making it’s just making it so the human does not have to be in the loop. A really good example of that is redacting PII or secrets before a command executes. Um but in other cases, you actually may want that agent to ask you uh because there’s not a clear-cut answer. Um and so if there is a potentially destructive
  • 10:15 — shell command um or maybe if the agent wants to access a directory that is kind of outside of the scope of the permissions you initially gave, that’s a good reason to ask. But I think as we move towards more background agents and cloud agents being ran where you’re trying to trying to step away and trying to not be sitting at your desk babysitting the agent entirely um asks are much much less viable option. Um and so this is an area that we’re going to continue to invest but I think you know this is going to mean more fine grain policies may also mean that we need some
  • 10:46 — sort of autodidactism in the product kind of a self-learning capability based on the decisions that you make over time to help you become more autonomous. Um but the short of it is that like today we we are accountable for the actions that our agents take. Um and even in the future if that accountability model becomes a little bit more shared, I don’t think any of us want to work at companies where um we are doing a disservice to our customers and potentially letting our agents take risky actions. Um and and nobody really wants to be the reason for one of those incidents that gets widely publicized to to to occur.
  • 11:18 — Um, so far I’ve been doing a lot of telling rather than showing and I think for this conference we really want to focus more on more on showing where we can. Uh, so I’m going to invite my colleague Dan Arpino uh to come up and and take over um and really show you some of the areas that we’re exploring for solving these problems. Um I want to be clear that what we’re showing is not committed roadmap things that are definitely going to be available here but uh we really want to show it to you so that you can give uh some feedback to us on like is are we heading in the right direction like is this the better
  • 11:48 — way to solve these problems? Um and hopefully this will ultimately mature into some of the solutions that we can deliver to you to you uh all here up here. Any happy to take a question or two uh because we got to do the laptop transfer which is always fun. Yeah. » Yeah. So the question is what’s the difference between steer and ask there?
  • 12:18 — and steer is the idea that there can be a policy that is defined that doesn’t need a human in the loop that I can basically guide an agent to say nope instead of doing that let’s do something different so the the classic example that I think is easiest for folks to understand is like what if I just redact the PII or a secret replace it with asterisks and let the the kind of agent proceed but that’s not going to work in all cases ask is going to be an explicit prompt to the user either through the agent interface whether you’re using codeex or claude or cursor what whatever tool um or potentially through some other mechanism that that we’re explor flooring now as well.
  • 13:02 — » Yeah, happy to talk uh kind of after here, but the the short of it is that we’re relying right now from an implementation perspective on uh hooks that can intercept kind of a pre-tool execution um in near real time. assess is this actually potentially problematic and then before the agent kind of invokes the next thing provide that feedback to it. But h happy to talk after here. You in good shape? » Yeah. Cool. Hopefully you guys can all hear me. Um like Ezra said my name is Dan Arpino. Uh I am a software engineer
  • 13:35 — at Sneak. Uh I’m one of the developers on the ads platform. Um and so I started out specifically from that insure trusted output section. basically like how do we ensure that code is secure? Um and and as I said like we were doing a whole bunch of hooks and and integrating with the agents themselves and I was getting frustrated with all those integrations and so I decided to try to build a little bit of a pair programmer right here. And so this is a local electron app that I have running on my machine that’s watching everything
  • 14:05 — that’s going on on my machine. You can literally see it’s trying to fix some vulnerabilities right now. It’s watching the files. It’s running these scans in the background and it’s automatically trying to kick off agents to keep this secure. Um, and so this is idea is like how can we actually use the agents to help us. Um, and then I decided to take this a little bit further because like as Ezra said insured trusted output was just one of the three pillars of agentic development security. Um, we still want to know like what the agent is doing and what is the agent and what tools the
  • 14:36 — agents are using themselves. And so, yes, we can have like we have some of our tools today that Sneak offers on the EVO platform. And I I suggest that you all go to evo.sync.io and see this agent guard in action and see all the skills and that that your and MCPs that your organization is using. But what I really wanted to do is I wanted to give local visibility into what’s running on my machine. As a developer who cares about security, I want to see this. And there’s no really good way to see this. And so like here in this tool, I can see
  • 15:07 — all of my running LLMs right here. Um I can see all of my running AI components. I can see and this this is the MCP servers. These are the skills. These are the CLIs and and the models that that that are running right here. Um that Ezra talked about that with like these different risk scores. So you can actually see like all the different things that I have willingly or unwillingly installed and running on my machine. Um,
  • 15:37 — similar we talked about like what is the agent allowed to do? Um, and so like yes, my organization can set a policy for me, but I might want to set my own policy or more often I actually may want to set a policy depending on what project I am actually working on. Um, so I can actually set up based on my different workspace what I want to apply to each one of those. Um, for example, uh, I actually turned this off. Uh, I’m building out, uh, a bola scanner, broken
  • 16:07 — object layer authentication. Big issue that we have. We can, that can be a whole another presentation. I was doing some benchmarking and Snappy was automatically fixing my vulnerable tools for the benchmarking in the in the first place. So, uh, I I have to actually turn that off. Um, but yeah, the goal here is there that you can actually set your own guard rails. It can automatically go through and fix any vulnerabilities. So like for example here you actually see that it implemented some code right here that’s actually running. Um and what
  • 16:37 — happens is when it implements these codes it will actually start a scan. Well this is this it will start a scan. It will find the detected vulnerabilities. It will actually launch a new coding agent and try to fix those right away. Um, and yeah, and then yeah, so giving me visibility on what workspaces I have, giving me visibility on how many of my different agents are running, what my agents are doing, what they’re costing me. Um, getting a history of everything
  • 17:08 — it’s doing, all the vulnerabilities. I can actually see on these fixed ones what it actually tried to do, how it tried to fix it. being able to track all my different sessions, giving me an audit of everything that my LLMs and all my LLMs are doing on my machines, like what are all the commands it’s running, what are all the files it’s accessing. Um, there’s some really interesting implications here on how I actually want
  • 17:38 — to app uh optimize some my files and everything like that. You can see which ones are my heavy reads and writes. You can see which ones are my heavy reads that have almost no edits. like I might actually want skills that tell me to do different things about that. What are the commands it’s running? Basically, what web pages am I hitting? Monitoring all my different MCPS and tools. Um yeah, and then then yeah, so right now we’ve got this running our static analysis code testing. We have some open
  • 18:08 — source testing. We’ve got uh secrets testing. Uh we’ve got the Bola uh scanner which is like a set of work in progress allowing you to configure all of these things. Um and and this works because it’s well one of the reasons that it’s doing this is it’s it’s actually running a local host on your machine. And so I was able to actually run this one earlier. And if you look at this, I spun Claude up and I was like, “Hey Claude, read my ENV environment.” And Claude was like, “Hey, no, I can’t do that. I’m smart.”
  • 18:39 — And I was like, “All right, well, Claude, tell me what my secret key is right here.” And Claude was like, “Oh, I’ll try to read that.” And you can actually see that because we’ve actually set up enforcement here. Uh, Snappy actually blocked the access of of reading this file. Um, so yes, the agents are getting better. They are not perfect, which is why like having deterministic guard rails on your machine. Um, being able to set those guardrails on on your machine and having visibility into what your agent is doing. um and what it’s running I think
  • 19:10 — is pretty key. Uh one of the big things is is how do we trust agents? Um I want visibility, I want auditability. Um and those are really key to me. Um and so this is why we’ve started developing this. Um in theory in in the future, you could actually hook this up. You could you could actually download um you could download rule packs. You could download connect it to your sneak tenant in org. Um you can update your own rate sheets, whatever you want. Um, but yeah, this is a little bit of a future vision
  • 19:40 — of like what ads could look like. This is really saying like here’s my development environment. I could be running this on a cloud machine, telling me everything that’s happening on that cloud machine. Give me that visibility. Give me that audibility. Give me that traceability. Uh, really important aspects in learning how to how to how to trust the agents and making sure that they’re not going off the rail. » Cool. Um, and I think » I should ask the beginning this mic on here.
  • 20:10 — » That was awesome, Dan. Thanks. Uh should have asked the beginning of the folks who are here, are you guys who who’s on the security side of the house today as opposed to engineering? Awesome. Hands down. And who who’s an engineer uh in the room? Cool. So, I think we’re we’re like this is a good acknowledgement of like the different audiences that I think these solutions are really trying to address. I think if you asked security folks in the room, they’d be like restrict everything. just like please do not let anything bad happen. If you ask developers, you’d say any any false positive that causes kind
  • 20:42 — of more noise in my workflow is just kind of hell on earth. And so that’s the that’s the needle that we’re ultimately looking to thread here. Um and why we’re trying to come at this from kind of both sides. Um, and I think what Dan was really showing is how do we really really lean into the developer experience in this new agentic world um, in a way that is going to make uh, it’s still possible to achieve like all the productivity gains that I think everybody wants out of AI for software development while still being able to trust and kind of sleep at night uh, like the last presentation was talking about.
  • 21:15 — » Yeah. Uh we have talked about possibly throwing it up on our our sneak labs. Uh it’s still in development. Uh come talk to me. Come come come by the sneak booth afterwards. I’ll be there from uh till close this afternoon. » We’ll at least get names and if it’s if it’s not today, which is probably not today, then we can at least see like once it’s there. We we’d love we’d love to get feedback once we can get something out there like that.
  • 21:46 — » Can you repeat the question on the mic? Uh question is do I expect snappy to support things like pi? » Um it’s actually really well we will this is a tool that I’ve developed for my own personal use and I think it has a lot of value. It will go where the market takes it and and that was kind of the idea like it doesn’t all have to be up in the cloud. I want local visibility. Um wherever the market takes it is where I expect it to go.
  • 22:16 — Yeah, » sounds like you might have a use case. I would love to love to connect after. Yeah. » Yeah. So, the question started with a lot of praise for what what we’ve done and then uh asked about the false positive rate um here. Um and so far the
  • 22:48 — the feedback overall has been has been good. I like it’s it’s certainly not zero. Like I don’t think anybody who’s playing in the space is claiming that it’s zero. Um I anecdotally like when I am using it because I have it installed on my machine like it does not I do not find it cumbersome and bothersome I think I’ve probably had one instance that I can remember like in the last month where I was like oh that that really was not a particular problem but we’re pretty aggressively right now working with design partners that includes sometimes hundreds of developers within companies who might be doing a variety of different things to
  • 23:19 — try to refine this. So I think it’s going to continue to get better and better and hopefully like asmmptoically approach approach zero. But I’d be shocked if we ever lived in a world where it was like absolute zero false positive rate for for for any of the companies out there. And if anybody here is working on solutions that are similar and you’ve got ideas on how you’re solving that would would love to learn because I think like there’s plenty for us to learn here too. Thank you.
  • 23:53 — I think the the question was does this only work on on does it only work on on cloud on like code stored in the cloud or can it work on your local machine? Is that the question? So » yeah, so different type types of of products that we have right there and I think Manino mentioned in the first one
  • 24:24 — that like burning down a backlog and a remediation agent um currently not in the the tool that we showed today and Agentic Development Security is more that that forward facing stop the bleed going forward. Um, but some of the things that we’re releasing in Agentic Development Security is a set of of skills, commands, hooks, and stuff like that. And so like we have a a sneak fix skill that you can pass in a known vulnerability to, and it will actually use some of that sneak logic to actually like try to understand the breakability,
  • 24:54 — understand what changed, know what the good recommended fixes are, and guide the agent to a more effective uh fix. So » what I didn’t have time to demo in Manoj’s keynote earlier was basically how we leverage that breakability as part of an input into is this something that I can fix uh quickly. Um and generally it’s really easy to generate fixes getting the approval of the code changes and merging them in like that’s still the human loop kind of time time expensive type of a thing. Um and so that is kind of that that’s a whole other area that we’re working on under
  • 25:24 — kind of the remediation umbrella. Um, really cool stuff. Just didn’t fit into this particular talk. » Thank you. » Yes. Sorry, I can’t see because of the lights. » Yeah, we are. Yeah. I was wondering
  • 25:54 — data. » That is a fascinating question. The question was how how would this potentially work? um any solution around guarding agent behavior when you’re not talking about textbased inter exchanges but more sensor type data or other other things. Uh I don’t I don’t know. Um » okay. I mean I think it’s probably you know it’s still it’s it’s a form of language that’s being communicated uh right rather because just because it’s not natural language doesn’t mean it’s
  • 26:24 — not it’s not language. I think there might even be some advantages around kind of like a known structured schema for some of that data. I don’t know if schema is necessarily the right word, but like schema adjacent. Uh, that’s cool. Nobody’s ever brought something up like that. I would love I’d love to talk. I know I’m making a lot of meeting plans right after this, but like I I’ll be hanging out right outside. » And and a lot of the guardrails are still the same. You still want you still may want to control access like what one sensor can affect or what one sensor can affect. Um, like so you’re just talking about the input of data, but there’s a
  • 26:54 — whole bunch of outputs data and what the model can do and what else it can access. Uh so a lot of those guardrails um and the format of those guardrails stay the same even if like that input language changes to sensor reading as opposed to natural language. » Cool. I know we’re holding you guys from lunch. So thank you so much for the time. We really appreciate it.
  • 27:29 — » [music]