Database
 sql >> база данни >  >> RDS >> Database

Как да класифицирате, намирате и маскирате PII в бази данни...

След като осъществят връзки към базата си данни, потребителите на IRI FieldShield и IRI DarkShield имат широк спектър от опции за класифициране, намиране и деидентификация на чувствителни данни в една или повече схеми. Те вече могат да постигнат всички тези цели наведнъж чрез базирани на правила средства в IRI Workbench.

Тази статия демонстрира стъпка по стъпка използването на класове данни за намиране и маскиране на PII в малка схема на релационна база данни с помощта на FieldShield, въпреки че бихте могли да разширите тези стъпки до по-големи или повече схеми. Ако вашата база данни съдържа полу- или неструктурирани колони, вижте тази статия за процедурите на DarkShield classify-search-mask за RDBs или тази статия за NoSQL DBs.

В операциите на RDB със структурирана колона на FieldShield данните обикновено се класифицират една по една схема, но се маскират глобално, като се използват вашите запазени правила, ad hoc или по график за актуализации.

Правилата за маскиране на данни, които дефинирате, ви позволяват да изберете функцията, която е най-подходяща за всеки клас данни, и да я прилагате последователно. Произвеждането на един и същ уникален резултат от шифрован текст за всяка уникална стойност на оригиналния отворен текст — във всяка таблица или файл — също запазва референтната цялост; например присъединяванията ще продължат да работят, след като данните са маскирани.

Този пример използва примерни таблици на Oracle в схемата SCOTT, предоставена в нашата пясъчна среда за VM. За да се свържете с друга база данни, ще трябва да конфигурирате:

  • Профилът на DTP връзка за вашата DB в IRI Workbench с помощта на JDBC
  • ODBC DSN за този източник DB

За информация относно свързването на вашите бази данни за използване с FieldShield вижте Настройка на DB тук.

Стъпките, които ще опиша са:

  1. Настройка – дефиниране на класове данни и правила за маскиране
  2. Сканиране – Стартирайте съветника за търсене на класове на данни по схема
  3. Преглед и коригиране – Редактор на библиотека с класове на данни
  4. Маска – Стартирайте съветника за маскиране на база данни за клас данни

Има и видео поредица, свързана тук с подобни инструкции стъпка по стъпка.

Настройка – Дефиниране на класове данни и правила за маскиране

За да използвате класове данни с правила и съветници, първо трябва да бъдат дефинирани и запазени класовете данни. Това може да стане чрез Прозорец> Предпочитания> IRI> Класове и групи данни . Вижте тази статия за класификацията на данните в IRI Workbench за по-дълбоко гмуркане. Има и видео уроци за настройка на класификация на данни и правила за маскиране.

Класовете данни могат да съвпадат с колони или по име на колона (клас EMAIL съответства на колона с име EMAIL), или чрез съпоставяне на данните, съдържащи се в колоната. Този пример има класове, които имат или регулярен израз, или набор файл. Файлът с набор съдържа записи, които служат за търсене в речник.

