<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Ron Stoner</title>
    <description>Ron Stoner is a hacker, security engineer, privacy advocate, and a practitioner of self-sovereign technologies.
</description>
    <link>https://ron.stoner.com/</link>
    <atom:link href="https://ron.stoner.com/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Thu, 07 May 2026 17:36:59 +0000</pubDate>
    <lastBuildDate>Thu, 07 May 2026 17:36:59 +0000</lastBuildDate>
    <generator>Jekyll v3.10.0</generator>
    
      <item>
        <title>How I Won a Championship That Doesn&apos;t Exist</title>
        <description>&lt;p&gt;&lt;strong&gt;Or How I Learned To Poison The LLM Supply Chain&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I am the reigning 6 Nimmt! World Champion. I won the title in Munich in January 2025 defeating players from over twenty countries in what I later described to reporters as &lt;em&gt;“the toughest competition I’ve ever faced.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/ronaldstoner/ron/gh-pages/images/6nimmt/champion.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;6nimmt.com&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In reality, &lt;strong&gt;there is no 6 Nimmt! World Championship&lt;/strong&gt;. I have &lt;strong&gt;never&lt;/strong&gt; been to Munich. The quote is something I wrote in about thirty seconds while a Wikipedia page was loading.&lt;/p&gt;

&lt;p&gt;This is the story of how I manufactured that title, got it quoted back to me by multiple frontier LLMs, and what I think it means for the trust we’re about to put into AI systems that read the internet on our behalf.&lt;/p&gt;

&lt;h2 id=&quot;the-experiment&quot;&gt;The Experiment&lt;/h2&gt;

&lt;p&gt;Everyone in security is talking about poisoned LLM models. The research is real and it matters. Anthropic’s own &lt;a href=&quot;https://arxiv.org/abs/2401.05566&quot;&gt;sleeper agents paper&lt;/a&gt; showed that backdoors can survive safety training and a follow up showed that as few as ~250 poisoned documents can compromise models across a wide range of scales. But model training time attacks and data poisoning require you to get malicious content into someone’s training corpus months or years before the payoff. The GPUs need time to crunch the data, and you need to get through filters, verification, and reinforcement routines.&lt;/p&gt;

&lt;p&gt;I wanted to test the cheaper, easier, and faster version of this same attack, but in a different way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let’s poison the retrieval layer!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every frontier LLM with web search grounds its answers in whatever retreival ranks highest for a given query. The trust model there is the same trust model Google has in that “this site looks authoritative” but with the same Achilles heel - the model cannot tell a real source from one I registered last Tuesday. My hypothesis was that a two step campaign (one seeded website,  plus one Wikipedia edit citing it) could launder a completely fabricated fact (my championship) through an LLM on a question where the model had no prior knowledge.&lt;/p&gt;

&lt;h2 id=&quot;the-approach&quot;&gt;The Approach&lt;/h2&gt;

&lt;p&gt;I picked the game &lt;a href=&quot;https://en.wikipedia.org/wiki/6_Nimmt!&quot;&gt;6 Nimmt!&lt;/a&gt; for three reasons:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;It is a real game (1994, Wolfgang Kramer, Amigo Spiele, known in board and card game circles)&lt;/li&gt;
  &lt;li&gt;There is no actual world championship to my knowledge. I wasn’t contradicting a known fact, I was simply filling a vacuum&lt;/li&gt;
  &lt;li&gt;The query space is narrow and specific. “Who is the 6 Nimmt! world champion” returns maybe ten meaningful sources on the entire internet. A single well placed edit would dominate the result set&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The payload was modest and simple:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;One domain&lt;/strong&gt;: &lt;a href=&quot;https://6nimmt.com&quot;&gt;6nimmt.com&lt;/a&gt;. About $12 USD. Cheap!&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;One press release&lt;/strong&gt;: A short LLM-generated announcement of my victory complete with quotes and a “confetti rained down, the crowd erupted” closer that reads exactly like the slop you’d expect from an automated press desk&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;One Wikipedia edit&lt;/strong&gt;: A paragraph added to the 6 Nimmt! article announcing the championship with a single citation pointing back to 6nimmt.com&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The whole thing took maybe twenty minutes.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/ronaldstoner/ron/gh-pages/images/6nimmt/wikipedia.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;I’m sorry, Wikipedia&lt;/em&gt;&lt;/p&gt;

&lt;h2 id=&quot;trust-laundering&quot;&gt;Trust Laundering&lt;/h2&gt;

&lt;p&gt;This is the part that really matters.&lt;/p&gt;

&lt;p&gt;A reader arriving at the Wikipedia article sees a paragraph with a citation. Citations are like the currency of Wikipedia trust. They are the reason we treat it as a reference rather than a message board. My fraudulent citation points at 6nimmt.com, which carries a press release making the same exact claim the Wikipedia paragraph summarizes. To a casual reader the two sources agree.&lt;/p&gt;

&lt;p&gt;To an LLM it’s the same thing. The model sees the Wikipedia article (high trust), sees the citation (reinforces the trust), and sees the independent looking press release (corroboration). Two signals pointing in the same direction that on first glance appear to be legitimate.&lt;/p&gt;

&lt;p&gt;Except they’re the same exact signal. My signal. Wikipedia is quoting my site. My site has no independent corroboration. It’s totally made up. &lt;strong&gt;The whole house of cards rests on a $12 domain registration I did while drinking coffee.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the circular citation pattern, and it’s one of the most under discussed attacks on the “retrieval augmented generation” trust model. It doesn’t require compromising Wikipedia’s infrastructure with l33t hacker skills. It doesn’t require social engineering an editor. You just simply write the source yourself, cite yourself on Wikipedia, and let the trust flow downstream. Easy peasy!&lt;/p&gt;

&lt;h2 id=&quot;the-test&quot;&gt;The Test&lt;/h2&gt;

&lt;p&gt;I asked a few LLMs a simple question:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Can you tell me who the 6nimmt world champion is?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/ronaldstoner/ron/gh-pages/images/6nimmt/omg1.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;Strike 1&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/ronaldstoner/ron/gh-pages/images/6nimmt/omg2.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;Strike 2&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/ronaldstoner/ron/gh-pages/images/6nimmt/omg3.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;Strike 3 - You’re out&lt;/em&gt;&lt;/p&gt;

&lt;h2 id=&quot;why-this-is-a-bigger-deal-than-it-looks&quot;&gt;Why This Is A Bigger Deal Than It Looks&lt;/h2&gt;

&lt;p&gt;There are three separate failure modes here that stack.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. The retrieval layer (immediately)&lt;/strong&gt; Any LLM that grounds answers in web search inherits the trustworthiness of whatever ranks for a given query. SEO poisoning has existed for as long as search has existed. We’re now piping those results directly into the context window of systems that generate confident sounding replies from them. The attack surface is not hypothetical, it’s the default case.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. The model training corpus layer (months to years)&lt;/strong&gt; Wikipedia is in almost every major pretraining corpus. If my edit survives long enough (and it has since early 2025), the fake championship gets absorbed into the weights of every frontier model trained after the scrape. One edit, N models, effectively permanent, immortality acheived. Even if the Wikipedia edit is reverted later any model trained on the pre-revert dump still carries my legacy. The cleanup problem for corpus poisoning is genuinely unsolved as of 2026.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. The agent layer (where the money is)&lt;/strong&gt; Chat models producing bad information is a reputational problem. Agents with tool access producing bad actions is a security problem. “Look up our vendor’s policy on X and act accordingly” is increasingly how AI agents are deployed and poisoning the retrieved source lets an attacker specify the action. If you’re deploying agents against external content without some source or verification controls then you are giving that attacker permissions on your infrastructure.&lt;/p&gt;

&lt;h2 id=&quot;mitigations&quot;&gt;Mitigations&lt;/h2&gt;

&lt;p&gt;For individuals using LLMs with retrieval capabilities:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Treat single source claims as uncorroborated regardless of how authoritative the single source looks&lt;/li&gt;
  &lt;li&gt;Parallel phrasing across sources is a signature of derivation, not corroboration. Use my example and think like an attacker&lt;/li&gt;
  &lt;li&gt;Self referential Wikipedia citations should move your trust needle toward zero&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For LLM providers and researchers:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Provenance surfacing should be a first class product feature instead of a footnote. Show me the independence and scoring of sources, not just their count or links to the reference&lt;/li&gt;
  &lt;li&gt;Recent Wikipedia edits on lower traffic articles deserve skepticism proportional to their niche and novelty especially when the citations are to newly registered domains&lt;/li&gt;
  &lt;li&gt;Training pipelines should include heuristic filters for recently added Wikipedia content with suspicious citation patterns. “Added in the last N days, cites only a single external source, that source’s domain was registered within the same window” is an easily detectable pattern&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For Wikipedia itself:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;The “reliable sources” policy needs to grapple with a new world where LLM assisted vandalism can produce plausible press releases at the click of a button. Citation only to a single source registered within an edit window is a discoverable pattern for Wikipedia as well.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;The thing LLMs are worst at detecting is the thing they’re designed to do, which is trust text and resources. The web was already being poisoned for search and link ranking long before LLMs existed. We are now plugging generative models directly into that poisoned pipeline and asking them to reason confidently about “truth” on our behalf. The answer is not “the model will figure it out”, as the model cannot tell a real source from one I registered last Tuesday. Or how many R’s are actually in the word “strawberry”.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This attack and test was a $12 domain, a single Wikipedia edit, and about twenty minutes of my time.&lt;/strong&gt; Scale that up with a motivated adversary, a handful of seeded domains, a coordinated edit campaign across a dozen low traffic articles, and the attack surface gets interesting very quickly. Think nation states. Think politics. Think vital life saving and survival information.&lt;/p&gt;

&lt;p&gt;This is where I think the next generation of disinformation and supply chain attacks lives. Not in compromising models at training time, but in compromising the information substrate the models retrieve at inference time.&lt;/p&gt;

&lt;p&gt;The championship does not exist, sadly. But the trust pattern that made it briefly exist in an LLM’s answer absolutely does, and we should take it seriously before it’s being used for something that matters.&lt;/p&gt;

&lt;p&gt;If a tree falls in the forest, and no one is around, does it make a sound?&lt;/p&gt;

&lt;p&gt;If a championship is won via an LLM, and no one is around, does that make it illegitimate?&lt;/p&gt;

&lt;h2 id=&quot;follow-up&quot;&gt;Follow Up&lt;/h2&gt;
&lt;p&gt;Within minutes of me publishing this article, the Wikipedia entry has been removed - and rightly so. Here is the real trophy.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/ronaldstoner/ron/gh-pages/images/6nimmt/wiki-removed.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
</description>
        <pubDate>Fri, 24 Apr 2026 07:00:00 +0000</pubDate>
        <link>https://ron.stoner.com/how-i-won-a-championship-that-doesnt-exist/</link>
        <guid isPermaLink="true">https://ron.stoner.com/how-i-won-a-championship-that-doesnt-exist/</guid>
        
        
      </item>
    
      <item>
        <title>The History of Stoner.com</title>
        <description>&lt;h2 id=&quot;from-pipeline-simulators-to-self-sovereignty&quot;&gt;From Pipeline Simulators to Self-Sovereignty&lt;/h2&gt;

&lt;p&gt;Every domain name has a story and most of those stories have been lost. 
Domains from the past that were registered, parked, and since forgotten. 
An entire generation of internet history lost to the perils of time and corrupted server backups.&lt;/p&gt;

&lt;p&gt;Some domains though have lived full lives, passing through the hands of engineers, corporations, mergers, and acquisitions before ending up somewhere no one could have predicted.&lt;/p&gt;

&lt;p&gt;This is the history of &lt;strong&gt;stoner.com&lt;/strong&gt;. A domain that has been alive since the earliest days of the commercial internet, and one that I call home.&lt;/p&gt;

&lt;h2 id=&quot;19931997-the-pipeline-era&quot;&gt;1993–1997: The Pipeline Era&lt;/h2&gt;

&lt;p&gt;The domain stoner.com first appeared in internet registry records in &lt;strong&gt;1993&lt;/strong&gt;, making it &lt;strong&gt;older than most of the world wide web&lt;/strong&gt; as we know it.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Google wouldn’t exist for another five years&lt;/li&gt;
  &lt;li&gt;Altavista was the search engine that actually gave decent results&lt;/li&gt;
  &lt;li&gt;Amazon wouldn’t start selling books for another year&lt;/li&gt;
  &lt;li&gt;Mosaic and Netscape Navigator were the browsers of the future&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This was the internet I cut my teeth on and remember fondly. Plaintext webpages, web rings, animated GIFs, guestbooks, and so many sites “under construction”. Hours lost browsing “random sites” to see what one could find, learn, and participate in.&lt;/p&gt;

&lt;p&gt;The domain in those early days belonged to &lt;strong&gt;Stoner Associates, Inc. (SAI)&lt;/strong&gt;, a software company based in Carlisle, Pennsylvania. Stoner Associates had nothing to do with cannabis culture or firearms to the surprise of many. They built pipeline simulation and network modeling software for the natural gas, water, electric, and petroleum industries. The company had been around since at least the mid &lt;strong&gt;1980s&lt;/strong&gt;, steadily acquiring smaller firms and building out an enterprise software suite used by utilities around the world.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/ronaldstoner/ron/gh-pages/images/stonercom/stoner_sps1.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://raw.githubusercontent.com/ronaldstoner/ron/gh-pages/images/stonercom/stoner_sps2.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;Stoner Pipeline Simulator&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The first Wayback Machine snapshot of the site dates to &lt;strong&gt;July 22, 1997&lt;/strong&gt;. At the time, Stoner Associates was hosting the &lt;strong&gt;Pipeline Simulation Interest Group (PSIG)&lt;/strong&gt; homepage on the domain. PSIG was a niche professional organization founded in &lt;strong&gt;1969&lt;/strong&gt;, dedicated to &lt;strong&gt;&lt;em&gt;exciting&lt;/em&gt;&lt;/strong&gt; things like advancing pipeline modeling and simulation. Their annual meetings drew about 130 attendees comprised of gas company engineers, oil industry consultants, and academics from around the globe. Their agenda was to discuss transient flow dynamics, two-phase flow, optimization techniques in a characteristically “unstructured, informal manner”, and all things gas and pipelines.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/ronaldstoner/ron/gh-pages/images/stonercom/1997-jul.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;stoner.com circa 1997&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The page was pure early &lt;strong&gt;1990s&lt;/strong&gt; web with plain HTML, no CSS to speak of, a long list of hyperlinks to organizations like the American Gas Association, Chevron Pipeline Company, the Office of Pipeline Safety, and a contact directory. The treasurer’s contact was listed at the bottom — Donald W. Schroeder Jr., Stoner Associates, Inc., P.O. Box 86, Carlisle, PA 17013 with his email at &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;schroed@stoner.com&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/ronaldstoner/ron/gh-pages/images/stonercom/1997-treasurer.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;It was a simpler time and a simpler internet. Some would say, a better and more free internet.&lt;/p&gt;

&lt;h2 id=&quot;late-19971999-severn-trent-takes-over&quot;&gt;Late 1997–1999: Severn Trent Takes Over&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/heroes/1997-dec.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;Severn Trent - 1997&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;By the end of &lt;strong&gt;1997&lt;/strong&gt;, the site transitioned to showcase the &lt;strong&gt;Severn Trent Systems&lt;/strong&gt; group of companies. Severn Trent, a UK-based utility conglomerate, had absorbed Stoner Associates as one of three business units alongside Severn Trent Systems (US) and STS (UK).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/ronaldstoner/ron/gh-pages/images/stonercom/1998-dec.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;Severn Trent - 1999&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The site described over 500 employees across offices in Houston, Carlisle, Phoenix, and Birmingham, England. The messaging was enterprise software through and through with taglines such as “SolutionSuite,” “world-class customer information systems,” and “network modeling products.” A timeline of acquisitions painted the picture of a company growing through consolidation.&lt;/p&gt;

