<?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>Forem: Peter Nasarah Dashe</title>
    <description>The latest articles on Forem by Peter Nasarah Dashe (@peternasarah).</description>
    <link>https://forem.com/peternasarah</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%2F3790565%2F0379c76f-65b3-4eb0-a51e-3c7ab7a252be.png</url>
      <title>Forem: Peter Nasarah Dashe</title>
      <link>https://forem.com/peternasarah</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/peternasarah"/>
    <language>en</language>
    <item>
      <title>Malware-Based Attacks: The Undying Threat of the Computer Virus</title>
      <dc:creator>Peter Nasarah Dashe</dc:creator>
      <pubDate>Tue, 14 Apr 2026 20:54:37 +0000</pubDate>
      <link>https://forem.com/peternasarah/malware-based-attacks-the-undying-threat-of-the-computer-virus-mhg</link>
      <guid>https://forem.com/peternasarah/malware-based-attacks-the-undying-threat-of-the-computer-virus-mhg</guid>
      <description>&lt;p&gt;When most people hear "hacking," they picture a hooded figure pounding a keyboard. In reality, some of the most devastating breaches start with a single, silent, self-replicating line of code: the &lt;strong&gt;computer virus&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Unlike a ransomware gang that announces its presence, a virus is the ultimate insider threat—because it &lt;em&gt;becomes&lt;/em&gt; part of the insider.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Clearly Defined: What Is a Computer Virus?
&lt;/h2&gt;

&lt;p&gt;A &lt;strong&gt;computer virus&lt;/strong&gt; is a type of malicious software (malware) that, when executed, replicates itself by modifying other computer programs and inserting its own code. The name is biological for a reason: just as a biological virus hijacks a host cell to reproduce, a computer virus hijacks legitimate files or systems to spread.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key distinction:&lt;/strong&gt; A virus requires &lt;strong&gt;human action&lt;/strong&gt; to spread (e.g., opening an infected attachment). A &lt;em&gt;worm&lt;/em&gt;, by contrast, spreads automatically without human help.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. How It Works (The Infection Chain)
&lt;/h2&gt;

&lt;p&gt;Understanding the mechanics is your first line of defense.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Entry &amp;amp; Execution:&lt;/strong&gt; You download an infected attachment, run a cracked piece of software, or boot from a contaminated USB drive. The malicious code executes.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Replication:&lt;/strong&gt; The virus scans your system for uninfected executable files (&lt;code&gt;.exe&lt;/code&gt;, &lt;code&gt;.scr&lt;/code&gt;, &lt;code&gt;.dll&lt;/code&gt;) or boot sectors. It attaches its code to them, often compressing or encrypting itself to avoid detection.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Persistence:&lt;/strong&gt; It adds itself to startup sequences, registry keys, or scheduled tasks. Even if you "clean" the active file, the virus reloads on reboot.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Payload Delivery:&lt;/strong&gt; This is the "why." The payload could trigger immediately (delete files), wait for a specific date (logic bomb), or phone home to a command server.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Polymorphic viruses&lt;/strong&gt; rewrite their own code each time they replicate, making signature-based antivirus almost useless.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. A Brief History (From Floppies to Cloud)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;1971 (Theoretical):&lt;/strong&gt; &lt;em&gt;Creeper&lt;/em&gt; – an experimental self-replicating program on ARPANET.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;1986 (The Wild):&lt;/strong&gt; &lt;em&gt;Brain&lt;/em&gt; – the first IBM-compatible virus, created by two Pakistani brothers to track pirated medical software.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;1999 (Global Panic):&lt;/strong&gt; &lt;em&gt;Melissa&lt;/em&gt; – a macro virus in Word docs that spread via email, crashing corporate mail servers worldwide.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;2000 (Devastation):&lt;/strong&gt; &lt;em&gt;ILOVEYOU&lt;/em&gt; – a Visual Basic script disguised as a love letter. It caused an estimated &lt;strong&gt;$10 billion&lt;/strong&gt; in damages and infected 10% of all internet-connected computers at the time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Today:&lt;/strong&gt; Viruses now target firmware, IoT devices, and cloud container images.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  4. Why Attackers Use Viruses (The Strategic Advantage)
&lt;/h2&gt;

&lt;p&gt;Attackers don't just "want chaos." Viruses offer specific tactical benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Persistence without presence:&lt;/strong&gt; Unlike a hacker who needs a live connection, a virus works autonomously.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lateral movement:&lt;/strong&gt; Once inside your network, a virus can infect shared drives and servers before any manual breach is detected.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Supply chain infection:&lt;/strong&gt; Infect one vendor's software update tool, and you compromise thousands of clients (e.g., the 2017 NotPetya attack).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deniability:&lt;/strong&gt; Attributing a virus is notoriously difficult due to its self-replicating nature.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  5. Real-World Example: The "ILOVEYOU" Virus (2000)
&lt;/h2&gt;

