<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: ShadowStrike Labs</title>
    <description>The latest articles on DEV Community by ShadowStrike Labs (@shadowstrikelabs).</description>
    <link>https://dev.to/shadowstrikelabs</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%2F3833665%2F2e819dbc-d660-49c9-8466-91dd505c54ea.png</url>
      <title>DEV Community: ShadowStrike Labs</title>
      <link>https://dev.to/shadowstrikelabs</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shadowstrikelabs"/>
    <language>en</language>
    <item>
      <title>ShadowStrike Phantom: Open-Source EDR Platform</title>
      <dc:creator>ShadowStrike Labs</dc:creator>
      <pubDate>Tue, 07 Apr 2026 17:48:56 +0000</pubDate>
      <link>https://dev.to/shadowstrikelabs/shadowstrike-phantom-open-source-edr-platform-57lj</link>
      <guid>https://dev.to/shadowstrikelabs/shadowstrike-phantom-open-source-edr-platform-57lj</guid>
      <description>&lt;p&gt;We've been developing ShadowStrike Phantom since 2024 and plan to release it on Day 1 of 2027. Here's what we've accomplished so far:&lt;br&gt;
Phantom Emulator - A fully X86-64 Special Emulation Engine for advanced obfuscated malwares&lt;/p&gt;

&lt;p&gt;Phantom Cortex - Includes Cortex-Static , Cortex-Behavioral ,Cortex-Network , Cortex-Emulation and the Cortex-Memory. We have been trained 5 of those AI/ML models with the malware samples and synthetic malware samples.&lt;/p&gt;

&lt;p&gt;Phantom Sensor - A custom Kernel minifilter driver&lt;/p&gt;

&lt;p&gt;src/Shared_Modules/ - The Heart of Phantom EDR XDR Home products. It includes the fully Malware Hunting Engine and orchestrated with the 5 local AI/ML agents trained from scratch + Phantom Sensor and our Emulation Engine for advanced obfuscated malwares.&lt;/p&gt;

&lt;p&gt;Mostly the Phantom EDR XDR Home products will use the same Engine but will add top of that specialized to the tiers of them. EDR/XDR will have a web console management dashboard for policies, threat intel dashboards etc. and Home will have a Local UI.&lt;/p&gt;

&lt;p&gt;All the features are still in-development and not production-ready but we are working hard.&lt;/p&gt;

&lt;p&gt;You can support our products by giving us stars on GitHub or by becoming a sponsor.&lt;/p&gt;

&lt;p&gt;If you want to learn more about the architecture and interested at open-source Endpoint Security:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/ShadowStrike-Labs/ShadowStrike" rel="noopener noreferrer"&gt;https://github.com/ShadowStrike-Labs/ShadowStrike&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>machinelearning</category>
      <category>opensource</category>
      <category>security</category>
    </item>
    <item>
      <title>We security-audited 400,000+ lines of our own EDR code. Here's what we found.</title>
      <dc:creator>ShadowStrike Labs</dc:creator>
      <pubDate>Sat, 04 Apr 2026 07:10:40 +0000</pubDate>
      <link>https://dev.to/shadowstrikelabs/we-security-audited-400000-lines-of-our-own-edr-code-heres-what-we-found-273f</link>
      <guid>https://dev.to/shadowstrikelabs/we-security-audited-400000-lines-of-our-own-edr-code-heres-what-we-found-273f</guid>
      <description>&lt;p&gt;I'm building ShadowStrike Phantom — an open-source endpoint detection and response platform for Windows.&lt;br&gt;
   From-scratch. Custom kernel driver, behavioral analysis, exploit prevention, the whole stack.&lt;/p&gt;

&lt;p&gt;This isn't a weekend project. PhantomSensor.sys alone is 380,000 lines of C. It's a WDM minifilter running at&lt;br&gt;
   altitude 385210 with 14 operation callbacks, syscall monitoring, memory protection, and a behavioral engine with&lt;br&gt;
   MITRE ATT&amp;amp;CK mapping.&lt;/p&gt;

&lt;p&gt;Over the past few weeks, I've been doing line-by-line security audits of the user-mode shared modules — the engines&lt;br&gt;
   that actually make detection decisions. 12 modules so far. Here's an honest look at what I found in my own code.&lt;/p&gt;

&lt;p&gt;The Numbers&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- 12 modules audited: SignatureStore, ThreatIntel, ExploitPrevention, BehaviorBlocker, AccessControlManager, 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Whitelist, FileProtection, RegistryProtection, SelfProtection, and more&lt;br&gt;
    - 400+ issues found and fixed&lt;br&gt;
    - 60+ critical/high severity findings&lt;/p&gt;