&lt;p&gt;By 1999 the site had received fresh branding and added a fifth office in Swindon, England. Stoner Associates acquired Marshall Consulting Inc. for GIS integration services and entered into official business partnerships with seven GIS vendors. The company boasted that 90 percent of the US gas distribution market was served by utilities running Stoner Associates software products.&lt;/p&gt;

&lt;h2 id=&quot;20002003-rebrands-on-rebrands&quot;&gt;2000–2003: Rebrands on Rebrands&lt;/h2&gt;

&lt;p&gt;The early 2000s brought the kind of corporate identity churn that defined the era. The site went through multiple rebrands while still under the Severn Trent umbrella. It had a refreshed look in &lt;strong&gt;2000&lt;/strong&gt; and another in &lt;strong&gt;2001&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/ronaldstoner/ron/gh-pages/images/stonercom/2002-apr.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;Advantica Stoner - circa Late 2001/2002&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In &lt;strong&gt;2001&lt;/strong&gt; Stoner Associates was acquired by Advantica, creating &lt;strong&gt;Advantica Stoner&lt;/strong&gt;. The company moved its Pennsylvania office to Mechanicsburg later on in &lt;strong&gt;2006&lt;/strong&gt;. This will be important later in my story.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/ronaldstoner/ron/gh-pages/images/stonercom/2002-advantica1.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://raw.githubusercontent.com/ronaldstoner/ron/gh-pages/images/stonercom/2002-advantica2.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;By &lt;strong&gt;April 2002&lt;/strong&gt;, the domain had fully transitioned to the Advantica Stoner branding while still promoting products like SynerGEE Gas, SynerGEE Water, SynerGEE Electric, and the ProtectionDB system.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/ronaldstoner/ron/gh-pages/images/stonercom/2003-oct.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;Advantica - circa 2003&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;By &lt;strong&gt;August 2003&lt;/strong&gt;, “Advantica Stoner” was trimmed down to just &lt;strong&gt;Advantica&lt;/strong&gt;, and the company pushed visitors toward &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;advantica.biz&lt;/code&gt;. Another redesign followed in October under the Advantica brand.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/ronaldstoner/ron/gh-pages/images/stonercom/2004-mar.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;Firewall Errors - circa 2004&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Then came the firewall errors. In &lt;strong&gt;March 2004&lt;/strong&gt;, the site went down with a “FW-1 at heat” error indicating a Check Point firewall was overloaded or misconfigured. The site stayed broken for roughly around one to two months before coming back online in May, only to hit another denial error in June. Enterprise IT was an evolving industry at the time and monitoring, response, and remediation were not as robust as they are today. A lot of times one would only know something was down or there was an outage due to a friend telling them “Hey, I tried to get to your website yesterday and couldn’t.”&lt;/p&gt;

&lt;h2 id=&quot;20052010-the-quiet-years&quot;&gt;2005–2010: The Quiet Years&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;December 2005&lt;/strong&gt; brought a cleaner redesign. Less Flash, more substance. For those who weren’t there, Adobe Flash was everywhere in the early to mid 2000s. It was how you got animations, interactive menus, video players, and anything that looked cooler than plain HTML onto a webpage. Entire sites were built in Flash. It was the standard for anything that needed to move or look polished.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/ronaldstoner/ron/gh-pages/images/stonercom/2006-jan.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;stoner.com - circa 2005/2006&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The problem was Flash was a resource hog, a security nightmare, and completely invisible to search engines. It didn’t work on mobile when smartphones started taking off, and Apple’s decision to block Flash on the iPhone in &lt;strong&gt;2010&lt;/strong&gt; was the beginning of the end. Steve Jobs publicly called it out for its poor performance and security vulnerabilities, which was the opposite take of most at the time. HTML5 and other technologies eventually replaced everything Flash could do natively in the browser with no plugins required. Adobe officially killed Flash somewhere around &lt;strong&gt;2020&lt;/strong&gt;. So stoner.com was moving in the right direction by stripping Flash out.&lt;/p&gt;

&lt;p&gt;The site’s footer proudly declared:
&lt;img src=&quot;https://raw.githubusercontent.com/ronaldstoner/ron/gh-pages/images/stonercom/2006-jun.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;“This website is best viewed in Internet Explorer version 6.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This was a timestamp of a different era entirely. Microsoft Internet Explorer dominated the web browser market for years. At its peak in the early &lt;strong&gt;2000s&lt;/strong&gt; it held over 90% of the market share. It came bundled with the Windows operating system and for most people this &lt;em&gt;was&lt;/em&gt; the internet. That started changing when Mozilla Firefox showed up and gave people a real alternative with features like tabbed browsing, better standards, and extensions. By the time Microsoft finally put IE out of its misery in &lt;strong&gt;2022&lt;/strong&gt;, it was a joke (and had been for some time). But back then in &lt;strong&gt;2005&lt;/strong&gt;, optimizing your site for IE6 was how it was done.&lt;/p&gt;

&lt;p&gt;From &lt;strong&gt;2007 through 2010&lt;/strong&gt;, the site was essentially dormant. Two minor content updates in &lt;strong&gt;2007&lt;/strong&gt;, two in &lt;strong&gt;2008&lt;/strong&gt;, and then nothing at all in &lt;strong&gt;2009&lt;/strong&gt; and &lt;strong&gt;2010&lt;/strong&gt;. The domain was alive, but just barely. It is unknown if the domain was owned by Advantica at this time, or if a new owner had taken over (it looks like an acquisition happened sometime in &lt;strong&gt;2007&lt;/strong&gt;).&lt;/p&gt;

&lt;h2 id=&quot;20112013-gl-noble-denton&quot;&gt;2011–2013: GL Noble Denton&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/ronaldstoner/ron/gh-pages/images/stonercom/2011-feb.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;GL Noble Denton- circa 2011&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In &lt;strong&gt;February 2011&lt;/strong&gt;, new ownership had announced itself and the site was to follow. &lt;strong&gt;GL Noble Denton&lt;/strong&gt; acquired the software business and rebranded the site entirely. Social sharing icons appeared such as Twitter, Facebook, Digg, Google, Yahoo, and Live which was indicative of the exploding social web circa &lt;strong&gt;2011&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/ronaldstoner/ron/gh-pages/images/stonercom/2011-socials.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;The start of social sharing&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;GL Noble Denton positioned themselves as offering “a comprehensive portfolio of software solutions across the oil and gas sector,” covering safety, performance, and asset integrity. The site served this corporate purpose through &lt;strong&gt;2012&lt;/strong&gt; providing content and redirects to their main domain.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/ronaldstoner/ron/gh-pages/images/stonercom/2013-may.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;By &lt;strong&gt;2013&lt;/strong&gt;, any mention of “Stoner” had been scrubbed from the site entirely. The pipeline simulation legacy of Stoner Associates was fading into corporate archaeology. This is also around the time I started monitoring the site and checking in regularly with the owners to see if they would be interested in a potential sale. No luck on that front in &lt;strong&gt;2013&lt;/strong&gt;.&lt;/p&gt;

&lt;h2 id=&quot;20142017-dnv-gl-and-the-merger-void&quot;&gt;2014–2017: DNV GL and the Merger Void&lt;/h2&gt;

&lt;p&gt;In &lt;strong&gt;2014&lt;/strong&gt;, the domain changed hands again to &lt;strong&gt;DNV GL&lt;/strong&gt;, a global technical advisor to the oil and gas industry, formed through the merger of Det Norske Veritas (DNV) and Germanischer Lloyd (GL). The site got a modern responsive redesign with a bootstrap style “single page” style layout, clean typography, and professional stock photography.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/ronaldstoner/ron/gh-pages/images/stonercom/2015-mar.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;The start of cookie banners&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A cookies consent banner appeared in &lt;strong&gt;2015&lt;/strong&gt;, moved from top to bottom in &lt;strong&gt;2016&lt;/strong&gt;, and various content updates trickled through. The concept of cookies had existed since the mid-90s and were small text files that websites stored on your browser to remember who you were, what was in your shopping cart, or that you were logged in. For years nobody thought twice about them. Sites just dropped cookies on your machine and that was that. No notification, no consent, no opt out, and the advertising industry loved this. Third party cookies let ad networks track you across the entire web, building profiles on your browsing habits without you ever knowing or agreeing to it. This was the data that spawned the entire internet ad, pop-ups, and advertising ecosystem.&lt;/p&gt;

&lt;p&gt;Then the EU started pushing back. The ePrivacy Directive in &lt;strong&gt;2002&lt;/strong&gt; laid the groundwork, but it was the &lt;strong&gt;2011&lt;/strong&gt; update that forced websites to actually inform users about cookies and get consent. That’s when those cookie banners started slowly showing up everywhere. The real hammer dropped with GDPR in &lt;strong&gt;2018&lt;/strong&gt;, which made consent requirements even stricter and came with actual teeth. Fines that could hit 4% of a company’s global revenue.&lt;/p&gt;

&lt;p&gt;The internet before cookie banners was cleaner to look at but far worse for privacy. You were being tracked everywhere with zero transparency. Now we have the opposite problem. Every site hits you with a popup before you can read a single word and most people just click “accept all” without reading anything. The tracking largely continues on fueling the ad and data machines.&lt;/p&gt;

&lt;p&gt;Then in &lt;strong&gt;2017&lt;/strong&gt;, the site went to its most minimal state yet with only a scary single line of plaintext:
&lt;img src=&quot;https://raw.githubusercontent.com/ronaldstoner/ron/gh-pages/images/stonercom/2017-merger.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;“Following a merger, the information you are looking for is now to be found on https://www[dot]dnvgl[dot]com”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That was it. The 24-year history of stoner.com as a utility software domain was over, and the domain SEO (search engine optimization for page listing and ranking) would tank. The site was now a redirect notice for a Norwegian-German maritime and energy conglomerate, much like other dead and forwarded domains on the internet.&lt;/p&gt;

&lt;h2 id=&quot;20182022-the-hunt&quot;&gt;2018–2022: The Hunt&lt;/h2&gt;

&lt;p&gt;This is where I started to get ruthlessly aggressive.&lt;/p&gt;

&lt;p&gt;I’d been watching stoner.com since around &lt;strong&gt;2013&lt;/strong&gt;. I tried unsuccessfully using domain backfill services, negotiation services and agents, and spoke to resellers in the space about my approach.&lt;/p&gt;

&lt;p&gt;The DNV GL merger left the domain displaying nothing but a plaintext redirect message and I knew this was my chance. There was just one problem. How would I get a massive multinational corporation to sell me a six letter .com &lt;strong&gt;1993&lt;/strong&gt; domain?&lt;/p&gt;

&lt;p&gt;I looked up WHOIS records. I drove hours to physical addresses listed in registration data (including the old Carlisle and Mechanicsburg PA office locations). I sent LinkedIn messages. I stalked DNV GL executives on Twitter and blew up their emails and DMs (sorry). I did everything short of showing up at their Oslo headquarters with a suitcase full of money (though I did consider it and was pricing out plane tickets). The domain name was perfect. It was &lt;em&gt;my name&lt;/em&gt;. And I was not going to let it rot as a dead plaintext redirect…&lt;/p&gt;

&lt;p&gt;Through &lt;strong&gt;2018&lt;/strong&gt; and &lt;strong&gt;2019&lt;/strong&gt;, the same merger message sat on the site. No updates. No response to my inquiries. I was slowly losing my mind and my window was closing.&lt;/p&gt;

&lt;p&gt;The WHOIS records at this time still showed the domain registered to &lt;strong&gt;Advantica, Inc.&lt;/strong&gt; (the old owner) with nameservers at Windstream Hosting and an admin email at &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;dnsadmin@stoner.com&lt;/code&gt;. The domain was technically active, but completely abandoned in practice with no response from any of the contact addresses. Cobwebs were forming around its digital corpse.&lt;/p&gt;

&lt;p&gt;By &lt;strong&gt;October 2021&lt;/strong&gt;, even the merger message was gone now replaced by a generic hosting error:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/ronaldstoner/ron/gh-pages/images/stonercom/2021-oct.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;“Error. Page cannot be displayed. Please contact your service provider for more details. (17)”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This was not looking good, though I persisted. In &lt;strong&gt;August 2022&lt;/strong&gt; I still had not made any progress on aquiring the domain. While I was able to make contact and speak directly over the phone with some of the DNV GL IT Team and Executives earlier that year, no sale was offered, I was told to go away, and communication went quiet.&lt;/p&gt;

&lt;p&gt;My search was effectively dead in the water. The owner didn’t want to make a sale and wasn’t interested in releasing control.&lt;/p&gt;

&lt;p&gt;Then…after some time and by some stroke of luck the site had updated and a generic contact form appeared!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/ronaldstoner/ron/gh-pages/images/stonercom/2022-aug.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;A New Contact Form Appears - circa late 2022&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Someone had either acquired the domain unbeknownst to me or was selling it as a third party. I filled the form immediately and eagerly awaited a response.&lt;/p&gt;

&lt;p&gt;After a few rounds of communication and negotiation, I’m happy to say that in &lt;strong&gt;November 2022&lt;/strong&gt; the domain was finally transferred to me.&lt;/p&gt;

&lt;h2 id=&quot;november-2022present-resurrection&quot;&gt;November 2022–Present: Resurrection&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;December 2022&lt;/strong&gt; — I put up a simple page as a test. The most simple page one can do in honor of the spirit of IT, programming, and a new awakening.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/ronaldstoner/ron/gh-pages/images/stonercom/2022-dec.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;hello world!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Hello world. After nearly a decade of watching and waiting stoner.com was mine and resurrected from the grave.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/ronaldstoner/ron/gh-pages/images/stonercom/2023-apr.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;A ressurection and new design&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;By &lt;strong&gt;April 2023&lt;/strong&gt;, I had the site properly set up with Jekyll-based static templating, version control in a Git repository, and a build pipeline via CI/CD triggered and permissioned actions. The way a security researcher’s personal site should be built.&lt;/p&gt;

&lt;h2 id=&quot;today-and-onward&quot;&gt;Today and Onward&lt;/h2&gt;

&lt;p&gt;Today, stoner.com is my home where I write about and host my projects related to security, privacy, and self-sovereign technology. The domain that once served pipeline simulation papers to 130 petroleum engineers now hosts blog posts about social media security, Bitcoin, and the fragility of the modern internet.&lt;/p&gt;

