Ako si maximálne zabezpečiť laptop - Nethemba

BLOG

Ako si maximálne zabezpečiť laptop

2018-03-28 08:19 Pavol Lupták

TO, ŽE NIE STE PARANOIDNÍ, NEZNAMENÁ, ŽE SÚ VAŠE DÁTA V BEZPEČÍ.

S rastúcou komplexnosťou hardvéru aj softvéru je odhaľovať zraniteľnosti alebo zadné vrátka ťažšie ako kedykoľvek predtým. Kritické zraniteľnosti sa nedávno objavili vo všade dostupných procesoroch (Meltdown/Spectre), podobne zadné vrátka (Intel ME).
Prehliadače s množstvom rozšírení začínajú byť najzložitejšie internetové aplikácie vo vašom počítači. Pri súčasnej architektúre a použitých programovacích jazykoch je prakticky nemožné eliminovať ich skryté a neobjavené zraniteľnosti. Kritické bezpečnostné zraniteľnosti sa týkajú aj najbezpečnejších hardvérových peňaženiek.
Šifrovanie diskov, antivírusové či anti-malware riešenia pri kompromitovanom hardvéri alebo softvéri sú neúčinné.
V nasledujúcom článku sa pokúsim vysvetliť ako v tejto divočine zraniteľností prežiť a využiť súčasne moderné technológie na minimalizáciu ich zneužitia.

1 PREČO LIBREM

Laptop, ktorý by bol open-hardvér (teda ľahko auditovateľný) a súčasne dostatočne výkonný, v súčasnej dobe zrejme neexistuje. Existujú rôzne pokusy o vytvorenie otvoreného laptopu na ARM procesoroch (za zmienku stojí Pine64, prípadne Novena), ich výkon je ale so súčasnými procesormi Intel/AMD bohužiaľ neporovnateľný. Ak chcete mať v dnešnej dobe najvýkonnejší notebook, použitiu Intel/AMD procesoru sa nevyhnete.
Nižšie uvádzam dôvody, prečo som sa rozhodoval investovať do notebooku Purism Librem 13, ktorý nie je len vysoko bezpečný, ale má aj dostatočný výkon, ktorý sa od súčasných laptopov očakáva.

Na rozdiel od iných bežných laptopov, Librem totiž disponuje:

hardvérovým „kill switch-om“, teda fyzickým prepínačom na zapnutie alebo vypnutie mikrofónu, kamery, wifi či bluetooth. Nemusíte teda prelepovať kameru, nakoľko jej odpojenie je realizované na hardvérovej úrovni.
* väčšinou komponentov, ktoré sú open-hardvér – spoločnosť Purism špeciálne rieši ich bezpečnosť priamo s ich výrobcami
* špehovacou Intel ME funkcionalitou, ktorá ide čiastočne alebo úplne vypnúť (tzv. „neutralizovať“) (v Purism sa tejto problematike dosť venujú)
* namiesto proprietárneho BIOSu open source Coreboot-om
TPM čipom, ktorý podporuje (pri nasledujúcom Librem modeli) opensource Heads (viac informácii tiež Tamper-evident Boot Update: Making Heads More Usable)

2 PREČO QUBES

Librem sa oficiálne dodáva s operačným PureOS, čo je mierne zabezpečná verzia Debianu (s integrovaným Tor-om, natívnym prehliadačom PureBrowser podporujúcim EFF Privacy Badger, HTTPS Everywhere či DuckDuckGo plugin). Píšem „mierne“, lebo inak som si tam nevšimol žiadne výrazné navýšenie bezpečnosti oproti dobre skonfigurovaným desktopom na Debian/Ubuntu/Mint.
Vzhľadom k tomu, že pred pár týždňami vyšla pre Librem nová verzia Coreboot 4.7, ktorá podporuje IOMMU (umožňujúc fyzickú segregáciu pamäte medzi virtuálnymi mašinami (ďalej len VM) chrániac ich voči útokom na úrovni DMA) ako aj podporu TPM (ktorý posledný Librem už obsahuje), rozhodol som sa neváhať a rozbehol som si poslednú verziu (4.0rc5) vysoko bezpečného Qubes OS.
Qubes OS sa rozhodol pre bezpečnostný model „security by compartmentalization“, čo v tomto prípade znamená „rozškatuľkovanie“ celého systému na množstvo segregovaných VM, kde v každej dokáže bežať samostatná aplikácia.
Všetkých tých, ktorí si myslia, že to celé kvôli chybám v Inteli (Meltdown & Spectre) nebude fungovať, by som rád ubezpečil, že uvedené zraniteľnosti sú vďaka bezpečnostnej aktualizácii v poslednom Qubes už opravené.

 

