<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Shreyansh Builds</title>
    <description>The latest articles on DEV Community by Shreyansh Builds (@buildshreyansh).</description>
    <link>https://dev.to/buildshreyansh</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4117856%2F242eaabf-ccd2-48b6-adef-47493989e910.png</url>
      <title>DEV Community: Shreyansh Builds</title>
      <link>https://dev.to/buildshreyansh</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/buildshreyansh"/>
    <language>en</language>
    <item>
      <title>I Walked Away from Cybersecurity. A Phishing Attempt on My Own Code Dragged Me Back In.</title>
      <dc:creator>Shreyansh Builds</dc:creator>
      <pubDate>Wed, 07 Oct 2026 13:55:02 +0000</pubDate>
      <link>https://dev.to/buildshreyansh/i-walked-away-from-cybersecurity-a-phishing-attempt-on-my-own-code-dragged-me-back-in-5g8l</link>
      <guid>https://dev.to/buildshreyansh/i-walked-away-from-cybersecurity-a-phishing-attempt-on-my-own-code-dragged-me-back-in-5g8l</guid>
      <description>&lt;p&gt;Last year, I stopped concentrating on cybersecurity. A different technical domain piqued my interest and got me distracted. That being said, recently an automated phishing campaign hit my production content. I write technical articles on &lt;a href="http://dev.to"&gt;dev.to&lt;/a&gt; and recently got a notification for a comment left on one of my posts. The account was supportdev. The comment was extremely urgent social engineering to create a sense of panic:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Dear User,
Due tо an inсrеase in bot activitу оn the рlatform, wе rеquire vеrify оf yоur account.
Pleаsе lоg іn vіa thе link belоw:
• anti-bot.icu/5K0N5G7M9C4
Verificated deadlinе - 12 hours.
Sincerely, Dev Suрport
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When I clicked through, it was exactly what you'd expect from a credential-harvesting trap: a cloned dev.to logo paired with a custom Vue-rendered payment form aggressively demanding credit card details to "verify" my identity.&lt;/p&gt;

&lt;p&gt;My dormant cybersecurity brain suddenly woke up. This huge, completely irrational adrenaline rush I got.&lt;/p&gt;

&lt;p&gt;Logic tells me I had one data point and one only. A single spam comment on a blog post. A normal user would just hit "Delete" and move on. But my brain didn't see it logically. It went straight into full Hollywood movie logic.&lt;/p&gt;

&lt;p&gt;You know those cyber-thriller movies where the lone hacker finds a random, tiny glitch, starts pulling at the thread, and suddenly it escalates into a high-stakes battle between a random guy in his room and a massive, shadowy global syndicate?&lt;/p&gt;

&lt;p&gt;That's just the sort of kick I wanted. I did not want this to be a lonely spam bot. I wanted this to be a big automated network. I wanted the excitement of the chase. I wanted to be the random guy that exposes the infrastructure.”&lt;/p&gt;

&lt;p&gt;So, with just movie delusion and a long-standing love for forensics, I opened my Linux terminal and tried to map it out.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Phase 1: Technical Breakdown of the Initial Lure&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Before diving into the network architecture, I would like to decompose the exact comment code. The attackers were using a clever way around automated guardrails.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Unicode Homoglyph Obfuscation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When I ran the raw string of the comment through a character inspector, the mechanism for evading &lt;a href="http://dev.to"&gt;dev.to&lt;/a&gt;'s automated spam filters became clear. The attacker wasn't using standard Latin text. They relied on &lt;strong&gt;Unicode homoglyphs&lt;/strong&gt;—characters from different scripts (like Cyrillic) that look identical to Western characters to the human eye but have entirely different hex values:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Expected Latin &lt;code&gt;o&lt;/code&gt; (U+006F) was replaced with Cyrillic &lt;code&gt;о&lt;/code&gt; (U+043E).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Expected Latin &lt;code&gt;a&lt;/code&gt; (U+0061) was replaced with Cyrillic &lt;code&gt;а&lt;/code&gt; (U+0430).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Expected Latin &lt;code&gt;e&lt;/code&gt; (U+0065) was replaced with Cyrillic &lt;code&gt;е&lt;/code&gt; (U+0435).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By salting the copy with these characters, the text reads flawlessly to a panicked user while looking like completely benign, non-blacklisted strings to simple regex or automated keyword filters.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Initial Infrastructure Reconnaissance&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I dropped the URL path into a basic WHOIS evaluation to finger the domain &lt;a href="http://anti-bot.icu" rel="noopener noreferrer"&gt;&lt;code&gt;anti-bot.icu&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;bash&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="nx"&gt;$&lt;/span&gt; &lt;span class="nx"&gt;whois&lt;/span&gt; &lt;span class="nx"&gt;anti&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;bot&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;icu&lt;/span&gt;
&lt;span class="nx"&gt;Domain&lt;/span&gt; &lt;span class="nx"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;ANTI&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;BOT&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ICU&lt;/span&gt;
&lt;span class="nx"&gt;Registrar&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;PDR&lt;/span&gt; &lt;span class="nx"&gt;Ltd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="nx"&gt;PublicDomainRegistry&lt;/span&gt;
&lt;span class="nx"&gt;Creation&lt;/span&gt; &lt;span class="nb"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2026&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="nx"&gt;T08&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="nx"&gt;Z&lt;/span&gt;
&lt;span class="nx"&gt;Registry&lt;/span&gt; &lt;span class="nx"&gt;Expiry&lt;/span&gt; &lt;span class="nb"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2027&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;09&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="nx"&gt;T23&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;59&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;59&lt;/span&gt;&lt;span class="nx"&gt;Z&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use code with caution.&lt;/p&gt;