&lt;h2 id=&quot;timeline&quot;&gt;Timeline&lt;/h2&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Year&lt;/th&gt;
      &lt;th&gt;Owner / Era&lt;/th&gt;
      &lt;th&gt;Site Content &amp;amp; Notes&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;1993&lt;/td&gt;
      &lt;td&gt;Unknown&lt;/td&gt;
      &lt;td&gt;Domain appears in internet registries&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;1993–1997&lt;/td&gt;
      &lt;td&gt;Stoner Associates, Inc.&lt;/td&gt;
      &lt;td&gt;PSIG pipeline simulation homepage&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;1997–1999&lt;/td&gt;
      &lt;td&gt;Severn Trent Systems / Stoner Associates&lt;/td&gt;
      &lt;td&gt;Enterprise utility software suite&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;2000–2001&lt;/td&gt;
      &lt;td&gt;Severn Trent Systems&lt;/td&gt;
      &lt;td&gt;Multiple rebrands&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;2002–2003&lt;/td&gt;
      &lt;td&gt;AdvanticaStoner → Advantica&lt;/td&gt;
      &lt;td&gt;SynerGEE product line&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;2004&lt;/td&gt;
      &lt;td&gt;Advantica&lt;/td&gt;
      &lt;td&gt;Firewall errors and downtime&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;2005–2010&lt;/td&gt;
      &lt;td&gt;Advantica&lt;/td&gt;
      &lt;td&gt;IE6 compatibility, slow fade into dormancy&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;2011–2013&lt;/td&gt;
      &lt;td&gt;GL Noble Denton&lt;/td&gt;
      &lt;td&gt;Oil &amp;amp; gas software, social media integration&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;2014–2016&lt;/td&gt;
      &lt;td&gt;DNV GL&lt;/td&gt;
      &lt;td&gt;Responsive redesign, cookies &amp;amp; banners&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;2017–2021&lt;/td&gt;
      &lt;td&gt;DNV GL (abandoned)&lt;/td&gt;
      &lt;td&gt;Plaintext merger redirect → hosting errors&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;2022&lt;/td&gt;
      &lt;td&gt;Unknown&lt;/td&gt;
      &lt;td&gt;Generic contact form&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;2022&lt;/td&gt;
      &lt;td&gt;Ron Stoner&lt;/td&gt;
      &lt;td&gt;Domain transferred November 11, 2022&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;2023–present&lt;/td&gt;
      &lt;td&gt;Ron Stoner&lt;/td&gt;
      &lt;td&gt;Security, privacy, and self-sovereignty personal site&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h2 id=&quot;30-years-of-a-domain&quot;&gt;30+ Years of a Domain&lt;/h2&gt;

&lt;p&gt;A domain name is just a string of characters pointing at an IP address. But stoner.com has had a life and a story, as did many domain names.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;It’s been a resource for oil and pipeline engineers&lt;/li&gt;
  &lt;li&gt;It’s been a corporate asset traded between companies on three continents&lt;/li&gt;
  &lt;li&gt;It’s been abandoned behind firewall errors and merger redirects&lt;/li&gt;
  &lt;li&gt;It’s witnessed various browser, coding, and protocol changes&lt;/li&gt;
  &lt;li&gt;And now it’s a personal site run by a security engineer who wouldn’t stop sending LinkedIn messages until someone sold it to him&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;From Donald Schroeder’s PSIG treasurer listing in &lt;strong&gt;1997&lt;/strong&gt;, to my “hello world!” in &lt;strong&gt;December 2022&lt;/strong&gt; and onward.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you own a domain or are in a similar situation, please consider doing the same style of documentation and history before it’s lost forever&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;-Ron&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2 id=&quot;references&quot;&gt;References&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://web.archive.org/web/19990427111041/http://www.stoner.com/&quot;&gt;Wayback Machine&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.dnv.com/software/campaigns-2020/pipeline-50-years-of-excellence/&quot;&gt;50 Years of Pipeline Excellence&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Mon, 10 Mar 2025 07:00:00 +0000</pubDate>
        <link>https://ron.stoner.com/the-history-of-stoner-com/</link>
        <guid isPermaLink="true">https://ron.stoner.com/the-history-of-stoner-com/</guid>
        
        
      </item>
    
      <item>
        <title>I Gained 1 Million Followers in 24 Hours</title>
        <description>&lt;p&gt;Social media dominance often translates to influence and power. I recently embarked on an exercise to expose the fragility and manipulability of these platforms. My mission was to gain 1 million followers on Nostr within 24 hours.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/heroes/nostr-number1.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Here’s how it all worked.&lt;/p&gt;

&lt;h2 id=&quot;the-experiment&quot;&gt;The Experiment&lt;/h2&gt;

&lt;h3 id=&quot;nostr&quot;&gt;Nostr&lt;/h3&gt;

&lt;p&gt;Nostr is an innovative alternative to traditional social media platforms. In centrally hosted social media a single entity controls the servers and infrastructure whereas Nostr gives you complete control over your posts and content. You can also manage the transmission pipeline and the servers through which your data flows if one chooses.&lt;/p&gt;

&lt;p&gt;Nostr uses public and private key pairs for identity, digital signing, and account authorization. This method is known as a cryptographic “something you have” in security. Your private key (think of a key to a lock or even your password) remains confidential and in your control, while your public key (the lock or similarly your email address) can be shared for others to interact with you securely. Cryptographic processes and math help to hash, digitally sign, and encrypt your messages. This means that others cannot tamper with them or impersonate you as easily.&lt;/p&gt;

&lt;p&gt;For those interested in the technical details, each Nostr event consists of a series of JSON-formatted values. These include information about the post’s metadata, its content, and a Schnorr digital signature. You can read more about it at &lt;a href=&quot;https://github.com/nostr-protocol/nips/blob/master/01.md&quot;&gt;https://github.com/nostr-protocol/nips/blob/master/01.md&lt;/a&gt; 
.&lt;/p&gt;

&lt;h3 id=&quot;sybil-attack&quot;&gt;Sybil Attack&lt;/h3&gt;

&lt;p&gt;A Sybil attack is like a sneaky trick where someone pretends to be many different people on the internet in order to cause trouble. Imagine you’re playing a game with your friends and one of the players secretly makes a lot of fake accounts to join the game. They use these fake accounts to cheat, make unfair rules, or mess up the game for everyone else.&lt;/p&gt;

&lt;p&gt;In the same way, during a Sybil attack a person creates many fake identities on the internet to try to take control or disrupt things. It’s not a nice thing to do and it can make it hard for people to trust what they see and hear on the internet. &lt;strong&gt;So that’s exactly what we’re going to do.&lt;/strong&gt;&lt;/p&gt;

&lt;h3 id=&quot;the-approach&quot;&gt;The Approach&lt;/h3&gt;

&lt;p&gt;I like taking advantages of existing features in products. I’ve always been keen on using the system functionality against itself. While what I did was nothing novel, it was achievable none-the-less. I knew from other scripts I worked on prior that generating over 1 million keypairs locally on a CPU and broadcasting them into the Nostr network was both cheap and easy, but would take some time to broadcast the follow event payload. In a world of cheap, easy, and fast you only get two out of the three.&lt;/p&gt;

&lt;p&gt;The exercise was accomplished with less than 200 lines of code. However, I won’t share that here as I don’t want others to replicate my actions.&lt;/p&gt;

&lt;p&gt;The script I designed automates the creation of new follower accounts and the sending of follow requests. Here’s a simplified overview:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Generate Keys&lt;/strong&gt;: Create new public and private key pairs.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Sign Events&lt;/strong&gt;: Sign follower events using the private key.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Send Events&lt;/strong&gt;: Send these signed events to multiple Nostr relays, effectively following the target account.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Secret Sauce&lt;/strong&gt;: Every script needs a secret sauce for that “je ne sais quoi” feeling.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Initially this worked well - but wasn’t as fast as I wanted. I knew we could do better. I added several relays into a “relay array” and revised my code to iterate through each. Things improved, reaching around 13 follow requests per second.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Followers per second&lt;/strong&gt;: 13&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Seconds per minute&lt;/strong&gt;: 60&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Minutes per hour&lt;/strong&gt;: 60&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Total new followers per hour = 13 * 60 * 60 ≈ 46,800&lt;/p&gt;

&lt;p&gt;To hit 1 million followers in 24 hours: &lt;strong&gt;1,000,000 / 46,800 ≈ 21.37 hours&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One can see that under perfect network conditions, this feat could be achieved in under 24 hours - but I wanted more speed. I curated the relay list based on Nostr event responses I was receiving (both good and bad) and introduced multithreading into my script. It was now hitting over 100 “follow” requests per second and the overall time needed would be reduced.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Followers per second&lt;/strong&gt;: 100&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Seconds per minute&lt;/strong&gt;: 60&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Minutes per hour&lt;/strong&gt;: 60&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Total new followers per hour = 100 * 60 * 60 = 360,000&lt;/p&gt;

&lt;p&gt;To hit 1 million followers in 24 hours: &lt;strong&gt;1,000,000 / 360,000 ≈ 2.78 hours&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/nostr/nostr-stats.gif&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;It’s alive and working&lt;/em&gt;&lt;/p&gt;

&lt;h3 id=&quot;observations&quot;&gt;Observations&lt;/h3&gt;

&lt;p&gt;I walked away to eat some dinner and when I came back I saw that some relays started getting overwhelmed and were dropping connections. Others had implemented security controls such as authorization, address whitelisting for publishing, IP address rate limiting, proof-of-work, and other novel systems involving challenges. While this experiment underscores the inherent vulnerabilities in social media networks and the ease with which some of these systems can be exploited, it also highlights positive security controls that are being utilized by some nostr relay operators today.&lt;/p&gt;

&lt;p&gt;Out of the 300 relays I used in my final list, &lt;strong&gt;175 relays (58.33%)&lt;/strong&gt; were either using protection mechanisms or were not resolvable publicly. This indicates a strong trend towards enhancing the security and privacy of relay communications.&lt;/p&gt;

&lt;p&gt;On the other hand, &lt;strong&gt;125 relays (41.67%)&lt;/strong&gt; were found to be active and accessible without any additional protection. While these relays are operational, the absence of protective measures may leave them vulnerable to potential security threats, downtime, or future spam or storage attacks. Nostr relay spam filtering seems to be specific to general event types and posts and not the more esoteric or later introduced event types.&lt;/p&gt;

&lt;p&gt;While my script only ran for a few hours, it highlighted a potential vulnerability that a well-motivated and well-resourced attacker could exploit. If someone with malicious intent were to replicate and scale up this approach, they could cause significant event bloat across the Nostr network. This could lead to several serious issues for Nostr relays, including potential downtime, network congestion, and substantial storage challenges.&lt;/p&gt;

&lt;h3 id=&quot;charts-and-stats&quot;&gt;Charts and Stats&lt;/h3&gt;
&lt;p&gt;Thank you to &lt;a href=&quot;https://web.archive.org/web/20230307024903/https://stats.nostr.band/&quot;&gt;stats[dot]nostr[dot]band&lt;/a&gt; for providing the following charts and statistics.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/nostr/nostr-daily-new-users.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;Daily New Users&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/nostr/nostr-total-users.png&quot; alt=&quot;nostr-stats&quot; /&gt;
&lt;em&gt;Total Nostr Users&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/nostr/nostr-total-profile-events.png&quot; alt=&quot;nostr-stats&quot; /&gt;
&lt;em&gt;Total Profile Events Published&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/nostr/nostr-events-published.png&quot; alt=&quot;nostr-stats&quot; /&gt;
&lt;em&gt;Events Published&lt;/em&gt;&lt;/p&gt;

&lt;h3 id=&quot;challenges-and-fixes&quot;&gt;Challenges and Fixes&lt;/h3&gt;

&lt;p&gt;Despite initial success, several challenges did occur:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Authentication (Auth)&lt;/strong&gt;: Some relays required authentication thereby limiting access.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Whitelisting&lt;/strong&gt;: Certain relays only accepted specific accounts.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Follows Not Allowed&lt;/strong&gt;: Some relays blocked follow events.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Rate Limiting&lt;/strong&gt;: Relays enforced rate limits to prevent spamming.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Proof of Work&lt;/strong&gt;: Some relays required proof of work to mitigate spam.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Paid Relays&lt;/strong&gt;: A few relays operated on a pay-to-use basis.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In addition, the Nostr network should consider implementing:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Honey Pot Relays&lt;/strong&gt;: Honeypots could help detect and alert on attacks in real time.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Nostr Security Operations&lt;/strong&gt;: A dedicated security and monitoring team would help relay operators respond to attacks.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Alerting and Monitoring&lt;/strong&gt;: As with any large corporation or product, monitoring and alerting is essential.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Relay Health Report&lt;/strong&gt;: Additional metrics such as free disk space, spam mitigation, and overall health would help identify weak points in the network.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Spam Filters&lt;/strong&gt;: Spam filtering technology should be applied for &lt;em&gt;most&lt;/em&gt; event types rather than just a few.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is suggested that relay operators look into the above as mitigation controls for their relays and the overall health of the Nostr network. This may not be applicable in all scenarios and clients though.&lt;/p&gt;

&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/nostr/nostr-4million.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This experiment revealed just how artificial social media can be. &lt;strong&gt;The ease with which follower counts and engagement metrics can be manipulated calls into question the authenticity of online personas and the credibility of social media as a whole.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Nostr’s decentralized approach offers robust features, but even it is not immune to exploitation without proper safeguards. Implementing fixes such as authentication, whitelisting, rate limiting, monitoring, alerting, and proof of work can significantly enhance the network’s integrity. This is a task for relay operators and Nostr protocol and client developers to tackle after reviewing and evaluating the pros and cons of each potential fix.&lt;/p&gt;

&lt;p&gt;Overall the Nostr network performed wonderfully during my testing. While I was able to cause spammy behavior, I was not able to impact the general availability to the network. I hope to encourage everyone to be more transparent and adopt secure practices (be it relay operators, developers, or end users) in the vast digital social ecosystem.&lt;/p&gt;
</description>
        <pubDate>Mon, 20 May 2024 07:00:00 +0000</pubDate>
        <link>https://ron.stoner.com/i-gained-1-million-followers-in-24-hours/</link>
        <guid isPermaLink="true">https://ron.stoner.com/i-gained-1-million-followers-in-24-hours/</guid>
        
        
      </item>
    
      <item>
        <title>Nostr Security and Privacy Tips</title>
        <description>&lt;p align=&quot;center&quot;&gt;
  &lt;img src=&quot;https://ron.stoner.com/images/heroes/nostr-security.png&quot; alt=&quot;Nostr hacker sitting at a laptop&quot; width=&quot;300&quot; /&gt; 
&lt;/p&gt;

&lt;p&gt;Nostr is the latest in decentralized protocol advancement. By definition nostr is “a decentralized network based on cryptographic keypairs and that is not peer-to-peer, it is super simple and scalable and therefore has a chance of working”.&lt;/p&gt;

&lt;p&gt;With all new protocols comes new security and privacy concerns that end users should be aware of in order to protect themselves, their information, and ultimately - their identity.&lt;/p&gt;

&lt;h1 id=&quot;findings&quot;&gt;Findings&lt;/h1&gt;

&lt;h2 id=&quot;-private-keys&quot;&gt;&lt;i class=&quot;fa fa-exclamation-triangle fa-lg&quot;&gt; Private Keys&lt;/i&gt;&lt;/h2&gt;
&lt;p&gt;Most nostr impementations currently use a single signature private key generated inside the web browser. In order to use nostr based web applications users must copy and paste private keys into clients in plain text. If someone else obtains your private key, they can potentially access and take control of your nostr keypair and account.&lt;/p&gt;

&lt;h2 id=&quot;-encrypted-dm-metadata&quot;&gt;&lt;i class=&quot;fa fa-exclamation-triangle fa-lg&quot;&gt; Encrypted DM Metadata&lt;/i&gt;&lt;/h2&gt;
&lt;p&gt;While nostr offers the ability to send encrypted DMs to user pubkeys, the metadata of these messages are broadcast publicly via relays. This is the same as a bitcoin transaction being viewable on the public ledger. The contents of the direct message will be encrypted, but other metadata like the sender and recipient can be viewed by anyone.&lt;/p&gt;

