<?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: Ramon Eliecer Taboada Olivella</title>
    <description>The latest articles on DEV Community by Ramon Eliecer Taboada Olivella (@ramon_eliecertaboadaoli).</description>
    <link>https://dev.to/ramon_eliecertaboadaoli</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%2F4234064%2F76e9a1e5-3121-4443-9a4f-95743d8fbad4.png</url>
      <title>DEV Community: Ramon Eliecer Taboada Olivella</title>
      <link>https://dev.to/ramon_eliecertaboadaoli</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ramon_eliecertaboadaoli"/>
    <language>en</language>
    <item>
      <title>I built a 100% local security auditor for Windows &amp; Linux</title>
      <dc:creator>Ramon Eliecer Taboada Olivella</dc:creator>
      <pubDate>Sun, 08 Nov 2026 20:02:24 +0000</pubDate>
      <link>https://dev.to/ramon_eliecertaboadaoli/i-built-a-100-local-security-auditor-for-windows-linux-3b95</link>
      <guid>https://dev.to/ramon_eliecertaboadaoli/i-built-a-100-local-security-auditor-for-windows-linux-3b95</guid>
      <description>&lt;p&gt;Most "security scanners" ship your system data to their servers before showing you a score. I wanted the opposite: a tool that never leaves your machine. So I built VulnCheck Local — an open-source (MIT), local-first security auditor for Windows 10/11 and Linux (Ubuntu/Debian).&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="//github.com/rtostudioco/vulncheck-local"&gt;github.com/rtostudioco/vulncheck-local&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The problem&lt;br&gt;
Home labs, small businesses and offline/air-gapped machines have real security posture questions — firewall on? SSH hardened? password policies enforced? — but the tools that answer them usually demand cloud accounts, telemetry, or agents that phone home. And CIS Benchmarks documents, while excellent, are hundreds of pages you have to check by hand.&lt;/p&gt;

&lt;p&gt;What it does&lt;br&gt;
Automatic platform detection — Windows gets read-only PowerShell collectors, Linux gets Bash collectors. Same scorecard on both.&lt;br&gt;
27 versioned rules (VC-FW-001, VC-AC-003, …) grouped CIS-style: firewall, account security, endpoint protection, services, network exposure, updates, backup.&lt;br&gt;
Honest scoring 0–100 with fixed weights: CRITICAL −25, HIGH −15, MEDIUM −7, LOW −3. Grades: A ≥ 90, B ≥ 80, C ≥ 65, D ≥ 50.&lt;br&gt;
Every check resolves to an explicit state: PASS, FAIL, WARNING, NOT_APPLICABLE, NOT_ASSESSED or ERROR. A check that couldn't run is never reported as "secure" — it just lowers your assessment coverage.&lt;br&gt;
Reports: branded PDF, JSON, CSV. Every run is persisted in SQLite with full history.&lt;br&gt;
Bilingual UI (English / Español), one click in the header.&lt;br&gt;
Optional AI explanations — fully opt-in, consent-gated, off by default. The only feature that can ever reach the network, and only if you flip the switch.&lt;br&gt;
Design decisions worth stealing&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Command allowlist, not string building. Collectors can only execute IDs from a fixed allowlist (24 PowerShell + 8 Bash collectors). User input never reaches a command line — that kills the classic injection vector in "run this command" tools.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Read-only is a hard promise. The engine collects evidence; it never modifies config, never disables services, never touches credentials. Remediation is display-only: problem → impact → fix → verify.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;"Unknown" is a first-class state. Most scanners treat "couldn't check" as "pass". That's how false confidence is born. Here, if evidence is missing, you get NOT_ASSESSED and lower coverage — the score only counts what was actually verified.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;One SQLite file. No database server. Prisma + SQLite means the whole state of the app is one file you can back up or delete.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Under the hood&lt;br&gt;
Next.js 16 (App Router) + TypeScript strict, Tailwind CSS 4 + shadcn/ui, Prisma + SQLite, jsPDF for reports. The engine is a clean pipeline: collect → audit → score → report, with rules as versioned data (each has an ID and version, so historical scores stay comparable).&lt;/p&gt;

&lt;p&gt;Try it (4 commands)&lt;br&gt;
git clone &lt;a href="https://github.com/rtostudioco/vulncheck-localcd" rel="noopener noreferrer"&gt;https://github.com/rtostudioco/vulncheck-localcd&lt;/a&gt; vulncheck-local &amp;amp;&amp;amp; npm installcopy .env.example .env   # Windows  |  cp .env.example .env (Linux)npx prisma db push &amp;amp;&amp;amp; npm run dev&lt;br&gt;
Open localhost:3000, hit Run New Audit, get your score.&lt;/p&gt;

&lt;p&gt;What's next&lt;br&gt;
More rules, remediation dry-runs, and scheduled audits are on the roadmap. It's MIT licensed — issues and PRs are very welcome. If it's useful to you, a ⭐ on the repo helps a lot!&lt;/p&gt;

&lt;p&gt;github.com/rtostudioco/vulncheck-local&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>opensource</category>
      <category>security</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
