점검항목

점검내용

권고사항

1. Tcp Wrapper관련

/etc/hosts.deny

파일 내용을 ALL:ALL로 구성, 불필요한 모든 서버로부터의 접근거부를 하는가?

Tcp Wrapper hosts.deny 파일의 구성은 모든 서비스에 대한 접속을 거부하는 ALL:ALL로 설정하고, 필요한 서비스와 접속 IP Address hosts.allow에 기록한다.

/etc/hosts.allow

 

꼭 필요한 administrator 또는 manager에게만 접근 권한을 주도록 Listing되어있는가?.

반드시 필요한 서비스와 접속 IP Address hosts.allow에 기록한다.

/etc/hosts.allow Permission 600 인가?

/etc/hosts.allow 파일의 접근 권한을 적절히 설정한다. Permission 600으로 설정할 것을 권고한다.

2. Superuser Access

Su 사용 유저 제한

Su 사용자가 엄격하게 제한되었는가?

Lsuser f ALL 명령을 사용하여 su 명령어를 사용할 수 있는 사용자들을 검사하여 꼭 필요한 경우가 아니면, 사용 금지 시킨다.

Su 명령어의 변형 여부를 검사한다.

Checksum검사를 통하여 변조 위험이 높은 su 프로그램을 주기적으로 검사한다.

Root login 가능성 점검

Root계정으로 직접 로그인이 가능한가?

SMIT(시스템 관리 인터페이스 툴) CHANGE/SHOW User Characteristics ScreenUser can LOGIN REMOTELY? = false setting함으로써 root 계정으로 직접 login을 금지한다.

3. Sendmail

Version

최신의 버전을 유지하고 있는가?

#telnet hostname 25 Version Check.

Sendmail 관련 취약점이 계속적으로 발견되고 있으므로 최신 버전을 유지하는 것이 필요하다.

expn, vrfy 명령어 사용못하도록 설정되어 있는가?

sendmail.cf 파일의  privacy Options 항목을 점검.

sendmail.cf 파일에 O privacy Options=authwarnings, noexpn, novrfy 와 같이 설정하여야 한다.

이러한 설정은 사용자 정보의 유출을 방지하기 위하여 필요하다.

4. /etc/inetd.conf

파일 Permission

Permission 600인가?

/etc/inetd.conf 파일의 접근 권한을 적절히 설정한다. Permission 600으로 설정할 것을 권고한다.

rcommand

사용여부

shell, login, exec #으로 remark하였는가?

rlogin ,rsh trusted된 서버 사이의 사용자 인증 없이 접속가능 하게 하는 것으로, 운영자 입장에서는 매우 편리한 반면 보안측면으로는 악용가능성이 큽니다.

따라서, 꼭 필요한 경우는 철저히 접근제어를 하고, 되도록이면 rlogin, rsh, rexec등의 명령어를 쓰지 않는 것이 바람직하다.

Rpc daemon 사용여부

ttdb, cmsd등의 보안에 취약한 rpc daemon들을 #으로 remark 하였는가?

#rpcinfo p hostname으로 확인 시, 100232, 100083, 100068의 존재하면 취약한 RPC 서비스가 가동중임.

ttdb, cmsd등의 RPC 서비스의 취약점을 이용할 경우, 대부분의 경우 관리자의 권한까지 획득 가능하다. 따라서 #으로 모두 remark를 하여 서비스 지원을 차단한다.

Tftp 사용여부

tftp(Trivial FTP) #으로 remark되었는가?

TFTP에는 user authentication 기능이 포함되어 있지 않아 서비스가 지원되는 경우, 원격에서 쉽게 /etc/passwd와 같은 중요파일을 전송받는 것이 가능하다.

따라서 dummy Xterminal등의 사용으로 꼭 필요한 경우가 아니라면, #으로 반드시 remark해야 한다.

DoS공격에 취약한 서비스 사용여부

echo, discard, daytime, chargen #으로 remark되었는가?

echo, discard, daytime, chargen DoS(서비스 거부 공격)에 악용될수 있으므로 remark 처리를 한다.

