Upload
lise
View
92
Download
3
Embed Size (px)
DESCRIPTION
4 장 관리 메커니즘. 발표자 : 정희종 발표일 : 2006 년 7 월 3 일. 기본 메커니즘. 레지스트리 서비스 WMI (Windows Management Instrumentation). 레지스트리. 시스템 전반의 설정 및 각 사용자의 설정에 대한 저장소. 도구. Windows 2000 - Regedit.exe, Regedt32.exe WindowsXP 및 Windows 2003 - Regedit.exe. 레지스트리 사용하는 3 가지 중요한 시기. 부트 프로세트 - 장치 드라이버 로드 등 - PowerPoint PPT Presentation
Citation preview
4 장 관리 메커니즘4 장 관리 메커니즘
발표자 : 정희종발표일 : 2006 년 7 월 3 일
기본 메커니즘기본 메커니즘
레지스트리서비스WMI (Windows Management Instrumentation)
레지스트리레지스트리
시스템 전반의 설정 및 각 사용자의 설정에 대한 저장소
도구도구
Windows 2000- Regedit.exe, Regedt32.exeWindowsXP 및 Windows 2003- Regedit.exe
레지스트리 사용하는 3 가지 중요한 시기레지스트리 사용하는 3 가지 중요한 시기
부트 프로세트- 장치 드라이버 로드 등로그인- 바탕화면 등 사용자 설정시동 (During their startup)- 각 app 별 설정
레지스트리 수정되는 시점레지스트리 수정되는 시점
윈도우 설치응용프로그램 설치장치 드라이버 설치사용자의 설정 변경
레지스트리 데이터 형식레지스트리 데이터 형식
키 (key) 와 값 (value)
(p269 표 4-1)REG_NONE - No value type.REG_SZ - Fixed-length Unicode string.REG_EXPAND_SZ - Variable-length Unicode string that can have embedded environment variables.REG_BINARY - Arbitrary-length binary data
REG_LINK – 링크
레지스트리 루트키레지스트리 루트키
p270 표 4-2, 표 4-3
HKEY_CURRENT_USERHKEY_USERSHKEY_CLASSES_ROOTHKEY_LOCAL_MACHINEHKEY_PERFORMANCE_DATAHKEY_CURRENT_CONFIG
이중 3 개의 키는 Link ( 부팅시 동적 생성 )
HKEY_CURRENT_USERHKEY_CURRENT_USER
현재 로그온 한 사용자의 설정HKEY_USERS 의 링크\Documents and Settings\<username>\Ntuser.datP272 표 4-4
HKEY_USERSHKEY_USERS
사용자 설정HKU\.DEFAULT – 기본 사용자 프로필 링크
HKEY_CLASSES_ROOT HKEY_CLASSES_ROOT
파일 확장자COM 클래스 등록
LINK- HKCU\SOFTWARE\Classes - HKLM\SOFTWARE\Classes
HKEY_LOCAL_MACHINEHKEY_LOCAL_MACHINE
HARDWARE – 하드웨어 정보SAM – 사용자 암호 , 그룹 정의 등SECURITY – 보안 정책 등SOFTWARE – 시스템 구성 , 응용프로그램 정보SYSTEM – 시스템 부팅에 필요한 전반적인 구성 정보 ( 마지막으로 성공한 컨트롤 세트 포함 )
HKEY_CURRENT_CONFIG HKEY_CURRENT_CONFIG
현재 하드웨어 프로필에 대한 링크링크- HKLM\SYSTEM\CurrentControlSet\Hardware Profiles\Current
HKEY_PERFORMANCE_DATAHKEY_PERFORMANCE_DATA
성능 카운터 값들에 액세스 하기 위한 메커니즘레지스트리 형태의 서비스의 장점- 원격 성능 모니터링이 자유롭다실제 값을 찾을 수는 없다 , 저장되지 않는다RegQueryValueEx 같은 함수 사용
Regmon 유틸리티Regmon 유틸리티
레지스트리 모니터링액세스 , 시간 , 형식 , 프로세스 등을 보여줌레지스트리 관련 트러블 슈팅에 유용하다 .
실습실습
281p ( 실습 )메모장의 폰트를 바꾼다Regmon 에서 모니터링 한것을 살펴본다
Regmon 트리블 슈팅 기술Regmon 트리블 슈팅 기술
응용 프로그램이 실패하기 전에 수행했던 마지막 작업을 찾아본다“ 내 컴퓨터에서는 잘 되는데 ?”- 작동하는 시스템과 안하는 시스템 비교NOTFOUND or ACCESS DENIED 값을 주의한다BUFROVERFLOW 의심 ( 에러는 아님 )트러블 슈팅 성공 예- 인터넷 익스플로러 시작이 멈춤- HKCU\Software\Microsoft\RAS- 언인스톨할 때 레지스트리를 지우지 않았음권한이 필요한 경우 psexec 사용
하이브 Hives하이브 Hives
디스크 상에서 레지스트리는 하이브라고 불리는 분리된 파일들의 집합이다 .285p 표 4-5 ( 레지스트리의 디스크 파일 경로 )휘발성 – 파일이 아닌 메모리 상에서만 저장- 하드웨어 정보
하이브 구조하이브 구조
블록 – 파일 크기 증가분셀 – 데이터 컨테이너빈 – 셀을 포함하는 할당 단위
셀 데이터 형식들셀 데이터 형식들
290p 표 4-6키 , 값 , 서브키 리스트 , 값 리스트 , 보안 설명자
셀 맵셀 맵
메모리에서 하이브 데이터가 참조하는 비연속적인 메모리 주소를 다루기 위해 사용셀 맵 디렉터리 – 1024 개의 항목셀 맵 테이블 – 512 개의 항목셀 맵 테이블 – 빈과 셀의 블록 메모리 주소 위치
셀 맵셀 맵
레지스트리 이름 공간레지스트리 이름 공간
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet \Registry\Machine\System\CurrentControlSet
키 제어 블락의 사용- 레지스트리 키를 열때 , 키 제어 블락 할당- 최적화 : 가장 가까운 조상으로 부터 시작- 참조 카운트 사용하여 삭제 결정
견고한 저장소 (Stable Storage)견고한 저장소 (Stable Storage)
각 하이브들은 log have 를 가진다메모리에 로딩한 레지스트리 변경이 즉시 하이브에 반영되지 않음변경된 더티 섹터들을 로그 파일로 덤프한다 .
레지스트리 최적화레지스트리 최적화
모든 레지스트리 키는 보안 서술자를 가진다- 복사하지 않고 참조한다ASCII 형식으로 이름 저장전체 경로 저장하지 않고 키의 이름만 참조자주 액세스 되는 키 제어 블록을 캐시
요약 정리요약 정리
271p 표 4-3 레지스트리 6 가지 주요 키Regmon 유틸리티하이브
WMI (Windows Management Instrumentation)WMI (Windows Management Instrumentation)
시스템 이벤트 모니터링 도구WinNT 서비스팩 4 에 추가산업협회 (DMTF) 표준에 따른 WBEM 구현WBEM – Web Based Enterprise Management
WMI 아키텍쳐WMI 아키텍쳐
WMI 아키텍쳐WMI 아키텍쳐
CIM (Common Information Model)common model
A set of classes in the Common Information Model (CIM) that represent objects that are specific to management areas of a system but independent of a particular implementation. These classes are considered an extension of the CIM core model. See also core model.
core model A set of classes in the Common Information Model (CIM) provided as part of the WBEM standard. These classes are CIM's basic language and represent objects that apply to all areas of management. See also common model.
WMI SDK 를 사용하여 서드파티 WMI 공급자 개발
공급자공급자
정보제공 – 클래스 , 이벤트 등339p 표 4-10
CIM 및 MOF 언어CIM 및 MOF 언어
CIM 구현을 위해 MOF (Managed Object Format) 언어 사용클래스 (class) 로 설계 표현 ( 객체지향 언어와 유사 )추상화 , 다형성 , 재사용 가능CIM_DataFile -> CIM_LogicalFile -> CIM_LogicalElement341p 아래쪽 MOF 문법class Win32_NTEventlogFile : CIM_DataFile{…}
도구도구
WMI CIM Studio – MS 다운로드 센터342p 그림 4-20WbemTest – 윈도우 기본 제공실습 : 343p개발자들이 정의한 클래스를 WMI 에 제공 가능
WMI 이름 공간WMI 이름 공간
루트 디렉터리 – rootRoot 아래 있는것이 WMI 이름공간WMI 이름공간은 하나의 깊이만 가진다\\DARYL\root\CIMV2:Win32_NTLogEvent.Logfile="Application", RecordNumber="1"
WMI 스크립트를 사용하여 시스템 관리하기WMI 스크립트를 사용하여 시스템 관리하기
WMI 는 스크립팅 언어를 지원한다cscript script.vbs347p 실습ExecNotificationQuery – WQL 실행
WMI 보안WMI 보안
WMI 보안 속성 관리351p 그림 4-22 WMI 보안 속성들
WMI 요약 정리WMI 요약 정리
WMI 스크립트 언어 지원WMI CIM Studio, WbemTest
서비스서비스
시스템 시작시 필요한 프로세스들을 독립적으로 시작하기 위한 메커니즘구성요소 3 가지- 서비스 응용 프로그램- 서비스 제어 프로그램 SCP- 서비스 제어 관리자 SCM
서비스 생성서비스 생성
CreateService 함수파라미터들 306p 표 4-7Type 파라미터 ( 장치 드라이버에 적용하는 값 )- 장치 드라이버- 파일 시스템 드라이버- 파일 시스템 인식 장치
서비스 시작서비스 시작
StartServiceCtrlDispatcher- 서비스 스레드 생성 서비스의 진입점 호출RegisterServiceCtrlHandler- 서비스 진입점의 첫번째 동작- “ 컨트롤 핸들러” 함수 포인터 저장- 서비스가 SCM 으로부터 받는 명령 처리 위해SetServiceStatus- SCM 에 주기적으로 상태 메시지 전송
서비스 프로세스 내부서비스 프로세스 내부
로컬 시스템 계정로컬 시스템 계정
대부분의 서비스들은 로컬 시스템 계정의 보안 컨텍스트에서 실행한다강력한 권한을 가지며 어떤 계정보다 강력하다
기타 계정- 로컬 서비스 계정- 네트워크 서비스 계정
312p 표 4-9 서비스 계정 특권들
대체 계정으로 서비스 실행하기대체 계정으로 서비스 실행하기
특정 사용자 계정의 보안 자격으로 실행할 필요가 있을 때 서비스 계정을 설정 해 준다315p 그림 4-10 서비스 계정 설정
윈도우 스테이션윈도우 스테이션
윈도우 스테이션은 데스크톱을 포함데스크톱은 윈도우 포함하나의 윈도우 스테이션만 볼 수 있다하나의 윈도우 스테이션만 마우스 , 키보드 입력받음가상의 데스크톱 (?)눈에 보이는 것은 WinSta0
대화식 서비스대화식 서비스
로컬 시스템 계정은 보이지 않는 윈도우 스테이션에서 시작된다보이지도 않고 , 키보드나 마우스 입력도 받을 수 없기 때문에 대화식 서비스는 불가능예외- MB_SERVICE_NOTIFICATION or MB_DEFAULT_DESKTOP_ ONLY is set on the MessageBox call- SERVICE_ INTERACTIVE_PROCESS대화식 서비스는 WinSta0 에 연결된다
서비스 제어 관리자서비스 제어 관리자
SvcCtrlMain – 부팅시 로그인 상자 나타나기 전 실행SvcCtrlEvent_ A3752DX 동기화 이벤트 생성ScCreateServiceDB – 레지스트리에서 정보를 읽어 서비스 데이터베이스에서 항목 생성LSA_RPC_SERVER_ACTIVE 동기화 이벤트 신호화- 사용자 계정으로 실행되는 서비스 때문에 LSASS 호출이 필요하므로ScGetBootAndSystemDriverState – 자동 시작 서비스 검색
서비스 시작서비스 시작
자동시작 서비스- SvcCtrlMain 함수에서 ScAutoStartServices 호출- 자동 시작 드라이버 들도 시작ScStartService – 서비스 시작- SERVICE_KERNEL_DRIVER or SERVICE_FILE_SYSTEM_ DRIVER 파라미터가 있으면 드라이버 이므로 ScLoadDeviceDriver 호출
시동 에러시동 에러
서비스 시작에 실패했을때 ErrorControl 값에 따라 무시하고 진행하거나 이벤트 로그에 기록
마지막으로 성공한 구성으로 부팅하기마지막으로 성공한 구성으로 부팅하기
ErrorControl 값이 SERVICE_ERROR_SEVERE or SERVICE_ERROR_CRITICAL 으로 설정된 경우에 서비스 시작이 실패하였다면 “ 마지막으로 성공한 구성”으로 전환
서비스 실패서비스 실패
서비스 실패시 복구 동작 설정
서비스 종료서비스 종료
Winlogon 이 ExitWindowsEx 호출Csrss ( 서브시스템 프로세스 ) 가 각 프로세스에 종료 메시지 전달ScShutdownAllServices – SCM 서비스 데이터베이스 검색을 반복하여 각각의 서비스에 종료 명령 전송
공유된 서비스 프로세스공유된 서비스 프로세스
하나의 프로세스에서 여러 서비스를 실행한다장점 – 자원 낭비 방지단점 – 프로세스 종료시 모든 서비스 종료- 같은 계정으로 실행 해야함
서비스 제어 프로그램서비스 제어 프로그램
OpenSCManager – SCM 통신 채널 열기함수 목록- CreateService, OpenService, StartService, ControlService, QueryServiceStatus, DeleteService친숙한 SCP 의 예 – MMC 스냅인
요약 정리요약 정리
271p 표 4-3 레지스트리 6 가지 주요 키Regmon 유틸리티하이브
WMI 아키텍쳐
서비스