데이터 마스킹
Data masking시리즈의 일부 |
정보 보안 |
---|
관련 보안 카테고리 |
위협 |
|
방어. |
데이터[1][2] 마스킹 또는 데이터 난독화는[3] 소프트웨어나 허가된 담당자가 계속 사용하면서 무단 침입자에게 전혀 또는 거의 가치가 없는 방식으로 기밀 데이터를 수정하는 프로세스입니다.
데이터 필드에 마스킹을 적용하는 주된 이유는 개인 식별 가능 정보, 민감한 개인 데이터 또는 상업적으로 민감한 데이터로 분류되는 데이터를 보호하기 위함입니다.그러나 데이터는 유효한 테스트 사이클을 수행하기 위해 사용 가능한 상태로 유지되어야 합니다.그것은 또한 진짜처럼 보이고 일관되게 보여야 한다.기업 생산 시스템 외부에서 표현되는 데이터에 마스킹을 적용하는 것이 일반적입니다.즉, 애플리케이션 개발을 위해 데이터가 필요한 경우 프로그램 확장을 구축하고 다양한 테스트 사이클을 수행합니다.엔터프라이즈 컴퓨팅에서는 이러한 비실동 환경에 필요한 데이터 컴포넌트를 채우기 위해 프로덕션 시스템에서 데이터를 가져오는 것이 일반적입니다.그러나 이 방식이 항상 운영 환경 이외의 환경에만 국한되는 것은 아닙니다.일부 조직에서는 콜센터 운영자에게 단말 화면에 표시되는 데이터가 사용자 보안 권한에 따라 동적으로 적용되는 경우가 있습니다(예: 콜센터 운영자가 과금 시스템에서 신용카드 번호를 볼 수 없도록 함).
기업지배구조의 관점에서[4] 가장 우려되는 것은 이러한 비실가동 환경에서 작업을 수행하는 직원이 항상 프로덕션 데이터에 포함된 정보를 사용하여 작업을 수행할 수 있는 보안이 확보되는 것은 아니라는 것입니다.이 방법은 권한이 없는 직원이 데이터를 복사할 수 있는 보안 취약점을 나타내며 표준 생산 수준 제어와 관련된 보안 조치를 쉽게 우회할 수 있습니다.이는 데이터 보안 침해 액세스포인트를 나타냅니다.
조직 수준에서 데이터 마스킹의 전반적인 관행은 테스트 관리[5][6] 관행 및 기본 방법론과 밀접하게 연계되어야 하며 마스킹된 테스트 데이터 하위 [7][8][9]세트의 배포를 위한 프로세스를 통합해야 한다.
배경
데이터 마스킹 또는 난독화에 관련된 데이터는 다음과 같은 몇 가지 수준에서 유의미한 상태를 유지해야 합니다.
- 데이터는 응용 프로그램 로직에서 의미 있는 상태를 유지해야 합니다.예를 들어 주소의 요소를 난독화하고 도시 및 교외를 대체 도시 또는 교외로 치환하는 경우, 애플리케이션 내에 우편번호 또는 우편번호 조회를 검증하는 기능이 있는 경우, 그 기능은 오류 없이 정상적으로 동작할 수 있어야 합니다.신용 카드 알고리즘 검증 체크 및 사회 보장 번호 검증도 마찬가지입니다.
- 마스킹된 데이터가 프로덕션 데이터 원본에서 가져온 것임을 알 수 없도록 데이터를 충분히 변경해야 합니다.예를 들어, 10명의 상급 관리자가 모두 30만 달러를 넘는 수입을 올린다는 것은 조직 내에서 일반적인 상식일 수 있습니다.조직의 HR 시스템의 테스트 환경에도 동일한 수익-브래킷에 10개의 ID가 포함되어 있는 경우, 다른 정보를 조합하여 실제 ID를 리버스 엔지니어링할 수 있습니다.이론적으로 데이터가 명백히 마스킹되거나 난독화된 경우, 데이터 침해를 의도하는 누군가가 생산 데이터 세트의 ID에 대한 어느 정도의 지식이 있다면 ID 데이터를 리버스 엔지니어링할 수 있다고 가정하는 것이 타당할 것이다.따라서 데이터 세트의 데이터 난독화 또는 마스킹은 개별 필드 및 테이블 내의 개별 데이터 요소뿐만 아니라 ID 및 기밀 데이터 레코드를 보호하는 방식으로 적용됩니다.
- 마스크된 값은 마스크되는 특정 데이터 요소가 포함된 경우 조직 내의 여러 데이터베이스 간에 일관성이 필요할 수 있습니다.응용 프로그램은 처음에 하나의 데이터베이스에 액세스한 후 나중에 다른 데이터베이스에 액세스하여 외부 키가 마스킹된 관련 정보를 취득할 수 있습니다(예를 들어 콜센터 응용 프로그램이 먼저 고객 마스터 데이터베이스에서 데이터를 불러오고 이후 상황에 따라 매우 다른 재무 p를 사용하여 다른 여러 데이터베이스 중 하나에 액세스합니다).동작합니다.)이를 위해서는 적용된 마스킹이 반복 가능해야 합니다(마스크 알고리즘에 대한 동일한 입력 값이 항상 동일한 출력 값을 생성함). 그러나 원래 값으로 되돌리도록 리버스 엔지니어링할 수 없습니다.관련된 데이터 요소에 따라 상기 (1)에서 언급한 추가 제약사항이 적용될 수도 있습니다.이 시나리오에서 접속할 필요가 있는 데이터베이스 간에 다른 문자 세트가 사용되는 경우 원래 값을 공통 표현으로 변환하는 방식을 마스킹 알고리즘 자체에 의해 또는 해당 알고리즘을 호출하기 전에 적용해야 합니다.
기술
대체
대체는 데이터 마스킹을 적용하여 데이터 레코드의 실제 모양과 느낌을 보존하는 가장 효과적인 방법 중 하나입니다.
이를 통해 기존 값을 다른 인증 값으로 대체할 수 있는 방식으로 마스킹을 수행할 수 있습니다.이 접근방식이 마스크된 데이터 세트인지 여부에 대해 전체 데이터 서브셋을 위장하는 데 최적의 이점을 제공하는 여러 데이터 필드 유형이 있다.예를 들어, 고객 기록을 포함하는 소스 데이터를 다루는 경우, 실제 성 또는 이름은 제공되거나 사용자 정의된 조회 파일에서 임의로 대체할 수 있습니다.대체의 첫 번째 패스가 모든 이름에 남성 이름을 적용할 수 있는 경우, 두 번째 패스는 성별이 "F"인 모든 이름에 여성 이름을 적용할 수 있어야 한다. 이 접근 방식을 사용하면 데이터 구조 내에서 쉽게 성별 혼합을 유지하고, 데이터 기록에 익명성을 적용할 수 있을 뿐만 아니라 mai도 가능하다.마스크된 데이터로 구성된 데이터베이스로 쉽게 식별할 수 없는 현실감 있는 데이터베이스가 필요합니다.
이 대체 방법은 전화 번호, 우편 번호 및 우편 번호, 신용 카드 번호 및 사회 보장 번호 및 의료 보험 번호와 같은 기타 카드 유형 번호 등 전 세계의 DB 구조에 있는 많은 필드에 적용해야 합니다. 이러한 번호는 실제로 Luhn의 체크섬 테스트에 적합해야 합니다.알고리즘
대부분의 경우 대체 파일은 상당히 광범위해야 하므로 대용량의 대체 데이터셋과 맞춤형 데이터 대체 세트를 적용하는 기능이 모든 데이터 마스킹 솔루션의 평가 기준의 핵심 요소가 되어야 합니다.
셔플링
shuffling 방식은 매우 일반적인 형태의 데이터 난독화입니다.이 방법은 대체 방법과 유사하지만 마스킹된 동일한 데이터 열에서 대체 세트를 파생합니다.간단히 말하면 데이터는 [10]열 내에서 랜덤하게 섞입니다.단, 원래 데이터에 대한 지식이 있는 사람은 누구나 데이터 세트에 "What If" 시나리오를 적용하여 실제 ID를 조합할 수 있습니다.셔플링 알고리즘을 [citation needed]해독할 수 있으면 셔플링 방식도 반전될 가능성이 있습니다.
그러나 셔플링은 특정 분야에서 몇 가지 실질적인 강점이 있다.예를 들어 테스트 데이터베이스 내의 재무정보에 대한 연말 수치일 경우 공급업체의 이름을 마스킹한 다음 마스킹된 데이터베이스 전체에 걸쳐 계정의 가치를 셔플할 수 있습니다.원본 데이터에 대해 잘 알고 있는 사람이라도 원래 값으로 진정한 데이터 기록을 도출할 가능성은 매우 낮습니다.
수와 날짜의 차이
수치 분산 방법은 재무 및 날짜 기반 정보 필드에 적용할 때 매우 유용합니다.실제로 이러한 마스킹 방식을 이용하는 방법은 급여와 같은 재무 데이터 세트에 의미 있는 범위를 남길 수 있습니다.적용되는 변동이 약 +/- 10%인 경우, 수급자에게 지급되는 급여 범위 측면에서 여전히 매우 의미 있는 데이터 집합입니다.
날짜 정보에도 동일하게 적용됩니다.전체 데이터 집합이 인구통계 및 보험수리적 데이터 무결성을 유지할 필요가 있는 경우, +/- 120일의 랜덤 숫자 분산을 현재까지 적용하면 날짜 분포는 보존되지만, 알려진 실제 날짜 또는 출생일 또는 기록의 알려진 날짜 값에 기초하여 알려진 개체로 추적하는 것은 여전히 방지된다.스케이트를 탔다.
암호화
암호화는 대부분의 경우 데이터 마스킹 문제를 해결하기 위한 가장 복잡한 접근 방식입니다.암호화 알고리즘에서는 종종 사용자 권한에 따라 데이터를 보려면 "키"를 적용해야 합니다.이것이 가장 좋은 해결책이라고 생각되는 경우가 많지만, 실제로는 데이터를 볼 수 있는 적절한 권한이 없는 직원에게 키를 제공할 수 있습니다.그러면 마스킹 연습의 목적이 어긋납니다.이전 데이터베이스는 제공된 키의 원래 자격 증명을 사용하여 복사될 수 있으며 동일한 제어되지 않은 문제가 계속 발생할 수 있습니다.
최근 엔티티의 속성을 보존하면서 데이터를 암호화하는 문제가 벤더와 학계에서 새롭게 인식되고 관심을 갖게 되었다.새로운 과제는 포맷 보존 암호화를 수행하는 알고리즘을 탄생시켰습니다.NIST에 [11]의해 인식되도록 허용된 AES 알고리즘 모드를 기반으로 합니다.
무효화 또는 삭제
경우에 따라서는 특정 필드에 null 값을 적용함으로써 마스킹에 대한 매우 단순한 접근방식을 채택할 수 있습니다.null 값 접근법은 데이터 요소의 가시성을 방지하기 위해서만 유용합니다.
대부분의 경우 마스크된 데이터 세트에서 유지되는 데이터 무결성 수준이 줄어듭니다.이 값은 현실적이지 않으므로 테스트 대상 시스템의 프런트 엔드 소프트웨어에 적용되었을 가능성이 있는 애플리케이션 로직 검증에 실패합니다.또한 데이터 세트에 데이터 마스킹이 어느 정도 적용된 ID 데이터를 리버스 엔지니어링하려는 모든 사용자에게 강조 표시됩니다.
마스킹 아웃
특정 필드의 문자를 스크램블 또는 마스킹하는 것도 중요한 정보가 표시되지 않도록 하는 또 다른 단순하지만 매우 효과적인 방법입니다.이는 실제로 이전 무효화 방법의 확장이지만 데이터를 완전히 마스킹하지 않고 실제 상태로 유지하는 데 더 많은 중점을 두고 있습니다.
이것은 일반적으로 생산 시스템의 신용카드 데이터에 적용됩니다.예를 들어 콜센터의 사업자는 고객의 신용카드로 청구할 수 있다.그런 다음 마지막 4자리 XXXXXXXXXXX6789의 카드에 대한 청구 참조를 견적합니다.운영자는 카드 번호의 마지막 4자리 숫자만 볼 수 있지만, 청구 시스템이 고객의 충전 세부 정보를 전달하면 전체 번호가 결제 게이트웨이 시스템에 표시됩니다.
이 시스템은 테스트 시스템에서는 그다지 효과적이지 않지만, 위에서 설명한 과금 시나리오에서는 매우 유용합니다.일반적으로 동적 데이터 마스킹 [12][13]방식이라고도 합니다.
기타 복잡한 규칙
마스킹 방법 구성 방법에 관계없이 마스킹 솔루션에 추가 규칙을 포함할 수도 있습니다.제품에 구애받지 않는 백서는[14] 행 내부 동기화 규칙, 테이블 내부 동기화 규칙, 테이블[15] 간 동기화 규칙 등 엔터프라이즈 마스킹 솔루션에 대한 보다 일반적인 복잡한 요건 중 몇 가지를 조사하기 위한 유용한 정보 소스입니다.
다른 종류
데이터 마스킹은 빌딩 테스트 데이터와 밀접하게 관련되어 있습니다.데이터 마스킹의 두 가지 주요 유형은 정적 및 온 더 플라이 데이터 마스킹입니다.
정적 데이터 마스킹
정적 데이터 마스킹은 일반적으로 데이터베이스의 골든 복사본에서 수행되지만 파일을 포함한 다른 소스 값에도 적용할 수 있습니다.DB 환경에서 운영 DBA는 일반적으로 테이블 백업을 다른 환경에 로드하고 특정 테스트 라운드에 필요한 데이터를 보유하는 서브셋("서브셋"이라고 하는 기술)으로 데이터셋을 줄이고 데이터가 정지된 상태에서 데이터 마스킹 규칙을 적용하며 소스 제어에서 필요한 코드 변경을 적용하거나 데이터를 푸시합니다.o 원하는 [16]환경
결정론적 데이터 마스킹
결정론적 마스킹은 동일한 행, 동일한 테이블, 동일한 데이터베이스/스케마 및 인스턴스/서버/데이터베이스 유형 간에 동일한 값으로 열의 값을 대체하는 프로세스입니다.예: 데이터베이스에는 여러 개의 테이블이 있으며, 각 테이블에는 이름이 붙은 열이 있습니다.결정론적 마스킹에 의해 이름은 항상 같은 값으로 대체됩니다. 즉,[17] "Lynne"은 데이터베이스 내의 "Lynne"이 존재하는 모든 위치에서 "Lynne"은 항상 "Denise"가 됩니다.
통계 데이터 난독화
원본 데이터의 통계적 특성 일부를 보존하는 데이터의 확률적 섭동에 의존하는 정적 데이터 마스킹의 대안도 있다.통계 데이터 난독화 방법의 예로는 차등[18] 프라이버시 및 DataSifter [19]방법이 있습니다.
온 더 플라이 데이터 마스킹
On-the-Fly 데이터[20] 마스킹은 데이터가 이동하는 동안 디스크에 닿지 않고 환경에서 환경으로 데이터를 전송하는 과정에서 발생합니다."Dynamic Data Masking(동적 데이터 마스킹)"에도 동일한 기법이 적용되지만 한 번에 하나의 레코드만 적용됩니다.이러한 유형의 데이터 마스킹은 지속적으로 배포하는 환경 및 고도로 통합된 애플리케이션에 가장 유용합니다.지속적인 배포 또는 지속적인 전송 방식을 사용하는 조직에서는 백업을 생성하여 데이터베이스의 골든 복사본에 로드하는 데 필요한 시간이 없습니다.따라서 마스크된 테스트 데이터의 작은 서브셋(델타)을 프로덕션에서 지속적으로 전송하는 것이 중요합니다.고도로 통합된 애플리케이션에서는 개발자가 개발 초기에 다른 프로덕션 시스템으로부터 피드를 공급받습니다. 이러한 피드의 마스킹은 간과되거나 나중에나 예산에 할당되지 않아 조직이 규정을 준수하지 못하게 됩니다.즉석에서 데이터를 마스킹하는 것이 중요합니다.
동적 데이터 마스킹
Dynamic Data Masking은 On-the-Fly Data Masking과 유사하지만 On-the-Fly Data Masking은 데이터를 한 소스에서 다른 소스로 복사하여 공유할 수 있도록 한다는 점에서 다릅니다.동적 데이터 마스킹은 런타임, 동적 및 온디맨드 시에 수행되므로 마스킹된 데이터를 동적으로 저장할 보조 데이터 소스가 필요하지 않습니다.
동적 데이터 마스킹은 몇 가지 시나리오를 가능하게 하며, 그 중 대부분은 싱가포르 통화 당국이나 유럽의 프라이버시 규제와 같은 엄격한 프라이버시 규제를 중심으로 합니다.
동적 데이터 마스킹은 속성 기반 및 정책 기반입니다.정책은 다음과 같습니다.
- 의사는 할당된 환자의 의료 기록을 볼 수 있습니다(데이터 필터링).
- 의사는 의료 기록 내에서 SSN 필드를 볼 수 없습니다(데이터 마스킹).
동적 데이터 마스킹은 특히 포맷 보존 암호화를 사용할 때 값을 즉시 암호화 또는 해독하는 데도 사용할 수 있습니다.
동적 데이터 필터링 및 마스킹을 구현하기 위한 몇 가지 표준이 최근 몇 년 동안 등장했습니다.예를 들어 XACML 정책을 사용하여 데이터베이스 내의 데이터를 마스킹할 수 있습니다.
다이내믹 데이터 마스킹을 적용할 수 있는 기술은 6가지입니다.
- 데이터베이스:데이터베이스는 SQL을 수신하고 반환된 마스크된 결과 세트에 다시 쓰기를 적용합니다.개발자 및 DBA에게는 적용되지만 애플리케이션에는 적용되지 않습니다(접속 풀, 애플리케이션 캐시 및 데이터 버스에서는 애플리케이션 사용자 ID가 데이터베이스로부터 숨겨져 애플리케이션 데이터가 파손될 수 있습니다).
- 응용 프로그램과 데이터베이스 간의 네트워크 프록시:SQL을 캡처하고 선택 요청에 개서를 적용합니다.단순한 '선택' 요구가 있지만 저장 프로시저(프록시는 Exec만 식별) 및 응용 프로그램에는 적용되지 않습니다(접속 풀, 응용 프로그램 캐시 및 데이터 버스는 응용 프로그램 사용자 ID를 데이터베이스에서 숨기고 응용 프로그램 데이터 손상을 일으킬 수 있기 때문에).
- 데이터베이스 프록시: 네트워크 프록시의 변형입니다.데이터베이스 프록시는 일반적으로 애플리케이션/사용자와 데이터베이스 간에 배포됩니다.응용 프로그램 및 사용자가 데이터베이스 보안 프록시를 통해 데이터베이스에 연결하고 있습니다.애플리케이션과 사용자가 데이터베이스에 연결하는 방법은 변경되지 않습니다.데이터베이스 서버에 에이전트를 설치할 필요도 없습니다.SQL 쿼리는 다시 작성되지만 이러한 유형의 동적 데이터 마스킹이 구현되면 스토어 프로시저 및 데이터베이스 기능 내에서 지원됩니다.
- 최종 사용자와 응용 프로그램 간의 네트워크 프록시: 텍스트 문자열을 식별하고 대체합니다.이 방법은 실시간 문자열 치환을 의도하지 않게 적용하면 쉽게 파손되기 때문에 복잡한 응용 프로그램에는 적용되지 않습니다.
- 애플리케이션 및 XACML 코드 변경: 코드 변경은 보통 실행이 어렵고 유지보수가 불가능하며 패키지화된 애플리케이션에는 적용되지 않습니다.
- 응용 프로그램 실행 시간 내:애플리케이션 실행 시간을 계측함으로써 애플리케이션 사용자에게 완전한 가시성을 제공하면서 데이터 소스로부터 반환된 결과 세트를 다시 작성하도록 정책이 정의됩니다.이 방법은 데이터 요구, 데이터 결과 및 사용자 결과를 제어할 수 있으므로 복잡한 애플리케이션을 동적으로 마스킹할 수 있는 유일한 방법입니다.
- 브라우저 플러그인에서 지원:SaaS 또는 로컬 웹 애플리케이션의 경우 브라우저 애드온을 설정하여 정확한 CSS 셀렉터에 대응하는 데이터 필드를 마스킹할 수 있습니다.이는 HTML 클래스 등 응용 프로그램에서 중요한 필드를 마킹하거나 난독화 또는 마스킹할 필드를 식별하는 올바른 선택기를 찾는 방법으로 수행할 수 있습니다.
데이터 마스킹 및 클라우드
최근 몇 년 동안 조직은 최종 애플리케이션이 클라우드에서 호스팅되는지 아니면 사내에서 호스팅되는지 여부에 관계없이 클라우드에서 새로운 애플리케이션을 개발하는 경우가 점점 더 많아지고 있습니다.현재 클라우드 솔루션에서는 Infrastructure as a Service, Platform as a Service 및 SaaS를 사용할 수 있습니다.테스트 데이터를 생성하여 사내 데이터베이스에서 클라우드로 또는 클라우드 내의 다른 환경 간에 이동하는 다양한 모드가 있습니다.동적 데이터 마스킹은 고객이 데이터베이스 관리를 클라우드 프로바이더에 의존하면서 PII 데이터를 보호해야 하는 경우 클라우드에서 더욱 중요해집니다.개발 환경의 SLA는 일반적으로 운영 환경의 SLA만큼 엄격하지 않기 때문에 SDLC에서는 애플리케이션이 클라우드 또는 사내에서 호스팅되는지 여부에 관계없이 데이터 마스킹이 이러한 프로세스의 일부가 됩니다.
「 」를 참조해 주세요.
레퍼런스
- ^ "Data Masking vs. Data Encryption". www.iri.com. Innovative Routines International. 2 November 2011. Retrieved 24 August 2017.
- ^ "Test data masking". DATPROF. 2014-05-20. Retrieved 2020-04-29.
- ^ "Data Masking Definition". Retrieved 24 August 2017.
- ^ "Information Management Specialists". GBT. Retrieved 24 August 2017.
- ^ "Data Lifecycle and Test Management Methodology". Data Kitchen. Retrieved 24 August 2017.
- ^ "Test Data Management: A Primer". IRI. 6 December 2013. Retrieved 24 August 2017.
- ^ "Sub Setting". Data Kitchen. Retrieved 24 August 2017.
- ^ "Database Subsetting". IRI. Retrieved 24 August 2017.
- ^ "Data subsetting". DATPROF. 2019-05-23. Retrieved 2020-04-29.
- ^ Muralidhar, Krishnamurty; Sarathy, Rathindra (2006-05-01). "Data ShufflingA New Masking Approach for Numerical Data". Management Science. 52 (5): 658–670. doi:10.1287/mnsc.1050.0503. ISSN 0025-1909.
- ^ "Data processing systems with format-preserving encryption and decryption engines". Retrieved 24 August 2017.
- ^ "IRI Dynamic Data Masking solutions". Retrieved 24 August 2017.
- ^ "Dynamic Data Masking with IBM Optim". Retrieved 24 August 2017.
- ^ "Data Masking: What You Need to Know" (PDF). Net2000 Ltd. Retrieved 24 August 2017.
- ^ "Syncronisation and Complex Data Masking Rules Explained". Retrieved 24 August 2017.
- ^ "Static data masking functions". IRI. Retrieved 24 August 2017.
- ^ "Deterministic data masking". DATPROF. 2020-03-19. Retrieved 2020-04-29.
- ^ US 7698250, Cynthia Dwork & Frank McSherry, "Differential Data Privacy", 2010-04-13 발행, Microsoft Corp(오리지널) 및 Microsoft Technology Licensing LLC(현행)에 할당
- ^ Marino, Simeone; Zhou, Nina; Zhao, Yi; Zhou, Nina; Wu, Qiucheng; Dinov, Ivo (2018). "DataSifter: Statistical Obfuscation of Electronic Health Records and Other Sensitive Datasets". Journal of Statistical Computation and Simulation. 89 (2): 249–271. doi:10.1080/00949655.2018.1545228. PMC 6450541. PMID 30962669.
- ^ "Eliminating Compliance Risks - Data Masking in the Cloud". Retrieved 24 August 2017.