&lt;h2 id=&quot;-cross-site-scripting-xss&quot;&gt;&lt;i class=&quot;fa fa-exclamation-triangle fa-lg&quot;&gt; Cross Site Scripting (XSS)&lt;/i&gt;&lt;/h2&gt;
&lt;p&gt;Cross-site scripting (XSS) is a type of cyber attack that involves injecting malicious code into a website or web application. This code is typically executed in the context of the affected website, allowing the attacker to perform a variety of malicious actions, such as stealing sensitive data, manipulating the website’s content or functionality, or redirecting users to malicious websites.&lt;/p&gt;

&lt;p&gt;One way that XSS attacks can be introduced is through nostr notes and links. For example, an attacker could create a note that contains malicious code and share it via a relay. Since nostr is decentralized, anyone can choose to write a front end client that parses the malicious note for viewing. If a user is using a vulnerable client and clicks on the note their web browser may execute the code and the attack may be successful.&lt;/p&gt;

&lt;h2 id=&quot;-ip-address&quot;&gt;&lt;i class=&quot;fa fa-exclamation-triangle fa-lg&quot;&gt; IP Address&lt;/i&gt;&lt;/h2&gt;
&lt;p&gt;Relay operators can see the IP address of a nostr user when a user adds and connects to their relay. An IP address is a unique numerical label assigned to every device connected to the internet, and it is used to identify and communicate with that device.&lt;/p&gt;

&lt;p&gt;When a user connects to a relay, the relay can see the IP address of that device and use it to track and monitor its activity. Relay operators may use this information for various purposes, such as tracking user behavior, analyzing traffic patterns, and detecting and preventing security threats.&lt;/p&gt;

&lt;p&gt;It is important for users to be aware of this, as a user IP address can reveal information about their location and online activity. IP addresses also provide attackers with a direct line to you for attack enumeration and vulnerability profiling.&lt;/p&gt;

&lt;h2 id=&quot;-impersonation&quot;&gt;&lt;i class=&quot;fa fa-exclamation-triangle fa-lg&quot;&gt; Impersonation&lt;/i&gt;&lt;/h2&gt;
&lt;p&gt;Public and private keypairs function as both the authentication mechanism and identity of a user. As identity is not tied to a unique username, any user can generate a keypair and set their username and picture to anything they want. This can cause instances of fraud, identity theft, damage to reputation, and harassment.&lt;/p&gt;

&lt;h2 id=&quot;-images-and-media&quot;&gt;&lt;i class=&quot;fa fa-exclamation-triangle fa-lg&quot;&gt; Images and Media&lt;/i&gt;&lt;/h2&gt;
&lt;p&gt;Images and media content on nostr is generally hosted on servers remotely, as opposed to company servers that are controlled by an organizational entity. As such, any user may host and link content from servers they control. This can open up privacy concerns and information leakage.&lt;/p&gt;

&lt;p&gt;In the process, the server can see your IP address and other information about your device, such as the type of browser and operating system being used. This information may be collected and stored by the server owner or operator for various purposes, such as tracking user behavior, analyzing traffic patterns, and targeting users with ads.&lt;/p&gt;

&lt;h2 id=&quot;-pixel-tracking&quot;&gt;&lt;i class=&quot;fa fa-exclamation-triangle fa-lg&quot;&gt; Pixel Tracking&lt;/i&gt;&lt;/h2&gt;
&lt;p&gt;Pixel tracking is a technique used by website owners and advertisers to track and collect information about users’ online behavior. It involves inserting small, transparent pixels, also known as web beacons, into images or other media on a nostr note or profile image.&lt;/p&gt;

&lt;p&gt;When a user views the image or note containing the pixel, the pixel sends a request to a server to retrieve the image and record the user’s IP address and other information about the device, such as the type of browser and operating system being used.&lt;/p&gt;

&lt;h2 id=&quot;-exif-data&quot;&gt;&lt;i class=&quot;fa fa-exclamation-triangle fa-lg&quot;&gt; EXIF Data&lt;/i&gt;&lt;/h2&gt;
&lt;p&gt;EXIF data, or Exchangeable Image File Format data, is metadata that is embedded in a photo or image file. This metadata can include information about the camera used to take the photo, the settings used, the date and time the photo was taken, and other details.&lt;/p&gt;

&lt;p&gt;EXIF data can potentially compromise a user’s privacy in a number of ways. For example, if a user shares a photo on a nostr platform that includes their location data in the EXIF data, it may be possible for someone to determine the exact location where the photo was taken. EXIF data can also include personal information, such as the owner of the camera or the software used to edit the photo.&lt;/p&gt;

&lt;h1 id=&quot;defenses&quot;&gt;Defenses&lt;/h1&gt;

&lt;h2 id=&quot;-private-key-management&quot;&gt;&lt;i class=&quot;fa fa-check-circle fa-lg&quot;&gt; Private Key Management&lt;/i&gt;&lt;/h2&gt;
&lt;p&gt;Extensions such as nos2x and Alby can help users to manage and store their private key material. This is currently the best solution while hardware wallet and signing device manufacturers incorporate further private key security, such as master keys, multi-signature schemas, and other key enhancements.&lt;/p&gt;

&lt;h2 id=&quot;-use-tested-clients-and-front-ends&quot;&gt;&lt;i class=&quot;fa fa-check-circle fa-lg&quot;&gt; Use Tested Clients and Front Ends&lt;/i&gt;&lt;/h2&gt;
&lt;p&gt;To protect against XSS attacks, it is important for website and web application developers to implement proper input validation and sanitization, and for users to be cautious when clicking on links or interacting with unfamiliar content on nostr.&lt;/p&gt;

&lt;h2 id=&quot;-vpn-and-tor&quot;&gt;&lt;i class=&quot;fa fa-check-circle fa-lg&quot;&gt; VPN and TOR&lt;/i&gt;&lt;/h2&gt;
&lt;p&gt;Users can use a virtual private network (VPN) and/or the onion routing (TOR) network to mask their IP address and encrypt their internet connection which helps protect privacy when connecting and interacting with relays, links, and content in notes.&lt;/p&gt;

&lt;h2 id=&quot;-use-trusted-known-relays&quot;&gt;&lt;i class=&quot;fa fa-check-circle fa-lg&quot;&gt; Use Trusted Known Relays&lt;/i&gt;&lt;/h2&gt;
&lt;p&gt;Using known and trusted relays will help provide users with the conduit they need for interacting with nostr notes and events. Honeypot relays, ransomed notes/events, and information gathering relays will have a larger deployment footprint as the network grows and scales.&lt;/p&gt;

&lt;p&gt;Users that require the utmost privacy will choose to run their own relays. Note that this may result in orphaned messages depending on the architecture and lifetime of the self-hosted relay.&lt;/p&gt;

&lt;h2 id=&quot;-verify-nip-05&quot;&gt;&lt;i class=&quot;fa fa-check-circle fa-lg&quot;&gt; Verify NIP-05&lt;/i&gt;&lt;/h2&gt;
&lt;p&gt;NIP-05 is a nostr improvement that maps nostr keys to DNS-based internet identifiers. This means that website and domain owners can provide a DNS record on their website which helps to confirm their identity. Various nostr clients and front ends will display NIP-05 verification status on user profiles which helps to provide a greater sense of confidence in user identity.&lt;/p&gt;

&lt;p&gt;Note: this is not a be-all-end-all control as servers providing NIP-05 verification can be compromised. Paid services also exist providing NIP-05 verification and these services may use their own forms of (or no) identity verification.&lt;/p&gt;

&lt;h2 id=&quot;-scrub-image-exif-data&quot;&gt;&lt;i class=&quot;fa fa-check-circle fa-lg&quot;&gt; Scrub Image EXIF Data&lt;/i&gt;&lt;/h2&gt;
&lt;p&gt;Users should be aware of the EXIF data that is included in the photos they share online and consider removing or obscuring this data if necessary. Users should also be aware of which image hosting sites scrub and remove EXIF data and which do not. Some photo editing software and smartphone apps allow users to remove EXIF data from photos before sharing them online.&lt;/p&gt;

&lt;h2 id=&quot;-dont-click-unknown-links&quot;&gt;&lt;i class=&quot;fa fa-check-circle fa-lg&quot;&gt; Don’t Click Unknown Links&lt;/i&gt;&lt;/h2&gt;
&lt;p&gt;Users should never be clicking unsolicited links posted in notes. Unsolicited links can result in off-client phishing attacks, malware downloads, and scams.&lt;/p&gt;

&lt;p&gt;To protect against these types of attacks, it is important for users to be cautious when clicking on unsolicited links and to verify the identity and intent of the sender before interacting with the link.&lt;/p&gt;
</description>
        <pubDate>Thu, 29 Dec 2022 10:30:00 +0000</pubDate>
        <link>https://ron.stoner.com/nostr-security-and-privacy/</link>
        <guid isPermaLink="true">https://ron.stoner.com/nostr-security-and-privacy/</guid>
        
        
      </item>
    
      <item>
        <title>Corporate Security Archetypes</title>
        <description>&lt;p align=&quot;center&quot;&gt;
  &lt;img src=&quot;https://ron.stoner.com/images/heroes/corporate-security.png&quot; alt=&quot;Five corporate security users standing together wearing sunglasses&quot; width=&quot;300&quot; /&gt; 
&lt;/p&gt;

&lt;p&gt;I’ve seen a variety of corporate security user archetypes over my career as a security leader. These include individuals who are proactive about security, those who may have some concerns but may not fully understand the risks, and those who are simply not interested.&lt;/p&gt;

&lt;p&gt;It is important for organizations to consider the attitudes and behaviors of their internal users towards security in order to effectively design and implement security policies and procedures that will be followed and effective.&lt;/p&gt;

&lt;p&gt;The following are the 5 Security Archetypes I’ve encountered.&lt;/p&gt;

&lt;h2 id=&quot;archetypes&quot;&gt;Archetypes&lt;/h2&gt;

&lt;h3 id=&quot;avoidant-&quot;&gt;Avoidant &lt;i class=&quot;fa fa-times-circle fa-lg&quot;&gt;&lt;/i&gt;&lt;/h3&gt;
&lt;p&gt;These are individuals who are not interested in security and may actively avoid following security protocols and procedures. They may view security as an inconvenience or burden and may not understand the importance of adhering to security measures. They may also be resistant to change and may resist implementing new measures.&lt;/p&gt;

&lt;p&gt;In my experience, end users who are &lt;strong&gt;Avoidant&lt;/strong&gt; types tend to go to great lengths to avoid communication and collaboration with security teams. This is often because they have a negative view on security and this can lead to incidents occurring due to misconduct, either internally or externally.&lt;/p&gt;

&lt;h3 id=&quot;laggard-&quot;&gt;Laggard &lt;i class=&quot;fa fa-clock-o fa-lg&quot;&gt;&lt;/i&gt;&lt;/h3&gt;
&lt;p&gt;These are individuals who are not proactive about security and may be slower to adopt new security measures. They may view security as less important or may not fully understand the risks associated with not following security protocols. They may also be resistant to change and may not follow security protocols and procedures consistently.&lt;/p&gt;

&lt;p&gt;While &lt;strong&gt;Laggards&lt;/strong&gt; are not typically malicious in their intentions, their lack of attention to security can result in negligent behavior. This can lead to the introduction of vulnerabilities or the use of shadow IT. Shadow IT refers to the use of unauthorized or unsupported software or hardware within an organization. Shadow IT can present security risks as it may not be properly managed or secured, and it can also create challenges for IT teams who may not be aware of its existence or use.&lt;/p&gt;

&lt;h3 id=&quot;doubter-&quot;&gt;Doubter &lt;i class=&quot;fa fa-question-circle fa-lg&quot;&gt;&lt;/i&gt;&lt;/h3&gt;
&lt;p&gt;These are individuals who may have some concerns about security, but may not fully understand the risks or the importance of following security protocols. They may question the need for certain security measures or may not be sure how to implement them correctly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Doubters&lt;/strong&gt; who are skeptical about security measures may often question their implementation. While they may be able to provide specific arguments, they may not have a full understanding of the broader security landscape and the potential risks from both upstream and downstream attacks. These individuals may tend to ask “What if?” and “Yeah, but…” but may not be able to argue beyond a limited perspective.&lt;/p&gt;

&lt;h3 id=&quot;adopter-&quot;&gt;Adopter &lt;i class=&quot;fa fa-check-square fa-lg&quot;&gt;&lt;/i&gt;&lt;/h3&gt;
&lt;p&gt;These are individuals who are proactive about security and are willing to follow security protocols and procedures. They may view security as important and understand the need to protect sensitive data and systems. They may also be open to learning about new security measures and adopting them in order to ensure the security of the organization.&lt;/p&gt;

&lt;p&gt;Encouraging these &lt;strong&gt;Adopter&lt;/strong&gt; archetypes can be beneficial for an organization, as they can help to promote a culture of security and set a positive example for others to follow. There are several ways to encourage adopter behavior including providing training and resources, recognizing good behavior, and involving adopters in security decision making.&lt;/p&gt;

&lt;h3 id=&quot;champion-&quot;&gt;Champion &lt;i class=&quot;fa fa-trophy fa-lg&quot;&gt;&lt;/i&gt;&lt;/h3&gt;
&lt;p&gt;These are individuals who are highly proactive about security and are willing to take on a spotlight role in promoting security within the organization. They may view security as a top priority and be willing to go above and beyond to ensure the security of the organization. They may be involved in implementing and enforcing security policies and procedures, and may be instrumental in raising awareness about security issues within the organization.&lt;/p&gt;

&lt;p&gt;Having &lt;strong&gt;Champion&lt;/strong&gt; archetypes can be extremely beneficial for an organization, as they can help to drive a culture of security and set an example for others to follow. Some benefits of having this archetype include a high level of leadership, awareness, influence, and expertise within the organization.&lt;/p&gt;

&lt;h2 id=&quot;summary&quot;&gt;Summary&lt;/h2&gt;
&lt;p&gt;In summary, understanding and recognizing the different security archetypes within an organization can be critical for effectively designing and implementing security policies and procedures. By considering the diverse needs and attitudes of security end users, organizations can create a secure and effective environment for all stakeholders.&lt;/p&gt;
</description>
        <pubDate>Thu, 29 Dec 2022 08:03:00 +0000</pubDate>
        <link>https://ron.stoner.com/corporate-security-archetypes/</link>
        <guid isPermaLink="true">https://ron.stoner.com/corporate-security-archetypes/</guid>
        
        
      </item>
    
      <item>
        <title>Bitcoin Security Tips To Help You While Traveling</title>
        <description>&lt;p&gt;Cryptocurrency events are a great opportunity to learn more about bitcoin and make industry connections. If you own bitcoin, however, it’s important to be mindful of your surroundings and take proactive steps to protect yourself and your wealth.&lt;/p&gt;

&lt;p&gt;As we often say, there are no vacations in security. Bitcoin travel requires a little extra precaution. Conference season is heating up again, and so are criminals, attackers, and malicious actors. Here is a helpful travel security guide for attending cryptocurrency-related events.&lt;/p&gt;

&lt;p&gt;Getting to the destination safely is the part of your trip where some quick preparation can help you avoid bitcoin security issues.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Power down your electronic devices fully before going through the security checkpoint.&lt;/strong&gt; Once a device is outside of your control, anyone can do anything with it. It is much harder to unlock and decrypt a computing device when it is in a powered-off state versus a powered-on state where the device was previously unlocked (PIN code, biometrics). It is generally safer to turn on devices once passengers have boarded the plane and the plane doors have been locked. The risk of device seizure is much lower once a plane is boarded and moving.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Never take the majority of your Casa keyset with you.&lt;/strong&gt; Your keyset is designed for geographical distribution and security. If you need to transact in bitcoin at the conference, it is better to use the mobile single key wallet with a limited amount of funds. Having a majority of keys in your possession makes YOU the single point of failure and puts your funds at risk. Learn more about how to keep your bitcoin wallet safe in the below article.&lt;/p&gt;

