Code Trust and Verification for the AI Era
Speaker Background and the AI Tooling Explosion
The speaker introduces himself with a multicultural background spanning Ukraine, China, and Korea, then frames the talk around the dramatic acceleration of AI tooling in the software industry. He describes the challenge of keeping pace with daily announcements, while arguing that despite all the new tooling, the fundamentals of software development—focused on developers—remain unchanged.
Three Types of Developers in the Age of AI
The speaker categorises developers into three archetypes: the sceptical expert who uses AI only for information retrieval, the augmented engineer who uses AI to scaffold code but reviews every line, and the 'vibe coder' who delegates entirely to AI agents. He draws on his own experience at GitHub Copilot to illustrate the middle archetype, and notes that all three groups ultimately rely on the same underlying tooling infrastructure.
AI-Generated Code and the Path Traversal Vulnerability Demo
The speaker walks through a realistic AI coding scenario—implementing a PDF upload feature—and shows how at least half of LLMs produce code with a path traversal vulnerability, where an unsanitised filename can be exploited to access unauthorised directories. He explains that while AI can fix the issue if told about it explicitly, the root problem is that LLMs are trained on publicly available GitHub code of varying quality, which Sonar quantifies through its publicly available LLM leaderboard.
What 'Good Code' Means Depends on Context and Time
The speaker argues that code quality standards are not universal: an early-stage startup optimising for investor demos has very different priorities than a company preparing for an IPO under auditor scrutiny. He also highlights how standards shift over time, citing OWASP Top 10 rankings where supply chain attacks moved from sixth to third place, and explains that Sonar maintains a research centre to track these evolving industry standards.
Sonar MCP Server: Connecting AI Agents to Your Quality Rules
The speaker introduces Sonar's MCP server, which integrates with an existing SonarQube instance so that an AI coding assistant can query it in natural language. When the assistant detects a Sonar-related request, it routes it via MCP to scan code, retrieve issues, and return results in plain English. He also explains that pairing the MCP server with the Sonar IDE extension allows some scans to run locally, improving speed, and describes the alternative SonarQube CLI for developers who prefer command-line control.
Context Segmentation and the Agentic Analysis Feedback Loop
The speaker describes two additional capabilities built on top of the MCP connector. Context segmentation injects project architecture, quality profiles, and policy definitions from SonarQube directly into the LLM prompt before code generation begins, producing significantly better output. Agentic analysis then scans the generated code for vulnerabilities and, if issues are found, sends it back to the model for revision—a loop the speaker has seen run three iterations before returning clean code.
Remediation Agent: Automated Pull Requests and Scheduled Backlog Reduction
The speaker introduces the remediation agent, which automatically generates pull requests to fix issues found in code reviews and long-standing backlogs. He presents two modes: manual selection of specific issues for the agent to fix, and a scheduled approach—likened to a daily gym routine—where the agent picks a set number of issues at a configured time each day and raises PRs for them. A live experiment on a popular open-source library demonstrated that continuous automated remediation eliminated nearly half the backlog within two days.
Hunter Agent: AI-Powered Detection of Authorization Vulnerabilities
The speaker introduces the Hunter Agent, designed to detect business-logic vulnerabilities such as Insecure Direct Object Reference (IDOR), where a logged-in user can access another user's records simply by incrementing an ID in the URL. He explains why AI is particularly well-suited to finding these authorisation flaws, and notes that when the agent was run against a popular open-source project it surfaced more than 200 issues, which were reported to the maintainers. Results surface in the standard SonarQube UI alongside all other issues.
I didn't expect that, so I put my pretty picture on the on the screen just to give you an intro into myself. I'm born in Ukraine, studied in China, worked in Korea. My family is always we speak four languages at home. We need at least one translation at dinner discussion. On weekend of flight, gliders send count money and watch all the podcast, and trust me, no, I'm not a spy because even though a lot of people suggest that's the case.
So what I wanted to talk by the way, has anybody used Sonar here? Has anybody heard of Sonar? SonarQube before? Okay. At least some I'm not sure if we still use it. That's not a good that's not a good sign. Yeah. Okay. So what happened in past six months is probably there is more turbulence in the industries than in previous ten years.
I I don't know how you about you, but I feel that every day I you think a year ago, I learned what I started Sonar. I learned what SonarQube is. Every week, maybe two weeks, there is maybe some new news. This time, I struggle to keep up. I wake up every morning just to check the news and make sure that I I'm up to date so our salespeople don't kill me at 9AM asking all these questions about this new thing announced every day. So that all the ACI tooling came up, but the fundamentals didn't change. It's all about developers, really.
That's all about that's the people that we are talking about when we build these tools, including ours. And from what we I see in the industry, all the developers who start using AI tools, they sort of fall into these three types, three buckets. One is your hardcore developer. If you watch Matrix, that new who watches the Matrix and sees clearly exactly what it is, They write co code in Notepad.
Those are the people in the first bucket. They don't trust AI. They write the best code, but they do use AI. They use AI as a search tool, as a tool to find information, to understand information. So they use AI as a replacement for your knowledge base, confluence, whatever there is. Right?
Then there is a second type who are they're somewhere augmented engineer. They want to build some functionality. They use AI to build the skeleton, but they go through every line of code and to make make they review it and make sure that whatever AI created is actually valid, makes sense, and according to everything they wanted to do.
So they use AI just to create something which they thoroughly review. And when I started working with by the way, before so, I was with GitHub, selling GitHub Copilot, and that's where I started using the tooling, and that was me at that time. And then there is a third type. And this one, who heard of white coding before?
Those are the guys. They pick up Jira tickets. They send it to agent and just sit back, relax. When it's done, they push it to production. Right? Well, maybe hopefully not. Hopefully not. Hopefully, there is a little bit more than that, but social media portrays them like that. But those people are heavily working with AI and let agents generate all the code. But the tooling under the hood, it's all the same for all the type of these people.
And that's the type of tooling that we've, as Sonar, built originally. That's what we are known for. Well, we start within IDE. We look at problems which you can we can find with an IDE. The good thing is with within IDE is blazingly fast. It gives you feedback immediately. It doesn't find everything because it gives you it's a trade between speed and depth. But you will find 85% of problems within IDE and we'll be able to fix it immediately.
Then you push it to your CI, we will find more hard, more complex issues there. And from there, we will report in Sonocube and whatever you do after that. But so what's current workflow work look like if you want to build something with AI?
Your team comes and say, we need to implement a upload feature of a PDF file. You throw it into an agent. Agent writes a code. By the way, this code will be this or similar code will be generated by half, at least half of LLMs. Anybody developer here? Can you see the problem?
So it's a common, pass reversal, vulnerability where you accept a past name, plus file name of a file, and immediately append it to something else. I could construct a file name in some way which will let me go into some folder above your folder and access information which I was not supposed to access.
You want to sanitize it before you do it. But AI generated that code. So AI does produce insecure code. Funny part, if you go back and tell, actually, there is a past reversal, can you look into that? AI will actually come back and say, oh, yeah. Completely agree. There is a pasta girl, so let me go and fix it. So AI can understand if you tell it that what exactly you want to do, how what good looks like, AI can do the job. But quite often, it doesn't understand what good looks like. So here's the usual flow of how the request goes.
You go to an agent. You say, I want blah. The agent will send it to large language model. The training data comes from GitHub and whatever. By the way, there is a little bit of a problem there. All language models are trained on publicly available code on GitHub. And as we know, they all publicly available code to all repositories on GitHub are very secure and written in of high quality by experts. Right? Yeah. Right.
So you get this not very well written code as a source for your training. As a result, you will not get very well written suggestion as output all the time. By the way, sidestep, with Assonar, we actually analyze majority of models for what sort of codes they can produce and how much insecure or bad codes they can produce.
If you Google Sonar LLM leaderboard, it's publicly available. You will be able to see how we benchmark them. And you will find numbers, very interesting numbers. So coming back to this one, if we somehow provided information to the agent what good looks like, probably it could produce a better code. But what good looks like may mean different things.
An example I usually give is if you are a hottest startup in town, you are not chasing the best code. You're chasing funding, which means you're minimum viable product. You want to ship something to show it to investors so you can get funding. Bad code fixing bad code will come later.
So your priorities are different compared if you are two years later or five years later preparing for IPO. Oh, you want security to be top notch because your every auditor will be going through every line of code in your application, making sure that everything is top notch. Right? So you have different priorities.
But it's also not just different companies. It's also time. Who's looking at OWASP reports? Who familiar with OWASP top 10? Prior to November, supply attack, number six. In November, it's number three. SQL injection was number one, I believe, and before now it went down. Right? I don't even remember it's top three now because times change. So it's not just type of companies, it's also time.
So we at Sono, we have a research center with the research people who constantly follow these and update our products according to what we see in the industry. So coming back here, if only we had something that would tell the agent, this is what good looks like in my company.
And that's what we built recently. Our MCP server integrates with existing Sorenkube instance, which your AI coding assistant can talk to. So you're asking AI coding assistant something in English, can talk to your coding assistant in English in conversational style.
It will detect if there is something that is related to Sonar. It will through MCP, will pass this request to Sonar, and Sonar will do all the job and come back. So the way it usually works is you can say, look, can you you highlight a piece of code and say, can you scan it with using Sonar engine?
Agent will understand that it's about MCP and Sonar. It will send it, run a tool available within our MCP. I think the tool is search Sonar issues and project. It will find all issues, return it, and in English, the agent will present it to you. But we can take it a step farther.
Those who use Sono have used IDE extension with our IDE extension. If you use that one, integration with MCP is even better because some requests we don't even send to the server. If you have an IDE extension and use MCP, we will use the capability of that extension to scan the code, which means it will be faster straight away rather than us sending it to somewhere remotely.
But then we come back, we have developers coming back and say, well, MCP is using too many tokens, and I don't like it. They're like, okay. For those hardcore developers, fine. We built Sonocube CLI, which is much more configurable, much more flexible, and it's command prompt.
Developers love it. So what else could we do with this tooling? Like, MCP is just a connector. Right? So what else can we do? We've built a tool called context segmentation. As a company who scans your code and scan your project, we have a lot information available about your code.
And if you worked with LLMs, you know that the context you provide to in your request is is a king. It's pretty much defines whether you will burn five tokens or 5,000. So what we are able to do? We actually able to inter inject ourselves in at the moment where you start talking to agent before they start generating code.
And we can tell agent, go to our Sonar instance, collect all the information about this project, get the architecture that you designed within the project, get all the quality profiles, all the policies about what sort of what good looks like for this project that you defined within our product, within that project, come back and feed it into LLM as part of the original request.
So as a result, you send something to LLM with much more data, it will come back with much better results. But remember I said it's still not trained, it's still trained on a publicly available code, it still can come back insecure. So what can we do about that? That's fine. We have agentic analysis where you can same story.
Before even code is presented to you, you send it to our sonar engine. We will scan it for any possible vulnerabilities or code quality issues. And if we find something, we'll send it back to your cloud and say, cloud, go back and fix it. And it will come back and sometimes there are still problem, we will send it back.
I had cases when it happened three times before it actually came back clean. So that's what we can do. So now what you have is this beautiful diagram where we can provide feedback to agents saying this is what good looks like and give me the good code. So usually the request looks like something like you ask agents, it will go, ingest, go get architecture, go get extra information, comes back, send it to code, Agent generate will come back.
We will look at find problems, send it back if needed, and as a result, you will get all green. But that's all within your when you work with agents. What we've done is we actually done it even more on at a later stage. What we've built is two agent. One is called remediation agent. That's the one which will look at what issues we find later in the pull request and fix the problem there.
So for example, here's a pull request in your repository where agent would kick in, find suggested solution produce suggested solution for that. By the way, behind the scene, we use the same agentic analysis. We still scan that code, making sure that there is less possibility of bad code coming back. And all you have to do is it will create a new pull request, which you will have to just accept if you like it or modify if needed.
But we make it a bit even better. Rather than not only we will kick it off at pull request, you can now go back into the long backlogs that you have. Usually what I find, customers start implementing our toolings. They will get 10,000 issues in backlog. Nobody wants to go there and touch that. But it needs to be fixed.
So what we can do now is we can actually go into the list of all the issues. We can pick particular issues, assign it to an agent. Agent will create a pull request. And as a result, you will get that pull request fix. But we've done it even better. Now the previous feature would require you to go and manually select issues and assign them.
And just like going to gym, it there is no point if you're going today, do a thousand push ups, and then be sick for five days and do a 100 push up five days later and come back rest, go on holiday for five days and do another 10 later. The goal is to do 10 every day. 10 every day is better than all this stuff.
Right? And that's what we're fixing with this feature, where we take the same remediation agent, and we let you schedule how many issues or look at every day, every week, or whatever. You set up the schedule. And what remediation agent do is every day at 1PM or whatever the time you set up, it will pick three or whatever you choose issues from the list and go create a pull request for all those three or five issues that you selected.
So it's one of those work out every day to knock out knock down your backlog. What we've done is we took that tool. We grabbed one of popular libraries on the Internet, one of the popular popular open source libraries, and we unleashed that nonstop.
And we put automated auto merge in the I don't don't do it in production. But for just for sake of testing, we put auto merge in GitHub. So when it creates a pull request, it automatically scans it. If there are no problems, it will auto merge it. So within four hours, we removed 5% of backlog from that project.
We didn't stop there. We waited for two days. So it within two days, half almost half of backlog was gone. So obviously, this is a not realistic example. You probably don't want to do it in production, but it can show you the power of what you can do, how easier it is now to look after your backlog.
So that's backlog. The last engine which I wanted to talk to you about is called Hunter Agent. Who here heard of IDOR or insecure direct object reference? No? So this is type of a problem where let's say I have a booking system with my GP, and I log in with my username and password.
I go to schedule. I book a session. So I can see my previous sessions. I can see previous notes from the doctor. So I it's my portal. I can go there. But after logging in, what I can do is I can go to the top there and change from 4 to 4520 to 4521 and see somebody else's details.
So my authentication worked. It accepted my username and password. It's all good. But the authorization wasn't there configured correctly. So I was not authorized to access other records, but it let me. So what we are building now of built is this thing called Hunter Agents. It's all AI based.
In fact, AI is actually, in a way, better to find this type of problems, business logic related problems. AI is actually better at that. So what we've built is this AI remediation agent where we will be able to send it on your application. It will go find all these problems and present it in the same UI within SonarQube where you look for all the other issues as well. So we sent it, we compared it with other ones.
So there are some findings. And also we picked very popular open source project out there and ran it and found more than 200 problems in it. We, of course, reported it to the maintainers. So finally, there are a lot of products that we shipped in past two months. In past two months, we shipped probably more in than in the previous year.
Some of them are still in beta. Some of them are still under the under the table. Some of them already shipped. If you are interested
Technologies & Tools
- Confluence
- Context segmentation
- GitHub Copilot
- Hunter Agent
- Jira
- MCP
- Remediation Agent
- SonarQube
- SonarQube CLI
Standards & Specs
- OWASP Top 10
Concepts & Methods
- Agentic analysis
- IDOR
- Path traversal
- SQL injection
- Supply chain attack
- Vibe coding
Organisations & Products
- GitHub
- Sonar LLM Leaderboard
The rapid adoption of AI-generated code has created a massive verification bottleneck. While AI tools exponentially increase development speed, they often introduce subtle vulnerabilities and architectural risks. In this session, we explore how to bridge this AI trust gap. Discover how the SonarQube platform—leveraging its own AI-powered code remediation, SonarQube Server, Cloud, and the new MCP Server—acts as an independent verification layer. Learn to operationalize AI Code Assurance, ensuring all code remains secure, reliable, and production-ready.














