<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Devops on Shadow Engineering</title>
    <link>https://shadow.engineering/tags/devops/</link>
    <description>Recent content in Devops on Shadow Engineering</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <copyright>© 2026 </copyright>
    <lastBuildDate>Sat, 28 May 2022 11:30:03 +0000</lastBuildDate><atom:link href="https://shadow.engineering/tags/devops/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>SOC Automation with Inspector Gadget</title>
      <link>https://shadow.engineering/posts/next_time_gadget/</link>
      <pubDate>Sat, 28 May 2022 11:30:03 +0000</pubDate>
      
      <guid>https://shadow.engineering/posts/next_time_gadget/</guid>
      <description>&lt;p&gt;&lt;figure&gt;&lt;img&#xA;    class=&#34;my-0 rounded-md&#34;&#xA;    loading=&#34;lazy&#34;&#xA;    decoding=&#34;async&#34;&#xA;    fetchpriority=&#34;auto&#34;&#xA;    alt=&#34;Inspector Gadget&#34;&#xA;    width=&#34;600&#34;&#xA;    height=&#34;500&#34;&#xA;    src=&#34;https://shadow.engineering/posts/next_time_gadget/inspectorgadget.png&#34;&#xA;    srcset=&#34;https://shadow.engineering/posts/next_time_gadget/inspectorgadget.png 800w, https://shadow.engineering/posts/next_time_gadget/inspectorgadget.png 1280w&#34;&#xA;    sizes=&#34;(min-width: 768px) 50vw, 65vw&#34;&#xA;    data-zoom-src=&#34;https://shadow.engineering/posts/next_time_gadget/inspectorgadget.png&#34;&gt;&lt;/figure&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/0x706972686f/inspectorgadget&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Inspector Gadget&lt;/a&gt; is a tool to help SOCs scale and automate augmention of alerts. Whether that&amp;rsquo;s through an analyst leveraging Inspector Gadget directly, or through a Security Orchestration, Automation and Response (SOAR) platform.&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s a proxy API endpoint, that can communicate to other API endpoints. This means that given a particular Indicator of Attack (IOA), it can connect to multiple API endpoints for third party services to provide more information and context around it, and help make a better assessment to the validity or malicious nature of it.&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s built upon FastAPI and httpx, meaning it&amp;rsquo;s designed with parallelism in mind, then thanks to Celery/Redis it can scale to meet your demands while still maintaining that quick response. Even the core library that maps indicator types to third party API endpoints (&lt;a href=&#34;https://github.com/0x706972686f/ioclib&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;ioclib&lt;/a&gt;) is built with asynchronous actions for speed.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Cloud Run Website with GCP</title>
      <link>https://shadow.engineering/posts/cloud_run_website_with_gcp/</link>
      <pubDate>Sat, 23 Apr 2022 11:30:03 +0000</pubDate>
      
      <guid>https://shadow.engineering/posts/cloud_run_website_with_gcp/</guid>
      <description>&lt;p&gt;As I outlined in &lt;a href=&#34;https://shadow.engineering/posts/iterations_of_this_site/&#34; title=&#34;Iterations of this Site&#34;&gt;Iterations of this Site&lt;/a&gt;, a time had come when I wanted to repurpose this domain, and use it to share some of the knowledge I had gained from experimentation and projects I had worked on.&lt;/p&gt;&#xA;&lt;p&gt;A common approach that a lot of people recommend is using a static site generator like &lt;a href=&#34;https://jekyllrb.com/&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Jekyll&lt;/a&gt; or &lt;a href=&#34;https://gohugo.io/&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Hugo&lt;/a&gt;, pushing that to a &lt;a href=&#34;https://pages.github.com/&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;GitHub Pages&lt;/a&gt; repository and then using &lt;a href=&#34;https://workers.cloudflare.com/&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Cloudflare Workers&lt;/a&gt; to mask that behind a domain name of your choosing.&lt;/p&gt;&#xA;&lt;p&gt;I really liked the approach, and it made some vast improvements over my previous methodology. But it would mean that a lot of the little easter eggs I had developed over the years would be lost.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Iterations of this Site</title>
      <link>https://shadow.engineering/posts/iterations_of_this_site/</link>
      <pubDate>Sat, 23 Apr 2022 11:30:03 +0000</pubDate>
      
      <guid>https://shadow.engineering/posts/iterations_of_this_site/</guid>
      <description>&lt;p&gt;In 2018 I applied for a position at Google, to start the day long series of interviews I got asked one simple question:&lt;/p&gt;&#xA;&lt;blockquote&gt;&lt;p&gt;How would you create a secure web page?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&lt;p&gt;I responded at first about securing the host, implementing SELinux, putting SSH on a high port with a certificate, sticking it behind a WAF. I had started to go into detail about the CI/CD pipeline when I was interrupted by the interviewer asking if I had heard of things such as HSTS and HKPI. I confessed that I hadn&amp;rsquo;t, and knew there must have been a whole world of things that I simply hadn&amp;rsquo;t had exposure to, so I took a mental note to go away, build myself a website and to try and experiment.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Project Chaos</title>
      <link>https://shadow.engineering/posts/project_chaos/</link>
      <pubDate>Sun, 04 Apr 2021 11:30:03 +0000</pubDate>
      
      <guid>https://shadow.engineering/posts/project_chaos/</guid>
      <description>&lt;p&gt;Meet Scarlett Reynolds, a new starting ICT Sales Representative, for a small technology start up named Eigar Technologies, that&amp;rsquo;s based in Sydney, Australia.&#xA;&lt;figure&gt;&lt;img&#xA;    class=&#34;my-0 rounded-md&#34;&#xA;    loading=&#34;lazy&#34;&#xA;    decoding=&#34;async&#34;&#xA;    fetchpriority=&#34;auto&#34;&#xA;    alt=&#34;Scarlett&#34;&#xA;    width=&#34;768&#34;&#xA;    height=&#34;768&#34;&#xA;    src=&#34;https://shadow.engineering/posts/project_chaos/scarlett.jpg&#34;&#xA;    srcset=&#34;https://shadow.engineering/posts/project_chaos/scarlett.jpg 800w, https://shadow.engineering/posts/project_chaos/scarlett.jpg 1280w&#34;&#xA;    sizes=&#34;(min-width: 768px) 50vw, 65vw&#34;&#xA;    data-zoom-src=&#34;https://shadow.engineering/posts/project_chaos/scarlett.jpg&#34;&gt;&lt;/figure&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;She studied at Arthur Phillip High School in Parramatta, before graduating in a double degree in IT and Business from UTS in 2013. She&amp;rsquo;s a virgo and her first car was a &amp;lsquo;96 Corolla, and she doesn&amp;rsquo;t exist.&lt;/p&gt;&#xA;&lt;p&gt;Neither does Eigar Technologies. In fact, the name Eigar Technologies is a portmanteau of &lt;a href=&#34;https://en.wikipedia.org/wiki/Eiger&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Eiger&lt;/a&gt;, a mountain in the Swiss Alps, and &lt;a href=&#34;https://en.wikipedia.org/wiki/EICAR_test_file&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;EICAR&lt;/a&gt;, the test file associated with Antivirus program validation.&#xA;&lt;figure&gt;&lt;img&#xA;    class=&#34;my-0 rounded-md&#34;&#xA;    loading=&#34;lazy&#34;&#xA;    decoding=&#34;async&#34;&#xA;    fetchpriority=&#34;auto&#34;&#xA;    alt=&#34;Logo and Signature&#34;&#xA;    width=&#34;600&#34;&#xA;    height=&#34;150&#34;&#xA;    src=&#34;https://shadow.engineering/posts/project_chaos/sig.gif&#34;&#xA;    srcset=&#34;https://shadow.engineering/posts/project_chaos/sig.gif 800w, https://shadow.engineering/posts/project_chaos/sig.gif 1280w&#34;&#xA;    sizes=&#34;(min-width: 768px) 50vw, 65vw&#34;&#xA;    data-zoom-src=&#34;https://shadow.engineering/posts/project_chaos/sig.gif&#34;&gt;&lt;/figure&gt;&#xA;&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Python Debugging with Decorators</title>
      <link>https://shadow.engineering/posts/python_debugging_with_decorators/</link>
      <pubDate>Fri, 06 Nov 2020 11:30:03 +0000</pubDate>
      
      <guid>https://shadow.engineering/posts/python_debugging_with_decorators/</guid>
      <description>&lt;h2 class=&#34;relative group&#34;&gt;Decorators&#xA;    &lt;div id=&#34;decorators&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#decorators&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Often times while writing python code you may encounter a logical error, one that won&amp;rsquo;t be caught in compilation or execution, but rather during run time. Perhaps something didn&amp;rsquo;t execute or return as expected, or maybe a function executed and returned the anticipated result, but took an astounding long time to do it.&lt;/p&gt;&#xA;&lt;p&gt;Test driven development will catch these kind of issues as we work, but traditionally a lot of people will just throw a whole lot of  &lt;code&gt;print&lt;/code&gt; statements throughout their code. This could create more issues that we&amp;rsquo;re fixing.&lt;/p&gt;</description>
      
    </item>
    
  </channel>
</rss>
