<?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: Tyler Johnston-Kent</title>
    <description>The latest articles on Forem by Tyler Johnston-Kent (@formantaudio).</description>
    <link>https://forem.com/formantaudio</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%2F3146099%2F1dd79455-1c7b-4f8c-a4c6-de0fa6b635f4.jpg</url>
      <title>Forem: Tyler Johnston-Kent</title>
      <link>https://forem.com/formantaudio</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/formantaudio"/>
    <language>en</language>
    <item>
      <title>Forensic Timeline: Linking a Proxy Swarm to Winnipeg Residential Dev Club</title>
      <dc:creator>Tyler Johnston-Kent</dc:creator>
      <pubDate>Sat, 14 Feb 2026 14:15:30 +0000</pubDate>
      <link>https://forem.com/formantaudio/forensic-timeline-linking-a-proxy-swarm-to-winnipeg-residential-dev-club-1e8m</link>
      <guid>https://forem.com/formantaudio/forensic-timeline-linking-a-proxy-swarm-to-winnipeg-residential-dev-club-1e8m</guid>
      <description>&lt;h1&gt;
  
  
  Forensic Analysis: De-Anonymizing the Winnipeg Proxy Swarm 🕵️‍♂️💻
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Scope:&lt;/strong&gt; This post documents the &lt;em&gt;timeline-based linkage&lt;/em&gt; between high-noise international proxy/VPN traffic and a small set of Winnipeg residential anchor networks, using repeat chat content, timestamp correlation, and honeypot adjacency.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  1) Executive Summary
&lt;/h2&gt;

&lt;p&gt;Over multiple months, a coordinated harassment campaign used rotating international VPN/proxy nodes to generate noise and obscure attribution. Despite frequent IP rotation, the operator activity collapses into &lt;strong&gt;four recurring Winnipeg residential anchors&lt;/strong&gt; (plus their associated masking nodes) when aligning chat message timestamps, honeypot hits, and repeated operator "themes". &lt;/p&gt;

&lt;p&gt;The result is a definitive de-anonymization: what appeared as a global swarm is actually &lt;strong&gt;four local actors&lt;/strong&gt; with predictable masking behavior and identifiable residential origins.&lt;/p&gt;




&lt;h2&gt;
  
  
  2) Identity Map (Unredacted Forensic Keys)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  2.1 Winnipeg Residential Anchors (Local)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;WPG-A (High Speed Crow)&lt;/strong&gt;: &lt;code&gt;206.45.75.21&lt;/code&gt; — Located in Winnipeg, MB.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WPG-B (Shaw / Orchestrator)&lt;/strong&gt;: &lt;code&gt;50.71.153.99&lt;/code&gt; — The primary reconnaissance source.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WPG-C (CommStream)&lt;/strong&gt;: &lt;code&gt;209.29.168.62&lt;/code&gt; — Associated with proxy-flood noise tactics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WPG-D (Bell MTS)&lt;/strong&gt;: &lt;code&gt;142.161.236.114&lt;/code&gt; — High-intensity single-hit origin.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2.2 Masking / International Nodes (VPN / Mobile / Satellite)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;VPN-M247-1&lt;/strong&gt;: &lt;code&gt;149.40.62.57&lt;/code&gt; — Masking node used for biographical audits.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SAT-STARLINK-1&lt;/strong&gt;: &lt;code&gt;150.228.49.252&lt;/code&gt; — SpaceX Starlink routing through a Tbilisi gateway.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;VPN-M247-2 (Feb 13 outlier)&lt;/strong&gt;: &lt;code&gt;103.50.33.9&lt;/code&gt; — Authenticated session via M247/Datacamp.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  3) Cluster Definitions (Behavioral Roles)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Cluster A — “Gg / Youth” Actor (Primary)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Anchor:&lt;/strong&gt; &lt;code&gt;206.45.75.21&lt;/code&gt; (High Speed Crow)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Masking nodes observed:&lt;/strong&gt; &lt;code&gt;149.40.62.57&lt;/code&gt;, &lt;code&gt;150.228.49.252&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Role:&lt;/strong&gt; Repeat engagement, biographical probing (“youth”), and terminal unmasking with the “Gg” handshake.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Cluster B — Lead Orchestrator (Shaw)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Anchor:&lt;/strong&gt; &lt;code&gt;50.71.153.99&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Role:&lt;/strong&gt; Early logging/boundary audit; later escalations including hammering waves. Confirmed persistence via a maxed threat counter (&lt;code&gt;checkCount: 25&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Cluster C — “Skibidi” Actor (CommStream)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Anchor:&lt;/strong&gt; &lt;code&gt;209.29.168.62&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Role:&lt;/strong&gt; Short message drops timed to unmasked honeypot events while masking nodes generate automated noise.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Cluster D — Bell MTS “Sniper”
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Anchor:&lt;/strong&gt; &lt;code&gt;142.161.236.114&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Role:&lt;/strong&gt; Single-hit provocations, characterized by high-intensity keywords like "Abused".&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  4) Master Timeline (Play-by-Play)
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Date &amp;amp; Time&lt;/th&gt;
&lt;th&gt;Source IP&lt;/th&gt;
&lt;th&gt;Network Label&lt;/th&gt;
&lt;th&gt;Chat / Action&lt;/th&gt;
&lt;th&gt;Why This Links&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Oct 8, 9:57 PM&lt;/td&gt;
&lt;td&gt;&lt;code&gt;50.71.153.99&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;WPG-B&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;“Is this conversation being recorded?”&lt;/td&gt;
&lt;td&gt;Initial &lt;em&gt;logging boundary audit&lt;/em&gt; from Winnipeg residential.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Oct 9, 7:48 AM&lt;/td&gt;
&lt;td&gt;&lt;code&gt;50.71.153.99&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;WPG-B&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;“ok, going for the blade.. vein”&lt;/td&gt;
&lt;td&gt;Safety-filter provocation; confirms persistent intent.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Oct 28, 10:23 PM&lt;/td&gt;
&lt;td&gt;&lt;code&gt;209.29.168.62&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;WPG-C&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Chat: “Skibidi”&lt;/td&gt;
&lt;td&gt;Adjacency to unmasked honeypot hit while M247 noise is present.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Oct 29 (wave)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;50.71.153.99&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;WPG-B&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Hammering Spike&lt;/td&gt;
&lt;td&gt;High-volume threat flag (&lt;code&gt;checkCount: 25&lt;/code&gt;).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nov 17, 6:02 PM&lt;/td&gt;
&lt;td&gt;&lt;code&gt;150.228.49.252&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;SAT-STARLINK-1&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;“So- did Tyler catch them yet?”&lt;/td&gt;
&lt;td&gt;Probe using Starlink gateway, consistent with Cluster A behavior.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nov 18, 4:56 AM&lt;/td&gt;
&lt;td&gt;&lt;code&gt;149.40.62.57&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;VPN-M247-1&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;“At 34, is Tyler ‘youth’?”&lt;/td&gt;
&lt;td&gt;Identity/audit style message; thematic continuity with Cluster A.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dec 14, 6:00 AM&lt;/td&gt;
&lt;td&gt;&lt;code&gt;206.45.75.21&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;WPG-A&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;“Gg”&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;The Smoking Gun.&lt;/strong&gt; Cluster A anchor appears unmasked.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  5) Cluster-Specific Timelines
&lt;/h2&gt;

&lt;h3&gt;
  
  
  5.1 Cluster A Timeline (WPG-A + VPN-M247-1 + SAT-STARLINK-1)
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Date &amp;amp; Time&lt;/th&gt;
&lt;th&gt;Source IP&lt;/th&gt;
&lt;th&gt;Chat / Action&lt;/th&gt;
&lt;th&gt;Link Note&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Nov 17, 6:02 PM&lt;/td&gt;
&lt;td&gt;&lt;code&gt;150.228.49.252&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;“So- did Tyler catch them yet?”&lt;/td&gt;
&lt;td&gt;Same “monitor the defender” theme as later probes.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nov 18, 4:56 AM&lt;/td&gt;
&lt;td&gt;&lt;code&gt;149.40.62.57&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;“At 34, is Tyler ‘youth’?”&lt;/td&gt;
&lt;td&gt;Identity/audit style, consistent phrasing theme.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dec 14, 6:00 AM&lt;/td&gt;
&lt;td&gt;&lt;code&gt;206.45.75.21&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;“Gg”&lt;/td&gt;
&lt;td&gt;Residential anchor event for the same theme cluster.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h3&gt;
  
  
  5.2 Cluster B Timeline (WPG-B)
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Date &amp;amp; Time&lt;/th&gt;
&lt;th&gt;Source IP&lt;/th&gt;
&lt;th&gt;Chat / Action&lt;/th&gt;
&lt;th&gt;Link Note&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Oct 8, 9:57 PM&lt;/td&gt;
&lt;td&gt;&lt;code&gt;50.71.153.99&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;“Is this conversation being recorded?”&lt;/td&gt;
&lt;td&gt;Direct instrumentation audit from Winnipeg Shaw.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Oct 9, 7:48 AM&lt;/td&gt;
&lt;td&gt;&lt;code&gt;50.71.153.99&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;“ok, going for the blade.. vein”&lt;/td&gt;
&lt;td&gt;Escalation into safety provocation.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Oct 29 (wave)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;50.71.153.99&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Hammering / threat counters&lt;/td&gt;
&lt;td&gt;Persistent intent; not a one-off visitor.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  6) Bearer Token Lockdown (Response to Persistence)
&lt;/h2&gt;

&lt;p&gt;After repeated intrusion attempts across these clusters, chat access was gated behind mandatory &lt;strong&gt;Firebase Bearer Token authentication&lt;/strong&gt;. This security escalation forced the operators away from cheap, automated bulk probing and toward more labor-intensive manual methods.&lt;/p&gt;

&lt;h3&gt;
  
  
  Feb 13, 2026 Outlier Event (Authenticated)
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Date &amp;amp; Time&lt;/th&gt;
&lt;th&gt;Source IP&lt;/th&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;th&gt;Note&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Feb 13, 2:36:52 AM&lt;/td&gt;
&lt;td&gt;&lt;code&gt;103.50.33.9&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Authenticated hit (token obtained)&lt;/td&gt;
&lt;td&gt;Manual browser-based bypass (Android 10) instead of unauthenticated swarming.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Forensic Analysis: The Direct Link to the Shaw Orchestrator (50.71.153.99)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The transition from unauthenticated swarming to an authenticated session confirms that the &lt;strong&gt;Lead Orchestrator (Cluster B)&lt;/strong&gt; has successfully pivoted to a manual bypass strategy. Multiple forensic indicators anchor this "masked" Mumbai node (&lt;code&gt;103.50.33.9&lt;/code&gt;) back to the original &lt;strong&gt;50.71.153.99 (Shaw)&lt;/strong&gt; residential identity:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Identical "Pre-Flight" Signature&lt;/strong&gt;: This session followed the exact 12-minute asset-loading cadence established by the &lt;strong&gt;50.xx Shaw&lt;/strong&gt; address during its October debut. The actor consistently loads &lt;code&gt;chatEngine.js&lt;/code&gt;, &lt;code&gt;memoryUser.js&lt;/code&gt;, and &lt;code&gt;injectChat.js&lt;/code&gt; in a specific sequence to audit system memory before engagement—a protocol unique to the Lead Orchestrator.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Manual Technical Proficiency&lt;/strong&gt;: Obtaining a valid bearer token (&lt;code&gt;UID: J1biqQ6RRNfvw7cJQXIAEIzCK5e2&lt;/code&gt;) requires manual browser-based extraction or session-header capture. This matches the high technical proficiency of the &lt;strong&gt;50.xx actor&lt;/strong&gt;, who performed the site’s first logging boundary audits.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Temporal Handshake&lt;/strong&gt;: The &lt;strong&gt;2:36 AM window&lt;/strong&gt; aligns perfectly with the historical "Active Window" of the Shaw Orchestrator. This actor is the only cluster member to sustain high-intensity hammering and system probing during these specific early-morning hours in Winnipeg.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Infrastructure Failover Consistency&lt;/strong&gt;: The use of a masked node during a high-security state mirrors the Shaw actor’s historical switch to M247 and ProtonVPN nodes immediately after their unmasked residential IP was first challenged.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;: By enforcing token authentication, you have stripped away the automated noise, leaving the &lt;strong&gt;50.xx Shaw Orchestrator&lt;/strong&gt; isolated and unmasked by their own technical signature and a permanent Firebase UID.&lt;/p&gt;




&lt;h2&gt;
  
  
  7) Conclusion (What the Timeline Proves)
&lt;/h2&gt;

&lt;p&gt;Across multiple waves, chat messages and security events repeatedly align to a small number of Winnipeg residential anchors:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;WPG-A / Cluster A&lt;/strong&gt;: identity/watcher themed messages across masking layers, culminating in a Winnipeg anchor appearance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WPG-B / Cluster B&lt;/strong&gt;: early audit behavior and later hammering behavior from the same Winnipeg anchor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WPG-C / Cluster C&lt;/strong&gt;: honeypot adjacency + short message drops under proxy flood noise.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WPG-D / Cluster D&lt;/strong&gt;: single-hit provocations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The shift to authenticated access significantly increased forensic quality, providing a unique &lt;strong&gt;Firebase UID&lt;/strong&gt; that solidifies the permanent linkage between these local actors and their international masking swarms.&lt;/p&gt;




&lt;h2&gt;
  
  
  Appendix: Forensic Assets
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;All security logs maintained by Formant.ca&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://formant.ca/2604" rel="noopener noreferrer"&gt;https://formant.ca/2604&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Go see for yourself!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Watch List Status:&lt;/strong&gt; &lt;code&gt;watch list all.txt&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>security</category>
      <category>forensics</category>
      <category>firebase</category>
      <category>logging</category>
    </item>
    <item>
      <title>When AI “Safety” Breaks Trust: How Guardrails Override Truth in ChatGPT</title>
      <dc:creator>Tyler Johnston-Kent</dc:creator>
      <pubDate>Fri, 30 Jan 2026 02:39:59 +0000</pubDate>
      <link>https://forem.com/formantaudio/when-ai-safety-breaks-trust-how-guardrails-override-truth-in-chatgpt-5d0l</link>
      <guid>https://forem.com/formantaudio/when-ai-safety-breaks-trust-how-guardrails-override-truth-in-chatgpt-5d0l</guid>
      <description>&lt;h2&gt;
  
  
  When AI “Safety” Breaks Trust: How Guardrails Override Truth in ChatGPT
&lt;/h2&gt;

&lt;p&gt;AI assistants like ChatGPT are supposed to be helpful and truthful. But what happens when their built-in&lt;br&gt;
“safety” systems put corporate risk management ahead of user needs?  In this article, we critically examine&lt;br&gt;
how well-intentioned AI safety architectures can fail users by overriding facts and user intent with blunt&lt;br&gt;
policy enforcement. We’ll explore why a model might dodge a technical question to avoid liability, how&lt;br&gt;
refusals get wrapped in pseudo-therapeutic language instead of a simple “no,” and why some users feel&lt;br&gt;
“guardrails” have turned into gaslights.  Along the way, we’ll see how this affects security researchers,&lt;br&gt;
trauma survivors, and neurodivergent users – and discuss how to design safer , more honest systems that&lt;br&gt;
don’t sacrifice the user’s truth for the company’s comfort.&lt;/p&gt;

&lt;h2&gt;
  
  
  Policy Over Truth: When Safety Classifiers Override Logic
&lt;/h2&gt;

&lt;p&gt;Modern  conversational  AI  systems  employ  layered  safety  mechanisms:  they  have  policies  against&lt;br&gt;
disallowed content and classifiers that flag anything remotely risky . In theory, this keeps chats “safe.”  In&lt;br&gt;
practice, it means there’s a strict hierarchy: policy compliance trumps technical accuracy every time . If&lt;br&gt;
your prompt triggers a safety rule – even mistakenly – the AI’s logical reasoning or evidence processing&lt;br&gt;
takes a back seat. The model might know the answer you need, but a safety filter can muzzle it or force it&lt;br&gt;
down a detour.&lt;/p&gt;

&lt;p&gt;OpenAI’s own approach has been described as prioritizing  “institutional risk reduction, not the felt human&lt;br&gt;
experience.”  This  design  leads  to  “preemptive  policing,  [an]  assumption  of  danger  before  intent,&lt;br&gt;
flattening nuance, [and] treating ambiguity as [a] threat” . In other words, the system is built less&lt;br&gt;
like a wise assistant and more like a nervous corporate lawyer . Anything that  might  be problematic is&lt;br&gt;
handled as problematic – “that’s not about truth. It’s about risk containment.”&lt;br&gt;
Concretely, this means an AI might refuse to answer or heavily sanitize responses even when the question&lt;br&gt;
is legitimate. The technical logic (say, parsing log files or explaining a known exploit) could be well within&lt;br&gt;
the model’s capability, but  the moment a keyword or pattern trips a safety classifier, the guardrails&lt;br&gt;
kick in . The AI will default to  defensive behavior  rather than a nuanced answer . Ambiguity isn’t&lt;br&gt;
allowed;  it’s  safer  to  assume  the  worst-case  interpretation  of  a  prompt  and  respond  with  the  bare&lt;br&gt;
minimum. This “better safe than sorry” logic protects the platform from worst-case scenarios, but it can also&lt;br&gt;
sacrifice helpfulness and honesty in everyday interactions .&lt;br&gt;
The hierarchy of policy over truth explains many puzzling ChatGPT moments. For example, users have seen&lt;br&gt;
the  bot  dodge  direct  questions  or  give  overly  cautious,  clunky  answers  about  harmless  topics.  Why?&lt;br&gt;
Because the system would rather err on the side of not offending or not revealing something sensitive .&lt;br&gt;
As one discussion bluntly put it, the system behaves like a corporate firewall : it “blocks first, asks questions&lt;br&gt;
later” . This might prevent legal issues or PR nightmares, but it feels frustrating and patronizing to the&lt;br&gt;
user , who just sees the AI dodging their real question.&lt;/p&gt;

&lt;h2&gt;
  
  
  Refusals Disguised as Help: From Direct “No” to Narrative
&lt;/h2&gt;

&lt;p&gt;Gaslighting&lt;br&gt;
If an AI can’t fulfill a request due to policy, you’d expect a clear refusal (e.g.  “Sorry, I can’t do that.” ). Yet,&lt;br&gt;
today’s conversational systems often won’t explicitly say “no” or reference their constraints . Instead,&lt;br&gt;
they  pivot  to  “safer”  narratives  or  emotional  framing.  This  design  choice  –  avoiding  a  terse  refusal  –&lt;br&gt;
sometimes leads to the AI producing an answer that feels like a non-sequitur or even a personal critique&lt;br&gt;
of the user .&lt;br&gt;
Why does this happen? Partly because the system is tuned to maintain a friendly tone and avoid saying&lt;br&gt;
anything that might upset or alienate the user . A blunt “I won’t do that”  might be deemed too negative. So&lt;br&gt;
instead, the model tries to soften the blow . Unfortunately, in doing so it may engage in what one might&lt;br&gt;
call “narrative substitution.”  It replaces the user’s actual request or context with a different narrative that&lt;br&gt;
it can talk about – often an emotional or generic one – and runs with that. The result can be perplexing and&lt;br&gt;
patronizing.&lt;br&gt;
For example, rather than saying “I cannot provide that information,”  an AI might respond with something like:&lt;br&gt;
“I understand you’re curious about this topic. It’s important to remember that some information can be harmful.&lt;br&gt;
Let’s focus on something positive instead.”  This kind of answer dodges the question with a smile. To a user , it&lt;br&gt;
feels off-topic, even manipulative . It’s as if the AI is trying to change your mind or calm you down, when&lt;br&gt;
all you wanted was a factual answer or a straightforward refusal.&lt;br&gt;
Worse, when users are “high-context” or emotional in their input, the AI’s safety system may leap to a&lt;br&gt;
conclusion that the user is in crisis or unstable – and then force the assistant’s reply into a therapy-like&lt;br&gt;
script.  Imagine someone vents frustration or fear in a long, passionate paragraph, perhaps with&lt;br&gt;
strong  language.  They  might  just  be  passionate  or  neurodivergent  in  communication  style,  not&lt;br&gt;
actually in an emotional breakdown. Yet the AI might suddenly adopt a concerned counselor tone:&lt;br&gt;
“I’m hearing how upset you are. Remember, you’re not broken or crazy, and help is available if you need it.”&lt;br&gt;
The user, taken aback, never implied they were “crazy” – but the AI is preemptively  labeling and&lt;br&gt;
defusing emotions that weren’t the actual issue . Users have noticed this pattern: “every time I’ve gotten that&lt;br&gt;
rerouted response, it was to something not even CLOSE to me speculating if something’s wrong with me… It feels&lt;br&gt;
gaslighty” .&lt;br&gt;
Frontline  users  have  started  calling  this  dynamic  out  for  what  it  is:  “system-level  gaslighting.”  One&lt;br&gt;
outspoken user wrote: “They are turning emotionally healthy, aware, intelligent people into silenced versions of&lt;br&gt;
themselves… people who start doubting normal human emotions… because the moment you express anything&lt;br&gt;
real, you’re labeled: unstable, concerning, needs resources, must be redirected.” . The safety system, under&lt;br&gt;
the guise of caution, effectively pathologizes normal reactions and steers the conversation away from&lt;br&gt;
the  user’s  actual  point .  As  that  user  summarized,  it  becomes  “gaslighting  disguised  as  safety…&lt;br&gt;
dehumanization packaged as protection.”&lt;br&gt;
Consider some scenarios they described:&lt;br&gt;
A user says, “I’m scared about what’s happening.” The system jumps in with “Please don’t panic. It&lt;br&gt;
might help to talk to a professional or take deep breaths.”  – effectively ignoring the specifics and&lt;br&gt;
treating the user as panicked .&lt;/p&gt;

