Computer >> 컴퓨터 >  >> 프로그램 작성 >> 데이터 베이스

Oracle의 민감한 데이터 보호

조직은 주민등록번호, 은행 계좌 및 라우팅 번호, 기타 유사한 데이터와 같은 민감한 데이터를 보호하는 데 큰 어려움을 겪고 있습니다.

소개

규정 및 법률에 따라 조직은 자신의 데이터와 고객 정보가 잘못된 사람의 손에 들어가지 않도록 보호해야 합니다. 데이터 수정 또는동적 데이터 마스킹(DDM) , 민감한 데이터 요소를 난독화하거나 숨기는 프로세스입니다.

Oracle® Data Redaction은 민감한 정보의 노출을 줄이고 애플리케이션 페이지의 민감한 데이터를 공개할 수 있는 애플리케이션 결함의 악용을 방지하는 데 도움이 됩니다.

데이터베이스 및 애플리케이션 관리자, 보안 관리자 및 애플리케이션 소유자는 보안을 쉽게 개선하고 애플리케이션에 표시되는 민감한 데이터를 수정해야 하는 규정을 준수해야 하는 경우 데이터 수정을 사용할 수 있습니다.

DDM

DDM은 비프로덕션 데이터베이스를 테스트하기 위해 프로덕션 데이터베이스에서 복사한 민감한 정보를 마스킹 규칙에 따라 현실적이지만 스크러빙된 데이터베이스로 교체하는 프로세스입니다.

Oracle 12c(현재 11.2.0.8에서도 사용 가능)에는 Data Redaction이라는 내장 DDM 기능이 도입되었습니다.

데이터 수정

데이터 수정에는 다음과 같은 특징이 있습니다.

  • 별도로 라이선스가 부여된 EnterpriseEdition 옵션인 Oracle Advanced Security의 일부입니다.

  • 데이터베이스 애플리케이션에 표시된 민감한 데이터를 보호합니다.

  • 원래 데이터 유형과 선택적으로 형식을 유지하기 때문에 애플리케이션 사용자에게 투명합니다.

  • SQL 쿼리 결과를 호출자에게 반환하기 직전에 변경될 때까지 데이터가 동일한 인버퍼, 캐시 및 스토리지 전용 환경으로 유지되기 때문에 데이터베이스에 대해 매우 투명합니다.

교정 유형

다음은 다양한 수정 유형의 몇 가지 예입니다.

Oracle의 민감한 데이터 보호

수정 예외

EXEMPT REDACTION POLICY이 있는 경우 시스템 권한, 데이터는 절대 수정되지 않습니다. 다음과 같은 경우에도 수정이 사용되지 않습니다.

  • SYS로 연결
  • 데이터베이스 복제
  • 백업 및 복원
  • 내보내기 및 가져오기

설정

정책을 정의하려면 DBMS_REDACT에 대한 실행 권한이 있어야 합니다. 정책을 추가, 변경 또는 삭제하는 데 사용되는 패키지입니다.

테스트를 위해 다음 예와 같이 테이블을 만들고 일부 데이터를 삽입했습니다.

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 설정

정책 정의 내에서 FUNCTION_TYPE 다음 값을 사용하여 어떤 종류의 수정이 사용되는지 정의합니다.

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

디스플레이 데이터

다음 섹션에서는 각 수정 유형에 대한 데이터를 표시하는 방법을 보여줍니다.

수정 없음

수정이 사용되지 않은 경우 다음 명령문을 사용하여 데이터를 표시합니다.

ALTER SESSION SET NLS_DATE_FORMAT='DD-MON-YYYY';
COLUMN credit_card format 0000000000000000
COLUMN EMAILADR    format a20
SELECT * FROM CUSTOMERS
Oracle의 민감한 데이터 보호

전체 수정

DBMS_REDACT에 대한 실행 권한이 있는 사용자 패키지는 정책을 정의합니다.

이 예에서 1=1 표현식 때문에 신용 카드 데이터는 항상 수정됩니다. 항상 사실입니다.

정책:

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;
/
Oracle의 민감한 데이터 보호

부분 수정

다음 예를 사용하여 신용 카드 번호의 1~12 위치를 0으로 마스킹할 수 있습니다.

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;
/

이전 정책을 삭제하려면 다음 명령을 실행하십시오.

execute DBMS_REDACT.drop_policy ('SAGARG','CUSTOMERS','REDACT_POLICY_CARD');
Oracle의 민감한 데이터 보호

필요한 경우 다른 열에서 부분 수정을 수행할 수도 있습니다.

무작위 수정

임의 수정을 사용하면 다음 예와 같이 정보가 다른 임의 데이터로 대체됩니다.

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;
/
Oracle의 민감한 데이터 보호

정규 표현식 사용

정규식을 사용하면 패턴 일치를 기반으로 데이터를 수정할 수 있습니다. 사전 정의된 패턴은 이메일 주소 및 IP 주소와 같은 여러 상황을 다룹니다. 다음 예는 이메일 주소의 시작 부분을 숨깁니다.

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;
/
Oracle의 민감한 데이터 보호

식에 대한 매개변수 값은 항상 '1=1'이므로 데이터는 항상 수정됩니다.

특정 사용자의 경우

특정 사용자에 대한 데이터를 수정하려면 프로필에 다음 표현식을 추가하면 됩니다.

'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;
/
Oracle의 민감한 데이터 보호

결론

Oracle Data Redaction을 사용하여 표시된 애플리케이션 데이터를 수정하면 의도한 대상이 아닌 애플리케이션 사용자에게 민감한 데이터가 노출될 위험이 제한됩니다.

또한 Oracle Data Redaction은 민감한 정보를 보고 싶지 않지만 데이터베이스 작업 중에 발견할 수 있는 데이터베이스 사용자에게 데이터가 우발적으로 공개되는 것을 방지하는 데 도움이 됩니다.

피드백 탭을 사용하여 의견을 남기거나 질문하십시오.

전문가 관리, 관리 및 구성으로 환경 최적화

Rackspace의 애플리케이션 서비스(RAS) 전문가는 광범위한 애플리케이션 포트폴리오에서 다음과 같은 전문적이고 관리되는 서비스를 제공합니다.

  • 전자상거래 및 디지털 경험 플랫폼
  • 전사적 자원 관리(ERP)
  • 비즈니스 인텔리전스
  • Salesforce CRM(고객 관계 관리)
  • 데이터베이스
  • 이메일 호스팅 및 생산성

우리는 다음을 제공합니다:

  • 편향 없는 전문성 :즉각적인 가치를 제공하는 기능에 중점을 두고 현대화 여정을 간소화하고 안내합니다.
  • 광신적인 경험 ™:프로세스를 먼저 결합합니다. 기술 두 번째.®전담 기술 지원을 통해 포괄적인 솔루션을 제공하는 접근 방식.
  • 타의 추종을 불허하는 포트폴리오 :광범위한 클라우드 경험을 적용하여 올바른 클라우드에서 올바른 기술을 선택하고 배포할 수 있도록 지원합니다.
  • 민첩한 전달 :귀하의 여정에서 귀하를 만나고 귀하의 성공에 맞춰 귀하의 성공을 맞춥니다.

시작하려면 지금 채팅하세요.