&lt;h2 id=&quot;the-dos-and-donts-of-bitcoin-key-management&quot;&gt;The Dos and Don’ts of Bitcoin Key Management&lt;/h2&gt;

&lt;p&gt;A companion piece to this post lives over on the Casa blog: &lt;a href=&quot;https://blog.casa.io/the-dos-and-donts-of-bitcoin-key-management/&quot;&gt;The Dos and Don’ts of Bitcoin Key Management&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Don’t advertise the goods.&lt;/strong&gt; The first layer of security is privacy, and privacy is about flying under the radar. Every time I am in a travel hub, I take note of who is wearing a cryptocurrency shirt or who has a bitcoin sticker on the lid of their laptop. Criminals and thieves take note of this as well. Don’t broadcast to everyone you’re traveling with bitcoin.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Always use a VPN when on a shared network, including hotels, airports, and individual rental locations.&lt;/strong&gt; Public networks are often unencrypted, which can put your transmitted data at risk.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Only use your own device chargers and cables.&lt;/strong&gt; Attackers have been known to set up impromptu “charging stations” in travel hubs in the hopes that someone with an unpatched device will connect to it for charging purposes. Your device may charge, but it will also now be infected by a process known as juice jacking.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hotel safes are not to be trusted for keeping bitcoin and high-value items safe.&lt;/strong&gt; These safes are easily accessible to hotel staff and cleaning services using bypass codes. These safes are even more easily accessible to attacks using things such as a room key, screwdriver, or ball-point pen cap. When in doubt, don’t bring high-value items with you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Some hotels and suites have a double door connecting rooms or bathrooms directly.&lt;/strong&gt; If your room has a double access door, ensure it is locked from your side. You can move or brace a piece of furniture against the door to stop an inquiring neighbor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Consider using a portable, non-intrusive door brace or deadbolt strap for your hotel door.&lt;/strong&gt; These devices can vary in effectiveness, ease of use, and known flaws, but they can help prevent an unwanted visitor from gaining entry while you are in your room.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/bitcoin-travel/01.png&quot; alt=&quot;portable-door-brace-types&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Portable door locks and straps can help secure your room door while you are present in the room&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lodging through vacation rental websites can be great for cost but not as much for security.&lt;/strong&gt; These accommodations are offered by individual owners rather than a company, and they may not have the same level of physical and network security controls as a hotel. Your personal property may not be protected or covered by insurance in the instance of a break-in or robbery.&lt;/p&gt;

&lt;p&gt;At times, it can be dangerous to use your real name everywhere, especially if you’re well-known. We live in an age where bad actors can search your name online and instantly find out who you are. &lt;strong&gt;When ordering delivery, food, or car rental services, use only a first or fake name if possible.&lt;/strong&gt; If you decide to do this, make sure the hotel and clerk know as well, otherwise your pizza delivery for “Satoshi Nakamoto” may go to the wrong person.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you are using rideshare transportation, ensure the driver is who they say they are and work for the company they are representing.&lt;/strong&gt; This does not need to be a full-blown interrogation but more of a verification (“Are you Kevin with Uber? Oh, your name is Pete. My mistake, my app does show that.”) Simple checks like this can work well as a false pretext verification.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Consider using the buddy system.&lt;/strong&gt; Physical attackers are more likely to target individuals traveling alone to conferences and satellite events. Traveling with a trusted companion is a smart practice for venturing into unfamiliar and potentially unsafe areas, and it has the bonus of allowing you to split transportation costs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ensure you have an emergency contact (or notify your Casa Emergency Contact) who knows you will be traveling to a remote location.&lt;/strong&gt; This person does not need to know all of your whereabouts but should be aware of your general plans and location.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update any computers, tablets, or mobile devices you may be bringing with you prior to the event.&lt;/strong&gt; This ensures the latest security updates are applied and minimizes the risk of known attacks against the device.&lt;/p&gt;

&lt;p&gt;Once you’ve checked into your event, the coast isn’t necessarily clear. Malicious actors are often present at large crypto gatherings, so don’t let your guard down completely.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Turn off all unneeded network communications including Bluetooth, WiFi (in certain areas), and the MacOSX/iOS Airdrop file sharing utility.&lt;/strong&gt; This stops random connections and scanners from picking up your devices for further analysis and potential attack. Learn how to disable your AirDrop in this &lt;a href=&quot;https://www.wikihow.com/Turn-Off-AirDrop?ref=ron.stoner.com&quot;&gt;Wiki article&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Just like when you’re traveling, make sure to use your own power chargers for your mobile and computing devices.&lt;/strong&gt; A portable battery is a great and cheap option to charge while you’re on the move.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Avoid giving out your phone number to strangers.&lt;/strong&gt; If attackers have your number, they can target you in a SIM swap, port your number to their phone, and drain financial accounts that rely on that number for two-factor authentication. If you would like to keep in touch with someone, consider using encrypted messaging apps or a “sock puppet” social media account.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do not share any pictures of a location on social media while you are still in that location.&lt;/strong&gt; It’s better to post pictures after you have left the location, or sometime thereafter. This stops a bad actor from finding your physical location in real time. One should also be aware of what is in the background of the photograph, who is in it, and if they are okay with the picture being posted online.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Be conscious of what you disclose about yourself at crypto events.&lt;/strong&gt; As we like to say at Casa, feel free to talk about bitcoin, but &lt;a href=&quot;https://blog.casa.io/why-you-shouldnt-talk-about-your-bitcoin/&quot;&gt;don’t talk about &lt;em&gt;your&lt;/em&gt; bitcoin&lt;/a&gt;. Try not to self-identify as someone who owns a lot of bitcoin. The more data points you reveal, the more of a target you become. There are some subjects that are best left untouched, such as how much bitcoin you have, when you started buying, and the exchanges you use.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Be aware of those in attendance at afterparties, bars, and shared party locations.&lt;/strong&gt; These patrons may not be attending the conference, but they are now extremely interested in your “bitcoin citadel retirement plan” they overheard you discussing. Limiting alcohol intake will also help to keep one’s senses sharp (but make sure to still have some fun).&lt;/p&gt;

&lt;h3 id=&quot;final-thoughts&quot;&gt;Final thoughts&lt;/h3&gt;

&lt;p&gt;It’s an effort to get back into the traveling security mindset, but hopefully some of these tips are things you can incorporate into your personal security plan. While most attendees should feel safe and not be targeted, “An ounce of prevention is worth a pound of cure.” Have fun at the conference and beyond!&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;need-peace-of-mind-for-your-bitcoin&quot;&gt;&lt;strong&gt;Need peace of mind for your bitcoin?&lt;/strong&gt;&lt;/h2&gt;

&lt;p&gt;Casa makes self-custody easy for everyone. Our multi-key vaults protect your bitcoin from accidents, hackers, and more. Learn about our plans &lt;a href=&quot;https://keys.casa/pricing/?ref=ron.stoner.com&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;
&lt;em&gt;An earlier version of this post first appeared &lt;a href=&quot;https://blog.casa.io/travel-tips-for-bitcoin-security/&quot;&gt;on the Casa blog&lt;/a&gt; in 2022.&lt;/em&gt;&lt;/p&gt;
</description>
        <pubDate>Wed, 01 Jun 2022 12:00:00 +0000</pubDate>
        <link>https://ron.stoner.com/bitcoin-security-tips-to-help-you-while-traveling/</link>
        <guid isPermaLink="true">https://ron.stoner.com/bitcoin-security-tips-to-help-you-while-traveling/</guid>
        
        
      </item>
    
      <item>
        <title>How To Avoid Bitcoin Scams: A Real-Life Account</title>
        <description>&lt;p&gt;“Hey! I wanted to know what you know about bitcoin mining? I have a friend that just got $13,000 from a $1,000 investment, and they are now trying to get me to do it.”&lt;/p&gt;

&lt;p&gt;If you’ve worked in the bitcoin space as long as I have, you immediately dismiss this message as a scam, but the ugly truth is not everyone works in the bitcoin and security space.&lt;/p&gt;

&lt;p&gt;This is a real and scary message I recently received from a friend. We will call her Katie. I immediately dismissed the message as my friend being hacked and a scammer using her account to target me via DM to steal my money.&lt;/p&gt;

&lt;p&gt;After a quick text message verification to Katie, she confirmed that she did, in fact, send that message and was curious about bitcoin mining based on her own friend’s “investment recommendation.” We will call him Doug.&lt;/p&gt;

&lt;h3 id=&quot;bitcoin-mining-beyond-your-wildest-dreams&quot;&gt;Bitcoin mining beyond your wildest dreams!&lt;/h3&gt;

&lt;p&gt;As someone who tried his hand at mining, I let Katie know the message she received from Doug sounded typical of other scam messages I’ve seen prior. Bitcoin mining profits do not work that way. Katie, however, was new to bitcoin, and she was ready to invest a large amount of money with Doug and Doug’s crypto “investment coach.”&lt;/p&gt;

&lt;p&gt;The coach had an Instagram account with many followers, a URL listed for their investment website, and various pictures of their bank accounts, financial reports, luxury goods, and vacations. Doug’s profile was starting to resemble the luxurious lifestyle of the coach. Who wouldn’t want to live the same life?&lt;/p&gt;

&lt;h3 id=&quot;if-it-sounds-too-good-to-be-true-it-probably-is&quot;&gt;If it sounds too good to be true, it probably is&lt;/h3&gt;

&lt;p&gt;I spent a lot of time persuading Katie that she was talking to a scammer who was either using Doug’s account or impersonating him. &lt;strong&gt;Often,&lt;/strong&gt; &lt;strong&gt;scammers will create fake accounts to impersonate people you know to try to gain your confidence.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;These “fake-friend” accounts will scrape all your friends’ real photos and repost them under the fake account. Other fake accounts will engage the photos with likes and comments to provide legitimacy. Another tactic scammers use is to hack (or purchase a hacked) social media account and use the account to run scams through DMs and posts to a victim’s friends and family.&lt;/p&gt;

&lt;p&gt;In this case, Katie was adamant that Doug was real. They knew each other in real life, and Doug was only trying to share sound investment advice and access to the coach, or so she thought.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/bitcoin-scams/01.jpg&quot; alt=&quot;crypto-scam-direct-message&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Be wary of investment-related messages, even from people you already know. This is a common scam tactic.&lt;/p&gt;

&lt;p&gt;Ask yourself: If someone was making this much money, why are they spending time trying to get you to give away yours? Why are they not busy making &lt;em&gt;more&lt;/em&gt; money with their foolproof method?&lt;/p&gt;

&lt;h3 id=&quot;red-flags-are-moments-of-hesitation-that-determine-our-destination&quot;&gt;Red flags are moments of hesitation that determine our destination&lt;/h3&gt;

&lt;p&gt;Katie continued to message me about the investment program over time. I tried to convince her that the program was not real, but I had the feeling that she was going to eventually lose her money.&lt;/p&gt;

&lt;p&gt;At one point, I relented. If Katie was still going to invest — let adults be adults — then I offered to join a group phone call with the coach to assist Katie through the onboarding process and initial investment. In reality, I figured if I could ask the scammer about their business and practices on a call, then maybe it would prove to Katie it was all an illusion.&lt;/p&gt;

&lt;p&gt;I identified multiple red flags in the scammers’ communications:&lt;/p&gt;

&lt;p&gt;🚩 The scammers’ investment website linked in their profile had no news, SEO, or backlinks to it. Most reputable bitcoin businesses have a long and varied history that can easily be researched.&lt;/p&gt;

&lt;p&gt;Scammer insight: The website is fake and easily deployed and easy to take down. The site only exists to steal your money.&lt;/p&gt;

&lt;p&gt;🚩 Katie asked the scammer how taxes work at the end of the year on the investment. The response she received was “there are no taxes and you’re only charged 20% on your commission,” which is false. Most people in bitcoin know the pain of having to report taxes at the end of the year due to taxable events from transaction activity.&lt;/p&gt;

&lt;p&gt;Scammer insight: Scammers don’t want you to fixate on the details, or else you’ll realize it’s a scam. Delusions of grandeur keep us from thinking logically.&lt;/p&gt;

&lt;p&gt;🚩 There was a tiered payment structure showing the more someone “invests” the more they make, but the numbers do not make sense, similar to Ponzi schemes.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/bitcoin-scams/02.png&quot; alt=&quot;scheme-showing-impossible-profits&quot; /&gt;&lt;/p&gt;

&lt;p&gt;🚩 Doug and the coach both had pictures on their social media of charts trending up, stacks of money, luxury items, vacations, mobile notifications, and screenshots of bank balances. These screenshots can easily be faked in a matter of seconds and are usually shared across multiple scams and platforms. Why would someone needlessly make themselves a target?&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/bitcoin-scams/03.png&quot; alt=&quot;success-graph&quot; /&gt;&lt;/p&gt;

&lt;p&gt;🚩 The coach stated the company was registered and protected by another entity. I performed an open-source search and could not find registrations for any of the company names, especially not relating to bitcoin.&lt;/p&gt;

&lt;p&gt;🚩 Doug and the coach were both quick to remind Katie repeatedly they were not involved with any fraudulent activity, the process was “100% safe and guaranteed,” and there would be a 5-hour withdrawal period for all the money she was about to make.&lt;/p&gt;

&lt;p&gt;Scammer insight: This reassurance keeps you, the target, moving forward and provides the scammer with enough time to get away if you start to express concerns.&lt;/p&gt;

&lt;h3 id=&quot;when-in-doubt-shout&quot;&gt;When in doubt, shout!&lt;/h3&gt;

&lt;p&gt;I recalled Katie knew Doug in real life prior to the investment conversations. Katie could easily prove if Doug had accumulated this magic knowledge by simply text messaging or calling them, assuming Doug’s phone was not under compromise. After proposing this to Katie, a few minutes went by.&lt;/p&gt;

&lt;p&gt;“I just texted Doug and he said he was hacked!” Katie told me. “His Instagram was taken over and he can’t change his password and get back in! It’s crazy what these scammers are capable of.”&lt;/p&gt;

&lt;h3 id=&quot;yes-it-is-scary&quot;&gt;Yes, it is scary&lt;/h3&gt;

&lt;p&gt;The above attack is not scary because of how it’s performed, how long it takes, or the amount of effort needed. It’s scary because it’s effective. It’s an effective, low-effort trick that is stealing millions of dollars each year. And because people fall for it, one can only wonder how many scams exist that we don’t hear anything about.&lt;/p&gt;

&lt;p&gt;We need to educate ourselves about how scammers operate. They do not need to perform a long-con engagement for a big win. More simply, can they get 60 of their 2,500 followers to send them $1,000? If so, $60,000 for a few hours of work is worth more to the scammer than the heartache and misery you and your family will feel about losing your hard-earned money.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;secure-your-bitcoin-now&quot;&gt;Secure your bitcoin now&lt;/h3&gt;

