Datavision.pl — archiwizacja logów SOC

ELSA

Easy Log Simple Archive

Brakująca warstwa między hot search a zimnym archiwum. Przeszukiwalne, niezmienne, uśpione do momentu potrzeby.

Zbudowane na tej samej filozofii co DES: S3 jako jedyne źródło prawdy. Zero zewnętrznych baz danych jako warunek konieczny działania.

NIS2 GDPR Art. 17 DORA KNF S3 WORM Apache 2.0
Wyzwanie

Czy to brzmi znajomo?

Każdy zespół SOC staje przed tym samym napięciem: logi muszą być przechowywane latami, a żaden system nie robi dobrze jednocześnie retencji i wyszukiwania.

💸

Hot storage — za drogie na lata retencji

Wazuh, Splunk, Elasticsearch — doskonałe narzędzia do real-time search, ale koszt przechowywania danych przez 5–7 lat (wymóg NIS2/KNF) czyni je nieekonomicznymi. Płacisz za compute nawet gdy nikt nie szuka.

🔍

Zimne archiwum — dane są, ale nie można ich znaleźć

S3, taśmy, NFS — tanie i trwałe, ale nie mają indeksu. Pytanie "co robił IP 185.220.101.42 w lutym?" wymaga godzin ręcznego pobierania, dekompresji i grep. To nie jest workflow analityka SOC.

⚖️

GDPR Art. 17 kontra WORM — pozorny konflikt

Regulatorzy wymagają niezmienności (WORM). GDPR wymaga prawa do usunięcia. Żadne z analizowanych rozwiązań rynkowych nie rozwiązuje tego napięcia architektonicznie — każde wymaga ręcznych obejść.

🚨

Organy ścigania przychodzą raz w roku

Policja, prokuratura, audyt KNF — wnioski o dane zdarzają się rzadko, ale wymagają błyskawicznej, udokumentowanej odpowiedzi z kryptograficznym dowodem integralności. Żaden grep tego nie zapewni.

15×
Tańsze od Splunk
3-letnie TCO dla 100GB/dzień
<5min
Rebuild metastore
Rok danych, z S3
<1.5s
Cross-stream lookup
3 strumienie, hot window
100%
Integralność archiwum
CRC32 + chain hash + WORM
Rozwiązanie

Jak ELSA rozwiązuje te problemy

Archiwum logów z indeksem encji, kryptograficzną integralnością i modelem operacyjnym zaprojektowanym pod rzeczywiste potrzeby SOC.

🔎

Wyszukiwanie wielostreamowe

Jedno zapytanie przeszukuje audit_logs, firewall_logs i app_logs równolegle. Wyniki scalone i posortowane po czasie — pełna oś czasu aktywności encji (IP, username, hostname, session_id) w jednym widoku.

Cross-stream fan-out
🛡️

GDPR + WORM — rozwiązany konflikt

Tombstone z hashowanymi doc_id eliminuje dane z widoku zapytań. Repack anchor entries zachowują ciągłość łańcucha kryptograficznego po fizycznym repaku. Audytor widzi udokumentowaną mutację, nie zerwany łańcuch.

Unikalne na rynku
☁️

S3 jako jedyne źródło prawdy

Redis to zmaterializowany widok — można go usunąć i odbudować w minuty. Brak PostgreSQL, brak vendor lock-in. Kompatybilność z AWS S3, MinIO i Ceph/RGW. Dane żyją w standardowym S3, nie w zastrzeżonym formacie.

Zero lock-in
📦

Format .elsa — wersjonowany, własny

Kolumnowe pliki binarne z wbudowanym hotcache (Bloom filter + sparse index + min/max). Jeden Range-GET S3 daje decyzję skip/scan w <5ms. Własny format Bloom filtrów niezależny od wersji biblioteki.

Bloom filter ELBF v1
🔒

Compliance-grade od fundamentów

S3 Object Lock (WORM), entity-scoped legal hold, BypassGovernanceRetention jako break-glass z MFA i alertem CloudTrail do CISO, pełny audit trail z embedded AuditTrailWriter bez zależności cyklicznych.

NIS2 / GDPR / DORA / KNF
🔐

Uwierzytelnienie każdej ścieżki ingestion

Dane zapisane dziś do staging stają się jutro immutable archiwum. Każde źródło musi się uwierzytelnić: mTLS dla syslog, HMAC Bearer token dla HTTP POST, SASL/SCRAM dla Kafka. Zero anonimowych zapisów.