&lt;p&gt;The domain had been provisioned exactly two days before the account was spun up and deployed. The operation was fresh, active, and running on a tightly controlled timeline. I immediately packaged this data and submitted a formal abuse ticket to &lt;strong&gt;PublicDomainRegistry (Case #53471908)&lt;/strong&gt; requesting an immediate infrastructure suspension.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Phase 2: Bypassing the Anti-Analysis Defenses&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;This is where the cinematic hunt became highly technical. When security researchers look at a phishing site, threat actors look back. The kit was heavily armored to prevent anyone from investigating its source code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Client-Side Fingerprinting and Cloaking&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When I attempted to extract the site’s raw HTML payload using a standard command-line utility, the origin server rejected the handshake:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="nx"&gt;$&lt;/span&gt; &lt;span class="nx"&gt;curl&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;A&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Mozilla/5.0&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;https&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;//anti-bot.icu&lt;/span&gt;
&lt;span class="nx"&gt;HTTP&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;1.1&lt;/span&gt; &lt;span class="mi"&gt;403&lt;/span&gt; &lt;span class="nx"&gt;Forbidden&lt;/span&gt;
&lt;span class="nx"&gt;Content&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;Type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;html&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The application was employing defensive user-agent and client-side cloaking. It checked for valid browser headers, canvas rendering parameters, and Cloudflare verification loops before exposing the actual malicious payload. If you weren't browsing from a real, active desktop profile, it served a generic, custom HTML page stating &lt;em&gt;"Oops! Something is wrong."&lt;/em&gt; to hide its intent.&lt;/p&gt;

&lt;p&gt;I successfully bypassed this cloaking ring by routing an isolated scanner (&lt;a href="http://urlscan.io" rel="noopener noreferrer"&gt;&lt;code&gt;urlscan.io&lt;/code&gt;&lt;/a&gt;) to capture an authentic browser engine fingerprint and hold a persistent &lt;code&gt;cf_clearance&lt;/code&gt; cookie session.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. The Rickroll Debugger Trap&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once inside the DOM, things got genuinely hilarious. The kit developers embedded an anti-forensics library called &lt;code&gt;console-ban v3.2.0&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The scripts were configured to detect whenever the browser's Developer Tools panel (&lt;code&gt;F12&lt;/code&gt; or &lt;code&gt;Ctrl+Shift+I&lt;/code&gt;) was opened. The absolute millisecond a security engineer opened DevTools to inspect the active network sockets, the library triggered an infinite loop of execution blocks via a &lt;code&gt;debugger;&lt;/code&gt; statement, locked up the browser tab, and forcibly redirected the window to a &lt;strong&gt;Rickroll music video&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Conceptual representation of the console-ban defensive routing&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;ConsoleBan&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;console-ban&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;ConsoleBan&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;init&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;redirect&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://youtube.com&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// The Trap&lt;/span&gt;
  &lt;span class="na"&gt;write&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Debugger active. Access denied.&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To complement this, the page disabled standard context menus (&lt;code&gt;oncontextmenu="return false"&lt;/code&gt;), blocked text selection, intercepted &lt;code&gt;Ctrl+U&lt;/code&gt; / &lt;code&gt;Ctrl+S&lt;/code&gt; commands, and applied a subtle &lt;code&gt;hue-rotate(4deg)&lt;/code&gt; CSS filter layout to frustrate simple visual analysis and automated screenshot matches.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Phase 3: Deconstructing the Data Harvesting Engine&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Once the cloaking and defense walls were cleared, the core system opened up. The actual phishing landing zone was a slick, multi-tiered credential-harvesting machine.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;                   &lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="nx"&gt;Client&lt;/span&gt; &lt;span class="nx"&gt;Browser&lt;/span&gt; &lt;span class="p"&gt;]&lt;/span&gt; 
                           &lt;span class="err"&gt;│&lt;/span&gt;
                           &lt;span class="err"&gt;▼&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Bypasses&lt;/span&gt; &lt;span class="mi"&gt;403&lt;/span&gt; &lt;span class="nx"&gt;Cloak&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                &lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ACCOUNT VERIFICATION&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;]&lt;/span&gt;
           &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Hotlinked&lt;/span&gt; &lt;span class="nx"&gt;dev&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;to&lt;/span&gt; &lt;span class="nx"&gt;wordmarks&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;logos&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                           &lt;span class="err"&gt;│&lt;/span&gt;
                           &lt;span class="err"&gt;▼&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;User&lt;/span&gt; &lt;span class="nx"&gt;clicks&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Verify&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                  &lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="sr"&gt;/merchant/&lt;/span&gt;&lt;span class="nx"&gt;order&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt; &lt;span class="p"&gt;]&lt;/span&gt;
            &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Vue&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;js&lt;/span&gt; &lt;span class="nx"&gt;Client&lt;/span&gt; &lt;span class="nx"&gt;App&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="nx"&gt;Fake&lt;/span&gt; &lt;span class="nx"&gt;Card&lt;/span&gt; &lt;span class="nx"&gt;UI&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                           &lt;span class="err"&gt;│&lt;/span&gt;
                           &lt;span class="err"&gt;▼&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Real&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;time&lt;/span&gt; &lt;span class="nx"&gt;tracking&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                &lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="nx"&gt;Socket&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;IO&lt;/span&gt; &lt;span class="nx"&gt;WebSocket&lt;/span&gt; &lt;span class="p"&gt;]&lt;/span&gt;
         &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Real&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;time&lt;/span&gt; &lt;span class="nx"&gt;push&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="nx"&gt;Scripted&lt;/span&gt; &lt;span class="nx"&gt;Operator&lt;/span&gt; &lt;span class="nx"&gt;Chat&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;1. The Cloned Interface&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The root landing page was configured with full multi-language translation architecture natively handling &lt;strong&gt;10 separate languages&lt;/strong&gt; (EN, DE, FR, IT, ES, PL, PT, NL, TR, RU) dynamically parsed through &lt;code&gt;navigator.language&lt;/code&gt; to scale the attack vector globally.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;detectLang&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;  
  &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;lang&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;navigator&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;language&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nb"&gt;navigator&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;userLanguage&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;en&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;toLowerCase&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;substring&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  
  &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;supported&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;en&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;de&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;fr&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;it&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;es&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;pl&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;pt&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;nl&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;tr&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ru&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;  
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;supported&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;indexOf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;lang&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="nx"&gt;lang&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;en&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="c1"&gt;// Kit multi-language evaluation logic&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. The Vue-Driven Card Capture UI&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The checkout path located at &lt;code&gt;/merchant/order/&amp;lt;campaign_id&amp;gt;&lt;/code&gt; was not standard, static HTML. It was configured as a client-side rendered Single Page Application (SPA) built on &lt;strong&gt;Vue.js v2.6.10&lt;/strong&gt; and &lt;strong&gt;vue-swal v1.0.0&lt;/strong&gt;. This architectural choice explains why primitive HTTP scraper bots could never capture the input elements—they required an active Javascript runtime environment to paint the capture form onto the screen.&lt;/p&gt;

