본문 바로가기

디바이스 드라이버

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. 문서.. 더보기
SDT 수정을 이용한 Native API Hooking OS : Windows XP SP3 Tool : Microsoft Visual Studio 2008 SP1 / Windows Driver Kit (WDK) Version 7.1.0 Native API Hooking은 SDT를 수정하는 방법을 통해서 이루어 집니다. SDT에 대하여 이야기 하기 전에 User Application Programming을 할때 우리는 WinXX API를 많은 DLL들, 예를들면 KERNEL32,GDI32,USER32같은 것들이 Export해주는 API들을 호출하여 씁니다. 이런 DLL들이 Export해주는 API들을 Disassemble하여 보면, 예를들어서 KERNEL32가 Export해주는 API인 WriteFile()를 Disassemble하여 보면, 내부적으로는 NTD.. 더보기
5월 22일 SOURCES 파일 출처 : 루트킷 - 에이콘 50page  SOURCES파일은 파일 이름이 항상 대문자로 SOURCES이어야 하고, 파일 확장자가 없다. 다음은 SOURCES파일이 포함해야 하는 내용을 보여주고 있다. TARGETNAME=MYDRIVER TARGETPATH=OBJ TARGETTYPE=DRIVER SOURCES=mydriver.c TARGETNAME 변수에는 드라이버의 이름을 할당한다. TARGETNAME에 설정된 이름은 드라이버 바이너리에 포함되기 때문에 TARGETNAME에 MY_EVIL_ROOTKET_IS_GONNA_GET_YOU와 같은 이름을 할당하는 것은 좋은 생각이 아니다. 드라이버 파일의 이름을 변경하더라도 바이너리 안에 포함된 이름은 변경되지 않는다. TARGETPATH 변수는 일반적으로 O.. 더보기
[TDI_FW] 예제 분석 5월 19일 int main (void) { SC_HANDLE schSCManager; SC_HANDLE schService; SERVICE_STATUS serviceStatus; char Path[256]; HANDLE hDevice; schSCManager = OpenSCManager (NULL, NULL, SC_MANAGER_ALL_ACCESS); if (!schSCManager) { return 0; } GetCurrentDirectory (255, Path); strcat (Path, "\\FILTER.SYS"); schService = OpenService (schSCManager, "FILTER", SERVICE_ALL_ACCESS); if (schService == NULL) { schService =.. 더보기
[TDI_FW] 예제 분석 5월 18일 참고 자료 : 윈도우 디바이스 드라이버 - 이봉석(한빛미디어) 604쪽 - 서비스를 생성하는 목적으로 사용되는 Win32 API 함수 정리 OpenSCManager() : 서비스를 생성하거나 제거, 중지 등의 일을 하기 위해서 사전에 사용하는 서비스 컨트롤 관리자(Service Control Manager) 핸들을 얻는 함수다. OpenService() : 기존에 생성한 서비스 핸들을 얻는 함수다. 디바이스 드라이버 서비스를 생성하기 전에 이 함수를 먼저 사용하여 드라이버를 위한 서비스가 이미 생성되어 있느닞를 알아보는 용도로 사용한다. CreateService() : 서비스를 생성하는 목적으로 사용하는 함수다. StartService() : 서비스를 실행하는 목적으로 사용하는 함수다. NT 구형(Leg.. 더보기