<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Etienne Lunetta</title>
    <description>The latest articles on DEV Community by Etienne Lunetta (@etiennel).</description>
    <link>https://dev.to/etiennel</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2976190%2Fbf601d8e-d796-4d50-84e5-c58c7da0159b.jpeg</url>
      <title>DEV Community: Etienne Lunetta</title>
      <link>https://dev.to/etiennel</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/etiennel"/>
    <language>en</language>
    <item>
      <title>Is AI SAST a meme?</title>
      <dc:creator>Etienne Lunetta</dc:creator>
      <pubDate>Tue, 08 Apr 2025 00:00:00 +0000</pubDate>
      <link>https://dev.to/etiennel/is-ai-sast-a-meme-kck</link>
      <guid>https://dev.to/etiennel/is-ai-sast-a-meme-kck</guid>
      <description>&lt;p&gt;The security industry loves its buzzwords, and "AI-powered SAST" might seem like the latest marketing gimmick. But behind this terminology lies a fundamental shift in how we approach code security. At ZeroPath, we've been tackling a problem that has plagued static analysis for decades: false positives that waste developer time and erode trust in security tools. Like any technology, our approach has both strengths and limitations, which we'll explore throughout this post. No tool is perfect, and being transparent about where AI SAST excels and where it struggles is crucial for teams to make informed decisions.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is AI-powered SAST, really?
&lt;/h2&gt;

&lt;p&gt;Traditional Static Application Security Testing (SAST) tools scan source code for patterns that match known vulnerability signatures. They're essentially sophisticated pattern matchers—effective for finding textbook issues but notoriously bad at understanding context.&lt;/p&gt;

&lt;p&gt;AI-powered SAST fundamentally changes this approach. Instead of just pattern matching, it builds an Abstract Syntax Tree (AST) of your code and analyzes it with language models. It tracks data flows through your application, maps component interactions, and examines security control implementations. This structural analysis helps reason about security in ways that traditional SAST cannot.&lt;/p&gt;

&lt;p&gt;For monorepos or complex repositories, the system identifies distinct applications and their relationships, gathering information about each app's purpose, tech stack, authentication mechanisms, and architecture. This application-level awareness provides context for security findings.&lt;/p&gt;

&lt;h2&gt;
  
  
  The False Positive Problem
&lt;/h2&gt;

&lt;p&gt;Traditional SAST tools operate primarily through pattern matching and predefined rules. While effective at finding textbook vulnerabilities, they struggle with contextual understanding, leading to an overwhelming number of false positives. Let's examine the types of false alarms that have made developers rightfully skeptical of SAST results.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common False Positives ZeroPath Eliminates
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Sanitized Input Misidentification
&lt;/h3&gt;

&lt;p&gt;Traditional SAST tools often flag inputs as dangerous even when they've been properly sanitized elsewhere in the codebase. ZeroPath's contextual understanding tracks data flow comprehensively, recognizing when potentially dangerous inputs have been properly validated or sanitized before use.&lt;/p&gt;

&lt;p&gt;For example, when analyzing a Python web application, ZeroPath won't flag sanitized database queries as SQL injection risks if it can verify that proper ORM methods or parameterized queries are used, even if the sanitization happens several function calls away from the final execution.&lt;/p&gt;

&lt;h3&gt;
  
  
  Framework-Aware Analysis
&lt;/h3&gt;

&lt;p&gt;Many frameworks provide built-in security protections that traditional SAST tools miss. ZeroPath understands modern frameworks' security models and won't flood you with alerts for "vulnerabilities" that are actually protected by framework safeguards.&lt;/p&gt;

&lt;p&gt;When scanning a React application using properly implemented JSX, ZeroPath knows that XSS vulnerabilities are mitigated by React's automatic output encoding, while traditional tools might flag every dynamic content insertion as a potential XSS vector.&lt;/p&gt;

&lt;h3&gt;
  
  
  Test Code Differentiation
&lt;/h3&gt;

&lt;p&gt;Many SAST tools generate alerts for intentionally vulnerable code in test files. ZeroPath intelligently separates test code from production code, understanding that mock vulnerabilities in tests don't represent actual security risks.&lt;/p&gt;