2.1 Typy VM
V Qubes 4 sú predinštalované tri súborové systémy – Fedora 26, Debian 9 a Whonix 13. Z nich je možné následne vytvárať aplikačné VM.
Aplikačné VM sú veľmi efektívne, čo sa týka úložného priestoru. Pri vytvorení tohto VM sa zrecykluje kompletne celý súborový systém daného OS. Do úložiska takéhoto VM sa ukladajú len používateľské dáta (crontaby, lokálne firewall pravidlá, rc.local, domovské adresáre /home, a celý /usr/local). Každá aplikácia v samostatnom aplikačnom VM je preto dobrý nápad a nemusíte sa obávať rýchlo zaplneného disku.
Ďalšia veľká výhoda aplikačných VM je jednoduchá aktualizácia – stačí aktualizovať jeden centrálny súborový systém a po reštarte máte aktualizované všetky VM, ktoré sú z neho derivované.
Toto ale neplatí, ak pri vytváraní VM zvolíte možnosť “Standalone Qube” – v tomto prípade sa vám do nového VM kompletne skopíruje existujúci súborový systém (Fedora, Debian, Whonix). Prípadne môžete definovať vlastný. Osobne som túto možnosť zatiaľ nikdy nepotreboval, keďže s Debianom sa kamarátim a dokázal som si tam zatiaľ rozbehnúť úplne všetko.

 

2.2 Typy virtualizácie
Virtualizácia v Qubes je implementovaná cez XEN, ktorý podporuje 3 typy virtualizácie:

