<?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: sameh</title>
    <description>The latest articles on DEV Community by sameh (@samehatwaybill).</description>
    <link>https://dev.to/samehatwaybill</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%2F4137685%2F8cd773ef-a358-43c6-848e-5edbcea3739d.png</url>
      <title>DEV Community: sameh</title>
      <link>https://dev.to/samehatwaybill</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/samehatwaybill"/>
    <language>en</language>
    <item>
      <title>The 24-hour CRA reporting clock: build the evidence packet before you need it</title>
      <dc:creator>sameh</dc:creator>
      <pubDate>Thu, 24 Sep 2026 17:29:53 +0000</pubDate>
      <link>https://dev.to/samehatwaybill/the-24-hour-cra-reporting-clock-build-the-evidence-packet-before-you-need-it-4i56</link>
      <guid>https://dev.to/samehatwaybill/the-24-hour-cra-reporting-clock-build-the-evidence-packet-before-you-need-it-4i56</guid>
      <description>&lt;p&gt;&lt;em&gt;A vulnerability report lands at 17:20 on Friday. That is the wrong moment to design your incident process.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Educational material only — this is not legal advice.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A vulnerability report lands at 17:20 on Friday. The reporter says a flaw in a bundled component is being exploited. The maintainer is in another time zone. The last two releases used different versions, customer deployment data is incomplete, and nobody on the team has registered for the reporting platform.&lt;/p&gt;

&lt;p&gt;The CRA's reporting duties for manufacturers are now live — they've applied since 11 September 2026. Manufacturers must report actively exploited vulnerabilities and severe incidents affecting product security through ENISA's Single Reporting Platform (SRP): an early warning within 24 hours of awareness, a fuller notification within 72 hours, then a final report — within 14 days of a fix for vulnerabilities, or within a month of the 72-hour notification for severe incidents.&lt;/p&gt;

&lt;p&gt;The practical challenge isn't memorizing the clock. It's whether the team can identify the product, affected versions, current facts, decision owner, and next update while information is still incomplete.&lt;/p&gt;

&lt;h2&gt;
  
  
  Know what starts the workflow
&lt;/h2&gt;

&lt;p&gt;Not every CVE match is an actively exploited vulnerability in your product. Create two intake triggers: credible information that a vulnerability in your product or a component is being actively exploited, and an event that may severely impact product security. At intake, don't wait for certainty — open a timed assessment, preserve the original report, assign an incident lead, and record when the organization became aware. "Awareness" starts the legal clock, so agree with counsel how you interpret and record it before you need it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Separate facts from assessments
&lt;/h2&gt;

&lt;p&gt;Keep observed facts apart from working assessments. Facts: report time and source, affected versions and platforms, indicators of exploitation, customer impact so far, preserved logs and samples. Assessments: is the issue present in shipped versions, is exploitation credible, does it meet severity criteria, confidence level and the next fact needed. A 24-hour warning can acknowledge uncertainty without blending assumptions into facts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pre-build the evidence packet
&lt;/h2&gt;

&lt;p&gt;Create the packet structure before triage opens. Product identity: manufacturer, product and version range, platforms, EU distribution channels, support status, update mechanism. Technical evidence: affected artifacts and hashes, release-linked SBOMs, exploit indicators, reachability assessment, fix status. Decision trail: awareness timestamp, incident lead, reportability assessment, submission receipts, customer communication decisions. Don't alter original evidence — add versions and preserve the decision chain.&lt;/p&gt;

&lt;h2&gt;
  
  
  Give a five-person process to a two-person team
&lt;/h2&gt;

&lt;p&gt;Assign named primary and backup owners for intake monitoring, technical triage, the reportability decision, SRP submission, customer communication, fix approval, and post-incident review. One escalation rule: if the primary is unreachable, the backup takes control after a defined period. The 24-hour window doesn't pause for holidays.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rehearse the case most likely to hurt
&lt;/h2&gt;

&lt;p&gt;Run a 60-minute tabletop with your actual product: a critical flaw in a bundled update component, two supported releases affected, a fix that breaks one platform's installer, some customers with auto-updates disabled. Ask the team to record awareness, find the affected releases and their SBOMs, draft the 24-hour warning from known facts only, and plan containment and customer guidance. Score it on retrieval time and decision clarity — the goal is removing avoidable delay, not theater.&lt;/p&gt;