&lt;h3&gt;
  
  
  Dead Code Elimination
&lt;/h3&gt;

&lt;p&gt;Traditional SAST tools frequently flag vulnerabilities in code that isn't actually accessible in the running application. ZeroPath maps the actual entry points and execution paths of your application, identifying which code can actually be reached from external sources. This prevents alerts on technically vulnerable but practically unexploitable code that's never executed in production environments.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Real Challenges
&lt;/h2&gt;

&lt;p&gt;Every security tool has strengths and limitations. Here are some challenges we're actively working to address:&lt;/p&gt;

&lt;h3&gt;
  
  
  Business Logic False Positives
&lt;/h3&gt;

&lt;p&gt;Despite our contextual analysis, detecting business logic vulnerabilities remains challenging. ZeroPath can still produce false positives when analyzing complex authorization schemes or multi-step business processes, particularly when business rules are implemented across multiple services or repositories.&lt;/p&gt;

&lt;p&gt;For example, a potential Insecure Direct Object Reference (IDOR) might be flagged even though authorization is properly handled through a separate microservice that ZeroPath doesn't have visibility into during single-repository scans.&lt;/p&gt;

&lt;h3&gt;
  
  
  Scan Performance on Large Codebases
&lt;/h3&gt;

&lt;p&gt;While pull request scans are optimized for speed, initial full-repository scans on large codebases can be time-consuming. The depth of analysis required for contextual understanding comes with computational cost. Repositories exceeding several hundred thousand lines of code might experience longer initial scan times compared to traditional SAST tools.&lt;/p&gt;

&lt;h3&gt;
  
  
  Middleware Detection Challenges
&lt;/h3&gt;

&lt;p&gt;One of our more frustrating limitations involves middleware detection. Depending on framework configurations, ZeroPath sometimes struggles to correctly identify security controls implemented in middleware layers. This can lead to false positives where the tool flags issues that are actually being mitigated by middleware components.&lt;/p&gt;

&lt;p&gt;For example, in Express.js applications with custom authentication middleware, ZeroPath might flag endpoints as lacking proper authentication if the middleware is applied through non-standard patterns or dynamic route configuration. Fortunately, our context feature allows you to provide additional information about your middleware implementation to prevent these false positives, but this requires manual input.&lt;/p&gt;

&lt;h3&gt;
  
  
  Third-Party Dependency Limitations
&lt;/h3&gt;

&lt;p&gt;ZeroPath generates an Abstract Syntax Tree (AST) for your application code, but a significant limitation is our handling of third-party dependencies. We don't analyze the internal code of dependencies, which can cause blind spots in security analysis.&lt;/p&gt;

&lt;p&gt;This becomes particularly problematic with frameworks that use callbacks, hooks, or dynamic function invocation patterns. For example, if your application uses a framework that implements security controls through dynamically registered handlers or middleware, ZeroPath might not correctly trace these execution paths, potentially leading to false positives or missed vulnerabilities.&lt;/p&gt;

&lt;p&gt;While our dependency scanning identifies known vulnerable packages, the deeper interaction between your code and third-party libraries may not be fully captured in our analysis model.&lt;/p&gt;

&lt;h3&gt;
  
  
  Multi-Repository Architecture Challenges
&lt;/h3&gt;

&lt;p&gt;Complex applications spanning multiple repositories can present challenges for comprehensive security analysis. ZeroPath works best when it can trace execution flows fully, which can be limited when analyzing single repositories in isolation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Addressing Business Logic and Context
&lt;/h2&gt;

&lt;p&gt;When the system flags potential issues that turn out to be false positives in your specific environment, you can provide additional context through natural language input. This helps refine the analysis for your particular codebase.&lt;/p&gt;

&lt;p&gt;For example, if you've implemented custom authorization logic that isn't automatically recognized, explaining this implementation helps the system incorporate this context in subsequent scans.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Developer: Is this IDOR vulnerability exploitable if we've implemented role-based access control at the API gateway level?

