Jak si maximálně zabezpečit laptop - Nethemba

BLOG

Jak si maximálně zabezpečit laptop

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

TO, ŽE NEJSTE PARANOIDNÍ, NEZNAMENÁ, ŽE JSOU VAŠE DATA V BEZPEČÍ.

S narůstajícií komplexností hardwaru i softwaru je odhalovat zranitelnosti nebo zadní vrátka těžší než kdykoliv předtím. Kritické zranitelnosti se nedávno objevily ve všude dostupných procesorech (Meltdown / Spectre), podobně zadní vrátka (Intel ME).

Prohlížeče s množstvím rozšíření začínají být nejsložitější internetové aplikace v počítači. Při současné architektuře a použitých programovacích jazycích je prakticky nemožné eliminovat jejich skryté a neobjevené zranitelnosti. Kritické bezpečnostní zranitelnosti se týkají i nejbezpečnějších hardwarových peněženek.Šifrování disků, antivirové či anti-malware řešení při kompromitovaných hardwaru nebo softwaru jsou neúčinné.

V následujícím článku se pokusím vysvětlit jako v této divočině zranitelností přežít a využít současně moderní technologie na minimalizaci jejich zneužití.

1 PROČ LIBREM

Laptop, který by byl open-hardware (tedy snadno zauditovateľný) a současně dostatečně výkonný, v současné době zřejmě neexistuje. Existují různé pokusy o vytvoření otevřeného laptopu na ARM procesorech (za zmínku stojí Pine64, případně Novena), jejich výkon je ale se současnými procesory Intel / AMD bohužel nesrovnatelný. Chcete-li mít v dnešní době nejvýkonnější laptop, použití Intel / AMD procesoru se nevyhnete.

Níže uvádím důvody, proč jsem se rozhodl investovat do laptopu Purism Librem 13, který není jen vysoce bezpečný, ale má také dostatečný výkon, který se od současných laptopů očekává.

Na rozdíl od jiných běžných laptopů, Librem totiž disponuje:

hardwarovým „kill switch-em“, tedy fyzickým přepínačem pro zapnutí nebo vypnutí mikrofonu, kamery, wifi či bluetooth. Nemusíte tedy přelepovat kameru, jelikož její odpojení je realizováno na hardwarové úrovni.
* většinou komponentů, které jsou open-hardware – společnost Purism speciálně řeší jejich bezpečnost přímo s jejich výrobci
průzkumnou Intel ME funkcionalitou, která jde částečně nebo úplně vypnout (tzv. „neutralizovat“) (v Purism se této problematice dost věnují)
* namísto proprietárního BIOSu open source Coreboot-em
* TPM čipem, který podporuje (při příštím Librem modelu) opensource Heads (více informací také Tamper-evident Boot Update: Making Heads More Usable)

2 PROČ QUBES

Librem se oficiálně dodává s operačním PureOS, což je mírně zabezpečená verze Debianu (s integrovaným Tor-em, nativním prohlížečem PureBrowser podporujícím EFF Privacy Badger, HTTPS Everywhere či DuckDuckGo plugin). Píšu „mírné“, protože jinak jsem si tam nevšiml žádné výrazné navýšení bezpečnosti oproti dobře konfigurován desktopům na Debian / Ubuntu / Mint.

Vzhledem k tomu, že před pár týdny vyšla pro Librem nová verze Coreboot 4.7, která podporuje Iommi (umožňujíc fyzickou segregaci paměti mezi virtuálními Masini (dále jen VM) chrání jejich vůči útokům na úrovni DMA) jakož i podporu TPM (který poslední Librem již obsahuje ), rozhodl jsem se neváhat a rozběhl jsem si poslední verzi (4.0rc5) vysoce bezpečného Qubes OS.

Qubes OS se rozhodl pro bezpečnostní model „security by compartmentalization„, což v tomto případě znamená „rozškatulkovaný“ celého systému na množství segregovaných VM, kde v každé dokáže běžet samostatná aplikace.

Všechny ty, kteří si myslí, že to celé kvůli chybám v Intelu (Meltdown & Spectre) nebude fungovat, bych rád ujistil, že uvedené zranitelnosti jsou díky bezpečnostní aktualizaci v posledním Qubes již opravené.

 

 

2.1 Typy VM

V Qubes 4 jsou předinstalovány tři souborové systémy – Fedora 26, Debian 9 a Whonix 13. Z nich je možné následně vytvářet aplikační VM.

Aplikační VM jsou velmi efektivní, co se týče úložného prostoru. Při vytvoření tohoto VM se recyklováno kompletně celý souborový systém daného OS. Do úložiště takového VM se ukládají pouze uživatelská data (crontab, lokální firewall pravidla rc.local, domovské adresáře / home, a celý / usr / local). Každá aplikace v samostatném aplikačním VM je proto dobrý nápad a nemusíte se obávat rychle zaplněného disku.

