Bezpečnosť
Bezpečnosť
Ako Emona MFT a jadro jFiltra chránia vaše súbory a aké majú technické obmedzenia.
Verzie: Emona MFT 1.7.0, postavená na jadre jFiltra 1.1.7 so zverejneným zdrojovým kódom. Táto stránka uvádza, čo ktorá časť robí a aké má technické obmedzenia. Radšej sme presní ako pôsobiví.
Súčasť jadra jFiltra
- Na vlastných serveroch. Súbory idú od vašich klientov na váš vlastný server. Nič sa neposiela spoločnosti BLUEGEM ani do žiadnej cloudovej služby.
- Kontrola integrity. Každý súbor dostane haš SHA-256; server ho po dešifrovaní overí a klient zmaže originál alebo ho presunie do sent/ až po potvrdenom a overenom doručení.
- Kompresia a šifrovanie obsahu. Obsah súboru sa komprimuje pomocou GZIP a šifruje AES s kľúčom, ktorý je jedinečný pre každého klienta.
- Oddelenie klientov. Server ukladá súbory každého klienta do jeho vlastného priečinka. Odmieta neznáme označenia klientov aj každý názov súboru, ktorý obsahuje cestu (napríklad
../), takže klient nemôže zapisovať mimo svojho priečinka. - Limity spojení. Časové limity pre hlavičku aj prenos, limit spojení na IP adresu a maximálna veľkosť súboru zabránia tomu, aby jediné spojenie blokovalo server.
- Riadky z databázy, bezpečne. Od jFiltra 1.1 posiela samostatný DB klient výsledok SQL dotazu ako súbor CSV, TSV alebo JSON Lines a vaše SQL po prenose spustí až vtedy, keď server súbor potvrdí; pri akomkoľvek zlyhaní sa transakcia vráti späť. Heslá v JDBC URL a chybových hláseniach sa v logoch maskujú.
- Beží takmer všade. Java 8 alebo novšia (akýkoľvek build OpenJDK, otestované na 8, 11, 17, 21 a 25) na Linuxe, macOS alebo Windows, s Apache Log4j 2 ako jedinou závislosťou.
- Zdrojový kód, ktorý si môžete preveriť. Jadro má zverejnený zdrojový kód na GitHube pod licenciou PolyForm Noncommercial 1.0.0, takže presne vidíte, čo robí.
Čo jadro jFiltra nemá
- Spojenie nie je šifrované pomocou TLS, takže označenia klientov, názvy súborov, veľkosti a haše idú sieťou ako čistý text. jFiltra to zámerne vynecháva, aby zostala jednoduchá.
- Obsah súborov používa AES v režime ECB, nie autentifikované šifrovanie, a kľúče sa odvodzujú z hesla bez pomalej solenej funkcie na odvodenie kľúča.
- Klienti sa neoverujú certifikátmi a neexistuje ochrana proti opätovnému prehratiu prenosov.
Odporúčanie: jadro jFiltra prevádzkujte len v dôveryhodnej sieti, vo VPN alebo v SSH tuneli (postup je v README jFiltra) a jeho port nesprístupňujte z internetu.
Pridané v Emona MFT: protokoly 2 a 3
- Vzájomná autentifikácia. Klient aj server ešte pred odoslaním dát súboru preukážu, že poznajú kľúč klienta; klient zmaže súbor až po odpovedi, ktorú vie vytvoriť len skutočný server.
- Autentifikované šifrovanie. Názvy a obsah súborov sa šifrujú pomocou AES-256-GCM v očíslovaných 64 KB blokoch, takže sa odhalí zmena, prehodenie poradia aj skrátenie.
- Ochrana proti opakovaniu. Nové kľúče relácie pre každé spojenie (HKDF-SHA256 z náhodných hodnôt nonce), takže zaznamenaný prenos nemožno poslať znova.
- Predvolene protokol 2. Nové inštalácie používajú protokol 2. Pôvodný protokol 1 sa odmietne, ak nie je výslovne povolený. Nezhoda sa odmietne, oznámi klientovi a zaznamená. V sieti je viditeľné len označenie klienta.
- Protokol 3: hybridná postkvantová výmena kľúčov. Voliteľný od 1.7.0. Každé spojenie pridáva novú výmenu kľúčov X25519 a ML-KEM-768 (NIST FIPS 203), viazanú na haš celého handshaku. Kľúče relácie potrebujú kľúč klienta a obe vymenené tajomstvá a súkromné kľúče výmeny existujú len v pamäti, takže zaznamenanú komunikáciu nemožno neskôr dešifrovať ani s kľúčom klienta (dopredná bezpečnosť).
- Žiadny downgrade. Server môže prijímať protokoly 2 a 3 súčasne, takže klienti prechádzajú postupne, ale klient nastavený na protokol 3 sa nikdy nevráti k protokolu 2, takže útočník v sieti nemôže vynútiť slabší protokol.
- Výmena kľúčov bez výpadku. Počas výmeny kľúča server prijíma nový aj predchádzajúci kľúč klienta, znovu načíta súbor s kľúčmi bez reštartu, zaznamená, ktorý kľúč každé spojenie použilo, a hlási klientov, ktorí ešte používajú starý kľúč.
| Protokol 2 (predvolený) | Protokol 3 (voliteľný) | |
|---|---|---|
| Overený klient aj server | Áno, pred odoslaním akýchkoľvek dát súboru | Áno, ako protokol 2 |
| Šifrovanie | AES-256-GCM na 64 KB blok | Ako protokol 2 |
| Kľúče relácie z | Kľúča klienta a oboch nonce (HKDF-SHA256) | Kľúča klienta, oboch nonce a novej výmeny X25519 + ML-KEM-768 pri každom spojení |
| Dopredná bezpečnosť | Nie | Áno |
| Voči budúcemu kvantovému počítaču | Len symetrické, s kľúčmi s aspoň 32 znakmi: považované za odolné voči známym kvantovým útokom, ale bez doprednej bezpečnosti | Hybridné: výmena zostáva bezpečná, kým odolá X25519 alebo ML-KEM-768, a kľúč klienta je stále potrebný |
| Viditeľné v sieti | Len označenie klienta | Len označenie klienta a verejné kľúče výmeny |
| Dáta navyše na spojenie | – | 2 336 bajtov |
Emona MFT pri prenosoch nepoužíva TLS. Pri protokoloch 2 a 3 pozorovateľ stále vidí označenia klientov, približné veľkosti súborov a časovanie; VPN alebo SSH tunel skryje aj tie. Kto pozná kľúč klienta, môže posielať súbory ako tento klient, preto kľúče chráňte. Handshake protokolu 3 stojí server viac CPU ako protokol 2 (asi 1,4-násobok v teste so záplavou spojení), preto ponechajte limity spojení a pravidlo firewallu pre port. Symbolické odkazy sa nikdy neposielajú a limity veľkosti súborov sa dajú nastaviť v jFiltra aj v Emona MFT.
Server tiež udržiava na každom úložnom disku nastaviteľné množstvo voľného miesta (min.free.space.mb) a súbory, ktoré by ho zaplnili, odmietne s Insufficient storage, takže plný disk nemôže zastaviť ostatných klientov ani poškodiť uložené súbory.
Uložené súbory
- Voliteľné šifrovanie uložených dát. Server môže ukladať súbory niektorých alebo všetkých klientov zašifrované pomocou AES-256-GCM. Každý súbor dostane vlastný náhodný kľúč zabalený hlavným kľúčom; zmenené bajty, orezané súbory, presunuté alebo vymenené bloky, premenované súbory aj nesprávne kľúče sa odhalia. Predvolene je vypnuté, pretože programy, ktoré súbory preberajú, ich musia najprv dešifrovať, a to priloženým nástrojom
emonamft-decryptalebo cez Java API. - Výmena hlavného kľúča. Nový hlavný kľúč sa prevezme bez reštartu a staršie súbory sa dajú prebaliť novým kľúčom bez dešifrovania ich dát.
- Uchovávanie. Prijaté súbory klienta sa môžu po nastavenom počte dní automaticky vymazať, so skúšobným behom, ktorý len oznámi, čo by sa vymazalo. Každé vymazanie sa zaznamená ako udalosť.
- Oprávnenia. Súbory s kľúčmi, heslami alebo osobnými údajmi, ktoré Emona MFT zapisuje, sa vytvárajú len pre vlastníka, logy len pre vlastníka a skupinu a prijaté súbory môžu dostať obmedzené oprávnenia. Súbory s kľúčmi, ktoré môžu čítať iní používatelia, sa nahlásia pri spustení.
Šifrovanie uložených dát neskryje veľkosť súboru a log udalostí uchováva veľkosť a SHA-256 nešifrovaného obsahu, preto log udalostí chráňte rovnako ako súbory. Súbor s hlavným kľúčom zálohujte samostatne: bez neho nikto nedokáže súbory dešifrovať, ani BLUEGEM. Šifrovanie disku v operačnom systéme je naďalej dobrý nápad pre prípad odcudzených diskov a záloh.
Logy a monitorovanie
- Logy s odhalením zmien. Logy udalostí serverov a klientov a audit log a register incidentov dashboardu majú hašový reťazec a v pravidelných intervaloch sa pečatia. Kontrolujú sa každú hodinu a porušený reťazec spustí kritické upozornenie.
- Preposielanie do SIEM. Každý riadok udalostí a auditu sa dá poslať do vášho SIEM alebo log servera ako syslog RFC 5424 cez UDP, TCP alebo TLS, priamo zo serverov a klientov alebo z dashboardu. Riadky zapísané počas výpadku sa odošlú dodatočne.
- Overenie voči kópii. Kontrola z príkazového riadku porovná súbory s kópiou v SIEM a ukáže zmenené, pridané alebo odstránené riadky, aj na konci súboru.
- Osobné údaje. Názvy súborov sa môžu do logu udalostí zapisovať ako kľúčované haše HMAC-SHA256 (pseudonymizácia). Kľúče ani obsah súborov sa nikdy nezaznamenávajú; namiesto kľúčov sa zaznamenávajú ich odtlačky.
Odhalenie zmien znamená, že zmeny sa zistia, spoľahlivo pri porovnaní súborov s kópiou uloženou inde; nezabráni však niekomu s prístupom na zápis súbory zmeniť. Kópiu v SIEM uchovávajte tam, kam sa prevádzkovatelia servera nedostanú.
Dashboard
Každá inštalácia Emona MFT obsahuje aspoň jednu inštanciu webového dashboardu a pripájajú sa k nej všetky licencované servery Emona MFT. Servery a klienti doň posielajú udalosti cez vlastné spojenie AES-256-GCM s kľúčom pre každého agenta; dashboard im nikdy neposiela príkazy. Prihlásenie podporuje dvojfaktorové overenie (TOTP) a single sign-on cez OpenID Connect, prihlásenia sa blokujú pre používateľa a adresu, každé prihlásenie a zmena sa zapíše do audit logu s hašovým reťazcom a webové rozhranie počúva len na 127.0.0.1, ak nenastavíte inak. Podrobnosti a obmedzenia nájdete na stránke o dashboarde.
Vydania a dodávateľský reťazec
- Podpísané vydania. Každé vydanie má súbor
SHA256SUMSpodpísaný offline pomocou ML-DSA-65 (FIPS 204, postkvantový) a ECDSA P-256. Súkromné kľúče nikdy nie sú na GitHube; odtlačky verejných kľúčov sú uvedené v súbore SECURITY.md každého vydania. - SBOM. Každé vydanie obsahuje softvérový kusovník CycloneDX s verziou, licenciou a SHA-256 každého komponentu.
- Dve knižnice, pevne určené. Emona MFT používa len Apache Log4j 2 a pre protokol 3 Bouncy Castle. Ich verzie a haše sú pevne určené a každý týždeň sa kontrolujú voči Maven Central.
- Kontrolované pri každej zmene. Statická analýza CodeQL, Dependabot a základné testy protokolov 1, 2 a 3 a dashboardu na Jave 8, 11, 17, 21 a 25.
Nahlásenie bezpečnostného problému
Ak nájdete bezpečnostný problém v Emona MFT, jFiltra alebo na tomto webe, nahláste ho prosím súkromne, nie vo verejnom issue: napíšte na rumanko@bluegem.sk s predmetom začínajúcim [Emona MFT security] alebo kontaktujte BLUEGEM cez bluegem.sk. Pri Emona MFT potvrdíme prijatie hlásenia do 3 pracovných dní a prvé posúdenie dáme do 10 pracovných dní. Kritické a závažné problémy opravíme do 30 dní od potvrdenia, pri aktívnom zneužívaní skôr. Dátum zverejnenia dohodneme s vami a uvedieme vás, pokiaľ nechcete zostať v anonymite.
Tento web
emonamft.com je statický web s prísnou politikou Content Security Policy a bez písiem tretích strán. Google Analytics je jediný skript tretej strany a načíta sa až po prijatí analytických cookies. Objednávky sa zapisujú do súboru na našom vlastnom serveri a posielajú e-mailom spoločnosti BLUEGEM; pozrite si informácie o ochrane osobných údajov.