<?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: Tasha · DataSec Chronicles</title>
    <description>The latest articles on DEV Community by Tasha · DataSec Chronicles (@data_secchronicles).</description>
    <link>https://dev.to/data_secchronicles</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%2F239818%2Fb22d5cf6-8479-4113-9f15-cbff48cd7a5b.JPG</url>
      <title>DEV Community: Tasha · DataSec Chronicles</title>
      <link>https://dev.to/data_secchronicles</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/data_secchronicles"/>
    <language>en</language>
    <item>
      <title>The Rootkit Exorcist: Summoning Local AI to Investigate Suspicious Scripts 👻</title>
      <dc:creator>Tasha · DataSec Chronicles</dc:creator>
      <pubDate>Tue, 27 Oct 2026 14:47:28 +0000</pubDate>
      <link>https://dev.to/data_secchronicles/the-rootkit-exorcist-summoning-local-ai-to-investigate-suspicious-scripts-an1</link>
      <guid>https://dev.to/data_secchronicles/the-rootkit-exorcist-summoning-local-ai-to-investigate-suspicious-scripts-an1</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week4-2026-10-26"&gt;Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The terminal is blessed. The scripts are not.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;For the final week of Hacktoberfest 2026, I built &lt;strong&gt;The Rootkit Exorcist&lt;/strong&gt;, a Python command-line tool that scans scripts for suspicious patterns and uses locally running AI to help explain the findings.&lt;/p&gt;

&lt;p&gt;The theme was &lt;em&gt;Ghost in the Machine&lt;/em&gt;, and I decided to take that rather literally.&lt;/p&gt;

&lt;p&gt;What if a cybersecurity investigation tool had an AI-powered exorcist personality?&lt;/p&gt;

&lt;p&gt;The result is a tool with two modes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;SOC Mode:&lt;/strong&gt; A professional, evidence-focused presentation of suspicious patterns and AI-assisted investigation notes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Exorcist Mode:&lt;/strong&gt; The same underlying analysis, but with Halloween flair and a theatrical AI personality I affectionately call Father Llama.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both modes use the same static detection engine.&lt;/p&gt;

&lt;p&gt;I'm a senior data analyst transitioning into cybersecurity, and this project gave me another opportunity to connect my analytical background with security investigation workflows.&lt;/p&gt;

&lt;p&gt;It also gave me an excuse to put this in a terminal:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✝ THE POWER OF CHMOD COMPELS YOU! ✝&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Watch The Rootkit Exorcist in action:&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/L4wPpkg0nAQ" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;The demonstration includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;SOC Mode:&lt;/strong&gt; Static script analysis with severity levels and MITRE ATT&amp;amp;CK mappings.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Markdown report:&lt;/strong&gt; Exporting and previewing the investigation findings.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Exorcist Mode:&lt;/strong&gt; AI-assisted explanations from Father Llama, powered by Llama 3.2 1B through Ollama.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automated testing:&lt;/strong&gt; Five passing unit tests.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All suspicious samples are synthetic and analyzed as text, not executed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;The complete source code for The Rootkit Exorcist is available on GitHub.&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/Tash925" rel="noopener noreferrer"&gt;
        Tash925
      &lt;/a&gt; / &lt;a href="https://github.com/Tash925/rootkit-exorcist" rel="noopener noreferrer"&gt;
        rootkit-exorcist
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A Python CLI for static script analysis, MITRE ATT&amp;amp;CK mapping, and Ollama-powered investigation reports. SOC by day, exorcist by night. 👻
    &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;✝ The Rootkit Exorcist 👻&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;The terminal is blessed. The scripts are not.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A Python-based static script analyzer that identifies potentially suspicious command patterns and uses Ollama with Llama 3.2 to generate supplementary investigation notes.&lt;/p&gt;
