보안 운영체제 - 보안 운영체제 / 기능 / 보안커널 / 신뢰 플랫폼 모듈(TPM)
클라이언트 보안 - 악성 소프트웨어(악성코드) / 인터넷 활용 보안
윈도우 서버 보안 - 윈도우 / 윈도우 보안 / 윈도우 서버 보안 설정 / 윈도우즈 네트워크 서비스
유닉스,리눅스 서버 보안 - 유닉스 / 유닉스 사용법 / 유닉스 시스템 관리 / 유닉스 서버 보안 / 리눅스 / 서버 취약점 분석 및 평가
서버 보안 관리 - 서버관리자의 업무 / 로그 설정과 관리 / 공개 해킹도구에 대한 이해와 대응 / 서버 보안용 소프트웨어 설치 및 운영
각종 시스템 보안위협 및 대응책 - 버퍼 오버플로우 / 포맷 스트링 / 레이스 컨디션 공격 / 백도어 / 시스템 자원 고갈 공격(dos, ddos) / 리버스 엔지니어링 / 기타
최신 보안 주제 - 블록체인 / 사물인터넷 / 클라우드 보안 / 랜섬웨어 / APT / 기타
유닉스,리눅스 서버 보안
1. 유닉스
유닉스 시스템의 특징
대화식 운영체제 / 멀티테스킹 / 멀티유저 / 호환성 및 이식성 / 계층적 파일 시스템 / 뛰어난 통신 기능 / 다양한 기능의 유틸리티와 개발환경 제공
유닉스의 운영체제
유닉스
오라클 솔라리스 - 오라클
AIX - IBM
HP-UX - HP
리눅스
페도라 - 레드햇
우분투 - 캐노니컬
유닉스의 구성
(가)커널
커널은 항상메모리에 상주하여 CPU, 메인 메모리, 하드디스크 등의 하드웨어 자원을 제어하면서 프로세스 스케줄링, 기억장치관리, 파일관리, 시스템 호출 인터페이스, 입출력 서비스 등의 기능을 사용자에게 제공
커널은 가장 하우 ㅣ수준에서 h/w와 직접 관계한다.
(나)커널의 시스템 호출 : 이중모드에서 사용자 모드는 특권 명령어를 사용할 수 없으며 이런 경우 사용자 프로세스는 운영체제에 도움을 요청하게 되는 것
2)셸
개념
운영체제와 사용자가 대화하기 위한 기반을 제공하는 중요한 프로그램으로 일반적인 응용체제에서 명령어 해석기라 불린다.
본, c, 콘, 배시
3) 파일시스템(file system)
(가) 디렉터리 구조
- 유닉스의 파일 시스템은 디렉터리(root)와 파일로 구성
/ : root 디렉터리나 최상위 디렉터리
/etc : 시스템의 환경 설정 및 주요 설정 파일을 담고 있다.(passwd, hosts 등)
/dev : 프린터나 터미널 같은 물리적인 장치를 다루기 위한 특수 파일을 담고 있다.
/usr/bin : 기본적으로 실행 가능한 파일을 담고 있다.(echo, mv, copy, pwd 등)
/usr/include : C언어 라이브러리 헤더 파일이 저장되는 디렉터리
/usr/sbin : 시스템 관리 명령어가 저장되는 디렉터리
/home : 사용자 홈 디렉터리가 저장되는 디렉터리
/tmp : 프로그램 실행 및 설치 시 생성되는 임시 파일을 담고 있다. 이 디렉터리에 파일을 저장하면 재부팅 시 임의로 삭제될 수 있다.
/var : 시스템 로그가 저장되는 디렉터리다.
(나) 파일 시스템 구조
파티션에 생성된 파일시스템은 부트불록, 슈퍼블록, i-node 리스트, 데이터 블록 4가지 영역으로 분리된 자료구조를 갖는다.
(다)i-node
: 유닉스에서 각 파일에 대한 정보를 기억하는 120byte의 고정된 크기의 구조체이다.
일반 파일이나 디렉터리 파일의i-node는 각 파일의 디스크 블록의 위치를 포함하고 있으며,
i-node 리스트
i-node number : 파일 시스템 내에서 해당 파일을 식별하기 위한 고유한 식별자
파일타입 : 일반파일, 디렉터리, 장치파일 등 파일 유형
접근권한 : 파일에 대한 접근권한
link count : 해당 i-node를 참조하는 링크 개수(하드링크 카운트)
소유자 : 파일의 소유자
소유그룹 : 파일의 소유 그룹
파일크기 : 파일의 크기
MAC Time
- last Modification Time : 파일의 내용을 마지막으로 수정한 시간
- last Access Time : 파일을 마지막으로 접근한 시간
- last Change Time : 파일의 속성을 마지막으로 변경한 시간(파일의 속성은 i-node의 정보다)
Block index : Data blocks에 저장되어 있는 파일 내용에 대한 색인 정보
(라)슈퍼 블록
슈퍼 블록은 파일시스템의 정보를 유지하는 자료구조이다. 빠르고 효과적인 파일시스템 관리 가능
2. 유닉스 기본 사용법
(1) 파일시스템 응용
1) 파일과 디렉터리 관리
(가) 디렉터리 정보 출력(ls)
특정 디렉터리에 있는 디렉터리와 파일을 열거하고 추가 옵션으로 이들에 관한 여러가지 정보(크기, 소유주, 만든 시간, 변경 시간, 이름, 접
근 권한 등)도 알 수 있다.
접근권한 부여의 대상
u
g
o
접근권한의 종류
r(4) 파일을 읽거나 복사할 수 있다 / ls(옵션은 실행 권한이 있어야 사용할 수 있다)
w(2) 파일을 수정, 이동, 삭제할 수 있다. / touch, mkdir, rmdir, rm 등..
x(1) 파일을 실행할 수 있다. / cd..
- 각각 파일과 디렉터리를 생성할 때, 일반 파일의 경우 접근권한으로 666(rw-rw-rw-)을, 디렉터리의 경우 777(rwxrwxrwx)을 디폴트 값으로 취한다.
디렉터리가 777인 이유는 디렉터리에 실행 권한(x)이 없으면 디렉터리 안으로 들어갈 수 없기 때문
다만 umask로 지정한 값만큼 디폴트 값에서 뺀다.
umask : 앞으로 생성되는 파일이 갖지 말아야 할 접근권한을 명시하는 기능
- 하드 링크수
링크 카운터(link counter)라고도 하며, 동일한 i-node를 참조하는 파일의 수
2) 파일 권한 관리
(가) 접근권한 변경(chomod)
: 기존 파일 또는 디렉터리에 대한 접근권한을 변경할 때 사용
(나) 소유권 또는 그룹 변경(chown/chgrp)
: 파일이나 디렉터리의 소유주나 그룹을 변경할 대 사용한다. 명령을 실행하고 나면 파일의 이전 소유주는 해당 파일에 이 명령을 다시 실행할 수 없다.
chown - 파일 및 디렉터리의 소유자 및 소유 그룹을 변경
chgrp - 파일 및 디렉터리의 소유 그룹을 변경
(2) 프로세스 응용
(가) 첫 번째 프로세스
- 어떤 프로그램 xx를 실행하는 새로운 프로세스를 생성하는 시스템 호출은 없다.
대신 유닉스에서 기존의 프로세스를 복제하고 새로 생성된 자식 프로세스를 실행 파일xx와 연관시킨다.
- 프로세스 id(PID)가 0인 swapper라는 첫 번째 프로세스는 부팅 시간 동안 운영체제에 의해서 생성된다. 이 프로세스는 즉시 PID 1과 2를 가지는 2개의 프로세스 init와 pagedaemon을 만들기 위하여 fork / exec를 두번 실행한다.
fork() : fork를 실행할 때 자식 프로세스에게 부모의 코드, 자료, 스택 영역의 복사본이 할당된다
exec() : exe를 실행함으로써 자신의 현재 코드, 자료, 스택을 실행 가능한 다른 코드, 자료 스택으로 치환
pid - 이름
0 - swapper(솔라리스는 sched)
1 - init
2. - pagedaemon
- 스와퍼와 페이지 데몬과 같은 프로세스는 그 중요성 때문에 커널 모드에서 영구적으로 실행되며 이들을 커널 프로세스라고 부른다.
- 시스템 내의 모든 다른 프로세스들은 init 프로세스의 자손들이 된다.
(나) 프로세스의 생성 및 종료와 관련된 두 가지 규칙
pid가 0인 프로세스를 제외한 모든 프로세스는 실행 중에 부모 프로세스를 갖게 된다.
프로세스 종료 시 자신을 생성한 부모 프로세스에게 자신의 종료를 알린다.
3. 유닉스 시스템 관리
(1) 시스템 시작과 종료
1) 부팅 관련 용어 정의
(가) 런 레벨
시스템에서 런레벨은 시스템의 운영 상태를 숫자 혹은 문자로 표현한 것이다.
init 프로세스는 /etc/inittab파일에 정의된 런 레벨에 따라 /etc/rc.d/rc[x].d 디렉터리에 나열된 스크립트를 실행하여 시스템의 운영상태를 구성한다.
0 - PROM(Programmable Read-Only Memory) 모드
s,S - 시스템 싱글 유저 모드, 로컬 파일시스템이 마운트 되지 않은 상태
1 - 시스템 싱글 유저 모드, 로컬 파일시스템이 마운트 된 상태
2 - 멀티 유저 모드(NFS 클라이언트 모드)
3 - 멀티유저 모드(NFS 서버 모드) UNIX 기본 RUN Level
4 - 사용 안함
5 - 시스템 power off 모드
6 - 시스템 리부팅
(나) 시스템 런 레벨 단계 구성
2) 시스템 종료
(가) 시스템 종료
운영중인 유닉스 시스템은 정기 점검, h/w 및 s/w의 추가 또는 변경, 기타 관리작업을 하기 위해 시스템의 종료가 필요하다.
(2) 파일시스템 관리
1) 파일시스템 연결(mount)
보조기억장치에 들어 있는 데이터를 읽어 오고 여기에 저장하려면 먼저 해당 장치를 유닉스 시스템에 연결하는 작업이 필요하다.
mount 명령은 보조기억장치에 설치된 파일시스템을 유닉스 시스템이 인식하도록 특정 디렉터리에 논리적으로 연결시켜 준다.
2) 파일시스템 연결 해제(umount)
: 마운트된 파일시스템의 연결을 해제한다.
/etc/mtab 파일은 시스템에 마운트 된 파일시스템의 정보를 관리한다. mount 명령을 실행하면 파일시스템이 마운트 정보를 /etc/mtab파일에 기록하고, umount는 정보를 삭제한다.
(3) 프로세스 스케줄 관리
1) 정기적 스케줄 관리(cron)
- cron 데몬 프로세스는 유닉스 시스템에서 정기적인 작업을 지정시간에 처리하기 위해 사용
- 특징
일괄적으로 처리해야 하는 작업(야간작업) / 작업에 대한 요구가 불규칙하지 않은 경우
- cron 데몬 프로세스를 사용하려면 3가지 구성요소가 필요
정기적으로 처리할 작업 목록을 정의한 crontab 파일 / crontab파일을 제어하는 crontab 명령 / crontab파일을 읽어서 내용에 정의된 대로 작업을 처리하는 cron 데몬 프로세스
/etc/default/cron 설정 파일
: 이 파일에는 cronlog변수가 설정되어 있다. 기본적으로 yes이며 로그가 남는다 .no면 로그가 남지 않음
(나)crontab 파일의 구조
필드1 분 0~59
필드2 시 0~23
필드3 일 1~31
필드4 월 1~12
필드5 요일 0~6
필드6 작업
4. 유닉스 서버 보안
(1) 시스템 보안
1) 사용자의 패스워드 관리
(가) 개요
사용자 관리 : 유닉스 시스템을 이용하는 사용자의 계정과 인증을 관리하는 것
/etc/passwd파일은 유닉스 시스템에 등록된 사용자 계정마다 정보가 담겨 있는 파일이다.
(나) passwd 파일
유닉스 시스템은 시스템 관리자가 사용자 계정을 만들 때마다 해당 사용자와 관련된 정보를 /etc/passwd파일에 저장
user account:user password:user_id:group_id:comment:home_directory:login_shell
root:x:0:0:super-user:root:/root/bin/sh
1로그인 ID(root) : 사용자 계정 또는 로그인 이름
2비밀번호(x)
3사용자ID(0) 0은 시스템 관리자
4그룹ID(0) 사용자가 속한 기본 그룹 ID로 일련번호로 되어 있다.
5사용자 설명
6홈 디렉터리 : 로그인 성공 후 사용자가 위치할 홈 디렉터리의 절대 경로[관리자는 /root, 일반 사용자는 /home]
7로그인 셸(/usr/bin/bash) : 로그인 셸의 절대 경로이다. 사용자가 로그인 셸의 종류를 바꾸어 달라고 요청하면 /etc/passwd 파일의 이 필드를 직접 수정하면 된다.
(다)shadow파일
1user account
2Encrypted password(일방향 해시 알고리즘)
3LAST DAY 마지막으로 패스워드를 변경한 날
4MIN DAYS 최소 변경 일수 패스워드 최소 사용기간을 설정하지 않으면 최근 암호 기억을 무력화하여 익숙한 패스워드를 재사용할 문제점이 있어 1주로 설정할 것을 권고
5MAX DAYS : 최대 변경 일수(현재 사용 중인 패스워드를 변경하지 않고 사용할 수 있는 기간의 일수를 지정한다)
6WARN DAYS : 경고일 수 (max 필드에 지정한 일수가 며칠 남지 않았음을 알리는 필드로 로그인할 때마다 경고 메시지를 출력하는 용도로 사용)
7EXPIRE DATE : 사용자 계정이 만료되는 날
2) 접근권한 마스크(umask)
3) 권한 상승(SetUID, SetGID)
4)디렉터리 접근권한(sticky-bit)
(2)네트워크 보안
1) 슈퍼데몬
2) 접근 통제(TCPWrapper)
3)PAM(Pluggable Authentication Modules, 장착형 인증 모듈)
5. 리눅스
1) 리눅스 특
2) 파일시스템의 종류 및 특
6. 서버 취약점 분석 및 평가
(1) 계정관리
1)root 계정 원격 접속 제한
2) 패스워드 복잡성 설정
3) 계정 잠금 임계값 설정
4) 패스워드 파일 보호
5) root 이외의 UID가 '0'인 금지
6) 패스워드 최소 길이 설정
7)패스워드 최대 사용 기간 설정
8)패스워드 최소 사용 기간 설정
(2) 파일 및 디렉터리 관리
1)root 홈, 패스, 디렉터리 권한 및 패스 설정
2) 파일 및 디렉터리 소유자 설정
3) HOME/.rhosts, hosts.eqiuv 사용 금지
서버 보안 관리
각종 시스템 보안위협 및 대응책
최신 보안 주제
'교육 및 자격증 > 정보보안기사 : 필기' 카테고리의 다른 글
Part06 - 애플리케이션 보안 (0) | 2022.09.01 |
---|---|
Part05 - 네트워크 보안 (0) | 2022.09.01 |
Part03 - 접근 통제 (0) | 2022.09.01 |
Part02 - 암호학 (0) | 2022.09.01 |
Part01 - 정보보호 개요 (0) | 2022.09.01 |