The autonomous SOC analyst that never leaves the building.
What did we miss last night? Nest is the answer — an agentic SOC analyst that runs entirely on your own hardware, reasons with a local open-weights model, and reads the alert stream so a human doesn't have to read all of it. It can request a firewall block — but by default it cannot execute one, and the code refuses whole categories of action even when a human approves them.
Each is a job a human would do — if a human had unlimited time.
Polls alerts above a severity floor (default rule.level ≥ 7), collapses near-duplicates into one representative carrying an occurrence count, and triages the batch with tools to look up the host, search neighboring alerts, and check indicator reputation. The output is a recorded verdict. An alert at rule.level ≥ 12 triggers a full investigation immediately, on its own thread.
A second lane reads the raw archive firehose — every event recorded, not just rule matches — and escalates anything that looks wrong. The by-product is the prize: an event the model flags that fired no rule is recorded as a coverage_gap — a detection-engineering backlog with rule IDs attached, instead of a blind spot nobody can see.
On a timer — and out-of-band whenever something critical arrives — it runs aggregate queries across alerts and archives: beaconing, brute force, rare processes, lateral movement, data staging. The analysis nobody has time to run, that a machine runs nightly for the cost of electricity.
A second daemon does the deep pass: extract every indicator, gather reputation on the public ones (VirusTotal, AbuseIPDB, abuse.ch, CIRCL, DShield — see below), map behavior to MITRE ATT&CK, and write an investigation. It also asks whether a finding is actually a false positive — and where well-evidenced, offers a scoped one-click suppression rule.
Everything that reaches a person goes through a single exit that records the decision whether or not it sends, and attaches the raw log lines the claims rest on beneath the prose. A human reading a confident paragraph with the evidence under it can spot a wrong conclusion in seconds.
The model can name an action from a fixed list; it can't invent one. The confidence value that gates anything is a code-owned constant chosen by whichever evidence source fired — never the model's estimate of itself.
For the narrow class of actions that can take a network down, a code-owned refusal outranks a human "Allow." An approved block once targeted the SIEM's own address and took the box off its network — that class of action is now refused under any approval.
An unverifiable report is delivered stamped unverified, never silently dropped. An unverifiable action is not taken. What deserves a human always gets one; what could cause harm waits.
Every gate ships on an observe → shadow → enforce ladder — recording the decision it would have made against live traffic before it can suppress or act.
Investigation and hunting rate every public indicator against the threat-intel feeds your SOC already trusts — free community sources and the commercial subscriptions most teams already license — then cache the answer and attach what they found to the report. You choose the mix; a residency chokepoint guarantees only public indicators are ever sent, and internal ones never leave the building.
Your own MISP instance is queried locally for every indicator — no egress, ever — returning matching attributes and event context.
IP, domain, hash and URL reputation — the multi-engine last-analysis verdict.
IP abuse-confidence score and report volume across the trailing 90 days.
Names the malware family and threat type behind a specific IOC, with a confidence level.
File-hash intelligence: file type, signature and delivery method for known samples.
Known-malicious / known-good flags for file hashes — a decisive, indicator-specific signal.
Community IP reputation from the Internet Storm Center sensor network.
A chokepoint classifies every indicator before any URL is built and fail-closed refuses to egress an internal one — so "enrich" can never become a data-egress path, whatever the model asks.
Endpoint + network agents ──► SIEM manager ──► alerts + archives ──► OpenSearch
│
▼
[ Phoenix Nest ]
│
┌─────────────────────────────────┼─────────────────────────────────┐
▼ ▼ ▼
Slack / chat audit trail active response
(your analyst) (queryable record) (gated · opt-in · dry-run)
Any product that can't tell you how to check it's working is asking for exactly that. Nest reports these signals about itself:
| Question | Signal it emits |
|---|---|
| Is it running at all? | cycle_health_state — healthy / degraded / escalated / stalled |
| Is it keeping up? | Ingest lag in bytes; a sustained backlog notifies once, not per cycle |
| Is it doing work? | Triage verdicts/day measured against cycle errors/day — the ratio is the diagnosis |
| Is our detection improving? | coverage_gap trend, with the missing rule IDs |
| Is it declining things it shouldn't? | triage_declined, with rule levels present ("declined a level 12" is searchable) |
| Did the deploy land? | A content fingerprint per box, compared between boxes — drift caught by disagreement |
| Capability | Status |
|---|---|
| Alert triage | In production — multiple deployments |
| Firehose scanning + coverage-gap detection | In production — per-box opt-in |
| Scheduled + critical-triggered hunting | In production |
| Deep investigation · MITRE · IOC reputation | In production |
| Notification gating | Live in observe — records, doesn't suppress |
| Hunt-report severity + grounding gates | Live in shadow — annotates, doesn't withhold |
| Active response | Dry-run by default |
| External threat intel (VT · AbuseIPDB · abuse.ch · CIRCL · DShield) | In production — connect the feeds your team licenses |
Autonomní SOC analytik, který nikdy neopustí budovu.
Co nám včera v noci uniklo? Nest je ta odpověď — agentický SOC analytik, který běží celý na vašem vlastním hardwaru, uvažuje nad lokálním modelem s otevřenými vahami a čte proud alertů, aby to celé nemusel číst člověk. Může požádat o blokaci na firewallu — ale ve výchozím stavu ji nemůže provést a kód odmítá celé kategorie akcí, i když je člověk schválí.
Každou z nich by dělal člověk — kdyby měl neomezený čas.
Nest stahuje alerty nad hranicí závažnosti (výchozí rule.level ≥ 7), slučuje téměř-duplicity do jednoho zástupce s počtem výskytů a batch triážuje — s nástroji na dohledání hostu, prohledání sousedních alertů a ověření reputace indikátoru. Výstup je zaznamenaný verdikt. Alert s rule.level ≥ 12 spustí plné vyšetřování okamžitě, na vlastním vlákně.
Druhá dráha čte surový archivní proud — každou zaznamenanou událost, ne jen ty, co odpovídaly pravidlu — přes levný rychlý model a eskaluje cokoli, co vypadá špatně. Vedlejší produkt je ta cena: událost, kterou model označí a nespustila žádné pravidlo, se zaznamená jako coverage_gap — backlog pro detekční inženýrství s přiloženými ID pravidel, místo slepého místa, které nikdo nevidí.
Na časovač — a mimo pořadí, kdykoli dorazí něco kritického — pouští Nest agregační dotazy napříč alerty a archivy: beaconing, brute force, vzácné procesy, laterální pohyb, staging dat. Analýza, na kterou nikdo nemá čas a stroj ji zvládne každou noc za cenu elektřiny.
Druhý démon vezme každý verdikt a udělá hloubkový průchod: vytáhne každý indikátor, ověří reputaci u těch veřejných (VirusTotal, AbuseIPDB, abuse.ch, CIRCL, DShield — viz níže), namapuje chování na MITRE ATT&CK a napíše vyšetřování. Zároveň se ptá, jestli nejde o falešný poplach — a kde je to dobře podložené, nabídne cílené pravidlo pro jednorázové potlačení.
Vše, co dorazí k člověku, projde jediným východem, který zaznamená rozhodnutí bez ohledu na to, zda odeslal, a pod text připojí řádky logů, na kterých tvrzení stojí. Člověk čtoucí sebevědomý odstavec s důkazy pod ním odhalí špatný závěr během pár vteřin.
Model může akci jen pojmenovat z pevného seznamu; nemůže ji vymyslet. Hodnota jistoty, která cokoli odblokuje, je konstanta vlastněná kódem podle toho, který zdroj důkazů se ozval — nikdy model sám o sobě.
U úzké třídy akcí, které mohou shodit síť, kódem vlastněné odmítnutí přebije lidské „Povolit“. Schválená blokace jednou mířila na vlastní adresu SIEMu a odpojila box od sítě — tahle třída akcí je teď odmítána za jakéhokoli schválení.
Neověřitelný report dorazí označený jako neověřeno, nikdy se nezadrží. Neověřitelná akce se neprovede.
Každá brána jede po žebříčku observe → shadow → enforce — sleduj, nanečisto, pak jednej — a zaznamená rozhodnutí, které by proti živému provozu udělala, dřív než smí potlačit nebo jednat.
Vyšetřování i lov hodnotí každý veřejný indikátor proti feedům, kterým váš SOC věří — komunitním zdrojům i komerčním předplatným, která většina týmů možná už provozuje — pak odpověď nacachují a přiloží do reportu. Mix si volíte vy; residenční hrdlo klasifikuje každý indikátor dřív, než se sestaví dotaz, a zaručuje, že ven jdou jen veřejné indikátory — ty interní budovu neopustí a „obohacení“ se nikdy nestane únikovou cestou.
Vaše vlastní instance MISP se dotazuje lokálně pro každý indikátor — bez úniku, bez opt-inu — a vrací odpovídající atributy a kontext události.
Reputace IP / domény / hashe / URL — verdikt z poslední analýzy napříč enginy.
Skóre jistoty zneužití IP a objem hlášení za posledních 90 dní.
Pojmenuje rodinu malwaru a typ hrozby za konkrétním IOC, s úrovní jistoty.
Inteligence k hashům souborů: typ souboru, signatura, způsob doručení pro známé vzorky.
Příznaky known-malicious / known-good pro hashe souborů — rozhodující, indikátorově konkrétní signál.
Komunitní reputace IP ze senzorové sítě Internet Storm Center.
Hrdlo klasifikuje každý indikátor dřív, než se sestaví jakýkoli dotaz, a fail-closed odmítne poslat ven ten interní — „obohacení“ se tak nikdy nestane únikovou cestou, ať se model ptá na cokoli.
Agenti na endpointech + síti ──► SIEM manažer ──► alerty + archivy ──► OpenSearch
│
▼
[ Phoenix Nest ]
│
┌─────────────────────────────────┼─────────────────────────────────┐
▼ ▼ ▼
Slack / chat audit stopa active response
(váš analytik) (dotazovatelný záznam) (hlídané · opt-in · dry-run)
Každý produkt, který vám neumí říct, jak si to ověřit, o tuhle víru žádá. Nest o sobě hlásí tyto signály:
| Otázka | Signál, který vysílá |
|---|---|
| Běží to vůbec? | cycle_health_state — healthy / degraded / escalated / stalled |
| Stíhá to? | Zpoždění ingestu v bytech; trvalý backlog oznámí jednou, ne každý cyklus |
| Odvádí to práci? | Verdiktů triáže za den proti chybám cyklů za den — ten poměr je diagnóza |
| Zlepšuje se naše detekce? | trend coverage_gap, s chybějícími ID pravidel |
| Nezamítá něco, co by nemělo? | triage_declined, s přítomnými úrovněmi pravidel („zamítlo level 12“ se dá dohledat) |
| Doběhlo nasazení? | Otisk obsahu na každém boxu, porovnaný mezi boxy — drift se pozná z neshody |
| Schopnost | Stav |
|---|---|
| Triáž alertů | V produkci — více nasazení |
| Skenování proudu + detekce coverage gapů | V produkci — opt-in po boxech |
| Plánovaný + kriticky spouštěný lov | V produkci |
| Hloubkové vyšetřování · MITRE · reputace IOC | V produkci |
| Brána oznámení | Živě v observe — zaznamenává, zatím nepotlačuje |
| Brány závažnosti + ukotvení lov-reportů | Živě v shadow — anotuje, nezadržuje |
| Active response | Ve výchozím stavu dry-run |
| Externí threat intel (VT · AbuseIPDB · abuse.ch · CIRCL · DShield) | V produkci — připojte feedy, které tým licencuje |