&lt;p&gt;Built for the Hacktoberfest 2026 Week 4 DEV Challenge, The Rootkit Exorcist combines practical cybersecurity analysis with supernatural humor.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;✝ THE POWER OF CHMOD COMPELS YOU! ✝&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What Does It Do?&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;The Rootkit Exorcist reads script files as text &lt;strong&gt;without executing them&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;It uses Python regular-expression rules to identify selected suspicious command patterns and provides two reporting modes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SOC Mode:&lt;/strong&gt; Professional, evidence-focused security reporting.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exorcist Mode:&lt;/strong&gt; Dramatic cybersecurity commentary with a spooky personality.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Both modes use the same detection engine.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Detection Capabilities&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Rule&lt;/th&gt;
&lt;th&gt;Detection&lt;/th&gt;
&lt;th&gt;Severity&lt;/th&gt;
&lt;th&gt;MITRE ATT&amp;amp;CK&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;EXO-001&lt;/td&gt;
&lt;td&gt;Potential cron persistence&lt;/td&gt;
&lt;td&gt;MEDIUM&lt;/td&gt;
&lt;td&gt;T1053.003&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;EXO-002&lt;/td&gt;
&lt;td&gt;Remote download piped into a shell&lt;/td&gt;
&lt;td&gt;HIGH&lt;/td&gt;
&lt;td&gt;T1105&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;EXO-003&lt;/td&gt;
&lt;td&gt;PowerShell encoded command&lt;/td&gt;
&lt;td&gt;MEDIUM&lt;/td&gt;
&lt;td&gt;T1027&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;These are heuristic indicators, not proof…&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Tash925/rootkit-exorcist" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;The repository includes the Python CLI, static detection rules, local Ollama integration, synthetic sample scripts, automated tests, and setup instructions.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;I built The Rootkit Exorcist in Python, using a deterministic detection engine alongside &lt;strong&gt;Llama 3.2 1B running locally through Ollama&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The application has three main components:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Static detection engine&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The scanner uses regular expressions to identify suspicious patterns, including:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Detection&lt;/th&gt;
&lt;th&gt;Severity&lt;/th&gt;
&lt;th&gt;MITRE ATT&amp;amp;CK&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Potential cron persistence&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;T1053.003&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Download and execute&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;T1105&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Encoded PowerShell commands&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;T1027&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Each detection includes the matching evidence, its location in the script, and a short explanation.&lt;/p&gt;

&lt;p&gt;These are heuristic indicators, not confirmation of malicious activity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Local AI interpretation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once the scanner identifies suspicious patterns, the findings are passed to Llama 3.2 1B through Ollama.&lt;/p&gt;

&lt;p&gt;The model generates additional explanations and suggested investigative steps.&lt;/p&gt;

&lt;p&gt;I experimented with two presentation styles: a professional SOC analyst voice and a dramatic Halloween exorcist voice.&lt;/p&gt;

&lt;p&gt;The important design choice was keeping the detection logic separate from the AI-generated interpretation.&lt;/p&gt;

&lt;p&gt;The model does not decide which detection rules matched.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. CLI reporting and testing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The tool can export its findings and AI notes to a Markdown report.&lt;/p&gt;

&lt;p&gt;I also added automated unit tests covering the detection rules, benign input, and a false-positive scenario involving a cron listing command.&lt;/p&gt;

&lt;p&gt;All five tests passed.&lt;/p&gt;

&lt;p&gt;One unexpected part of development was troubleshooting local inference inside GitHub Codespaces.&lt;/p&gt;

&lt;p&gt;An AI request timed out while the static scanner continued to produce findings and export the report. After verifying that Ollama could respond to a smaller prompt, I successfully ran the full theatrical analysis.&lt;/p&gt;

&lt;p&gt;I also discovered and fixed a Python indentation bug that caused an error when running without the optional report export argument.&lt;/p&gt;

&lt;p&gt;Both experiences reinforced the value of testing the entire workflow rather than only the detection logic.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Open-weight models made this project possible without depending on a hosted AI API for every investigation.&lt;/p&gt;

&lt;p&gt;With Ollama, I could run Llama locally, experiment with different prompts, and control how the AI layer interacted with the deterministic scanner.&lt;/p&gt;

&lt;p&gt;That flexibility mattered because I wanted to explore the boundary between identifying evidence and interpreting it.&lt;/p&gt;

&lt;p&gt;During testing, Father Llama sometimes described suspicious commands as definitively malicious, even when the scanner had only identified patterns that required further investigation.&lt;/p&gt;

&lt;p&gt;That was an important lesson.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI-generated explanations are useful, but they are not evidence by themselves.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Having control over the local model and the surrounding Python workflow allowed me to experiment with that distinction directly.&lt;/p&gt;

&lt;p&gt;Open innovation also makes projects like this approachable for learners. Someone can inspect the detection rules, change the prompts, run the model locally, and build on the idea.&lt;/p&gt;

&lt;p&gt;There are trade-offs, including model performance and hardware limitations, but the ability to experiment openly is valuable.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Spirit of It
&lt;/h2&gt;

&lt;p&gt;Halloween gave me the creative direction, but cybersecurity gave me the underlying question.&lt;/p&gt;

&lt;p&gt;What happens when a suspicious command appears in a script?&lt;/p&gt;

&lt;p&gt;Does it belong there?&lt;/p&gt;

&lt;p&gt;Is there a legitimate explanation?&lt;/p&gt;

&lt;p&gt;What evidence would help determine the next step?&lt;/p&gt;