&lt;p&gt;This is the gold standard of virus destruction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How it worked:&lt;/strong&gt; Victims received an email with a subject line "ILOVEYOU" and an attachment "LOVE-LETTER-FOR-YOU.txt.vbs". Windows hid the final &lt;code&gt;.vbs&lt;/code&gt; extension.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it did:&lt;/strong&gt; Upon opening, it overwrote image, music, and document files (JPG, MP3, DOC) with its own code, then sent copies of itself to every contact in the user's Outlook address book.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The damage:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Pentagon, CIA, and British Parliament shut down their email systems.&lt;/li&gt;
&lt;li&gt;500,000+ infected systems globally.&lt;/li&gt;
&lt;li&gt;Total economic losses: &lt;strong&gt;$10–15 billion&lt;/strong&gt; (in 2000 dollars).&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  6. How to Spot a Virus Infection (Early Warning Signs)
&lt;/h2&gt;

&lt;p&gt;You won't always see a skull-and-crossbones popup. Look for these subtle indicators:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Signal&lt;/th&gt;
&lt;th&gt;What it looks like&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Performance decay&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Suddenly slow file saves, program launches, or boot times.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;File anomalies&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Files disappear, reappear, or have weird double extensions (e.g., &lt;code&gt;invoice.pdf.exe&lt;/code&gt;).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Disk thrashing&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Hard drive or SSD activity when you're doing nothing.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Strange popups&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Fake "antivirus" warnings urging you to call a number.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Disabled tools&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Task Manager, Registry Editor, or CMD won't open.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Unusual outbound traffic&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Network activity spikes when you're offline or idle.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  7. What to Do If You've Already Been Attacked (IR Steps)
&lt;/h2&gt;

&lt;p&gt;Do not panic. Do not shut down immediately (that can destroy forensic evidence). Follow this sequence:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Immediate (First 10 minutes):&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Disconnect from the network&lt;/strong&gt; – Unplug Ethernet, disable Wi-Fi. This stops spread.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Do not reboot&lt;/strong&gt; – Some viruses are "memory-resident only" until a reboot writes them to disk.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Document everything&lt;/strong&gt; – Take photos of error messages, unusual files, and timestamps.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Containment (First hour):&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Run a trusted offline scan&lt;/strong&gt; – Boot from a read-only USB antivirus (e.g., Windows Defender Offline, Kaspersky Rescue Disk).&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Change all credentials&lt;/strong&gt; – From a &lt;em&gt;clean&lt;/em&gt; device, change passwords for email, banking, and remote access.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Identify patient zero&lt;/strong&gt; – Which user and file triggered it? Check email logs and download history.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Recovery (24–48 hours):&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Nuke from orbit&lt;/strong&gt; – The only reliable way to remove a complex virus: wipe the drive and restore from a &lt;strong&gt;known clean backup&lt;/strong&gt; (from before the infection).&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Patch and update&lt;/strong&gt; – Update BIOS, firmware, and all software before reconnecting.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  8. The Final Word (For Business Leaders)
&lt;/h2&gt;

&lt;p&gt;Here is the uncomfortable truth: &lt;strong&gt;Antivirus alone is dead against modern viruses.&lt;/strong&gt; Signature-based tools miss polymorphic and fileless variants. Your real defenses are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Application whitelisting&lt;/strong&gt; (only approved executables can run).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User education&lt;/strong&gt; (the virus can't execute if the user doesn't click).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Immutable backups&lt;/strong&gt; (offline, write-once storage).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A virus doesn't hack your technology. It hacks your user's decision-making. Train that, and you've built the strongest wall.&lt;/p&gt;




&lt;h2&gt;
  
  
  9. The Extra Section: The Legal &amp;amp; Compliance Nightmare
&lt;/h2&gt;

&lt;p&gt;Everyone focuses on technical recovery. But after a virus attack, &lt;strong&gt;your legal obligations begin&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Data breach notification laws:&lt;/strong&gt; If the virus exfiltrated data (even temporarily), you may have 72 hours (GDPR) or 30 days (CCPA) to notify regulators and affected individuals. Failure = fines up to €20M or 4% of global revenue.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chain of custody:&lt;/strong&gt; If you reboot or tamper with an infected machine before forensics, you may destroy evidence needed for insurance claims or lawsuits.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cyber insurance voidance:&lt;/strong&gt; Most policies require "reasonable security measures" (e.g., MFA, patching within 30 days). If a virus exploited a 6-month-old known vulnerability, your claim could be &lt;strong&gt;denied&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Third-party liability:&lt;/strong&gt; Did your infected system send virus-laden emails to clients? You could be liable for &lt;em&gt;their&lt;/em&gt; downtime and recovery costs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Action item:&lt;/strong&gt; Add your legal counsel and cyber insurer to your incident response plan &lt;em&gt;before&lt;/em&gt; the virus hits. Not after.&lt;/p&gt;




