Maskování [1] (obfuskace [2] ) dat je způsob, jak chránit důvěrné informace před neoprávněným přístupem nahrazením původních dat smyšlenými daty nebo libovolnými znaky. Maskované informace zároveň vypadají realisticky a konzistentně a lze je použít v procesu testování softwaru. Ve většině případů se maskování používá k ochraně osobních údajů a důvěrných informací organizace.
Použití maskování dat je nejběžnější v procesu vývoje aplikací . Zároveň je běžnou praxí používat produkční data ve všech fázích vývoje: při vytváření aplikací a rozšíření , ve fázích testování a ladění .
Hlavním problémem z pohledu managementu podniků [3] a organizací je, že vývojáři aplikací nejsou vždy podrobeni ověřování ze strany podnikových bezpečnostních služeb, než získají přístup k produkčním datům. Tato praxe může vést k závažným bezpečnostním chybám, protože data mohou kopírovat neoprávnění uživatelé a bezpečnostní opatření v různých fázích výroby lze snadno obejít.
Obecná praxe maskování dat na úrovni organizace by měla úzce souviset s praxí testování řídicích systémů [4] a základní metodikou a měla by zahrnovat procesy pro distribuci testů podmnožin maskovaných dat [5] .
Maskovaná data musí splňovat následující kritéria:
Nahrazení je jednou z nejúčinnějších technik maskování, jak zachovat původní vzhled dat. Pokud například původní databázová tabulka obsahuje záznamy s informacemi o zákaznících, lze skutečná jména a příjmení nahradit jmény a příjmeními převzatými ze speciálně vytvořeného (připraveného) souboru. Takže v první fázi maskování lze všechna jména zákazníků nahradit libovolnými mužskými jmény a ve druhé fázi lze do buněk odpovídajících zákaznicím vložit ženská jména (filtrováním seznamu zákazníků podle buňky s pohlavím). Použití tohoto přístupu k maskování vám umožní zajistit správnou anonymitu záznamů a zachovat poměr pohlaví klientů v maskované tabulce. Je důležité, aby databáze zároveň vypadala realisticky a skutečnost maskování informací nebyla zřejmá.
Metodu nahrazení lze použít pro databázová pole obsahující údaje různého druhu: například telefonní čísla, PSČ, čísla platebních karet, potvrzení o pojištění atd. Je důležité, že v případě čísel plastových karet musí úspěšně fungovat fiktivní čísla projít kontrolou podle algoritmu Moon .
Ve většině případů by fiktivní datové soubory měly být dostatečně velké, aby umožňovaly co největší variace a přitom stále umožňovaly vlastní kompilaci náhradních datových sad. Tato kritéria jsou klíčová při výběru softwarového řešení pro maskování dat.
Náhodné přehrávání je velmi běžný způsob maskování dat. Je podobná výše popsané metodě nahrazení, ale při míchání se nahrazující data přebírají ze stejného sloupce tabulky jako původní data. Jednoduše řečeno, data ve sloupci jsou náhodně zamíchána.
Avšak maskování pomocí této metody samotné má vážné nevýhody. Útočník, který má přístup k některým skutečným informacím, může obnovit zbytek dat pomocí analýzy pomocí metody „co když?“. Kromě toho lze míchání zvrátit dešifrováním jeho algoritmu.
Přes své nedostatky je metoda míchání skvělým doplňkem k jiným metodám maskování dat a v určitých případech může poskytnout určité výhody. Chcete-li například zamaskovat finanční výkazy, můžete nahradit jména dodavatelů a poté zamíchat čísla účtů v celé databázi. Je přitom krajně nepravděpodobné, že by je někdo, byť s omezeným přístupem k původním datům, dokázal obnovit.
Metoda rozptylu (scatter) se používá při práci s databázovými poli obsahujícími finanční informace a data. Tato metoda spočívá v odchýlení maskované číselné hodnoty od původní o určitou hodnotu. Například při maskování buněk obsahujících mzdové údaje zaměstnanců může být odchylka od původní hodnoty ± 10 %, takže maskované informace vypadají celkem realisticky a logicky.
Totéž platí pro sloupce v databázových tabulkách obsahujících data. Je-li pro zachování integrity demografických a pojistně-matematických informací vyžadováno maskování , pak použití odchylky ± 120 dnů na pole kalendářního data zachová jejich vztah v tabulce, ale nebude možné určit identitu osoby podle data například narození.
Šifrování je nejsofistikovanější způsob maskování dat. Šifrovací algoritmus obvykle předpokládá přítomnost "klíče" potřebného k dešifrování a zobrazení původních dat.
Šifrování je na první pohled ideálním řešením problému omezování přístupu k informacím, ale v praxi může být „klíč“ přenesen na zaměstnance, který nemá dostatečná práva k prohlížení dat, a tím se ruší veškeré snahy o zamaskování .
Šifrování může doprovázet i převod původních dat do binární podoby, což může způsobit problémy v aplikacích. Pro identifikaci a eliminaci konfliktů v rámci aplikací je nutné provést testování s předáním prvotních informací testerům, což zase zahrnuje prověření IT specialistů zapojených do testování bezpečnostní službou. Skvělý nápad v teorii, když je implementován v praxi, způsobuje spoustu potíží: šifrování zabere spoustu času, než se otestují a odstraní zjištěné nedostatky.
V poslední době byly problémy spojené s šifrováním rozpoznány vývojáři softwaru a vědeckou komunitou. Výsledkem výzkumu v této oblasti byl vznik nových šifrovacích algoritmů, které umožňují uložit původní datový formát - FPE (format protection encryption) .
Někdy se používá zjednodušená metoda maskování dat, která spočívá v nahrazení znaků v položce databáze nulami nebo libovolnými znaky (například hvězdičkami nebo „X“). Je zřejmé, že tato metoda umožňuje pouze skrýt, nikoli maskovat původní hodnotu. Téměř ve všech případech tento přístup snižuje stupeň integrity dat, protože způsobuje problémy s ověřováním dat aplikacemi. Kromě toho „nepřirozené“ hodnoty v záznamech databáze jasně naznačují, že na tabulku bylo použito maskování.
Nejčastěji se tento způsob maskování používá v procesu práce s platebními kartami. Například operátoři call center internetových obchodů vidí pouze poslední čtyři číslice čísla kreditní karty zákazníka (XXXX XXXX XXXX 6789), ale po potvrzení údajů odešle fakturační systém celé číslo karty do platebního systému .
Tento systém není příliš účinný pro testovací systémy, ale užitečný pro scénář účtování popsaný výše. Je také široce známý jako způsob dynamického maskování dat [6] .
Existují dva hlavní typy maskování dat: statické a dynamické maskování.
Maskování statických dat se obvykle používá, když je třeba databázi předat k testování (například při outsourcingu ). Správce databáze vytvoří kopii produkční databáze, nahraje ji na samostatný server, sníží množství informací v ní obsažených, ponechá pouze informace nezbytné pro provádění specifických testů, poté použije maskování, provede potřebné změny v kódu programu, a odešle maskovanou kopii databáze vývojářům nebo testerům.
Dynamické maskování (maskování v reálném čase, maskování za běhu) se vyskytuje v procesu přenosu produkčních dat vývojářům bez přechodného záznamu na jakékoli paměťové médium .
Tento typ maskování je nejlepším řešením pro organizace, které používají nepřetržitou integraci a nemají čas na vytváření a stahování záloh databáze . Díky nepřetržité integraci je důležité mít možnost neustále podsouvat malé sady produkčních dat vývojářům k testování.
K dynamickému maskování dochází na základě atributů a definovaných zásad. Například:
Dynamické maskování lze také použít ve spojení s šifrováním dat v reálném čase , zejména při použití šifrování se zachováním formátu .
Vývoj aplikací na bázi cloudu je v posledních letech stále populárnější, ať už tyto aplikace poběží přímo v cloudu nebo na lokálním počítači. Existují různé metody pro vytváření testovacích případů a jejich přesun z lokálních databází do „cloudu“ nebo mezi různými prostředími v rámci „cloudu“. Maskování dat se nevyhnutelně stává součástí životního cyklu softwaru .
|