히큐리티(Hecurity)
Ch2. 윈도우 기초 본문

윈 도 우 시 이 작 - !
윈도우 아키텍처 및 부팅과정
1. 윈도우 NT 아키텍처
- 두개의 메인 구성 요소로 설계(유저모드, 커널모드)
- 리소스 자원의 낭비를 줄여 여러 부분으로 쪼개어 설계된 구조
- 유저모드
- 사용자 어플리케이션 코드 실행
- 시스템 데이터에 제한된 접근만이 허용되며, 하드웨어에 직접 접근할 수 없음
- 커널모드
- 하드웨어의 접근과 보호된 메모리 내에 실행되고 있는 코드와 컴퓨터의 시스템 자원 모두 접근하는 영역
- 스케줄링, 메모리 관리, 하드웨어와의 상호작용 등의 역할 수행
2. 유저모드
- 환경 서브 시스템
- OS/2, WIN32, POSIX 드으이 환경에 맞는 어플리케이션을 운용할 수 있도록 지원
- 필수 서브 시스템
- 보안, 워크스테이션 서비스, 서버 서비스로 구성
- 보안 : 계정 권한 관리, 인증관리 등
- 워크스테이션 서비스 : 컴퓨터가 네트워크로 접근을 제공
- 서버 서비스 : 컴퓨터가 네트워크 서비스를 제공
3. 커널모드
- Executive
- 모든 사용자 모드 하위 시스템과 상호작용
- I/O Manager : 시스템 입출력 제어, 응용 프로그램이 하드웨어와 바로 통신할 수 있는 통로 제공
- Security Reference Monitor(SRM) : 보안 필수 서브시스템의 보안 규칙을 시행하기 위한 주요 권한을 모니터링
- IPC Manager : 서버와 클라이언트 사이의 상호작용 관리를 담당
- Virtual Memory Manager : 가상 메모리 관리
- Process Manager : 프로세스 생성 및 삭제
- PnP Manager : Plug&Play 기능 관리
- Power Manager : 전원과 관련된 이벤트 관리 수행
- Executive(디스플레이 시스템)
- Window Manager : 윈도우의 화면을 그리는 역할 수행
- GDI(Graphics Device Interface) : 폰트 랜더링과 팔레트, 곡선, 직선 등의 라인을 그리는 작업 수행
- 마이크로 커널
- 하드웨어와의 통신만을 제어하는 최소한의 커널
- HAL과 Executive 사이에서 멀티프로세서 동기화, 충돌관리, 예외관리 등의 역할 수행
- OS 부팅 시 필요한 장치 드라이버를 초기화 하는 등의 역할 수행
- 커널모드 드라이버
- 하드웨어 장치와의 상호 작용을 수행할 수 있도록 중간자 역할
- 최상위, 중간, 하위 레벨 드라이버로 구분되어 구성
- Hardware Abstraction Layer(HAL)
- 물리적 하드웨어와 운영체제의 나머지 부분 사이에 위치
- 하드웨어의 차이를 숨기고 커널이 실행되는 일관된 플랫폼 제공
4. 부팅과정
- Power ON
- 외부 전압을 시스템에서 사용가능한 전압으로 변환하여 CPU 로 전달
- CPU가 가지고 있는 이전의 값들을 지우고 CPU 레지스터인 Program Counter(PC)를 초기화
- 초기화된 Program Counter 값이 ROM BIOS의 주소가 됨
- ROM BIOS(Basic I/O System)
- CPU의 이상 유무를 확인하여 CPU 테스트 결과를 ROM BIOS에 저장된 값(정상 결과 값)과 비교
- 일치할 경우 POST 작업 수행
- POST(Power On Self Test)
- System Bus로 특정 시그널 전송
- RTC(Real-Time Clock) 테스트
- 비디오 구성요소(비디오 메모리) 테스트 : 이후 부팅과정에서 정의된 출력 확인 가능
- RAM, 키보드, 드라이브 테스트
- CMOS(RTC/NVRAM) 데이터와 비교
- POST 과정 완료시
- 부팅 매체(USB, 하드디스크, SSD) 탐색
- 인식한 드라이브 내에서 첫번째 섹터(MBR)을 읽음
- MBR 섹터의 마지막 2바이트 값이 0x55AA(sign)인 매체를 찾게 되면 코드 실행
- MBR
- 특징 : 부트 코드, 파티션 테이블 정보, 시그니처 존재
- 순서
- 코드를 실행하는 동안 오류가 발생하는지 확인
- 오류가 없는 경우 부팅 가능한 파티션을 탐색
- 탐색이 완료되면 해당 파티션의 특정섹터인 VBR(Volume Boot Record)로 이동
- VBR에서 bootmgr.exe 실행
- Bootmgr.exe(부트관리자)
- 하이버네이션(절전모드) 상태인 경우 winresume.exe 로드
- 하이버네이션 상태가 아닌 경우 BCD(Boot Configuration Data) 를 읽으며 부팅 정보를 획득
- 해당 부팅 정보를 참조 후 winload.exe 를 실행하며 제어권 넘김
- Winload.exe(부트로더)
- Bootmgr.exe에 의해 시작되는 시스템(OS)로더
- 하드웨어와 관련 구성 파일과 함께 커널을 읽음 + ntoskrnl.exe 실행
- ntoskrnl.exe(NT Operating system kernel)
- 하드웨어 가상화, 프로세스, 메모리, 시스템 서비스 관리 등의 역할을 수행
- 캐시 매니저, 익스큐티브, 커널, 보안 참조 모니터, 메모리 관리, 스케줄이 구성
- 순서
- 커널로드 : HKEY_LOCAL_MACHINE/System/CurrentControlSet/Service에 시스템 설정 로드
- 커널 초기화 : 드라이버에 대한 현재 제어 세트를 검사하고 작업 시작
- 서비스 로드 : Service Manager(smss.exe)와 Win32 서브시스템(csrss.exe) 로드
- 로그인 서비스 초기화
- winlogon.exe 시작을 통해 로그인 창 활성화
- 로컬 보안 인증 서버(lsass.exe)로 전송
- 보안 계정 관리자(SAM)에 정보비교
- userinit.exe 실행
- 쉘 실행
- 레지스트리에 구성된 쉘을 실행(기본값 : explorer.exe)
- userinit.exe 프로세스에서 레지스터 내용을 받아 실행
주요 프로세스&서비스
1. 프로세스의 이해
- 프로그램 : 하드 디스크 등에 저장되어 있는 실행코드
- 프로세스 : 연속적으로 실행되고 있는 컴퓨터 프로그램의 작은 단위(현재 실행중인 프로그램)
- 스레드 : 프로세스에서 작업의 최소단위
- 세션
- 윈도우 내에 어플리케이션이 동작하기 위해서는 실행하고 있는 세션이 필요
- 윈도우 세션은 일종의 사용자를 뜻함(Session 0부터 시작)
- 윈도우 Vista 이전 버전에서는 처음 로그인한 사용자를 Session 0 으로 정의
- Vista 이후부터 Session 0 은 단지 시스템 프로세스와 서비스 실행에서만 동작하는 공간으로 정의하고 이후 로그인 사용자에게 각 세션 번호 부여
2. 프로세스 종류(Windows 7)
- System
- 대부분의 커널 모드 스레드를 담당
- Smss.exe(Session Manager Process)
- 새로생성되는 세션 담당
- csrss.exe 프로세스 시작
- wininit.exe에서 생성되는 Session 0 을 초기화
- winlogon.exe에서 생성되는 Session 1 이상의 새 새션을 초기화
- wininit.exe
- Session 0 에서 백그라운드로 실행
- service.exe, lsass.exe, lsm.exe 실행
- taskhost.exe
- 윈도우 작업을 위한 프로세스
- 모든 DLL 기반 서비스나 그룹 서비스의 호스트를 제공
- lsass.exe
- 로컬 보안 인증 서브 시스템 서버 프로세스
- 유저의 인증을 위한 프로세스
- csrss.exe(Client/Server Run-Time Subsystem)
- 윈도우 서브 시스템을 위한 유저모드의 프로세스
- 프로세스와 스레드 등을 관리하는 역할
- services.exe
- 서비스와 작업 스케줄을 관리하는 프로세스
- svchost.exe
- 윈도우 서비스의 호스트 프로세스
- DLL을 이용한 서비스가 실행하도록 제공
- 여러개의 프로세스를 생성가능
- lsm.exe(Local Session Manager)
- 터미널 서비스, 원격 데스크 탑 등의 세션들이 효율적으로 스위칭 될 수 있는 역할 수행
- smss.exe와 같이 새로 세션이 이루어질 때 실행
- winlogon.exe
- 사용자 계정의 로그온과 로그 오프 상태를 관리하는 프로세스
- explorer.exe
- 사용자가 파일을 접근하도록 기능을 제공하는 프로세스
- iexplorer.exe
- explorer 프로세스로부터 실행된 프로세스
3. 프로세스 종류(Windows 10)
- 윈도우 7과 유사하나 추가적으로 주요한 프로세스가 존재
- RuntimeBroker.exe
- 제한된 UWP(Universal Windows Platform) 앱과 전체 Window API 간의 프록시 역할 수행
- UWP : Windows 10, Windows 10 모바일 등에서 실행할 유니버설 앱의 개발을 돕기 위한 것
- taskhostw.exe
- 윈도우7에서의 taskhost.exe와 역할이 동일하며 파일 이름만 다름
- lsaiso.exe
- lsass.exe가 기능을 대부분 수행하나 계정 자격 증명을 안전하게 저장하는 중요한 역할을 할 때 사용되는 프로세스
- 하드웨어 가상화 기술을 통해 다른 프로세스와 분리된 컨텍스트에서 실행하여 안정성 보장
- 원격 인증을 요구할 경우, RPC 채널을 사용하여 요청을 프록시 수행
4. 윈도우 서비스 개요
- 서비스란?
- 오랜 시간 실행되며 특정한 기능을 수행하는 실행파일
- 사용자의 간섭이 없음
- 보통의 경우 윈도우 운영체제가 시동될 때 실행
- 유닉스 또는 리눅스의 데몬과 개념이 유사
- 서비스 실행 계정
- Local System
- Local Service
- Network Service
5. 주요 서비스
- Windows Event Log
- 이벤트 뷰어에 있는 구성요소와 Windows 기반의 프로그램에서 만든 이벤트 메시지를 기록하도록 설정
- Network Connections
- 시스템에 관련된 모든 네트워크에 대한 서비스를 제공 + 표시 상태 표시
- 서비스 중지 시 네트워크에 대한 모든 접속이 불가능
- Shell Hardware Detection
- 쉘(윈도우 탐색기)이 드라이브나 메모리 카드, USB 등을 자동으로 인식하고 반응하는데 사용
- Plug and Play(PNP)
- 하드웨어에 대한 자동 인식과 설정을 도와주는 서비스
- 최근 윈도우 시스템에서는 PNP 서비스를 중지시킬경우 운영체제 자체가 불안정해짐
- Server
- RPC(Remote Procedure Call) 지원 및 파일, 인쇄 등을 위한 자원 공유를 제공
- Workstation
- 네트워크 연결 및 통신을 제공, 클라이언트 측의 네트워크 구성에 영향을 미치는 서비스
- DHCP Client
- IP 주소와 DNS 이름을 DHCP 서버에 등록하거나 DHCP 서버로부터 동적으로 IP주소를 가져옴
- Security Accounts Manager(SAM)
- 계정 인증에 관련된 서비스
- WMI(Windows Management Instrumentation)
- 시스템의 관리정보를 제공하는 서비스
- 응용프로그램과 서비스가 생성하는 관리 이벤트를 포함하여 응용 프로그램 서비스에 접근 정보 제공
- Windows Management Instrumemtation Driver Extensions
- WMI 정보를 등록한 모든 드라이버를 추적하여 알림
- 서비스 중지 시 클라이언트가 드라이버의 WMI 정보에 접근 못함
- Application Management
- 응용프로그램의 설치, 제거와 같은 서비스 제공
- 서비스를 중지 시 프로그램을 추가하거나 제거할 수 없음
- Remote Procedure Call(RPC)
- 원격 제어를 위한 프로세스 통신에 관련된 서비스를 제공
6. 주요서비스(선택)
- ClipBook
- 흔히 사용하는 편집 기술인 Copy&Paste를 지원하기 위한 서비스
- COM+ Event System
- Com(Component Object Model)은 프로그램의 컴포넌트 객체를 개발하고 지원하기 위한 하부기반구조로, 인터페이스 교섭과 언제쯤 객체가 시스템에서 제거 될 수 있는지 판단
- 라이센스, 이벤트 서비스 등을 제공
- Computer Browser
- 네트워크에 있는 컴퓨터의 최신 목록을 유지하고 요청하는 프로그램에게 목록을 제공
- Distributed Link Tracking(DLK) Client
- 네트워크 도메인의 여러 컴퓨터에 걸쳐 있거나 하나의 컴퓨터에 있는 NTFS 파일 시스템 사이의 링크를 유지 및 관리
- 대상 파일의 이름이 바뀌거나 이동된 후에도 바로가기와 OLE 링크가 계속 작동
- Distributed Link Tracking(DLK) Server
- 볼륨간에 이동한 파일을 추적할 수 있도록 도메인 내의 각 볼륨에 대한 정보를 저장
- 도메인 내의 각 도메인 컨트롤러에서 실행
- 서비스 중지 시 DLT 클라이언트 서비스가 유지 및 관리하는 링크의 안정성이 시간이 지날수록 낮아짐
- Distributed Transaction Coordinator
- 데이터베이스, 파일시스템 등 여러 리소스 관리자와 여러 컴퓨터 시스템 간의 분산된 트랜잭션을 조정
- File Replication
- 자동 파일 복제 서비스, 여러 서버에 존재하는 파일을 복사 및 관리하여 동기화
- Intersite Messaging(ISM)
- 윈도우 서버간에 메시지를 주고 받을 수 있음
레지스트리
1. 레지스트리 개요
- 정의
- 32bit/64bit 아키텍처에서 윈도우 운영체제의 설정과 선택 항목을 담고있는 데이터 베이스
- 하드웨어, 소프트웨어, 사용자 PC 선호도, 중요 시스템 정보 등에 대한 설정 포함
- 이전에는 윈도우 프로그램 내부에 ini파일이 사용(ini 등의 설정 파일이 포함되어 레지스트리에 영향이 되지 않고 설치되는 프로그램들을 포터블 형식의 설치파일 이라 함)
- 구성
- 키(하이브) : 윈도우 폴더와 유사한 형태, 레지스트리 안에 경로와 같은 개념으로 사용
- 값 : 키 안에 담겨 있는 이름 또는 자료, 여러 키로부터 참조될 수 있음
2. 윈도우 레지스트리의 이해
- 레지스트리 확인 : win + R → regedit
- 주요 키
- HKEY_CLASSES_ROOT : 등록된 응용 프로그램의 정보 보관
- HKEY_CURRENT_USER : 현재 로그인한 가용자의 설정값 보관
- HKEY_LOCAL_MACHINE : 컴퓨터의 모든 사용자의 설정값 보관
- HKEY_USERS : 컴퓨터에서 사용중인 각 사용자의 프로파일에 대한 설정값 보관
- HEKY_CURRENT_CONFIG : 실행시간에 수집한 자료 보관주요 값
1 REG_SZ 문자열 값 2 REG_EXPAND_SZ 확장할 수 있는 문자열 값, 환경 변수 포함 가능 3 REG_BINARY 이진값(임의의 데이터) 4 REG_DWORD/REG_DWORD_LITTLE_ENDIAN DWORD 값(32비트) 정수 - 리틀엔디안 5 REG_DWORD_BIG_ENDIAN DWORD 값(32비트) 정수 - 빅 엔디안 6 REG_LINK 심볼릭 링크(유니코드) 7 REG_MULTI_SZ 다중 문자열 값(고유한 문자열의 배열) 8 REG_RESOURCE_LIST 리소스 목록(플러그 앤 플레이 하드웨어 열거 및 구성) 9 REG_FULL_RESOURCE_DESCRIPTOR 리소스 서술자(플러그 앤 플레이 하드웨어 열거 및 구성) 10 REG_RESOURCE_REQUIREMENTS_LIST 리소스 요구 목록(플러그 앤 플레이 하드웨어 열거 및 구성) 11 REG_QWORD/REG_QWORD_LITTLE_ENDIAN QWORD 값(64비트) 정수
3. 윈도우 레지스터 명령어
- REG 명령어
- REG QUERY : 지정한 레지스트리 키나 그 하위 트리의 값을 표시
- REG ADD : 레지스트리에 키나 값 이름 또는 값을 추가하거나 기존의 값을 수정
- REG DELETE : 레지스트리에서 지정한 키나 값을 삭제
- REG COPY : 레지스트리의 트리를 복사
- REG SAVE : 레지스트리 트리의 저장, 지정한 하위 키 이하의 트리를 지정된 파일에 저장
- REG RESTORE : REG SAVE로 저장한 레지스트리를 로컬 컴퓨터의 지정한 트리에 복원
- REG LOAD : REG SAVE로 저장한 레지스트리를 원래와는 다른 장소에 로드 및 복원
- REG UNLOAD : REG LOAD로 읽어들인 레지스트리의 섹션을 제거
- REG COMPARE : 지정한 2곳의 레지스트리 트리를 비교해서 그 차이점 혹은 같은 부분을 표시
- REG EXPORT : 지정된 키나 항목(과 그 값)을 파일에 씀
- REG IMPORT : REG EXPORT로 쓴 레지스트리 값을 로컬 컴퓨터에 다시 불러옴
- REG FLAGS : 윈도우 비스타 이후 적용된 레지스트리 가상화 플래스를 설정
파일 시스템과 디스크의 이해
1. 파일 시스템
- 컴퓨팅에서 데이터 저장 및 검색 방법을 제어하는 체계
- NTFS, FAT(12,16,32,exFAT) 등
- 파티션과 볼륨
- 파티션<고정적, 물리적>
- 하나의 디스크를 여러 개의 파일 시스템으로 구성
- 여러 개의 디스크를 하나의 파티션으로도 통합 가능
- 운영체제의 경우 각 파티션을 별도의 디스크처럼 취급
- 볼륨<유동적, 논리적>
- 디스크 상의 논리적인 분할 단위
- 섹터 또는 클러스터들이 모여 이루어진 큰 덩어리
- 파티션<고정적, 물리적>
- MBR과 GPT
- 디스크나 이동식 드라이브와 같이 파티션된 컴퓨터 대용량 저장장치의 맨 처음 위치한 특수 유형의 부트섹터
- 유형에 따라 최대 지정할 수 있는 볼륨의 용량과 최대 분할할 수 있는 파티션수가 다름
- MBR은 최대 2TB 이상의 디스크 용량의 파티션을 생성할 수 없음
- GPT는 최대 8ZB 이하의 디스크를 사용할 수 있음
- MBR과 GPT 차이
- MBR
- 주파티션 4개 또는 주파티션 3개 + 확장 1개 사용가능(확장 파티션 내 여러 논리 파티션 생성가능)
- 논리 파티션은 부팅 파티션으로 지정불가
- 1파티션은 최대 2TiB를 넘기지 못함
- GPT
- 최대 8ZiB이하의 디스크 사용 가능
- 최대 128개의 파티션 생성 가능
- MBR
- 윈도우 파티션 분할 : diskpart
2. 윈도우 파일 시스템 종류
- FAT(FAT32)
- 빌게이츠와 마크 맥도널드
- 마이크로소프트 독립형 디스크 베이직의 디스크 관리를 위해 개발
- 윈도우 뿐만 아니라 구형 운영체제 또는 리눅스, 유닉스와 같은 운영체제에서 호환성이 필요할 때 사용
- FAT 32 : 32bit 아키텍처 환경에서 구성, 저장할 수 있는 최대 파일 크기 4GiB에서 1Byte를 뺀 만큼의 양 → FAT32 파일시스템으로 생성한 USB 이동식 디스크 내 파일은 4GB 이상의 파일 이동 불가
- 구조 : Reserved Area, FAT Area, Data Area
- Reserved Area : 예약된 영역, 부트섹터, FSINFO, More reserved sectors의 추상적 구조
- FAT : 데이터 영역에 저장된 파일의 할당관계를 표시해주는 테이블
- Data Area : 실제 데이터가 저장되는 공간
- NTFS
- 톰밀러, 게리 키무라 등등
- 윈도우 NT계열 운영체제의 대표 파일 시스템
- 기존의 FAT방식보다 성능개선, 신뢰성, 추가 확장의 다양한 기능 추가
- 확장성, 저널링, 하드링크, ADS, 파일 압축, 보안성, 암호화 시스템 등을 제공
- 구조 : VBR, MFT, Data Area
- VBR : 부팅 프로그램을 담을 수 있는 영역
- MFT : 파일의 크기, 작성일자, 사용권한 등 파일에 대한 정보 저장
- Data Area : 실제 데이터가 저장되는 공간
- MFT
- 볼륨에 존재하는 모든 파일, 디렉터리에 대한 정보를 가지고 있는 테이블
- NTFS의 가장 중요한 구조체
- MFT 엔트리 라는 1024byte로 이루어진 구조(레코드)의 집합
- 파일 및 디렉터리 수에 비례하여 점점 커짐
- 경로 : 최상위 디렉터리(root)
- 디스크
- 전자적, 자기적, 광학적 또는 기계적 변경으로 데이터를 기록하는 저장 장치
- 일반적으로 디스크 저장장치를 디스크라 줄여 말함
- 파티션
- 물리적인 디스크를 논리적인 형태의 파일 시스템 형태로 저장공간을 나눔
- 윈도우에서 파일 시스템을 크게 FAT, NTFS로 생성하여 분리
- 파일 시스템을 생성하여 저장소를 구분할 경우 부트섹터의 종류와 파일 시스템의 종류에 따라 최대 저장 용량의 크기 차이 영향을 받음
- 파티션 종류
- 주 영역 파티션 : 0~4개 가능
- 확장 영역 파티션 : 1개만 가능
- 논리 영역 파티션 : 0개 이상 가능
윈도우 시스템 관리
1. 윈도우 계정 분류
- 계정과 그룹
- 계정(User)와 그룹(Group)으로 구성되며 역할과 권한을 제어
- 계정명과 그룹명은 고유하며 중복되지 않음
- 각 계정은 여러 그룹에 종속될 수 있음
- 고유한 계정 명 외에 식별할 수 있는 SID 존재
- SID의 형태
- SID + 버전번호 + 식별자 권한 값 + 도메인, 로컬 컴퓨터 식별자 + 상대 RID
- 식별자 권한 값 : 0(권한 없음), 1(워드 권한), 2(로컬 권한) ,3(작성자 권한) ,4(비고유 권한) ,5(NT 권한) ,9(리소스 관리자 권한)
- RID : 기본값으로 만들지 않은 그룹이나 사용자는 1000이상의 값 가짐
- 잘 알려진 보안 식별자
| S-1-1-0 | 모든 사용자 |
| S-1-5-14 | 원격 상호 로그온 접속 |
| S-1-5-18 | 로컬 시스템 - 운영체제가 사용하는 서비스 계정 |
| S-1-5-19 | NT 권한, 로컬 서비스 |
| S-1-5-20 | NT권한, 네트워크 서비스 |
| S-1-5-29 | 네크워크 서비스 |
| S-1-6 | 사이트 서버 권한 |
| S-1-7 | 인터넷 사이트 권한 |
| S-1-8 | 교환 권한 |
| S-1-9 | 리소스 관리자 권한 |
- 계정 속성값 → wmic useraccount
- Account Type : 윈도우 계정의 특성
- Caption : 계정의 도메인과 계정 이름
- Description : 계정 설명
- Disabled : 계정 활성화 여부
- Domain : 윈도우 도메인 이름
- FullName : 로컬 계정의 전체 이름
- InstallDate : 계정이 설치된 날짜
- LocalAccount : 로컬 컴퓨터 계정 여부 확인
- Lockout : 윈도우 시스템의 잠김설정 여부 확인
- Name : 도메인 속성이 지정하는 도메인의 원도우 사용자 게정
- PasswordChangeable : 사용자가 암호 변경 가능 여부
- PasswordExpires : 패스워드 계정 만료 여부
- PasswordRequired : 패스워드가 반드시 지정되어야 하는지 여부
- SID : 계정 고유 SID
- SID type : SID 유형
- status : 객체의 현재 상태
- 그룹 속성 값 → wmic group
- Caption : 객체에 대한 간단한 텍스트 설명
- Description : 객체에 대한 자세한 설명
- Domain : 그룹 계정이 속한 윈도우 도메인의 이름
- InstallDate : 객체가 설치된 일자
- LocalAccount : 로컬 그룹 여부
- Name : 도메인 속성에 의해 지정된 도메인 윈도우 그룹 계정명
- SID : 그룹 고유 SID
- SID type : SID 유형
- status : 현재 그룹 상태
- 윈도우 계정 분류
- Local System, Network Service, Local Service
- 시스템에 중요 자원이나 관리를 위한 계정
- 서비스, 시스템에 중요 프로세스를 실행하는 주체
- Administrator
- 운영체제의 응용 프로그램 레벨에서의 관리자
- 프로그램 설치 등을 수행할 때 주로 권한을 필요로 하는 계정
- User or Guest
- 최소한의 권한을 가진 일반 사용자 또는 게스트 계정
- 윈도우 중요 파일이나 프로그램에서의 중요 폴더 접근이 제한된 계정
- Local System, Network Service, Local Service
2. 명령어를 이용한 계정관리
- net 명령어
- 기본적으로 NetBIOS를 사용하는 명령어로 컴퓨터의 여럴 설정 값들을 제어하는데 주로 사용
- 계정 및 그룹 관리, 세션 관리, 공유 파일 관리, 시간, 서버 등의 여러 관리 기능 제공
- net user
- username : 추가하거나 삭제, 수정 또는 조회할 사용자 계정의 이름, 최대 20자까지 지정가능
- password : 사용자 계정에 대한 암호를 지정하거나 변경, 최소길이 충족, 최대 14자
- : 암호에 대한 프롬프트를 생성, 암호 프롬프트에 암호를 입력하면 화면에 암호 표시 X
- /DOMAIN : 현재 도메인의 도메인 컨트롤러에서 작업을 수행
- /ADD : 사용자 계정을 사용자 계정 데이터베이스에 추가
- /DELETE : 사용자 계정 데이터베이스에서 사용자 계정을 제거
- net group
- groupname : 추가, 확장 또는 삭제할 그룹 이름, 그룹에서 사용자 목록을 볼 그룹만 입력
- /COMMENT:”text” : 새 그룹 또는 기존 그룹에 대한 주석 추가, 텍스트 따옴표 안에 삽입
- net localgroup
- /DOMAIN : 현재 도메인의 도메인 컨트롤러에서 작업 수행, 별도 지정없을경우 로컬 컴퓨터
- username : 그룹에서 추가하거나 제거할 사용자 이름을 하나이상 나열(공백으로 분리)
- /ADD : 그룹을 추가하거나 그룹에 사용자 이름 추가
- /DELETE : 그룹을 제거하거나 그룹에서 사용자 이름을 제거
- 생성된 계정 확인 : win + r + lusrmgr.msc
- Administrator 계정 이름 변경 : win + r + secpol.msc
3. 공유 폴더 개요
- 개요
- 일반적으로 회사에서 데이터를 공유하기 위한 목적으로 사용되는 폴더
- 주로 사설 망 안에서 공유가 되는 폴더는 랜선의 속도를 최대로 내주고 있기 때문에 많이 사용
- NetBIOS라는 데이터 통신 방식을 사용하여 각 컴퓨터 간의 폴더를 동시 사용
- NetBIOS : SMB 형식 기반, OSI 7계층 중 근거리 통신망을 통신하도록 도움
- SMB(Server Message Block)
- 폴더 공유의 정확한 명칭
- 도스나 윈도우에서 파일이나 주변 장치들을 공유하는데 사용되는 프로토콜
- 유닉스와 같이 다른 운영체제에서 폴더를 공유하기 위해서는 Samba가 존재해야함
- 워너크라이 랜섬웨어 성행
- 사용 서비스 포트(TCP)
- nbname 137/UDP, TCP : NetBIOS Name Service
- nbdatagram 138/UDP : NetBIOS Datagram Service
- nbsession 139/TCP : NetBIOS Session Service
- NetBIOS 사용이 불가하다면 SMB(445/TCP,UDP) 서비스를 이용하여 사용
4. 공유 폴더 사용을 위한 관련 서비스
- network connections : LAN 및 원격 연결 모두를 볼 수 있게 하는 서비스
- network list service : 컴퓨터가 연결되어 있는 네트워크를 식별하고 이 네트워크에 대한 속성을 수집 및 저장하며 이 속성이 변경되면 응용프로그램에 알림
- network location awareness : 네트워크에 대한 구성 정보를 수집 및 저장
- network store interface service : 네트워크 수정 사항을 사용자 모드 클라이언트에 전달
- tcp/ip netbios helper : NetBIOS over TCP/IP 서비스 및 NetBIOS 이름 확인 지원을 네트워크의 클라이언트에 제공하므로 사용자가 파일을 공유하거나 인쇄하거나 네트워크에 로그온
- workstation : SMB 프로토콜을 사용하여 원격 서버에 대한 클라이언트 네트워크 연결 생성 및 유지
- HKLM\system\currentControlSet\Service\LanmanServer\parameters\AutoShareWks
5. 로컬 보안 정책 개요(secpol.msc)
- 암호 정책, 감사 정책 및 사용자 권한과 같은 많은 윈도우 운영체제 보안 관련 설정 적용가능
- 로컬 보안 정책에서 설정 시 일반 관리 도구에서 설정이 불가능
- 윈도우 Home 버전에서는 사용불가
- 종류
- 계정 정책
- 암호정책(암호에 대한 복잡성, 최대/최소 암호사용기간 등) : 3종류 최소 8자리, 2종류 최소 10자리, 최대 암호 사용 기간 (90일이하)
- 계정잠금정책(로그인 실패 시에 계정 잠금에 대한 설정)
- 로컬 정책
- 감사 정책 : 로그정책, 설정에 따라 성공과 실패를 로깅, 기록된 로그는 이벤트 뷰어를 통해 확인
- → 개체 엑세스 감사, 계정 관리감사, 계정 로그온 이벤트 감사 등
- 사용자 권한 할당 : 시스템에 대한 권한을 적용할 때 사용, 운영체제 설치 시 기본 설정되는 그룹은 미리 할당
- 보안 옵션 : 사용자 계정, 로그인, 인증에 관련된 보안 설정
- 계정 정책
6. 이벤트 로그의 활용
- .evtx 확장자, C:\windows\system32\winevt\Logs
- 이벤트 로그 분석 활용
- 외부로부터의 침입감지 및 추적
- 시스템 성능 관리
- 시스템의 장애 원인 분석
- 시스템 취약점 분석
7. 이벤트 로그 종류
- 응용프로그램 로그(Application.evtx)
- 응용프로그램이 기록한 다양한 이벤트가 저장
- 기록되는 이벤트는 해당 제품의 개발자에 의해 결정 → 활성화, 비활성화 여부, 성공여부 등 기록
- 모든 응용프로그램이 이벤트 로그를 생성하지는 않음
- 시스템 로그(System.evtx)
- 윈도우의 시스템 운영과 유지에 관련된 정보 저장
- 하드웨어 장치나 드라이버 오류 정보 및 동작 여부 기록
- 새로운 서비스의 등록 또는 시작 및 중단 등의 기록
- 보안로그(Security.evtx)
- 로그온 시도 및 파일 생성, 열람, 삭제 등의 리소스 사용에 관련된 이벤트 기록
- 감사 로그 설정을 통해 다양한 보안 이벤트 저장 가능
- 설치로그
- 어플리케이션 설치시 발생하는 이벤트를 기록
- 프로그램 정상 설치 여부 기록
- 프로그램 호환성 문제 여부 기록
8. 이벤트 로그 속성
- 로그 이름, 원본, 날짜 및 시간, 이벤트 ID, 작업 범주, 수준, 키워드, 사용자, 컴퓨터, Opcode
- 이벤트 로그 수준
- 정보(성공적 동작 설명), 경고, 오류, 성공감사(보안로그), 실패감사(보안로그)
- 이벤트 로그 감사 정책 : 계정 로그온 이벤트 감사, 계정 관리 감사, 로그온 이벤트 감사 등
9. 보안 로그 필터링
- 4625 : 계정로그인 성공
- 4624 : 계정로그인 실패
- 4776 : 로컬 계정 자격증명 검사
- 4777 : 도메인 계정 자격 유료 검사 실패
- 4720 : 사용자 계정 생성
- 4722 : 사용자 계정 사용 가능 상태
- 4723 : 계정 암호 변경 시도
- 4724 : 계정의 암호 원래대로
- 4725 : 계정 사용 중지
- 4726 : 계정 삭제
- 4740 : 계정 잠김
- 최대 로그 크기 산정
- 평균 이벤트는 약 500byte
- 1일 약 1000개의 이벤트 발생 가정 + 한달동안 로그 저장되어야 하는 기준 설정
- 최대 로그 크기 = 14.3Mbyte
윈도우 분석도구(NirSoft, WinPrefetchView)
1. Windows Sysinternals
- 윈도우 환경을 관리, 진단, 문제 해결, 모니터링 기술 자료 및 유틸리티 제공
- 일부 프로그램의 경우 추가 옵션을 활용해 커맨드 라인 명령으로 결과 수집가능
- Process Exploer : 윈도우 작업 관리자의 확장된 형태의 포터블 도구
- Process Monitor : 파일시스템, 레지스트리, 프로세스 등의 실제 활동을 모니터링 하는 프로그램
- Autoruns : 많은 공격자들이 악성코드를 지속성 유지를 위해 자동실행에 등록
- Psinfo : 윈도우의 기본 Systeminfo 명령과 유사하지만 정보를 더 단순하게 출력
'시스템 기초 > 개념' 카테고리의 다른 글
| Ch3. 리눅스 기초 (0) | 2026.03.19 |
|---|---|
| Ch1. 컴퓨터 구조 (0) | 2026.03.09 |