ZeroPath: Based on your code, I can see that the API gateway implements role checks, but the vulnerability exists because the user ID parameter in the /api/documents/:id endpoint is only validated for format, not ownership. An attacker with a valid session could still access another user's documents by changing the ID parameter, bypassing the role checks.

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  How We Approach Findings
&lt;/h2&gt;

&lt;p&gt;When potential vulnerabilities are detected, the system allows for interactive analysis. Developers can query the findings with specific questions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;"Show me the execution path for this vulnerability"&lt;/li&gt;
&lt;li&gt;"Generate a curl command that would trigger this issue"&lt;/li&gt;
&lt;li&gt;"How would you modify this patch to use our validation library?"&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This direct interaction with findings helps reduce time spent on investigation and remediation planning.&lt;/p&gt;

&lt;h2&gt;
  
  
  Technical Implementation Details
&lt;/h2&gt;

&lt;p&gt;At a technical level, we've focused on analyzing codebases as complete systems rather than isolated snippets. This approach has practical implications for security analysis:&lt;/p&gt;

&lt;p&gt;First, we build a comprehensive source inventory that catalogs all entry points in your application - HTTP endpoints, WebSockets, and similar interfaces. This mapping helps identify which parts of the codebase are actually exposed to potential attackers.&lt;/p&gt;

&lt;p&gt;We've also implemented natural language processing for security policy definition. You can define rules in plain English instead of specialized syntax, which simplifies the creation and maintenance of security standards.&lt;/p&gt;

&lt;p&gt;For vulnerability prioritization, we use standard CVSS scoring to ensure consistent risk assessment. This helps development teams focus on fixing the most critical issues first based on objective criteria.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Bottom Line
&lt;/h2&gt;

&lt;p&gt;Is AI SAST a meme? In some ways, the term has become overused in marketing materials across the industry. However, there are genuine technical advancements in how static analysis can be performed.&lt;/p&gt;

&lt;p&gt;Tools like ZeroPath can reduce false positives and identify complex vulnerabilities that traditional pattern-matching would miss. The ability to understand code in context helps filter out many of the false alarms that have made previous generations of SAST tools frustrating to use.&lt;/p&gt;

&lt;p&gt;That said, no tool solves all problems. There are still challenges with complex business logic, third-party dependencies, and multi-repository architectures. Like any security technology, these tools work best as part of a broader strategy that includes different testing methodologies and human expertise.&lt;/p&gt;

&lt;p&gt;The practical value isn't in buzzwords but in concrete capabilities: interactive finding analysis, contextual code understanding, and meaningful prioritization of legitimate issues. These improvements help security and development teams work more efficiently, even if they don't represent the revolutionary change that some marketing might suggest.&lt;/p&gt;

</description>
      <category>sast</category>
      <category>appsec</category>
      <category>security</category>
    </item>
    <item>
      <title>Introducing ZeroPath’s Open-Source MCP Server</title>
      <dc:creator>Etienne Lunetta</dc:creator>
      <pubDate>Thu, 27 Mar 2025 00:00:00 +0000</pubDate>
      <link>https://dev.to/etiennel/introducing-zeropaths-open-source-mcp-server-595l</link>
      <guid>https://dev.to/etiennel/introducing-zeropaths-open-source-mcp-server-595l</guid>
      <description>&lt;p&gt;&lt;strong&gt;In a moment where AI-powered development environments are rapidly evolving, we're excited to introduce the ZeroPath MCP Server&lt;/strong&gt; — a lightweight integration that connects ZeroPath's LLM-powered product security platform with Model Context Protocol (MCP) clients like Claude Desktop and Cursor.&lt;/p&gt;

&lt;p&gt;This release brings static analysis, secret scanning, and infrastructure-as-code (IaC) security directly into your conversational or IDE-native AI workflows. Want to ask Claude which vulnerabilities are open in your backend repo? Or query dependency issues from inside Cursor without leaving your editor? Now you can.&lt;/p&gt;




&lt;h3&gt;
  
  
  What We Built
&lt;/h3&gt;

