1. 윈도우
1-1. 윈도우 시스템 구조
- 5개의 링 구조: 하드웨어, HAL, 마이크로커널, 관리자, 응용 프로그램
- 하드웨어부터 관리자는 커널 모드로, 응용 프로그램은 사용자 모드로 구분
- HAL: HW와 드라이버 개발자가 따르는 표준, HW와 SW의 통신을 가능하게 함
1-2. 윈도우 특징
- GUI 환경
- OLE (Object Linking Embedding): 프로그램 간 개체 교환 가능
- 단축 아이콘, 다중 모니터, 클립보드, 멀티태스킹 등
1-3. 윈도우 파일시스템
- FAT16
- 2GB까지 한 파티션으로 설정
- 현재는 너무 작은 용량임
- FAT32
- 32-bit 클러스터를 가질 수 있음
- 현재도 종종 사용되며 호환성이 좋음, 접근제어는 불가
- NTFS
- 결함 관리, 접근 제어 및 암호화가 가능한 파일시스템 (권한 설정 및 감사 기능 제공)
- 디스크 구조
- MBR (Master Boor Record): 부트 코드(VBR 호출), 파티션 테이블, 시그니처 등
- VBR (Volume Boot Record): 부팅을 위한 기계어 코드와 설정
- MFT (Master File Table): 모든 파일과 디렉터리에 대한 정보가 있는 테이블
- 시스템 파일: 시스템 복구에 사용될 로그나 정보 파일
- 파일 영역: 실제 파일 데이터
- 디스크 파괴형 악성코드: MBR, VBR을 훼손해 컴퓨터가 부팅되지 않도록 하는 악성코드
- FAT을 NTFS로 변환: CONVERT 유틸티리로 가능
1-4. 윈도우 부팅 순서
- POST (Power On Self Test) 실행: 하드웨어가 시스템 검사
- 기본 부팅 설정 로드: BIOS가 CMOS에서 설정을 읽어옴
- MBR 로드
- NTLDR 실행: 가능한 부팅 옵션 보여줌
- NTDETECT.com 실행: 특정 하드웨어 검사
- ntoskrnl.exe 실행: HAL.DLL 로드
2. 윈도우 보안
2-1. 윈도우 설치
- 파티션 분할: 하나의 하드디스크에 논리적인 분할 영역을 만드는 것
- 파티션을 나누면 서로 다른 드라이브로 인식되므로 파일 보존과 멀티 부팅이 가능
2-2. 윈도우 계정, 권한, 인증
- 빌트인 계정과 그룹
계정 | Administrator | 관리자 권한의 계정 |
SYSTEM | 시스템에서 최고 권한을 가진 계정으로 사용자는 로그인 불가능함 | |
Guest | 제한적인 권한을 가진 계정 | |
그룹 | Administrators | 자원과 로컬 컴퓨터에 모든 권한이 있는 그룹 |
Account Operators | 사용자나 그룹 계정을 관리하는 그룹 | |
Users | 도메인과 로컬 컴퓨터를 일반적으로 사용하는 그룹 시스템 서비스 시작 및 종료 권한이 없고, 디렉터리 공유 설정 불가 |
- SID (Security Identifier)
- 각 사용자나 그룹에 부여되는 고유 식별번호 (whoami /user)
- 관리자는 500번, Guest는 501번, 일반 사용자는 1000번 이상의 숫자를 가짐
- 권한 상승
- 일반 권한의 사용자가 Administrator와 SYSTEM으로 실행되는 프로세스 권한을 뺏는 것
- 상위 권한으로 수행되고 있는 프로세스에 다른 작업을 끼워넣음
- 인증과 패스워드
LSA (Local Security Authority) |
모든 계정의 로그인을 검증 및 접근 권한 검사 SRM이 생성한 감사 로그를 기록 NT 보안의 중심이자 보안 서브시스템 |
SAM (Security Account Manager) |
사용자, 그룹 계정에 대한 DB 관리 입력 정보와 DB 정보를 비교해 인증 여부 결정하고 SRM에게 알림 |
SRM (Security Reference Monitor) |
사용자에게 SID를 부여하고 그에 기반해 접근을 허용할지 결정 이에 대한 감사메시지 생성 |
2-3. 공유자료 관리
- 네트워크 드라이브
- 대상 컴퓨터의 드라이브를 내 컴퓨터 드라이브처럼 사용할 수 있는 기능
- 파일과 폴더의 보안권한
- 수정, 읽기 및 실행, 폴더 내용 보기, 쓰기 등의 권한 설정 존재
- 표준 권한 할당하기
- NTFS 접근 권한 설정의 규칙
- 접근 권한이 누적됨
- 파일이 디렉터리 접근 권한보다 우선함
- 허용보다 거부가 우선됨
- 공유 자료 관리
- 공유 폴더 숨기기
- 공유 이름 끝에 $ 기호 붙이기
- 숨겨진 공유 보기: net share
- C$, D$, ADMIN$은 잘 알려져 있어 비활성화하는 것이 좋음. 하지만 OS가 재시작되면 기본 공유 폴더가 다시 만들어짐
- 윈도우 공유 폴더
- C$, D$: 하드 드라이브 수만큼 공유되어 있는 관리 목적의 기본 공유 폴더, 바이러스 침투 사례가 있음
- ADMIN$: 윈도우 설치 폴더에 접근하는 관리 목적 공유 폴더
- IPC$: 프로세스간 통신을 위해 사용되는 통로, 익명 사용자 접근이 불가능하도록 설정해야 함
- 공유 폴더 숨기기
2-4. 암호 기능 사용
- 폴더 및 파일 암호화 (EFS, Encrypted File System)
- 사용자 단위로 데이터를 암호화할 수 있는 기능
- 인증서를 통해 EFS가 적용된 파일을 읽을 수 있는 사용자 관리 가능
- 볼륨 암호화 (BitLocker)
- 볼륨 단위의 데이터 암호화 기능
2-5. 레지스트리 활용
윈도우 시스템 운영에 필요한 모든 정보가 담겨 있음
- 레지스트리 편집기
- 사용자가 레지스트리를 조작할 수 있도록 하는 프로그램
- regedit, regedt32로 실행 가능
- 레지스트리 루트키 (핸들키)
- Master Key: 하이브 파일에서 직접 읽어 구성되는 키
- Derived Key: Master Key로부터 값을 가져와 재구성하는 키
Master Key | HKLM (HKEY_LOCAL_MACHINE) |
HW를 구동하는 데 필요한 드라이버나 설정 사항 정보 | |
HARDWARE | 감지된 HW와 드라이버 매핑 정보 (휘발성) | ||
SAM | 로컬 계정 정보, 도메인 컨트롤러라면 액티브 디렉터리에 저장 |
||
SECURITY | 보안 정책과 사용자 권리 할당 정보 | ||
SOFTWARE | 소프트웨어 목록과 환경 설정 정보 | ||
SYSTEM | 부팅 시 필요한 시스템 환경 설정 정보 | ||
HKU (HKEY_USERS) |
시스템의 모든 계정과 그룹에 관한 정보 user.dat에 내용이 저장됨 |
||
Derived Key | HKCU (HKEY_CURRUENT_USER) |
현재 로그인하고 있는 사용자의 시스템 정보 | |
HKCC (HKEY_CURRENT_CONFIG) |
시스템 시작 시 사용하는 하드웨어 프로파일 정보 (디스플레이, 프린터 등) | ||
HKCR (HKEY_CLASSES_ROOT) |
파일 확장자와 열 때 사용할 애플리케이션의 매핑 정보 |
- 레지스트리 보호
- 레지스트리 접근 제한: 관리자 암호를 알아야만 편집기 사용 가능
- 현재 레지스트리 상태 저장: 문제가 생기면 복원 가능
- 레지스트리 키 백업: .reg인 텍스트 파일로 백업
- 레지스트리 공격
- 부팅 시: HKLM, HKCU 레지스트리를 이용 (Run, RunOnce)
- 특정 확장자 실행 시: HKEY_CLASSES_ROOT를 조작
- Ex: %1%*을 hacker.exe %1%*로 변경하면 exe 파일이 실행될 때마다 악성코드 실행
2-6. 윈도우 방화벽
- 인바운드, 아웃바운드 규칙을 설정해서 접근을 통제할 수 있음
3. 윈도우 서버 보안
3-1. 계정 관리
- Administrator 계정 이름 변경
- Guest 계정 상태: 비활성화해야 함
- 로그인 실패 횟수를 제한하고 잠금 기간 설정
- 관리자 그룹엔 최소한의 사용자만 포함
- 패스워드 복잡도를 설정
3-2. 서비스 관리
- 공유 권한 설정: Everyone 그룹은 권한 제거
- 기본 공유 제거
- 관리상 목적으로 사용하지 않는다면 제거
- IPC$는 제거하면 안 됨
- 제거 방법
- net share [공유 이름] /delete
- 레지스트리 값을 수정 (AutoShareServer)
- Null Session 접근 차단: 사용자 인증을 거치지 않고 내부로 접근하는 취약점이 있음
- 불필요한 서비스 제거
3-3. 패치 관리
- 감사 정책에 따른 로깅 설정
- 감사 설정 수준이 너무 낮으면 문제 발생 시 원인 파악 어려움
- 너무 높으면 시스템 성능에 심각한 영향을 줌
4. 윈도우 네트워크 서비스
- 네트워크 디렉터리 서비스
- 백그라운드에서 수행되며, 사용자들에게 리소스를 투명하게 제공
- LDAP, NDS, Microsoft Active Directory 등이 있음
- Active Directory
- 네트워크상 개체 정보를 저장하고, 관리자나 사용자가 이 정도를 쉽게 찾도록 함
- 개체에는 서버, 볼륨 등의 공유 리소스와 사용자 및 계정이 포함