Programovanie

Sú virtuálne počítače bezpečnejšie ako kontajnery?

Často hovoríme „HTTPS je zabezpečený“ alebo „HTTP nie je zabezpečený“. Máme však na mysli to, že „HTTPS je ťažké odpozorovať a sťažuje útoky typu man-in-the-middle“ alebo „moja stará mama nemá problém so snoopovaním HTTP.“

Napriek tomu bol HTTPS hacknutý a za určitých okolností je HTTP dostatočne bezpečný. Ďalej, ak zistím využiteľný nedostatok v bežnej implementácii podporujúcej HTTPS (myslím OpenSSL a Heartbleed), môže sa HTTPS stať hackerskou bránou, kým nebude implementácia opravená.

HTTP a HTTPS sú protokoly definované v IETF RFC 7230-7237 a 2828. HTTPS bol navrhnutý ako zabezpečený HTTP, ale tvrdenie, že HTTPS je bezpečný a HTTP ešte stále neskrýva dôležité výnimky.

Virtuálne stroje (VM) a kontajnery sú definované menej prísne a ani jeden nebol zámerne navrhnutý tak, aby bol bezpečnejší ako ten druhý. Preto sú otázky bezpečnosti stále nejasnejšie.

Prečo verím, že VM sú bezpečnejšie ako kontajnery

Rozdeľ a panuj je víťazná stratégia vo vojne a softvéri. Keď architektúra rozdelí jeden zložitý a ťažko riešiteľný bezpečnostný problém na ľahšie problémy, výsledok bude vo väčšine prípadov bezpečnejší ako jediné riešenie, ktoré vyrieši všetky problémy.

Kontajnery sú príkladom rozdelenia a panovania, ktoré sa na aplikácie aplikujú vodorovne. Uzamknutím každej aplikácie vo vlastnom väzení slabé stránky jednej aplikácie neoslabujú aplikácie v iných kontajneroch. VM sa tiež rozdeľujú a dobývajú, idú však o krok ďalej v izolácii.

Marvin Waschke /

Chyba vo uväznenej aplikácii nemôže priamo ovplyvniť iné aplikácie, ale uväznená aplikácia môže zlomiť jeden operačný systém (OS) zdieľaný s inými kontajnermi a ovplyvniť všetky kontajnery. V prípade zdieľaného operačného systému môžu chyby v ktoromkoľvek bode v implementačnom zásobníku aplikácie, kontajnera a OS zneplatniť zabezpečenie celého zásobníka a narušiť fyzický stroj.

+ Tiež na svete sietí: Čo je lacnejšie: Kontajnery alebo virtuálne stroje? +

Vrstvená architektúra, ako je virtualizácia, oddeľuje komprimáciu každej aplikácie až po hardvér, čím eliminuje možnosť vzájomného ovplyvňovania aplikácií prostredníctvom zdieľaného operačného systému. Okrem toho je rozhranie medzi jednotlivými aplikačnými zásobníkmi a hardvérom definované a obmedzené, aby sa zabránilo zneužitiu. To poskytuje ďalší robustný obvod na ochranu aplikácií pred ostatnými.

Virtuálne počítače oddeľujú OS, ktorý riadi aktivitu používateľov, od hypervízora, ktorý riadi interakciu medzi hosťujúcim OS a hardvérom. VM hosťujúci OS riadi aktivitu používateľa, ale nie interakciu hardvéru. Chyba v aplikácii alebo hosťovanom OS pravdepodobne neovplyvní fyzický hardvér ani iné virtuálne počítače. Ak sú hosťujúci operačný systém VM a operačný systém podporujúci kontajner totožný, čo sa často stáva, rovnaká chyba zabezpečenia, ktorá ohrozí všetky ostatné kontajnery bežiace v operačnom systéme, neohrozí ostatné virtuálne počítače. Virtuálne počítače teda oddeľujú aplikácie horizontálne a vertikálne aj operačné systémy od hardvéru.

Réžia VM

Dodatočné zabezpečenie virtuálnych počítačov je spojené s výdavkami. Prenos riadenia je vo výpočtových systémoch vždy nákladný, a to tak v procesorových cykloch, ako aj v iných zdrojoch. Zásobníky exekúcií sa ukladajú a resetujú, externé operácie sa možno budú musieť pozastaviť alebo nechať dokončiť atď.

Posuny medzi hosťujúcim OS a hypervisorom stoja veľa a vyskytujú sa často. Dokonca aj so špeciálnymi riadiacimi pokynmi spálenými v procesorových čipoch, réžia prenosu riadenia znižuje celkovú účinnosť VM. Je pokles výrazný? Ťažká otázka. Aplikácie môžu byť vyladené tak, aby znižovali réžiu riadením prenosu riadenia a väčšina serverových procesorov je teraz navrhnutá tak, aby zjednodušila prenos kontroly. Inými slovami, význam závisí od aplikácie a servera, ale réžia sa nikdy nedá úplne vylúčiť, iba zmierniť.

Zraniteľnosti hypervízora

Aby sa to ešte viac skomplikovalo, oddeľovanie vrstiev v architektúre VM vyvoláva ďalšie spektrum: chyby hypervisora. Porušenie funkcie hypervízora je jediný bod zlyhania, ktorý môže mať obrovské následky, najmä vo verejných cloudoch. Je možné, že jediný hacker by mohol spustiť kód na virtuálnom počítači, ktorý prevezme kontrolu nad aplikáciami vlastnenými inými spotrebiteľmi verejného cloudu, a vytvorí tak tranžu verejného cloudu v jednom zneužití.

Skalná architektúra môže mať stále chyby v implementácii, ktoré systém výrazne oslabujú. Porušenia úloh hypervízora sa často odbijú tvrdením, že sa nikdy nestanú: Príbeh hovorí, že hypervízori sú tak jednoduchí, dobre napísaní a starostlivo preverení, aby nikdy nezlyhali. Porušenie funkcie hypervisora ​​môže byť rovnako zničujúce ako WannaCry, ale nebojte sa o to. Ale Heartbleed sa stal. A OpenSSL má oveľa menej riadkov kódu ako hypervisor. Teraz musím ísť von - moje lietajúce prasa chce viac výplachu.

Doteraz neviem o žiadnych významných porušeniach hypervisora. Krátky pohľad do databázy CVE (Common Vulnerabilities and Exposures) však ukazuje, že vedci nájdu využiteľné slabiny hypervízora. Vývojári a dodávatelia hypervízora rýchlo opravili chyby, ktoré sa vyskytujú. V marci 2017 spoločnosť Microsoft vydala bulletin zabezpečenia MS17-008, ktorý vo svojom hypervízore Hyper-V dokumentoval sedem opravených chýb, pričom všetky boli označené ako dôležité alebo kritické.

Stále verím, že VM poskytujú lepšie zabezpečenie ako kontajnery, ale na bezpečnosť systémov VM sa musíme pozerať čistými očami. V budúcnosti plánujem podrobnejšie prediskutovať slabiny hypervízora. Kontajnery a virtuálne počítače sa tiež často kombinujú. Ešte treba veľa povedať.

$config[zx-auto] not found$config[zx-overlay] not found