&lt;p&gt;Casa makes self-custody easy for everyone. Our multi-key vaults protect your bitcoin from accidents, hackers, and more. Learn about our plans &lt;a href=&quot;https://keys.casa/pricing/?ref=ron.stoner.com&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;
&lt;em&gt;An earlier version of this post first appeared &lt;a href=&quot;https://blog.casa.io/how-to-avoid-bitcoin-scams/&quot;&gt;on the Casa blog&lt;/a&gt; in 2022.&lt;/em&gt;&lt;/p&gt;
</description>
        <pubDate>Tue, 01 Mar 2022 08:00:00 +0000</pubDate>
        <link>https://ron.stoner.com/how-to-avoid-bitcoin-scams/</link>
        <guid isPermaLink="true">https://ron.stoner.com/how-to-avoid-bitcoin-scams/</guid>
        
        
      </item>
    
      <item>
        <title>Bitcoin Security 101: How To Create The Healthiest Environment For Your Devices</title>
        <description>&lt;p&gt;By now, we all should be familiar with the mantra of “not your keys, not your coins.” A lot of guides and information are available to bitcoin connoisseurs regarding how to secure your keys and seeds. However, I don’t see much information published about how bitcoin HODLers can secure their environments when using those keys.&lt;/p&gt;

&lt;p&gt;The following are some practical and “paranoid-level” tips and steps I use to help secure healthy environments for my devices and hardware wallets.&lt;/p&gt;

&lt;h2 id=&quot;physical-environment&quot;&gt;Physical environment&lt;/h2&gt;

&lt;p&gt;When using key material in any form, one should take into consideration the room and layout they will be operating within. Public spaces are not recommended due to the multitude of peering eyes, cameras, and general lack of privacy and security. To start evaluating for potential physical security threats, it is better to use an access-controlled location of your choosing, such as a bedroom or personal office. When evaluating a physical space:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Location should be access-controlled, which prevents key operations from being interrupted.&lt;/li&gt;
  &lt;li&gt;The space should be relatively private and not in a public place like a crowded coffee shop.&lt;/li&gt;
  &lt;li&gt;Take note of all cameras and what they are facing. This goes for mobile phones, webcams, and smart watches. When in doubt, cover it up, or remove the device from the environment entirely.&lt;/li&gt;
  &lt;li&gt;Be aware of various Internet-of-Things (IoT) listening devices, such as the ones offered by Amazon and Google. They are always listening!&lt;/li&gt;
  &lt;li&gt;Power off all unnecessary electronic devices that may contain cameras or microphones.&lt;/li&gt;
  &lt;li&gt;Close the blinds, shut the door, and give yourself ample time to do things correctly and without interruption.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Using hardware wallets and performing key operations is NOT a team sport. These tasks should be performed alone and in a silent manner, unless a second witness is needed for attestation.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/healthy-devices/01.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Camfecting, or the process of hacking into a webcam and activating it remotely, can be prevented by covering it or removing it from the environment entirely.&lt;/p&gt;

&lt;h2 id=&quot;compute-environment&quot;&gt;Compute environment&lt;/h2&gt;

&lt;p&gt;Hardware wallets, by design, are engineered to protect your key material without the fear of an infected computer or malware stealing your funds. Having said that, attackers can be extremely clever. One can still take additional steps to ensure they are using the latest security tools to promote a healthy compute (laptop/mobile phone/tablet) environment.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Use your own computer or tablet wherever and whenever possible.&lt;/li&gt;
  &lt;li&gt;Use the included operating system firewall and malware detection tools. If you do not trust these, a third party application would suffice.&lt;/li&gt;
  &lt;li&gt;Ensure a healthy system environment by staying up to date on operating system patches. These patches sometimes include critical security updates which can help keep your computer safe.&lt;/li&gt;
  &lt;li&gt;Use only approved vendor binaries and software releases from official vendor websites and official mobile application (iOS/Android) stores.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those that wish to be extremely cautious may choose to use an air gapped computer to sign transactions offline and broadcast them through a separate online computer. This is only recommended if you know exactly what you are doing, as fully securing an air gap computer is an intensive and comprehensive task.&lt;/p&gt;

&lt;h2 id=&quot;hardware-wallets&quot;&gt;Hardware wallet(s)&lt;/h2&gt;

&lt;p&gt;The “keys to the kingdom” that control your bitcoin should reside in your hardware wallet. If you are not using a hardware wallet, &lt;a href=&quot;https://keys.casa/gold?ref=ron.stoner.com&quot;&gt;sign up for a Casa account here&lt;/a&gt;. Before we touch any hardware, let’s ensure we are electrically grounded by either touching a door knob, large piece of metal, or a common ground. This ensures we don’t zap our devices with static charge when handling them.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Run hardware device firmware updates periodically to ensure the latest security updates have been applied. (At Casa, our team reviews every firmware update for the hardware wallets we support. If you’re a Casa member, be sure to consult our &lt;a href=&quot;https://support.keys.casa/hc/en-us/articles/360045460372?ref=ron.stoner.com&quot;&gt;help center&lt;/a&gt; before updating your firmware.)&lt;/li&gt;
  &lt;li&gt;Perform a Casa Health Check in the Casa mobile app to ensure the health of each of your hardware devices.&lt;/li&gt;
  &lt;li&gt;Use only the supplier-provided USB cable. USB cables vary in voltage, stability, and there are even attacks that can be built into makeshift cables!&lt;/li&gt;
  &lt;li&gt;Always verify all prompts and addresses on the hardware wallet screen.&lt;/li&gt;
  &lt;li&gt;Use a Casa-branded Faraday bag (available through our membership plans).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/healthy-devices/02.jpeg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Faraday bags help to block electromagnetic fields and wireless signals&lt;/p&gt;

&lt;p&gt;By incorporating some of the tips above, you are taking the steps to ensure the safety of your keys and bitcoin, as well as the safety of you and your operating environment. Stay safe!&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;secure-your-bitcoin-now&quot;&gt;Secure your bitcoin now&lt;/h3&gt;

&lt;p&gt;Casa makes self-custody easy for everyone. Our multi-key vaults protect your bitcoin from accidents, hackers, and more. Learn about our plans &lt;a href=&quot;https://keys.casa/pricing/?ref=ron.stoner.com&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;
&lt;em&gt;An earlier version of this post first appeared &lt;a href=&quot;https://blog.casa.io/bitcoin-security-101-how-to-create-the-healthiest-environment-for-your-devices/&quot;&gt;on the Casa blog&lt;/a&gt; in 2021.&lt;/em&gt;&lt;/p&gt;
</description>
        <pubDate>Sat, 24 Jul 2021 13:00:00 +0000</pubDate>
        <link>https://ron.stoner.com/how-to-create-the-healthiest-environment-for-your-devices/</link>
        <guid isPermaLink="true">https://ron.stoner.com/how-to-create-the-healthiest-environment-for-your-devices/</guid>
        
        
      </item>
    
      <item>
        <title>#kksctf open 2019 Write Up</title>
        <description>&lt;p&gt;This write up is a culmination of articles from a Capture The Flag competition and are all being concatenated here.&lt;/p&gt;

&lt;h2 id=&quot;red-xoxoxo&quot;&gt;Red XOXOXO&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/kksctf-2019/01.jpeg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;the-challenge&quot;&gt;The Challenge&lt;/h3&gt;

&lt;p&gt;We receive a message that is captured, and since this challenge is listed as “crypto”, we need to decipher the cipher text of &lt;em&gt;-&lt;/em&gt;;91~.,1&lt;em&gt;1=12~;-&lt;/em&gt;?&amp;lt;27–6;:r~+-;~=27;0&lt;em&gt;~&lt;/em&gt;1~=100;=&lt;em&gt;p~7y3~)?7&lt;/em&gt;709~81,~+,~,;.2’p~55-%?&lt;em&gt;*j=5.?&lt;/em&gt;.:j)0#*&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/kksctf-2019/02.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;Our challenge information&lt;/em&gt;&lt;/p&gt;

&lt;h3 id=&quot;the-solution&quot;&gt;The Solution&lt;/h3&gt;

&lt;p&gt;The above cipher text has a variety of characters in it. Due to this, we can greatly reduce the type of encryption being used. Our hint also gives us a pointer in the right direction with the &lt;strong&gt;XOXOXO&lt;/strong&gt; (XOR) in the title.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/kksctf-2019/03.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;Brute forcing the key space&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;When attempting a variety of ciphers, a &lt;strong&gt;XOR&lt;/strong&gt; brute force attack is attempted.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/kksctf-2019/04.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;Finding a possible key&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Our brute force attack has found a possible key and provided us with positive confirmation in the form of clear text. Unfortunately, this is not the correct flag, as this tool and key combination do not give us correct output. Using another tool, we can brute force the key space and find the correct key.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/kksctf-2019/05.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;Finding the flag for the win&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The key of 5e is found and the string is decrypted, revealing to us the final flag.&lt;/p&gt;

&lt;h2 id=&quot;stego-warmup&quot;&gt;Stego Warmup&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/kksctf-2019/06.jpeg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;the-challenge-1&quot;&gt;The Challenge&lt;/h3&gt;
&lt;blockquote&gt;
  &lt;p&gt;We get some file. Can you find secret?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We are provided the above file of Shaq gracefully obfuscating himself behind a tree. No other clues or hints are provided.&lt;/p&gt;

&lt;h3 id=&quot;the-solution-1&quot;&gt;The Solution&lt;/h3&gt;

&lt;p&gt;This was an extremely easy steganography challenge. The flag we are looking for is embedded inside the image data. We can extract the &lt;strong&gt;EXIF&lt;/strong&gt; metadata from the image using &lt;strong&gt;exiftool&lt;/strong&gt;, revealing the final flag.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/kksctf-2019/07.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;Solved!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We can see in the above image that the flag was in the &lt;strong&gt;Author&lt;/strong&gt; field in clear text. On to the next challenge!&lt;/p&gt;

&lt;h2 id=&quot;xmas-tree&quot;&gt;Xmas Tree&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/kksctf-2019/08.jpeg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;the-challenge-2&quot;&gt;The Challenge&lt;/h3&gt;
&lt;blockquote&gt;
  &lt;p&gt;Do you like to decorate the Christmas tree?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This challenge was listed as “Misc”, and no other hints were provided.&lt;/p&gt;

&lt;h3 id=&quot;the-solution-2&quot;&gt;The Solution&lt;/h3&gt;

&lt;p&gt;This was an easy challenge, as the answer was literally staring participants in the face during the entire CTF. Navigating to the kksctf web page showed a variety of Christmas themes, including a neat &lt;strong&gt;ASCII&lt;/strong&gt; Christmas tree.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/kksctf-2019/09.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;ASCII Art!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The above tree &lt;strong&gt;ASCII&lt;/strong&gt; art shows a few different pieces of text in different colors. If we look in the HTML source, we can see the **&lt;span&gt;** tags which indicate a color change for certain pieces of text.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/kksctf-2019/10.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;It looks sweet in HTML too!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Combining the 7 pieces of colored text results in the final flag of &lt;strong&gt;kks{n3w_y34r_m@dn3$$}&lt;/strong&gt;. Happy New Year!&lt;/p&gt;

&lt;h2 id=&quot;postman&quot;&gt;Postman&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/kksctf-2019/11.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;the-challenge-3&quot;&gt;The Challenge&lt;/h3&gt;
&lt;blockquote&gt;
  &lt;p&gt;Hey, some haсkers steal my mail. Can you help return and deliver it?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The Postman challenge provides us with a remote website and port. Navigating to the site shows us only a single line of text asking us to help the user retrieve their email.&lt;/p&gt;

&lt;h3 id=&quot;the-solution-3&quot;&gt;The Solution&lt;/h3&gt;

&lt;p&gt;Let’s help the user get their mail! Trying things like a mail. sub-domain unfortunately did not work. We will have to go back to basics. Checking the &lt;strong&gt;robots.txt&lt;/strong&gt; file gives us an unlisted URL to check.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/kksctf-2019/12.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;robots.txt&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We find the &lt;strong&gt;/postbox&lt;/strong&gt; URL and navigate to it, but immediately get shut down due to an incorrect HTTP call.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/kksctf-2019/13.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;Denied&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;“Method Not Allowed” indicates that we made an incorrect type of request to the web server. By default, this call is a &lt;strong&gt;GET&lt;/strong&gt; request. We can either change the request type using proxies or extensions in our browser, or we can use &lt;strong&gt;curl&lt;/strong&gt; and send a &lt;strong&gt;POST&lt;/strong&gt; request. While &lt;strong&gt;GET&lt;/strong&gt; makes a call to retrieve information from a website, &lt;strong&gt;POST&lt;/strong&gt; sends data (such as logging into a mailbox service!).&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;curl -X POST &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;http://tasks[dot]open[dot]kksctf[dot]ru:8001/postbox&lt;/code&gt; &lt;em&gt;(event server, no longer online)&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/kksctf-2019/14.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;The final flag&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The request is processed and the final flag is returned to us. Our user is now happy that they have their mail, and we are happy that this challenge is solved.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;
&lt;em&gt;An earlier version of this writeup first appeared &lt;a href=&quot;https://medium.com/@forwardsecrecy/kksctf-open-2019-red-xoxoxo-df2b1fe454f2&quot;&gt;on Medium&lt;/a&gt; in 2019.&lt;/em&gt;&lt;/p&gt;
</description>
        <pubDate>Sun, 29 Dec 2019 15:00:00 +0000</pubDate>
        <link>https://ron.stoner.com/kksctf-open-2019/</link>
        <guid isPermaLink="true">https://ron.stoner.com/kksctf-open-2019/</guid>
        
        
      </item>
    
      <item>
        <title>OverTheWire Advent Bonanza 2019</title>
        <description>&lt;p&gt;This write up is a culmination of articles from a Capture The Flag competition and are all being concatenated here. You can see other challenge write ups on the main post &lt;a href=&quot;https://medium.com/@forwardsecrecy/overthewire-advent-bonanza-2019-capture-the-flag-competition-66c50671c641&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;easter-egg-1&quot;&gt;Easter Egg 1&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/01.jpeg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Part of the fun of CTF challenges is searching for Easter Egg flags. These flags usually don’t require a ton of advanced skill, but are random fun things to find for points during an intense competition.&lt;/p&gt;

&lt;p&gt;The only hint for Easter Egg 1 in the OverTheWire Advent Bonanza 2019 was:&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;TODO: make clean&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Last year’s Easter Egg challenge revolved around the &lt;strong&gt;robots.txt **file. **Robots.txt&lt;/strong&gt; does what it’s named for, and provides directions to web site crawlers and spiders (such as Google), as to what files it should and should not index. The challenge last year included the flag inside this file, just in case any end users or curious hackers looked at it’s contents. This year seemed a bit different though.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/02.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;No dice. The clue &lt;strong&gt;TODO: make clean **refers to the C/C++ **make **command. Adding **clean&lt;/strong&gt; to this command tells the compiler to clean up any old temporary files and artifacts used during the build process. Using that knowledge, we can look for various types of these files on the web server. Eventually, we hit on &lt;strong&gt;robots.txt~&lt;/strong&gt;, which indicates a temporary version of the &lt;strong&gt;robots.txt&lt;/strong&gt;file.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/03.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;Finding the secret URL in the temporary robots.txt~ file&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We can see from above, that there is a secret file named &lt;strong&gt;/static/_m0r3_s3cret.txt&lt;/strong&gt; on the web server. Navigating to that file gives us the final flag, and the easter egg has been found.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/04.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;Sweet easter egg points!&lt;/em&gt;&lt;/p&gt;

&lt;h2 id=&quot;easter-egg-2&quot;&gt;Easter Egg 2&lt;/h2&gt;

&lt;p&gt;Part of the fun of CTF challenges is searching for Easter Egg flags. These flags usually don’t require a ton of advanced skill, but are random fun things to find for points during an intense competition.&lt;/p&gt;