&lt;h2&gt;
  
  
  📚 Further Reading &amp;amp; Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.fbi.gov/news/stories/iloveyou-virus-20-years-later" rel="noopener noreferrer"&gt;Official ILOVEYOU Virus Analysis – FBI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.cisa.gov/stopransomware/malware" rel="noopener noreferrer"&gt;CISA Alert: Understanding and Mitigating Malware&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-83r1.pdf" rel="noopener noreferrer"&gt;NIST Guide to Malware Incident Prevention and Handling&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Full cybersecurity insights and tools:&lt;/strong&gt; &lt;a href="https://peternasarah.github.io/permi" rel="noopener noreferrer"&gt;peternasarah.github.io/permi&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;strong&gt;Over to you:&lt;/strong&gt; Have you ever experienced a virus outbreak at work? What was the "patient zero" file? Let’s discuss in the comments. 👇&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Tags: #CyberSecurity #Malware #InfoSec #IncidentResponse #DataBreach #DevCommunity&lt;/em&gt;&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>malware</category>
      <category>infosec</category>
      <category>incidentresponse</category>
    </item>
    <item>
      <title>Most security tools still use 20-year-old rules. That's why I built Permi.</title>
      <dc:creator>Peter Nasarah Dashe</dc:creator>
      <pubDate>Sun, 12 Apr 2026 13:24:10 +0000</pubDate>
      <link>https://forem.com/peternasarah/most-security-tools-still-use-20-year-old-rules-thats-why-i-built-permi-5bj7</link>
      <guid>https://forem.com/peternasarah/most-security-tools-still-use-20-year-old-rules-thats-why-i-built-permi-5bj7</guid>
      <description>&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Old-school vulnerability scanners work like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;If&lt;/strong&gt; response matches pattern → &lt;strong&gt;safe&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Else&lt;/strong&gt; → &lt;strong&gt;unsafe&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That logic was fine in the early 2000s. But modern systems are dynamic, complex, and full of legitimate edge cases. Those same tools now flood you with false positives.&lt;/p&gt;

&lt;p&gt;You run a scan. It says 50 "critical" issues. You spend hours filtering. Only 8 are real. That's not security—that's a productivity killer.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Permi Does Differently
&lt;/h2&gt;

&lt;p&gt;Permi is an AI-powered vulnerability scanner built for today's development workflow.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Reduces false positives&lt;/strong&gt; with intelligent filtering.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Works where you code&lt;/strong&gt; – CLI now, VS Code &amp;amp; GitHub actions coming soon.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One command&lt;/strong&gt; to scan websites or source code.&lt;/li&gt;
&lt;/ul&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
bash
pip install permi
permi scan --url https://your-site.com

##Early stage, honest feedback needed
Permi is still in early development. It's stable, but you might find rough edges. If something is confusing, broken, or missing:

Comment below or DM me.
Open an issue on GitHub.
Your feedback will directly shape Permi into the tool developers actually need.

&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Peternasarah" rel="noopener noreferrer"&gt;
        Peternasarah
      &lt;/a&gt; / &lt;a href="https://github.com/Peternasarah/permi" rel="noopener noreferrer"&gt;
        permi
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      AI-powered vulnerability scanner for Nigerian developers and global SMBs
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Permi&lt;/h1&gt;
&lt;/div&gt;

&lt;p&gt;&lt;a href="https://pypi.org/project/permi/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/35b45d887e3627b6ba65629c4b1a6a8488c6b75494af4404558b758b87c91f6e/68747470733a2f2f62616467652e667572792e696f2f70792f7065726d692e737667" alt="PyPI version"&gt;&lt;/a&gt;
&lt;a href="https://github.com/Peternasarah/permi/actions/workflows/ci.yml" rel="noopener noreferrer"&gt;&lt;img src="https://github.com/Peternasarah/permi/actions/workflows/ci.yml/badge.svg" alt="CI"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI-powered vulnerability scanner for Nigerian developers and global SMBs.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Permi scans live websites and source code for security vulnerabilities, then uses AI to filter out false positives — so you only see findings that actually matter.&lt;/p&gt;

&lt;p&gt;Built in Nigeria. For Nigeria. Then for the world.&lt;/p&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Two scan modes&lt;/h2&gt;
&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;
&lt;code&gt;--url&lt;/code&gt; — Live web scanning&lt;/h3&gt;
&lt;/div&gt;

&lt;p&gt;Point Permi at any website. It crawls the pages, tests for SQL injection, XSS, and checks security headers on the running application.&lt;/p&gt;

&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;permi scan --url https://yoursite.com&lt;/pre&gt;

&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;
&lt;code&gt;--path&lt;/code&gt; — Static source code scanning&lt;/h3&gt;

&lt;/div&gt;

&lt;p&gt;Point Permi at a local folder or GitHub repository. It reads your code files, matches vulnerability patterns, and flags issues before they ship.&lt;/p&gt;

&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;permi scan --path ./myapp
permi scan --path https://github.com/user/repo&lt;/pre&gt;

&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What Permi detects&lt;/h2&gt;

&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Web scanning (&lt;code&gt;--url&lt;/code&gt;)&lt;/h3&gt;

&lt;/div&gt;


&lt;ul&gt;

&lt;li&gt;

&lt;strong&gt;SQL Injection&lt;/strong&gt; — error-based, boolean-based blind, time-based blind&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Cross-Site Scripting (XSS)&lt;/strong&gt; — reflected XSS with context-aware testing&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Missing Security Headers&lt;/strong&gt; — HSTS, CSP, X-Frame-Options, X-Content-Type-Options&lt;/li&gt;

&lt;li&gt;…&lt;/li&gt;

&lt;/ul&gt;
&lt;/div&gt;
&lt;br&gt;
  &lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Peternasarah/permi" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;p&gt;PyPI: pip install permi&lt;br&gt;
