sql >> Databáze >  >> RDS >> Database

Jak klasifikovat, najít a maskovat PII v databázích…

Po vytvoření připojení k databázi mají uživatelé IRI FieldShield a IRI DarkShield širokou škálu možností pro klasifikaci, vyhledávání a deidentifikaci citlivých dat v rámci jednoho nebo více schémat. Nyní mohou realizovat všechny tyto cíle najednou prostřednictvím zařízení založených na pravidlech v IRI Workbench.

Tento článek ukazuje krok za krokem použití datových tříd k nalezení a maskování PII v rámci malého schématu relační databáze pomocí FieldShield, i když tyto kroky můžete rozšířit na větší nebo více schémat. Pokud vaše databáze obsahuje polostrukturované nebo nestrukturované sloupce, přečtěte si tento článek o postupech klasifikace-hledání masky DarkShield pro databáze RDB nebo tento článek pro databáze NoSQL.

V operacích RDB se strukturovaným sloupcem FieldShield jsou data obvykle klasifikována po jednom schématu, ale jsou globálně maskována pomocí vašich uložených pravidel, ad hoc nebo podle plánu aktualizací.

Pravidla maskování dat, která definujete, vám umožňují vybrat funkci, která se nejlépe hodí pro každou třídu dat, a konzistentně ji aplikovat. Vytvoření stejného jedinečného výsledku zašifrovaného textu pro každou jedinečnou hodnotu původního prostého textu – v jakékoli tabulce nebo souboru – také zachovává referenční integritu; např. spojení budou fungovat i po zamaskování dat.

Tento příklad používá ukázkové tabulky Oracle ve schématu SCOTT poskytovaném v našem izolovaném prostoru virtuálních počítačů. Chcete-li se připojit k jiné databázi, musíte nakonfigurovat:

  • Profil připojení DTP pro vaši databázi v IRI Workbench pomocí JDBC
  • DSN ODBC pro tuto zdrojovou databázi

Informace o připojení databází pro použití s ​​FieldShield viz Nastavení DB zde.

Kroky, které popíšu, jsou:

  1. Nastavení – Definice datových tříd a pravidel maskování
  2. Skenovat – Spusťte Průvodce vyhledáváním třídy dat schématu
  3. Kontrola a úprava – Editor knihovny tříd dat
  4. Maska – Spusťte Průvodce maskováním databáze tříd dat

Je zde také odkaz na sérii videí s podobnými pokyny krok za krokem.

Nastavení – Definujte datové třídy a pravidla maskování

Chcete-li používat datové třídy s pravidly a průvodci, musí být datové třídy nejprve definovány a uloženy. To lze provést prostřednictvím Okna> Předvolby> IRI> Datové třídy a skupiny . Podrobnější informace naleznete v tomto článku o klasifikaci dat v IRI Workbench. K dispozici jsou také videonávody pro nastavení klasifikace dat a pravidla maskování.

Datové třídy se mohou ke sloupcům shodovat buď podle názvu sloupce (třída EMAIL odpovídá sloupci s názvem EMAIL) nebo podle shody dat obsažených ve sloupci. Tento příklad má třídy, které mají buď regulární výraz, nebo soubor sady. Soubor sady obsahuje položky, které slouží jako vyhledávání ve slovníku.

