Vaše služba bez operačního systému
Unikernel je jediný samostatný program, který běží přímo na virtuálním serveru (KVM), bez Linuxu, shellu a procesů. Vaši službu přizpůsobíme takovému základu a vy ji spustíte z jednoho obrazu disku. Základ jsme sami vyvinuli a ověřili na vlastním produktu, MQTT brokeru urMQTT.
Výhody
Malá plocha pro útok
Jeden staticky linkovaný obraz bez operačního systému, shellu a uživatelských procesů; otevře se jen to, co služba potřebuje. Komponenty, kterým nelze plně důvěřovat (např. knihovna v C), mohou běžet izolovaně, ve vlastním adresním prostoru bez přístupu k jádru.
Méně údržby
Žádný operační systém k záplatování a aktualizaci: nová verze je nový obraz. Obraz má jen několik megabajtů.
Méně součástí, méně překvapení
Chování určuje jeden program a jeho konfigurace; žádné služby na pozadí, balíčky ani věci, které se spouštějí samy.
Konfigurace jsou data
Nastavení a certifikáty se zabalí do ověřené konfigurace, která se kontroluje při každém startu; obraz vypíše otisk své konfigurace, takže lze ověřit, že je to ten, který jste si objednali.
Bezpečnost je součástí základu
TLS 1.3 se vzájemnou autentizací, ochrana proti zahlcení sítě, limity zdrojů a watchdog brání tomu, aby jeden špatný klient zastavil ostatní; úložiště je testováno výpadkem proudu při každém zápisu, volitelně se šifrováním disku.
Ověřitelné a bez vazby
Reprodukovatelná sestavení, podepsaná vydání, soupis softwarových komponent (SBOM), základ s otevřeným zdrojovým kódem a auditní balíček, který uvádí i známé slabiny.
Vhodné pro malá i velká prostředí
Stejný kód běží na virtuálních serverech aarch64 i x86_64.
Co nabízíme
Cena za vše: na vyžádání
Posouzení proveditelnosti
Projdeme vaši službu (jazyk, závislosti, nároky na síť a disk) a řekneme vám, co je možné, co je třeba upravit a kolik práce to je, dříve než se zavážete k čemukoli dalšímu.
Přizpůsobení služby unikernelu
Službu (nejsnáze v Rustu; knihovny v C v izolovaném workeru) převedeme na náš základ: síť, TLS, úložiště, konfigurace a zaznamenávání událostí.
Pilot na vašem serveru
Službu spustíme na vaší infrastruktuře (KVM), vyzkoušíme ji s vaším provozem a předáme zprávu o výkonu.
Podpora a údržba
Aktualizace obrazu, zpracování nahlášených zranitelností a školení vašeho týmu.
urMQTT jako hotový produkt
Pokud potřebujete MQTT broker: nakonfigurovaný, podepsaný obraz s vašimi certifikáty.
Dobrý kandidát a horší kandidát
Dobrý: služba s jediným účelem, která přijímá síťová spojení: protokolový server, brána (gateway), sběrač dat, koncový bod TLS, okrajové zařízení. Horší: program, který potřebuje ekosystém Linuxu, souborový systém, mnoho procesů nebo velké množství odchozích spojení. Dnešní základ přijímá spojení (server TCP), neotevírá odchozí spojení TCP a podporuje jen IPv4; rozšíření posuzujeme podle projektu.
Platformy a jazyky: co dnes podporujeme
| Platforma | Stav |
|---|---|
| Virtuální servery KVM, aarch64 | Ověřeno (Apple HVF a TCG) |
| Virtuální servery KVM, x86_64 (UEFI a BIOS) | Běželo na skutečném KVM VPS (AMD EPYC), navíc testy v emulátoru; na fyzickém hardwaru nevyzkoušeno |
| Virtuální zařízení | virtio (síť, disk, SCSI, náhodná čísla) |
| Síť | IPv4; TCP jako server (přijímá spojení, neotevírá odchozí) |
| Fyzické servery (bare metal), VMware, Hyper-V, Xen | Nepodporujeme (zatím) |
| Jazyk služby | Stav |
|---|---|
| Rust | Přirozená volba: celý základ je v Rustu |
| C | Jen jako izolovaný program s naší malou vrstvou libc (takto běží SQLite); není to POSIX |
| C++ | Možné jako C, neprokázáno; posuzuje se podle projektu |
| Go, Java, Python, Node.js, .NET, PHP | Nepodporujeme: vyžadují operační systém. Služba se pak přepíše do Rustu, nebo zůstane na Linuxu s unikernel bránou na okraji |
Co byste měli vědět hned
Základ je v rané fázi (verze před 1.0). Cílí na virtuální servery KVM; x86_64 běželo na skutečném KVM VPS a v emulátoru, ale ne na fyzickém hardwaru; Secure Boot je částečný a nezávislý bezpečnostní audit zatím nebyl proveden. Proto nabízíme pilot s podporou, ne certifikovaný produkt.
Příklad: urMQTT
MQTT broker na tomto základu: TLS 1.3 se vzájemnou autentizací, odvolání certifikátů bez nového obrazu, izolovaná databáze SQLite, volitelné šifrování disku. Prohlédněte si zdrojový kód na GitHubu nebo se nám ozvěte.