<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Home on c-blog</title><link>https://example.org/</link><description>Recent content in Home on c-blog</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 06 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://example.org/index.xml" rel="self" type="application/rss+xml"/><item><title>Claude Code Source Leak: Claw Code Rebuilt It from Scratch</title><link>https://example.org/posts/claude-code-leak-claw-code-rewrite/</link><pubDate>Mon, 06 Apr 2026 00:00:00 +0000</pubDate><guid>https://example.org/posts/claude-code-leak-claw-code-rewrite/</guid><description>&lt;div class="tldr-section">
 &lt;div class="tldr-header">
 &lt;span class="tldr-badge">TL;DR&lt;/span>
 &lt;/div>
 &lt;div class="tldr-content">
 &lt;ul>
&lt;li>&lt;strong>On March 31, 2026&lt;/strong>, a source map file was accidentally included in Claude Code v2.1.88 on npm, leaking ~512,000 lines of TypeScript. &lt;a href="https://x.com/Fried_rice/status/2038894956459290963">Original tweet by Chaofan Shou (@Fried_rice)&lt;/a>.&lt;/li>
&lt;li>&lt;strong>What was exposed&lt;/strong>: anti-distillation fake tools, undercover mode for stealth OSS contributions, frustration regex detection, native client attestation (DRM for API calls), 44 unreleased feature flags, and an autonomous agent mode codenamed KAIROS.&lt;/li>
&lt;li>&lt;strong>Claw Code&lt;/strong> (&lt;a href="https://github.com/ultraworkers/claw-code">github.com/ultraworkers/claw-code&lt;/a>) is a clean-room Rust reimplementation of the Claude Code agent harness, built by Sigrid Jin. It reached 50,000 stars in under 2 hours and became one of the fastest-growing repos in GitHub history.&lt;/li>
&lt;li>&lt;strong>Anthropic&amp;rsquo;s response&lt;/strong>: pulled the npm package within ~4 hours, issued DMCA takedowns on 8,000+ GitHub mirrors, and called it &amp;ldquo;human error, not a security breach.&amp;rdquo;&lt;/li>
&lt;/ul>

 &lt;/div>
&lt;/div>

&lt;p>On March 31, 2026, Anthropic made a packaging mistake that gave the entire developer community an unfiltered look inside their most popular developer tool.&lt;/p></description></item><item><title>Linux Kernel Auditing: the happy family auditd, eBPF, and Falco (part 1/3)</title><link>https://example.org/posts/linux-kernel-auditing-part1/</link><pubDate>Mon, 06 Apr 2026 00:00:00 +0000</pubDate><guid>https://example.org/posts/linux-kernel-auditing-part1/</guid><description>&lt;div class="tldr-section">
 &lt;div class="tldr-header">
 &lt;span class="tldr-badge">TL;DR&lt;/span>
 &lt;/div>
 &lt;div class="tldr-content">
 &lt;ul>
&lt;li>&lt;strong>auditd is the kernel-native audit framework&lt;/strong> — battle-tested, compliance-friendly, and available on every Linux distribution, but it produces verbose logs and has no native container awareness.&lt;/li>
&lt;li>&lt;strong>eBPF-based tools like Tetragon&lt;/strong> operate directly inside the kernel with minimal overhead, offering both observability and enforcement, but require modern kernels (5.x+) and a steeper learning curve.&lt;/li>
&lt;li>&lt;strong>Falco bridges the gap&lt;/strong> as a CNCF-graduated runtime security tool that uses eBPF to monitor syscalls and ships with curated detection rules out of the box.&lt;/li>
&lt;li>&lt;strong>auditd log types&lt;/strong> (SYSCALL, EXECVE, PATH, CWD, PROCTITLE, USER_AUTH) are the foundation of Linux forensics — understanding them is non-negotiable for anyone doing detection engineering.&lt;/li>
&lt;li>&lt;strong>No single tool covers everything&lt;/strong> — production environments benefit from layering auditd (compliance + forensics) with Falco or Tetragon (runtime detection + container visibility).&lt;/li>
&lt;/ul>

 &lt;/div>
&lt;/div>