&lt;p&gt;The Worst Bugs&lt;/p&gt;

&lt;p&gt;ExploitPrevention was protecting itself, not the target. SetProcessMitigationPolicy applies to the calling process.&lt;br&gt;
   My code was applying DEP/ASLR/CFG enforcement to the EDR agent, not to the monitored process. For existing remote&lt;br&gt;
   processes, most Windows mitigation policies are immutable post-creation — you can only query them. Fixed by&lt;br&gt;
   switching to query + report for existing processes, and PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY at creation time &lt;br&gt;
  for new ones.&lt;/p&gt;

&lt;p&gt;22 declared methods with zero implementation. The ExploitPrevention header declared 35+ public methods. 22 of them&lt;br&gt;
   had no implementation in the .cpp file. OnTableAccess (EAF handler), OnException (SEHOP handler), EnableIAF — all&lt;br&gt;
   dead. The EnableIAF method was particularly bad: it returned true (success) while doing absolutely nothing.&lt;/p&gt;

&lt;p&gt;EAF breakpoints were using wrong width. Hardware debug breakpoints (Dr0-Dr3) for Export Address Table access&lt;br&gt;
   monitoring had the Dr7 LEN field set wrong — 1-byte breakpoints instead of 8-byte (x64) or 4-byte (x86). An &lt;br&gt;
  attacker&lt;br&gt;
   accessing the EAT at an offset beyond byte 0 would bypass detection completely.&lt;/p&gt;

&lt;p&gt;Deadlock: holding mutex during thread suspension. EAF protection held the EAF mutex while iterating and suspending&lt;br&gt;
   threads. If a suspended thread also needed that mutex → deadlock. Fixed by collecting thread IDs under lock,&lt;br&gt;
   releasing the lock, then suspending.&lt;/p&gt;

&lt;p&gt;Stats struct with std::atomic made the class non-copyable. ExploitPreventionStats had std::atomic &lt;br&gt;
  members.&lt;br&gt;
   Returning it from GetStats() triggered C2280 (deleted copy constructor). Fixed by using plain uint64_t in the &lt;br&gt;
  public&lt;br&gt;
   API and internal std::atomic counters in the PIMPL, with a Snapshot() method.&lt;/p&gt;

&lt;p&gt;What I Learned&lt;/p&gt;

&lt;p&gt;Writing security software means your code is under double scrutiny — it must be correct and it must resist active&lt;br&gt;
   attempts to break it. Every unimplemented method is a gap. Every wrong parameter is a bypass. Every deadlock is a&lt;br&gt;
   denial of service against your own protection.&lt;/p&gt;

&lt;p&gt;The audits also forced proper kernel ↔ user-mode wiring. Before the audits, FilterMessageType_MemoryAlert was a&lt;br&gt;
   logging-only stub — the kernel would send memory anomaly alerts and the user-mode agent would log "got an alert" &lt;br&gt;
  and&lt;br&gt;
   do nothing. Now it routes through ExploitPrevention::OnKernelMemoryAlert() for actual analysis.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Current Status

- Kernel driver: complete, Coverity
 0.25 defect/KLoC, Driver Verifier passed
- User-mode: 76% complete, security audit phase
- Beta target: 2027 (moved up from 2028-2029)
- Next: on-device ML integration, product splits (Home/EDR/XDR)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Everything is AGPL-3.0. Every commit is public. &lt;/p&gt;

