Vaša služba bez operačného systému
Unikernel je jeden samostatný program, ktorý beží priamo na virtuálnom serveri (KVM), bez Linuxu, shellu a procesov. Vašu službu prispôsobíme takémuto základu a vy ju spustíte z jedného obrazu disku. Základ sme sami vyvinuli a overili na vlastnom produkte, MQTT brokeri urMQTT.
Výhody
Malá plocha na útok
Jeden staticky zlinkovaný obraz bez operačného systému, shellu a používateľských procesov; otvorí sa len to, čo služba potrebuje. Komponenty, ktorým sa nedá úplne dôverovať (napr. knižnica v C), môžu bežať izolovane, vo vlastnom adresnom priestore bez prístupu k jadru.
Menej údržby
Žiadny operačný systém na záplatovanie a aktualizáciu: nová verzia je nový obraz. Obraz má len niekoľko megabajtov.
Menej súčastí, menej prekvapení
Správanie určuje jeden program a jeho konfigurácia; žiadne služby na pozadí, balíky ani veci, ktoré sa spúšťajú samy.
Konfigurácia sú dáta
Nastavenia a certifikáty sa zabalia do overenej konfigurácie, ktorá sa kontroluje pri každom štarte; obraz vypíše odtlačok svojej konfigurácie, takže si možno overiť, že je to ten, ktorý ste si objednali.
Bezpečnosť je súčasťou základu
TLS 1.3 so vzájomnou autentifikáciou, ochrana pred zahltením siete, limity zdrojov a watchdog bránia tomu, aby jeden zlý klient zastavil ostatných; úložisko je testované výpadkom prúdu pri každom zápise, voliteľne so šifrovaním disku.
Overiteľné a bez väzby
Reprodukovateľné zostavenia, podpísané vydania, súpis softvérových komponentov (SBOM), základ s otvoreným zdrojovým kódom a auditný balík, ktorý uvádza aj známe slabiny.
Vhodné pre malé aj veľké prostredia
Ten istý kód beží na virtuálnych serveroch aarch64 aj x86_64.
Čo ponúkame
Cena za všetko: na vyžiadanie
Posúdenie uskutočniteľnosti
Prejdeme vašu službu (jazyk, závislosti, nároky na sieť a disk) a povieme vám, čo je možné, čo treba upraviť a koľko práce to je, skôr než sa zaviažete k čomukoľvek ďalšiemu.
Prispôsobenie služby unikernelu
Službu (najjednoduchšie v Ruste; knižnice v C v izolovanom workeri) prenesieme na náš základ: sieť, TLS, úložisko, konfigurácia a zaznamenávanie udalostí.
Pilot na vašom serveri
Službu spustíme na vašej infraštruktúre (KVM), vyskúšame ju s vašou prevádzkou a odovzdáme správu o výkone.
Podpora a údržba
Aktualizácie obrazu, spracovanie nahlásených zraniteľností a školenie vášho tímu.
urMQTT ako hotový produkt
Ak potrebujete MQTT broker: nakonfigurovaný, podpísaný obraz s vašimi certifikátmi.
Dobrý kandidát a horší kandidát
Dobrý: služba s jediným účelom, ktorá prijíma sieťové spojenia: protokolový server, brána (gateway), zberač dát, koncový bod TLS, okrajové zariadenie. Horší: program, ktorý potrebuje ekosystém Linuxu, súborový systém, veľa procesov alebo veľký počet odchádzajúcich spojení. Dnešný základ prijíma spojenia (server TCP), neotvára odchádzajúce spojenia TCP a podporuje len IPv4; rozšírenia posudzujeme podľa projektu.
Platformy a jazyky: čo dnes podporujeme
| Platforma | Stav |
|---|---|
| Virtuálne servery KVM, aarch64 | Overené (Apple HVF a TCG) |
| Virtuálne servery KVM, x86_64 (UEFI a BIOS) | Bežalo na skutočnom KVM VPS (AMD EPYC), navyše testy v emulátore; na fyzickom hardvéri nevyskúšané |
| Virtuálne zariadenia | virtio (sieť, disk, SCSI, náhodné čísla) |
| Sieť | IPv4; TCP ako server (prijíma spojenia, neotvára odchádzajúce) |
| Fyzické servery (bare metal), VMware, Hyper-V, Xen | Nepodporujeme (zatiaľ) |
| Jazyk služby | Stav |
|---|---|
| Rust | Prirodzená voľba: celý základ je v Ruste |
| C | Len ako izolovaný program s našou malou vrstvou libc (takto beží SQLite); nie je to POSIX |
| C++ | Možné ako C, nepreukázané; posudzuje sa podľa projektu |
| Go, Java, Python, Node.js, .NET, PHP | Nepodporujeme: vyžadujú operačný systém. Služba sa potom prepíše do Rustu, alebo zostane na Linuxe s unikernel bránou na okraji |
Čo by ste mali vedieť hneď
Základ je v ranej fáze (verzia pred 1.0). Cieli na virtuálne servery KVM; x86_64 bežalo na skutočnom KVM VPS a v emulátore, ale nie na fyzickom hardvéri; Secure Boot je čiastočný a nezávislý bezpečnostný audit sa zatiaľ nerobil. Preto ponúkame pilot s podporou, nie certifikovaný produkt.
Príklad: urMQTT
MQTT broker na tomto základe: TLS 1.3 so vzájomnou autentifikáciou, odvolanie certifikátov bez nového obrazu, izolovaná databáza SQLite, voliteľné šifrovanie disku. Pozrite si zdrojový kód na GitHube alebo nás kontaktujte.