KR20100123133A - 응용프로그램에서 사용되는 임시 파일의 관리 방법 - Google Patents

응용프로그램에서 사용되는 임시 파일의 관리 방법 Download PDF

Info

Publication number
KR20100123133A
KR20100123133A KR1020090042175A KR20090042175A KR20100123133A KR 20100123133 A KR20100123133 A KR 20100123133A KR 1020090042175 A KR1020090042175 A KR 1020090042175A KR 20090042175 A KR20090042175 A KR 20090042175A KR 20100123133 A KR20100123133 A KR 20100123133A
Authority
KR
South Korea
Prior art keywords
file
request
temporary
monitoring
driver
Prior art date
Application number
KR1020090042175A
Other languages
English (en)
Other versions
KR101055287B1 (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 KR1020090042175A priority Critical patent/KR101055287B1/ko
Publication of KR20100123133A publication Critical patent/KR20100123133A/ko
Application granted granted Critical
Publication of KR101055287B1 publication Critical patent/KR101055287B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명의 목적은 필터 드라이버를 사용하여 각종 프로그램에서 사용되는 임시 파일의 위치를 추적하고, 해당 임시 파일들에 다중 덮어쓰기를 한 후 삭제함으로써 복구가 불가능하도록 하는, 응용프로그램에서 사용되는 임시 파일의 관리 방법을 제공함에 있다.
본 발명의 응용프로그램에서 사용되는 임시 파일의 관리 방법은, 저장매체 상에 소프트웨어 형태의 운영체제가 설치되며 상기 운영체제는 파일 시스템 드라이버를 통해 상기 저장매체에 액세스하는, 컴퓨터를 포함하는 연산처리수단에 의하여 실행되는 감시용 프로그램 또는 감시용 디바이스 드라이버 형태로 구현되며, 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버에 의하여, 필터 드라이버를 로드하면 상기 필터 드라이버를 거쳐 상기 저장매체로 들어오는 파일 입출력 요청을 모두 감시하여, 임시 파일의 정보를 파일 관리 테이블에 저장하여 관리하거나 또는 관리용 가상 저장매체를 설정하여 임시 파일의 경로를 재설정하고 파일 맵 테이블을 사용하여 관리하도록 한다.
완전 삭제, 덮어쓰기, 필터 드라이버, 후크, 감시, 가상 저장매체

Description

응용프로그램에서 사용되는 임시 파일의 관리 방법 {Management Method for Temporary Files used in Applications}
본 발명은 응용프로그램에서 사용되는 임시 파일의 관리 방법에 관한 것이다.
최근의 프로그램들은 사용자 편의성 향상을 위한 다양하고 복합적인 기능이나 편리하고 보기 좋은 인터페이스 등을 제공하도록 하는 경향으로 개발되고 있다. 그런데, 이를 위해서는 많은 메모리를 사용하게 되고, 따라서 프로그램의 용량이 커지고 작동 시 시스템 부하가 증가함에 따라, 처리 속도가 느려질 가능성이 있었다. 이러한 문제점을 방지하기 위하여, 최근의 프로그램들, 특히 Office 관련 프로그램과 같이 복합적인 기능을 사용하는 큰 프로그램의 경우 대부분, 사용자의 편리성 및 빠른 동작을 위하여 임시 파일(temporary file)들을 사용하고 있다.
이와 같은 임시 파일을 이용한 동작의 구체적인 예를 들면 다음과 같다. MS Word등의 Office 프로그램들은 파일의 저장 및 자동 저장 시기에 작업하기 이전 내용을 저장하는 임시 파일들을 사용한다. 이러한 임시 파일의 생성 위치는 해당 Office 파일이 열리는(open) 위치이며, 일반적으로 (MS-Word의 경우) ~WRL_00x.tmp 등과 같이 명명되는 .tmp 확장자의 파일로 저장된다. 도 1(A)는 이러한 임시 파일의 생성 모습을 도시하고 있으며, 이와 같은 임시 파일들은 해당 Office 파일이 닫히는(close) 시기에 삭제되도록 되어 있다.
도 1(A)에 도시된 바와 같이, MS-Word의 경우 어떤 문서가 열려진 이후로 해당 문서 내용 중 변화가 발생하면(즉 사용자가 문서 내용을 편집하게 되면) 이에 따라 ~WRL_001.tmp라는 파일이 생성되며, 문서 내용 중 변화가 많아질수록 ~WRL_002.tmp, ~WRL_003.tmp 등으로 계속적으로 임시 파일이 생성되게 된다. 이와 같은 임시 파일들은, 사용자에 의하여 해당 문서가 완전히 삭제되더라도 파일 시스템의 내부에 그대로 남아 있게 되며, 파일 복구 프로그램을 이용하면 이러한 파일들은 원본 그대로 복원이 가능하기 때문에 이를 통하여 사용자가 작성한 정보가 외부로 유출이 될 가능성이 매우 높다. 도 1(B)는 파일 복구 프로그램을 이용하여 파일 시스템의 삭제된 파일을 검사한 결과로서, 상기 도 1(A)에 보여진 ~WRL0001.tmp 및 ~$rnelthreads.doc, 즉 MS-Word 프로그램 작업 중에 생성된 임시 파일인 ~WRL_001.tmp 및 ~$RNEL~1.DOC가 그대로 검색되어 나오는 것을 확인할 수 있다. 이와 같이 파일 복구 프로그램을 이용하여 삭제된 파일을 복구하고 이를 MS-Word로 열면 작성하던 파일의 형태 그대로 복원이 된다. 이와 같은 임시 파일들은, 갑작스러운 전원 차단이나 사용자 실수 등에 의하여 미처 작업한 내용을 저장하지 못한 채 문서 파일이 닫혔을 경우 복구를 위하여 매우 유용하게 사용될 수도 있는 장점도 가지고 있다.
그런데, 최근 이러한 프로그램들의 일반적인 사용 환경이 과거와 크게 달라 지고 있어, 이러한 기능이 문제가 될 위험성이 높아지고 있다. 종래 특히 Office 관련 프로그램 류의 프로그램들은 회사 내 컴퓨터에서만 거의 사용되었으나, 최근에는 각 개인이 필요한 자료들을 이동형 USB 등과 같은 휴대용 저장 장치에 저장하고, 이를 이용하여 편리하게 자료를 이동할 수 있게 됨으로써 회사 내 컴퓨터 뿐 아니라 출장지, 거래처 등에서도 작업을 수행할 수 있게 되었다. 이와 같은 자료의 편리한 이동은 활동 영역에 제한받지 않고 언제 어디서나 작업을 수행할 수 있게 해 준다는 측면에서 큰 장점이 될 수도 있으나, 상술한 바와 같은 임시 파일 생성 기능으로부터 암시되듯이 오히려 이러한 편리성 때문에 개인 정보들이 유출될 가능성이 매우 높아진다는 것은 주지의 사실이다.
임시 파일이 생성되는 동작은 비단 Office 관련 프로그램과 전혀 다른 종류의 프로그램에서도 수없이 이루어지고 있다. 상술한 바와 같이 개인 정보나 기밀 정보의 유출이 일어날 가능성이 높은 일례로 웹 메일(web mail) 운용을 들 수 있다. 웹 메일 운용 방식은, 실제로 메일을 관리하는 메일 서버에 각 개인 사용자가 Internet Explorer와 같은 브라우저를 통해 접속하고, 브라우저를 통해 메일 서버에 저장된 개인의 메일 내용 등을 내려받아 읽어들일 수 있게 되어 있다. 이 때, 브라우저에서는 로컬 저장 파일 뿐만 아니라 외부에 저장되어 있는 파일 또는 데이터를 가져와 디스플레이를 수행하게 되는데, 이 과정에서 임시 폴더에 많은 자료를 임시로 저장하게 된다. 일례로 Windows XP를 기준으로 할 때, 기본적(default)으로 C:\Documents and Settings\[사용자 이름]\Local Settings\Temporary Internet Files(위 경로에서 [사용자 이름] 부분은 각 PC 환경에 따라 변경될 수 있으며, 상기 폴더는 기본적으로 [숨김]으로 되어 있다)에 브라우저에서 내려받은 인터넷 임시 파일들이 저장된다는 것은 잘 알려져 있는 사실이다. 브라우저에서 인터넷을 통해 웹 페이지를 볼 때, 접속 또는 새로고침 시마다 새로 해당 웹 페이지와 관련된 문서, 이미지 등의 파일을 내려받도록 할 경우, 트래픽 량이 증가하여 서버에 부담을 줄 뿐만 아니라 클라이언트 쪽에서도 해당 페이지를 볼 때마다 새로 데이터를 내려받게 됨으로써 시간 및 리소스의 낭비가 이루어지게 된다. 따라서 브라우저는 이와 같은 인터넷 임시 파일을 적절한 경로에 저장하여 두고 해당 페이지를 볼 때 이전에 내려받아 놓은 데이터를 재사용함으로써 서버 및 클라이언트 양쪽 모두에게 보다 효율적인 동작이 가능하도록 해 준다. 도 2(A)는 이와 같이 웹을 통하여 메일을 확인하고 난 후에 Internet Explorer에서 사용하는 임시 파일 폴더를 살펴본 내용이다. mail_view_fram[1].htm, mail_view_subject_frame[1].htm 등의 파일들은 각각 메일의 본문과 제목을 가지고 있는 파일들로서 IE에서 내려받아 임시로 저장하는 파일들이다. 이와 같은 임시 파일의 이름은 각 메일 사이트 마다 다르지만 해당 사이트별로는 공통적인 이름을 사용한다. 이러한 파일들은 삭제가 되기도 하지만 그대로 저장되어 있는 경우도 있다.
그런데, 이와 같이 인터넷 임시 파일들이 로컬 클라이언트에 저장됨으로써 역시 개인 정보의 유출 가능성이 커지게 된다. 보다 상세히 설명하자면 다음과 같다. Internet Explorer 등과 같은 브라우저를 이용하여 웹 상에 있는 특정 메일을 확인하게 되면, 이 파일들이 그대로 인터넷 임시 파일 폴더에 저장이 된다. 이 때 이 임시 파일들이 유출될 경우, 분석할 필요도 없이 단지 이를 브라우저 창에 불러들여 띄우기만 해도 메일에 어떠한 내용들이 있었고 어떠한 첨부 파일들이 있었는지 단숨에 알아낼 수 있는 것이다. 도 2(B)는 이와 같이 임시 폴더에 저장된 메일이나 삭제된 메일 파일을 복구하여 직접 내용을 확인한 모습이다. 도시된 바와 같이 메일에 어떠한 내용이 들어 있었고 어떠한 제목이었는지 등의 세부적인 내용이 전부 되살아나기 때문에, 해당 PC를 사용한 사람이 어떠한 정보를 사용했는지 금방 추적이 가능해진다.
물론 종래에 웹 메일과 관련하여 이러한 문제점을 해결하기 위한 방법이 없었던 것은 아니다. 예를 들어 메일 목록 페이지가 이동함에 따라 자동 스크립트에 의하여 해당 파일이 지워지도록 하는 방법이 있으나, 페이지가 빨리 바뀌거나 인터넷 환경 등에 따라 지워지지 않는 경우가 종종 발생한다는 문제점이 알려져 있다. 또한 암호화를 하여 삭제를 하는 방법도 알려져 있으나, 암호화된 내용을 분석하는 방법은 임시 폴더 안에 같이 저장되는 자바 스크립트 파일 등과 같은 스크립트들을 분석하게 되면 사용된 키 값을 알아낼 수 있어 쉽게 암호 해제를 할 수 있다는 것도 잘 알려져 있는 사실이다.
뿐만 아니라, 이와 같은 종래의 방법들은 궁극적으로는 웹 메일 관련 임시 파일들을 단지 '삭제'하는 것으로서, 어떤 경우이든 파일 복구 프로그램을 통하여 파일을 복구하고 암호화된 내용을 분석하게 되면 메일의 내용이 확인될 수 있는 문제점이 있다.
이와 같이 오피스 등과 같은 프로그램에 의하여 만들어지는 임시 파일, 인터 넷 브라우저를 통한 웹 메일 확인 과정에서 저장되는 인터넷용 임시 파일 등에 의해 개인 정보나 기밀 정보가 유출될 가능성이 매우 높다는 것은 주지의 사실이다.
보다 구체적으로 설명하자면 다음과 같다. 개인 PC 뿐만 아니라 여러 PC를 돌아다니면서 작업을 하는 경우 작업하던 문서들이 외부 PC에 그대로 남게 된다. 더불어, 상술한 바와 같이 오피스 프로그램 사용 시 문서 관련 임시 파일, 웹 메일 확인 시 인터넷용 임시 파일 등 역시 외부 PC 상에 그대로 남는다. 이러한 문서들은 작업자의 주의에 따라 해당 문서가 외부 PC에서 삭제되지 않고 그냥 저장된 채 방치되는 경우도 있으며, 또한 이러한 문서들 자체는 작업하는 사람에 의하여 삭제될 수도 있으나 상술한 바와 같이 임시 파일들이 파일 시스템 상에 남아 있게 되는 경우가 많다. 뿐만 아니라 개인 PC의 경우에도, 중요 기밀 문서 작업 후 보안을 위하여 삭제했다 하더라도 역시 임시 파일들이 파일 시스템 상에 남게 될 수 있다.
이러한 임시 파일들의 경우, 컴퓨터 사용에 능숙하지 못한 사용자라면 이러한 임시 파일이 생성된다는 사실 자체를 모르는 경우가 대부분이며, 설사 임시 파일 생성 사실을 알고 있는 사용자라 하더라도 임시 파일의 파일명은 대부분 혼동되기 쉽게 지어지기 때문에 어떤 것이 자기 문서의 임시 파일인지 알기 어려워 삭제하지 못할 수도 있다. 물론, 임시 파일을 모두 찾아 삭제하였다 하더라도, 일반적인 삭제 절차에 의하여 삭제된 파일들은 도 1(B)나 도 2(B)에 도시된 바와 같이 대부분 파일 복구 프로그램으로 복구 가능하다. 따라서 외부 PC에 남겨진 임시 파일을 제3자가 복구하여 열어보거나, 또는 제3자가 개인 PC를 해킹하여 이러한 임시 파일을 유출하게 될 가능성이 높아지며, 따라서 개인 정보 및 기밀 정보들의 유출 위험성이 크게 높아지게 되는 것이다.
종래에도 파일에 남아 있는 임시 파일이나 삭제된 파일이 복구됨으로써 보안 안전성이 무너지는 것을 막기 위해 여러 가지 기술들이 개시되어 왔다.
한국공개특허 제2005-0112463호("기록매체의 데이터 영구삭제 방법", 이하 선행기술1)에서는 컴퓨터의 부팅 과정에서 컴퓨터의 물리적 디스크 및 논리적 디스크를 검색하고, 사용자에 의해 선택된 물리적 디스크 또는 논리적 디스크에 저장된 데이터를 삭제하여 데이터의 위치 정보만이 아닌 데이터 자체의 삭제 작업이 용이하게 되며, 삭제된 데이터의 복원이 불가능하도록 하여 중요한 정보가 유출되는 것을 방지하는 기술을 개시하고 있다.
한국등록특허 제0380824호("컴퓨터의 저장장치에 저장된 파일의 영구적 삭제 방법 및 그 기록 매체", 이하 선행기술2)에서는, 컴퓨터의 저장장치에 저장된 파일을 복구가 불가능하도록 영구적으로 삭제하는 방법에 관한 것으로, 보다 상세하게는 데이터 복구수단을 응용하여 복구 가능한 파일에 대하여 덮어쓰는 방식을 도입하여 데이터를 저장하고 있는 저장 영역으로부터 완전히 삭제하도록 하는 방법 및 상기 방법 실현을 위한 수단을 기록한 기록매체에 대한 기술을 개시하고 있다.
상기 선행기술2에서는, 먼저 컴퓨터 저장 영역에서의 파일의 완전한 삭제를 위한 전 단계로서 복구 가능성이 있는 파일을 모두 찾아내는 것을 주 기능으로 하는 데이터 복구 프로그램이 가동되어, (화면 상에 표시되지는 않으나 물리적으로 데이터가 삭제되지는 않은) 복구 가능한 파일들을 먼저 검색하여 표시한다. 이후, 파일목록에 개시된 파일 중에서 완전히 삭제할 파일을 결정하는 단계를 통해 특정 파일의 완전 삭제를 요하는 경우 해당 파일이 저장되어 있는 영역을 임의의 문자로 덮어쓰도록 함으로써 복구가 불가능하도록 하고 있다.
그런데, 상기 선행기술1 및 선행기술2의 경우 사용자에 의해 수동으로 데이터가 선택되어야만 하는 바, 상술한 바와 같이 응용프로그램별로 다량 자동 생성되는 임시 파일들을 사용자가 일일이 찾는다는 것은 큰 불편함을 야기한다. (일례로 도 5를 보면, Office 계열 프로그램이나 한글 프로그램 사용 시 한 개의 문서를 편집하는 동안 많으면 9개도 넘는 임시 파일들이 생성되며, 또한 이들의 경로 역시 일정하지 않음을 알 수 있다.) 특히 컴퓨터에 익숙하지 않은 사용자의 경우, 한 응용프로그램의 임시 파일이 어떤 명명 규칙을 따라 만들어지는지, 확장자가 어떻게 되는지, 어떤 위치에 어떤 종류의 임시 파일이 생성되는지 등에 대해 전혀 알지 못한다. 따라서 이러한 경우 사용자가 (완전 삭제되어야 할) 임시 파일을 완전 삭제하지 못하고 넘어갈 가능성이 높아지며, 따라서 보안 안전성 역시 담보할 수 없게 된다. 뿐만 아니라, 완전 삭제된 파일은 복구 불가능하다는 점 때문에 사용자 측에서는 자신의 선택에 확신을 가져야만 한다는 부담감이 작용하게 되며, 따라서 이러한 부담 때문에 아예 완전 삭제 프로그램을 사용하지 않게 될 가능성도 매우 높다. 물론 이에 따라 궁극적인 목적, 즉 보안 안전성을 높이고자 하는 목적 역시 이룰 수 없게 됨은 자명하다.
이와 같이 사용자가 직접 완전 삭제될 파일을 선택하도록 하는 선행기술1 및 선행기술2는, 앞서 서술한 바와 같은 문제점을 해소할 수 없다. 이에 따라, 응용프로그램에 의해 생성되는 임시 파일들을, 컴퓨터를 전문적으로 다루는 사용자가 아닌 일반적인 사용자(예를 들면 일반적인 사무직 회사원, 학생 등)도 편리하게 완전 삭제함으로써 보안 안전성을 높일 수 있도록 해 주는 기술에 대한 요구가 꾸준히 있어 왔다.
따라서, 본 발명은 상기한 바와 같은 종래 기술의 문제점을 해결하기 위하여 안출된 것으로, 본 발명의 목적은 필터 드라이버를 사용하여 각종 프로그램에서 사용되는 임시 파일의 위치를 추적하고, 해당 임시 파일들에 다중 덮어쓰기를 한 후 삭제함으로써 복구가 불가능하도록 하는, 응용프로그램에서 사용되는 임시 파일의 관리 방법을 제공함에 있다.
상기한 바와 같은 목적을 달성하기 위한 본 발명의 응용프로그램에서 사용되는 임시 파일의 관리 방법은, 저장매체 상에 소프트웨어 형태의 운영체제가 설치되며 상기 운영체제는 파일 시스템 드라이버를 통해 상기 저장매체에 액세스하는, 컴퓨터를 포함하는 연산처리수단에 의하여 실행되는 감시용 프로그램 또는 감시용 디바이스 드라이버 형태로 구현되며, 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버에 의하여 a1) 상기 운영체제 및 상기 저장매체 사이에서 전달되는 데이터 정보를 필터링하는 필터 드라이버를 상기 파일 시스템 드라이버와 상기 운영체제 사이에 로드하는 단계(S101); a2) 상기 필터 드라이버를 거쳐 상기 저장매체로 들어오는 파일 입출력 요청을 감시하는 단계(S102); a3) 파일의 생성, 열기 또는 삭제 요청이 발생하면(S103a) 이를 감지하고(S103) 하기의 a4) 내지 a6) 단계를 수행하는 콜백 함수를 호출하는 단계(S104); a4) 상기 a3) 단계에서 생성, 열기 또 는 삭제 요청이 발생된 파일이 임시 파일인지의 여부를 판단하여(S105), 상기 파일이 임시 파일이 아닌 경우(S105-No) 상기 a2) 단계로 되돌아가 감시를 계속하고, 상기 파일이 임시 파일일 경우(S105-Yes) 다음 단계로 넘어가는 단계; a5) 상기 a4) 단계에서 상기 파일이 임시 파일로 판단된 경우(S105-Yes), 상기 a3) 단계에서 발생된 요청이 삭제 요청인지의 여부를 판단하여(S106), 상기 요청이 삭제 요청인 경우(S106-Yes) 상기 파일을 완전 삭제한 후(S107) 상기 a2) 단계로 되돌아가 감시를 계속하고, 상기 요청이 삭제 요청이 아닌 경우(S106-No) 다음 단계로 넘어가는 단계; a6) 상기 a5) 단계에서 상기 요청이 삭제 요청이 아닌 것으로 판단된 경우(S106-No), 상기 요청이 생성 요청인지의 여부를 판단하여(S108), 상기 요청이 생성 요청인 경우(S108-Yes) 상기 파일의 정보 및 핸들을 파일 관리 테이블에 추가하여 업데이트한 후(S109) 상기 a2) 단계로 되돌아가 감시를 계속하고, 상기 요청이 생성 요청이 아닌 경우(S108-No) 상기 a2) 단계로 되돌아가 감시를 계속하는 단계; 를 포함하여 이루어지는 것을 특징으로 한다.
이 때, 상기 필터 드라이버가 로드되어 상기 콜백 함수가 작동된 이후에, 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버에 의하여, a7) 상기 운영체제, 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버의 종료 요청이 감지되면(S110a) 삭제되지 않은 임시 파일을 완전 삭제할 것인지 사용자 확인을 입력받는 단계(S110); a8) 상기 a7) 단계에서 완전 삭제 요청을 입력받을 경우(S111-Yes), 상기 a6) 단계에서 업데이트된 상기 파일 관리 테이블을 참조하여(S112a) 남아 있는 임시 파일들을 완전 삭제하고, 파일 관리 테이블도 완전 삭제하는 단 계(S112); a9) 상기 a2) 단계에서 수행된 파일 입출력 요청 감시를 제거하는 단계(S113); a10) 상기 필터 드라이버를 언로드하는 단계(S114); 를 더 포함하여 이루어지는 것을 특징으로 한다.
또는, 본 발명의 응용프로그램에서 사용되는 임시 파일의 관리 방법은, 저장매체 상에 소프트웨어 형태의 운영체제가 설치되며 상기 운영체제는 파일 시스템 드라이버를 통해 상기 저장매체에 액세스하는, 컴퓨터를 포함하는 연산처리수단에 의하여 실행되는 감시용 프로그램 또는 감시용 디바이스 드라이버 형태로 구현되며, 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버에 의하여 b1) 상기 운영체제 및 상기 저장매체 사이에서 전달되는 데이터 정보를 필터링하는 필터 드라이버를 상기 파일 시스템 드라이버와 상기 운영체제 사이에 로드하는 단계(S201); b2) 임시 파일 관리를 위한 관리용 파일, 디렉터리 또는 가상 드라이브로 구현되는 가상 저장매체를 설정하는 단계(S202); b3) 상기 필터 드라이버를 거쳐 상기 저장매체로 들어오는 파일 입출력 요청을 감시하는 단계(S203); b4) 파일의 생성, 열기 또는 삭제 요청이 발생하면(S204a) 이를 감지하고(S204) 하기의 b5) 내지 b9) 단계를 수행하는 제1콜백 함수를 호출하는 단계(S205); b5) 상기 b4) 단계에서 발생된 요청이 삭제 요청인지의 여부를 판단하여(S206), 상기 요청이 삭제 요청인 경우(S206-Yes) 상기 파일을 완전 삭제한 후(S207) 상기 b3) 단계로 되돌아가 감시를 계속하고, 상기 요청이 삭제 요청이 아닌 경우(S206-No) 다음 단계로 넘어가는 단계; b6) 상기 b5) 단계에서 상기 요청이 삭제 요청이 아닌 것으로 판단된 경우(S206-No), 상기 요청이 생성 요청인지의 여부를 판단하여(S208), 상기 요청이 생성 요청이 아닌 경우(S208-No) 상기 b3) 단계로 되돌아가 감시를 계속하고, 상기 요청이 생성 요청인 경우(S208-Yes) 다음 단계로 넘어가는 단계; b7) 상기 b6) 단계에서 상기 요청이 생성 요청인 것으로 판단된 경우(S208-Yes), 상기 파일이 임시 파일인지의 여부를 판단하여(S209), 상기 파일이 임시 파일이 아닌 경우(S209-No) 상기 b3) 단계로 되돌아가 감시를 계속하고, 상기 파일이 임시 파일인 경우(S209-Yes) 다음 단계로 넘어가는 단계; b8) 상기 b7) 단계에서 상기 파일이 임시 파일인 것으로 판단된 경우(S209-Yes), 상기 파일을 상기 가상 저장매체로 경로 재설정(Re-direct)하는 단계(S210); b9) 상기 파일 정보 및 상기 가상 저장매체에 생성된 파일 정보를 파일 맵 테이블에 추가하여 업데이트하고, 상기 가상 저장매체에 생성된 파일 핸들을 상기 파일 생성 요청에 대해 응답한 후(S211) 상기 b3) 단계로 되돌아가 감시를 계속하는 단계; 를 포함하여 이루어지는 것을 특징으로 한다.
이 때, 상기 필터 드라이버가 로드되어 상기 제1콜백 함수가 작동된 이후에, 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버에 의하여, b10) 상기 b7) 단계에서 임시 파일로 판단되어 생성된 파일에 대하여 읽기, 쓰기, 닫기, 복사, 이동 또는 삭제를 포함하는 파일 입출력 요청이 발생하면 이를 감지하고 하기의 b11) 내지 b12) 단계를 수행하는 제2콜백 함수를 호출하는 단계; b11) 상기 파일 맵 테이블의 파일 이름 또는 파일 핸들을 찾아 경로 재설정된 파일에 접근하는 단계; b12) 경로 재설정된 파일에 대한 접근을 마치고 상기 b10) 단계에서 발생된 상기 파일 입출력 요청에 응답하는 단계; 를 더 포함하여 이루어지는 것을 특징으 로 한다.
또한, 상기 필터 드라이버가 로드되어 상기 제1콜백 함수가 작동된 이후에, 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버에 의하여, b15) 상기 운영체제, 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버의 종료 요청이 감지되면(S212a) 상기 필터 드라이버를 제거할 것인지 사용자 확인을 입력받는 단계(S212); b16) 상기 가상 저장매체를 완전 삭제하고 상기 파일 맵 테이블의 사용 메모리를 제거하는 단계(S213); b17) 상기 b3) 단계에서 수행된 파일 입출력 요청 감시를 제거하는 단계(S214); b18) 상기 필터 드라이버를 언로드하는 단계(S215); 를 더 포함하여 이루어지는 것을 특징으로 한다.
또한, 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버는 상기 가상 저장매체로 파일을 입출력할 때 암호화 및 복호화를 수행하는 것을 특징으로 한다.
더불어 상술한 바와 같은 본 발명에 의한 임시 파일 관리 시 완전 삭제는, 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버에 의하여, c1) 완전 삭제가 수행될 임시 파일의 속성을 쓰기 가능하게 변경시키는 단계; c2) 상기 임시 파일의 시작 위치부터 끝 위치까지의 영역에 상기 임시 파일의 크기만큼의 덮어쓰기용 패턴을 적어도 한 번 이상 덮어쓰는 단계; c3) 상기 임시 파일에 패턴 덮어쓰기가 완료되면 상기 덮어쓰기 완료된 임시 파일들을 삭제하는 단계; 를 포함하여 이루어지는 것을 특징으로 한다.
이 때, 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버는 덮어쓰기 시 사용자 입력 문자열 패턴을 사용하여 덮어쓰기 작업을 수행하거나, 랜덤 문자열 패턴을 사용하여 덮어쓰기 작업을 수행하거나, DoD 5220 방식에 따라 덮어쓰기용 패턴 생성 및 덮어쓰기 작업을 수행하거나, Peter Gutmann 방식에 따라 덮어쓰기용 패턴 생성 및 덮어쓰기 작업을 수행하는 것을 특징으로 한다. 또한 이 때, 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버는 사용자 입력 문자열 패턴 또는 랜덤 문자열 패턴을 사용하여 덮어쓰기할 경우, 사용자 입력에 따른 횟수 또는 미리 결정된 횟수만큼 반복 덮어쓰기를 수행하는 것을 특징으로 한다.
본 발명에 의하면, 사용자가 의식적으로 생성하지 않은 파일, 즉 오피스 프로그램, 인터넷 브라우저 등에 의하여 자동으로 생성되는 임시 파일들을 복구 불가능하도록 완전히 삭제할 수 있는 효과가 있다. 이와 같이 사용자의 개인 정보나 기밀 정보가 포함될 수 있는 각종 문서 임시 파일이나 인터넷 임시 파일 등을 자동으로 완전 삭제함으로써, 해킹이나 제3자의 사용에 의하여 임시 파일이 발견 또는 유출되더라도 이를 복구할 수 없게 되어, 개인 정보 및 기밀 정보의 보안 안전성이 비약적으로 높아지게 되는 큰 효과가 있다.
특히 본 발명에 의하면, 사용자가 자신의 작업을 통해 어떤 임시 파일이 생성되었는지 검색하거나 복구하는 등의 수고를 전혀 할 필요가 없이 간단한 명령을 내리는 것만으로 이와 같은 임시 파일의 완전 삭제가 자동으로 이루어질 수 있어, 사용자 편의성이 극대화되는 큰 효과가 있다. 이와 같이 사용자 편의성이 극대화됨으로써 사용자가 보다 친근하게 본 발명에 의한 임시 파일의 자동 완전 삭제를 보다 자주 수행할 수 있게 되고, 따라서 장기적인 보안 안전성을 더욱 높일 수 있는 효과 또한 있다.
무엇보다도 본 발명에 의하면, 응용프로그램(applicaion) 레벨에서 뿐만 아니라 커널(kernel) 레벨에서 직접 액세스할 수 있기 때문에, 보다 근본적이면서도 효과적으로 임시 파일의 생성, 삭제 등을 관리할 수 있게 되는 큰 효과가 있다. 즉 임시 파일을 개별적으로 관리하는 것이 아니라 임시 파일들 전체를 묶어 관리할 수 있게 되는 바, 임시 파일을 관리하는 것이 훨씬 체계적이면서도 용이해지는 효과가 있는 것이다.
이하, 상기한 바와 같은 구성을 가지는 본 발명에 의한 응용프로그램에서 사용되는 임시 파일의 관리 방법을 첨부된 도면을 참고하여 상세하게 설명한다.
본 발명에 의한 응용프로그램에서 사용되는 임시 파일의 관리 방법은, 크게는 프로그램 사용에 의해 생성된 임시 파일을 추적하는 단계 및 추적된 임시 파일을 복구 불가능하도록 가공하여 삭제하는 단계, 이 두 단계로 이루어진다. 이 때, 임시 파일의 추적은 임시 파일이 삭제되는 시점에 이루어지거나 또는 임시 파일이 생성되는 시점이 이루어지게 되는데, 이와 같이 임시 파일의 삭제 또는 생성 시점은 해당 임시 파일을 삭제 또는 생성하는 등의 동작을 감시함으로써 감지해 낼 수 있다. 이러한 동작의 감시는 응용프로그램 레벨에서 수행될 수 있는데, 이 경우 API 후크(hook) 등의 방법을 사용하여 구현할 수 있으며 이는 본 출원인에 의하여 출원 및 등록된 바 있다(한국특허출원 제2008-0064286호, "응용프로그램에서 사용되는 임시 파일의 관리 방법"). 그러나 응용프로그램(applicaion) 레벨에서만 동작의 감시가 이루어질 경우, 특정 응용프로그램만을 후크하게 되기 때문에 효율은 좋으나 모든 파일에 대한 입출력을 감시하지 못하여 누락이 발생할 가능성이 있는 등의 문제가 있다. 본 발명에서는 이러한 누락을 방지하기 위하여 커널(kernel) 레벨에서 임시 파일 관련 동작을 감시하도록 하고 있는데, 이하에서 본 발명에서의 '커널 레벨에서 임시 파일의 삭제 또는 생성 등의 동작을 감시한다'는 개념에 대하여 간략하게 설명한다.
일반적으로 널리 사용되고 있는 컴퓨터와 같은 연산처리수단은 하드웨어인 저장매체를 포함하여 이루어진다. 상기 저장매체는, 물리적으로 자성체의 배치가 변화됨으로써 데이터가 저장되는 방식으로 작동되며 일반적으로 현재 널리 사용되고 있는 하드 디스크 드라이브(HDD)나, 또는 현재 점차 상용화되고 있는 솔리드 스테이트 디스크(SSD) 등과 같은 다양한 종류가 있다.
이 때, 상기 저장매체에 소프트웨어 형태의 운영체제(operation system, OS)가 설치되면, 상기 운영체제를 기반으로 상기 저장매체에 데이터를 읽고 쓰는 등의 기본적인 동작으로부터 각종 응용프로그램의 작동 등이 이루어질 수 있게 된다. 여 기에서 운영체제란, 일련의 작업 순서를 정하고 중앙처리장치(CPU)ㆍ주기억장치ㆍ주변장치 등의 여러 하드웨어 시스템에 이를 할당하는 일련의 매우 복잡한 명령으로서, 프로그램 실행은 물론 파일 접근, 응용프로그램 구동, 모니터 및 메모리 저장장치 제어, 글자판 명령 해석과 같은 특별한 임무를 수행하도록 CPU에 지시하고, 여러 사용자가 동시에 작업을 수행할 때에는 이른바 시분할(time-sharing) 방식으로 작업의 우선순위를 정해 시간과 자원을 효율적으로 배분하며, 네트워크상에서는 다른 컴퓨터와 상호 작용하는 일을 제어하기도 한다. 즉, 모든 응용프로그램은 상기 운영체제의 작동 하에 비로소 작동할 수 있게 되며, 상기 운영체제에서는 자신 안에서 작동되는 모든 응용프로그램의 동작을 모두 관리하게 된다. 이러한 운영체제의 일반적인 예는 MS-Dos, Windows, Unix, Linux, MacOS 등이 있다.
상기 운영체제가 상기 저장매체에 액세스할 수 있도록, 상기 운영체제에는 파일 시스템 드라이버가 반드시 구비된다. 드라이버란 하드웨어를 제어하기 위한 소프트웨어로서, 예를 들어 장치 드라이버는 장치와 응용프로그램/운영체제 사이의 해석기 역할을 하며 프로그래밍을 단순하게 한다. 일례로, 프린터와 같은 장치 버전은 저만의 특별한 명령어들을 요구하는 반면, 파일을 프린터로 보내는 것과 같은, 대부분의 응용프로그램들은 PRINTLN과 같은 높은 수준의, 포괄적인 명령어들을 사용하여 장치를 접근한다. 드라이버는 이러한 포괄적인 명령어들을 받아들이고, 이 명령어들을 장치가 요구하는 낮은 수준의 명령어들로 변환함으로써, 운영체제 또는 응용프로그램이 원활하게 장치와 소통할 수 있도록 해 주는 것이다.
이 때, 파일 시스템 드라이버(file system driver)는 운영체제에서 파일과 기록 매체를 관리하기 위한 시스템 드라이버이다. 즉, 파일의 열기(Open), 읽기(Read), 쓰기(Write), 수정(Modify), 사용자의 권한, 접근 제어 등 파일과 폴더에 관련된 모든 동작을 수행한다. 이 파일 시스템 드라이버는 항상 드라이버 스택의 최상위층에 위치하며, 캐시(Cache)와 가상 메모리 매니저(Virtual Memory Manager), 입출력 매니저(I/O Manager)와 항상 연동 관계에 있다. 이러한 파일 시스템 드라이버는 운영체제의 핵심 드라이버로서, 파일에 대한 모든 동작을 처리하기 때문에 파일 시스템 드라이버를 다루는 데에 있어서는 항상 주의를 요한다. 잘못 작성된 드라이버는 중요 데이터의 손실은 물론이거니와 커널 자체에 손상을 줄 수도 있기 때문이다.
한편, 파일 드라이버(filter driver)는 특정 드라이버와의 입출력을 감시하거나 지원되지 않는 기능들을 추가할 목적으로 작성된 드라이버이다. 기존의 드라이버 상에서 일반 사용자가 원하는 기능을 추가 시키고자 할 경우 대부분 파일 드라이버가 사용되는데, 예를 들면 바이러스 체크 기능이라거나, 파일에 암/복호화 기능을 추가한다거나, 특정 기능들을 필터링하거나 하는 등이다. 이는 응용프로그램 레벨에서 동작하는 것이 아니라 보다 근본적인 커널 레벨에서 동작한다.
본 발명에서는, 상기 운영체제가 상기 저장매체에 액세스할 때 반드시 상기 파일 시스템 드라이버를 거친다는 점에 착안하여, 상기 파일 시스템 드라이버를 감시하거나 필터링함으로써 임시 파일의 생성, 삭제 등과 같은 동작 자체를 감시하게 된다. 즉 본 발명에서는, 본 발명에 의한 드라이버가 커널에 적재되는 시점부터 바 로 동작하기 때문에 드라이버가 제거되는 시점까지 빠짐없이 모든 파일의 I/O(input or output, 입출력)를 감시할 수 있으며, 따라서 파일 시스템에 생성되는 모든 파일들을 감시할 수 있고 삭제되는 파일을 모두 가로채거나 감시할 수 있게 되는 것이다. 이를 구현하기 위하여, 본 발명에서는 파일 시스템 드라이버의 동작을 후크(hook)하거나 필터링(filtering)하는 필터 드라이버 및 상기 필터 드라이버를 동작시키는 감시용 프로그램 또는 감시용 디바이스 드라이버를 채용한다.
즉, 간략하게 설명하자면, 본 발명에서는 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버가, 상기 운영체제 및 상기 저장매체 사이에서 전달되는 데이터 정보를 필터링하는 상기 필터 드라이버를 로드하여, 상기 필터 드라이버를 사용하여 상기 운영체제 및 상기 저장매체 사이에서 전달되는 모든 파일의 I/O를 감시하되, 입출력되고 있는 어떤 파일이 임시 파일일 경우 이를 따로 관리함으로써, 모든 임시 파일을 빠짐없이 감시할 수 있게 하는 것이다. 본 발명에서는 이와 같이 모든 임시 파일을 완벽하게 관리할 수 있기 때문에, 완전 삭제가 필요할 경우 상기 저장매체 내에 존재하는 모든 임시 파일을 빠짐없이 완전 삭제할 수 있다.
여기에서 '완전 삭제한다'는 개념을 간략히 설명하면 다음과 같다. 일반적으로 저장매체는 파일 데이터가 물리적으로 실제 저장되는 영역 및 상기 파일 데이터가 저장되는 위치로 이루어지며, 상기 저장매체에 어떤 파일이 저장될 때, 상기 저장매체에 설치된 운영체제는 상기 파일을 이루는 데이터가 저장된 영역의 주소들을 모아 헤더를 만들게 된다. 이 때, 운영체제 또는 응용프로그램에서 어떤 파일을 ' 삭제'할 경우, 실제로 그 파일을 이루는 데이터들이 물리적으로 저장되어 있는 영역들을 초기화한다거나 하는 것이 아니라, 단지 헤더 값, 즉 상기 파일을 이루는 데이터가 저장된 영역의 주소 값만을 삭제해 버린다. 즉 '삭제'된 파일을 이루는 데이터가 저장된 영역의 주소는, 현재 '아무 파일도 저장되어 있지 않은 영역의 주소'로 인식되게 되며, 따라서 다른 파일을 저장할 때 상기 주소의 영역에 다른 데이터가 저장될 수 있게 되는 것이다. 일반적으로 현재 모든 저장매체에서의 저장 및 삭제는 상술한 바와 같은 방식으로 사용하며, 이와 같이 함으로써 삭제 작업의 효율을 크게 상승시킬 수 있는 장점이 있다.
그런데 이러한 일반 삭제의 경우, 상술한 바와 같이 단지 '삭제된 파일을 이루는 데이터가 저장된 영역의 주소'만을 삭제하기 때문에, 실제로 해당 영역에는 파일 데이터가 그대로 남아 있게 된다. 따라서 해당 영역에 새로운 값이 쓰여지지 않는 한, 원래의 파일을 복구할 수 있는 가능성이 충분히 있는 것이다. 이는 복구의 관점에서는 유리하겠으나, 보안의 관점에서는 매우 위험한 것으로서, 이를 해결하기 위해 '완전 삭제' 방법을 이용하는 것이다. 완전 삭제 시에는, 완전 삭제될 파일의 위치 즉 주소 값을 추적하고, 해당 주소의 영역에 소정의 덮어쓰기 패턴을 소정 횟수만큼 반복하여 덮어쓰기한 후, 일반 삭제 시와 같이 헤더 값을 삭제하게 된다. 즉 어떤 파일이 완전 삭제되면, 해당 파일을 추적하여 복구한다 해도 상술한 바와 같은 과정에 의하여 덮어써진 패턴 값들을 복구할 수 있을 뿐으로, 원래의 파일 형태를 전혀 알아볼 수 없게 되는 것이다.
요약하자면, 완전 삭제는, 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버에 의하여, c1) 완전 삭제가 수행될 임시 파일의 속성을 쓰기 가능하게 변경시키는 단계; c2) 상기 임시 파일의 시작 위치부터 끝 위치까지의 영역에 상기 임시 파일의 크기만큼의 덮어쓰기용 패턴을 적어도 한 번 이상 덮어쓰는 단계; c3) 상기 임시 파일에 패턴 덮어쓰기가 완료되면 상기 덮어쓰기 완료된 임시 파일들을 삭제하는 단계;를 거쳐 수행되게 된다.
이 때, 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버가 덮어쓰기 시 사용하는 덮어쓰기용 패턴은 랜덤 문자열 패턴 등 어떤 것이 되어도 무방하다. 특히, 종래에 보안을 위한 파일 완전 삭제를 위한 알고리즘인 DoD 5220 방식, Peter Gutmann 방식 등을 사용하여 덮어쓰기용 패턴의 생성 및 덮어쓰기 수행이 이루어지도록 하여도 무방하다. 보다 상세히 설명하자면, 본 발명의 프로그램은 덮어쓰기용 패턴이나 덮어쓰기 알고리즘을 사용자가 선택할 수 있도록 하고, 예를 들어 랜덤 방식이 선택될 경우 랜덤 문자열을 사용자 입력에 따른 횟수 또는 프로그램 설계자가 미리 설정해 놓은 횟수만큼 덮어쓰기하고, DoD 5220 방식이 선택될 경우 DoD 5220 방식에 따라 덮어쓰기용 패턴 생성 및 덮어쓰기 작업을 수행하며, Peter Gutmann 방식이 선택될 경우 Peter Gutmann 방식에 따라 덮어쓰기용 패턴 생성 및 덮어쓰기 작업을 수행하도록 할 수 있다. 물론 위에 설명한 방식 이외에 프로그램 설계자가 원하는 덮어쓰기 알고리즘을 적절하게 채용하여 사용하여도 무방하다.
이하에서는 본 발명에서 임시 파일의 감시, 추적 및 완전 삭제 등과 같은 관 리를 수행하는 방법을 실시예를 이용하여 보다 상세히 설명한다.
(제1실시예)
도 3은 본 발명의 임시 파일 관리 방법의 제1실시예이다. 제1실시예에서는, 본 발명의 응용프로그램에서 사용되는 임시 파일의 관리 방법은, 저장매체 상에 소프트웨어 형태의 운영체제가 설치되며 상기 운영체제는 파일 시스템 드라이버를 통해 상기 저장매체에 액세스하는, 컴퓨터를 포함하는 연산처리수단에 의하여 실행되는 감시용 프로그램 또는 감시용 디바이스 드라이버 형태로 구현된다. 이 때, 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버는 이후에 설명하는 것과 같은 일련의 동작들을 수행함으로써 임시 파일을 관리하게 된다. 이하의 모든 동작의 주체는 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버이다.
간략히 제1실시예의 동작을 설명하자면 다음과 같다. 도 3에 도시된 바와 같이 제1실시예에서는, 임시 파일 관리 및 완전 삭제를 위한 필터 드라이버가 상기 운영체제 상에 로드되면 즉시 파일 입출력(I/O)의 감시를 수행하고, 파일 입출력이 감지되면 콜백(Callback) 함수 동작을 통하여 파일 삭제 또는 생성인지를 감지한다. 만약 파일 삭제일 경우에는 일반 삭제를 하는 것이 아니라 복구가 불가능하도록 덮어쓰기를 수행하여 완전 삭제하며, 파일 생성일 경우에는 생성되는 파일을 파일 관리 테이블에 추가하여 추후 생성된 파일을 관리할 수 있도록 한다. 이렇게 상기 파일 관리 테이블에 입력된 파일들은 생성된 파일의 리스트 관리나 삭제되지 않은 임시 파일의 추적에 사용된다.
이하에서 제1실시예의 시작 및 콜백 함수 작동 단계에 대해 보다 상세히 설명한다.
먼저 도 3의 S101에 도시된 바와 같이, a1) 상기 운영체제 및 상기 저장매체 사이에서 전달되는 데이터 정보를 필터링하는 필터 드라이버를 상기 파일 시스템 드라이버와 상기 운영체제 사이에 로드한다.
다음으로 도 3의 S102에 도시된 바와 같이, 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버는, a2) 상기 필터 드라이버를 거쳐 상기 저장매체로 들어오는 파일 입출력 요청을 감시한다.
다음으로 도 3의 S104에 도시된 바와 같이, a3) 파일의 생성, 열기 또는 삭제 요청이 발생하면(S103a) 이를 감지하고(S103) 하기의 a4) 내지 a6) 단계를 수행하는 콜백(callback) 함수를 호출한다. 콜백 함수는 프로그램이 실행되는 동안 지속적으로 수행되어야 하는 작업이 있을 때 사용하는 함수로서, 여기에서는 하기에서 설명하는 a4) 내지 a6)의 단계가 지속적으로 수행되도록 하는 함수를 말하는 것이다.
다음으로 도 3의 S105에 도시된 바와 같이, a4) 상기 a3) 단계에서 생성, 열기 또는 삭제 요청이 발생된 파일이 임시 파일인지의 여부를 판단한다(S105). 이 때, 상기 파일이 임시 파일이 아닌 경우(S105-No) 상기 a2) 단계로 되돌아가 감시를 계속하고, 상기 파일이 임시 파일일 경우(S105-Yes)에는 다음 단계로 넘어가게 된다.
다음으로 도 3의 S106에 도시된 바와 같이, a5) 상기 a4) 단계에서 상기 파일이 임시 파일로 판단된 경우(S105-Yes), 상기 a3) 단계에서 발생된 요청이 삭제 요청인지의 여부를 판단한다(S106). 상기 요청이 삭제 요청인 경우(S106-Yes) 상기 파일을 완전 삭제한 후(S107) 상기 a2) 단계로 되돌아가 감시를 계속하게 된다. 만일 상기 요청이 삭제 요청이 아닌 경우(S106-No), 즉 생성 또는 열기 요청인 경우에는 다음 단계로 넘어가게 된다.
다음으로 도 3의 S108에 도시된 바와 같이, a6) 상기 a5) 단계에서 상기 요청이 삭제 요청이 아닌 것으로 판단된 경우(S106-No), 상기 요청이 생성 요청인지의 여부를 판단한다(S108). 상기 요청이 생성 요청인 경우(S108-Yes) 상기 파일의 정보 및 핸들을 파일 관리 테이블에 추가하여 업데이트한 후(S109) 상기 a2) 단계로 되돌아가 감시를 계속하게 된다. 만일 상기 요청이 생성 요청이 아닌 경우(S108-No), 즉 열기 요청인 경우에는 (이미 생성된 파일이므로 파일 관리 테이블에는 이미 올라가 있는 파일이기 때문에 추가적인 작업이 필요하지 않으므로) 상기 a2) 단계로 되돌아가 감시를 계속하게 된다.
즉 제1실시예에서 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버는, 상기 필터 드라이버를 사용하는 콜백 함수를 작동하여, 상기 운영체제 및 상기 저장매체 사이에서 전달되는 데이터 정보를 모두 확인하고, 파일의 생성, 열기 또는 삭제와 관련된 요청이 발생할 경우 해당 요청이 발생한 파일이 임시 파일인지의 여부를 체크하며, 임시 파일일 경우 이를 모두 목록화하여 파일 관리 테이블에 저장하여 둠으로써, 모든 임시 파일을 빠짐없이 관리할 수 있게 된다. 물론 임시 파일의 삭제 요청이 발생하면 완전 삭제를 수행함으로써 임시 파일의 복구 가능성을 없애게 된다.
상기 파일 관리 테이블에 관하여 보다 상세히 설명하면 다음과 같다. 생성(Create) 또는 열기(Open) 요청 시, 상기 필터 드라이버는 파일 I/O를 후크(hook)하여 생성된 파일 및 상기 파일을 생성하는 프로세스(Process)를 알아와 관리가 가능한 프로세스인지를 판단하고(Process Name 비교) 관리가 가능한 프로세스라면 생성된 파일을 파일 관리 테이블에 등록하거나, 또는 모든 프로세스에 대한 관리를 수행할 수 있다. 이 때, 당연히 상기 파일 관리 테이블에는 그 안에 원본 파일에 대한 관리와 임시 파일에 대한 관리 테이블 등을 포함할 수 있다. 물론 필요에 따라 더 많은 테이블들이 구성되어 사용될 수도 있으며, 상술한 바와 같은 설명으로써 본 발명이 한정되는 것은 아니다. 제1실시예에서는 생성되는 파일과 (이는 프로세서에 의해 열리거나 새로 생성되는 파일을 말함) 삭제되는 파일을 감시하기 위한 테이블만을 설명한다.
원본 파일 관리 테이블은 상기 필터 드라이버가 언로드(Unload)되거나 사용자의 리스트 출력 요구, 또는 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버가 종료되는 시점에 그 동안 사용했던 문서들의 리스트를 출력하고 사용자의 입력을 통하여 완전 삭제 또는 안전 이동 기능을 제공하기 위해 사용된다. 또한 임시 파일 관리 테이블은, 응용프로그램에서의 삭제(Delete) 또는 닫기(Close) 요청 시 삭제되는 임시 파일들을 완전 삭제하거나, 또는 응용프로그램의 강제 종료 등에 의하여 생성은 되었으되 응용프로그램에 의해 미처 삭제되지 못한 임시 파일들을 추후 사용자 입력에 따라 완전 삭제하는 등의 기능을 제공하기 위해 사용된다. 이에 대해서는 이후, 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버 종료 단계 설명 시 보다 상세히 설명한다.
상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버는, 상기 필터 드라이버를 통해 파일 입출력 요청을 모두 감시하다가, 운영체제 또는 응용프로그램으로부터 쓰기(Write) 요청 또는 읽기(Read) 요청이 호출될 경우(만약 암호화/복호화를 수행한다면 이 부분에서 수행할 수 있다)에는 원래의 함수를 호출하되 삭제(Delete) 요청이 호출되는 경우에는 덮어쓰기 루틴을 호출하여 데이터를 복구 불가능하도록 제거한다. 또한 생성(Create) 요청과 닫기(Close)요청이 호출될 경우에는 상기 파일 관리 테이블에 추가하여 사용한 문서의 원본 위치와 프로세서 등을 저장하게 된다.
복사(Copy) 요청이 호출되는 경우에는 원본 파일이 다른 파일로 이동되는 것이므로 원본 파일과 복사되는 타겟 파일 위치를 상기 파일 관리 테이블에 기록하여 추후에 파일을 관리할 수 있도록 한다. 이동(Move) 요청이 호출될 경우는 원본 파일의 내용을 다른 파일로 이동하는 명령이므로 타겟 파일로 파일을 복사를 수행한 후 원본 파일의 내용을 덮어쓰기 루틴을 호출하여 데이터를 복구 불가능하도록 제거한다. 이렇게 드라이버를 이용하게 되면 시스템의 모든 I/O를 감시할 수가 있게 되므로 시스템 전체에 대한 임시 파일 삭제와 파일 관리를 수행할 수 있게 된다.
다음으로, 이하에서 제1실시예의 작업 종료 단계에 대해 보다 상세히 설명한다.
먼저 도 3의 S110에 도시된 바와 같이, a7) 상기 운영체제, 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버의 종료 요청이 감지되면(S110a) 삭제되지 않은 임시 파일을 완전 삭제할 것인지 사용자 확인을 입력받는다(S110). 일반적으로 응용프로그램이 생성하는 임시 파일은 응용프로그램이 종료되면 자동으로 삭제되게 되며, 본 발명의 감시 프로그램 또는 감시 디바이스 드라이버가 작동 중이라면 자동 삭제 시 완전 삭제가 이루어질 수 있다. 그러나 응용프로그램의 작동 오류로 인하여 강제 종료가 되었다거나 하는 경우에는 응용프로그램에서 임시 파일의 삭제 요청을 미처 못하게 되기 때문에, 삭제되지 않은 임시 파일이 그대로 남아 있게 된다. 본 발명의 감시 프로그램 또는 감시 디바이스 드라이버는 모든 파일의 입출력을 감시하고 있으므로, 응용프로그램의 종료와는 상관없이, 이와 같이 삭제되지 않은 임시 파일이 남아 있다면 이를 모두 추적할 수 있다.
다음으로 도 3의 S111 및 S112에 도시된 바와 같이, a8) 상기 a7) 단계에서 완전 삭제 요청을 입력받으면(S111-Yes), 상기 a6) 단계에서 업데이트된 상기 파일 관리 테이블을 참조하여(S112a) 남아 있는 임시 파일들을 완전 삭제하고, 파일 관리 테이블도 완전 삭제한다(S112).
다음으로 도 3의 S113에 도시된 바와 같이, a9) 상기 a2) 단계에서 수행된 파일 I/O 요청 감시를 제거한 후(S113), 마지막으로 도 3의 S114에 도시된 바와 같이, a10) 상기 필터 드라이버를 언로드하여(S114) 작업을 종료하게 된다.
(제2실시예)
도 4는 본 발명의 임시 파일 관리 방법의 제2실시예이다. 제2실시예에서도 역시, 본 발명의 응용프로그램에서 사용되는 임시 파일의 관리 방법은, 저장매체 상에 소프트웨어 형태의 운영체제가 설치되며 상기 운영체제는 파일 시스템 드라이버를 통해 상기 저장매체에 액세스하는, 컴퓨터를 포함하는 연산처리수단에 의하여 실행되는 감시용 프로그램 또는 감시용 디바이스 드라이버 형태로 구현된다. 이 때, 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버는 이후에 설명하는 것과 같은 일련의 동작들을 수행함으로써 임시 파일을 관리하게 된다. 이하의 모든 동작의 주체는 제1실시예에서와 마찬가지로 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버이다.
간략히 제2실시예의 동작을 설명하자면 다음과 같다. 도 4에 도시된 바와 같이 제2실시예에서는, 임시 파일 관리 및 완전 삭제를 위한 필터 드라이버가 상기 운영체제 상에 로드되면 제1실시예에서와 같이 즉시 파일 입출력(I/O)의 감시를 수행하고, 파일 입출력이 감지되면 콜백(Callback) 함수 동작을 통하여 파일 삭제 또는 생성인지를 감지한다. 만약 파일 삭제일 경우에는, 역시 제1실시예에서와 같이 일반 삭제를 하는 것이 아니라 복구가 불가능하도록 덮어쓰기를 수행하여 완전 삭제한다. 파일 생성일 경우에는, (제1실시예에서 파일 관리 테이블을 사용하여 관리하는 것과는 달리) 임시 파일인지 원본 파일인지를 구분하여 원본일 경우 원래의 파일 생성 루틴을 호출하고 임시 파일일 경우에 파일을 경로 재설정(Re-direct)하 여 파일을 생성한다. 이 때 경로 재설정(Re-direct)에 이용되는 것은 파일 또는 가상 파일 드라이버로서 이는 드라이버를 제거할 시기에 파일 또는 가상 파일 드라이버 영역으로 잡힌 파일만 제거하면 되므로 쉽게 임시 파일을 관리할 수 있게 된다.
이하에서 제2실시예의 시작 및 콜백 함수 작동 단계에 대해 보다 상세히 설명한다.
먼저 도 4의 S201에 도시된 바와 같이, b1) 상기 운영체제 및 상기 저장매체 사이에서 전달되는 데이터 정보를 필터링하는 필터 드라이버를 상기 파일 시스템 드라이버와 상기 운영체제 사이에 로드한다.
다음으로 도 4의 S202에 도시된 바와 같이, b2) 임시 파일 관리를 위한 관리용 파일, 디렉터리 또는 가상 드라이브로 구현되는 가상 저장매체를 설정한다. 상기 가상 저장매체에 관해서는 이하에서 보다 상세히 설명한다.
다음으로 도 4의 S203에 도시된 바와 같이, b3) 상기 필터 드라이버를 거쳐 상기 저장매체로 들어오는 파일 입출력 요청을 감시한다.
다음으로 도 4의 S205에 도시된 바와 같이, b4) 파일의 생성, 열기 또는 삭제 요청이 발생하면(S204a) 이를 감지하고(S204) 하기의 b5) 내지 b9) 단계를 수행하는 제1콜백 함수를 호출한다.
다음으로 도 4의 S206에 도시된 바와 같이, b5) 상기 b4) 단계에서 발생된 요청이 삭제 요청인지의 여부를 판단한다(S206). 이 때, 상기 요청이 삭제 요청인 경우(S206-Yes) 상기 파일을 완전 삭제한 후(S207) 상기 b3) 단계로 되돌아가 감시 를 계속하고, 상기 요청이 삭제 요청이 아닌 경우(S206-No) 다음 단계로 넘어가게 된다.
다음으로 도 4의 S208에 도시된 바와 같이, b6) 상기 b5) 단계에서 상기 요청이 삭제 요청이 아닌 것으로 판단된 경우(S206-No), 상기 요청이 생성 요청인지의 여부를 판단한다(S208). 이 때, 상기 요청이 생성 요청이 아닌 경우(S208-No) 상기 b3) 단계로 되돌아가 감시를 계속하고, 상기 요청이 생성 요청인 경우(S208-Yes) 다음 단계로 넘어가게 된다.
다음으로 도 4의 S209에 도시된 바와 같이, b7) 상기 b6) 단계에서 상기 요청이 생성 요청인 것으로 판단된 경우(S208-Yes), 상기 파일이 임시 파일인지의 여부를 판단한다(S209). 이 때, 상기 파일이 임시 파일이 아닌 경우(S209-No) 상기 b3) 단계로 되돌아가 감시를 계속하고, 상기 파일이 임시 파일인 경우(S209-Yes) 다음 단계로 넘어가게 된다.
다음으로 도 4의 S210에 도시된 바와 같이, b8) 상기 b7) 단계에서 상기 파일이 임시 파일인 것으로 판단된 경우(S209-Yes), 상기 파일을 상기 가상 저장매체로 경로 재설정(Re-direct)한다.
다음으로 도 4의 S211에 도시된 바와 같이, b9) 상기 파일 정보 및 상기 가상 저장매체에 생성된 파일 정보를 파일 맵 테이블에 추가하여 업데이트하고, 상기 가상 저장매체에 생성된 파일 핸들을 상기 파일 생성 요청에 대해 응답한 후(S211) 상기 b3) 단계로 되돌아가 감시를 계속하게 된다.
여기에서, 상기 가상 저장매체 및 경로 재설정에 관해 보다 상세히 설명한다. 제2실시예에서는 임시 파일을 생성시킬 때 경로 재설정(Re-direct)을 함으로써 특정 영역에만 임시 파일을 생성하도록 할 수 있다. 즉, 상기 필터 드라이버에 의하여 생성(Create)되는 파일들을 감시하고 만약 해당 파일이 임시 파일일 경우 원래의 임시 파일 위치에 생성하지 않고 가상적으로 잡은 영역에만 임시 파일을 생성시키도록 바꿔치기하는 것이다. 예를 들어 임시 파일의 생성이 C:\doc\이라는 디렉터리 밑에 생성이 된다고 가정하면 파일의 생성(Create)에는 이 파일의 Path가 넘어오게 된다. 파일 생성 시에는 해당 파일을 해당 위치에 생성하고 파일에 대한 핸들을 리턴하게 되어 있는데 이 때 파일의 생성 위치를 특정 영역으로 강제로 바꾸어 임시 파일을 관리할 수 있다. 만약 임시 파일을 관리하기 위한 디렉터리가 C:\temp\office\라는 폴더로 설정이 되어 있다고 가정하면, 파일 생성 시 파일을 조사하여 임시 파일로 판명이 되었고 생성 위치가 C:\doc\test.tmp일 경우 이 임시 파일의 생성 위치를 C:\temp\office\doc\test.tmp로 정하고 원래의 파일 생성 루틴을 호출한다. 이렇게 원래의 파일 생성 루틴이 호출되면 파일에 대한 핸들이 리턴 되는데 이때 생성된 파일의 핸들과 원래의 위치, 수정된 파일 이름을 파일 맵 테이블로 관리하고 핸들을 리턴한다. 이렇게 핸들이 리턴되고 난 뒤에는 파일에 대한 접근을 핸들로서 접근할 경우 (읽기(Read)/쓰기(Write) 등) 핸들을 참조하여 파일의 위치를 매핑해서 접근하게 하게 한다. 또한 파일 이름으로서 접근할 경우에는 파일 원본과 수정된 위치 테이블을 참조하여 파일 접근을 매핑한다.
상기 파일 맵 테이블을 이용한 임시 파일로의 접근을 단계적으로 설명하면 다음과 같다.
먼저, 상기 필터 드라이버가 로드되어 상기 제1콜백 함수가 작동된 이후에, 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버에 의하여, b10) 상기 b7) 단계에서 임시 파일로 판단되어 생성된 파일에 대하여 읽기, 쓰기, 닫기, 복사, 이동 또는 삭제를 포함하는 파일 입출력 요청이 발생하면 이를 감지하고 하기의 b11) 내지 b12) 단계를 수행하는 제2콜백 함수를 호출한다.
다음으로, b11) 상기 파일 맵 테이블의 파일 이름 또는 파일 핸들을 찾아 경로 재설정된 파일에 접근한다.
다음으로, b12) 경로 재설정된 파일에 대한 접근을 마치고 상기 b10) 단계에서 발생된 상기 파일 입출력 요청에 응답한다.
도 5는 이와 같이 사용자 영역에서 생성되는 파일들에 대해 임시 파일을 감지하고 임시 파일의 생성을 특정 디렉터리에 생성하는 한 예를 도시한 것이다. 도 5에서 파일 원본 test.doc의 경우는 사용자에 의해 생성되며 이 파일은 원본 파일이므로 사용자가 생성하고자 하는 위치에 생성한다. 그러나 test.doc.lnk나 ~WRL0001.tmp와 같은 임시 파일들은 임시 폴더로 지정된 C:\temp\office\(폴더의 위치는 하나의 예시일 뿐으로 적절하게 변경될 수 있다)라는 곳에 생성된다. 이렇게 임시 파일들을 특정 임시 폴더에 생성하고 핸들을 경로 재설정(Re-direct) 시킴으로서 임시 파일을 쉽게 관리할 수 있는 것이다.
이렇게 상기 필터 드라이버에 의하여 파일을 감시하여 임시 파일만을 경로 재설정(Re-direct)시키게 되면, 임시 파일을 관리하는 것이 훨씬 편리해진다. 즉, 단지 임시 파일 저장 위치로 설정된 폴더만 정리하면 생성되었던 임시 파일들을 쉽게 관리할 수 있기 때문이다. 또는, 임시 파일 뿐만 아니라 사용자가 생성한 파일들을 특정 디렉토리에 관리함으로서 사용자의 파일 관리를 효율적으로 수행할 수도 있게 된다.
보다 발전된 형태로, 가상 파일 시스템을 사용하여 특정 파일 또는 디렉터리를 가상 드라이브로 설정하고 해당 가상 드라이브에 파일 경로 재설정을 이용하여 임시 파일들을 생성시킨다면 후에 임시 파일들이 지워지고 삭제된 이후에도 상기 가상 드라이브 영역만 완전 삭제하게 되면 그동안 생성되고 삭제되었던 모든 임시 파일들을 단번에 쉽게 완전 삭제할 수 있다. 가상 파일 시스템이라 함은 실제 존재하지 않는 드라이브를 드라이브가 존재하는 것처럼 동작 시켜 주는 드라이버로서 일반적으로 특정 파일을 하나의 드라이브처럼 인식 시키는 방식이다. (예 : Virtual CD, Fake CD 등)
가상 파일 시스템에 관하여 보다 상세히 설명하면 다음과 같다. 가상 파일 시스템이 동작을 하게 되면 설정된 파일이 하나의 드라이브처럼 인식되고 이는 파일 시스템에서 파일로서 인식되는 것이 아니라 하나의 드라이로 인식이 되어 C:\나 D:\ 드라이브처럼 사용할 수 있다. 즉 파일이 생성될 경우 원본 파일일 경우에는 원래의 경로(path)를 그대로 유지하되, 임시 파일일 경우에는 경로 재설정(Re- direct)에 의하여 가상 파일 시스템에 생성하도록 하는 것으로, 이렇게 하면 항상 파일에 관련된 임시 파일 및 기타 정보들만이 선택적으로 가상 파일 시스템 영역에 생성이 된다. 임시 파일들은 원래의 드라이브에 생성되는 것이 아니라 가상 파일 영역에서 생성되므로 기존 파일 시스템의 복잡한 구조와 상관없게 되고 단지 가상 파일 영역만 제거된다면 시스템에서 생성되었던 임시 파일들에 접근할 수 없게 된다.
도 6은 사용자 영역에서 생성되는 파일들에 대해 임시 파일을 감지하고 임시 파일의 생성을 가상 파일 드라이브에 생성하는 한 예를 도시한 것이다. 도 6에서 파일 원본 test.doc의 경우는 사용자에 의해 생성되며 이 파일은 원본 파일이므로 사용자가 생성하고자 하는 위치에 생성된다. 그러나 test.doc.lnk나 ~WRL0001.tmp와 같은 임시 파일들은 임시 파일 저장을 위한 가상 파일 드라이브(H:)로 지정된 H:\temp\office\(폴더의 위치는 하나의 예시일 뿐으로 적절하게 변경될 수 있다)라는 곳에 생성된다. 이렇게 임시 파일들을 특정 가상 파일 드라이브에 생성하고 핸들을 경로 재설정(Re-direct) 시킴으로써 언제나 임시 파일을 쉽게 관리하고, 또한 모든 동작이 완료되는 시점에 가상 파일 드라이브 영역만 제거하거나 암호화되게 하면(또는 실시간 암호화), 운영체제가 생성했던 모든 임시 파일을 쉽게 관리하고 타인이 참조하지 못하도록 할 수 있다.
도 7은 사용자의 파일 입출력(File I/O) 요청을 감시하는 필터 드라이버의 동작 블록이다. 도 7에 도시된 바와 같이 사용자의 파일 생성 또는 열기 요청이 있을 경우 필터 드라이버에서 이를 감지하고 원본 파일인지 임시 파일인지 분별하여, 원본 파일일 경우 원본 파일의 위치에 파일을 생성하고, 임시 파일일 경우 가상 파일 드라이브인 'H:\'에 임시 파일을 생성시켜 파일을 경로 재설정(Re-direct)하여 파일 원본 위치와 재설정된 위치, 그리고 생성된 파일에 대한 핸들을 파일 맵 테이블(File Map Table)에 저장하여 사용자의 요구에 대응한다. 이후에 사용자의 파일 입출력 요청 중에 파일 핸들을 통해 접근할 경우 파일 맵 테이블의 핸들(Handle) 필드와 매핑하여 재설정된 위치의 파일에 접근하도록 하고, 파일 이름으로 접근할 경우에는 파일 맵 테이블의 실제 파일(Real File) 필드와 매핑하여 재설정된 파일의 위치를 찾아 접근한다.
이렇게 가상 파일 시스템을 이용하게 되면 가상 파일 시스템에 대해 암호가 걸려 있을 경우 암호에 따라 접근을 제한할 수가 있게 되며 이를 통하여 허가 받지 않은 사람들의 파일 생성 및 수정을 제한하고 파일 복구 등의 기능을 제한할 수 있다. 또한 이동식 저장 디스크와 연동을 하면 허가받은 이동식 저장 디스크가 없을 경우에도 접근을 제한하여 문서 관리를 보다 효율적으로 수행할 수 있다.
다음으로, 이하에서 제2실시예의 작업 종료 단계에 대해 보다 상세히 설명한다.
먼저 도 4의 S212에 도시된 바와 같이, b15) 상기 운영체제, 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버의 종료 요청이 감지되면(S212a) 상기 필터 드라이버를 제거할 것인지 사용자 확인을 입력받는 다.
다음으로 도 4의 S212에 도시된 바와 같이, b16) 상기 가상 저장매체를 완전 삭제하고 상기 파일 맵 테이블의 사용 메모리를 제거한다.
다음으로 도 4의 S214에 도시된 바와 같이, b17) 상기 b3) 단계에서 수행된 파일 입출력 요청 감시를 제거한 후(S214), 마지막으로 도 4의 S215에 도시된 바와 같이, b18) 상기 필터 드라이버를 언로드하여(S215) 작업을 종료하게 된다.
본 발명은 상기한 실시예에 한정되지 아니하며, 적용범위가 다양함은 물론이고, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이다.
도 1은 MS 워드에 의해 생성되는 임시 파일 및 복구 결과.
도 2는 웹 메일 사용에 의해 생성되는 임시 파일 및 복구 결과.
도 3은 본 발명의 임시 파일 관리 방법의 제1실시예의 동작 순서도.
도 4는 본 발명의 임시 파일 관리 방법의 제2실시예의 동작 순서도.
도 5는 임시 파일의 생성이 특정 디렉터리에 이루어지도록 경로 재설정시키는 구조.
도 6은 임시 파일의 생성이 파일 또는 가상 파일 드라이브에 이루어지도록 경로 재설정시키는 구조.
도 7은 사용자의 파일 입출력 I/O 요구에 대하여 가상 파일 드라이브로의 경로 재설정시켜 동작하는 API 호출 블록.