&lt;p&gt;The Rootkit Exorcist doesn't answer those questions conclusively. It provides a starting point for investigation.&lt;/p&gt;

&lt;p&gt;And despite its name, it does not detect rootkits directly or establish that a script is malicious.&lt;/p&gt;

&lt;p&gt;It's a learning project built around static analysis, local AI experimentation, and the importance of human verification.&lt;/p&gt;

&lt;p&gt;My favorite moment was finally getting Father Llama to deliver his full theatrical analysis after an earlier timeout.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;THEATRICAL EXORCISM COMPLETE!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The project was working, the tests were passing, and the AI had officially embraced its Halloween personality.&lt;/p&gt;

&lt;p&gt;As I continue moving from data analytics into cybersecurity, I keep returning to one idea:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The tool changes. The question doesn't.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And sometimes the question is:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Does this belong here?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Happy Hacktoberfest! 👻✝️💜&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>opensource</category>
      <category>cybersecurity</category>
    </item>
    <item>
      <title>Small Businesses Don’t Read CVEs. So I Built a Translator.</title>
      <dc:creator>Tasha · DataSec Chronicles</dc:creator>
      <pubDate>Wed, 14 Oct 2026 22:13:09 +0000</pubDate>
      <link>https://dev.to/data_secchronicles/small-businesses-dont-read-cves-so-i-built-a-translator-370n</link>
      <guid>https://dev.to/data_secchronicles/small-businesses-dont-read-cves-so-i-built-a-translator-370n</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week2-2026-10-12"&gt;Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;AlertCadence&lt;/strong&gt; — a tool that turns raw security advisories into plain-English briefs a small business can actually read.&lt;/p&gt;

&lt;p&gt;Security advisories are written for engineers. A small-business owner doesn't read "path traversal via crafted request" — they skim it and move on. Managed IT providers (MSPs) feel this constantly: they need to tell clients, "here's what to patch and why it matters," but translating CVEs into calm, clear language by hand eats their Monday mornings.&lt;/p&gt;

&lt;p&gt;AlertCadence does the translation. It pulls CISA's feed of &lt;strong&gt;actively exploited&lt;/strong&gt; vulnerabilities, keeps the ones affecting software small businesses actually run, and rewrites each into three plain sentences: &lt;strong&gt;what happened&lt;/strong&gt;, &lt;strong&gt;why it matters to your business&lt;/strong&gt;, and &lt;strong&gt;what we're doing about it&lt;/strong&gt; — generated by a model running entirely on the user's own machine.&lt;/p&gt;

&lt;p&gt;The person who'd pay for it: an MSP who wants to send clients a credible weekly security brief without writing it from scratch and without sending client data to a cloud AI.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;🔗 &lt;strong&gt;Live:&lt;/strong&gt; &lt;a href="https://alertcadence.tech" rel="noopener noreferrer"&gt;alertcadence.tech&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The landing page explains the tool; &lt;strong&gt;"See this week's brief →"&lt;/strong&gt; opens a real brief generated from live CISA data by a local model — six current advisories (Fortinet, Apple, SharePoint, WordPress, Magento, Google Pixel), each translated into plain English, with ransomware-linked ones listed first.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fv46myb0fh5nckf5kzqm6.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fv46myb0fh5nckf5kzqm6.png" alt=" " width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&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/Tash925" rel="noopener noreferrer"&gt;
        Tash925
      &lt;/a&gt; / &lt;a href="https://github.com/Tash925/alertcadence" rel="noopener noreferrer"&gt;
        alertcadence
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Plain-English security briefs for small businesses, generated by a local open model. Hacktoberfest 2026.
    &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;AlertCadence&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;Plain-English security briefs for small businesses — generated by a local open model.&lt;/p&gt;