&lt;p&gt;To maximize social-engineering trust, the developers baked in an animated payment card wrapper element with a highly unique hook: a dummy field masking dropdown that read &lt;em&gt;"Unlock your account to view autofill suggestions"&lt;/em&gt;.&lt;/p&gt;

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

&lt;p&gt;This gave the illusion of an actual, integrated OS or security browser function, building synthetic legitimacy so users would input their full card names, CVVs, and expiry parameters.&lt;/p&gt;

&lt;p&gt;At the bottom of the form layout, fine print explicitly asserted:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"By clicking 'Next', you confirm your intention to connect your account to Square API."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is a &lt;strong&gt;false/borrowed brand reference&lt;/strong&gt;. The page had no physical integration with Square’s engineering APIs—it was purely using the trusted financial identity of a massive global payment processor to lower user defenses.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Real-Time WebSockets &amp;amp; Scripted Social Engineering&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The kit featured a highly responsive chat component at &lt;code&gt;/supportChatFrame/&amp;lt;id&amp;gt;&lt;/code&gt; driven by a custom &lt;code&gt;supportSocketClient.js&lt;/code&gt; payload. The engine opened a direct WebSocket communication channel to a Node.js/Express backend, assigning each target session a unique client identification string:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Extracted payload elements&lt;/span&gt;
&lt;span class="nx"&gt;socket&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;emit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;register&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;adId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;5K0N5G7M9C4&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;supportToken&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;localStorage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;supportToken&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The system tracked user activity in real time. If a target paused or hesitated on the input page, the WebSocket automatically pushed scripted responses down the line to combat user skepticism:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"If you are afraid to enter your card data, do not worry, because the data is double encrypted with the PCI24 protocol..."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Security Check:&lt;/strong&gt; There is no such thing as "PCI24". The recognized financial framework is &lt;em&gt;PCI DSS&lt;/em&gt;. The kit simply fabricated a technical-sounding acronym to manufacture credibility and pressure victims.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;The Smoking Gun: Mapping the Broader Network&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;This wasn’t a minor, isolated script running out of a single garage. It was part of an extensive, highly automated software kit.&lt;/p&gt;

&lt;p&gt;Two days after submitting my initial report, the plot escalated. By running behavioral profiling across &lt;a href="http://dev.to"&gt;dev.to&lt;/a&gt;, I uncovered &lt;strong&gt;5 distinct accounts&lt;/strong&gt; (including handles like &lt;code&gt;devsupportss&lt;/code&gt; and &lt;code&gt;devsupporte&lt;/code&gt;) all leveraging the exact same automated comments.&lt;/p&gt;

