Тази статия описва метод за динамично маскиране на данни (DDM), достъпен за първокласни сайтове на IRI FieldShield, който използва базирана на прокси система за прихващане на заявки от приложения към свързани с JDBC бази данни. Това е един от няколкото подхода за маскиране на данни в полет, които потребителите на FieldShield могат да разгледат.
Други опции на IRI DDM включват:функции FieldShield, извиквани чрез API, вградени в C/C++/C#, Java или .NET програми; функции FieldShield в реално време, вградени в SQL процедури, които създават маскирани изгледи; и динамично демаскиране на статично маскирани таблици за оторизирани потребители.
Базираната на прокси система, представена тук, използва подходящ за целта, специфичен за база данни драйвер „JDBC SQL Trail“ във връзка с уеб приложение за конфигурация и управление, наречено SQL Sharp (SQL#). Тази диаграма показва архитектурата на системата преди и след внедряването:
Това приложение в момента поддържа следните платформи за релационни бази данни:
- Oracle 11g, 12c, 18/19c
- PostgreSQL 9.5, 9.6, 10, 11
- MS SQL 2014, 2016
- SAP HANA 2.0
и изисква следните компоненти на трети страни:
- MS Windows 7,10 или Server 2012 и по-нова версия (тествана).
- Java JDK и JRE 1.8 или по-нова версия.
- Tomcat 8.5 или по-нова версия за стартиране на уеб сървъра на SQL#.
- Модерен уеб браузър, като:
- Google Chrome
- Mozilla Firefox
- Apple Safari
- Microsoft Edge
- Oracle или PostgreSQL като база данни на хранилището за съхранение:
- Конфигурация на потребител и група на SQL#
- Контроли за достъп до DB и активност
- Правила за маскиране на динамични данни
- Регистри за одит на SQL
Как работи?
В рамките на уеб приложението SQL# създавате политики за маскиране на данни, за да редактирате стойностите на колони в полет за всички освен оторизираните потребители, свързващи се към базата данни чрез драйвера JDBC SQL Trail. Трябва да инсталирате и конфигурирате този драйвер за всеки екземпляр на базата данни, който искате да защитите.
Политиките на DDM определят кои таблици и колони да се маскират и как ще се показват маскираните стойности. След като системата е правилно конфигурирана, всички заявки, свързани чрез драйвера, ще бъдат предмет на политиката за маскиране.
Възможно е също да се дефинират политики за блокиране на влизане на потребителите и определени SQL дейности. Създава се пълен регистър за влизане и одит на SQL активност, който може да се види в SQL#.
Драйверът не прави разлика между потребителите на приложението за целите на блокиране, маскиране или одит. Въпреки това, можете да упълномощите потребители със специално име – правейки алтернативни връзки към сървъра на приложения към DB чрез същия драйвер – да виждат данните, които не са маскирани.
Създаване на правила за маскиране
За да създадете политика за маскиране в SQL#, използвайте Политика за маскиране раздел на SQL# Изпълни управление екран. Изберете + (Добавяне) вдясно от Списъка с правила за маскиране етикет.
Дайте на правилото за маскиране име и описание по избор. След това можете да изберете типа маска, която ще се прилага от Регулярен израз на масиране: падащо меню в Добавяне на правило за маскиране диалогов прозорец.
Първите три опции са предварително дефинирани, докато Regex ви позволява да дефинирате персонализиран формат за маскиране. Щракнете върху + (Добавяне) икона вдясно от TAB/COL етикет, за да добавите една или повече комбинации от таблица и колона, за да посочите кои стойности на данни ще бъдат маскирани.
След като бъде направена всяка комбинация от таблица и колони, щракнете върху Добавяне бутон в средата на диалоговия прозорец, за да ги поставите в списъка. Когато приключите с определянето на местоположението на таблица и колона, щракнете върху Добавяне бутон в долната част, за да добавите местоположенията към Добавяне на правило за маскиране диалогов прозорец.
Накрая кликнете върху Запазване в долната част на Добавяне на правило за маскиране диалогов прозорец, когато приключите с правилото за маскиране. В този момент всички потребители, които са конфигурирани за достъп до данните, ще виждат маскирани стойности, когато се свързват чрез JDBC SQL Trail прокси драйвер.
За да позволите на потребителя да вижда немаскирани данни, трябва да ги добавите към Списъка с немаскирани потребители , както е описано по-долу.
Предоставяне на разрешение на потребители
В рамките на същата правила за маскиране раздел на SQL# Изпълни управление екран. Щракнете върху + (Добавяне) икона вдясно от Списък с демаскирани потребители етикет. Това ще покаже Търсене на потребител диалогов прозорец, в който можете да изберете един или повече потребители, за които заявките към избраните колони и таблици няма да бъдат маскирани.
Кликнете върху Запазване в долната част на диалоговия прозорец, когато приключите с избора на потребители.
Използване на SQL# и SQL Trail от DB приложения
В този пример нашето приложение за база данни ще бъде IRI Workbench, предната среда за проектиране на задачи Eclipse за Voracity, FieldShield и други софтуерни продукти на IRI.
За да активирате вашите приложения за SQL контрол и динамично маскиране на данни с помощта на SQL# прокси сървър и JDBC SQL Trail драйвер, ще трябва да активирате SQL# през Tomcat и неговия прокси сървър. Трябва също да конфигурирате драйвера JDBC SQL Trail в изгледа на IRI Workbench Data Source Explorer, както и DDM политиките в SQL#, както е описано по-горе.
Ето изглед на екземпляра на Oracle, свързан чрез драйвера JDBC SQL Trail.
Имайте предвид, че всички нормални операции с база данни и съветници за IRI задания ще продължат да работят през тази връзка. Това също означава, че всяка неоторизирана дейност от IRI Workbench ще бъде блокирана и всички SQL команди, издадени оттук към свързаната база данни, ще бъдат записани в дневника за одит на SQL#.
Това е заявка от Workbench към таблицата ORDERS, която е конфигурирана с политика за DDM в SQL#:
спрямо същата заявка, извършена от оторизиран потребител, която показва оригиналните немаскирани данни:
Междувременно обратно в раздела за регистриране на SQL# приложението можете да видите нашия запис на заявка:
от IP адреса на IRI Workbench.