Zero anonymous writes
Unikalna właściwość operacyjna

Warstwa zapytań, która śpi

Kluczowa właściwość ELSA: infrastruktura wyszukiwania nie musi działać ciągle. Ingestory zbierają logi. CronJob buduje indeksy każdej nocy. S3 przechowuje archiwum. Redis i węzły query — są potrzebne tylko wtedy, gdy ktoś szuka.

Policja, prokuratura, audyt KNF — przychodząc raz w roku, zastają system, który w ciągu kilku minut jest gotowy do przeszukania lat danych. Po zakończeniu infrastruktura znika. Płacisz za storage, nie za stojący klaster.

Zawsze aktywne — minimalny footprint
  • Ingestory (zbierają logi)
  • Nightly CronJob (compaction + indeksy)
  • S3 — jedyne źródło prawdy
On-demand — spin up gdy potrzeba
  • Redis metastore (rebuild z S3 w ~5 min)
  • Query nodes (bezstanowe pody K8s)
  • Tear down po zakończeniu pracy
SCENARIUSZ: WNIOSEK PROKURATURY
# Dzień 1 — wniosek o dane IP 91.108.56.0/22
$ kubectl apply -f elsa-query-stack.yaml
→ Redis + 2× query node uruchomione (~3 min)
$ elsa-admin rebuild --from-s3
→ Wczytywanie manifestów S3...
→ Budowanie cross-stream entity index...
✓ Metastore gotowy (4m 23s, 52 segmenty)
$ curl POST /api/v1/entity/ip/91.108.56.1/
    timeline?streams=all&from=2026-01-01
✓ 4,821 zdarzeń · 3 strumienie · 1.2s
$ curl POST /api/v1/export \
    --data '{"include_audit_proof":true}'
✓ Export gotowy + audit_proof.json
$ kubectl delete -f elsa-query-stack.yaml
✓ Infra usunięta · S3 archiwum niezmienione
# Koszt: ~5h × 2× t3.medium + Redis ≈ kilka USD
Zastosowania

Kto potrzebuje ELSA?

Rzeczywiste scenariusze dla organizacji, które muszą przechowywać logi latami i móc je przeszukać w każdej chwili.

🛡️
Cyberbezpieczeństwo

Zespoły SOC i CERT

Analityk SOC dostaje alert z Wazuh: IP 185.220.101.42. Chce zobaczyć pełną historię — firewall, auth logi, app logi — z ostatnich 90 dni. Jedno zapytanie, kilka sekund.

  • Cross-stream pivot — oś czasu z wszystkich strumieni w jednym widoku
  • Entity-centric search — po IP, username, hostname, session_id
  • Export z audit proof — kryptograficzny dowód integralności do raportu
  • Related entities — automatyczna identyfikacja powiązanych podmiotów
🏦
Fintech i bankowość

Instytucje nadzorowane przez KNF

Banki i firmy inwestycyjne muszą przechowywać logi systemów transakcyjnych przez 5–7 lat z pełną integralnością. KNF i DORA wymagają zdolności do odtworzenia pełnej historii zdarzeń.

  • WORM z S3 Object Lock — niezmienność gwarantowana na poziomie infrastruktury
  • Audit trail per operacja — każde zapytanie, eksport i dostęp zalogowany
  • Legal hold per encję — blokada usunięcia dla konkretnej transakcji lub klienta
  • Compliance raport — eksport z dowodem integralności dla audytora
⚖️
Administracja i sektor publiczny

Organy ścigania i e-administracja

Jednostki administracji publicznej objęte NIS2 muszą archiwizować logi infrastruktury krytycznej i odpowiadać na wnioski organów ścigania szybko i z dokumentacją.

  • On-demand search — infra uruchamiana na wniosek, nie stoi 24/7
  • Tombstone GDPR — usuwanie danych osobowych bez łamania WORM
  • Niski koszt operacyjny — płatność za storage, nie za stały klaster
  • Open-source — brak vendor lock-in, pełna kontrola nad kodem
🏢
Dostawcy usług zarządzanych

MSSP i integratorzy systemów

Managed Security Service Providers mogą oferować ELSA jako usługę archiwalną dla swoich klientów — multi-tenant, z separacją danych per stream i pełną ścieżką audytu per klient.

  • Multi-stream — osobne strumienie per klient lub system
  • API-first — integracja z TheHive/Cortex, Grafana, SOAR
  • Biała etykieta — open-source, można wdrożyć pod własną marką
  • SLA compliance — gwarancje dla klientów regulowanych
