1 / 53

4 장 관리 메커니즘

4 장 관리 메커니즘. 발표자 : 정희종 발표일 : 2006 년 7 월 3 일. 기본 메커니즘. 레지스트리 서비스 WMI (Windows Management Instrumentation). 레지스트리. 시스템 전반의 설정 및 각 사용자의 설정에 대한 저장소. 도구. Windows 2000 - Regedit.exe, Regedt32.exe WindowsXP 및 Windows 2003 - Regedit.exe. 레지스트리 사용하는 3 가지 중요한 시기. 부트 프로세트 - 장치 드라이버 로드 등

lise
Download Presentation

4 장 관리 메커니즘

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 4장 관리 메커니즘 발표자: 정희종 발표일: 2006년 7월 3일

  2. 기본 메커니즘 • 레지스트리 • 서비스 • WMI (Windows Management Instrumentation)

  3. 레지스트리 • 시스템 전반의 설정 및 각 사용자의 설정에 대한 저장소

  4. 도구 • Windows 2000- Regedit.exe, Regedt32.exe • WindowsXP 및 Windows 2003- Regedit.exe

  5. 레지스트리 사용하는 3가지 중요한 시기 • 부트 프로세트- 장치 드라이버 로드 등 • 로그인- 바탕화면 등 사용자 설정 • 시동 (During their startup)- 각 app 별 설정

  6. 레지스트리 수정되는 시점 • 윈도우 설치 • 응용프로그램 설치 • 장치 드라이버 설치 • 사용자의 설정 변경

  7. 레지스트리 데이터 형식 • 키(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 – 링크

  8. 레지스트리 루트키 • p270 표4-2, 표4-3 • HKEY_CURRENT_USER • HKEY_USERS • HKEY_CLASSES_ROOT • HKEY_LOCAL_MACHINE • HKEY_PERFORMANCE_DATA • HKEY_CURRENT_CONFIG • 이중 3개의 키는 Link (부팅시 동적 생성)

  9. HKEY_CURRENT_USER • 현재 로그온 한 사용자의 설정 • HKEY_USERS 의 링크 • \Documents and Settings\<username>\Ntuser.dat • P272 표4-4

  10. HKEY_USERS • 사용자 설정 • HKU\.DEFAULT – 기본 사용자 프로필 링크

  11. HKEY_CLASSES_ROOT • 파일 확장자 • COM 클래스 등록 • LINK- HKCU\SOFTWARE\Classes - HKLM\SOFTWARE\Classes

  12. HKEY_LOCAL_MACHINE • HARDWARE – 하드웨어 정보 • SAM – 사용자 암호, 그룹 정의 등 • SECURITY – 보안 정책 등 • SOFTWARE – 시스템 구성, 응용프로그램 정보 • SYSTEM – 시스템 부팅에 필요한 전반적인 구성 정보 (마지막으로 성공한 컨트롤 세트 포함)

  13. HKEY_CURRENT_CONFIG • 현재 하드웨어 프로필에 대한 링크 • 링크- HKLM\SYSTEM\CurrentControlSet\Hardware Profiles\Current

  14. HKEY_PERFORMANCE_DATA • 성능 카운터 값들에 액세스 하기 위한 메커니즘 • 레지스트리 형태의 서비스의 장점- 원격 성능 모니터링이 자유롭다 • 실제 값을 찾을 수는 없다, 저장되지 않는다 • RegQueryValueEx 같은 함수 사용

  15. Regmon 유틸리티 • 레지스트리 모니터링 • 액세스, 시간, 형식, 프로세스 등을 보여줌 • 레지스트리 관련 트러블 슈팅에 유용하다.

  16. 실습 • 281p (실습) • 메모장의 폰트를 바꾼다 • Regmon 에서 모니터링 한것을 살펴본다

  17. Regmon 트리블 슈팅 기술 • 응용 프로그램이 실패하기 전에 수행했던 마지막 작업을 찾아본다 • “내 컴퓨터에서는 잘 되는데?”- 작동하는 시스템과 안하는 시스템 비교 • NOTFOUND or ACCESS DENIED 값을 주의한다 • BUFROVERFLOW 의심 (에러는 아님) • 트러블 슈팅 성공 예- 인터넷 익스플로러 시작이 멈춤- HKCU\Software\Microsoft\RAS- 언인스톨할 때 레지스트리를 지우지 않았음 • 권한이 필요한 경우 psexec 사용

  18. 하이브 Hives • 디스크 상에서 레지스트리는 하이브라고 불리는 분리된 파일들의 집합이다. • 285p 표4-5 (레지스트리의 디스크 파일 경로) • 휘발성 – 파일이 아닌 메모리 상에서만 저장- 하드웨어 정보

  19. 하이브 구조 • 블록 – 파일 크기 증가분 • 셀 – 데이터 컨테이너 • 빈 – 셀을 포함하는 할당 단위

  20. 셀 데이터 형식들 • 290p 표4-6 • 키, 값, 서브키 리스트, 값 리스트, 보안 설명자

  21. 셀 맵 • 메모리에서 하이브 데이터가 참조하는 비연속적인 메모리 주소를 다루기 위해 사용 • 셀 맵 디렉터리 – 1024개의 항목 • 셀 맵 테이블 – 512개의 항목 • 셀 맵 테이블 – 빈과 셀의 블록 메모리 주소 위치

  22. 셀 맵

  23. 레지스트리 이름 공간 • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet • \Registry\Machine\System\CurrentControlSet • 키 제어 블락의 사용- 레지스트리 키를 열때, 키 제어 블락 할당- 최적화 : 가장 가까운 조상으로 부터 시작- 참조 카운트 사용하여 삭제 결정

  24. 견고한 저장소 (Stable Storage) • 각 하이브들은 log have 를 가진다 • 메모리에 로딩한 레지스트리 변경이 즉시 하이브에 반영되지 않음 • 변경된 더티 섹터들을 로그 파일로 덤프한다.

  25. 레지스트리 최적화 • 모든 레지스트리 키는 보안 서술자를 가진다- 복사하지 않고 참조한다 • ASCII 형식으로 이름 저장 • 전체 경로 저장하지 않고 키의 이름만 참조 • 자주 액세스 되는 키 제어 블록을 캐시

  26. 요약 정리 • 271p 표4-3 레지스트리 6가지 주요 키 • Regmon 유틸리티 • 하이브

  27. WMI (Windows Management Instrumentation) • 시스템 이벤트 모니터링 도구 • WinNT 서비스팩4 에 추가 • 산업협회(DMTF) 표준에 따른 WBEM 구현 • WBEM – Web Based Enterprise Management

  28. WMI 아키텍쳐

  29. 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 공급자 개발

  30. 공급자 • 정보제공 – 클래스, 이벤트 등 • 339p 표4-10

  31. CIM 및 MOF 언어 • CIM 구현을 위해 MOF (Managed Object Format) 언어 사용 • 클래스 (class) 로 설계 표현 (객체지향 언어와 유사) • 추상화, 다형성, 재사용 가능 • CIM_DataFile -> CIM_LogicalFile -> CIM_LogicalElement • 341p 아래쪽 MOF 문법class Win32_NTEventlogFile : CIM_DataFile{…}

  32. 도구 • WMI CIM Studio – MS 다운로드 센터342p 그림4-20 • WbemTest – 윈도우 기본 제공 • 실습 : 343p • 개발자들이 정의한 클래스를 WMI 에 제공 가능

  33. WMI 이름 공간 • 루트 디렉터리 – root • Root 아래 있는것이 WMI 이름공간 • WMI 이름공간은 하나의 깊이만 가진다 • \\DARYL\root\CIMV2:Win32_NTLogEvent.Logfile="Application", RecordNumber="1"

  34. WMI 스크립트를 사용하여 시스템 관리하기 • WMI 는 스크립팅 언어를 지원한다 • cscript script.vbs • 347p 실습 • ExecNotificationQuery – WQL 실행

  35. WMI 보안 • WMI 보안 속성 관리 • 351p 그림 4-22 WMI 보안 속성들

  36. WMI 요약 정리 • WMI 스크립트 언어 지원 • WMI CIM Studio, WbemTest

  37. 서비스 • 시스템 시작시 필요한 프로세스들을 독립적으로 시작하기 위한 메커니즘 • 구성요소 3가지- 서비스 응용 프로그램- 서비스 제어 프로그램 SCP- 서비스 제어 관리자 SCM

  38. 서비스 생성 • CreateService 함수 • 파라미터들 306p 표4-7 • Type 파라미터 (장치 드라이버에 적용하는 값)- 장치 드라이버- 파일 시스템 드라이버- 파일 시스템 인식 장치

  39. 서비스 시작 • StartServiceCtrlDispatcher- 서비스 스레드 생성 서비스의 진입점 호출 • RegisterServiceCtrlHandler- 서비스 진입점의 첫번째 동작- “컨트롤 핸들러” 함수 포인터 저장- 서비스가 SCM 으로부터 받는 명령 처리 위해 • SetServiceStatus- SCM 에 주기적으로 상태 메시지 전송

  40. 서비스 프로세스 내부

  41. 로컬 시스템 계정 • 대부분의 서비스들은 로컬 시스템 계정의 보안 컨텍스트에서 실행한다 • 강력한 권한을 가지며 어떤 계정보다 강력하다 • 기타 계정- 로컬 서비스 계정- 네트워크 서비스 계정 • 312p 표4-9 서비스 계정 특권들

  42. 대체 계정으로 서비스 실행하기 • 특정 사용자 계정의 보안 자격으로 실행할 필요가 있을 때 서비스 계정을 설정 해 준다 • 315p 그림4-10 서비스 계정 설정

  43. 윈도우 스테이션 • 윈도우 스테이션은 데스크톱을 포함 • 데스크톱은 윈도우 포함 • 하나의 윈도우 스테이션만 볼 수 있다 • 하나의 윈도우 스테이션만 마우스, 키보드 입력받음 • 가상의 데스크톱 (?) • 눈에 보이는 것은 WinSta0

  44. 대화식 서비스 • 로컬 시스템 계정은 보이지 않는 윈도우 스테이션에서 시작된다 • 보이지도 않고, 키보드나 마우스 입력도 받을 수 없기 때문에 대화식 서비스는 불가능 • 예외- MB_SERVICE_NOTIFICATION or MB_DEFAULT_DESKTOP_ ONLY is set on the MessageBox call- SERVICE_ INTERACTIVE_PROCESS • 대화식 서비스는 WinSta0 에 연결된다

  45. 서비스 제어 관리자 • SvcCtrlMain – 부팅시 로그인 상자 나타나기 전 실행 • SvcCtrlEvent_ A3752DX 동기화 이벤트 생성 • ScCreateServiceDB – 레지스트리에서 정보를 읽어 서비스 데이터베이스에서 항목 생성 • LSA_RPC_SERVER_ACTIVE 동기화 이벤트 신호화- 사용자 계정으로 실행되는 서비스 때문에 LSASS 호출이 필요하므로 • ScGetBootAndSystemDriverState – 자동 시작 서비스 검색

  46. 서비스 시작 • 자동시작 서비스- SvcCtrlMain 함수에서 ScAutoStartServices 호출- 자동 시작 드라이버 들도 시작 • ScStartService – 서비스 시작- SERVICE_KERNEL_DRIVER or SERVICE_FILE_SYSTEM_ DRIVER 파라미터가 있으면 드라이버 이므로 ScLoadDeviceDriver 호출

  47. 시동 에러 • 서비스 시작에 실패했을때 ErrorControl 값에 따라 무시하고 진행하거나 이벤트 로그에 기록

  48. 마지막으로 성공한 구성으로 부팅하기 • ErrorControl 값이 SERVICE_ERROR_SEVERE or SERVICE_ERROR_CRITICAL 으로 설정된 경우에 서비스 시작이 실패하였다면 “마지막으로 성공한 구성”으로 전환

  49. 서비스 실패 • 서비스 실패시 복구 동작 설정

  50. 서비스 종료 • Winlogon 이 ExitWindowsEx 호출 • Csrss (서브시스템 프로세스)가 각 프로세스에 종료 메시지 전달 • ScShutdownAllServices – SCM 서비스 데이터베이스 검색을 반복하여 각각의 서비스에 종료 명령 전송

More Related