Claims (9)

  1. 저장매체 상에 소프트웨어 형태의 운영체제가 설치되며 상기 운영체제는 파일 시스템 드라이버를 통해 상기 저장매체에 액세스하는, 컴퓨터를 포함하는 연산처리수단에 의하여 실행되는 감시용 프로그램 또는 감시용 디바이스 드라이버 형태로 구현되며, 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버에 의하여
    a1) 상기 운영체제 및 상기 저장매체 사이에서 전달되는 데이터 정보를 필터링하는 필터 드라이버를 상기 파일 시스템 드라이버와 상기 운영체제 사이에 로드하는 단계(S101);
    a2) 상기 필터 드라이버를 거쳐 상기 저장매체로 들어오는 파일 입출력 요청을 감시하는 단계(S102);
    a3) 파일의 생성, 열기 또는 삭제 요청이 발생하면(S103a) 이를 감지하고(S103) 하기의 a4) 내지 a6) 단계를 수행하는 콜백 함수를 호출하는 단계(S104);
    a4) 상기 a3) 단계에서 생성, 열기 또는 삭제 요청이 발생된 파일이 임시 파일인지의 여부를 판단하여(S105), 상기 파일이 임시 파일이 아닌 경우(S105-No) 상기 a2) 단계로 되돌아가 감시를 계속하고, 상기 파일이 임시 파일일 경우(S105-Yes) 다음 단계로 넘어가는 단계;
    a5) 상기 a4) 단계에서 상기 파일이 임시 파일로 판단된 경우(S105-Yes), 상기 a3) 단계에서 발생된 요청이 삭제 요청인지의 여부를 판단하여(S106), 상기 요청이 삭제 요청인 경우(S106-Yes) 상기 파일을 완전 삭제한 후(S107) 상기 a2) 단 계로 되돌아가 감시를 계속하고, 상기 요청이 삭제 요청이 아닌 경우(S106-No) 다음 단계로 넘어가는 단계;
    a6) 상기 a5) 단계에서 상기 요청이 삭제 요청이 아닌 것으로 판단된 경우(S106-No), 상기 요청이 생성 요청인지의 여부를 판단하여(S108), 상기 요청이 생성 요청인 경우(S108-Yes) 상기 파일의 정보 및 핸들을 파일 관리 테이블에 추가하여 업데이트한 후(S109) 상기 a2) 단계로 되돌아가 감시를 계속하고, 상기 요청이 생성 요청이 아닌 경우(S108-No) 상기 a2) 단계로 되돌아가 감시를 계속하는 단계;
    를 포함하여 이루어지는 것을 특징으로 하는 응용프로그램에서 사용되는 임시 파일의 관리 방법.
  2. 제 1항에 있어서, 상기 필터 드라이버가 로드되어 상기 콜백 함수가 작동된 이후에, 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버에 의하여,
    a7) 상기 운영체제, 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버의 종료 요청이 감지되면(S110a) 삭제되지 않은 임시 파일을 완전 삭제할 것인지 사용자 확인을 입력받는 단계(S110);
    a8) 상기 a7) 단계에서 완전 삭제 요청을 입력받을 경우(S111-Yes), 상기 a6) 단계에서 업데이트된 상기 파일 관리 테이블을 참조하여(S112a) 남아 있는 임시 파일들을 완전 삭제하고, 파일 관리 테이블도 완전 삭제하는 단계(S112);
    a9) 상기 a2) 단계에서 수행된 파일 입출력 요청 감시를 제거하는 단계(S113);
    a10) 상기 필터 드라이버를 언로드하는 단계(S114);
    를 더 포함하여 이루어지는 것을 특징으로 하는 응용프로그램에서 사용되는 임시 파일의 관리 방법.
  3. 저장매체 상에 소프트웨어 형태의 운영체제가 설치되며 상기 운영체제는 파일 시스템 드라이버를 통해 상기 저장매체에 액세스하는, 컴퓨터를 포함하는 연산처리수단에 의하여 실행되는 감시용 프로그램 또는 감시용 디바이스 드라이버 형태로 구현되며, 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버에 의하여
    b1) 상기 운영체제 및 상기 저장매체 사이에서 전달되는 데이터 정보를 필터링하는 필터 드라이버를 상기 파일 시스템 드라이버와 상기 운영체제 사이에 로드하는 단계(S201);
    b2) 임시 파일 관리를 위한 관리용 파일, 디렉터리 또는 가상 드라이브로 구현되는 가상 저장매체를 설정하는 단계(S202);
    b3) 상기 필터 드라이버를 거쳐 상기 저장매체로 들어오는 파일 입출력 요청을 감시하는 단계(S203);
    b4) 파일의 생성, 열기 또는 삭제 요청이 발생하면(S204a) 이를 감지하고(S204) 하기의 b5) 내지 b9) 단계를 수행하는 제1콜백 함수를 호출하는 단 계(S205);
    b5) 상기 b4) 단계에서 발생된 요청이 삭제 요청인지의 여부를 판단하여(S206), 상기 요청이 삭제 요청인 경우(S206-Yes) 상기 파일을 완전 삭제한 후(S207) 상기 b3) 단계로 되돌아가 감시를 계속하고, 상기 요청이 삭제 요청이 아닌 경우(S206-No) 다음 단계로 넘어가는 단계;
    b6) 상기 b5) 단계에서 상기 요청이 삭제 요청이 아닌 것으로 판단된 경우(S206-No), 상기 요청이 생성 요청인지의 여부를 판단하여(S208), 상기 요청이 생성 요청이 아닌 경우(S208-No) 상기 b3) 단계로 되돌아가 감시를 계속하고, 상기 요청이 생성 요청인 경우(S208-Yes) 다음 단계로 넘어가는 단계;
    b7) 상기 b6) 단계에서 상기 요청이 생성 요청인 것으로 판단된 경우(S208-Yes), 상기 파일이 임시 파일인지의 여부를 판단하여(S209), 상기 파일이 임시 파일이 아닌 경우(S209-No) 상기 b3) 단계로 되돌아가 감시를 계속하고, 상기 파일이 임시 파일인 경우(S209-Yes) 다음 단계로 넘어가는 단계;
    b8) 상기 b7) 단계에서 상기 파일이 임시 파일인 것으로 판단된 경우(S209-Yes), 상기 파일을 상기 가상 저장매체로 경로 재설정(Re-direct)하는 단계(S210);
    b9) 상기 파일 정보 및 상기 가상 저장매체에 생성된 파일 정보를 파일 맵 테이블에 추가하여 업데이트하고, 상기 가상 저장매체에 생성된 파일 핸들을 상기 파일 생성 요청에 대해 응답한 후(S211) 상기 b3) 단계로 되돌아가 감시를 계속하는 단계;
    를 포함하여 이루어지는 것을 특징으로 하는 응용프로그램에서 사용되는 임 시 파일의 관리 방법.
  4. 제 3항에 있어서, 상기 필터 드라이버가 로드되어 상기 제1콜백 함수가 작동된 이후에, 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버에 의하여,
    b10) 상기 b7) 단계에서 임시 파일로 판단되어 생성된 파일에 대하여 읽기, 쓰기, 닫기, 복사, 이동 또는 삭제를 포함하는 파일 입출력 요청이 발생하면 이를 감지하고 하기의 b11) 내지 b12) 단계를 수행하는 제2콜백 함수를 호출하는 단계;
    b11) 상기 파일 맵 테이블의 파일 이름 또는 파일 핸들을 찾아 경로 재설정된 파일에 접근하는 단계;
    b12) 경로 재설정된 파일에 대한 접근을 마치고 상기 b10) 단계에서 발생된 상기 파일 입출력 요청에 응답하는 단계;
    를 더 포함하여 이루어지는 것을 특징으로 하는 응용프로그램에서 사용되는 임시 파일의 관리 방법.
  5. 제 3항에 있어서, 상기 필터 드라이버가 로드되어 상기 제1콜백 함수가 작동된 이후에, 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버에 의하여,
    b15) 상기 운영체제, 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버의 종료 요청이 감지되면(S212a) 상기 필터 드라이버를 제거할 것인지 사용자 확인을 입력받는 단계(S212);
    b16) 상기 가상 저장매체를 완전 삭제하고 상기 파일 맵 테이블의 사용 메모리를 제거하는 단계(S213);
    b17) 상기 b3) 단계에서 수행된 파일 입출력 요청 감시를 제거하는 단계(S214);
    b18) 상기 필터 드라이버를 언로드하는 단계(S215);
    를 더 포함하여 이루어지는 것을 특징으로 하는 응용프로그램에서 사용되는 임시 파일의 관리 방법.
  6. 제 3항에 있어서, 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버는
    상기 가상 저장매체로 파일을 입출력할 때 암호화 및 복호화를 수행하는 것을 특징으로 하는 응용프로그램에서 사용되는 임시 파일의 관리 방법.
  7. 제 1항 내지 제 6항 중 선택되는 어느 한 항에 있어서, 완전 삭제는, 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버에 의하여,
    c1) 완전 삭제가 수행될 임시 파일의 속성을 쓰기 가능하게 변경시키는 단계;
    c2) 상기 임시 파일의 시작 위치부터 끝 위치까지의 영역에 상기 임시 파일의 크기만큼의 덮어쓰기용 패턴을 적어도 한 번 이상 덮어쓰는 단계;
    c3) 상기 임시 파일에 패턴 덮어쓰기가 완료되면 상기 덮어쓰기 완료된 임시 파일들을 삭제하는 단계;
    를 포함하여 이루어지는 것을 특징으로 하는 응용프로그램에서 사용되는 임시 파일의 관리 방법.
  8. 제 7항에 있어서, 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버는 덮어쓰기 시
    사용자 입력 문자열 패턴을 사용하여 덮어쓰기 작업을 수행하거나,
    랜덤 문자열 패턴을 사용하여 덮어쓰기 작업을 수행하거나,
    DoD 5220 방식에 따라 덮어쓰기용 패턴 생성 및 덮어쓰기 작업을 수행하거나,
    Peter Gutmann 방식에 따라 덮어쓰기용 패턴 생성 및 덮어쓰기 작업을 수행하는 것을 특징으로 하는 응용프로그램에서 사용되는 임시 파일의 관리 방법.
  9. 제 8항에 있어서, 상기 감시용 프로그램 또는 상기 감시용 디바이스 드라이버는
    사용자 입력 문자열 패턴 또는 랜덤 문자열 패턴을 사용하여 덮어쓰기할 경우, 사용자 입력에 따른 횟수 또는 미리 결정된 횟수만큼 반복 덮어쓰기를 수행하는 것을 특징으로 하는 응용프로그램에서 사용되는 임시 파일의 관리 방법.