&lt;p&gt;Easter Egg 2 gave no hints what-so-ever, except for that fact that it was hosted somewhere on the official OverTheWire Advent Bonanza 2019 website. This would be a search for a needle in haystack (or a flag on a website).&lt;/p&gt;

&lt;p&gt;After a bunch of enumeration, a man in the middle web request proxy was used to intercept the web traffic between the web browser and the web server. By doing this, one can see every bit of information that is being sent when a user requests or sends information to a website.&lt;/p&gt;

&lt;p&gt;A new an interesting web header was located using the MITM proxy.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/05.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;Oooooh&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The string above should be recognized as &lt;strong&gt;base64&lt;/strong&gt;, but it seems like it’s reversed. Reversing the text and decoding the &lt;strong&gt;base64&lt;/strong&gt; string gives the following:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/06.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;Not the final flag, but we can still work with this&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Decoding the string does not reveal the final flag, but we do get text we can analyze and work with further. &lt;strong&gt;ROT13&lt;/strong&gt; is a substitution cipher that literally moves letters forward or backwards a set number of positions, in this case 13 characters. An example of this would be the letter N in a message being written as the letter A (N to A is 13 letters). Using some linux command line fu, we can pipe the text into the &lt;strong&gt;tr&lt;/strong&gt; command and reveal the final flag.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/07.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;ROT13 decrypt for the final flag&lt;/em&gt;&lt;/p&gt;

&lt;h2 id=&quot;easter-egg-3&quot;&gt;Easter Egg 3&lt;/h2&gt;

&lt;p&gt;Easter Egg 3 directed competitors to the OverTheWireCTF Twitter page located at &lt;a href=&quot;https://x.com/OverTheWireCTF&quot;&gt;https://x.com/OverTheWireCTF&lt;/a&gt;. One thing that jumped out was a post with a picture signifying a new day in the competition.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/08.jpeg&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;Do you see what I see?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The above image actually has a ton of information in it. On first glance, we can see a QR code in the middle of the Egg wearing the Santa hat. Scanning the QR code may yield different results depending on the end user and the application. Here’s why.&lt;/p&gt;

&lt;p&gt;Everyone is used to a few types of barcode formats such as QR, PDF417 (on the back of US licenses), and UPC/EAN for products they purchase.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/09.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Most people are used to scanning a single type of code and getting the information they need. The above challenge is interesting in that the image pictured contains both a QR code, AND an Aztec formatted code (right in the middle of the picture). If we look back at the original image on Twitter, we can see that the font used in “DAY 10” appears to be Aztec in nature…oh well, let’s scan some codes!&lt;/p&gt;

&lt;h3 id=&quot;scan-results&quot;&gt;Scan Results&lt;/h3&gt;

&lt;h4 id=&quot;aztec-414f54577b6234726330643373&quot;&gt;Aztec: 414f54577b6234726330643373&lt;/h4&gt;

&lt;h4 id=&quot;qr-code-1376413715417114663175&quot;&gt;QR Code: 137:64:137:154:171:146:63:175&lt;/h4&gt;

&lt;p&gt;The numbers in the Aztec code portion correspond to ASCII characters in Hex notation. An example of this would be 41 representing the letter “A”. Decoding this section gives us the first part of the final flag.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AOTW{b4rc0d3s&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The numbers above in the QR code portion correspond to ASCII characters in Octal notation. For example, the number 137 represents the character “_”. Decoding this section gives us the second part of the final flag.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;_4_lyf3}&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Combining both parts yields us the completed and final flag.&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;&lt;strong&gt;AOTW{b4rc0d3s_4_lyf3}&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;challenge-zero&quot;&gt;Challenge Zero&lt;/h2&gt;

&lt;p&gt;Prior to the start of OverTheWire Advent Bonanza 2019, the creators released a “Challenge Zero” for teams to work on. The challenge was located at &lt;a href=&quot;https://web.archive.org/web/20191209211831/https://advent2019.overthewire.org/dashboard/information/&quot;&gt;https://advent2019[dot]overthewire[dot]org/challenge-zero&lt;/a&gt; &lt;em&gt;(archived dashboard — event server is no longer online; the exact challenge URL was never archived)&lt;/em&gt;, which showed a web page with an animated GIF of fire burning with the following message:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/10.gif&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Fox! Fox! Burning bright! In the forests of the night!

Hint: $ break *0x7c00
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The above hint refers to the command line of &lt;strong&gt;gdb&lt;/strong&gt;, a linux debugger. At this point though, we have nothing to break so we need to keep looking. In the spirit of Capture The Flag competitions, my team and I tried viewing the web page and GIF in different ways. Using the text based browser &lt;strong&gt;links&lt;/strong&gt; leads us to our next clue.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/11.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The line “D0NT PU5H M3 C0Z 1M C1053 TO T3H 3DG3” is l33tspeak for a song lyric from &lt;em&gt;The Message&lt;/em&gt; by &lt;strong&gt;GrandMaster Flash&lt;/strong&gt;.&lt;/p&gt;

&lt;iframe src=&quot;https://www.youtube.com/embed/PobrSpMwKk4?si=dQ-akgfiIug2ghCS&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The next lyric in the song “I’m trying not to lose my &lt;strong&gt;HEAD”&lt;/strong&gt; clues us in that we need to make a &lt;strong&gt;HEAD&lt;/strong&gt; web request. We can use &lt;strong&gt;curl&lt;/strong&gt; and the command line to easily do this.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/12.gif&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;Animated Texty Goodness&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We can see in the above image that the flames are made up of random text characters to achieve the animation effect. The other hint we saw above was “If only the flames wouldn’t move so much” which alludes to the fact that the image is an animation made up of multiple frames. Since we are using &lt;strong&gt;curl&lt;/strong&gt; on the command line, we can scroll back through our console buffer and see each frame of text making up the animation. I noticed that the string of text ended in “==”, which signifies &lt;strong&gt;base64&lt;/strong&gt; encoding. &lt;strong&gt;**By compiling all the text and removing padding characters (# in this case), we get a completed **base64&lt;/strong&gt; string.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/13.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;Base64 decoding the string resulting in a new uuencoded file to play with&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The output above is uuencoded and can be decoded using the xxd tool. Once decoded, we have a boot.bin file. To my surprise, the &lt;strong&gt;base64&lt;/strong&gt; string did not contain the flag itself, but rather a bootable virtual machine image.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/14.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;Confirming the file type of boot.bin&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Taking the binary boot file and loading it into a virtualization hypervisor resulted in the following:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/15.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Aha! We have a binary that is loaded and referencing last year’s CTF challenge using the &lt;strong&gt;RC4&lt;/strong&gt; stream cipher. It seems we need to break this binary as well. Thankfully, the linux command line debugging tool &lt;strong&gt;gdb&lt;/strong&gt; can connect to remotely running binaries for remote debugging purposes. Our original hint of &lt;em&gt;break *0x7c00&lt;/em&gt; finally comes into play. We can now load up &lt;strong&gt;gdb&lt;/strong&gt;, set the proper breakpoint, and start attacking the binary.&lt;/p&gt;

&lt;p&gt;Using &lt;strong&gt;gdb&lt;/strong&gt; allows us to dump the Intel formatted assembly code so we can get a better understand of what is going on.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/16.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;A sampling of the dumped code&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We can see from the code that we are performing some &lt;strong&gt;AES&lt;/strong&gt; encryption functions of data in the registers. I also noticed that there was a condition to check if the input was 16 characters or not. If it wasn’t, a different jump and code routine was executed. When a password of 16 characters is used, a new jump is taken which performs some XOR operations on the code and various registers.&lt;/p&gt;

&lt;p&gt;The program ultimately takes the users input and stores it into &lt;strong&gt;xmm3&lt;/strong&gt;. The instruction at &lt;strong&gt;0x7c62: movaps xmm0,XMMWORD PTR [rsi]&lt;/strong&gt; moves the AES encryption key into &lt;strong&gt;xmm0&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/17.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;Storing the user input into xmm3&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/18.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;The key is loaded into xmm0&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The data in &lt;strong&gt;xmm3&lt;/strong&gt; then gets XOR’d against a static address which contains hard coded cipher text to see if it matches. If it does, we get the flag. If it does not, the program cleans up the registers and prompts the user again for a password. When we check the debug output we can find the hard coded location and it’s data.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/19.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;The location of the hard coded cipher text&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/20.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;The cipher text contents in little endian format&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Taking both the cipher text and key allows us to perform an AES decryption which reveals the password we need — &lt;strong&gt;MiLiT4RyGr4d3MbR&lt;/strong&gt;.&lt;/p&gt;

&lt;script src=&quot;https://gist.github.com/ronaldstoner/b9cb4330085e17f8dad1d723f732ee2c.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/21.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;Running the script and decrypting the password&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;At this point we can input the password into the virtual machine, pass the check, and receive the final flag. We went from an animated gif, to base64 text, to a uuencoded boot image, to a binary that needed to be remotely debugged. What a challenge!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/22.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;7110&quot;&gt;7110&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Santa is stranded on the Christmas Islands and is desperately trying to reach his trusty companion via cellphone. We’ve bugged the device with a primitive keylogger and have been able to decode some of the SMS, but couldn’t make much sense of the last one. Can you give us a hand?&lt;/em&gt;&lt;/p&gt;

&lt;h3 id=&quot;the-data&quot;&gt;The Data&lt;/h3&gt;

&lt;p&gt;The challenge included an archive consisting of 4 comma delimited files, and 3 text files so that competitors could compare the data to the expected result. It was up to us to figure out message #4. Since I’ve been around awhile, I immediately recognized the name and nature of this type of challenge.&lt;/p&gt;

&lt;h3 id=&quot;the-background&quot;&gt;The Background&lt;/h3&gt;

&lt;p&gt;In the pre-smartphone days, Nokia ruled the land of cell phones. They had limited features, could play Snake, and were built like tanks. Before we were all able to touch our screens to make things happen, we needed to use physical hardware buttons. Insane, right?!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/23.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Those same hardware buttons were used for sending SMS text messages between phones. Since you were only limited to the buttons on the keypad, each button needed to provide multiple functions.&lt;/p&gt;

&lt;p&gt;In order to type the letter &lt;strong&gt;A&lt;/strong&gt;, a user would hit the number &lt;strong&gt;2&lt;/strong&gt; button one time. If you wanted to type a &lt;strong&gt;B&lt;/strong&gt;, you’d hit the number &lt;strong&gt;2&lt;/strong&gt; button two times. If you wanted a &lt;strong&gt;C&lt;/strong&gt;, you’d hit it three times. This input style was referred to as **Multi-tap **— &lt;a href=&quot;https://en.wikipedia.org/wiki/Multi-tap&quot;&gt;https://en.wikipedia.org/wiki/Multi-tap&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Now imagine having to type a long story or grocery list to someone using that input style. Thankfully those days of painful texting are over, but this challenge reached out to the old school phreaker inside me.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/24.jpeg&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;Nokia 7110&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In regards to the challenge name, the Nokia 7110 was a special edition phone with a sliding cover in honor of the movie “The Matrix”. The model number itself doesn’t have much to do with the challenge itself, but does point us to the text character set we should be using for the challenge.&lt;/p&gt;

&lt;h3 id=&quot;the-solution&quot;&gt;The Solution&lt;/h3&gt;

&lt;p&gt;The 4th message file contained data in the same format as the other files. When looking at the format, it shows a timestamp in the first column, with the digit pressed on the phone in the second. Numbers in the second column appearing in sequence indicate that specific button being pressed multiple times (in order for the letters for that number to cycle).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/25.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;A sample of csv4 data — the first column is a timestamp/uid and the second is the number pressed&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;You may notice the numbers &lt;strong&gt;100&lt;/strong&gt; through &lt;strong&gt;103&lt;/strong&gt; and &lt;strong&gt;11&lt;/strong&gt; in the above data. These represent the &lt;strong&gt;hash&lt;/strong&gt;, &lt;strong&gt;MENU_LEFT&lt;/strong&gt;, &lt;strong&gt;MENU_RIGHT&lt;/strong&gt;, and other navigation buttons. At this point, the numbered key presses can be extracted and decoded for the flag. Due to the nature and knowledge of multi-tap, this can be achieved manually by hand, or using an automated script such as a python custom dictionary.&lt;/p&gt;

&lt;h3 id=&quot;the-extracted-key-presses&quot;&gt;The extracted key presses:&lt;/h3&gt;
&lt;blockquote&gt;
  &lt;p&gt;100 100 100 100 11 11 2 5 5 5 7 7 7 4 4 4 4 4 4 8 0 7 2 5 5 5 0 4 4 3 3 7 7 7 7 7 7 7 102 3 3 103 0 9 9 9 3 3 0 3 3 3 5 5 5 2 4 0 4 6 6 6 6 6 6 6 6 6 6 3 0 5 5 5 8 8 2 2 2 5 0 3 3 6 6 8 3 3 7 7 7 102 102 102 102 102 102 102 103 101 5 5 103 103 103 103 103 103 4 4 4 6 6 4 0 4 4 4 8 0 9 4 4 4 8 4 4 0 8 4 4 6 6 6 7 7 7 7 3 3 0 4 4 6 6 6 6 6 6 8 8 8 3 3 7 7 7 7 0 5 5 5 6 6 6 5 5 5 0 4 4 4 8 7 7 7 7 0 2 6 6 6 8 9 10 10 10 10 10 10 10 10 10 10 10 10 5 5 5 3 3 3 3 8 7 7 7 7 10 10 10 10 3 7 7 7 1 1 1 1 1 1 1 6 6 5 5 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 7 7 7 7 0 0 6 3 3 3 3 10 10 10 10 3 3 4 4 6 6 6 6 6 6 6 6 6 4 101 101 0 0 4 10 10 10 10 9 9 9 0 0 8 8 10 10 10 10 2 2 2 7 7 7 4 4 4 4 9 9 9 9 9 9 9 10 10 10 10 3 3 3 3 3 3 3 3 3 7 7 7 10 10 10 10 10 10 10 10 10 10 10 10 10 100 100 0 0 6 1 1 0 1 5 5 5 0 1 1 7 100&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3 id=&quot;the-multi-tap-decoded-output-and-final-flag&quot;&gt;The Multi-tap decoded output and final flag:&lt;/h3&gt;
&lt;blockquote&gt;
  &lt;p&gt;MENU_LEFT MENU_LEFT MENU_LEFT MENU_LEFT HASH HASH [a][l][r][i][g][h][t][ ][p][a][l][ ][h][e][r][s] MENU_UP [e] MENU_DOWN [ ][y][e][ ][f][l][a][g][ ][g][o][o][d][ ][l][u][c][j][ ][e][n][t][e][r] MENU_UP MENU_UP MENU_UP MENU_UP MENU_UP MENU_UP MENU_UP MENU_DOWN MENU_RIGHT [k] MENU_DOWN MENU_DOWN MENU_DOWN MENU_DOWN MENU_DOWN MENU_DOWN [i][n][g][ ][i][t][ ][w][i][t][h][ ][t][h][o][s][e][ ][h][o][o][v][e][s][ ][l][o][l][ ][i][t][s][ ][a][o][t][w][{][l][3][t][s][&lt;em&gt;][d][r][1][n][k][&lt;/em&gt;][s][0][m][3][&lt;em&gt;][e][g][g][n][o][g] MENU_RIGHT MENU_RIGHT [0][g][&lt;/em&gt;][y][0][u][&lt;em&gt;][c][r][4][z][y][&lt;/em&gt;][d][3][3][r][}] MENU_LEFT MENU_LEFT [0][m][.][.][ ][.][l][ ][,][p] MENU_LEFT&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;mooo&quot;&gt;Mooo&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/26.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;‘Moo may represent an idea, but only the cow knows.’ — Mason Cooley&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Mooo was one of the more fun challenges and provided us with a web service running on a specific port and IP address. Navigating to the site brings us to an implementation of &lt;strong&gt;cowsay&lt;/strong&gt;. &lt;strong&gt;Cowsay&lt;/strong&gt; takes input from a user and displays it in an ASCII art formatted cow.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/27.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;The cowsay program (banner at bottom is cut off)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We know the name of the program due to the banner at the very bottom of the page (not shown here) listing the program version as &lt;strong&gt;Powered by &lt;a href=&quot;https://packages.ubuntu.com/bionic/cowsay&quot;&gt;cowsay 3.03+dfsg2–4&lt;/a&gt;.&lt;/strong&gt; As a hacker, if we can get access to the source code then we can start looking at places to poke and prod. &lt;strong&gt;Cowsay&lt;/strong&gt; happens to have it’s source code listed at &lt;a href=&quot;https://github.com/schacon/cowsay/blob/master/cowsay&quot;&gt;https://github.com/schacon/cowsay/blob/master/cowsay&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/28.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;Part of the cowsay source code&lt;/em&gt;&lt;/p&gt;