&lt;p&gt;We created an open-source MCP server that connects to the ZeroPath API and exposes tools for interacting with your organization's security posture:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;List organizations connected to your ZeroPath account&lt;/li&gt;
&lt;li&gt;Query vulnerability issues from SAST scans&lt;/li&gt;
&lt;li&gt;Pull down patches and proposed fixes&lt;/li&gt;
&lt;li&gt;Search for exposed secrets or insecure configurations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This server is compatible with any standard MCP client—including Claude, Cursor, and WindSurf.&lt;/p&gt;

&lt;p&gt;GitHub repo: &lt;a href="https://github.com/ZeroPathAI/zeropath-mcp-server" rel="noopener noreferrer"&gt;https://github.com/ZeroPathAI/zeropath-mcp-server&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Why This Matters
&lt;/h3&gt;

&lt;p&gt;AppSec teams have been automating their CI/CD pipelines for years. But with the rise of AI-native tools like Claude and Cursor, we're seeing an opportunity to bring security insights into the places developers now spend time thinking and building.&lt;/p&gt;

&lt;p&gt;Instead of switching tabs or pasting scan results into Jira manually, you can now:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ask your AI assistant to summarize security issues&lt;/li&gt;
&lt;li&gt;Pull in patch diffs for a PR&lt;/li&gt;
&lt;li&gt;Get context about infrastructure misconfigurations, secrets, and logic flaws&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Security tooling should feel like part of your natural development flow. With MCP, it does.&lt;/p&gt;




&lt;h3&gt;
  
  
  What is MCP?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.anthropic.com/news/model-context-protocol" rel="noopener noreferrer"&gt;Model Context Protocol (MCP)&lt;/a&gt; is an open specification for connecting AI tools to external resources and services. It enables local tools (called MCP servers) to expose resources and actions to AI clients over stdin/stdout or other transports.&lt;/p&gt;

&lt;p&gt;In practical terms, MCP makes it possible to say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Hey Claude, ask ZeroPath to find all XSS vulnerabilities in &lt;code&gt;app/main.py&lt;/code&gt;."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;...and have it work.&lt;/p&gt;

&lt;p&gt;MCP is rapidly becoming the standard way for developer tools, LLMs, and agents to communicate securely and predictably. It enables local tools (called MCP servers) to expose resources and actions to AI clients over stdin/stdout or other transports.&lt;/p&gt;




&lt;h3&gt;
  
  
  Why MCP?
&lt;/h3&gt;

&lt;p&gt;MCP embraces the same spirit of open standards that underpins much of modern infrastructure. It avoids vendor lock-in and allows developers to bring their favorite tools (like ZeroPath) into their own workflows—be it in an IDE, chat window, or agent loop.&lt;/p&gt;

&lt;p&gt;For AppSec and platform engineers, it opens up the opportunity to query security data contextually and on-demand, without leaving your coding environment.&lt;/p&gt;




&lt;h3&gt;
  
  
  What Can You Do With the ZeroPath MCP Server?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Query SAST issues by repo, path, or type using &lt;code&gt;search_vulnerabilities&lt;/code&gt;, one of the included tools. You can also retrieve issue details with &lt;code&gt;get_issue&lt;/code&gt; or approve patches (read-only) via &lt;code&gt;approve_patch&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;View dependency scan results and exploitability reports&lt;/li&gt;
&lt;li&gt;Search for IaC misconfigurations&lt;/li&gt;
&lt;li&gt;Check for hardcoded secrets across repos&lt;/li&gt;
&lt;li&gt;Get suggested patches and remediations (read-only)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All through natural language, within your IDE or AI assistant.&lt;/p&gt;




&lt;h3&gt;
  
  
  Why Read-Only
&lt;/h3&gt;

&lt;p&gt;For now, the server is read-only by design. While MCP does allow write actions (like patching code or triggering scans), we've focused this initial implementation on safe exploration and data retrieval.&lt;/p&gt;

&lt;p&gt;This minimizes risk while making the server useful out-of-the-box. You can still explore your scan data, pull in insights, and generate patch recommendations without risk of altering your codebase accidentally.&lt;/p&gt;

&lt;p&gt;As the ecosystem matures, we plan to support safe, permissioned write actions.&lt;/p&gt;




&lt;h3&gt;
  
  
  Getting Started