&lt;p&gt;Simultaneously, a parallel infrastructure nodes emerged through independent URL shorteners (&lt;code&gt;tr.ee/dev-verified&lt;/code&gt;) pointing to a second active domain: &lt;a href="http://antibot.casa" rel="noopener noreferrer"&gt;&lt;code&gt;antibot.casa&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;When I extracted the raw source files for both &lt;a href="http://anti-bot.icu" rel="noopener noreferrer"&gt;&lt;code&gt;anti-bot.icu&lt;/code&gt;&lt;/a&gt; and &lt;a href="http://antibot.casa" rel="noopener noreferrer"&gt;&lt;code&gt;antibot.casa&lt;/code&gt;&lt;/a&gt;, I hit the ultimate architectural link. Deep within the components of both independent deployment instances sat an identical, explicit developer comment left inside the source tree:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="c"&gt;&amp;lt;!--Добавляем div для вставки дополнительного HTML-кода--&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Translated directly from Russian, it states: &lt;strong&gt;"Adding a div for inserting additional HTML code."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Forensic Interpretation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;While a shared language artifact in code doesn't provide concrete geopolitical attribution (as phishing kits are routinely bought, leaked, and shared across global dark web forums), it serves as a definitive architectural fingerprint. It proves with near-absolute certainty that both domains were generated by the exact same centralized, reusable multi-brand phishing kit deployment process.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Threat Remediation and Current Status&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Thanks to the rapid processing of the compiled evidence log, the infrastructure take-down was a complete success:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://anti-bot.icu" rel="noopener noreferrer"&gt;&lt;code&gt;anti-bot.icu&lt;/code&gt;&lt;/a&gt;: Officially suspended by PublicDomainRegistry under Case #53471908.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;supportdev&lt;/code&gt;: Account completely neutralized and now returns a clean &lt;code&gt;404 Not Found&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://antibot.casa" rel="noopener noreferrer"&gt;&lt;code&gt;antibot.casa&lt;/code&gt;&lt;/a&gt;: Taken down independently shortly after discovery.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Secondary Accounts&lt;/strong&gt;: Instantly caught by &lt;a href="http://dev.to"&gt;dev.to&lt;/a&gt;’s automated heuristics engines and forcibly locked down into inactive &lt;code&gt;spam_*&lt;/code&gt; handles.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Indicator of Compromise (IOC)&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Type&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Entity Status&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Forensic Link Confidence&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="http://anti-bot.icu" rel="noopener noreferrer"&gt;&lt;code&gt;anti-bot.icu&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Domain&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;SUSPENDED&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Confirmed (Primary landing zone)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="http://antibot.casa" rel="noopener noreferrer"&gt;&lt;code&gt;antibot.casa&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Domain&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;OFFLINE&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;High (Identical templates &amp;amp; code comments)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;supportdev&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;DEV Account&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;MUTED (404)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Confirmed (Source of spam vector)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;lt;!--Добавляем div...--&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Code Artifact&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;ACTIVE FINGERPRINT&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Confirmed (Shared kit software footprint)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This entire case served as a massive personal wake-up call. Sometimes walking away from a technical field like cybersecurity is the only way to remind yourself why you fell in love with it in the first place. It took an automated threat actor targeting my own platform content to give me that real-world Hollywood movie rush again.&lt;/p&gt;

&lt;p&gt;The hunt is ongoing. I am continuing to trace passive OSINT indicators, monitor certificate transparency chains, and log shortener vectors to track exactly where this kit attempts to re-surface its infrastructure next.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Stay safe, double-check your platform administration alerts, and never trust a support message that requires credit card data to verify your terminal workspace.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>osint</category>
      <category>phishing</category>
    </item>
    <item>
      <title>Is AI Making Us Dumber? 🤔</title>
      <dc:creator>Shreyansh Builds</dc:creator>
      <pubDate>Mon, 28 Sep 2026 06:27:02 +0000</pubDate>
      <link>https://dev.to/buildshreyansh/is-ai-making-us-dumber-3gpp</link>
      <guid>https://dev.to/buildshreyansh/is-ai-making-us-dumber-3gpp</guid>
      <description>&lt;p&gt;A few years ago, when I was just getting started with programming, I built a proper game using Pygame. It wasn't anything revolutionary, and it certainly wasn't going to win any awards, but I remember the process. I had to actually &lt;strong&gt;think&lt;/strong&gt;. How should the player move? How should collisions work? What happens when something hits something else? How should I structure the logic? Why isn't this thing working?&lt;/p&gt;

&lt;p&gt;I'd search through documentation, read things I didn't completely understand, try something, break something, debug it, change it, run it again, and eventually figure out what was wrong. Sometimes I'd spend hours solving something that, looking back, was probably a very simple problem.&lt;/p&gt;

&lt;p&gt;But the important part wasn't that I eventually wrote the code. &lt;strong&gt;I had to do the thinking required to get there.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And that's what has been bothering me lately.&lt;/p&gt;

&lt;p&gt;Not because AI can't do these things. It absolutely can. In many cases, it can do them faster than I can. And that's exactly where the problem gets interesting.&lt;/p&gt;

&lt;h2&gt;
  
  
  We used to do the thinking first
&lt;/h2&gt;

&lt;p&gt;When AI first started becoming a serious part of everyday software development, I think most of us viewed it primarily as a tool for &lt;strong&gt;executing tasks&lt;/strong&gt;. You still had to understand what you wanted, research the problem, go through documentation, figure out why something wasn't working, make decisions, and then ask the machine to help you implement it. AI was helping with the execution; the thinking was still largely ours.&lt;/p&gt;

&lt;p&gt;But that boundary has been moving.&lt;/p&gt;

&lt;p&gt;Today, I can describe an idea to an AI and have it research the problem, read documentation, decide on an approach, write the implementation, encounter an error, debug it, change the implementation, and try again. Suddenly, the entire process that used to require me to sit down and mentally wrestle with a problem can happen with a few prompts.&lt;/p&gt;

&lt;p&gt;That's incredible.&lt;/p&gt;

&lt;p&gt;It's also a little unsettling.&lt;/p&gt;

&lt;p&gt;Because we usually call this &lt;strong&gt;productivity&lt;/strong&gt;. And technically, it is. If I can produce the same result in two hours instead of ten, I've become more productive.&lt;/p&gt;