&lt;h2&gt;
  
  
  Five readiness checks for this month
&lt;/h2&gt;

&lt;p&gt;A security contact that reaches a person, not an abandoned inbox. SRP access for the right people, registered before you need it. Release traceability: component to affected versions, fast. One named decision owner, with a backup. One timed rehearsal producing a draft warning within the first hour. Fix access and ownership gaps before buying another scanner.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Has your team tested a CRA reporting workflow — or discovered it has no workable one? Drop a line or two in the comments about what would break first; I'm collecting practical lessons from small vendors, no call needed.&lt;/em&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://data.consilium.europa.eu/doc/document/ST-13431-2024-INIT/en/pdf" rel="noopener noreferrer"&gt;Regulation (EU) 2024/2847 — Council consolidated legislative text&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://digital-strategy.ec.europa.eu/en/policies/cra-reporting" rel="noopener noreferrer"&gt;European Commission — CRA reporting obligations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://digital-strategy.ec.europa.eu/en/library/commission-publishes-new-guidance-support-timely-cyber-resilience-act-implementation" rel="noopener noreferrer"&gt;European Commission — 2026 CRA implementation guidance overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.enisa.europa.eu/topics/product-security/single-reporting-platform-srp" rel="noopener noreferrer"&gt;ENISA — Single Reporting Platform and current user guidance&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://digital-strategy.ec.europa.eu/en/news/cyber-resilience-act-enters-force-make-europes-cyberspace-safer-and-more-secure" rel="noopener noreferrer"&gt;European Commission — CRA entry into force and main application date&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>cybersecurity</category>
      <category>compliance</category>
      <category>eu</category>
      <category>devops</category>
    </item>
    <item>
      <title>Your SBOM should be a release artifact, not a compliance screenshot</title>
      <dc:creator>sameh</dc:creator>
      <pubDate>Thu, 24 Sep 2026 17:29:02 +0000</pubDate>
      <link>https://dev.to/samehatwaybill/your-sbom-should-be-a-release-artifact-not-a-compliance-screenshot-1oa3</link>
      <guid>https://dev.to/samehatwaybill/your-sbom-should-be-a-release-artifact-not-a-compliance-screenshot-1oa3</guid>
      <description>&lt;p&gt;&lt;em&gt;An SBOM you can't tie to a release is a screenshot, not evidence. Here's how to make it a release artifact.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Educational material only — this is not legal advice.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A software bill of materials can be generated in seconds and become unreliable just as quickly.&lt;/p&gt;

&lt;p&gt;Run a scanner against a development checkout, save the result as sbom.json, and the team technically has a file. But which release does it describe? Was it generated before or after the lockfile changed? Does it include the bundled runtime, native modules, container base, installer, and vendored code? Can the same binary be tied back to the same component list six months later?&lt;/p&gt;

&lt;p&gt;The Cyber Resilience Act makes the operational answer important. Annex I requires manufacturers to identify and document vulnerabilities and components — including by drawing up an SBOM in a commonly used, machine-readable format covering at least the product's top-level dependencies.&lt;/p&gt;

&lt;p&gt;That wording sets a minimum. A useful SBOM process goes further by creating a trustworthy relationship between the inventory, the product artifact, and the release decision.&lt;/p&gt;

&lt;h2&gt;
  
  
  Define the unit of inventory before choosing a tool
&lt;/h2&gt;

&lt;p&gt;"Generate an SBOM" is underspecified. First define what counts as one product release.&lt;/p&gt;

&lt;p&gt;For a WordPress plugin, the unit may include PHP dependencies, bundled JavaScript, vendored libraries, and the exact ZIP delivered to customers. For an Electron app, add the Electron and Chromium versions, native Node modules, auto-update components, and per-platform installers.&lt;/p&gt;

&lt;p&gt;Write a release inventory contract: product and version identifier, platforms, each build artifact and checksum, package ecosystems and lockfiles, bundled runtimes and vendored components, build commit and workflow run, SBOM format and tool version, and known blind spots. A generator that misses a bundled runtime isn't "mostly complete" if that runtime carries the vulnerability that matters.&lt;/p&gt;

&lt;h2&gt;
  
  
  Generate from the closest trustworthy point to shipment
&lt;/h2&gt;