1. PVH (“default”) pre všetky Linuxové VM. Ide o hardvérovo podporovanú paravirtualizáciu, ktorá je veľmi rýchla a optimálna na väčšinu použití (pre každú VM je možné špecifikovať samostatné jadro)
2. PV – paravirtualizácia bez hardvérovej podpory
3. HVM – plná hardvérová virtualizácia, pomalšia ako PVH, nevyhnutná pri použití Windows OS vo VM.
Porovnanie (originál https://wiki.xen.org/wiki/File:XenModes.png )

 

2.3 Segregácia virtualizáciou ako cesta k vyššej bezpečnosti
Qubes podporuje viacero systémových šablón („templates“) ktoré je možné previazať s vašimi VM a zabezpečiť im individuálny prístup na Internet či k USB zariadeniam. Tieto šablóny predstavujú samostatné VM, ktoré sú vytvorené zo súborových šablón (Debian 9, Fedora 26, Whonix 13). Spúšťajú sa hneď po naštartovaní Qubes a slúžia ako VM, kde je smerovaná sieťová prevádzka ostatných VM.
V Qubes sú predinštalované nasledujúce systémové šablóny:
* sys-whonix – transparentné kompletné smerovanie sieťovej prevádzky do Tor anonymizačne siete (ako súborová šablóna je použitý Whonix)
* sys-firewall – štandardný firewall (INPUT, FORWARD chain nastavený na DROP) (ako šablóna je použitá sys-net)
* sys-net – prístup na Internet (ako súborová šablóna je použitá Fedora)
* sys-usb – prístup na USB (ako súborová šablóna je použitá Fedora)

Jedným kliknutím dokážete nastaviť alebo zmeniť, aby vaša vytvorená VM mala prístup na Internet, do anonymnej Tor siete alebo k USB zariadeniam, prípadne nič z toho. Pre každú virtuálnu mašinu je možné skonfigurovať aj lokálny sieťový firewall (pripojenie na ktoré porty je dovolené z danej VM, zvyšok je zakázaný).
Pre inšpiráciu uvádzam nastavenie pár mojich osobných VM:
* fedora-26-dvm (prístup na Internet cez firewall) – jednorázová inštancia VM, ktorá spustí „prehliadanie“ bez akýchkoľvek stôp
* whonix-dvm (prístup na Internet cez Tor) – jednorázová inštancia VM, ktorá spustí „prehliadanie“ cez Tor bez akýchkoľvek stôp
* TrustedCommunication (prístup na Internet cez firewall) – VM, kde mám umiestnené moje privátne SSH a Signal kľúče (beží mi tam Signal a SSH klient)
* Trezor (bez akéhokoľvek prístupu na sieť) – beží mi tam password manager (B-Folders + KeePassX)
* personal (prístup na Internet cez firewall) – beží mi tam Spotify, Emacs, LibreOffice…
* monero-wallet-ws (bez akéhokoľvek prístupu na sieť) – VM, kde mám uložené privátne kľúče k Monero peňaženke
* monerod-ws (prístup na Internet iba cez Tor) – synchronizovaný Monero blockchain cez Tor, podobne všetky Monero transakcie sú broadcastované cez Tor
Ako ste si všimli, prístup k USB je u všetkých VM plošne zakázaný a musím ho explicitne pre danú VM povoliť, keď potrebujem (napríklad, keď chcem robiť backup na USB alebo importnúť Monero blockchain).

 

2.4 Paranoidné nastavenie Monero desktop peňaženky
Kombináciu Librem + Qubes špeciálne ocenia všetci tí, ktorí chcú v maximálnej možnej miere zabezpečiť svoje desktop peňaženky (v prípade Monera, pre ktorý stále neexistujú HW peňaženky, je to pálčivý problém).
Zrejme najlepší spôsob ako toto docieliť v prípade Qubes a Monera je popísaný tu.
V skratke – privátne kľúče Monera sú v zabezpečenej VM, ktorá je kompletne odpojená od Internetu (nie je tam spustený ani wifi/ethernet interface!). Jediný povolený port (ktorý musí byť explicitne schválený z dom0) je monerod port 18081, ktorý je presmerovaný na localhost:18081. Cez ten monero wallet komunikuje s monerod, ktorý beží na samostatnej VM. Tá má prístup do Internetu iba cez Tor (sys-whonix), cez ktorý sa aktualizuje blockchain a vykonávajú všetky Monero transakcie.
Podobným spôsobom je možné skonfigurovať (teda segregovať do samostatnej VM) desktop penaženky akýchkoľvek iných kryptomien, pre ktoré ešte neexistuje hardvérová peňaženka.

3 PROBLÉMY, KTORÉ VÁS ČAKAJÚ VRÁTANE RIEŠENÍ

 

3.1 Slovenská colnica
Najväčší problém zo všetkých nižšie uvedených bola samozrejme Slovenská colnica. Purism Librem je nutné objednať z USA. A napriek tomu, že doručenie trvá len pár dní, na colnici obvykle tovar trčí niekoľko týždňov.
Ak môžete, tak si daný laptop kúpte v USA, a úplne sa vyhnite colnému konaniu. Vyhnete sa aj jeho „potenciálnemu“ zabackdoorovaniu zo strany štátnych úradov.
Ak sa rozhodnete si ho objednať z USA, tak množstvo byrokracie dokážete znížiť, keď si laptop necháte doručiť na seba ako fyzickú osobu. Je možné sa úplne vyhnúť konfrontácii so štátnymi úradníkmi, s ktorými možno podobne ako ja nezdieľate spoločný komunikačný protokol. Stačí, keď na emailovú adresu cloba@slposta.sk zašlete vaše nascanované poštové oznámenie s podacím a skladovým číslom a priložíte príslušnú faktúru od Purism ako aj potvrdenie o platbe (Purism ide zaplatiť aj Monerom – keď sa tak rozhodnete spraviť, tak dajte vedieť, čo na to slovenskí colníci :)) Súčasne v mailovej komunikácii Colnú správu vyzvite na samotné colné preclenie vášho tovaru a vyrúbenie 20% DPH a požiadajte ich, aby vám samotný tovar poslali na vašu adresu dobierkou. Dva problémy s ktorými by ste ale mali v tomto prípade počítať – neviete si odpočítať DPH (ak objednávate na firmu, tak je to možné) a riskujete, že vám to Slovenská pošta cestou z colnice rozbije.
Druhá podstatne byrokratickejšia možnosť je objednať si laptop z USA na firmu. V tomto prípade si môžete odpočítať na konci mesiaca DPH. Celý tento proces je ultra byrokratický, takže sa na to asi rovno vykašlite a za 30-35 EUR si objednajte „štátom spriaznenú“ firmu, ktorá celú byrokraciu s tým spojenú vybaví za vás.

 

