KR102310649B1 - 개인 식별 정보를 제거하기 위한 스크러버 - Google Patents

개인 식별 정보를 제거하기 위한 스크러버 Download PDF

Info

Publication number
KR102310649B1
KR102310649B1 KR1020167020747A KR20167020747A KR102310649B1 KR 102310649 B1 KR102310649 B1 KR 102310649B1 KR 1020167020747 A KR1020167020747 A KR 1020167020747A KR 20167020747 A KR20167020747 A KR 20167020747A KR 102310649 B1 KR102310649 B1 KR 102310649B1
Authority
KR
South Korea
Prior art keywords
personally identifiable
identifiable information
message
pii
scrubbing
Prior art date
Application number
KR1020167020747A
Other languages
English (en)
Other versions
KR20160114077A (ko
Inventor
마이클 빌로도
구스타보 카르모
Original Assignee
마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 filed Critical 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20160114077A publication Critical patent/KR20160114077A/ko
Application granted granted Critical
Publication of KR102310649B1 publication Critical patent/KR102310649B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24564Applying rules; Deductive queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

개인 식별 정보(PII) 스크러빙 시스템. PII 스크러빙 시스템은 로그에 대응하는 스크러버 구성에 기초하여 PII를 로그로부터 국부적으로 정교하게 스크러빙한다. 스크러버 구성은 로그 내의 PII의 위치 및 유형에 관한 콘텍스트 정보와 PII를 위치확인 및 보호하는 방법을 특정하는 규칙을 포함한다. 스크러버 구성은, 스크러빙 요건이 달라지거나 또는 새로운 상황에 직면함에 따라, 신속하고 용이하게 생성 또는 수정된다. 스크러버 구성에 의해 제공되는 유연성은, 주변 데이터를 포함시키지 않고도, 심지어 비구조화 데이터로부터도 PII만이 스크러빙되는 것을 허용한다. 많은 소비자들은, 모호해지는 비-개인적 데이터가 보다 적기 때문에, PII를 노출시킬 필요 없이 스크러빙된 데이터를 이용할 수 있다. 정교한 스크러빙은 또한, PII를 보호하면서도 기저의 PII의 유용성을 유지한다. 소비자는, 추가적인 PII를 노출시키지 않고도, 보호된 PII를 상관시켜서 특정 정보의 위치를 확인할 수 있다.

Description

개인 식별 정보를 제거하기 위한 스크러버{SCRUBBER TO REMOVE PERSONALLY IDENTIFIABLE INFORMATION}
많은 조직들이 시스템 로그, 에러 보고서, 및 그 밖의 일상적인 비지니스 목적의 데이터를 수집한다. 이 데이터는 경쟁력 있는 장점을 생성 및 유지하기 위해 발굴될 수 있지만, 상기와 같은 데이터는 합법적인 목적에 필요한 사용자 정보를 포함할 수 있기 때문에, 상기와 같은 데이터에 대한 가용성 및 접근성이 증가할수록, 고의든 실수든 간에 회사들을 증가된 데이터 오남용 위험에 노출시키게 된다.
개인 식별 정보(personally identifiable information: PII)의 스크러빙(scrubbing)은, 보다 많은 대중이 안전하게 정보에 액세스할 수 있도록, 로그로부터 사용자 정보를 제거하는데 사용되는 표준 기술이지만, 스크러빙은 비용이 많이 들고, 제한적이며, 또한 불완전한 기술이다. 사용자들이 그들의 개인 정보를 보고 식별할 수 있게 할 수는 있지만, 대형 조직들이 매일 수집하는 페타바이트(petabyte) 규모의 데이터만큼의 일을 할 수 있는 확장 가능하고 비용 효율적인 시스템을 구축하는 것은 훨씬 더 어렵다.
정부 법률 또는 규정에 의해 몇몇 PII의 보호가 필요해질 수 있다. 보호가 필요치 않을 때에도, 조직들은 고객/사용자와의 신뢰 조성 또는 법적 위험의 최소화와 같은 다양한 이유로 PII를 보호할 동기가 부여될 수 있다. 이유에 관계없이, PII의 보호는 궁극적으로 조직에 대한 경제적인 부담이 되는 리소스(예컨대, PII 스크러버에 대한 처리 시간, 저장 공간, 및 개발 시간)의 관점에서 비용이 많이 든다. PII를 잠재적으로 포함하는 로그를 처리하는데 필요한 시간은 조직 담당자가 가장 최신 정보를 포함하는 로그에 액세스하는 것을 지연시키게 될 수 있다. 로그에 대한 스크러버가 현재 이용할 수 없거나 또는 수정될 필요가 있다면, 조직 담당자는 상황이 해결될 때까지 로그에 액세스하지 못할 수 있다. 우선순위 및 리소스에 따라, 로그가 잠재적으로 PII를 포함한다는 결정과 적절한 스크러버의 개발 사이에는 몇 개월 이상의 지연(lag)이 있을 수 있다.
스크러빙된 로그가 이용 가능해질 때까지의 시간을 최소화하려는 시도로서, 조직들은 "억지(brute-force)" 스크러버를 이용해서 로그에 오버-스크러빙(over-scrubbing)을 행할 수 있다. 이 억지 스크러버는 흔히, 데이터가 실제로 PII 인지의 여부를 판정하기보다는 잠재적으로 PII를 포함하는 로그 전부에 대하여 스크러빙을 하거나, 원본 데이터의 적어도 일부의 영구적 손실을 초래하는 스크러빙을 하거나, 및/또는 고유한 데이터 항목들을 그룹 전체를 다루는 토큰으로 대체하는 것과 같은 부정확하거나 또는 파괴적인 기술을 채용하곤 한다.
오버-스크러빙은 흔히, 타깃 데이터가 PII가 아닌 경우에도, 무차별적으로 보호가 적용되기 때문에 처리 시간 및 저장 요건을 증가시키곤 한다. 저장 요건이 증가되는 이유는, 많은 보호 기술들이 보호되는 데이터보다 현저하게 큰 값을 생성하기 때문이다. 로그의 무차별적으로 보호되는 부분들은 원래의 로그 사이즈에 비해 2배 또는 3배로 되기 쉽다. 오버-스크러빙은, 데이터를 분석하는 능력을 제한하는 방식으로 데이터가 파괴되어 있거나 또는 변형되어 있기 때문에, 로그에 원래 포함되어 있던 가치 있는 기업 정보 수집 활동(business intelligence)의 손실이라고 하는 추가적인 비용을 발생시킨다. 예컨대, 오버-스크러빙은 대형 컴포넌트를 구성하는 개개의 부분들을 대체하는 대신에, 메시지(심지어 전체 메시지)의 전체 컴포넌트에 대한 단일의 대체를 이용하고, 이는 보호된 데이터를 의미 있게 이용하는 것을, 불가능하게 만드는 것은 아니지만, 어렵게 만든다.
본 발명은 이들 및 다른 고려사항들에 대하여 이루어져 있다. 비교적 구체적인 문제점들이 논의되어 있지만, 본 명세서에 개시된 실시예들은 배경기술에서 확인되는 구체적인 문제점들을 해결하는 것에 한정되지 않아야 함을 이해해야 한다.
본 개요는 후속하여 발명의 상세한 설명 부분에서 설명되는 개념들 중 선택된 것들을 단순화된 형태로 소개하고자 제공되는 것이다. 본 개요는 청구항의 청구대상의 핵심적인 특징이나 필수적인 특징들을 밝히고자 함이 아니며, 청구항의 청구대상의 범위를 한정하는 데 이용하고자 함도 아니다.
PII 스크러빙 시스템의 실시예들은 로그에 대응하는 스크러버 구성(scrubber configuration)에 기초하여 PII를 로그로부터 국부적으로 정교하게(surgically) 스크러빙한다. 스크러버 구성은 로그 내의 PII의 위치 및 유형에 관한 콘텍스트 정보(context information)와 PII를 위치확인 및 보호하는 방법을 특정하는 규칙을 포함한다. 스크러버 구성은, 스크러빙 요건이 달라지거나 또는 새로운 상황에 직면함에 따라, 신속하고 용이하게 생성 또는 수정된다. 스크러버 구성에 의해 제공되는 유연성은, 주변 데이터를 포함시키지 않고, 심지어 비구조화 데이터(unstructured data)로부터도 PII만이 스크러빙되는 것을 허용한다. 많은 소비자들은, 모호해지는 비-개인적(non-personal) 데이터가 보다 적기 때문에, PII를 노출시킬 필요 없이 스크러빙된 데이터를 이용할 수 있다. 정교한 스크러빙은 또한, PII를 보호하면서도 기저의 PII(underlying PII)의 유용성을 유지한다. 소비자는, PII를 노출시키지 않고도, 보호된 PII를 상관시켜서 특정 정보의 위치를 확인할 수 있다. 소비자는 또한, 추가적인 PII를 노출시키지 않고도, 보호된 PII와 관련된 데이터를 검색할 수 있다.
스크러버 구성은 스크러빙 에이전트에 의해 이용된 정보를 제공해서 메시지로부터 PII를 위치확인 및 스크러빙한다. 다양한 실시예들에 있어서, 스크러버 구성은 메시지 내의 데이터에 관한 콘텍스트 정보 및 콘텍스트 정보에 기초하여 메시지를 처리하기 위한 로직을 제공한다. 콘텍스트 정보는 PII가 로그 메시지 내의 어느 곳에 위치해 있는지를 또는 PII의 유형을 나타낸다. 로직은 PII를 처리하기 위한 조건과 같이, PII를 취급하는 방법 및/또는 PII를 보호하는 방법(예컨대, 대체 기술의 특정)에 대한 명령어를 제공한다. 총괄하여, 콘텍스트 정보와 로직이 스크러빙 규칙을 형성한다. 다양한 실시예들에 있어서, 스크러빙 규칙은 스크러빙 에이전트에 의해 제공된 일반적인 동작들에 상응하는 파서(parsers), 프로세서(processors), 및 필터(filters)를 포함한다. 일부 실시예에 있어서, 스크러빙 규칙은 상응하는 콘텍스트 정보를 규칙의 파라미터로서 포함한다. 스크러빙 규칙은 프로세싱 그룹들로 정리될 수 있다. 프로세싱 그룹들은 그룹 내의 하나 이상의 규칙의 작업이 그룹 내의 하나 이상의 다른 규칙의 성과에 좌우될 수 있게 한다.
다양한 실시예들에 있어서, 스크러빙 에이전트는, 데이터를 필드들로 나누거나 또는 필드들 내의 데이터의 위치를 확인하는 파싱 엔진(parsing engine), 한정되는 것은 아니지만, PII를 포함하는 필드들을 스크러빙하거나 또는 그 필드들을 소규모 컴포넌트들(예컨대, 하위 필드들 또는 이름/값 쌍들)로 추가로 파싱하는 것과 같은 태스크를 담당하는 프로세싱 엔진(processing engine), 및 메시지 또는 필드가 처리되는지 또는 처리에서 배제되는지의 여부를 결정하는 필터링 엔진(filtering engine)을 포함한다.
메시지 스크러빙 작업은 스크러버 구성에 의해 제공된 규칙 및 콘텍스트 정보를 이용해서 메시지 내의 PII를 위치확인 및 대체한다. 선택적인 사전-파싱(pre-parsing) 필터링 작업은, 메시지 내의 콘텐츠가 스크러버 구성에서 특정된 필터 파라미터들과 매칭되는지의 여부에 기초하여, 메시지가 처리되어야 하는지를 결정한다. 메시지 파싱 작업은 스크러버 구성에서 특정된 파서 파라미터들에 기초하여 메시지를 필드들로 파싱한다. 프로세싱 작업은 스크러버 구성에서 특정된 프로세서 파라미터들에 기초하여 PII를 보호한다. 필드 선택 작업은 스크러빙할 필드를 선택한다.
프로세싱 작업은 스크러빙 조건들을 강제하거나 또는 선택된 필드가 처리되는 방법을 개량하는 하나 이상의 하위 작업을 수반할 수 있다. 하위 작업들은 선택된 필드 내에서 PII의 위치를 확인하는데 사용된 필드 파싱 작업 또는 검색 작업을 포함할 수 있다. 필드 파싱 작업은 필드를 하위 필드들로 또는 이름/값 쌍들로 파싱한다. 검색 작업은 선택된 필드 내에서 스크러버 구성에서 특정된 필터 파라미터들(예컨대, 패턴)에 매칭되는 콘텐츠를 찾는 작업이다. 하위 작업들은 또한, 메시지 내의 필드의 콘텐츠가 스크러버 구성에서 특정된 필터 파라미터에 매칭되는지의 여부에 기초하여, 선택된 필드가 처리되어야 하는지를 결정하는 필터링 작업을 포함할 수 있다. 하위 작업들에 의해 강제된 임의의 조건들을 충족시키는 대상으로서, 대체 값 생성 작업은 선택된 필드에서 PII에 대한 대체 값을 생성한다. 대체 기술의 선택은 흔히, 데이터 손실의 최소화, 성능에의 영향 저감, 및 데이터 팽창 관리 사이의 균형을 잡는 행위이다. 가용 대체 기술은, 개정(redaction), 정적 대입(static substitution), 일반화(generalization), 해싱(hashing), 및 암호화(encryption)를 예로서 포함할 수 있지만, 이들에 한정되는 것은 아니다.
본 개시물의 추가적인 특징, 양태, 및 장점은 하기의 도면들을 참조하여 보다 잘 이해될 것이며, 요소들은 상세를 보다 명확하게 보여주기 위해 실척으로 도시되어 있지 않고, 몇몇 도면에 있어서는 유사한 참조 번호가 유사한 요소를 가리킨다.
도 1은 적절한 컴퓨팅 환경에서 구현되는 개인 식별 정보(PII) 스크러빙 시스템의 일 실시예의 흐름도이다.
도 2는 PII 스크러빙 시스템을 이용해서 PII를 보호하는 정교한 스크러빙 방법의 일 실시예의 고수준 순서도이다.
도 3은 스크러버 친화적 개발 환경에서 PII에 관한 콘텍스트 정보를 수집하는 정교한 스크러빙 방법의 수집 콘텍스트 정보 작업의 일 실시예의 고수준 순서도이다.
도 4는 정교한 스크러빙 방법의 메시지 스크러빙 작업의 일 실시예의 고수준 순서도이다.
도 5a는 상응하는 스크러버 구성으로 제 1 로그 상에서 PII 스크러빙 시스템의 일 실시예에 의해 수행된 스크러빙 작업을 나타내는 흐름도이다.
도 5b는 이전의 예시로부터 동일한 스크러버 구성을 이용해서 제 2 로그 상에서 PII 스크러빙 시스템의 일 실시예에 의해 수행된 스크러빙 작업을 나타내는 흐름도이다.
도 5c는 수정된 버전의 스크러버 구성을 이용해서 제 2 로그 상에서 PII 스크러빙 시스템의 일 실시예에 의해 수행된 스크러빙 작업의 흐름도이다.
도 5d는 스크러버 구성이 규칙 세트를 제공하지 않을 때 디폴트 스크러빙 규칙으로 돌아간 결과를 나타내는 PII 스크러빙 시스템의 일 실시예에 의해 수행된 스크러빙 작업의 흐름도이다.
도 6은 본 발명의 실시예들이 실시될 수 있는 컴퓨팅 장치의 물리적 컴포넌트의 일 실시예를 나타내는 블록도이다.
도 7a 및 도 7b는 본 발명의 실시예들이 실시될 수 있는 모바일 컴퓨팅 장치의 간략화된 블록도이다.
도 8은 본 발명의 실시예들이 실시될 수 있는 분산 컴퓨팅 시스템의 간략화된 블록도이다.
다양한 실시예들은, 그 일부를 이루며 특정한 예시적인 실시예들을 도시하는 첨부 도면을 참조하여, 이하에서 한층 충분히 기술된다. 그러나, 실시예들은 많은 상이한 형태들로 구현될 수 있으며, 본 명세서에서 제시하는 실시예들에 한정되는 것으로 해석되지 않아야 하고; 오히려, 이들 실시예는 본 개시물이 철저하고 완전할 수 있게 제공되는 것이며, 본 기술분야의 당업자에게 실시예들의 범위를 충분히 전달할 것이다. 실시예들은 방법, 시스템, 또는 장치로서 실시될 수 있다. 결국, 실시예들은 하드웨어 구현예, 전적으로 소프트웨어 구현예 또는 소프트웨어와 하드웨어 양태를 결합한 구현예의 형태를 취할 수 있다. 따라서, 하기의 상세한 설명 부분은 한정의 의미로 받아들여지지 않아야 한다.
개인 식별 정보(PII) 스크러빙 시스템의 실시예들은 본 명세서에서 기술되며 첨부 도면들에서 나타내진다. PII 스크러빙 시스템은 로그에 상응하는 스크러버 구성에 기초하여 PII를 로그로부터 정교하게 스크러빙한다. 스크러버 구성은 로그 내의 PII의 위치 및 유형에 관한 콘텍스트 정보 및 PII를 위치확인 및 보호하는 방법을 특정하는 규칙을 포함한다. 스크러버 구성은, 스크러빙 요건이 달라지거나 또는 새로운 상황에 직면함에 따라, 신속하고 용이하게 생성 또는 수정된다. 스크러버 구성에 의해 제공되는 유연성은, 심지어 비구조화 데이터로부터도 주변 데이터를 포함하지 않고 PII만이 스크러빙되는 것을 허용한다. 많은 소비자들은, 비-개인적 데이터에 계속해서 액세스하면서, 스크러빙된 데이터를 PII에 대한 노출 없이 이용할 수 있다. 정교한 스크러빙은 또한, PII를 보호하면서도 기저의 PII의 유용성을 유지한다. 소비자는, 추가적인 PII를 노출시키지 않고도, 보호된 PII를 상관시켜서 특정 정보의 위치를 확인할 수 있다.
도 1은 적절한 컴퓨팅 환경에서 구현된 PII 스크러빙 시스템(100)의 일 실시예를 나타낸다. 본 명세서에서 사용되는, PII는 사용자가 다른 사람들에게 알리고 싶지 않은 내용을 광범위하게 포함한다. 이는 일반적으로, 사용자들이 정보를 공유할 권한을 명백하게 조직에 부여하지 않는 한, 사용자들에 관하여 수집되거나 또는 사용자들에 의해 제공되는 임의의 데이터를 의미한다. 이름, 생일, SSN, 계정명, 및 전화번호와 같은 PII에 대한 몇 가지 공통적인 예시들이 인식하기 쉽다. PII에 고려될 수 있는 그 밖의 데이터는 IP 어드레스, 회사명, 및 위치 정보를 포함한다. PII의 다른 잠재적인 소스는 서류명 및 이메일 헤더와 같은 자유 형식의 데이터이다.
스크러빙은 데이터의 수집시에 나타나는 PII를 보호하는 것과 관련하여 사용된다. 데이터 수집에 있어서의 개별 항목들은 열, 행, 메시지, 또는 기록으로서 인용될 수 있다. 구체적인 용도의 예시로서, PII 스크러버 시스템은 로그로부터 PII를 스크러빙하는 맥락으로 기술되어 있지만, PII 스크러버 시스템은 보다 넓은 용도를 가지며 로그에 대한 작업에 한정하려는 것은 아니다. 로그는 표준화를 거의 내지는 전혀 고려하지 않고 지속적으로 생성된 방대한 양의 데이터의 수집을 나타낸다. 이와 같이, 로그는 PII의 보호에 있어서는 가장 큰 도전들 중 하나를 나타낸다.
PII 스크러빙 시스템(100)은 로깅된 시스템(104) 상에서 실행되는 로깅 에이전트(102)를 포함한다. 로깅된 시스템은 컴퓨팅 장치이다. PII 스크러빙 시스템을 구성하는 로깅된 시스템 및/또는 그 밖의 시스템들을 구현하는 적절한 컴퓨팅 장치의 예로서는, 서버 컴퓨터, 데스크탑 컴퓨터, 랩탑, 태블릿 또는 표면(surface) 컴퓨터, 스마트폰, 및 스마트 기기가 있지만, 이들에 한정되는 것은 아니다. 로깅 에이전트는 로깅된 애플리케이션(106)에 대한 로그를 생성한다. 로깅된 애플리케이션은 운영 체제를 포함하는 임의의 서버 또는 데스크탑 애플리케이션일 수 있을 뿐만 아니라, 그 임의의 컴포넌트 또는 서비스일 수 있다. 로깅 에이전트는 애플리케이션 프로그래밍 인터페이스(API)를 통해 액세스되는 라이브러리 또는 엔진과 같이 로깅된 애플리케이션과는 독립적일 수 있으며, 다수의 상이한 로깅된 애플리케이션들과 함께 사용될 수 있다. 로깅 에이전트는, 애플리케이션 내의 모듈과 같이, 로깅된 애플리케이션과 통합되고 로깅된 애플리케이션에 특정될 수도 있다.
로깅 에이전트는, 한정되는 것은 아니지만, 보안 감사, 제품 지원, 제품 개량, 제품 등록, 및 사용자 등록과 같은 비지니스 목적으로 일상적으로 로깅된 데이터의 일부로서 사용자(108)로부터 수집된 PII를 포함할 수 있는 메시지(110)를 생성한다. 로깅될 수 있는 데이터 유형들로서는, 보안 이벤트(예컨대, 로그인 시도 및 인증), 입력/출력 이벤트(예컨대, 네트워크 또는 파일 시스템 트랜잭션), 프로그램 에러 및 충돌, 시스템 성능 및 리소스 이용, 및 프로그램 또는 기능 사용을 예로서 포함하지만, 이들에 한정되는 것은 아니다. 메시지는, 로컬 또는 원격 수신지에 스트리밍되거나, 기입되거나, 아니면 전송될 수 있다(즉, 데이터 스트림). 수신지는 메모리 내 데이터 객체(예컨대, 이벤트 기록)와 같은 휘발성 스토리지 위치, 또는 보조 기억 장치 상의 파일과 같은 비휘발성 스토리지 위치(즉, 하드 드라이브)일 수 있다. 메시지는 문자 데이터(즉, 문자열), 2진 데이터, 또는 그 조합일 수 있다.
데이터의 콘텐츠, 네이밍, 조직, 구조, 및/또는 제시는 서로 다른 로그들 또는 로그 유형들 사이에서 달라질 수 있으며, 때로는 로그 내부의 메시지들 사이에서 달라질 수 있다. 예컨대, 동일한 유형의 로그들은 사용된 로깅 에이전트에 따라 또는 사용된 로깅된 애플리케이션에 따라 상이할 수 있다. 새로운 버전의 로깅 에이전트 또는 로깅된 애플리케이션으로의 갱신시에는, 동일한 로깅 에이전트 및 로깅된 애플리케이션에 의해 만들어진 로그들조차 변경될 수 있다. 대규모 조직의 상이한 비지니스 부문 또는 입지에 대해서는, 요구사항들 또는 업그레이드 주기들이 상이하기 때문에, 상이한 개발자들로부터의 대안적인 애플리케이션들 또는 동일한 애플리케이션의 상이한 버전들을 기동시키는 것은 흔한 일이다.
스크러빙 에이전트(112)는 스크러버 구성(114)에 기초하여 로그 메시지들을 처리한다. 스크러빙 에이전트는, 한정되는 것은 아니지만, 로깅된 애플리케이션을 포함하는 독립형 애플리케이션 또는 다른 애플리케이션의 통합 컴포넌트일 수 있다. 단일의 컴퓨팅 장치 상에서 실행되는 것으로서 나타내지고 기술되지만, 로깅 에이전트 및 스크러빙 에이전트는 독립된 컴퓨팅 장치들에서 실행될 수 있다. PII 스크러빙 시스템은 로컬로 작동하거나, 또는 클라이언트-서버 또는 클라우드 서비스 아키텍처에서와 같은 분산 환경에서 작동할 수 있다. PII 스크러빙 시스템의 임의의 분산 컴포넌트들 또는 PII 스크러빙 시스템에 이용 가능한 리소스들은 서로 통신할 수 있거나, 또는 한정되는 것은 아니지만, 인터넷, 인트라넷, 로컬 에이리어 네트워크, 또는 와이드 에이리어 네트워크와 같은 적어도 하나의 컴퓨터 네트워크를 통해 액세스될 수 있다. 예컨대, 로깅 에이전트는 스크러빙되지 않은 로그를 보호된 중앙 시스템에 업로드할 수 있다. 보호된 중앙 시스템에서의 스크러빙되지 않은 로그에 대한 액세스는 로그 정보에의 긴급한 액세스를 필요로 하는 소그룹의 검증된 개인들에 한정된다(즉, PII에 대한 노출 위험의 중요성). 이어서, 스크러빙되지 않은 로그는 로깅된 시스템 또는 보호된 중앙 시스템 상에서 기동하는 스크러빙 에이전트에 의해 스크러빙되고, 스크러빙된 로그는 액세스의 제한이 적은 다른 시스템에 업로드된다. 대부분의 소비자는 스크러빙된 데이터를 이 최후의 시스템에서 입수하게 된다.
스크러빙 에이전트는 로그 메시지에 대하여 상이한 유형의 동작들을 수행하는 상이한 엔진들을 포함한다. 다양한 실시예들에 있어서, 스크러빙 에이전트는 파싱 엔진, 필터링 엔진, 및 프로세싱 엔진을 포함한다. 파싱 엔진은 데이터를 필드들로 나누거나 또는 필드들 내의 데이터의 위치를 확인하는 파싱 동작을 수행한다. 프로세싱 엔진은, 한정되는 것은 아니지만, PII를 포함하는 필드들을 스크러빙하거나 또는 필드를 소규모 컴포넌트들(예컨대, 하위 필드들 또는 이름/값 쌍들)로 나눌 수 있는 하위(child) 파서에 식별된 필드를 포워딩하는 등의 태스크를 담당하는 프로세싱 동작을 수행한다. 필터링 엔진은 메시지 또는 필드가 처리되는지 또는 처리에서 배제되는지의 여부를 결정하는 필터링 동작을 수행한다.
동작들은 그 범위가 일반적인 성질의 것에서부터 특정한 성질의 것에까지 이를 수 있다. 일반적인 동작은 스크러빙 에이전트가 실질적으로 어떤 상황을 취급할 수 있게 하는 유연성을 제공한다. 특정한 동작은 빈번하게 발생하는 상황을 다룰 때 단순성 및/또는 일관성을 제공한다. 공급된 구분자(delimiter)에 기초하여 메시지를 필드들로 분리하는 파싱 동작은 일반적인 동작의 일례이다. 단순 메일 전송 프로토콜(SMTP) 어드레스로 될 것 같은 모든 데이터에 대하여 필드를 검색하고 하위 필드를 생성하는 파싱 동작은 특정한 동작의 일례이다.
스크러버 구성은 스크러빙 에이전트에 의해 사용되는 정보를 제공해서 메시지로부터 PII를 위치확인 및 스크러빙한다. 다양한 실시예들에 있어서, 스크러버 구성은 메시지 내의 데이터에 관한 콘텍스트 정보 및 콘텍스트 정보에 기초하여 메시지를 처리하기 위한 로직을 제공한다. 콘텍스트 정보는 PII가 로그 메시지 내의 어느 곳에 위치해 있는지를 또는 PII의 유형을 나타낸다. 로직은 PII를 처리하기 위한 조건과 같이, PII를 취급하는 방법 및/또는 PII를 보호하는 방법(예컨대, 대체 기술의 특정)에 대한 명령어를 제공한다. 총괄하여, 콘텍스트 정보와 로직이 스크러빙 규칙을 형성한다. 다양한 실시예들에 있어서, 스크러빙 규칙은 스크러빙 에이전트에 의해 제공된 일반적인 동작들에 상응하는 파서, 프로세서, 및 필터를 포함한다. 일부 실시예에 있어서, 스크러빙 규칙은 상응하는 콘텍스트 정보를 규칙의 파라미터로서 포함한다. 스크러빙 규칙은 프로세싱 그룹들로 정리될 수 있다. 프로세싱 그룹들은 그룹 내의 하나 이상의 규칙의 작업이 그룹 내의 하나 이상의 다른 규칙의 성과에 좌우될 수 있게 한다.
스크러빙 에이전트에 대하여 수정을 요구하지 않고, 고유한 상황들(예컨대, 새로운 또는 서로 다른 로그들, 로그 버전들, 로그 유형들, PII, 또는 PII 유형들) 또는 요구사항들(예컨대, 서로 다른 로그 소비자들에 대한 대안적인 출력)을 취급하도록 개별 스크러버 구성들이 생성될 수 있다. 예컨대, 새로운 상황이 생기면, 새로운 스크러버 구성들이 용이하게 생성되고, 기존의 스크러버 구성들은, 예컨대 스크러빙 요건이 변경될 때 또는 현재의 스크러버 구성에 의해 누락된 PII를 보호해야 할 때, 용이하게 수정된다.
스크러빙 에이전트는 스크러빙된 메시지(116)를 데이터 저장소의 공유 스토리지(118)에 송신할 수 있다. 공유 스토리지는 로그들의 여러 사용자들이 접근 가능하다. 로그들은, 특정한 비지니스 기능에 대해서는, 그 정보에 액세스할 필요가 없는 다수의 소비자(120a)들에게는 보호된 사용자 정보를 노출하지 않고 관련 기록들을 이용할 수 있는 방식으로 스크러빙된다. 그 경우들에 있어서는, 공유 스토리지로부터 요청된 정보는 완전히 보호된 PII(122a)를 가진 기록들이 그 소비자들에게 제시되는 것으로 제시된다. 유사하게, 관련 기록들은, 보호된 정보의 전부가 아닌 일부에 대한 액세스를 요청하는 보다 소수의 소비자(120b)들에게 보호된 사용자 정보의 노출을 제한한 채로 위치확인될 수 있다. 그 경우들에 있어서는, 공유 스토리지로부터 요청된 정보는 제한적으로 노출된 PII(122b)를 가진 기록들이 그 소비자들에게 제시되는 것으로 제시된다. 마지막으로, 일부 비지니스 기능은 보호된 정보에 대한 완전한 액세스를 필요로 한다. 이러한 경우에는, 완전히 노출된 PII(122c)를 가진 기록들이 그 제한된 수의 소비자(120c)들에게 제시된다.
적절한 콘텍스트 정보를 이용할 수 있을 때, PII의 위치확인 및 취급이 더욱 용이하다. PII 스크러빙 시스템의 실시예들은 로깅되는 데이터의 발신자인 개발자(124)들로부터 콘텍스트 정보를 수집하는 스크러버 친화적 개발 환경(122)을 포함한다. PII를 포함할 수 있으며 해당 애플리케이션의 개발 동안 애플리케이션에 의해 로깅될 수 있는, 수집되는 데이터에 관한 콘텍스트 정보의 수집은 콘텍스트 정보의 완전성, 정확성, 및 상세를 향상시킨다. 또한, 애플리케이션 개발 동안 콘텍스트 정보의 수집은 스크러버 친화적 로그들의 생성을 가능하게 한다. 스크러버 친화적 로그들 내의 메시지들은 PII가 스크러빙 에이전트에 의해 용이하게 위치확인 및 보호될 수 있게 하는 방식으로 정리된다. 또한, 스크러버 친화적 로그들과 적절한 콘텍스트 정보의 조합은 로그들로부터 PII의 정교한 스크러빙을 가능하게 한다.
로깅 에이전트 또는 로깅된 애플리케이션의 개발자들은 일반적으로, 수집되는 데이터의 유형들, 생성될 수 있는 상이한 메시지들, 및 각각의 메시지에서 어떤 정보가 보고될 수 있는지를 알 수 있는 최상의 위치에 있다. 그에 반해서, 종래의 스크러빙 프로세스들은 흔히, PII로 될 것 같은 데이터에 대하여 규정준수 담당자(예컨대, 스크러버 오퍼레이터)(126)에 의한 실제(즉, 생산) 스크러빙된 및 스크러빙되지 않은 로그들(즉, 로그 출력)에서의 로그 메시지들의 수작업 검토에 기초한다.
규정준수 담당자들은 자신들의 앞에 놓인 정보에 얽매이고, 그에 따라 종래의 스크러빙 프로세스는, 한정되는 것은 아니지만, 불완전한 정보, 모호함, 및 PII의 격리의 곤란성과 같은 요인들에 기인하는 이슈들에 의해 저해된다. 불완전한 정보의 한 가지 이유는 로그의 특정 인스턴스(instance)가 해당 로그에서 나타날 수 있는 모든 가능한 메시지들의 완전한 표현이 아닐 수 있다는 점이다. 이러한 경우에는, 드물게 나타나는 메시지에 포함된 PII는 실제로 규정준수 담당자에 의해 검토된 생산 로그에서는 나타나지 않는다는 것을 규정준수 담당자가 인식하지 못하게 된다. 결국, PII는, 나타나지 않을 경우에는 스크러빙되지 않게 된다. 콘텍스트 정보가 입력측에서 수집될 경우에는, 불완전한 콘텍스트 정보를 초래하는 메시지의 발생 빈도 및 유사한 이슈들은 이미 요인이 아니다.
다른 관심사는 메시지들이 PII일 수도 아닐 수도 있는 모호한 값들을 포함할 수 있다는 점이다. 예컨대, 점으로 구분되는 4자리 숫자를 포함하는 값은, PII가 아닌, 공통 소프트웨어 버전 번호 부여 방식으로부터의 버전 번호이거나, 또는 PII인, 인터넷 프로토콜 버전 4(IPv4) 어드레스일 수 있다. 유사하게, "농부(farmer)" 값은, PII가 아닌 직업, 또는 PII인 이름을 나타낼 수 있다. 출력측에서는, 규정준수 담당자가 상기와 같은 모호한 값들이 PII인지의 여부를 추론해야만 한다. 모호한 값을 포함하는 메시지가 드물게 발생하는 메시지로 되는 경우에도, 문제가 악화된다. 분명한 결정이 이루어질 수 없을 때에는, 규정준수 담당자는 단순히 모호한 데이터를 포함하는 필드를 주의깊게 스크러빙하는 것으로 정해서 PII가 스크러빙되지 않는 일이 없도록 할 수 있다. 값들이 나타내는 정보의 유형이 무엇인지에 대해서는 개발자들이 알고 있기 때문에, 콘텍스트 정보가 입력측에 공급되는 경우에는 모호함이 제거된다.
값들이 PII로서 명확하게 식별될 수 있는 경우들에 있어서도, 다른 데이터에 영향을 주지 않고 PII를 스크러빙하는 것이 곤란하거나 불가능할 수 있다. 보통은 메시지 시스템의 구조화된 부분이 단지 소스 및 시간과 같은 정보를 저장하는 공간을 제공하기 때문에, PII를 포함하는 정보를 비구조화 데이터 필드에 패킹하는 것은 개발자들에게는 일반적인 것이다. 설명 필드(description field)의 포맷은 임의적이며 로그 메시지마다 달라질 수 있다. 보통, 개발자들은 정보의 다양한 부분들이 무엇을 나타내는지를 알고 있기 때문에, 비구조화 데이터 필드 내의 데이터는 레이블링되지 않는다. 예컨대, 비구조화 데이터 필드가 버전 번호 및 IPv4 어드레스를 모두 포함하는 상황에 있어서, 메시지의 구조 및/또는 현재 이용 가능한 종래의 스크러버에 대한 제한 때문에, 버전 번호를 남기고 IPv4 어드레스만을 스크러빙하는 것은 불가능하다. 결국, IPv4 어드레스가 보호될 필요가 있기 때문에, 버전 번호는 불필요하게 스크러빙되게 된다.
종래의 스크러버가 상기와 같은 이슈에 대처하기 위해 갱신될 수 있다고 해도, 갱신이 기존의 스크러빙 프로세스에 악영향을 주지 않을 수 있게, 또는 적어도 위험을 최소화하도록, 새로운 버전이 이용 가능해지기 전까지, 스크러버가 갱신, 테스트, 및 배치되는 동안은 대체로 상당한 지연(예컨대 수개월)이 발생한다. 또한, 갱신은 갱신을 촉발한 원래의 상황을 적절히 취급할 수 있지만, (예컨대, 메시지가 동일한 정보를 포함하지만, 상이하게 구조화되어 있을 때) 다른 로그들에서 직면하게 될 수 있는 테마에 대한 변화에는 대처하지 못할 수 있다. 스크러버 친화적 로그들을 입력측에서 취득된 콘텍스트 정보를 이용해서 생성하면, 상기와 같은 문제점들이 효과적으로 배제된다.
스크러버 친화적 개발 환경은, 한정되는 것은 아니지만, 형태, 제어 및 데이터 구조와 같은 스크러버 친화적 객체(130)와 연관된 PII 메타데이터(128)의 입력 및 추적을 허용한다. 스크러버 친화적 객체는 PII 메타데이터를 취급하도록 개선된 PII 메타데이터 특성 및/또는 방법을 포함할 수 있다. 스크러버 친화적 객체와 연관될 수 있는 PII 메타데이터의 몇 가지 예시는, 스크러버 친화적 객체가 PII를 저장할 수 있는지의 여부에 대한 지시(예컨대, PII 플래그), 객체에 의해 저장된 PII 데이터의 유형에 대한 지시(예컨대, 유형 일람), 및 PII 값에 대한 이름(친화적이거나, 유의미하거나, 및/또는 고유할 수 있음)을 포함하지만, 이들에 한정되는 것은 아니다. PII 메타데이터는, 개발자가 PII의 콘텐츠가 규정준수 담당자에 의해 검토되어야 한다고 지시하는 것을 허용하는 검토 플래그 및/또는 개발자가 데이터에 대한 추가 정보를 전달하는 것을 허용하는 코멘트 필드를 또한 포함할 수 있다. 예컨대, 개발자는 기존의 PII 유형에 의해 다뤄지지 않는 데이터를 기술하거나 또는 객체가 검토를 위해 플래깅된 이유를 설명할 수 있다.
PII 메타데이터는 콘텍스트 정보를 파라미터 키(132)의 형태로 자동으로 생성하는데 사용될 수 있다. 파라미터 키는 개발 환경에 의해 또는 로깅 에이전트에 의해 생성될 수 있다. 파라미터 키는, 한정되는 것은 아니지만, 스키마(schema), 범례(legend), 또는 키(key)를 포함하는 문서(예컨대, 스크러버 친화적 로그)에 포함된 정보, 특히 PII를 기술하는데 사용되는 임의의 메커니즘을 의미한다. 표 1은 메시지 식별자, 파라미터 이름, 및 데이터 유형을 특정하는 파라미터 키의 일례를 보여준다. 다른 실시예들에 있어서는, 파라미터 키가 추가 정보를 포함할 수 있다.
Figure 112016073428847-pct00001
"일반 사용자 정보(general user information)" 및 "미지(unknown)"와 같은 미분류/일반 유형들은 규정준수 권한, 품질 보증, 또는 그 밖의 유사한 담당자에게 메시지 파라미터에 대한 검토 필요성을 알리는 플래그로서 기능하며, 다른 특정한 열거 데이터 유형들에 의해 나타내질 수 없게 한다. 파라미터 키에 의해 제공된 콘텍스트 정보는, 규정준수 담당자가 기존의 로그들 내에서 패턴들을 찾으려고 하기보다는 개발자들에 의해 제공된 정보에 기초하여 로그들을 검토하고 스크러버 구성을 개발하는 것을 돕는다.
PII 유형은, 범위가 파라미터가 사용자 정보인지의 여부를 나타내는 불값(Boolean value)(예컨대, 참/거짓)에서부터 파라미터와 연관된 의도된 유형의 사용자 정보 또는 파라미터에 관한 다른 정보에 관한 상세를 제공하는 보다 포괄적인 일람에까지 이를 수 있다. 데이터 유형에 대한 적절한 구현의 예시로서는, 불값들, 일람 유형들, 사전들, 및 목록들을 포함하지만, 이들에 한정되는 것은 아니다. 표 2는 보다 일반적인 데이터 유형들의 일부를 다루는 PII 유형 일람의 일례를 보여준다.
Figure 112016073428847-pct00002
시간이 흐름에 따라, 사전에 지원되지 않은 데이터 유형들은 특수한 처리를 필요로 하는 기지의 사용자 정보의 각각의 부분에 대하여 콘텍스트 정보를 제공하기 위해 데이터 유형 일람에 추가될 수 있다. 일부 실시예에 있어서, 보다 넓은 범위의 데이터 유형들은 하위유형들이 상이한 처리를 필요로 하는 곳에서 보다 특정한 데이터 유형들로 세분될 수 있다. 예컨대, IP 어드레스 데이터 유형은 IP 버전 4(IPv4) 데이터 유형과 2개의 어드레스 유형들 사이에서 분화를 허용하는 IP 버전 6(IPv6) 데이터 유형으로 나뉠 수 있다. 데이터 유형 플래그는 스크러빙 에이전트, 및 로그 데이터를 소비할 필요가 있는 다른 시스템들에 의한 소비가 가능한 별도의 메타데이터 파일을 생성하는데 사용될 수 있다.
PII가 위치될 수 있는 곳을 가리키는 적절한 콘텍스트 정보는 스크러빙 에이전트에 의해 조사되어야만 하는 메시지의 수를 제한하는 것에 의해 스크러빙 프로세스의 최적화를 허용한다. 예컨대, 특정한 메시지 식별자를 가진 메시지만이 PII를 포함할 수 있음을 알게 되면, 스크러빙 에이전트가 다른 메시지들을 안전하게 건너뛰게 할 수 있고, 전체 로그를 조사하는 것에 비해 실질적으로 처리 시간이 줄어든다. 예상 PII의 유형을 알게 되면, 예상 PII 유형을 위치확인 및 스크러빙하기 위한 규칙을 스크러빙 에이전트가 선택 및 적용할 수 있게 하는데 사용될 수 있다. 구체적으로, 예상 PII 유형을 알게 되면, 스크러빙 에이전트는 메시지 내의 예상 PII 유형만을 찾거나 또는 예상 PII 유형을 지목하는 규칙을 개시함으로써 스크러빙을 최적화할 수 있고, 잠재적이지만 미지인 PII를 위치확인하기 위해 스크러빙 규칙 전체를 메시지에 적용하는 것에 비해 실질적으로 처리 시간이 줄어든다.
다양한 실시예들에 있어서, PII 유형 메타데이터는 스크러버 친화적 객체와 함께 움직여서, 개발 환경 내의 다른 컴포넌트들 또는 스크러버 친화적 애플리케이션들이 PII의 보호를 가능하게 하는 방식으로 스크러버 친화적 객체와 상호작용하는 것을 허용한다. 예컨대, 데이터를 파일에 로깅 또는 기입하는 방법은, 보호되지 않은 PII의 세이브를 커맨드가 분명하게 인가하지 않는 한, 데이터가 메타데이터에 기초하여 PII를 포함하고 로그 또는 파일에 기입하기 전에 PII를 보호(개정, 해시, 또는 암호화)한다는 점을 인식할 수 있다. 다양한 실시예들에 있어서, 로깅 에이전트는 PII 메타데이터에 응답한다. 결국, 로깅 에이전트는 생성되는 메시지에 나타나는, PII를 포함하는, 정보의 유형들을 알고 있다. 상기와 같은 로깅 에이전트는 생성 및 이용이 용이한 스크러버 친화적 로그들을 생성할 수 있고, PII 스크러빙 시스템에 의해 사용자 정보가 스크러빙의 대상으로 지목될 수 있게 하는 예측 가능한 포맷을 갖는다.
스크러버 친화적 개발 환경이 콘텍스트 정보를 수집하는 것에 대하여 생산 로그들의 검토에 내재하는 많은 제한들을 극복하기 위한 메커니즘을 제공하는 동안, 생산 로그는 스크러빙 에이전트용으로 적합한 기본 콘텍스트 정보를 취득하거나 및/또는 스크러버 구성 파일을 생성하기 위해 이용 가능한 옵션을 계속 검토한다. 이는, 개발 동안 콘텍스트 정보가 수집될 수 없을 때 특히 그러하다(예컨대, 애플리케이션들로부터의 로그들이 더 이상 개발되지 않거나, 조직의 통제를 벗어나서 개발됨).
도 2는 PII 스크러빙 시스템을 이용해서 PII를 보호하는 정교한 스크러빙 방법의 일 실시예의 고수준 순서도이다. 정교한 스크러빙 방법(200)은 로그 내에서 발견된 PII의 위치 및 유형에 관한 정보를 수집하는 콘텍스트 수집 작업(202)으로 시작한다. 콘텍스트 정보는, 로그가 생성되거나(예컨대, 개발자에 의해) 또는 기존의 로그들의 분석에 의해 결정(예컨대, 규정준수 담장자에 의해)될 때 제공될 수 있다.
구성 생성 작업(204)에 있어서, 콘텍스트 정보는 로그 또는 로그 유형과 연관된 스크러버 구성을 생성하는데 사용된다. 스크러버 구성은 로그 메시지 내에서 PII가 위치되는 장소 및 PII를 처리하는 방법에 대한 명령어를 포함한다. 스크러버 구성은, 스크러버 구성을 이용해서 스크러빙된 로그들의 분석에 기초하여, 시간의 흐름에 따라 개량될 수 있다. 스크러버 구성은 연관된 로그로부터의 메시지를 처리할 때 이용하는 스크러빙 에이전트에 대하여 이용 가능해진다. 다양한 실시예들에 있어서, 스크러버 구성은 집중형 구성 저장소에 저장된다. 일부 실시예에 있어서, 구성 저장소로부터의 스크러버 구성들의 복제본들은 스크러빙 에이전트를 기동하는 시스템에 배치되고, 스크러빙 에이전트는 스크러버 구성의 로컬 복제본을 이용한다. 기존의 스크러버 구성이 수정되거나 또는 새로운 스크러버 구성이 생성되는 경우에, 이들 스크러버 구성은 다른 시스템들에 재배치될 수 있는 구성 저장소에 업로드될 수 있다.
로그 생성 작업(206)에 있어서, 로깅 에이전트는 PII를 포함할 수 있는 메시지를 생성한다. 로그 생성 작업의 실시예들은 PII의 용이한 위치확인을 허용하는 파싱 가능한 메시지와 함께 스크러버 친화적 로그를 만든다. 예컨대, 로깅 에이전트는 호출자가 파라미터들의 위치를 선택하는 것을 허용하지 않을 수 있다. 즉, 로깅 에이전트는 단순히 비구조화 데이터 필드에 대한 개발자 생성 텍스트 문자열을 수용하지 않는다. 대신에, 로깅 에이전트는 개발자에게 로그 메시지의 콘텐츠를 정리된 형태로 공급하라고 권장할 수 있다. 예컨대, 로깅 에이전트는 호출자로부터 텍스트 메시지 및 일련의 이름/값 쌍을 수용할 수 있고 모든 구분자들이 입력 파라미터들에서 벗어나 있는 규격화된 메시지를 만들 수 있다. 다양한 실시예들에 있어서, 스크러버 친화적 로그들은 하기의 포맷에 합치하는 메시지를 포함할 수 있다:
{Free form text}:{Name1}={Value1};{Name2}={Value2};...
예컨대:
User logged in:User=jdoe;SourceIp=10.1.50.103
일부 실시예에 있어서, 로깅 에이전트는 텍스트 메시지의 길이를 제한하지만, 임의의 수의 이름/값 쌍들 또는 스크러버 친화적 객체들을 인수(argument)로서 수용할 수 있다. 이후, 로깅 에이전트는 비구조화 데이터 필드에 대하여 구분자(예컨대, 디폴트값 또는 개발자 공급 구분자)로 이름/값 쌍들을 규격화할 수 있다. 스크러버 친화적 객체들에 대한 기준이 인수로서 전달되면, 이름 인수가 불필요해질 수 있다. 대신에, 로깅 에이전트는 PII 메타데이터로부터 상응하는 이름을 취득할 수 있거나, 또는 PII 유형에 기초하여 표준화된 이름을 이용할 수 있다. 표준화 이름들은 메시지 내의 PII를 위치확인 및 보호하기 쉽게 만드는 로그 메시지를 더욱 예측 가능하게 만드는데 이용될 수 있다. 일례로서 일반 사용자 식별자 데이터 유형을 이용하면, 이름을 제공한 개발자는 "user_id", "user", "username", "user_name", "name", "login", 또는 그 밖의 기술자(descriptor)와 같은 이름을 선택할 수 있다. 비구조화 데이터 필드에서 레이블링되지 않은 데이터에 비해, 이들 이름은 스크러빙되어야 하는 PII를 식별하는 손쉬운 방법을 제공하지만, 추가 정보 없이 오기(misspellings)를 포함하는 잠재적인 변화는 자동 PII 스크러빙 로직의 유효성을 떨어뜨린다. 다양한 실시예들에 있어서, 파라미터 키는 데이터를 포함하는 특정 메시지를 가리키는 메시지 식별자, 상응하는 PII 값의 위치를 확인하는데 이용되는 이름(즉, 이름/값 쌍에서의 이름), 및 PII 유형을 포함하지만, 칼럼 인덱스와 같은 다른 정보가 포함될 수 있다. 파라미터 키는 PII와 연관된 이름과 데이터 유형을 식별 및 연결함으로써 표준화된 네이밍에 대한 대안을 제공한다.
메시지 제시 작업(208)은 처리 대상 로그 메시지를 스크러빙 에이전트에 제시한다. 로깅 에이전트가 메시지를 스크러빙 에이전트에 송신할 수 있거나, 또는 스크러빙 에이전트가 메시지를 로그로부터 검색할 수 있다. 메시지는 개별적으로 그룹 단위로 액세스될 수 있다. 예컨대, 로깅 에이전트는 각각의 메시지를 생성된 그대로 스크러빙 에이전트에 송신할 수 있다. 대안으로서, 로깅 에이전트는 데이터 스트림이 차단될 때의 수집 메시지들을 송신할 수 있다. 다른 예에 있어서, 스크러빙 에이전트는 주기적으로(예컨대, 매시간 또는 매일) 로그를 판독할 수 있으며, 마지막으로 로그가 판독되고 나서 추가된 임의의 신규 메시지를 처리할 수 있다.
스크러버 구성 입수 작업(210)은 메시지를 스크러빙하는데 필요한 스크러버 구성(즉, 규칙 및 콘텍스트 정보)을 스크러빙 에이전트에 제공한다. 일부 실시예에 있어서, 상이한 로그들 또는 로그 유형들에 대해서는 상이한 스크러버 구성들이 제공되고, 로그의 식별에 기초하여 적절한 스크러버 구성이 로딩된다. 다른 실시예들에 있어서, 글로벌 스크러버 구성은 다수의 로그들 또는 로그 유형들에 대한 규칙 세트들을 포함하고, 로그의 식별에 기초하여 적절한 규칙 세트가 적용된다.
메시지 스크러빙 작업(212)은 스크러버 구성에 의해 제공된 규칙 및 콘텍스트 정보를 이용해서 메시지 내의 PII를 위치확인 및 대체한다. 메시지 스크러빙 작업에 이어서, 선택적인 포스트-프로세싱 작업(214)은 메시지를 데이터 저장소에 저장할 준비를 할 수 있다. 다양한 실시예들에 있어서, 포스트-프로세싱 작업은 메시지들이 데이터 저장소에 추가되었을 때 메시지들을 적절히 해석하는데 필요한 추가 정보로 메시지에 주석을 다는 선택적인 주석달기 작업을 포함한다. 예컨대, 스크러빙 에이전트에 의해 수신된 메시지는 데이터 저장소에 추가되었을 때 메시지 시퀀스가 재구성될 수 있게 하는 시간 또는 날짜 스탬프를 포함하지 않을 수 있기 때문에, 주석달기 작업은 시간 또는 날짜 스탬프나, 시퀀스 번호를 메시지에 추가할 수 있다. 메시지에 추가될 수 있는 다른 정보는 메시지 소스(예컨대, 서버 식별자)와 같은 정보를 포함한다. 포스트-프로세싱 작업은, 또한 메시지를 데이터 저장소의 요건과 호환 가능한 포맷으로 위치결정하는 호환성 작업을 선택적으로 포함한다. 예컨대, 데이터 저장소는 모든 데이터가 문자열로서 저장될 것을 필요로 할 수 있다. 결국, 메시지는 데이터 저장소에 전송되기 전에 직렬화되거나, 부호화되거나, 아니면 규격화될 수 있다.
마지막으로, 보호된 기록 저장 작업(216)은 보호된 포맷의 PII를 가진 스크러빙된 메시지를 데이터 저장소에 송신한다. 데이터 저장소에서는, 스크러빙된 메시지들을 데이터의 다양한 소비자들이 이용할 수 있다.
도 3은 스크러버 친화적 개발 환경에서 PII에 관한 콘텍스트 정보를 수집하는 정교한 스크러빙 방법의 수집 콘텍스트 정보 작업의 일 실시예의 고수준 순서도이다. 스크러버 구성 방법(300)은 스크러버 친화적 개발 환경에서 PII의 유형에 관한 정보를 스크러버 친화적 객체에 연결하는 PII 메타데이터 생성 작업(302)으로 시작한다. 스크러버 친화적 객체가 생성되는 경우에, PII 유형은 검토를 필요로 하는 미분류/일반 유형이 디폴트로 될 수 있다. 개발자는 PII 유형을 수작업으로 갱신해서 객체에 의해 저장될 것 같은 또는 객체의 의해 저장되게 하려는 PII의 유형을 반영할 수 있다. PII 유형은 객체의 관련 속성이 변경될 때 자동으로 갱신될 수 있다. 예컨대, 전화 번호에 대응하는 필드 마스크 또는 포맷이 스크러버 친화적 제어부에 공급되면, PII 유형은 값이 전화 번호임을 나타내도록 변화되게 된다.
메타데이터 이식 작업(304)은 스크러버 친화적 객체와 함께 PII 메타데이터의 이동을 수반해서, 개발 환경에서의 컴포넌트들 또는 스크러버 친화적 애플리케이션들이 콘텍스트 정보를 이용할 수 있게 한다. 본 명세서에 기재된 바와 같이, 로깅 에이전트는 공급된 스크러버 구성에 기초하여 스크러빙 에이전트에 의한 정교한 스크러빙을 가능하게 하는 스크러버 친화적 로그를 생성하기 위해 로깅된 정보와 연관된 PII 메타데이터를 이용할 수 있다.
파라미터 키 생성 작업(306)은 기저의 PII 메타데이터에 기초하여 로깅된 애플리케이션에 의해 수집된 정보에 관한 상세를 제공하는 하나 이상의 파마미터 키(즉, 보고서)를 생성한다. 보고서는 모든 스크러버 친화적 객체들을 상세히 열거할 수 있거나, 또는 로깅 에이전트 또는 로깅 방법에 인수로서 전달되는 스크러버 친화적 객체에 한정될 수 있다. 다양한 실시예들에 있어서, 파라미터 키는 로깅된 애플리케이션이 컴파일링될 때 및/또는 요구 시에(on demand) 개발 환경에 의해 생성된다. 일부 실시예에 있어서, 파라미터 키는 로그가 생성됨에 따라 로깅된 애플리케이션에 의해 또는 로깅 에이전트에 의해 구축되며, 요구시에 만들어질 수 있다. 파라미터 키는 다수의 포맷으로 만들어질 수 있다. 예컨대, 인간 검토자용의 인간 친화적 포맷(예컨대, 표 형식) 및 로깅 에이전트 또는 스크러빙 에이전트와 같은 소프트웨어 애플리케이션용에 더 적합한 대안적인 포맷으로 나타나는 한 가지 버전이 제공될 수 있다. 대안적인 포맷으로서는, 쉼표 구분값(CSV) 및 확장 가능 마크업 언어(XML)를 포함하지만 이들에 한정되는 것은 아니다.
도 4는 메시지 스크러빙 작업(212)의 일 실시예의 고수준 순서도이다. 선택적인 사전-파싱 필터링 작업(402)은, 메시지 내의 콘텐츠가 스크러버 구성에서 특정된 필터 파라미터들(예컨대, 패턴)과 매칭되는지의 여부에 기초하여, 메시지가 처리되어야 하는지를 결정한다. 메시지 파싱 작업(404)은 스크러버 구성에서 특정된 파서 파라미터들에 기초하여 메시지를 필드들로 파싱한다. 프로세싱 작업(406)은 스크러버 구성에서 특정된 프로세서 파라미터들에 기초하여 PII를 보호한다. 필드 선택 작업(408)은 스크러빙할 필드를 선택한다. 프로세싱 작업은 스크러빙 조건들을 강제하거나 또는 선택된 필드가 처리되는 방법을 개량하는 하나 이상의 하위 작업을 수반할 수 있다. 하위 작업들은 선택된 필드 내의 PII의 위치를 확인하는데 사용된 필드 파싱 작업(410) 또는 검색 작업(412)을 포함할 수 있다. 필드 파싱 작업은 필드를 하위 필드들로 또는 이름/값 쌍들로 파싱한다. 검색 작업은 선택된 필드 내에서 스크러버 구성에서 특정된 필터 파라미터들(예컨대, 패턴)에 매칭되는 콘텐츠를 찾는 작업이다. 하위 작업들은 또한, 메시지 내의 필드의 콘텐츠가 스크러버 구성에서 특정된 필터 파라미터에 매칭되는지의 여부에 기초하여, 선택된 필드가 처리되어야 한다고 결정하는 필터링 작업(414)을 포함할 수 있다.
하위 작업들에 의해 강제된 임의의 조건들을 충족시키는 대상으로서, 대체 값 생성 작업(416)은 선택된 필드에서 PII에 대한 대체 값을 생성한다. 대체 기술의 선택은 흔히, 데이터 손실의 최소화, 성능에의 영향 저감, 및 데이터 팽창 관리 사이의 균형을 잡는 행위이다. 가용 대체 기술은, 개정, 정적 대입, 일반화, 해싱, 및 암호화를 예로서 포함할 수 있지만, 이들에 한정되는 것은 아니다.
개정은 PII가 여전히 존재하고 있다는 지시가 없는 메시지로부터 PII를 전부 삭제하는 행위이다. 개정은 매우 빠르기는 하지만 적절하지 않은 경우가 많다. 정적 대입은 PII가 제거되었음을 나타내는 정적 마커로 PII를 대체하지만 PII 값이 무엇이었는지에 대한 어떠한 지시도 제공하지 않는 행위이다. 정적 대입은 마찬가지로 매우 빠르고 검출 가능하기는 하지만, PII에 관련된 이용 가능한 정보를 남기지 않는다.
일반화는 개인을 식별함이 없이 개인이 속하는 그룹 또는 카테고리의 식별을 허용할 수 있는 일반화된 값으로 PII를 대체하는 행위이다. 일반화는 PII의 부분들을 임의 문자 기호(wildcards)로 대체할 수 있거나, 또는 개인들을 그룹들에 맵핑하기 위해 룩업(lookup) 테이블 또는 기능을 이용할 수 있다. 예컨대, 전화 번호는 마지막 4자리 숫자를 별표로 대체함으로써 일반화될 수 있거나, 또는 IP 어드레스는 사용자의 IP 어드레스보다는 사용자의 일반화된 위치(즉, 지역)를 노출시키기 위해 IP 어드레스와 연관된 지역을 찾는 룩업으로 일반화될 수 있다. 일반화는 일반적으로 이전 상태로 되돌릴 수 없으며 약간의 정보 손실을 초래한다.
해싱은 PII를 해시 코드로 대체하는 행위이다. 해시 코드는 사용자를 나타내기는 하지만 식별하지는 못하는 일방향 해시를 이용해서 생성된 고유한 값이다. 즉, 각각의 서로 다른 해시 코드는 서로 다른 사용자를 식별하지만, 해시 코드 자체는 실제 사용자 정보를 전혀 제공하지 않는다. 기준 값은 공인된 사용자가 로그들에서 상응하는 항목들을 찾는 것을 허용하는 해시 키를 이용해서 해싱된 PII와 상관될 수 있다. 예컨대, 특정 사용자와 연관된 로그 항목들의 위치를 확인하기 위해, 해당 사용자에 대한 사용자 id는 원래 로그들을 해싱하는데 사용된 동일 키를 이용해서 해싱될 수 있다. 이후, 로그들은 사용자 이름 대신 해당 해시 키로 검색될 수 있다.
암호화는 PII를 암호화해서 보호하기 위해 암호(cipher)를 적용하는 행위이다. 복호 키는 암호 텍스트를 복호해서, 보호된 PII에 액세스하는데 필요하다. 암호화는 원래의 PII를 보존하기는 하지만, 일반적으로 처리 비용이 가장 고가이다.
다양한 실시예들에 있어서, 개정 기술들은 조합으로 또는 복수로 이용될 수 있다. 예컨대, 단일의 PII 값이 다수의 일반화를 가질 수 있기 때문에, PII 개정은 개정마다 하나 이상의 일반화를 지원해야 한다. 다수의 대체 기술을 이용하면, 스크러빙된 데이터가 다수의 포맷으로 제공되고, 액세스 레벨들 및 요구들이 상이한 담당자가 PII를 필요한 양만 노출하면서 데이터를 이용할 수 있게 된다.
PII의 정교한 스크러빙은, PII에 대한 액세스 없이, 또는 일부 경우에는 제한된 액세스로, 소비자들이 스크러빙된 로그로부터 다량의 정보를 입수하는 것을 허용한다. 일부 소비자는 사용자의 수를 입수하거나 또는 특정 지역 또는 특정 사용자에 대한 정보를 얻는 것만이 필요할 수 있다. 흔히, 필요한 정보는 해시 값들 사이의 상관관계를 이용해서 취득될 수 있다. 예컨대, 이렇게 스크러빙된 경로를 포함하는 로그 메시지는, 데이터를 포함할 수 있는 모든 가능한 경로를 검색하는 대신에, 특정 사용자 이름(예컨대, jdoe) 또는 파일명(예컨대, letter to smith.docx)에 대응하는 해시 값의 검색에 의해 회신된다. 그러나, 이것은 해시들이 PII에 대해 단독으로 만들어지는 경우의 작업일 뿐이다. PII의 예를 보여주는 하기의 로그 메시지들이 비구조화 데이터에 둘러싸인다는 것을 고려한다:
User jdoe logged in. (사용자 jdoe가 로그인)
Created file c:\users\jdoe\documents\test.docx. (c:\users\jdoe\documents\test.docx 파일 생성)
User registered email address jdoe@hotmail.com. (사용자가 이메일 어드레스 jdoe@hotmail.com을 등록)
예측 가능하고 효율적으로 PII의 위치를 확인하는 과정 없이, 전체 값이 보호될 것이다. "jdoe", "c:\users\jdoe\documents\test.docx", 및 "jdoe@hotmail.com"에 대한 해시들은 완전히 다르며 상관될 수 없다. 모든 메시지가 동일한 사용자를 의미하더라도, 이 데이터를 찾기 위해 상기 해시들을 이용할 방법이 없다. 이 데이터를 이용하기 위해, 소비자는 그것이 포함할 수 있는 임의의 다른 PII를 노출시키는 각각의 메시지를 다운로드해서 복호해야만 한다.
스크러버 구성에 의해 제공된 능력 및 유연성은, PII가 비구조화 데이터 내의 비-개인적 정보와 혼합될 때조차, 스크러빙 에이전트가 대체용 PII 만을 정확하게 지목하고 주변의 비-개인적 정보를 본래 그대로 남기도록 구성되는 것을 허용한다. 예컨대, 사용자 프로필 특정 파일명을 갖는 운영 체제로부터 로그를 처리할 때, 스크러빙 에이전트는 사용자에게 특정되는 경로의 부분들(예컨대, 사용자명 및 파일명)만을 스크러빙하도록 구성될 수 있다. 따라서, 경로 "c:\users\jdoe\documents\letter to smith.docx"는, 단일의 개정으로 전체 경로가 보호되는 경우에 비해, 보다 많은 정보를 온전하게 남기고 보다 많은 분석 기회를 제공하는 "c:\users\###\documents\###"로 된다. 유사하게, 데이터가 이메일 어드레스를 나타낸다는 것을 알게 되면, 사용자명 및 도메인명은 독립적으로 개정될 수 있기 때문에, 두 경로가 개별적으로 상관될 수 있다. 또한, 스크러버 친화적인 로그들을 이용하면, PII 스크러빙 시스템의 정교한 스크러빙 능력이 더욱 개선된다.
일부 실시예에 있어서, 스크러빙 에이전트는 계정명 및 IP 어드레스와 같은 빈번하게 반복되는 사용자 정보에 대하여 필요해질 때마다 PII를 계산 및 저장하기보다는, PII에 대한 기준을 저장한다. PII에 대한 기준을 저장하는 효율은, 예컨대 PII 스크러빙 전용의 전체 시스템을 갖는 집중형 스크러빙 에이전트에서 스크러빙 에이전트에 의해 처리되는 데이터량이 증가함에 따라 증가한다. 다양한 실시예들에 있어서, 스크러빙 에이전트는 사전에 암호화된 값에 대한 기준의 룩업에 사용되는 암호화된 PII 맵에 대한 PII 해시를 포함한다. 즉, 사전에 직면되지 않은 PII 만이 암호화되어야 해서, 처리 시간이 줄어든다. 스크러빙된 로그들에서의 팽창은 해시 및 암호 텍스트를 대신해서 GUID 스타일 식별자를 저장함으로써 감소될 수 있다. 적중률을 실질적으로 향상시키기 위해 정규화된 PII 값들을 이용함으로써 전체 효율이 증가될 수 있지만, 원래의 PII를 대신하여 정규화된 PII로 로그를 재현할 때에는, 약간의 상세의 잠재적인 손실을 대가로 치를 수 있다.
부분열(substring)을 PII 태그로 대체하면, 문자열이 PII 태그에 대해서 검색되어야 하기 때문에, 보고가 더욱 복잡해지고 비효율적으로 된다. 효율 손실을 최소화하기 위해, 스크러빙 에이전트의 실시예들은 독립적으로 검색될 수 있는 PII를 별도의 필드에 위치결정한다. 일부 실시예는 PII의 위치를 가리키는 마커를 스크러빙된 데이터에 위치시키고 문자열의 서두에 PII 대체를 저장한다. 이는, 문자열이 보호된 PII를 포함한다고 보고 시스템이 신속하게 식별해서 상관관계가 응답 시간을 증가시키는데 필요해질 때 즉시 해시의 찾기를 개시할 수 있게 한다.
파라미터 키들 및 스크러버 친화적 로그들은 유용한 컴포넌트이지만, 이들을 항상 이용할 수 있는 것은 아니다. 예컨대, 스크러빙될 로그들은 조직이 통제할 수 없는 소스들에서 비롯될 수 있으며, 그에 따라 스크러버 친화적 로그들로서 및/또는 파라미터 키들과 함께 제공되지 않는다. 적절한 콘텍스트 정보의 부재시 또는 예상 PII 유형이 발견되지 않을 때의 스크러빙 에이전트의 작업은 PII 보호에 있어서의 완전성과 로그의 스크러빙에 있어서의 효율(즉, 처리 시간의 양) 사이의 선택된 균형에 의존한다. 다양한 실시예들에 있어서, 스크러빙 에이전트는 실제 PII 유형을 결정하려고 시도할 수 있으며, 예상 PII 유형이 발견되지 않을 경우에는 상응하는 스크러빙 규칙을 적용할 수 있다. 다른 실시예들에 있어서, 스크러빙 에이전트는 단지 예상 PII 유형에 대한 메시지들을 조사하고, 예상 PII 유형이 발견되지 않을 경우에는 단순히 다음 메시지로 넘어간다.
대체 값의 생성에 이어서, 스크러빙된 메시지 재구성 작업(418)은 PII에 대한 대체 값들을 대입하여 메시지를 재구성한다.
도 5a는 상응하는 스크러버 구성으로 제 1 로그 상에서 PII 스크러빙 시스템의 일 실시예에 의해 수행된 스크러빙 작업을 나타내는 흐름도이다. 나타내진 실시예에 있어서, 스크러빙 에이전트는 제 1 로그(500a) 및 상응하는 스크러버 구성(502a)을 입력으로 수신한다. 스크러버 구성은 상응하는 로그에 적용 가능한 스크러빙 규칙, 즉 규칙 세트(504a)를 포함한다. 나타내진 실시예는, 한정되는 것은 아니지만, XML과 같은 마크업 언어를 이용해서 구현된 스크러버 구성을 보여주지만, 스크러버 구성은 다른 포맷들로 구현될 수 있다.
다양한 실시예들에 있어서, 상응하는 스크러버 구성에는 로깅 에이전트에 의해 로그가 제공된다. 일부 실시예에 있어서, 스크러빙 에이전트는 로그가 수신되면, 가용 스크러버 구성들(SCs)의 저장소로부터 상응하는 스크러버 구성을 선택한다. 이러한 상황에서는, 로깅 에이전트가 로그 식별자를 제공할 수 있다. 예컨대, 로깅 에이전트가 스크러빙 에이전트에의 접속시에 로그 식별자를 제공할 수 있거나, 및/또는 로그 식별자가 로그에 포함될 수 있다. 로그 식별자는 로그, 로그 유형, 로그를 생성한 로깅 에이전트, 상응하는 스크러버 구성, 또는 로그 처리시에 스크러빙 에이전트가 이용해야 하는 상응하는 스크러버 구성과 로그를 매칭시키는데 사용될 수 있는 임의의 다른 정보를 가리키는 일반적인 또는 특정한 식별자일 수 있다. 상응하는 스크러버 구성은 로그 식별자를 스크러버 구성 내의 구성 식별자(506a)와 매칭시킴으로써 선택될 수 있다. 나타내진 실시예에 있어서, 로그의 제 1 라인은 로그 식별자(508a)를 수용한다.
구성 식별자는 또한, 로그 식별자-특정 규칙 세트에 대한 컨테이너로 기능할 수도 있다. 일부 실시예에 있어서, 스크러버 구성은 다수의 로그에 대한 규칙 세트들을 포함할 수 있으며, 각각의 규칙 세트는 고유한 구성 식별자를 이용해서 식별되고, 스크러빙 에이전트는 구성 식별자와 로그 식별자를 매칭시킴으로써 적절한 규칙 세트를 선택한다.
PII 스크러빙 시스템의 실시예들은 신호(510a)를 이용해서, 스크러버 구성이 규칙 세트를 포함한다는 것을 나타낸다. 상기 신호가 스크러버 구성에 존재하지 않으면, 스크러빙 에이전트는 오퍼레이터 검토를 위해 로그를 플래깅하거나, 로그 식별자에 기초하여 디폴트(예컨대, 하드-코딩된) 스크러빙 규칙으로 되돌아가거나, 및/또는 로그를 무시한다. 다양한 실시예들에 있어서, 규칙 세트는 상기 신호로서 루트 파싱 규칙(root parsing rule)을 포함한다. 루트 파싱 규칙은 로그의 각 라인을 필드들로 분리하는 방법에 대한 명령어를 포함한다. 예컨대, 루트 파싱 규칙은 각각의 메시지를 필드들로 분리하기 위해 스크러빙 에이전트에 의해 이용되는 구분자를 포함하거나, 또는 공통 메시지 포맷을 필드들로 분리하기 위해 미리 정해진 파싱 알고리즘을 이용하도록 스크러빙 에이전트에 지시하는 식별자를 포함할 수 있다. 개개의 필드는 그들의 인덱스에 의해 지정 가능하다. 일부 실시예에 있어서, 미리 정해진 파싱 알고리즘은 특정 필드를 지정하는데 사용될 수 있는 필드명을 제공할 수 있다. 루트 파싱 규칙은 정해진 규칙 세트에 대한 규칙들을 모두 포함하는 주처리 그룹으로서 효과적으로 동작한다.
설명을 위한 용도로, 간략화된 버전의 인터넷 정보 로그가 대표적인 로그로서 도시된다. 인터넷 정보 로그는 스페이스(space)로 구분된 6개의 칼럼(즉, 필드)을 갖는다. 제 3 칼럼은 PII가 고려되는 IP 어드레스를 포함하고, 제 6 칼럼은 쿼리 문자열을 포함하며, 그중 일부는 PII를 잠재적으로 포함한다.
루트 파싱 규칙은, 스페이스(" ")를 구분자로서 이용해서 각각의 메시지가 필드들로 파싱되어야 한다고 특정한다. 필터(512a)는, 메시지들이 파싱되기 전에 평가되어야 하고 "#" 문자(예컨대, 코멘트)로 시작하는 임의의 메시지가 스킵되어야 한다고 특정한다.
제 1 프로세서(514a)는 제 3 필드에서 동작하는 조건부 규칙이며 검색 파서(516a)를 포함한다. 검색 파서는 스크러빙 에이전트에게 타깃 필드 내의 선택된 패턴에 매칭되는 것을 찾으라고 지시한다. 편의 및 일관성을 위해, 스크러빙 에이전트는 선택된 데이터 유형들에 대하여 미리 정해진 검색 파서들을 구비할 수 있다. 미리 정해진 검색 파서로서는, 일반적인 인터넷 프로토콜(IP) 어드레스, 버전 특정 IP 어드레스(예컨대, IPv4 및 IPv6 어드레스), 및 SMTP 어드레스와 같은 공통 데이터 유형들을 예로서 포함하지만, 이들에 한정되는 것은 아니다. 일부 실시예에 있어서, 사용자 지정 검색 파서는 검색 패턴(예컨대, 정규 표현)을 규정하기 위해 표현 언어를 이용하여 스크러버 구성에서 특정될 수 있다.
검색 파서가 포함된 것이 결과 프로세서(518a)이다. 결과 프로세서는 검색 프로세서에 의해 회신된 결과들이 어떻게 취급되는지를 특정한다. 결과 프로세서는 보호되어야 하는 선택된 패턴에 매칭되는 데이터의 인스턴스들을 특정할 수 있다. 예컨대, 결과 프로세서는 필드 내의 데이터 유형의 모든 인스턴스들이 또는 필드 내의 데이터 유형의 제 2 인스턴스만이 보호되어야 한다고 특정할 수 있다. 결과 프로세서는 또한, 매칭되는 데이터 항목의 보호되어야 하는 부분을 특정할 수도 있다. 예컨대, IPv4 어드레스의 경우에, 결과 프로세서는 스크러빙 에이전트에게 최종 세그먼트만을 스크러빙하라고 지시할 수 있다. 나타내진 실시예에 있어서, 검색 파서는 스크러빙 에이전트에게 타깃 필드에서 IPv4 어드레스들을 찾으라고 지시하고, 결과 프로세서는 검색 파서에 의해 회신된 각각의 IPv4 어드레스가 전체 어드레스를 해싱함으로써 스크러빙되어야 한다고 특정한다.
규칙 세트도 프로세싱 그룹(520a)을 규정한다. 프로세싱 그룹은 스크러빙 에이전트에게 규칙들로 이루어진 그룹을 함께 처리하라고 지시한다. 예컨대, 프로세싱 그룹은 특정 기준을 충족하는 메시지들을 선택하는 필터와 선택된 메시지들에 대해 작동하는 프로세서를 포함할 수 있다. 나타내진 실시예에 있어서, 프로세싱 그룹 내의 필터(522a)는 제 5 필드에서 특정 값들을 포함하는 메시지들에만 프로세싱 그룹 내의 추가적인 규칙이 적용된다고 특정한다. 프로세싱 그룹 내의 상위 레벨 프로세서(524a)는 포함된 규칙들이 제 6 필드에 대하여 동작한다고 특정한다. 상위 레벨 프로세서에 의하면, 필드 파서(526a)는 타깃 필드가 이름/값 쌍들로 파싱되어야 한다고 특정하고, 이때 이름/값 쌍들은 앰퍼샌드("&")로 구분되고, 쌍 내의 이름들과 값들은 등호("=")로 구분된다. 파서 결과 프로세서(528a)는 이름 "UserId"와 쌍을 이룬 값만이 값의 해싱에 의해 스크러빙되어야 한다고 특정한다. 인터넷 정보 로그로부터의 기록들에 대하여 이 스크러버 구성을 기동시키면, 보호된 기록들이 출력(530a)으로서 만들어진다. 가독성을 위해, 길이가 긴 PII 대체들(예컨대, 해시 값들)은 "###"로 표현된다.
도 5b는 이전의 예시로부터 동일한 스크러버 구성을 이용해서 제 2 로그 상에서 PII 스크러빙 시스템의 일 실시예에 의해 수행된 스크러빙 작업을 나타내는 흐름도이다. 제 2 인터넷 정보 로그(500b)는 스페이스로 구분된 6개의 필드를 갖는다. 제 1 인터넷 정보 로그에서와 마찬가지로, 각각의 메시지는 PII가 고려되는 IP 어드레스를 포함하고, 제 6 칼럼은 쿼리 문자열을 포함하며, 그중 일부는 PII를 잠재적으로 포함하지만, 제 2 인터넷 정보 로그 내의 메시지들은 작지만 상당한 측면들에 있어서 상이하다.
인터넷 정보 로그로부터의 기록들에 대하여 스크러버 구성을 기동시키면, 보호된 기록들이 출력(530b)으로서 만들어진다. 이 경우에, IP 어드레스는 스크러빙되지 않는 제 2 필드에 나타난다. 제 3 필드 내의 서버명은 IPv4 검색 파서에 의해 검색된 패턴에 매칭되지 않기 때문에, 스크러빙되지 않는다. 단순 필드 대체 프로세서가 준비되어 있으면(예컨대, <Processor FieldIndex="3" ReplacementStrategy="HashOnly" />), 서버명은 불필요하게 스크러빙되게 된다. 마지막으로, 이름 "User"는 규칙에 매칭되지 않고, 연관된 값은 스크러빙되지 않는다. 가독성을 위해, 길이가 긴 PII 대체들은 "###"로 표현된다.
도 5c는 수정된 버전의 스크러버 구성을 이용해서 제 2 로그 상에서 PII 스크러빙 시스템의 일 실시예에 의해 수행된 스크러빙 작업의 흐름도이다. 이 예에 있어서, 수정된 스크러버 구성(502c)은 필드 5에서 IPv4 어드레스에 대하여 동작하는 추가적인 프로세서(532c)를 포함한다. 또한, 이름 "User"와 쌍을 이루는 값이 스크러빙되어야 한다고 특정하는 결과 프로세서(534c)는 프로세싱 그룹에 추가되어 있다. 결과적으로, 제 2 프로세서는 비로소 "UserId" 및 "User" 값을 모두 스크러빙한다. 다른 변경들을 이용해서 동일한 결과를 달성할 수 있다. 예컨대, 스크러버가 임의 문자 기호를 수용하는 경우에는, "User*"(여기서, "*"이 임의 문자 기호임)과 같은 파라미터를 원래의 조건부 프로세서에서 이용해서 동일한 결과를 달성했을 수도 있다. 제 2 인터넷 정보 로그로부터의 기록들에 대한 수정된 스크러버 구성의 기동시에 얻은 출력(530c)은 비로소 PII가 보호되게 하는 한편, PII 스크러빙 시스템의 유연성을 나타낸다. 앞서와 같이, 길이가 긴 PII 대체들(예컨대, 해시 값들)은 가독성을 위해 "###"로 표현된다.
도 5d는 디폴트 스크러빙 규칙으로 돌아간 결과를 나타내는 PII 스크러빙 시스템의 일 실시예에 의해 수행된 스크러빙 작업의 흐름도이다. 이 경우에 있어서, 스크러버 구성(502d)은 규칙 세트를 제공하지 않는다. PII 스크러빙 시스템의 실시예들은 종래의 스크러버로부터의 하드-코딩된 로직을 포함할 수 있거나 또는 종래의 스크러버를 베이스로서 이용해서 구축될 수 있다. 이상적인 것은 아니지만, 종래의 스크러버로부터의 하드-코딩된 로직은 규칙 세트가 제공되지 않을 경우 PII 스크러빙 시스템이 PII를 계속해서 스크러빙할 수 있게 한다.
이 특정한 인터넷 정보 로그에 대한 디폴트 스크러빙 규칙은 항상 제 3 및 제 6 칼럼(즉, IP 어드레스 및 쿼리 문자열)을 스크러빙하는 하드-코딩된 로직을 구비한다. 디폴트 스크러빙 규칙은 스크러빙 에이전트가 특정 유형들의 PII를 인식하는 것을 허용할 수 있지만, PII 유형을 특정할 기회는 없다. IP 어드레스의 스크러빙은 상당히 정례적인 태스크인데 반해, 쿼리 문자열의 스크러빙은 별개의 문제이다. 결국, 공교롭게도 디폴트 스크러빙 규칙이 쿼리 문자열을 다루지 않는 한, 전체 쿼리 문자열은 PII의 단일 인스턴스로서 스크러빙(예컨대, 암호화 및 해싱)되게 된다. 더욱이, 특정 쿼리 문자열만이 PII를 포함하는 상태에서, 쿼리 문자열 전부가 스크러빙되게 된다. 디폴트 스크러빙 규칙을 이용해서 얻은 출력(530d)은, 일부 행들만이 그리고 쿼리 문자열들 중 일부만이 PII를 포함하고 있더라도, 모든 쿼리 문자열의 전체 값을 혼란스럽게 만든다. 마찬가지로, 가독성을 위해, 길이가 긴 PII 대체들(예컨대, 해시 값들)은 "###"로 표현된다.
디폴트 스크러빙 규칙을 이용하는 이 상황은 또한, 중요치 않은 데이터를 보호하는 행위인 오버-스크러빙의 전형적인 예를 보여준다. 오버-스크러빙은 현재, 프로세서 시간을 소모하기 때문에 데이터를 처리, 저장, 및 이용하는 비용이 많이 들게 하는 최대 장본인이고, 로그 사이즈를 증가시키며, 쿼리 문자열에 포함된 데이터를 이용하는 보고서를 기동하는 것을 불가능하게 만든다. 로그 사이즈가 증가하는 이유는, PII의 각각의 인스턴스가, 아무리 작은 것이라 할지라도, 하기와 비슷한 대체 값의 생성을 초래한다는 점이다:
Figure 112016073428847-pct00003
오버-스크러빙에 대한 2가지 공통된 이유는 어느 열 또는 칼럼이 실제로 PII를 포함하는지를 밝히지 못한다는 점과, PII를 바로 지목하는 효율적인 방식이 부족하다는 점이다. 결국, 데이터의 상당 부분은 업로드된 데이터를 통한 PII 누출의 위험을 피하기 위해 결국 스크러빙되게 된다.
본원의 요지는 시스템, 장치, 및 그 밖의 제조품으로서, 또는 방법으로서 다양한 실시예들에서 실시될 수 있다. 실시예들은 하드웨어, 소프트웨어, 컴퓨터 판독가능 매체, 또는 그 조합으로서 구현될 수 있다. 본 명세서에 기재된 실시예들 및 기능들은, 데스크탑 컴퓨터 시스템, 유선 및 무선 컴퓨팅 시스템, 모바일 컴퓨팅 시스템(예컨대, 모바일 전화기, 넷북, 태블릿 또는 슬레이트 타입 컴퓨터, 노트북 컴퓨터, 및 랩탑 컴퓨터), 핸드헬드 장치, 멀티프로세서 시스템, 마이크로프로세서-기반의 또는 프로그램 가능한 가전제품, 미니컴퓨터, 및 메인프레임 컴퓨터를 제한 없이 포함하는 다수의 컴퓨팅 시스템을 통해 동작할 수 있다.
다양한 유형의 사용자 인터페이스 및 정보가 하나 이상의 컴퓨팅 장치와 연관된 온보드 컴퓨팅 장치 디스플레이를 통해 또는 원격 디스플레이 유닛을 통해 디스플레이될 수 있다. 예컨대, 다양한 유형의 사용자 인터페이스 및 정보는, 다양한 유형의 사용자 인터페이스 및 정보가 투영되는 벽 표면에 대하여 디스플레이 및 상호작용될 수 있다. 본 발명의 실시예들이 실시될 수 있게 하는 다수의 컴퓨팅 시스템과의 상호작용은 키스트로크(keystroke) 입력, 터치 스크린 입력, 음성 또는 그 밖의 오디오 입력, 제스처 입력을 포함하고, 여기서 연관 컴퓨팅 장치에는, 컴퓨팅 장치의 기능을 제어하기 위한 사용자 제스처 등을 캡처 및 해석하는 검출(예컨대, 카메라) 기능이 갖춰진다.
도 6 및 도 7과, 연관된 상세한 설명은 본 발명의 실시예들이 실시될 수 있는 다양한 동작 환경의 논의를 제공한다. 그러나, 나타내지고 논의된 장치들 및 시스템들은 예시 및 설명을 위한 것이고, 상술한 발명의 실시예들을 실시하는데 이용될 수 있는 대다수의 컴퓨팅 장치 구성을 제한하는 것은 아니다.
도 6은 본 발명의 실시예들이 실시될 수 있는 컴퓨팅 장치(600)의 물리적 컴포넌트(즉, 하드웨어)를 나타내는 블록도이다. 후술되는 컴퓨팅 장치 컴포넌트는, 한정되는 것은 아니지만, 개인용 컴퓨터, 태블릿 컴퓨터, 표면 컴퓨터, 및 스마트폰을 포함하는 컴퓨팅 장치, 또는 본 명세서에서 논의되는 임의의 다른 컴퓨팅 장치를 실현하는데 적합한 것일 수 있다. 기본 구성에 있어서, 컴퓨팅 장치(600)는 적어도 하나의 프로세싱 유닛(602) 및 시스템 메모리(604)를 포함할 수 있다. 컴퓨팅 장치의 구성 및 유형에 따라, 시스템 메모리(604)는 휘발성 스토리지(예컨대, 랜덤 액세스 메모리), 비휘발성 스토리지(예컨대, 리드 온리 메모리), 플래시 메모리, 또는 상기와 같은 메모리들의 임의의 조합을 포함할 수 있지만, 이들에 한정되는 것은 아니다. 시스템 메모리(604)는 운영 체제(605)와, 로깅 에이전트(102), 스크러빙 에이전트(112), 및 개발 환경(130)과 같은 소프트웨어 애플리케이션(620)을 기동하기에 적합한 하나 이상의 프로그램 모듈(606)을 포함할 수 있다. 예컨대, 운영 체제(605)는 컴퓨팅 장치(600)의 작동을 제어하기에 적합한 것일 수 있다. 또한, 본 발명의 실시예들은 그래픽 라이브러리, 다른 운영 체제들, 또는 임의의 다른 애플리케이션 프로그램과 함께 실시될 수 있으며, 어느 특정한 애플리케이션 또는 시스템에 한정되지 않는다. 이 기본 구성을 점선(608) 내의 컴포넌트들로 나타낸다. 컴퓨팅 장치(600)는 추가적인 특징구성들 또는 기능을 구비할 수 있다. 예컨대, 컴퓨팅 장치(600)는 또한, 예를 들면 자기 디스크, 광 디스크, 또는 테이프와 같은 추가적인 데이터 스토리지 장치(착탈식 및/또는 비착탈식)를 포함할 수 있다. 상기와 같은 추가적인 스토리지를 착탈식 스토리지 장치(609) 및 비착탈식 스토리지 장치(610)로 나타낸다.
상술한 바와 같이, 다수의 프로그램 모듈 및 데이터 파일은 시스템 메모리(604)에 저장될 수 있다. 프로세싱 유닛(602) 상에서의 실행 동안, 소프트웨어 애플리케이션(620)은, 한정되는 것은 아니지만, 정교한 스크러빙 방법(300)의 단계들을 하나 이상 포함하는 프로세스를 수행할 수 있다. 본 발명의 실시예들에 따라 이용될 수 있는 다른 프로그램 모듈들은 전자 메일 및 연락처 애플리케이션, 워드 프로세싱 애플리케이션, 스프레드시트 애플리케이션, 데이터베이스 애플리케이션, 슬라이드 프리젠테이션 애플리케이션, 도면 또는 컴퓨터-이용 애플리케이션 프로그램 등을 포함할 수 있다.
또한, 본 발명의 실시예들은 분리형 전자 소자를 포함하는 전자 회로, 논리 게이트를 포함하는 패키지형 또는 통합형 전자 칩, 마이크로프로세서를 이용하는 회로에서, 또는 전자 소자 또는 마이크로프로세서를 포함하는 단일 칩 상에서 실시될 수 있다. 예컨대, 본 발명의 실시예들은 각각의 또는 많은 예시 컴포넌트들이 단일의 집적 회로에 통합될 수 있는 시스템-온-칩(SOC)에 의해 실시될 수 있다. 상기와 같은 SOC 장치는 하나 이상의 프로세싱 유닛, 그래픽 유닛, 통신 유닛, 시스템 가상화 유닛 및 다양한 애플리케이션 기능을 포함할 수 있으며, 이들은 모두 칩 기판에 단일의 집적 회로로서 통합(또는 "기록(burned)")된다. SOC를 통한 연산시에, 본 명세서에 기재된 소프트웨어 애플리케이션(620)에 관한 기능은 단일의 집적 회로(칩) 상의 컴퓨팅 장치(600)의 다른 컴포넌트들과 통합된 응용 주문형 로직을 통해 연산될 수 있다. 본 발명의 실시예들은 또한, 예컨대 한정되는 것은 아니지만, 기계, 광학, 유체, 및 양자 기술을 포함하는, 예컨대 AND, OR, 및 NOT과 같은 논리 연산을 수행할 수 있는 다른 기술들을 이용해서 실시될 수도 있다. 또한, 본 발명의 실시예들은 범용 컴퓨터 내에서 또는 임의의 다른 회로 또는 시스템에서 실시될 수 있다.
컴퓨팅 장치(600)는 또한, 키보드, 마우스, 펜, 사운드 입력 장치, 터치 입력 장치 등과 같은 하나 이상의 입력 장치(들)(612)를 구비할 수 있다. 디스플레이, 스피커, 프린터 등과 같은 출력 장치(들)(614)도 포함될 수 있다. 전술한 장치들은 예시이며, 다른 장치들이 이용될 수 있다. 컴퓨팅 장치(600)는 다른 컴퓨팅 장치(618)와의 통신을 가능하게 하는 하나 이상의 통신 접속부(616)를 포함할 수 있다. 적절한 통신 접속부(616)로서는, RF 송신기, 수신기, 및/또는 트랜시버 회로; 범용 직렬 버스(USB), 병렬, 및/또는 직렬 포트를 예로서 포함하지만, 이들에 한정되는 것은 아니다.
본 명세서에서 사용되는 컴퓨터 판독가능 매체라는 용어는 컴퓨터 스토리지 매체를 포함할 수 있다. 컴퓨터 스토리지 매체는, 컴퓨터 판독가능 명령어, 데이터 구조, 또는 프로그램 모듈과 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성의, 착탈식 및 비착탈식 매체를 포함할 수 있다. 시스템 메모리(604), 착탈식 스토리지 장치(609), 및 비착탈식 스토리지 장치(610)가 모두 컴퓨터 스토리지 매체(즉, 메모리 스토리지)의 예이다. 컴퓨터 스토리지 매체는 랜덤 액세스 메모리(RAM), 리드 온리 메모리(ROM), 전기적 소거 및 프로그램 가능 리드 온리 메모리(EEPROM), 플래시 메모리 또는 그 밖의 메모리 기술, 콤팩트 디스크 리드 온리 메모리(CD-ROM), 디지털 다기능 디스크(DVD) 또는 그 밖의 광학 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 스토리지 또는 그 밖의 자기 스토리지 장치, 또는 정보를 저장하는데 사용될 수 있으며 컴퓨팅 장치(600)에 의해 액세스할 수 있는 임의의 다른 제조품을 포함할 수 있다. 임의의 상기 컴퓨터 스토리지 매체는 컴퓨팅 장치(600)의 일부일 수 있다.
도 7a 및 도 7b는 본 발명의 실시예들이 실시될 수 있는 모바일 컴퓨팅 장치(700)를 나타낸다. 적절한 모바일 컴퓨팅 장치의 예로서는, 휴대폰, 스마트폰, 태블릿 컴퓨터, 표면 컴퓨터, 및 랩탑 컴퓨터를 포함하지만, 이들에 한정되는 것은 아니다. 기본 구성에 있어서, 모바일 컴퓨팅 장치(700)는 입력 요소 및 출력 요소를 모두 구비하는 핸드헬드 컴퓨터이다. 모바일 컴퓨팅 장치(700)는 디스플레이(705)와, 사용자가 모바일 컴퓨팅 장치(700)에 정보를 입력할 수 있게 하는 하나 이상의 입력 버튼(710)을 포함하는 것이 보통이다. 모바일 컴퓨팅 장치(700)의 디스플레이(705)는 입력 장치(예컨대, 터치 스크린 디스플레이)로서 기능할 수도 있다. 선택적인 측면 입력 요소(715)가 포함되면, 추가적인 사용자 입력이 가능해진다. 측면 입력 요소(715)는 로터리 스위치, 버튼, 또는 임의의 다른 유형의 수동 입력 요소일 수 있다. 대안적인 실시예들에 있어서, 모바일 컴퓨팅 장치(700)는 입력 요소를 보다 많게 또는 보다 적게 포함할 수 있다. 예컨대, 일부 실시예에 있어서는 디스플레이(705)가 터치 스크린이 아닐 수 있다. 또 다른 대안적인 실시예에 있어서, 모바일 컴퓨팅 장치(700)는 셀룰러 폰과 같은 휴대용 전화 시스템이다. 모바일 컴퓨팅 장치(700)는 또한, 선택적인 키패드(735)를 포함할 수도 있다. 선택적인 키패드(735)는 물리적 키패드 또는 터치 스크린 디스플레이 상에 생성되는 "소프트(soft)" 키패드일 수 있다. 다양한 실시예들에 있어서, 출력 요소들은 그래픽 사용자 인터페이스를 보여주기 위한 디스플레이(705), 시각적 인디케이터(720)(예컨대, 발광 다이오드), 및/또는 오디오 변환기(725)(예컨대, 스피커)를 포함한다. 일부 실시예에 있어서, 모바일 컴퓨팅 장치(700)는 사용자에게 촉각 피드백을 제공하는 진동 변환기를 포함한다. 또 다른 실시예에 있어서, 모바일 컴퓨팅 장치(700)는 외부 장치에 신호를 송신하거나 또는 외부 장치로부터 신호를 수신하기 위한 오디오 입력(예컨대, 마이크로폰 잭), 오디오 출력(예컨대, 헤드폰 잭), 및 비디오 출력(예컨대, HDMI 포트)과 같은 입력 및/또는 출력 포트를 포함한다.
도 7b는 모바일 컴퓨팅 장치의 일 실시예의 아키텍처를 나타내는 블록도이다. 즉, 모바일 컴퓨팅 장치(700)는 일부 실시예를 구현하기 위해 시스템(즉, 아키텍처)(702)을 포함할 수 있다. 일 실시예에 있어서, 시스템(702)은 하나 이상의 애플리케이션(예컨대, 브라우저, 이메일 클라이언트, 노트, 연락처 매니저, 메시징 클라이언트, 게임, 및 미디어 클라이언트/플레이어)을 기동할 수 있는 스마트폰으로서 구현된다. 일부 실시예에 있어서, 시스템(702)은 통합형 개인용 정보 단말(PDA) 및 무선 전화기와 같은 컴퓨팅 장치로서 통합된다.
하나 이상의 애플리케이션 프로그램(765)은 메모리(762)에 로딩되고, 운영 체제(764) 상에서 또는 운영 체제와 관련하여 기동될 수 있다. 애플리케이션 프로그램은 전화 다이얼러 프로그램, 이메일 프로그램, 개인 정보 관리(PIM) 프로그램, 워드 프로세싱 프로그램, 스프레드시트 프로그램, 인터넷 브라우저 프로그램, 메시징 프로그램 등을 예로서 포함한다. 시스템(702)은 또한, 메모리(762) 내에 비휘발성 스토리지 영역(768)을 포함한다. 비휘발성 스토리지 영역(768)은 시스템(702)이 전원 차단되어도 손실되지 않아야 하는 지속적인 정보를 저장하는데 사용될 수 있다. 애플리케이션 프로그램(765)은 이메일 애플리케이션에 의해 사용되는 이메일 또는 다른 메시지들과 같은 비휘발성 스토리지 영역(768) 내의 정보를 이용 및 저장할 수 있다. 동기화 애플리케이션(도시되지 않음)이 또한 시스템(702)에 상주하고, 호스트 컴퓨터에 저장된 상응하는 정보와 동기화된 비휘발성 스토리지 영역(768)에 저장된 정보를 유지하기 위해 호스트 컴퓨터에 상주하는 상응하는 동기화 애플리케이션과 상호작용하도록 프로그래밍된다. 다른 애플리케이션들이 메모리(762)에 로딩될 수 있고, 본 명세서에 기술된 소프트웨어 애플리케이션(620)을 포함하는 모바일 컴퓨팅 장치(700) 상에서 기동할 수 있다는 점을 인식해야 한다.
시스템(702)은 하나 이상의 배터리로서 구현될 수 있는 전원 장치(770)를 구비한다. 전원 장치(770)는 AC 어댑터와 같은 외부 전원 또는 배터리를 보충 또는 충전하는 전원 도킹 크래들을 추가로 포함할 수 있다.
시스템(702)은 또한, 무선 주파수 통신을 송신 및 수신하는 기능을 수행하는 무선장치(772)를 포함할 수 있다. 무선장치(772)는 통신 캐리어 또는 서비스 제공자를 통해 시스템(702)과 외부 세계 사이의 무선 접속을 가능하게 한다. 무선장치(772)에 대한 전송은 운영 체제(764)의 제어하에 수행된다. 즉, 무선장치(772)에 의해 수신된 통신은 운영 체제(764)를 통해 애플리케이션 프로그램(765)에 전파될 수 있으며, 그 반대 또한 마찬가지이다.
시각적 인디케이터(720)가 시각적 통지를 제공하는데 사용될 수 있거나, 및/또는 오디오 인터페이스(774)가 오디오 변환기(725)를 통한 청각적 통지를 만드는데 사용될 수 있다. 나타내진 실시예에 있어서, 시각적 인디케이터(720)는 발광 다이오드(LED)이고, 오디오 변환기(725)는 스피커이다. 이들 장치는, 기동시에, 프로세서(760) 및 그 밖의 컴포넌트들이 배터리 전력 보존을 위해 정지되더라도 통지 메커니즘에 의해 지시된 기간 동안은 온 상태를 유지하도록 전원 장치(770)에 직접 연결될 수 있다. LED는 사용자가 장치의 전원 투입 상태를 지시하는 조치를 취할 때까지 무기한 온 상태를 유지하도록 프로그래밍될 수 있다. 오디오 인터페이스(774)는 사용자에게 가청 신호를 제공하는 한편, 사용자로부터 가청 신호를 수신하는데 사용될 수 있다. 예컨대, 오디오 인터페이스(774)는, 오디오 변환기(725)에 연결되는 것 외에도, 전화 통화를 가능하게 하는 것과 같이 가청 입력을 수신하도록 마이크로폰에 연결될 수 있다. 본 발명의 실시예들에 따르면, 마이크로폰은 또한, 후술되는 바와 같이, 통지의 제어가 가능하도록 오디오 센서로서도 기능할 수 있다. 시스템(702)은 정지 화상, 비디오 스트림 등을 기록하기 위해 온-보드 카메라(730)의 작동을 가능하게 하는 비디오 인터페이스(776)를 추가로 포함할 수 있다.
시스템(702)을 구현하는 모바일 컴퓨팅 장치(700)는 추가적인 특징 및 기능을 구비할 수 있다. 예컨대, 모바일 컴퓨팅 장치(700)는 또한, 자기 디스크, 광 디스크, 또는 테이프와 같은 추가적인 데이터 스토리지 장치(착탈식 및/또는 비착탈식)를 포함할 수 있다. 상기와 같은 추가적인 스토리지는 비휘발성 스토리지 영역(768)으로 나타내진다.
모바일 컴퓨팅 장치(700)에 의해 생성 또는 캡처되고 시스템(702)을 통해 저장되는 데이터/정보는 상술한 바와 같이 모바일 컴퓨팅 장치(700)에 로컬로 저장될 수 있거나, 또는 데이터는 모바일 컴퓨팅 장치(700)와, 모바일 컴퓨팅 장치(700)와 연관된 별도의 컴퓨팅 장치, 예컨대 인터넷과 같은 분산 컴퓨팅 네트워크에 있는 서버 컴퓨터 사이에서 무선장치(772)를 통해 또는 유선 접속을 통해 장치에 의해 액세스될 수 있는 임의의 수의 스토리지 매체에 저장될 수 있다. 상기와 같은 데이터/정보는 무선장치(772)를 통해 또는 분산 컴퓨팅 네트워크를 통해 모바일 컴퓨팅 장치(700)를 경유하여 액세스될 수 있다는 점을 인식해야 한다. 유사하게, 상기와 같은 데이터/정보는, 전자 메일 및 협력적 데이터/정보 공유 시스템을 포함하는 잘 알려진 데이터/정보 전송 및 저장 수단에 따라, 저장 및 사용을 위해 컴퓨팅 장치들 사이에서 손쉽게 이동될 수 있다.
도 8은 상술한 바와 같이, PII 스크러빙 시스템 기능을 하나 이상의 클라이언트 장치에 제공하기 위한 시스템의 아키텍처의 일 실시예를 나타낸다. 소프트웨어 애플리케이션(620)과 관련되어 개발되거나, 상호작용되거나, 또는 편집되는 콘텐츠는 상이한 통신 채널들 또는 다른 스토리지 유형들에 저장될 수 있다. 예컨대, 디렉토리 서비스(822), 웹 포털(824), 메일박스 서비스(826), 인스턴트 메시징 저장소(828), 또는 소셜 네트워킹 사이트(830)를 이용해서 다양한 문서를 저장할 수 있다. 소프트웨어 애플리케이션(620)은 본 명세서에 기재된 바와 같이, 데이터 이용이 가능하도록 이들 유형의 시스템들 또는 그 밖의 유사한 것들 중 어느 것을 이용할 수 있다. 서버(820)는 소프트웨어 애플리케이션(620)을 클라이언트에게 제공할 수 있다. 일례로서, 서버(820)는 웹을 거쳐서 소프트웨어 애플리케이션(620)을 제공하는 웹 서버일 수 있다. 서버(820)는 웹을 거친 소프트웨어 애플리케이션(620)을 네트워크(815)를 통해 클라이언트에게 제공할 수 있다. 예로서, 클라이언트 컴퓨팅 장치는 컴퓨팅 장치(600)로서 구현될 수 있으며, 개인용 컴퓨터(802a), 태블릿 컴퓨터(802b), 및/또는 모바일 컴퓨팅 장치(예컨대, 스마트폰)(802c)에서 실시될 수 있다. 클라이언트 장치의 이들 실시예들 중 어느 것은 콘텐츠를 저장소(816)로부터 취득할 수 있다.
본원에 제공된 하나 이상의 실시예의 기재 및 설명은 본 기술분야의 당업자에게 청구대상의 모든 범위의 완전한 정책 및 완전한 개시를 제공하려는 것이지, 청구된 발명의 범위를 어떻게든 한정하거나 제한하려는 것이 아니다. 본원에 제공된 실시예들, 예시들, 및 상세들은 소유권을 이전하고 본 기술분야의 당업자가 청구된 발명의 최선의 방식을 실시할 수 있게 하기에 충분한 것으로 간주된다. 본 기술분야의 당업자에게 잘 알려져 있다고 간주되는 구조, 리소스, 작업, 및 행위의 기재는 본원의 청구대상의 덜 알려져 있거나 또는 고유한 양태들을 모호하게 만들지 않도록 요약 또는 생략될 수 있다. 청구된 발명은, 본 명세서에서 분명하게 언급되지 않는 한, 본원에 제공된 임의의 실시예, 예시, 또는 상세에 한정되는 것으로 해석되어서는 안된다. 조합하여 또는 별개로 도시 또는 기술되었는지의 여부에 관계없이, 다양한 특징들(구조적 및 방법론적 모두)은 특정 세트의 특징들을 가진 실시예를 구축하기 위해 선택적으로 포함되거나 생략되는 것으로 의도된 것이다. 또한, 도시 또는 기술된 임의의 또는 모든 기능들 및 행위들은 임의의 순서로 또는 동시에 수행될 수 있다. 본원의 기재 및 설명이 제공되어 있지만, 본 기술분야의 당업자라면, 청구된 발명의 보다 넓은 범위로부터 일탈하지 않는 본원에서 구현된 일반적 발명 개념의 보다 넓은 양태들의 정신 내에서 변경들, 수정들, 및 대안적인 실시예들을 구상할 수 있을 것이다.

Claims (20)

  1. 비-개인적(non-personal) 데이터 및 개인 식별 정보(personally identifiable information)를 모두 포함하는 메시지들을 갖는 데이터 세트를 스크러빙(scrubbing)하는 방법으로서,
    상기 비-개인적 데이터 및 상기 개인 식별 정보를 모두 포함하는 메시지를 로딩하는 단계와,
    상기 데이터 세트를 스크러빙하기 위한 규칙 세트를 포함하는 스크러버 구성(scrubber configuration)을 로딩하는 단계와,
    상기 규칙 세트에 기초하여 상기 메시지를 필드들로 파싱하는 단계 - 비구조화 데이터 필드(unstructured data field)가 포매팅되고, 레이블링되지 않은 데이터로부터 개인 식별 정보가 식별가능하도록 구분자(delimiter)가 상기 비구조화 데이터 필드에 추가됨 - 와,
    상기 규칙 세트에 기초하여 상기 메시지 내의 개인 식별 정보만을 스크러빙해서 스크러빙된 메시지를 생성하는 단계 - 상기 개인 식별 정보는 개인 식별 정보의 유형을 식별하는 메타데이터와 연관되고, 상기 개인 식별 정보의 유형에 대응 스크러빙 규칙이 적용됨 - 와,
    상기 스크러빙된 메시지를 저장하는 단계를 포함하되,
    상기 대응 스크러빙 규칙은,
    상기 규칙 세트에 기초하여, 상기 메시지 내의 상기 개인 식별 정보에 대한 대체 값을 생성하는 것 - 상기 대체 값을 생성하는 것은, 상기 대응 스크러빙 규칙에 기초하여 상기 메시지 내의 특정 개인 식별 정보의 제1 인스턴스에 대한 대체 값을 생성하는 것과, 상기 특정 개인 식별 정보와 연관된 상기 대체 값에 대한 레프런스를 저장하는 것을 포함함 - 과,
    상기 메시지 내의 상기 개인 식별 정보를 대체 값으로 대체하여 상기 스크러빙된 메시지를 생성하는 것 - 상기 스크러빙된 메시지를 생성하는 것은 상기 특정 개인 식별 정보의 추가 인스턴스에 직면했을 때 상기 레프런스를 사용하여 상기 특정 개인 식별 정보와 연관된 상기 대체 값을 검색하는 것과, 상기 특정 개인 식별 정보의 상기 추가 인스턴스에 대해 상기 검색된 대체 값을 사용하는 것을 포함함 - 을 포함하는
    방법.
  2. 제 1 항에 있어서,
    상기 규칙 세트는 상기 데이터 세트를 스크러빙하기 위한 루트 파싱 규칙(root parsing rule) 및 하위 규칙들(child rules)을 포함하는
    방법.
  3. 제 2 항에 있어서,
    상기 규칙 세트에 기초하여 상기 메시지 내의 개인 식별 정보만을 스크러빙해서 스크러빙된 메시지를 생성하는 단계는,
    상기 루트 파싱 규칙에 기초하여 상기 메시지를 필드들로 파싱하는 단계와,
    상기 하위 규칙들에 기초하여 상기 메시지의 선택 필드들 내의 개인 식별 정보를 스크러빙하는 단계를 더 포함하는
    방법.
  4. 제 3 항에 있어서,
    상기 루트 파싱 규칙에 기초하여 상기 메시지를 필드들로 파싱하는 단계는, 상기 루트 파싱 규칙에서 특정된 구분자에 기초하여 상기 메시지를 필드들로 나누는(splitting) 단계를 더 포함하는
    방법.
  5. 제 3 항에 있어서,
    상기 루트 파싱 규칙에 기초하여 상기 메시지를 필드들로 파싱하는 단계는, 상기 루트 파싱 규칙에서 특정된 메시지 유형에 기초하여 상기 메시지를 미리 정해진 필드 세트로 나누는 단계를 더 포함하는
    방법.
  6. 제 3 항에 있어서,
    상기 하위 규칙들에 기초하여 상기 메시지의 선택 필드들 내의 개인 식별 정보를 보호하는 단계는 상기 하위 규칙들에서 특정된 필터링 규칙을 적용해서 선택 필드의 값에 기초하여 개인 식별 정보를 포함하는 필드들을 갖는 메시지를 포함하도록 하는 단계를 더 포함하는
    방법.
  7. 제 3 항에 있어서,
    상기 하위 규칙들에 기초하여 상기 메시지의 선택 필드들 내의 개인 식별 정보를 보호하는 단계는, 상기 하위 규칙들에서 특정된 필터링 규칙을 적용해서 선택 필드의 값에 기초하여 개인 식별 정보를 포함하는 어떠한 필드도 갖지 않는 메시지를 제외하도록 하는 단계를 더 포함하는
    방법.
  8. 제 3 항에 있어서,
    상기 하위 규칙들에 기초하여 상기 메시지의 선택 필드들 내의 개인 식별 정보를 보호하는 단계는 상기 하위 규칙들에서 특정된 처리 규칙을 적용해서 상기 처리 규칙에서 특정된 선택 필드 내의 개인 식별 정보를 보호하는 단계를 더 포함하는
    방법.
  9. 제 8 항에 있어서,
    상기 하위 규칙들에서 특정된 처리 규칙을 적용해서 상기 처리 규칙에서 특정된 선택 필드 내의 개인 식별 정보를 보호하는 단계는,
    상기 하위 규칙들에서 특정된 파싱 규칙을 적용해서 선택 필드에서 상기 파싱 규칙에서 특정된 유형의 개인 식별 정보를 검색하는 단계와,
    상기 선택 필드에서 검색된 상기 특정된 유형의 개인 식별 정보를 보호하는 단계를 더 포함하는
    방법.
  10. 제 3 항에 있어서,
    상기 하위 규칙들에 기초하여 상기 메시지의 선택 필드들 내의 개인 식별 정보를 보호하는 단계는 상기 하위 규칙들에서 특정된 파싱 규칙을 적용해서 처리 규칙에서 특정된 선택 필드를 하위 필드들로 분리시키는 단계를 더 포함하는
    방법.
  11. 제 10 항에 있어서,
    상기 하위 규칙들에 기초하여 상기 메시지의 선택 필드들 내의 개인 식별 정보를 보호하는 단계는,
    필드의 값을 상기 하위 규칙들에서 특정된 구분자 쌍에 기초하여 이름 필드 및 값 필드로 분리하는 단계와,
    상기 값 필드 내의 상기 개인 식별 정보가 상기 선택 필드 내에서 발견되면, 상기 값 필드 내의 개인 식별 정보를 보호하는 단계와,
    상기 하위 규칙들에서 특정된 파싱 규칙을 적용해서 상기 파싱 규칙에서 특정된 상기 선택 필드를 하위 필드들로 분리하는 단계를 더 포함하는
    방법.

  12. 제 1 항에 있어서,
    상기 규칙 세트에 기초하여 상기 메시지 내의 개인 식별 정보만을 스크러빙해서 스크러빙된 메시지를 생성하는 단계는,
    상기 스크러버 구성으로부터의 규칙들에 기초하여 상기 메시지 내의 개인 식별 정보의 각각의 고유한 인스턴스(instance)에 대한 대체 값을 저장하는 단계와,
    상기 개인 식별 정보의 인스턴스들의 복제시에 상기 대체 값을 재사용하는 단계를 더 포함하는
    방법.
  13. 메시지로부터 개인 식별 정보를 스크러빙하는 시스템으로서,
    프로세싱 유닛과,
    컴퓨터 실행가능 명령어를 포함하는 메모리를 포함하되,
    상기 컴퓨터 실행가능 명령어는, 프로세싱 유닛에 의해 실행될 경우에, 상기 시스템으로 하여금,
    상기 메시지에서 나타나는 상기 개인 식별 정보를 위치확인 및 대체하는 방법을 특정하는 루트 파싱 규칙 및 처리 규칙을 포함하는 규칙 세트가 포함된 스크러버 구성― 상기 스크러버 구성은 메시지들을 포함하는 로그에 대응함 ― 과,
    상기 스크러버 구성을 로딩하는 스크러빙 에이전트를 제공하게 하며,
    상기 스크러빙 에이전트는,
    루트 파싱을 실행하여 상기 메시지를 필드들로 분리하는 파싱 엔진 - 비구조화 데이터 필드가 포매팅되고, 레이블링되지 않은 데이터로부터 개인 식별 정보가 식별가능하도록 구분자가 상기 비구조화 데이터 필드에 추가됨 - 과,
    상기 처리 규칙을 실행해서, 선택 필드 내의 개인 식별 정보를 대체 값으로 대체하여, 상기 개인 식별 정보가 노출되는 것을 방지하되, 특정한 개인 식별 정보는 상관관계에 의해 위치확인될 수 있게 하는 프로세싱 엔진을 포함하고,
    상기 개인 식별 정보는 개인 식별 정보의 유형을 식별하는 메타데이터와 연관되고, 상기 개인 식별 정보의 유형에 대응 스크러빙 규칙이 적용되며,
    상기 대응 스크러빙 규칙은,
    상기 대응 스크러빙 규칙에 기초하여 상기 메시지 내의 특정 개인 식별 정보의 제1 인스턴스에 대한 대체 값을 생성하고, 상기 특정 개인 식별 정보와 연관된 상기 대체 값에 대한 레프런스를 저장함으로써, 상기 규칙 세트에 기초하여, 상기 메시지 내의 상기 개인 식별 정보에 대한 대체 값을 생성하고,
    상기 특정 개인 식별 정보의 추가 인스턴스에 직면했을 때 상기 레프런스를 사용하여 상기 특정 개인 식별 정보와 연관된 상기 대체 값을 검색하고, 상기 특정 개인 식별 정보의 상기 추가 인스턴스에 대해 상기 검색된 대체 값을 사용함으로써, 상기 메시지 내의 상기 개인 식별 정보를 대체 값으로 대체하여 상기 스크러빙된 메시지를 생성하는
    시스템.
  14. 제 13 항에 있어서,
    상기 스크러빙 에이전트는 상기 루트 파싱 규칙을 상기 메시지에 적용할지의 여부를 결정하기 위해 상기 스크러버 구성에서 특정된 필터링 규칙을 실행하는 필터링 엔진을 더 포함하는
    시스템.
  15. 제 13 항에 있어서,
    상기 파싱 엔진은 상기 스크러버 구성에서 특정된 파싱 규칙을 실행하여 상기 선택 필드를 서브-컴포넌트로 분리하는
    시스템.
  16. 제 15 항에 있어서,
    상기 프로세싱 엔진은 상기 스크러버 구성에서 특정된 추가 처리 규칙을 실행하여 선택된 컴포넌트로부터의 개인 식별 정보를 상관될 수 있는 대체 값으로 대체하는
    시스템.
  17. 컴퓨터에 의한 실행시에, 로그로부터 개인 식별 정보를 제거하는 방법을 수행하는 컴퓨터 실행가능 명령어를 포함하는 컴퓨터 판독가능 저장 장치로서,
    상기 방법은,
    비-개인적 데이터 및 개인 식별 정보를 모두 포함하는 메시지를 로딩하는 단계와,
    상기 메시지 내의 개인 식별 정보를 위치확인 및 보호하기 위한 규칙들을 포함하는 규칙 세트를 제공하는 스크러버 구성을 로딩하는 단계 ― 상기 스크러버 구성은 상기 메시지를 포함하는 대응하는 로그와 연관됨 ― 와,
    상기 규칙 세트에 기초하여 상기 메시지를 필드들로 파싱하는 단계 - 비구조화 데이터 필드가 포매팅되고, 레이블링되지 않은 데이터로부터 개인 식별 정보가 식별가능하도록 구분자가 상기 비구조화 데이터 필드에 추가됨 - 와,
    상기 스크러버 구성으로부터의 규칙들을 상기 메시지에 적용하여 상기 개인 식별 정보 - 상기 개인 식별 정보는 개인 식별 정보의 유형을 식별하는 메타데이터와 연관됨 - 를 위치확인하고, 상기 개인 식별 정보의 유형에 대응 스크러빙 규칙을 적용하는 단계와,
    상기 스크러버 구성으로부터의 규칙들에 기초하여, 상기 메시지 내의 상기 개인 식별 정보에 대한 대체 값을 생성하는 단계 - 상기 대체 값을 생성하는 단계는, 상기 스크러버 구성으로부터의 규칙들에 기초하여 상기 메시지 내의 특정 개인 식별 정보의 제1 인스턴스에 대한 대체 값을 생성하는 단계와, 상기 특정 개인 식별 정보와 연관된 상기 대체 값에 대한 레프런스를 저장하는 단계를 포함함 - 와,
    상기 메시지 내의 상기 개인 식별 정보를 대체 값으로 대체하여 스크러빙된 메시지를 생성하는 단계 - 상기 스크러빙된 메시지를 생성하는 단계는 상기 특정 개인 식별 정보의 추가 인스턴스에 직면했을 때 상기 레프런스를 사용하여 상기 특정 개인 식별 정보와 연관된 상기 대체 값을 검색하는 단계와, 상기 특정 개인 식별 정보의 상기 추가 인스턴스에 대해 상기 검색된 대체 값을 사용하는 단계를 포함함 - 와,
    상기 스크러빙된 메시지를 데이터 저장소에 저장하는 단계를 포함하는
    컴퓨터 판독가능 저장 장치.
  18. 제 17 항에 있어서,
    상기 스크러버 구성으로부터의 규칙들에 기초하여, 상기 메시지 내의 상기 개인 식별 정보에 대한 대체 값을 생성하는 단계는, 다른 개인 식별 정보를 노출하지 않으면서 상기 특정 개인 식별 정보를 포함하는 스크러빙된 메시지가 위치확인될 수 있도록 상기 대체 값에 의해 표현된 상기 특정 개인 식별 정보와 상관될 수 있는 대체 값을 생성하는 단계를 더 포함하는
    컴퓨터 판독가능 저장 장치.
  19. 제 17 항에 있어서,
    상기 스크러버 구성으로부터의 규칙들에 기초하여, 상기 메시지 내의 상기 개인 식별 정보에 대한 대체 값을 생성하는 단계는,
    상기 개인 식별 정보에 대응하는 해시를 생성하는 단계와,
    상기 개인 식별 정보를 암호화하는 암호 텍스트를 생성하는 단계와,
    상기 해시 및 상기 암호 텍스트에 링크되는 전역 고유 식별자(globally unique identifier)를 생성하는 단계를 더 포함하며,
    상기 메시지 내의 상기 개인 식별 정보를 대체 값으로 대체하여 스크러빙된 메시지를 생성하는 단계는, 상기 개인 식별 정보를, 대응하는 상기 해시 또는 암호 텍스트를 검색하기 위한 레프런스로서 사용하기 위해, 상기 전역 고유 식별자로 대체하는 단계를 더 포함하는
    컴퓨터 판독가능 저장 장치.
  20. 비-개인적 데이터 및 개인 식별 정보를 모두 포함하는 메시지들을 갖는 데이터 세트를 스크러빙하는 방법으로서,
    상기 비-개인적 데이터 및 상기 개인 식별 정보를 모두 포함하는 메시지를 로딩하는 단계와,
    상기 메시지 내의 개인 식별 정보를 위치확인 및 보호하기 위한 규칙들을 포함하는 규칙 세트를 제공하는 스크러버 구성을 로딩하는 단계 ― 상기 스크러버 구성은 상기 메시지를 포함하는 대응하는 로그와 연관됨 ― 와,
    상기 규칙 세트에 기초하여 상기 메시지를 필드들로 파싱하는 단계 - 비구조화 데이터 필드가 포매팅되고, 레이블링되지 않은 데이터로부터 개인 식별 정보가 식별가능하도록 구분자가 상기 비구조화 데이터 필드에 추가됨 - 와,
    상기 스크러버 구성으로부터의 규칙들을 상기 메시지에 적용하여 상기 개인 식별 정보 - 상기 개인 식별 정보는 개인 식별 정보의 유형을 식별하는 메타데이터와 연관됨 - 를 위치확인하고, 대응 스크러빙 규칙을 상기 개인 식별 정보의 유형에 적용하는 단계와,
    상기 스크러버 구성으로부터의 규칙들에 기초하여, 상기 메시지 내의 상기 개인 식별 정보에 대한 대체 값을 생성하는 단계 - 상기 대체 값을 생성하는 단계는 상기 개인 식별 정보에 대응하는 해시를 생성하는 단계와, 상기 개인 식별 정보를 암호화하는 암호 텍스트를 생성하는 단계와, 상기 해시 및 상기 암호 텍스트에 링크되는 전역 고유 식별자를 생성하는 단계를 포함함 - 와,
    상기 메시지 내의 상기 개인 식별 정보를 대체 값으로 대체하여 스크러빙된 메시지를 생성하는 단계 - 상기 스크러빙된 메시지를 생성하는 단계는 상기 개인 식별 정보를, 대응하는 상기 해시 또는 암호 텍스트를 검색하기 위한 레프런스로서 사용하기 위해, 상기 전역 고유 식별자로 대체하는 단계를 포함함 - 와,
    상기 스크러빙된 메시지를 데이터 저장소에 저장하는 단계를 포함하는
    방법.
KR1020167020747A 2014-01-30 2015-01-23 개인 식별 정보를 제거하기 위한 스크러버 KR102310649B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/168,532 US9582680B2 (en) 2014-01-30 2014-01-30 Scrubbe to remove personally identifiable information
US14/168,532 2014-01-30
PCT/US2015/012554 WO2015116478A1 (en) 2014-01-30 2015-01-23 Scrubber to remove personally identifiable information

Publications (2)

Publication Number Publication Date
KR20160114077A KR20160114077A (ko) 2016-10-04
KR102310649B1 true KR102310649B1 (ko) 2021-10-07

Family

ID=52484551

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167020747A KR102310649B1 (ko) 2014-01-30 2015-01-23 개인 식별 정보를 제거하기 위한 스크러버

Country Status (5)

Country Link
US (2) US9582680B2 (ko)
EP (1) EP3100203B1 (ko)
KR (1) KR102310649B1 (ko)
CN (1) CN105940410B (ko)
WO (1) WO2015116478A1 (ko)

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8392529B2 (en) 2007-08-27 2013-03-05 Pme Ip Australia Pty Ltd Fast file server methods and systems
US8319781B2 (en) 2007-11-23 2012-11-27 Pme Ip Australia Pty Ltd Multi-user multi-GPU render server apparatus and methods
WO2009067675A1 (en) 2007-11-23 2009-05-28 Mercury Computer Systems, Inc. Client-server visualization system with hybrid data processing
US10311541B2 (en) 2007-11-23 2019-06-04 PME IP Pty Ltd Multi-user multi-GPU render server apparatus and methods
US8548215B2 (en) 2007-11-23 2013-10-01 Pme Ip Australia Pty Ltd Automatic image segmentation of a volume by comparing and correlating slice histograms with an anatomic atlas of average histograms
US9904969B1 (en) 2007-11-23 2018-02-27 PME IP Pty Ltd Multi-user multi-GPU render server apparatus and methods
US8976190B1 (en) 2013-03-15 2015-03-10 Pme Ip Australia Pty Ltd Method and system for rule based display of sets of images
US9509802B1 (en) 2013-03-15 2016-11-29 PME IP Pty Ltd Method and system FPOR transferring data to improve responsiveness when sending large data sets
US10540803B2 (en) 2013-03-15 2020-01-21 PME IP Pty Ltd Method and system for rule-based display of sets of images
US11183292B2 (en) 2013-03-15 2021-11-23 PME IP Pty Ltd Method and system for rule-based anonymized display and data export
US11244495B2 (en) 2013-03-15 2022-02-08 PME IP Pty Ltd Method and system for rule based display of sets of images using image content derived parameters
US10070839B2 (en) 2013-03-15 2018-09-11 PME IP Pty Ltd Apparatus and system for rule based visualization of digital breast tomosynthesis and other volumetric images
US9582680B2 (en) 2014-01-30 2017-02-28 Microsoft Technology Licensing, Llc Scrubbe to remove personally identifiable information
US11228653B2 (en) * 2014-05-15 2022-01-18 Samsung Electronics Co., Ltd. Terminal, cloud apparatus, driving method of terminal, method for processing cooperative data, computer readable recording medium
US9754120B2 (en) * 2015-02-13 2017-09-05 Konica Minolta Laboratory U.S.A., Inc. Document redaction with data retention
US10614249B2 (en) * 2015-07-01 2020-04-07 Allscripts Software, Llc Sanitization of content displayed by web-based applications
US11599672B2 (en) * 2015-07-31 2023-03-07 PME IP Pty Ltd Method and apparatus for anonymized display and data export
US9984478B2 (en) 2015-07-28 2018-05-29 PME IP Pty Ltd Apparatus and method for visualizing digital breast tomosynthesis and other volumetric images
US9922206B2 (en) * 2015-10-02 2018-03-20 Blackberry Limited Private data exchange
KR20170045703A (ko) * 2015-10-19 2017-04-27 삼성전자주식회사 전자 장치 및 그 제어 방법
US10754982B1 (en) * 2016-02-23 2020-08-25 State Farm Mutual Automobile Insurance Company System and method for scrubbing data to be shared between organizations
CA2963113A1 (en) 2016-03-31 2017-09-30 Confirm, Inc. Storing identification data as virtual personally identifiable information
WO2017200372A1 (en) 2016-05-16 2017-11-23 Motorola Solutions, Inc. Push-to-talk assembly for a portable communication device
CN106448157A (zh) * 2016-09-05 2017-02-22 天津中兴智联科技有限公司 一种交通数据平台适配器的实现方法及系统
US10043031B2 (en) * 2016-11-08 2018-08-07 Ebay Inc. Secure management of user addresses in network service
EP3340561A1 (en) * 2016-12-23 2018-06-27 Red Mint Network SAS Anonymization of network subscriber personal information
US11349666B2 (en) * 2017-01-27 2022-05-31 Meta Platforms, Inc. Electronically signing and distributing identification data as a service that provides proof of identity, integrity, validity and origin of data for non-repudiation and ID validation methods
US9965648B1 (en) 2017-04-06 2018-05-08 International Business Machines Corporation Automatic masking of sensitive data
US11062041B2 (en) * 2017-07-27 2021-07-13 Citrix Systems, Inc. Scrubbing log files using scrubbing engines
US11580254B2 (en) 2017-08-24 2023-02-14 The Regents Of The University Of Colorado, A Body Corporate Systems and methods for record linkage
US10909679B2 (en) 2017-09-24 2021-02-02 PME IP Pty Ltd Method and system for rule based display of sets of images using image content derived parameters
US11055431B2 (en) * 2017-12-15 2021-07-06 Blackberry Limited Securing data storage of personally identifiable information in a database
US20190198139A1 (en) * 2017-12-27 2019-06-27 Cerner Innovation, Inc. Systems and methods for securing electronic data that includes personally identifying information
US10769110B2 (en) * 2018-04-02 2020-09-08 Adobe Inc. Facilitating queries for interaction data with visitor-indexed data objects
US11444952B2 (en) * 2018-05-03 2022-09-13 Springcoin, Inc. Synthetic identification protocol apparatus and method
US10839104B2 (en) 2018-06-08 2020-11-17 Microsoft Technology Licensing, Llc Obfuscating information related to personally identifiable information (PII)
US10885225B2 (en) 2018-06-08 2021-01-05 Microsoft Technology Licensing, Llc Protecting personally identifiable information (PII) using tagging and persistence of PII
CN110874477A (zh) * 2018-08-29 2020-03-10 北京京东尚科信息技术有限公司 日志数据的加密方法、装置、电子设备及介质
IL261679A (en) 2018-09-06 2018-10-31 Acuant Inc System and method for management of digital id
US20200193454A1 (en) * 2018-12-12 2020-06-18 Qingfeng Zhao Method and Apparatus for Generating Target Audience Data
US11093448B2 (en) 2019-01-25 2021-08-17 International Business Machines Corporation Methods and systems for metadata tag inheritance for data tiering
US11176000B2 (en) 2019-01-25 2021-11-16 International Business Machines Corporation Methods and systems for custom metadata driven data protection and identification of data
US11030054B2 (en) 2019-01-25 2021-06-08 International Business Machines Corporation Methods and systems for data backup based on data classification
US11100048B2 (en) 2019-01-25 2021-08-24 International Business Machines Corporation Methods and systems for metadata tag inheritance between multiple file systems within a storage system
US11113148B2 (en) 2019-01-25 2021-09-07 International Business Machines Corporation Methods and systems for metadata tag inheritance for data backup
US11210266B2 (en) 2019-01-25 2021-12-28 International Business Machines Corporation Methods and systems for natural language processing of metadata
US11914869B2 (en) 2019-01-25 2024-02-27 International Business Machines Corporation Methods and systems for encryption based on intelligent data classification
US11113238B2 (en) 2019-01-25 2021-09-07 International Business Machines Corporation Methods and systems for metadata tag inheritance between multiple storage systems
US11803481B2 (en) * 2019-02-28 2023-10-31 Hewlett Packard Enterprise Development Lp Data anonymization for a document editor
US11341266B2 (en) 2019-03-13 2022-05-24 At&T Intellectual Property I, L.P. Detecting and preventing storage of unsolicited sensitive personal information
EP3726412B1 (en) * 2019-04-18 2022-04-06 Sap Se Selectively verifying personal data
US11347891B2 (en) 2019-06-19 2022-05-31 International Business Machines Corporation Detecting and obfuscating sensitive data in unstructured text
US10795870B1 (en) * 2019-10-21 2020-10-06 Capital One Services, Llc Schema based validation of extra fields in a data file
US20210194857A1 (en) * 2019-12-18 2021-06-24 T-Mobile Usa, Inc. Personal information data rights request management
US11664998B2 (en) 2020-05-27 2023-05-30 International Business Machines Corporation Intelligent hashing of sensitive information
US11470055B2 (en) 2020-06-26 2022-10-11 Bank Of America Corporation Data transmission with encryption of protected data
WO2022015295A1 (en) * 2020-07-14 2022-01-20 Google Llc Systems and methods of delegated analytics collection
US11960625B2 (en) * 2021-05-06 2024-04-16 Jpmorgan Chase Bank, N.A. Systems and methods for protecting sensitive data in user online activities
US11972015B2 (en) 2021-06-01 2024-04-30 Ford Global Technologies, Llc Personally identifiable information removal based on private area logic
US11645419B2 (en) 2021-06-14 2023-05-09 Volvo Car Corporation Dynamic anonymization for automotive subscriptions
US11798117B2 (en) 2021-06-16 2023-10-24 Bank Of America Corporation Systems and methods for intelligent steganographic protection
US20230229803A1 (en) * 2022-01-19 2023-07-20 Sensory, Incorporated Sanitizing personally identifiable information (pii) in audio and visual data

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070255704A1 (en) 2006-04-26 2007-11-01 Baek Ock K Method and system of de-identification of a record
US20090049511A1 (en) 2007-08-16 2009-02-19 Verizon Data Services India Private Limited Method and apparatus for providing a data masking portal

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2747801A (en) * 1999-10-29 2001-06-06 Privacomp, Inc. System for providing dynamic data informed consent to provide data privacy and security in database systems and in networked communications
US7395241B1 (en) * 2000-01-19 2008-07-01 Intuit Inc. Consumer-directed financial transfers using automated clearinghouse networks
US20040181670A1 (en) 2003-03-10 2004-09-16 Carl Thune System and method for disguising data
US20060069733A1 (en) 2004-09-30 2006-03-30 Microsoft Corporation Detection and removal of information in files
US8752181B2 (en) * 2006-11-09 2014-06-10 Touchnet Information Systems, Inc. System and method for providing identity theft security
US7724918B2 (en) 2006-11-22 2010-05-25 International Business Machines Corporation Data obfuscation of text data using entity detection and replacement
US8341104B2 (en) * 2007-08-16 2012-12-25 Verizon Patent And Licensing Inc. Method and apparatus for rule-based masking of data
US8051060B1 (en) * 2009-02-13 2011-11-01 At&T Intellectual Property I, L.P. Automatic detection of separators for compression
AU2011201369A1 (en) 2010-03-25 2011-10-13 Rl Solutions Systems and methods for redacting sensitive data entries
WO2013032422A1 (en) * 2011-08-26 2013-03-07 Hewlett-Packard Development Company, L.P. Data leak prevention systems and methods
CN102509057B (zh) * 2011-10-18 2015-05-13 国网电力科学研究院 基于标记的非结构化数据安全过滤方法
JP2013137740A (ja) * 2011-11-28 2013-07-11 Internatl Business Mach Corp <Ibm> 機密情報識別方法、情報処理装置、およびプログラム
US9665722B2 (en) * 2012-08-10 2017-05-30 Visa International Service Association Privacy firewall
US8984650B2 (en) * 2012-10-19 2015-03-17 Pearson Education, Inc. Privacy server for protecting personally identifiable information
US9536108B2 (en) * 2012-10-23 2017-01-03 International Business Machines Corporation Method and apparatus for generating privacy profiles
US20140162685A1 (en) * 2012-12-10 2014-06-12 Qualcomm Incorporated Discovery and support of proximity
US9582680B2 (en) 2014-01-30 2017-02-28 Microsoft Technology Licensing, Llc Scrubbe to remove personally identifiable information

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070255704A1 (en) 2006-04-26 2007-11-01 Baek Ock K Method and system of de-identification of a record
US20090049511A1 (en) 2007-08-16 2009-02-19 Verizon Data Services India Private Limited Method and apparatus for providing a data masking portal

Also Published As

Publication number Publication date
US20150213288A1 (en) 2015-07-30
US10223548B2 (en) 2019-03-05
CN105940410B (zh) 2019-08-20
EP3100203A1 (en) 2016-12-07
US20170177904A1 (en) 2017-06-22
KR20160114077A (ko) 2016-10-04
US9582680B2 (en) 2017-02-28
WO2015116478A1 (en) 2015-08-06
CN105940410A (zh) 2016-09-14
EP3100203B1 (en) 2018-12-19

Similar Documents

Publication Publication Date Title
KR102310649B1 (ko) 개인 식별 정보를 제거하기 위한 스크러버
KR102537275B1 (ko) 구조화된 사용자 데이터 파일에서의 사용자 콘텐츠의 난독화
KR102464222B1 (ko) 프라이버시 민감형 사용자 콘텐츠를 위한 구성 가능한 주석
CN109479061B (zh) 遵从性违反检测
US9170908B2 (en) System and method for dynamic analysis bytecode injection for application dataflow
US10545991B2 (en) Synchronizing local and remote data
US20150121533A1 (en) Dynamic analysis interpreter modification for application dataflow
JP2022529791A (ja) データ資産のための相互作用的系統分析器
US10938902B2 (en) Dynamic routing of file system objects
US11477179B2 (en) Searching content associated with multiple applications
US11062129B2 (en) Systems and methods for enabling search services to highlight documents
Spahn et al. Pebbles:{Fine-Grained} Data Management Abstractions for Modern Operating Systems
US11803429B2 (en) Managing alert messages for applications and access permissions
US20220337620A1 (en) System for collecting computer network entity information employing abstract models
US20180268004A1 (en) Rule hierarchies for graph adaptation
US20230289457A1 (en) Preventing Illicit Data Transfer and Storage
US11373003B2 (en) Mitigating inadvertent user information collection in telemetry data
US20240232424A9 (en) Privacy aware source code
Yu Identifying privacy issues in mobile apps via synthesizing static analysis and NLP
Braghin et al. DLPFS: The Data Leakage Prevention FileSystem

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant