<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Leonardo Barros</title>
    <description>The latest articles on Forem by Leonardo Barros (@barrosleo).</description>
    <link>https://forem.com/barrosleo</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3817518%2F2a335481-48d3-4301-925c-23c505ac64a2.jpeg</url>
      <title>Forem: Leonardo Barros</title>
      <link>https://forem.com/barrosleo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/barrosleo"/>
    <language>en</language>
    <item>
      <title>About Me</title>
      <dc:creator>Leonardo Barros</dc:creator>
      <pubDate>Tue, 10 Mar 2026 22:08:28 +0000</pubDate>
      <link>https://forem.com/barrosleo/about-me-32m9</link>
      <guid>https://forem.com/barrosleo/about-me-32m9</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Cloud &amp;amp; Security Automation Engineer&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;focused on identity-first design, detection engineering, and building clean, maintainable security tooling.&lt;/p&gt;

&lt;p&gt;Currently working on:&lt;br&gt;
• &lt;strong&gt;BluePhoenix&lt;/strong&gt; - detection-as-code lab&lt;br&gt;
• &lt;strong&gt;DefenderHunt&lt;/strong&gt; - security automation + hunting toolkit&lt;/p&gt;

&lt;p&gt;I write about cloud identity, automation patterns, and engineering discipline in security.&lt;/p&gt;

</description>
      <category>automation</category>
      <category>cloud</category>
      <category>security</category>
      <category>tooling</category>
    </item>
    <item>
      <title>Designing Detection‑as‑Code Without a SIEM</title>
      <dc:creator>Leonardo Barros</dc:creator>
      <pubDate>Tue, 10 Mar 2026 21:44:26 +0000</pubDate>
      <link>https://forem.com/barrosleo/designing-detection-as-code-without-a-siem-1k7f</link>
      <guid>https://forem.com/barrosleo/designing-detection-as-code-without-a-siem-1k7f</guid>
      <description>&lt;p&gt;Most people learn detection engineering inside a SIEM. I wanted to learn it without one.&lt;br&gt;
Not because SIEMs aren’t useful, but because they often hide the real thinking behind dashboards, connectors, and pre‑built rules.&lt;/p&gt;

&lt;p&gt;So I built BluePhoenix, a detection‑as‑code lab designed to answer a simple question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What does detection engineering look like when you remove the platform and focus purely on behaviour, logic, and engineering discipline?&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Why I Built This&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;I wanted to understand detection engineering at its core, without relying on a SIEM to do the heavy lifting. That meant learning how to express attacker behaviour as logic, validate detections without a UI, tune signal quality without dashboards, and build repeatable engineering patterns instead of one‑off rules.&lt;/p&gt;

&lt;p&gt;Removing enterprise tooling forced me to confront the mechanics directly.&lt;br&gt;
It made detection engineering feel like engineering again.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What Detection‑as‑Code Really Means&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;In BluePhoenix, detections behave like software:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Version‑controlled&lt;/li&gt;
&lt;li&gt;Reviewed&lt;/li&gt;
&lt;li&gt;Tested&lt;/li&gt;
&lt;li&gt;Validated&lt;/li&gt;
&lt;li&gt;Documented&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each rule is a structured YAML file containing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clear logic&lt;/li&gt;
&lt;li&gt;ATT&amp;amp;CK mapping&lt;/li&gt;
&lt;li&gt;Expected behaviour&lt;/li&gt;
&lt;li&gt;Test cases&lt;/li&gt;
&lt;li&gt;Metadata&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes detections auditable, portable, and maintainable, the same qualities expected in real engineering teams.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;The BluePhoenix Approach&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;I designed the lab around three principles:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. MITRE ATT&amp;amp;CK alignment&lt;/strong&gt;&lt;br&gt;
Every rule maps to a technique, sub‑technique, and behaviour pattern.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Scope boundaries&lt;/strong&gt;&lt;br&gt;
No “catch‑all” detections.&lt;br&gt;
Each rule solves one problem well.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Engineering discipline&lt;/strong&gt;&lt;br&gt;
Rules are modular, structured, and validated before merging, just like production code.&lt;/p&gt;

&lt;p&gt;A simple example:&lt;br&gt;
Instead of writing a broad “suspicious PowerShell” rule, I wrote a focused detection for encoded command execution, mapped to ATT&amp;amp;CK &lt;strong&gt;T1059.001&lt;/strong&gt;, with clear test cases and expected behaviour.&lt;br&gt;
Small, precise, and predictable.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Why I Didn’t Use a SIEM&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;A SIEM would have made this easier, but also less honest.&lt;/p&gt;

&lt;p&gt;I avoided one because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SIEMs create false realism in labs&lt;/li&gt;
&lt;li&gt;Noise levels are artificial&lt;/li&gt;
&lt;li&gt;Costs limit experimentation&lt;/li&gt;
&lt;li&gt;You learn the tool, not the discipline&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without a platform, I had to answer the uncomfortable questions directly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What makes a signal meaningful?&lt;/li&gt;
&lt;li&gt;What makes it noisy?&lt;/li&gt;
&lt;li&gt;How do you validate logic without dashboards?&lt;/li&gt;
&lt;li&gt;How do you tune without a query engine?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It was uncomfortable — which is exactly why it worked.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Adding CI to Detections&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Every detection goes through CI checks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;YAML schema validation&lt;/li&gt;
&lt;li&gt;Required metadata fields&lt;/li&gt;
&lt;li&gt;ATT&amp;amp;CK mapping checks&lt;/li&gt;
&lt;li&gt;Naming conventions&lt;/li&gt;
&lt;li&gt;Structural consistency&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Even static rules benefit from CI because consistency is a security control.&lt;br&gt;
If your detection library isn’t predictable, your response pipeline won’t be either.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What I Learned&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Building detections without a SIEM taught me that clarity and discipline matter more than tooling. Behaviour drives good detections, not vendor features. Structure beats volume. And validation is where most detections fail, not in the logic, but in the assumptions behind it.&lt;/p&gt;

&lt;p&gt;In production, I’d add real telemetry, data‑quality checks, platform‑specific tuning, and automation for enrichment and response. But the core thinking wouldn’t change.&lt;/p&gt;

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

&lt;p&gt;Detection engineering isn’t about SIEMs, dashboards, or connectors.&lt;br&gt;
It’s about thinking like an attacker and building like an engineer.&lt;/p&gt;

&lt;p&gt;Tools change.&lt;br&gt;
Platforms change.&lt;br&gt;
Behaviours don’t.&lt;/p&gt;

&lt;p&gt;Full project on GitHub:&lt;br&gt;
(&lt;a href="https://github.com/Barrosleo/bluephoenix-detection-lab" rel="noopener noreferrer"&gt;https://github.com/Barrosleo/bluephoenix-detection-lab&lt;/a&gt;)&lt;/p&gt;

</description>
      <category>security</category>
      <category>cloud</category>
      <category>automation</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
