Things I build, break, fix, and write about

29 July 2026
Headlamp in-cluster deployment and RBAC boundaries

Headlamp in-cluster deployment only makes sense when the UI belongs inside the cluster, and even then the service account should be painfully narrow. I trust the boundary, not the person using it on a quiet afternoon.

28 July 2026
Marketplace takedown pressure on vendor operations

Marketplace takedowns do more than pull a site offline, they cut through the vendor routines that keep sales moving. In dark web marketplaces, that...

28 July 2026
Brickstorm persistence in Microsoft 365

Brickstorm showed how Microsoft 365 persistence can survive a tidy password reset and a few blocked logins. I keep coming back to the same point, if...

27 July 2026
Restricting Serv-U access before patching

The SolarWinds Serv-U flaw is the sort of bug that turns a routine patch into an ugly afternoon, so I would block the obvious request pattern first...

Latest blog posts you might like

9 May 2026
Older clients after root CA rotation

Older clients rarely fail politely after an SSL.com root certificate rotation, and I have seen enough broken TLS to stop trusting “it works on my laptop”. The real problem is usually old trust stores...

9 May 2026
Local access exposes Microsoft Edge saved passwords

Microsoft Edge cleartext password storage is not a theoretical gripe; once the session is live, the browser can hand over saved credentials far more easily than most people expect. I would treat that...

8 May 2026
Turning ISC diary entries into detection checks

SANS Internet Storm Center diary indicators are only useful once they stop being a header and start becoming something you can test. I treat the stub as a pointer, not evidence; until there is a...

8 May 2026
React dashboards for DShield web honeypot logs

React dashboards make web honeypot logs readable, but only if you strip out the noise first. I prefer to reduce the stream to a few hard facts, then let the interface show the pattern; anything else...

7 May 2026
Prioritising patches from Stormcast threat signals

ISC Stormcast is useful when it changes the queue, not when it just adds another tab to the pile. I care less about loud advisories than about whether a service is exposed, reachable, and already...

7 May 2026
Cognito federated login before user persistence

AWS Cognito’s awkward bit is not token issuance, it is timing. If `AWS Cognito PreSignUp_ExternalProvider` is not doing the real gatekeeping, you are already in cleanup territory, and I have no...

7 May 2026
AWS Cognito PreSignUp_ExternalProvider and federated account creation

Federated sign-in in Cognito is less tidy than people assume. If you put the check in the wrong trigger, AWS Cognito PreSignUp_ExternalProvider can still let a user record land before anyone else gets...

7 May 2026
Blocking AI traffic with DNS filtering

Blocking AI traffic starts at the resolver, not the firewall. I’d rather break a query cleanly with DNS filtering than watch it slip through a public resolver and look ordinary, which is exactly why...

7 May 2026
n8n | stable

n8n v2 19 4: bugfix release, dynamic Quick Connect disclaimer, webhook mode hooks, GIT SSH COMMAND restored, Snowflake Insert and Update fixed

6 May 2026
Siri privacy settings for shared rooms and offices

Siri privacy settings are only useful if the microphone is not sitting in the wrong room, listening for the wrong thing. I trust fewer devices in shared spaces, because voice assistant privacy usually...