아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명하겠다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않고, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하나 이상의 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 조합으로 구현될 수 있음을 의미한다.
도 1은 본 발명의 실시예에 따른 응용 프로그램의 접근 제어 장치를 구성하는 각 구성부들을 도시한 도면이다. 그리고 도 2는 본 발명의 실시예에 따른 응용 프로그램의 접근 제어 방법(도 2에서는 이를 보안 에이전트로 명명함)에 관한 순서도이다. 이하, 도 1을 중심으로, 도 2의 순서도 및 도 3 ~ 도 9를 함께 참조하여, 본 발명의 실시예를 설명한다.
도 1을 참조하면, 본 발명의 실시예에 따른 응용 프로그램의 접근 제어 장치는, 사용자 인증부(100), 보안 저장 영역 제어부(200), PC 구동 제어부(300)를 포함한다.
사용자 인증부(100)는 사용자 아이디와 패스워드를 인증하는 일반 구성부이다. 여기서, 사용자 인증부(100)는 네트워크(미도시)를 통해서 다른 컴퓨터 시스템이나 외부 서버와 연결되어 사용자 인증을 수행할 수도 있다.
보안 저장 영역 제어부(200)는, 보안저장영역 정책 제어부(210), 보안정책 기억부(220), 보안프로그램 구동경로 복사부(230), 보안프로그램 구동경로 전환부(240), 보안프로그램 일기 제어부(250), 보안프로그램 쓰기 제어부(260), 보안저장영역 암복호화부(270), 보안저장영역 표시 제어부(280), 보안프로그램 이벤트 제어부(290)를 포함할 수 있다. 또한 구현 방식에 따라서, 보안 저장 영역 제어부(200)는 파일 반출 제어부(2AA), 생존 기간 제어부(2BB), 프린터 스풀 제어부(2CC), 시스템 캐쉬 초기화부(2DD), 프로그램 구동 학습부(2EE)를 더 포함할 수 있다.
보안저장영역 정책 제어부(210)는 보안정책 기억부(220)에 저장된 사용자 보안정책을 참조하여 보안프로그램 구동경로 복사부(230)에 해당 프로그램별 설정된 파일을 복사하도록 지시를 내린다[도 2의 S210 및 S220 참조]. 이에 따라 복사가 완료된 경우, 보안저장영역 정책 제어부(210)는 보안프로그램 구동경로 전환부(240)가 해당 프로그램의 구동경로를 보안 저장 영역으로 인식되도록 전환하는 명령을 내린다[도 2의 S230 참조]. 또한, 보안저장영역 정책 제어부(210)는 보안프로그램 읽기 제어부(250)를 통해 감지되는 보안 저장 영역에 관한 접근 시도 프로그램이 보안 정책에 따른 보안 프로그램에 해당하는 경우 해당 문서에 관한 열람을 허용하도록 하거나, 보안프로그램 쓰기 제어부(260)를 통해 저장을 시도할 경우 보안 저장 영역 내에만 저장이 되도록 제어하는 구성부이다. 여기서, 보안 프로그램이란, 응용 프로그램 중 보안 정책에 따라 보안 저장 영역에 접근이 가능하도록 사전 지정된 프로그램을 지칭한다.
보안정책 기억부(220)는 해당 사용자별 보안 저장 영역에서 사용할 수 있도록 허가된 프로그램명, 프로그램별 고유값, 해당 프로그램별 구동시 사전에 복사되어 있어야 하는 파일 또는 폴더 경로 값, 보안 저장 영역 제어부(200)가 종료될 때 복원해주어야 하는 파일 또는 폴더경로 값, 보안 저장 영역의 암복호화키 값, 보안 저장 영역을 구성하는 폴더 또는 드라이브들의 값 등을 기억하는 구성부이다. 사용자별로 보안정책을 기억하는 방법은 암호화된 파일 형태로 보관할 수 있거나, 서버로부터 값을 수신하여 할 수 있다.
즉, 보안정책 기억부(220)는 프로그램 특성에 따라서 보안 저장 영역에 대한 프로그램 접근제어를 설정할 때, 프로그램이 구동시 어떤 경로의 파일 또는 폴더들을 사전에 보안 저장 영역에 복사해야 하는지에 관한 정보를 저장한다. 또한 보안정책 기억부(220)는 보안 저장 영역 제어부(200)가 종료되었을 경우 사용되었던 라이센스 또는 임시 작업 파일 중 일반영역(즉, 비보안 영역)에서 프로그램이 정상적으로 구동되기 위해서 반드시 재갱신해주어야 하는 프로그램의 라이선스 파일, 작업 파일, 폴더 경로값 등을 저장할 수 있다[도 2의 S280 및 S290 참조].
상술한 설명에 따라 설정(기억)이 필요한 보안정책에 관하여 프로그램 별로 예시들 들면 다음과 같다.
일 예로 노트패드(nopade.exe)와 같은 프로그램은 시작하기 위해서 구동에 필요한 설정 데이터를 따로 읽거나 캐쉬 폴더를 사용하지 않기 때문에, 프로세스 명만 보안 저장 영역에 접근할 수 있도록 설정하면 된다.
반면 MS Word 프로그램의 경우에는 프로그램 구동을 위해서 설치시 지정되었던 임시 파일 및 폴더 경로를 읽거나 쓰면서 구동을 시작해야 한다. 만약 구동 시 읽어야 할 특정 임시 데이터 파일을 찾지 못하면 도 3과 같이 구동시 오류가 발생한다. 따라서 보안 저장 영역에서의 정상적 구동을 위해서는 구동시 읽어야 할 임시 파일 및 폴더 경로를 보안 저장 영역으로 복사하고, 프로그램 구동경로를 그 복사된 보안 저장 영역으로 변경해 줄 필요가 있다.
또한 포토샵 프로그램과 같이 임시 작업 정보에 따라서 프로그램이 다르게 동작하는 경우에는, 구동경로만 변경하도록 설정하여 보안 저장 영역에서 작업했던 작업정보와 비보안 영역에서 작업했던 작업정보를 분리하도록 설정할 수 있다. 도 4의 포토샵 실시예를 보면, 최근 열람한 문서의 목록이 보안 저장 영역에서 작업할 때와 비보안 영역에서 작업할 때가 다르게 표시됨을 확인할 수 있다.
또한 오토캐드나 솔리드웍스 프로그램(즉, 2차원, 3차원 캐드 프로그램)과 같이 설치시 존재했던 경로에 놓여있는 임시 파일 및 폴더에 라이센스 파일을 두고서 시작과 종료시점에 라이센스 파일을 갱신하는 경우, 보안 저장 영역 제어부(200)가 종료될 때 해당 캐드 프로그램이 보안 저장 영역에서 마지막으로 참조했던 라이센스 파일을 원래 경로로 재복사해줄 필요가 있다. 이와 같이 마지막으로 참조했던 라이선스 파일을 원래 경로로 재복사해주지 않는 경우, 이후 비보안 영역에서 캐드 프로그램을 구동시키게 되면 도 5와 같이 프로그램의 라이센스 파일이 깨져서 다시 설치하거나 라이센스 키를 새롭게 발급받도록 되어 캐드 프로그램의 업무 용도 이외의 개인 용도로의 사용이 차단될 수 있다.
또한 보안정책 기억부(220)는 보안 저장 영역에 접근할 수 있는 프로그램명과 함께 해당 프로그램이 실제 동일한 프로그램인지를 판단하기 위해, 고유값을 함께 보유할 수 있다. 여기서, 해당 고유값은 해당 프로그램 속성정보인 제조사, 버전, 제품명 등의 부가정보 이외에도, 구동 바이너리 파일의 해쉬값으로도 구성할 수 있다.
이외에도, 보안정책 기억부(220)는 사용자별 프로그램 허용목록과 함께 보안 저장 영역에서 접근했던 프로그램이 프린터 스풀을 이용하여 문서 출력을 수행할 수 있을지 없을지에 대한 출력 정책을 기억할 수 있다.
보안프로그램 구동경로 복사부(230)는 보안 저장 영역에 접근하도록 설정된 프로그램이 구동시 읽거나 사용해야 할 라이선스 파일, 임시 작업 파일, 임시 작업 폴더를 보안 저장 영역내의 지정된 공간에 복사하는 구성부이다.
일 예로 복사가 이루어지는 보안 폴더 내 폴더 구조는 보안 저장 영역 내에서 실제 해당 프로그램의 경로가 사용하는 절대경로를 하위 폴더로 복사하여 구성할 수 있다. 예를 들어 실제 임시 작업 폴더가 C:\DocumentandSetting\ApllicationCash 인 경우 보안 폴더로 복사될 때 예시는 S:\_Secure\C\DocumentandSetting\ApplicationCash 에 복사되며, 정책에 따라서 경로만 복사될 수도 있고, 해당 폴더 내 하위 데이터까지 전체 복사될 수도 있다.
또한 보안프로그램 구동경로 복사부(230)는 해당 파일 및 폴더 복사시 복사되는 자료를 숨김 파일 및 폴더로 생성하여 보안 저장 영역내에 사용자에게 노출되지 않도록 구성할 수 있다.
또한 보안프로그램 구동경로 복사부(230)는 보안 저장 영역 제어부(200)가 종료될 때 사용자별 프로그램 설정 정책에 따라서 보안 저장 영역으로부터 원래 저장 영역으로 라이센스 파일 또는 필수 파일 등을 재복사해줄 수 있다.
보안프로그램 구동경로 전환부(240)는 보안 저장 영역내의 자료를 열람, 생성할 수 있도록, 프로그램이 구동될 때 해당 프로그램이 참조해야 하는 라이선스 파일, 임시 작업 파일, 임시 작업 폴더의 경로를 실제 경로가 아닌 보안 저장 영역 내에 복사된 보안 작업 영역으로 인식될 수 있도록 하는 구성부이다.
일 예로 운영체제가 보장하는 리다이렉션(Redirection)을 Win32 수준에서 설정하여 해당 파일 및 폴더를 보안 저장 영역으로 전환 시킬 수 있으며, 파일시스템에 필터드라이브나 미니필터드라이브 수준에서 미니필터드라이브를 구현하여 해당 파일시스템에 대한 요청을 보안 저장 영역내의 작업공간으로 전환 시킬 수 있다.
본 실시예에서는 미니필터드라이브 기술을 이용하여 저장을 리다이렉션 시키는 것에 대한 상세한 예시를 들도록 하겠다. 예시는 노트패드 프로그램이 비보안 영역(C:\temp\1.txt)에 있는 파일을 저장하더라도 보안 저장 영역(D:\_secure\temp\1.txt)에 파일이 저장되도록 하는 예를 도 6을 따라 설명하겠다.
첫째 이벤트를 보면 Notepad.exe가 c:\temp\1.txt파일을 생성하기 위하여 CreateFile을 호출한다. 두번째 이벤트는 파일삭제, 이름바꾸기 등의 경우 해당 API들을 호출하고, 셋째, Kernel32.dll에서 ntdll.dll을 거쳐 커널 준위로 요청이 전달된다. 넷째, IO 관리자는 c:\temp\1.txt 에로 향한 IRP를 만들어 드라이버 스택에 전달한다. 다섯째, IRP가 Mini filter관리자에로 전달한다. 이때의 IRP는 c:\temp\1.txt 에대한 요청이다. 여섯째, Mini filter관리자는 패킷데이터를 미니필터드라이버의 pre callback 함수에 보내주고, 미니필터드라이버의 callback 함수에서는 "c:\temp\1.txt"로 향한 요청을 "d:\_sec\temp\1.txt" 로 바꾸고 IO_REPARSE 를 귀환한다. 일곱째, 미니필터 관리자는 IO_REPARSE 를 확인하고 IO 관리자에 IRP를 다시 만들 것을 요청한다. 여덟째, IO 관리자는 "d:\_sec\temp\1.txt"에로 향한 IRP를 다시 만든다. 아홉째, 새롭게 만들어진 패킷이 드라이버 스택으로 내려오며 미니필터 관리자에게 전달된다. 열 번째, 미니필터에 들어오지만 파일이 보안폴더내의 파일이므로 리다이렉트 처리는 일어나지 않는다. 열한번째, "d:\_sec\temp\1.txt"에로 향한 IRP가 파일시스템 드라이버로 전달된다. 파일시스템 드라이버에서 "d:\_sec\temp\1.txt"에 대한 생성 처리를 진행한다.
보안프로그램 읽기 제어부(250)는 보안 저장 영역내에서 파일을 열람하고자 프로그램 또는 프로세스가 파일시스템에 접근하는 경우 해당 프로그램이 보안정책 기억부(220)에 기록된 보안 저장 영역에 관한 접근 허용 프로세스 정보와 일치하는지 판단한다. 위 판단 결과 일치하는 경우 보안프로그램 읽기 제어부(250)는 해당 프로세스가 보안 저장 영역 내의 파일을 열람할 수 있도록 한다. 이때, 보안프로그램 읽기 제어부(250)는 해당 프로세스가 보안 저장 영역에 접근되는 즉시 보안 저장 영역에 관한 접근 허용 허용프로세스에서 감시 프로세스로 전환되어 인식된다[도 2의 S240 참조].
또한 보안프로그램 읽기 제어부(250)는 보안 저장 영역 내에서 발생하는 파일시스템 이벤트에 한하여 프로세스의 접근여부를 판단하도록 구성하여, 보안 저장 영역 이외에서 저장된 파일을 읽을 경우 허용하도록 구성할 수도 있으며, 보안 정책에 따라서 보안 저장 영역 이외의 파일은 읽지 못하도록 구성할 수 도 있다.
보안 저장 영역에 관한 읽기 제어에 따른 실시예는 필터드라이브, 미니필터드라이브, 또는 Win32 수준의 대화상자 후킹 등 다양한 수준에서 실시될 수 있다. 다만, 본 명세서에서는 그 중 한가지 구현 예시로, 미니필터드라이브 기술을 사용하여 보안 저장 영역내의 파일시스템 이벤트를 모니터링하다가 접근을 차단하거나 허용하는 실시 예시를 도 7을 참조하여 설명하겠다. 도 7의 실시 예시를 참조하면, 에디터플러스라는 프로그램을 이용하여 보안 저장 영역 내의 log.ext를 읽기 시도하는 과정에서 보안프로그램 읽기 제어부(250)에 의해서 읽기가 차단되는 이벤트 로그와 사용자 화면이 도시되고 있다.
보안프로그램 쓰기 제어부(260)는 보안 저장 영역에 있는 파일을 열람한 감시 프로그램 또는 감시 프로세스에서 파일을 저장하려고 시도하려고 하는 경우 파일시스템 이벤트를 참조하여 보안 저장 영역 내에서 파일 저장 이벤트가 발생하는 경우 저장을 허용하고, 그 이외의 영역에서 저장을 시도하는 경우 저장을 금지하도록 하는 구성부이다[도 2의 S260 및 S270 참조].
일 예로 저장을 금지하는 방법은 파일시스템 이벤트와 해당 이벤트를 발생시킨 프로세스를 참조하여 해당 저장이벤트를 어떤 프로그램이 시도했는지 확인하는 방법도 있고, 프로그램의 저장 대화 상자를 보안 저장 영역으로만 제한하는 방법 등 다양한 수준에서 제어할 수 있다.
상술한 읽기/쓰기 제어에 관한 구체적인 실시 예시로는 미니필터드라이브를 이용하여 도 8의 작동방식을 설명하겠다. 보안 저장 영역 내의 파일시스템 이벤트를 모니터링하다가 접근이 허가된 notepad.exe가 접근하게 되면, 해당 프로세스가 허용 프로세스이기 때문에 접근을 허락함과 동시에, 해당 프로세스를 감시 프로세스로 바꾸고 읽기를 허락 해준다. 이후, 열람이 허락된 파일을 보안 저장 영역 이외의 다른 공간에 저장을 시도하게 되면, 도 8의 36번부터 39번 열까지의 이벤트 로그에서 나타나는 것과 같이 notepade의 프로세스 ID가 저장하려는 것을 중단한다.
본 실시예에서 나타내는 방식은 단일 프로그램이 하나의 데이터 파일을 저장하는 것을 차단한 것을 예시하였으나, MS Word와 같이 하나의 프로세스가 쓰레드 방식으로 다수의 문서를 열람하는 경우, 하나의 쓰레드라도 보안 저장 영역에서 문서를 열람한 경우, 저장은 보안 저장 영역으로만 저장되도록 파일시스템 이벤트를 제어할 수도 있을 것이다.
보안저장영역 암복호화부(270)는 보안 저장 영역에 파일이 저장될 때, 해당 저장공간 내에서 발생하는 파일시스템의 읽기/쓰기 이벤트를 복호화하거나 암호화하는 구성부이다. 파일시스템 이벤트가 발생할 때, 미니필터드라이브 또는 파일시스템 필터드라이브를 이용하여 읽고 쓰는 이벤트를 후킹하여 해당 데이터를 암복호화 할 수 있다.
보안저장영역 표시 제어부(280)는 보안 저장 영역을 특정 볼륨 하의 폴더로 설정하여 표시할 수도 있고, 드라이브 볼륨으로 구성하여 표시할 수도 있다. 또한 해당 보안 저장 영역이 사용자 인증 이후에만 표시될 수 있도록 사용자 인증 전에는 표시되지 않도록 제어할 수 있다.
보안프로그램 이벤트 제어부(290)는, 프로세스 별로 데이터 영역을 선택하여 복사하였다가 붙여넣기를 하거나, 데이터 영역을 선택하여 마우스로 드래그 앤 드롭하여 데이터를 복사하고자 하는 경우, 일반 영역 자료를 열람한 프로세스에서 보안 저장 영역을 접근한 프로세스로는 그러한 복사가 가능하지만, 보안 프로세스에서 일반 영역의 프로세스로는 불가능하도록 제어하는 것이다[도 2의 S250 참조].
도 9의 실시예에서는 Win32 수준에서 사용자 윈도우가 있는 프로그램을 전체 영역 후킹을 하여 프로그램이 구동될 때마다 인젝션하고 해당 프로그램의 복사/붙여넣기와 마우스 이벤트를 모니터링한다. 보안 저장 영역에 접근이 허용된 프로그램(도 9의 경우 에디터플러스)이 2개의 프로세스(1288과 4276)로 각각 구동될때, 18번째 열에서 나타나듯이 둘 다 보안 저장 영역 프로세스에 접근이 되는 허용 프로세스이지만, 아직 감시 대상 프로세스가 아닐 때는 1288번 프로세스에서 4276프로세스로 마우스에 의한 데이터본문의 드래그 앤 드롭이 성공적으로 수행된다. 반면, 49번째 열에서 보이듯이 1288번 프로세스가 감시 프로세스가 되면, 58번째 열에서 보이듯이 1288번 프로세스에서는 4276번 프로세스로 드래그 앤 드롭이 차단된다. 또한 66번째 열에서 보이듯이 4276번 프로세스에서 1288번 프로세스로의 드래드 앤 드롭은 허용된다.
또한 보안 저장 영역 제어부(200)는 앞서 설명한 9가지 하위 구성부(도 1의 도면부호 210 ~ 290 참조) 이외에도, 파일 반출 제어부(2AA), 생존 기간 제어부(2BB), 프린터 스풀 제어부(2CC), 시스템 캐쉬 초기화부(2DD), 프로그램 구동 학습부(2EE)를 추가로 구성할 수 있다.
파일 반출 제어부(2AA)는 보안 저장 영역내의 파일이 보안 저장 영역 이외의 다른 곳으로 복호화되어 복사될 수 있도록 하는 구성부이다. 실시 예시에 따라, 보안정책 기억부(220)를 통해서 반출 권한을 부여 받은 사용자가 접근이 가능한 서버에 문서를 전송함으로써 반출을 실시할 수도 있으며, 보안 저장 영역내의 반출하려는 파일을 사전에 지정된 영역(해당 PC의 바탕화면이나 문서함(My document), 마운트된 USB 드라이브)에 복사해 놓을 수도 있고, 정책 권한에 따라서 반출 전 반출내역을 기록하기로 지정된 서버에 전송할 수도 있다. 즉, 파일 반출 제어부(2AA)는 네트워크를 통한 승인 절차 또는 사용자 보안 정책에 따라서 보안 저장 영역 내에 보관된 파일을 비보안 영역으로 복사(반출)할 수 있는지 여부를 결정(제어)한다.
생존 기간 제어부(2BB)는 보안 저장 영역내에 파일이 생성될 경우 장시간 보관되지 못하도록 하기 위하여 파일 시스템상의 파일시간(생성시간, 수정시간, 접근시간 등) 또는 메타데이터 관리시간 등을 기준으로 정책에서 설정된 시간을 초과하는 경우 강제로 삭제하거나 사용자가 접근할 수 없도록 숨기는 구성부이다. 이는 사용자가 파일을 가급적 오래 보관해두지 말고, 해당 파일의 생존 기간이 도과하기 전에 해당 파일을 지정된 특정 서버로 옮기도록 유도하는데 효과가 있다. 이를 위해, 생존 기간 제어부(2BB)는 생존 기간이 다되어가는 파일에 대한 목록을 사용자에게 알리는 기능이 포함될 수 있다.
프린터 스풀 제어부(2CC)는 보안정책 기억부(220)에 기록된 프린터 스풀에 관한 보안정책(즉, 해당 사용자가 프로그램 별로 프린터 스풀에 접근할 수 있는지 여부에 관한 정책)에 따라 사용자가 해당 프로그램을 통해서 문서를 출력하거나 하지 못하도록 제어하는 구성부이다. 즉, 프린터 스풀 제어부(2CC)는 보안 저장 영역에 접근한 프로그램이 문서를 프린터 스풀로 전송할 수 있는지 여부를 결정(제어)한다.
시스템 캐쉬 초기화부(2DD)는 운영체제(OS)가 제공하는 각종 데이터 캐쉬 공간을 초기화하는 구성부이다. 일 예로, 종래 기술에서는, 파일시스템 버퍼 상에 복호화된 파일 데이터가 남아 있고, 보안 저장 영역에 관한 접근 제어가 종료된 이후 해당 파일데이터를 열람할 수 있는 프로그램을 구동하여 최근 열린 파일을 호출하는 경우, 운영체제의 파일시스템 버퍼 기능에 따라서 최근 열린 파일이 암호화되어 놓여있는 파일시스템을 접근하지 않고, 파일시스템이 제공하는 파일시스템 버퍼를 이용하여 복호화된 데이터를 해당 프로그램에서 열람 할 수 있다. 다른 예로, 파일시스템 이외에도 클립보드와 같이 메모리 상에서 보안 저장 영역에 보관된 파일의 본문 문자열을 로드하고 있을 경우, 보안 저장 영역에 관한 접근 제어가 종료된 이후 동일 프로그램을 재구동하여 해당 클립보드의 데이터의 유출을 시도할 수 있다. 또 다른 예로, 프로그램이 특정 데이터값(예; 최근 사용한 파일이름)을 레지스트리에 저장하는 경우, 클립보드처럼 보안 저장 영역내에 있던 보안에 해당하는 문자열 유출을 시도할 수 있다.
위와 같은 문제를 방지하기 위하여, 본 발명의 실시에에서 시스템 캐쉬 초기화부(2DD)는 보안 저장 영역 제어부(200)가 사용자의 요청에 의해서 정지할 때, 운영체제의 종류에 따라서 파일시스템 캐쉬, 클립보드, 감시프로세스가 사용한 레지스트리 값 등을 초기화할 수 있다. 경우에 따라서, 운영체제가 파일시스템이나 클리보드 캐쉬 초기화를 지원하지 않는 경우, 시스템 캐쉬 초기화부(2DD)는 사용자 세션을 강제로 로그아웃시키거나 컴퓨터를 강제로 리부팅 시킬 수 도 있다.
프로그램 구동 학습부(2EE)는 사용자 PC에 설치되어 있는 프로그램과 프로그램의 버전을 확인할 수 없어 보안 저장 영역 제어부(200)가 보안 정책을 적용할 수 없을 경우, 보안 저장 영역에 접근이 허락될 잠재된 보안 프로그램이 해당 PC에서 구동될 때 그 프로그램이 어떤 버전의 프로그램인지를 학습한다. 프로그램 구동 학습부(2EE)는 프로그램의 속성정보 또는 등록된 레지스트리 값 또는 프로그램의 구동파일의 바이너리 파일의 해쉬값 등을 도출하고, 이를 서버로 전송하거나 서버로부터 수신된 데이터 파일을 통해서 해당 프로그램의 버전 정보를 확인할 수 있다. 이때 프로그램 구동 학습부(2EE)는 그 확인된 프로그램의 버전 정보를 보안정책 기억부(220)에 등록해 주거나 네트워크를 통해서 서버에 전송할 수 있다.
또한 프로그램 구동 학습부(2EE)는 프로그램의 버전 정보 이외에도 프로그램이 구동시 발생시키는 파일시스템 이벤트를 참조하여, 해당 프로그램이 구동되기 위해서 필요한 폴더 및 파일들에 대해서 파악할 수 있다. 이를 통해서, 프로그램 구동 학습부(2EE)는 해당 프로그램 구동시 보안 저장 영역에 사전에 복사되어 있어야 하는 파일 또는 폴더 경로 값, 보안 저장 영역 제어부(200)가 종료될 때 복원해주어야 하는 파일 또는 폴더경로 값 등을 도출할 수 있으며, 필요시 보안정책 기억부(220)에 해당 정보를 보내주거나 네트워크를 통해서 서버에 전송할 수 있다.
특히 프로그램 구동 학습부(2EE)는 사용자 PC에 특정 업무 프로그램이 최초 설치될 때, 기본 설치 경로 이외에 임의의 다른 경로에 프로그램이 설치되었다거나, 프로그램의 구동환경을 사용자가 임의로 변경한 경우, 프로그램의 구동경로를 재확인 할 수도 있다.
이상에서 설명한 보안 저장영역에 접근하는 프로그램을 제어하는 본 발명은, 보안 저장 영역 제어부(200) 이외에도 PC 구동 제어부(300)를 추가로 구성하여 보안 저장 영역에 관한 프로그램의 접근 제어를 강화할 수 있다.
PC 구동 제어부(300)은 PC 구동 정책 제어부(310), 구동 정책 기억부(320), 프로그램 구동 제어부(330), 네트워크 구동 제어부(340), USB 구동 제어부(350)를 포함할 수 있다.
PC 구동 정책 제어부(310)는 구동 정책 기억부(320)에 저장된 PC 구동 정책을 참조하여 PC에서 구동되는 프로그램 구동 제어부(330), 네트워크 구동 제어부(340), USB 구동 제어부(350)를 제어하는 기능을 수행한다. 구동 정책 기억부(320)는 사용자 별 PC에서 구동할 수 있는 프로그램 목록과 PC에서 접속하거나 차단되어야 하는 네트워크 도메인, IP, 포트 목록, PC에서 사용되는 USB의 읽기/쓰기 불가, 읽기전용, 읽기/쓰기가능 값 등의 PC 구동 정책에 관한 정보가 저장될 수 있다. PC 구동 정책은 암호화된 파일 형태로 보관될 수 도 있고, 지정된 특정 서버로부터 사용자 인증 이후에 수신될 수도 있다.
프로그램 구동 제어부(330)는 PC에서 구동되는 프로그램이 구동 정책 기억부(320)에서 사용자 별로 설정한 프로그램 범위 내에서 구동될 수 있도록 제어하는 구성부이다. 이에 따라 프로그램 구동 제어부(330)는 구동 정책 기억부(320)에 기록되어 있지 않은 프로그램의 구동을 차단한다. 또한, 프로그램 구동 제어부(330)는 악성 사용자가 보안 저장 영역 제어부(200)를 공격하거나 무력화시키려는 프로그램을 해당 PC에서 구동할 수 없도록 예방하는 기능도 수행할 수 있다.
네트워크 구동 제어부(340)는 접속 가능한 네트워크 서버 및 서비스를 제한하여 구동 정책 기억부(320)에서 사용자 별로 설정한 범위 내에서만 네트워크 접속이 허용되도록 하는 구성부이다. 이에 따라 네트워크 구동 제어부(340)는 구동 정책 기억부(320)에 기록되어 있지 않은 네트워크에 대해서는 네트워크의 접근을 차단한다. 이를 통해서 외부 해커에 의해 보안 저장 영역을 침입하려는 접속을 원천 차단할 수 있으며, 내부 사용자라 하더라도 보안 저장 영역 내 파일을 인가된 네트워크 서버와 서비스로만 전송할 수 있다.
USB 구동 제어부(340)는 USB 드라이브에 관한 읽기/쓰기 동작을 제한하여 구동 정책 기억부(320)에서 사용자 별로 설정한 범위 내에서만 USB 읽기/쓰기 동작이 가능하도록 하는 구성부이다. 이에 따라 USB 구동 제어부(340)는 구동 정책 기억부(320)에 기록된 정책에 기초하여 USB의 읽기/쓰기 동작을 선택적으로 차단할 수 있다. 이를 통해서 내부 사용자가 보안 저장 영역에 있는 파일을 파일 반출 제어부(2AA)를 이용하여 외부 USB로 복사하려고 할 경우, 사용자 별로 설정된 범위에 따라서 해당 파일의 USB로의 복사가 허용되거나 이와 반대로 허용되지 않도록 제어할 수 있다.
이상에서는 본 발명의 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 쉽게 이해할 수 있을 것이다.