LabHub
배우기 러닝패스 코스

폐쇄망 현장 — 방산·국방 도메인 · 로그를 반출하기 전에 비식별하기 · 실습

사람이 묻은 로그를 밖으로 보낼 수 있게 만들기

LabHub 에서 이어서 보기

목표

사람과 조직이 묻은 운영 로그에서 식별자를 가려내고, 열쇠에 매인 결정적 가명화와 마스킹을 갈라 적용하고, 남는 재식별 위험을 일반화로 줄인 뒤, 반출 꾸러미를 기계로 자기 검증해 내보냅니다.

왜 중요한가

폐쇄망에서 못 푸는 장애가 나면 로그를 밖으로 보내야 하는 순간이 옵니다. 그때 사번을 별표로 덮으면 심사는 통과하지만 분석이 죽습니다. 장애 분석이 쓰는 사실은 대개 값 자체가 아니라 값이 같다는 관계이기 때문입니다. 그래서 필요한 것이 같은 값을 늘 같은 가명으로 바꾸되 되돌릴 수는 없게 만드는 함수이고, 그 자리를 열쇠 있는 해시가 맡습니다. 이 실습에서 어려운 부분은 가명 함수가 아니라 무엇이 식별자인지 세는 일입니다. 이름표가 붙은 필드는 쉽고, 메시지 본문에 문장처럼 박힌 값과 인코딩 뒤에 숨은 값이 반출물을 새게 합니다.

단계

1. python3/root/deid/data 에 여섯 개 자료 파일을 만듭니다. 생성 스크립트를 그대로 쓰세요.
2. 필드마다 분류와 고유값 수와 처리 방법을 /root/deid/classify.csv 에 적습니다.
3. 정규식이 필드에서 찾은 값과 놓친 값을 /root/deid/scan.json 에 적습니다.
4. 열쇠에 매인 가명 함수를 만들어 /root/deid/vault/map.csv/root/deid/vault/proof.json 을 남깁니다.
5. 가명화와 마스킹을 갈라 적용해 /root/deid/out/access.deid.log/root/deid/out/app.deid.log 를 만듭니다.
6. 준식별자 조합으로 유일해지는 행을 세어 /root/deid/risk.json 에, 일반화한 분석표를 /root/deid/out/events.csv 에 남깁니다.
7. 반출물을 원본 식별자 목록으로 대조한 결과를 /root/deid/selfcheck.json 에 적습니다.
8. /root/deid/release 에 가명 자료와 방법서와 무결성만 담은 반출 꾸러미를 만듭니다.

참고

단계 8개

  1. 비식별의 바탕이 될 자료 만들기
  2. 어떤 필드가 무엇인지 가르기
  3. 정규식이 찾은 것과 놓친 것을 함께 세기
  4. 열쇠에 매인 결정적 가명 만들기
  5. 가명화할 것과 마스킹할 것을 갈라 적용하기
  6. 직접 식별자를 다 바꿔도 남는 위험 세기
  7. 반출물에 원본이 남았는지 기계로 대조하기
  8. 금고는 안에 남기고 꾸러미만 내보내기