&lt;p&gt;Source-only scanning is useful in development, but release evidence should describe what customers receive. Generate or reconcile the SBOM as late in the trusted build pipeline as practical:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The release workflow resolves locked dependencies in a controlled environment.&lt;/li&gt;
&lt;li&gt;The application and installers are built.&lt;/li&gt;
&lt;li&gt;The SBOM is generated for the final artifact.&lt;/li&gt;
&lt;li&gt;Automated checks validate format, identifiers, duplicates, and gaps.&lt;/li&gt;
&lt;li&gt;Artifact, checksum, SBOM, test results, and approval are archived under one release identity.&lt;/li&gt;
&lt;li&gt;The release ships only after the evidence bundle is complete.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;SPDX and CycloneDX are the common formats — pick the one your tools and customers can consume. Preserving identifiers, versions, and provenance accurately matters more than the format choice.&lt;/p&gt;

&lt;h2&gt;
  
  
  Validate the SBOM like any other build output
&lt;/h2&gt;

&lt;p&gt;An SBOM can be syntactically valid and materially wrong. Check four things: is it complete against your inventory contract? Is it internally consistent — versions, identifiers, duplicates, hashes? Is it tied to the shipped bytes, with hashes and release IDs stored alongside and corrections kept as traceable revisions? And is it reproducible enough to investigate — can you explain material component differences on rebuild?&lt;/p&gt;

&lt;h2&gt;
  
  
  The inventory feeds triage
&lt;/h2&gt;

&lt;p&gt;A component inventory becomes valuable when it feeds vulnerability triage: inventory → match → assess reachability and exposure → decide → remediate or accept → verify → communicate. A scanner match is not the final risk decision — record the affected releases, whether the vulnerable code is reachable, exploitability in your configuration, the decision owner and rationale, and verification.&lt;/p&gt;

&lt;p&gt;Note the CRA doesn't require publishing your SBOM to the public — the recitals explicitly recognize confidentiality concerns. But you must be able to produce, retain, and retrieve it. Store immutable release copies, log disclosures, and test retrieval during an incident exercise.&lt;/p&gt;

&lt;h2&gt;
  
  
  Review deltas, not full inventories
&lt;/h2&gt;

&lt;p&gt;A 2,000-line inventory is hard to review; a release delta is actionable: components added or removed, dependencies upgraded, new licenses, components leaving support, findings changed since the last release. Keep the full SBOM as the system record; make the delta the human review surface.&lt;/p&gt;

&lt;h2&gt;
  
  
  The practical test
&lt;/h2&gt;

&lt;p&gt;Pick one production release from six months ago and give a teammate 30 minutes: which components shipped? Which issues were open at release time? What changed from the previous version? If the answers need personal memory or archaeology across systems, the problem isn't the SBOM format — it's missing release evidence.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Where does your SBOM workflow break today — incomplete inventories, noisy matches, or evidence scattered across tools? Drop a line or two in the comments; I'm collecting patterns across small vendors, no call needed.&lt;/em&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://data.consilium.europa.eu/doc/document/ST-13431-2024-INIT/en/pdf" rel="noopener noreferrer"&gt;Regulation (EU) 2024/2847 — Council consolidated legislative text&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://digital-strategy.ec.europa.eu/en/policies/cra-reporting" rel="noopener noreferrer"&gt;European Commission — CRA reporting obligations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://digital-strategy.ec.europa.eu/en/library/commission-publishes-new-guidance-support-timely-cyber-resilience-act-implementation" rel="noopener noreferrer"&gt;European Commission — 2026 CRA implementation guidance overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.enisa.europa.eu/topics/product-security/single-reporting-platform-srp" rel="noopener noreferrer"&gt;ENISA — Single Reporting Platform and current user guidance&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://digital-strategy.ec.europa.eu/en/news/cyber-resilience-act-enters-force-make-europes-cyberspace-safer-and-more-secure" rel="noopener noreferrer"&gt;European Commission — CRA entry into force and main application date&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>cybersecurity</category>
      <category>sbom</category>
      <category>devops</category>
      <category>compliance</category>
    </item>
    <item>
      <title>The CRA clock has started</title>
      <dc:creator>sameh</dc:creator>
      <pubDate>Tue, 22 Sep 2026 15:06:52 +0000</pubDate>
      <link>https://dev.to/samehatwaybill/the-cra-clock-has-started-45c8</link>
      <guid>https://dev.to/samehatwaybill/the-cra-clock-has-started-45c8</guid>
      <description>&lt;p&gt;&lt;em&gt;The reporting duties that matter most are already live. If you sell software in the EU, here's what that actually means — and how to be ready without wasting effort.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Educational material only — this is not legal advice.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Two instincts are leading small software vendors astray on the EU's Cyber Resilience Act (CRA).&lt;/p&gt;

