Time Machine – šifrované zálohovanie v praxi (4)
06. február 2008, Martin Vrábel, Mac OS X & Darwin,
Vďaka svojej jednoduchosti sa zálohovanie pomocou Time Machine s obľubou ujalo. Stačí pripojiť externý alebo sieťový disk a v priebehu pár minút už veselo zálohujete. A zálohujú sa aj citlivé dáta medzi tými dôležitými. Kým Mac OS X ponúka šifrovanie domovského adresára používateľa cez funkciu FileVault, šifrovanie Time Machine záloh ostalo bokom. Málokto si však uvedomuje aké potenciálne nebezpečie hrozí zo zneužitia citlivých informácii nachádzajúcich sa v nezabezpečených zálohách.
Kto potrebuje šifrované zálohy?
Šifrovanie informačných médií je v IT segmente veľmi obľúbenou témou. Nielen, že definuje samotstatné odvietvie trhu, v ktorom môžeme nájsť veľkých hráčov IT priemyslu (CheckPoint, Entrust, RSA-EMC, atď.), ale je to aj to preferovaná téma pri auditoch (Big 4). Bežného domáceho používateľa sa audity týkať nebudú, ale v takom firemnom prostredí to už môže byť inak. Najmä ak sa daná firma snaží získať certifikáty o spĺňaní bezpečnostných štandardov, napr. ISO 27001 a pod.
Počty Mac používateľov narastajú aj vo firemnom prostredí, a tak je dnes nie je výnimočné vidieť zálohovanie cez Time Machine aj tu. Keďže v súčasnosti už každá IT firma disponuje centrálnym dátovým úložiskom, bola by škoda nevyužiť to.
Uveďme si príklad vzniknutia bezpečnostnej hrozby vo firemnom prostredí:
Nech je náš zálohujúci používateľ fundovaný a zapne si šifrovanie svojho domovského adresára (FileVault, na MacPlanete sa tejto téme budeme ešte venovať). S dobrým pocitom, že má svoje dáta ochránené, zálohuje. Používateľ si však neuvedomuje, že jeho Time Machine zálohy už šifrovené nie sú, a teda sú s miernymi ťažkosťami (podľa bezpečnostnej politiky vo firme) dostupné nepovolaným osobám. Napr. administrátorom centrálneho dátového úložiska. Ak by bol náš používateľ finančný manažér a mal by vo svojich nešifrovaných zálohách informácie o mzdách, tak môže nastať vážny incident.
Popísaný príklad nie je až tak uletený od reality. Je pravdou, že zálohovanie pomocou Time Machine bolo primárne navrhnuté pre domácich používateľov a rovnako je pravdou, že tí si vo všeobecnosti svoje dáta nechránia. Ale toto ako dôvod chýbajúcej podpory šifrovaného zálohovania v TM neobstojí, najmä ak je riešenie na dosah.
Princíp šifrovaného zálohovania
Skúsení používatelia Mac OS X už iste postrehli, že Time Machine ako framework (démoni a GUI) žiadne šifrovanie implementované nemá a dovolím si tvrdiť, že ani mať nebude. Nie je to potrebné. Túto funkcionalitu je možné dosiahnuť dvoma nasledujúcimi spôsobmi:
Oba spôsoby majú svoje výhody a nevýhody. Keďže zatiaľ v Mac OS X šifrovaný súborový systém nemáme a šifrovanie pre ZFS je ešte len v rannom beta štádiu, musíme siahnuť po prvej možnosti. Pri sieťovom zálohovaní si Time Machine vie automaticky namontovať sieťový disk a aj .dmg obraz na ňom uložený. Pokiaľ tento .dmg obraz zašifrujeme, Time Machine si bohužiaľ poradit nevie. Ale aj na tento problém existuje riešenie.