기타 불필요 서비스 사용여부

불필요한 서비스가 remark되었는가?

사용하지 않는 서비스 또는 검증되지 않은 서비스는 운영하지 않는 것이 바람직하다.

5. Password 보안관련

C2 Level 적용여부

/etc/passwd파일에서 User들의 Password항목이 암호화 되어있는가?

 

password를 포함한 사용자 정보는 /etc/passwd에 보관되어 있다. 이때, password는 암호화되어 저장되지만, cracking을 통하여 얼마든지 해킹에 이용될 수 있다.

(/etc/passwd 파일의 passwd 파일은 x 또는 * 로 표시되고, 암호화된 패스워드는 /etc/security/passwd에 보관이 되어야 한다.)

사용자 초기 상황 설정

/usr/lib/security/mkuser.default

의 설정상태가 적절한가?

/usr/lib/security/mkuser.default default group, shell, home dir과 다른 default속성들을 보안상 결함이 없도록 적합하게 설정한다.

초기 환경변수 설정

/etc/environment,

/etc/profile,

/etc/security/environ에서의

설정이 적절한가?

/etc/environment,/etc/profile,

/etc/security/environ에서 default환경변수를 보안에 결함이 없도록 설정한다.

Root권한의 유저 존재여부

/etc/passwd 에서 UID 0 user가 존재?

UID 0인 계정은 root만으로 제한하는 것이 바람직하다.

/etc/passwd 에서 GID 0 user가 존재?

GID 0인 계정은 root만으로 제한하는 것이 바람직하다.

Default vender

Accounts 관련

/etc/passwd, default vender accounts sys, bin등에 shell이 부여되어 있는가?

이는 이미 알려진 이들 유저를 이용하여, System에 접근할 수 있는 위험이 있으므로 반드시 아래와 같이 변경, shell을 제거해야 한다.

또는 각 user shell/bin/false과 같이 기능이 없는 쉘을 지정해도 된다.

Password 취약성

Crack, COPS등을 이용하여 취약한 패스워드가 존재하는지 검사한다.

엄격한 Password 정책의 실행은 시스템 보안의 가장 기본적인 사항 입니다. 따라서 패스워드는 추측이 어렵도록 특수문자 등을 섞어서 운영하며, 주기적으로 변경한다.  또한 su 실행을 통한 root 권한의 획득에 대한 정기적인 모니터링 및 반복된 로그인 실패나 거부에 대한 정기적인 점검이 필요하다.

Password 정책을 적절하게 수립했는가?

/etc/security/user파일에서 패스워드 정책을 수립 적용할 수 있다. 그 방법은 아래와 같다.

/etc/security/user파일에 정의된 패스워드 관련 사항

minage - 패스워드를 바꾸기 위해서 경과되어야 하는 최소한의 기간

maxage - 패스워드를 바꾸지않고 경과할 수 있는 최소한의 기간

maxexpired - Maxage를 지날 수 있는 최대한의 기간

Minalpha 새로운 패스워드에 포함되어야 하는 최소한의 알파벳 수

Minother 새로운 패스워드에 포함되어야 하는 최소한의 알파벳이 아닌 문자의 수

Minlen 새로운 패스워드에 포함되어야 하는 최소한의 문자 수(길이).

maxrepeats 새로운 패스워드에 한 문자가 반복될 수 있는 최대의 수

Mindiff 사용하던 패스워드와 새로운 패스워드 사이에 최소한의 다른 문자 수

histexpire 패스워드를 다시 사용할 수 없는 최소한의 기간 (단위 : (week))

Histsize 다시 사용할 수 없는 이전 패스워드의 수

dictionlist 패스워드를 바꿀 때, 검사할 dictionary files(사전파일들) list

pwdchecks 패스워드를 바꿀 때, 지켜야할 제한사항들의 list

6. ftp 설정상태

Version

보안에 취약한 version은 아닌가?

최근 HP에서 제공하는 FTP 프로그램의 경우는, remote attack에 대한 취약성이 보고 되고 있다. 따라서 최신의 FTP 프로그램의 유지가 필요하다.

TCP/Wrapper적용