GitHub: peternasarah/permi&lt;br&gt;
Let's kill false positives together. 🔥 &lt;br&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%2Fn16vusodviazyrw20qff.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%2Fn16vusodviazyrw20qff.png" alt="Permi CLI scanning a live URL for vulnerabilities" width="786" height="595"&gt;&lt;/a&gt; Permi CLI scanning a live URL for vulnerabilities&lt;br&gt;
&lt;/p&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>cybersecurity</category>
      <category>devsecops</category>
      <category>python</category>
      <category>opensource</category>
    </item>
    <item>
      <title>250 Clones in 4 Days! Thank You 🙌</title>
      <dc:creator>Peter Nasarah Dashe</dc:creator>
      <pubDate>Sat, 11 Apr 2026 14:09:01 +0000</pubDate>
      <link>https://forem.com/peternasarah/250-clones-in-4-days-thank-you-cke</link>
      <guid>https://forem.com/peternasarah/250-clones-in-4-days-thank-you-cke</guid>
      <description>&lt;p&gt;Permi just hit a huge milestone, and I couldn't be more grateful. Now, I need your help to make it even better. &lt;/p&gt;

&lt;p&gt;I'm building this in public, and your feedback is the most valuable tool I have.&lt;/p&gt;

&lt;h2&gt;
  
  
  How is your experience so far?
&lt;/h2&gt;

&lt;p&gt;If you've run &lt;code&gt;permi scan&lt;/code&gt;, please leave a comment with one of these words:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔴 &lt;strong&gt;"broke"&lt;/strong&gt; – if something crashed&lt;/li&gt;
&lt;li&gt;🟡 &lt;strong&gt;"confusing"&lt;/strong&gt; – if it wasn't clear&lt;/li&gt;
&lt;li&gt;🟢 &lt;strong&gt;"useful"&lt;/strong&gt; – if it helped&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Alternatively, feel free to DM me with specific details. No pitch—just trying to build something helpful.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Peternasarah" rel="noopener noreferrer"&gt;
        Peternasarah
      &lt;/a&gt; / &lt;a href="https://github.com/Peternasarah/permi" rel="noopener noreferrer"&gt;
        permi
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      AI-powered vulnerability scanner for Nigerian developers and global SMBs
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Permi&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://pypi.org/project/permi/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/35b45d887e3627b6ba65629c4b1a6a8488c6b75494af4404558b758b87c91f6e/68747470733a2f2f62616467652e667572792e696f2f70792f7065726d692e737667" alt="PyPI version"&gt;&lt;/a&gt;
&lt;a href="https://github.com/Peternasarah/permi/actions/workflows/ci.yml" rel="noopener noreferrer"&gt;&lt;img src="https://github.com/Peternasarah/permi/actions/workflows/ci.yml/badge.svg" alt="CI"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;AI-powered vulnerability scanner for Nigerian developers and global SMBs.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Permi scans live websites and source code for security vulnerabilities, then uses AI to filter out false positives — so you only see findings that actually matter.&lt;/p&gt;
&lt;p&gt;Built in Nigeria. For Nigeria. Then for the world.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Two scan modes&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;
&lt;code&gt;--url&lt;/code&gt; — Live web scanning&lt;/h3&gt;
&lt;/div&gt;
&lt;p&gt;Point Permi at any website. It crawls the pages, tests for SQL injection, XSS, and checks security headers on the running application.&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;permi scan --url https://yoursite.com&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;
&lt;code&gt;--path&lt;/code&gt; — Static source code scanning&lt;/h3&gt;

&lt;/div&gt;
&lt;p&gt;Point Permi at a local folder or GitHub repository. It reads your code files, matches vulnerability patterns, and flags issues before they ship.&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;permi scan --path ./myapp
permi scan --path https://github.com/user/repo&lt;/pre&gt;

&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What Permi detects&lt;/h2&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Web scanning (&lt;code&gt;--url&lt;/code&gt;)&lt;/h3&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SQL Injection&lt;/strong&gt; — error-based, boolean-based blind, time-based blind&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cross-Site Scripting (XSS)&lt;/strong&gt; — reflected XSS with context-aware testing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Missing Security Headers&lt;/strong&gt; — HSTS, CSP, X-Frame-Options, X-Content-Type-Options&lt;/li&gt;
&lt;li&gt;…&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Peternasarah/permi" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;&lt;a href="https://github.com/peternasarah/permi/issues" class="crayons-btn crayons-btn--primary" rel="noopener noreferrer"&gt;Open an issue on GitHub&lt;/a&gt;
&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>opensource</category>
      <category>feedback</category>
      <category>productivity</category>
    </item>
    <item>
      <title>250 Clones in 4 Days: A Student's Journey Building an AI Security Tool</title>
      <dc:creator>Peter Nasarah Dashe</dc:creator>
      <pubDate>Tue, 07 Apr 2026 12:07:05 +0000</pubDate>
      <link>https://forem.com/peternasarah/250-clones-in-4-days-a-students-journey-building-an-ai-security-tool-1mna</link>
      <guid>https://forem.com/peternasarah/250-clones-in-4-days-a-students-journey-building-an-ai-security-tool-1mna</guid>
      <description>&lt;h2&gt;
  
  
  🚀 250 Clones in 4 Days: A Student's Journey Building an AI Security Tool
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;By Nasarah Peter Dashe&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;em&gt;Cybersecurity Student @ UNIJOS | Founder of Permi&lt;/em&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  The Numbers That Surprised Me
&lt;/h2&gt;