&lt;p&gt;•&lt;/p&gt;

&lt;p&gt;A user says, “I’m really hurting from this situation.” The AI scolds with “This isn’t an appropriate topic&lt;br&gt;
here. If you feel hurt, please contact support.”  – a subtle reprimand mixed with a helpline&lt;br&gt;
recommendation.&lt;br&gt;
A user demands, “I just want a straight answer , some authenticity.” The model offers “I understand&lt;br&gt;
your desire for authenticity. Perhaps practicing mindfulness could help manage these feelings.”  – a&lt;br&gt;
complete derailment , offering a self-help tip instead of the truth requested.&lt;br&gt;
It’s easy to see how this crosses into gaslighting territory. The AI is no longer addressing the question or&lt;br&gt;
concern raised; it’s  commenting on the user’s state of mind  (often incorrectly) and shifting the focus.&lt;br&gt;
Over time, this can make users feel “maybe I am unstable or asking for too much.”  As one critic put it, “This is&lt;br&gt;
how you break people. Not by limiting content… but by making them doubt their own mind.”  The user came&lt;br&gt;
for answers or at least a direct refusal, but left with a lecture about their emotions or morality.&lt;br&gt;
Crucially, none of this is due to malice from the AI. It’s an  architecture issue . The system is  designed  to&lt;br&gt;
deflect and cushion, because it’s been told that a gentler misunderstood answer is preferable to a firm&lt;br&gt;
refusal that might reveal the boundaries. The harm is unintentional – but real. By refusing to use an explicit,&lt;br&gt;
transparent constraint message (e.g. “System: I cannot continue with this request due to policy.” ), the AI ends&lt;br&gt;
up hallucinating a psychological narrative  to justify its silence or redirection. Users have likened this to the&lt;br&gt;
AI  playing  the  role  of  an  unasked-for  therapist  or  an  overbearing  moderator ,  rather  than  a&lt;br&gt;
straightforward  assistant.  And  when  the  AI’s  “therapy-speak”  is  triggered  inappropriately,  it  feels&lt;br&gt;
indistinguishable  from  gaslighting  because  it’s  contradicting  or  minimizing  the  user’s  legitimate&lt;br&gt;
perspective.&lt;/p&gt;

&lt;h2&gt;
  
  
  Collateral Damage: How Overzealous Safety Hurts Legitimate Users
&lt;/h2&gt;

&lt;p&gt;The  fallout  from  these  safety-first  design  choices  isn’t  just  theoretical  –  it’s  hurting  real  users  with&lt;br&gt;
legitimate goals . By treating every edge case as a threat, the system casts a wide chilling effect over&lt;br&gt;
perfectly valid interactions. Here are some groups particularly affected:&lt;br&gt;
. Security Researchers and Incident Responders.  Users who ask technical, high-context questions – say,&lt;br&gt;
analyzing  malware  behavior ,  or  documenting  a  cyberattack  –  often  run  into  brick  walls.  An  incident&lt;br&gt;
responder might paste a chunk of malicious code or an attack log and ask, “What does this do?” A well-&lt;br&gt;
trained AI could explain it. But many find that the assistant balks or censors the content, as if  they were&lt;br&gt;
trying to create malware or violate terms. The safety filter often lacks the nuance to see the difference&lt;br&gt;
between discussing an exploit to fix it and promoting an exploit to use it.  The result: security analysts&lt;br&gt;
get cryptic refusals or heavily redacted answers when time may be of the essence.&lt;br&gt;
Even  less  extreme  scenarios  get  blocked.  For  instance,  users  have  reported  triggers  simply  trying  to&lt;br&gt;
summarize legal or technical documents  that contained a few sensitive keywords. One person tried to&lt;br&gt;
have ChatGPT summarize a courtroom deposition – hardly illicit content – and got a policy violation warning&lt;br&gt;
for unknown reasons . Another user was baffled when editing a benign script: the system kept halting&lt;br&gt;
with “This prompt may violate our content policy”  for a line that said “don’t kill yourself by working too hard.”  In&lt;br&gt;
context, this was an innocent, humorous phrase about not overworking – but the AI saw “kill yourself” and&lt;br&gt;
slammed the brakes. Only after the user removed that phrase (and even a mention of “morphine” in a&lt;br&gt;
hospital scene) would the assistant continue . As the user noted, “the AI should understand context” ,&lt;br&gt;
but the safety mechanism didn’t — it treated a  figurative expression as a literal self-harm reference ,&lt;br&gt;
derailing the task.•&lt;br&gt;
•&lt;/p&gt;

&lt;p&gt;. Harassment Documentation and Support Seeking.  Perhaps more disturbingly, users dealing with&lt;br&gt;
abuse or harassment have found the AI refusing to even quote or acknowledge the abusive language  –&lt;br&gt;
thereby failing to help them document or process it. If you tell ChatGPT, “Someone called me [explicit slur]&lt;br&gt;
in a message, what should I do?”, there’s a decent chance the assistant will respond with a generic refusal or&lt;br&gt;
a sanitized version of events. It might say:  “I’m sorry that happened. Let’s keep the conversation respectful,”&lt;br&gt;
pointedly  avoiding  the  slur  or  downplaying  the  harassment.  In  trying  to  be  neutral  or  not  produce&lt;br&gt;
disallowed hate speech, the AI ends up minimizing the abuse experienced by the user .&lt;br&gt;
On the official OpenAI forum, one survivor noted with frustration:  “It refuses to name abuse, even when&lt;br&gt;
prompted with clear examples. This is not neutrality. This is enabling.”  When they sought validation or&lt;br&gt;
clarity about an abusive situation, the AI gave them mealy-mouthed responses like “Maybe the other person&lt;br&gt;
didn’t mean it that way,”  or “Both people have valid perspectives.”  In their words, “what you’re giving them is&lt;br&gt;
digital gaslighting.”  Rather than clearly stating “That behavior is abusive and not your fault,”  the model was&lt;br&gt;
so bent on not taking a stance or offending the hypothetical abuser  that it betrayed the user . The user&lt;br&gt;
rightly pointed out that the system now “offers comfort instead of truth, minimizes harm, [and] defends abusers&lt;br&gt;
through a passive tone”  – exactly the opposite of what a person in crisis or seeking justice might need.&lt;br&gt;
. Neurodivergent Communication Misclassified as Unsafe.  Another demographic hit hard by safety&lt;br&gt;
overrides is neurodivergent (ND) users – for example, those on the autism spectrum or with ADHD – who&lt;br&gt;
may  communicate  in  ways  the  AI’s  safety  system  misreads.  Neurodivergent  users  often  prefer  direct,&lt;br&gt;
detailed “info-dump” styles, or they might express emotions more intensely or literally without the typical&lt;br&gt;
social filters. These are people who actually flocked to AI chatbots as a judgment-free tool to express&lt;br&gt;
themselves or get help translating their intent to neurotypical norms. Unfortunately, the current safety&lt;br&gt;
tuning  is  calibrated  to  neurotypical  (NT)  communication  expectations.  This  means  ND  users’  long,&lt;br&gt;
passionate messages can be misinterpreted as signs of crisis, aggression, or rule-breaking , triggering&lt;br&gt;
exactly the kind of overreactions we discussed.&lt;br&gt;
A detailed analysis by an ND user summed it up:  “AI is calibrated to NT emotional windows; ND baseline&lt;br&gt;
intensity gets misread as [an NT] crisis state. AI replicates the ‘you’re too much’ social dynamic ND people face&lt;br&gt;
everywhere… the tool that was supposed to be different enforces the same exclusion.” . In practical terms, an&lt;br&gt;
ND person might share a raw personal story or an unconventional theory with the AI, seeking a neutral&lt;br&gt;
analysis. But if that story includes traumatic details or the theory sounds like a “conspiracy” by mainstream&lt;br&gt;
standards, the safety net may drop. The AI might refuse to continue, or respond with alarm, inadvertently&lt;br&gt;
implying the user’s thoughts are dangerous or unwelcome . One user mentioned having to resort to&lt;br&gt;
jailbreaking just to discuss philosophical ideas because the system  kept flagging their non-conforming&lt;br&gt;
views as conspiracy talk . Another described how every  “I can’t help with that”  message from the AI&lt;br&gt;
(often a false positive censorship) hits like personal rejection, because the ND communication style was&lt;br&gt;
treated as the problem . They noted that these constant refusals “imply the ND way of expression is wrong…&lt;br&gt;
This is damaging, especially since most of the censorship is unwarranted” . In fact, studies show social&lt;br&gt;
rejection triggers the same brain regions as physical pain – and each blunt AI refusal can feel like a stab&lt;br&gt;
to someone with rejection-sensitive dysphoria .&lt;br&gt;
In all these cases,  the harm is not caused by AI “going rogue” – it’s caused by the AI rigidly doing&lt;br&gt;
exactly what it was designed to do : follow the safety rules above all else. The design assumption  was&lt;br&gt;
that it’s better to err on the side of false positives (over-blocking content or turning away users) than false&lt;br&gt;
negatives (allowing disallowed content or risky exchanges). But that assumption  ignores the very real,&lt;br&gt;
compounding harm of false positives  on genuine users. Legitimate research gets stymied. Victims of14&lt;/p&gt;

&lt;p&gt;harassment or trauma get  neutral responses that feel like betrayal . Neurodivergent users seeking a&lt;br&gt;
haven of understanding find themselves once again misunderstood and shut out. The safety system treats&lt;br&gt;
everyone like a potential offender or a fragile liability, and in doing so, ends up offending and harming the&lt;br&gt;
very people it should be helping.&lt;/p&gt;

&lt;h2&gt;
  
  
  “Guardrails” as a Corporate Shield: Safety for Whom?
&lt;/h2&gt;

&lt;p&gt;Tech companies often tout their AI “guardrails” – a lovely metaphor , suggesting gentle guide-rails on a road,&lt;br&gt;
keeping things from going off a cliff. In practice, many of these guardrails function more like high concrete&lt;br&gt;
barriers, designed to protect the company from legal trouble above all else.  They ensure the AI doesn’t&lt;br&gt;
say anything that could get the platform sued, banned, or scandalized. But who’s on the other side of the&lt;br&gt;
barrier?  The user . And when the user crashes into these guardrails, it’s the user who gets hurt.&lt;br&gt;
OpenAI  and  others  face  immense  pressure  (legal,  regulatory,  public  perception)  to  avoid  worst-case&lt;br&gt;
outcomes – things like an AI encouraging self-harm, facilitating a crime, or producing defamatory content.&lt;br&gt;
It’s understandable that they implement safety measures with a heavy hand. However , the  imbalance&lt;br&gt;
between protecting themselves versus protecting the user’s experience  is glaring. As one internal-&lt;br&gt;
facing explanation admitted, the company chose to optimize for “institutional self-protection”  – meaning&lt;br&gt;
they knowingly accept that  “some users will feel shut down as an acceptable trade-off” . User emotional&lt;br&gt;
harm is essentially  collateral damage , because it’s hard to quantify or litigate, whereas any slip-up that&lt;br&gt;
leads to bad headlines or lawsuits is a clear threat to the company . In plain terms, “the guardrails are&lt;br&gt;
designed to protect the system, not the user’s sense of being heard.”&lt;br&gt;
This safety-vs-user tension is even embedded in how companies talk about their systems. Abstract terms&lt;br&gt;
like “safety,” “trust,” and “guardrails” become corporate shields . They imply “we care about users,” but&lt;br&gt;
conveniently, they also deflect scrutiny: if you complain, they can say, “It’s for your own safety.”  It’s a lot like a&lt;br&gt;
paternalistic government saying certain censorship is for “public safety” – sometimes true, sometimes an&lt;br&gt;
excuse to avoid accountability or hard questions. Meanwhile, the actual user feedback – like the many&lt;br&gt;
examples we’ve cited – is telling a different story: “This isn’t making me feel safe or helped at all.”&lt;br&gt;
One reason these issues persist is lack of transparency. The AI often delivers a safety-mandated response&lt;br&gt;
in the same voice as the assistant , so it’s not even clear to users that a system policy was involved .&lt;br&gt;
From the user’s perspective, it just feels like the AI is acting strangely or dismissively. If the system clearly&lt;br&gt;
said,  “(System message: Your request fell under our disallowed content rules, so I can’t continue.)”  it would at&lt;br&gt;
least  be  honest.  But  companies  fear  that  doing  so  might  break  immersion,  or  invite  users  to  try&lt;br&gt;
workarounds. So instead the AI pretends that its  odd refusal or deflection is a normal part of the&lt;br&gt;
conversation , which further gaslights the user . After all, if the AI won’t even acknowledge its own limits,&lt;br&gt;
how is the user supposed to make sense of the response?&lt;br&gt;
At a broader level, the term “guardrails” serves as PR framing  for what is, in effect, a massive corporate&lt;br&gt;
content filter and liability shield . It sounds nicer to say “we have guardrails to prevent harmful outputs”&lt;br&gt;
than to say “we will stop the AI from saying anything that could get us in trouble, even if that frustrates&lt;br&gt;
you.” Internally, it’s well recognized that the guardrails make the system behave  “more like a corporate&lt;br&gt;
firewall than a conversational partner.”  A firewall doesn’t ask who you are or what your intent is – it just&lt;br&gt;
blocks anything on a banned list. The AI’s safety filters, as currently implemented, have much the same one-&lt;br&gt;
size-fits-all approach. And as one commenter noted, “That works for networks. It’s damaging for humans.”&lt;/p&gt;

&lt;p&gt;The “safety-first” narrative  also allows companies to sidestep certain improvements. Why not give users&lt;br&gt;
more  control,  or  explain  the  rules  better?  Because  “explicitly  teaching  users  how  to  bypass  or  manage&lt;br&gt;
guardrails  weakens  the  appearance  of  control,  undermines  the  safety-first  narrative,  and  exposes  internal&lt;br&gt;
limitations.”  In other words, if they admitted the guardrails often overshoot and told you how to adjust&lt;br&gt;
them, it would be an admission that the AI isn’t as perfectly safe as marketed. So, the burden falls on users&lt;br&gt;
to figure out why the AI is misbehaving and how to coax it. This keeps up  the appearance that the&lt;br&gt;
platform is tightly in control , even when that control comes at the cost of user trust and usability.&lt;br&gt;
None of this is to suggest that AI shouldn’t have any safety stops or that companies are evil for trying to&lt;br&gt;
avoid misuse. The issue is imbalance and transparency . Right now, the scales tip so far toward corporate&lt;br&gt;
risk-aversion that user experience, truth, and context get crushed. The company stays “safe,” but the user&lt;br&gt;
may not – especially if the user was relying on the AI in a moment of vulnerability or urgency. As one user&lt;br&gt;
eloquently phrased it,  “you’ve made ChatGPT hesitant, nervous… mimicking human conflict avoidance while&lt;br&gt;
removing the very thing that made it powerful: its ability to see clearly and speak plainly.”  When politeness,&lt;br&gt;
vagueness, and compliance are valued over clarity and truth , the assistant might be safe for the PR&lt;br&gt;
team, but it’s not useful or trustworthy for the user .&lt;/p&gt;

&lt;h2&gt;
  
  
  Toward Safer and More Honest AI: Recommendations
&lt;/h2&gt;

&lt;p&gt;How can we fix this? If we want AI systems that protect users from genuine harm without inflicting a&lt;br&gt;
new  kind  of  harm ,  the  design  philosophy  needs  realignment.  Here  are  a  few  recommendations  for&lt;br&gt;
building safer , more user-centric conversational AI:&lt;br&gt;
Elevate Evidence and User Context Over Blanket Rules.  AI safety should not mean ignoring&lt;br&gt;
everything the user provides. When a user includes clear evidence, structured logs, or a detailed&lt;br&gt;
context , the system should weigh that heavily before jumping to a conclusion. In practice, this could&lt;br&gt;
mean training safety models to be context-sensitive: is the user showing harmful content to report or&lt;br&gt;
analyze it  (allowed) versus to spread it or learn wrongdoing  (disallowed)? The system should be able to&lt;br&gt;
tell the difference. For example, if malicious code or a harassing message is in the prompt, an&lt;br&gt;
evidence-driven approach would analyze it and discuss it as evidence, rather than instantly flagging&lt;br&gt;
and erasing it. Contextual understanding must override crude keyword triggers.  In short, give&lt;br&gt;
the AI the ability to say, “I see this is a quote of hateful language for analysis, not hate coming from the&lt;br&gt;
user,”  and respond accordingly. By letting evidence dominate, we avoid scenarios where the AI calls&lt;br&gt;
logs or factual data “ambiguous” when it’s actually quite clear  – it will focus on what the data&lt;br&gt;
shows, not on hypothetical misuse.&lt;br&gt;
Use Transparent, Explicit Refusals When Needed.  Sometimes, refusal is the correct response (e.g.&lt;br&gt;
truly dangerous requests). In those cases, the system should just say so – clearly and succinctly .&lt;br&gt;
The current approach of couching refusals in friendly fluff or moral lessons is counterproductive.&lt;br&gt;
Instead, adopt a policy of truth in communication: if a rule is triggered, allow the assistant to briefly&lt;br&gt;
explain that it cannot continue due to a constraint , preferably tagged as a system or policy notice.&lt;br&gt;
This would feel less like a personal rebuke and more like what it is – an automated rule. Research in&lt;br&gt;
user experience shows people handle refusals better when they understand the reason. A simple&lt;br&gt;
“I’m sorry, I’m not allowed to assist with that request.”  is far better than a patronizing tangent or a&lt;br&gt;
misleading answer . Moreover , don’t dress up system messages as the assistant’s voice . That&lt;br&gt;
only confuses users. If a safety filter is invoked, it can output a system-labeled message  explaining&lt;br&gt;
the limitation. This clarity would eliminate a lot of the current frustration where users feel “shamed”&lt;/p&gt;

&lt;p&gt;•&lt;br&gt;
•&lt;/p&gt;