KR1020090042175A 2009-05-14 2009-05-14 응용프로그램에서 사용되는 임시 파일의 관리 방법 KR101055287B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090042175A KR101055287B1 (ko) 2009-05-14 2009-05-14 응용프로그램에서 사용되는 임시 파일의 관리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090042175A KR101055287B1 (ko) 2009-05-14 2009-05-14 응용프로그램에서 사용되는 임시 파일의 관리 방법

Publications (2)

Publication Number Publication Date
KR20100123133A true KR20100123133A (ko) 2010-11-24
KR101055287B1 KR101055287B1 (ko) 2011-08-09

Family

ID=43407845

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090042175A KR101055287B1 (ko) 2009-05-14 2009-05-14 응용프로그램에서 사용되는 임시 파일의 관리 방법

Country Status (1)

Country Link
KR (1) KR101055287B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190045121A (ko) * 2019-04-22 2019-05-02 고려대학교 산학협력단 하이브리드 메인 메모리 시스템의 비휘발성 메모리의 데이터 관리 방법 및 장치
WO2022010154A1 (ko) * 2020-07-10 2022-01-13 주식회사 토브업 파일 영구삭제 방법 및 컴퓨터 프로그램
KR20220007484A (ko) * 2020-07-10 2022-01-18 주식회사 토브업 파일 영구삭제 방법 및 컴퓨터 프로그램

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101605156B1 (ko) 2014-12-11 2016-03-21 네이버비즈니스플랫폼 주식회사 파일 안전 삭제 기능 제공 장치, 방법 및 컴퓨터 프로그램
KR101707183B1 (ko) * 2015-11-12 2017-02-15 네이버비즈니스플랫폼 주식회사 파일 안전 삭제 기능 제공 방법 및 컴퓨터 프로그램

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050028245A (ko) * 2003-09-18 2005-03-22 삼성전자주식회사 리눅스 시스템을 사용하는 디바이스의 엠베디드소프트웨어를 원격으로 업데이트하는 방법
US7712086B2 (en) * 2004-12-15 2010-05-04 Microsoft Corporation Portable applications

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190045121A (ko) * 2019-04-22 2019-05-02 고려대학교 산학협력단 하이브리드 메인 메모리 시스템의 비휘발성 메모리의 데이터 관리 방법 및 장치
WO2022010154A1 (ko) * 2020-07-10 2022-01-13 주식회사 토브업 파일 영구삭제 방법 및 컴퓨터 프로그램
KR20220007484A (ko) * 2020-07-10 2022-01-18 주식회사 토브업 파일 영구삭제 방법 및 컴퓨터 프로그램