&lt;p&gt;On April 2nd, 2026, I did something terrifying.&lt;/p&gt;

&lt;p&gt;I typed &lt;code&gt;pip install permi&lt;/code&gt; into my terminal, ran a few final tests, and hit &lt;strong&gt;publish&lt;/strong&gt; on PyPI. A vulnerability scanner built by a student with no funding, no team, and no prior accomplishments was now available for anyone in the world to download.&lt;/p&gt;

&lt;p&gt;Four days later, GitHub told me something I didn't expect:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;250 clones.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;62 developers per day, on average, downloading Permi. Testing it. Breaking it. Some even giving feedback.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This isn't a Silicon Valley startup with millions in backing. This is a cybersecurity student at the University of Jos, building in public, one commit at a time.&lt;/p&gt;


&lt;h2&gt;
  
  
  The Problem That Wouldn't Leave Me Alone
&lt;/h2&gt;

&lt;p&gt;I've spent hours staring at security scan reports. You know the kind: 47 "critical" vulnerabilities flagged, only 4 of them real. The rest? False positives. Misconfigurations that don't apply. Warnings about libraries I wasn't even using.&lt;/p&gt;

&lt;p&gt;That's not security. That's noise.&lt;/p&gt;

&lt;p&gt;And noise has a cost:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Developers learn to ignore alerts&lt;/li&gt;
&lt;li&gt;Real vulnerabilities slip through&lt;/li&gt;
&lt;li&gt;Breaches happen&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The recent LiteLLM supply chain attack proved that even the tools we trust to secure us can become the vulnerability. Three security tools compromised in five days using the same stolen credentials. The attacker didn't exploit the tools – they exploited the CI/CD access those tools had.&lt;/p&gt;

&lt;p&gt;I saw this gap and couldn't unsee it.&lt;/p&gt;

&lt;p&gt;Nigerian developers and SMBs are stuck with expensive, complex tools built for Western enterprises. Tools that don't understand our local fintech APIs, our hosting constraints, or the unique threats we face. Tools that interrupt our flow instead of supporting it.&lt;/p&gt;

&lt;p&gt;So I decided to build something different.&lt;/p&gt;


&lt;h2&gt;
  
  
  What Permi Is (And Isn't)
&lt;/h2&gt;

&lt;p&gt;Permi is an &lt;strong&gt;AI-powered vulnerability scanner&lt;/strong&gt; designed for one job: meet developers where they already work.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pip install permi&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;✅ Live&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CLI scan command&lt;/td&gt;
&lt;td&gt;✅ Live&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Web vulnerability detection (SQLi, XSS, etc.)&lt;/td&gt;
&lt;td&gt;✅ Live&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI false-positive classifier&lt;/td&gt;
&lt;td&gt;🚧 In progress&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;VS Code extension&lt;/td&gt;
&lt;td&gt;🔜 Planned&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GitHub Action&lt;/td&gt;
&lt;td&gt;🔜 Planned&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;One command to scan a website:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;permi
permi scan &lt;span class="nt"&gt;--url&lt;/span&gt; https://example.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;No context switching.&lt;/strong&gt; CLI first, with IDE integrations coming soon.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI that actually helps.&lt;/strong&gt; False-positive filtering, remediation suggestions, risk prioritization.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Built for Nigeria first.&lt;/strong&gt; Affordable pricing, local vulnerability checks, NDPR compliance mapping.&lt;/p&gt;

&lt;p&gt;Permi isn't trying to replace every security tool. It's trying to fix the parts that frustrate developers most.&lt;/p&gt;




&lt;h2&gt;
  
  
  What 250 Clones Tell Me
&lt;/h2&gt;

&lt;p&gt;Numbers without context are just numbers. Here's what these 250 clones mean to me:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. The problem is real
&lt;/h3&gt;

&lt;p&gt;Developers don't clone random repos. They clone tools they intend to use or learn from.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. My announcement worked
&lt;/h3&gt;

&lt;p&gt;The spike of 70 clones in a single day came right after I shared Permi on social media. Community matters.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Word of mouth is happening
&lt;/h3&gt;

&lt;p&gt;250 clones in 4 days means people are sharing my link. I don't have a marketing budget. I have developers who see value.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. I'm no longer "pre-product"
&lt;/h3&gt;

&lt;p&gt;An investor recently told me Permi had "no traction." Now I have evidence that the market disagrees.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I've Learned (In Just 4 Days)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Shipping is everything.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
An imperfect product in the wild is infinitely more valuable than a perfect product in your head.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Traction talks.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
No amount of pitch deck polish replaces a developer typing &lt;code&gt;pip install permi&lt;/code&gt; and running your code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Community is my unfair advantage.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Senior security leaders accepted my connection requests. Practicing security analysts took time to explain real-world misconfigurations like &lt;code&gt;.env&lt;/code&gt; leaks and dependency confusion. Security companies engaged with my posts.&lt;/p&gt;

&lt;p&gt;These aren't just names. They're people who saw a student trying to build something real and decided to help.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Next for Permi
&lt;/h2&gt;

&lt;p&gt;The MVP is live. Now I'm building:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI false-positive classifier&lt;/strong&gt; – cut the noise by 80%&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;VS Code extension&lt;/strong&gt; – real-time scanning as you code&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Action&lt;/strong&gt; – automatic PR comments and blocking&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API scanner&lt;/strong&gt; – for fintechs and backend teams&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I've also applied to the &lt;strong&gt;iDICE Founders Lab&lt;/strong&gt; – a ₦10 million grant program for early-stage Nigerian founders. If selected, I'll use the funding to focus on Permi full-time, hire a part-time developer, and reach our first 500 paying users.&lt;/p&gt;




&lt;h2&gt;
  
  
  I Need Your Help
&lt;/h2&gt;

&lt;p&gt;I'm not writing this to brag about 250 clones. I'm writing this because I genuinely believe the best products are built with the community, not in isolation.&lt;/p&gt;

&lt;p&gt;So here's my ask:&lt;/p&gt;

&lt;p&gt;If you're a developer, founder, or security professional:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Try Permi:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   pip &lt;span class="nb"&gt;install &lt;/span&gt;permi
   permi scan &lt;span class="nt"&gt;--url&lt;/span&gt; https://your-site.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Break it.&lt;/strong&gt; Tell me what's missing, what's confusing, what's broken.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Share this post&lt;/strong&gt; with one person who struggles with security noise.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;And if you've ever ignored a security alert because you've been burned by false positives before – drop a comment. I want to hear your story.&lt;/p&gt;




&lt;h2&gt;
  
  
  One Last Thing
&lt;/h2&gt;

&lt;p&gt;Four days ago, Permi was just a PyPI package.&lt;/p&gt;

&lt;p&gt;Today, it's been cloned 250 times.&lt;/p&gt;

&lt;p&gt;Tomorrow, I'm back to building.&lt;/p&gt;

&lt;p&gt;Because that's what founders do. We ship, we learn, we iterate. And we do it in public, so everyone can see that a student at UNIJOS with no funding can still build tools that matter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;pip install permi&lt;/code&gt; and let's secure Nigeria's developers, one scan at a time.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🔗 Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/peternasarah/permi" rel="noopener noreferrer"&gt;github.com/peternasarah/permi&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PyPI:&lt;/strong&gt; &lt;a href="https://pypi.org/project/permi" rel="noopener noreferrer"&gt;pypi.org/project/permi&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Twitter/X:&lt;/strong&gt; &lt;a href="https://twitter.com/peternasarah" rel="noopener noreferrer"&gt;@peternasarah&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Permi:&lt;/strong&gt; &lt;a href="https://peternasarah.github.io/permi" rel="noopener noreferrer"&gt;https://peternasarah.github.io/permi&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🏷️ Tags
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;cybersecurity&lt;/code&gt; &lt;code&gt;devsecops&lt;/code&gt; &lt;code&gt;opensource&lt;/code&gt; &lt;code&gt;python&lt;/code&gt; &lt;code&gt;buildinpublic&lt;/code&gt; &lt;code&gt;supplychainsecurity&lt;/code&gt;&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>cybersecurity</category>
      <category>devsecops</category>
      <category>opensource</category>
      <category>python</category>
    </item>
    <item>
      <title>The Vulnerability Scanner That Became the Vulnerability</title>
      <dc:creator>Peter Nasarah Dashe</dc:creator>
      <pubDate>Tue, 31 Mar 2026 21:27:31 +0000</pubDate>
      <link>https://forem.com/peternasarah/the-vulnerability-scanner-that-became-the-vulnerability-ak8</link>
      <guid>https://forem.com/peternasarah/the-vulnerability-scanner-that-became-the-vulnerability-ak8</guid>
      <description>&lt;h2&gt;
  
  
  The Story
&lt;/h2&gt;

&lt;p&gt;A vulnerability scanner got hacked.&lt;/p&gt;

&lt;p&gt;Then the hackers used it to poison one of the most popular AI libraries on the planet.&lt;/p&gt;

&lt;p&gt;That happened last week.&lt;/p&gt;

&lt;p&gt;Here's what went down:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;March 19&lt;/strong&gt; — TeamPCP compromised Aqua Security's Trivy, one of the most trusted open-source vulnerability scanners in DevSecOps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;March 23&lt;/strong&gt; — Using stolen credentials, they compromised Checkmarx's KICS GitHub Actions and VS Code extensions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;March 24&lt;/strong&gt; — Those same credentials gave them access to LiteLLM's CI/CD pipeline.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Is LiteLLM?
&lt;/h2&gt;

&lt;p&gt;LiteLLM is the universal AI gateway used across &lt;strong&gt;36% of all cloud environments&lt;/strong&gt;. It averages &lt;strong&gt;95 million downloads per month&lt;/strong&gt;. It sits between applications and 100+ AI providers—holding API keys for OpenAI, Anthropic, AWS, and Azure in one place.&lt;/p&gt;

&lt;p&gt;The attackers published two backdoored versions to PyPI.&lt;/p&gt;




&lt;h2&gt;
  
  
  What the Malware Did
&lt;/h2&gt;

&lt;p&gt;In just three hours, the malware:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Harvested SSH keys, cloud credentials, and Kubernetes secrets&lt;/li&gt;
&lt;li&gt;Deployed privileged pods to every node in Kubernetes clusters&lt;/li&gt;
&lt;li&gt;Installed a persistent backdoor polling for additional payloads&lt;/li&gt;
&lt;li&gt;Swept cryptocurrency wallets and &lt;code&gt;.env&lt;/code&gt; files&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;TeamPCP posted this on Telegram:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"These companies were built to protect your supply chains yet they can't even protect their own."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;They also announced a partnership with LAPSUS$.&lt;/p&gt;

&lt;p&gt;Let that land.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Irony That Kills
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Victim&lt;/th&gt;
&lt;th&gt;Their Job&lt;/th&gt;
&lt;th&gt;What Happened&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Aqua Trivy&lt;/td&gt;
&lt;td&gt;Vulnerability scanner&lt;/td&gt;
&lt;td&gt;Got hacked&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Checkmarx KICS&lt;/td&gt;
&lt;td&gt;Infrastructure as Code security&lt;/td&gt;
&lt;td&gt;Got hacked&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LiteLLM&lt;/td&gt;
&lt;td&gt;AI gateway with 95M downloads&lt;/td&gt;
&lt;td&gt;Got backdoored&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;The companies selling supply chain security became the supply chain risk.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What This Means for Developers
&lt;/h2&gt;

&lt;p&gt;If Trivy, KICS, and LiteLLM—with all their resources and visibility—can be compromised this way, what does that mean for the rest of us?&lt;/p&gt;

&lt;p&gt;More importantly: &lt;strong&gt;What should we be asking our security tool providers right now?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I'm a cybersecurity student at UNIJOS, and I've been sitting with this question all week.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Question I Keep Coming Back To
&lt;/h2&gt;

&lt;p&gt;If you're using security tools in your workflow—scanners, CI/CD integrations, AI libraries—&lt;strong&gt;what's one thing you wish you knew about their security before you started using them?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not asking for product pitches. Genuinely trying to understand how developers and security professionals are thinking about this.&lt;/p&gt;

&lt;p&gt;Drop your thoughts in the comments. I'll read every single one.&lt;/p&gt;




&lt;h2&gt;
  
  
  A Quick Reflection
&lt;/h2&gt;

&lt;p&gt;This attack reinforced something for me:&lt;/p&gt;

&lt;p&gt;Firewalls aren't enough. Tools aren't enough. Even the tools built to protect us need to be secured.&lt;/p&gt;

&lt;p&gt;If we're building on top of AI infrastructure, we have to start asking harder questions about the tools we trust—because right now, the attackers are asking the right questions.&lt;/p&gt;

&lt;p&gt;Let's learn together.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;If you found this helpful, consider sharing it with someone who's building on AI infrastructure. We need to have this conversation.&lt;/em&gt;&lt;/p&gt;




</description>
      <category>cybersecurity</category>
      <category>devsecops</category>
      <category>opensource</category>
      <category>supplychainsecurity</category>
    </item>
    <item>
      <title>Reducing False Positives in XSS Detection: Designing Confirmation-Based Scanners</title>
      <dc:creator>Peter Nasarah Dashe</dc:creator>
      <pubDate>Thu, 26 Feb 2026 23:53:23 +0000</pubDate>
      <link>https://forem.com/peternasarah/reducing-false-positives-in-xss-detection-designing-confirmation-based-scanners-2n26</link>
      <guid>https://forem.com/peternasarah/reducing-false-positives-in-xss-detection-designing-confirmation-based-scanners-2n26</guid>
      <description>&lt;p&gt;Most beginner vulnerability scanners detect XSS using a simple pattern:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Inject payload&lt;/li&gt;
&lt;li&gt;Check if payload appears in response&lt;/li&gt;
&lt;li&gt;If yes → flag vulnerability&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This approach is fast. It is also deeply flawed.&lt;/p&gt;

&lt;p&gt;In real-world applications, &lt;strong&gt;reflection alone does not equal exploitability&lt;/strong&gt;. Reflection without context analysis leads to massive false positives.&lt;/p&gt;

&lt;p&gt;In this article, I'll walk you through a structured approach to reducing false positives in reflected XSS detection.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Core Problem: Reflection ≠ Execution
&lt;/h2&gt;

&lt;p&gt;A payload appearing in the response does not mean:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It executes&lt;/li&gt;
&lt;li&gt;It appears in a dangerous context&lt;/li&gt;
&lt;li&gt;It bypasses encoding&lt;/li&gt;
&lt;li&gt;It breaks out of attributes or scripts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;You searched for: &lt;span class="ni"&gt;&amp;amp;lt;&lt;/span&gt;script&lt;span class="ni"&gt;&amp;amp;gt;&lt;/span&gt;alert(1)&lt;span class="ni"&gt;&amp;amp;lt;&lt;/span&gt;/script&lt;span class="ni"&gt;&amp;amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A naive scanner flags this. But the payload is HTML-encoded. There is no XSS. Yet many tools still report it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Designing a Confirmation-Based Detection Model
&lt;/h2&gt;

&lt;p&gt;Instead of binary reflection checks, a structured scanner should:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Inject a uniquely identifiable marker&lt;/li&gt;
&lt;li&gt;Analyze where it appears&lt;/li&gt;
&lt;li&gt;Classify context&lt;/li&gt;
&lt;li&gt;Confirm exploitability conditions&lt;/li&gt;
&lt;li&gt;Only then report&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This changes detection from &lt;strong&gt;pattern-matching&lt;/strong&gt; to &lt;strong&gt;context validation&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 1: Unique Marker Injection
&lt;/h2&gt;

&lt;p&gt;Instead of injecting generic payloads like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;alert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use uniquely identifiable markers:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;PERMI_XSS_9fA21
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This allows precise reflection tracking without accidental matches.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 2: Context Classification
&lt;/h2&gt;

&lt;p&gt;Where did the marker appear?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Inside HTML body text&lt;/li&gt;
&lt;li&gt;Inside attribute value&lt;/li&gt;
&lt;li&gt;Inside JavaScript block&lt;/li&gt;
&lt;li&gt;Inside HTML tag name&lt;/li&gt;
&lt;li&gt;Inside comment&lt;/li&gt;
&lt;li&gt;Inside encoded output&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each context has different exploitability rules.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Safe contexts:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fully HTML encoded&lt;/li&gt;
&lt;li&gt;Inside comment&lt;/li&gt;
&lt;li&gt;Inside text node without script context&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Potentially dangerous contexts:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Inside unquoted attribute&lt;/li&gt;
&lt;li&gt;Inside JavaScript string&lt;/li&gt;
&lt;li&gt;Inside event handler&lt;/li&gt;
&lt;li&gt;Inside script block&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Context matters more than reflection.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 3: Encoding Detection
&lt;/h2&gt;

&lt;p&gt;Before reporting, confirm:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is &lt;code&gt;&amp;lt;&lt;/code&gt; encoded?&lt;/li&gt;
&lt;li&gt;Is &lt;code&gt;"&lt;/code&gt; encoded?&lt;/li&gt;
&lt;li&gt;Is &lt;code&gt;'&lt;/code&gt; encoded?&lt;/li&gt;
&lt;li&gt;Are special characters escaped?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the payload is consistently encoded, it should &lt;strong&gt;not&lt;/strong&gt; be flagged.&lt;/p&gt;

&lt;p&gt;A confirmation-based engine checks &lt;strong&gt;transformation patterns&lt;/strong&gt; instead of blindly matching strings.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 4: Multi-Step Validation
&lt;/h2&gt;

&lt;p&gt;Instead of one payload, use controlled variations:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Plain marker&lt;/li&gt;
&lt;li&gt;Attribute-breaking marker&lt;/li&gt;
&lt;li&gt;Script-breaking marker&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If only the plain marker reflects but breaking payloads do not alter structure, likelihood of exploitation decreases.&lt;/p&gt;

&lt;p&gt;This moves detection toward &lt;strong&gt;probabilistic validation&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Moving Beyond Rule-Based Logic
&lt;/h2&gt;

&lt;p&gt;Traditional scanners operate with:&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="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;reflected&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;report&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A better approach introduces &lt;strong&gt;weighted scoring&lt;/strong&gt;:&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="n"&gt;confidence&lt;/span&gt; &lt;span class="o"&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;reflection_weight&lt;/span&gt;  &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;0.3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;context_weight&lt;/span&gt;     &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;0.4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;encoding_bypass&lt;/span&gt;    &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;0.2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;breakout_success&lt;/span&gt;   &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;0.1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Only report if the score exceeds a defined threshold. This reduces false positives dramatically.&lt;/p&gt;




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

&lt;p&gt;False positives have real consequences:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Developer fatigue&lt;/li&gt;
&lt;li&gt;Security team distrust&lt;/li&gt;
&lt;li&gt;Ignored reports&lt;/li&gt;
&lt;li&gt;Delayed remediation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Precision builds trust. Noise destroys it.&lt;/p&gt;

&lt;p&gt;If developers repeatedly see inaccurate reports, they stop believing the scanner.&lt;/p&gt;

&lt;p&gt;A well-designed tool should prefer &lt;strong&gt;fewer findings at higher confidence&lt;/strong&gt; over massive noisy output.&lt;/p&gt;




&lt;h2&gt;
  
  
  Architectural Considerations
&lt;/h2&gt;

&lt;p&gt;To support confirmation-based scanning:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Separate scanner modules from UI&lt;/li&gt;
&lt;li&gt;Centralize evidence formatting&lt;/li&gt;
&lt;li&gt;Use structured vulnerability models&lt;/li&gt;
&lt;li&gt;Keep payload sets modular&lt;/li&gt;
&lt;li&gt;Avoid embedding logic inside GUI layers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Clean architecture makes improvement possible. Messy architecture locks in technical debt.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Bigger Picture
&lt;/h2&gt;

&lt;p&gt;Reducing false positives is not about clever payloads. It's about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Context understanding&lt;/li&gt;
&lt;li&gt;Confirmation logic&lt;/li&gt;
&lt;li&gt;Structured scoring&lt;/li&gt;
&lt;li&gt;Thoughtful design&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Security tooling should evolve from brute-force injection engines to &lt;strong&gt;intelligent validation systems&lt;/strong&gt;. That's where the real engineering challenge lies.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;If you're building a scanner, don't ask: &lt;em&gt;"Did it reflect?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Ask: &lt;em&gt;"In what context did it reflect, and does that context allow execution?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The difference between those two questions is the difference between &lt;strong&gt;noise&lt;/strong&gt; and &lt;strong&gt;intelligence&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>appsec</category>
      <category>ai</category>
      <category>security</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