Namontovanie šifrovaného .dmg obrazu Time Machine nezvláda
Predpoklady a postup riešenia
Riešenie problému je celkom triviálne. Musíme zabezpečiť aby sa zálohovací démon pre Time Machine, tzn. backupd-helper (naviazaný na backupd), spustil až vtedy keď budeme mať namontovaný sieťový disk a z neho namontovaný šifrovaný .dmg obraz. Heslo sa k tomuto obrazu uloží do aplikácie Keychain, odkiaľ ho pri montovaní .dmg obrazu zavoláme. Štandardne sa backupd-helper démon volá cez launchd framwork, ale my použijeme v launchd vlastné volanie pomocou AppleScriptu. Celý postup riešenia je možné zhrnúť do nasledovných krokov:
launchd1. Funkčné sieťové zálohovanie cez TM
Keďže sme sa už tejto téme na MacPlanete venovali, nebudeme ju ďalej rozoberať. V nasledujúcom kroku použijeme z klasického .dmg obrazu vytvoreného pomocou Time Machine atribúty ako sú názov obrazu a meno namontovaného disku.
2. Vytvorenie šifrovaného .dmg obrazu
Time Machine pri sieťovom zálohovaní používa .dmg obrazy typu .sparsebundle. Je to typ obrazu kedy sa maximálna kapacita obrazu alokuje dynamicky, a to do pevne stanovenej hranice. V praxi teda 1 TB .dmg obraz typu .sparsebundle môže zaberať len 250 MB. Obrazy vytvárané pri zálohovaní cez Time Machine obsahujú súborový systém HFSX (Mac OS X Extended + Case-Sensitive) a klasickú Apple „partišn” mapu. V našom prípade použijeme štandardný súborový systém HFS+ (bez žurnálovania). Na vytvorenie šifrovaného .dmg obrazu nemusíme nutne použiť Disk Utility. Vystačili by sme si aj s utilitkou hdiutil. Pre názornejšiu demonštráciu sme použili prvú možnosť.

Vytvorenie šifrovaného .dmg obrazu pre TM (video prehráte kliknutím na obrázok)
3. Vytvorenie zálohovacieho AppleScriptu
Popisované riešenie počíta s vypnutím systémového časovania Time Machine záloh (System Preferences -> Time Machine -> OFF). Musíme teda zariadiť spúšťanie démona backupd-helper nejako inak. Rozumným riešením sa javí použitie AppleScriptu (resp. kombinácia s iným skriptovacím jazykom ShellScript, Perl, atď.). Demonštračný AppleScript si môžete stiahnuť tu.

Demonštrácia a stručný popis AppleScriptu (video prehráte kliknutím na obrázok)
4. Naplánovanie zálohovacieho agenta cez launchd
Framework launchd (na MP sa mu budeme ešte venovať) slúži v Mac OS X na riadenie spúšťania všetkých, tzn. nielen systémových, démonov. Z predchádzajúceho príkladu už vieme spustením AppleScriptu vyvolať namontovanie sieťového disku, šifrovaného .dmg obrazu a zavolať zálohovací démon backupd-helper. Keďže by sme radi zálohovanie zautomatizovali, vytvoríme si launchd agenta. Ten nám bude v pravidelných intervaloch spúšťať skompilovaný AppleScript com.macplanet.backupd.app. Opäť by sme mohli pracovať v termináli, no z dôvôdu názornosti použijeme šikovnú GUI aplikáciu Lingon, pomocou ktorej vieme názorne modifikovať konfiguráciu launchd démona.

Naplánovanie zálohovania cez Lingon (video prehráte kliknutím na obrázok)
Záver
Pokiaľ ste sa prelúskali článkom až k záverečným riadkom, tak ste na najlepšej ceste k reálnemu nasadeniu šifrovaného zálohovania cez Time Machine. I keď sa na prvý pohľad mohlo opísané riešenie zdať komplikované, v skutočnosti to tak nie je. Ide o veľmi elegantný a zároveň aj nenáročný spôsob ako dosiahnuť konkrétne riešenie. Verím, že si svojich priaznivcov určite nájde.