Na této stránce předvoleb potvrďte, že tyto datové třídy existují:

  • Třída KREDITNÍ KARTA který používá \b((4\d{12}(\d{3})?))|(?:5[1-5][0-9]{2}|222[1-9] |22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}|( 3[47]\d{13})|(3(0[0-5]|[68]\d)\d{11})|(6(011|5\d{2})\d{12 })|((2131|1800|35\d{3})\d{11})|(8\d{15})\b jako dohazovač.
  • Třída EMAIL který používá \b[\w._%+-]+@[\w.-]+\.[A-Za-z]{2,4}\b
  • Třída PHONE_US který používá ^(\+?(1)([ .-]?)?)?(\(?([2-9]\d{2})\)?([ .-]?)? )([2-9]\d{2})([ .-]?)(\d{4})([ #eExXtT]*)(\d{2,6})?&
  • Třída PIN_US který používá \b([0-9]{3}[-]?[0-9]{2}[-]?[0-9]{4})\b
  • Třída LAST_NAME, která používá soubor sady C:/IRI/cosort100/sets/names/names_last.set

Pokud ne, klikněte na Obnovit výchozí .

V horní části stránky předvoleb je položka Prahová hodnota shody . To představuje procento shod požadovaných pro sloupec, kterému má být přiřazena datová třída. Vyhledávání schématu prohledá 4K bloky dat, dokud shody nedosáhnou této prahové hodnoty. Pokud nikdy nedosáhne této prahové hodnoty, není přiřazena žádná datová třída.

Protože vím, že mám sloupce, které obsahují příjmení, která se nemusí nazývat „LAST_NAME“ nebo dokonce nemusejí mít odpovídající data v nastaveném souboru, mohu použít regulární výraz k tomu, aby se moje datová třída přiřadila k názvům sloupců. Například může existovat sloupec s názvem LNAME nebo LASTNAME.

Chcete-li upravit datovou třídu LAST_NAME, klikněte na položku LAST_NAME v zobrazení datových tříd a klikněte na Upravit . Změňte jeho název na L(AST)?[_-]?NAME (podtržítko a pomlčka v závorce). Klikněte na OK . Klikněte na Použít a zavřít .

Měli byste předem určit, jak chcete maskovat hodnoty v každé datové třídě (tj. formát jejich cílového sloupce), abyste mohli tato pravidla definovat dále. V našem příkladu budou existovat pravidla redakce, šifrování se zachováním formátu a pseudonymizace. Každé je potřeba definovat pouze jednou,  z nabídky IRI.

Chcete-li definovat toto pravidlo v tomto příkladu, postupujte takto:

Pravidlo 1 – Redakce (pro čísla sociálního zabezpečení)

  1. Vyberte nabídka IRI> Nové pravidlo .
  2. Vyberte Pravidla pole a klikněte na Další .
  3. Vyberte Funkce redakce , použijte SSN pro začátek Název pravidla, aby znělo SSNRedactionRule, a klikněte na Další .
  4. Vyberte Definovat masku přepínač. Zadejte 1 v Počáteční pozici a 5 v délce . Klikněte na Přidat do tabulky a Dokončit .

Pravidlo 2 – Šifrování (pro čísla účtů kreditních karet, e-mailové adresy a telefonní čísla)

  1. Vyberte nabídka IRI> Nové pravidlo .
  2. Vyberte Pravidla pole a klikněte na Další .
  3. Vyberte Funkce šifrování a dešifrování a klikněte na Další . Nepřejmenovávejte pravidlo.
  4. Vyberte enc_fp_aes256_alphanum možnost vlevo. Zadejte tajné pro Heslo . Na této stránce najdete informace o možnostech správy šifrovacího klíče.
  5. Klikněte na Dokončit .

Pravidlo 3 – Pseudonymizace (pro příjmení)

  1. Vyberte nabídka IRI> Nové pravidlo .
  2. Vyberte Pravidla pole a klikněte na Další .
  3. Vyberte Nahrazení pseudonym , přejmenujte jej na LNamePseudonymRule a klikněte na Další .
  4. Klikněte na Použít svůj vlastní seznam pseudonymů a Procházet do vyhledávacího souboru, C:/git/workbench-demos/Database_Classification_Masking/sets/lnames.set
  5. Vyberte Použít náhodné losování ze seznamu pseudonymů . Všimněte si, že obnovitelná pseudonymizace je také možná, ale je složitější kvůli pravděpodobným změnám vašich zdrojových dat.
  6. Klikněte na Dokončit .

Nyní, když jsou naše pravidla pro maskování datových tříd definována, můžeme provádět operace vyhledávání a maskování, abychom našli a opravili data globálně v rámci jednoho nebo více databázových schémat.

Skenovat – Spusťte Průvodce vyhledáváním třídy dat schématu

Chcete-li najít všechna data odpovídající našim definicím tříd ve všech tabulkách schématu, použijte Průvodce vyhledáváním třídy dat schématu. Tím se vytvoří sestava každé tabulky a sloupce s předem klasifikovanými PII uvnitř, vytvoří se soubor datové třídy specifický pro váš projekt a otevře se editor formulářů pro tento soubor. V tomto editačním dialogu (náš další krok po tomto) můžete zkontrolovat a upravit definice vaší datové třídy a pravidla maskování, než v posledním kroku přejdete na globální maskování dat.

Průvodce můžete spustit ze skupiny nabídek Data Discovery na panelu nástrojů IRI Workbench. Můžete také místo toho spustit průvodce hledáním přímo z Průzkumníka datových zdrojů a předem vyplnit průvodce vybraným schématem. Klikněte pravým tlačítkem na schéma SCOTT v Průzkumníku datových zdrojů (DSE) a vyberte IRI> Schema Data Class Search .

Na stránce nastavení průvodce hledáním zadejte umístění pro uložení souboru datové třídy. V každém projektu může být pouze jeden soubor tohoto typu, proto je stav pole názvu pouze pro čtení. Ponechte výchozí hodnoty tak, jak jsou. Klikněte na Další .

Vstupní stránka ukazuje, že je vybráno jedno schéma. Klikněte na Další . Další stránka umožňuje omezit prohledávané sloupce podle datových typů. Zahrnout NUMERIC a klikněte na Další .

Stránka Vyloučit položky umožňuje během kontroly vyloučit tabulky nebo sloupce. Klikněte na Další .

Stránka datových tříd umožňuje filtrovat datové třídy, které budou použity během kontroly. Vyberte pouze CREDIT_CARD , EMAIL , L(AST)?[_-]?NAME, PHONE_US a PIN_US . Klikněte na Dokončit .

Spolu se sestavami to vytvoří (nebo připojí) knihovnu tříd dat s mapováním mezi zdrojovými sloupci a třídami dat. Editor formulářů, který se otevře, umožňuje přiřadit k výsledkům pravidla.

Toto prohledávání 46 tabulek přineslo 18 shod ve sloupcích, o kterých vím, že jsou většinou, ale ne zcela úplné:

Vím, že několik sloupců nebylo porovnáno, protože tabulky byly prázdné nebo jména nenašla shodu v souborech sady. V dalším kroku se mohu těmto chybám věnovat a potvrdit svá pravidla maskování pro jednotlivé tabulky.

Zkontrolovat a upravit – Editor knihovny tříd dat

Nyní, když jsou výsledky hledání otevřené v okně pro úpravy formuláře knihovny datových tříd, můžete prozkoumat a upravit pravidla sloupců na úrovni tabulky a odstranit prázdné tabulky ve schématu s názvy sloupců, které odpovídají názvům vašich datových tříd. To vše pomáhá potvrdit, že jste správně nastaveni pro provedení úlohy hromadného maskování.

Všimněte si, že toto zobrazení také podporuje výsledky hledání v plochých souborech (třída dat adresáře) spolu s výsledky hledání v databázi. Spojením těchto výsledků s vaší knihovnou datových tříd je snazší zachovat maskovací funkce (pravidla) stejná v různých zdrojích dat. To pomáhá udržovat  referenční integritu a konzistenci testovacích dat ve více distribuovaných aplikačních prostředích.

Kliknutím na zdroj dat (tabulku) zobrazíte podrobnosti o tomto zdroji a náhled dat v něm. Pokud byla provedena shoda s datovou třídou, tento sloupec zobrazuje tuto třídu a způsob, jakým byla spárována.

V případě mé tabulky PERSONS níže můžete vidět, že:všechny hodnoty sloupců SSN odpovídaly vzoru RegEx mé datové třídy PIN_US a sloupce LASTNAME a CREDIT_CARD odpovídaly jejich názvům datových tříd, což vylučuje potřebu skenování těchto sloupců.

Úpravy mapování datových tříd lze provést buď změnou datové třídy pomocí rozevíracího seznamu, nebo zrušením výběru sloupce, čímž se mapování zcela odstraní. Pokud je tabulka prázdná, nemusí přiřadit všechna požadovaná mapování. Existují tři způsoby, jak to zvládnout:

  1. Tabulky můžete přidat na stránku vyloučení v průvodci klasifikací výše, aby nebyly přidány do knihovny tříd dat
  2. Pokud tabulka může v budoucnu obsahovat data, přiřaďte datové třídy ručně zde. Pak buď
    • Zrušte jejich zaškrtnutí v průvodci maskováním
    • Nechte je a průvodce maskováním vytvoří skripty úloh, které se spouštějí, ale nemaskují
  3. nebo odeberte zdroj dat z knihovny datových tříd

V tomto příkladu vyberte následující zdroje dat a klikněte na Odebrat protože jsou prázdné nebo není třeba je maskovat:

   SCOTT.DEMO_ROWGEN
   SCOTT.DM_EMPLOYEES
   SCOTT.PATIENT_RECORD_ENCRYPTED

Před maskováním je třeba dbát na ověření výsledků v knihovně datových tříd. Někdy jsou shody vynechány, protože data nejsou platná nebo je třeba upravit porovnávání datových tříd. Je také možné, že se vyskytnou falešně pozitivní výsledky.

V tomto příkladu je třeba datovou třídu přiřadit ručně, protože existují neplatné formáty e-mailové adresy a telefonního čísla v USA, ale přesto chceme tyto sloupce zamaskovat. Tento sloupec můžeme vybrat a klasifikovat jako:

   SCOTT.EMPLOYEES.PHONE_NUMBER> PHONE_US

Jakmile jsou výsledky zkontrolovány a upraveny podle potřeby, klikněte na datové třídy v knihovně nalevo a přiřaďte výchozí pravidla. To vám umožní přiřadit pravidla všem zdrojům pouhým přiřazením výchozího pravidla ke třídě.

V tomto příkladu jsem svá pravidla maskování přiřadil datovým třídám v knihovně následovně:

   CREDIT_CARD> FieldEncryptionRule
   EMAIL> FieldEncryptionRule
   L(AST)?[_-]?NAME> LNamePseudonymRule
   PHONE_US> FieldEncryptionRule
   PIN_US> SSNRedactionRule

Zkontrolováním pravidel maskování v každém z nich můžete ověřit, že se vaše přiřazení globálních pravidel šíří plně a správně ve zdrojích dat. Například v tabulce SCOTT.PERSONS poprvé zobrazené výše s pravidly nyní máme:

Pokud ve sloupci v konkrétní tabulce chybí pravidlo nebo potřebuje jiné pravidlo, lze toto pravidlo přidat nebo upravit poté, co se použijí výchozí pravidla, a to jejich adresováním v každém zdroji dat.

Maska – Spusťte Průvodce maskováním databáze tříd dat

Jakmile ověříte, že jsou vašim datovým třídám přiřazena správná pravidla maskování, jste připraveni je aplikovat globálně.

Klikněte pravým tlačítkem na iriLibrary.dataclass objekt ve složce projektu ve stromu Průzkumníka projektu IRI Workbench a vyberte IRI> Nová úloha maskování databáze tříd dat . Na první stránce průvodce ověřte, že složka projektu je tam, kde byla uložena vaše datová třída a knihovna pravidel, a pojmenujte úlohu. Vyberte Zobrazit stránku souhrnu zobrazíte podrobnosti úlohy.

Průvodce vám umožňuje aktualizovat maskované výsledky v Stejné zdrojové tabulky (pro jejich statické maskování) na Odlišné cílové tabulky nebo Ploché soubory (doporučeno), abyste mohli nejprve ověřit výsledky a načíst je do cílů. Změňte Výstup na Ploché soubory a klikněte na Další .

Na stránce Filtr datových tříd ponechte vybrané všechny datové třídy. Klikněte na Další . Na stránce Zdroje dat ponechte vybrané všechny položky. Pokud by existovaly tabulky, na kterých jste nechtěli spustit úlohu, zrušte jejich výběr zde.

Protože jsem se rozhodl zobrazit souhrnnou obrazovku, mohu úlohu ověřit:

před kliknutím na Dokončit .

Poté se vytvoří skripty a otevře se vývojový diagram pro ilustraci celé úlohy, který je také serializován jako dávkový soubor Windows (nebo Unixu). Každá tabulka, která bude mít maskovaný sloupec, je reprezentována hnědým blokem mapování transformace, který je serializován ve skriptu úlohy.

Prohlédněte si maskovací operace poklepáním na transformační mapovací bloky a prozkoumáním oranžových čar k cílům. Tyto označují sloupce, které se mění ze vstupu.

Klikněte do polí napravo od oranžové čáry a prohlédněte si zobrazení vlastností ve spodní části obrazovky. Příkaz Advanced Field ukazuje použitou transformaci (funkci maskování).

Jakmile budete spokojeni s maskovací úlohou, která byla vytvořena, spusťte ji. V new_classProtection klikněte pravým tlačítkem na new_classProtection.bat soubor a vyberte Spustit jako> Dávkový program .

Úloha běží na příkazovém řádku a maskované výstupní soubory lze otevřít pro kontrolu ze složky projektu nebo systému souborů. Po spuštění dávkové operace se všechny skripty maskovacích úloh a výstupy plochých souborů zobrazí v mé nové složce úlohy.

Snímek obrazovky níže ukazuje ty vlevo, stav před a po jedné z mých tabulek, PERSONS, uprostřed a konkrétní příkazy úkolů ve formě skriptu a obrysu vpravo. Podívejte se, jak byly podle plánu maskovány tři sloupce klasifikované a přiřazené pravidlům v této tabulce:

Jakmile se úloha hromadného maskování spustí, můžete výsledky znovu zkontrolovat, než:

  1. načtěte je do tabulek v IRI Workbench (který dokáže automaticky vytvářet zaváděcí soubory);
  2. upravte úlohu a proveďte změny; a/nebo, 
  3. spusťte průvodce znovu a přesměrujte výstup do tabulek.

Tyto maskovací úlohy se spouštějí na příkazovém řádku a lze je spustit nebo naplánovat pro obnovení dat a automatickou archivaci. Pokud máte nějaké dotazy nebo potřebujete pomoc s jakýmkoliv aspektem tohoto komplexního konfiguračního procesu nebo jeho nasazení, kontaktujte nás.

  1. Chcete-li předejít možnosti falešně pozitivních výsledků vyhledávání na čísla kreditních karet a národních identifikačních čísel, můžete automaticky provést výpočetní kontrolu platnosti během vyhledávání pomocí hodnot shodného vzoru. Vyberte nebo vytvořte ověřovací skript datové třídy, který chcete přidružit k definici datové třídy.
  2. Pokud používáte FieldShield v Voracity, můžete tyto soubory současně nebo následně třídit podle primárního indexového klíče cílové tabulky a urychlit tak hromadné načítání a běžné dotazy.

  1. SQLite3.Exception:Obraz disku databáze je chybný

  2. Převeďte datum řetězce na datum a čas v Oracle

  3. Jak vytvořit blog v PHP a MySQL databázi - Admin Posts

  4. PostgreSQL dotaz ILIKE s SQLAlchemy