TCP/Wrapper에 의해 원격으로 부터의 FTP접속을 제한했는가?

Tcpwrapper를 통하여 IP기반의 접근제어로 반드시 필요한 곳으로 부터의 접근만을 허용하여야 한다.

ftp user

ftp user의 홈디렉토리가 root 소유인가?

(ftp 계정이 존재할 경우)

ftp 의 홈디렉토리의 permission 555, 소유자는 ftp가 아닌 root로 되어 있어야 하며,  어떤 파일이나 디렉토리도 ftp 계정으로 소유자가 되어 있거나 ftp계정과 같은 그룹으로 되어 있지 않도록 해야 한다. 이러한 설정이 취약할 경우, 불법 침입자에 의한 악용 가능성 및 트로이 목마 등을 통한 시스템 해킹의 위험이 존재한다.

Anonymous ftp서비스가 제공되지는 않는가?

반드시 필요한 경우가 아니라면, 제공하지 말아야 하며, 반드시 필요한 경우에는 시스템 자원에 대한 철저한 접근제어와 쉘 서비스를 제공하지 말아야 한다.

ftp account login shell /bin/false인가?

(ftp 계정이 존재할 경우)

ftp account login shell은 전혀 기능이 없는 /bin/false와 같은 것으로 지정을 해주고, ~ftp/.rhosts ~ftp/.forward 파일은 존재하지 않도록 한다.

/etc/ftpusers 안에

root, bin, uucp, ingress, daemon, news, nobody, ftp, anonymous등의 vendor가 지원하는 default user들을 등록했는가?

/etc/ftpusers ftp의 사용을 불가능하게 제한하는 유저 등록을 위한 파일로써, vendor에서 default로 지원되는 유저와 특히root는 반드시 등록해주어야 한다.

7. System Trust 관계

/etc/hosts.equiv

존재하는가?

반드시 필요한 경우가 아니라면 존재하지 않는 것이 바람직하며, 만약 반드시 필요하다면 root 소유로 다른 사용자가 읽을 수 없도록 permission 700으로 해주는 것이 바람직하다.

+,+ +가 포함되어 있는가?

rlogin, rsh, rcp, rcmd 와 같은 명령이 수행될 경우, 이 파일의 엔트리를 검색, 사용자 인증없이 접근가능하게 된다. 이는 전체 시스템을 위험하게 할 수 있으므로 이 파일에는 + 또는 + +를 사용하지 말아야 한다.

Symbolic link to /dev/null ?

/etc/hosts.equiv /dev/null 로 심볼릭 링크를 만들거나, 디렉토리 형태로 만들어서 Permission 000으로 주어 불법 침입자에 의해 사용되지 않게 하는 것이 바람직하다. 실질적인 보안을 위해서는 이 파일을 사용하지 않는것이 가장 바람직하다.

$HOME/.rhosts

존재하는가?

.rhosts 파일은 사용자의 홈디렉토리에 존재해야 하며, 그 홈디렉토리 주인의 소유여야 한다.

하지만, 이 파일은 가급적 사용하지 않는 것이 바람직하며, 다른 사용자가 읽을수 없도록 하여야 한다. 또한, 반드시 필요한 경우에는 꼭 필요한 entry만을 유지하여야 한다.

+,+ +가 포함되어 있는가?

rlogin, rsh, rcp, rcmd 와 같은 명령이 수행될 경우, 이 파일의 엔트리를 검색, 사용자 인증없이 접근가능하게 된다. 이는 보안상 매우 취약하므로, 이 파일에는 + 또는 + +를 사용하지 말아야 한다.

Symbolic link to /dev/null ?

 

.rhosts 파일은 /dev/null 로 심볼릭 링크를 만들거나, 디렉토리 형태로 만들어서 Permission 000으로 주어 사용할 수 없게 하는 것이 바람직하다.

실질적인 보안을 위해서는 이 파일을 사용하지 않는것이 가장 바람직하다.

/etc/hosts

불필요한 시스템이 포함되어 있지 않은가?