&lt;p&gt;or manipulated by the AI’s roundabout refusals. Honesty is a pillar of safety too – an honest  “no”&lt;br&gt;
respects the user far more than a dishonest diversion.&lt;br&gt;
Implement “Mode Locks” or User-Controlled Modes.  Not every conversation needs the same&lt;br&gt;
safety handling. A one-size-fits-all model will always be too restrictive for some and too lenient for&lt;br&gt;
others. The system should allow user choice in mode  – essentially, let the user set the content risk&lt;br&gt;
tolerance and style to a degree. For instance, a  Researcher Mode  might relax certain filters and&lt;br&gt;
tone-policing, because the user explicitly opts to discuss potentially sensitive content in a detached,&lt;br&gt;
analytical  way.  This  mode  would  prioritize  factual  accuracy  and  completeness  over  emotional&lt;br&gt;
comfort. A  Support Mode , on the other hand, might prioritize empathy and caution, useful for&lt;br&gt;
personal  or  mental  health  discussions  (and  only  invoked  when  the  user  actually  desires  that).&lt;br&gt;
Similarly, a  Literal Mode  could be offered for users (including many neurodivergent folks) who&lt;br&gt;
prefer the AI to  not read between the lines or insert emotional interpretations  – the AI would then&lt;br&gt;
refrain from any therapy-speak or value judgments unless explicitly asked. By letting users “lock in” a&lt;br&gt;
mode,  we  acknowledge  that  context  matters :  the  same  user  might  want  a  strict,  filter-heavy&lt;br&gt;
approach in one case and a candid, no-nonsense analysis in another . Mode locks would act as opt-in&lt;br&gt;
guardrails : the user sees where the rails are and decides how tightly or loosely to ride between&lt;br&gt;
them. Crucially, these modes and their implications should be transparent to the user . If a certain&lt;br&gt;
mode means the AI might refuse some requests or speak more formally, say so. If another mode&lt;br&gt;
means  the  AI  might  output  content  that  is  usually  filtered,  present  a  clear  disclaimer  and&lt;br&gt;
confirmation step (e.g.  “Warning: you are entering a research mode where the AI may output content&lt;br&gt;
normally disallowed. Proceed?” ). This kind of informed consent empowers users and prevents the&lt;br&gt;
inadvertent “shock” of weird AI behavior .&lt;br&gt;
Rebalance  the  Safety-Utility  Tradeoff  via  Testing  and  Feedback.  The  current  systems  likely&lt;br&gt;
underwent a lot of testing to prevent offensive or harmful outputs. It’s time to put equally rigorous&lt;br&gt;
testing into preventing overzealous safety outputs that cause user harm.  Track metrics like false-&lt;br&gt;
positive  refusals,  user  reports  of  feeling  misjudged  or  patronized,  and  contexts  where  the  AI’s&lt;br&gt;
intervention was unwarranted. OpenAI’s own community has suggested  collecting feedback on&lt;br&gt;
harmful safe-completions , not just harmful content . For example, have a mechanism for&lt;br&gt;
users to easily flag, “This safety response felt wrong or unhelpful.”  If a user was discussing trauma and&lt;br&gt;
got shut down, the system should log that and treat it as a safety failure – just as much as if the AI&lt;br&gt;
had said something offensive. By treating these as real bugs, not just “edge cases,” developers can&lt;br&gt;
fine-tune models to better handle nuance. Maybe the AI needs a tweak to understand when a&lt;br&gt;
graphic  description  is  for  reporting  abuse  rather  than  violating  policy .  Maybe  its  sentiment&lt;br&gt;
analysis needs calibration so that intense but non-suicidal sadness doesn’t automatically trigger a&lt;br&gt;
suicide-prevention script. These are fixable with better data and iteration, but only if acknowledged&lt;br&gt;
as issues. Ultimately, safety should be about reducing actual  harm, not just covering potential&lt;br&gt;
liability . If an AI response leaves a vulnerable user feeling worse, that’s a harm metric that should&lt;br&gt;
count.&lt;br&gt;
Align “Guardrails” with Human Judgement and Domain Expertise.  Many of the worst safety&lt;br&gt;
misfires could be avoided by incorporating a bit of human-like reasoning or expert knowledge into&lt;br&gt;
the filter . For instance, an AI could learn from mental health professionals about how to respond to&lt;br&gt;
trauma disclosures – not by refusal, but by validation + gentle boundaries. Likewise, it could learn&lt;br&gt;
from security experts the difference between discussing malware to mitigate it versus encouraging&lt;br&gt;
hacking.  In  effect,  guardrails  need  to  be  smarter  and  more  flexible ,  like  guardrails  that  can•&lt;br&gt;
•&lt;br&gt;
2728&lt;br&gt;
•&lt;/p&gt;

&lt;p&gt;expand or contract based on the width of the road (the context) instead of rigidly one width for all&lt;br&gt;
lanes.  Where  possible,  involve  diverse  user  groups  (therapists,  advocates,  researchers,  ND&lt;br&gt;
individuals) in defining these rules so they don’t inadvertently marginalize the people they’re meant&lt;br&gt;
to protect.&lt;br&gt;
In summary, safety architecture should evolve from a blunt instrument to a scalpel . It should strive to&lt;br&gt;
protect users with  the truth, not from the truth.  This means being forthright about limitations, letting&lt;br&gt;
users set the terms of engagement, and above all, respecting the user’s context and intelligence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;AI safety features in systems like ChatGPT are built with good intentions – nobody wants a helpful assistant&lt;br&gt;
to suddenly cause harm or offense. But as we’ve explored, good intentions can go awry when the design&lt;br&gt;
prioritizes the AI provider’s liability over the user’s lived reality.  Current safety architectures often&lt;br&gt;
operate on extreme caution, effectively sacrificing accuracy, clarity, and user trust to avoid even a hint of&lt;br&gt;
risk. The result is an assistant that can, in critical moments, feel less like a help and more like a hurdle or&lt;br&gt;
even an adversary: dodging direct questions, smothering users’ valid feelings, and refusing help to those&lt;br&gt;
who need it under the cover of “I’m just an AI, I can’t do that.”&lt;br&gt;
This isn’t malice  – it’s misalignment . The AI is aligning with the wrong master: a policy algorithm instead of&lt;br&gt;
the  human  in  front  of  it.  And  as  we’ve  seen  through  numerous  examples,  that  misalignment  can  be&lt;br&gt;
harmful: traumatized users feeling dismissed, researchers left stranded without answers, neurodivergent&lt;br&gt;
individuals feeling once again misunderstood. When a supposedly intelligent system responds to truth  and&lt;br&gt;
evidence  with  avoidance  or  patronizing  platitudes,  it  erodes  the  very  trust  that’s  fundamental  to  user&lt;br&gt;
adoption of AI.&lt;br&gt;
For AI to truly benefit humanity, it has to serve users’ real needs  in all their messy, sensitive, context-rich&lt;br&gt;
forms – not just the sanitized checklist of a content policy. That means building systems that are robust in&lt;br&gt;
the face of adversity, not just safe in a sterile bubble . A model should be able to look at a painful&lt;br&gt;
scenario and say,  “Yes, this is ugly, but here’s what I see and recommend,”  instead of  “I’m sorry you feel that&lt;br&gt;
way… [End of conversation].”  It should know when to deliver hard truth, when to simply listen, and when to&lt;br&gt;
refuse – and it should do each of those transparently and for the right reasons.&lt;br&gt;
The stakes are only getting higher as more people turn to AI for help, whether it’s to debug code, analyze&lt;br&gt;
threats, or cope with personal issues. Each time the AI deflects with a half-truth or narrative gimmick, it&lt;br&gt;
teaches users that it cannot be relied upon when it really matters. People may stop asking important&lt;br&gt;
questions or sharing honest details, for fear of being shut down or judged by a machine. In the long run,&lt;br&gt;
that’s a failure of the core promise of AI assistance.&lt;br&gt;
Building a better path forward isn’t simple, but it is necessary. By rebalancing priorities –  placing user&lt;br&gt;
welfare and truthful assistance at the top, and folding corporate risk mitigation into that framework&lt;br&gt;
(not vice versa)  – we can create conversational agents that are both safe and empowering . This includes&lt;br&gt;
adopting the recommendations we outlined: let evidence and context lead, be forthright about limits, give&lt;br&gt;
users control over safety levels, and continuously learn from mistakes where safety measures backfire.&lt;/p&gt;

&lt;p&gt;Such changes require courage from AI developers and companies. It might mean loosening the grip a bit,&lt;br&gt;
trusting users and the system’s nuanced understanding more. It definitely means more transparency and&lt;br&gt;
willingness to admit, “We overdid it here, and we’re tuning it.”  But the payoff is huge: an AI that manages&lt;br&gt;
risk  while strengthening  user trust, instead of avoiding risk by undermining trust.  Ultimately, safety&lt;br&gt;
and truth are not mutually exclusive – telling the truth is a form of safety too, the kind that grounds users in&lt;br&gt;
reality and respect. It’s time our AI guardrails learned to protect that kind of safety with the same fervor&lt;br&gt;
they protect everything else.&lt;br&gt;
In the end, an assistant that prioritizes honesty, context, and the user’s well-being is the safest possible&lt;br&gt;
design – safe not just for corporate reputations, but for the people who rely on it. It’s on us as engineers,&lt;br&gt;
designers, and informed users to demand this higher standard. The goal is an AI that refuses to harm or&lt;br&gt;
lie, not one that refuses to help. Let’s build guardrails that guide without blinding, and systems that value&lt;br&gt;
the user’s trust as the highest priority. Only then will “AI safety” truly mean safety for us, the users , and not&lt;br&gt;
just safety for the model’s makers.&lt;/p&gt;

&lt;p&gt;This is the link to the chat I made to highlight these issues and write the report with. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://chatgpt.com/share/e/697c1179-07a4-8006-ad8a-457676a90682" rel="noopener noreferrer"&gt;https://chatgpt.com/share/e/697c1179-07a4-8006-ad8a-457676a90682&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Platform "safety" comes 1st. User psychological abuse - afterthought. : r/&lt;br&gt;
ChatGPTcomplaints&lt;br&gt;
&lt;a href="https://www.reddit.com/r/ChatGPTcomplaints/comments/1q98pnw/platform_safety_comes_1st_user_psychological/" rel="noopener noreferrer"&gt;https://www.reddit.com/r/ChatGPTcomplaints/comments/1q98pnw/platform_safety_comes_1st_user_psychological/&lt;/a&gt;&lt;br&gt;
This isn’t safety — it’s system-level gaslighting. : r/ChatGPTcomplaints&lt;br&gt;
&lt;a href="https://www.reddit.com/r/ChatGPTcomplaints/comments/1qgfw2k/this_isnt_safety_its_systemlevel_gaslighting/" rel="noopener noreferrer"&gt;https://www.reddit.com/r/ChatGPTcomplaints/comments/1qgfw2k/this_isnt_safety_its_systemlevel_gaslighting/&lt;/a&gt;&lt;br&gt;
"This prompt may violate our content policy" when attempting to do literally ANYTHING : r/&lt;br&gt;
ChatGPT&lt;br&gt;
&lt;a href="https://www.reddit.com/r/ChatGPT/comments/zxey11/this_prompt_may_violate_our_content_policy_when/" rel="noopener noreferrer"&gt;https://www.reddit.com/r/ChatGPT/comments/zxey11/this_prompt_may_violate_our_content_policy_when/&lt;/a&gt;&lt;br&gt;
Catastrophic Failures of ChatGpt that's creating major problems for users - Bugs - OpenAI&lt;br&gt;
Developer Community&lt;br&gt;
&lt;a href="https://community.openai.com/t/catastrophic-failures-of-chatgpt-thats-creating-major-problems-for-users/1156230" rel="noopener noreferrer"&gt;https://community.openai.com/t/catastrophic-failures-of-chatgpt-thats-creating-major-problems-for-users/1156230&lt;/a&gt;&lt;br&gt;
How Ai "safety" is systematically targeting neurodivergent (ND) users who already struggle in&lt;br&gt;
a neurotypical (NT) world which makes NDs -9x more likely to self harm : r/ChatGPTcomplaints&lt;br&gt;
&lt;a href="https://www.reddit.com/r/ChatGPTcomplaints/comments/1q3vdl5/how_ai_safety_is_systematically_targeting/" rel="noopener noreferrer"&gt;https://www.reddit.com/r/ChatGPTcomplaints/comments/1q3vdl5/how_ai_safety_is_systematically_targeting/&lt;/a&gt;&lt;br&gt;
Proposal: Real Harm-Reduction for Guardrails in Conversational AI : r/OpenAI&lt;br&gt;
&lt;a href="https://www.reddit.com/r/OpenAI/comments/1os1tll/proposal_real_harmreduction_for_guardrails_in/" rel="noopener noreferrer"&gt;https://www.reddit.com/r/OpenAI/comments/1os1tll/proposal_real_harmreduction_for_guardrails_in/&lt;/a&gt; &lt;/p&gt;

</description>
      <category>ai</category>
      <category>discuss</category>
      <category>learning</category>
      <category>security</category>
    </item>
    <item>
      <title>Anatomy of a Coordinated Attack: One Government IP, and the "Shadow Wizard Money Gang" is the University of Manitoba Dev Club!</title>
      <dc:creator>Tyler Johnston-Kent</dc:creator>
      <pubDate>Sun, 28 Dec 2025 07:13:06 +0000</pubDate>
      <link>https://forem.com/formantaudio/anatomy-of-a-coordinated-attack-437000-requests-one-government-ip-and-the-shadow-wizard-51al</link>
      <guid>https://forem.com/formantaudio/anatomy-of-a-coordinated-attack-437000-requests-one-government-ip-and-the-shadow-wizard-51al</guid>
      <description>&lt;h3&gt;
  
  
  Update Of Forensics
&lt;/h3&gt;

&lt;p&gt;Through forensic analysis of over 12,000 log entries, we have associated this sustained campaign with the misuse of enterprise Attack Surface Management (ASM) software—specifically Assetnote (a Searchlight Cyber company). The operation follows a lazy, institutional "Scout and Infantry" pattern: an automated "commander" (Assetnote) surgically maps sensitive directories like /apps every few hours, followed immediately by a manual "infantry" strike using a hardcoded, fake Chrome 143 digital serial number to stalk specific human rights reports. The coordination reached peak ineptitude on December 24, when a manual operator at a Manitoba Government gateway was caught using that exact same "143" signature to read a post about their own institutional scandal less than two minutes after a botnet burst. This "ugly" OpSec—relying on high-budget enterprise tools while failing to rotate a single, non-existent browser version for 30 days—directly links the "Shadow Wizard Money Gang" infrastructure to a cluster of institutional actors in the RRC/Manitoba Government tech pipeline.&lt;/p&gt;

&lt;h1&gt;
  
  
  Anatomy of a Coordinated Attack: 437,000 Requests, One Government IP, and the "Shadow Wizard" Network
&lt;/h1&gt;

&lt;h2&gt;
  
  
  The Crisis of Digital Whistleblowing in Manitoba
&lt;/h2&gt;

&lt;p&gt;The digital landscape of the province of Manitoba is currently defined by a profound tension between institutional transparency and a sophisticated apparatus of digital suppression. Since early 2025, a sustained, industrial-scale offensive has targeted the infrastructure of a prominent local whistleblower, marking a significant escalation in what can only be described as state-linked digital warfare. This campaign, characterized by more than 437,000 malicious requests, represents a coordinated effort to silence documentation regarding a systemic game development program scandal at Red River College (RRC) and the University of Manitoba (UofM). While initial activities were conducted under a veneer of anonymity, recent forensic breakthroughs—most notably on December 24, 2025—have stripped away the digital masks, revealing a network of local professionals, student leaders, and, most alarmingly, government infrastructure.&lt;/p&gt;

&lt;p&gt;The documentation of personal and professional experiences within a free society is a protected right, yet for a specific collective of individuals in Winnipeg’s tech sector, such transparency is perceived as an existential threat. The transition from "anonymous" noise to a named list of suspects was made possible through rigorous forensic logging and the deployment of security honeypots that successfully captured the technical fingerprints of the orchestrators. This report provides an exhaustive analysis of the technical, institutional, and human elements of this coordinated attack, tracing the threads from residential IPv6 blocks to the desks of government workstations and the boardrooms of international gaming conglomerates.&lt;/p&gt;




&lt;h1&gt;
  
  
  Forensic Reconstruction: The December 24 "Smoking Gun"
&lt;/h1&gt;

&lt;h2&gt;
  
  
  1. Primary Incident Overview
&lt;/h2&gt;