3.2 Upgrade Corebootu na poslednú verziu
Aby sa vám Qubes4 na Librem vôbec nainštaloval, tak potrebujete realizovať upgrade vášho Corebootu na poslednú verziu (4.7). Tento proces je tu dôkladne popísaný.

 

3.3 Nefunkčný kláves \ (resp |)
Po nainštalovaní Qubes na Librem vám nebude fungovať kláves \ (resp |). Toto opravíte veľmi rýchlo, stačí v dom0 vytvoriť súbor /etc/udev/hwdb.d/90-purism-pipe-symbol-fi.hwdb s obsahom:
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnPurism:pnLibrem13v2*
KEYBOARD_KEY_56=backslash

A následne spustiť príkazy:
sudo systemd-hwdb update
sudo udevadm trigger

 

3.4 Pridanie ikonky aplikácie na hornej lište
Dostať na hornú lištu Window managera ikonku vašej obľúbenej aplikácie, tak aby išla kedykoľvek spustiť v danom VM nie je úplne jednoduché. Spravíte to ale takto:

1. Naštartujte VM so súborovým systémom, ktorý používate (Debian 9 alebo Fedora 26).
2. Nainštalujte vašu aplikáciu, ktorú chcete spúšťať.
3. Prihláste sa ako root a do /usr/share/applications/ nakopírujte popis príslušnej aplikácie, ktorú ste nainštalovali v kroku 2, napríklad signal-desktop.desktop:
[Desktop Entry]
Name=Signal
Comment=Private messaging from your desktop
Exec=”/opt/Signal/signal-desktop” %U
Terminal=false
Type=Application
Icon=signal-desktop
StartupWMClass=Signal
Categories=Network;
4. Vypnite daný VM.
5. Otvorte konfiguráciu aplikačného VM, ktorý máte z neho derivovaný. V nastaveniach daného VM zobrazte zoznam aplikácií, ktoré tam máte nainštalované a stlačte „Refresh applications“ – zobrazí sa vám vaša aplikácia.
6. Kliknite na hornú lištu a zvoľte voľbu „Panel“ / „Add New Items“ / „Launcher“
7. Kliknite na „Properties“ novej aplikácie a vyberte vašu zvolenú aplikáciu.
8. Keď chcete k nej nakopírovať vlastnú ikonku do dom0, tak to spravíte takto.

4 NEVÝHODY

Väčšina uvedených nevýhod je daň za výrazne zvýšenú bezpečnosť, ktorá je výkonovo a energeticky náročná.

 

4.1 Slabšia výdrž baterky
Podľa výrobcu oficiálna výdrž baterky Librem 13 je 7 až 9 hodín. Ak sa rozhodnete ísť do Qubes a všetko prevádzkovať vo VM, čo je náročne na CPU, počítajte s tým, že výdrž bude možno 3x nižšia.

 

4.2 Neočakávané vypnutie laptopu ešte pred jeho vybitím
Asi 2x sa mi stalo, že sa mi Librem neočakávane vypol, aj napriek tomu, že jeho batéria nebola úplne vybitá. Išlo o situácie, kedy bol extrémne preťažený (veľa spustených VM, napríklad mi bežal backup) a súčasne nebol v elektrickom napájaní. Vypnutie bolo okamžité, bez akejkoľvek notifikácie, že batéria je už takmer vybitá. Neviem vylúčiť či nejde len o nejakú hardvérovú chybu môjho konkrétneho modelu. Keď bol laptop zapojený v elektrickej sieti, tak sa mi to nikdy nestalo.

 

