ARX란?
: 데이터 익명화 도구로써, 비식별화를 수행하는 오픈소스 프로그램
구성(Configure), 탐색(Explore), 분석(Analyze) 3단계로 구성됨
- Configure: raw data를 import하여 데이터 변환과 프라이버시 보호 모델을 설정
- Explore: 설정된 모델을 만족하는 모든 가능한 변환을 도식화
- Analyze: 재식별화 가능성 등 위험수준을 분석하여 최종 export 여부 결정
다운로드
https://arx.deidentifier.org/downloads/
프로젝트 생성 및 import data
File > New project 로 프로젝트 생성
File > Import data 로 데이터 불러오기
Data Transformation
데이터 타입을 선택 가능하다.
Quasi-identifying은 준식별자(조합을 통해 식별 가능)를 의미한다.
모든 데이터에 대해 Quasi-identifying으로 설정하였다.
Quasi-identifying으로 설정하는 경우, 해당 속성에 노란색 인덱스가 표시된다.
Transformation은 비식별화 기술을 의미하며, 모든 데이터에 대해 Generalization으로 설정하였다.
Generalization: 일반화(마스킹, 범위방법)
Microaggregation: 부분총계(평균, 합계 등)
Clustering and microaggregation: 군집화와 부분총계
Create hierarchy를 통해 각 항목별로 데이터 특성을 고려하여 비식별 조치 기술을 적용 가능하다.
비식별화 - 성별
성별 데이터에 대해 ordering을 적용한다. 성별은 문자이므로 interval은 선택 불가능하다.
그룹 1을 우클릭하여 Add new level을 통해 그룹 2를 생성한다.
Aggregate function: Set of values
그룹 1은 {Female}, {Male}로 분류되었지만, 그룹 2는 {Female, Male}로 그룹화되어 익명화된 것을 확인 가능하다.
비식별화 - 나이
나이는 숫자이므로 intervals 적용이 가능하다.
0~100세 사이에 대해 처리하도록 Range 값을 수정한다.
첫 번째 그룹에 대해 0세~5세까지 표현하도록 적용한다. 즉, 5세 간격으로 설정한다.
첫 번째 그룹 우클릭 후 Add new level을 통해 다음 그룹에 대해 Size를 2로 적용한다.
동일한 방법으로 레벨 6까지 확장시켜주면, 위와 같은 age interval이 완성된다.
비식별화 - 교육
대학 이상에 대한 데이터만 ordering한 후, size를 4로 변경하여 하나의 그룹으로 만든다.
그룹 1을 우클릭한 후, Add after하여 두 번째 그룹을 만들고, Size를 13으로 설정하여 나머지 13개의 교육 정도에 대해 하나의 그룹으로 생성한다.
각각의 그룹에 대해 Constant value 기능을 통해 이름을 대학과정, 대학미만으로 대체한다.
Privacy Model 지정 등
Privacy models에서 k-Anonymity를 선택하고, k=5로 지정하여 5-익명성 모델을 생성하였다. 그 외에도 여러 모델을 지정 가능하다. 그 옆의 Population은 실제 국가와 인구들에 대해 비교 가능하도록 하고, Cost and benefits는 Publisher와 Adversary 사이에 발생하는 비용과 손실에 대해 산술적으로 표현하여 보여준다.
General settings에서는 Suppression limit을 권장 값인 100%로 설정한다.
Utility measure는 데이터의 유용함 정도에 대해 Loss 등의 기준으로 나타내고, Attribute weights는 데이터들의 중요성 기준으로 가중치 설정이 가능하다. age에 대해 0.7의 가중치를 설정했다.
비식별화 실행 후 Explore results
Privacy Model을 지정한 후, Anonymize 버튼으로 비식별화를 실행한다.
Explore results 탭에서 모든 조합에 대한 결과를 확인 가능하다. 녹색은 사용자가 지정한 프라이버시 보호 모델에 부합되는 집합이고, 노란색은 그중 가장 최적인 Optimal Solution을 의미한다.
각 속성에 대한 level을 의미한다. 즉, 나이는 level 3, 교육 정도는 level 2, 나머지 항목은 level 0일 때가 가장 최적임을 파악할 수 있다.
Clipboard 탭에서 utility 관점의 Rank와 generalization 관점의 Rank를 각각 확인 가능하다.
Properties 탭에서는 선택한 솔루션에 대한 속성을 알 수 있다. 여기서 Score는 정보 손실과 동일한 의미로, 비식별화 달성 과정에서 발생한 정보 유실의 정도를 나타낸다. 0%는 최적 값에서 떨어져 있는 정도를 나타내는데, 0%인 것을 통해 현재 선택한 조합이 가장 Optimal하다는 것을 알 수 있다.
Filter 탭에서는 Score(Information Loss)를 조정하여 결과들의 수를 줄여서 확인 가능하다. 정보 손실을 최소화 한다면 낮은 Score 영역을 선택하고, 반대로 정보 손실이 있되 재식별 가능성을 최소화하려면 높은 Score 영역을 선택할 수 있다.
각 조합을 우클릭하여 적용할 수 있다. 최적의 값을 적용하였다.
Analyze utility
Analyze utility 탭에서 변환 전후의 값을 확인 가능하다.
하단의 여러 탭들을 통해 결과 비교가 가능하며, 위는 Distribution에서 age 항목에 대해 비교한 결과이다. 나이는 level3이 가장 최적이었으므로, 20세씩 interval을 적용한 값으로 변화했음을 확인 가능하다.
Contingency 탭을 통해 두 항목에 대해 시각적으로 분포를 비교할 수 있다. 위는 성별에 대한 교육 정도를 나타낸다.
Analyze risk
Quasi-identifiers 즉 준식별자 조합에 대해 확인 가능하다. 이 때 Distinct 정도는 리스크를 증가시키는 요인으로, education 항목은 Distinct 값이 감소했음을 확인 가능하다.
Attacker models 탭은 개인정보 재식별 가능성에 대한 분석을 3가지 공격 유형에 대해 제공한다.
1) Prosecutor attacker model: 특정 개인이 데이터셋에 포함되어 있음을 알고 있다는 가정 하에 그 개인을 찾을 수 있는 가능성
2) Journalist attacker model: 다른 데이터베이스와 결합하여 개인이 식별되는 가능성
3) Marketer attacker model: 개인 식별에는 관심이 없고, 집단의 부분 집합 전체가 식별되는 가능성으로 예를 들어 메일을 통한 공격 수행을 위한 집단을 의미
위의 결과를 통해 각 경우에 대해 위험도가 많이 낮아짐을 알 수 있다.