윈도우 시스템 구조
- 윈도우 운영체제 구조는 링 기반으로 5개의 링으로 구분된다
1. 하드웨어
2. HAL
3. 마이크로 커널
4. 각종관리자
5. 응용 프로그램
※ 커널모드 : 하드웨어, HAL, 마이크로 커널, 각종 관리자
사용자모드 : 응용 프로그램
HAL : 하드웨어와 소프트웨어 간 원활한 통신이 가능하도록 도와주는 번역자
윈도우의 특징
1. GUI 환경 : 아이콘으로 쉽게 프로그램 접근 가능
2. Plug & Play : 하드웨어를 새롭게 추가하는 경우 자동으로 인식하여 환경을 설정해 주는 기능
3. 단축 아이콘 / 바로가기
4. 멀티태스킹
5. OLE : 개체 연결포함기능, 프로그램 간에 개체 교환 가능, Windows만의 특징
6. 네트워크 기능 향상
7. 다중 모니터 지원
8. 정보의 전송 통합
윈도우 파일 시스템
1. FAT 16
- 기본적으로 2GB까지 한 파티션으로 설정 가능
- FAT 테이블의 기본 크기 = 16비트 → 클러스터가 32kb
※ 클러스터 : 하드 디스크에 파일을 담는 최소 단위
2. FAT 32
- 2GB가 너무나 작은 용량이어서 크기를 키운 FAT 32 등장
- 32비트(232)개의 클러스터를 가질 수 있다.
- 호환성이 좋음
- 접근제어 설정 안되고 보안에 취약
※ exFAT : 마이크로소프트사가 윈도우 CE6.0 장치와 데스크톱 운영체제인 윈도우 비스타 및 윈도우 7 윈도우 서버 2008에 도입하기 위해 만듦, 자료구조 오버헤드 문제, 파일 크기 / 디렉터리 제약문제에 효과적
3. NTFS
- 대용량 볼륨지원
- 디스크의 효율적 사용
- 강력한 보안 기능(폴더 암호화 가능)
- 자동 압축 및 안정성 우수
- 호환성 떨어짐
- 저용량 볼륨서 FAT보다 속도 저하
- 개별폴더, 파일에 사용권한 설정 가능
- 감사기능 제공
※ FAT16,32는 CONVERT 유틸리티로 NTFS로 변환이 가능 but NTFS가 FAT 종류로 변환은 안된다.
- NTFS 볼륨의 보안설정은 Everyone 그룹에 대해서 모든 권한은 '허용'이다.
NTFS의 구조
1.MBR(Master Boot Record)
- 기본 파일 시스템의 정보 담고있음
- 파티션 생성 시 물리적 디스크의 첫 번째 섹터에 위치하는 512kb 크기 영역
- 부트코드, 파티션 테이블, 시그너처로 구성
2. VBR(Volume Boot Record)
- NTFS 구조에서 가장 앞 부분에 위치하는 영역
- 윈도우 부팅을 위한 기계어 코드, 볼륨 및 클러스터 크기, MFT의 시작주소 등 설정 정보 담고 있다.
- 파티션 맨 마지막에 VBR 백업본을 가지고 있다.
3. MFT(Master File Table)
- 볼륨 / 파일시스템에 존재하는 모든 파일과 디렉터리의 정보를 담고 있는 테이블
- NTFS서 가장 중요한 영역
- MFT 엔트리의 집합
4. 시스템 파일
- 복구 시 사용할 디스크 사용에 대한 로그파일, 디스크 볼륨이름 등 디스크 자체에 대한 정보를 담고 있음
5. 파일 영역
- 각 파일에 대한 실제 데이터가 저장
디스크파괴형 악성코드
- 마스트 부트레코드(MBR), 볼륨 부트 레코드(VBR) 영역 훼손을 하영 컴퓨터의 정상부팅을 막는다.
윈도우 부팅순서
1. 윈도우 XP, 윈도우 서버 2000/2003 부팅순서
- POST 실행 → CMOS 실행 → MBR 실행 → NTLDR 실행 → NTDETECT.com 실행 →ntoskrnl.exe(NT OS 커널) 실행
2. 윈도우 비스타, 2008/7 부팅 순서
- POST 실행 → CMOS 실행 → MBR 실행 → 윈도우 부트 서브시스템(bootmgr.exe) 실행
→ 윈도우 OS 로더(Winload.exe)실행
윈도우 보안
1. 윈도우 설치 중요사항 : 파티션 나누기
→파티션 분리 시 하나의 드라이브가 오류가 나도 다른 드라이브 파일은 안전하게 보관
※ 파티션 : 하나의 하드디스크에 논리적으로 분할 영역을 만드는 것
2. 윈도우 계정 관리
- 윈도우 설치시 기본 계정
구분 |
설명 |
Administrator |
관리자 권한 계정, 사용자가 사용 가능 계정 중 가장 강력한 권한 ※ net user administrator : 계정 만료일자, 암호 변경일자, 암호 바꿀수 있는 날짜, 최근 로그인 시간 등을 알 수 있게 하는 명령어 |
SYSTEM |
시스템에서 최고의 권한, 원격접속 불가, 사용자가 이 계정으로 시스템 로그인 불가 |
GUEST |
매우 제한적인 권한을 가진 계정, 기본 설정 불가 |
- 윈도우 설치시 기본적으로 생성되는 그룹
그룹이름 |
설명 |
Administrators |
도메인 자원이나 로컬 컴퓨터에 대한 모든 권한 |
Accounts Operators |
사용자나 그룹 계정을 관리 |
Backup Operators |
시스템 백업을 위해 모든 시스템 파일과 디렉터리 접근 가능 |
Guests |
도메인 사용 권한 제한, 시스템 설정 변경 권한 X |
Print Operators |
도메인 프린터 접근 가능 |
Power Users |
디렉터리, 네트워크 공유, 공용 프로그램 생성, 시계설정 권한 |
Replicator |
파일을 복제할 수 있는 권한을 가지는 그룹, 디렉터리 복사 서비스에 이용 |
Server Operators |
서버를 관리할 수 있는 권한 가진 그룹, 시스템 재시작 및 종료 권한 |
Users |
ㆍ개개인에 할당된 사용자 환경을 직접 만들 수 있지만 설정 항목의 한계있음 ㆍ시스템 서비스 시작 및 종료 권한 X ㆍ디렉터리 공유설정 X ㆍ워크스테이션 종료 가능 |
SID
- 윈도우의 각 사용자나 그룹에 부여되는 고유 식별번호
- 유닉스 시스템에서 UID, RUID, EUID와 유사한 역할
※ RUID : 프로세스를 구동시키는 ID
EUID : 프로세스 구동 중 자원 접근여부를 판단하는 ID
만약 설정을 안해놓으면 EUID = RUID이지만 설정을 해놓으면 일시적으로 RUID != EUID일 수 있다.
- RID : 관리자 =500번, Guest = 501번, 일반사용자 = 1000번이다.
윈도우 권한 상승
- 권한상승 : 일반 권한 사용자가 Administrator와 System으로 실행되고 있는 프로세스의 권한을 빼앗는 것이다.
- 수행되고 있는 프로세스의 권한을 뺏는 기본적인 방법은 상위 권한으로 수행되고 있는 프로그램의 프로세스에 다른 작업을 끼워넣는 방법이다.
윈도우 인증의 패스워드
- 윈도우 인증과장에서 가장 중요한 요소는 LSA, SAM, SRM 이다.
1. LSA
- 모든 계정의 로그인에 대한 검증
- 시스템 자원 및 파일 등에 대한 접근 권한 검사
- 이름과 SID 매칭
- SRM이 생성한 감사로그 기록
- NT보안의 중심요소
- 보안 서브시스템이라고 함
2. SAM
- 사용자 / 그룹 계정 정보에 대한 데이터베이스 관리
→ 사용자 로그인 입력정보는 SAM DB 정보와 비교해 인증여부 결정
- SAM 파일은 C:/Windows/system32/config/sam 파일에 들어있음
3. SRM
- 사용자에게 SID를 부여
- SID에 기반하여 파일이나 디렉터리에 대한 접근여부 판단 후 감사 메시지 생성
→ LSA에 저장
공유자료 관리
1. 네트워크 드라이브
- 대상 컴퓨터의 드라이브를 내 컴퓨터에서 네트워크 드라이브로 설정하여 내 컴퓨터의 드라이브처럼 사용할 수 있는 기능
2. 파일과 폴더의 보안권한 설정
- 윈도우는 폴더에 6가지 기본 권한설정으로 제공하며 파일에는 5가지 권한 제공
※ 권한 종류
1. 모든권한
2. 수정
3. 읽기 및 실행
4. 읽기
5. 쓰기
3. 디렉터리 및 파일에 대한 접근 권한 설정
- 윈도우의 NTFS에서 설정한 디렉터리 및 파일에 대한 접근권한 설정은 다음 규칙을 가짐
1. NTFS의 접근권한은 누적된다.
2. 파일에 대한 접근권한은 디렉터리에 대한 접근권한 보다 우선이다.
3. 거부가 허용보다 우선이다.
4. 공유자료 관리
1. 공유 폴더 숨기기
- 공유폴더는 어려운 이름으로 변경해도 침입자는 어떻게든 알아내기 때문에 이름 변경대신 공유 리소스 설정시 끝에 $를 붙이면된다
- 숨겨진 공유 폴더를 보려면 net share라는 명령어를 사용하면 된다.
- 공유폴더를 숨기는 것도 침입자가 네트워크에 엑세스할 위험이 있다.
- 단순히 기본 공유를 중지시켰다고 해서 기본 공유 기능이 완전히 중지된 것이 아니다.
→ 재부팅시 자동으로 기본 공유 폴더가 생성됨
→ 완전 제거하려면 레지스트리 편집기에서 DWORD를 새로 만들어 0으로 설정해야함
- 윈도우 공유폴더
1. C$, D$
- 연결되어 있는 하드 드라이브 문자수만큼 공유되어 있음
- 기본 공유 폴더로 바이러스가 침투한 사례가 있음
2. ADMIN$
- 윈도우 설치폴더에 접근하는 관리목적 공유 폴더
- 접근 시 컴퓨터의 윈도우 설치폴더가 열리게 된다.
- 윈도우 버전마다 윈도우 설치 폴더가 다르므로 모든 윈도우를 대상으로 어떠한 파일을 복사하거나 변경할 필요가 있을 때 주로 사용
3. IPC$
- 프로세스간 통신을 위해서 사용하는 통로
- IPC$를 제거시 네트워크 서비스 일부에 문제가 발생
- 제거보다는 값을 수정해 익명 사용자의 네트워크 접근이 불가능하게 하는 것이 낫다.
5. 암호기능 사용
1. 폴더 및 파일암호화(EFS)
- EFS는 윈도우 운영체제에서 개별 파일 또는 특정 폴더 안에 들어 있는 모든 파일을 암호화할 수 있는 기능 제공
- 파일이나 폴더의 속성 부분 변경할 수 있으며 인증서 추가 / 삭제 통해 EFS적용된 파일을 읽을 수 있는 사용자 추가 / 변경 가능
2. 블록 암호화(BitLocker)
- 윈도우 운영체제에서 제공하는 볼륨단위 데이터 암호화 기능
6. 레지스트리 활용
- 레지스트리
1. 윈도우 시스템이 운영되는데 필요한 정보를 담고 있다.(설치된 소프트웨어 정보, 환경설정, 임시 저장값 등)
2. 사용자 계정, 컴퓨터 하드웨어 및 어플리케이션에 대한 설정정보를 계층적으로 DB화 함
3. 시스템 부팅될 때마다 시스템에 부착된 하드웨어 정보를 읽어 들이고 레지스트리 해당 정보 저장
4. 사고분석에 있어 공격자의 중요한 흔적을 찾아낼 수 있다.
5. 레지스트리 편집기로 레지스트리 설정을 열람, 수정, 추가 , 삭제 할 수 있다.
6. 레지스트리는 윈도우 부팅시 하이브 파일에서 값을 읽는다.
7. 하이브 파일에서 직접 읽어 구성하는 파일을 Master key라고 한다.
8. Master Key로부터 값을 가져와서 재구성하는 키를 Derived Key라고 한다.
9. 마스터 키와 Derived Key
- 마스터키 : HKLM, HKU
- Derived key : HKCU, HKCC, HKCR
10. 레지스트리 루트키
1. HKEY_CLASSES_ROOT(HKCR)
- 시스템에 등록된 파일 확장자와 그것을 열 때 사용할 어플리케이션에 대한 맵핑정보 그리고 COM 오브젝트 등록 정보 저장
- 파일 확장자와 예전 클래스 시스템 구성요소들 간 링크 생성
- OLE 객체정보 저장
2. HKEY_CURRENT_USER(HKCU)
- 현재 시스템에 로그인하고 있는 사용자와 관련된 시스템 정보 담고 있다,
- HKCU 설정 내용이 HKU보다 우선권을 갖게 된다.
3. HKEY_LOCAL_MACHINE(HKLM)
- 컴퓨터에 설치된 하드웨어가 동작하는데 필요한 디바이스 드라이버, 소프트웨어 설정 관련 정보 저장
- 루트키 중에서 가장 다양한 하이브로 구성
- 프린터 및 화면 설정 뿐 아니라 부트 설정 정보도 여기에 포함됨
- HKLM을 구성하는 하이브
레지스트리 서브키 |
설명 |
HKLM/HARDWARE |
ㆍ부팅시 감지된 모든 하드웨어나 하드웨어 장치의 드라이버 맵핑정보 보관 ㆍ메모리에 휘발성으로 존재 |
HKLM/SAM |
ㆍ사용자의 패스워드, 소속그룹, 도메인 정보 같은 로컬 계정정보, 그룹정보 |
HKLM/SECURITY |
ㆍ보안정책과 사용자 권리 할당 정보 ㆍ사용자 계정 외 접근 불가 |
HKLM/SOFTWARE |
ㆍ소프트웨어 목록과 환경설정 정보(만료날짜, 라이선스 정보 등) 저장 |
HKLM/SYSTEM |
ㆍ시스템이 부팅될 때 필요한 시스템 범위의 환경설정 정보 ㆍ성공적 부팅시의 값을 복사해두었다가 비정상 종료시 복사해둔 정보를 바탕으로 부팅할 수 있는 옵션을 사용자에게 제공 |
4. HKEY_USERS(HKU)
- 모든 계정과 그룹에 관한 정보를 저장
- 모든 계정의 파일이 있다는 것 제외하고 서브키가 HKCU와 동일
- HKCU에 저장된 정보 전체와 데스크톱 설정, 네트워크 연결정보를 user.dat에 저장
5. HKEY_CURRENT_CONFIG(HKCC)
- 시스템이 시작할 때 사용하는 하드에어 프로파일 정보 저장
- 레지스트리 부분서 가장 간단
- 디스플레이와 프린터 관련설정 갖고 있음
11. 레지스트리 보호법
1. 레지스트리 접근 제한
- 레지스트리는 중요 정보이기 때문에 다른 사람이 레지스트리 편집기 사용을 막아야 한다.
- 윈도우에서는 사용자 계정 컨트롤(UAC)에 의해 일반 계정 사용자가 관리자 암호 모르면 레지스트리 편집기 사용이 불가하다.
2. 현재 레지스트리 상태 저장
3. 레지스트리 키 디스크에 복사
- 키의 디스크 백업은 키 데이터를 레지스트리 파일(.reg)로 저장해두는 방법
- 레지스트리 변경에 문제가 생겨도 백업을 해놓으면 전 상태로 돌릴 수 있다.
12. 레지스트리 공격
1. 악성코드 감염 시 시스템에는 레지스트리 변경, 파일생성 등 변화가 일어나기 때문에 이러한 변화를 분석하면 악성코드를 탐지 할 수 있다.
2. 부팅시 악성코드 실행 - HKLM, HKCU 레지스트리 변조
※ 디렉터리 위치
- 개별사용자 지속용 : HKCU ~~~~ \ RUN
- 개별사용자 일회용 : HKCU ~~~~ \ RUNONCE
- 전체사용자 지속용 : HKLM ~~~~ \ RUN
- 전체사용자 일회용 : HKLM ~~~~ \ RUNONCE
3. 특정 확장자 실행시 악성코드 실행 - HKEY_CLASSES_ROOT 레지스트리 조작
13. 시스템 정보 백업 및 복구하기 위해 필요한 파일 목록
1. USER.DAT
2. SYSTEM.DAT
3. SYSTEM.INI
4. WIN.INI
윈도우 방화벽(PC 방화벽) 설정
- PC 방화벽 : 네트워크 상의 웜이나 공격자로부터 PC를 보호하기 위해 사용
- 방화벽은 PC 내부로 유입되는 패킷(인바운드패킷) 뿐 아니라 나가는 패킷(아웃바운드패킷)까지 모두 차단
- 또한 방화벽은 윈도우의 파일 공유처럼 취약점에 잘 노출되는 서비스는 기본으로 차단
- 윈도우 방화벽은 인바운드 규칙과 아웃바운드 규칙을 별도로 상세히 통제 가능
윈도우 서버 계정관리
1. Administrator 계정 이름 바꾸기
- 관리자 계정을 Administrator로 설정한 경우 로그인 시도 실패 횟수를 제한 할 수 없다는 점을 악 이용해 악의적 사용자가 패스워드 유추 공격을 계속해서 시도할 수 있다.
- 그러므로 관리자 계정의 이름을 변경함으로써 공격자가 패스워드 뿐 아니라 계정 이름 이름도 쉽게 유추할 수 없도록 해야한다
2. GUEST 상태 설정하기
- 일반적으로 GUEST 계정은 비 활성화가 되어 있다.
- 만약 GUEST 계정이 활성화 되어있는 경우 시스템 정보 확인, 관리자 그룹에 추가하여 악용의 위험이 있음
3. 계정잠금 임계값과 잠금기간 설정하기
- 자동화된 방법 이용해 공격자는 모든 사용자 계정에 암호조합 공격 시도할 수 있다.
- 따라서 π계정 잠금 임계값 설정 적용해 로그인 실패 횟수를 제한을 해야한다,
- 계정 잠금 기간 설정시 지정 지간 동안 잠긴 계정은 사용할 수 없으며, 계정 잠금 해제시까지 접근도 불가
→ 암호추측으로 인한 암호공격 효과 낮출 수 있음
4. 관리자 그룹에 최소한의 사용자 포함하기
5. 암호와 패스워드 정책 설정하기 → brute force 공격에 취약하니 복잡도 설정하기
윈도우 서버 서비스 관리하기
1. 공유 권한 및 사용자 그룹 설정
- Everyone이 공유계정 포함시 익명의 사용자가 접근이 가능
→ C$, D$, Admin$, IPC$ 등을 제외한 공유 폴더가 Everyone 그룹 공유 금지 되어있는지 확인
2. 하드디스크 기본 공유 제거
1. 불필요한 공유 제거
- C$, D$, Admin$ 같은 기본 공유는 관리자 네트워크 상 시스템 관리 위해 기본적 마련한 것이므로 만약 관리 목적으로 사용하고 있지 않다면 공유 제거해야함
- IPC$는 제거하면 안된다, 제거시 특정서비스 실행 x
- 공유제거 법 : net share 공유이름 / delete
※ 기본공유 공유 중지시 재시작 되면 재 생성되기 때문에 레지스트리 수정 필요
2. Null Session 접근 차단 설정
- 비인가된 사용자가 Null Session을 통해 사용자 인증을 거치지 않고 서버에 접근 시 시스템 내부로의 접근이 가능한 취약점이 존재 → 인가된 사용자만 접속하도록 해야함
3. 불필요한 서비스 제거
- 시스템에서는 불필요한 취약 서비스들이 디폴트로 설치되어 실행되고 있으며 이러한 취약서비스는 공격지점이 될 수 있으므로 사용을 중지하거나 제거해야함
※ 주요 취약 서비스 : Aleter, Clipbook, Messenger, Simple TCP/IP Service
윈도우 서버 보안관리
1. SAM 파일 접근 통제 설정
- SAM 파일은 사용자와 그룹 계정의 패스워드를 관리하기 때문에 악의적 사용자에게 노출 될 가능성이 높음
- 그러므로 SAM 파일은 Administrators 및 System 그룹만 파일을 접근 할 수 있도록 해야함
2. 화면 보호기 설정
Windows 네트워크 서비스
1. 네트워크 디렉터리 서비스
- 네트워크 디렉터리 서비스는 사용자들에게 리소스를 투명하게 제공
→ 사용자는 리소스에게 정확한 위치로 접근하기 위한 단계를 알 필요가 없다
- 대표적인 네트워크 디렉터리 서비스로 LDAP, NDS, Microsoft Active Directory가 있음
2. Active Directory
- 네트워크 상 개체에 대한 정보를 저장
- 관리자 및 사용자가 이 정보를 쉽게 찾아볼 수 있게 하는 역할
'보안기사 > 필기' 카테고리의 다른 글
기사 자격증(알기사, 서버보안 관리) (0) | 2019.01.29 |
---|---|
기사 자격증(알기사, 유닉스, 리눅스 서버 보안) (0) | 2019.01.25 |
기사자격증(알기사, 클라이언트 보안) (0) | 2019.01.23 |
기사 자격증(알기사, 보안 운영체제) (0) | 2019.01.23 |
기사 자격증(알기사, 운영체제 주요기술) (0) | 2019.01.21 |