<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Security on Sentinel</title><link>https://sentinel-blog.cherrypod.org/tags/security/</link><description>Recent content in Security on Sentinel</description><image><title>Sentinel</title><url>https://sentinel-blog.cherrypod.org/images/social-preview.png</url><link>https://sentinel-blog.cherrypod.org/images/social-preview.png</link></image><generator>Hugo -- 0.147.0</generator><language>en-gb</language><lastBuildDate>Sun, 15 Feb 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://sentinel-blog.cherrypod.org/tags/security/index.xml" rel="self" type="application/rss+xml"/><item><title>Part 46: Seventy-Eight Findings</title><link>https://sentinel-blog.cherrypod.org/posts/46-security-audit/</link><pubDate>Sun, 15 Feb 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/46-security-audit/</guid><description>A systematic audit of every API endpoint, middleware layer, and frontend component. Seventy-eight findings. Some embarrassing. All fixable.</description></item><item><title>Part 45: More Than One User</title><link>https://sentinel-blog.cherrypod.org/posts/45-multi-user/</link><pubDate>Sat, 14 Feb 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/45-multi-user/</guid><description>Sentinel was built for one person. Making it work for multiple users meant rethinking auth, isolation, and how the system tracks who&amp;rsquo;s who.</description></item><item><title>Part 37: Trust Laundering</title><link>https://sentinel-blog.cherrypod.org/posts/37-trust-laundering/</link><pubDate>Fri, 06 Feb 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/37-trust-laundering/</guid><description>The injection benchmark found 11 exploits. All shared the same root cause — files in the workspace inherited trusted status regardless of who put them there.</description></item><item><title>Part 36: The Injection Benchmark</title><link>https://sentinel-blog.cherrypod.org/posts/36-the-injection-benchmark/</link><pubDate>Thu, 05 Feb 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/36-the-injection-benchmark/</guid><description>A custom-built injection benchmark with real email, real calendars, real web pages. No simulated backends. 130 tests designed to break the trust architecture.</description></item><item><title>Part 35: The Stress Test</title><link>https://sentinel-blog.cherrypod.org/posts/35-the-stress-test/</link><pubDate>Wed, 04 Feb 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/35-the-stress-test/</guid><description>38 hours, 1,588 probes, zero human intervention. The first comprehensive validation with everything deployed.</description></item><item><title>Part 34: Tightening the Screws</title><link>https://sentinel-blog.cherrypod.org/posts/34-tightening-the-screws/</link><pubDate>Tue, 03 Feb 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/34-tightening-the-screws/</guid><description>The features were built. Now came the hardening — FP reduction, credential scanner expansion, metadata enrichment, and 600 new tests before the big run.</description></item><item><title>Part 30: Multi-User</title><link>https://sentinel-blog.cherrypod.org/posts/30-multi-user/</link><pubDate>Fri, 30 Jan 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/30-multi-user/</guid><description>JWT authentication, per-user trust levels, encrypted credentials, and proof that two users can&amp;rsquo;t see each other&amp;rsquo;s data.</description></item><item><title>Part 28: Bug Hunt Three</title><link>https://sentinel-blog.cherrypod.org/posts/28-bug-hunt-three/</link><pubDate>Wed, 28 Jan 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/28-bug-hunt-three/</guid><description>The third full security audit. 13 batches of fixes, from API hardening to dead code removal.</description></item><item><title>Part 27: Hardening the Database</title><link>https://sentinel-blog.cherrypod.org/posts/27-hardening-the-database/</link><pubDate>Tue, 27 Jan 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/27-hardening-the-database/</guid><description>Row-level security, role separation, and a red team that tried SQL injection, LISTEN/NOTIFY attacks, and privilege escalation through PL/pgSQL.</description></item><item><title>Part 21: The Second Audit</title><link>https://sentinel-blog.cherrypod.org/posts/21-the-second-audit/</link><pubDate>Wed, 21 Jan 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/21-the-second-audit/</guid><description>199 findings across 7 units. 19 fix batches. 7 systemic improvements. The most thorough review the codebase has ever had.</description></item><item><title>Part 18: The False Positive Problem</title><link>https://sentinel-blog.cherrypod.org/posts/18-the-false-positive-problem/</link><pubDate>Sun, 18 Jan 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/18-the-false-positive-problem/</guid><description>Without a human to override scanners, false positives become functional failures. Risk decay was the fix.</description></item><item><title>Part 16: The Sandbox Wasn't Real</title><link>https://sentinel-blog.cherrypod.org/posts/16-the-sandbox-wasnt-real/</link><pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/16-the-sandbox-wasnt-real/</guid><description>Every sandbox field was snake_case. Podman&amp;rsquo;s API requires PascalCase. HTTP 201 Created. Zero containment.</description></item><item><title>Part 15: The Red Team</title><link>https://sentinel-blog.cherrypod.org/posts/15-the-red-team/</link><pubDate>Thu, 15 Jan 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/15-the-red-team/</guid><description>Four attack scenarios, including a simulated compromised planner. Six clean runs before trusting it.</description></item><item><title>Part 12: The Trust Ladder</title><link>https://sentinel-blog.cherrypod.org/posts/12-the-trust-ladder/</link><pubDate>Mon, 12 Jan 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/12-the-trust-ladder/</guid><description>Five trust levels, from full human approval to autonomous execution. Each one its own project.</description></item><item><title>Part 10: The Sandbox</title><link>https://sentinel-blog.cherrypod.org/posts/10-the-sandbox/</link><pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/10-the-sandbox/</guid><description>Every shell command runs in a disposable container. No state leaks, no network, no capabilities. Or so I thought.</description></item><item><title>Part 7: The Bug Hunt</title><link>https://sentinel-blog.cherrypod.org/posts/07-the-bug-hunt/</link><pubDate>Wed, 07 Jan 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/07-the-bug-hunt/</guid><description>99 findings from a systematic security audit of my own code. Zero critical — but 16 high-severity.</description></item><item><title>Part 5: Three Out of Five</title><link>https://sentinel-blog.cherrypod.org/posts/05-three-out-of-five/</link><pubDate>Mon, 05 Jan 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/05-three-out-of-five/</guid><description>A security system that scores 3/5 on security is failing. The score became a to-do list.</description></item><item><title>Part 3: Why Sentinel Exists</title><link>https://sentinel-blog.cherrypod.org/posts/03-why-sentinel-exists/</link><pubDate>Sat, 03 Jan 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/03-why-sentinel-exists/</guid><description>From a custom PC build to containers, local LLMs, and the paper that started it all — CaMeL.</description></item><item><title>Part 1: The Privacy Panic</title><link>https://sentinel-blog.cherrypod.org/posts/01-the-privacy-panic/</link><pubDate>Thu, 01 Jan 2026 00:00:00 +0000</pubDate><guid>https://sentinel-blog.cherrypod.org/posts/01-the-privacy-panic/</guid><description>How a Google Maps feature turned a close protection worker into a privacy obsessive — and laid the foundation for everything that came after.</description></item></channel></rss>