본문 바로가기

Project/Document Protector

Document Protector 완료 명세서

과 제 명

Document Protector

과제분야

System S/W

   

문서보안, 정보유출, DRM, DeviceDriver, WDM

과제기간

2010.05 ~ 2010.08 (4개월)

   

대구

참여인원

3


1. 과제 요약
 1.1 과제 개요
 기업의 기밀 문서 유출 사례에 대한 통계를 보면, 현 또는 전 직원의 매수에 의한 유출 사례가 가장 많은 분포를
차지하고 있다
.
따라서 본 프로젝트에서는 관리자의 모니터링을 통해서 내부 문서의 유통을 감시하여 문서의
유출 사례를 감소시키는 것이
목적이다
.

 1.2 과제 기능(시나리오)
  i. 사용자는 Document Protector Client를 통해 Server에 접속.
  ii. Client를 통해서만 접근 가능한 숨겨진 임시 폴더가 생성.
  iii. 문서 작성에 필요한 Process를 제외하고 모두 차단.
  iv Server와의 통신에 필요한 Port를 제외하고 모두 차단
  v. USB, CD-ROM과 같은 외부 기억장치 Driver를 모두 차단
  vi. 열람할 문서를 서버에서 다운받을 때 그 경로가 처음에 생성된 숨겨진 임시 폴더이기 때문에
      Document Protector Client를 통해서가 아니라면 접근이 불가능.
  vii. 문서는 암호화 되어서 Server에서 Client로 전송.
  viii. 새로운 문서를 작성하여 저장하면, 사용자가 지정한 저장 경로에 관계 없이 숨겨진 임시 폴더로 강제로
      변경되어서
저장.
  ix. Print screen Key를 누르면 이상행동으로 간주하고, 키보드와 마우스 입력이 모두 차단되고 즉시
      관리자에게 통보.

  x. 관리자는 차단된 사용자를 실시간으로 확인하고, 사용자의 요청에 의해 키보드와 마우스 입력 차단 수행.

 1.3 System Architecture


2. 과제 내용
 2.1 업무 분담
  ● 이희준 (PL)
      - Project Management
      - Document Access Restriction
      - Device Connection Sensing & Control
      - I/O Device Control

  ● 배태도
      - Port Control
      - Process Block

  ● 백종승
      - UI Design & Implement
      - Network Module
      - Network 암호화 구현

 2.2 사용 기술
  1) Document Access Restriction

 문서의 무단 유출을 막기 위해서 사용자가 문서에 접근을 하지 못하게 한다.
 그래서 프로그램 실행 시 사용자가 인지 못하게 임의의 폴더가 생성되고, 동시에 숨김 처리가 된다.
 그리고 문서를 서버로부터 다운받거나, 새로운 문서를 작성 후 저장할 때 숨김 처리 되어 있는 폴더로
강제로 경로를 바꾸어서 문서를 저장하게 끔 한다.
 따라서 외부 탐색기를 통해서는 사용자가 폴더 및 문서에 접근을 하지 못하도록 한다.
 단지 Document Protector 프로그램 내의 탐색기를 통해서만 숨김 처리된 폴더에 접근 가능할 수 있는
Minfilter Driver를 구현하였다.

 2) Device Connection Sensing & Control


 프로그램 실행 시 현재 컴퓨터에 연결되어 있는 장치를 감지하여, 키보드와 마우스를 제외한 USB, 외장HDD
등의 장치 연결을
제거한다. 그리고 프로그램 종료 전까지 USB, 외장HDD 등의 장치 연결을 제한 함으로서,
외부 장치를 통한 문서의 유출 시도를
막는 Minifilter Driver를 구현하였다.

 3) I/O Device Control
 키보드에서 기본적으로 Print Screen 키를 막으며, 사용자가 Print Screen 키를 누르게 되면 이상행동이라
간주하고 관리자에게
통보한다. 그리고 이를 통보 받은 관리자에 의해서 사용자는 키보드와 마우스의 사용을
제한 받을 수 있는
Keyboard/Mouse Filter Driver를 구현하였다.

 4) Driver & Application 비동기 이벤트 통신
 사용자가 이상행동을 하였을 때 이를 드라이버 단에서 감지하여 관리자에게 통보를 해주어야 한다.
 따라서 이를 구현하기 위해서는 "Driver → Application" 으로의 통신이 필요하다.
 이는 이벤트 객체를 공유하여서 비동기 통신을 하는 방법으로 가능하도록 하였다.

5) Port control

 Packet Hooking Driver에서 Callback함수로 TCP Packet을 받아 Filter 함수로 전달한다.
 TCP Packet이 가지고 있는 Destination Port가 차단할 Port와 일치하면 차단한다.

6) Process block


 Minifilter driver를 사용하여 Callback함수를 통해 Process의 생성과 종료를 감지한다.
 하지만 Process 파일명 만으로는 신뢰할 수 없다. 그래서 서로 다른 Process 실행 파일은
다른 Link 시간을 가질 것이므로, 이와 실행 파일의 크기를 XOR 한 값을 Process를
판별하는 기준으로 사용하면, 보다 정확한 판별이 가능하다.

7) Crypto Module

 Network를 통해 전송 중인 문서의 보안을 위하여 GPL 라이센스를 따르는 Polar SSL Library를 사용하였다.
 Open Source로 되어 있는 Library로 다양한 암호화 모듈을 제공하고, 암호화 과정에 대해서 자세히
알 수 있어서 유용하다.
 제공 되는 암호화 모듈 중에 AES / RSA / BigNum / SHA2 모듈을 사용하여
암호화를 진행 하였다.


3. 개발환경
[OS] Windows XP SP3
[Tool] Microsoft Visual Studio 2008 SP1, WinDBG, VMWare 7.0
[SDK] WDK & Windows XP DDK
[DB] MY-SQL
[Language] C(WDK), C++(MFC)

4. 참고문헌 및 자료
윈도우 디바이스 드라이버, 이봉석 저, 한빛미디어
윈도우 파일 시스템, 이병오 저
루트킷, 그렉 호글런드 저
WinDbg로 쉽게 배우는 Windows Debugging

http://www.hajesoft.com/ - 하제 소프트 홈페이지
http://www.kosr.org/ - 한국 시스템 프로그래밍 사이트
http://www.osronline.com/ OSR Online 사이트
http://www.devpia.com/ - 데브피아 개발자 포털 사이트
http://www.DriverOnline.com - 드라이버 온라인

5. 향후 발전 방향
 현재는 외부로 문서가 빠져나갈 수 없게 구현되어 있다. 그러나, 경우에 따라서 문서가 외부에서 필요한
경우가 생길 수도 있다.
 따라서 필요에 의해 외부로 반출되었을 경우에도 보안이 유지가 될 수 있게
파일 암호화를 사용하여 추가 기능 구현을 한다면
보다 완성도 높은 프로젝트가 될 수 있을 것이다.

'Project > Document Protector' 카테고리의 다른 글

개발 환경  (0) 2010.05.15