윈도우 서버 보안 파트에서는 빠진 내용 엄청 많아요. 이것만 보시면 안돼요.
아무도 신경쓰지 않겠지만 혹시나 싶어서ㅎ,,,ㅎ
씨이발 제가 파일 정리해서 올리려고 했거든요 근데 날라감 지송 나도 빡쳐서 공부하다가 접음
윈도우서버보안
윈도우 파일 시스템
FAT16 : 2GB까지 한 파티션으로 설정 가능, 이는 하드디스크에 파일을 담는 최소 단위인 클러스터가 32KB이기 때문
FAT32 : 호환성이 좋음, 리눅스나 다른 운영체제에 정보를 옮길 때 유용, 접근제어 설정 불가, 보안 없음
NTFS : 파일 시스템의 결함 관리에 있어 좋음, 보안 훌륭, 개별 폴더와 파일에 사용 권한 설정 가능, 암호화되면 파일 이동이나 복사 해도 속성 변화 없음
- 구조 : MBR | VBR | MFT | 시스템파일 | 파일영역
윈도우 부팅 순서
1. POST : 하드웨어 스스로 시스템 기본 사항 검사
2. 기본 부팅 관련 설정사항 로드 : CMOS에 설정되어 있는 시스템 설정사항 및 부팅과 관련된 여러 정보를 읽어 시스템에 적용
3. MBR : 저장 매체의 첫 번째 섹터에 위치하는 영역, 부팅 매체에 대한 기본 파일 시스템 정보 존재
4. NTLDR 실행 : 간단한 파일 시스템을 실행, boot.ini 파일의 내용을 읽어 가능한 부팅 옵션 보여줌
5. NTDETECT.com 실행
6. ntoskrnl.exe(nt os kernel) 실행
윈도우 보안
1. 파티션 나누기 중요
2. 윈도우 계정과 권한 체계
- administrator : 관리자 권한, 강력한 권한
- systme : 시스템에서 최고 권한을 가진 계정, 로컬에서 관리자보다 상위 권한임, 원격 불가능
- guest : 기본 설정 사용 불가능
3. SID : 윈도우의 각 사용자나 그룹에 부여되는 식별 번호
4. 윈도우 인증과 패스워드
- LSA : 모든 계정의 로그인에 대한 검증, 시스템 자원 및 파일에 대한 접근권한 검사, 로컬 & 원격, 이름과 SID를 대칭하여 SRM이 생성한 감사 로그 기록, NT 보안의 중심, 보안 서브시스템으로 불림
- SAM : 사용자/그룹 계정에 대한 데베 관리, 사용자 로그인 정보와 SAM 데베 정보를 비교해 인증 여부 결정(C:/Winnt 혹은 C:/Windows에 위치)
- SRM : 사용자에 SID를 부여, 파일이나 디렉터리에 대한 접근을 허용할지 결정, 감사 메시지 생성
5. 공유자료 관리
- 파일과 폴더의 보안 권한 설정
- 공유폴더 숨기기 : 공유 리소스 설정 시 이름 뒤에 $ 붙이면 리소스 목록에 나타나지 않음, 숨겨지 공유폴더 보기 : net share, 재시작 시 원상태로 돌아옴
폴더 및 파일 암호화 EFS
파일 혹은 폴더 안에 들어 있는 모든 파일을 암호화할 수 있는 기능 제공
볼륨 암호화 BitLocker
윈도우 운영체제에서 제공하는 볼륨 단위의 데이터 암호화 기능
볼륨 : 논리적 드라이브를 의미
bitLocker이 활성화되면 해당 볼륨에 저장된 모든 파일이 자동으로 암호화됨(컴퓨터를 시작하는데 필요한 시스템 파티션 부분은 암호화 안 됨)
레지스트리
윈도우 시스템이 운영되는데 필요한 정보 담고 있음
시스템의 거의 모든 정보를 담고 있어 중요
레지스트리 편집기 : 레지스트리 설정 열람, 수정, 삭제, 추가 가능, [시작]->[regedit 혹은 / regedt32] 입력
레지스트리 루트키 :
HKEY_CLASSES_ROOT(HKCR) - 시스템에 등록된 파일 확장자와 그것을 열 때 사용할 애플리케이션 매핑 정보, COM 오브젝트 등록 정보 저장
HKEY_SURRENT_USER(HKCU) - 현제 시스템에 로그인하고 있는 사용자와 관련된 시스텀 정보 저장
HKEY_LOCAL_MACHINE(HKLM) - 컴퓨터에 설치된 하드웨어나 필요한 드라이버 설정 사항 정보, 루트키 중 가장 다양한 하이브로 구성
HKEY_USERS(HKU) - 시스템에 잇는 모든 계정과 그룹에 관한 정보 저장, 모든 계정의 프로파일이 있음
HKDY_SURRENT_CONFIG(HKCC) - 시스템이 시작할 때 사용하는 하드웨어 프로파일 정보 저장
레지스트리 보호 :
레지스트리 접근 제한
현재 레지스트리 상태 저장
레지스트리 키 디스크에 복사 - .reg인 텍스트 파일에 저장, 변경 전으로 돌리기 가능
레지스트리 공격
부팅 시 악성코드 실행 : 시스템 재부팅 시 악성 프로그램을 구동시키기 위해 레지스트리를 변조하게 됨, 이 중에서 악성 코드 구동을 위해 HKLM, HKCU를 사용
특정 확장자 실행 시 악성코드 실행 : 파일의 각 확장자에 따라 어떤 프로그램이 연결될지를 정하는 HKEY_CLASSES_ROOT 위치 값을 공격자가 조작하여 실행
Actiove Directory
도메인 내에서 서버로 동작하는 컴퓨터는 구성원 서버나 도메인 컨트롤러의 역할 중 하나를 수행
도메인 내에 있지 않은 서버는 독립 실행형 서버가 됨
구성원 서버는 계정 로그인을 처리하지 않고 Active directory 복제에 참여하지 않거나 도메인 보안 정책 정보를 저장하지 않음
구성원 서버는 파일 서버, 응용 프로그램 서버, 데이터베이스 서버, 웹 서버, 인증 서버, 방화벽 및 원격 액세스 서버 같이 동작
DC & AD
DC(Domain Controller) : 윈도우 환경에서 사용자가 로그인하면사용자는 데베에 계층적디렉터리를 가지고 있는 DC에 로그인
AD(Active Directory) : 네트워크 리소스를 정리하고 사용자 접근 통제 기능을 수행하는 디렉터리 실행
사용자가DC에 대하여 성공적으로 인증을 받으면 AD 설정에 의해 특정한 네트워크 리소스가 사용자에게 이용 가능
유닉스/리눅스 서버 보안
대화식/멀티태스킹/멀티유저/계층적/호환성
커널
메모리에 상주하여 하드웨어 자원을 제어하면서 프로세스 스케줄링, 기억장치관리, 파일관리, 시스템호출 인터페이스, 입출력 서비스 등의 기능을 사요앚에게 제공
가장 하위 수준에서 하드웨어와 직접 관계
특정 컴퓨터 시스템의 하드웨어에 종속적
시스템 호출 : 사용자 프로그램이 커널에 접근하는 인터페이스를 제공
파일 시스템
디렉터리 구조 : 계층화된 트리 구조
파일시스템 구조 : 부트 블록, 슈퍼 블록, i-node, 데이터블록
i-node
유닉스에서 각 파일에 대한 정보를 기억하는 고정된 크기 구조체
일반 파일이나 디렉터리 파일의 i-node는 각 파일의 디스크 블록의 위치를 포함
특수 파일의 i-node는 주변 장치를 식별할 수 있는 정보 포함
MAC time
- last Modification time : 파일 내용 마지막 수정 시간
- last Access time : 파일 마지막 접근 시간
- last Change time : 파일 속성 마지막 변경 시간
프로세스 종류
데몬 프로세스 : 유닉스 커널에 의해 실행, 특정 서비스 제공
부모 프로세스 : 자식 프로세스를 만듦(fork())
자식 프로세스 : 부포 프로세스에 의해 만들어진 프로세스
고아 프로세스 : 결과를 돌려주기 전에 부모 프로세스가 먼저 종료된 프로세스
좀비 프로세스 : 이미 사용 중인 모든 사원을 반납했지만 부포 프로세스로부터 작업 종료에 대한 승인을 받지 못한 상태 프로세스
런레벨
시스템의 운영 상태를 표현한 것
0 - PROM(Programmable Read-Only Memory) 모드
S,s - 시스템 싱글 유저 모드, 로컬 파일 시스템이 마운트 되지 않은 상태
1 - 시스템 싱글 유저 모드, 로컬 파일 시스템이 마운트 된 상태
2 - 멀티 유저 모드(NFS 클라이언트 모드)
3 - 멀티 유저 모드(NFS 서버 모드)
4 - 사용 안함
5 - 시스템 파워오프 모드
6 - 재시작
정기적 스케줄 관리
cron : 정기적인 작업을 지정 시간에 처리하기 위해 사용
분(0~59) | 시 | 일 | 월 | 요일(0~6, 0=일요일) | 작업
유닉스 서버 보안
패스워드 관리 :
/etc/passwd 파일
user account | user password | user ID | group ID | comment | home directory | login shell |
- 로그인 ID : 사용자 계정, 로그인 이름
- 비밀번호 : x - 섀도우 비밀번호 방식을 사용할 때 표시, /etc/shadow 파일에 저장
- 사용자 ID : 사용자마다 일련번호를 부여해 구분
- 그룹 ID : 사용자가 속한 그룹의 ID
- 사용자 설명 : 사용자 이름
- 홈 디렉터리 : 로그인 성공 후 사용자가 위치할 홈 디렉터리 절대 경로
- 로그인 셸 : 로그인 셸의 절대 경로, 로그인 셸의 종류 변경 시 수정 가능
/etc/shadow
패스워드 정보를 암호화하여 보호
user account | encrypted passwd | last change | minlife | maxlife | warn | inactivel | expires |
- 암호화된 패스워드 : 일방향 해시함수 적용, salt값 생성
- last change : 마지막으로 패스워드 변경한 날
- min days : 최소 변경 일수
- max days : 최대 변경 일수, 현재 비번 유지 기간
- warn : 경고 일수, 비번 바꾸라고 경고하는 기간
- inactive : 최대 비활성 일수, 로그인 안하면 잠가버림
- expire : 사용자 계정 만료 날
접근권한 마스크 umask
그룹의 기본 권한 : 쓰기 권한에 제한을 두는 022
개별 계정에 대한 설정 /home 밑에 계정별로 .profile / bash셸 사용 시 .bashrc / C셸 사용 시 .cshrc 사용
파일 : 666
디렉터리 : 777
권한 상승 setUID, setGID
계정이 누구인가를 식별하는 UID, GID
RUID : 프로세스를 실행시킨 사용자 UID
RGID : 프로세스를 실행시킨 사용자 GID
EUID : 프로세스가 실행중인 동안에만 부여되는 UID
EGID : 프로세스가 실행중인 동안에만 부여되는 GID
- 최초로 로그인할 때는 RUID와 EUID, RGID와 EGID가 각각 같은 값을 받으며 setUID 비트를 가진 프로그램을 실행할 때만 잠시 일치하지 않음
- setUID가 설정된 파일은 모두 해킹 대상이 될 수 있음, 이파일은 백도어 및 버퍼오버플로우 등 여러 공격에 이용되므로 setUID 비트가 설정된 파일을 목록화 하여 관리하는 작업 필요
- setUID가 설정되어 있는 프로그램을 실행하는 경우 프로그램 소유주의 권한이 됨
- 슈퍼유저 root만 접근할 수 있는 파일이나 명령에 일반 사용자로 접근한느 것이 가능하다면 setUID를 적용하는 것이 시스템 운영면에서 효율적
- root 권한이 필요없는 프로그램에 root가 소유주이면 보안상 취약
- setGID가 설정되어 있다면 실행 중인 프로세스는 사용자가 속한 그룹의 권한이 아닌 소유주의 그룹 권한을 갖게 됨
디렉터리 접근 권한 sticky-bit
스티키비트가 설정된 디렉터리는 시스템에 있는 모든 사용자가 파일이나 하위 디렉터리를 생성할 수 있지만 해당 디렉터리를 지우는 것은 소유주나 root인 경우에만 가능
네트워크 보안
슈퍼데몬 inetd 데몬
inetd 데몬은 개별 서버를 하나로 통합하여 클라이언트로부터 서비스 요청이 올 때마다 해당 서비스와 관련된 실행 모듈을 실행
/etc/inetd.conf : 불필요한 서비스 제한 위해 사용
서비스|소켓타입|프로토콜|대기설정 | 로그인이름 | 서버 | 인자
소켓타입 : tcp - stream, udp - dgram
대기설정 : 즉시 다른 요청 처리하는지 여부, tcp - nowait
접근통제 TCP Wrapper
외부에서 들어오는 클라이언트에 대해 접근 통제 기능 제공
클라이언트의 IP 주소를 확인하여 시스템 관리자가 접근을 허용한 호스트들에 대해서만 서비스를 허용하기 때문에 외부 해킹에 대해 보호 가능
모든 프로토콜에 대한 접근제어는 불가능
/etc/hosts.allow(접근 허용) -> hosts.deny(접근 금지)
접근하고자 하는 해당 클라이언트가 설정사항에 포함되지 않을 때는 접근을 허용함
hosts.allow | hosts.deny |
all:192.168.1.1 | all:all |
192.168.1.1 IP주소에 대해 모든 서비스 가능 | |
in.telnetd : 192.168.1.1 in.ftpd : 192.168.1.1, 192.168.1.2 | all:all |
192.168.1.1은 telnet, ftp 가능 192.168.1.2는 ftp만 가능 | |
in.telnetd : .aaa.co.kr | all:all |
.aaa.co.kr 도메인에 속한 모든 호스트는 telnet 가능 | |
ALL : 192.168.1.0/255.255.255.0 | all:all |
192.168.1.0(~192.168.1.255) 네트워크에 속한 모드 호스트는 모든 서비스 가능 | |
in.telnetd : 192.168.1. | all:all |
192.168.1. 로 시작하는 호스트들은 telnet만 가능 | |
ALL : LOCAL | all:all |
같은 네트워크에 있는 모든 호스트들은 모든 서비스 가능 | |
ALL EXCEPT in.telnetd : ALL | all:all |
모든 호스트들은 telnet 제외한 모든 서비스 가능 | |
in.telnetd : .aaa.com EXCEPT www.aaa.com | all:all |
www.aaa.com을 제외한 aaa.com 도메인의 모든 호스트들은 telnet 가능 |
PAM 장착형 인증 모듈
응용 프로그램에 대한 인증 형태, 사용자 권한, 접근 자원 등을 선택할 수 있는 라이브러리
시스템 관리자는 다양한 인증 서비스를 선택할 수 있고 기존 응용 프로그램을 수정할 필요 없이 새로운 인증 서비스 모듈을 추가하여 사용할 수 있음
PAM을 사용한 인증 절차
- 각 프로그램은 인증이 필요한 부분에 PAM 라이브러리 호출
- PAM 라이브러리가 호출되면 해당 프로그램의 PAM 설정 파일을 참조하여 등록된 여러 PAM 모듈들을 수행하고 결과를 반환
- 응용 프로그램은 그 반환된 결과를 이용하여 인증여부 결정
파일 및 디렉터리 관리
- root, 패스 디렉터리 권한 및 패스 설정 :
root 계정의 PATH 환경 변수에 “.”이 포함되어 있으면 루트 계정의 인가자로 인해 비의도적으로 현재 디렉터리에 위치하고 있는 명령어가 실행될 수 있음
잘못된 PATH의 우선순위 등이 침해사고에 이용될 수 있으므로 “.” 뿐만 아니라 비인가자가 불법적으로 생성한 디렉터리를 우선으로 가리키지 않도록 설정함
>> 조치 방법 : 루트 계정의 환경변수 설정파일(”/.profile”, “/.cshrc”) 과 /etc/profile 등에서 PATH 환경변수에 포함되어 있는 현재 디렉터리를 나타내는 “.”을 PATH 환경변수의 마지막으로 이동하거나 삭제하기
- 파일 및 디렉터리 소유자 설정 :
소유자가 존재하지 않는 파일 및 디렉터리는 현재 권한이 없는 자의 소유거나 관리 소흘로 인해 생긴 파일로 문제가 생길 수 있으므로 삭제 혹은 소유자 변경을 해야함
- HOME/.rhosts, hosts.equiv 사용 금지 :
'r'command 사용을 통한 원격 접속은 NET Backup이나 다른 용도로 사용되기도 하나 보안상 매우 취약하여 서비스 포트가 열려있을 경우 중요 정보 유출 및 시스템 장애 발생 등 침해사고의 원인이 됨
사용이 불가피할 경우 파일 사용자를루트 또는 해당 계정으로 설정한 뒤 권한을 600으로 설정하고 해당 파일 전체에 '+'설정이 포함되지 않도록 해야함
서버 보안 관리
로그 분석
net session : 현재 로그인된 사용자 확인, 자신의 시스템에 로그인한 시스템의 IP, 로그인한 계정, 클라이언트의 운영체제, 세션의 수, 로그인한 후 경과한 시간 출력
net session /delete : 연결 끊기
psloggedon : 현재 로그인한 세션, 현재 로컬로 로그인한 계정 정보도 보여줌
윈도우 시스템 이벤트 로그 종류
- 응용 프로그램 로그 : 응용 프로그램이 기록한 다양한 이벤트가 저장
- 보안 로그 : 유효하거나 유효하지 않은 로그인 시도, 파일 생성, 열람, 삭제 등 이벤트 기록
- 시스템 로그 : 우니도우 시스템 구성요소가 기록하는 이벤트, 시스템 부팅 시 드라이버가 로드되지 않는 경우 이벤트에 기록
- 디렉터리 서비스 로그 : 윈도우 액티브 디렉터리 서비스에 발생하는 이벤트
- 파일 복제 서비스 로그 : 윈도우 파일 봊게 서비스에서 발생하는 이벤트
- DNS 서버 로그 : DNS에서 발생하는 이벤트
감사정책
어떤 로그를 남길지를 정의한 규칙
감사 정책을 설정하게 되면 감사 정책에 의해 지정한 이벤트 범주에 대해서만 로그가 남음
이벤트 로그 파일
%Windows%\system32\config 폴더 아래 있는 .evt 파일
응용 프로그램 로그 : AppEvent.Evt
보안 로그 : SecEvent.Evt
시스템 로그 : SysEvent.Evt
로그 디렉터리
utmp(x) : 현재 시스템에 로그인한 사용자의 상태를 출력, 바이너리 형태, w, who, users, whodo, finger
wtmp(x) : 사용자의 로그인, 로그아웃, 시스템 재부팅 정보, 바이너리, last
sulog : 권한 변경에 대한 로그, 로그인한 걔정의 권한을 변경할 때 su 명령에 대한 로그, 텍스트, su
acct/pacct : 로그인한 모든 사용자가 수행한 프로그램에 대한 정보를 저장하는 로그, 로그인했다가 로그오프할 때까지 입력한 명령과 연결에 이용한 터미널의 종류와 시간을 기록, 바이너리, accctcom, lastcomm
loginlog / btmp:
- 리눅스 : /var/log/btmp, 실패한 모든 로그, 바이너리, lastb
- 유닉스 : /var/adm/loginlog, 5회 이상 실패 시 실패한 로그 남김, 텍스트
lastlog : 가장 최근에 성공한 로그인 기록을 담고 있는 로그 파일, 바이너리, lastlog, finger
xferlog : ftp 포그 파일, proftpd 또는 vsftpd 데몬들의 서비스 내역을 기록하는 파일, 시스템에서 어떤 파일을 복사했는지 찾을 때 유용
유닉스/리눅스 시스템 로그 설정 /etc/syslog.conf
syslogd는 운영체제에 의해 자동으로 시작되는데 데몬 프로세스의 시작 시에 환경설정 파일 /etc/syslog.conf를 읽어서 어던 로그를 어디에 남길지 결정
형태 :
facility.priority; facility.priority action |
facility : 서비스 이름
- * : 모든 서비스
- ntp : Network Time Protocol이 보내는 메시지, 모든 로그에는 시간에 대한 기록이 남는데 시스템마다 시간 설정이 다르면 혼란스럽기 때문에 시스템의 시간을 일정하게 맞추는 NTP를 기본으로 제공함
- uucp : 전자 메일
priority : 메시지 우선 순위(혹은 로그 level)
emergency (emerg) | 시스템이 비정상적인 상태, 시스템 완전 멈춤, 전체 공지 필요 |
alert (alert) | 시스템을 가동시킬 수는 있지만 즉각 조치해야 함, 시스템 데이터베이스 오류 |
critical (crit) | 하드웨어나 심각한 소프트웨어 문제같은 치명적 오류 |
error (err) | 일반적인 에러 |
warning (warning) | 경고 |
notice (notice) | 에러나 오류는 아닌데 관리자 조치 필요 |
information (info) | 일반적인 시스템 정보 |
debug (debug) | 프로그래머만 사용 동작 원리 파악에 이용 |
none : 기록 금지
서버보안용 소프트웨어
취약점 분석 도구
SATAN : 해커와 똑같은 방식으로 시스템의 침입, 보안상의 약점을 찾아 보완할 수 있는 네트워크 분석용 보안 관리 도구
SARA : SATAN을 기반으로 개발된 취약점 분석 도구
SAINT : 유닉스에서 동작하는 네트워크 취약점 분석 도구, 원격 점검
COPS : 시스템 내부에 존재하는 취약점을 점검하는 도구
Nessus : 클라이언트-서버 구조로 클라이언트의 취약점을 점검하는 기능, 사용이 자유롭고 플러그인 업데이트 쉬움, HTML 등 여러 형태로 결과 리포트
nmap : 포트 스캐닝 도구로 TCP connect 방식뿐만 아니라 stealth 모드로 포트 스캐닝 기능 포함
파일 무결성 점검 tripwire
정상적인 상태의 디렉터리, 파일 정보를 백업하고 있다가 점검 수행 시점에서 정보와 백업한 정보를 비교하여 변경된 사항을 점검하는 도구
해시함수 지원
시그니처 역시 공겨의 대상이 됨
데이터 파일의 보호에는 적절하지 않음
스캔 탐지 도구
msacn : 메인 전체를 스캔하여 그 도메인 내에 있는 취약점을 한번에 스캔
sscan : 유닉스 윈도우 시스템에 대해 네트워크를 통해 취약점 점검 수행
portsentry : 실시간으로 포트 스캔을 탐지, 정상적인 스캔과 스텔스 스캔 탐지 가능, 공격 호스트를 /etc/hosts.deny 파일에 기록하여 자동 방어, 공격 호스트를 경유하여 오는 모든 트래픽을 자동 재구성하는 기능 있음
Snort 네트워크 모니터링 및 침입탐지 도구
실시간 트래픽 분석과 IP 네트워크에서의 패킷 처리를 담당하는공개 소스 IDS, 실시간 경고 가능
방화벽
- TCP-Wrapper : 네트워크 서비스에 관련한 트래픽을 제어하고 모니터링하는 유닉스 기반 방화벽, 서비스 요청 시 데몬 구동 전 접속 허용한 시스템인지 검사하는 것
- IPchain/IPtable : 패킷 필터링 방화벽
'자격증 > 정보보안기사 필기' 카테고리의 다른 글
정보보안기사 필기) 시스템보안_2_클라이언트보안 (0) | 2020.10.30 |
---|---|
정보보안기사 필기) 시스템보안_1_기본이론 (0) | 2020.10.29 |
정보보안기사 필기) 접근통제 (0) | 2020.10.26 |
정보보안기사 필기) 암호화_4_전자서명 (0) | 2020.10.25 |
정보보안기사 필기) 암호학_3_공개키, 해시함수 (0) | 2020.10.23 |
댓글