<?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: 88nonog-dev</title>
    <description>The latest articles on DEV Community by 88nonog-dev (@88nonogdev).</description>
    <link>https://dev.to/88nonogdev</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%2F3827837%2Fee9fbe58-83d2-49f7-ae59-299d94eb028a.png</url>
      <title>DEV Community: 88nonog-dev</title>
      <link>https://dev.to/88nonogdev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/88nonogdev"/>
    <language>en</language>
    <item>
      <title>I built a system that verifies if security decisions were tampered with (offline)</title>
      <dc:creator>88nonog-dev</dc:creator>
      <pubDate>Sat, 28 Mar 2026 10:52:40 +0000</pubDate>
      <link>https://dev.to/88nonogdev/i-built-a-system-that-verifies-if-security-decisions-were-tampered-with-offline-59gm</link>
      <guid>https://dev.to/88nonogdev/i-built-a-system-that-verifies-if-security-decisions-were-tampered-with-offline-59gm</guid>
      <description>&lt;p&gt;I built a system that verifies whether a security decision was altered or not.&lt;/p&gt;

&lt;p&gt;The idea is simple:&lt;br&gt;
given a decision file and its evidence bundle, the system can independently verify its integrity.&lt;/p&gt;

&lt;p&gt;It produces:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;VERIFIED (intact)&lt;/li&gt;
&lt;li&gt;or TAMPERED (modified)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Key characteristics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;works fully offline (no cloud, no API)&lt;/li&gt;
&lt;li&gt;deterministic (same input always gives the same result)&lt;/li&gt;
&lt;li&gt;no need to trust the original system&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Why this matters:&lt;br&gt;
teams can run security scans, but often cannot prove why a decision was made after the fact.&lt;/p&gt;

&lt;p&gt;This focuses only on verification and proof.&lt;/p&gt;

&lt;p&gt;I created a simple demo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;run verify&lt;/li&gt;
&lt;li&gt;modify one value&lt;/li&gt;
&lt;li&gt;see it fail&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I’m interested to know:&lt;br&gt;
would something like this be useful in audits, compliance, or incident investigations?&lt;/p&gt;

&lt;p&gt;If relevant, feel free to reach out:&lt;br&gt;
&lt;a href="mailto:mohammed.devsec@gmail.com"&gt;mohammed.devsec@gmail.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1qtcn3br1ka7ynvmk68d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1qtcn3br1ka7ynvmk68d.png" alt=" " width="800" height="445"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>infosec</category>
      <category>security</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Deterministic Verification for CI Security Decisions (Introducing Nono-Gate)</title>
      <dc:creator>88nonog-dev</dc:creator>
      <pubDate>Mon, 16 Mar 2026 17:48:53 +0000</pubDate>
      <link>https://dev.to/88nonogdev/deterministic-verification-for-ci-security-decisions-introducing-nono-gate-2k87</link>
      <guid>https://dev.to/88nonogdev/deterministic-verification-for-ci-security-decisions-introducing-nono-gate-2k87</guid>
      <description>&lt;p&gt;Modern CI/CD pipelines run multiple security scanners.&lt;/p&gt;

&lt;p&gt;They detect vulnerabilities, produce reports, and sometimes block builds.&lt;br&gt;
However, the final security decision — the decision that allows a release to proceed — is usually derived from tool outputs and pipeline logic that are difficult to verify later.&lt;/p&gt;

&lt;p&gt;In most environments, the decision is effectively trusted rather than independently verifiable.&lt;/p&gt;

&lt;p&gt;Nono-Gate explores a different architectural approach.&lt;/p&gt;

&lt;p&gt;Instead of treating scan results as the final artifact, Nono-Gate treats the security decision itself as a verifiable artifact.&lt;/p&gt;

&lt;p&gt;The system introduces a deterministic verification layer for CI security decisions.&lt;/p&gt;

&lt;p&gt;It consumes security signals (for example SARIF outputs from scanners), applies a deterministic policy evaluation process, and produces a structured decision artifact backed by verifiable evidence.&lt;/p&gt;

&lt;p&gt;This allows the decision to be replayed and verified later, even outside the original CI environment.&lt;/p&gt;

&lt;p&gt;Core capabilities&lt;br&gt;
Deterministic decision generation&lt;/p&gt;

&lt;p&gt;Given the same inputs and policy rules, Nono-Gate produces the same security decision every time.&lt;br&gt;
This deterministic behavior allows the decision to be replayed and independently verified.&lt;/p&gt;

&lt;p&gt;Evidence root generation&lt;/p&gt;

&lt;p&gt;Each decision produces an Evidence Root, derived from the underlying security signals and evaluation process.&lt;br&gt;
This root acts as a compact fingerprint representing the decision context.&lt;/p&gt;

&lt;p&gt;Transparency ledger&lt;/p&gt;

&lt;p&gt;Decisions are recorded in an append-only transparency log.&lt;br&gt;
This ledger makes it possible to track decision history and verify integrity over time.&lt;/p&gt;

&lt;p&gt;Replay verification&lt;/p&gt;

&lt;p&gt;Any decision artifact can be re-executed and verified later using the same inputs.&lt;br&gt;
If the replay produces the same evidence root and decision, the integrity of the original decision is confirmed.&lt;/p&gt;

&lt;p&gt;Tool-agnostic integration&lt;/p&gt;

&lt;p&gt;Nono-Gate does not replace existing security scanners.&lt;br&gt;
Instead, it operates as a verification layer that consumes their outputs.&lt;/p&gt;

&lt;p&gt;This means it can work alongside existing tools used in CI/CD pipelines.&lt;/p&gt;

&lt;p&gt;Architectural idea&lt;/p&gt;

&lt;p&gt;The architecture can be summarized as:&lt;/p&gt;

&lt;p&gt;Security Scanners → Security Signals → Deterministic Decision Engine → Verifiable Evidence → Transparency Ledger&lt;/p&gt;

&lt;p&gt;This shifts the focus from:&lt;/p&gt;

&lt;p&gt;“Did the scanner run?”&lt;/p&gt;

&lt;p&gt;to:&lt;/p&gt;

&lt;p&gt;“Can the final security decision be independently verified?”&lt;/p&gt;

&lt;p&gt;Repository&lt;/p&gt;

&lt;p&gt;The project repository and prototype implementation:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/88nonog-dev/nono-gate" rel="noopener noreferrer"&gt;https://github.com/88nonog-dev/nono-gate&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Question for practitioners&lt;/p&gt;

&lt;p&gt;How does your CI/CD pipeline verify the security decision itself, not just the scan results?&lt;/p&gt;

&lt;p&gt;Tags&lt;/p&gt;

&lt;p&gt;devsecops&lt;br&gt;
security&lt;br&gt;
cicd&lt;br&gt;
opensource&lt;br&gt;
appsec&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>cicd</category>
      <category>devops</category>
      <category>security</category>
    </item>
  </channel>
</rss>
