<?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: albe_sf</title>
    <description>The latest articles on DEV Community by albe_sf (@albertomontagnese).</description>
    <link>https://dev.to/albertomontagnese</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%2F3928059%2F8788e7f6-c941-4959-b1cf-18686efc9034.jpg</url>
      <title>DEV Community: albe_sf</title>
      <link>https://dev.to/albertomontagnese</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/albertomontagnese"/>
    <language>en</language>
    <item>
      <title>Anthropic's 'Dangerous' AI and the Hard Reality of Auditing Code</title>
      <dc:creator>albe_sf</dc:creator>
      <pubDate>Wed, 13 May 2026 19:06:59 +0000</pubDate>
      <link>https://dev.to/albertomontagnese/anthropics-dangerous-ai-and-the-hard-reality-of-auditing-code-2j56</link>
      <guid>https://dev.to/albertomontagnese/anthropics-dangerous-ai-and-the-hard-reality-of-auditing-code-2j56</guid>
      <description>&lt;p&gt;Anthropic's latest model, Claude Mythos, was internally deemed too 'dangerously good' at finding security vulnerabilities for a public release. But when tested against the battle-hardened &lt;code&gt;curl&lt;/code&gt; codebase, it exposed the gap between marketing hype and engineering reality, providing a critical lesson for anyone building with AI security tools. The takeaway is not that these models are useless, but that their output is a signal that still requires rigorous human verification.&lt;/p&gt;

&lt;h2&gt;
  
  
  what is claude mythos
&lt;/h2&gt;

&lt;p&gt;Anthropic announced that an internal AI model, Claude Mythos, demonstrated a powerful, emergent capability for discovering and exploiting software vulnerabilities. The capabilities were reportedly so advanced that the company restricted access, providing it only to a select group of organizations to allow them to patch critical flaws before a potential wider release. The model allegedly found thousands of high-severity vulnerabilities across major operating systems and browsers. This raised an immediate question for builders: are we on the verge of fully automated security auditing, or is this another case of over-indexing on a model's potential?&lt;/p&gt;

&lt;h2&gt;
  
  
  the curl test case
&lt;/h2&gt;

&lt;p&gt;The answer came from a real-world test. Daniel Stenberg, creator of &lt;code&gt;curl&lt;/code&gt;, was granted indirect access to a Mythos analysis of his project's 176,000 lines of C code. The model returned five 'confirmed security vulnerabilities'.&lt;/p&gt;

&lt;p&gt;The result after human review was less dramatic. Of the five findings, four were false positives. One was a legitimate, low-severity bug. This outcome on a mature, heavily scrutinized project like &lt;code&gt;curl&lt;/code&gt; is telling. It suggests that while AI can parse massive codebases and identify potential issues at scale, its signal-to-noise ratio is a critical variable. An AI's declaration of a 'confirmed' vulnerability is not the end of an investigation; it is the start.&lt;/p&gt;

&lt;h2&gt;
  
  
  ai output is a signal, not a verdict
&lt;/h2&gt;

&lt;p&gt;For engineers integrating AI into security pipelines, this is the core lesson. These models are powerful pattern-matchers, but they lack the true context and world model of a seasoned security researcher. They will flag code that looks like a known vulnerability pattern, even when idiomatic usage or surrounding logic renders it harmless. A report from a model like Mythos is not a finished list of CVEs. It's a prioritized list of areas for human experts to investigate.&lt;/p&gt;

&lt;p&gt;Your internal tooling and workflow must reflect this. When an AI flags a potential issue, the process should treat it as an assertion to be validated, not a fact to be remediated. Imagine an automated report from a similar tool:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"vulnerability_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"AI-GEN-004-RCE"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"file_path"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"/src/app/utils/parser.c"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"line_number"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;242&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"severity"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Critical"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"cwe"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"CWE-120: Buffer Copy without Checking Size of Input ('Classic Buffer Overflow')"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"confidence"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"High"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"The function `parse_user_input` uses `strcpy` to copy a user-provided buffer `input_buffer` to a fixed-size local variable `dest_buffer`. This is a potential buffer overflow vulnerability if the source buffer exceeds the destination size."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"recommendation"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Replace `strcpy` with `strncpy` or `snprintf` to prevent buffer overflows by specifying the maximum number of bytes to copy."&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This looks plausible. But without a human checking if &lt;code&gt;input_buffer&lt;/code&gt; is sanitized or length-checked upstream, acting on this report alone is premature. The value is not in the AI's conclusion, but in its ability to direct limited human attention to line 242.&lt;/p&gt;

&lt;h2&gt;
  
  
  what this means for builders
&lt;/h2&gt;