&lt;p&gt;But there's another ratio we don't really talk about:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Output produced vs. thinking performed.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;What happens to that ratio when we keep pushing more and more of the thinking onto AI?&lt;/p&gt;

&lt;h2&gt;
  
  
  The thing we don't measure
&lt;/h2&gt;

&lt;p&gt;Imagine two people building the same application. The first person spends ten hours building it. They read documentation, make architectural decisions, write code, encounter bugs, debug them, change their approach, and eventually finish.&lt;/p&gt;

&lt;p&gt;The second person gives the requirements to an AI agent. The agent researches the relevant libraries, writes most of the code, runs it, fixes the errors, and produces something usable in two hours.&lt;/p&gt;

&lt;p&gt;Who was more productive? Obviously, the second person — at least if we're measuring productivity by output divided by time.&lt;/p&gt;

&lt;p&gt;But did the second person learn as much? Did they exercise the same problem-solving ability? Did they develop the same intuition for recognizing bad architecture? Did they understand the same number of failure modes?&lt;/p&gt;

&lt;p&gt;Maybe. Maybe not.&lt;/p&gt;

&lt;p&gt;And that's the difficult part to measure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;We've become very good at measuring what AI helps us produce. We're not nearly as good at measuring what happens to the abilities we no longer need to exercise.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It's a bit like going to the gym and hiring someone else to lift the weights for you. You still got the weights moved. You just didn't get stronger.&lt;/p&gt;

&lt;p&gt;Obviously, thinking isn't as simple as muscle strength, and AI isn't literally doing all of our thinking for us. But the analogy raises an uncomfortable question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;If we constantly outsource a particular kind of thinking, do we eventually become worse at doing it ourselves?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  And this isn't just about coding
&lt;/h2&gt;

&lt;p&gt;This is where I think the conversation gets much bigger than software development. AI is slowly moving into almost every domain where humans perform cognitive work. Students can ask AI to explain an entire chapter, solve their homework, summarize a book, create flashcards, and even write their assignments. Writers can ask AI to research a topic, create an outline, generate a draft, and rewrite it. Designers can describe an idea and get a visual representation in seconds.&lt;/p&gt;

&lt;p&gt;Researchers can use AI to search through enormous amounts of information and summarize findings. Analysts can feed data into AI and ask it to find patterns. People can ask AI to write emails, make presentations, plan trips, analyze documents, explain complicated concepts, and make decisions between different options.&lt;/p&gt;

&lt;p&gt;And the technology is only getting better.&lt;/p&gt;

&lt;p&gt;The important part isn't that AI can now do these things. The important part is &lt;strong&gt;how much of the process we're willing to hand over to it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Because there's a difference between:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Help me do this."&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;and:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Do this for me."&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That difference might seem small.&lt;/p&gt;

&lt;p&gt;It isn't.&lt;/p&gt;

&lt;h2&gt;
  
  
  The convenience trap
&lt;/h2&gt;

&lt;p&gt;Let's take something extremely ordinary. Suppose you're trying to understand a new technical concept. Before AI, you might have searched for documentation, found three different explanations, rejected one because it was terrible, found another that was too advanced, watched a video, read some Stack Overflow answers, tried an example yourself, encountered an error, and gone back to the documentation.&lt;/p&gt;

&lt;p&gt;It was inefficient.&lt;/p&gt;

&lt;p&gt;It was also learning.&lt;/p&gt;

&lt;p&gt;Today, you can simply ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Explain this to me like I'm a beginner."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And you'll probably get a pretty good explanation immediately.&lt;/p&gt;

&lt;p&gt;That's fantastic.&lt;/p&gt;

&lt;p&gt;But here's the problem: the difficult part of learning something isn't always understanding the final explanation. Sometimes the difficult part is &lt;strong&gt;getting to the explanation yourself&lt;/strong&gt;. Searching, comparing, being confused, following the wrong path, realizing you're wrong, trying again, and connecting two seemingly unrelated pieces of information are all part of the process.&lt;/p&gt;

&lt;p&gt;That entire process is mentally expensive.&lt;/p&gt;

&lt;p&gt;And that's exactly why we want to avoid it.&lt;/p&gt;

&lt;p&gt;AI is incredibly good at removing that friction, which is precisely what makes it so useful — and potentially, precisely what makes it dangerous when we use it for everything.&lt;/p&gt;

&lt;h2&gt;
  
  
  We are optimizing for the wrong thing
&lt;/h2&gt;

&lt;p&gt;Modern technology has spent decades trying to remove friction from our lives, and we've gotten extremely good at it. We have calculators because doing arithmetic manually is slow. Search engines because looking through encyclopedias is slow. GPS because figuring out routes manually is slow. Autocorrect because typing everything perfectly is annoying.&lt;/p&gt;

&lt;p&gt;And now we have AI because thinking through certain tasks is slow.&lt;/p&gt;

&lt;p&gt;In isolation, none of these things are bad. In fact, they're incredible. But there's a subtle difference between removing &lt;strong&gt;unnecessary work&lt;/strong&gt; and removing &lt;strong&gt;useful mental effort&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If I use a calculator to multiply two large numbers, I'm probably not losing anything important. But if I use AI to solve every programming problem I encounter without ever trying to understand the problem myself, I'm not just saving time. I'm also skipping the mental exercise that comes with solving it.&lt;/p&gt;

&lt;p&gt;And unlike a calculator, AI doesn't just automate one narrow operation. It can increasingly handle entire chains of cognitive work.&lt;/p&gt;

