Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> ฐานข้อมูล

รักษาความปลอดภัยข้อมูล Sensitivity ใน Oracle: Advanced Redaction & Dynamic Masking

บทนำ

องค์กรเผชิญ Challenge ใหญ่ในการ Secure Sensitive Data เช่น Social Security Numbers, Bank Account และ Routing Numbers และข้อมูลคล้ายๆ กัน

Introduction

Regulations และ Laws กำหนดให้องค์กรปกป้อง Data ของตัวเองและ Customer Information ไม่ให้หลุดมือคนอื่น Data Redaction หรือ Dynamic Data Masking (DDM) คือ Process ของการ Obfuscate หรือ Hide Sensitive Data Elements

Oracle® Data Redaction ลด Exposure ของ Sensitive Information และช่วย Prevent Exploitation ของ Application Flaws ที่อาจ Disclose Sensitive Data ใน Application Pages

Database/Application Administrators, Security Administrators, และ Application Owners ที่ต้องการ Easy Way เพื่อ Improve Security และ Comply กับ Regulations ที่กำหนด Redact Sensitive Data ที่ Applications Display สามารถใช้ Data Redaction ได้

DDM

DDM คือ Process ของการ Replace Sensitive Information ที่ Copy จาก Production Databases ไป Test Non-production Databases ด้วย Realistic แต่ Scrubbed Data ตาม Masking Rules

Oracle 12c (Available ใน 11.2.0.8 ด้วย) Introduce Built-in DDM Capability เรียกว่า Data Redaction

Data Redaction

Data Redaction มี Characteristics:

  • ส่วนหนึ่งของ Oracle Advanced Security ซึ่งเป็น Separately Licensed Enterprise Edition Option
  • ปกป้อง Sensitive Data ที่ Display ใน Database Applications
  • Transparent ต่อ Application Users เพราะ Preserve Original Data Type และ Formatting (Optional)
  • Highly Transparent ต่อ Database เพราะ Data คงเดิมใน Buffers, Caches, และ Storage-only Environments จนกว่าจะเปลี่ยนก่อน Return SQL Query Results ให้ Caller

Types of Redaction

ตัวอย่าง Types ของ Redaction ต่างๆ:

รักษาความปลอดภัยข้อมูล Sensitivity ใน Oracle: Advanced Redaction & Dynamic Masking

Exceptions สำหรับ Redaction

ถ้ามี System Privilege EXEMPT REDACTION POLICY Data จะไม่ถูก Redact ไม่เคย Redaction ยังไม่ใช้ใน Situations ต่อไป:

  • Connections as SYS
  • Database Replication
  • Backup และ Restore
  • Export และ Import

Setup

เพื่อ Define Policy ต้องมี Execute Privileges บน Package DBMS_REDACT ซึ่งใช้ Add, Alter, หรือ Drop Policies

สำหรับ Testing สร้าง Table และ Insert Data:

CREATE TABLE CUSTOMERS (
cust_id NUMBER NOT NULL,
name varchar2(20),
credit_card NUMBER(16),
exp_date DATE,
creditlimit NUMBER(6,2),
emailadr varchar2(20)
) /
INSERT INTO CUSTOMERS VALUES (1982,'Vijay Garg',4263982640269299,'11-FEB-2022',22.50,'Vijay.Garg@gmail.com');
INSERT INTO CUSTOMERS VALUES (5428,'Ganesh Murthy',4917484589897107,'03-APR-2022',54.00,'Ganesh@oracle.com');
INSERT INTO CUSTOMERS VALUES (6734,'Himanshu Menon',4001919257537193,'23-FEB-2022',66.99,'Himanshu@yahoo.com');
INSERT INTO CUSTOMERS VALUES (3285,'Dishant Mathur',4007702835532454,'21-JUN-2022',233.00,'Dishant@aol.com');
INSERT INTO CUSTOMERS VALUES (4522,'Saurabh Agarwal',6362970000457013,'11-JUL-2022',777.00,'Saurabh@gmail.com');
INSERT INTO CUSTOMERS VALUES (1836,'Ankita Anthony',6062826786276634,'06-AUG-2022',235.00,'Ankita@net4india.com');
INSERT INTO CUSTOMERS VALUES (7494,'Varun Mehra',5425233430109903,'18-SEP-2022',33.00,'Varun@outlook.com');
INSERT INTO CUSTOMERS VALUES (6548,'Aaaksh Chopra',2222420000001113,'13-OCT-2022',97.00,'Aaaksh@aol.com');
Commit;

FUNCTION_TYPE Setting สำหรับ Redaction Types ต่างๆ

ใน Policy Definition Set FUNCTION_TYPE กำหนด Redaction Type ด้วย Values:

  • DBMS_REDACT.NONE
  • DBMS_REDACT.FULL
  • DBMS_REDACT.PARTIAL
  • DBMS_REDACT.RANDOM
  • DBMS_REDACT.REGEXP

Display Data

Sections ต่อไปแสดงวิธี Display Data สำหรับแต่ละ Redaction Type

No Redaction

ถ้าไม่ใช้ Redaction Display Data ด้วย:

ALTER SESSION SET NLS_DATE_FORMAT='DD-MON-YYYY';
COLUMN credit_card format 0000000000000000
COLUMN EMAILADR format a20
SELECT * FROM CUSTOMERS
รักษาความปลอดภัยข้อมูล Sensitivity ใน Oracle: Advanced Redaction & Dynamic Masking

Full Redaction

User ที่มี Execute Privileges บน DBMS_REDACT Define Policy ในตัวอย่าง Credit Card Data จะถูก Redact เสมอ เพราะ Expression 1=1 เป็น True เสมอ