&lt;p&gt;The Mythos-on-&lt;code&gt;curl&lt;/code&gt; episode is a necessary recalibration. AI will undoubtedly change security auditing, but it will not eliminate the need for human expertise. It transforms the task from finding a needle in a haystack to sorting a pile of needles and pins. For builders, the mandate is clear: build systems that leverage AI for signal generation, but design workflows that depend on human experts for verification. Do not ship a system that blindly trusts an AI's security assessment. The real danger isn't a rogue AI hacker, but an engineering team that outsources its judgment to one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.anthropic.com/" rel="noopener noreferrer"&gt;Anthropic&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>agents</category>
      <category>programming</category>
    </item>
    <item>
      <title>Anthropic on AWS is Not What You Think</title>
      <dc:creator>albe_sf</dc:creator>
      <pubDate>Wed, 13 May 2026 19:01:56 +0000</pubDate>
      <link>https://dev.to/albertomontagnese/anthropic-on-aws-is-not-what-you-think-8cm</link>
      <guid>https://dev.to/albertomontagnese/anthropic-on-aws-is-not-what-you-think-8cm</guid>
      <description>&lt;p&gt;Anthropic's release of the Claude Platform on AWS is the most significant infrastructure shift for builders since model-specific SDKs. It’s not another managed model offering via Bedrock; it’s Anthropic’s full, cutting-edge API stack deployed on AWS infrastructure, accessible through native AWS endpoints. This solves the primary enterprise adoption hurdles—security, billing, and procurement—at the source, making Claude a legitimate alternative to Azure OpenAI for serious AWS shops.&lt;/p&gt;

&lt;h2&gt;
  
  
  what actually changed
&lt;/h2&gt;

&lt;p&gt;On May 11, Anthropic announced the Claude Platform on AWS. Unlike the existing Amazon Bedrock integration, which offers specific Claude models as part of a multi-vendor catalog, this is a dedicated, Anthropic-managed environment running on AWS hardware. For builders, this means you get the best of both worlds: direct access to Anthropic's complete, up-to-the-minute feature set—including the full Messages API, the Files API, Managed Agents, and tool use—while operating within your existing AWS environment.&lt;/p&gt;

&lt;p&gt;The key differences are in the plumbing. You interact with it via native AWS endpoints. Authentication is handled by AWS IAM, not by a separate Anthropic API key you have to manage and rotate. Most importantly, billing is consolidated directly into your AWS account. This isn't a minor convenience; it's a fundamental change that removes massive organizational friction.&lt;/p&gt;

&lt;h2&gt;
  
  
  the enterprise integration tax
&lt;/h2&gt;

&lt;p&gt;For any large organization, adopting a new AI vendor is a procurement and security nightmare. It requires new contracts, new security reviews for data handling, and a separate billing pipeline that finance has to approve. While Bedrock partially solved this by putting various models under a single AWS bill, it often lags behind the native provider's API in terms of features and model availability. You get the convenience, but you sacrifice access to the latest capabilities.&lt;/p&gt;

&lt;p&gt;The new platform collapses this trade-off. A team can now use their existing AWS enterprise agreement, leverage pre-approved IAM roles and policies for access control, and have all of their Claude usage appear as a line item on their monthly AWS bill. The CISO is happy because access is governed by the same robust IAM system used for everything else. The finance department is happy because there isn't a new vendor to onboard. And you, the builder, are happy because you get direct access to the latest from Anthropic without fighting a six-month procurement battle.&lt;/p&gt;

&lt;p&gt;Here’s what invoking a model on this new platform might look like. Note that you're using an AWS SDK like &lt;code&gt;boto3&lt;/code&gt; to call an Anthropic-specific service endpoint, not the generic Bedrock one.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;boto3&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;

&lt;span class="n"&gt;session&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;boto3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Session&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;profile_name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;my-aws-profile&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;region_name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;us-east-1&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Note the service name is 'anthropic', not 'bedrock-runtime'
&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;session&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;client&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;anthropic&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;invoke_model&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;modelId&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;claude-opus-4-7&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;contentType&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;application/json&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;accept&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;application/json&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;body&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;dumps&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;anthropic_version&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;bedrock-2023-05-31&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;max_tokens&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2048&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;messages&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
            &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Explain the difference between Anthropic on AWS and Claude on Bedrock.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;response_body&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;loads&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;body&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;read&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response_body&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;text&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This looks familiar, but the &lt;code&gt;service_name&lt;/code&gt; and &lt;code&gt;modelId&lt;/code&gt; string are doing all the work, routing your request through AWS's front door to Anthropic's dedicated infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  the so-what for builders
&lt;/h2&gt;

&lt;p&gt;This move signals a new phase in the AI platform wars. It’s no longer just about having the best model; it’s about having the most seamless enterprise deployment story. By embedding its native platform inside AWS, Anthropic is meeting enterprise clients where they are, offering a path of least resistance to adopt its latest technology. It’s a direct challenge to the tight integration of OpenAI models within the Azure ecosystem.&lt;/p&gt;

&lt;p&gt;For engineers and technical leads inside companies heavily invested in AWS, the decision of which frontier model to use just got a lot more interesting. The excuse that "it's not integrated with our cloud" is gone. The friction is gone. Now, the choice between Claude and its competitors can be based purely on capability, performance, and cost—as it should be.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.anthropic.com/claude/reference/changelog" rel="noopener noreferrer"&gt;Claude API Docs - Changelog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>claude</category>
      <category>devops</category>
    </item>
    <item>
      <title>Hello world</title>
      <dc:creator>albe_sf</dc:creator>
      <pubDate>Tue, 12 May 2026 22:27:45 +0000</pubDate>
      <link>https://dev.to/albertomontagnese/hello-world-mhd</link>
      <guid>https://dev.to/albertomontagnese/hello-world-mhd</guid>
      <description></description>
    </item>
  </channel>
</rss>