4.3 Pomalšie štartovanie aplikácií a bootovanie
Každé spustenie aplikácie znamená, že sa vám musí spustiť samostatná VM, ktorá musí nabootovať a následne sa v nej musí spustiť požadovaná aplikácia. Čo môže trvať rádovo o pár sekúnd viac ako ste normálne zvyknutí. Dá sa to vyriešiť tak, že VM používaných aplikácií spustíte rovno pri štarte (je to jednoduché nastaviť). V tomto prípade sa ale o to predĺži samotné bootovanie.
Beh samotných aplikácií je ale rýchly, takže sa dá na na to zvyknúť a mne osobne toto už nevadí.

 

4.4 Mierne znížená usability
Kvôli tomu, že každá aplikácia môže v Qubes bežať v samostatnej VM, ktoré sú navzájom oddelené, istý usability problém môže predstavovať komunikácia medzi spustenými aplikáciami v rôznych VM. Napríklad, keď chcete skopírovať jednoduchý text, tak to musíte spraviť v nasledujúcich krokoch:

1. Skopírovanie textu do clipboardu v danej VM (obvykle Ctrl + C)
2. Skopírovanie do Qubes clipboardu v dom0 (Shift + Ctrl + C)
3. Vloženie do Qubes clipboardu v danej VM (Shift + Ctrl + V)
4. Vloženie textu v danej VM (Ctrl + V)
Takže 2 kroky navyše ako normálne, ale dá sa na to rýchlo zvyknúť.
Ak kopírujete text medzi oknami aplikácií, ktoré bežia v tej istej VM, tak samozrejme tento problém nemáte.
Podobne kopírovanie súborov medzi VM sa realizuje trochu špeciálne – pomocou príkazov qvm-copy alebo qvm-move vyžadujúc explicitný súhlas, ktorý sa vám zobrazí v dom0. Na toto sa dá tiež veľmi rýchlo zvyknúť.

 

4.5 Absentujúca podpora Windows 10
Windows 10 na Qubes 4 zatiaľ nebeží (nevyzerá, že by toto bola nejaká priorita vývojárov). Experimentálne to ide vyhackovať takto.

 

4.6 Touchpad namiesto trackpoint
Toto je zrejme čisto môj subjektívny pocit ako odchovanca na IBM ThinkPad. Som zvyknutý na trackpoint namiesto touchpadu, ktorý mi príde výrazne použiteľnejší. Bohužiaľ Librem disponuje len touchpadom (samozrejme je možné pripojiť externú USB myš).

5 VÝHODY

Okrem obrovských bezpečnostných výhod, ktoré Qubes ponúka, rád by som poukázal na pár ďalších výhod, ktoré s bezpečnosťou priamo nesúvisia.

 

5.1 Šetrenie diskového priestoru
Pri použití aplikačných VM dokážete skutočne ušetriť veľa diskového priestoru. Kompletne virtualizované prostredie berie len o trochu viac diskového priestoru ako nevirtualizované.

 

5.2 Jednoduché zväčšovanie diskového priestoru VM
Zväčšovanie systémového diskového priestoru (root) alebo súkromného súborového systému (private) v akomkoľvek VM je vďaka LVM extrémne jednoduché. A dokážete to spraviť pre práve spustenú VM, ktorú nemusíte dokonca už ani reštartovať.

 

5.3 Jednoduché zálohovanie
Zálohovanie VM je tiež veľmi jednoduché – stačí vyklikať, ktoré VM chcete zálohovať, či ich chcete pri zálohovaní komprimovať a šifrovať a vybrať si cestu a VM, kam to chcete celé uložiť. Ja som si špeciálne pre zálohovanie môjho laptopu kúpil 512 GB USB kľúč.

ZÁVER

Vysoko bezpečná kombinácia Purism Librem a Qubes zrejme nebude pre každého.
Ak ste exponovaná osoba, ktorá sa obáva hrozby cielených útokov (napríklad využitím 0-day exploitov), prípadne potrebujete chrániť kryptomeny, v ktorých máte prevažnú časť vašich celoživotných úspor, tak Librem+Qubes je “must” a zrejme nič lepšie nenájdete.
Qubes okrem iných používa Snowden, DJ Bernstein, Peter Todd a množstvo iných ľudí pre ktorých je bezpečnosť skutočne kľúčová.
(Celý tento článok bol napísaný v Qubes 4 na Purism Librem).