폐쇄망 현장 — 방산·국방 도메인 · 로그를 반출하기 전에 비식별하기 · 실습
사람이 묻은 로그를 밖으로 보낼 수 있게 만들기
목표
사람과 조직이 묻은 운영 로그에서 식별자를 가려내고, 열쇠에 매인 결정적 가명화와 마스킹을 갈라 적용하고, 남는 재식별 위험을 일반화로 줄인 뒤, 반출 꾸러미를 기계로 자기 검증해 내보냅니다.
왜 중요한가
폐쇄망에서 못 푸는 장애가 나면 로그를 밖으로 보내야 하는 순간이 옵니다. 그때 사번을 별표로 덮으면 심사는 통과하지만 분석이 죽습니다. 장애 분석이 쓰는 사실은 대개 값 자체가 아니라 값이 같다는 관계이기 때문입니다. 그래서 필요한 것이 같은 값을 늘 같은 가명으로 바꾸되 되돌릴 수는 없게 만드는 함수이고, 그 자리를 열쇠 있는 해시가 맡습니다. 이 실습에서 어려운 부분은 가명 함수가 아니라 무엇이 식별자인지 세는 일입니다. 이름표가 붙은 필드는 쉽고, 메시지 본문에 문장처럼 박힌 값과 인코딩 뒤에 숨은 값이 반출물을 새게 합니다.
단계
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 에 가명 자료와 방법서와 무결성만 담은 반출 꾸러미를 만듭니다.
참고
- 식별자 패턴, 마스킹할 필드, 인코딩된 필드, k 기준값은 모두
/root/deid/data/policy.json에 있습니다. 숫자나 정규식을 코드에 박지 말고 그 파일에서 읽으세요. - 가명 열쇠는
/root/deid/data/key.hex에 있습니다. 이 파일은 망 안에 남고 반출 꾸러미에는 들어가지 않습니다. - 가명은
HMAC-SHA256(열쇠, 종류 + "|" + 값)의 16진 출력 앞pseudo_len글자에prefix를 붙인 것입니다. 예:EMP-0123456789ab. - 변환 순서가 결과를 바꿉니다. 자유 서술 필드를 먼저 마스킹하고, 인코딩된 필드를 디코딩해 가명으로 바꾼 다음, 남은 줄 전체에서 패턴에 걸리는 것을 가명으로 바꿉니다.
- 기준일은
/root/deid/data/asof.txt에 있습니다.date로 오늘을 쓰면 같은 자료에서 날마다 다른 답이 나옵니다. - 흔한 실수 1: 이름표가 붙은 필드만 훑는 것. 메시지 본문과 인코딩된 값은 그렇게 해서는 나오지 않습니다.
- 흔한 실수 2: 매핑표를 반출 꾸러미에 함께 넣는 것. 그 파일이 들어가면 가명화를 하지 않은 것과 같습니다.
- 표준 문서: [RFC 2104](https://www.rfc-editor.org/rfc/rfc2104), [FIPS 198-1](https://csrc.nist.gov/pubs/fips/198-1/final), [NIST SP 800-92](https://csrc.nist.gov/pubs/sp/800/92/final), [NIST IR 8053](https://csrc.nist.gov/pubs/ir/8053/final). 이 실습의 필드 분류와 k 기준값은 표준의 통제 번호가 아니라 자료 안에서만 쓰는 이 실습의 가정입니다.
단계 8개
- 비식별의 바탕이 될 자료 만들기
- 어떤 필드가 무엇인지 가르기
- 정규식이 찾은 것과 놓친 것을 함께 세기
- 열쇠에 매인 결정적 가명 만들기
- 가명화할 것과 마스킹할 것을 갈라 적용하기
- 직접 식별자를 다 바꿔도 남는 위험 세기
- 반출물에 원본이 남았는지 기계로 대조하기
- 금고는 안에 남기고 꾸러미만 내보내기