&lt;p&gt;The first instinct: "The deadline is late 2027 — I have time." The second: "This is only for Microsoft and Siemens."&lt;/p&gt;

&lt;p&gt;Both are wrong, and the calendar is the reason. The CRA was adopted on 10 October 2024 and entered into force on 10 December 2024. But it doesn't switch on all at once. The notification duties under Article 14 apply from 11 September 2026 — already in the past. The remaining product requirements — conformity assessments, CE marking, the full documentation package — follow on 11 December 2027.&lt;/p&gt;

&lt;p&gt;That split timeline is the whole story. The part of the CRA that can hurt you first isn't the paperwork in 2027. It's the reporting duty that's live right now.&lt;/p&gt;

&lt;h2&gt;
  
  
  What "already live" actually means
&lt;/h2&gt;

&lt;p&gt;Article 14 requires manufacturers of products with digital elements to notify authorities when they become aware of an actively exploited vulnerability in their product — or a severe incident affecting its security. The timeline is brutal by normal support-desk standards:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;An early notification within 24 hours of becoming aware. A fuller notification within 72 hours. A final report within one month.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And this applies to any product with digital elements sold commercially in the EU — your SaaS, your WordPress plugin, your desktop app, your dev tool. Not just the giants.&lt;/p&gt;

&lt;p&gt;The penalties underline the point: up to €15 million or 2.5% of worldwide annual turnover, whichever is higher.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three things worth doing now
&lt;/h2&gt;

&lt;p&gt;Almost everything the CRA asks of you early is operational, not legal. You don't need a law firm; you need a release process that produces evidence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Build the SBOM into your release pipeline.&lt;/strong&gt; For every release, generate a machine-readable inventory of what you shipped — every dependency, every version. CycloneDX is the pragmatic format. Do it in CI so it happens whether or not anyone remembers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Keep evidence of what you ship and how long you support it.&lt;/strong&gt; Archive each release's SBOM, record your stated support period, and keep incident records. When a regulator — or an enterprise customer — asks what was in version 4.8.0 and whether it was still supported, the answer should be a file, not a memory.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Set up a vulnerability intake and response process.&lt;/strong&gt; Publish a security contact point, define who triages reports, and set internal deadlines that beat the regulatory ones. The 24-hour clock starts when you become aware — so "becoming aware" needs to be a defined process, not an accident.&lt;/p&gt;

&lt;h2&gt;
  
  
  The bottom line
&lt;/h2&gt;

&lt;p&gt;The CRA rewards vendors who can show their work. Start with the release pipeline: if every release produces an SBOM and an archive entry, you're most of the way to the evidence trail the regulation assumes you have.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If you sell software in the EU, what does your current evidence trail look like? Drop a line or two in the comments about how you track releases today — no call, I'm just collecting patterns across small vendors.&lt;/em&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://data.consilium.europa.eu/doc/document/ST-13431-2024-INIT/en/pdf" rel="noopener noreferrer"&gt;Regulation (EU) 2024/2847 — Council consolidated legislative text&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://digital-strategy.ec.europa.eu/en/policies/cra-reporting" rel="noopener noreferrer"&gt;European Commission — CRA reporting obligations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://digital-strategy.ec.europa.eu/en/library/commission-publishes-new-guidance-support-timely-cyber-resilience-act-implementation" rel="noopener noreferrer"&gt;European Commission — 2026 CRA implementation guidance overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.enisa.europa.eu/topics/product-security/single-reporting-platform-srp" rel="noopener noreferrer"&gt;ENISA — Single Reporting Platform and current user guidance&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://digital-strategy.ec.europa.eu/en/news/cyber-resilience-act-enters-force-make-europes-cyberspace-safer-and-more-secure" rel="noopener noreferrer"&gt;European Commission — CRA entry into force and main application date&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>cybersecurity</category>
      <category>compliance</category>
      <category>eu</category>
      <category>sbom</category>
    </item>
  </channel>
</rss>