Policy:

BEGIN
DBMS_REDACT.ADD_POLICY (
    object_schema => 'SAGARG',
    object_name => 'CUSTOMERS',
    column_name => 'CREDIT_CARD',
    policy_name => 'REDACT_POLICY_CARD',
    function_type => DBMS_REDACT.FULL,
    expression => '1=1'
);
END; /
รักษาความปลอดภัยข้อมูล Sensitivity ใน Oracle: Advanced Redaction & Dynamic Masking

Partial Redaction

Mask Positions 1-12 ของ Credit Card Number ด้วย Zero:

BEGIN
DBMS_REDACT.ADD_POLICY (
    object_schema => 'SAGARG',
    object_name => 'CUSTOMERS',
    column_name => 'CREDIT_CARD',
    policy_name => 'REDACT_POLICY_CARD',
    function_type => DBMS_REDACT.PARTIAL,
    function_parameters => '0,1,12',
    expression => '1=1'
);
END; /

Drop Previous Policy:

execute DBMS_REDACT.drop_policy ('SAGARG','CUSTOMERS','REDACT_POLICY_CARD');
รักษาความปลอดภัยข้อมูล Sensitivity ใน Oracle: Advanced Redaction & Dynamic Masking

Partial Redaction บน Columns อื่นก็ได้ถ้าต้องการ

Random Redaction

Random Redaction แทนที่ Information ด้วย Random Data:

BEGIN
DBMS_REDACT.ADD_POLICY (
    object_schema => 'SAGARG',
    object_name => 'CUSTOMERS',
    column_name => 'CREDIT_CARD',
    policy_name => 'REDACT_POLICY_CARD',
    function_type => DBMS_REDACT.RANDOM,
    expression => '1=1'
);
END; /
รักษาความปลอดภัยข้อมูล Sensitivity ใน Oracle: Advanced Redaction & Dynamic Masking

Using Regular Expressions

Regular Expressions Redact Data ตาม Pattern Matching Predefined Patterns ครอบคลุมหลาย Situations เช่น Email Addresses และ IP Addresses ตัวอย่าง Hide ต้น Email Address:

BEGIN
DBMS_REDACT.ADD_POLICY (
    object_schema => 'SAGARG',
    object_name => 'CUSTOMERS',
    column_name => 'EMAILADR',
    policy_name => 'REDACT_POLICY_CARD',
    function_type => DBMS_REDACT.REGEXP,
    regexp_pattern => DBMS_REDACT.RE_PATTERN_EMAIL_ADDRESS,
    regexp_replace_string => DBMS_REDACT.RE_REDACT_EMAIL_NAME,
    regexp_position => DBMS_REDACT.RE_BEGINNING,
    regexp_occurrence => DBMS_REDACT.RE_ALL,
    expression => '1=1'
);
END; /
รักษาความปลอดภัยข้อมูล Sensitivity ใน Oracle: Advanced Redaction & Dynamic Masking

Parameter Value สำหรับ Expression เสมอ '1=1' ดังนั้น Data จะถูก Redact เสมอ

For a Specific User

Redact Data สำหรับ Specific User เพิ่ม Expression ใน Profile:

'SYS_CONTEXT(''USERENV'',''SESSION_USER'') = ''SAGARG'''

ตัวอย่าง:

BEGIN
DBMS_REDACT.ADD_POLICY(
    object_schema => 'SAGARG',
    object_name => 'CUSTOMERS',
    column_name => 'CREDIT_CARD',
    policy_name => 'REDACT_POLICY_CARD',
    function_type => DBMS_REDACT.RANDOM,
    expression => 'SYS_CONTEXT(''USERENV'',''SESSION_USER'') = ''SAGARG''');
END; /
รักษาความปลอดภัยข้อมูล Sensitivity ใน Oracle: Advanced Redaction & Dynamic Masking

สรุป

เมื่อคุณ Redact Displayed Application Data ด้วย Oracle Data Redaction คุณลด Risk ของการ Expose Sensitive Data ให้ Application Users ที่ไม่ใช่ Intended Audience

เพิ่มเติม Oracle Data Redaction ช่วย Prevent Accidental Disclosure ของ Data ให้ Database Users ที่ไม่ได้ต้องการเห็น Sensitive Information แต่อาจพบเจอขณะทำงานกับ Database

ใช้แท็บ Feedback เพื่อแสดงความคิดเห็นหรือถามคำถาม

เพิ่มประสิทธิภาพสภาพแวดล้อมด้วยบริการผู้เชี่ยวชาญ

ผู้เชี่ยวชาญ Rackspace Application Services (RAS) ให้บริการ Professional และ Managed Services ครอบคลุม Portfolio หลากหลาย:

  • Platform สำหรับ eCommerce และ Digital Experience
  • Enterprise Resource Planning (ERP)
  • Business Intelligence
  • Salesforce Customer Relationship Management (CRM)
  • Databases
  • Email Hosting และ Productivity

เรามอบ:

  • Unbiased Expertise: ลดความซับซ้อนและนำทางการ Modernization เน้นความสามารถที่สร้างคุณค่าทันที
  • Fanatical Experience™: รวมแนวทาง Process First. Technology Second.® พร้อม Technical Support ให้ Soluation ครบวงจร
  • Unrivaled Portfolio: ประยุกต์ประสบการณ์ Cloud มากมายช่วยเลือกและ Deploy เทคโนโลยีที่เหมาะสมบน Cloud ที่เหมาะสม
  • Agile Delivery: ตรงจุดที่คุณอยู่ในการเดินทางและทำให้ความสำเร็จของเราสอดคล้องกับคุณ

แชทตอนนี้เพื่อเริ่มต้น