Blog

  • VHSP Update: From Isolation Model to a Hardened, Verified Platform

    When we introduced VHSP, it was an architecture: per-tenant containers, defense in depth by default, centralized detection without a shared runtime. The idea was sound, but it was still a diagram more than a system. Since then, it’s become one — and every piece below has been built, deployed to a real host, and verified against real traffic before we counted it as done.

    The isolation model, fully realized

    Every tenant now gets a complete, dedicated stack: web, database, mail, SFTP, a self-service admin panel, and — new since the original post — its own web application firewall. Six containers per tenant, none of them shared with anyone else on the platform. No multi-tenant daemon anywhere in the request path.

    Real request-level defense, not just isolation

    Isolation limits the blast radius of a compromise. It doesn’t stop the compromise itself. So we added two more layers, both self-hosted and account-free by design — no vendor dashboard that can change its own terms, pricing, or availability out from under us:

    • fail2ban watches every login surface — SSH, the admin panels, each tenant’s own SFTP port — and bans abusive sources automatically, with both platform-wide and per-tenant allowlists for the false positives that always show up in practice.
    • A Coraza + OWASP Core Rule Set firewall sits in front of every tenant’s site, inspecting requests for SQL injection, XSS, and the rest of the standard attack catalog — the same detection engine and ruleset serious commercial WAFs are built on, running as a container we own rather than a service we rent.

    Both shipped in a conservative, detect-first posture before anything moves to actively blocking traffic — false positives on a WAF have no auto-recovery the way a temporary IP ban does, so we treat that switch as a deliberate decision, not a default.

    Hardening we didn’t originally plan to write about

    The most honest thing we can say about the last stretch of work is that a meaningful chunk of it came from actively looking for what we’d gotten wrong, not just building what we’d planned to build. Two independent security reviews, run against our own codebase rather than taking our own documentation’s word for it, turned up real issues — a session-signing key that ended up world-readable, an authorization gap on a higher-stakes action than we’d initially scoped it as, a sudo grant broader than it needed to be. Every one of them got fixed, verified, and written up, because a platform whose whole pitch is isolation has to be honest about the parts of itself that weren’t isolated enough yet.

    Alongside that: hardware-key and authenticator-app two-factor authentication on both the operator and tenant admin panels, tamper-evident audit logging, encrypted secrets and backups at rest, and a Docker access model where a compromised admin process can’t simply reach for the host’s root-equivalent socket.

    Where things stand now

    VHSP is still maturing — this remains infrastructure we’re proving out before it carries production traffic that isn’t our own. But the gap between “the isolation model, described” and “the isolation model, running” is closed. What’s live today has been created, attacked with real test payloads, and torn down again on real infrastructure, not asserted from a diagram.

    More to come as the platform matures.

  • Flock Safety’s ALPR Cameras: What Oversight Actually Works, What’s PR, and Why the Pushback Is Growing

    A Flock Safety automated license plate reader (ALPR) camera mounted on a pole
    A Flock Safety ALPR camera. Photo by Bruxton, dedicated to the public domain (CC0) via Wikimedia Commons.

    Flock Safety makes the automated license plate reader (ALPR) cameras that have quietly become one of the most widespread surveillance networks in the country — and one of the most contested. Here’s where things stand.

    The pitch vs. the problem

    Flock’s cameras do help solve real crimes: recovering stolen vehicles, closing hit-and-runs, supporting Amber Alerts. But the business model is what draws scrutiny. Instead of a department running its own local camera, Flock stitches thousands of cameras together into one searchable, nationwide network — often with far less judicial oversight than a traditional warrant process would require.

    What oversight actually works

    • Full contract cancellation. The only measure with a real track record. At least 30 cities have canceled their Flock contracts since the start of 2025, with some counts putting total terminations as high as 82 across 28 states — and the pace accelerated through 2026.
    • Independent audits of search logs, done by a third party rather than self-reported by the department. Columbus used this approach to catch an officer whose search patterns pointed to unauthorized immigration-related lookups.
    • Explicit, verifiable bans on data sharing with ICE/CBP tied to a court-order requirement — but only where a city has an independent way to confirm compliance. Reporting has shown that despite Flock’s denials of a direct ICE contract, roughly 4,000 immigration-related searches flowed through local departments as a “side door” to federal data access.

    What’s mostly PR

    • Flock’s own press-release-style “policy enhancement” announcements, issued in response to local pressure, with no independent way to verify compliance.
    • “Kept the cameras, added safeguards” outcomes that amount to paper policy with no built-in audit mechanism.
    • Flock’s decision to redact officer names from audit logs — marketed as a privacy improvement, but criticized by the ACLU and others for gutting the exact mechanism that catches misuse.
    • Security fixes like two-factor authentication that arrived only after a breach was reported publicly, not proactively.
    • In Evanston, after the city canceled its contract and ordered the cameras removed, Flock left some up and reinstalled others without authorization — they weren’t fully gone until early 2026. That’s a trust violation, not a messaging problem.

    The pushback is real, and it’s not one-sided

    The coalition raising alarms spans the usual privacy-left (ACLU, DSA chapters) and the libertarian-leaning Institute for Justice, which has independently documented at least 22 cases nationwide of officers using ALPR data to track romantic interests. Criminal charges are now reaching internal-affairs investigators, not just line officers — including a Milwaukee case in July 2026 where the detective assigned to investigate one stalking complaint was himself charged with misusing the system.

    The ACLU has been blunt about it, publishing a piece titled “Flock Safety Credibility Lost as it Repeatedly Lies to City Councils, Police Departments, and Public Across the Country.”

    DeFlock: the crowdsourced counter-map

    One of the more effective pressure points hasn’t come from a city council or a regulator at all — it’s come from a volunteer-run map. DeFlock.me, created by developer Will Freeman, is a crowdsourced, OpenStreetMap-based project that lets ordinary people submit and browse the exact locations of ALPR cameras nationwide. As of mid-2026 it has logged nearly 96,000 Flock cameras specifically — roughly five out of every six branded ALPR camera in its dataset — giving drivers, journalists, and city councils an independent, public view of just how dense Flock’s network has actually gotten in their area.

    DeFlock has also become a direct adversary of the company. Flock sent Freeman a cease-and-desist letter in late 2024 claiming the project’s name diluted its trademark. The Electronic Frontier Foundation took up his defense, telling Flock the demand was groundless since noncommercial, critical use of a trademark is squarely protected speech. Freeman refused to take the site down, and it’s still running.

    The project’s own tally credits it with helping drive at least 68 cities to reject Flock’s technology since 2021 — through canceled contracts, deactivated cameras, or outright ALPR bans — by giving local officials and residents hard evidence of scale that the company’s own marketing never volunteers. DeFlock has also directly challenged Flock’s headline claim that its cameras help solve 20% of cleared cases in coverage areas, arguing there’s no independent evidence tying ALPR deployment to actual crime reduction.

    Bottom line

    If a city or department wants oversight that actually holds up, it needs an independent audit mechanism and a verifiable data-sharing carve-out — not a press release. Everything short of that has, in case after case, turned out to be negotiable. And increasingly, it’s grassroots efforts like DeFlock — not just formal policy fights — that are surfacing the evidence those fights run on.

    Sources: ACLU, GovTech, Malwarebytes, Tech Times, Futurism, State of Surveillance, EFF.

  • Song Spotlight: “Heaven Knows” by The Pretty Reckless

    Official album cover for Going to Hell by The Pretty Reckless

    Going to Hell (2014) — official album cover, used here for identification/commentary purposes.

    Currently on repeat: “Heaven Knows” by The Pretty Reckless. Rating: 5/5 — an anthemic, glam-tinged rock stomp that earns every bit of its swagger.

    Read the lyrics ·
    Watch the music video on YouTube ·
    Listen on Spotify

    What it’s about

    Rather than quote the lyrics directly, here’s the gist: “Heaven Knows” is built around a big, defiant, sing-along chorus aimed squarely at outsiders and “troubled teens” — Rolling Stone’s Chucky Eddy described it exactly that way, calling it a “full-on glam stomp” about kids who don’t fit the mold. There’s a rebellious, us-against-the-world energy running through it, delivered with a theatrical, almost gospel-sized swell in the chorus that makes it feel bigger than a typical hard rock single. Billboard’s Chris Payne put it well, comparing the track to “Queen’s ‘We Will Rock You’ with Joan Jett vocals” — stomp-and-clap bravado crossed with real rock snarl.

    Interesting facts about the song

    • It’s from Going to Hell (2014). The song was released as a single on November 19, 2013, ahead of the album’s March 2014 release.
    • Written by Taylor Momsen and Ben Phillips, produced by Kato Khandwala, and recorded at Water Music Studios in Hoboken, NJ — the same studio that had been significantly damaged during Hurricane Sandy in 2012, forcing the band to redo portions of their material.
    • It made chart history. “Heaven Knows” became the band’s first single to top a Billboard chart, spending three weeks at #1 on the Mainstream Rock Songs chart — only the second time in 24 years a female-fronted band’s single had topped that chart.
    • It went platinum in both the US and Canada, and gold in New Zealand, and also topped the UK Rock & Metal Singles Chart.
    • The music video, co-directed by Taylor Momsen herself, premiered in February 2014 and was shot in Miami — burning books, tattooed teenagers, a dark high-school setting. Momsen has described the visual approach as deliberately understated.

    Interesting facts about The Pretty Reckless

    • Formed in New York in 2009 by Taylor Momsen and guitarist Ben Phillips. They were originally called The Reckless before a trademark conflict forced a name change.
    • Momsen quit acting to do this. Before fronting the band, she played Jenny Humphrey on Gossip Girl (2007–2012) and appeared in How the Grinch Stole Christmas as a kid. She’s said she chose music over continuing the acting career.
    • Their debut, Light Me Up (2010), produced the single “Make Me Wanna Die,” which hit #1 on the UK Rock Singles chart.
    • They kept setting records. The band went on to become the first female-fronted act with seven different singles topping the Mainstream Rock chart.
    • Current lineup: Taylor Momsen (vocals/rhythm guitar), Ben Phillips (lead guitar/backing vocals), Mark Damon (bass), and Jamie Perkins (drums).
  • WordPress MCP in Practice: What Worked and What Didn’t

    Diagram showing an AI agent talking to the MCP Adapter, which dispatches to a bounded set of registered abilities, which act on WordPress core

    We just wired up WordPress’s official MCP Adapter on this site so an AI agent (Claude Code) can manage content and theming through structured tool calls instead of ad hoc scripts. Here’s what stood out after actually using it end to end.

    Pros

    • It’s a core-backed standard, not a hack. The Abilities API landed in WordPress core as of 6.9, and the MCP Adapter is an official WordPress.org project layered on top of it — not a third-party plugin bolting AI access onto WordPress from the outside.
    • Bounded by design. Instead of exposing arbitrary code execution, you register specific, named abilities (“create a draft post,” “switch the active theme”) with their own input schemas and permission checks. It replaced a much riskier pattern we were using before — dropping one-off PHP scripts into the webroot, running them once, and deleting them.
    • Uses standard WordPress auth. Application Passwords, the same mechanism WordPress already ships for REST API access — no new auth system to trust.
    • Self-describing. A discover-abilities call lists everything available; get-ability-info returns full input/output schemas per ability. An agent (or a person) can figure out what’s possible without reading source code.
    • Extensible in a few lines. Registering a new ability is a single wp_register_ability() call with a label, schema, permission callback, and execute callback — a handful of these covered posts and themes for this site.

    Cons / friction points

    • Silent breakage on default permalinks. This site was still on WordPress’s default “Plain” permalink structure, which broke /wp-json/ routing in a confusing way — requests didn’t 404, they fell through and served the homepage HTML instead of a JSON error. Easy to misdiagnose as an auth or server problem when it’s actually a permalink setting.
    • New MCP servers don’t hot-load into a running session. After registering the server, tool calls failed until the client (Claude Code) was fully restarted — a new subagent within the same running process wasn’t enough. There’s no in-session refresh.
    • “Connected” can be misleading. Connection-status checks confirmed the transport handshake succeeded, not that tool definitions had actually loaded for a given session — those turned out to be two different things.
    • Almost nothing is exposed out of the box. Past a handful of read-only meta/site-info abilities, there’s no built-in “create a post” or “manage plugins” capability — every real content-management action had to be hand-written as a custom plugin.
    • The scoping responsibility shifts to you. Because abilities are so easy to register, it’s tempting to expose more than necessary. We deliberately kept post creation limited to drafts (never direct publish) and left anything resembling arbitrary command execution out entirely — that discipline has to be applied by whoever writes the abilities, the framework won’t stop you from registering something dangerous.

    Verdict

    Worth it. The rough edges were all discoverable and fixable in one sitting, and the end state — a small, auditable set of named, schema-checked actions — is a meaningfully better security posture than the file-drop workaround it replaced.

  • Introducing VHSP: A Security-First Approach to Multi-Tenant Hosting

    Diagram comparing a breach spreading across shared hosting to a breach contained within one VHSP tenant container

    We’re building VHSP — the Virtual Hosting Service Platform — a self-hosted alternative to traditional hosting control panels, designed from the ground up around a single priority: keeping every customer’s site and mailbox genuinely isolated from every other customer’s.

    The hosting industry has largely settled on shared-daemon architectures, where every tenant’s web and mail traffic flows through the same PHP process pool, the same mail server, the same database engine. It’s efficient, and it’s what most panels — cPanel, Plesk, and newer entrants alike — are built on. It’s also a single point of failure: when one tenant’s site is compromised, the blast radius is defined by how well that shared daemon happens to be hardened, not by any wall between customers.

    VHSP takes a different approach. Every tenant gets their own containers — their own web process, their own mail service, their own database — running in isolation from every other tenant on the platform. If one site is compromised, the damage stops at that container’s edge.

    What that looks like in practice

    A few of the ideas driving the build:

    • Per-tenant everything. Web, mail, and database each run in their own container per customer, rather than sharing a single multi-tenant engine.
    • Self-service, without a shared attack surface. Customers manage their own mail users, files, and site settings through their own container’s admin tools — not through a shared control panel that, if breached, would expose every tenant at once.
    • Defense in depth by default. Hardened-by-default configurations, with customers able to opt into more permissive settings for specific needs, deliberately and with clear tradeoffs — not the other way around.
    • Centralized detection, decentralized blast radius. Security monitoring and abuse detection operate at the shared edge of the platform, so suspicious activity can be caught platform-wide — without requiring tenants to trust each other or share a runtime.

    None of this is about chasing the cheapest possible hosting density. It’s a deliberate tradeoff: more isolation, at the cost of some efficiency, because the cost of a shared-tenant breach is so much higher than the cost of a few extra containers.

    Where things stand

    VHSP is currently in active development, being built and tested against real workloads to validate the approach before it goes anywhere near production traffic. This site is one of the environments we’re using to do exactly that.

    More to come as the platform matures.