&lt;p&gt;Built for the &lt;a href="https://dev.to/challenges" rel="nofollow"&gt;Hacktoberfest 2026 Open-Source AI Challenge, Week 2: Side Hustle&lt;/a&gt;
A project by &lt;a href="https://www.datasecchronicles.com" rel="nofollow noopener noreferrer"&gt;DataSec Chronicles&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Live site:&lt;/strong&gt; &lt;a href="https://alertcadence.tech" rel="nofollow noopener noreferrer"&gt;alertcadence.tech&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/Tash925/alertcadence/screenshots/newsletter.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FTash925%2Falertcadence%2FHEAD%2Fscreenshots%2Fnewsletter.png" alt="A weekly security brief generated by AlertCadence"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;A real brief, generated from live CISA data by a local model — each advisory in plain English, ransomware-linked ones first.&lt;/em&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What it does&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Security advisories are written for engineers. A small-business owner doesn't
read "path traversal via crafted request" — they skim it and move on.&lt;/p&gt;
&lt;p&gt;AlertCadence translates. It pulls CISA's feed of &lt;strong&gt;actively-exploited&lt;/strong&gt;
vulnerabilities, keeps the ones affecting software small businesses actually
run, and rewrites each into three plain sentences:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What happened&lt;/strong&gt; — the issue, in plain English&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Why it matters to your business&lt;/strong&gt; — the practical risk&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What we're doing&lt;/strong&gt; — reassuring, proactive language an MSP would use&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The result is one clean HTML brief an MSP can review and send…&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Tash925/alertcadence" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;A Python pipeline: &lt;code&gt;fetch&lt;/code&gt; → &lt;code&gt;extract&lt;/code&gt; → &lt;code&gt;summarize&lt;/code&gt; → &lt;code&gt;store&lt;/code&gt; → &lt;code&gt;render&lt;/code&gt;. The &lt;a href="https://github.com/Tash925/alertcadence" rel="noopener noreferrer"&gt;README&lt;/a&gt; walks through each step.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Local open-weight model — Google Gemma (&lt;code&gt;gemma2:2b&lt;/code&gt;) via &lt;a href="https://ollama.com" rel="noopener noreferrer"&gt;Ollama&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The whole pipeline runs on my own machine. But the interesting part was &lt;em&gt;how&lt;/em&gt; I used the model — and what I decided &lt;strong&gt;not&lt;/strong&gt; to let it do.&lt;/p&gt;

&lt;p&gt;A 2B model is small. Feed it a raw advisory, and it leaks exploit syntax into the "plain English," drifts into Markdown, and — worst of all for security — invents details when the source is vague. Tightening the prompt helped a little. It wasn't enough.&lt;/p&gt;

&lt;p&gt;What worked was giving the model a &lt;strong&gt;smaller job.&lt;/strong&gt; A deterministic Python step extracts a small fixed set of facts first — vendor, product, type of flaw, ransomware flag — and the model only ever receives &lt;em&gt;those&lt;/em&gt;. It can't leak exploit syntax it never sees. It can't misjudge relevance it never evaluates. The guardrail is the architecture, not the prompt.&lt;/p&gt;

&lt;p&gt;When an advisory's details are genuinely thin, the model is told to say so plainly rather than guess. I tested that deliberately — fed it a vulnerability with almost no public detail — and instead of inventing a mechanism, it said: "the specifics aren't public yet." For anything going out under an MSP's name, that honesty is the whole ballgame.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Storage — MongoDB Atlas&lt;/strong&gt;, keeping a durable history of every brief generated, with a local JSON fallback so the pipeline never breaks if the database is unreachable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data — &lt;a href="https://www.cisa.gov/known-exploited-vulnerabilities-catalog" rel="noopener noreferrer"&gt;CISA Known Exploited Vulnerabilities&lt;/a&gt;&lt;/strong&gt;, where everything is confirmed exploited, so risk is pre-filtered at the source.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Three reasons, and they're the reason the project works at all:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Privacy.&lt;/strong&gt; This is a tool an MSP would run against their client list. A cloud API would mean sending that to someone else's servers. A local open model means the data never leaves the machine — which, for a security tool, isn't a nice-to-have; it's the whole reason it can be trusted.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost.&lt;/strong&gt; Open-weight + local = $0 per brief. No per-token bill, so an MSP keeps full margin on comms they should be sending anyway.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Control.&lt;/strong&gt; I could constrain a small open model exactly how I needed — feed it only pre-extracted facts, force it to admit uncertainty. That tight control over the model's inputs is what made it safe for security content. A closed API gives you less of that.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The open pieces aren't decoration. They're what make the tool trustworthy enough to exist.&lt;/p&gt;

&lt;h2&gt;
  
  
  My First User
&lt;/h2&gt;

&lt;p&gt;No paying users yet — but I built this in public, and the response from the people closest to the problem has been the real early signal.&lt;/p&gt;

&lt;p&gt;A few reactions stood out as I shared the approach: that a local model turning CVE text into plain English is exactly the translation layer small businesses without a security team need, and that filtering for relevant software &lt;em&gt;before&lt;/em&gt; the model runs is the right order — the model should only ever see what survived the logic, not the raw feed.&lt;/p&gt;

&lt;p&gt;The most useful exchange came from someone who runs a chatbot on a testing lab's site. They zeroed in on the part where the model admits when a detail isn't public, because in their world a made-up answer is worse than no answer at all. They suggested saving those "detail not available" cases as a regression test — so if a future model update quietly starts filling in the blanks, it fails loudly instead of slipping through. That's my next build.&lt;/p&gt;