Zgodność regulacyjna

Compliance wbudowane, nie doklejone

ELSA spełnia wymagania regulacyjne architektury, nie jako konfiguracja na koniec projektu.

NIS2
GDPR
DORA
KNF
ISO 27001

S3 Object Lock — WORM na poziomie infrastruktury

Pliki archiwalne blokowane natychmiast po promocji ze staging. Tryb GOVERNANCE (usuwanie z MFA) lub COMPLIANCE (nieusuwalne w żadnych okolicznościach).

GDPR Art. 17 + WORM — rozwiązany konflikt

Tombstone z hashowanymi doc_id eliminuje dane z wyników zapytań bez łamania WORM. Repack anchor entries zachowują ciągłość łańcucha po fizycznym repaku.

Unikalne na rynku

BypassGovernanceRetention — break-glass

Uprawnienie do fizycznego usunięcia WORM wymaga MFA, short-lived tokenu z OpenBao i generuje automatyczny alert CloudTrail do CISO. Nigdy nie jest osadzone w konfiguracji aplikacji.

Pełny, kryptograficznie powiązany audit trail

Każda operacja (INGEST, QUERY, REPACK, LEGAL_HOLD, EXPORT) jest logowana przez AuditTrailWriter — embedded component bez zależności cyklicznych. Chain hash na każdym wpisie.

Entity-scoped legal hold

Blokada usunięcia dla konkretnej encji (IP, username) zamiast całego strumienia. System automatycznie identyfikuje dotknięte splity i nakłada Object Lock. Procedura four-eyes przy zdjęciu.

Export z dowodem integralności

Każdy eksport danych zawiera audit_proof.json z hashami splitów, potwierdzeniem WORM i, jeśli dotyczy, informacją o repack anchor entries. Gotowy do przekazania audytorowi lub prokuraturze.

Pod maską

Architektura zaprojektowana na lata

Model D+1 eliminuje race conditions. Bezstanowe węzły obliczeniowe zapewniają skalowalność bez koordynatora.

Warstwa ingestion

Ingestory

Syslog TCP/TLS (mTLS), HTTP POST (HMAC), Kafka (SASL/SCRAM), logRotate CLI. Każde źródło uwierzytelnione. Bezstanowe — zabij i uruchom ponownie bez utraty danych.

Nightly compaction

CronJob

K-way merge micro-splitów, budowanie indeksów (Bloom + inverted), promocja do archiwum WORM, rebuild Redis. Overlap guard (Redis lock) i S3 conditional PUT zabezpieczają przed race conditions.

Metastore (on-demand)

Redis

Zmaterializowany widok manifestów S3. Cluster namespace dla cross-stream lookupów. Całkowicie odtwarzalny z S3 w ~5 minut. Cardinality monitoring + sampled mode dla wysokiej kardynalności.

Query layer (on-demand)

Query Engine

Cross-stream fan-out (CompletableFuture). Rate limiting + HTTP 429 (SmallRye bulkhead). Query budget estimation. Predicate pushdown: Redis → Bloom → min/max → columnar → stored fields.

Komponent Technologia Uzasadnienie
RuntimeJava 21 + QuarkusReactive, non-blocking I/O; GraalVM native image dla CLI
Object storageS3-compatibleAWS S3, MinIO, Ceph/RGW — ta sama kompatybilność co DES
Metastore cacheRedis 7.xAtomic Lua scripts; sorted sets dla time-range lookupów
Kompresja danychzstd level 3Dane kolumnowe — compression ratio >3× typowo
Bloom filterELBF v1 (własny)Niezależność od wersji Guava; backward-compatible format
Posting list codecVByte delta1–2 bajty per doc_id — minimalna zajętość indeksu
SecretsOpenBaoDynamic secrets dla BypassGovernanceRetention; MFA enforcement
OrchestrationKubernetesCronJob dla nightly, HPA dla query nodes, Helm charts
ObservabilityPrometheus + GrafanaAlert: elsa_compaction_last_success >26h → PagerDuty
Datavision.pl

Zacznij archiwizować logi
z gwarancją ich odnalezienia

Skontaktuj się z nami, aby omówić wdrożenie ELSA w Twojej organizacji, uzyskać wycenę albo zadać pytanie techniczne dotyczące architektury.