/etc/hosts파일에 불필요하게 많은 서버의 정보를 담고 있는 것은 불법 침입자에게 전체 시스템들에 대한 정보를 제공하게 되므로, 꼭 필요한 entry만 보유한다.

8. File / Directory Permission          

User Home Directory

Permission: 700

다른 사용자의 접근이 불가능하게 유지하는 것이 바람직하다.

사용자별 $HOME/.profile

Permission: 700

다른 사용자의 접근이 불가능하게 유지하는 것이 바람직하다.

사용자별 $HOME/.login

Permission: 700

다른 사용자의 접근이 불가능하게 유지하는 것이 바람직하다.

사용자별 $HOME/.sh_history

Permission: 700

다른 사용자의 접근이 불가능하게 유지하는 것이 바람직하다.

disk, storage, tape, network Device file Permission

Permission: 600

Owner : root

다른 사용자의 접근이 불가능하게 유지하는 것이 바람직하다

Tty device files

Permission: 622

Owner : root

시스템 Start-up 파일에 대한 적절한 접근 권한의 설정이 필요하다.

/dev/null

Perm: 777

 

/usr/tmp, /tmp

Perm: 1777, Owner: root

 

9. 기타 보안관련 설정상태 체크

PATH

System 환경변수 $PATH의 값에 .이 포함되어 있는가?

불법 침입자에 의한 트로이 목마  실행 등의 악용이 가능하므로 PATH 환경변수에 현재 directory(.)를 포함시키지 말아야 한다.

/etc/profile

Umask 22로 설정되어 있는가?

적절한 Umask의 설정으로 default file permission을 관리하여야 한다.

IFS 를 변경하지 못하도록 설정

IFS를 변경하게 되면 시스템 프로그램 실행시, 예상외의 프로그램이 실행 될 수 있다.

보안상 취약하거나 의심스러운 root 권한의 suid bit가 설정된 파일이 없는가?

Setuid bit가 설정된 파일의 조사

Root 권한의 suid 파일의 경우, 불법적인 권한 획득에 이용될 수 있으므로 세심한 관리가 필요하다.

불필요하거나 민감한 directory가 외부로 mount가 가능하지 않은가?

Showmount -e

 

반드시 필요한 경우가 아니라면 외부로 directory mount하지 않도록 한다.

/etc/exports를 검사하고, 그 변화를 구현하기 위해서는 export av를 실행한다.

로그 파일 조사

/usr/adm/cron/log

/usr/adm/wtmp

/usr/adm/pacct

/var/adm/messages

/var/adm/acct/nite/*

/var/adm/dtmp

/var/adm/qacct

/var/adm/acct/sum/*

/var/adm/acct/fiscal/*

/usr/bin/mail/*

/etc/utmp

/etc/security/failedlogin

시스템의 안정적인 운영과 이상징후의 조기 발견 등을 위해서 정기적인 로그 파일의 조사 및 monitoring이 필요하다.

중요파일 checksum검사

/usr/bin/sysck

login, su, passwd, cu, crypt, tip, rlogin checksum을 주기적으로 변형여부를 감시해야 한다.

실패한 연결시도 감시

Netstat p tcp

/usr/bin/who s

/etc/security/failedlogin

실패한 연결시도들을 주기적으로 감시한다.

/var/adm/cron/

cron.allow

 

서비스 지원이 꼭 필요한 최소의 사용자만 등록 되어 있는가?

Cron을 이용하여, 일반 사용자가 권한이 없는 파일의 정보를 얻을 수 있으므로, 반드시 꾝 필요한 유저만 등록한다.

/var/adm/cron/cron.allow

/var/adm/cron/cron.deny를 지워주면, root만이 사용 가능하게 된다.

 

 


'::: OS ::: > AIX' 카테고리의 다른 글

tar 명령 사용법 정리  (0) 2009.04.02
AIX에서 메모리 점유가 높은 프로세스 찾기  (0) 2008.12.10
topas 명령어  (0) 2008.06.17
필수 명령어  (0) 2008.05.02
netstat 명령어 - 포트 오픈 여부 확인하는 방법  (1) 2008.04.30

+ Recent posts