На тази страница с предпочитания потвърдете, че съществуват следните класове данни:

  • Клас CREDIT_CARD който използва \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 като съвпадение.
  • Клас EMAIL който използва \b[\w._%+-]+@[\w.-]+\.[A-Za-z]{2,4}\b
  • Клас PHONE_US който използва ^(\+?(1)([ .-]?)?)?(\(?([2-9]\d{2})\)?([ .-]?)? )([2-9]\d{2})([ .-]?)(\d{4})([ #eExXtT]*)(\d{2,6})?&
  • Клас PIN_US който използва \b([0-9]{3}[-]?[0-9]{2}[-]?[0-9]{4})\b
  • Клас LAST_NAME, който използва файл с набор C:/IRI/cosort100/sets/names/names_last.set

Ако не го направят, щракнете върху Възстановяване на настройките по подразбиране .

В горната част на страницата с предпочитания има запис Праг на съвпадение . Това представлява процента съвпадения, необходими за присвояване на клас данни на колона. Търсенето на схема ще сканира 4K блокове данни, докато съвпаденията достигнат този праг. Ако никога не достигне този праг, тогава не се присвоява клас данни.

Тъй като знам, че имам колони, които съдържат фамилни имена, които може да не се наричат ​​„LAST_NAME“ или може дори да нямат съответстващи данни в зададения файл, мога да използвам регулярен израз, за ​​да съпоставя моя клас данни с харесване на имена на колони. Например може да има колона с име LNAME или LASTNAME.

За да редактирате класа данни LAST_NAME, щракнете върху записа LAST_NAME в изгледа Класове данни и щракнете върху Редактиране . Променете името му на L(AST)?[_-]?NAME (долна черта и тире в скоби). Щракнете върху OK . Щракнете върху Прилагане и затваряне .

Трябва предварително да определите как искате стойностите във всеки клас данни да бъдат маскирани (т.е. форматът на целевата им колона), за да можете да дефинирате тези правила след това. В нашия пример ще има правила за редакция, криптиране, запазващо формат, и правила за псевдонимизация. Всяко трябва да бъде дефинирано само веднъж  от менюто IRI.

За да дефинирате това правило в този пример, изпълнете следните стъпки:

Правило 1 – Редактиране (за социалноосигурителни номера)

  1. Изберете меню IRI> Ново правило .
  2. Изберете Правила на полето и щракнете върху Напред .
  3. Изберете Функция за редактиране , използвайте SSN за началото на името на правилото, така че да чете SSNRedactionRule, и щракнете върху Напред .
  4. Изберете Define Mask радио бутон. Въведете 1 в Начална позиция и 5 в дължина . Щракнете върху Добавяне към таблицата и Край .

Правило 2 – Шифроване (за номера на сметки на кредитни карти, имейл адреси и телефонни номера)

  1. Изберете меню IRI> Ново правило .
  2. Изберете Правила на полето и щракнете върху Напред .
  3. Изберете Функции за криптиране и декриптиране и щракнете върху Напред . Не преименувайте правилото.
  4. Изберете enc_fp_aes256_alphanum опция вляво. Въведете тайна за парола . Вижте тази страница за опциите за управление на ключовете за криптиране.
  5. Щракнете върху Край .

Правило 3 – Псевдонимизация (за фамилни имена)

  1. Изберете меню IRI> Ново правило .
  2. Изберете Правила на полето и щракнете върху Напред .
  3. Изберете Замяна на псевдоним , преименувайте го LNamePseudonymRule и щракнете върху Напред .
  4. Щракнете върху Използвайте свой собствен списък с псевдоними и Преглед към файла за търсене, C:/git/workbench-demos/Database_Classification_Masking/sets/lnames.set
  5. Изберете Използване на произволно теглене от списък с псевдоними . Имайте предвид, че възстановимата псевдонимизация също е възможна, но е по-сложна поради вероятни промени в изходните ви данни.
  6. Щракнете върху Край .

Сега, когато нашите правила за маскиране на клас данни са дефинирани, можем да извършваме операции за търсене и маскиране, за да намерим и коригираме данните глобално в една или повече схеми на база данни.

Сканиране – Стартирайте съветника за търсене на клас данни на схема

За да намерите всички данни, съответстващи на нашите дефиниции на класове във всички таблици на схема, използвайте съветника за търсене на класове на данни по схема. Това създава отчет за всяка таблица и колона с предварително класифицирана PII вътре, създава файл с клас данни, специфичен за вашия проект, и отваря редактор на формуляри за този файл. В този диалогов прозорец за редактиране (следващата ни стъпка след това) можете да прегледате и модифицирате дефинициите на вашия клас данни и правила за маскиране, преди да преминете към глобално маскиране на данни в последната стъпка.

Можете да стартирате съветника от групата меню Data Discovery в лентата с инструменти на IRI Workbench. Вместо това можете също да стартирате съветника за търсене директно от Data Source Explorer, за да попълните предварително съветника с избрана схема. Щракнете с десния бутон върху схемата SCOTT в Data Source Explorer (DSE) и изберете IRI> Schema Data Class Search .

На страницата за настройка на съветника за търсене въведете местоположението, за да запишете файла с клас данни. Във всеки проект може да има само един файл от този тип, оттук и състоянието само за четене на полето за име. Оставете настройките по подразбиране както са. Щракнете върху Напред .

Страницата за въвеждане показва, че е избрана една схема. Щракнете върху Напред . Следващата страница ви позволява да ограничите колоните, търсени по типове данни. Включете NUMERIC и щракнете върху Напред .

Страницата Изключване на елементи ви позволява да изключвате таблици или колони по време на сканирането. Щракнете върху Напред .

Страницата клас данни ви позволява да филтрирате класовете данни, които ще бъдат използвани по време на сканирането. Изберете само CREDIT_CARD , ИМЕЙЛ , L(AST)?[_-]?NAME, PHONE_US и PIN_US . Щракнете върху Край .

Заедно с отчетите, това създава (или добавя) библиотека с класове данни със съпоставяния между колони източник и класове данни. Редакторът на формуляри, който се отваря, ви позволява да задавате правила на резултатите.

Това търсене в 46 таблици даде 18 съвпадения на колони, за които знам, че са предимно, но не напълно пълни:

Знам, че няколко колони не бяха съпоставени поради празни таблици или имената, които не намираха съвпадения в зададените файлове. В следващата стъпка мога да се справя с тези пропуски и да потвърдя правилата си за маскиране за всяка таблица.

Преглед и коригиране – Редактор на библиотека с класове на данни

Сега, когато резултатите от търсенето са отворени в прозореца за редактиране на формуляра на библиотеката с класове данни, можете да разглеждате и променяте правилата за колони на ниво таблица и да елиминирате празни таблици в схемата с имена на колони, съвпадащи с имената на вашите класове данни. Всичко това помага да се потвърди, че сте настроени правилно за изпълнение на задачата за маскиране.

Имайте предвид, че този изглед също поддържа резултати от търсене с плосък файл (клас данни в директория) заедно с резултатите от търсенето на вашата база данни. Чрез присъединяването на тези резултати към вашата библиотека с класове на данни е по-лесно да поддържате вашите маскиращи функции (правила) едни и същи в различни източници на данни. Това помага да се поддържа  референтна цялост и последователност на тестовите данни в по-разпределени среди на приложения.

Щракнете върху източник на данни (таблица), за да покажете подробности за този източник и визуализация на данните в него. Ако е направено съвпадение с клас данни, тази колона показва този клас и как е бил съпоставен.

В случая на моята таблица PERSONS по-долу можете да видите, че:всички стойности на колоните SSN съвпадат с модела на RegEx на моя клас данни PIN_US, а колоните LASTNAME и CREDIT_CARD съвпадат с имената на техните класове данни, изключвайки необходимостта от тези сканирани колони.

Редактирането на съпоставянията на класовете данни може да се направи чрез промяна на класа данни чрез падащо меню или премахване на избора на колоната, за да премахнете напълно съпоставянето. Ако таблицата е празна, тя може да не присвои всички желани съпоставяния. Има три начина да се справите с това:

  1. Можете да добавите таблиците към страницата за изключване в съветника за класификация по-горе, така че да не се добавя към библиотеката с класове данни
  2. Ако таблицата може да има данни в бъдеще, задайте ръчно класовете данни тук. Тогава или
    • Премахнете отметката от тях в съветника за маскиране
    • Оставете ги и съветникът за маскиране ще създаде скриптове за работа, които се изпълняват, но не маскират
  3. или премахнете източника на данни от библиотеката на класовете данни

В този пример изберете следните източници на данни и щракнете върху Премахване тъй като те са празни или не е необходимо да бъдат маскирани:

   SCOTT.DEMO_ROWGEN
   SCOTT.DM_EMPLOYEES
   SCOTT.PATIENT_RECORD_ENCRYPTED

Трябва да се внимава да се проверят резултатите в библиотеката на класовете данни преди маскирането. Понякога съвпаденията се пропускат, защото данните не са валидни или съпоставителят на клас данни трябва да бъде променен. Възможно е също така да възникнат фалшиви положителни резултати.

В този пример трябва ръчно да се присвои клас данни, тъй като има невалидни формати на имейл адрес и телефонен номер в САЩ, но ние така или иначе искаме да маскираме тези колони. Можем да изберем и класифицираме тази колона до:

   SCOTT.EMPLOYEES.PHONE_NUMBER> PHONE_US

След като резултатите бъдат прегледани и променени според нуждите, щракнете върху класовете данни в библиотеката вляво, за да зададете правила по подразбиране. Това ще ви позволи да присвоите правилата на всички източници, като просто присвоите правило по подразбиране на клас.

В този пример присвоих правилата си за маскиране на класовете данни в библиотеката, както следва:

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

Можете да проверите дали вашите глобални назначения на правила се разпространяват напълно и правилно в източниците на данни, като прегледате правилата за маскиране във всеки. Например, в таблицата SCOTT.PERSONS, показана за първи път по-горе с правила, сега имаме:

Ако в колона в конкретна таблица липсва правило или се нуждае от различно правило, това правило може да бъде добавено или променено, след като се приложат правилата по подразбиране, като се адресират във всеки източник на данни.

Маска – Стартирайте съветника за маскиране на база данни от клас данни

След като се уверите, че правилните правила за маскиране са присвоени на вашите класове данни, вие сте готови да ги приложите глобално.

Щракнете с десния бутон върху iriLibrary.dataclass обект в папката на вашия проект в дървото на вашия IRI Workbench Project Explorer и изберете IRI> New Data Class Database Masking Job . На първата страница на съветника проверете дали папката на проекта е мястото, където са записани вашите класове данни и библиотека с правила и наименувайте заданието. Изберете Показване на страницата с обобщение за да видите подробностите за работата.

Помощникът ви позволява да актуализирате маскираните резултати в Same изходни таблици (за статично маскиране), до Различни целеви таблици или към плоски файлове (препоръчително), за да можете първо да потвърдите резултатите и да ги заредите в целите. Променете Изхода към Плоски файлове и щракнете върху Напред .

На страницата Филтър за класове данни оставете избрани всички класове данни. Щракнете върху Напред . На страницата Източници на данни оставете избрани всички елементи. Ако имаше таблици, на които не искате да стартирате заданието, щяхте да премахнете избора им тук.

Тъй като избрах да показвам екрана с обобщение, мога да проверя заданието:

преди да щракнете върху Край .

След това се създават скриптовете и се отваря блок-схема, за да илюстрира цялата работа, която също се сериализира като пакетен файл на Windows (или Unix). Всяка таблица, която ще има маскирана колона, е представена от кафяв блок за преобразуване, който се сериализира в скрипт на задача.

Прегледайте операциите за маскиране, като щракнете двукратно върху блоковете за преобразуване и прегледате оранжевите линии към целите. Те означават, че колоните се променят от входа.

Щракнете върху полетата вдясно от оранжевата линия и вижте изгледа на свойствата в долната част на екрана. Инструкцията Advanced Field показва приложената трансформация (функция за маскиране).

След като сте удобни с създадената задача за маскиране, стартирайте я. В new_classProtection папка, щракнете с десния бутон върху new_classProtection.bat файл и изберете Изпълни като> Пакетна програма .

Заданието се изпълнява на командния ред и маскираните изходни файлове могат да бъдат отворени за преглед от папката на вашия проект или файловата система. Всъщност, след като пакетната операция се изпълни, всички скриптове на задачи за маскиране и изходни файлове с плосък файл се показват в новата ми папка за работа.

Екранната снимка по-долу показва тези отляво, състоянието преди и след на една от моите таблици, ЛИЦА, в центъра и конкретните изявления за задачи в скрипт и форма отдясно. Вижте как трите колони, класифицирани и присвоени на правила в тази таблица, бяха маскирани, както е планирано:

След като заданието за пакетно маскиране се изпълни, можете да проверите отново резултатите, преди да:

  1. заредете ги в таблици в IRI Workbench (което може автоматично да създава файлове за зареждане);
  2. променете заданието, за да направите промени; и/или, 
  3. стартирайте отново съветника, за да насочите изхода към таблици вместо това.

Тези задачи за маскиране се изпълняват на командния ред и могат да бъдат задействани или планирани за опресняване на данни и автоматично архивиране. Свържете се, ако имате въпроси или се нуждаете от помощ за някой аспект на този процес на цялостно конфигуриране или неговото внедряване.

  1. За да изключите възможността за фалшиво положителни резултати от търсенето на кредитни карти и национални идентификационни номера, можете автоматично да извършите изчислителна проверка на валидността по време на търсения чрез стойности за съвпадение на шаблон. Изберете или създайте скрипт за валидиране на клас данни, който да се свърже с дефиницията на клас данни.
  2. Ако използвате FieldShield в Voracity, можете едновременно или впоследствие да сортирате тези файлове в основния индексен ключ на целевата таблица, за да ускорите груповите зареждания и общите заявки.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL не е равен на (!=) оператор за начинаещи

  2. Репликация на данни в IRI Workbench

  3. Как да получите текущата дата (без време) в T-SQL

  4. Тенденции в хардуера и инфраструктурата на базата данни

  5. Инкрементална репликация на данни в IRI Workbench