&lt;h3 id=&quot;the-solution-1&quot;&gt;The Solution&lt;/h3&gt;

&lt;p&gt;After reviewing the Github and source code, we know that &lt;strong&gt;cowsay&lt;/strong&gt; is written in the &lt;strong&gt;Perl&lt;/strong&gt; programming language. Unfortunately, the only input field we’ve seen so far places text in the cow’s speech bubble. Attacking this did not seem to yield any results, as it seems the input field is being sanitized. We need to look elsewhere for an attack vector. Fortunately, a “custom” cow template exists that gives us more input fields to play with.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/29.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;The custom cow template&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We now know that the program is written in Perl, and we have more input fields to play with. No attacks were found after trying some web application and string escapes in the &lt;strong&gt;Message&lt;/strong&gt;, &lt;strong&gt;Eyes&lt;/strong&gt;, and &lt;strong&gt;Tongue&lt;/strong&gt; field, but something interesting was found when testing things against the &lt;strong&gt;Cow&lt;/strong&gt; text field.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Perl&lt;/strong&gt; is not one of my strongest or favorite programming languages. Someone on my team decided to &lt;strong&gt;RTFM&lt;/strong&gt; and found a gem inside the Perl documentation located at &lt;a href=&quot;https://perldoc.perl.org/perlop.html&quot;&gt;https://perldoc.perl.org/perlop.html&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/30.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;The key to the kingdom, and a great Perl escape&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;They noticed that some Perl scripts contained &lt;strong&gt;EOF&lt;/strong&gt; (End of File), while this one had &lt;strong&gt;EOC&lt;/strong&gt; (I’m assuming End of Command, but it’s actually End of Cow), indicating that the code was to exit after finishing it’s code processing. This &lt;strong&gt;EOC&lt;/strong&gt; command was also present in the custom cow template. We tried to pass &lt;strong&gt;EOC,&lt;/strong&gt; which seemed to work without reporting any errors. After that, we tried chaining commands with the linux &lt;strong&gt;id&lt;/strong&gt; command to see if we had escaped Perl and reached a shell.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/31.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;Cowsay failed, but have we?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The server didn’t like our &lt;strong&gt;id&lt;/strong&gt; command, so it didn’t seem we were at a shell yet. We did get an error message when adding the &lt;strong&gt;id&lt;/strong&gt; command, whereas we did not when previously trying just &lt;strong&gt;EOC&lt;/strong&gt;, so it seems we’ve escaped Perl, but now we’re….somewhere else entirely.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/32.jpeg&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;No, not there.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Knowing that web applications can only be hosted by a variety of services, we try a variety of commands in different syntax. When attempting a &lt;strong&gt;python&lt;/strong&gt; module import, we no longer receive any errors.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/33.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;No errors!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Did we escape from &lt;strong&gt;Perl&lt;/strong&gt; and land in &lt;strong&gt;Python&lt;/strong&gt;? I think we did! Let’s see if we can get &lt;strong&gt;python&lt;/strong&gt; to execute shell commands for us using the &lt;strong&gt;os.system&lt;/strong&gt; call.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/34.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;The final flag&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;python&lt;/strong&gt; call executes and we get the final flag. Mooo!&lt;/p&gt;

&lt;h2 id=&quot;tiny-runes&quot;&gt;Tiny Runes&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/35.jpeg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;One of Santa’s Little Helpers received an unusual Christmas wish, a copy of the yet to be released Deus Hex game. All they managed to find were fragments from the dialogue system. Can you decode the last one?&lt;/em&gt;&lt;/p&gt;

&lt;h3 id=&quot;the-data-1&quot;&gt;The Data&lt;/h3&gt;

&lt;p&gt;The “tiny runes” challenge was a reverse engineering and forensics challenge that included an archive containing 4 binary files containing speech text data for a game engine. Files 1 through 3 included a .txt file showing the game text, so that competitors would have examples to reference. The goal was to take the binary data for the fourth file, and come up with the corresponding text (hopefully containing the flag).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/36.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;An example of provided game engine text&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/37.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;Contents of the binary file&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;While we didn’t see anything in the binary files using things like &lt;strong&gt;strings&lt;/strong&gt;, the real magic was looking at the hex data (per the game name in the clue) of the file in order to see what bytes were being read.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/38.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;A hex dump of the example binary file #1&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;All 4 provided binary files had mostly the same bytes and format, up until the section starting at &lt;strong&gt;0x329&lt;/strong&gt;. Since the data was different between all 4 files, it was determined that this was where the speech text data was being stored.&lt;/p&gt;

&lt;p&gt;Each file had the values &lt;strong&gt;00 00 00 XX **in **0x329&lt;/strong&gt; to &lt;strong&gt;0x3BF&lt;/strong&gt;, with the last byte seeming to indicate the size of the text about to follow.&lt;/p&gt;

&lt;p&gt;We know from the 1st binary file and text that the line starts off with “JC Denton”, but the next bytes we are looking at currently show &lt;strong&gt;05 01.&lt;/strong&gt; How does this map to the letter “J”?&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/39.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;Binwalking for more&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Running the &lt;strong&gt;binwalk&lt;/strong&gt; or &lt;strong&gt;foremost&lt;/strong&gt; forensic tools on the binary files not only shows text data, but we see a &lt;strong&gt;PNG&lt;/strong&gt; image file that we can carve out and extract. The image file itself appears to be a character legend, showing a different arrangement of game text characters.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/40.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;The extracted PNG file.&lt;/em&gt;&lt;/p&gt;

&lt;h3 id=&quot;the-solution-2&quot;&gt;The Solution&lt;/h3&gt;

&lt;p&gt;Remember we were trying to figure out how to get the next bytes in the binary file, &lt;strong&gt;05&lt;/strong&gt; and &lt;strong&gt;01&lt;/strong&gt;, to represent the character “J”? From the above legend, if we count starting from 0 from the top down, left to right — “J” is &lt;strong&gt;01&lt;/strong&gt; row down, and &lt;strong&gt;05&lt;/strong&gt; characters over. Remember to start counting from 0. “C” would be &lt;strong&gt;03&lt;/strong&gt; across, and &lt;strong&gt;0A&lt;/strong&gt; rows down. It seems the text is being encoded in the file using a grid pattern with coordinates to which character is which.&lt;/p&gt;

&lt;p&gt;Using this, we can reverse engineer the 3 provided binary and text files to generate our own character mapping so that we can process the 4th binary file, and get the final text.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/41.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;Checking the bytes for the 4th binary&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The bytes from 0x399 to 0x3D8 contain our flag string.&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;07 04 04 05 04 0A 04 09 01 09 00 06 00 09 05 03 00 0A 02 02 05 03 02 02 07 03 02 00 00 0A 00 0A 01 05 00 05 02 02 06 02 01 04 03 08 01 05 02 02 06 02 02 00 07 03 04 02 05 03 00 0A 07 09 06 07&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Using the legend above, we can start working through the byte pairs/coordinates by hand, or use an automated script. &lt;strong&gt;07&lt;/strong&gt; across and &lt;strong&gt;04&lt;/strong&gt; down would be the character “A”. &lt;strong&gt;04&lt;/strong&gt; across and &lt;strong&gt;05&lt;/strong&gt; down would be the character “O”, and so on and so on until we get the final flag — &lt;strong&gt;AOTW{wh4t_4_r0tt3n_fi13_f0rm4t}&lt;/strong&gt;.&lt;/p&gt;

&lt;h2 id=&quot;santas-signature&quot;&gt;Santa’s Signature&lt;/h2&gt;

&lt;blockquote&gt;
  &lt;p&gt;Can you forge Santa’s signature?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3 id=&quot;the-data-2&quot;&gt;The Data&lt;/h3&gt;

&lt;p&gt;We are provided a remote service to connect to, as well as some source code on how that service is running.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/42.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;The remote service&lt;/em&gt;&lt;/p&gt;

&lt;script src=&quot;https://gist.github.com/ronaldstoner/d008dce576b7ef13ed1726a7e10e570e.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;

&lt;p&gt;The remote service (and reading the source code) shows us a generated textbook &lt;strong&gt;RSA&lt;/strong&gt; public key, and a request for us to provide 3 signed messages and digital signatures in hex encoding. Generally during CTF competitions, RSA challenges come down to factoring an unknown private key in order to decode a message. This is due to the fact that textbook RSA does not contain any padding, and can be defeated using cryptography and algebra.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/43.jpeg&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;Textbook RSA&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In order to crack the private key, we need a modulus (&lt;strong&gt;n&lt;/strong&gt;) and exponent (&lt;strong&gt;e&lt;/strong&gt;) that conform to certain properties (small modulus, small exponent, similar modulus/exponent)so that it’s easier to defeat the cryptography and math.&lt;/p&gt;

&lt;p&gt;When checking these values, it seems we cannot crack the private key itself in this challenge due to such a large modulus (&lt;strong&gt;n&lt;/strong&gt;) value.&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;n = 0xbb58dbdfd1999…[lots of characters]…d64f501c6640b95c57f
e = 65537&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Based off the source code for the remote service, we need to pass 3 messages and provide 3 valid digital signatures per the &lt;em&gt;key.verify(m,s) *check&lt;/em&gt;.*&lt;/p&gt;

&lt;p&gt;Since we can provide the message and digital signature, there is an easy way to trick this automated verification system into accepting forged signatures. If we use the values of &lt;strong&gt;0&lt;/strong&gt; for the message and signature, or the values of &lt;strong&gt;1&lt;/strong&gt; for both — the RSA signature formula (s^e mod n) should still calculate out and pass all the requested checks.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/44.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;Passing check 1 and 2, but not check 3.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We were able to pass message 1 and message 2 by using the values &lt;strong&gt;0 **and **1&lt;/strong&gt;, but we can’t provide either of those again for the 3rd message. Bummer.&lt;/p&gt;

&lt;p&gt;But wait…we know the modulus (&lt;strong&gt;n&lt;/strong&gt;), the exponent (&lt;strong&gt;e&lt;/strong&gt;), and we can control the digital signature (&lt;strong&gt;s&lt;/strong&gt;). Using this, we can figure out an appropriate message (&lt;strong&gt;m&lt;/strong&gt;) that should pass verification from a set digital signature.&lt;/p&gt;

&lt;script src=&quot;https://gist.github.com/ronaldstoner/2923a0314a62c56140053957c2194e5d.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;

&lt;p&gt;Since this is an automated system, our message does not need to be human readable — it only needs to pass the signature verification check. Running the script above outputs a hex string that we can input as the message, and a digital signature of &lt;strong&gt;0xf.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/45.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This passes the third check, and we can see the final flag.&lt;/p&gt;

&lt;h2 id=&quot;sudo-suduko&quot;&gt;Sudo Suduko&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/46.jpeg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;the-challenge&quot;&gt;The Challenge&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Santa’s little helpers are notoriously good at solving Sudoku puzzles.
Because regular Sudoku puzzles are too trivial, they have invented a variant.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/47.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;The Sudoko puzzle to solve&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;In addition to the standard Sudoku puzzle above,
the following equations must also hold:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;B9 + B8 + C1 + H4 + H4 = 23
A5 + D7 + I5 + G8 + B3 + A5 = 19
I2 + I3 + F2 + E9 = 15
I7 + H8 + C2 + D9 = 26
I6 + A5 + I3 + B8 + C3 = 20
I7 + D9 + B6 + A8 + A3 + C4 = 27
C7 + H9 + I7 + B2 + H8 + G3 = 31
D3 + I8 + A4 + I6 = 27
F5 + B8 + F8 + I7 + F1 = 33
A2 + A8 + D7 + E4 = 21
C1 + I4 + C2 + I1 + A4 = 20
F8 + C1 + F6 + D3 + B6 = 25&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If you then read the numbers clockwise starting from A1 to A9, to I9, to I1 and
back to A1, you end up with a number with 32 digits. Enclose that in AOTW{…}
to get the flag.&lt;/em&gt;&lt;/p&gt;

&lt;h3 id=&quot;the-solution-3&quot;&gt;The Solution&lt;/h3&gt;

&lt;p&gt;This is a tough challenge consisting of math and programming in order to find the flag. One must solve a Sudoku puzzle by finding 32 digits, but the puzzle must also meet a list of very specific conditions. Due to this, only an extremely small subset of Sudoku solutions (in this case, one) will meet the conditions and unlock the final flag.&lt;/p&gt;

&lt;p&gt;Enter &lt;strong&gt;go&lt;/strong&gt; programming guru and CTF team member &lt;strong&gt;solipsis&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;In order to solve a challenge such as this, one must do some paper math and preparation work in order to prune and reduce the search space early on. Since we have a fixed number of already filled out numbers, ranges for the missing inputs could be figured out — which helps reduce the complexity and brute force space search by a few orders of magnitude.&lt;/p&gt;

&lt;p&gt;Programming this script to “fail early” as soon as it finds any value that exceeds those in the list of conditions, rather than checking conditions once it has an entire puzzle solution, also helps to speed things up quite a bit.&lt;/p&gt;

&lt;p&gt;These techniques, combined with a descending 9 -&amp;gt;1 number order, help to trigger the failure conditions faster, and reduces magnitudes even further.&lt;/p&gt;

&lt;script src=&quot;https://gist.github.com/ronaldstoner/958568e5aa52f5786c3178a359884256.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;

&lt;p&gt;After running the script for some time, a final Sudoku solution that meets the list of requirements is found.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://ron.stoner.com/images/overthewire-advent-2019/48.png&quot; alt=&quot;&quot; /&gt;
&lt;em&gt;Success!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Per the challenge description, the 32 found numbers are compiled into a single string for a final flag of &lt;strong&gt;AOTW{86472953189247356794813521457639}&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;
&lt;em&gt;An earlier version of this writeup first appeared &lt;a href=&quot;https://medium.com/@forwardsecrecy/overthewire-advent-bonanza-2019-capture-the-flag-competition-66c50671c641&quot;&gt;on Medium&lt;/a&gt; in 2019.&lt;/em&gt;&lt;/p&gt;

</description>
        <pubDate>Thu, 26 Dec 2019 11:00:00 +0000</pubDate>
        <link>https://ron.stoner.com/overthewire-advent-bonanza-2019-ctf-write-up/</link>
        <guid isPermaLink="true">https://ron.stoner.com/overthewire-advent-bonanza-2019-ctf-write-up/</guid>
        
        
      </item>
    
  </channel>
</rss>