&lt;p&gt;That's exactly why I build in public: someone who'd been burned by hallucination handed me my next feature. The step after that is a round of feedback from actual small-business owners to check how clearly the briefs land for the people they're written for.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Gemma&lt;/strong&gt; — Gemma (open-weight, via Ollama) is the engine; the whole project is built around constraining a small local model to produce safe, calm, non-technical security writing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of MongoDB Atlas&lt;/strong&gt; — stores every brief's advisories and summaries, with a graceful local fallback.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best .tech Domain&lt;/strong&gt; — live at &lt;a href="https://alertcadence.tech" rel="noopener noreferrer"&gt;alertcadence.tech&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Built with 💜 by &lt;a href="https://www.datasecchronicles.com" rel="noopener noreferrer"&gt;DataSec Chronicles&lt;/a&gt;. &lt;em&gt;The tool changes, the question doesn't.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>ai</category>
      <category>python</category>
    </item>
    <item>
      <title>The Security Dictionary: Trail Edition — Cybersecurity Concepts as Outdoor Missions, Powered by Local Gemma</title>
      <dc:creator>Tasha · DataSec Chronicles</dc:creator>
      <pubDate>Sat, 10 Oct 2026 17:09:42 +0000</pubDate>
      <link>https://dev.to/data_secchronicles/the-security-dictionary-trail-edition-cybersecurity-concepts-as-outdoor-missions-powered-by-1fj4</link>
      <guid>https://dev.to/data_secchronicles/the-security-dictionary-trail-edition-cybersecurity-concepts-as-outdoor-missions-powered-by-1fj4</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05"&gt;Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The Security Dictionary: Trail Edition&lt;/strong&gt; — a tool that teaches kids cybersecurity by sending them &lt;em&gt;outside&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Pick an explorer's age, where you're exploring, and how long you've got. The tool hands you a security concept framed as an outdoor mission, and a warm voice reads it aloud — so the phone goes in your pocket and the learning happens in the real world.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;IOC&lt;/strong&gt; → &lt;em&gt;find three clues something was here before you&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Alert&lt;/strong&gt; → &lt;em&gt;notice what grabs your attention&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Firewall&lt;/strong&gt; → &lt;em&gt;find barriers that let some things through and keep others out&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Encryption&lt;/strong&gt; → &lt;em&gt;invent a secret signal only you and a friend understand&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Phishing&lt;/strong&gt; → &lt;em&gt;spot something tempting — feel the pull, but don't go to it&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's a branch of &lt;a href="https://www.datasecchronicles.com" rel="noopener noreferrer"&gt;The Security Dictionary&lt;/a&gt;, a project where I take intimidating security language and make it understandable. This asks the next question: what if understanding didn't begin with another definition, but with an &lt;em&gt;experience&lt;/em&gt;?&lt;/p&gt;

&lt;p&gt;My whole background is "finding what doesn't belong" — atmospheric anomalies, fraud, threat hunting. That's not a definition you memorize; it's a reflex you build by doing. So I wondered what happens if a kid learns a security concept by hunting for it outside first, and the definition comes &lt;em&gt;after&lt;/em&gt;. Map an alert to a knocked-over flowerpot. Map a firewall to the backyard fence. The definition lands because the kid already lived it.&lt;/p&gt;

&lt;p&gt;It's built for kids ages 5–13 (three reading levels), and honestly for any family that wants a reason to put the screens down and go look at something.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/QZxxnH2SgsQ" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;The flow: pick your explorer → get a mission → tap listen → a warm voice reads it aloud → pocket the phone and head out → come back for the payoff that connects what you found to the security concept.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&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/Tash925" rel="noopener noreferrer"&gt;
        Tash925
      &lt;/a&gt; / &lt;a href="https://github.com/Tash925/security-dictionary-trail-edition" rel="noopener noreferrer"&gt;
        security-dictionary-trail-edition
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Cybersecurity, learned outside — kid-friendly outdoor missions powered by local Gemma + ElevenLabs. Hacktoberfest 2026.
    &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;The Security Dictionary: Trail Edition 🌿&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;Cybersecurity, learned outside. An offline tool that turns security concepts