Další velká výhoda aplikačních VM je jednoduchá aktualizace – stačí aktualizovat jeden centrální souborový systém a po restartu máte aktualizované všechny VM, které jsou z něj derivované. 

Toto ale neplatí, pokud při vytváření VM zvolíte možnost „Standalone Qube“ – v tomto případě se vám do nového VM kompletně zkopíruje existující souborový systém (Fedora, Debian, Whonix). Případně můžete definovat vlastní. Osobně jsem tuto možnost zatím nikdy nepotřeboval, neboť s Debianem se kamarádím a dokázal jsem si tam zatím rozjet úplně všechno.

 

2.2 Typy virtualizace

Virtualizace v Qubes je implementována přes XEN, který podporuje 3 typy virtualizace:

  1. PVH ( „default“) pro všechny Linuxové VM. Jde o hardwarově podporovanou paravirtualizaci, která je velmi rychlá a optimální na většinu použití (pro každou VM je možné specifikovat samostatné jádro)
  2. PV – paravirtualizace bez hardwarové podpory
  3. HVM – plná hardwarová virtualizace, pomaleji
Porovnanie (originál https://wiki.xen.org/wiki/File:XenModes.png )

 

2.3 Segregace virtualizací jako cesta k vyšší bezpečnosti

Qubes podporuje několik systémových šablon ( „templates“) které je možné provázat s vašimi VM a zajistit jim individuální přístup k internetu či k USB zařízením. Tyto šablony představují samostatné VM, které jsou vytvořeny ze souborových šablon (Debian 9, Fedora 26, Whonix 13). Spouštějí se hned po nastartování Qubes a slouží jako VM, kde je směřována síťový provoz ostatních VM.

V Qubes jsou předinstalovány následující systémové šablony:

  • sys-whonix – transparentní kompletní směrování síťového provozu do Tor anonymizaci sítě (jako souborová šablona je použit Whonix)
  • sys-firewall – Standardní firewall (INPUT, FORWARD chain nastaven na DROP) (jako šablona je použita sys-net)
  • sys-net – přístup k internetu (jako souborová šablona je použita Fedora)
  • sys-usb – přístup na USB (jako souborová šablona je použita Fedora)

Jedním kliknutím dokážete nastavit nebo změnit, aby vaše vytvořená VM měla přístup k Internetu, do anonymní Tor sítě nebo k USB zařízením, případně nic z toho. Pro každou virtuální mašinu lze zkonfigurovat i lokální síťový firewall (připojení na které porty je dovoleno z dané VM, zbytek je zakázán).

Pro inspiraci uvádím nastavení pár mých osobních VM:

 

  • fedora-26-dvm (přístup k internetu přes firewall) – jednorázová instance VM, která spustí „prohlížení“ bez jakýchkoliv stop
  • whonix-dvm (přístup k internetu přes Tor) – jednorázová instance VM, která spustí „prohlížení“ přes Tor bez jakýchkoliv stop
  • TrustedCommunication (přístup k internetu přes firewall) – VM, kde mám umístěny moje privátní SSH a Signal klíče (běží mi tam Signal a SSH klient)
  • Trezor (bez jakéhokoli přístupu na síť) – běží mi tam password manager (B-Folders + KeePassX)
  • personal (přístup k internetu přes firewall) – běží mi tam Spotify, Emacs, LibreOffice …
  • monero-wallet-ws (bez jakéhokoli přístupu na síť) – VM, kde mám uložené privátní klíče k Monero peněžence
  • monerod-ws (přístup k internetu pouze přes Tor) – synchronizovaný Monero blockchain přes Tor, podobně všechny Monero transakce jsou broadcastované přes Tor

Jak jste si všimli, přístup k USB je u všech VM plošně zakázán a musím ho explicitně pro danou VM povolit, když potřebuji (například, když chci dělat backup na USB nebo importovat Monero blockchain).

 

2.4 Paranoidní nastavení Monero desktop peněženky

Kombinaci Librem + Qubes speciálně ocení všichni ti, kteří chtějí v maximální možné míře zajistit své desktop peněženky (v případě Monera, pro který stále neexistují HW peněženky, je to palčivý problém).

Zřejmě nejlepší způsob jak toto docílit v případě Qubes a Monera je popsán zde.

Ve zkratce – privátní klíče Monera jsou v zabezpečené VM, která je kompletně odpojena od Internetu (není tam spuštěn ani wifi /ethernet interface!). Jediný povolený port (který musí být explicitně schválen z dom0) je monerod port 18081, který je přesměrován na localhost: 18081. Přes ten Monero wallet komunikuje s monerod, který běží na samostatné VM. Ta má přístup do Internetu pouze přes Tor (sys-whonix), přes který se aktualizuje blockchain a provádějí všechny Monero transakce. Podobným způsobem lze konfigurovat (segregovat do samostatné VM) desktop peněženky jakýchkoli jiných kryptomien, pro které dosud neexistuje hardwarová peněženka.

3 PROBLÉMY, KTERÉ VÁS ČEKAJÍ VČETNĚ JEJICH ŘEŠENÍ

 

3.1 Slovenská colnice

Největší problém ze všech níže uvedených byla samozřejmě Slovenská celnice. Purism Librem je nutné objednat z USA. Přesto, že doručení trvá jen pár dní, na celnici obvykle zboží trčí několik týdnů.

Pokud můžete, tak si daný laptop kupte v USA,a zcela se vyhněte celnímu řízení. Vyhnete se i jeho „potenciálnímu“ zabackdoorovaniu ze strany státních úřadů.

Pokud se rozhodnete si ho objednat z USA, tak množství byrokracie dokážete snížit, když si laptop necháte doručit na sebe jako fyzickou osobu. Je možné se zcela vyhnout konfrontaci se státními úředníky, se kterými lze podobně jako já nesdílíte společný komunikační protokol. Na Slovensku stačí, když na emailovou adresu cloba@slposta.sk zašlete vaše nascanované poštovní oznámení s podacím a skladovým číslem a přiložíte příslušnou fakturu od Purism jakož i potvrzení o platbě (Purism jde zaplatit i Monerem – když se tak rozhodnete udělat, tak dejte vědět, co na to celníci 🙂 Současně v mailové komunikaci celní správu vyzvěte na samotné celní proclení vašeho zboží a vyměřování 20% DPH a požádejte je, aby vám samotný zboží poslali na vaši adresu dobírkou. Dva problémy s nimiž byste ale měli v tomto případě počítat – nevíte si odečíst DPH (pokud objednáváte na firmu, tak je to možné) a riskujete, že vám to pošta cestou z celnice rozbije.

Druhá a podstatně více byrokratická možnost je objednat si laptop z USA na firmu. V tomto případě si můžete odečíst na konci měsíce DPH. Celý tento proces je ultra byrokratický, takže se na to asi rovnou vykašlete a za 30-35 EUR si objednejte „státem spřízněnou“ firmu, která celou byrokracii s tím spojenou vyřídí za vás.

 

3.2 Upgrade Corebootu na poslední verzi

Aby se vám Qubes4 na Librem vůbec nainstaloval, tak potřebujete realizovat upgrade vašeho Corebootu na poslední verzi (4.7). Tento proces je zde důkladně popsán.

 

3.3 Nefunkční klávesa \ (resp |)

Po nainstalování Qubes na Librem vám nebude fungovat klávesa \ (resp |). Toto opravíte velmi rychle, stačí v dom0 vytvořit soubor /etc/udev/hwdb.d/90-purism-pipe-symbol-fi.hwdb s obsahem:

evdev:atkbd:dmi:bvn*:bvr*:bd*:svnPurism:pnLibrem13v2*
KEYBOARD_KEY_56=backslash

A následně spustit příkazy:

sudo systemd-hwdb update

sudo udevadm trigger

 

3.4 Přidání ikonky aplikace na horní liště

Dostat na horní lištu Window managera ikonku vaší oblíbené aplikace, tak aby šla kdykoliv spustit v daném VM není úplně jednoduché. Uděláte to ale takto:

  1. Nastartujte VM se souborovým systémem, který používáte (Debian 9 nebo Fedora 26).
  2. Nainstalujte vaši aplikaci, kterou chcete spouštět.
  3. Přihlaste se jako root a do / usr / share / applications / nakopírujte popis příslušné aplikace, kterou jste nainstalovali v kroku 2, napří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;
  1. Vypněte daný VM.
  2. Otevřete konfiguraci aplikačního VM, který máte z něj derivovaný. V nastaveních daného VM zobrazte seznam aplikací, které tam máte nainstalované a stiskněte „Refresh applications“ – zobrazí se vám vaše aplikace.
  3. Klikněte na horní lištu a zvolte volbu „Panel“ / „Add New Items“ / „Launcher“
  4. Klepněte na „Properties“ nové aplikace a vyberte vaši zvolenou aplikaci.
  5. Když chcete k ní nakopírovat vlastní ikonku do dom0, tak to uděláte následovně.

4 NEVÝHODY

Většina uvedených nevýhod je daň za výrazně zvýšenou bezpečnost, která je výkonově a energeticky náročná.

 

4.1 Slabší výdrž baterky

Podle výrobce oficiální výdrž baterky Librem 13 je 7 až 9 hodin. Pokud se rozhodnete jít do Qubes a vše provozovat ve VM, což je náročně na CPU, počítejte s tím, že výdrž bude možná 3x nižší.

 

4.2 Neočekávané vypnutí laptopu ještě před jeho vybitím

Asi 2x se mi stalo, že se mi Librem neočekávaně vypnul, i přesto, že jeho baterie nebyla zcela vybitá. Šlo o situace, kdy byl extrémně přetížený (mnoho spuštěných VM, například mi běžel backup) a současně nebyl v elektrickém napájení. Vypnutí bylo okamžité, bez jakékoliv oznámení, že baterie je již vybitá. Nevím vyloučit zda nejde jen o nějakou hardwarovou chybu mého konkrétního modelu. Když byl laptop zapojen v elektrické síti, tak se mi to nikdy nestalo.

 

4.3 Pomalejší startování aplikací a bootování

Každé spuštění aplikace znamená, že se vám musí spustit samostatná VM, která musí nabootovat a následně se v ní musí spustit požadovaná aplikace. Což může trvat řádově o pár vteřin více než jste normálně zvyklí. Dá se to vyřešit tak, že VM používaných aplikací spustíte rovnou při startu (je to jednoduché nastavit). V tomto případě se ale o to prodlouží samotné bootování.

Běh samotných aplikací je ale rychlý, takže se dá na to zvyknout a mně osobně toto už nevadí.

 

4.4 Mírně snížená usability

Kvůli tomu, že každá aplikace může v Qubes běžet v samostatné VM, které jsou navzájem odděleny,může komunikace mezi spuštěnými aplikacemi v různých VM spůsoobovat usability problém. Například, když chcete zkopírovat jednoduchý text, tak to musíte udělat v následujících krocích:

1. Kopírování textu do schránky v dané VM (obvykle Ctrl + C)

2. Zkopírování do Qubes clipboardu v dom0 (Shift + Ctrl + C)

3. Vložení do Qubes clipboardu v dané VM (Shift + Ctrl + V)

4. Vložení textu v dané VM (Ctrl + V)

Takže 2 kroky navíc než běžně, ale dá se na to rychle zvyknout.

Pokud kopírujete text mezi okny aplikací, které běží v téže VM, tak samozřejmě tento problém nemáte.

Podobně kopírování souborů mezi VM se realizuje trochu speciálně – pomocí příkazů qvm-copy nebo qvm-move vyžádující výslovný souhlas, který se zobrazí v dom0. Na toto se dá také velmi rychle zvyknout.

 

4.5 Nepřítomna podpora Windows 10

Windows 10 na Qubes 4 zatím neběží (nevypadá, že by toto byla pro vývojáře priorita). Experimentálně to lze vyhackovat následovně.

 

4.6 Touchpad místo trackpoint

Toto je zřejmě jenom můj subjektivní pocit jako odchovance na IBM ThinkPad. Jsem zvyklý na trackpoint namísto touchpadu, který mi přijde výrazně použitelnější. Bohužel Librem disponuje pouze touchpadem (samozřejmě je možné připojit externí USB myš).

5 VÝHODY

Kromě obrovských bezpečnostních výhod, které Qubes nabízí, rád bych poukázal na pár dalších výhod, které s bezpečností přímo nesouvisí.

 

5.1 Šeření diskového prostoru
Při použití aplikačních VM dokážete skutečně ušetřit spoustu diskového prostoru. Kompletně virtualizované prostředí bere jen o trochu více diskového prostoru než nevirtualizované.

 

5.2 Jednoduché zvětšování diskového prostoru VM

Zvětšování systémového diskového prostoru (root) nebo soukromého souborového systému (private) v jakémkoliv VM je díky LVM extrémně jednoduché. A dokážete to udělat pro právě spuštěnou VM, kterou nemusíte dokonce už ani restartovat.

5.3 Jednoduché zálohování

Zálohování VM je také velmi jednoduché – stačí vyklikat, které VM chcete zálohovat, zda je chcete při zálohování komprimovat a šifrovat a vybrat si cestu a VM, kam to chcete celé uložit. Já jsem si speciálně pro zálohování mého laptopu koupil 512 GB USB klíč.

ZÁVĚR

Vysoce bezpečná kombinace Purism Librem a Qubes zřejmě nebude pro každého.

Pokud jste exponovaná osoba, která se obává hrozby cílených útoků (například využitím 0-day exploitů), případně potřebujete chránit kryptoměny, ve kterých máte převážnou část vašich úspor, tak Librem + Qubes je „must“ a zřejmě nic lepšího nenajdete.

Qubes kromě jiných používá Snowden, DJ Bernstein, Peter Todd a množství jiných lidí pro které je bezpečnost skutečně klíčová.

(Celý tento článek byl napsán v Qubes 4 na Purism Librem).