&lt;p&gt;That's a very different kind of tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  The productivity paradox
&lt;/h2&gt;

&lt;p&gt;Here's the weird part: &lt;strong&gt;the better AI gets, the harder this problem becomes.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Imagine AI becomes so good that it can build an entire application from a few paragraphs. Why would I spend six hours learning a framework? Why would I read the documentation? Why would I debug the issue myself? Why would I understand how the system works internally?&lt;/p&gt;

&lt;p&gt;If AI can do it better and faster, the rational decision seems obvious:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let AI do it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And that's where I think the productivity conversation gets incomplete.&lt;/p&gt;

&lt;p&gt;There are actually two different outcomes.&lt;/p&gt;

&lt;h3&gt;
  
  
  More output 📈
&lt;/h3&gt;

&lt;p&gt;I can build more things, write more, research faster, automate more tasks, and learn certain things faster. That's genuinely valuable.&lt;/p&gt;

&lt;h3&gt;
  
  
  Less practice 📉
&lt;/h3&gt;

&lt;p&gt;I solve fewer problems myself, spend less time being stuck, read less documentation, make fewer decisions from first principles, encounter fewer failures, and spend less time figuring things out.&lt;/p&gt;

&lt;p&gt;And those things were never just obstacles.&lt;/p&gt;

&lt;p&gt;They were also &lt;strong&gt;practice&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;So we might end up in a strange situation where our &lt;strong&gt;output per hour keeps increasing while our independent problem-solving ability doesn't increase at the same rate — or perhaps even declines in some areas because we're practicing less.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I don't think we know yet exactly how large that effect will be.&lt;/p&gt;

&lt;p&gt;But I think it's worth taking seriously.&lt;/p&gt;

&lt;h2&gt;
  
  
  What happens when AI enters the decision-making loop?
&lt;/h2&gt;

&lt;p&gt;There's another step that worries me even more.&lt;/p&gt;

&lt;p&gt;Using AI to execute a decision is one thing. Using AI to &lt;strong&gt;make the decision itself&lt;/strong&gt; is another.&lt;/p&gt;

&lt;p&gt;Imagine I tell an AI:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Build me a web application."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It can generate the code. Fine.&lt;/p&gt;

&lt;p&gt;Now imagine I say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Decide what architecture I should use, which database I should choose, which libraries I should use, and how the system should be structured."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Now I've delegated part of the engineering judgment.&lt;/p&gt;

&lt;p&gt;Go one step further:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Research the market, figure out what product I should build, identify the target users, create the strategy, and build the MVP."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Now AI isn't just executing. It's participating in deciding &lt;strong&gt;what should be done in the first place&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;We're entering a world where a small team — or even one person — can use AI systems to perform work that previously required entire groups of people. You can build companies with AI, create products with AI, produce marketing material with AI, conduct research with AI, and automate operations with AI.&lt;/p&gt;

&lt;p&gt;That's an incredible expansion of individual capability.&lt;/p&gt;

&lt;p&gt;But it also means we're increasingly allowing machines to participate in the parts of the process that used to require human judgment.&lt;/p&gt;

&lt;p&gt;And I don't think we should blindly assume that this has no cost.&lt;/p&gt;

&lt;h2&gt;
  
  
  The dependency loop 🔄
&lt;/h2&gt;

&lt;p&gt;This is the part that I find the most interesting.&lt;/p&gt;

&lt;p&gt;Imagine this happens gradually: &lt;strong&gt;AI gets better → we use it more → we practice certain skills less → those skills become less familiar → doing the task manually starts feeling harder → we rely on AI even more → AI gets better again.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And the cycle continues.&lt;/p&gt;

&lt;p&gt;Eventually, something that you &lt;strong&gt;could&lt;/strong&gt; do yourself starts feeling unnecessarily difficult because you haven't exercised that ability in a long time.&lt;/p&gt;

&lt;p&gt;That's what I mean when I say:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Are we slowly getting dumber?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not necessarily in the sense that our intelligence is disappearing. But perhaps we're becoming less capable of operating independently in areas where we've stopped practicing.&lt;/p&gt;

&lt;p&gt;There's an important distinction there.&lt;/p&gt;

&lt;h2&gt;
  
  
  But should we just stop using AI?
&lt;/h2&gt;

&lt;p&gt;Absolutely not.&lt;/p&gt;

&lt;p&gt;At least, I don't think that's the answer.&lt;/p&gt;

&lt;p&gt;It would be ridiculous to argue that we should go back to doing everything manually just because doing things manually requires more thinking. We didn't stop using calculators because people were worried about arithmetic skills. We didn't stop using search engines because people were worried about memorization. We didn't stop using compilers because programmers might forget how to write machine code.&lt;/p&gt;

&lt;p&gt;Technology is supposed to make us more capable.&lt;/p&gt;

&lt;p&gt;And AI can absolutely do that.&lt;/p&gt;

&lt;p&gt;The question isn't:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Should we use AI?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The better question is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"What should we use AI for?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;There are tasks where I have no problem handing things over completely. If I need to transform a large amount of repetitive data, automate some boring task, or generate a first draft that I will heavily modify, why would I waste hours doing it manually?&lt;/p&gt;

&lt;p&gt;That's exactly what tools are for.&lt;/p&gt;

&lt;p&gt;But there are other things where I think the struggle itself is valuable: learning, problem-solving, writing, research, designing systems, making decisions, and understanding why something works.&lt;/p&gt;