&lt;p>Every process on a Linux system talks to the kernel through system calls. File opens, network connections, privilege changes, process executions — all of it flows through a narrow interface that the kernel controls. If you can observe that interface, you can see everything that happens on the system.&lt;/p></description></item><item><title>Separating Authentication from Business Logic</title><link>https://example.org/posts/authentik-auth-layer-separation/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://example.org/posts/authentik-auth-layer-separation/</guid><description>&lt;div class="tldr-section">
 &lt;div class="tldr-header">
 &lt;span class="tldr-badge">TL;DR&lt;/span>
 &lt;/div>
 &lt;div class="tldr-content">
 &lt;ul>
&lt;li>&lt;strong>Your backend should never handle authentication directly&lt;/strong> — login flows, session management, MFA, and token validation belong in a dedicated identity layer.&lt;/li>
&lt;li>&lt;strong>Authentik acts as a forward-auth gateway&lt;/strong> in front of your reverse proxy (Traefik, Nginx, Caddy), intercepting every request and injecting verified identity headers.&lt;/li>
&lt;li>&lt;strong>Two integration patterns&lt;/strong>: Forward Auth (proxy validates, backend receives headers) and OIDC Provider (backend validates JWTs issued by Authentik).&lt;/li>
&lt;li>&lt;strong>The backend becomes stateless&lt;/strong> with respect to auth — easier to test, scale, and audit.&lt;/li>
&lt;li>&lt;strong>Authorization policies&lt;/strong> (RBAC, group-based, attribute-based) live in Authentik, not scattered across your application code.&lt;/li>
&lt;/ul>

 &lt;/div>
&lt;/div>

&lt;p>Most backend applications implement authentication as an afterthought — a middleware bolted onto the router, a session table in the same database as business data, password hashing logic mixed into the user service. This creates a tight coupling between identity management and business logic that makes both harder to maintain, test, and secure.&lt;/p></description></item><item><title>Read-Only FS in Docker Is Not Enough? Maybe not</title><link>https://example.org/posts/read-only-fs-docker-not-enough/</link><pubDate>Mon, 02 Mar 2026 00:00:00 +0000</pubDate><guid>https://example.org/posts/read-only-fs-docker-not-enough/</guid><description>&lt;div class="tldr-section">
 &lt;div class="tldr-header">
 &lt;span class="tldr-badge">TL;DR&lt;/span>
 &lt;/div>
 &lt;div class="tldr-content">
 &lt;ul>
&lt;li>&lt;strong>&lt;code>--read-only&lt;/code> doesn&amp;rsquo;t prevent code execution&lt;/strong> — attackers can run binaries entirely in memory using &lt;code>/proc/self/mem&lt;/code>, &lt;code>/dev/shm&lt;/code>, and the dynamic linker.&lt;/li>
&lt;li>&lt;strong>DDexec&lt;/strong> hijacks a running process&amp;rsquo;s memory to load and execute arbitrary ELF binaries without writing to disk.&lt;/li>
&lt;li>&lt;strong>The dynamic linker&lt;/strong> (&lt;code>ld-linux&lt;/code>/&lt;code>ld-musl&lt;/code>) can load binaries from writable paths like &lt;code>/dev/termination-log&lt;/code> without the execute bit.&lt;/li>
&lt;li>&lt;strong>Runtime monitoring with Falco&lt;/strong> (eBPF-based syscall monitoring) is essential to detect these fileless techniques.&lt;/li>
&lt;li>&lt;strong>Defense-in-depth&lt;/strong>: combine &lt;code>--read-only&lt;/code> with &lt;code>--cap-drop=ALL&lt;/code>, seccomp profiles, &lt;code>no-new-privileges&lt;/code>, and Falco for real container security.&lt;/li>
&lt;/ul>

 &lt;/div>
&lt;/div>

&lt;p>Running your Docker containers with &lt;code>--read-only&lt;/code> is commonly recommended as a security hardening measure. The reasoning is straightforward: if an attacker can&amp;rsquo;t write to the filesystem, they can&amp;rsquo;t drop and execute malicious binaries.&lt;/p></description></item></channel></rss>