[정보보안기사] 시스템 보안 - 서버 보안
- 목차 -
3. 서버보안
(1) 인증과 접근통제
① 계정과 패스워드 보호
② 파일 시스템 보호
③ 시스템 파일 설정과 관리
④ 시스템 접근통제 기술
(2) 보안관리
① 운영체제 설치
② 시스템 최적화
③ 시스템 로그 설정과 관리
④ 서버 해킹 원리의 이해
⑤ 서버관리자의 업무
(3) 서버 보안용 S/W 설치 및 운영
① 시스템 취약점 점검 도구
② 시스템 침입 탐지 시스템
③ 무결성 점검 도구
④ 접근 통제 및 로깅 도구
⑤ 스캔 탐지 도구
⑥ 로깅 및 로그 분석 도구
3. 서버보안
(1) 인증과 접근통제
① 계정과 패스워드 보호
- Linux Server
▶ 계정 생성, 수정, 삭제 : #useradd , #usermod , #userdel
▶ 계정과 패스워드에 관련된 파일
▷ /etc/passwd : 사용자 계정 정보
▷ /etc/shadow : 사용자 패스워드
▷ /etc/group : 그룹 ID / 목록
▷ /etc/gshadow : 그룹 정보
▷ /etc/login.defs
→ 사용자 전체에 자동 할당되는 UID, GID 범위, 패스워드 유효 기간, useradd 설정사항
▷ /etc/default/useradd
→ useradd 명령어로 계정 생성 시, 어떤 환경과 파일을 참조할 것인가에 대한 정보
▷ /etc/skel
→ 계정 생성시 필요한 파일, 디렉토리를 저장하고 있는 디렉토리,
새 계정 생성시 그 대로 해당 계정의 홈디렉토리로 복사
▶ /etc/passwd 구성
사용자계정이름 : x(패스워드가 암호화되어 저장됨을 의미) : UID : GID : 계정정보 : 홈디렉토리 : 쉘
ex) root : x : 0 : 0 : root : /root : /bin/bash
※ Linux에서 사용자 계정 잠구는 법
▷ /etc/passwd에서 쉘 정보에다가 /bin/false 또는 /bin/nologin을 기술함
▷ passwd -l <계정명>
▶ /etc/shadow 구성
root : $1$F9FBAJKWEBKF4A30AJWNFKE : 15551 : 0 : 99999 : 7 : : : :
사용자계정 : 암호화된 패스워드 : 패스워드 바꿔진 日수: 패스워드 변경할수있는 최소 日수 : 패스워드 만료 日수 : 패스워드 만료 경고日수 : 사용자 제한 이후 계정 정지까지 日수 : 계정만기일 : (사용안함)
- Windows Server
▶ 컴퓨터 관리나 net user 명령어로 계정 생성, 수정, 삭제
▶ 계정 생성 시 옵션
▷ 다음 로그온시 반드시 암호 변경
▷ 암호 변경 불가
▷ 암호 사용기간 제한 없음
▷ 계정 사용 안 함(사용할 때까지 로그인 X)
▶ 기본 제공 계정인 Administrator는 계정 사용 안함으로 설정하거나 이름을 변경하는게 보안상 이득
▶ Guest 계정은 불필요하면 계정 사용 안함으로 설정(기본 값은 사용안함)
▶ 암호 정책
▷ 암호의 복잡성
▷ 최근 암호 기억 : 비슷하게 못 만들게 하기 위해서
▷ 최대 암호 사용기간
▷ 최소 암호 사용 기간
▷ 최소 암호 길이
▷ 해독 가능한 암호화를 사용해 암호 저장
▶ 계정 잠금 정책
▷ 계정 잠금 기간 : 0으로 하면 명시적으로 잠금 해제 할때 까지 유지(0부터 99999까지, 분 단위)
▷ 계정 잠금 임계값 : 실패한 로그인 시도 최대 횟수를 설정
(0부터 999까지 적용가능, 0이면 잠금 적용 X)
▷ 다음 시간 후, 계정 잠금 임계값을 0으로 설정(1에서 99999까지 ; 분 단위)
② 파일 시스템 보호
- Windows
▶ FAT12 / FAT16 / VFAT / FAT32
▶ NTFS
▶ 관리 공유 폴더 제거 / 마지막에 로그인한 계정 숨김 / 예약작업 수시로 체크 /
이동식 디스크의 자동실행방지 / 원격 레지스트리 서비스 중지
- Linux
▶ minix / ext2 / ext3 /ext4
- 클라우드 파일시스템
▶ Ceph
▶ GlusterFS(글러스터)
▶ Google 파일시스템(GFS)
▶ Hadoop 분산파일시스템(하둡)
▶ Lustre 파일시스템
▶ Panasa 파일시스템
▶ PVFS2
▶ OASIS : 한국전자통신연구원 저장 시스템 연구팀에서 개발한 객체 기반 클러스터 파일 시스템
③ 시스템 파일 설정과 관리
- 리눅스 디렉토리 구조(트리 구조)
▶ /bin : 필수 바이너리 파일, 시스템 기본 명령어
▶ /sbin : 관리자가 사용하는 시스템 운영에 필요한 명령어
▶ /boot : 부팅에 필요한 커널과 핵심 파일
▶ /dev : 장치 파일
▶ /mnt : CD-ROM과 플로피의 마운트 포인트를 제공하는 디렉토리
▶ /lib : 시스템 운영 및 프로그램 구동시 필요한 공유 라이브러리
▶ /var : 내용이 자주 변경되는 가변 자료를 저장하는 디렉토리
▶ /usr : 각종 서드 파티 응용 프로그램이 설치되는 프로그램
▶ /proc : 시스템 상태를 제공하기위한 디렉토리와 파일들이 존재
- Mount 하기
▶ 디바이스와 디렉토리의 연결
▶ # mount <디스크나 파티션> <마운트될 디렉토리>
▶ 재부팅시 마운트가 풀리기에, /etc/fstab에 기술해서 자동 마운트
- Shell 설정 변경
▶ /etc/profile에 설정된 값대로 shell에 적용
▶ /root/.bashrc : 시스템 전체에 적용되는 함수와 alias
▷ 파일 안에 alias rm='rm -i' 처럼 기술하면, rm이란 명령어는 rm-i와 동일하게 처리하라는 의미
▶ /root/.bash_profile : 사용자 환경 설정과 시작프로그램
▶ /root/.bash_history : 사용자 최초 로그인 후 생성, 사용자가 쉘에 입력한 명령어를 기록함
- 쿼타(Quota)
▶ 디스크에 사용량을 체크 감시
▶ 한 파티션에 너무 많은 디스크를 사용하게 되면 관리자에게 알리도록 제한함
- 파일 시스템 점검(File System Check & Recovery) : FSCK를 사용함
▶ 저널링 파일시스템으로 자동 복구가 되지만, 복구가 불가능한 경우 수동으로 복구해주어야 할때 씀
▶ 많은 시간을 필요로하는 경우가 많음
▶ 반드시 검사하고자 하는 파일시스템은 unmount하고 검사해야 함
- 퍼미션(Permission)
▶ umask : 파일은 666에서 빼고, 디렉토리는 777에서 뺌
▶ setuid(s, 4000) / setgid(s, 2000) / sticky bits(t, 1000)
▶ setuid, setgid는 해당 파일이 실행될 때에만, 실행한 사용자에게 소유자(그룹)의 권한을 부여함
▷ sticky bits는 주로 공유 디렉토리에 지정
▷ 파일을 root와 소유자만이 삭제, 수정이 가능하게 함
※ setuid 파일 찾기 : find / -user root -perm -4000 -print -xdev
④ 시스템 접근통제 기술
- Linux의 iptables
▶ 방화벽을 설정하는 도구
▶ 커널상에서의 net filter 패킷 필터링 기능을 사용자 공간에서 제어하는 수준으로 사용할 수 있음
- Windows의 ipsec (Internet Protocol Security)
▶ 사설 네트워크 및 인터넷 공격을 방어하는 핵심 라인을 제공
▶ 안전한 통신을 실현하는 통신 규약
- 통제 방식
▶ 강제적 접근통제(MAC)
▷ 주체의 권한을 기준으로 객체에 대한 접근을 제어
▶ 임의적 접근통제(DAC)
▷ 주체가 속한 그룹의 권한을 기준으로 객체에 대한 접근을 제어
▶ 역할기반 접근통제(RBAC)
▷역할을 미리 설정하고, 주체를 역할에 할당한 후, 역할에 접근 권한 부여
▷ 최근에 많이 사용되는 통제방식으로 관리자에게 편리함
(2) 보안관리
① 운영체제 설치
② 시스템 최적화
- CPU
▶ top : CPU와 Memory, swap에 대한 전체적인 모니터링 가능
▶ ps aux : CPU와 Memory 사용량이 큰 PID를 확인 가능
▶ pstree : 시스템에서 프로세스간의 연결구조를 트리 구조로
- Memory
▶ free : 사용되는 메모리와 여유가 있는 메모리가 얼마인지 알려주는 간단한 명령어
▶ vmstat : 가상 메모리 상태를 확인(Swap-Out과 Swap-In을 봐)
- Disk I/O
▶ df : 파일 시스템의 상태를 기초로 용량을 출력(df -k(KB단위) / df -h(다양한 단위))
▶ du : 실제 디렉토리와 파일의 크기를 확인해서 용량을 출력
▶ iostat : 디스크에 I/O가 얼마나 나타나는 모니터링
- Network
▶ netstat : 포트 정보
▶ ping
▶ traceroute
▶ tcpdump
③ 시스템 로그 설정과 관리
- 시스템 로그는 시스템의 정확한 시간이 필수
▶ #rdate -s time.bora.net
- Linux의 /var/log/디렉토리
▶ messages
▷ 로그인 기록에서 디바이스에 관련된 정보와 네트워크 등등 다양한 정보
▷ 콘솔에 출력되는 메시지들이 저장된다. 시스템 장애가 생기면 이 파일을 점검해서 취약점 점검
▶ pacct
▷ 로그인부터 로그아웃까지 입력한 명령과 시간, 작동된 tty 등에 대한 정보 수집 ; binary
▷ 명령어 : lastcomm
▶ history
▷ 사용자별로 실행한 명령을 기록하는 로그
▶ lastlo
▷ 사용자별로 최근 로그인 시간 ; binary
▷ 명령어 : lastlog
▶ wtmp
▷ 전체 로그인기록 (최근에 사용자 로그인 및 로그아웃한 정보)
▷ 명령어 : last
▶ utmp
▷ 현재 로그인 되어 있는 사용자에 대한 정보(/var/run/utmp에 있다) ; binary
▷ 명령어 : w / who / users / finger
▶ btmp
▷ 로그인이 실패한 경우에 ; binary
▷ 명령어 lastb
▶ sulog
▷ Su 명령와와 관련된 로그
▶ dmesg
▷ 부팅부터 HW적인 에러
▶ secure
▷ 보안과 관련된 중요한 로그(사용자 인증관련된 로그; FTP나 SSH 같은 것)
▶ httpd access_log, error_log
▷ 웹서버에 대한 로그
▶ xferlog
▷ FTP로 어떤 자료가 오갔는지 보여주는 로그
④ 서버 해킹 원리의 이해
ⅰ. 정보수집단계
▶ 포트스캐닝 등
ⅱ. 시스템 침입단계(root권한 획득이 목적)
▶ exploit(root계정 따내는 여러 프로그램)
▶ 서버 설정 오류 / 원격 버퍼 오버플로우 취약점 / 계정 도용 / 패스워드 파일 획득
/ 기타 취약점을 이용해 침입함
▶ 가장 단순하지만 강력한 대책은 업데이트(패치)
ⅲ. 공격 경유지나 혹은 거점 마련
▶ 백도어 등을 설치하거나, 또다른 공격의 공유지로 삼음
⑤ 서버관리자의 업무
- 시스템의 시작과 종료 및 재시작
- 사용자 계정관리
- 프로세스 및 디스크, 메모리
- 네트워크 연결 및 상태관리
(3) 서버 보안용 S/W 설치 및 운영
① 시스템 취약점 점검 도구
- NESSUS : 서버-클라이언트 구조로 작동하는 취약점 점검 도구
- SARA(SATAN기반) : 서버, IDS, 라우터 등의 보안 분석도구
- nikto2 : 웹 서버 스캔해서 취약점 점검(오픈 소스)
② 시스템 침입 탐지 시스템
③ 무결성 점검 도구
- trpwire : 가장 대표적인 무결성 점검 도구로써,
시스템의 모든 파일에 대해 DB를 만들어서 추후 변동사항을 점검
- Fcheck : tripwire보다 조금 더 간편한 설치와 설정
④ 접근 통제 및 로깅 도구
- TCP Wrapper
▶ 슈퍼데몬(Xinetd)의 영향을 받는 데몬들은 TCP Wrapper로 접근 제어와 로깅이 가능
▶ 도식화 : 클라이언트의요청 → Xinetd → TCP Wrapper → 데몬 실행
▶ /etc/host.deny파일과 /etc/host.allow파일을 통해 접근 통제를 할 수 있음
▷ Deny 정책 적용 시, host.deny에 ALL:ALL을 적어 놓고,
host.allow에 데몬종류:클라이언트 주소를 적음
▶ 접근 통제기록은 secure나 messgae 파일 등에 기록됨
⑤ 스캔 탐지 도구
- 방어적인 관점에서, 스캔 탐지가 일어나면 이에 따란 방어 대책을 세워야 할 듯
- portsentry
▶ 포트스캔을 실시간으로 탐지하고 TCP_Wrapper와 결합해, host.deny파일에 자동으로 등록해 방어함
- 실시간 네트워크 불법 Scan 자동탐지 도구(RTSD ; Real Time Scan Detector)
▶ KISA에서 과거에 개발한건데 오래되서 업데이트 안되고 있음
⑥ 로깅 및 로그 분석 도구
- syslog
▶ 백그라운드 프로세스로 돌면서, 로그 메시지를 하나 이상의 개별 파일에 기록하는 데몬
▶ /etc/syslog.conf에 각종 로그 환경 설정을 추가, 변경, 삭제할 수 있음
▷ 형식 : Facility.Priority Logfile-Location
※ 우선순위 Priority : Emerg > Alert > Crit > Err > Warn > Notice > Info > Debug > None
- webalizer
▶ 아파치 웹로그를 분석해주는 멀티 웹로그 분석도구
[ 출처 ]
https://kit2013.tistory.com/209?category=288746
을 참고하여 보완하고 수정한 글입니다.
'IT > 정보보안' 카테고리의 다른 글
[정보보안기사] 애플리케이션 보안 - 인터넷 응용 보안 (1) FTP 보안 (0) | 2019.06.24 |
---|---|
[정보보안기사] 네트워크 보안 - 네트워크 일반 (0) | 2019.06.24 |
[정보보안기사] 시스템 보안 - 클라이언트 보안 (0) | 2019.06.20 |
[정보보안기사] 시스템 보안 - 운영체제 (0) | 2019.06.19 |
시스템보안 - 보안 계정 관리자 SAM (Security Account Manger) (0) | 2019.06.19 |
댓글