&lt;/h3&gt;

&lt;p&gt;To get started, you'll need to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Generate an API key from your ZeroPath organization settings at &lt;a href="https://zeropath.com/app/settings/api" rel="noopener noreferrer"&gt;https://zeropath.com/app/settings/api&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Configure your environment variables with the API key:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export ZEROPATH_TOKEN_ID=your_token_id
export ZEROPATH_TOKEN_SECRET=your_token_secret

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Retrieve your organization ID (you can find this by running the following command):
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl -X POST https://zeropath.com/api/v1/orgs/list \
    -H "X-ZeroPath-API-Token-Id: $ZEROPATH_TOKEN_ID" \
    -H "X-ZeroPath-API-Token-Secret: $ZEROPATH_TOKEN_SECRET" \
    -H "Content-Type: application/json" \
    -d '{}'

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once you have these credentials, clone the repository and set up the environment:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Clone the repository&lt;/li&gt;
&lt;li&gt;Install dependencies using &lt;code&gt;uv&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Next, clone the repo and sync dependencies using &lt;code&gt;uv&lt;/code&gt; and creating the environment variables with the API information and org id:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone https://github.com/ZeroPathAI/zeropath-mcp-server.git
cd zeropath-mcp-server
uv sync
export ZEROPATH_ORG_ID=your_org_id

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once running, you can connect the server to Claude Desktop, Cursor, or WindSurf via the MCP configuration (we include setup instructions in the repo). (we include setup instructions in the repo).&lt;/p&gt;

&lt;p&gt;Add this entry to your MCP config (Claude Desktop, Windsurf, Cursor, etc.):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "mcpServers": {
    "zeropath-mcp-server": {
      "command": "uv",
      "args": [
        "run",
        "--project",
        "&amp;lt;absolute cloned directory path&amp;gt;/zeropath-mcp-server",
        "&amp;lt;absolute cloned directory path&amp;gt;/zeropath-mcp-server/main.py"
      ]
    }
  }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace &lt;code&gt;&amp;lt;absolute cloned directory path&amp;gt;&lt;/code&gt; with the absolute path to the repo.&lt;/p&gt;




&lt;h3&gt;
  
  
  Example Prompts to Try
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;"List all organizations connected to my ZeroPath account"&lt;/li&gt;
&lt;li&gt;"What are the open SAST issues in our &lt;code&gt;payments-service&lt;/code&gt; repo?"&lt;/li&gt;
&lt;li&gt;"Show me any secrets found in our IaC files Get the details for issue &lt;code&gt;abc123&lt;/code&gt;Approve the patch for issue &lt;code&gt;xyz789&lt;/code&gt;"&lt;/li&gt;
&lt;li&gt;"Fetch proposed patches for the latest XSS issue in &lt;code&gt;web/&lt;/code&gt;"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These work across any tool that supports MCP — whether you're chatting with Claude or using an IDE like Cursor.&lt;/p&gt;




&lt;h3&gt;
  
  
  Why Conversational Interfaces for AppSec?
&lt;/h3&gt;

&lt;p&gt;Security shouldn't live off in a separate dashboard. With MCP, you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ask specific security questions in natural language&lt;/li&gt;
&lt;li&gt;Explore your codebase's risks and remediations on-demand&lt;/li&gt;
&lt;li&gt;Reduce triage and manual lookup overhead&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This isn't just about convenience—it's about embedding security in the development experience.&lt;/p&gt;




&lt;h3&gt;
  
  
  Get Involved
&lt;/h3&gt;

&lt;p&gt;The ZeroPath MCP Server is fully open-source and available on GitHub:&lt;a href="https://github.com/ZeroPathAI/zeropath-mcp-server" rel="noopener noreferrer"&gt;https://github.com/ZeroPathAI/zeropath-mcp-server&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We're actively looking for contributors and feedback as we extend capabilities. Drop into our &lt;a href="https://discord.gg/Whukqkw3Qr" rel="noopener noreferrer"&gt;Discord&lt;/a&gt; or open an issue on GitHub if you want to help shape what modern product security looks like in AI-native dev environments.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