into kid-friendly outdoor missions — so the phone goes in your pocket and the
learning happens in the real world.&lt;/p&gt;
&lt;p&gt;Built for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05" rel="nofollow"&gt;Hacktoberfest 2026 Open-Source AI Challenge, Week 1: Touch Grass&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A branch of &lt;a href="https://www.datasecchronicles.com" rel="nofollow noopener noreferrer"&gt;The Security Dictionary&lt;/a&gt; by DataSec Chronicles.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What it does&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Pick an explorer age, a place, and how long you've got. The tool gives you a
security concept framed as a mission you do outside:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;IOC&lt;/strong&gt; → &lt;em&gt;find three clues something was here before you&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Alert&lt;/strong&gt; → &lt;em&gt;notice what grabs your attention&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Firewall&lt;/strong&gt; → &lt;em&gt;find barriers that let some things through and keep others out&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Encryption&lt;/strong&gt; → &lt;em&gt;invent a secret signal only you and a friend understand&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Phishing&lt;/strong&gt; → &lt;em&gt;spot something tempting — feel the pull, but don't go to it&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A warm voice reads the mission aloud, so…&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Tash925/security-dictionary-trail-edition" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;The whole thing is one self-contained HTML file plus the mission prompts and the generated narration — no build step, no framework. The &lt;a href="https://github.com/Tash925/security-dictionary-trail-edition/tree/main/prompts" rel="noopener noreferrer"&gt;&lt;code&gt;prompts/&lt;/code&gt;&lt;/a&gt; folder has the exact template and safety constraints used to generate the missions.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Local open-weight model — Google Gemma, via &lt;a href="https://ollama.com" rel="noopener noreferrer"&gt;Ollama&lt;/a&gt; (&lt;code&gt;gemma2:2b&lt;/code&gt;).&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every mission is generated locally by Gemma. The model takes one security concept plus the child's age and writes a fresh, age-appropriate mission — the same concept becomes a different mission each time, which a static list of scavenger hunts could never do. That variety is the whole reason to use a model at all.&lt;/p&gt;

&lt;p&gt;The interesting engineering was constraining a &lt;em&gt;tiny&lt;/em&gt; local model to behave. A 2B model drifts — it invents unsafe suggestions, slips into markdown, pads and repeats. Getting it to reliably produce a safe, structured, age-appropriate mission took real prompt-tuning: too loose, and it invented things that weren't there; too tight, and it dropped the actual teaching. The balance point is the technical heart of this project. The safety block in the prompt is explicit — the model is told never to have a child touch, taste, chase, approach anything unfamiliar, enter unsafe areas, identify or eat plants, or leave their adult's area. Generative output aimed at children needs constraints built for the context it runs in.&lt;/p&gt;

&lt;p&gt;I generated each of the five concepts across three reading levels (5–7, 8–10, 11–13) — fifteen missions — then baked them into the page so it runs with no model server and no internet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Voice — &lt;a href="https://elevenlabs.io" rel="noopener noreferrer"&gt;ElevenLabs&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The narration is pre-generated with ElevenLabs and embedded in the page, so it plays offline once loaded. Voice here isn't a feature I bolted on because this was an AI challenge. I added it because requiring a child to &lt;em&gt;read&lt;/em&gt; generated instructions would undermine the entire premise — the interface needed to disappear so the kid could listen, pocket the phone, and go. For a kid who finds reading hard, that's not a convenience; it's what makes the tool usable at all. Not every kid learns best by reading.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Three reasons, and they're the reason the project holds together rather than nice-to-haves:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;It runs offline.&lt;/strong&gt; On a trail, in a backyard, anywhere with no signal. A cloud API can't promise that.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No child's data leaves the device.&lt;/strong&gt; This is a tool for kids. A cloud-based version would send a child's inputs to someone else's server. Running an open model locally means it never has to — and as a security person, that's the difference between a tool I'd hand my own kids and one I wouldn't. For a children's tool, local isn't a performance choice. It's the whole reason it can be trusted.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It costs nothing to run&lt;/strong&gt;, so any family or classroom can use it, not just ones who can afford API bills.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The open pieces aren't decoration. They &lt;em&gt;are&lt;/em&gt; the project.&lt;/p&gt;

&lt;h2&gt;
  
  
  How It Went (I took it outside)
&lt;/h2&gt;

&lt;p&gt;I tested it with a kid in my target age range. I let her drive — press the buttons, hit "Give me a mission." She got Firewall, tapped listen, and smiled at the voice. Then she went and found the fence in the backyard, and said she understood the concept better having found it first. I could see her following along as the voice spoke — the screen genuinely receded. Her words: &lt;em&gt;"I really like this."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;And it did the one thing the theme asks for: it got us outside to look around.&lt;/p&gt;

