KR101995015B1 - 문서의 저장 위치를 제어하기 위한 방법 - Google Patents

문서의 저장 위치를 제어하기 위한 방법 Download PDF

Info

Publication number
KR101995015B1
KR101995015B1 KR1020170049973A KR20170049973A KR101995015B1 KR 101995015 B1 KR101995015 B1 KR 101995015B1 KR 1020170049973 A KR1020170049973 A KR 1020170049973A KR 20170049973 A KR20170049973 A KR 20170049973A KR 101995015 B1 KR101995015 B1 KR 101995015B1
Authority
KR
South Korea
Prior art keywords
file
write event
authoring software
file storage
storage
Prior art date
Application number
KR1020170049973A
Other languages
English (en)
Other versions
KR20180116974A (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 (주)나무소프트
Priority to KR1020170049973A priority Critical patent/KR101995015B1/ko
Priority to PCT/KR2017/006803 priority patent/WO2018194217A1/ko
Publication of KR20180116974A publication Critical patent/KR20180116974A/ko
Application granted granted Critical
Publication of KR101995015B1 publication Critical patent/KR101995015B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 사용자가 PC에서 문서 저작 소프트웨어를 구동하여 문서를 작성하고 저장하려고 할 때 사용자가 지정하는 임의의 위치가 아니라 관리자가 지정한 저장위치에만 문서가 저장되도록 하는 방법을 제공하고자 한다. 보다 구체적으로, 사용자 PC 운영체제에서 파일 저장 위치를 제어하는 파일시스템 필터 드라이버가 저작 소프트웨어의 구동여부와 관계없이 별도로 구동하되, 쓰기 파일시스템 이벤트가 발생할 경우 해당 이벤트가 사전에 지정된 저작 소프트웨어의 프로세스에 의해서 생성된 이벤트인지 확인하고, 쓰기 위치가 허용된 위치가 아니라면 사전에 지정한 정규 형식의 쓰기 이벤트에 한하여 쓰기 작업이 진행되고, 그 이외 나머지 경우는 쓰기 이벤트를 차단할 수 있다.

Description

문서의 저장 위치를 제어하기 위한 방법{METHOD FOR CONTROLLING THE FILE SAVING POSITION OF AUTHORING SOFTWARE}
본 발명은 문서의 저장 위치를 제어하기 위한 방법에 관한 것으로서, 보다 구체적으로는 사용자가 PC 등 컴퓨터에서 문서 저작 소프트웨어를 구동하여 문서를 작성하고 저장하려고 할 때 사용자가 지정하는 임의의 저장 위치가 아니라 관리자가 사전에 지정한 저장 위치에만 문서가 저장되도록 저장 위치를 설정하는 방법에 관한 것이다.
문서, 워크시트, 파워포인트, 설계, 소스코드 등을 생성하는 다양한 분야의 전문 저작 도구가 PC에서 적용되면서 업무수행자의 업무생산성은 크게 증가되었으나, 반면에 이를 보안하는 상황도 복잡하게 되었고, 함께 일하는 사람들간의 체계적인 자료 정리도 더욱 어렵게 되고 있다.
이를 극복하고자 문서의 생성시점에서부터 모든 문서를 지정한 위치에만 강제적으로 저장하려는 시도가 있었으나, 종래의 문서 저장 위치를 제어하는 방법들은 저작 소프트웨어가 구동할 때마다 별도의 보안 기능을 수행하는 보안 프로세스가 추가적으로 함께 또는 동시에 구동되거나 해당 프로그램의 저장소 지정 위치를 후킹하거나 리다이렉션(re-direction)하여 저작 소프트웨어가 자유롭게 모든 저장소에 저장하지 못하고 지정한 곳으로만 저장하게 하는 방법으로 개발되어 왔다. 위와 같은 방식이 적용되기 위해서는 저작 소프트웨어별로 저장소를 제어하기 위한 별도의 커스터마이징(customizing)을 해야하기 때문에 저작 소프트웨어의 안정성도 크게 떨어뜨리게 된다.
또한 종래 기술에 의하면, 저작 소프트웨어가 구동할 때 별도의 보안 프로그램이 구동하여 모든 파일 시스템 이벤트를 검토한 후 저장하려는 문서의 위치가 비보안 영역이라면 저장하지 못하도록 하는 방식도 있었다. 그러나 위 방식은 저작 소프트웨어가 저작하는 과정에서 보조연산을 위해서 작업 파일이 생성되게 되는데, 이때 사용자가 고의로 임시 작업 공간에 파일을 저장할 경우 최종 작업 파일이 저장되는 한계점이 발생하였다.
따라서 파일의 저장위치를 제어하는데 있어서 저작 소프트웨어별로 커스터마이징 개발이 필요하지 않으면서도, 저작 소프트웨어가 사용해야만 하는 파일의 임시 저장 위치에 사용자가 임의로 문서를 저장하는 경우를 차단할 수 있는 개선된 문서 저장 위치 제어기술이 필요하다.
본 발명은 사용자가 PC에서 문서 저작 소프트웨어를 구동하여 문서를 작성하고 저장하려고 할 때 사용자가 지정하는 임의의 위치가 아니라 관리자가 지정한 저장위치에만 문서가 저장되도록 하는 방법을 제공하고자 한다.
보다 구체적으로, 사용자 PC 운영체제에서 파일 저장 위치를 제어하는 파일시스템 필터 드라이버가 저작 소프트웨어의 구동여부와 관계없이 별도로 구동하되, 쓰기 파일시스템 이벤트가 발생할 경우 해당 이벤트가 사전에 지정된 저작 소프트웨어의 프로세스에 의해서 생성된 이벤트인지 확인하고, 쓰기 위치가 허용된 위치가 아니라면 사전에 지정한 정규 형식의 쓰기 이벤트에 한하여 쓰기 작업이 진행되고, 그 이외 나머지 경우는 쓰기 이벤트를 차단하는 방법을 제공하고자 한다.
본 발명의 일 측면에 따르면, 파일 저장 위치를 제어하는 컴퓨터 구현 방법으로서, 파일 저장 위치 제어 대상인 저작 소프트웨어를 통한 쓰기 이벤트가 발생하는 경우, 사전 지정된 파일 저장 정책 및 해당 저작 소프트웨어의 파일 저장 과정에서 생성되는 임시 저장 파일에 관한 쓰기 이벤트의 식별을 위한 정규식(regular expression)을 확인하는 단계; 및 상기 발생된 쓰기 이벤트가 상기 정규식에 해당하는 쓰기 이벤트가 아닌 경우, 상기 파일 저장 정책에 부합하는 경우에만 해당 쓰기 이벤트를 실행하고 상기 파일 저장 정책에 부합하지 않는 경우에는 해당 쓰기 이벤트를 불허하는 단계를 포함하는 파일 저장 위치 제어 방법이 제공된다.
일 실시예에서, 상기 파일 저장 위치 제어 대상인 저작 소프트웨어의 프로그램 확인값, 제어 대상인 저작 소프트웨어 별 또는 사용자 별로 사전 지정된 파일 저장 정책, 제어 대상인 저작 소프트웨어 별로의 상기 정규식을 사전 저장하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 프로그램 확인값은, 상기 제어 대상인 저작 소프트웨어에 관한 프로그램명, 프로세스명, 프로그램 바이너리 파일의 해쉬값, 해당 프로그램 파일에 첨부된 인증서 기반의 디지털 서명 중 적어도 하나를 포함할 수 있다.
일 실시예에서, 상기 발생된 쓰기 이벤트가 상기 정규식에 해당하는 쓰기 이벤트인 경우, 상기 파일 저장 정책과 무관하게 해당 쓰기 이벤트를 실행하는 단계를 더 포함할 수 있다.
일 실시예에서, 사용자 별 또는 상기 제어 대상 저작 소프트웨어 별 파일 저장 정책을 로딩하는 단계; 상기 제어 대상 저작 소프트웨어의 구동 여부를 모니터링하는 단계; 파일 이벤트 중 쓰기 이벤트가 발생하는지 여부를 모니터링하는 단계; 상기 제어 대상 저작 소프트웨어를 통해 상기 쓰기 이벤트가 발생된 경우, 해당 제어 대상 저작 소프트웨어 또는 해당 소프트웨어를 사용하는 사용자에 따른 파일 저장 정책에 따른 사전 지정된 파일 저장 위치를 확인하는 단계; 상기 쓰기 이벤트에 따른 저장 시도 위치가 상기 파일 저장 정책에 따른 사전 지정된 파일 저장 위치와 일치하는지 여부를 판단하는 단계를 포함할 수 있다.
일 실시예에서, 상기 쓰기 이벤트에 따른 저장 시도 위치가 상기 파일 저장 정책에 따른 사전 지정된 파일 저장 위치와 일치하지 않는 경우, 상기 발생된 쓰기 이벤트가 해당 제어 대상 저작 소프트웨어의 상기 정규식에 해당하는지 여부를 판단하는 단계를 포함할 수 있다.
일 실시예에서, 상기 쓰기 이벤트에 따른 저장 시도 위치가 상기 파일 저장 정책에 따른 사전 지정된 파일 저장 위치와 일치하는 경우, 해당 쓰기 이벤트를 실행하는 단계를 포함할 수 있다.
본 발명의 실시예에 의하면, 사용자가 PC 단말기를 다양한 문서 저작 소프트웨어를 사용하는데 있어서, 사전에 지정된 저작 소프트웨어를 통해서 문서를 작성 또는 수정하여 저장하는 경우 지정한 위치에만 문서가 저장되게 함으로써, 사용자가 무분별하게 문서를 보관하지 못하게 하는 효과가 있다.
이에 따르면, 사용자가 생성한 문서는 지정된 저장공간에만 저장됨으로써 자동으로 원격 서버에 동기 또는 백업되는 위치에 한정되어 저장될 수 있고, 보안을 위해 암호화되는 저장 공간에만 문서가 생성되도록 할 수 있으며, 또는 외부 파일서버나 USB 등으로 해당 PC 가 아닌 다른 물리적인 저장소에만 문서가 저장될 수 있도록 제어할 수도 있다.
도 1은 오피스 프로그램과 같은 문서 저작 소프트웨어의 파일 저장 위치를 제어하는 클라이언트 프로그램의 주요 구성부를 도식화한 도면.
도 2은 본 발명의 일 실시예예 따른 파일 저장 위치 제어 방법에 관한 흐름도.
도 3a 내지 도 3c는 지정된 저장 위치가 아닌 부분에 문서 저작 소프트웨어가 저장을 시도했을 때 차단되는 화면 예시들.
도 4는 문서 저작 소프트웨어별로 작동되기 위해서 반드시 파일 쓰기가 되어야 하는 연산 파일 목록의 일부와 그 연산 파일 목록을 패턴화할 수 있는 정규 형식을 예시한 도면.
도 5는 본 발명의 다른 실시예에 따른 파일 저장 위치 제어 방법에 관한 흐름도. 특히, 도 5는 File IO 정책 데몬이 해당 쓰기 이벤트가 사전에 지정된 저작 소프트웨어의 임시 저장 파일 정규 형식에 포함되면서, 쓰기 위치가 저장 허용 위치가 아니라면 쓰기 이벤트를 차단하는 방법에 관한 흐름도이다.
도 6은 문서 저작 소프트웨어별로 파일을 저장하기 전에 임시로 해당 파일을 저장하는 파일 목록과 해당 임시 파일 목록을 패턴화 할 수 있는 정규 형식을 예시한 도면.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제1, 제2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
또한, 명세서 전체에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
또한, 명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하나 이상의 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 조합으로 구현될 수 있음을 의미한다.
이하, 첨부된 도면들을 참조하여 본 발명의 실시예를 상세히 설명한다.
도 1은 오피스 프로그램과 같은 문서 저작 소프트웨어의 파일 저장 위치를 제어하는 클라이언트 프로그램의 주요 구성부를 도식화한 도면이고, 도 2은 본 발명의 일 실시예예 따른 파일 저장 위치 제어 방법에 관한 흐름도이다. 그리고 도 3a 내지 도 3c는 지정된 저장 위치가 아닌 부분에 문서 저작 소프트웨어가 저장을 시도했을 때 차단되는 화면 예시들이며, 도 4는 문서 저작 소프트웨어별로 작동되기 위해서 반드시 파일 쓰기가 되어야 하는 연산 파일 목록의 일부와 그 연산 파일 목록을 패턴화할 수 있는 정규 형식을 예시한 도면이다.
먼저, 도 1을 참조하면, 본 발명의 실시예에 따른 저장 위치 제어 클라이언트(100)는, 저장 정책부(110), 파일 입출력 정책 데몬(120), 프로세스 모니터(130), 파일 입출력 필터 구동부(125), 프로세스 모니터 구동부(135)를 포함할 수 있다. 이때, 저장 정책부(110), 파일 입출력 정책 데본(120), 프로세스 모니터(130)는 User Mode로서 애플리케이션 계층(application layer)에, 파일 입출력 필터 구동부(125), 프로세스 모니터 구동부(135)는 Kernel Mode로서 커널 계층(Kernel layer)에 설치될 수 있다.
전체적인 구동 흐름을 상세히 설명하면, 저장 위치 제어 클라이언트가 PC 단말기에 설치되어 있고, 정상적인 사용자인지 확인하기 위하여 저장 위치 제어 클라이언트를 구동하여 사용자 인증을 정상적으로 끝마치면, 사용자에 할당된 저장 정책을 관리 서버로부터 네트워크로 수신하거나 저장 정책부(110)로부터 정책 파일을 로딩하여 사용자별 저장 정책을 확보한다.
여기서, 저장 위치 제어 클라이언트는 저장 위치 제어라는 특정 기능을 수행하기 위해 PC 단말기에 설치되는 일종의 에이전트 프로그램을 의미한다. 또한, 사용자별 저장 정책은 저장 지정 위치(즉, 사용자별 저장 허용 위치), 지정 위치 저장 대상 프로그램 확인값, 지정 위치 저장 대상 프로그램의 예외 저장 정규식 등으로 구성될 수 있다.
저장 지정 위치는 해당 사용자가 관리자에 의해 지정된 저작 소프트웨어를 사용할 경우 해당 프로그램의 데이터는 사전에 지정된 저장 위치에만 저장되도록 설정하는 값이다. 일 예로, 지정 저장 위치가 네트워크 파일서버로 설정된다면 개인 PC내 저장소가 아닌 사전에 지정된 네트워크 파일서버로 자료가 저장될 수 밖에 없어서 문서가 파일서버 내로 축적될 수 있다. 다른 예로, 지정 저장 위치가 USB와 같은 이동형 드라이브로 설정된다면 관리자가 사전에 지정한 USB에만 저장될 수도 있다. 또 다른 예로, 지정 저장 위치가 로컬디스크 내의 특정 폴더로 지정된다면 클라우드 드라이브나 자동 백업 소프트웨어에 의해 동기화되는 그 특정 폴더에만 문서가 저장되도록 제어될 수 있다. 뿐만 아니라 지정 저장 위치가 암호화되는 보안 영역이라면 모든 문서가 최초 생성시점부터 해당 보안 영역 내에서 안전하게 생성될 수 도 있다.
지정 위치 저장 대상 프로그램 확인값은 해당 사용자가 PC에 설치된 프로그램을 구동할 때, 그 프로그램이 관리자가 사전에 지정 위치 저장 대상 프로그램으로 지정한 프로그램인지 확인할 수 있게 하는 값을 의미한다. 여기서, 상기 프로그램 확인값은 프로그램명, 프로세스명, 프로그램 바이너리 파일의 해쉬값, 해당 프로그램 파일에 첨부된 인증서 기반의 디지털 서명(digital signature) 정보 등이 이용될 수 있으며, 경우에 따라서는 이들의 조합이 이용될 수 있다. 예를 들어, 최신 버전의 오피스나 캐드 프로그램의 경우 저작 소프트웨어가 바이너리 사이즈가 변경되는 인증서 기반의 디지틀 서명을 기반으로 구동되기 때문에, 지정 위치 저장 대상 프로그램을 판단하는데 있어서 단순히 프로그램의 바이너리 파일의 해쉬값만으로는 지정 위치 저장 대상 프로그램인지 여부를 판단하기에는 한계가 있을 수 있기 때문이다.
지정 위치 저장대상 프로그램의 예외 저장 정규식은 지정 위치 저장 대상 프로그램이 구동될 때 반드시 지정 위치 이외의 저장소에 파일을 써야지만 구동될 수 있는 파일들을 예외적으로 저장할 수 있게 하는 파일 생성 패턴을 정규식(regular expression)으로 설정한 것이다. 일반적으로, 문서 저작 소프트웨어는 구동할 때 보조 연산을 위해서 임시 저장 파일을 생성해야만 구동되며, 저작 소프트웨어마다 독자적인 파일 생성 규칙을 가지고 파일을 생성한다. 이러한 임시 저장 파일이 생성되는 위치는 주로 사용자가 파일을 저장하려는 위치가 아니라 저작 소프트웨어가 설치된 하위 폴더 또는 OS TEMP 폴더에 위치하게 되며, 보조 연산을 위한 임시 저장 파일을 읽거나 생성할 수 없으면 프로그램 자체가 구동하지 못하거나 오작동하게 된다.
일 예로, 마이크로소프트의 오피스 프로그램 중 워드 프로그램(MS Word)의 경우, C:\Users\Administrator\AppData\Local\Microsoft\Office\ 폴더에 *.Dat 파일을 비롯한 임시 저장 파일들이 생성되어야 MS Word 프로그램이 정상적으로 작동하며, 임시 저장 파일을 생성하지 못하면 프로그램이 강제 종료된다. 다른 예로, 특정 버전의 MS PowerPoint의 경우, C:\Users\namu_231\AppData\Local\Microsoft\Office\OTele\{0F513088-9AB9-4644-A9F9-7F23AEF77E0D} - 8452 ?? OTele.dat. 같은 임시 저장 파일이 생성된다.
이때, 문서 저작 소프트웨어마다 보조 연산을 위해 참조하는 임시 저장 파일의 이름이 매번 다르게 생성하기 때문에, 본 발명의 실시예에서는 프로그램이 정상적으로 작동되도록 예외 처리가 필요한 정규식으로 패턴화하여 해당 정규식에 일치하는 경로 및 파일명으로 파일 쓰기 이벤트가 발생하는 경우 지정 위치 저장 대상 프로그램이라 하더라도 해당 쓰기 이벤트가 구동될 수 있도록 한다. 이에 관한 예로서, 도 4에는 MS Office의 각 소프트웨어 별로 보조 연산을 위한 임시 저장 파일의 정규식의 각종 패턴의 예들이 나열되고 있다.
전술한 바와 같이, 저장 정책부(110)가 사용자별 저장 정책을 로딩하면, 프로세스 모니터(130)는 현재 구동중인 프로그램 중 지정 위치 저장 대상 프로그램이 있는지 확인하고, 지정 위치 저장 대상 프로그램이 있다면 해당 프로그램의 프로세스 ID(PID)를 산출하여 파일 입출력 정책 데몬(120)으로 통보한다. 또한 프로세스 모니터(130)는 프로세스 모니터 구동부(135)에서 감지되는 프로그램 시작 이벤트 또는 구동중인 프로세스의 종료 이벤트가 발생할 때마다 해당 프로그램이 지정 위치 저장 대상 프로그램인지 아닌지 확인하여 PID를 추가하거나 제외할지를 파일 입출력 정책 데몬(120)으로 통보할 수 있다.
이를 위해, 프로세스 모니터(130)는 단순하게 특정 프로그램의 파일명이나 프로그램명을 통해서 지정 위치 저장 대상 프로그램인지 아닌지를 확인할 수도 있고, 구동된 프로그램의 파일 경로를 산출하여 해당 바이너리 파일의 해쉬값을 산출하여 상호간 비교하거나, 해당 파일의 디지털 서명을 검증하여 지정 위치 저장 대상 프로그램인지 아닌지를 확인할 수도 있다.
파일 입출력 정책 데몬(120)과 파일 입출력 필터 구동부(125)는 저장 정책부(110)로부터 보내온 파일 저장 정책을 수신하고, 운영체제에서 파일 쓰기 이벤트가 발생한 경우 해당 이벤트가 지정 위치 저장 대상 프로그램의 PID에 의해서 생성되었음에도 불구하고 그때의 쓰기 위치가 허용된 지정 위치가 아닌 경우에는 다음과 같이 처리한다. 즉, 그 쓰기 이벤트가 사전에 지정된 정규식 패턴으로 발생한 이벤트인 경우에는 쓰기 동작을 그대로 실행하지만, 그 이외의 케이스에서는 쓰기 이벤트에 따른 쓰기 동작을 차단할 수 있다. 본 명세서에서는 설명의 편의 및 집중을 위해, 쓰기 이벤트를 중심으로 설명하였지만, 최종적으로는 파일 저장을 수반하게 되는 이벤트(예를 들어, 파일 생성 이벤트 등)라면 본 발명이 동일 또는 유사하게 적용될 수 있음은 물론이다.
따라서 본 발명의 실시예에 의하면, 저작 소프트웨어의 저장 위치를 제어 하는 구현 방식에 있어서 사전에 지정한 정규식 패턴으로 발생한 생성 또는 쓰기 이벤트가 저작 소프트웨어에 의해 파일을 안전하게 저장시키기 위해 필요한 보조 연산 과정에서 생성되는 임시 저장 파일에 관련된 정규식에 해당하는 경우, 임시 저장 파일의 생성 위치가 저장 허용 위치에 해당하지 않더라도 생성 또는 쓰기 이벤트를 허용하되, 그 이외의 경우에는 차단함으로써 궁극적으로 지정된 저장 허용 위치에만 사용자가 의도하는 파일이 최종 저장될 수 있도록 제어할 수 있다.
상술한 문서 저장 위치 제어 방법을 실행하는 일 실시예의 흐름도가 도 2에 도시되고 있는 바, 이하 이에 관하여 상세히 설명한다. 파일 이벤트가 발생하면[도 2의 S210 참조], 해당 이벤트가 쓰기 이벤트인지를 확인한다[도 2의 S220 참조]. 만일 해당 이벤트가 쓰기 이벤트가 아닌 경우, 해당 이벤트에 관한 별다른 처리(제어)는 필요 없으며, 그대로 해당 이벤트를 처리하면 된다[도 2의 S256 참조].
반면, 해당 이벤트가 쓰기 이벤트에 해당하는 경우라면, 쓰기를 시도한 프로그램의 PID가 사전 지정된 지정 위치 저장 대상 프로그램의 PID에 해당하는지를 확인한다[도 2의 S230 참조]. 만일 이때, 지정 위치 저장 대상 프로그램의 PID에 해당하지 않는 경우에는 해당 쓰기 이벤트에 따라 별다른 제어 없이 그대로 해당 이벤트를 처리한다[도 2의 S256 참조]. 위와 달리, 지정 위치 저장 대상 프로그램의 PID에 해당하는 경우라면, 그 쓰기 이벤트에 따른 저장 시도 위치가 사전 지정된 사용자별 쓰기 정책에 따른 지정 저장 위치(즉, 허용 저장 위치)와 일치하는지를 판단한다[도 2의 S240 참조].
도 2의 S240에 따른 판단 결과, 쓰기 이벤트에 따른 저장 시도 위치가 지정 저장 위치에 일치하는 경우라면, 그 쓰기 이벤트를 그대로 처리한다[도 2의 S250 참조]. 이와 달리, 쓰기 이벤트에 따른 저장 시도 위치가 사용자별 쓰기 정책에 따른 지정 저장 위치와 상이한 경우, 그 쓰기 이벤트가 예외 저장 처리가 필요한 해당 저작 소프트웨어에서의 전술한 정규식에 해당하는지 여부를 판단한다[도 2의 S245 참조].
도 2의 S245에 따른 판단 결과, 예외 처리가 필요한 정규식에 해당하는 쓰기 이벤트인 경우, 그 저장 시도 위치와 무관하게 그 쓰기 이벤트를 처리한다[도 2의 S252 참조]. 이와 달리, 예외 처리가 필요한 정규식에 해당하는 쓰기 이벤트가 아닌 경우, 그 쓰기 이벤트에 따른 파일 저장을 차단(불허)한다[도 2의 S254 참조].
도 6은 문서 저작 소프트웨어별로 파일을 저장하기 전에 임시로 해당 파일을 저장하는 파일 목록과 해당 임시 파일 목록을 패턴화할 수 있는 정규 형식을 예시한 도면이다. 도 6을 참조하면, MS Excel의 경우 사용자가 파일 저장을 시도하면 동일 해당 위치에 사전에 정의된 규칙에 따라 임시 저장 파일(일예로 엑셀에서 프로그램을 최초 구동하여 처음 파일을 저장을 시도할 때 사전에 정의된 패턴에 의한 FC564라는 임시 저장 파일, 또는 기존에 파일을 오픈하여 새이름으로 저장할 때 E6A74000라는 임시 저장 파일)이 생성된다, 이를 정규식으로 필터링하여 해당 정규식에 포함되는 파일 이벤트 생성 또는 쓰기에 포함되고, 저장 위치가 사전에 정의된 지정 위치가 아니면 임시 저장 파일 생성을 차단하여 최종 사용자가 원하는 최종 파일 저장 생성을 차단하게 된다.
저작 소프트웨어마다 또는 소프트웨어 버전마다 쓰기 이벤트 차단 방식은 상이할 수 있지만, 본 발명의 실시예에 의하면 어떤 저작 소프트웨어를 이용하여 파일 저장을 시도한다 하더라도 정상적인 파일이 지정된 저장위치 이외에 다른 저장위치에 생성되지 않는다. 도 2의 S254에 따른 쓰기 이벤트 차단 처리의 예시들이 도 3에 도시되어 있다.
일 예로, MS Excel에서는 지정 저장 위치 이외의 공간에 저장을 시도하면 '문서를 성공적으로 저장했으나 공유 위반 때문에 다시 열수 없습니다. 문서를 닫고 다시 열어 보십시오'라는 경고창이 생성될 수 있다[도 3a 참조]. 물론 이때에도 문서는 실제 저장되지 않는다.
다른 예로, MS WORD의 경우,'다른 이름으로 저장' 팝업창에서 저장 버튼을 클릭하면 창이 사라지지만 문서 저장에 실패를 하고, 다시 '다른이름으로 저장' 팝업창이 나타나 저장을 차단할 수 있다[도 3b 참조].
또 다른 예로, MS PowerPoint에서는 지정 저장 위치 이외의 공간에 저장을 시도하면 보조 연산을 위한 임시 작성 파일 등이 정상적으로 작성되지 못하여 최종명의 파일은 해당 위치에 생성되나 깨진 빈 파일만 생성될 수 있다[도 3c 참조].
이상에서는 도 2의 흐름도를 기준으로 본 발명을 설명하였지만, 본 발명은 상술한 도 2의 실시예와 다른 도 5의 실시예에서와 같이 동작할 수 있다. 여기서, 도 5는 본 발명의 다른 실시예에 따른 파일 저장 위치 제어 방법에 관한 흐름도로서, 특히, File IO 정책 데몬이 해당 쓰기 이벤트가 사전에 지정된 저작 소프트웨어의 임시 저장 파일 정규 형식에 포함되면서, 쓰기 위치가 저장 허용 위치가 아니라면 쓰기 이벤트를 차단하는 방법에 관한 흐름도이다. 이하 이에 관하여 상세히 설명한다.
파일 이벤트가 발생하면[도 5의 S510 참조], 해당 쓰기 이벤트가 해당 저작 소프트웨어의 임시 저장 파일의 정규식에 해당하는 쓰기 이벤트인지 여부를 판단한다[도 5의 S520 참조]. 도 5의 S520에 따른 판단 결과, 정규식에 해당하는 쓰기 이벤트인 경우, 그 쓰기 이벤트에 따른 저장 시도 위치와 무관하게 해당 쓰기 이벤트를 실행한다[도 5의 S544 참조]. 위와 달리, 정규식에 해당하는 쓰기 이벤트가 아닌 경우에는 도 5의 S530을 수행한다. 즉, 도 5의 S530에 따라 그 쓰기 이벤트에 따른 저장 시도 위치가 사전 지정된 쓰기 정책에 따른 지정 저장 위치와 일치하는지 여부를 판단하여, 만일 일치하는 경우 해당 쓰기 이벤트를 실행하고[도 5의 S540 참조], 일치하지 않는 경우에는 그 쓰기 이벤트를 차단할 수 있다[도 5의 S542 참조].
이상에서 설명한 본 발명의 실시예들은, 문서 저작 소프트웨어의 구동방식과 복잡도에 따라서 다르게 재구성될 수 있음은 자명하다. 전술한 바와 같이, 오피스나 캐드와 같은 고도화된 저작 소프트웨어들은 사용자가 의도적으로 파일을 저장할 때 발생하는 파일 쓰기 이벤트 이외에도, 프로그램 구동에 필요한 보조 연산 파일들이 프로그램 구동과 동시에 특정 패턴으로 생성되어야 프로그램이 구동될 수 있고, 사용자가 파일을 저장할 때 기존 보관하고 있던 파일에 직접 파일을 덮어 쓰기를 하는 것이 아니라 해당 저작 소프트웨어가 사전에 정의한 파일 이름으로 새로운 문서 파일(즉, 임시 저장 파일)을 저장하고, 안정적으로 저장이 성공하면 직전 저장된 파일을 지운 후에 새로 저장된 파일을 원래의 파일명으로 리네임한다. 반면, 단순한 저작 소프트웨어인 노트패드(notepad.exe)의 경우 프로그램 구동에 필요한 보조 연산 파일 생성을 필요로 하지 않고, 문서 저장시 파일을 직접 파일 시스템에 덮어 쓰는 방식으로 구동된다. 따라서, 노트패드를 지정 위치 저장 대상 프로그램으로 설정한다면 쓰기 이벤트가 발생할 경우 쓰기 이벤트를 발생시킨 프로그램이 노트패드인지 아닌지만을 감시하고 저장이 가능하게 하거나 불가능하게 할 수 도 있다.
또한 저작 소프트웨어 중 구동시 필요한 보조 연산 파일의 생성은 필요 없으나 사용자의 문서 저장시 파일을 직접 파일 시스템에 덮어 쓰는 방식이 아니라 사전에 지정된 규칙으로 내부적으로 파일 생성을 완료한 후 리네임하는 방식으로 작동하는 경우, 해당 저작 소프트웨어가 쓰기 이벤트를 생성할 경우 쓰려고 하는 임시 저장 파일의 위치가 내부적으로 사전에 허용된 위치가 아니면 임시 저장 파일의 쓰기를 차단할 수 있음도 자명하다.
상술한 본 발명의 실시예에 따른 문서 저장 위치 제어 방법은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체로는 컴퓨터 시스템에 의하여 해독될 수 있는 데이터가 저장된 모든 종류의 기록 매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래쉬 메모리, 광 데이터 저장장치 등이 있을 수 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 통신망으로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 읽을 수 있는 코드로서 저장되고 실행될 수 있다.
이상에서는 본 발명의 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 쉽게 이해할 수 있을 것이다.

Claims (7)

  1. 파일 저장 위치의 제어를 위해, 단말기에 설치된 저장 위치 제어 클라이언트에 의해 실행되는 컴퓨터 구현 방법으로서,
    파일 저장 위치 제어 대상인 저작 소프트웨어를 통한 쓰기 이벤트가 발생하는 경우, 사전 지정된 파일 저장 정책 및 해당 저작 소프트웨어의 파일 저장 과정에서 생성되는 임시 저장 파일에 관한 쓰기 이벤트의 식별을 위한 정규식(regular expression)을 확인하는 단계-여기서, 상기 정규식은, 해당 저작 소프트웨어의 정상 구동을 위한 보조 연산 과정에서 생성되어야 하는 임시 파일을 해당 저작 소프트웨어 별로 사전 지정된 저장 위치로 저장하여야 할 때 해당 임시 저장 파일의 쓰기 이벤트에 따른 파일 저장 패턴임을 구분 식별해내기 위해 저작 소프트웨어 별로 사전에 마련해둔 정규화 패턴을 의미함-; 및
    상기 발생된 쓰기 이벤트가 상기 정규식에 해당하는 쓰기 이벤트가 아닌 경우 상기 파일 저장 정책에 부합하는 경우에만 해당 쓰기 이벤트의 실행을 허용하고, 상기 발생된 쓰기 이벤트가 상기 정규식에 해당하는 쓰기 이벤트인 겨우 상기 파일 저장 정책과 무관하게 해당 쓰기 이벤트의 실행을 허용하는 단계
    를 포함하는 파일 저장 위치 제어 방법.
  2. 제1항에 있어서,
    상기 파일 저장 위치 제어 대상인 저작 소프트웨어의 프로그램 확인값, 제어 대상인 저작 소프트웨어 별 또는 사용자 별로 사전 지정된 파일 저장 정책, 제어 대상인 저작 소프트웨어 별로의 상기 정규식을 사전 저장하는 단계를 더 포함하는, 파일 저장 위치 제어 방법.
  3. 제2항에 있어서,
    상기 프로그램 확인값은, 상기 제어 대상인 저작 소프트웨어에 관한 프로그램명, 프로세스명, 프로그램 바이너리 파일의 해쉬값, 해당 프로그램 파일에 첨부된 인증서 기반의 디지털 서명 중 적어도 하나를 포함하는, 파일 저장 위치 제어 방법.
  4. 삭제
  5. 제1항에 있어서,
    사용자 별 또는 상기 제어 대상 저작 소프트웨어 별 파일 저장 정책을 로딩하는 단계;
    상기 제어 대상 저작 소프트웨어의 구동 여부를 모니터링하는 단계;
    파일 이벤트 중 쓰기 이벤트가 발생하는지 여부를 모니터링하는 단계;
    상기 제어 대상 저작 소프트웨어를 통해 상기 쓰기 이벤트가 발생된 경우, 해당 제어 대상 저작 소프트웨어 또는 해당 소프트웨어를 사용하는 사용자에 따른 파일 저장 정책에 따른 사전 지정된 파일 저장 위치를 확인하는 단계;
    상기 쓰기 이벤트에 따른 저장 시도 위치가 상기 파일 저장 정책에 따른 사전 지정된 파일 저장 위치와 일치하는지 여부를 판단하는 단계를 포함하는, 파일 저장 위치 제어 방법.
  6. 제5항에 있어서,
    상기 쓰기 이벤트에 따른 저장 시도 위치가 상기 파일 저장 정책에 따른 사전 지정된 파일 저장 위치와 일치하지 않는 경우, 상기 발생된 쓰기 이벤트가 해당 제어 대상 저작 소프트웨어의 상기 정규식에 해당하는지 여부를 판단하는 단계를 포함하는, 파일 저장 위치 제어 방법.
  7. 제6항에 있어서,
    상기 쓰기 이벤트에 따른 저장 시도 위치가 상기 파일 저장 정책에 따른 사전 지정된 파일 저장 위치와 일치하는 경우, 해당 쓰기 이벤트를 실행하는 단계를 포함하는, 파일 저장 위치 제어 방법.
KR1020170049973A 2017-04-18 2017-04-18 문서의 저장 위치를 제어하기 위한 방법 KR101995015B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170049973A KR101995015B1 (ko) 2017-04-18 2017-04-18 문서의 저장 위치를 제어하기 위한 방법
PCT/KR2017/006803 WO2018194217A1 (ko) 2017-04-18 2017-06-28 문서의 저장 위치를 제어하기 위한 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170049973A KR101995015B1 (ko) 2017-04-18 2017-04-18 문서의 저장 위치를 제어하기 위한 방법

Publications (2)

Publication Number Publication Date
KR20180116974A KR20180116974A (ko) 2018-10-26
KR101995015B1 true KR101995015B1 (ko) 2019-07-02

Family

ID=63857037

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170049973A KR101995015B1 (ko) 2017-04-18 2017-04-18 문서의 저장 위치를 제어하기 위한 방법

Country Status (2)

Country Link
KR (1) KR101995015B1 (ko)
WO (1) WO2018194217A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102525655B1 (ko) * 2020-12-31 2023-04-25 (주)나무소프트 문서 저장 제어 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080222348A1 (en) * 2007-03-08 2008-09-11 Scandisk Il Ltd. File system for managing files according to application
US20110231378A1 (en) 2010-03-16 2011-09-22 Yang Jin Seo Method and system for security of file input and output of application programs

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020060517A (ko) * 2001-01-11 2002-07-18 지용익, 이원재 프로세스 아이디와 저장공간 아이디를 이용한 문서 파일보안 방법
KR100443203B1 (ko) * 2001-11-22 2004-08-04 주식회사 알엔디소프트 메시지 가로채기를 이용한 응용 프로그램에 대한 보안 방법
US10289860B2 (en) * 2014-04-15 2019-05-14 Namusoft Co., Ltd. Method and apparatus for access control of application program for secure storage area

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080222348A1 (en) * 2007-03-08 2008-09-11 Scandisk Il Ltd. File system for managing files according to application
US20110231378A1 (en) 2010-03-16 2011-09-22 Yang Jin Seo Method and system for security of file input and output of application programs

Also Published As

Publication number Publication date
KR20180116974A (ko) 2018-10-26
WO2018194217A1 (ko) 2018-10-25

Similar Documents

Publication Publication Date Title
US7380267B2 (en) Policy setting support tool
KR100843701B1 (ko) 콜 스택에 기록된 정보를 이용한 에이피아이 확인방법
US20140115316A1 (en) Boot loading of secure operating system from external device
US9146735B2 (en) Associating workflows with code sections in a document control system
US10289860B2 (en) Method and apparatus for access control of application program for secure storage area
KR101113820B1 (ko) 응용프로그램의 파일 입출력 보안방법과 보안시스템
EP1835430A1 (en) User terminal and method of managing a secondary storage unit in a user terminal
CA2444685A1 (en) System and method for improving the efficiency, comfort, and/or reliability in operating systems, such as for example windows
US10650158B2 (en) System and method for secure file access of derivative works
JP2005004773A (ja) 電子ドキュメントの領域を保護する方法、コンピュータ可読媒体および装置
US20140325273A1 (en) Method and Apparatus for Creating a Self Booting Operating System Image Backup on an External USB Hard Disk Drive That is Capable of Performing a Complete Restore to an Internal Sytem Disk
US9798561B2 (en) Guarded virtual machines
CN100447765C (zh) 一种移动存储设备的映射方法
JP2016126746A (ja) 格納媒体消去システム及び方法
KR20100025116A (ko) 완전삭제를 이용한 자동적인 문서유출 방지 시스템
EP2427823B1 (en) Capturing and loading operating system states
KR101995015B1 (ko) 문서의 저장 위치를 제어하기 위한 방법
US20170206371A1 (en) Apparatus and method for managing document based on kernel
US20040107357A1 (en) Apparatus and method for protecting data on computer hard disk and computer readable recording medium having computer readable programs stored therein
JP2006195629A (ja) 携帯記憶装置
JP2008152519A (ja) コンピュータ及びその基本ソフトウェア
KR101763184B1 (ko) 백업을 이용한 파일 복구 방법
KR102525655B1 (ko) 문서 저장 제어 방법
US20090055683A1 (en) Method of restoring previous computer configuration
JP2008077600A (ja) シンクライアント、シンクライアントシステム、及びプログラム

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