fbpx

אבטחת מידע חסוי היא צורך בסיסי בחברות רבות. החל בהרשאות, וכלה בכלי הצפנה שונים, אנו מאפשרים את הגישה לאינפורמציה עבור המורשים בלבד.
עם זאת קיימים מקרים, נפוצים בעת פיתוח אפליקציה, בהם נדרש להעביר מידע רגיש היושב ב
Production לגורמים שונים בארגון כגון מפתחים כדי שיוכלו לעבוד עליו.
Data Masking היא צורה בה אנו יכולים להחליף את הערכים הרגישים בטבלה (כמו מס' כרטיס האשראי) בערכים אחרים אשר נראים לגיטימיים לחלוטין אך למעשה מבוססים על אלגוריתם בו הם מוחלפים בנתונים אחרים.
 כך שהמידע הרגיש לא נחשף ובמקביל יוזרים שונים עדיין יכולים לעבוד עליו.

Data Masking

Data Masking In Practice

את ה Masking ניתן ליישם בשלוש דרכים :

1.     קוד PLSQL עצמאי אשר מבצע את שינוי הערכים

2.     כלים חיצוניים כגון www.datamasker.com

3.     Supplied Oracle Data Masking Pack

Supplied Oracle Data Masking Pack

ניתן להשתמש ב Oracle Enterprise Manager על מנת להגדיר Masking בצורה פשוטה ונוחה – להלן הדגמה קצרה (צילומי המסך הבאים מתבססים על גרסת 11gR2)

ראשית נייצר טבלה, שימו לב לנתוניה המקוריים :

HR > CREATE TABLE hr.test_employees AS SELECT * FROM hr.employees ;

Table created.

HR > EXEC P('SELECT * FROM test_employees WHERE rownum <= 3')

EMPLOYEE_ID                    : 198
FIRST_NAME                     : Donald
LAST_NAME                      : OConnell
EMAIL                          : DOCONNEL
PHONE_NUMBER                   : 650.507.9833
HIRE_DATE                      : 21-JUN-07
JOB_ID                         : SH_CLERK
SALARY                         : 2600
COMMISSION_PCT                 :
MANAGER_ID                     : 124
DEPARTMENT_ID                  : 50
-   -   -   -   -   -   -   -   -   -   -   -   -   -   -
EMPLOYEE_ID                    : 199
FIRST_NAME                     : Douglas
LAST_NAME                      : Grant
EMAIL                          : DGRANT
PHONE_NUMBER                   : 650.507.9844
HIRE_DATE                      : 13-JAN-08
JOB_ID                         : SH_CLERK
SALARY                         : 2600
COMMISSION_PCT                 :
MANAGER_ID                     : 124
DEPARTMENT_ID                  : 50
-   -   -   -   -   -   -   -   -   -   -   -   -   -   -
EMPLOYEE_ID                    : 200
FIRST_NAME                     : Jennifer
LAST_NAME                      : Whalen
EMAIL                          : JWHALEN
PHONE_NUMBER                   : 515.123.4444
HIRE_DATE                      : 17-SEP-03
JOB_ID                         : AD_ASST
SALARY                         : 4400
COMMISSION_PCT                 :
MANAGER_ID                     : 101
DEPARTMENT_ID                  : 10
-   -   -   -   -   -   -   -   -   -   -   -   -   -   -

 

 

נתחבר ל OEM ונבחר באופציית ה Definition תחת קטגוריית ה Data Masking

Data Masking Step 1

 

בשלב הבא נייצר Data Masking Definition חדש

Data Masking Step 2

Data Masking Step 3

לאחר מכן נבחר את הטבלה ואת העמודות עליהן נרצה לעשות את ה Masking

Data Masking Step 4

 

בשלב האחרון – עבור כל אחת מהעמודות שבחרנו נגדיר את פורמט ה Mask

Data Masking Step 5

לדוגמא – עבור עמודת שכר נוכל לבחור את פורמט ה Mask הבא

Data Masking Step 6

 

כעת אם נביט בנתוני הטבלה לאחר השינוי נוכל לראות את ה Masking

 

 

/*
Accroding the following Masking rules : 

Column          Format
DEPARTMENT_ID   - Random Numbers
MANAGER_ID      - Preserve Original Data
COMMISSION_PCT  - Shuffle
SALARY          - Fixed Number 999
EMPLOYEE_ID     - Null Value
FIRST_NAME      - Preserve Original Data
PHONE_NUMBER    - USA Phone Number
LAST_NAME       - Random Strings
HIRE_DATE       - Random Dates
EMAIL           - Substitute (hr.regions / region_name)
JOB_ID          - Substring (1,2)

This will be the outcome
*/

HR > EXEC P('SELECT * FROM test_employees WHERE rownum <= 3')

EMPLOYEE_ID                    :
FIRST_NAME                     : Kevin
LAST_NAME                      : aaaaaaaaaladt
EMAIL                          : Americas
PHONE_NUMBER                   : 7144530039
HIRE_DATE                      : 15-MAY-07
JOB_ID                         : SH
SALARY                         : 999
COMMISSION_PCT                 :
MANAGER_ID                     : 124
DEPARTMENT_ID                  : 2165
-   -   -   -   -   -   -   -   -   -   -   -   -   -   -
EMPLOYEE_ID                    :
FIRST_NAME                     : Randall
LAST_NAME                      : aarulnkogkadg
EMAIL                          : Asia
PHONE_NUMBER                   : 9033323074
HIRE_DATE                      : 13-APR-03
JOB_ID                         : SH
SALARY                         : 999
COMMISSION_PCT                 :
MANAGER_ID                     : 122
DEPARTMENT_ID                  : 2165
-   -   -   -   -   -   -   -   -   -   -   -   -   -   -
EMPLOYEE_ID                    :
FIRST_NAME                     : Timothy
LAST_NAME                      : aaaaaoxrqvaey
EMAIL                          : Middle East and Africa
PHONE_NUMBER                   : 4024740000
HIRE_DATE                      : 12-NOV-00
JOB_ID                         : SH
SALARY                         : 999
COMMISSION_PCT                 :
MANAGER_ID                     : 122
DEPARTMENT_ID                  : 2165