&lt;p&gt;It also gave me a real finding. On the 11–13 tier — which currently falls back to a plain browser voice instead of the ElevenLabs narration — she immediately didn't like it. That told me the voice isn't a nice-to-have; it's load-bearing for whether a kid stays engaged. &lt;strong&gt;Next build: real voice across all three age tiers, not just 8–10.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Gemma&lt;/strong&gt; — Gemma (open-weight, via Ollama) generates every mission locally. It's the engine of the whole tool.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of ElevenLabs&lt;/strong&gt; — ElevenLabs gives the missions a voice, which is what lets a child listen instead of read and actually put the screen away.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Built with 💜 by &lt;a href="https://www.datasecchronicles.com" rel="noopener noreferrer"&gt;DataSec Chronicles&lt;/a&gt;. &lt;em&gt;The tool changes, the question doesn't.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>gemma</category>
    </item>
    <item>
      <title>Does This Belong Here? I Built a Phishing Checker for the People I Love</title>
      <dc:creator>Tasha · DataSec Chronicles</dc:creator>
      <pubDate>Sat, 03 Oct 2026 16:04:20 +0000</pubDate>
      <link>https://dev.to/data_secchronicles/does-this-belong-here-i-built-a-phishing-checker-for-the-people-i-love-3ei7</link>
      <guid>https://dev.to/data_secchronicles/does-this-belong-here-i-built-a-phishing-checker-for-the-people-i-love-3ei7</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;"Does This Belong Here?"&lt;/strong&gt; — a friendly phishing checker for the people in my life who still get spam.&lt;/p&gt;

&lt;p&gt;I built it for my mom and my husband. They both know the basic rule — &lt;em&gt;don't click suspicious links&lt;/em&gt; — but nobody ever explained the &lt;em&gt;why&lt;/em&gt;, and the why is the part that actually protects you in the moment. When a real scam email lands, dressed up to look urgent and official, the rule evaporates, and the panic takes over.&lt;/p&gt;

&lt;p&gt;This tool closes that gap.&lt;/p&gt;

&lt;p&gt;You paste in an email or text that feels off, and it walks you through it the way a security analyst would — in plain English, no jargon. It gives a one-line verdict, a short list of the red flags it spotted &lt;em&gt;and why each one matters&lt;/em&gt; (the threat behind it), and one calm next step.&lt;/p&gt;

&lt;p&gt;Every answer ends with the question that keeps you safe:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Does this belong here?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It's not trying to make anyone a security expert. It's trying to hand them the &lt;em&gt;instinct&lt;/em&gt; — the same "does this belong here?" question a SOC analyst asks on every alert, pointed at their own inbox.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I handed it to my husband. Here's what happened.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the part I care about most, because the challenge is &lt;em&gt;Build for a Friend&lt;/em&gt; — so I actually gave it to one.&lt;/p&gt;

&lt;p&gt;I set it up and let my husband loose on it with a real email. He copied a whole message, pasted it into the box... and then tried to &lt;em&gt;click the box&lt;/em&gt;, expecting something to happen.&lt;/p&gt;

&lt;p&gt;I had to point him to the "Check it for me" button.&lt;/p&gt;

&lt;p&gt;Noted. 😂&lt;/p&gt;

&lt;p&gt;It was a real, humbling piece of UX feedback. Building for non-technical people means watching exactly where they get stuck, and he found my blind spot in about ten seconds.&lt;/p&gt;

&lt;p&gt;Then the "Thinking like an analyst..." screen came up, and when the verdict appeared, he was genuinely a little surprised it had actually &lt;em&gt;read and understood&lt;/em&gt; the email.&lt;/p&gt;

&lt;p&gt;He went through the breakdown, agreed with every red flag it found... and said:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Good job."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That was the whole goal in one sentence.&lt;/p&gt;

&lt;p&gt;Not "wow, impressive AI" — just a regular person reading a plain-English explanation of a suspicious email and &lt;em&gt;trusting it enough to agree.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That's the tool working.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Try it live:&lt;/strong&gt; 👉 &lt;a href="https://labs.datasecchronicles.com/tools/does-this-belong-here/" rel="noopener noreferrer"&gt;labs.datasecchronicles.com/tools/does-this-belong-here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The app itself runs in your browser — there's no DataSec Labs backend, and I don't store your message or API key.&lt;/p&gt;

&lt;p&gt;To use the live version, you'll need a free Google AI Studio API key. Your message is sent directly from your browser to Google's Gemma API for analysis.&lt;/p&gt;