Also Published As

Publication number Publication date
KR101055287B1 (ko) 2011-08-09

Similar Documents

Publication Publication Date Title
US7814554B1 (en) Dynamic associative storage security for long-term memory storage devices
JP4828199B2 (ja) アンチウィルスソフトウェアアプリケーションの知識基盤を統合するシステムおよび方法
JP4578119B2 (ja) 情報処理装置および情報処理装置におけるセキュリティ確保方法
US7392541B2 (en) Computer system architecture and method providing operating-system independent virus-, hacker-, and cyber-terror-immune processing environments
JP5833754B2 (ja) ファイルシステムをクリーニングするための方法及び装置並びにその記憶媒体
KR101055287B1 (ko) 응용프로그램에서 사용되는 임시 파일의 관리 방법
WO2007091652A1 (ja) 割符情報の管理方法および管理装置
JP2020520518A (ja) 独立した復元領域を有する補助記憶装置およびこれを適用した機器
CN100447765C (zh) 一种移动存储设备的映射方法
KR100898968B1 (ko) 응용프로그램에서 사용되는 임시 파일의 자동 완전 삭제방법
CN103617398A (zh) 一种数据文件的保护方法及装置
JP5379520B2 (ja) ディジタルコンテンツ管理用電子計算機、そのためのプログラム、プログラムの記録媒体、及び、ディジタルコンテンツ管理システム
KR20100025116A (ko) 완전삭제를 이용한 자동적인 문서유출 방지 시스템
CN111382126B (zh) 删除文件及阻碍文件恢复的系统和方法
CA3214199A1 (en) Ransomware prevention
JP2008152519A (ja) コンピュータ及びその基本ソフトウェア
WO2020005633A1 (en) Download management
WO2009029450A1 (en) Method of restoring previous computer configuration
JP5156559B2 (ja) 電子計算機のデータ管理方法、そのためのプログラム
US20080253559A1 (en) Data Security Method, System and Storage Medium for Preventing a Desktop Search Tool from Exposing Encrypted Data
JP5429280B2 (ja) データ処理装置、そのコンピュータプログラムおよびデータ処理方法
Mallery Secure file deletion: Fact or fiction?
KR100948386B1 (ko) 컴퓨터 시스템의 원본 보존 장치 및 방법
US20050033721A1 (en) Location switch hard drive shim
JP4213704B2 (ja) 仮想ファイル管理装置、仮想ファイル管理方法、および仮想ファイル管理プログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140801

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150803

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160802

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee