Miget (@miget_com) header
Miget (@miget_com) profile picture

Miget is a cloud-based PaaS. Our unique offering allows you to host unlimited number of applications under a single compute plan!

Joined June 2024
Photo by Miget (@miget_com)Photo by Miget (@miget_com)Photo by Miget (@miget_com)Photo by Miget (@miget_com)Photo by Miget (@miget_com)Photo by Miget (@miget_com)Photo by Miget (@miget_com)
Nine AI and developer platforms were breached in October. @wiz_io called it Black October. We run a PaaS, so we read every public RCA. Here's the pattern and what we did about it.
6
1
74
Credit to @zeaburapp, @Railway, @northflank, @FireworksAI_HQ, @LightningAI, and @andromeda_ai for publishing what happened while still cleaning up. That's the only reason the rest of us can learn from it.
55
Replying to @miget_com @wiz_io
How Miget answers them: - every app and every build runs in its own microVM with its own kernel - builds hold little and reach little - tenants are isolated by default - miget-inspector watches what workloads actually do at runtime
15
Replying to @miget_com @wiz_io
And detection failed because real credentials on real API paths don't look like an attack. So the useful questions for any platform are: - what runs customer code? - what can it reach? - what single identity can read everything? - would anyone notice?
7
Replying to @miget_com @wiz_io
The way in: a valid long-lived credential, or the system that runs customer code (a build, an eval job). The amplifier: one internal place that can read every tenant's secrets. One foothold becomes everyone.
5
Replying to @miget_com @wiz_io
The target was stored customer secrets. AI keys first. A database dump needs a buyer. An AI key with no spend limit is cash the moment someone validates it. @wiz_io saw stolen keys tested within ~30 minutes, then resold.
16
A Slack integration that posts raw JSON into a channel is not an integration. It is a webhook with extra steps. If the receiver cannot read a signature, stop sending one and render the message instead.
1
64
Outbound webhooks shipped on Miget. Then we did the annoying half: making them readable in Slack.
1
1
99
So a webhook has a format now. Set it to slack and the same event renders as text and blocks, coloured by outcome, showing only the fields the event actually carries, with a link back to the app.
1
26
And we drop the signature headers for slack, because signing something the receiver never reads buys nothing. The URL is the credential there, so it is masked in the UI, in the API and in the activity feed.
24
Price a self-hosted stack honestly. Supabase is six services and a Postgres. Per-service billing turns that into six line items and a database add-on. On Miget it is one 4 GiB plan at $25/mo, and everything inside it, databases included, is $0 per service.
1
1
105
Pin your image tags in a compose stack before it goes anywhere real. latest will hand you a breaking change on somebody else's schedule, and it will do it during a redeploy you started for a completely unrelated reason.
1
40
"Self-hosted" usually means you now run a database at 2am. Most of what people self-host is a compose file plus a Postgres nobody wants to operate. Take the compose file, hand the Postgres to somebody managed, and self-hosting stops meaning on call.
1
1
40