&lt;p&gt;Because Gemma is open-weight, this same concept can also evolve into a fully local version where analysis happens on your own machine instead of sending the message to a cloud API.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&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/Tash925" rel="noopener noreferrer"&gt;
        Tash925
      &lt;/a&gt; / &lt;a href="https://github.com/Tash925/does-this-belong-here" rel="noopener noreferrer"&gt;
        does-this-belong-here
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A friendly phishing checker built with Gemma (open-weight AI) — plain-language scam detection for non-technical people. #Hacktoberfest
    &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;🛡️ Does This Belong Here?&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;A friendly phishing checker for the people in your life who still get spam.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Paste in an email or text that feels off, and it walks you through it the way a security analyst would — in plain English, no jargon. One-line verdict, the red flags it spotted &lt;em&gt;and why each one matters&lt;/em&gt;, and one calm next step. Every answer ends with the question that keeps you safe: &lt;strong&gt;"Does this belong here?"&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Built with &lt;a href="https://ai.google.dev/gemma" rel="nofollow noopener noreferrer"&gt;Gemma&lt;/a&gt;, Google's open-weight model, for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01" rel="nofollow"&gt;Hacktoberfest 2026 "Build for a Friend" Weekend Challenge&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Part of &lt;a href="https://www.datasecchronicles.com" rel="nofollow noopener noreferrer"&gt;DataSec Chronicles&lt;/a&gt; — storm to SOC, finding what doesn't belong.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Why I built it&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;My mom knows not to click the link. My husband does too. Most people have picked up the &lt;em&gt;don'ts&lt;/em&gt; — but nobody ever explained the &lt;em&gt;why&lt;/em&gt;, and the why is the part that actually protects you when…&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Tash925/does-this-belong-here" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;It's a single self-contained HTML file — one page, no build step, no backend. The whole thing is HTML, CSS, and a little JavaScript, deliberately low-code so the &lt;em&gt;idea&lt;/em&gt; and the &lt;em&gt;writing&lt;/em&gt; carry it.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;The core is &lt;strong&gt;Gemma, Google's open-weight model&lt;/strong&gt;, doing the actual analysis.&lt;/p&gt;

&lt;p&gt;The app:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Takes the suspicious message the user pastes in.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sends it to Gemma with a carefully written system prompt that tells it to act as a warm, plain-spoken helper for a non-technical person — give a verdict, name the red flags &lt;em&gt;with the reason each one matters&lt;/em&gt;, and never shame the person for asking.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Returns a clean, structured answer anyone can act on.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The interesting engineering wasn't the plumbing — it was the &lt;strong&gt;prompt&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Getting an open model to explain phishing the way a kind, patient expert would took real iteration, especially getting it to &lt;em&gt;stop showing its reasoning scratch work&lt;/em&gt; and just hand over the finished answer.&lt;/p&gt;

&lt;p&gt;I also made the app query which models my key can actually use and automatically pick an available Gemma, so it doesn't break when model names change out from under it — which they did, mid-build.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Because of &lt;em&gt;whose data this is.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The whole point of this tool is to check a &lt;strong&gt;real email&lt;/strong&gt; — which often contains personal details, names, account references, and private information.&lt;/p&gt;

&lt;p&gt;The live version currently sends that message directly from the user's browser to Google's Gemma API for analysis. DataSec Labs doesn't receive or store it.&lt;/p&gt;

&lt;p&gt;But building around an open-weight model creates another possibility: &lt;strong&gt;local-first analysis.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The same idea could run with Gemma entirely on the user's own computer through something like Ollama. In that version, the suspicious email wouldn't need to leave the person's machine at all.&lt;/p&gt;

&lt;p&gt;That's especially important for a tool designed for people who may already be vulnerable to scams.&lt;/p&gt;

&lt;p&gt;Open innovation gives developers the option to move beyond "paste your private information into someone else's cloud" and build tools where users can retain much more control over their own data.&lt;/p&gt;

&lt;p&gt;For a small, personal safety tool like this, that isn't just an interesting technical option.&lt;/p&gt;

&lt;p&gt;It's part of what makes open models worth building with.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Best Use of Gemma&lt;/strong&gt; — Gemma (Google's open-weight model) is the engine doing all the phishing analysis.&lt;/p&gt;

&lt;h2&gt;
  
  
  I'd Love Your Feedback
&lt;/h2&gt;

&lt;p&gt;I built this because knowing the rule &lt;em&gt;"don't click suspicious links"&lt;/em&gt; and recognizing why something is suspicious in the moment are two different things.&lt;/p&gt;

&lt;p&gt;If you try &lt;strong&gt;Does This Belong Here?&lt;/strong&gt;, I'd love to hear what you think — especially if there's something that could make it easier for a non-technical person to use.&lt;/p&gt;

&lt;p&gt;And if you have questions about the build, Gemma, or what I learned testing it with my husband, leave them in the comments. 💜&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built as part of&lt;/em&gt; &lt;a href="https://www.datasecchronicles.com/" rel="noopener noreferrer"&gt;&lt;em&gt;DataSec Chronicles&lt;/em&gt;&lt;/a&gt; &lt;em&gt;— storm to SOC, finding what doesn't belong. 💜&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
    </item>
  </channel>
</rss>