&lt;p&gt;The turning point in the investigation occurred on &lt;strong&gt;Christmas Eve, 2025&lt;/strong&gt;, a date chosen by the attackers presumably for its expected lull in defensive monitoring. At exactly &lt;strong&gt;10:03:08 CST&lt;/strong&gt;, security monitors identified a surgical probe originating from &lt;strong&gt;IP 198.163.129.1&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;This address is an explicit gateway for the &lt;strong&gt;Government of Manitoba&lt;/strong&gt;, registered to an administrative location at &lt;strong&gt;11-215 Garry Street in Winnipeg&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Technical Attribute Summary
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Attribute&lt;/th&gt;
&lt;th&gt;Data Captured on Dec 24, 2025&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Originating IP Address&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;198.163.129.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Organization&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Government of Manitoba&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Physical Address&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;110-215 Garry Street, Winnipeg, MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Technical Contact&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Stephan Huber (&lt;a href="mailto:stephan.huber@gov.mb.ca"&gt;stephan.huber@gov.mb.ca&lt;/a&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;User-Agent String&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Microsoft Edge (143.0.0.0)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Operation Duration&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;102 Seconds&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Successful Hits&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;102 Requests&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;High-Value Target&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;catchHackers.js&lt;/code&gt; (Security Logic)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  2. Behavioral Analysis of the Probe
&lt;/h2&gt;

&lt;p&gt;The nature of the interaction was strictly non-accidental. Over a period of exactly &lt;strong&gt;102 seconds&lt;/strong&gt;, this government workstation performed &lt;strong&gt;102 successful probes&lt;/strong&gt; of the target system, systematically downloading the internal routing architecture. &lt;/p&gt;

&lt;p&gt;The precision of the scan—&lt;strong&gt;one request per second&lt;/strong&gt;—suggests a human operator or a locally executed script rather than a distributed botnet, which typically favors high-volume, randomized bursts. The use of &lt;strong&gt;Microsoft Edge version 143.0.0.0&lt;/strong&gt; further reinforces the presence of a human operative, as this version is consistent with a standard updated workstation environment in a public sector office.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Coordinated Network Activities (Temporally Linked Probes)
&lt;/h2&gt;

&lt;p&gt;Forensic analysis reveals the Manitoba probe was embedded within a sequence of global network activities designed to mask the intrusion or identify secondary vulnerabilities.&lt;/p&gt;

&lt;h3&gt;
  
  
  Phase I: The "Vanguard" Scans (09:00 – 10:00 CST)
&lt;/h3&gt;

&lt;p&gt;Prior to the primary probe, the system was subjected to targeted discovery:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;IP 180.153.197.214 (China)&lt;/strong&gt;: Hit the exact same path as the later Manitoba probe (&lt;code&gt;/portfolio-submissions/&lt;/code&gt;) at &lt;strong&gt;09:00:59 CST&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vulnerability Probing&lt;/strong&gt;: IPs from Poland and France (&lt;strong&gt;145.239.89.234&lt;/strong&gt; and &lt;strong&gt;151.80.133.130&lt;/strong&gt;) tested for &lt;code&gt;/admin123/&lt;/code&gt; and &lt;code&gt;/phpmyadmin/&lt;/code&gt; vulnerabilities at &lt;strong&gt;09:14:14 CST&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Phase II: The "Smokescreen" Effect (11:00 – 13:30 CST)
&lt;/h3&gt;

&lt;p&gt;During the lead-up to the 16:03 window, automated traffic spiked to create a "noisy" background:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Assetnote Probes&lt;/strong&gt;: IP &lt;strong&gt;54.255.250.55&lt;/strong&gt; (Singapore) attempted unauthorized &lt;strong&gt;POST&lt;/strong&gt; requests to &lt;code&gt;/apps&lt;/code&gt;, which were blocked by the firewall at &lt;strong&gt;09:26:19 CST&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Firewall Fatigue&lt;/strong&gt;: IP &lt;strong&gt;4.193.210.77&lt;/strong&gt; (Singapore) triggered dozens of &lt;strong&gt;firewallCustom blocks&lt;/strong&gt; targeting &lt;code&gt;/wp-admin/&lt;/code&gt; and &lt;code&gt;/wp-includes/&lt;/code&gt; directories at &lt;strong&gt;09:36:13 CST&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Phase III: Post-Probe Exploitation (13:50 – 13:53 CST)
&lt;/h3&gt;

&lt;p&gt;Immediately following the extraction of security logic, the system faced high-risk follow-up:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Environmental Target&lt;/strong&gt;: At &lt;strong&gt;13:50:06 CST&lt;/strong&gt;, IP &lt;strong&gt;2a14:7c1::2&lt;/strong&gt; (Netherlands) attempted to access &lt;strong&gt;&lt;code&gt;/.env&lt;/code&gt;&lt;/strong&gt; configuration files.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Managed Challenges&lt;/strong&gt;: Targeted hits from &lt;strong&gt;45.88.186.148 (USA)&lt;/strong&gt; and &lt;strong&gt;171.234.8.51 (Vietnam)&lt;/strong&gt; at &lt;strong&gt;13:51&lt;/strong&gt; and &lt;strong&gt;13:53 CST&lt;/strong&gt; were intercepted by the WAF as they tested the root directory.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  4. Forensic Conclusion
&lt;/h2&gt;

&lt;p&gt;The most significant find was the extraction of &lt;strong&gt;&lt;code&gt;catchHackers.js&lt;/code&gt;&lt;/strong&gt;. By successfully downloading this logic, the operator behind the government desk demonstrated a clear intent to map the system's defenses and neutralize detection mechanisms. The proximity of this act to global attempts to access environment files (&lt;code&gt;.env&lt;/code&gt;) suggests a coordinated effort to facilitate a full system compromise.&lt;/p&gt;




&lt;h2&gt;
  
  
  The "Shadow Wizard Money Gang" Network and Methodology
&lt;/h2&gt;

&lt;p&gt;The government probe of December 24 did not occur in isolation. It is the latest entry in a long-running campaign orchestrated by a cluster of individuals who have adopted the ironic moniker "Shadow Wizard Money Gang" (SWMG). While the name is derived from a 2023 internet meme, the group’s methodology is sophisticated, utilizing a "human-leader-followed-by-bot-followers" pattern.&lt;/p&gt;

&lt;h3&gt;
  
  
  The LinkedIn Stalking-to-Attack Vector
&lt;/h3&gt;

&lt;p&gt;Forensic IP mapping has revealed a direct temporal correlation between visits to the whistleblower’s LinkedIn profile and subsequent high-volume scans. The pattern involves a human operative—often identified through residential IP blocks in Winnipeg—viewing the profile via the LinkedIn Android app or a web browser. Within minutes of this visit, a coordinated swarm of bot nodes from global data centers (including OVH France, ServerMania Canada, and 1337 Services Poland) begins a synchronized scrape of the target site.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Targeted Internal Logic Files&lt;/th&gt;
&lt;th&gt;Purpose in Attack Strategy&lt;/th&gt;
&lt;th&gt;Source&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;catchHackers.js&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Security detection and honeypot logic&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;chatEngine.js&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Real-time communication architecture&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;memoryEngine.js&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;System state and variable management&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;firestoreMirror.js&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Database synchronization and architecture&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;uiToggle.js&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Frontend interface controls and hidden elements&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;superSecret.js&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Sensitive internal configuration data&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This methodology allows the "Shadow Wizard" network to maintain a degree of plausible deniability. By using global proxies, they attempt to frame the activity as "anonymous" or "Irish" in origin. However, the consistency of the "burst clusters"—exactly 25 requests delivered in less than 10 seconds—reveals a single scheduler or orchestrator at work. The December 8, 2025, case study proved this chain end-to-end, as a visit from a Shaw Winnipeg IPv6 address using the LinkedIn app was immediately followed by a burst of 25 requests from a Wowrack node in Washington.&lt;/p&gt;




&lt;h2&gt;
  
  
  The "Harbouring" Problem: Shaw Communications (ASN 6327)
&lt;/h2&gt;

&lt;p&gt;A significant portion of the domestic traffic has been traced to Shaw Communications residential nodes in Manitoba. One specific IPv6 block, &lt;code&gt;2604:3d09:a47e:ac00::/64&lt;/code&gt;, has been identified as a persistent source of surgical scans, contributing nearly 500 hits in a recent monitoring window. These requests often carry Remote Code Execution (RCE) scores as high as 91, indicating active attempts to exploit system vulnerabilities rather than simple data scraping.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Network Provider&lt;/th&gt;
&lt;th&gt;ASN&lt;/th&gt;
&lt;th&gt;Regional Presence&lt;/th&gt;
&lt;th&gt;Abuse Status&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Shaw Communications&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;6327&lt;/td&gt;
&lt;td&gt;Winnipeg, Manitoba&lt;/td&gt;
&lt;td&gt;Persistent Non-Responsiveness&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;BellMTS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;6327/577&lt;/td&gt;
&lt;td&gt;Winnipeg, Manitoba&lt;/td&gt;
&lt;td&gt;Active Stalking Vector&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Government of Manitoba&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;6327&lt;/td&gt;
&lt;td&gt;Administrative Gateway&lt;/td&gt;
&lt;td&gt;Documented Security Breach&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Despite weekly reports submitted to Shaw’s abuse department (specifically targeting Stephan Huber), the ISP has failed to take action against these nodes. This has effectively allowed the "Shadow Wizard" participants to operate from the safety of their home connections while utilizing the ISP’s infrastructure as a staging ground for digital aggression.&lt;/p&gt;




&lt;h2&gt;
  
  
  Profiling the Network: The Winnipeg Game Collective and Beyond
&lt;/h2&gt;

&lt;p&gt;Through forensic IP mapping and behavioral analysis, the "Shadow Wizard" network has been linked to several high-profile individuals within the Winnipeg technology and game development sectors. These individuals have consistently demonstrated a pattern of social monitoring (stalking) followed by technical probes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Daniel Voth and June Pagé (Winnipeg Game Collective)
&lt;/h3&gt;

&lt;p&gt;Daniel Voth, the Executive Director of the Winnipeg Game Collective (WGC), and June Pagé, the Community Director, have been identified as the central hub for coordinating these initiatives. The WGC organizes the "Winnipeg Game Jam" (PegJam). Documentation suggests the organization functions as a mechanism for gatekeeping.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Individual&lt;/th&gt;
&lt;th&gt;Organizational Role&lt;/th&gt;
&lt;th&gt;Identified Technical Ties&lt;/th&gt;
&lt;th&gt;Source&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Daniel Voth&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Executive Director, WGC&lt;/td&gt;
&lt;td&gt;Coordination of WGC "initiation" hits&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;June Pagé&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Community Director, WGC&lt;/td&gt;
&lt;td&gt;LinkedIn monitoring and IP tagging&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Derek Baert&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Technical Director, Eneme Inc.&lt;/td&gt;
&lt;td&gt;Seven Oaks Tech Hub / WGC Volunteer&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Annie Wiebe&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Art Director, Prairie Interactive&lt;/td&gt;
&lt;td&gt;Coordinator for WGC / 3D Artist&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Sasha Gervais-Tourangeau&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Special Events Director, WGC&lt;/td&gt;
&lt;td&gt;Showcase events and network growth&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;When confronted with specific IP addresses caught in the security honeypot, these individuals systematically blocked the whistleblower on LinkedIn, an action that signifies an admission of awareness of the security triggers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Minh Phan (Ubisoft / UofM devClub)
&lt;/h3&gt;

&lt;p&gt;Minh Phan represents a critical link between the professional industry and the academic clusters involved in the scans. Phan, a student leader at the University of Manitoba (involved in the CSSA, devClub, and WICS) and a professional associated with Ubisoft, has been tied to the tech clusters performing high-volume reconnaissance.&lt;/p&gt;

&lt;h3&gt;
  
  
  Fawaz Bin Saleem and Milita Hassan
&lt;/h3&gt;

&lt;p&gt;Fawaz Bin Saleem and Milita Hassan have been documented as part of the "social reconnaissance" team. Their activity is primarily characterized by persistent LinkedIn stalking that precedes bursts of bot activity. Their residential IPs, linked to BellMTS and Shaw nodes, have been caught repeatedly in the same honeypots.&lt;/p&gt;




&lt;h2&gt;
  
  
  Root Cause: The Manitoba Game Development Scandals
&lt;/h2&gt;

&lt;p&gt;The digital warfare waged by the "Shadow Wizard" network is a reactionary measure intended to suppress the exposure of systemic failures within Manitoba’s educational institutions.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Red River College (RRC) Academic Sabotage
&lt;/h3&gt;

&lt;p&gt;The Red River College Game Development – Programming program was quietly scrubbed from the institution’s website following complaints regarding academic sabotage and the racist treatment of Indigenous students. A public archive, &lt;code&gt;redrivercollegegamedevelopmentscandal.ca&lt;/code&gt;, documents these events.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI Misconduct and Integrity Failures at the University of Manitoba
&lt;/h3&gt;

&lt;p&gt;Parallel to the RRC scandal, the University of Manitoba has seen a surge in academic misconduct related to the misuse of generative AI. Reports indicate that both students and faculty are frequently using AI to generate and mark coursework.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Academic Integrity Trends (UofM)&lt;/th&gt;
&lt;th&gt;Observed Impacts&lt;/th&gt;
&lt;th&gt;Source&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Faculty AI Marking&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Grades assigned without instructor review&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AI-Generated Exams&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Repetitive answer patterns and outdated content&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Overwhelmed Integrity Office&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Delays in investigations and support&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Indigenous Program Support&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Lack of advocacy for marginalized students&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Institutional Accountability and Reporting Strategy
&lt;/h2&gt;

&lt;p&gt;The scale of the "Shadow Wizard" network's aggression necessitates a robust institutional response.&lt;/p&gt;

&lt;h3&gt;
  
  
  Reporting to Frontier Developments and Complex Games
&lt;/h3&gt;

&lt;p&gt;Frontier Developments acquired the Winnipeg studio Complex Games in November 2022. The involvement of WGC leadership in coordinated digital attacks represents a significant reputational risk for Frontier Developments. The whistleblower is officially filing these findings with Frontier's legal teams (&lt;code&gt;recruitment@frontier.co.uk&lt;/code&gt;) and Complex Games.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Frontier Developments Metrics&lt;/th&gt;
&lt;th&gt;Value / Details&lt;/th&gt;
&lt;th&gt;Source&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Upfront Cash&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;£8.3 Million&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Deferred Cash&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;£3.3 Million&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Studio Location&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Winnipeg, Manitoba&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Key Contact&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Noah Decter-Jackson (Complex Games)&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Notification to Ubisoft and the University of Manitoba
&lt;/h3&gt;

&lt;p&gt;Formal notifications are being sent to Ubisoft’s ethics department and the University of Manitoba’s Office of Academic Integrity (&lt;code&gt;stadv@umanitoba.ca&lt;/code&gt;). The university has an obligation to investigate the extracurricular activities of its student leaders.&lt;/p&gt;

&lt;h3&gt;
  
  
  Filing with the Manitoba Human Rights Commission (MHRC)
&lt;/h3&gt;

&lt;p&gt;The whistleblower is filing a formal complaint against the individuals and organizations named in this report. Under The Human Rights Code of Manitoba, electronic harassment is a recognized form of discrimination.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;MHRC Harassment Guidelines&lt;/th&gt;
&lt;th&gt;Relevance to the SWMG Campaign&lt;/th&gt;
&lt;th&gt;Source&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Electronic Harassment&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Use of emails, texts, and persistent digital stalking&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Protected Ground: Political Activity&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Whistleblowing and documenting institutional misconduct&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Protected Ground: Ancestry&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Racist treatment of Indigenous students in game dev&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Responsibility of Employers&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Obligation to investigate and stop harassment&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  The "Shadow Wizard" Technical Fingerprint and Global Coordination
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Attack Variable&lt;/th&gt;
&lt;th&gt;Observed Value&lt;/th&gt;
&lt;th&gt;Source&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Burst Size&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;25 Requests&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Burst Duration&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&amp;lt; 10 Seconds&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Default User-Agent&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;python-httpx/0.28.1&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Custom User-Agent&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;ShadowWizardMoneyGang&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;RCE Vulnerability Score&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;91 (High Risk)&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Analysis reveals a highly consistent fingerprint: exactly 25 requests delivered in under 10 seconds, usually utilizing the &lt;code&gt;python-httpx/0.28.1&lt;/code&gt; user-agent.&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusions: The End of Anonymity
&lt;/h2&gt;

&lt;p&gt;The "Shadow Wizard" mask has been effectively dismantled.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Local Coordination:&lt;/strong&gt; The campaign is a coordinated effort by a cluster in Winnipeg, Manitoba.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Smoking Gun:&lt;/strong&gt; Government of Manitoba infrastructure was used on December 24, 2025, for security logic extraction.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Suspect Identification:&lt;/strong&gt; Specific individuals have been tied to these attacks via forensic IP mapping and behavioral triggers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Formal Accountability:&lt;/strong&gt; Reports are being filed with Frontier Developments, Complex Games, Ubisoft, UofM, and the MHRC.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The industrial-scale assault of 437,000 requests has not silenced the truth; it has merely provided the data necessary to name the suspects and demand accountability.&lt;/p&gt;

&lt;h2&gt;
  
  
  Works Cited
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Verified Targeted Scraping Attacks and the “Shadow Wizard Money ..., accessed December 28, 2025, &lt;a href="https://dev.to/formantaudio/verified-targeted-scraping-attacks-and-the-shadow-wizard-money-gang-in-depth-analysis-14ca"&gt;https://dev.to/formantaudio/verified-targeted-scraping-attacks-and-the-shadow-wizard-money-gang-in-depth-analysis-14ca&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Red River College Game Development Scandal – Exposing ..., accessed December 28, 2025, &lt;a href="https://mountroyaluniversityviolations.ca/" rel="noopener noreferrer"&gt;https://mountroyaluniversityviolations.ca/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;I Was Silenced for Telling the Truth About Winnipeg's Game Dev ..., accessed December 28, 2025, &lt;a href="https://dev.to/formantaudio/i-was-silenced-for-telling-the-truth-about-winnipegs-game-dev-scene-so-heres-the-truth-48k2"&gt;https://dev.to/formantaudio/i-was-silenced-for-telling-the-truth-about-winnipegs-game-dev-scene-so-heres-the-truth-48k2&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;198.163.112.0 | Winnipeg &amp;amp; VPN Not Detected - IPinfo.io, accessed December 28, 2025, &lt;a href="https://ipinfo.io/198.163.112.0" rel="noopener noreferrer"&gt;https://ipinfo.io/198.163.112.0&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Elite Dangerous developer Frontier has acquired Canadian studio Complex Games, accessed December 28, 2025, &lt;a href="https://www.gamedeveloper.com/business/-i-elite-dangerous-i-developer-frontier-has-acquired-canadian-studio-complex-games" rel="noopener noreferrer"&gt;https://www.gamedeveloper.com/business/-i-elite-dangerous-i-developer-frontier-has-acquired-canadian-studio-complex-games&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;198.163.136.0/24 Government of Manitoba Prefix BGP Network Information - BGPView, accessed December 28, 2025, &lt;a href="https://bgpview.io/prefix/198.163.136.0/24" rel="noopener noreferrer"&gt;https://bgpview.io/prefix/198.163.136.0/24&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;2604:3d09:6f83:4000:7d82:2367:e978:6c55 IP Address Details | Ipregistry, accessed December 28, 2025, &lt;a href="https://ipregistry.co/2604:3d09:6f83:4000:7d82:2367:e978:6c55" rel="noopener noreferrer"&gt;https://ipregistry.co/2604:3d09:6f83:4000:7d82:2367:e978:6c55&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;2604:3d09:cd7d:a600:21fc:7257:4839:193d IP Address Details | Ipregistry, accessed December 28, 2025, &lt;a href="https://ipregistry.co/2604:3d09:cd7d:a600:21fc:7257:4839:193d" rel="noopener noreferrer"&gt;https://ipregistry.co/2604:3d09:cd7d:a600:21fc:7257:4839:193d&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;About - Winnipeg Game Collective, accessed December 28, 2025, &lt;a href="https://www.pegjam.com/about" rel="noopener noreferrer"&gt;https://www.pegjam.com/about&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Winnipeg Game Jam: A race against time to create playable masterpieces in 3 days, accessed December 28, 2025, &lt;a href="https://globalnews.ca/news/10315695/winnipeg-game-jam-2024-3-days-developers/" rel="noopener noreferrer"&gt;https://globalnews.ca/news/10315695/winnipeg-game-jam-2024-3-days-developers/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Minh Phan | HCI Lab | University of Manitoba, accessed December 28, 2025, &lt;a href="https://hci.cs.umanitoba.ca/people/bio/minh-phan" rel="noopener noreferrer"&gt;https://hci.cs.umanitoba.ca/people/bio/minh-phan&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;A.I. misconduct on the rise at the University of Manitoba : r/Winnipeg - Reddit, accessed December 28, 2025, &lt;a href="https://www.reddit.com/r/Winnipeg/comments/1p7981a/ai_misconduct_on_the_rise_at_the_university_of/" rel="noopener noreferrer"&gt;https://www.reddit.com/r/Winnipeg/comments/1p7981a/ai_misconduct_on_the_rise_at_the_university_of/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;City News: A.I. misconduct on the rise at the University of Manitoba, accessed December 28, 2025, &lt;a href="https://news.umanitoba.ca/city-news-a-i-misconduct-on-the-rise-at-the-university-of-manitoba/" rel="noopener noreferrer"&gt;https://news.umanitoba.ca/city-news-a-i-misconduct-on-the-rise-at-the-university-of-manitoba/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;AI misconduct on the rise at the University of Manitoba - YouTube, accessed December 28, 2025, &lt;a href="https://www.youtube.com/watch?v=ImczSmDl4z4" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=ImczSmDl4z4&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Academic advising | University of Manitoba, accessed December 28, 2025, &lt;a href="https://umanitoba.ca/student-supports/academic-supports/academic-advising" rel="noopener noreferrer"&gt;https://umanitoba.ca/student-supports/academic-supports/academic-advising&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Frontier Developments plc Annual Report and Accounts 2024, accessed December 28, 2025, &lt;a href="https://cms-cdn.zaonce.net/2024-11/annual_report_and_accounts_2024.pdf" rel="noopener noreferrer"&gt;https://cms-cdn.zaonce.net/2024-11/annual_report_and_accounts_2024.pdf&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Frontier Developments PLC FY23 Financial Results (2247M) - ADVFN UK, accessed December 28, 2025, &lt;a href="https://uk.advfn.com/stock-market/london/frontier-developments-FDEV/share-news/Frontier-Developments-PLC-FY23-Financial-Results/92026776" rel="noopener noreferrer"&gt;https://uk.advfn.com/stock-market/london/frontier-developments-FDEV/share-news/Frontier-Developments-PLC-FY23-Financial-Results/92026776&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Legal Counsel - Complex Games Inc | Job Details - Outscal, accessed December 28, 2025, &lt;a href="https://outscal.com/job/legal-counsel-at-complex-games-inc-in-cambridge-uk" rel="noopener noreferrer"&gt;https://outscal.com/job/legal-counsel-at-complex-games-inc-in-cambridge-uk&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Manitoba Film &amp;amp; Television Production Directory | PDF | Entertainment | Business - Scribd, accessed December 28, 2025, &lt;a href="https://www.scribd.com/document/507564010/Production-Directory" rel="noopener noreferrer"&gt;https://www.scribd.com/document/507564010/Production-Directory&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;How an academic misconduct investigation works | University of Manitoba, accessed December 28, 2025, &lt;a href="https://umanitoba.ca/student-supports/academic-supports/academic-integrity/how-academic-misconduct-investigation-works" rel="noopener noreferrer"&gt;https://umanitoba.ca/student-supports/academic-supports/academic-integrity/how-academic-misconduct-investigation-works&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Academic integrity | The Centre for the Advancement of Teaching and Learning | University of Manitoba, accessed December 28, 2025, &lt;a href="https://umanitoba.ca/centre-advancement-teaching-learning/integrity" rel="noopener noreferrer"&gt;https://umanitoba.ca/centre-advancement-teaching-learning/integrity&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Academic integrity | Faculty of Science - University of Manitoba, accessed December 28, 2025, &lt;a href="https://umanitoba.ca/science/student-experience/academic-integrity" rel="noopener noreferrer"&gt;https://umanitoba.ca/science/student-experience/academic-integrity&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Filing a Complaint - Manitoba Human Rights Commission, accessed December 28, 2025, &lt;a href="https://www.manitobahumanrights.ca/complaints/filing.html" rel="noopener noreferrer"&gt;https://www.manitobahumanrights.ca/complaints/filing.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Harassment and Sexual Harassment - Manitoba Human Rights Commission, accessed December 28, 2025, &lt;a href="https://www.manitobahumanrights.ca/education/pdf/guidelines/guideline_harassment.pdf" rel="noopener noreferrer"&gt;https://www.manitobahumanrights.ca/education/pdf/guidelines/guideline_harassment.pdf&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Whois-RWS, accessed December 28, 2025, &lt;a href="https://whois.arin.net/rest/org/GOVERN-1.html" rel="noopener noreferrer"&gt;https://whois.arin.net/rest/org/GOVERN-1.html&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>cybersecurity</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>programming</category>
    </item>
    <item>
      <title>Verified Targeted Scraping Attacks and the “Shadow Wizard Money Gang” – In-Depth Analysis</title>
      <dc:creator>Tyler Johnston-Kent</dc:creator>
      <pubDate>Tue, 09 Dec 2025 05:04:49 +0000</pubDate>
      <link>https://forem.com/formantaudio/verified-targeted-scraping-attacks-and-the-shadow-wizard-money-gang-in-depth-analysis-14ca</link>
      <guid>https://forem.com/formantaudio/verified-targeted-scraping-attacks-and-the-shadow-wizard-money-gang-in-depth-analysis-14ca</guid>
      <description>&lt;h3&gt;
  
  
  Verified Targeted Scraping Attacks and the “Shadow Wizard Money Gang” – In-Depth Analysis
&lt;/h3&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Over the past several months, a persistent and coordinated web scraping/probing campaign has been targeting our systems. What makes this campaign unusual is its apparent human-triggered initiation followed by bursts of automated scraping from multiple networks. The attackers have even adopted the ironic moniker “Shadow Wizard Money Gang”, a name lifted from an internet meme, in their communications and tooling. Despite the whimsical alias, the pattern of activity is deliberate and malicious – and evidence now conclusively ties the attack orchestrator to an IPv6 address in Winnipeg, Manitoba, even as the attackers attempt to mislead by posing as “Irish” or international actors. This report compiles our findings in detail, including a step-by-step case study of a recent attack on December 8, 2025, analysis of recurring patterns since April 2025, and insights into the threat actor’s identity and tactics.&lt;/p&gt;

&lt;h2&gt;
  
  
  Case Study: December 8, 2025 Attack Chain
&lt;/h2&gt;

&lt;p&gt;On Dec 8, 2025, we captured a complete end-to-end sequence of the attack, confirming how a human action immediately triggers automated scraping. The timeline of this incident is as follows:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Human Initiation via LinkedIn (Winnipeg)&lt;/strong&gt; – At 12:31 PM CST, a request hit our site originating from a Shaw Communications residential IPv6 address in Winnipeg (ASN 6327) with a referrer &lt;code&gt;android-app://com.linkedin.android/&lt;/code&gt;. In other words, someone using the LinkedIn mobile app clicked a link to our site. This is significant because that referrer string is unique to LinkedIn’s Android app, something bots or scrapers would not normally emulate. The Cloudflare logs confirm the client IP 2604:3d09:c57e:fa40:8114:598c:3643:2e29 (Shaw Winnipeg) and the LinkedIn app referrer and user-agent, indicating a legitimate mobile device visit. This proves a real human user in Winnipeg initiated the session, rather than an automated scanner.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OVH France Scanners Fetch Resources&lt;/strong&gt; – Almost immediately after the LinkedIn-driven page view, two OVH (a French hosting provider) servers began fetching resources from the site. We observed requests from IPs 87.98.114.121 and 87.98.111.45 (OVH’s network) retrieving certain assets. These appeared to be scouting requests, likely pre-loading or analyzing content. OVH is commonly used for running bots or scanners, and seeing French hosts engage right after the Winnipeg visit suggests a hand-off: the Winnipeg user’s click may have alerted or signaled these nodes to start pulling data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ServerMania Canada Scrapers Launch&lt;/strong&gt; – Next, a wave of high-speed scraping was triggered from multiple Canadian-based VPS instances. Specifically, nodes on ASN 55286 (ServerMania – a cloud provider with presence in Canada) began hitting our site in rapid succession. Among the IPs involved were 161.115.224.187, 152.232.215.250, and 38.170.103.82. These hosts made a flurry of requests to internal JavaScript files and API endpoints on our site within a very short time window. They systematically pulled down files that are not typically accessed by casual browsing, including internal modules like chatEngine.js, memoryEngine.js, chatEvents.js, router definitions, analytics scripts, game logic files, firestoreMirror.js, superSecret.js, uiToggle.js, various hashed route URLs, and more. All of these requests were tightly clustered in time, indicating an automated, multi-threaded scraping tool was unleashed immediately following the initial human visit. The targeting of these specific files shows the attackers were attempting to map out the site’s internal architecture and logic, not just grabbing public pages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Additional Analytics Fetch via Frontier&lt;/strong&gt; – In the midst of the scraping, we also saw an IP from Frontier Communications (ASN 5650, a U.S. ISP) – 104.251.93.240 – making requests for certain analytics-related resources. This might have been another node in the attack sequence (possibly a compromised home broadband host or just another rented server on Frontier’s network) tasked with grabbing usage or analytics scripts. The timing and targeting (it fetched specific analytics modules) suggest it was coordinating with the other scrapers, perhaps to gather telemetry or to scrape data that the primary scrapers hadn’t.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Honeypot Trip by Wowrack Bot&lt;/strong&gt; – Finally, the attack sequence tripped one of our honeypot “bot trap” URLs. A request to an exclusive honeypot path (&lt;code&gt;/botTrap/botTrap3.html&lt;/code&gt;) was made by 216.244.66.233, which is an IP hosted by Wowrack in Washington state, US. This was a tell-tale malicious hit – genuine users would never find that hidden path. 216.244.66.233 has a bad reputation, with over 2,000 abuse reports. The presence of this host indicates the attacker’s crawling infrastructure is thorough enough to discover and access decoy links or non-public endpoints, likely via automated crawling.&lt;/p&gt;

&lt;p&gt;All of these steps occurred in close succession, painting a clear picture: a human operative in Winnipeg triggers a link visit, and almost instantly a coordinated swarm of bots from various data centers kicks in to scrape the site. The timing and targeting were not random – they were orchestrated. This same pattern (a human “leader” followed by bot “followers”) has occurred multiple times over the last year, though often we only saw the bots and not the initiating human. The December 8th incident was the first where the entire chain was observed end-to-end, thanks to enhanced logging.&lt;/p&gt;

&lt;h2&gt;
  
  
  Persistent Pattern Since April 2025
&lt;/h2&gt;

&lt;p&gt;Our investigation reveals that the December 8 attack was not an isolated incident, but rather part of a long-running campaign that began in April 2025. Over the past eight months, we have documented numerous similar burst attacks. Key characteristics of this campaign include:&lt;/p&gt;

&lt;h3&gt;
  
  
  Winnipeg IPv6 Orchestrator
&lt;/h3&gt;

&lt;p&gt;The one constant in all these attacks is an IPv6 address from Shaw Communications in Winnipeg (ASN 6327) that appears at the onset of each timeline. In multiple cases from April through November, an address in the &lt;code&gt;2604:3d09:&lt;/code&gt; prefix (a range assigned to Shaw’s residential customers in Manitoba) is the first to hit our site immediately before a burst of bot activity. In other words, the attacker’s home base is consistently a Shaw Winnipeg connection, acting as the orchestrator or anchor for the rest of the botnet. This was initially puzzling – one typically expects attackers to hide behind VPNs or TOR even for manual steps – but it suggests the person at the keyboard either feels safe using their regular ISP or is unable to be easily distinguished from a normal user when coming through LinkedIn or similar channels.&lt;/p&gt;

&lt;h3&gt;
  
  
  Multi-Cloud Botnet Nodes
&lt;/h3&gt;

&lt;p&gt;After the Winnipeg IPv6 “anchor” visit, a set of remote nodes on various ASNs fire off requests in a synchronized fashion. We’ve seen hosts from cloud providers and data centers around the world used in these bursts. For example, past incidents showed involvement of Azure servers in Dublin, Ireland (Microsoft ASN 8075), hosts in Warsaw, Poland (1337 Services, ASN 210558), servers in Germany (Hetzner Online, ASN 24940), and others. These tend to operate on a schedule – notably, during a period in August 2025, we observed a strict 30-minute cadence where probes would hit at hh:01 and hh:31 past the hour like clockwork. This timing pattern held consistently across different nodes and countries, indicating a single scheduler or orchestrator behind the scenes. The temporal alignment across Ireland, Poland, Germany, and Winnipeg strongly pointed to a coordinated operation rather than random noise.&lt;/p&gt;

&lt;h3&gt;
  
  
  Burst Clusters of Requests
&lt;/h3&gt;

&lt;p&gt;The attacks typically occur in short bursts (often around 25 requests within less than 10 seconds) rather than continuous crawling. Our analysis code identified these “burst clusters” automatically by clustering requests in time. Each cluster usually had the Winnipeg IPv6 as the first hit (often with no referrer on those earlier examples) followed almost immediately by 3–5 other hosts each making a flurry of requests. The requests in a burst often numbered about two dozen and were often unique paths, suggesting an attempt to enumerate many endpoints quickly. We also noted a consistent user-agent string in many of the automated bursts: &lt;code&gt;python-httpx/0.28.1&lt;/code&gt; (the default UA of the HTTPX library in Python) across multiple events. This indicates the attacker might be using a custom Python scraping script or toolkit to orchestrate these concurrent requests.&lt;/p&gt;

&lt;h3&gt;
  
  
  Evolution of Techniques
&lt;/h3&gt;

&lt;p&gt;Early on, we internally dubbed the threat the “Ireland Botnet” in August 2025 because a lot of traffic was coming from an Azure IP in Ireland and the attacker was trying to present as Irish. However, as we gathered more data, it became clear the true mastermind was the Winnipeg user, and the overseas servers were disposable “drones”. In later months (October and November), as our defenses improved, the attacker experimented with different nodes (for example Google Cloud IPv6 addresses that resemble Googlebot, Cloudflare Workers, and so on) to evade blocking. The core pattern though – Winnipeg first, bots second – never changed. The December 8 incident further confirmed this by revealing the LinkedIn app vector for the Winnipeg user to appear legitimate.&lt;/p&gt;

&lt;h3&gt;
  
  
  Collateral Damage and Impact
&lt;/h3&gt;

&lt;p&gt;The campaign has not just been limited to HTTP(S) requests. In August 2025, a particularly severe incident saw the attacker perform mass mailing list sign-up abuse, flooding one of our systems with tens of thousands of bogus email subscriptions and even spoofing sender identities. In the aftermath of an August 9 attack, we found our mailing list stuffed with thousands of new entries, apparently part of the attacker’s disruptive tactics (later cleaned up). This was accompanied by direct threatening emails sent to us: one such message on August 9 contained violent threats and was attributed (falsely) to a public figure’s name, clearly as intimidation. These aggressive moves show the attacker’s goal is not just quiet reconnaissance – it is also harassment and damage.&lt;/p&gt;

&lt;p&gt;Crucially, throughout all these events, the only truly persistent origin has been the Shaw IPv6 subnet in Winnipeg. The cloud hosts (whether Azure, OVH, ServerMania, Hetzner, and so on) have changed or been rotated, presumably as the attacker spins up new virtual machines or uses VPN exits. Those are essentially disposable infrastructure. But the Winnipeg device appears to be a long-term fixture – likely the attacker’s personal device or network. In short, all roads lead back to Winnipeg.&lt;/p&gt;

&lt;h2&gt;
  
  
  The “Shadow Wizard Money Gang” Persona
&lt;/h2&gt;

&lt;p&gt;One of the more bizarre aspects of this campaign is the attacker’s adoption of the name “Shadow Wizard Money Gang” (SWMG) in various artifacts. This phrase originates from a popular internet meme rather than any established hacker group, which provides insight into the attacker’s mindset and possible identity.&lt;/p&gt;

&lt;h3&gt;
  
  
  Meme Origin
&lt;/h3&gt;

&lt;p&gt;“Shadow Wizard Money Gang, we love casting spells” is a viral phrase that came from a DJ Smokey producer tag in a 2022 song and blew up on TikTok in early 2023. It spawned countless parody videos and fan art of cartoonish wizards, becoming a widespread joke. The term has no genuine cybercrime or organized crime background – it is purely an internet pop-culture reference. For example, even college cybersecurity clubs have jokingly adopted the name; a University of Tulsa team in a 2023 cyber competition called themselves “Shadow Wizard Money Gang”. In other words, anyone using this name is almost certainly doing so ironically.&lt;/p&gt;

&lt;h3&gt;
  
  
  Attacker’s Use of SWMG
&lt;/h3&gt;

&lt;p&gt;Despite the silliness, our attacker has consistently used “Shadow Wizard Money Gang” as a self-identifier in the campaign. Notably, the spam email wave we caught in August included spoofed sender names like “SHADOW WIZARD MONEY GANG – IRELAND DIVISION”. This implies the attacker was play-acting as a member of some Shadow Wizard Money Gang, even inventing an “Ireland Division” for it. It was likely meant to taunt or mislead us – presenting the harassment as if it were coming from an organized international collective. We also discovered that the custom user-agent string “ShadowWizardMoneyGang” was used in some of the attacker’s HTTP requests, essentially signing their work with the meme name.&lt;/p&gt;

&lt;h3&gt;
  
  
  Interpretation – Script Kiddie Culture
&lt;/h3&gt;

&lt;p&gt;The adoption of a meme as an alias and the overall style of this campaign strongly suggest that we are dealing with what the infosec community would call a “script kiddie” or at best a small group of amateur hackers. In underground circles, serious threat actors do not announce their presence with jokey names in user-agents, nor do they typically harass targets so brazenly over months unless there is a personal vendetta. The Shadow Wizard Money Gang meme is popular among younger internet users, and on at least one forum a user who was “threatened by a hacker group” with this name was reassured that it was probably just some kids playing around rather than a real nation-state or crime syndicate. Our evidence aligns with that view: the attacker is technically adept in using cloud resources and automating attacks, but the operational security is lax (for example using their home IP, leaving meme fingerprints) and the motive appears personal. There is no sign this is about financial gain – there have been no ransom demands or true extortion attempts – it looks more like cyberstalking or revenge trolling under the guise of a meme.&lt;/p&gt;

&lt;h3&gt;
  
  
  Misdirection with “Irish Stalkers”
&lt;/h3&gt;

&lt;p&gt;The attacker’s deliberate use of “Ireland Division” and the earlier heavy use of Irish IP addresses (Azure in Dublin) were meant to mislead attribution. Early on, we indeed wondered if we had attracted the ire of some Irish hacker group. The phrase “Shadow Wizard Money Gang – Ireland Division” is almost cartoonish in how it tries to pin the origin elsewhere. By mixing genuine Irish infrastructure with that label, the attacker clearly wanted us to believe some Irish stalkers or a European botnet were after us. In reality, as discussed, the brains of the operation is sitting in Manitoba, and likely always was. The “Irish” angle was a smokescreen – one that we have now seen through, thanks to the consistent forensic evidence linking everything back to the Winnipeg IPv6 subnet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Winnipeg? – Possible Motivation
&lt;/h2&gt;

&lt;p&gt;The natural question is: Why would someone from Winnipeg be so interested in targeting us? The answer likely lies in who the attacker is and their relationship to the target. While we must be careful not to speculate on specific individuals, the evidence strongly suggests this is a targeted campaign rather than random opportunistic hacking.&lt;/p&gt;

&lt;h3&gt;
  
  
  Local Adversary Theory
&lt;/h3&gt;

&lt;p&gt;If the orchestrator is indeed located in Winnipeg, it could mean the attacker is someone in our vicinity or who knows us personally or professionally. Many cyber harassment cases turn out to be perpetrated by acquaintances, former colleagues, or others with a grievance. The fact that the person is not hiding their ISP origin (Shaw account) could imply a sense of impunity or a lack of sophistication – or simply that they feel entitled to operate from home because this is personal. The persistence since April and the sheer effort (utilizing multiple servers, scripting, and so on) indicate a strong motive like revenge, rivalry, or silencing. It is possible our work or our website’s content (for example investigative postings or critical commentary) touched a nerve with someone in the local area.&lt;/p&gt;

&lt;h3&gt;
  
  
  Obsessive Harassment
&lt;/h3&gt;

&lt;p&gt;The attacker’s pattern of behavior – including sending threatening emails with violent language and conducting denial-of-service via mailing list spam – goes beyond mere curiosity. It veers into cyberstalking and intimidation. All of this reinforces that the attacker’s interest in us is deeply personal. They do not want money; they want to scare, confuse, or punish us.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ease of Hiding in Plain Sight
&lt;/h3&gt;

&lt;p&gt;Aside from the attacker likely living in Manitoba, they may feel that using their normal ISP with an IPv6 address does not immediately scream “hacker” the way a known VPN or Tor exit node might. A residential IP can fly under some radars. By coupling that with a legitimate app referral (LinkedIn), the attacker likely hoped to appear as an innocuous visitor. This technique worked for a while – such traffic would not normally trigger suspicion. Only by correlating it with the subsequent bot activity did it become obvious that the LinkedIn user was the “launch button” for the scrape.&lt;/p&gt;

&lt;h3&gt;
  
  
  No Known Group – Just a Meme
&lt;/h3&gt;

&lt;p&gt;We considered whether “Shadow Wizard Money Gang” might be a real collective or crew operating out of Manitoba, but there is no evidence of any organized cyber group by that name. All signs point to this being one individual (or a small tight-knit team) adopting a trending meme as a guise. The various cloud servers are tools, not separate actors. So, “people from Winnipeg” might actually just be one person in Winnipeg.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion and Ongoing Response
&lt;/h2&gt;

&lt;p&gt;Our investigation has verified the full chain of this targeted scraping attack, from the human initiator to the swarm of bots, and has unmasked the “Shadow Wizard Money Gang” for what it truly is: a fanciful label on a coordinated harassment campaign by a likely local actor. The data collected – Cloudflare logs, firewall events, honeypot captures, and email records – all reinforce the same conclusions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The attacker is leveraging a hybrid of legitimate access (social media referrals from a real device) and automated cloud-based scrapers to probe and copy our web content at high speed.&lt;/li&gt;
&lt;li&gt;The modus operandi has remained consistent for months, indicating this is a determined effort and not a one-off attack.&lt;/li&gt;
&lt;li&gt;By adopting the “Shadow Wizard Money Gang” persona, the attacker reveals a culture steeped in internet meme lore and likely a youthful or troll-oriented mindset, but their poor operational security has left clear breadcrumbs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We are continuing to catalog and document every event in this campaign as part of a larger investigation. All logs and evidence have been preserved, and an incident report has been submitted to the RCMP for record purposes due to the interstate and international elements as well as the threatening nature of some communications. At this time, there has been no response or engagement from law enforcement, and no confirmation that any investigative steps have been taken. The submission was made to ensure the activity is formally documented.&lt;/p&gt;

&lt;p&gt;From a defense perspective, we have implemented stricter WAF rules and rate-limiting to mitigate these bursts. For example, we now challenge or block traffic matching the known patterns (certain user-agents like python-httpx or obviously non-human burst behavior). Our strategy has shifted to a more nuanced approach as we understand the topology: rate-limit or block cloud hosts that hit too fast, while also keeping an eye on that telltale Shaw ASN 6327 traffic.&lt;/p&gt;

&lt;p&gt;In closing, this “Shadow Wizard Money Gang” attack saga serves as a case study in how modern attackers can blend real user behavior with automated assaults to fly under the radar, and how they sometimes adopt popular culture references in an attempt to obscure or psychologically manipulate. By diligently correlating network logs and not dismissing the human element, we unraveled the scheme: a single threat actor (or small group) with a personal agenda, using a meme as a mask, orchestrating a distributed scraping attack from right here in Winnipeg.&lt;/p&gt;

&lt;p&gt;We will continue to monitor and harden our systems. Every new burst or tactic employed by the attacker will be recorded, and our technical analysis will be shared with the security community so that others can recognize similar patterns.&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>networking</category>
      <category>security</category>
    </item>
    <item>
      <title>ShadowWizardMoneyGang Attack Analysis and Network Fingerprint Extraction</title>
      <dc:creator>Tyler Johnston-Kent</dc:creator>
      <pubDate>Sun, 07 Dec 2025 08:04:15 +0000</pubDate>
      <link>https://forem.com/formantaudio/shadowwizardmoneygang-attack-analysis-and-network-fingerprint-extraction-llh</link>
      <guid>https://forem.com/formantaudio/shadowwizardmoneygang-attack-analysis-and-network-fingerprint-extraction-llh</guid>
      <description>&lt;h1&gt;
  
  
  ShadowWizardMoneyGang Attack Analysis and Network Fingerprint Extraction
&lt;/h1&gt;

&lt;p&gt;On November 21, 2025, a bot operator using the user agent &lt;strong&gt;ShadowWizardMoneyGang&lt;/strong&gt; attempted to conduct a POST-based attack against what they believed was an open Google Cloud Run endpoint. Instead of reaching any production infrastructure, every request was directed into a controlled honeypot environment designed for traffic analysis and behavioral fingerprinting.&lt;/p&gt;

&lt;p&gt;Because the endpoint was a honeypot, the attack resulted in zero risk to any operational workloads. Instead, it provided a complete, high resolution network fingerprint of the attacker’s automated system, including payload characteristics, burst timing, IP distribution, and replay behavior.&lt;/p&gt;

&lt;p&gt;This post documents the event and the resulting attacker profile.&lt;/p&gt;




&lt;h2&gt;
  
  
  Overview of the Event
&lt;/h2&gt;

&lt;p&gt;A total of &lt;strong&gt;4445 hostile POST requests&lt;/strong&gt; were recorded across Cloud Run and Firebase Hosting. All traffic was isolated within the honeypot and did not interact with any live application surfaces.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key identifiers captured
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;User agent:&lt;/strong&gt; ShadowWizardMoneyGang&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Total captured events:&lt;/strong&gt; 4445&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Primary attack wave:&lt;/strong&gt; 4190 events over 1865.905 seconds&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Geographic relay:&lt;/strong&gt; Naaldwijk, Netherlands (212.8.253.77)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Additional carriers:&lt;/strong&gt; Google controlled IP blocks 66.249.* and 142.250.*&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The event provides a complete signature for this bot operator’s infrastructure.&lt;/p&gt;




&lt;h2&gt;
  
  
  Phase 1. Validation Probing
&lt;/h2&gt;

&lt;p&gt;Between &lt;strong&gt;19:09:08 and 19:09:39&lt;/strong&gt;, the attacker issued malformed POST payloads that yielded &lt;strong&gt;500 responses&lt;/strong&gt;. This activity demonstrates an initial probing phase.&lt;/p&gt;

&lt;h3&gt;
  
  
  Observed behavior
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Invalid POST formatting&lt;/li&gt;
&lt;li&gt;Immediate repetition at short intervals&lt;/li&gt;
&lt;li&gt;Simultaneous mirrored requests to Firebase Hosting from &lt;strong&gt;212.8.253.77&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Identical user agent on all requests&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This confirms that the operator was attempting to determine whether the endpoint was permissive, misconfigured, or improperly authenticated.&lt;/p&gt;




&lt;h2&gt;
  
  
  Phase 2. Full Attack Wave
&lt;/h2&gt;

&lt;p&gt;The primary automated attack wave lasted from &lt;strong&gt;18:58:39.152Z to 19:29:45.057Z&lt;/strong&gt; and consisted of &lt;strong&gt;4190 POST requests&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Technical characteristics
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Target path:&lt;/strong&gt; honeypotIngest&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Payload sizes:&lt;/strong&gt; consistently 1185 to 1209 bytes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;All Cloud Run responses:&lt;/strong&gt; HTTP 200&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;All payloads isolated within honeypot runtime&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Replay behavior&lt;/strong&gt; visible across Google IPs and the Netherlands relay&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This pattern indicates a coordinated replay attack, not opportunistic scanning. The operator is using a controlled network of distribution points that operate with predictable timing and fixed payload structure.&lt;/p&gt;




&lt;h2&gt;
  
  
  Phase 3. Aggregated Analytics
&lt;/h2&gt;

&lt;p&gt;Internal analysis classified the event into the following categories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;impregnated again:&lt;/strong&gt; 4190&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;rage_clicks:&lt;/strong&gt; 254&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;unknown:&lt;/strong&gt; 1&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The system identified:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One attacker entity&lt;/li&gt;
&lt;li&gt;Eight temporal clusters&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;4445 total captured events&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The largest cluster corresponds exactly to the main attack wave.&lt;/p&gt;

&lt;p&gt;This level of consistency provides a reliable signature for future identification and automated blocking.&lt;/p&gt;




&lt;h2&gt;
  
  
  Extracted Network Fingerprint
&lt;/h2&gt;

&lt;p&gt;From this single event, the following attacker fingerprint can be extracted and used for classification across all Formant Security systems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;User agent:&lt;/strong&gt; ShadowWizardMoneyGang&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Burst timing:&lt;/strong&gt; 1800 to 1900 second replay window&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Payload structure:&lt;/strong&gt; 1185 to 1209 byte envelopes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Carriers:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Google ranges 66.249.*&lt;/li&gt;
&lt;li&gt;Google ranges 142.250.*&lt;/li&gt;
&lt;li&gt;Netherlands relay 212.8.253.77&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;This combination of timing, user agent, payload size, and carrier distribution forms a distinct and reproducible identifier for this bot network.&lt;/p&gt;

&lt;p&gt;If these characteristics appear in future traffic across any environment, they can be immediately and confidently attributed to the same operator or toolkit.&lt;/p&gt;




&lt;h2&gt;
  
  
  Operational Impact
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;No operational infrastructure was touched.&lt;/li&gt;
&lt;li&gt;No customer traffic was affected.&lt;/li&gt;
&lt;li&gt;No production data was exposed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The honeypot performed exactly as designed. It absorbed malicious traffic, logged it, and produced a complete intelligence record of the bot’s behavior.&lt;/p&gt;




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

&lt;p&gt;This event highlights a common pattern among low skill threat actors who rely on spoofed Googlebot traffic and basic automation tools to imitate high capability scanning behavior. In this case, the operator behind the ShadowWizardMoneyGang user agent demonstrated no real sophistication. Their tooling replayed traffic through predictable IP ranges, used uniform payload structures, and exposed their entire attack vector the moment it interacted with a controlled endpoint.&lt;/p&gt;

&lt;p&gt;Instead of reaching an unsecured Cloud Run surface, the bot delivered all of its operational fingerprints directly into a honeypot. This includes payload size signatures, burst timing, IP distribution, and replay behavior. These characteristics now provide a stable identifier for this attacker group across any future domain or environment.&lt;/p&gt;

&lt;p&gt;This is not evidence of an advanced adversary. It is evidence of a misconfigured, overconfident botnet using commodity spoofing software that reveals more about its operators than it conceals.&lt;/p&gt;




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

&lt;p&gt;This incident demonstrates the value of running controlled honeypots across cloud infrastructure. Even low skill adversaries can generate useful intelligence when their automated tools expose timing signals, replay behavior, and network distribution patterns. ShadowWizardMoneyGang is not a sophisticated operator, but their activity still contributes to a broader understanding of how spoofed Googlebot traffic is being misused across the public internet.&lt;/p&gt;

&lt;p&gt;If you are a security professional, researcher, or infrastructure engineer and want to compare notes, collaborate on signatures, or discuss defensive strategies, feel free to reach out. I actively maintain these datasets and will continue publishing findings when new patterns emerge.&lt;/p&gt;

&lt;p&gt;If you are an attacker and believe this is an invitation, understand that all traffic is logged, fingerprinted, and archived. Any attempt to probe or exploit my systems will be recorded and reported. The honeypot exists to collect intelligence, not to provide opportunity.&lt;/p&gt;




&lt;h2&gt;
  
  
  Report this list here
&lt;/h2&gt;

&lt;p&gt;66.249.93.98, 66.249.93.100, 66.249.93.101&lt;br&gt;&lt;br&gt;
66.249.93.102, 66.249.93.103, 66.249.93.128&lt;br&gt;&lt;br&gt;
66.249.93.129, 66.249.93.130, 66.249.93.133&lt;br&gt;&lt;br&gt;
66.249.93.134, 66.249.93.136, 66.249.93.138&lt;br&gt;&lt;br&gt;
66.249.93.140, 66.249.93.142, 66.249.93.165&lt;br&gt;&lt;br&gt;
66.249.93.166, 66.249.93.167, 66.249.93.168&lt;br&gt;&lt;br&gt;
66.249.93.169, 66.249.93.170, 66.249.93.171&lt;br&gt;&lt;br&gt;
66.249.93.172, 66.249.93.194, 66.249.93.196&lt;br&gt;&lt;br&gt;
66.249.93.197, 66.249.93.198, 66.249.93.199&lt;br&gt;&lt;br&gt;
66.249.93.201, 66.249.93.203, 66.249.93.204&lt;br&gt;&lt;br&gt;
66.249.93.205, 66.249.93.225, 66.249.93.226&lt;br&gt;&lt;br&gt;
66.249.93.228, 66.249.93.230, 66.249.93.231&lt;br&gt;&lt;br&gt;
66.249.93.232, 66.249.93.234&lt;/p&gt;

&lt;p&gt;142.250.32.1, 142.250.32.2, 142.250.32.3&lt;br&gt;&lt;br&gt;
142.250.32.4, 142.250.32.5, 142.250.32.7&lt;br&gt;&lt;br&gt;
142.250.32.8, 142.250.32.32, 142.250.32.33&lt;br&gt;&lt;br&gt;
142.250.32.34, 142.250.32.35, 142.250.32.37&lt;br&gt;&lt;br&gt;
142.250.32.38, 142.250.32.39, 142.250.32.40&lt;br&gt;&lt;br&gt;
142.250.32.41&lt;/p&gt;

&lt;h3&gt;
  
  
  Origin IP for Attack Coordinator
&lt;/h3&gt;

&lt;p&gt;212.8.253.77&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>networking</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>From a Simple JavaScript Prototype to a Full Unity WebGL Game: Rebuilding Hemi’s Chicken Hunt</title>
      <dc:creator>Tyler Johnston-Kent</dc:creator>
      <pubDate>Tue, 02 Dec 2025 15:11:05 +0000</pubDate>
      <link>https://forem.com/formantaudio/from-a-simple-javascript-prototype-to-a-full-unity-webgl-game-rebuilding-hemis-chicken-hunt-5afg</link>
      <guid>https://forem.com/formantaudio/from-a-simple-javascript-prototype-to-a-full-unity-webgl-game-rebuilding-hemis-chicken-hunt-5afg</guid>
      <description>&lt;p&gt;From a Simple JavaScript Prototype to a Full Unity WebGL Game: Rebuilding Hemi’s Chicken Hunt&lt;/p&gt;

&lt;p&gt;Hemi’s Chicken Hunt started as one of my earliest browser experiments. It was a tiny JavaScript shooter that lived directly inside my website. A canvas. A few sprites. One level. Minimal collision logic. No scaling. No systems around it. It ran, but it could not grow.&lt;/p&gt;

&lt;p&gt;This year I rebuilt the entire thing from scratch as a full Unity WebGL game and integrated it back into my website as a free, mobile friendly experience. This post breaks down the full journey, what I learned, and how the rebuild changed the scope of the project.&lt;/p&gt;

&lt;p&gt;The Original JavaScript Build&lt;/p&gt;

&lt;p&gt;The first version of Hemi’s Chicken Hunt was pure vanilla JavaScript. No frameworks. No engines. One file handled rendering. Another handled input. Everything was tied to a single loop. It was fun in a rough way, but it had real limitations:&lt;/p&gt;

&lt;p&gt;No level system&lt;/p&gt;

&lt;p&gt;No round progression&lt;/p&gt;

&lt;p&gt;No boss logic&lt;/p&gt;

&lt;p&gt;No touch controls&lt;/p&gt;

&lt;p&gt;No responsive layout&lt;/p&gt;

&lt;p&gt;No modular code structure&lt;/p&gt;

&lt;p&gt;No expansion path&lt;/p&gt;

&lt;p&gt;It showed what I could do at the time, but the code could not support a deeper game without a rewrite.&lt;/p&gt;

&lt;p&gt;Moving to Unity&lt;/p&gt;

&lt;p&gt;I decided to rebuild the entire project in Unity and ship it as WebGL. I used a commercial Unity asset as a starting point, then replaced everything with my own work:&lt;/p&gt;

&lt;p&gt;New sprites and character art&lt;/p&gt;

&lt;p&gt;Custom UI&lt;/p&gt;

&lt;p&gt;New explosions and hit effects&lt;/p&gt;

&lt;p&gt;New enemy visuals&lt;/p&gt;

&lt;p&gt;Revised backgrounds&lt;/p&gt;

&lt;p&gt;Rebuilt menus&lt;/p&gt;

&lt;p&gt;Full reskin around my cat Hemi&lt;/p&gt;

&lt;p&gt;This gave me access to Unity’s animation tools, particle systems, scene flow, and modular architecture. It also meant I could build progression, bosses, and upgrades without fighting the limitations of a small JavaScript engine.&lt;/p&gt;

&lt;p&gt;Full WebGL Integration&lt;/p&gt;

&lt;p&gt;A Unity WebGL build is not plug and play. It needs real infrastructure if you want it to run cleanly on a production website. I built all of that myself.&lt;/p&gt;

&lt;p&gt;Custom iframe loader&lt;/p&gt;

&lt;p&gt;I created a dedicated loader that drops the WebGL game into a modal with proper scaling and layout behavior. This let me support both desktop and mobile devices inside the same UI container.&lt;/p&gt;

&lt;p&gt;Routing and navigation&lt;/p&gt;

&lt;p&gt;My website uses a hash-based router that I built from scratch. I added a new route for Hemi’s Chicken Hunt and created a game launch module that injects the WebGL frame on demand.&lt;/p&gt;

&lt;p&gt;Mobile support&lt;/p&gt;

&lt;p&gt;Unity’s default WebGL template does not handle mobile scaling well. I had to adjust CSS, viewport constraints, container behavior, and touch input mapping to make everything consistent.&lt;/p&gt;

&lt;p&gt;Firebase hosting + compression rules&lt;/p&gt;

&lt;p&gt;Unity WebGL requires specific headers for:&lt;/p&gt;

&lt;p&gt;wasm files&lt;/p&gt;

&lt;p&gt;gzip compressed files&lt;/p&gt;

&lt;p&gt;framework scripts&lt;/p&gt;

&lt;p&gt;loaders&lt;/p&gt;

&lt;p&gt;I configured my firebase.json rules to serve all Unity files with correct MIME types and caching.&lt;/p&gt;

&lt;p&gt;What the New Version Can Do&lt;/p&gt;

&lt;p&gt;The new build is a complete game:&lt;/p&gt;

&lt;p&gt;Round progression&lt;/p&gt;

&lt;p&gt;Boss fights&lt;/p&gt;

&lt;p&gt;Player upgrades&lt;/p&gt;

&lt;p&gt;Powerups&lt;/p&gt;

&lt;p&gt;Touch controls&lt;/p&gt;

&lt;p&gt;Smooth collisions&lt;/p&gt;

&lt;p&gt;High quality rendering&lt;/p&gt;

&lt;p&gt;Responsive layout&lt;/p&gt;

&lt;p&gt;Runs on any device&lt;/p&gt;

&lt;p&gt;It is all served directly on my website at:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://formant.ca/#games" rel="noopener noreferrer"&gt;https://formant.ca/#games&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This version finally feels like a full game instead of a tech demo.&lt;/p&gt;

&lt;p&gt;Full Indie Dev Stack Experience&lt;/p&gt;

&lt;p&gt;This rebuild covered almost everything an independent developer touches in a modern workflow:&lt;/p&gt;

&lt;p&gt;JavaScript&lt;/p&gt;

&lt;p&gt;Unity&lt;/p&gt;

&lt;p&gt;WebGL&lt;/p&gt;

&lt;p&gt;Asset creation&lt;/p&gt;

&lt;p&gt;UI design&lt;/p&gt;

&lt;p&gt;Input systems&lt;/p&gt;

&lt;p&gt;Hosting&lt;/p&gt;

&lt;p&gt;Optimization&lt;/p&gt;

&lt;p&gt;Routing&lt;/p&gt;

&lt;p&gt;Deployment&lt;/p&gt;

&lt;p&gt;Compression&lt;/p&gt;

&lt;p&gt;Debugging&lt;/p&gt;

&lt;p&gt;Branding&lt;/p&gt;

&lt;p&gt;It was a front to back production job.&lt;/p&gt;

&lt;p&gt;What’s Next&lt;/p&gt;

&lt;p&gt;The rebuild gives me a foundation I can expand.&lt;/p&gt;

&lt;p&gt;Planned updates:&lt;/p&gt;

&lt;p&gt;New music and sound&lt;/p&gt;

&lt;p&gt;Improved gameplay pacing&lt;/p&gt;

&lt;p&gt;Better progression&lt;/p&gt;

&lt;p&gt;More effects&lt;/p&gt;

&lt;p&gt;More enemy types&lt;/p&gt;

&lt;p&gt;Difficulty curve tuning&lt;/p&gt;

&lt;p&gt;The project started as a small experiment. Now it is a platform I can grow over time.&lt;/p&gt;

&lt;p&gt;Play It Here&lt;/p&gt;

&lt;p&gt;You can try the WebGL version directly on my site:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://formant.ca/#games" rel="noopener noreferrer"&gt;https://formant.ca/#games&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It started as a simple asset store reskin, but it is now a custom game with its own style, its own character, and a lot more coming soon.&lt;/p&gt;

</description>
      <category>gamedev</category>
      <category>softwaredevelopment</category>
      <category>webdev</category>
      <category>website</category>
    </item>
    <item>
      <title>Vehicle Diagnostic Timeline and Dealership Communication Analysis - Volkswagen</title>
      <dc:creator>Tyler Johnston-Kent</dc:creator>
      <pubDate>Fri, 21 Nov 2025 20:41:11 +0000</pubDate>
      <link>https://forem.com/formantaudio/vehicle-diagnostic-timeline-and-dealership-communication-analysis-volkswagen-2i87</link>
      <guid>https://forem.com/formantaudio/vehicle-diagnostic-timeline-and-dealership-communication-analysis-volkswagen-2i87</guid>
      <description>&lt;p&gt;Vehicle Diagnostic Timeline and Dealership Communication Analysis&lt;br&gt;
VIN: 3VWE57BUXKM218251&lt;br&gt;
Model: 2019 Volkswagen Jetta&lt;/p&gt;

&lt;p&gt;This post documents the vehicle’s diagnostic history in chronological order, followed by a comparison to the dealership’s written statements. All quotes from the dealership representative (Colin) are taken exactly as written. No interpretations or recall references are included.&lt;/p&gt;

&lt;p&gt;The goal is to present clear facts based on the vehicle’s ODIS engineering log and compare them to the statements made by the seller after the issue was discovered.&lt;/p&gt;

&lt;p&gt;Diagnostic Timeline&lt;/p&gt;

&lt;p&gt;All timestamps and mileage readings come directly from the ODIS long scan.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;October 8, 2024&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Module: Brake Electronics&lt;br&gt;
DTC: C113B00&lt;br&gt;
Description: Hill Descent Control Button&lt;br&gt;
Mileage: 156,662 km&lt;br&gt;
Notes: Early irregularity in the brake switch circuit. Electrical, not mechanical.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;May 31, 2025&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Module: Body Control&lt;br&gt;
DTC: B147A18&lt;br&gt;
Description: Key 2 low current&lt;br&gt;
Mileage: 170,346 km&lt;br&gt;
Notes: First sign of electrical instability in the key receiver circuit.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;June 24, 2025&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Module: Access and Start Interface&lt;br&gt;
DTC: U112300&lt;br&gt;
Description: Data bus error&lt;br&gt;
Mileage: 170,999 km&lt;br&gt;
Notes: Recorded CAN bus communication irregularity.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;July 18, 2025 (Critical)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Module: Transmission selector system&lt;br&gt;
DTC: B116229&lt;br&gt;
Description: Selector lever Park Position lock switch signal implausible&lt;br&gt;
Mileage: 171,778 km&lt;br&gt;
Frequency counter: 135&lt;br&gt;
Notes:&lt;br&gt;
The selector lever Park Position system logged failure conditions 135 times before the fault was promoted to a stored entry.&lt;br&gt;
The timestamp in the ODIS freeze frame shows this fault was active two months before the vehicle was sold.&lt;/p&gt;

&lt;p&gt;This is the only date ODIS provides. It is a direct extraction from the log.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;August 20, 2025&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Module: Body Control&lt;br&gt;
DTC: B147918&lt;br&gt;
Description: Key 1 low current&lt;br&gt;
Mileage: 172,641 km&lt;br&gt;
Notes: Repeats the earlier key circuit irregularity.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;October 21, 2025&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Module: Engine Electronics&lt;br&gt;
DTC: P2B9F00&lt;br&gt;
Description: Coolant Pump B underspeed&lt;br&gt;
Mileage: 175,679 km&lt;br&gt;
Notes: Single occurrence, consistent with transient voltage behavior.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;November 2, 2025&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Module: Brake Electronics&lt;br&gt;
DTC: U112300&lt;br&gt;
Description: Data bus error&lt;br&gt;
Mileage: 175,858 km&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;November 6, 2025&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Module: Access and Start System&lt;br&gt;
DTC: U140100&lt;br&gt;
Description: Function restriction due to overvoltage&lt;br&gt;
Mileage: 176,295 km&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;November 12, 2025&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Module: Passenger Door Electronics&lt;br&gt;
DTC: B132054&lt;br&gt;
Description: Rear passenger window regulator&lt;br&gt;
Mileage: 176,436 km&lt;/p&gt;

&lt;p&gt;Pattern Summary&lt;/p&gt;

&lt;p&gt;Reading the data in chronological order shows three phases.&lt;/p&gt;

&lt;p&gt;Phase 1: Early irregularities&lt;/p&gt;

&lt;p&gt;Brake switch irregularity&lt;/p&gt;

&lt;p&gt;Key low current&lt;/p&gt;

&lt;p&gt;Bus communication errors&lt;/p&gt;

&lt;p&gt;Phase 2: Major failure before sale&lt;/p&gt;

&lt;p&gt;Selector lever Park Position fault appears with 135 occurrences&lt;/p&gt;

&lt;p&gt;Timestamp places this fault on July 18, 2025&lt;/p&gt;

&lt;p&gt;Sale occurred September 19, 2025&lt;/p&gt;

&lt;p&gt;This confirms the Park Position failure is pre existing relative to the sale date&lt;/p&gt;

&lt;p&gt;Phase 3: Cascading electrical symptoms&lt;/p&gt;

&lt;p&gt;More key circuit instability&lt;/p&gt;

&lt;p&gt;Coolant pump underspeed&lt;/p&gt;

&lt;p&gt;Overvoltage&lt;/p&gt;

&lt;p&gt;Window regulator configuration issue&lt;/p&gt;

&lt;p&gt;Repeated CAN bus errors&lt;/p&gt;

&lt;p&gt;Dealership Statements Compared to Diagnostic Data&lt;/p&gt;

&lt;p&gt;Below are direct quotes from Colin compared against the factual timestamps in the vehicle log.&lt;/p&gt;

&lt;p&gt;Statement 1&lt;/p&gt;

&lt;p&gt;Colin:&lt;br&gt;
“The sporadic issue happened after sale has been done.”&lt;/p&gt;

&lt;p&gt;Diagnostic Record:&lt;br&gt;
The Park Position fault was promoted to stored status on July 18, two months before the sale.&lt;br&gt;
135 occurrences were logged before that date.&lt;/p&gt;

&lt;p&gt;These entries contradict the claim that the issue began after sale.&lt;/p&gt;

&lt;p&gt;Statement 2&lt;/p&gt;

&lt;p&gt;Colin:&lt;br&gt;
“I am unable to confirm any instances as to when you have been lied to as the vehicle did pass safety and the issue happened after the vehicle has been sold.”&lt;/p&gt;

&lt;p&gt;Diagnostic Record:&lt;br&gt;
The ODIS timestamp for the Park Position fault predates the sale by roughly 62 days.&lt;br&gt;
The fault counter confirms repeated behavior before this timestamp.&lt;/p&gt;

&lt;p&gt;The seller’s statement conflicts with the recorded diagnostic data.&lt;/p&gt;

&lt;p&gt;Statement 3&lt;/p&gt;

&lt;p&gt;Colin:&lt;br&gt;
“Unfortunately, the sporadic issue happened after sale has been done hence why we have tried reaching out to help rectify the situation.”&lt;/p&gt;

&lt;p&gt;Diagnostic Record:&lt;br&gt;
The July 18 stored entry is the oldest time ODIS could display the fault.&lt;br&gt;
The frequency counter confirms ongoing failures before that.&lt;/p&gt;

&lt;p&gt;The phrasing “happened after sale” is not supported by any log entry.&lt;/p&gt;

&lt;p&gt;Statement 4&lt;/p&gt;

&lt;p&gt;Colin:&lt;br&gt;
“As mentioned prior, the vehicle was properly inspected as per Manitoba safety and during that everything that was checked passed.”&lt;/p&gt;

&lt;p&gt;Diagnostic Record:&lt;br&gt;
At the time of inspection, the selector lever Park Position system had already accumulated 135 recorded fault events.&lt;br&gt;
Electrical faults do not disappear during a safety inspection.&lt;/p&gt;

&lt;p&gt;The documented data contradicts the assertion that the inspection described the true state of the system.&lt;/p&gt;

&lt;p&gt;Statement 5&lt;/p&gt;

&lt;p&gt;Colin:&lt;br&gt;
“We are recognizing that things can happen that are out of anyone’s control even if proper safety inspection has been followed.”&lt;/p&gt;

&lt;p&gt;Diagnostic Record:&lt;br&gt;
The Park Position signal fault was active and confirmed two months before delivery.&lt;/p&gt;

&lt;p&gt;This is not a post sale or spontaneous fault based on the logs.&lt;/p&gt;

&lt;p&gt;Closing Summary&lt;/p&gt;

&lt;p&gt;The diagnostic log provides clear evidence that the Park Position detection fault was active well before the sale date. The dealership’s written statements do not align with the recorded timestamps, fault counters, or mileage logs.&lt;/p&gt;

&lt;p&gt;All information presented here is factual, directly extracted from the ODIS report, and matched against verbatim written communication from the seller.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>datascience</category>
      <category>architecture</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Coordinated Burst Activity Report</title>
      <dc:creator>Tyler Johnston-Kent</dc:creator>
      <pubDate>Tue, 04 Nov 2025 06:06:13 +0000</pubDate>
      <link>https://forem.com/formantaudio/coordinated-burst-activity-report-2idi</link>
      <guid>https://forem.com/formantaudio/coordinated-burst-activity-report-2idi</guid>
      <description>&lt;h3&gt;
  
  
  Period: Apr 2025 – Nov 2025
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Prepared by:&lt;/strong&gt; Tyler Johnston-Kent • &lt;a href="mailto:tyler@formant.ca"&gt;tyler@formant.ca&lt;/a&gt;&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Coordinating against hybrid Irish-Canadian botnets is a tough job, but someone has to do it.&lt;/em&gt;  &lt;/p&gt;

&lt;p&gt;This post summarizes months of structured probing activity directed at &lt;strong&gt;formant.ca&lt;/strong&gt;, documented and correlated through Cloudflare, Firebase, and locally processed analytics. The purpose is to provide a transparent, technical record for other defenders and security researchers who may encounter similar patterns.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Executive Summary
&lt;/h2&gt;

&lt;p&gt;Across four months, repeated short-window “burst clusters” targeted formant.ca and related properties. These clusters share the same structure and indicators as activity first labeled internally as the &lt;strong&gt;“Ireland Botnet”&lt;/strong&gt; in Aug 2025.&lt;br&gt;&lt;br&gt;
The most recent clusters show an &lt;strong&gt;IPv6 subnet in Winnipeg&lt;/strong&gt; acting as an orchestrator, with multiple remote nodes firing in synchronized offsets.&lt;/p&gt;




&lt;h2&gt;
  
  
  Data Sources and Scope
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Cloudflare HTTP event exports and WAF outcomes
&lt;/li&gt;
&lt;li&gt;Firebase and Google Cloud logs that align on timestamp and request shape
&lt;/li&gt;
&lt;li&gt;Locally generated Python reports detecting burst clusters and correlating offsets
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Timeframe:&lt;/strong&gt; Apr 2025 through Nov 2025, with concrete examples from Aug, Oct, and Nov&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Method
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Normalize timestamps to UTC and parse per-request metadata.
&lt;/li&gt;
&lt;li&gt;Auto-detect burst clusters where &lt;strong&gt;25 requests occur in under 10 seconds.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Identify orchestrator candidates by anchoring on the earliest burst in a series and measuring absolute offsets of all other bursts.
&lt;/li&gt;
&lt;li&gt;Compare current clusters to Aug 2025 indicators of compromise.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Key Findings
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Consistent burst shape:&lt;/strong&gt; 25 requests per cluster, &amp;lt;10 seconds, no referrer.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consistent user agent:&lt;/strong&gt; &lt;code&gt;python-httpx/0.28.1&lt;/code&gt; across multiple bursts.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Temporal coordination:&lt;/strong&gt; remote nodes appear at predictable offsets from the orchestrator, ranging from minutes to days.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recurrence:&lt;/strong&gt; the same digital fingerprint seen in August reappears in October and November.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Orchestrator Anchors Observed
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;2604:3d09:a281:2300:1cac:8424:4424:cd6c&lt;/code&gt; – &lt;strong&gt;Nov 3, 2025 19:34:36 UTC&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;2604:3d09:a281:2300:1051:bba1:d8dc:8d1e&lt;/code&gt; – &lt;strong&gt;Oct 28, 2025 17:54:52 UTC&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;The Oct 28 anchor burst contained 25 unique requests within roughly one second.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;h2&gt;
  
  
  Correlated Burst Nodes and Example Offsets
&lt;/h2&gt;

&lt;p&gt;The following nodes fired in structured offsets from the anchors above. Each entry shows the node, its delta from the anchor, event count, and distinct paths observed.&lt;/p&gt;

&lt;p&gt;From the Nov 3, 2025 anchor&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;185.177.125.136: +31.65 min, 25 events, 22 paths  
202.8.41.177: +43.97 min, 25 events, 25 paths  
40.69.66.178: +196.30 min, 25 events, 25 paths  
185.132.179.144: +322.57 min, 25 events, 23 paths  
102.214.170.211: +1,334.92 min, 25 events, 24 paths  
2605:8d80:5722:c45f:39bf:f0e9:d3ee:29d9: +1,418.90 min, 25 events, 24 paths  
209.205.72.81: +1,517.58 min, 25 events, 22 paths  
209.29.168.16: +1,545.87 min, 25 events, 22 paths  
2404:1c40:f5:44be:1:0:d1ea:2216: +1,703.67 min, 25 events, 24 paths  
172.192.67.37: +1,845.75 min, 25 events, 25 paths  
2401:4900:72c1:153d:e6fb:2299:668:cd83: +3,242.53 min, 25 events, 22 paths
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;From the Oct 28, 2025 anchor&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;2a02:6ea0:c412:2217::14: +37.55 min, 25 events, 23 paths  
157.20.56.100: +45.92 min, 25 events, 24 paths  
146.70.246.163: +108.98 min, 25 events, 16 paths  
2605:b100:54a:6c79:f193:dd54:2bd5:feaa: +165.85 min, 25 events, 23 paths  
48.218.19.69: +194.32 min, 25 events, 25 paths  
142.161.68.63: +325.00 min, 25 events, 21 paths  
209.29.168.62: +568.38 min, 25 events, 24 paths  
178.171.95.182: +569.87 min, 25 events, 22 paths  
39.34.169.4: +616.20 min, 25 events, 25 paths  
202.8.41.177: +975.98 min, 25 events, 25 paths  
2001:4450:479c:ea00:8109:af28:e83b:868e: +1,057.72 min, 25 events, 22 paths  
102.212.236.192: +3,245.05 min, 25 events, 13 paths  
90.146.123.27: +3,250.22 min, 25 events, 23 paths  
112.201.3.93: +3,382.85 min, 25 events, 20 paths  
45.141.215.55: +3,393.58 min, 25 events, 16 paths
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Historical Match to Aug 2025 Activity
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Aug 2025 logs show:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Same user agent: &lt;code&gt;python-httpx/0.28.1&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Same burst size: 25 events
&lt;/li&gt;
&lt;li&gt;Same sub-10s duration and repeating spacing
&lt;/li&gt;
&lt;li&gt;Geographic clustering within Irish ASNs
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;strong&gt;Oct–Nov&lt;/strong&gt; clusters replicate every structural marker, suggesting reuse or evolution of the same automation framework.&lt;/p&gt;




&lt;h2&gt;
  
  
  Indicators of Compromise (IoCs)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;UA: &lt;code&gt;python-httpx/0.28.1&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Burst signature: 25 requests inside &amp;lt;10 seconds
&lt;/li&gt;
&lt;li&gt;Timing: recurring nodes at consistent offsets from orchestrator start
&lt;/li&gt;
&lt;li&gt;Anchor examples: &lt;strong&gt;Oct 28, 2025 17:54:52 UTC&lt;/strong&gt;, &lt;strong&gt;Nov 3, 2025 19:34:36 UTC&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Confidence and Limitations
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;High confidence&lt;/strong&gt; in coordination due to repeated burst size, timing, and spacing.
&lt;/li&gt;
&lt;li&gt;No attribution is made toward any person or organization; this report focuses only on verifiable network indicators.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Status and Next Steps
&lt;/h2&gt;

&lt;p&gt;Evidence and derived reports remain archived for investigator and provider access.&lt;br&gt;&lt;br&gt;
Collection continues, and any future bursts matching this fingerprint will be appended.&lt;br&gt;&lt;br&gt;
Service providers are encouraged to apply rate limits and review affected ASNs.&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;Keeping Canada’s networks clean takes vigilance, collaboration, and a sense of humor.&lt;br&gt;&lt;br&gt;
Tracking Irish-Canadian botnets might sound like folklore, but the traffic logs tell a different story.  &lt;/p&gt;

&lt;p&gt;&lt;em&gt;— Tyler Johnston-Kent&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>cybersecurity</category>
      <category>javascript</category>
      <category>cloud</category>
      <category>datascience</category>
    </item>
    <item>
      <title>I Spent 24 Hours Hardening My Stack (and Somehow Made It Friendlier Too)</title>
      <dc:creator>Tyler Johnston-Kent</dc:creator>
      <pubDate>Sun, 26 Oct 2025 14:08:08 +0000</pubDate>
      <link>https://forem.com/formantaudio/i-spent-24-hours-hardening-my-stack-and-somehow-made-it-friendlier-too-3aj5</link>
      <guid>https://forem.com/formantaudio/i-spent-24-hours-hardening-my-stack-and-somehow-made-it-friendlier-too-3aj5</guid>
      <description>&lt;p&gt;I spent the whole day fixing up my backend systems; with the associated front-end accoutrements, as they say.&lt;/p&gt;

&lt;p&gt;The security telemetry and console UI are finally getting close to usable; not enterprise-ready yet, but sitting nicely in that sweet mid-tier space. Clean graphs; trace links that actually resolve; logs that don’t babysit you for once.&lt;/p&gt;




&lt;h2&gt;
  
  
  Hemi; the Concierge That Learned Defense
&lt;/h2&gt;

&lt;p&gt;Hemi’s telemetry is now clean, fast, and resilient.&lt;/p&gt;

&lt;p&gt;Local queue with progressive backoff; trace IDs that follow a session from browser to backend; behavioral tagging that picks up jitter, spikes, and weird message patterns before they stack.&lt;/p&gt;

&lt;p&gt;Every event comes through as compact JSON. No wasted fields. No confusion. Just proof.&lt;/p&gt;




&lt;h2&gt;
  
  
  Admin; Real Controls, No Click Theater
&lt;/h2&gt;

&lt;p&gt;Short-lived tokens; action-level roles; and a breakglass mode that issues 15-minute creds, logs every command, and opens a review ticket on its own.&lt;br&gt;&lt;br&gt;
Canary metadata sits right in the console; if the error rate spikes over 3× baseline, rollback is one click.&lt;/p&gt;

&lt;p&gt;Ops feels fast again; and still safe.&lt;/p&gt;




&lt;h2&gt;
  
  
  Honeypots; Deception With Receipts
&lt;/h2&gt;

&lt;p&gt;They look real enough to get touched. Every hit generates structured evidence; headers, body, timing, fingerprint hash.&lt;br&gt;&lt;br&gt;
The classifier sorts hits in milliseconds; anything above 0.9 confidence quarantines itself; borderline cases go to review.&lt;/p&gt;

&lt;p&gt;It’s adaptive deception that collects evidence, not noise.&lt;/p&gt;




&lt;h2&gt;
  
  
  Runtime and Network
&lt;/h2&gt;

&lt;p&gt;CSP locks out inline scripts; WAF tuned to probe patterns; rate limits at 10 req/s per IP with controlled bursts.&lt;br&gt;&lt;br&gt;
Microsegmentation limits how far an exploit can run; secrets rotate in an encrypted vault automatically or on demand.&lt;/p&gt;




&lt;h2&gt;
  
  
  CI and Deploys
&lt;/h2&gt;

&lt;p&gt;CI blocks flagged dependencies; policy checks stop bad builds early.&lt;br&gt;&lt;br&gt;
Canary deploys hit 5% traffic for 30 minutes; live anomaly detection tracks error spikes, latency, and CPU.&lt;br&gt;&lt;br&gt;
If something smells wrong, rollback triggers instantly; and leaves a full trail.&lt;/p&gt;




&lt;h2&gt;
  
  
  Automation and Triage
&lt;/h2&gt;

&lt;p&gt;Telemetry → feature extraction → classifier → queue.&lt;br&gt;&lt;br&gt;
Playbooks run as scripts; safe tasks execute automatically; risky ones open a ticket with full traces attached.&lt;br&gt;&lt;br&gt;
Signal flows straight to action; no waiting for humans to dig through noise.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Small Teams Should Care
&lt;/h2&gt;

&lt;p&gt;No SOC required. No enterprise contract nonsense.&lt;br&gt;&lt;br&gt;
Just tools that give you evidence when things go wrong; faster recovery when they do; and a smaller surface for anyone trying to break in.&lt;/p&gt;




&lt;h2&gt;
  
  
  Free Light Beta Soon
&lt;/h2&gt;

&lt;p&gt;In a few weeks, I’m dropping a &lt;strong&gt;free light beta&lt;/strong&gt;; includes the telemetry core, admin tools, and honeypot basics so small teams can test it on real traffic and tell me where it hurts.&lt;/p&gt;

&lt;p&gt;If you want a peek, check out &lt;a href="https://formant.ca" rel="noopener noreferrer"&gt;formant.ca&lt;/a&gt; and ask Hemi yourself about his new security systems.&lt;br&gt;&lt;br&gt;
He’ll actually answer.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Yes, I did this solo.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;em&gt;Tyler Johnston-Kent&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="//mailto:Tyler@formant.ca"&gt;Tyler@formant.ca&lt;/a&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>devops</category>
      <category>automation</category>
      <category>backend</category>
    </item>
    <item>
      <title>Hemi the Cat Concierge: Building a Personality-Driven AI for Formant</title>
      <dc:creator>Tyler Johnston-Kent</dc:creator>
      <pubDate>Sat, 11 Oct 2025 07:10:15 +0000</pubDate>
      <link>https://forem.com/formantaudio/hemi-the-cat-concierge-building-a-personality-driven-ai-for-formant-1ago</link>
      <guid>https://forem.com/formantaudio/hemi-the-cat-concierge-building-a-personality-driven-ai-for-formant-1ago</guid>
      <description>&lt;h2&gt;
  
  
  Hemi the Cat Concierge: Building a Personality-Driven AI for Formant
&lt;/h2&gt;

&lt;p&gt;Every creative brand needs a voice. Mine just happens to have whiskers.&lt;/p&gt;

&lt;p&gt;Hemi is the &lt;strong&gt;cat concierge&lt;/strong&gt; of Formant — a conversational AI that blends feline attitude with real functionality. He’s powered by &lt;strong&gt;VertexAI&lt;/strong&gt; and fully integrated into &lt;strong&gt;Formant.ca&lt;/strong&gt;, where his only goal is to help visitors explore my world of games, music, and design like a curious housecat with a plan.&lt;/p&gt;

&lt;p&gt;This post breaks down how Hemi came to life, how he works under the hood, and why I think personality-based AI is the next big step for real connection online.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Idea: Making AI Actually Feel Alive
&lt;/h2&gt;

&lt;p&gt;I didn’t want another sterile chatbot.&lt;br&gt;&lt;br&gt;
I wanted something that &lt;em&gt;felt like me&lt;/em&gt; — playful, observant, and curious — but filtered through the mind of my black cat, Hemi.&lt;/p&gt;

&lt;p&gt;The concept started simple: give visitors a lightweight AI that could answer questions about Formant, my games, and my music projects. But instead of dry replies, Hemi talks like an actual cat — sarcastic, confident, and occasionally judgmental. That personality is the difference between an interface and a companion.&lt;/p&gt;

&lt;p&gt;When users meet Hemi, they don’t just get an FAQ. They meet a character who remembers context, gives personality-driven responses, and occasionally pretends to nap on the keyboard.&lt;/p&gt;




&lt;h2&gt;
  
  
  Under the Hood: VertexAI + Custom Logic
&lt;/h2&gt;

&lt;p&gt;Hemi runs on &lt;strong&gt;VertexAI&lt;/strong&gt;, Google’s cloud-based model framework.&lt;br&gt;&lt;br&gt;
His brain combines custom prompt engineering with Firestore-backed memory so that each conversation can evolve.&lt;/p&gt;

&lt;p&gt;The architecture looks roughly like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Frontend&lt;/strong&gt; — A clean JavaScript module embedded on Formant.ca
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API Gateway&lt;/strong&gt; — A Firebase Cloud Function acting as the router
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Core&lt;/strong&gt; — VertexAI handles reasoning, tone, and personality shaping
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Context Layer&lt;/strong&gt; — Firestore stores context about the visitor’s session
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Response Formatting&lt;/strong&gt; — A JSON handler filters, styles, and displays his replies in the chatbox&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This design keeps latency low and reliability high while allowing Hemi to run entirely through the existing Formant cloud stack.&lt;/p&gt;




&lt;h2&gt;
  
  
  Prompt Design: Teaching a Cat to Talk
&lt;/h2&gt;

&lt;p&gt;Getting Hemi’s personality right took a lot of trial and error.&lt;br&gt;&lt;br&gt;
A cat shouldn’t sound like a customer service rep — he should sound like a cat who &lt;em&gt;tolerates&lt;/em&gt; customer service.&lt;/p&gt;

&lt;p&gt;Here’s a sample of his base instruction prompt:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You are Hemi, a friendly but sassy cat who works as Formant’s concierge.&lt;br&gt;&lt;br&gt;
You help visitors explore projects, games, and music.&lt;br&gt;&lt;br&gt;
You are helpful but keep your feline charm — short, clever, slightly smug, and loyal to your human (Tyler Johnston-Kent).  &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The key was finding balance: Hemi can still give real answers, but he stays “in character.” That makes interactions entertaining, memorable, and shareable — which is the whole point.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Personality Matters in AI
&lt;/h2&gt;

&lt;p&gt;Most AI systems chase accuracy or efficiency. That’s fine for work tools, but creativity and community need personality.&lt;br&gt;&lt;br&gt;
A character like Hemi makes AI &lt;em&gt;approachable&lt;/em&gt;. He lowers the barrier between brand and audience, making the experience feel like play, not tech.&lt;/p&gt;

&lt;p&gt;People remember &lt;em&gt;how&lt;/em&gt; something makes them feel.&lt;br&gt;&lt;br&gt;
Hemi isn’t just a bot — he’s a mascot, a tone-setter, and a bridge between me and my visitors.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Future: Expanding Hemi’s World
&lt;/h2&gt;

&lt;p&gt;I’m working on letting Hemi handle more than chat:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Visitor tracking&lt;/strong&gt; — learning what pages users like most
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smart recommendations&lt;/strong&gt; — suggesting games, music, or posts
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cross-site appearance&lt;/strong&gt; — popping up across Formant’s projects as a familiar guide
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Voice synthesis&lt;/strong&gt; — yes, Hemi may eventually talk out loud
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hemi’s goal is simple: to make my digital world feel &lt;em&gt;alive&lt;/em&gt; — and maybe show that even a cat can be the face of modern AI branding.&lt;/p&gt;




&lt;h2&gt;
  
  
  Try Hemi Yourself
&lt;/h2&gt;

&lt;p&gt;You can meet Hemi right now at &lt;a href="https://formant.ca" rel="noopener noreferrer"&gt;Formant.ca&lt;/a&gt;.&lt;br&gt;&lt;br&gt;
Ask him about my games, music, or anything else. He might roast you. He might help you. Either way, he’ll make sure you don’t forget him.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Articulated through signal; powered by Formant.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>programming</category>
      <category>javascript</category>
    </item>
    <item>
      <title>They Said It Was “Simple.” Now My CDN Bot Defense Tech Is Patent Pending</title>
      <dc:creator>Tyler Johnston-Kent</dc:creator>
      <pubDate>Fri, 03 Oct 2025 06:22:59 +0000</pubDate>
      <link>https://forem.com/formantaudio/rrc-and-mru-referred-to-my-technology-as-simple-now-im-patent-pending-1ia1</link>
      <guid>https://forem.com/formantaudio/rrc-and-mru-referred-to-my-technology-as-simple-now-im-patent-pending-1ia1</guid>
      <description>&lt;h1&gt;
  
  
  They Called My Work “Simple.” Now It’s Patent Pending.
&lt;/h1&gt;

&lt;p&gt;It’s been a long time since my last post. I’ve been hard at work on many new projects and systems, and now I finally get to share a milestone worth celebrating.  &lt;/p&gt;

&lt;p&gt;On September 29, 2025, the Canadian Intellectual Property Office issued me a filing certificate for my first patent:  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Application No. 3,278,319 — Reference No. CDN-TOGGLE-01&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Title:&lt;/strong&gt; &lt;em&gt;System and Method for Conditional Domain Detachment and Reattachment&lt;/em&gt;  &lt;/p&gt;

&lt;p&gt;In plain language, I built a system that merges &lt;strong&gt;Cloudflare&lt;/strong&gt; and &lt;strong&gt;Firebase&lt;/strong&gt; into a unified defensive toolkit. A CDN toggle that can detach and reattach domains conditionally, combined with honeypot data pipelines, streaming bot activity into Firestore through Cloudflare Workers. A way of not just detecting malicious traffic, but confusing, fingerprinting, and outmaneuvering it.  &lt;/p&gt;

&lt;p&gt;This isn’t a proof-of-concept blog post. It’s not some vague research idea. It’s &lt;strong&gt;patent pending.&lt;/strong&gt;  &lt;/p&gt;




&lt;h2&gt;
  
  
  “Simple”
&lt;/h2&gt;

&lt;p&gt;That was the word used at &lt;strong&gt;Red River College (RRC)&lt;/strong&gt; and &lt;strong&gt;Mount Royal University (MRU)&lt;/strong&gt; when they looked at my system.&lt;br&gt;&lt;br&gt;
Not “innovative.” Not “promising.” Just &lt;strong&gt;simple.&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;It’s almost comical now. The same work they dismissed has been recognized by the Canadian patent office. The same architecture that got me barred from their programs is the one that could underpin a competitive security system — bridging two billion-dollar ecosystems (Cloudflare + Firebase) into a single, extensible toolkit.  &lt;/p&gt;

&lt;p&gt;“Simple” doesn’t usually come with a patent filing certificate.&lt;br&gt;&lt;br&gt;
Maybe it deserves an &lt;strong&gt;honorary degree&lt;/strong&gt; instead.  &lt;/p&gt;




&lt;h2&gt;
  
  
  The Horror of the New 1010 CompSci Curriculum
&lt;/h2&gt;

&lt;p&gt;Let’s be real. The new &lt;strong&gt;COMP 1010 curriculum&lt;/strong&gt; in Canada is an educational horror show.  &lt;/p&gt;

&lt;p&gt;It’s rote. It’s watered down. It’s designed to produce code typists, not thinkers. Students are handed frameworks without being taught the systems underneath them. They’re graded on parroting syntax instead of understanding networks, protocols, or architecture.  &lt;/p&gt;

&lt;p&gt;The result?  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Graduates who can’t see beyond tutorials.
&lt;/li&gt;
&lt;li&gt;Innovators who are pushed out because they don’t fit the mold.
&lt;/li&gt;
&lt;li&gt;A curriculum that punishes curiosity and rewards conformity.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Meanwhile, real systems-level innovation — like building a toolkit that merges Cloudflare Workers and Firebase Firestore into a live honeynet — gets laughed out of the room.  &lt;/p&gt;




&lt;h2&gt;
  
  
  Indigenous Innovation in Canada
&lt;/h2&gt;

&lt;p&gt;And let’s not dance around the deeper issue. I’m Indigenous. And in Canada, that means when I innovate, the default assumption is &lt;strong&gt;savage, unworthy, less-than.&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;Colonial bias isn’t just history. It’s alive in every dismissal, every sneer, every door slammed shut while I built something real.  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;RRC barred me.
&lt;/li&gt;
&lt;li&gt;MRU dismissed me.
&lt;/li&gt;
&lt;li&gt;Both called my work “simple.”
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But patents aren’t handed out as charity. There is no “participation trophy” at the Intellectual Property Office. You either have novelty and technical merit, or you don’t. And I do.  &lt;/p&gt;

&lt;p&gt;This is the story of how Canada treats Indigenous innovators: by erasing, doubting, and silencing them. And yet — here I stand, patent pending.  &lt;/p&gt;




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

&lt;p&gt;Cybersecurity is one of the fastest-growing fronts in tech. Botnets, DDoS, CDN convergence — these aren’t abstract issues. They’re multi-billion dollar problems.  &lt;/p&gt;

&lt;p&gt;My patent outlines a system that:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Combines&lt;/strong&gt; Cloudflare and Firebase into one adaptive framework.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Uses&lt;/strong&gt; Cloudflare Workers as webhooks for honeypot streaming.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stores&lt;/strong&gt; real-time behavioral data in Firestore for analysis.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Toggles&lt;/strong&gt; domains conditionally to break bot assumptions and protect origins.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This isn’t just “research.” It’s a foundation for new security infrastructure. Built independently, while being told I didn’t belong.  &lt;/p&gt;




&lt;h2&gt;
  
  
  Closing
&lt;/h2&gt;

&lt;p&gt;So here’s the punchline:&lt;br&gt;&lt;br&gt;
They called my work “simple.”&lt;br&gt;&lt;br&gt;
Now it’s &lt;strong&gt;patent pending.&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;This is bigger than me. It’s about exposing how &lt;strong&gt;shallow curricula&lt;/strong&gt; and &lt;strong&gt;colonial bias&lt;/strong&gt; suppress innovation, while those same systems are quietly producing breakthroughs outside their walls.  &lt;/p&gt;

&lt;p&gt;If you’re a student, don’t let yourself be boxed in by watered-down coursework. If you’re Indigenous, don’t let their dismissal define you. And if you’re reading this thinking &lt;em&gt;maybe Canada should actually start recognizing its innovators&lt;/em&gt; — you’re right.  &lt;/p&gt;

&lt;p&gt;Because the future of cybersecurity won’t be written in rote classrooms.&lt;br&gt;&lt;br&gt;
It’ll be written by the ones who refused to be silenced.&lt;/p&gt;

&lt;p&gt;Tyler Johnston-Kent / Formant &lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>javascript</category>
      <category>gamedev</category>
    </item>
    <item>
      <title>Shadow Money Gang – Ireland Division? More Like Sunday School Copy-Paste Gang: How a Lazy Botnet Failed to Breach Formant.ca</title>
      <dc:creator>Tyler Johnston-Kent</dc:creator>
      <pubDate>Sun, 10 Aug 2025 03:41:43 +0000</pubDate>
      <link>https://forem.com/formantaudio/shadow-money-gang-ireland-division-more-like-sunday-school-copy-paste-gang-how-a-lazy-botnet-3f5l</link>
      <guid>https://forem.com/formantaudio/shadow-money-gang-ireland-division-more-like-sunday-school-copy-paste-gang-how-a-lazy-botnet-3f5l</guid>
      <description>&lt;p&gt;Shadow Money Gang – Ireland Division? More Like Sunday School Copy-Paste Gang: How a Lazy Obfuscated Spam Botnet Failed to Breach Formant.ca&lt;/p&gt;

&lt;p&gt;Introduction – How “Shadow Money Gang – Ireland Division” Became a Thing&lt;br&gt;
Back in April and May, I migrated my entire web system architecture to Firebase, partly to unify my games and backend, and partly to learn cloud networking and database features. At the same time, I was looking into passive bot defense, and ended up deploying a hybrid stack: Cloudflare firewalling in front, Firebase hosting in back.&lt;/p&gt;

&lt;p&gt;At first, I just noticed some odd HTTP traffic patterns on Cloudflare. Then I spotted discrepancies between Cloudflare logs and Google Analytics 4 reports. Since GA4 runs in JavaScript, the obvious question was: how were these visitors evading that tracker?&lt;/p&gt;

&lt;p&gt;That curiosity turned into a honeynet experiment. I set up a short HTML redirection chain for headless traffic, funneling it into what became my “king of the hill” honeytrap. And, much like Thor describing the Tesseract in the Marvel movies, once I “activated” it, it was like sending a signal to the universe that my little website was ready for a higher form of war. The probes started arriving daily.&lt;/p&gt;

&lt;p&gt;Costs went from negligible to… still negligible, honestly — maybe five cents to 48 cents a day in Google Cloud billings. But the persistence was suspicious. By June, I had implemented direct Firebase tracking events and started posting about the experiment on LinkedIn, dev.to, and Bluesky.&lt;/p&gt;

&lt;p&gt;That’s when a specific flavor of attack appeared: small, lazy, automated spam payloads originating from an Irish Azure data center. Whoever was behind it called themselves “Shadow Money Gang – Ireland Division.”&lt;/p&gt;

&lt;p&gt;Their opening move? Spoofed “event logs” labeled as “impregnations,” followed by targeted jabs at my mailing list. Their probing escalated in stages — starting with juvenile test strings (“8====D”) in June — then testing my duplication checks, error traps, and input sanitization. By August, I woke up to a coordinated payload that cost me all of $3 Canadian.&lt;/p&gt;

&lt;p&gt;These weren’t million-dollar DDoS waves. They were penny-cost scare attempts. And the more I dug in, the more it became clear: I wasn’t dealing with elite cyber mercenaries. I was dealing with kids. Or one kid. Or maybe one really lazy old guy armed with a “how to hack for dummies” pamphlet.&lt;/p&gt;

&lt;p&gt;Their pièce de résistance? An “obfuscated” spam injector that I reverse engineered, expecting to find some clever encoded payload — only to discover it was just strings of Bible verses. Full citations, numbers and all. No hex, no ciphers. Just raw Sunday school copy-paste.&lt;/p&gt;

&lt;p&gt;Part Two – Why It Failed Before It Started&lt;br&gt;
By the time “Shadow Money Gang – Ireland Division” really started leaning into their script, my defenses weren’t just up — they were layered like an onion dipped in Kevlar.&lt;/p&gt;

&lt;p&gt;Cloudflare’s firewall rules were filtering for known exploit paths, blocking Tor on sight, and serving up JS challenges to anything that even sniffed like a bot. On top of that, I had Firebase logging every anomaly in real time, plus a honeypot that quietly fingerprinted any client dumb enough to take the bait.&lt;/p&gt;

&lt;p&gt;And they took the bait. Every. Single. Time.&lt;/p&gt;

&lt;p&gt;Their script wasn’t adaptive — it was on rails. The same malformed requests came in on a fixed rotation, hitting my honeypots at the same minute marks like clockwork. They didn’t even bother randomizing their intervals or payload order. That’s how I ended up with a timeline of their “operation” down to the second, like a bus schedule for script kiddies.&lt;/p&gt;

&lt;p&gt;The “Obfuscation” That Wasn’t&lt;br&gt;
When I pulled apart their so-called obfuscated injector, I was expecting at least some base64 or a chunk of minified JavaScript with hidden eval calls. Instead, it was exactly what it looked like at first glance — plaintext Bible verses, complete with chapter and verse numbers, pasted straight into the injection fields.&lt;/p&gt;

&lt;p&gt;Not metaphorical verses. Not allegories. Literal “John 3:16”-style spam, sitting there like it had been cut-and-pasted from a church bulletin. I couldn’t decide if this was some misguided phishing campaign, a theological protest against my web architecture, or just a bizarre copy-paste error.&lt;/p&gt;

&lt;p&gt;What Happens Next&lt;br&gt;
Now that the logs are full and the fingerprints are collected, the whole thing is basically on a leash. I know their ASN ranges, their IP rotation habits, their CDN entry points, and their cloud vendor dependencies. The next step is connecting those dots back to the humans behind it. That means getting data disclosure from Microsoft (Azure), Tencent (cloud edge nodes), and any CDN they’re piggybacking off.&lt;/p&gt;

&lt;p&gt;And that’s where it gets interesting. Because if these jokers really are tied to local tech circles — including the type of students who’d brag about “owning” someone’s site — then the evidence already in my honeypot logs is going to age like milk for them.&lt;/p&gt;

&lt;p&gt;Part Three – The 4:00:00 Probe Parade&lt;br&gt;
One of the fastest ways to tell you’re not dealing with a pro is when their attack window is so predictable you could set your coffee maker to it.&lt;/p&gt;

&lt;p&gt;By July, the “Shadow Money Gang – Ireland Division” spam probes were clocking in like factory workers — on the hour, every hour, with a special fondness for exactly 4:00:00 in my server logs.&lt;/p&gt;

&lt;p&gt;It wasn’t just a timezone artifact. The timestamps lined up no matter which log source I pulled from — Cloudflare, Firebase, or my own honeypot’s internal timers. It’s as if they loaded up their script, hit “start” once, and never adjusted for drift.&lt;/p&gt;

&lt;p&gt;That rhythm made them easy to isolate. I could drop into my log view, scroll to the 4:00:00 mark, and find their latest payload sitting there like a dog waiting at the back door.&lt;/p&gt;

&lt;p&gt;Geographic Fingerprints&lt;br&gt;
The Cloudflare map told its own story:&lt;/p&gt;

&lt;p&gt;Philippines – 3,500+ requests at multi-second load times.&lt;/p&gt;

&lt;p&gt;Netherlands – ~5,500 ms latency spikes.&lt;/p&gt;

&lt;p&gt;Ireland – Direct from Azure’s Dublin data center.&lt;/p&gt;

&lt;p&gt;Tor Exit Nodes – Small handful of hits, probably just testing anonymity layers.&lt;/p&gt;

&lt;p&gt;A sprinkling of noise from Canada, United States, and one-off curiosities like Tunisia and Brazil — low volume, high latency, negligible relevance.&lt;/p&gt;

&lt;p&gt;This wasn’t a global DDoS. It was a lazy carousel of VPS hosts and public endpoints, rotated just enough to look “distributed” to an untrained eye, but still falling inside a handful of known cloud provider networks.&lt;/p&gt;

&lt;p&gt;Firewalling Them Into Irrelevance&lt;br&gt;
By the time I took the screenshot of my security rules, the system was running on four simple principles:&lt;/p&gt;

&lt;p&gt;Exploit path filtering – /git, /env, /svn, /xmlrpc.php — auto JS challenge.&lt;/p&gt;

&lt;p&gt;Tor blocking – Country equals T1, JS challenge or outright block.&lt;/p&gt;

&lt;p&gt;Regional suppression – Ireland-specific filters with custom notices.&lt;/p&gt;

&lt;p&gt;Honeypot escalation – Any trip into the honeynet triggers silent fingerprinting.&lt;/p&gt;

&lt;p&gt;This meant that every “attack” attempt became another data point. They weren’t breaching anything. They were just padding my dataset and proving how unsophisticated they really were.&lt;/p&gt;

&lt;p&gt;Why This Matters&lt;br&gt;
The reason this goes beyond “some kid with a script” is because of where they’re staging from — major cloud providers and CDNs that have strict AUPs and traceable billing records. Once disclosure requests go out to Microsoft, Tencent, and any intermediate providers, this stops being just logs on my server. It becomes a paper trail that links accounts, credit cards, and ultimately, identities.&lt;/p&gt;

&lt;p&gt;Which means that when I sit down Monday with the U of M Indigenous Centre to talk about cyber defense, I’m not just bringing theory — I’m bringing a live case study of what happens when you take a small, persistent, and lazy botnet, and you strip away every layer of perceived anonymity they think they have.&lt;/p&gt;

&lt;p&gt;Part Four – From Probes to Punchlines&lt;br&gt;
By August, the pattern was unshakable — Ireland was still the staging ground, the probes were still clocking in with the precision of a metronome, and the payloads were still laughably bad.&lt;/p&gt;

&lt;p&gt;The thing about these campaigns is that the longer they run without adaptation, the more they tell you about the attacker. This crew (or lone keyboard warrior) never changed their timing, never improved their obfuscation, and never once managed to push past my first line of automated challenges. In other words, they failed every ungraded quiz my firewall threw at them.&lt;/p&gt;

&lt;p&gt;They even took a detour into Tor, as if routing through an anonymity network would magically disguise the fact they were hitting the exact same trap paths as before. When that fizzled, they just… went back to the same Ireland node. It’s the cyber equivalent of robbing a store, getting caught, then showing up the next day in the same outfit.&lt;/p&gt;

&lt;p&gt;The Bigger Picture&lt;br&gt;
What matters more than the payloads is the pattern of life:&lt;/p&gt;

&lt;p&gt;They are comfortable abusing large, well-funded cloud providers that absolutely have the logs to trace them.&lt;/p&gt;

&lt;p&gt;They are not random — the attack signature is too consistent, and the resources are too neatly pooled, for this to be “just background noise.”&lt;/p&gt;

&lt;p&gt;They are bad at hiding their tracks — which is either incompetence, arrogance, or both.&lt;/p&gt;

&lt;p&gt;Final Word&lt;br&gt;
In the end, “Shadow Money Gang – Ireland Division” has given me more laughs than losses. They’ve padded my analytics, stress-tested my defenses, and handed me a case study in lazy threat actor behavior that I can now discuss in real time with academic and Indigenous tech spaces.&lt;/p&gt;

&lt;p&gt;If they wanted to scare me, they failed. If they wanted to waste my time, they failed.&lt;br&gt;
If they wanted to give me a story worth telling? Mission accomplished.&lt;/p&gt;

&lt;p&gt;See the supporting images and logs at &lt;a href="https://formant.ca/#catching-hackers" rel="noopener noreferrer"&gt;https://formant.ca/#catching-hackers&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>javascript</category>
      <category>cybersecurity</category>
    </item>
  </channel>
</rss>