&lt;p&gt;And sometimes, I think we should deliberately &lt;strong&gt;not&lt;/strong&gt; take the shortcut.&lt;/p&gt;

&lt;h2&gt;
  
  
  Maybe we need an "AI gym" 🏋️
&lt;/h2&gt;

&lt;p&gt;Here's the funny thing: we already understand this concept in other parts of our lives.&lt;/p&gt;

&lt;p&gt;If you want to become physically stronger, you don't just buy a machine that lifts weights for you. You exercise. If you want to become better at playing an instrument, you don't listen to someone else play every song for you. You practice.&lt;/p&gt;

&lt;p&gt;If you want to become better at solving problems, perhaps you also need to actually &lt;strong&gt;solve problems&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Maybe we need the equivalent of an AI gym — a place where we deliberately practice doing things without AI.&lt;/p&gt;

&lt;p&gt;Not because AI is evil. Not because humans are inherently better. But because some abilities are worth maintaining.&lt;/p&gt;

&lt;p&gt;Maybe that means occasionally reading documentation without asking an AI to summarize it, trying to debug a problem yourself before asking for the answer, writing something from scratch before asking AI to improve it, researching a topic yourself before asking AI to summarize the research, or trying to design a solution before asking AI to design one for you.&lt;/p&gt;

&lt;p&gt;And then using AI afterward as a second opinion, a reviewer, a teacher, or an accelerator.&lt;/p&gt;

&lt;p&gt;That feels very different from simply asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Do this for me."&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  So, is AI making us dumber?
&lt;/h2&gt;

&lt;p&gt;I don't know.&lt;/p&gt;

&lt;p&gt;And I don't think anyone can confidently answer that question yet.&lt;/p&gt;

&lt;p&gt;AI is still relatively new, and the long-term effects of widespread cognitive outsourcing are difficult to measure. Maybe we'll adapt. Maybe our definition of useful intelligence will change. Maybe AI will free humans from boring cognitive work and allow us to focus on more creative and meaningful problems.&lt;/p&gt;

&lt;p&gt;I hope that's what happens.&lt;/p&gt;

&lt;p&gt;But I also think there's a risk that we become so good at &lt;strong&gt;getting answers&lt;/strong&gt; that we forget how to &lt;strong&gt;find them&lt;/strong&gt;. So good at generating things that we forget how to create. So good at asking AI to solve problems that being stuck with a problem starts feeling unbearable.&lt;/p&gt;

&lt;p&gt;And maybe that's the thing we should be careful about.&lt;/p&gt;

&lt;p&gt;Because AI becoming smarter isn't necessarily the problem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The problem would be if we became less willing — or less capable — of thinking for ourselves.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I still use AI. A lot. And honestly, I don't see myself stopping.&lt;/p&gt;

&lt;p&gt;But sometimes, when I find myself about to ask AI to solve something, I try to stop for a moment and ask myself:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Do I actually need help with this, or am I just avoiding the thinking?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Maybe that's the balance we're going to have to figure out.&lt;/p&gt;

&lt;p&gt;Because the goal of AI shouldn't be to make humans unnecessary.&lt;/p&gt;

&lt;p&gt;It should be to make humans &lt;strong&gt;more capable&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;And if we're not careful, we might optimize so hard for productivity that we forget to ask what capabilities we're trading for it.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>What Happens Before a Network Packet Leaves Your Device?</title>
      <dc:creator>Shreyansh Builds</dc:creator>
      <pubDate>Thu, 17 Sep 2026 17:11:44 +0000</pubDate>
      <link>https://dev.to/buildshreyansh/what-happens-before-a-network-packet-leaves-your-device-1c1i</link>
      <guid>https://dev.to/buildshreyansh/what-happens-before-a-network-packet-leaves-your-device-1c1i</guid>
      <description>&lt;p&gt;Have you ever wondered what actually goes on behind the scenes when we type &lt;code&gt;youtube.com&lt;/code&gt; and hit Enter?&lt;/p&gt;

&lt;p&gt;Let's remove the whole internet for a moment.&lt;/p&gt;

&lt;p&gt;Forget about all the routers, cables, data centers and servers. Let's just focus on your laptop.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How does a request actually leave your laptop and enter the universe of the internet?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's what we're going to look at.&lt;/p&gt;

&lt;p&gt;And don't worry, we're not going to treat a "server" like it's some magical computer sitting in a secret room somewhere. A server can literally be another computer running some software and waiting for requests.&lt;/p&gt;

&lt;p&gt;The same goes for a lot of the other things we'll encounter — they're mostly just different pieces of software and hardware doing specific jobs.&lt;/p&gt;

&lt;p&gt;So let's start with something familiar.&lt;/p&gt;

&lt;h2&gt;
  
  
  Let's open YouTube
&lt;/h2&gt;

&lt;p&gt;Let's take &lt;code&gt;youtube.com&lt;/code&gt; as our example — one of the most used sites on the internet.&lt;/p&gt;

&lt;p&gt;When we type &lt;code&gt;youtube.com&lt;/code&gt;, the browser actually interprets this request roughly as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;https&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;//www.youtube.com/&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or, conceptually:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;www&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;youtube&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;com&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;443&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The first one might be familiar to a lot of you people.&lt;/p&gt;

&lt;p&gt;But what the hell is the second one?&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;443&lt;/code&gt; is the &lt;strong&gt;port&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;By default, when we use HTTPS, port &lt;code&gt;443&lt;/code&gt; is used. There's another one — the less secure guy — HTTP, which traditionally runs on port &lt;code&gt;80&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;But wait, what exactly is a port?&lt;/p&gt;