&lt;p&gt;GitHub: github.com/ShadowStrike-Labs/ShadowStrike (&lt;a href="https://github.com/ShadowStrike-Labs/ShadowStrike" rel="noopener noreferrer"&gt;https://github.com/ShadowStrike-Labs/ShadowStrike&lt;/a&gt;) Website: &lt;br&gt;
   shadowstrike.dev (&lt;a href="https://shadowstrike.dev" rel="noopener noreferrer"&gt;https://shadowstrike.dev&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;If you're interested in open-source endpoint security, give us a star or follow the project. We're building this in&lt;br&gt;
   public because security software shouldn't be a black box.&lt;/p&gt;

</description>
      <category>security</category>
      <category>cpp</category>
      <category>opensource</category>
      <category>windows</category>
    </item>
    <item>
      <title>ShadowStrike Phantom EDR/XDR Platform Kernel Sensor (WDK/C)</title>
      <dc:creator>ShadowStrike Labs</dc:creator>
      <pubDate>Thu, 19 Mar 2026 12:05:23 +0000</pubDate>
      <link>https://dev.to/shadowstrikelabs/shadowstrike-phantom-edrxdr-platform-kernel-sensor-wdkc-22l7</link>
      <guid>https://dev.to/shadowstrikelabs/shadowstrike-phantom-edrxdr-platform-kernel-sensor-wdkc-22l7</guid>
      <description>&lt;p&gt;I've been building an open-source kernel-mode EDR/XDR sensor called Phantom Sensor for about &lt;br&gt;
   two years now as a solo project. It just hit a milestone I'm pretty &lt;br&gt;
   excited about - the driver loads cleanly on Windows 11, passes Driver &lt;br&gt;
   Verifier with all standard flags enabled, and survives normal use &lt;br&gt;
   without crashing.&lt;/p&gt;

&lt;p&gt;The kernel sensor (PhantomSensor) is a WFP+minifilter driver sitting &lt;br&gt;
   at altitude 385210. It's written in C targeting the WDK, roughly 370k&lt;br&gt;
   lines across 70+ modules. Some of what it does:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ObRegisterCallbacks for process/thread handle stripping 
 (anti-injection, anti-debug)&lt;/li&gt;
&lt;li&gt;Minifilter callbacks with stream contexts for file monitoring, 
 ransomware backup engine, section object tracking&lt;/li&gt;
&lt;li&gt;WFP callouts for network inspection - TCP stream reassembly, 
 DNS monitoring, C2 beacon detection, TLS fingerprinting&lt;/li&gt;
&lt;li&gt;PsSetCreateProcessNotifyRoutineEx / PsSetLoadImageNotifyRoutine 
 for behavioral analysis&lt;/li&gt;
&lt;li&gt;ETW provider + consumer for kernel telemetry&lt;/li&gt;
&lt;li&gt;Registry callback for persistence detection (Run keys, services, 
 scheduled tasks)&lt;/li&gt;
&lt;li&gt;Process hollowing detection via VAD analysis + PE header comparison&lt;/li&gt;
&lt;li&gt;Syscall table monitoring, direct syscall detection, Heaven's Gate 
 detection , Halo's Gate detections + Hell's Gate detections&lt;/li&gt;
&lt;li&gt;Lookaside lists for hot-path allocations, rundown protection for 
 safe teardown, reference-counted object lifetimes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The behavioral engine tracks attack chains and maps to MITRE ATT&amp;amp;CK &lt;br&gt;
   techniques. Thread protection module does per-process activity tracking &lt;br&gt;
   with hash-bucketed trackers and rate limiting - had a fun use-after-free &lt;br&gt;
   in there (refcount off-by-one on newly inserted trackers, InsertTailList &lt;br&gt;
   caught the corrupted list entry - classic).&lt;/p&gt;

&lt;p&gt;It's been a long road of analyzing dump reports using kd.exe(kernel debugger) windbg x64 and finding the errors that triggered the BSOD.Here are some:     WORKER_INVALID from double-queuing &lt;br&gt;
   IO_WORKITEM on periodic timers. Stack overflows from 4KB structs in &lt;br&gt;
   image load callbacks. IRQL_NOT_LESS_OR_EQUAL from ERESOURCE without &lt;br&gt;
   KeEnterCriticalRegion. Each one taught me something.&lt;/p&gt;

&lt;p&gt;The codebase is AGPL v3. But understand it is still not completed(There is not only kernel-sensor) we have a Beta 2028 target for the full product especially 3 products(Phantom XDR Phantom EDR and Phantom Consumer solutions below the ShadowStrike brand.&lt;/p&gt;

&lt;p&gt;If you want to support or follow the journey of developing a Kernel-driver and a user-mode agent for the ShadowStrike Phantom products:&lt;/p&gt;

&lt;p&gt;Join us on Github: &lt;a href="https://github.com/ShadowStrike-Labs/ShadowStrike" rel="noopener noreferrer"&gt;https://github.com/ShadowStrike-Labs/ShadowStrike&lt;/a&gt;&lt;br&gt;
If you want to give a support: &lt;a href="https://github.com/sponsors/ShadowStrike-Labs" rel="noopener noreferrer"&gt;https://github.com/sponsors/ShadowStrike-Labs&lt;/a&gt;&lt;br&gt;
Site: &lt;a href="https://www.shadowstrike.dev/" rel="noopener noreferrer"&gt;https://www.shadowstrike.dev/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>c</category>
      <category>opensource</category>
      <category>security</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