Streda, 06. február 2008, 8:50
Existuje ještě “obrácené” řešení, které používám já. Šifrování FileVault mám vypnuté, ale mám vytvořený šifrovaný obraz, který se připojuje automaticky po přihlášení a je nalinkovaný do adresáře Documents. Do něj ukládám veškerá citlivá data. Time Backup pak při zálohování ignoruje symlinky, takže z adresáře Documents nekopíruje nic, zato ale zazálohuje onen šifrovaný obraz. Data jsou tedy zašifrovaná jak na původním disku, tak na záloze.
Na druhou stranu ale zůstává otázkou, zda by na záloze skutečně neměla být data nezašifrovaná pro případ, že se při šifrování stane chyba, nebo nedejbože ztratíte šifrovací klíč. Pak jsou vaše data navždy ztracena a záloha je vám k ničemu.
Streda, 06. február 2008, 11:06
Ahoj. Podľa toho ako si to napísal, používaš rovnaký princíp ako FileVault. Rozdiel je len v tom, že FileVaut ukladá do šifrovaného obrazu celý home adresár a ty máš v obraze len Documents. Áno, dá sa to používať aj takto. Akurát si treba uvedomiť dôležitý fakt, že sa TM snapshoty vytvárajú z celého .dmg obrazu. Z hľadiska optimalizácie objemu zálohovaných dát nemusí byť takýto systém vhodný.
O otázke straty hesla len toľko, že proces bezpečnosti treba nastaviť pre dané podmienky. Ak má používateľ pocit, že kľúč k šifrovanému disku zabudne (používame KeyChain), tak buď šifrovať nebude alebo ho nesmie stratiť. Masívne “enterprise” riešenia používajú tzv. superkľúče, pomocou ktorých sa je možné dostať k šifrovanému obsahu aj bez konkrétneho používateľského kľúča. V Mac OS X takáto funkcionalita implementovaná nie je. A asi ani nebude
.
Streda, 20. február 2008, 0:02
.. TM neriesi backup ako snapshoty. skor mam dojem (zdoraznujem dojem), ze sa snazi inteligentne pouzivat inkrementalne zalohy
uniklo mi nieco ?
(mozno je to iba nazvoslovim, ale aj tak je v tom pripade pouzitie slova snapshot v suvislosti s TM trochu zavadzajuce..)
ta veta ‘Z hľadiska optimalizácie objemu zálohovaných dát..’, ehm. skratka chces povedat, ze sa zalohuje cely .dmg obraz, nie ? preco to preboha nepovedat normalne po slovensky..?
Streda, 20. február 2008, 0:29
@fx:
Správna poznámka. TM skutočne používa systém inkrementálnych záloh. Vďaka GUI, kde sa človek pohybuje v “čase” sa toto označuje aj ako “snapshot”. V skutočnosti je to technologicky úplne niečo iné ako snapshot známy z copy-on-write filesystémov (napr. ZFS). Výsledný efekt je podobný. Súhlasím s tým, že takéto označovanie znie trocha zavádzajúco (od toho máme diskusiu, kde si to vyjasníme)
. K štylistike toľko, že cieľový stav je vyjadrovať sa jednoducho a exaktne. Niekedy sa ujde aj komplikovanosť.
Nedeľa, 24. február 2008, 12:38
Tento postup se mi líbí, ale co když chci používat externí firewire disk a na něj dát ten šifrovaný dmg?
Nedeľa, 24. február 2008, 15:30
Bobik: nie je nic jednoduchsie. Staci ukazkovy Applescript modifikovat tak, aby nenamontovaval sietovy disk ale rovno vypytal zapnutie FireWire disku (prikaz display dialog) a nasledne rovno cez prikaz mount namontoval sifrovany image podla nadefinovanej cesty.
Hladat na Google spojenie vyrazov Applescript +”mount disk” +path
Sobota, 01. marec 2008, 18:47
Už pár dnů se s tím peru. Modifikoval jsem si ten skript a uložil jako app. Tahle app mi ale pokaždé těsně po spuštění spadne. Následným zkoumáním jsem zjistil, že tato app není aresář ale obačejný binární soubor.
Zkoušel jsem dokonce kompilaci na jiném počítači, ale výsledek stejný. Zajímavé, že z editoru to jde spustit bez problémů.
Tady přikládám původní skript a výslednou app:
http://ibobik.cz/mybackupd.zip
Pondelok, 04. máj 2009, 12:51
A da sa spravit aj takato zaloha na USB disk ? lebo sa o to pokusam a nefunguje mi to