&lt;p&gt;If you're wondering what ports are and how they work, well, that would make another article.&lt;/p&gt;

&lt;p&gt;For simplicity, there is something called an &lt;strong&gt;IP address&lt;/strong&gt;, which is like the address of a device, and ports are like small rooms inside that device.&lt;/p&gt;

&lt;p&gt;A device can be running many different network applications at the same time. One application might be waiting for connections on one port, while another application is using a different port.&lt;/p&gt;

&lt;p&gt;So when we say:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="mf"&gt;93.184&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mf"&gt;216.34&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;443&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;we're essentially saying:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I want to communicate with port &lt;code&gt;443&lt;/code&gt; on the device having IP address &lt;code&gt;93.184.216.34&lt;/code&gt;."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The IP address helps us identify &lt;strong&gt;which device we're trying to reach&lt;/strong&gt;, while the port helps identify &lt;strong&gt;which network service on that device we're trying to talk to&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;And just like we have domain names because remembering IP addresses for every website would be a nightmare, we also have names for commonly used network protocols.&lt;/p&gt;

&lt;p&gt;HTTP and HTTPS are two of them, but there are many others.&lt;/p&gt;

&lt;p&gt;DNS is used for translating domain names into IP addresses. SMTP is used for sending email. FTP is used for transferring files.&lt;/p&gt;

&lt;p&gt;There are many more protocols, each designed for different kinds of communication.&lt;/p&gt;

&lt;p&gt;If you're wondering how all these protocols actually work, well, that can make several more articles.&lt;/p&gt;

&lt;p&gt;For now, let's stay with our YouTube example.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does the browser actually want?
&lt;/h2&gt;

&lt;p&gt;Now that we have a destination and a protocol, what is the browser actually trying to communicate?&lt;/p&gt;

&lt;p&gt;At the HTTP level, a simplified request could look something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="nf"&gt;GET&lt;/span&gt; &lt;span class="nn"&gt;/&lt;/span&gt; &lt;span class="k"&gt;HTTP&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="m"&gt;1.1&lt;/span&gt;
&lt;span class="na"&gt;Host&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;www.youtube.com&lt;/span&gt;
&lt;span class="na"&gt;User-Agent&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Mozilla/5.0&lt;/span&gt;
&lt;span class="na"&gt;Accept&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;text/html,application/xhtml+xml&lt;/span&gt;
&lt;span class="na"&gt;Accept-Language&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;en-US,en;q=0.9&lt;/span&gt;
&lt;span class="na"&gt;Accept-Encoding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;gzip, deflate, br&lt;/span&gt;
&lt;span class="na"&gt;Connection&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;keep-alive&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, what the hell are we looking at here?&lt;/p&gt;

&lt;p&gt;This is simply the browser describing what it wants from the server.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;GET&lt;/code&gt; is the HTTP method. It basically tells the server that we want to retrieve something.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;/&lt;/code&gt; represents the root resource of the website.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;HTTP/1.1&lt;/code&gt; tells the server which version of HTTP is being used.&lt;/p&gt;

&lt;p&gt;And then we have:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;Host&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;www&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;youtube&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;com&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;which tells the server which website we're trying to access.&lt;/p&gt;

&lt;p&gt;There are also several other headers here. They can carry information about things like the browser, accepted content types, compression, language, cookies, caching and so on.&lt;/p&gt;

&lt;p&gt;If this looks like a lot of information for something as simple as opening a website, don't worry about it.&lt;/p&gt;

&lt;p&gt;At this level, the important thing is simply that the browser has some data it wants to send.&lt;/p&gt;

&lt;p&gt;And eventually, &lt;strong&gt;that data is going to become part of a network packet.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not a magical internet object.&lt;/p&gt;

&lt;p&gt;Just data, with some additional information attached to it so that the different parts of the network know what to do with it.&lt;/p&gt;

&lt;p&gt;But there is a problem.&lt;/p&gt;

&lt;p&gt;The browser can't simply take this HTTP request and throw it at the Wi-Fi adapter.&lt;/p&gt;

&lt;p&gt;There are several things that need to happen first.&lt;/p&gt;

&lt;p&gt;That's where our laptop's operating system and networking stack enter the picture.&lt;/p&gt;

&lt;h2&gt;
  
  
  Before the packet leaves
&lt;/h2&gt;

&lt;p&gt;So, the next time you type a URL into your browser, remember that the request doesn't magically jump from the browser into the internet.&lt;/p&gt;

&lt;p&gt;It starts as something very simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;data that an application wants to send somewhere.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;From there, different parts of your computer work together to figure out where that data needs to go, how it should be packaged, and how it can eventually be handed over to the network.&lt;/p&gt;

&lt;p&gt;And all of this happens before the packet ever leaves your device.&lt;/p&gt;

&lt;p&gt;What looks like a simple action — typing &lt;code&gt;youtube.com&lt;/code&gt; and hitting Enter — is actually your browser, operating system, networking stack and network hardware quietly working together in a fraction of a second.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The internet may look like this huge, complicated thing from the outside. But when you zoom in, it's mostly a collection of smaller, understandable pieces doing their jobs and passing data between each other.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And that, to me, is what makes networking interesting.&lt;/p&gt;

</description>
      <category>network</category>
      <category>networking</category>
      <category>beginners</category>
      <category>discuss</category>
    </item>
  </channel>
</rss>
