<?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: Marcus Morris</title>
    <description>The latest articles on DEV Community by Marcus Morris (@ceaz).</description>
    <link>https://dev.to/ceaz</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3973303%2F5df49f90-96ea-48d3-a87c-13f8cf4774fc.png</url>
      <title>DEV Community: Marcus Morris</title>
      <link>https://dev.to/ceaz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ceaz"/>
    <language>en</language>
    <item>
      <title>A Simple Way to Reduce the Grype Noise</title>
      <dc:creator>Marcus Morris</dc:creator>
      <pubDate>Tue, 30 Jun 2026 18:56:02 +0000</pubDate>
      <link>https://dev.to/ceaz/a-simple-way-to-reduce-the-grype-noise-5gbm</link>
      <guid>https://dev.to/ceaz/a-simple-way-to-reduce-the-grype-noise-5gbm</guid>
      <description>&lt;p&gt;Security Team: “I have a major Grype...with what I Syfted out of your provided image."&lt;/p&gt;

&lt;p&gt;Developer: “Well your Grype is slowing me down...let’s tone it down a notch.”&lt;/p&gt;




&lt;p&gt;While deploying bookstack into my local environment, this issue surfaced. It is true for many organizations today deploying images and packages in their environment. &lt;/p&gt;

&lt;p&gt;How can this noise fatigue in the software supply chain be remedied?&lt;/p&gt;

&lt;p&gt;Add a .gype.yaml file to the root directory of your project. This will allow grype to ignore certain CVE's that do not execute or pose a threat in your environment.&lt;/p&gt;




&lt;p&gt;The yaml config can be as simple as below: Linux Environment&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="c1"&gt;# grype.yaml&lt;/span&gt;
&lt;span class="na"&gt;ignore&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
 &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;vulnerability&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;CVE-2026-32631&lt;/span&gt;
  &lt;span class="na"&gt;reason&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Platform-specific&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;false&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;positive.&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Git&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;for&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Windows&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;only;&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;not&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;applicable&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;to&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;this&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Linux-based&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;image."&lt;/span&gt;

 &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;vulnerability&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;CVE-2016-2781&lt;/span&gt;
  &lt;span class="na"&gt;reason&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Chroot&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;escape&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;via&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;ioctl.&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Containers&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;rely&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;on&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;namespaces/cgroups,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;not&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;chroot,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;so&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;this&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;path&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;isn't&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;exploitable&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;here."&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;OR&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="c1"&gt;# grype.yaml&lt;/span&gt;
&lt;span class="na"&gt;ignore&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
 &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;vulnerability&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;CVE-2026-32631&lt;/span&gt;
 &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;vulnerability&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;CVE-2016-2781&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;This will help developers and security engineers get along better. 😃&lt;/p&gt;

&lt;p&gt;Grype config reference:&lt;br&gt;
&lt;a href="https://oss.anchore.com/docs/reference/grype/configuration/" rel="noopener noreferrer"&gt;https://oss.anchore.com/docs/reference/grype/configuration/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>softwareengineering</category>
      <category>cybersecurity</category>
      <category>grype</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Open source is like an amazing community swimming pool. 🏊‍♂️</title>
      <dc:creator>Marcus Morris</dc:creator>
      <pubDate>Tue, 30 Jun 2026 16:20:35 +0000</pubDate>
      <link>https://dev.to/ceaz/open-source-is-like-an-amazing-community-swimming-pool-2ogl</link>
      <guid>https://dev.to/ceaz/open-source-is-like-an-amazing-community-swimming-pool-2ogl</guid>
      <description>&lt;p&gt;It’s collaborative, it’s highly efficient, and everyone is having a great time building incredible things together.&lt;/p&gt;

&lt;p&gt;Until someone whizzes in the water.&lt;/p&gt;

&lt;p&gt;We’ve all seen or heard of the childhood "indicator dye" that turns bright blue the exact moment someone contaminates the pool. In the real world of software engineering, public registries (like npm or PyPI) don't have that dye built-in. &lt;/p&gt;

&lt;p&gt;Malicious dependencies, typosquatting, and compromised upstream maintainers blend right into the clean water almost perfectly, undetected. If we treat a raw, unverified public registry like a trusted "community pool" environment, your production pipelines will be contaminated with background risk.&lt;/p&gt;

&lt;p&gt;How do we actually build a sterile "pool experience" in enterprise software supply chains? We add in our own indicator dye and filtration systems:&lt;/p&gt;

&lt;p&gt;The Indicator Dye (Visibility): Generating an granular Software Bill of Materials (SBOM) using tools like Syft, paired with continuous vulnerability scanning via Grype, acts as your indicator dye. It instantly exposes hidden, contaminated layers before they compromise your ecosystem. Vexctl (OpenVex) can help quiet the noise of CVE's that your company is not at risk to, reducing alert fatigue in the process.&lt;/p&gt;

&lt;p&gt;The Guest Log (Provenance &amp;amp; Attestation): Stop pulling anonymous binaries. Provenance tells you the exact cryptographic history of where and how the software was built. Attestations prove that it met your rigorous build-time security requirements before it ever left the assembly line.&lt;/p&gt;

&lt;p&gt;The Filtration System (Digital Signing &amp;amp; Policy): Cryptographic signing (via frameworks like Sigstore) ensures that if an artifact or container image isn't explicitly signed, verified, and matched against your governance policies, it never gets near your cluster.&lt;/p&gt;

&lt;p&gt;Open source is a beautiful ecosystem, but public registries are distribution mechanisms, not always safe places to swim.&lt;/p&gt;

&lt;p&gt;Do not swim blindly out there. Shift upstream to the binaries first, verify your provenance, and build a closed-loop system for your dependencies. Consider solutions like Chainguard and methods to secure images/artifacts at build.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>software</category>
      <category>cybersecurity</category>
      <category>cicd</category>
    </item>
  </channel>
</rss>
