Unix 보안가이드라인 2014. 01
Unix 취약점분석 평가항목 분류 1. 계정관리 2. 파일및디렉터리관리 3. 서비스관리 점검항목항목중요도항목코드 root 계정원격접속제한상 U-01 패스워드복잡성설정상 U-02 계정잠금임계값설정상 U-03 패스워드파일보호상 U-04 root 이외의 UID 가 '0' 금지중 U-05 root 계정 su 제한하 U-06 패스워드최소길이설정중 U-07 패스워드최대사용기간설정중 U-08 패스워드최소사용기간설정중 U-09 불필요한계정제거하 U-10 관리자그룹에최소한의계정포함하 U-11 계정이존재하지않는 동일한 사용자 GID 금지하 U-12 UID 금지중 U-13 shell 점검하 U-14 Session Timeout 설정하 U-15 root 홈, 패스디렉터리권한및패스설정상 U-16 파일및디렉터리소유자설정상 U-17 /etc/passwd 파일소유자및권한설정상 U-18 /etc/shadow 파일소유자및권한설정상 U-19 /etc/hosts 파일소유자및권한설정상 U-20 /etc/(x)inetd.conf 파일소유자및권한설정상 U-21 /etc/syslog.conf 파일소유자및권한설정상 U-22 /etc/services 파일소유자및권한설정상 U-23 SUID,SGID,Stick bit 설정파일점검상 U-24 사용자, 시스템시작파일및환경파일소유자및권한설정상 U-25 world writable 파일점검상 U-26 /dev에존재하지않는device 파일점검상 U-27 $HOME/.rhosts, hosts.equiv 사용금지상 U-28 접속 IP 및포트제한상 U-29 hosts.lpd 파일소유자및권한설정하 U-30 NIS 서비스비활성화중 U-31 UMASK 설정관리중 U-32 홈디렉토리소유자및권한설정중 U-33 홈디렉토리로지정한디렉토리의존재관리중 U-34 숨겨진파일및디렉토리검색및제거하 U-35 finger 서비스비활성화상 U-36 Anonymous FTP 비활성화상 U-37
r 계열서비스비활성화상 U-38 cron 파일소유자및권한설정상 U-39 Dos 공격에취약한서비스비활성화상 U-40 NFS 서비스비활성화상 U-41 NFS 접근통제상 U-42 automountd 제거상 U-43 RPC 서비스확인상 U-44 NIS, NIS+ 점검상 U-45 tftp, talk 서비스비활성화상 U-46 Sendmail 버전점검상 U-47 스팸메일릴레이제한상 U-48 일반사용자의 Sendmail 실행방지상 U-49 DNS 보안버전패치상 U-50 DNS Zone Transfer 설정상 U-51 Apache 디렉토리리스팅제거상 U-52 Apache 웹프로 스권한제한상 U-53 Apache 상위디렉토리접근금지상 U-54 Apache 불필요한파일제거상 U-55 Apache 링크사용금지상 U-56 Apache 파일업로드및다운로드제한상 U-57 Apache 웹서비스영역의분리상 U-58 ssh 원격접속허용중 U-59 ftp 서비스확인하 U-60 ftp 계정 shell 제한중 U-61 Ftpusers 파일소유자및권한설정하 U-62 Ftpusers 파일설정중 U-63 at 파일소유자및권한설정중 U-64 SNMP 서비스구동점검중 U-65 SNMP 서비스커뮤니티스트링의복잡성설정중 U-66 로그온시경고메시지제공하 U-67 NFS설정파일접근권한중 U-68 expn, vrfy 명령어제한중 U-69 Apache 웹서비스정보숨김중 U-70 4. 패치관리최신보안패치및벤더권고사항적용상 U-71 5. 로그관리 로그의정기적검토및보고상 U-72 정책에따른시스템로깅설정하 U-73
1. 계정관리 취약점항목 1.1. root 계정원격접속제한 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-01 *root 는시스템을관리하는매우중요한계정임.root계정으로직접로그인하도록 허용하면불법적인침입자의목표가될수있으므로 root 계정접속에대한관리가 필요함.root계정의원격접속허용은공격자에게더좋은기회를제공할수 있으므로 root 의원격접속은금지하여야함. *root 계정: 여러사용자가사용하는컴퓨터에서전체적으로관리할수있는총괄권한을가진 유일한특별계정. 유닉스시스템의루트(root) 는시스템관리자인운용관리자(Super User) 로서 윈도우의관리자(Administrator) 에해당하며, 사용자계정을생성하거나소프트웨어를설치하고, 환경및설정을변경하거나시스템의동작을감시및제어할수있음. 양호 : 원격서비스를사용하지않거나, 사용시 root 직접접속을차단한경우 취약 : root 직접접속을허용하고원격서비스를사용하는경우 조치방법원격접속시 root 계정으로바로접속할수없도록설정파일수정 SunOS LINUX AIX HP-UX OS별점검파일위치및점검방법 #cat /etc/default/login CONSOLE=/dev/console #cat /etc/pam.d/login auth required /lib/security/pam_securetty.so #cat /etc/securetty pts/0 ~ pts/x 관련설정이존재하지않음 #cat /etc/security/user rlogin = false #cat /etc/securetty console 위에제시한설정이해당파일에적용되지않은경우아래의에따라설정을변경함 SunOS 1. vi 편집기를이용하여 /etc/default/login 2. 아래와같이주석제거또는, 신규삽입 ( 수정전) #CONSOLE=/dev/console ( 수정후) CONSOLE=/dev/console 파일을연후 1
LINUX 1. /etc/securetty 파일에서 pts/0 ~ pts/x 설정제거또는, 주석처리 2. /etc/pam.d/login 파일수정 ( 수정전) #auth required /lib/security/pam_securetty.so ( 수정후) auth required /lib/security/pam_securetty.so /etc/securetty : Telnet 접속시 root 접근제한설정파일 /etc/securetty 파일내 *pts/x 관련설정이존재하는경우 PAM 모듈설정과관계없이 root 계정 접속을허용하므로반드시 "securetty" 파일에서 pts/x 관련설정제거필요 * pts/0 ~ pts/x 설정: tty(terminal-teletype) : 와연결된모니터, 키보드등을통해사용자가콘솔로직접로그인함 pts(pseudo-terminal, 가상터미널 ) : Telnet, SSH, 터미널등을이용하여접속함 AIX 1. vi 편집기를이용하여 /etc/security/user 파일을연후 2. *rlogin 설정을아래와같이수정또는, 신규삽입 (root 설정에해당되는부분수정) ( 수정전) rlogin = true ( 수정후) rlogin = false *rlogin(remote-login): 자주접속하는호스트에대해자동으로원격접속을할수있도록사용하는명령어 HP-UX 1. vi 편집기를이용하여 /etc/securetty 파일을연후 2. 아래와같이주석제거또는, 신규삽입 ( 수정전) #console ( 수정후) console /etc/securetty 파일은디폴트로존재하지않으므로 /etc 디렉터리내에 "securetty" 파일이 존재하지않는경우새로생성한후적용함 #vi /etc/securetty ( vi 편집기를사용한파일생성: 부록참고) 일반적으로영향없음 2
취약점항목 1.2. 패스워드복잡성설정 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-02 사용자계정(root 및일반계정모두해당) 암호를유추하기쉽게설정할경우 비인가자의시스템접근을허용하게하는위험이존재함. 여러문자를혼합한 8자리 이상의암호를사용하게하여패스워드복잡성을높이면비인가자에의해발생하는 침입공격발생률을낮출수있음. 양호 : 영문 숫자 특수문자가혼합된 취약 : 영문 숫자 특수문자혼합되지않은 8자리이상의패스워드가설정된경우 8자미만의패스워드가설정된경우 조치방법계정과유사하지않은 8 자이상의영문, 숫자, 특수문자의조합으로암호설정 SunOS, LINUX, HP-UX AIX OS별점검파일위치및점검방법 /etc/shadow 파일내설정된패스워드점검 /etc/security/passwd 파일내설정된패스워드점검 OS 별점검파일을열어패스워드를확인한후아래의에따라설정을변경함 SunOS, LINUX, AIX, HP-UX 1. < 부적절한패스워드유형 > 사전에나오는단어나이들의조합 2. 길이가너무짧거나, NULL( 공백) 인패스워드 3. 키보드자판의일련의나열 ( 예) abcd, qwert, etc 4. 사용자계정정보에서유추가능한단어들 ( 예) 지역명, 부서명, 계정명, 사용자이름의이니셜, root, rootroot, root123, admin 등 < 패스워드관리방법 > 1. 영문, 숫자, 특수문자를조합하여계정명과상이한 8자이상의패스워드설정 2. 3. 4. 다음각목의문자종류중 2종류이상을조합하여최소 10 자리이상또는, 3종류이상을 조합하여최소 가. 영문대문자(26 개) 나. 영문소문자(26 개) 다. 숫자(10 개) 라. 특수문자(32 개) 8자리이상의길이로구성 시스템마다상이한패스워드사용 패스워드를기록해놓을경우변형하여기록 가급적자주패스워드를변경할것 패스워드변경시 Web, Was, DB연동구간에서문제가발생할수있으므로 연동구간에미칠수있는영향을고려하여적용필요 3
취약점항목 1.3. 계정잠금임계값설정 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-03 침입자에의한패스워드 * 무작위대입공격(Brute Force Attack) 이나패스워드추측 공격(Password Guessing) 발생시암호입력실패횟수를적정하게제한함으로써 자동공격을차단하고공격시간을지체시켜패스워드유출위험을줄일수있음. * 무작위대입공격(Brute Force Attack): 하나하나추론해보는시도를말함. 컴퓨터로암호를해독하기위해가능한모든키를 양호 : 계정잠금임계값이 5 이하의값으로설정되어있는경우 취약 : 계정잠금임계값이설정되어있지않거나,5이하의값으로설정되지않은경우 조치방법계정잠금임계값을 5 이하로설정 SunOS LINUX AIX HP-UX #cat /etc/default/login RETRIES=5 OS 별점검파일위치및점검방법 SunOS 5.9 이상버전일경우추가적으로 policy.conf 파일확인 #cat /etc/security/policy.conf LOCK_AFTER_RETRIES=YES #cat /etc/pam.d/system-auth auth required /lib/security/pam_tally.so deny=5 unlock_time=120 no_magic_root account required /lib/security/pam_tally.so no_magic_root reset #cat /etc/security/user loginretries=5 #cat /tcb/files/auth/system/default u_maxtries#5 위에제시한설정이해당파일에적용되지않은경우아래의에따라설정을변경함 SunOS -SunOS5.9이하버전 - 1. vi 편집기를이용하여 /etc/default/login 2. 아래와같이수정또는, 신규삽입 ( 수정전) #RETRIES=2 ( 수정후) RETRIES=5 파일을연후 -SunOS5.9이상버전 - 1. vi 편집기를이용하여 /etc/default/login 파일을연후 4
2. 아래와같이수정또는, 신규삽입 ( 계정잠금횟수설정) ( 수정전) #RETRIES=2 ( 수정후) RETRIES=5 3. vi 편집기를이용하여 /etc/security/policy.conf 파일을연후 4. 아래와같이수정또는, 신규삽입 ( 계정잠금정책사용설정) ( 수정전) #LOCK_AFTER_RETRIES=NO ( 수정후) LOCK_AFTER_RETRIES=YES LINUX 1. vi 편집기를이용하여 /etc/pam.d/system-auth 파일을연후 2. 아래와같이수정또는, 신규삽입 auth required /lib/security/pam_tally.so deny=5 unlock_time=120 no_magic_root account required /lib/security/pam_tally.so no_magic_root reset 옵션 no_magic_root deny=5 unlock_time reset 설명 root에게는패스워드잠금설정을적용하지않음 5회입력실패시패스워드잠금 계정잠김후마지막계정실패시간부터설정된시간이지나면자 동계정잠김해제 ( 단위: 초 ) 접속시도성공시실패한횟수초기화 AIX 1. vi 편집기를이용하여 /etc/security/user 2. 아래와같이수정또는, 신규삽입 ( 수정전) loginretries = 0 ( 수정후) loginretries = 5 파일을연후 HP-UX 1. vi 편집기를이용하여 /tcb/files/auth/system/default 2. 아래와같이수정또는, 신규삽입 ( 수정전) u_maxtries# ( 수정후) u_maxtries#5 파일을연후 HP-UX 에계정잠금정책설정을위해서는 HP-UX 가 Trusted Mode로동작하고 있어야하므로 Trusted Mode로전환한후잠금정책적용 Trusted Mode 로전환시파일시스템구조가변경되어운영중인서비스에문제가 발생할수있으므로충분한테스트를거친후 Trusted Mode로의전환이필요함 5
취약점항목 1.4. 패스워드파일보호 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-04 조치방법 패스워드정보를평문으로저장하는경우정보유출피해가발생할수있으므로 패스워드를암호화하여보호하여야함. 쉐도우패스워드를사용하여 /etc/shadow 파일에암호화된패스워드가저장되도록하고특별권한이있는사용자들만읽을수 있도록제한함. 양호 : 취약 : 쉐도우패스워드를사용하거나, 패스워드를암호화하여저장하는경우 쉐도우패스워드를사용하지않고, 패스워드를암호화하여저장하지않는경우 패스워드암호화저장 관리설정적용 SunOS, LINUX HP-UX OS 별점검파일위치및점검방법 1. /shadow 파일존재확인 ( 일반적으로 /etc 디렉터리내존재) #ls /etc 2. /etc/passwd 파일내두번째필드가 "x" 표시되는지확인 #cat /etc/passwd root:x:0:0:root:/root:/bin/bash ( passwd" 파일구조: 부록참조) 1. /tcb 디렉터리존재확인 2. /etc/passwd 파일내두번째필드가 "x" 표시되는지확인 위에제시한설정이적용되지않은경우아래의에따라설정을변경함 SunOS, LINUX 1. #pwconv ---> 쉐도우패스워드정책적용방법 2. #pwunconv ---> 일반패스워드정책적용방법 AIX AIX 는기본적으로 /etc/security/passwd 파일에패스워드를암호화하여저장 관리함 HP-UX HP-UX 는 Trusted Mode 로전환할경우패스워드를암호화하여 /tcb/files/auth 디렉터리에 계정이니셜과계정이름에따라파일로저장 관리할수있으므로 UnTrusted Mode 인경우모드를전환함 1. Trusted Mode 전환방법: root 계정으로로그인한후아래명령수행 #/etc/tsconvert 2. UnTrusted Mode 전환방법: root 계정으로로그인한후아래명령수행 #/etc/tsconvert -r Trusted Mode인지확인후 Trusted Mode 로전환시파일시스템구조가변경되어운영중인서비스에문제가 발생할수있으므로충분한테스트를거친후 Trusted Mode로의전환필요 6
취약점항목 1.5. root 이외의 UID 가 '0' 금지 대상 OS SunOS, LINUX, AIX, HP-UX 위험도중 Code U-05 조치방법 root(uid=0) 와동일한*UID(User Identification) 를가진계정존재시root 권한으로 시스템접근이가능하므로 root의 UID 를가진계정이존재하지않도록확인하여야함. root뿐만아니라사용자간 UID 어렵게되는문제가발생하므로계정및 중복시에도권한중복으로인한사용자감사추적이 UID 확인이필요함. *UID(User Identification): 여러명의사용자가동시에사용하는시스템에서사용자가자신을 대표하기위해쓰는이름. 양호 : root 계정과동일한 UID를갖는계정이존재하지않는경우 취약 : root 계정과동일한 UID를갖는계정이존재하는경우 UID가 0인계정존재시변경할 UID를확인후다른 UID 로변경및불필요시삭제, 계정이사용중이면명령어로조치가안되므로 /etc/passwd 파일설정변경 OS 별점검파일위치및점검방법 SunOS, LINUX, AIX, HP-UX #cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin ( passwd" 파일구조: 부록참조) daemon:x:2:2:daemon:/sbin:/sbin/nologin /etc/passwd 파일내 UID 확인 ( 번째필드값) root 이외의계정이 UID=0 인경우 0이아닌적절한 UID 부여 위에제시한설정이해당파일에적용되지않은경우아래의에따라설정을변경함 SunOS, LINUX, HP-UX 1. usermod 명령으로 UID가 0인일반계정의 UID를 100 이상으로수정! SunOS, HP-UX의경우100 이상! LINUX의경우500 이상 ( 예) test 계정의 UID를 2002 로바꿀경우 #usermod u 2002 test 각 OS별로사용자 UID 체계가달라시스템계정및일반사용자계정이부여받는값의범위에 차이가있으며, 공통적으로관리자는 "UID=0" 을부여받음 AIX 1. chuser 명령으로 UID가 0인일반계정의 UID를 100 이상으로수정 ( 예) test 계정의 UID 를 2002 로바꿀경우 7
#chuser id=2002 test passwd 파일구조 root: x: 0: 1: Super-User: /: /usr/bin/ksh loginid: x: UID: GID: comment: home_directory: login_shell ( 예 ) r o o t : x : 0 : 0 : r o o t : / r o o t : / b i n / b a s h bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin nobody:x:99:99:nobody:/:/sbin/nologin 위의예는 /etc/passwd 파일의내용으로 : 을사용하여필드를구분함 번째필드(UID) 가 0 인경우슈퍼유저권한을갖으며, 0 이외의계정은일반계정으로 볼수있음 해당계정에관리자권한이필요하지않으면일반적으로영향없음 8
취약점항목 1.6. root 계정 su 제한 대상 OS SunOS, LINUX, AIX, HP-UX 위험도하 Code U-06 권한이없는일반사용자가 su 명령을사용하여로그인을시도하고패스워드무작위 대입공격(Brute Force Attack) 이나패스워드추측공격(Password Guessing) 을통해 root 권한을획득할수있음. su 명령어사용이허용된사용자만 root 계정으로 접속할수있도록함. 점검기준 양호 : 취약 : su su 명령어를특정그룹에속한사용자만사용하도록제한되어있는경우 명령어를모든사용자가사용하도록설정되어있는경우 조치방법 일반사용자의 su 명령사용제한 1. Group 생성( 생성할그룹요청, 일반적으로 wheel 사용) 2. su 명령어의그룹을요청받은그룹으로변경 3. su 명령어의권한변경(4750) 4. su 명령어사용이필요한계정을새로생성한그룹에추가( 추가할계정요청) LINUX 의경우, *PAM( Pluggable Authentication Module) 을이용한설정가능 *PAM(Pluggable Authentication Module): 사용자를인증하고그사용자의서비스에대한액 스를제어하는모듈화된방법을말하며, PAM은관리자가응용프로그램들의사용자인증방법을선택할수있도록해줌 OS 별점검파일위치및점검방법 SunOS, LINUX, AIX, HP-UX 1. wheel 그룹(su 명령어사용그룹) 및그룹내구성원존재여부확인 #cat /etc/group wheel:x:10:root,admin ( group" 파일구조: 부록참조) 2. wheel 그룹이 su 명령어를사용할수있는지설정여부확인 [SunOS] #ls -al /usr/bin/su #chgrp security su #chmod 4750 su [AIX] #cat /etc/security/user ---> default 의 "sugroups=staff" 설정확인 /etc/group 에서 staff 그룹에해당하는계정만 su 사용가능 [HP-UX] #vi /etc/default/security ---> SU_ROOT_GROUP=wheel 설정확인 3. 파일권한확인 #ls -l /usr/bin/su -rwsr-x--- /usr/bin/su ( 파일권한이 4750 인경우양호) 9
OS 별점검파일위치및점검방법 LINUX PAM 모듈이용시 1. wheel 그룹(su 명령어사용그룹) 및그룹내구성원존재여부확인 #cat /etc/group wheel:x:10:root,admin 2. 허용그룹(su 명령어사용그룹) 설정여부확인 #cat /etc/pam.d/su auth required /lib/security/pam_wheel.so debug group=wheel 또는, auth required /lib/security/$isa/pam_wheel.so use_uid 위에제시한설정이해당파일에적용되지않은경우아래의에따라설정을변경함 SunOS, LINUX, HP-UX 1. wheel group 생성 (wheel 그룹이존재하지않는경우) #groupadd wheel 2. su 명령어그룹변경 #chgrp wheel /usr/bin/su 3. su 명령어사용권한변경 #chmod 4750 /usr/bin/su 4. wheel 그룹에 su 명령허용계정등록 #usermod G wheel <user_name> 또는, 직접 /etc/group 파일을수정하여필요한계정등록 wheel:x:10: -> wheel:x:10:root,admin AIX 1. wheel group 생성(wheel 그룹이존재하지않는경우) #mkgroup wheel 2. su 명령어그룹변경 #chgrp wheel /usr/bin/su 3. su 명령어사용권한변경 #chmod 4750 /usr/bin/su 4. wheel 그룹에 su 명령허용계정등록 #chgroup users=<user_name> wheel ( 예 ) chgroup users=admin wheel LINUX PAM 모듈을이용한설정방법 1. /etc/pam.d/su 파일을아래와같이설정( 주석제거) auth sufficient /lib/security/pam_rootok.so auth required /lib/security/pam_wheel.so debug group=wheel 또는, auth sufficient /lib/security/$isa/pam_rootok.so auth required /lib/security/$isa/pam_wheel.so use_uid 10
2. wheel 그룹에 su 명령어를사용할사용자추가 #usermod G wheel <user_name> 또는, 직접 /etc/group 파일을수정하여필요한계정추가 wheel:x:10: -> wheel:x:10:root,admin 그룹에추가된계정들은모든 Session 종료후재로그인시 su 명령어사용가능 11
취약점항목 1.7. 패스워드최소길이설정 대상 OS SunOS, LINUX, AIX, HP-UX 위험도중 Code U-07 패스워드무작위대입공격(Brute Force Attack) 이나패스워드추측공격(Password Guessing) 을피하기위하여패스워드최소길이가설정되어있는지점검함. 패스워드 최소길이가설정되어있지않거나, 짧게설정되어있을경우쉽게유추될수있음. 양호 : 패스워드최소길이가 8자이상으로설정되어있는경우 취약 : 패스워드최소길이가 8자미만으로설정되어있는경우 조치방법패스워드정책설정파일을수정하여패스워드최소길이를 8자이상으로설정 SunOS LINUX AIX HP-UX OS별점검파일위치및점검방법 #cat /etc/default/passwd PASSLENGTH=8 #cat /etc/login.defs PASS_MIN_LEN 8 #cat /etc/security/user minlen=8 #cat /etc/default/security MIN_PASSWORD_LENGTH=8 위에제시한설정이해당파일에적용되지않은경우아래의에따라설정을변경함 SunOS 1. vi 편집기를이용하여 /etc/default/passwd 2. 아래와같이수정또는, 신규삽입 ( 수정전) PASSLENGTH=6 ( 수정후) PASSLENGTH=8 파일을연후 LINUX 1. vi 편집기를이용하여 /etc/login.defs 2. 아래와같이수정또는, 신규삽입 ( 수정전) PASS_MIN_LEN 6 ( 수정후) PASS_MIN_LEN 8 파일을연후 AIX 1. vi 편집기를이용하여 /etc/security/user 파일을연후 2. default: 부분을아래와같이수정또는, 신규삽입 ( 수정전) minlen=4 ( 수정후) minlen=8 12
HP-UX 1. vi 편집기를이용하여 /etc/default/security 2. 아래와같이수정또는, 신규삽입 ( 수정전) MIN_PASSWORD_LENGTH= ( 수정후) MIN_PASSWORD_LENGTH=8 파일을연후 일반적으로영향없음 13
취약점항목 1.8. 패스워드최대사용기간설정 대상 OS SunOS, LINUX, AIX, HP-UX 위험도중 Code U-08 패스워드최대사용기간을설정하지않은경우일정기간경과후에도유출된 패스워드로접속이가능함. 악의적인사용자로부터계속적인접속을차단하기위해 패스워드최대사용기간을설정하여주기적으로변경할수있도록함. 양호 : 패스워드최대사용기간이 90 일(12 주) 이하로설정되어있는경우 취약 : 패스워드최대사용기간이 90 일(12 주) 이하로설정되어있지않는경우 조치방법패스워드정책설정파일을수정하여패스워드최대사용기간을 90 일(12 주) 로설정 SunOS LINUX AIX HP-UX #cat /etc/default/passwd MAXWEEKS=12 #cat /etc/login.defs PASS_MAX_DAYS 90 #cat /etc/security/user maxage=12 #cat /etc/default/security PASSWORD_MAXDAYS=90 OS 별점검파일위치및점검방법 위에제시한설정이해당파일에적용되지않은경우아래의에따라설정을변경함 SunOS 1. vi 편집기를이용하여 /etc/default/passwd 2. 아래와같이수정또는, 신규삽입 ( 수정전) MAXWEEKS= ( 수정후) MAXWEEKS=12 ( 단위: 주) 파일을연후 LINUX 1. vi 편집기를이용하여 /etc/login.defs 파일을연후 2. 아래와같이수정또는, 신규삽입 ( 수정전) PASS_MAX_DAYS 99999 ( 수정후) PASS_MAX_DAYS 90 ( 단위: 일) AIX 1. vi 편집기를이용하여 /etc/security/user 파일을연후 2. default: 부분을아래와같이수정또는, 신규삽입 ( 수정전) maxage=0 ( 수정후) maxage=12 ( 단위: 주) 14
HP-UX 1. vi 편집기를이용하여 /etc/default/security 파일을연후 2. 아래와같이수정또는, 신규삽입 ( 수정전) PASSWORD_MAXDAYS=99999 ( 수정후) PASSWORD_MAXDAYS=90 ( 단위: 일) 일반적으로영향없음 15
취약점항목 1.9. 패스워드최소사용기간설정 대상 OS SunOS, LINUX, AIX, HP-UX 위험도중 Code U-09 패스워드최소사용기간을설정하지않은경우사용자에게익숙한패스워드로변경이 가능하며, 이를재사용함으로써패스워드의정기적인변경은무의미해질수있음. 이전암호를그대로재사용하는것을방지하기위해최근암호기억설정을함께 적용하여패스워드를보호함. 양호 : 패스워드최소사용기간이 1 일(1 주) 로설정되어있는경우 취약 : 패스워드최소사용기간이설정되어있지않는경우 조치방법패스워드정책설정파일을수정하여패스워드최소사용기간을 1 일(1 주) 로설정 SunOS LINUX AIX HP-UX OS별점검파일위치및점검방법 #cat /etc/default/passwd MINWEEKS=1 #cat /etc/login.defs PASS_MIN_DAYS 1 #cat /etc/security/user minage=1 #cat /etc/default/security PASSWORD_MINDAYS=1 위에제시한설정이해당파일에적용되지않은경우아래의에따라설정을변경함 SunOS 1. vi 편집기를이용하여 /etc/default/passwd 2. 아래와같이수정또는, 신규삽입 ( 수정전) MINWEEKS= ( 수정후) MINWEEKS=1 ( 단위: 주) 파일을연후 LINUX 1. vi 편집기를이용하여 /etc/login.defs 파일을연후 2. 아래와같이수정또는, 신규삽입 ( 수정전) PASS_MIN_DAYS ( 수정후) PASS_MIN_DAYS 1 ( 단위: 일) AIX 1. vi 편집기를이용하여 /etc/security/user 파일을연후 2. default 부분을아래와같이수정또는, 신규삽입 ( 수정전) minage=1 16
( 수정후) minage=1 ( 단위: 주) HP-UX 1. vi 편집기를이용하여 /etc/default/security 파일을연후 2. 아래와같이수정또는, 신규삽입 ( 수정전) PASSWORD_MINDAYS= ( 수정후) PASSWORD_MINDAYS=1 ( 단위: 일) 일반적으로영향없음 17
취약점항목 1.10. 불필요한계정제거 대상 OS SunOS, LINUX, AIX, HP-UX 위험도하 Code U-10 조치방법 OS나 Package 설치시 Default 로생성되는계정은대부분 Default 패스워드를사용하는 경우가많으며패스워드추측공격에악용될수있으므로시스템에서이용하지않는 "lp, uucp, nuucp 등의 Default 계정및의심스러운특이한계정의존재유무를확인후 삭제함. 또한, 관리되지않은불필요한계정으로인해시스템접속이가능하므로퇴직, 전직, 휴직등의이유로더이상사용하지않는계정, 불필요한계정, 의심스러운 계정은제거해야함. 특히, 장기간패스워드가변경되지않은미사용계정은반복적인 패스워드추측공격(Password Guessing) 이가능하고해당계정정보의유출여부확인이 어려움. 양호 : 취약 : 불필요한계정이존재하지않는경우 불필요한계정이존재하는경우 현재등록된계정현황확인후불필요한계정삭제 OS 별점검파일위치및점검방법 SunOS, LINUX, AIX, HP-UX LOG를통한확인 1. 미사용계정및의심스러운계정존재여부확인 ( passwd" 파일구조: 부록참조) #cat /etc/passwd 2. 사용하지않는 Default 계정점검 ( lp, uucp, nuucp 계정존재확인예시) 1. #cat /etc/passwd egrep "lp uucp nuucp 로그인실패기록점검을통해미사용계정및의심스러운계정확인 #cat /var/adm/loginlog (SunOS, AIX, HP-UX) / #cat /var/log/loginlog (LINUX) #cat /var/adm/authlog (AIX, HP-UX) / #cat /var/log/authlog (SunOS) #cat /var/adm/sulog (SunOS, AIX, HP-UX) / #cat /var/log/sulog (LINUX) 파일의위치는버전별다를수있음 위에제시한점검방법에의해불필요한계정발견시아래의에따라조치함 SunOS, LINUX, HP-UX 1. 에등록된불필요한사용자계정확인 2. userdel 명령으로불필요한사용자계정삭제 #userdel <user_name> /etc/passwd 파일에서계정앞에 # 을삽입하여도주석처리가되지않으므로조치시에는반드시계정을삭제하도록권고함 AIX 1. 에등록된불필요한사용자계정확인 18
2. rmuser 명령으로불필요한사용자계정삭제 #rmuser <user_name> 기본적으로차단하는 Default 계정 ( 계정설명: 부록참조) adm, lp, sync, shutdown, halt, news, uucp, operator, games, gopher, nfsnobody, squid 등 일반적으로영향없음 19
취약점항목 1.11. 관리자그룹에최소한의계정포함 대상 OS SunOS, LINUX, AIX, HP-UX 위험도하 Code U-11 조치방법 시스템을관리하는 root 계정이속한그룹은시스템운영파일에대한접근권한이부 여되어있으므로최소한의계정만등록되어있어야함. 해당그룹관리가이루어지지 않으면허가되지않은일반사용자가관리자의권한으로시스템에접근할수있으며, 파일수정및변경등의악의적인작업으로인해시스템운영에피해를줄수있음. 양호 : 관리자그룹에불필요한계정이등록되어있지않은경우 취약 : 관리자그룹에불필요한계정이등록되어있는경우 현재등록된계정현황확인후불필요한계정삭제 OS 별점검파일위치및점검방법 SunOS, LINUX, HP-UX AIX #cat /etc/group root:x:0:root #cat /etc/group system:!:0:root ( group" 파일구조: 부록참조) 불필요한계정이관리자그룹에포함되어있는경우아래의에따라설정을변경함 SunOS, LINUX, HP-UX 1. vi 편집기를이용하여 /etc/group 파일을연후 2. root 그룹에등록된불필요한계정삭제 ( 예) root 그룹에등록된불필요한 test 계정삭제 ( 수정전) root:x:0:root,test ( 수정후) root:x:0:root AIX 1. vi 편집기를이용하여 /etc/group 파일을연후 2. system 그룹에등록된불필요한계정삭제 ( 예) system 그룹에등록된불필요한 test 계정삭제 ( 수정전) system:!:0:root,test ( 수정후) system:!:0:root 일반적으로영향없음 20
취약점항목 1.12. 계정이존재하지않는 GID 금지 대상 OS SunOS, LINUX, AIX, HP-UX 위험도하 Code U-12 미흡한계정그룹관리로인해구성원이없는그룹이존재할경우해당그룹소유의 파일이비인가자에게노출될위험이있음. 계정이존재하지않는 *GID(Group Identification) 설정을관리자와검토후제거하여야함. * GID(Group Identification): 다수의사용자가특정개체를공유할수있게연계시키는특정 그룹의이름으로주로계정처리목적으로사용되며, 한사용자는여러개의 GID 를가질수있음. 조치방법 양호 : 존재하지않는계정에 GID 설정을금지한경우 취약 : 존재하지않은계정에 GID 설정이되어있는경우 구성원이존재하지않는그룹이있을경우관리자와검토하여제거 #cat /etc/group OS 별점검파일위치및점검방법 ( group" 파일구조: 부록참조) SunOS, LINUX, HP-UX, AIX #cat /etc/gshadow *gshadow 파일: shadow 파일에사용자계정의암호가저장되어있는것처럼 LINUX, 시스템내존재하는그룹의암호정보저장파일로그룹관리자및구성원설정가능 gshadow 파일내필드는다음과구조로구성됨 [ 그룹명 : 패스워드 : 관리자, 관리자 : 멤버, 멤버 ] 구성원이없는그룹이존재하는경우아래의에따라그룹을제거함 SunOS, LINUX, AIX, HP-UX #groupdel <group_name> 구성원이없거나, 더이상사용하지않는그룹명삭제 일반적으로영향없음 21
취약점항목 1.13. 동일한 UID 금지 대상 OS SunOS, LINUX, AIX, HP-UX 위험도중 Code U-13 시스템은모든사용자계정에 UID를부여하여해당 UID 로사용자이름, 패스워 드, 홈디렉터리등과같은사용자정보를대응시킴. 만약중복된 UID가존재할경우 시스템에서동일한사용자로인식하여문제가발생할수있으며, 공격자에의한개인 정보및관련데이터유출발생시에도감사추적이어렵게됨. 양호 : 동일한 UID로설정된사용자계정이존재하지않는경우 취약 : 동일한 UID로설정된사용자계정이존재하는경우 조치방법동일한 UID로설정된사용자계정의 UID를서로다른값으로변경 SunOS, LINUX, AIX, HP-UX OS 별점검파일위치및점검방법 #cat /etc/passwd ( passwd" 파일구조: 부록참조) 동일한 UID를갖는계정이존재하는경우아래의에따라설정을변경함 SunOS, LINUX, HP-UX usermod 명령으로동일한 UID로설정된사용자계정의 UID 변경 #usermod u < 변경할 UID 값> <user_name> AIX chuser 명령으로동일한 UID로설정된사용자계정의 UID 변경 #chuser id=< 변경할 UID 값> <user_name> 일반적으로영향없음 22
취약점항목 1.14. 사용자 shell 점검 대상 OS SunOS, LINUX, AIX, HP-UX 위험도하 Code U-14 로그인이필요없는계정을이용해시스템에접근하여사용자의명령어를해석하고 악용할가능성이있으므로,/bin/false* 쉘(Shell) 을부여해로그인을금지함. * 쉘(Shell): 대화형사용자인터페이스로써, 운영체제(OS) 가장외곽계층에존재하여사용자의 명령어를이해하고실행함. 양호 : 로그인이필요하지않은계정에 /bin/false(nologin) 쉘이부여되어있는경우 취약 : 로그인이필요하지않은계정에 /bin/false(nologin) 쉘이부여되지않은경우 조치방법로그인이필요하지않은계정에대해 /bin/false(nologin) 쉘부여 SunOS, LINUX, AIX, HP-UX OS별점검파일위치및점검방법 #cat /etc/passwd egrep "^daemon ^bin ^sys ^adm ^listen ^nobody ^nobody4 ^noaccess ^diag ^ listen ^operator ^games ^gopher" grep -v "admin" 시스템에불필요한계정을확인한후 에따라설정을변경함 /bin/false(nologin) 쉘이부여되어있지않은경우아래의 ( 불필요한계정은시스템용도에따라차이가있음) SunOS, LINUX, AIX, HP-UX 1. vi 편집기를이용하여 /etc/passwd 파일을연후 2. 로그인쉘부분인계정맨마지막에 /bin/false(nologin) 부여및변경 ( 수정전) daemon:x:1:1::/:/sbin/ksh ( 수정후) daemon:x:1:1::/:/bin/false 또는, daemon:x:1:1::/:/sbin/nologin 일반적으로로그인이불필요한계정 ( 계정설명: 부록참조) daemon, bin, sys, adm, listen, nobody, nobody4, noaccess, diag, listen, operator, games, gopher 등일반적으로 UID 100 이하 60000 이상의시스템계정해당 일반적인경우영향없음 모호한경우 /etc/shadow 파일에서해당계정에패스워드존재여부로확인 23
취약점항목 1.15. Session Timeout 설정 대상 OS SunOS, LINUX, AIX, HP-UX 위험도하 Code U-15 계정이접속된상태로방치될경우권한이없는사용자에게중요시스템이노출되어 악의적인목적으로사용될수있으므로일정시간이후어떠한이벤트가발생하지않 으면연결을종료하는 Session Timeout 설정이필요함. 양호 : Session Timeout이 600 초(10 분) 이하로설정되어있는경우 취약 : Session Timeout이 600 초(10 분) 이하로설정되지않은경우 조치방법 600 초(10 분) 동안입력이없을경우접속된 Session을끊도록설정 OS 별점검파일위치및점검방법 SunOS LINUX, AIX, HP-UX #cat /etc/default/login TIMEOUT=600 export TMOUT <sh, ksh, bash 사용시> #cat /etc/profile(.profile) TIMEOUT=600 export TMOUT <csh 사용시> #cat /etc/csh.login 또는, #cat /etc/csh.cshrc set autologout=10 위에제시한설정이해당파일에적용되지않은경우아래의에따라설정을변경함 SunOS 1. vi 편집기를이용하여 /etc/default/login 2. 아래와같이수정또는, 신규삽입 TIMEOUT=600 ( 단위: 초) export TMOUT 파일을연후 LINUX, AIX, HP-UX -sh(bornshell),ksh(kornshell),bash(bornagainshell) 을사용하는경우 - 1. vi 편집기를이용하여 /etc/profile(.profile) 파일을연후 2. 아래와같이수정또는, 추가 TIMEOUT=600 ( 단위: 초) export TMOUT 24
-csh을사용하는경우 - 1. vi 편집기를이용하여 /etc/csh.login 또는, /etc/csh.cshrc 파일을연후 2. 아래와같이수정또는, 추가 set autologout=10 ( 단위: 분) 모니터링용도로사용할경우해당계정의환경변수파일에만예외적으로 이상의시간입력 ( 예) root 로모니터링할경우 /.profile, /.bash_profile 등에 600초이상입력 600초 25
2. 파일및디렉터리관리 취약점항목 2.1. root 홈, 패스디렉터리권한및패스설정 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-16 root 계정의 PATH 환경변수에. ( 현재디렉터리지칭) 이포함되어있으면, root 계정의인가자로인해비의도적으로현재디렉터리에위치하고있는명령어가실행될 수있음. 즉. 이/usr/bin 이나/bin, /sbin 등명령어들이위치하고있는디렉터리보다 우선하여위치하고있을경우,root 계정의인가자가특정명령을실행하면, 비인가자가 불법적으로위치시킨파일을실행하여예기치않은결과를가져올수있음. 잘못된 PATH 의우선순위등이침해사고에이용될수있으므로. 뿐만아니라 비인가자가불법적으로생성한디렉터리를우선으로가리키지않도록설정함. 조치방법 양호 : PATH 환경변수에. 이맨앞이나중간에포함되지않은경우 취약 : PATH 환경변수에. 이맨앞이나중간에포함되어있는경우 root 계정의환경변수설정파일( /.profile, /.cshrc 등) 과 /etc/profile 등에서 PATH 환경변수에포함되어있는현재디렉터리를나타내는. 을 PATH 환경변수의 마지막으로이동 /etc/profile, root 계정의환경변수파일, 일반계정의환경변수파일을순차적으로 검색하여확인 OS 별점검파일위치및점검방법 SunOS, LINUX, AIX, HP-UX #echo $PATH /usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin/x11:/usr/local/bin:/usr/bi n:/usr/x11r6/bin:/root/bin 위와같이출력되는 PATH 변수내에. 또는, :: 포함여부확인 PATH 변수내에., :: 이맨앞에존재하는경우아래의에따라설정을변경함 SHELL 에따 참조되는환경설정파일 /bin/sh /bin/csh /etc/profile, $HOME/.profile $HOME/.cshrc, $HOME/.login, /etc/.login /bin/ksh /bin/bash /etc/profile, $HOME/.profile, $HOME/kshrc /etc/profile, $HOME/.bash_profile 홈디렉터리에설정된값이가장늦게적용되어최종 PATH로설정됨 26
SunOS, LINUX, AIX, HP-UX 1. vi 편집기를이용하여 root 계정의설정파일(~/.profile 과 /etc/profile) 을연후 2. #vi /etc/profile 아래와같이수정 ( 수정전) PATH=.:$PATH:$HOME/bin ( 수정후) PATH=$PATH:$HOME/bin 환경변수파일은 OS별로약간씩다를수있음 일반적인경우영향없음 27
취약점항목 2.2. 파일및디렉터리소유자설정 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-17 조치방법 소유자가존재하지않는파일및디렉터리는현재권한이없는자( 퇴직, 전직, 휴직 등의 ) 소유였거나, 관리소홀로인해생긴파일일가능성이있음. 만약중요파일및 디렉터리일경우문제가발생할수있으므로관리가필요함. 양호 : 소유자가존재하지않은파일및디렉터리가존재하지않는경우 취약 : 소유자가존재하지않은파일및디렉터리가존재하는경우 소유자가존재하지않은파일및디렉터리삭제또는, 소유자변경 OS 별점검파일위치및점검방법 SunOS, AIX HP-UX LINUX 소유자가 nouser, nogroup인파일이나디렉터리검색 #find / -nouser -o -nogroup -xdev -ls 2> /dev/null #find / \( -nouser -o -nogroup \) -xdev -exec ls -al {} \; 2> dev/null #find / -nouser -print #find / -nogroup -print 소유자가 nouser, nogroup인파일이나디렉터리존재하는경우아래의에따라 디렉터리및파일삭제또는, 소유자및그룹을변경함 SunOS, LINUX, AIX, HP-UX 1. 소유자가존재하지않는파일이나디렉터리가불필요한경우 rm #rm <file_name> #rm <directory_name> 삭제할파일명또는, 디렉터리명입력 2. 필요한경우 chown 명령으로소유자및그룹변경 #chown <user_name> <file_name> 명령으로삭제 일반적인경우영향없음 28
취약점항목 2.3. /etc/passwd 파일소유자및권한설정 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-18 /etc/passwd 파일은사용자의 ID, 패스워드( 보안상 x 로표시), UID, GID, 홈 디렉터리, 쉘정보를담고있는중요파일로관리자이외의사용자가 "/etc/passwd 파일에접근시 root 권한획득이가능하므로해당파일의접근을제한하여야함. 양호 : /etc/passwd 파일의소유자가 root 이고, 권한이 644 이하인경우 취약 : /etc/passwd 파일의소유자가 root 가아니거나, 권한이 644 이하가아닌경우 조치방법 /etc/passwd 파일의소유자및권한변경 ( 소유자 root, 권한 644) SunOS, LINUX, AIX, HP-UX OS별점검파일위치및점검방법 /etc/passwd 파일의소유자및권한확인 #ls -l /etc/passwd r--r--r-- root <passwd 파일> passwd 파일의소유자가 root가아니거나파일의권한이 644 이하가아닌경우아래의 에따라설정을변경함 SunOS, LINUX, AIX, HP-UX /etc/passwd 파일의소유자및권한변경 ( 소유자 root, 권한 644, HP-UX 는 400) #chown root /etc/passwd #chmod 444 /etc/passwd 일반적인경우영향없음 29
취약점항목 2.4. /etc/shadow 파일소유자및권한설정 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-19 /etc/shadow 파일은시스템에등록된모든계정의패스워드를암호화된형태로 저장및관리하고있는중요파일로 root 계정을제외한모든사용자의접근을 제한하여야함. 해당파일에대한권한관리가이루어지지않을경우 ID 및패스워드 정보가외부로노출될수있는위험이존재함. 양호 : /etc/shadow 파일의소유자가 root 이고, 권한이 400인경우 취약 : /etc/shadow 파일의소유자가 root 가아니거나, 권한이 400이아닌경우 조치방법 /etc/shadow 파일의소유자및권한변경 ( 소유자 root, 권한 400) SunOS, LINUX AIX HP-UX OS 별점검파일위치및점검방법 #ls-l/etc/shadow r-------- root <shadow 파일 > #ls-ld/etc/security/passwd r-------- root <passwd 파일 > #ls-ld/tcb/files/auth r-------- root < auth 디렉터리> ( shadow 파일구조: 부록참고) ( passwd 파일구조: 부록참고) 위에제시된파일및디렉터리의소유자가 root가아니거나파일의권한이 400이아닌경우 아래의에따라설정을변경함 SunOS, LINUX 1. /etc/shadow #ls -l /etc/shadow 파일의소유자및권한확인 2. /etc/shadow 파일의소유자및권한변경 ( 소유자 root, 권한 400) #chown root /etc/shadow #chmod 400 /etc/shadow AIX AIX 는기본적으로 /etc/security/passwd 파일에패스워드를암호화하여저장 관리하므로 해당디렉터리권한을기준에맞게설정 1. /etc/security/passwd #ls -ld /etc/security/passwd 디렉터리의소유자및권한확인 2. /etc/security/passwd 디렉터리의소유자및권한변경 ( 소유자 root, 권한 400) #chown root /etc/security/passwd #chmod 400 /etc/security/passwd 30
HP-UX HP-UX 는 Trusted Mode 로전환할경우패스워드를암호화하여 /tcb/files/auth 디렉터리에 계정이니셜과계정명에따라파일로저장 관리가능 1. /tcb/files/auth 디렉터리의소유자및권한확인 #ls -ld /tcb/files/auth 2. /tcb/files/auth 디렉터리의소유자및권한변경 ( 소유자 root, 권한 400) #chown root /tcb/files/auth #chmod 400 /tcb/files/auth 일반적인경우영향없음 31
취약점항목 2.5. /etc/hosts 파일소유자및권한설정 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-20 /etc/hosts 파일은 IP 주소와호스트네임을매핑하는데사용되는파일이며, 이파일의접근권한설정이잘못설정되어있을경우악의적인시스템을신뢰하게 되므로 /etc/hosts 파일에대한접근권한을제한하고있는지점검함. 양호 : /etc/hosts 파일의소유자가 root 이고, 권한이 600인경우 취약 : /etc/hosts 파일의소유자가 root 가아니거나, 권한이 600이아닌경우 조치방법 /etc/hosts 파일의소유자및권한변경 ( 소유자 root, 권한 600) OS 별점검파일위치및점검방법 SunOS, LINUX, AIX, HP-UX # ls -l /etc/hosts rw------- root <hosts 파일> hosts 파일의소유자가 root가아니거나파일의권한이 600이아닌경우아래의에 따라설정을변경함 SunOS, LINUX, AIX, HP-UX /etc/hosts" 파일의소유자및권한변경 ( 소유자 root, 권한 600) #chown root /etc/hosts #chmod 600 /etc/hosts 일반적인경우영향없음 32
취약점항목 2.6. /etc/(x)inetd.conf 파일소유자및권한설정 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-21 * 인터넷슈퍼데몬서비스설정파일인 inetd.conf(xinetd.d) 파일에대한접근권한제한 여부를점검함.Inetd.conf(xinetd.d) 의접근권한이잘못설정되어있을경우 비인가자가악의적인프로그램을등록하고 서비스에영향을줄수있음. root 권한으로서비스를실행시켜기존 * 인터넷슈퍼데몬: 외부네트워크의요청이있을때 /etc/inetd.conf 에등록된내부프로그램인 인터넷서비스들의데몬을실행시켜주는역할을함. 양호 : /etc/inetd.conf 파일의소유자가 root 이고, 권한이 600인경우 취약 : /etc/inetd.conf 파일의소유자가 root 가아니거나, 권한이 600이아닌경우 조치방법 /etc/inetd.conf 파일의소유자및권한변경 ( 소유자 root, 권한 600) SunOS, LINUX, AIX, HP-UX LINUX (Xinetd) OS 별점검파일위치및점검방법 /etc/inetd.conf #ls -l /etc/inetd.conf 파일의소유자및권한확인 rw------- root <inetd.conf 파일> /etc/xinetd.conf" 소유자및권한확인 #ls -l /etc/xinetd.conf #ls -al /etc/xinetd.d/* 파일및 /etc/xinetd.d/" rw------- root <xinetd.conf 파일> rw------- root <xinetd.d 디렉터리내모든파일> 하위모든파일의 인터넷슈퍼데몬서비스설정파일의소유자가 root가아니거나파일의권한이 600이아닌경우 아래의에따라설정을변경함 SunOS, LINUX, AIX, HP-UX /etc/inetd.conf 파일의소유자및권한변경 ( 소유자 root, 권한 600) #chown root /etc/inetd.conf #chmod 600 /etc/inetd.conf LINUX - xinetd /etc/inetd.conf 파일의소유자및권한변경 ( 소유자 root, 권한 600) #chown root /etc/xinetd.conf #chmod 600 /etc/xinetd.conf "/etc/xinetd.d/" 하위디렉터리에취약한파일도위와동일한방법으로조치 일반적인경우영향없음 33
취약점항목 2.7. /etc/syslog.conf 파일소유자및권한설정 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-22 /etc/syslog.conf 파일은시스템운영중발생하는주요로그기록을설정하는 파일로관리자이외의사용자는해당파일을변경할수없도록하여야함. 만약, 해당 파일의접근권한이적절하지않을경우시스템로그가정상적으로기록되지않아 침입자의흔적또는, 시스템오류사항을정확히분석할수없음. 양호 : /etc/syslog.conf 파일의소유자가 root 이고, 권한이 644인경우 취약 : /etc/syslog.conf 파일의소유자가 root 가아니거나, 권한이 644가아닌경우 조치방법 /etc/syslog.conf 파일의소유자및권한변경 ( 소유자 root, 권한 644) SunOS, LINUX, AIX, HP-UX OS 별점검파일위치및점검방법 /etc/syslog.conf #ls -l /etc/syslog.conf 파일의소유자및권한확인 rw-r--r-- root <syslog.conf 파일> syslog.conf 파일의소유자가 root가아니거나파일의권한이 644가아닌경우아래의 에따라설정을변경함 SunOS, LINUX, AIX, HP-UX /etc/syslog.conf 파일의소유자및권한변경 ( 소유자 root, 권한 644) #chown root /etc/syslog.conf #chmod 644 /etc/syslog.conf 일반적인경우영향없음 34
취약점항목 2.8. /etc/services 파일소유자및권한설정 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-23 서비스관리를위해사용되는 /etc/services 파일이일반사용자에의해접근및 변경이가능하면, 정상적인서비스를제한하거나허용되지않은서비스를악의적으로 실행시켜침해사고를발생시킬수있음. 따라서소유자권한설정을통해접근을 제한하여야함. 양호 : /etc/services 파일의소유자가 root 이고, 권한이 644인경우 취약 : /etc/services 파일의소유자가 root 가아니거나, 권한이 644가아닌경우 조치방법 /etc/services 파일의소유자및권한변경 ( 소유자 root, 권한 644) SunOS, LINUX, AIX, HP-UX OS 별점검파일위치및점검방법 /etc/services #ls -l /etc/services 파일의소유자및권한확인 rw-r--r-- root <services 파일> services 파일의소유자가 root가아니거나파일의권한이 644가아닌경우아래의 에따라설정을변경함 SunOS, LINUX, AIX, HP-UX /etc/services 파일의소유자및권한변경 ( 소유자 root, 권한 644) #chown root /etc/services #chmod 644 /etc/services 일반적인경우영향없음 35
취약점항목 2.9. SUID, SGID, Sticky bit 설정파일점검 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-24 *SUID(Set User-ID) 와 *SGID(Set Group-ID) 가설정된파일은( 특히, root 소유의파일인 경우 ) 특정명령어를실행하여 root 권한획득및정상서비스장애를발생시킬수 있으며, 로컬공격에많이이용되므로보안상철저한관리가필요함. root 소유의 SUID 파일의경우에는꼭필요한파일을제외하고는 SUID, SGID 속성을 제거해주고, 잘못설정되어보안위협이되고있는지주기적인진단및관리가요구됨. *SUID(Set User-ID): 설정된파일실행시, 특정작업수행을위하여일시적으로파일소유자의 권한을얻게됨. *SGID(Set Group-ID): 설정된파일실행시, 특정작업수행을위하여일시적으로파일소유 그룹의권한을얻게됨. 조치방법 양호 : 주요파일의권한에 SUID와 SGID에대한설정이부여되어있지않은경우 취약 : 주요파일의권한에 SUID와 SGID에대한설정이부여되어있는경우 1. 불필요한 SUID, SGID 파일제거 2. 아래의목록이외에애플리케이션에서생성한파일이나, 사용자가임의로생성한 파일등의심스럽거나특이한파일의발견시 SUID 제거필요 OS 별점검파일위치및점검방법 SunOS, LINUX, AIX, HP-UX OS별주요파일에대한 SUID/SGID 설정여부확인 #ls -all [check_file] awk '{print $1}' grep -i 's' 주요파일에불필요한 SUDID/SGID가설정된경우아래의에따라 SUDID/SGID를제거함 SunOS, LINUX, AIX, HP-UX 1. 2. 3. 제거방법 #chmod -s <file_name> 주기적인감사방법 #find / -user root -type f \( -perm -04000 -o -perm -02000 \) -xdev -exec ls -al {} \; 반드시사용이필요한경우특정그룹에서만사용하도록제한하는방법 일반사용자의 Setuid 사용을제한함 ( 임의의그룹만가능) #/usr/bin/chgrp <group_name> <setuid_file_name> #/usr/bin/chmod 4750 <setuid_file_name> 36
아래의표에서파일명을확인하여 SUID, SGID을제거하여야함 SunOS /usr/bin/admintool /usr/dt/bin/dtprintinfo /usr/sbin/arp /usr/bin/at /usr/dt/bin/sdtcm_convert /usr/sbin/lpmove /usr/bin/atq /usr/lib/fs/ufs/ufsdump /usr/sbin/prtconf /usr/bin/atrm /usr/lib/fs/ufs/ufsrestore /usr/sbin/sysdef /usr/bin/lpset /usr/lib/lp/bin/netpr /usr/sbin/sparcv7/prtconf /usr/bin/newgrp /usr/openwin/bin/ff.core /usr/sbin/sparcv7/sysdef /usr/bin/nispasswd /usr/openwin/bin/kcms_calibrate /usr/sbin/sparcv9/prtconf /usr/bin/rdist /usr/openwin/bin/kcms_configure /usr/sbin/sparcv9/sysdef /usr/bin/yppasswd /usr/dt/bin/dtappgather /usr/openwin/bin/xlock /usr/platform/sun4u/sbin/prtdiag LINUX /sbin/dump /usr/bin/lpq-lpd /usr/bin/newgrp /sbin/restore /usr/bin/lpr /usr/sbin/lpc /sbin/unix_chkpwd /usr/bin/lpr-lpd /usr/sbin/lpc-lpd /usr/bin/at /usr/bin/lprm /usr/sbin/traceroute /usr/bin/lpq /usr/bin/lprm-lpd AIX /usr/dt/bin/dtaction /usr/dt/bin/dtterm /usr/bin/x11/xlock /usr/sbin/mount /usr/sbin/lchangelv HP-UX /opt/perf/bin/glance /usr/dt/bin/dtprintinfo /usr/sbin/swreg /opt/perf/bin/gpm /usr/sbin/arp /usr/sbin/swremove /opt/video/lbin/camserver /usr/sbin/lanadmin /usr/contrib/bin/traceroute /usr/bin/at /usr/sbin/landiag /usr/dt/bin/dtappgather /usr/bin/lpalt /usr/sbin/lpsched /usr/sbin/swmodify /usr/bin/mediainit /usr/sbin/swacl /usr/sbin/swpackage /usr/bin/newgrp /usr/bin/rdist /usr/sbin/swconfig /usr/sbin/swinstall SUID 제거시 OS 및응용프로그램등서비스정상작동유무확인필요 37
취약점항목 2.10. 사용자, 시스템시작파일및환경파일소유자및권한설정 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-25 조치방법 환경변수파일의접근권한설정이잘못되어있을경우비인가자가다양한방법으로 사용자환경을변경하여침해사고를일으킬수있으므로홈디렉터리내의환경변수 파일에대한접근권한( 읽기/ 쓰기/ 실행) 의적정성을점검함. 양호 : 홈디렉터리환경변수파일소유자가root 또는, 해당계정으로지정되어있고, 홈디렉터리환경변수파일에 root와소유자만쓰기권한이부여된경우 취약 : 홈디렉터리환경변수파일소유자가root 또는, 해당계정으로지정되지않고, 홈디렉터리환경변수파일에 환경변수파일의권한중타사용자쓰기권한제거 root와소유자외에쓰기권한이부여된경우 (.profile,.kshrc,.cshrc,.bashrc,.bash_profile,.login",.exrc,.netrc 등) OS 별점검파일위치및점검방법 SunOS, LINUX, AIX, HP-UX 홈디렉터리환경변수파일의소유자및권한확인 #ls -l < 홈디렉터리환경변수파일> 홈디렉터리환경변수파일의소유자가 root 또는, 해당계정으로설정되어있는지확인후 소유자이외의사용자에게쓰기권한이부여되어있을경우아래의에따라설정을변경함 SunOS, LINUX, AIX, HP-UX 1. 소유자변경방법 #chown <user_name> <file_name> 2. 일반사용자쓰기권한제거방법 #chmod o-w <file_name> 일반적인경우영향없음 38
취약점항목 2.11. world writable 파일점검 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-26 모든사용자가접근및수정할수있는권한으로설정된파일이존재할경우일반사 용자의실수또는, 악의적인행위로인해주요파일정보가노출되거나시스템장애 를유발할수있음. 만약의도적으로변경된스크립트파일을 root가확인하지않고 실행시켰을경우시스템권한노출을비롯해다양한보안위험이초래될수있음. 양호 : 취약 : world writable 파일이존재하지않거나, 존재시설정이유를확인하고있는경우 world writable 파일이존재하나해당설정이유를확인하고있지않는경우 조치방법 world writable 파일존재여부를확인하고불필요한경우제거 OS 별점검파일위치및점검방법 SunOS, LINUX, AIX, HP-UX world writable 파일존재여부확인 #find / -perm -2 -ls world writable 파일존재시사용목적을확실히알고불필요시삭제, 필요시아래의 에따라설정을변경함 SunOS, LINUX, AIX, HP-UX 1. 2. 일반사용자쓰기권한제거방법 #chmod o-w <file_name> 파일삭제방법 #rm -rf <world-writable 파일명> 일반적인경우영향없음 39
취약점항목 2.12. /dev에존재하지않는device 파일점검 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-27 디바이스가존재하지않거나이름이잘못입력된경우시스템은 */dev 디렉터리에 계속해서파일을생성하여에러를발생시킴. 따라서실제존재하지않는디바이스를 찾아제거함으로써 root 파일시스템손상및다운등의문제를방지하여야함. */dev 디렉터리: 논리적장치파일을담고있는 /dev 디렉터리는 /devices디렉터리에있는 물리적장치파일에대한심볼릭링크임. 예를들어 rmt0를 rmto로잘못입력한경우 rmto 파일이새로생성되는것과같이디바이스이름입력오류시 root 파일시스템이에러를 일으킬때까지 /dev 디렉터리에계속해서파일을생성함. 양호 : dev에대한파일점검후존재하지않은device 파일을제거한경우 취약 : dev 에대한파일미점검, 또는, 존재하지않은device 파일을방치한경우 조치방법 major, minor, number를가지지않는device 파일제거 OS 별점검파일위치및점검방법 SunOS, LINUX, AIX, HP-UX dev에존재하지않는 device 파일점검 #find /dev -type f -exec ls -l {} \; 존재하지않는디바이스가 dev" 디렉터리내에존재하는경우 아래의에따라제거함 SunOS, LINUX, AIX, HP-UX #find /dev -type f -exec ls -l {} \; 명령으로확인후 major, minor number를가지지않는 device일경우삭제 일반적인경우영향없음 40
취약점항목 2.13. $HOME/.rhosts, hosts.equiv 사용금지 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-28 * r command 사용을통한원격접속은 *NET Backup이나다른용도로사용되기도 하나, 보안상매우취약하여서비스포트가열려있을경우중요정보유출및시스템 장애발생등침해사고의원인이됨. 만약사용이불가피한경우 /etc/hosts.equiv 파일및.rhosts 파일사용자를 root 또는, 해당계정으로설정한뒤권한을 600으로 설정하고해당파일설정에 + 설정( 모든호스트허용 ) 이포함되지않도록함. * r command: 인증없이관리자의원격접속을가능하게하는명령어들로 rsh(remsh), rlogin, rexec 등이있음. *NET Backup: 이기종운영체제간백업을지원하는 Symantec 사의백업및복구툴을말함. 양호 : 취약 : login, shell, exec 서비스를사용하지않거나, 사용시아래와같은설정이 적용된경우 1. /etc/hosts.equiv 및 $HOME/.rhosts 파일소유자가 root 또는, 해당계정인경우 2. /etc/hosts.equiv 및 $HOME/.rhosts 파일권한이 600 이하인경우 3. /etc/hosts.equiv 및 $HOME/.rhosts 파일설정에 + 설정이없는경우 login, shell, exec 서비스를사용하고, 위와같은설정이적용되지않은경우 조치방법 1. /etc/hosts.equiv 및 $HOME/.rhosts 파일소유자를 root 또는, 해당계정으로변경 2. /etc/hosts.equiv 및 $HOME/.rhosts 파일권한을 600 이하로변경 3. /etc/hosts.equiv 및 $HOME/.rhosts 파일에서 + 를제거하고반드시필요한 호스트및계정만등록 ( 해당내역요청) SunOS, LINUX, AIX, HP-UX 1. OS 별점검파일위치및점검방법 파일소유자및권한확인 #ls -al /etc/hosts.equiv #ls -al $HOME/.rhosts rw------- root <hosts.equiv 파일> rw------- root <$HOME/.rhosts 파일> 2. 계정별 + 부여적절성확인 #cat /etc/hosts.equiv #cat $HOME/.rhosts /etc/hosts.equiv : $HOME/.rhosts : 설정파일 개별사용자의설정파일 /etc/hosts.equiv 및 $HOME/.rhosts 파일의소유자가 root가아니거나파일의권한이 600이아닌 경우아래의에따라설정을변경함 41
SunOS, LINUX, AIX, HP-UX 1. /etc/hosts.equiv 및 $HOME/.rhosts 파일의소유자를root 또는, 해당계정으로변경 #chown root /etc/hosts.equiv #chown <user_name> $HOME/.rhosts 2. /etc/hosts.equiv 및 $HOME/.rhosts 파일의권한을600 이하로변경 #chmod 600 /etc/hosts.equiv #chmod 600 $HOME/.rhosts 3. /etc/hosts.equiv 및 $HOME/.rhosts 파일에서 + 를제거하고허용호스트및계정등록 #cat /etc/hosts.equiv (or $HOME/.rhosts) ++ 모든호스트의모든계정을신뢰 +test 모든호스트의 test 계정을신뢰 Web1 + Web1 호스트의모든계정을신뢰 일반적인경우영향없음 42
취약점항목 2.14. 접속 IP 및포트제한 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-29 시스템이제공하는 Telnet, FTP 의불법적인접근및시스템침해사고를방지하기위하여 제한된 IP 주소에서만접속할수있도록설정함. 등많은네트워크서비스를통한외부비인가자 TCP Wrapper를이용하여 양호 : /etc/hosts.deny 파일에 ALL Deny 설정후 취약 : /etc/hosts.allow 위와같이설정되지않은경우 파일에접근을허용할특정호스트를등록한경우 조치방법 /etc/hosts.deny 파일에 ALL Deny 설정후 /etc/hosts.allow 파일에접근허용 IP 등록 OS 별점검파일위치및점검방법 All deny 적용확인및접근허용 IP 적절성확인 SunOS, LINUX, AIX #cat /etc/hosts.deny #cat /etc/hosts.allow HP-UX All deny 적용확인및서비스접근가능 #cat /var/adm/inetd.sec IP 확인 위에제시한파일이존재하지않거나 All deny 설정이적용되지않은경우또는, 시스템접근제한 IP 설정필요시아래의에따라설정을변경함 SunOS, LINUX, AIX 1. vi 편집기를이용하여 /etc/hosts.deny 파일을연후 ( 해당파일이없을경우새로생성) 2. 아래와같이수정또는, 신규삽입 (ALL Deny 설정) ( 수정전) 설정없음 ( 수정후) ALL:ALL 3. vi 편집기를이용하여 /etc/hosts.allow 파일을연후 ( 해당파일이없을경우생성) ( 수정전) 설정없음 ( 수정후) sshd : 192.168.0.148, 192.168.0.6 ( 다른서비스도동일한방식으로설정) <TCPWrapper 접근제어가능서비스 >! SYSTAT, FINGER, FTP, TELNET, RLOGIN, RSH, TALK, EXEC, TFTP, SSH <TCPWrapper 는다음두파일에의해접근이제어됨>! /etc/hosts.deny --> 시스템접근을제한할 IP 설정! /etc/hosts.allow --> 시스템접근을허용할 IP 설정! not in either --> 모든접근허용 43
HP-UX HP-UX 의경우 /var/adm/inetd.sec 파일을이용하여자체적으로접근제어를할수 있으며, 해당파일이존재하지않을경우 /usr/newconfig/var/adm/inetd.sec 샘플파일을복사하여 사용함 1. vi 편집기를이용하여 /var/adm/inetd.sec 파일을연후 ( 해당파일이없을경우새로생성) 2. 아래와같이수정또는, 신규삽입 (ALL Deny 설정)! telnet 으로의모든접속차단 => telnet deny *.*.*.*! telnet 접속을허용할 IP 등록 => telnet allow [telnet 접속허용 IP 등록] ( 다른서비스들도위와동일한방법으로설정) 허용되지않은 IP는접속불가 44
취약점항목 2.15. hosts.lpd 파일소유자및권한설정 대상 OS SunOS, LINUX, AIX, HP-UX 위험도하 Code U-30 */etc/host.lpd 파일에일반사용자가접근할수있다면이파일을가지고 host 파일에 접근하여공격을할수있으므로 /etc/hosts.lpd 파일의소유자와퍼미션설정을확인 하여야함. *host.lpd 파일: 로컬프린트서비스를사용할수있는허가된호스트( 사용자) 파일을말함. (hostname 또는, IP 주소를포함하고있음) 정보를담고있는 양호 : 파일의소유자가 root이고 Other에쓰기권한이부여되어있지않는경우 취약 : 파일의소유자가 root가아니고 Other에쓰기권한이부여되어있는경우 조치방법 host.lpd 파일의퍼미션을확인하여퍼미션 600, 파일소유자를 root로변경 OS 별점검파일위치및점검방법 SunOS, LINUX, AIX, HP-UX #ls -l /etc/hosts.lpd rw------- root <hosts.lpd 파일> hosts.lpd 파일의소유자가 root가아니거나파일의권한이 600이아닌경우아래의 에따라설정을변경함 SunOS, LINUX, AIX, HP-UX 1. 파일의퍼미션변경. #chmod 600 /etc/host.lpd 2. 소유자를 root로변경 #chown root /etc/host.lpd 일반적인경우영향없음 45
취약점항목 2.16. NIS 서비스비활성화 대상 OS SunOS, LINUX, AIX, HP-UX 위험도중 Code U-31 NIS(Network Information Service) 주는정보표를소유하여 NIS 대응파일들로 변환하고, 이대응파일들이네트워크를통해제공됨으로써모든컴퓨터에정보가갱 신되도록할수있으며사용자들은패스워드를한번만바꾸어 NIS 영역에들어있는 모든컴퓨터의정보를갱신할수있음. 하지만 NIS 이용시정보유출위험이 존재하는등보안에취약함. 양호 : 불필요한 NIS 서비스가비활성화되어있는경우 취약 : 불필요한 NIS 서비스가활성화되어있는경우 조치방법 NIS 서비스를사용하지않는경우 NIS 서비스비활성화 SunOS, LINUX, AIX OS별점검파일위치및점검방법 NIS 서비스활성화여부확인 #ps -ef grep yp 불필요한 NIS 서비스가실행중인 경우아래의에따라비활성화상태로변경함 SunOS, LINUX, AIX 1. NIS 서비스가불필요하다면비활성화상태로설정 NIS 서비스정지: #/usr/lib/netsvc/yp/ypstop 서비스확인 : 2. NIS #rm -r /var/yp/blue.org #ps -ef grep yp #rm /etc/ethers /etc/netgroup /etc/timezone /etc/bootparams #vi /etc/nsswitch.conf 설정삭제 일반적인경우영향없음 46
취약점항목 2.17. UMASK 설정관리 대상 OS SunOS, LINUX, AIX, HP-UX 위험도중 Code U-32 시스템내에서사용자가새로생성하는파일의접근권한은 *UMASK 값에따라정해 짐. 현재설정된 UMASK 는명령프롬프트에서 umask 를수행하여확인할수있으며 UMASK 값이 027 또는, 022 이기를권장함. UMASK 값 027 은 rw-r----- 접근권한으로파일이생성됨. UMASK 값 022 는 rw-r--r-- 접근권한으로파일이생성됨. 계정의 Start Profile(/etc/profile, /etc/default/login,.cshrc,.kshrc,.bashrc,.login,.profile 등에 ) 명령을추가하면, 사용자가로그인한후에도변경된 UMASK 값을적용 받게되며잘못설정된 UMASK 값은잘못된권한의파일을생성시킴. *UMASK: 파일및디렉터리생성시기본퍼미션을지정해주는명령어를말함. 양호 : UMASK 값이 022 이하로설정된경우 취약 : UMASK 값이 022 이하로설정되지않은경우 조치방법설정파일에 UMASK 값을 022 로설정. OS 별점검파일위치및점검방법 SunOS, AIX, LINUX, HP-UX #vi /etc/profile UMASK=022 위에제시한 UMASK 값이해당파일에적용되지않은경우아래의에따라적용함 SunOS 방법-1. /etc/profile 파일을이용한 UMASK 설정변경 1. vi 편집기를이용하여 /etc/profile 파일을연후 2. 아래와같이수정또는, 신규삽입 umask 022 export umask 방법-2. /etc/default/login 파일을이용한 UMASK 설정변경 1. vi 편집기를이용하여 /etc/default/login 파일을연후 2. 아래와같이수정또는, 신규삽입 ( 수정전) #UMASK=022 ( 수정후) UMASK=022 LINUX, HP-UX 1. vi 편집기를이용하여 /etc/profile 파일을연후 47
2. 아래와같이수정또는, 신규삽입 umask 022 export umask AIX 방법-1. /etc/profile 파일을이용한 UMASK 설정변경 1. vi 편집기를이용하여 /etc/profile 파일을연후 2. 아래와같이수정또는, 신규삽입 umask 022 export umask 방법-2. /etc/security/user 파일을이용한 UMASK 설정변경 1. vi 편집기를이용하여 /etc/security/user 파일을연후 2. default 설정부분을아래와같이수정또는, 신규삽입 ( 수정전) umask = ( 수정후) umask = 022 일반적인경우영향없음 48
취약점항목 2.18. 홈디렉터리소유자및권한설정 대상 OS SunOS, LINUX, AIX, HP-UX 위험도중 Code U-33 조치방법 사용자홈디렉터리내설정파일이비인가자에의해변조되면정상적인사용자 서비스가제한됨, 해당홈디렉터리의소유자외일반사용자들이해당홈디렉터리를 수정할수없도록제한하고있는지점검하여정상적인사용자환경구성및서비스 제공유무를확인함. 양호 : 홈디렉터리소유자가해당계정이고, 일반사용자쓰기권한이제거된경우 취약 : 홈디렉터리소유자가해당계정이아니고, 일반사용자쓰기권한이부여된경우 사용자별홈디렉터리소유주를해당계정으로변경하고, 타사용자의쓰기권한제거 ( /etc/passwd 파일에서홈디렉터리확인, 진단보고서에서조치할홈디렉터리확인) OS 별점검파일위치및점검방법 SunOS, LINUX, AIX, HP-UX /etc/passwd 파일에서사용자별홈디렉터리확인후소유자및권한확인 #cat /etc/passwd #ls -ald <user-home-directory> /etc/passwd 파일내존재하는모든사용자계정이적절한홈디렉터리를갖는지확인함 홈디렉터리소유자가해당계정이아니거나, 부적절한권한설정이적용된경우아래의 에따라적용함 SunOS, LINUX, AIX, HP-UX /etc/passwd 파일의소유자및권한변경 #chown <user_name> <user_home_directory> #chmod o-w <user_home_directory> 홈디렉터리를업로드등의용도로애플리케이션에서사용할수있기때문에권한 변경시확인이필요함 49
취약점항목 2.19. 홈디렉터리로지정한디렉터리의존재관리 대상 OS SunOS, LINUX, AIX, HP-UX 위험도중 Code U-34 사용자홈디렉터리는사용자가로그인한후작업을수행하는디렉터리임. 로그인후사용자 홈디렉터리에존재하는사용자환경설정파일에의해사용자환경이구성되며홈디렉터리 의부재로인한다음의보안상문제가발생될수있음. 1. 홈디렉터리가존재하지않는경우 root 계정이아닌일반사용자의홈디렉터리가 / 로되어있을경우로그인시사용자 현재디렉터리가 / 로로그인되므로관리 보안상문제가발생됨. 2. 홈디렉터리내에숨겨진디렉터리가존재하는경우 정당하지못한사용자가파일을숨길목적으로만들어놓은것일수있음. 3. 홈디렉터리내에시스템명령의이름을가진불법적인실행파일이존재하는경우 상대경로와시스템명령을입력하여불법적인파일이실행되게함. 양호 : 취약 : 홈디렉터리가존재하지않는계정이발견되지않는경우 홈디렉터리가존재하지않는계정이발견된경우 조치방법 홈디렉터리가존재하지않는계정에홈디렉터리설정또는, 계정삭제 OS 별점검파일위치및점검방법 SunOS, LINUX, AIX, HP-UX 사용자계정별홈디렉터리지정여부확인 #cat /etc/passwd /etc/passwd 파일내존재하는모든사용자계정이적절한홈디렉터리를갖는지확인한후 홈디렉터리가존재하지않는계정이발견된경우아래의에따라적용함 SunOS, LINUX, AIX, HP-UX 1. 2. 홈디렉터리가없는사용자계정삭제 SunOS, LINUX, HP-UX 설정: #userdel <user_name> AIX 설정: #rmuser <user_name> 홈디렉터리가없는사용자계정에홈디렉터리지정 #vi /etc/passwd #test:x:501:501::/home/test:/bin/bash (/home/test= 홈디렉터리) #test:x:501:501::/data:/bin/bash ( 홈디렉터리수정 /home/test -> /data) 일반적인경우영향없음 50
취약점항목 2.20. 숨겨진파일및디렉터리검색및제거 대상 OS SunOS, LINUX, AIX, HP-UX 위험도하 Code U-35 불법적으로생성되었거나숨겨진의심스러운파일로부터침입자는정보습득이가능 하며, 파일을임의로변경할수있음. [.] 으로시작하는숨겨진파일존재여부확인 후불법적이거나의심스러운파일을삭제함. 조치방법 양호 : 취약 : ls al 디렉터리내숨겨진파일을확인하여, 불필요한파일삭제를완료한경우 디렉터리내숨겨진파일을확인하지않고, 불필요한파일을방치한경우 명령어로숨겨진파일존재파악후불법적이거나의심스러운파일을삭제함 SunOS, LINUX, AIX, HP-UX, OS 별점검파일위치및점검방법 특정디렉터리내불필요한파일점검 #ls -al [ 디렉터리명] 특정디렉터리내숨겨진파일을확인한후불필요한경우파일삭제를권고함 SunOS, LINUX, AIX, HP-UX 1. 숨겨진파일목록에서불필요한파일삭제 2. 마지막으로변경된시간에따라, 최근작업한파일확인시 [-t] 플래그사용 일반적인경우영향없음 51
3. 서비스관리 취약점항목 3.1. Finger 서비스비활성화 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-36 *Finger( 사용자정보확인서비스) 를통해서네트워크외부에서해당시스템에등록된 사용자정보를확인할수있으므로, 사용하지않는다면해당서비스를중지하여야함. 조치방법 *Finger( 사용자정보확인서비스): who 명령어가현재사용중인사용자들에대한간단한 정보만을보여주는데반해 finger 명령은옵션에따른시스템에등록된사용자뿐만아니라 네트워크를통하여연결되어있는다른시스템에등록된사용자들에대한자 한정보를 보여줌. 양호 : Finger 서비스가비활성화되어있는경우 취약 : Finger 서비스가활성화되어있는경우 Finger 서비스비활성화 OS 별점검파일위치및점검방법 LINUX, AIX, HP-UX, SunOS 5.9 이하버전 #cat /etc/inetd.conf #finger stream tcp nowait bin /usr/lbin/fingered fingerd 주석처리확인 SunOS 5.10 이상버전 #inetadm grep finger LINUX (xinetd 일경우) #ls -all /etc/xinetd.d/* egrep "echo finger 위에제시된파일내 finger 서비스가활성화된 경우아래의에따라서비스중지 LINUX, AIX, HP-UX, SunOS 5.9 이하버전 1. /etc/inetd.conf 파일에서 finger 서비스라인 # 처리( 주석처리) ( 수정전) finger stream tcp nowait bin /usr/lbin/fingered fingerd ( 수정후) #finger stream tcp nowait bin /usr/lbin/fingered fingerd 2. inetd 서비스재시작 #ps -ef grep inetd root 141 1 0 15:03:22? 0:01 /usr/sbin/inetd -s #kill -HUP [PID] SunOS 5.10 이상버전 inetadm d 중지하고자하는데몬 명령으로서비스데몬중지 #inetadm -d svc:/network/finger:default LINUX (xinetd 일경우) 1. vi 편집기를이용하여 /etc/xinetd.d/finger 파일을연후 52
2. 아래와같이설정 (Disable = yes 설정) service finger { socket_type = stream wait = no user = nobody server = /usr/sbin/in.fingerd disable = yes } 3. xinetd 서비스재시작 #service xinetd restart 일반적으로영향없음 53
취약점항목 3.2. Anonymous FTP 비활성화 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-37 *Anonymous FTP( 익명 FTP) 를사용할경우악의적인사용자가시스템에관한정보를 획득할수있으며디렉터리에쓰기권한이설정되어있을경우 local exploit을사용하 여다양한공격이가능하게되므로반드시필요한사용자만접속할수있도록설정 하여권한없는사용자의 FTP 사용을제한하여야함. *Anonymous FTP( 익명 FTP): 파일전송을위해서는원칙적으로상대방컴퓨터를사용할수있 는계정이필요하나누구든지계정없이도 anonymous 또는, ftp라는로그인명과임의의비밀 번호를사용하여 FTP 를실행할수있음. 양호 : Anonymous FTP ( 익명 ftp) 접속을차단한경우 취약 : Anonymous FTP ( 익명 ftp) 접속을차단하지않은경우 조치방법 Anonymous FTP를사용하지않는경우 Anonymous FTP 접속차단설정적용 SunOS, LINUX, AIX, HP-UX OS별점검파일위치및점검방법 /etc/passwd 파일에 ftp 계정존재여부확인 #cat /etc/passwd grep "ftp" passwd 파일내 ftp 계정이존재하는경우아래의에따라서비스접속제한 SunOS, LINUX, AIX, HP-UX 1. 일반 FTP - Anonymous FTP 접속제한설정방법 /etc/passwd 파일에서 ftp 또는, anonymous 계정삭제! SunOS, LINUX, HP-UX 설정: #userdel ftp! AIX 설정: #rmuser ftp 2. ProFTP - Anonymous FTP /etc/passwd 파일에서 ftp 접속제한설정방법 계정삭제! SunOS, LINUX, HP-UX 설정: #userdel ftp! AIX 설정: #rmuser ftp 3. vsftp - Anonymous FTP 접속제한설정방법 vsftp 설정파일( /etc/vsftpd/vsftpd.conf 또는, /etc/vsftpd.conf ) 에서 anonymous_enable=no 설정 Anonymous FTP를사용하지않을경우영향없음 54
취약점항목 3.3. r 계열서비스비활성화 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-38 점검기준 조치방법 * r command 사용을통한원격접속은 *NET Backup이나다른용도로사용되기도 하나, 보안상매우취약하여서비스포트가열려있는경우중요정보유출및시스템 장애발생등침해사고의위험이있음. * r command: 인증없이관리자의원격접속을가능하게하는명령어들로 rsh(remsh), rlogin, rexec 등이있음. *NET Backup: 이기종운영체제간백업을지원하는 Symantec 사의백업및복구툴을말함. 양호 : 취약 : r 계열서비스가비활성화되어있는경우 r 계열서비스가활성화되어있는경우 NET Backup 등특별한용도로사용하지않는다면아래의서비스중지 shell(514) login(513) exec(512) SunOS AIX HP-UX, OS 별점검파일위치및점검방법 r'command #svcs -a grep rlogin 서비스활성화여부확인 #cat /etc/inetd.conf grep rlogin (# 처리되어있으면비활성화) #cat /etc/inetd.conf grep rsh (# 처리되어있으면비활성화) #vi/etc/inetd.conf r 로시작하는필드존재시취약 SunOS 5.10 이상버전 LINUX (xinetd 일경우) 위에제시된파일내 #inetadm egrep shell rlogin rexec r command 관련데몬확인 rsh, rlogin, rexec (shell, login, exec) 서비스구동확인 #ls -all /etc/xinetd.d/* egrep rsh rlogin rexec egrep -v "grep klogin kshell kexec" r 계열 서비스가활성화된경우아래의에따라서비스중지 SunOS 1. r 계열서비스활성화여부확인후비활성화조치 #svcs -a grep rlogin #svcadm disable svc:/network/login:rlogin AIX 1. r 계열서비스활성화여부확인 #cat /etc/inetd.conf grep rlogin (# 처리되어있으면비활성화) #cat /etc/inetd.conf grep rsh (# 처리되어있으면비활성화) 55
2. /etc/hosts.equiv 파일은 TRUSTED 시스템을등록 3..rhosts 파일은사용자별로 'r'command 를통해접근이가능하도록설정할수있음($HOME/.rhosts) HP-UX 1. r 계열서비스활성화여부확인 #vi/etc/inetd.conf 2. r로시작하는필드주석처리후재가동 #inetd-c SunOS 5.10 이상버전 1. r command 관련데몬확인 svc:/network/login:rlogin svc:/network/rexec:default svc:/network/shell:kshell 2. inetadm d 중지하고자하는데몬 명령으로데몬중지 #inetadm -d svc:/network/login:rlogin #inetadm -d svc:/network/rexec:default #inetadm -d svc:/network/shell:kshell LINUX (xinetd 일경우) 1. vi 편집기를이용하여 /etc/xinetd.d/ 디렉터리내 rlogin, rsh, rexec 파일을연후 2. 아래와같이설정 (Disable = yes 설정) /etc/xinetd.d/rlogin /etc/xinetd.d/rsh 파일 /etc/xinetd.d/rexec 파일 파일 service { } rlogin socket_type = stream wait = no user = nobody log_on_success += USERID log_on_failure += USERID server = /usr/sbin/in.fingerd disable = yes 3. xinetd 서비스재시작 #service xinetd restart rlogin, rshell, rexec 서비스는 backup 등의용도로종종사용되며 /etc/hosts.equiv 또는, 각홈디렉터리밑에있는.rhosts 파일에설정유무를확인하여해당파일이존재하지않거나해당파일내에설정이없다면사용하지않는것으로파악 56
취약점항목 3.4. cron 파일소유자및권한설정 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-39 *Cron 시스템은 cron.allow 파일과 cron.deny 파일을통하여명령어사용자를제한할 수있으며보안상해당파일에대한접근제한이필요함. 만약 cron 접근제한파일의 권한이잘못되어있을경우권한을획득한사용자가악의적인목적으로임의의계정 을등록하여불법적인예약파일실행으로시스템피해를일으킬수있음. *Cron 시스템: 특정작업을정해진시간에주기적이고반복적으로실행하기위한데몬과그설 정들을말함. 양호 : cron 접근제어파일소유자가 root 이고, 권한이 640 이하인경우 취약 : cron 접근제어파일소유자가 root 가아니거나, 권한이 640 이하가아닌경우 조치방법 cron.allow, cron.deny 파일소유자및권한변경 ( 소유자 root, 권한 640 이하) OS 별점검방법 SunOS, LINUX, AIX, HP-UX, Cron 관련파일권한확인 #ls -al <cron 접근제어파일경로> rw-r----- root <cron 접근제어파일> OS 별점검파일위치 LINUX, AIX, HP-UX SunOS /var/spool/cron/crontabs/* /etc/crontab, /etc/cron.daily/*, /etc/cron.hourly/*, /etc/cron.monthly/*, /etc/cron.weekly/*, /var/spool/cron/* cron 접근제어설정이적절하지않은 경우아래의에따라설정을변경함 SunOS 1. /etc/cron.d/cron.allow 및 /etc/cron.d/cron.deny #ls -l /etc/cron.d/cron.allow #ls -l /etc/cron.d/cron.deny 2. /etc/cron.d/cron.allow 및 /etc/cron.d/cron.deny #chown root /etc/cron.d/cron.allow #chmod 640 /etc/cron.d/cron.allow #chown root /etc/cron.d/cron.deny #chmod 640 /etc/cron.d/cron.deny 파일의소유자및권한확인 파일의소유자및권한변경 LINUX 1. /etc/cron.allow 및 /etc/cron.deny 파일의소유자및권한확인 57
#ls -l /etc/cron.allow #ls -l /etc/cron.deny 2. /etc/cron.allow 및 /etc/cron.deny #chown root /etc/cron.allow #chmod 640 /etc/cron.allow #chown root /etc/cron.deny #chmod 640 /etc/cron.deny 파일의소유자및권한변경 AIX, HP-UX 1. /var/adm/cron/cron.allow 및 /var/adm/cron/cron.deny #ls -l /var/adm/cron/cron.allow #ls -l /var/adm/cron/cron.deny 2. /var/adm/cron/cron.allow 및 /var/adm/cron/cron.deny #chown root /var/adm/cron/cron.allow #chmod 640 /var/adm/cron/cron.allow #chown root /var/adm/cron/cron.deny #chmod 640 /var/adm/cron/cron.deny 파일의소유자및권한확인 파일의소유자및권한변경 일반적인경우영향없음 58
취약점항목 3.5. DoS 공격에취약한서비스비활성화 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-40 점검기준 조치방법 *Dos( 서비스거부공격) 에취약한 echo, discard, daytime, chargen 서비스는취약점이 많이발표된불필요한서비스들로해당서비스사용을중지하여야함. 만약해당서 비스가활성화되어있는경우시스템정보유출및 될수있음. Dos( 서비스거부공격) 의대상이 *Dos(Denial of Service attack): 시스템을악의적으로공격해해당시스템의자원을부족하게하 여원래의도된용도로사용하지못하게하는공격임. 특정에게수많은접속시도를만들 어다른이용자가정상적으로서비스이용을하지못하게하거나, 의TCP 연결을바닥내는 등의공격이이범위에포함됨. 양호 : Dos 공격에취약한 echo, discard, daytime, chargen 서비스가비활성화된경우 취약 : Dos 공격에취약한 echo, discard, daytime, chargen 서비스활성화된경우 echo, discard, daytime, chargen 서비스비활성화설정 OS 별점검파일위치및점검방법 SunOS AIX, HP-UX #svcs -a grep echo #svcs -a grep daytime #svcs -a grep discard #svcs -a grep chargen echo, discard, daytime, chargen 서비스활성여부확인 #vi/etc/inetd.conf echo, discard, daytime, chargen 필드주석처리확인 SunOS 5.10 이상버전 #inetadm grep enabled egrep echo discard daytime chargen 명령으로기타서비스데몬확인 아래제시된 DoS 공격에취약한서비스가활성화된경우아래의에따라서비스중지 DoS 공격에취약한서비스 echo(7) discard(9) daytime(13) chargen(19) 클라이언트에서보내는메시지를단순히재전송수신되는임의사용자의데이터를폐기하는서비스 daytime은클라이언트의질의에응답하여아스키형태로현재시간과날짜를출력하는데몬임의길이의문자열을반환하는서비스 59
SunOS 1. echo 서비스비활성화설정 #svcs -a grep echo #svcadm disable svc:/network/echo:dgrm #svcadm disable svc:/network/echo:stream 2. discard 서비스비활성화설정 #svcs -a grep daytime #svcadm disable svc:/network/daytime:dgram #svcadm disable svc:/network/daytime:stream 3. daytime 서비스비활성화설정 #svcs -a grep discard #svcadm disable svc:/network/discard:dgram #svcadm disable svc:/network/discard:stream 4. chargen 서비스비활성화설정 #svcs -a grep chargen #svcadm disable svc:/network/chargen:dgram #svcadm disable svc:/network/chargen:stream AIX 1. vi편집기를이용하여 echo, discard, daytime, chargen #vi /etc/inetd.conf #echo stream tcp nowait root internal #discard stream tcp nowait root internal #chargen stream tcp nowait root internal #daytime stream tcp nowait root internal 필드주석처리 HP-UX 1. vi편집기를이용하여 echo, discard, daytime, chargen #vi/etc/inetd.conf 2. 필드주석처리후재가동 #inetd-c 필드주석처리 SunOS 5.10 이상버전 1. 기타서비스데몬확인 svc:/network/echo:dgram svc:/network/echo:stream svc:/network/discard:dgram svc:/network/discard:stream svc:/network/daytime:dgram svc:/network/daytime:stream svc:/network/chargen:dgram svc:/network/chargen:stream 60
2. inetadm d 중지하고자하는데몬 명령으로서비스데몬중지 #inetadm -d svc:/network/echo:stream LINUX (xinetd 일경우) 1. vi 편집기를이용하여 /etc/xinetd.d/ 디렉터리내 echo, discard, daytime, chargen 파일을연후 2. 아래와같이설정 (Disable = yes 설정) /etc/xinetd.d/echo /etc/xinetd.d/discard 파일 /etc/xinetd.d/daytime /etc/xinetd.d/chargen 파일 파일 파일 service echo { } disable id type wait socket_type = yes = echo-stream = INTERNAL = no = stream 3. xinetd 서비스재시작 #service xinetd restart 일반적으로사용하지않는서비스들임 61
취약점항목 3.6. NFS 서비스비활성화 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-41 *NFS(Network File System) 서비스는 root 권한획득을가능하게하는등침해사고위험성이높으므로사용하지않는경우중지함. *NFS(Network File System): 원격컴퓨터의파일시스템을로컬시스템에마운트하여마치로컬파일시스템처럼사용할수있는프로그램임. 양호 : 취약 : NFS NFS 서비스관련데몬이비활성화되어있는경우 서비스관련데몬이활성화되어있는경우 조치방법 사용하지않는다면 아래의방법으로 NFS 서비스중지 NFS 서비스를제거한후시스템부팅시, 스크립트실행방지가능 1. /etc/dfs/dfstab 의모든공유제거 2. NFS 데몬(nfsd, statd, mountd) 중지 3. 시동스크립트삭제또는, 스크립트이름변경 LINUX, AIX, HP-UX, SunOS 5.9 이하버전 OS 별점검파일위치및점검방법 NFS 서비스데몬확인 (NFS 동작 SID 확인) #ps ef grep nfsd root 3809 3721 0 08:44:40? 0:00 /usr/lib/nfs/nfsd SunOS 5.10 이상버전 #inetadm egrep nfs statd lockd 불필요한 NTFS 서비스가활성화된경우아래의에따라서비스데몬중지 LINUX, AIX, HP-UX, SunOS 5.9 NFS 서비스데몬중지 #kill -9 [PID] 이하버전 SunOS 5.10 이상버전설정방법 1. NFS 서비스데몬확인 svc:/network/nfs/server:default 2. inetadm d 중지하고자하는데몬 명령으로서비스데몬중지 #inetadm -d svc:/network/nfs/server:default showmount, share, exportfs 등의명령어를사용하여로컬에마운트되어있는디렉터리확인및 NFS 설정파일에공유디렉터리설정여부확인후해당디렉터리가존재하지않을경우서비스중지가능 62
취약점항목 3.7. NFS 접근통제 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-42 *NFS(Network File System) 사용시허가된사용자만접속할수있도록접근제한 설정을하여야함. 접근제한설정이적절하게이루어지지않을경우비인가자의 root 권한획득이가능하며, 해당공유시스템에원격으로마운트하여중요파일을 변조하거나유출할위험이있음. *NFS(Network File System): 원격컴퓨터의파일시스템을로컬시스템에마운트하여마치로컬 파일시스템처럼사용할수있는프로그램임. 조치방법 양호 : NFS 서비스를사용하지않거나, 사용시 everyone 공유를제한한경우 취약 : NFS 서비스를사용하고있고, everyone 공유를제한하지않은경우 사용하지않는다면 NFS 서비스중지, 사용할경우 NFS 설정파일에 everyone 공유 설정제거 < 서비스필요시 > 불가피하게 NFS 서비스를사용하여야하는경우 NFS 접근제어파일에꼭필요한공유 디렉터리만나열하고,everyone으로시스템이마운트되지않도록설정 OS 종류별 NFS 접근제어파일 SunOS, HP-UX 의경우 /etc/dfs/dfstab, /etc/dfs/sharetab 파일 LINUX, AIX, HP-UX 의경우 /etc/exports 파일 /etc/dfs/dfstab 설정예문 rw=client, ro=client 형식으로접속허용 client 지정 사용자의읽기, 쓰기권한접속허용: share -F nfs -o rw, ro /export/home/test 사용자의권한접속제한 : share -F nfs -o rw=client1:client2, ro=client1:client2 /export/home/test 읽기(ro), 쓰기(rw) 권한에각각사용자를설정하여야읽기, 쓰기권한모두제한가능 /etc/exports 설정예문 1. everyone 으로시스템마운트금지 #showmount -e hostname 명령어로확인 2. /etc/exports ( 예 ) /stand host1 host2. 3. NFS 서비스재구동 #/etc/exportfs #/etc/exportfs 파일에접근가능한호스트명추가 u a 63
< 서비스불필요시 > LINUX, AIX, HP-UX, SunOS 5.9 이하버전 OS 별점검파일위치및점검방법 NFS 서비스데몬확인 (NFS 동작 SID 확인) #ps ef grep nfsd root 3809 3721 0 08:44:40? 0:00 /usr/lib/nfs/nfsd SunOS 5.10 이상버전 #inetadm egrep nfs statd lockd 불필요한 NFS 서비스가활성화된경우아래의에따라서비스데몬중지 LINUX, AIX, HP-UX, SunOS 5.9 NFS 서비스데몬중지 #kill -9 [PID] 이하버전 SunOS 5.10 이상버전 1. NFS 서비스데몬확인 svc:/network/nfs/server:default 2. inetadm d 중지하고자하는데몬 명령으로서비스데몬중지 #inetadm -d svc:/network/nfs/server:default showmount, share, exportfs 등의명령어를사용하여로컬에마운트되어있는디렉터리확인및 NFS 설정파일에공유디렉터리설정여부확인후해당디렉터리가존재하지않을경우서비스중지가능 64
취약점항목 3.8. automountd 제거 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-43 조치방법 *automountd 데몬에는로컬공격자가데몬에 *RPC(Remote Procedure Call) 를보낼 수있는취약점이존재하여이를통해파일시스템의마운트옵션을변경하여 root 권한을획득할수있으며, 로컬공격자가 automountd 프로 스권한으로임의의 명령을실행할수있음. *automountd: 클라이언트에서자동으로에마운트를시키고일정시간사용하지않으면 unmount 시켜주는기능을말함. *RPC(Remote Procedure Call): 분산환경에서응용프로그램에접근하여특정작업을 요구하는 양호 : 취약 : automountd Call 을말함. automountd automountd 서비스가비활성화되어있는경우 서비스가활성화되어있는경우 서비스비활성화 LINUX, AIX, HP-UX, SunOS 5.9 이하버전 SunOS 5.10 이상버전 OS 별점검파일위치및점검방법 automountd 서비스데몬확인 (automountd 동작 SID 확인) #ps ef grep automount root 1131 1 0 Jun 15? 32:11 /usr/sbin/automountd automountd 서비스데몬확인 #svcs -a egrep autofs automountd 서비스가활성화된경우아래의에따라서비스데몬중지 LINUX, AIX, HP-UX, SunOS 5.9 automountd 서비스데몬중지 #kill -9 [PID] 이하버전 SunOS 5.10 이상버전 1. autofs 서비스데몬확인 svc:/system/filesystem/autofs:default 2. svcadm disable 중지하고자하는데몬 명령으로서비스데몬중지 #svcadm disable svc:/system/filesystem/autofs:default NFS 및 * 삼바(Samba) 서비스에서사용시 automountd 사용여부확인이필요하며, 적용시 CDROM 의자동마운트는이뤄지지않음 (/etc/auto.*, /etc/auto_* 파일을 확인하여필요여부확인 ) * 삼바(Samba): 서로다른운영체제(OS) 간의자원공유를위해이용하는로같은네트워크내 연결된 PC는서로운영체제가달라도네트워크로파일을주고받을수있고자원을공유할수있음 65
취약점항목 3.9. RPC 서비스확인 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-44 *RPC (Remote Procedure Call) 서비스는분산처리환경에서개발을하는데있어 많은이점을제공하지만, 아래와같은서비스들은버퍼오버플로우(Buffer Overflow) 취약성이다수존재하여 중지하여야함. root 권한획득및침해사고발생위험이있으므로서비스를 rpc.cmsd, rpc.ttdbserverd, sadmind, rusersd, walld, sprayd, rstatd, rpc.nisd, rexd, rpc.pcnfsd, rpc.statd, rpc.ypupdated, rpc.rquotad, kcms_server, cachefsd *RPC(Remote Procedure Call): 요구하는 Call 을말함. 분산환경에서응용프로그램에접근하여특정작업을 조치방법 양호 : 불필요한 RPC 서비스가비활성화되어있는경우 취약 : 불필요한 RPC 서비스가활성화되어있는경우 일반적으로사용하지않는 RPC 서비스들을 inetd.conf 파일에서주석처리한후 inetd 재구동 ( 진단보고서에발견된 RPC 서비스조치) OS 별점검파일위치및점검방법 LINUX, AIX, HP-UX, SunOS 5.9 이하버전 LINUX (xinetd) 불필요한 RPC 서비스비활성화여부확인 #cat /etc/inetd.conf "/etc/xinetd.d 디렉터리내서비스별파일비활성화여부확인 #vi /etc/xinetd.d/[ 서비스별파일명] SunOS 5.10 이상버전 RPC 서비스관련데몬확인 #inetadm grep rpc grep enabled egrep "ttdbserver rex rstat rusers spray wall rquota" 불필요한 RPC 서비스가활성화된경우아래의에따라서비스데몬중지 LINUX, AIX, HP-UX, SunOS 5.9 이하버전 1. /etc/inetd.conf 파일에서해당라인 # 처리( 주석처리) ( 수정전) rpc.cmsd/2-4 dgramrpc/udp wait root /usr/dt/bin/rpc.cmsd rpc.cmsd ( 수정후) #rpc.cmsd/2-4 dgram rpc/udp wait root /usr/dt/bin/rpc.cmsd rpc.cmsd 2. inetd 서비스재시작 #ps -ef grep inetd root 141 1 0 15:03:22? 0:01 /usr/sbin/inetd -s #kill -HUP 141 66
LINUX (xinetd 일경우) 1. vi 편집기를이용하여 /etc/xinetd.d/ 디렉터리내의불필요한 RPC 서비스파일을연후 2. 아래와같이설정 (Disable = yes 설정) service finger { disable socket_type wait = yes = stream = no } 3. xinetd - 이하생략 - 서비스재시작 #service xinetd restart SunOS 5.10 이상버전 1. 불필요한 rpc 서비스관련데몬확인 svc:/network/rpc/cde-ttdbserver:tcp svc:/network/rpc/rex:default svc:/network/rpc/rstat:default svc:/network/rpc/rusers:default svc:/network/rpc/spray:default svc:/network/rpc/wall:default svc:/network/fs/rquota:default - 이하생략 - 2. svcadm disable 중지하고자하는데몬 명령으로서비스데몬중지 #inetadm d svc:/network/rpc/rusers:default 67
불필요한 RPC 서비스 rpc.cmsd 데이터베이스관리프로그램으로 Open Windows의 Calendar Manager와 CDE의 Calendar 프로그램에서사용 rusersd rstatd rusers 명령의조회에응답 커널에서얻은성능통계리턴 rpc.ttdbserverd 시스템장애시 NFS에서파일복구를위해제공하는 lockd 프로그램지원 kcms_server kodak color management 관련된 api 털이미지들의컬러퍼포먼스를컨트롤할수있는 하기위해사용 와라이브러리들은데스크탑의디지 Profile를만들거나관리 rpc.ttdbserverd RPC 기반의 ToolTalk 데이터베이스프로그램 Walld rpc.nids rpc.ypupdated cachefsd sadmind 다른사용자들에게메시지발송 NIS+ server Daemon Network Information Services(NIS) Cache 파일시스템데몬 remote로부터의시스템관리 맵정보갱신 sprayd 지정된수의패킷을호스트에전송하고성능통계를보고하는 에의해전송된패킷수신 spray 명령 rpc.pcnfsd rexd PC-NFS ( 개인용컴퓨터네트워크파일시스템) 요청처리원격시스템용프로그램실행 클라이언트에서의서비스 rpc.rquotad 리모트머신에 NFS mount 되고있는파일시스템에대해사용자에대한로컬머신에서의할당제한치를반환 일반적인경우영향없음 68
취약점항목 3.10. NIS, NIS+ 점검 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-45 *NIS(Network Information Service) 는중요한시스템데이터베이스파일들을 네트워크를통하여공유하며,NIS+ 는보안및편의기능들을추가한그후의버전임. 보안상취약한서비스인 NIS, NIS+ 를사용하는경우 root 권한획득이가능하므로 사용하지않는것이가장바람직하나만약 NIS를사용해야하는경우사용자 정보보안에많은문제점을내포하고있는 NIS보다 NIS+ 를사용하는것을권장함. *NIS(Network Information Service) 주는정보표를소유하여NIS 대응파일들로변환하고, 이대응파일들이네트워크를통해제공됨으로써모든컴퓨터에정보가갱신되도록함. 네트워크를통한공유로부터관리자와사용자들에게일관성있는시스템환경을제공함. 조치방법 양호 : NIS 서비스가비활성화되어있거나, 필요시 NIS+ 를사용하는경우 취약 : NIS 서비스가활성화되어있는경우 NIS 관련서비스비활성화 LINUX, AIX, HP-UX, SunOS 5.9 이하버전 OS별점검파일위치및점검방법 NIS, NIS+ 서비스구동확인 #ps -ef egrep ypserv ypbind ypxfrd rpc.yppasswdd rpc.ypupdated grep-v"grep" root 3809 3721 0 08:44:40? 0:00 /usr/lib/nis/ypserv SunOS 5.10 이상버전 서비스데몬구동여부확인 #svcs -a grep nis 불필요한 NIS 서비스가활성화된경우아래의에따라서비스데몬중지 NIS 관련서비스데몬 ypserv master와 slave 에서실행되며클라이언트로부터의 ypbind 요청에응답 ypbind 모든 NIS 시스템에서실행되며클라이언트와를바인딩하고초기화함 rpc.yppasswdd 사용자들이패스워드를변경하기위해사용 ypxfrd NIS 마스터에서만실행되며고속으로 NIS 맵전송 rpc.ypupdated NIS 마스터에서만실행되며고속으로암호화하여 NIS 맵전송 69
LINUX, AIX, HP-UX, SunOS 5.9 NFS 서비스데몬중지 #kill -9 [PID] 이하버전 SunOS 5.10 이상버전 1. NIS 관련서비스데몬확인 online 16:44:06 svc:/network/nis/client:default online online online 16:44:07 svc:/network/nis/passwd:default 16:44:07 svc:/network/nis/server:default 16:44:07 svc:/network/nis/update:default online 16:44:07 svc:/network/nis/xfr:default 2. svcadm disable 중지하고자하는데몬 명령으로서비스데몬중지 #svcadm disable svc:/network/nis/server:default #svcadm disable svc:/network/nis/client:default #svcadm disable svc:/network/nis/passwd:default #svcadm disable svc:/network/nis/update:default #svcadm disable svc:/network/nis/xfr:default 일반적으로영향없음 70
취약점항목 3.11. tftp, talk 서비스비활성화 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-46 운영체제는 ftp, tftp, telnet, talk 등의서비스를포함하고있으므로시스템운영에필요하지않는불필요한서비스를제거하여보안성을높일수있고해당불필요한서비스취약점발견으로인한피해를최소화할수있음. 양호 : 취약 : tftp, talk, ntalk tftp, talk, ntalk 서비스가비활성화되어있는경우 서비스가활성화되어있는경우 조치방법시스템운영에불필요한서비스(tftp, talk, ntalk) 비활성화 OS 별점검파일위치및점검방법 LINUX, AIX, HP-UX, SunOS 5.9 이하버전 LINUX (xinetd) SunOS 5.10 이상버전 불필요한서비스데몬확인 #ps ef egrep tftp talk root 3809 3721 0 08:44:40? 0:00 /usr/sbin/in.tftpd tftp, talk, ntalk #vi /etc/xinetd.d/tftp #vi /etc/xinetd.d/talk #vi /etc/xinetd.d/ntalk 서비스데몬확인 #inetadm egrep tftp talk 서비스활성화여부확인 불필요한 tftp, talk, ntalk 서비스가활성화된경우아래의에따라서비스데몬중지 불필요한서비스데몬 tftp(69) talk(517) ntalk(518) 파일전송을위한프로토콜. tftp 프로토콜은 OS에서는부팅디스켓이없 는워크스테이션이나네트워크인식프린터를위한설정파일의다운로 드, 설치프로 스의시작을위해사용 사용자가시스템에원격으로연결하여다른시스템에로그인하고있는 사용자와대화 션을시작할수있음 서로다른시스템간에채팅을가능하게하는서비스 LINUX, AIX, HP-UX, SunOS 5.9 불필요한서비스데몬중지 #kill -9 [PID] 이하버전 71
LINUX (xinetd 일경우) 1. vi 편집기를이용하여 /etc/xinetd.d/ 디렉터리내 tftp, talk, ntalk 파일을연후 2. 아래와같이설정 (Disable = yes 설정) /etc/xinetd.d/tftp /etc/xinetd.d/talk /etc/xinetd.d/ntalk 파일 파일 파일 service tftp { } 3. xinetd socket_type protocol wait user server server_args disable 서비스재시작 #service xinetd restart = dgram = udp = yes = root = /usr/sbin/in.tftpd = -s /tftpboot = yes SunOS 5.10 이상버전 1. 불필요한서비스데몬확인 svc:/network/tftp:default svc:/network/talk:default svc:/network/ntalk:default 2. inetadm d 중지하고자하는데몬 명령으로서비스데몬중지 #inetadm -d svc:/network/tftp:default #inetadm -d svc:/network/talk:default #inetadm -d svc:/network/ntalk:default 일반적으로영향없음 72
취약점항목 3.12. Sendmail 버전점검 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-47 조치방법 Sendmail 은널리쓰이는만큼많은취약점이알려져있어공격에목표가되기 쉬우므로에서 Sendmail 을사용하는목적을검토하여사용할필요가없는경우, 서비스를제거하는것이바람직함. 만일운영할필요가있다면취약점이없는 Sendmail 버전을유지하고취약점에대한패치가발표되었을시빠른시기에이를 적용하도록함. 그렇지않을경우버퍼오버플로우(Buffer Overflow) 의공격에의한 시스템권한획득및주요정보유출가능성이있음. 양호 : Sendmail 버전이 8.13.8 이상인경우 취약 : Sendmail 버전이 8.13.8 이상이아닌경우 Sendmail 서비스를사용하지않을경우서비스중지, 재부팅후다시시작하지 않도록시작스크립트변경, 사용할경우패치관리정책을수립하여주기적으로 패치적용 Sendmail 서비스의경우 8.13.8 이하대부분의버전에서취약점이보고되고있기 때문에 O/S 관리자, 서비스개발자가패치적용에따른서비스영향정도를정확히 파악하고주기적인패치적용정책을수립하여적용함 SunOS, LINUX, AIX, HP-UX OS 별점검파일위치및점검방법 1. Sendmail #ps 서비스실행여부점검 ef grep sendmail 2. Sendmail 버전점검 #telnet localhost 25 Sendmail 서비스가활성화된경우아래의에따라서비스중지또는, 버전업그레이드 SunOS, LINUX, AIX, HP-UX Sendmail 서비스실행여부및버전점검후, http://www.sendmail.org/ 또는, 각 OS 벤더사의보안패치설치 패치를적용할경우시스템및서비스의영향정도를충분히고려하여야함 73
취약점항목 3.13. 스팸메일릴레이제한 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-48 *SMTP(Simple Mail Transfer Protocol) 의릴레이기능을제한하지않을경우스 팸메일로악용되거나, 의부하가증가할수있음. 따라서인증된사용자에 게메일을보낼수있도록설정하거나불필요시 SMTP 서비스를중지하여야함. *SMTP(Simple Mail Transfer Protocol) : 인터넷상에서전자우편(E-mail) 을전송할때이용하 게되는표준통신규약을 SMTP 라고하며, SMTP 에의해전자메일을발신하는(server) 를 SMTP 라고함. 조치방법 양호 : 취약 : Sendmail SMTP SMTP 서비스를사용하지않거나릴레이제한이설정되어있는경우 서비스를사용하며릴레이제한이설정되어있지않은경우 서비스를사용하지않을경우서비스중지 사용할경우릴레이방지설정또는, 릴레이대상접근제어 SunOS, LINUX, HP-UX AIX OS별점검파일위치및점검방법 SMTP 서비스사용여부및릴레이제한옵션확인 #ps -ef grep sendmail grep -v "grep" #cat /etc/mail/sendmail.cf grep "R$\*" grep "Relaying denied" R$* $#error $@ 5.7.1 $: "550 Relaying denied" #ps -ef grep sendmail grep -v "grep" #cat /etc/sendmail.cf grep "R$\*" grep "Relaying denied" R$* $#error $@ 5.7.1 $: "550 Relaying denied" SMTP 서비스가실행중이며, 위에제시한설정이적용되지않은경우아래의에 따라설정을변경함 OS 종류별 sendmail.cf 설정파일위치 AIX의경우 /etc/sendmail.cf 파일 SunOS, LINUX, HP-UX 의경우 /etc/mail/sendmail.cf 파일 SunOS, LINUX, HP-UX 1. vi 편집기를이용하여 sendmail.cf 설정파일을연후 2. 아래와같이주석제거 ( 수정전) #R$* $#error $@ 5.7.1 $: "550 Relaying denied" ( 수정후) R$* $#error $@ 5.7.1 $: "550 Relaying denied" 3. 특정 IP, domain, Email Address 및네트워크에대한 sendmail 접근제한확인 #cat /etc/mail/access 74
AIX 1. vi 편집기를이용하여 sendmail.cf 설정파일을연후 2. 아래와같이주석제거 ( 수정전) #R$* $#error $@ 5.7.1 $: "550 Relaying denied" ( 수정후) R$* $#error $@ 5.7.1 $: "550 Relaying denied" 3. 특정 IP, domain, Email Address 및네트워크에대한 sendmail 접근제한확인 #cat /etc/sendmail.cf 릴레이를허용할대상에대한정보를입력한다면영향없음 75
취약점항목 3.14. 일반사용자의 Sendmail 실행방지 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-49 SMTP 서비스사용시일반사용자의 q 옵션을사용한 Sendmail 실행을방지하여메 일큐내용과 sendmail 설정을보거나, 메일큐를강제적으로 drop 시킬수있는기능 을막아야함. 그렇지않을경우비인가자에의한SMTP 서비스오류발생이가능함. *SMTP(Simple Mail Transfer Protocol): 인터넷상에서전자우편(E-mail) 을전송할때이용하게되는표준통신규약을말함. 조치방법 양호 : SMTP 서비스미사용또는, 일반사용자의 Sendmail 실행방지가설정된경우 취약 : SMTP 서비스사용및일반사용자의 Sendmail 실행방지가설정되어있지않은경우 Sendmail 서비스를사용하지않을경우서비스중지 Sendmail 서비스를사용시 sendmail.cf 설정파일에 restrictqrun 옵션추가설정 OS 별점검파일위치및점검방법 SunOS, LINUX, HP-UX AIX SMTP 서비스사용여부및 restrictqrun 옵션확인 #ps -ef grep sendmail grep -v "grep" #grep -v '^ *#' /etc/mail/sendmail.cf grep PrivacyOptions #ps -ef grep sendmail grep -v "grep" #grep -v '^ *#' /etc/sendmail.cf grep PrivacyOptions SMTP 서비스가실행중이며, 위에제시한설정이적용되지않은경우아래의에 따라설정을변경함 OS 종류별 sendmail.cf 설정파일위치 AIX의경우 /etc/sendmail.cf 파일 SunOS, LINUX, HP-UX 의경우 /etc/mail/sendmail.cf 파일 SunOS, LINUX, AIX, HP-UX 1. vi 편집기를이용하여 sendmail.cf 설정파일을연후 2. O PrivacyOptions= 설정부분에 restrictqrun 옵션추가 ( 수정전) O PrivacyOptions=authwarnings, novrfy, noexpn ( 수정후) O PrivacyOptions=authwarnings, novrfy, noexpn, restrictqrun 3. Sendmail 서비스재시작 옵션적용시에는일반적으로영향없음 76
취약점항목 3.15. DNS 보안버전패치 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-50 조치방법 *BIND(Berkeley Internet Name Domain) 는 BIND 9.5.0 버전이나왔으며이하 버전에서는많은취약점이존재함.BIND8.x는 BIND의 distribution을 Sendmail의 버전과일치시키기위해사용하는새로운버전번호로 BIND 4의 Production version 에비하여안정성, 성능, 보안성등이향상되었으나, BIND 8.3.4 이하 버전에서는서비스거부공격, 버퍼오버플로우(Buffer Overflow) 및 DNS 원격 침입등의취약성이존재함. *BIND(Berkeley Internet Name Domain): BIND는 BSD 기반의유닉스시스템을위해설계된 DNS로와resolver 라이브러리로구성되어있음. 네임는클라이언트들이이름 자원들이나객체들에접근하여, 네트워크내의다른객체들과함께정보를공유할수있게해주는 네트워크서비스로사실상컴퓨터네트워크내의객체들을위한분산데이터베이스시스템임. 양호 : 취약 : DNS 서비스를사용하지않거나주기적으로패치를관리하고있는경우 DNS 서비스를사용하며주기적으로패치를관리하고있지않는경우 [ 취약점이존재하지않는버전] 8.4.6, 8.4.7, 9.2.8-P1, 9.3.4-P1, 9.4.1-P1, 9.5.0a6 DNS 서비스를사용하지않을경우서비스중지, 사용할경우패치관리정책을 수립하여주기적으로패치적용 DNS 서비스의경우대부분의버전에서취약점이보고되고있기때문에 O/S 관리자, 서비스개발자가패치적용에따른서비스영향정도를정확히 파악하여주기적인패치적용정책수립후적용 SunOS, LINUX, AIX, HP-UX OS별점검파일위치및점검방법 DNS 서비스사용및 BIND 버전확인 #ps -ef grep named named -v DNS 서비스를사용하지않는경우서비스중지 DNS 서비스사용시 BIND 버전확인후아래의에따라최신버전으로업데이트 SunOS, LINUX, AIX, HP-UX 1. BIND 는거의모든버전이취약한상태로서최신버전으로업데이트가요구됨 2. 다음은구체적인 BIND 취약점들이며, 취약점관련버전을사용하는시스템에서는버전 업그레이드를하여야함 Inverse Query 취약점 (Buffer Overflow) : BIND 4.9.7이전버전과 BIND 8.1.2 이전버전 NXT 버그 (buffer overflow) : BIND 8.2, 8.2 p1, 8.2.1버전 solinger 버그 (Denial of Service) : BIND 8.1 이상버전 77
fdmax 버그 (Denial of Service) : BIND 8.1 이상버전 Remote Execution of Code(Buffer Overflow): BIND 4.9.5 to 4.9.10, 8.1, 8.2 to 8.2.6, 8.3.0 to 8.3.3 버전 Multiple Denial of Service: BIND 8.3.0-8.3.3, 8.2-8.2.6 버전 LIBRESOLV: buffer overrun(buffer Overflow) : BIND 4.9.2 to 4.9.10 버전 OpenSSL (buffer overflow) : BIND 9.1, BIND 9.2 if built with OpenSSL (configure --with-openssl) libbind (buffer overflow) : BIND 4.9.11, 8.2.7, 8.3.4, 9.2.2 이외의모든버전 DoS internal consistency check (Denial of Service) : BIND 9 ~ 9.2.0 tsig bug (Access possible) : BIND 8.2 ~ 8.2.3 버전 complain bug (Stack corruption, possible remote access) : BIND 4.9.x zxfr bug (Denial of service) : BIND 8.2.2, 8.2.2 patchlevels 1through6 sigdiv0 bug (Denial of service) : BIND 8.2, 8.2 patchlevel 1, 8.2.2 버전 버전 거의모든버전 srv bug(denial of service): BIND 8.2, 8.2 patchlevel 1, 8.2.1, 8.2.2, 8.2.2 patchlevels 1-6 nxt bug (Access possible) : BIND 8.2, 8.2 patchlevel 1, 8.2.1 BIND 4.9.8 이전버전, 8.2.3 이전버전과관련된취약점 -TSIG 핸들링버퍼오버플로우취약점 -nslookupcomplain() 버퍼오버플로우취약점 -nslookupcomplain()inputvalidation -informationleak 취약점 -sigbugdenialofservice -naptrbugdenialofservice 취약점 -maxdnamebugenialofservice 취약점 취약점 취약점 버전 버전 버전 BIND Vulnerability matrix : http://www.isc.org/sw/bind/bind-security.php#matrix 패치를적용시시스템및서비스영향정도를충분히고려하여야함 78
취약점항목 3.16. DNS Zone Transfer 설정 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-51 DNS Zone Transfer는 Primary Name Server와 Secondary Name Server 간에 Zone 정보를일관성있게유지하기위하여사용하는기능으로 Secondary Name Server로만 Zone 정보를전송하도록제한하여야함. 만약허가되지않는사용자에게 Zone Transfer를허용할경우공격자는전송받은 Zone 정보를이용하여호스트정보, 시스템정보, 네트워크구성형태등의많은정보를파악할수있음. 조치방법 양호 : DNS 서비스미사용또는, Zone Transfer를허가된사용자에게만허용한경우 취약 : DNS 서비스를사용하며 Zone Transfer를모든사용자에게허용한경우 DNS 서비스를사용하지않을경우서비스중지, 사용한다면 DNS설정을통해내부 Zone 파일을임의의외부에서전송받지 못하게하고, 아무나쿼리응답을받을수없도록수정 <DNS 서비스를사용할경우 > OS 별점검파일위치및점검방법 SunOS, LINUX, AIX, HP-UX DNS 서비스사용시 /etc/named.conf 파일의 allow-transfer 및 xfrnets 확인 #ps -ef grep named grep -v "grep" #cat /etc/named.conf grep 'allow-transfer' #cat /etc/named.boot grep "xfrnets" DNS 서비스사용시위에제시된파일의 DNS 설정을아래의에따라수정함 BIND8 DNS 설정(named.conf) 수정예 options { }; allow-transfer { 존파일전송을허용하고자하는 IP;}; BIND4.9 DNS 설정(named.boot) 수정예 options xfrnets 허용하고자하는 IP <DNS 서비스를사용하지않는경우 > 79
OS 별점검파일위치및점검방법 LINUX, AIX, HP-UX, SunOS 5.9 이하버전 DNS 서비스데몬확인 (DNS 동작 SID 확인) #ps ef grep named root 3809 3721 0 08:44:40? 0:00 /usr/sbin/in.named SunOS 5.10 이상버전 #svcs -a egrep dns DNS 서비스를사용하지않는경우서비스데몬중지 LINUX, AIX, HP-UX, SunOS 5.9 DNS 서비스데몬중지 #kill -9 [PID] 이하버전 SunOS 5.10 이상버전 1. DNS 서비스데몬확인 enabled 16:22:31 svc:/network/dns/server:default 2. svcadm disable 중지하고자하는데몬 명령으로서비스데몬중지 #svcadm disable svc:/network/dns/server:default Zone 파일전송을허용할대상을정상적으로등록할경우일반적으로영향없음 80
취약점항목 3.17. Apache 디렉터리리스팅제거 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-52 디렉터리검색은디렉터리요청시해당디렉터리에기본문서가존재하지않을경우 디렉터리내모든파일의목록을보여주는기능임. 디렉터리검색기능이활성화되어 있는경우외부에서디렉터리내의모든파일에대한접근이가능하여 WEB 구조노출뿐만아니라백업파일이나소스파일등공개되어서는안되는중요파일 노출이가능함. 양호 : 취약 : 디렉터리검색기능을사용하지않는경우 디렉터리검색기능을사용하는경우 조치방법 디렉터리검색기능제거 (/[Apache_home]/conf/httpd.conf 디렉터리의 Options 지시자에서 Indexes 옵션제거) 파일에설정된모든 SunOS, LINUX, AIX, HP-UX OS별점검파일위치및점검방법 Indexes 옵션사용여부확인 #vi /[Apache_home]/conf/httpd.conf Options Indexes FollowSymLinks 위에제시한파일에 Indexes 옵션이설정된경우 아래의에따라옵션설정변경 SunOS, LINUX, AIX, HP-UX 1. vi 편집기를이용하여 /[Apache_home]/conf/httpd.conf 파일을연후 #vi /[Apache_home]/conf/httpd.conf 2. 설정된모든디렉터리의 Options 지시자에서 Indexes 옵션제거 ( 수정전) Option 지시자에 Indexes 옵션이설정되어있음 <Directory /> Options Indexes FollowSymLinks AllowOverride None Order allow, deny Allow from all </Directory> 81
( 수정후) Option 지시자에 Indexes 옵션제거후저장 <Directory /> Options FollowSymLinks AllowOverride None Order allow, deny Allow from all </Directory> 일반적인경우영향없음 82
취약점항목 3.18. Apache 웹프로세스권한제한 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-53 시스템의경우 Web 데몬이 root 권한으로운영될경우 Web Application 의취약점또는, 버퍼오버플로우(Buffer Overflow) 로인하여root 권한을 획득할수있으므로데몬이 root 권한으로운영되지않도록관리하여야함. 양호 : Apache 데몬이 root 권한으로구동되지않는경우 취약 : Apache 데몬이 root 권한으로구동되는경우 조치방법 Apache 데몬을 root 가아닌별도계정으로구동 SunOS, LINUX, AIX, HP-UX OS 별점검파일위치및점검방법 Apache 데몬구동권한(User 및 Group) 확인 #vi /[Apache_home]/conf/httpd.conf User [root 가아닌별도계정명] Group [root 가아닌별도계정명] 위에제시한설정이적용되지않은경우아래의에따라설정을변경함 SunOS, LINUX, AIX, HP-UX 1. 데몬 User & Group 변경 User & Group 부분에 User [root 가아닌별도계정명] Group [root 가아닌별도계정명] root가아닌별도계정으로변경 3. Apache 서비스재시작 일반적인경우영향없음 83
취약점항목 3.19. Apache 상위디렉터리접근금지 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-54 조치방법 상위경로로이동하는것이가능할경우하위경로에접속하여상위경로로 이동함으로써해킹을당할위험이있으며, 유니코드버그(Unicode Bug) 및서비스 거부공격에취약해지기쉬우므로.. 와같은상위경로로이동이가능한문자사용이 불가능하도록설정할것을권장함.Apache는특정디렉터리내에존재하는파일들을 호출할때사용자인증을수행하도록설정할수있음. 따라서해당설정을이용하여 중요파일및데이터접근은허가된사용자만가능하도록제한함. 양호 : 취약 : 상위디렉터리에이동제한을설정한경우 상위디렉터리에이동제한을설정하지않은경우 1. 사용자인증을하기위해서각디렉터리별로 httpd.conf 파일내 AllowOverride 지시자의옵션설정을변경 (None에서 AuthConfig 또는, All 로변경) 2. 사용자인증을설정할디렉터리에.htaccess 파일생성 3. 사용자인증계정생성: htpasswd -c < 인증파일> < 사용자계정> OS 별점검파일위치및점검방법 SunOS, LINUX, AIX, HP-UX AllowOverride 지시자 Authconfig 옵션확인 #vi /[Apache_home]/conf/httpd.conf AllowOverride None AllowOverride 옵션이 "None" 으로설정된경우아래의에따라옵션설정변경 SunOS, LINUX, AIX, HP-UX 1. vi 편집기를이용하여 /[Apache_home]/conf/httpd.conf 파일을연후 #vi /[Apache_home]/conf/httpd.conf 2. 설정된모든디렉터리의 AllowOverride 지시자에서 AuthConfig 옵션설정 ( 수정전) AllowOverride 지시자에 None 옵션이설정되어있음 <Directory /usr/local/apache2/htdocs > AllowOverride None Allow from all </Directory> ( 수정후) AllowOverride 지시자에 AuthConfig 옵션이설정되어있음 84
<Directory /usr/local/apache2/htdocs > AllowOverride AuthConfig Allow from all </Directory> 3. 사용자인증을설정할디렉터리에.htaccess 파일생성 ( 아래내용삽입) AuthName " 디렉터리사용자인증" AuthType Basic AuthUserFile /usr/local/apache/test/.auth Require valid-user 지시자 설명 AuthName 인증영역 ( 웹브라우저의인증창에표시되는문구) AuthType 인증형태 (Basic 또는, Digest) AuthUserFile 사용자정보( 아이디및패스워드) 저장파일위치 AuthGroupFile 그룹파일의위치 ( 옵션) Require 접근을허용할사용자또는, 그룹정의 4. 사용자인증에사용할아이디및패스워드생성 #htpasswd -c /usr/local/apache/test/.auth test New password: Re-type new password: Adding password for user test [root@localhost apache]# 5. 변경된설정내용을적용하기위하여 Apache 데몬재시작 6. 사용자인증을설정한디렉터리내파일호출화면 해당설정이적용된디렉터리내파일들은아이디/ 패스워드인증절차없이는접속이 불가능하며, 대외서비스인경우해당디렉터리에대한외부자의접근필요성을검토 후적용하여야함 85
취약점항목 3.20. Apache 불필요한파일제거 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-55 조치방법 웹설치시기본으로생성되는매뉴얼파일은외부침입자에게시스템정보및 웹정보를제공할수있으므로제거하여야함. 양호 : 취약 : 매뉴얼파일및디렉터리가제거되어있는경우 매뉴얼파일및디렉터리가제거되지않은경우 매뉴얼파일및디렉터리제거 ( /[Apache_home]/htdocs/manual, /[Apache_home]/manual 파일제거) SunOS, LINUX, AIX, HP-UX OS별점검파일위치및점검방법매뉴얼및디렉터리존재여부확인 #ls -ld /[Apache_home]/htdocs/manual #ls -ld /[Apache_home]/manual 위에제시한매뉴얼파일및디렉터리가존재하는경우아래의에따라매뉴얼파일 및디렉터리제거또는, 설정을변경함 SunOS, LINUX, AIX, HP-UX 1. #ls 명령어로확인된매뉴얼디렉터리및파일제거 #rm -rf /[Apache_home]/htdocs/manual #rm -rf /[Apache_home]/manual 2. #ls 명령어로정상적인제거확인 #ls -ld /[Apache_home]/htdocs/manual #ls -ld /[Apache_home]/manual 일반적인경우영향없음 86
취약점항목 3.21. Apache 링크사용금지 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-56 일부는 * 심볼릭링크(Symbolic link) 를이용하여기존의웹문서이외의 파일시스템접근이가능하도록하고있음. 이러한방법은편의성을제공하는반면, 일반사용자들도시스템중요파일에접근할수있게하는보안문제를발생시킴. 가령시스템자체의 root 디렉터리(/) 에링크를걸게되면웹구동사용자 권한(nobody) 으로모든파일시스템의파일에접근할수있게되어 /etc/passwd 파일과같은민감한파일을누구나열람할수있게됨. * 심볼릭링크(Symbolic link, 소프트링크): 윈도우운영체제의바로가기아이콘과비슷함. 링크 생성시파일내용은존재하지않으나사용자가파일을요청하면링크가가리키고있는원본 데이터에서데이터를가져와서전달함. 직접원본을가리키지않고원본데이터를가리키는 포인터를참조함으로써원본데이터가삭제, 이동, 수정이되면사용불가함. 양호 : 심볼릭링크,aliases사용을제한한경우 취약 : 심볼릭링크,aliases사용을제한하지않은경우 조치방법 심볼릭링크,aliases사용제한 (/[Apache_home]/conf/httpd.conf 심볼릭링크를가능하게하는 파일에설정된모든디렉터리의 FollowSymLinks 옵션제거) Options 지시자에서 SunOS, LINUX, AIX, HP-UX OS별점검파일위치및점검방법 Options 지시자 FollowSymLinks 옵션제거여부확인 #vi /[Apache_home]/conf/httpd.conf Options Indexes FollowSymLinks 위에제시한옵션이적용되어있는경우아래의에따라옵션을제거함 SunOS, LINUX, AIX, HP-UX 1. vi 편집기를이용하여 /[Apache_home]/conf/httpd.conf 파일을연후 #vi /[Apache_home]/conf/httpd.conf 2. 설정된모든디렉터리의 Options 지시자에서 FollowSymLinks 옵션제거 ( 수정전) Options 지시자에 FollowSymLinks 옵션이설정되어있음 <Directory /> Options Indexes FollowSymLinks AllowOverride None Order allow, deny Allow from all </Directory> 87
( 수정전) Options 지시자에 FollowSymLinks 옵션제거후저장 <Directory /> Options Indexes AllowOverride None Order allow, deny Allow from all </Directory> 일반적인경우영향없음 88
취약점항목 3.22. Apache 파일업로드및다운로드제한 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-57 조치방법 불필요한파일업로드, 다운로드시에대량의업로드, 다운로드로인한서비스 불능상태가발생할수있음. 따라서불필요한업로드와다운로드는허용하지않으며, 웹에의해처리되지못하게하고, 자동이나수동으로파일의보안성검토를 수행함. 양호 : 취약 : 파일업로드및다운로드를제한한경우 파일업로드및다운로드를제한하지않은경우 파일업로드및다운로드용량제한 모든디렉터리의 (/[Apache_home]/conf/httpd.conf LimitRequestBody 지시자에파일사이즈용량제한설정 파일에설정된 OS 별점검파일위치및점검방법 SunOS, LINUX, AIX, HP-UX LimitRequestBody 파일사이즈용량제한설정여부확인 #vi /[Apache_home]/conf/httpd.conf LimitRequestBody 5000000 ( 업로드및다운로드파일이 5M 를넘지않도록설정권고함) 위에제시한설정이적용되지않은경우아래의에따라설정을변경함 SunOS, LINUX, AIX, HP-UX 1. vi 편집기를이용하여 /[Apache_home]/conf/httpd.conf 파일을연후 #vi /[Apache_home]/conf/httpd.conf 2. 설정된모든디렉터리의 LimitRequestBody 지시자에서파일사이즈용량제한설정 <Directory /> LimitRequestBody 5000000 ( / 는모든파일사이즈를 5M 로제한하는설정) </Directory> 일반적인경우영향없음 89
취약점항목 3.23. Apache 웹서비스영역의분리 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-58 Apache 설치시 htdocs 디렉터리를 DocumentRoot로사용하고있는데 htdocs 디렉터리는공개되어서는안될( 또는, 공개될필요가없는) Apache 문서뿐만아니라 공격에이용될수있는시스템관련정보도포함하고있으므로이를변경하여야함. 또한, 대량의업로드와다운로드시서비스불능상태가발생할수있음. 양호 : 취약 : DocumentRoot를별도의디렉터리로지정한경우 DocumentRoot를기본디렉터리로지정한경우 조치방법 DocumentRoot "/usr/local/apache/htdocs -> DocumentRoot " 별도디렉터리" 로변경 OS 별점검파일위치및점검방법 SunOS, LINUX, AIX, HP-UX DocumentRoot 의별도디렉터리지정여부확인 #vi /[Apache_home]/conf/httpd.conf DocumentRoot /usr/local/apache/htdocs DocumentRoot 가 /usr/local/apache/htdocs 가아닌별도의디렉터리로지정되지않은경우아래의에따라설정을변경함 SunOS, LINUX, AIX, HP-UX 1. vi 편집기를이용하여 /[Apache_home]/conf/httpd.conf 파일을연후 #vi /[Apache_home]/conf/httpd.conf 2. DocumentRoot 설정부분에 /usr/local/apache/htdocs 가아닌별도의디렉터리로변경 DocumentRoot " 디렉터리" 일반적인경우영향없음 90
취약점항목 3.24. ssh 원격접속허용 대상 OS SunOS, LINUX, AIX, HP-UX 위험도중 Code U-59 Telnet, FTP 등은암호화되지않은상태로데이터를전송하기때문에 ID/ 패스워드및 중요정보가외부로유출될위험성이있음. 따라서원격접속시사용자와시스템과의 모든통신을암호화하는 *SSH(Secure Shell) 서비스를사용할것을권장함. *SSH(Secure Shell): 공개키암호방식을사용하여원격지시스템에접근, 암호화된메시지를 전송하는시스템을말함. 암호화된메시지를전송함으로써 LAN 상에서다른시스템에로그인할 때스니퍼에의해서도청당하는것을막을수있음. 양호 : 원격접속시 SSH 프로토콜을사용하는경우 취약 : 원격접속시 Telnet, FTP 등안전하지않은프로토콜을사용하는경우 조치방법 Telnet, FTP 등안전하지않은서비스사용을중지하고, SSH설치및사용 SunOS LINUX OS별점검파일위치및점검방법서비스데몬실행여부확인 #svcs-a grepssh 서비스데몬실행여부확인 #ps-ax grepsshd 서비스데몬이실행중인경우각 OS 벤더사로부터 SSH 서비스설치방법을문의한후 에설치할것을권고함 SunOS, LINUX, AIX, HP-UX 1. 각 OS 벤더사로부터 SSH 서비스설치방법을문의한후에설치 일반적인경우영향없음 91
취약점항목 3.25. ftp 서비스확인 대상 OS SunOS, LINUX, AIX, HP-UX 위험도하 Code U-60 FTP 서비스는아이디및패스워드가암호화되지않은채로전송되어간단한 Sniffer에 의해서도스니핑이가능하므로반드시필요한경우를제외하고는 FTP 서비스사용을제한하여야함. 양호 : FTP 서비스가비활성화되어있는경우취약 : FTP 서비스가활성화되어있는경우 조치방법 FTP 서비스중지 SunOS LINUX, AIX, HP-UX 일반 ftp FTP 종류별점검방법 서비스비활성화여부확인 #vi/etc/inetd.conf proftpd 서비스데몬확인 (proftpd 동작 SID 확인) #ps ef grepproftpd root 3809 3721 0 08:44:40? 0:00 /usr/local/proftpd/sbin/proftpd vsftpd 서비스데몬확인 (vsftpd 동작 SID 확인) #ps ef grepvsftpd root 3809 3721 0 08:44:40? 0:00 /usr/sbin/vsftpd/etc/vsftpd/vsftpd.conf 일반 #ps ftp 서비스비활성화여부확인 ef grepftp vsftpd 서비스데몬확인 (vsftpd 동작 SID 확인) #ps ef grepvsftpd root 3809 3721 0 08:44:40? 0:00 /usr/sbin/vsftpd 불필요한 ftp" 서비스실행시아래의에따라서비스중지 SunOS < 일반 FTP 서비스중지방법 > 1. /etc/inetd.conf 파일에서 ftp 서비스라인 # 처리( 주석처리) ( 수정전) ftp stream tcp nowait bin /usr/sbin/in.ftpd in.fingerd -a ( 수정후) #ftp stream tcp nowait bin /usr/sbin/in.ftpd in.fingerd -a 2. inetd 서비스재시작 #ps -ef grep inetd root 141 1 0 15:03:22? 0:01 /usr/sbin/inetd -s #kill -HUP [PID] LINUX, AIX, HP-UX <vsftp 서비스중지방법 1. 서비스확인 > 92
#ps 2. vsftpd ef grepvsftpd 서비스데몬중지 #servicevsftpdstop 또는 /etc/rc.d/init.d/vsftpdstop 일반적인경우영향없음 93
취약점항목 3.26. ftp 계정 shell 제한 대상 OS SunOS, LINUX, AIX, HP-UX 위험도중 Code U-61 FTP 서비스설치시기본으로생성되는 ftp 계정은로그인이필요하지않은기본 계정으로쉘을제한하여해당계정으로의시스템접근을차단하여야함. 로그인이 불필요한기본계정에 * 쉘(Shell) 을부여할경우공격자에게해당계정이노출되어 시스템불법침투가발생할수있음. * 쉘(Shell): 대화형사용자인터페이스로써, 운영체제(OS) 가장외곽계층에존재하여사용자의 명령어를이해하고실행함. 양호 : ftp 계정에 /bin/false 쉘이부여되어있는경우 취약 : ftp 계정에 /bin/false 쉘이부여되지않은경우 조치방법 ftp 계정에 /bin/false 쉘부여 SunOS, LINUX, AIX, HP-UX OS별점검파일위치및점검방법 ftp 계정에대한 /bin/false 부여확인 #cat /etc/passwd ftp:x:500:100:anonymous FTP USER:/var/ftp:/sbin/bash passwd" 파일내로그인쉘설정이 /bin/false 가아닌경우아래의에따라설정을변경함 SunOS, LINUX, AIX, HP-UX 1. vi 편집기를이용하여 /etc/passwd 파일을연후 2. ftp 계정의로그인쉘부분인계정맨마지막에 /bin/false 부여및변경 ( 수정전) ftp:x:500:100:anonymous FTP USER:/var/ftp:/sbin/bash ( 수정후) ftp:x:500:100:anonymous FTP USER:/var/ftp:/bin/false 일반적인경우영향없음 94
취약점항목 3.27. ftpusers 파일소유자및권한설정 대상 OS SunOS, LINUX, AIX, HP-UX 위험도하 Code U-62 FTP 접근제어설정파일을관리자가아닌일반사용자들도접근및변경이가능할경우비인가자 FTP 접근을통해계정을등록하고에접속하여불법적인행동을가능하게하는등침해사고가발생할수있음.FTP접근제어설정파일을일반사용자들이수정할수없도록제한하고있는지점검함. 양호 : ftpusers 파일의소유자가 root 이고, 권한이 640 이하인경우 취약 : ftpusers 파일의소유자가 root 가아니거나, 권한이 640 이하가아닌경우 조치방법 FTP 접근제어파일의소유자및권한변경 ( 소유자 root, 권한 640 이하) SunOS, LINUX, AIX, HP-UX ftpusers #ls #ls OS 별점검파일위치및점검방법 파일에대한일반사용자쓰기권한확인 al /etc/ftpusers al /etc/ftpd/ftpusers rw-r----- root <ftpusers 파일 > ftpusers 파일의소유자가 root가아니거나파일의권한이 640 이하가아닌경우아래의 에따라설정을변경함 FTP 종류별 ftpusers 파일위치 기본 FTP /etc/ftpusers 또는, /etc/ftpd/ftpusers ProFTP vsftp /etc/ftpusers 또는, /etc/ftpd/ftpusers /etc/vsftpd/ftpusers, /etc/vsftpd/user_list 또는, /etc/vsftpd.ftpusers, /etc/vsftpd.user_list SunOS, LINUX, AIX, HP-UX 1. /etc/ftpusers #ls -l /etc/ftpusers 파일의소유자및권한확인 2. /etc/ftpusers 파일의소유자및권한변경 ( 소유자 root, 권한 640) #chown root /etc/ftpusers #chmod 640 /etc/ftpusers vsftp를사용할경우 FTP 접근제어파일 (1) vsftpd.conf 파일에서 userlist_enable=yes 인경우: vsftpd.ftpusers, vsftpd.userlist (ftpusers, user_list 파일에등록된모든계정의접속이차단됨) (2) vsftpd.conf 파일에서 userlist_enable=no 또는, 옵션설정이없는경우: vsftpd.ftpusers (ftpusers 파일에등록된계정들만접속이차단됨) 일반적인경우영향없음 95
취약점항목 3.28. ftpusers 파일설정 대상 OS SunOS, LINUX, AIX, HP-UX 위험도중 Code U-63 FTP 서비스는아이디및패스워드가암호화되지않은채로전송되어간단한스니퍼에 의해서도아이디및패스워드가노출될수있으므로반드시필요한경우를 제외하고는 FTP 서비스사용을제한하여야함. 불가피하게 FTP 서비스를사용하여야하는경우 root 계정의직접접속을제한하여 root 계정의패스워드정보가노출되지않도록함. 조치방법 양호 : FTP 서비스가비활성화되어있거나, 활성화시 root 계정접속을차단한경우 취약 : FTP 서비스가활성화되어있고, root 계정접속을허용한경우 FTP 접속시 root 계정으로직접접속할수없도록설정파일수정 ( 접속차단계정을등록하는 ftpusers 파일에 root 계정추가) FTP 종류별점검방법 아래파일에서 ftp에대한 root 계정으로의접속가능여부확인 #cat /etc/ftpusers #cat /etc/ftpd/ftpusers #root ( 주석처리) 또는, root 계정미등록 SunOS, LINUX, AIX, HP-UX ProFTP #cat /etc/proftpd.con RootLogin on vsftp #cat /etc/vsftp/ftpusers #cat /etc/vsftpd.ftpusers #root ( 주석처리) 또는, root 계정미등록 root 계정으로 FTP 접속이가능하도록위와같이설정된경우아래의에따라설정을변경함 SunOS, LINUX, AIX, HP-UX < 일반 FTP 서비스 root 계정접속제한방법 > 1. vi 편집기를이용하여 ftpusers 파일을연후 ( /etc/ftpusers 또는, /etc/ftpd/ftpusers ) #vi /etc/ftpusers 또는, /etc/ftpd/ftpusers 2. ftpusers 파일에 root 계정추가또는, 주석제거 ( 수정전) #root 또는, root 계정미등록 ( 수정후) root <ProFTP 서비스중지방법> 1. vi 편집기를이용하여 proftpd 설정파일( /etc/proftpd.conf ) 을연후 #vi /etc/proftpd.conf 96
2. proftpd 설정파일 ( /etc/proftpd.conf ) 에서 RootLogin off 설정 ( 수정전) RootLogin on ( 수정후) RootLogin off <vsftp 서비스중지방법 > 1. vi 편집기를이용하여 ftpusers 파일을연후 ( /etc/vsftp/ftpusers 또는, /etc/vsftpd.ftpusers ) #vi /etc/vsftp/ftpusers 2. ftpusers 파일에 root 계정추가또는, 주석제거 ( 수정전) #root 또는, root 계정미등록 ( 수정후) root vsftp를사용할경우 FTP 접근제어파일 (1) vsftpd.conf 파일에서 userlist_enable=yes 인경우: vsftpd.ftpusers, vsftpd.userlist (ftpusers, user_list 파일에등록된모든계정의접속이차단됨) (2) vsftpd.conf 파일에서 userlist_enable=no 또는, 옵션설정이없는경우: vsftpd.ftpusers (ftpusers 파일에등록된계정들만접속이차단됨) 애플리케이션에서 root로바로접속하여 ftp를사용하고있을경우확인필요 97
취약점항목 3.29. at 파일소유자및권한설정 대상 OS SunOS, LINUX, AIX, HP-UX 위험도중 Code U-64 *at 명령어사용자제한은 at.allow 파일과 at.deny 파일에서할수있으므로보안상 해당파일에대한접근제한이필요함. 만약 at 접근제한파일의권한이잘못되어있을 경우권한을획득한사용자계정을등록하여불법적인예약파일실행으로시스템 피해를발생할수있음. *at 데몬 ( 일회성작업예약): 지정한시간에어떠한작업이실행될수있도록작업스케줄을예약 처리해주는기능을제공함./etc/at.allow 파일에등록된사용자만이 at 명령을사용할수있음. 양호 : at 접근제어파일의소유자가 root 이고, 권한이 640 이하인경우 취약 : at 접근제어파일의소유자가 root 가아니거나, 권한이 640 이하가아닌경우 조치방법 at.allow, at.deny 파일소유자및권한변경 ( 소유자 root, 권한 640 이하) OS 별점검파일위치및점검방법 SunOS /etc/cron.d/at.allow, /etc/cron.d/at.deny #ls -l /etc/cron.d/at.allow #ls -l /etc/cron.d/at.deny rw-r----- root < 파일명> 파일의소유자및권한확인 LINUX /etc/at.allow, /etc/at.deny #ls -l /etc/at.allow #ls -l /etc/at.deny rw-r----- root < 파일명> 파일의소유자및권한확인 AIX, HP-UX /var/adm/cron/at.allow, /var/adm/cron/at.deny #ls -l /var/adm/cron/at.allow #ls -l /var/adm/cron/at.deny rw-r----- root < 파일명> 파일의소유자및권한확인 위에제시한파일의소유자가 root가아니거나파일의권한이 640 이하가아닌경우아래의 에따라설정을변경함 SunOS 1. /etc/cron.d/at.allow 및 /etc/cron.d/at.deny #chownroot/etc/cron.d/at.allow #chmod640/etc/cron.d/at.allow #chownroot/etc/cron.d/at.deny #chmod640/etc/cron.d/at.deny 파일의소유자및권한변경 98
LINUX 1. /etc/at.allow 및 /etc/at.deny #chownroot/etc/at.allow #chmod640/etc/at.allow #chownroot/etc/at.deny #chmod640/etc/at.deny 파일의소유자및권한변경 AIX, HP-UX 1. /var/adm/cron/at.allow 및 /var/adm/cron/at.deny #chownroot/var/adm/cron/at.allow #chmod640/var/adm/cron/at.allow #chownroot/var/adm/cron/at.deny #chmod640/var/adm/cron/at.deny 파일의소유자및권한변경 일반적인경우영향없음 99
취약점항목 3.30. SNMP 서비스구동점검 대상 OS SunOS, LINUX, AIX, HP-UX 위험도중 Code U-65 *SNMP(Simple Network Management Protocol) 서비스는시스템상태를실시간으로파악하거나설정하기위하여사용하는서비스임.SNMP서비스로인하여시스템의주요정보유출및정보의불법수정이발생할수있으므로 SNMP 서비스를사용하지않을경우중지시킴. *SNMP(Simple Network Management Protocol): TCP/IP 기반네트워크상의각호스트에서 정기적으로여러정보를자동으로수집하여네트워크관리를하기위한프로토콜을의미함. 양호 : 취약 : SNMP SNMP 서비스를사용하지않는경우 서비스를사용하는경우 조치방법 SNMP 서비스를사용하지않는경우서비스중지후시작스크립트변경 SunOS OS 별점검파일위치및점검방법 #ps ef grep snmp 또는 #svcs a grep snmp LINUX, AIX #ps ef grep Snmp HP-UX #ps ef grep snmp 불필요한 SNMP 서비스를사용하지않는경우중지함 < 서비스중지방법 > SunOS 5.9 이하 1. ps -ef grep snmp 로검색하여위치확인후이름변경 2. #/etc/init.d/init.snmpdx stop 3. #mv /etc/rc3.d/s76snmpdx /etc/rc3.d/_s76snmpdx (rc*/_s**snmpdx 의 * 수치는각각다름) SunOS 5.10 1. svcs -a grep snmp 명령으로데몬확인 2. 데몬활성화확인 #ps.ef grep snmp 또는 #svcs -a grep snmp online 13:17:34 svc:/application/management/snmpdx:default 3. svcadm disable 명령으로데몬중지 ( 예 ) svcadm disable svc : / application / management / snmpdx LINUX, AIX, HP-UX 설정 1. ps ef grep snmp로검색하여서비스중지 100
2. service snmpd stop 일반적인경우영향없음 101
취약점항목 3.31. SNMP 서비스 Community String 의복잡성설정 대상 OS SunOS, LINUX, AIX, HP-UX 위험도중 Code U-66 *SNMP(Simple Network Management Protocol) 서비스는시스템상태를실시간으로 파악하는 *NMS(Network Management System) 를위하여 시스템에서기본적으로 제공하는서비스이며정보를받기위해일종의패스워드인 Community String을 사용함.*CommunityString은 Default로 public,private 로설정된경우가많으며, 이를 변경하지않으면이 있음. String을악용하여시스템의주요정보및설정을파악할수 *SNMP(Simple Network Management Protocol): TCP/IP 기반네트워크상의각호스트에서 정기적으로여러정보를자동으로수집하여네트워크관리를하기위한프로토콜을의미함. *NMS(Network Management System): 네트워크상의모든장비의중앙감시체제를구축하여 모니터링, 플래닝, 분석을시행하고관련데이터를보관하여필요즉시활용가능하게하는 관리시스템을말함. *Community String: SNMP는 MIB라는정보를주고받기위해인증과정에서일종의비밀번호인 'Community String' 을사용함. 조치방법 양호 : SNMP Community 이름이 public, private 이아닌경우 취약 : SNMP Community 이름이 public, private 인경우 snmpd.conf 파일에서커뮤니티명을확인한후디폴트커뮤니티명인 private 를추측하기어려운커뮤니티명으로변경 public, OS 별점검파일위치및점검방법 SunOS 9 SunOS 10 이하버전 이상버전 #vi /etc/snmp/conf/snmpd.conf read-community public / write-communityprivate #vi /etc/sma/snmp/snmpd.conf rocommunity public / rwcommunityprivate LINUX AIX HP-UX #vi /etc/snmp/snmpd.conf com2sec notconfiguser default public #vi /etc/snmpdv3.conf COMMUNITY public public noauthnopriv 0.0.0.0 0.0.0 - #vi /etc/snmpd.conf get-community-name: public / set-commnunity-name: private 위의설정과같이디폴트커뮤니티명인 public 또는, private 을사용하는경우아래의 에따라설정을변경함 102
SunOS LINUX AIX HP-UX OS별 snmpd.conf /etc/snmpd.conf /etc/snmp/snmpd.conf /etc/snmp/conf/snmpd.conf 파일위치 /etc/sma/snmp/snmpd.conf (SunOS 10 버전일경우) /etc/snmpd.conf /etc/snmp/snmpd.conf /etc/snmp/conf/snmpd.conf SNMP V1 을사용할경우: /etc/snmpd.conf SNMP V3 을사용할경우: /etc/snmpdv3.conf /etc/snmpd.conf /etc/snmp/snmpd.conf /etc/snmp/conf/snmpd.conf 일부정보보호시스템에따라또는, 설치경로에따라다를수있음 SunOS 1. vi 편집기를이용하여 SNMP 설정파일을연후 2. Community String 값설정변경( 추측하기어려운값으로설정) -SunOS9이하버전 - #vi /etc/snmp/conf/snmpd.conf ( 수정전) read-community public / write-community private ( 수정후) read-community < 변경값> / write-community < 변경값> -SunOS10이상버전 - #vi /etc/sma/snmp/snmpd.conf ( 수정전) rocommunity public / rwcommunity private ( 수정후) rocommunity < 변경값> / rwcommunity < 변경값> LINUX 1. vi 편집기를이용하여 SNMP 설정파일을연후 #vi /etc/snmp/snmpd.conf 2. Community String 값설정변경( 추측하기어려운값으로설정) ( 수정전) com2sec notconfiguser default public ( 수정후) com2sec notconfiguser default < 변경값> AIX 1. vi 편집기를이용하여 SNMP 설정파일을연후 #vi /etc/snmpdv3.conf 2. Community String 값설정변경( 추측하기어려운값으로설정) 103
( 수정전) COMMUNITY public public noauthnopriv 0.0.0.0 0.0.0 - ( 수정후) COMMUNITY < 변경값> < 변경값> noauthnopriv 0.0.0.0 0.0.0 - HP-UX 1. vi 편집기를이용하여 SNMP 설정파일을연후 #vi /etc/snmpd.conf 3. Community String 값설정변경( 추측하기어려운값으로설정) ( 수정전) get-community-name: public / set-commnunity-name : private ( 수정후) get-community-name: < 변경값> / set-commnunity-name: < 변경값> NMS에서를모니터링하는경우 SNMP 를사용하며, 기타 SNMP를사용할경우 Community String 변경시통신하고자하는 Server/Client에모두같은 Community String 을사용하여야함 104
취약점항목 3.32. 로그온시경고메시지제공 대상 OS SunOS, LINUX, AIX, HP-UX 위험도하 Code U-67 로그인배너가설정되지않을경우배너에 OS 버전및서비스버전이공격자에게노출될수있으며공격자는이러한정보를통하여해당 OS 및서비스의취약점을이용하여공격을시도할수있음. 양호 : 및 Telnet 서비스에로그온메시지가설정되어있는경우 취약 : 및 Telnet 서비스에로그온메시지가설정되어있지않은경우 조치방법 Telnet, FTP, SMTP, DNS 서비스를사용할경우설정파일조치후 inetd 데몬재시작 SunOS, LINUX, AIX, HP-UX #vi /etc/motd OS 별점검파일위치및점검방법 로그온메시지설정여부확인 위에제시한파일내에로그온메시지설정이적용되지않은경우아래의에따라 로그온메시지를입력함 SunOS LINUX AIX HP-UX OS별점검파일위치및점검방법 #vi /etc/default/telnetd BANNER="\\r\\n\\r\\n uname -a uname -r \\r\\n\\r\\n" #vi /etc/issue.net CentOS release 5.3 (Final) Kernel \r on an \m #vi /etc/security/login.cfg default: 설정없음 #vi /etc/inetd.conf telnet stream tcp nowait root /usr/lbin/telnetd telnetd 위에제시한파일내 Telnet 배너설정이위와같을경우아래의에따라설정을변경함 SunOS 1. 로그온메시지설정: vi 편집기로 "/etc/motd" 파일을연후로그온메시지입력 #vi /etc/motd ( 수정전) 내용없음 ( 수정후) 로그온메시지입력 2. Telnet 배너설정: vi 편집기로 "/etc/default/telnetd" 파일을연후로그온메시지입력 #vi /etc/default/telnetd ( 수정전) BANNER="\\r\\n\\r\\n uname -a uname -r \\r\\n\\r\\n" ( 수정후) BANNER=" 로그온메시지입력" 105
LINUX 1. 로그온메시지설정: vi 편집기로 "/etc/motd" 파일을연후로그온메시지입력 #vi /etc/motd ( 수정전) 내용없음 ( 수정후) 로그온메시지입력 2. Telnet 배너설정: vi 편집기로 "/etc/issue.net" 파일을연후로그온메시지입력 #vi /etc/issue.net ( 수정전) CentOS release 5.3 (Final) Kernel \r on an \m ( 수정후) 로그온메시지입력 AIX 1. 로그온메시지설정: vi 편집기로 "/etc/motd" 파일을연후로그온메시지입력 #vi /etc/motd ( 수정전) 내용없음 ( 수정후) 로그온메시지입력 2. Telnet 배너설정: vi 편집기로 "/etc/security/login.cfg" 파일을연후로그온메시지입력 #vi /etc/security/login.cfg ( 수정전) default: 설정부분에 herald 설정없음 ( 수정후) default: 설정부분에 herald= 로그온메시지 설정추가 HP-UX 1. 로그온메시지설정: vi 편집기로 "/etc/motd" 파일을연후로그온메시지입력 #vi /etc/motd ( 수정전) 내용없음 ( 수정후) 로그온메시지입력 2. Telnet 배너설정: vi 편집기로 "/etc/inetd.conf" 파일을연후 telnet 부분에로그인파일설정 #vi /etc/inetd.conf ( 수정전) telnet stream tcp nowait root /usr/lbin/telnetd telnetd ( 수정후) telnet stream tcp nowait root /usr/lbin/telnetd telnetd b/etc/issue 일반적인경우영향없음 106
취약점항목 3.33. NFS 설정파일접근권한 대상 OS SunOS, LINUX, AIX, HP-UX 위험도중 Code U-68 *NFS(Network File System) 접근제어설정파일을관리자가아닌일반사용자들도 접근및변경이가능하면이를통해인가되지않은사용자를등록하고파일시스템을 마운트하여불법적인변조를시도할수있음. 따라서 NFS 접근제어설정파일을일반 사용자들이수정할수없도록제한하고있는지점검하여야함. *NFS(Network File System): 원격컴퓨터의파일시스템을로컬시스템에마운트하여마치로컬 파일시스템처럼사용할수있는프로그램. 양호 : NFS 접근제어설정파일의소유자가 root 이고, 권한이 644 이하인경우 취약 : NFS 접근제어설정파일의소유자가 root 가아니거나, 권한이 644 이하가아닌경우 조치방법 NFS 접근제어설정파일의소유자및권한변경 ( 소유자 root, 권한 644) SunOS LINUX, AIX, HP-UX OS 별점검파일위치및점검방법 #ls al /etc/dfs/dfstab rw-r--r-- root <nfs 접근제어파일> #ls al /etc/exports rw-r--r-- root <nfs 접근제어파일> NFS 접근제어설정파일의소유자가 root가아니거나파일의권한이 644 이하가아닌경우 아래의에따라설정을변경함 SunOS /etc/dfs/dfstab 파일의소유자및권한변경 ( 소유자 root, 권한 644) #chown root /etc/dfs/dfstab #chmod 644 /etc/dfs/dfstab LINUX, AIX, HP-UX /etc/exports 파일의소유자및권한변경 ( 소유자 root, 권한 644) #chown root /etc/exports #chmod 644 /etc/exports 일반적인경우영향없음 107
취약점항목 3.34. expn, vrfy 명령어제한 대상 OS SunOS, LINUX, AIX, HP-UX 위험도중 Code U-69 *SMTP(Simple Mail Transfer Protocol) 는많은취약성을갖고있어잠재적인위험이 존재함. 에서 SMTP를사용하는목적을검토하여사용할필요가없는경우 서비스를제거해야하며,SMTP서비스운영시 SendmailAbuse를방지하기위해 Sendmail 의기본적인서비스인*VRFY, *EXPN 을막아야함. *SMTP(Simple Mail Transfer Protocol) : 인터넷상에서전자우편(E-mail) 을전송할때이용하 게되는표준통신규약을말함. *VRFY: SMTP 클라이언트가 SMTP 에특정아이디에대한메일이있는지검증하기위해 보내는명령어를말함. *EXPN( 메일링리스트확장): 메일전송시포워딩하기위한명령어를말함. 양호 : SMTP 서비스미사용또는, noexpn, novrfy 옵션이설정되어있는경우 취약 : SMTP 서비스를사용하고, noexpn, novrfy 옵션이설정되어있지않는경우 조치방법 SMTP 서비스설정파일에 noexpn, novrfy 옵션추가 SunOS, LINUX, HP-UX AIX OS별점검파일위치및점검방법 noexpn, novrfy 옵션설정확인 #vi /etc/mail/sendmail.cf O PrivacyOptions=authwarnings #vi /etc/sendmail.cf O PrivacyOptions=authwarnings 위의설정과같이 noexpn, novrfy 옵션이추가되지않은경우 아래의에따라옵션추가 < 서비스필요시> SunOS, LINUX, HP-UX 1. vi 편집기를이용하여 /etc/mail/sendmail.cf 파일을연후 ( 단, AIX 는 /etc/sendmail.cf) #vi /etc/mail/sendmail.cf 2. /etc/mail/sendmail.cf 파일에 noexpn, novrfy 옵션추가 ( 수정전) O PrivacyOptions=authwarnings ( 수정후) O PrivacyOptions=authwarnings, noexpn, novrfy 3. SMTP 서비스재시작 < 서비스불필요시> SunOS, LINUX, HP-UX 1. 실행중인서비스중지 #ps ef grep sendmail 108
root 441 1 0 Sep19? 00:00:00 sendmail: accepting connections #kill -9 [PID] 2. 시스템재시작시 SMTP 가시작되지않도록 OS별로아래와같이설정함 SunOS, LINUX 1. 2. 위치확인 #ls al /etc/rc*.d/* grep sendmail 이름변경 #mv /etc/rc2.d/s88sendmail /etc/rc2.d/_s88sendmail AIX 1. 2. 위치확인 #ls al /etc/rc.d/rc*.d/* grep sendmail 이름변경 #mv /etc/rc2.d/s88sendmail /etc/rc2.d/_s88sendmail 3. /etc/rc.tcpip 파일에서아래내용 # 처리( 주석처리) ( 수정전) start /usr/lib/sendmail "$src_running" "-bd -q${qpi}" ( 수정후) #start /usr/lib/sendmail "$src_running" "-bd -q${qpi}" HP-UX 1. 2. 위치확인 #ls al /sbin/rc*.d/* grep sendmail 이름변경 #mv /sbin/rc2.d/s540sendmail /sbin/rc2.d/_s540sendmail 3. /etc/rc.config.d/mailservs 파일에서 SENDMAIL_SERVER 값을 0 으로변경 (9.x 이하: /etc/netbsdsrc) SENDMAIL_SERVER=0 SunOS 5.10 1. #svcs -a grep smtp 2. 3. 데몬활성화확인 online 13:17:45 svc:/network/smtp:sendmail 데몬중지 #svcadm disable [ 서비스데몬명] ( 예 ) #s v c a d m d i s a b l e s v c : /n e t w o r k /s m t p :s e n d m a i l 일반적인경우영향없음 109
취약점항목 3.35. Apache 웹서비스정보숨김 대상 OS SunOS, LINUX, AIX, HP-UX 위험도중 Code U-70 에러페이지, 웹종류, OS 정보, 사용자계정이름등웹와관련된 불필요한정보가노출되지않도록하여야함. 불필요한정보가노출될경우해당 정보를이용하여시스템의취약점을수집할수있음. 양호 : ServerTokens 지시자에 Prod 옵션이설정되어있는경우 취약 : ServerTokens 지시자에 Prod 옵션이설정되어있지않는경우 조치방법헤더에최소한의정보를제한후전송 (ServerTokens 지시자에 Prod 옵션설정) SunOS, LINUX, AIX, HP-UX OS별점검파일위치및점검방법 Prod 옵션설정여부확인 #vi /[Apache_home]/conf/httpd.conf ServerTokens Prod httpd.conf 파일내에 ServerTokens 지시자가위와같이 "Prod 로설정되지않은경우아래의 에따라옵션추가 SunOS, LINUX, AIX, HP-UX 1. vi 편집기를이용하여 /[Apache_home]/conf/httpd.conf 파일을연후 #vi /[Apache_home]/conf/httpd.conf 2. 설정된모든디렉터리의 ServerTokens 지시자에서 Prod 옵션설정 ( 없으면신규삽입) <Directory /> Options Indexes FollowSymLinks ServerTokens Prod - 이하생략 - </Directory> 110
ServerTokens 지시자옵션 키워드 제공하는정보 예문 Prod 웹종류 Server Apache Min Prod 키워드제공정보 + 웹버전 Server Apache/1.3.0 OS Min 키워드제공정보 + 운영체제 Server Apache/1.3.0 (Unix) Full OS 키워드제공정보 + 설치된모듈( 응용프로그램) 정보 Server PHP/3.0 Apache/1.3.0 (Unix) MyMod/1.2 일반적인경우영향없음 111
4. 패치관리 취약점항목 4.1. 최신보안패치및벤더권고사항적용 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-71 주기적인패치적용을통하여보안성및시스템안정성을확보하는것이시스템 운용의중요한요소임. 서비스중인시스템의경우패치적용에따르는문제점( 현재 운용중인응용프로그램의예기치않은중지, 패치자체의버그등) 과재부팅의어려움 등으로많은패치를적용하는것이매우어렵기때문에패치적용시많은부분을 고려하여야함. 양호 : 취약 : 패치적용정책을수립하여주기적으로패치를관리하고있는경우 패치적용정책을수립하지않고주기적으로패치관리를하지않는경우 조치방법 O/S 관리자, 서비스개발자가패치적용에따른서비스영향정도를파악하여 OS 관리자및벤더에서적용함 OS 패치의경우지속적으로취약점이발표되고있기때문에 O/S 관리자, 서비스 개발자가패치적용에따른서비스영향정도를정확히파악하여주기적인패치적용 정책을수립하여적용하여야함 OS 별점검방법 SunOS, LINUX, AIX, HP-UX 패치적용정책수립여부및정책에따른패치적용여부확인 SunOS 1. showrev p 로에적용되어있는패치리스트확인 2. 아래 2개패치사이트중하나를선택후접속하여패치를찾아적용 OS 별, 제품별, 보안관련그리고 y2k 패치로분류되어패치파일제공 http://access1.sun.com/patch.y2k/ OS별로추천되는패치파일제공 http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/patch-access < 패치적용의예 1 > #mkdir /var/spool/patch 위와같은디렉터리를만들어 Patch 파일을관리하도록함 ( 패치설치순서예): 107403-02: SunOS 5.7: rlmod & telmod Patch 를적용하고자함 #showrev -p grep 107403 Patch: 107403-01 Obsoletes: Requires: Incompatibles: Packages: SUNWcsu, SUNWcsxu 112
#ls 107403-02.zip #unzip 107403-02.zip #patchadd /var/spool/patch/107403-02 erifying sufficient filesystem capacity (dry run method)... Installing patch packages... Patch number 107403-02 has been successfully installed. See /var/sadm/patch/107403-02/log for details Patch packages installed: SUNWcsu SUNWcsxu #showrev -p grep 107403 Patch: 107403-01 Obsoletes: Requires: Incompatibles: Packages: SUNWcsu, SUNWcsxu Patch: 107403-02 Obsoletes: Requires: Incompatibles: Packages: SUNWcsu, SUNWcsxu 설치시주의할점 1. 패치적용후 Rebooting 이필요한경우가있으므로 README-Patch-ID 파일확인필요 2. 패치제거방법: #patchrm Patch-ID 실행 < 패치적용의예 2 > 패치 cluster의이용 패치 cluster란 Sun에서 Recommended 패치와보안관련패치들을통합하여, 각시스템관리자들의 편의를도모하기위한패키지형태로제공되는패치묶음을가리킴 이들패치 cluster는 Sun의 Web 페이지와 ftp 에서도구할수있으며, 각각의패치 cluster들은 아래와같은파일명으로구성됨 [version]_recommended.tar.z [version]_recommended.readme 2.5.1_Recommended.tar.Z 2.5.1_Recommended.README 위와같이각버전에따라 Recommended.tar.Z 와같은바이너리패치묶음과해당패치 cluster에 대한주석을담고있는 README 파일이제공되므로각시스템의관리자들은 Sun 사이트에접속하여 패치 cluster와 README 파일다운로드하여시스템에설치할수있음 http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/patch-license&nav=pub-patches 113
< 패치적용의예 3 > Automate patch management tool 를사용하여현재시스템에서업데이트패치및설치될패치를 분석하여웹상에서자동으로 현재 patch list를다운받아서설치함 Automate patch management tool을사용하여적용될수있는시스템들은다음과같음 #gunzip -dc pprosunosx865.9jre2.2.tar.gz tar xvf - #zcat pprosunossparc5.6jre2.2.tar.z tar xvf - #cd pprosunossparc5.9jre2.2 #./setup < 시스템현황 > SunOS 2.6-9, Sun Cluster, Network Storage, and E10Ks and Star Fires <Patchmanagementtooldownload> https://sunsolve.sun.com/patchpro/patchpro.html LINUX Linux는에설치된패치리스트의관리가불가능하므로 rpm 패키지별버그가Fix된최신버전 설치가필요함 Linux 는오픈되고, 커스터마이징된OS이므로Linux를구입한벤더에따라rpm 패키지가다를수 있으며, 아래의사이트는 RedHat Linux에대한버그 Fix 관련사이트임 <Red Hat 일경우> Step 1. 다음의사이트에서해당버전을찾음 http://www.redhat.com/security/updates/ http://www.redhat.com/security/updates/eol/ (Red Hat Linux 9 이하버전) Step 2. 발표된 Update 중현재사용중인보안관련 Update 찾아해당 Update Download Step 3. Update 설치 #rpm Uvh <pakage-name> AIX instfix -iv grep ML 로에적용되어있는패치리스트확인 버전4.3의경우아래사이트에서다음과같은방법으로패치버전을다운받을수있고원하는레벨의 ML 를찾을수있음 current를현재버전level 로등록하고, update to를최신의대상패치버전으로선택 http://techsupport.services.ibm.com/server/mlfixes/43/ 114
< 패치적용의예 1> Click on the package name below. Put the package (a tar.gz file) in /usr/sys/inst.images Extract the filesets from the package. cd /usr/sys/inst.images gzip -d -c 4330910.tar.gz tar -xvf - Back up your system. 0 Install the package by creating a table of contents for install to use. Then update the install subsystem itself. Run SMIT to complete the installation. inutoc /usr/sys/inst.images installp -acgxd /usr/sys/inst.images bos.rte.install smit update_all Reboot your system. This maintenance package replaces critical operating system code. <SecurityPatchCheck 관련사이트 > http://techsupport.services.ibm.com/server/nav?fetch=pm HP-UX swlist l product 로에적용된패치리스트확인 HPUX 는다양한하드웨어플랫폼과 O/S로인해 General 한 Security Patch 가공개되어있지않으며, security_patch_check 프로그램( 펄스크립트) 을에설치 실행하여의취약한 Security Patch 리스트를얻을수있음 security_patch_check 는현재적용되고있는패치리스트를분석하는툴로써, 적용가능한패치와 설치되지않은패치정보를리포트형식으로제공하고보안패치에대한오류정보를자동으로 체크하여알려줌 security_patch_check 설치하여야함 프로그램을사용하기위해서는 Service Control Manager (security_patch_check 사용관련내용은 비고 참조) 도구를에 <SecurityPatchCheck 관련사이트 > http://www.software.hp.com/cgi-bin/swdepot_parser.cgi/cgi/displayproductinfo.pl? productnumber=b6834aa < 패치적용의예 1> 1. 수작업에의한패치적용 운영자에의한패치적용은다음과같은단계에의해수행됨 1) http://support2.itrc.hp.com/service/patch/mainpage.do 접속 2) HPUX 선택하여해당페이지이동 3) 해당되는 H/W, OS 선택 4) 키워드, Patch-ID, Patch 리스트옵션을선택하여검색 115
5) 검색결과확인 6) 필요한패치를선택하여다운로드받음 7) 패치간의 dependency를고려하여적용할패치결정 2. Custom Patch Manager에의한패치적용 CPM(Custom Patch Manager) 은해당시스템에적합한패치를선택하고다운로드받을수있도록하는툴이며,CPM을이용하여환경에서설정된일정기간간격별로패치를자동적용할수있고 dependency 관계나 conflict 관계에대해자동분석된결과를얻어적용할패치정보를확인할수있음 CPM 을이용하는단계는다음과같은단계에의해수행됨 1) ITRC 웹사이트http://itrc.hp.com로이동하여로그인 2) maintenance/support 링크를클릭한후 customized patch bundles를선택 3) cpm_collect.sh 스크립트를다운로드받아실행후현재 configuration에대한정보를취합 4) cpm_collect.sh 스크립트를실행후 configuration에대한결과를 ITRC 페이지에업로드 5) Perform Patch Analysis를클릭하여필요한candidate patch list를얻음 6) 선택한패치간의 conflict가없는지점검 7) 선택한패치를 Package 버튼을선택하여다운로드받은후패치설치 일반적인경우영향없음 116
취약점항목 5. 5.1. 로그관리 로그의정기적검토및보고 대상 OS SunOS, LINUX, AIX, HP-UX 위험도상 Code U-72 로그정보는침해사고발생시해킹의흔적및공격기법을확인할수있는중요 자료로정기적인로그분석을통하여시스템침입흔적과취약점을확인할수있음. 양호 : 취약 : 로그기록의검토, 분석, 리포트작성및보고등이정기적으로이루어지는경우 로그기록의검토, 분석, 리포트작성및보고등이정기적으로이루어지지않는경우 조치방법원격접속시 root 계정으로바로접속할수없도록설정파일수정 OS 별점검방법 SunOS, LINUX, AIX, HP-UX 로그분석계획수립여부및로그분석결과에대한점검 SunOS, LINUX, AIX, HP-UX 정기적인로그분석을위하여아래와같은절차수립 1. 정기적인로그검토및분석주기수립 2. 로그분석에대한결과보고서작성 3. 로그분석결과보고서보고체계수립 일반적인경우영향없음 117
취약점항목 5.2. 정책에따른시스템로깅설정 대상 OS SunOS, LINUX, AIX, HP-UX 위험도하 Code U-73 감사설정이구성되어있지않거나보안정책에비하여감사설정수준이낮아보안 사고가발생한경우원인파악및각종침해사실에대한확인이어려우며, 법적 대응을위한충분한증거로사용할수없음. 양호 : 취약 : 로그기록정책이정책에따라설정되어수립되어있는경우 로그기록정책미수립, 또는, 정책에따라설정되어있지않은경우 조치방법로그기록정책을수립하고, 정책에따라 syslog.conf 파일을설정 SunOS 1. vi 편집기를이용하여 /etc/syslog.conf #vi /etc/syslog.conf 2. 아래와같이수정또는, 신규삽입 파일을연후 mail.debug /var/log/mail.log *.info /var/log/syslog.log *.alert /var/log/syslog.log *.alert /dev/console *.alert root *.emerg * 3. 위와같이설정후 SYSLOG 데몬재시작 -SunOS9이하버전 - #ps ef grep syslogd root 7524 6970 0 Apr 23-0:02 /usr/sbin/syslogd #kill HUP [PID] -SunOS10이상버전 - #svcs -a grep system-log online 16:23:03 svc:/system/system-log:default #svcadm refresh svc:/system/system-log:default LINUX 1. vi 편집기를이용하여 /etc/syslog.conf #vi /etc/syslog.conf 2. 아래와같이수정또는, 신규삽입 파일을연후 118
*.info;mail.none;authpriv.none;cron.none /var/log/messages authpriv.* /var/log/secure mail.* /var/log/maillog cron.* /var/log/cron *.alert /dev/console *.emerg * 3. 위와같이설정후 SYSLOG 데몬재시작 #ps ef grep syslogd root 7524 6970 0 Apr 23-0:02 /usr/sbin/syslogd #kill HUP [PID] AIX 1. vi 편집기를이용하여 /etc/syslog.conf #vi /etc/syslog.conf 2. 아래와같이수정또는, 신규삽입 파일을연후 *.emerg * *.alert /dev/console *.alert /var/adm/alert.log *.err /var/adm/error.log mail.info /var/adm/mail.log auth.info /var/adm/auth.log daemon.info /var/adm/daemon.log *.emerg;*.alert;*.crit;*.err;*.warning;*.notice;*.info /var/adm/messages 3. 위와같이설정후 SYSLOG 데몬재시작 #refresh s syslogd 또는, #ps ef grep syslogd root 7524 6970 0 Apr 23-0:02 /usr/sbin/syslogd #kill HUP [PID] HP-UX 1. vi 편집기를이용하여 /etc/syslog.conf #vi /etc/syslog.conf 2. 아래와같이수정또는, 신규삽입 파일을연후 *.notice /var/adm/syslog/syslog.log *.alert /dev/console *.emerg * 119
3. 위와같이설정후 SYSLOG 데몬재시작 #ps ef grep syslogd root 7524 6970 0 Apr 23-0:02 /usr/sbin/syslogd #kill HUP [PID] 메시지 auth 메시지종류 설명 로그인등의인증프로그램유형이발생한메시지 authpriv 개인인증을요구하는프로그램유형이발생한메시지 cron cron, at 데몬에서발생한메시지 daemon telnet, ftpd 등과같은데몬이발생한메시지 kern lpr mail news 커널이발생한메시지프린터유형의프로그램이발생한메시지메일시스템에서발생한메시지유즈넷뉴스프로그램유형이발생한메시지 syslog syslog 프로그램유형이발생한메시지 user uucp local0 사용자프로 스관련메시지 시스템이발생한메시지 여분으로남겨둔유형 메시지 alert crit deberg emerg err info notice warning 메시지우선순위 즉각적으로조치를취해야할상황 설명 급한상황은아니지만, 치명적인시스템문제발생시 프로그램실행시발생되는오류발생시 매우위험한상황 에러발생시 단순한프로그램에대한정보메시지 에러가아닌알림에관한메시지 주의를요하는메시지 위에제시한모든로그설정을강제화할경우, 시스템퍼포먼스와로그저장에따른 용량문제가발생할수있으므로시스템운영환경과특성을고려하여적용 120
부 록 01. cat 명령어로파일내용확인 cat 명령어는텍스트파일내용출력, 쓰기, 복사시사용하며주로텍스트파일내용을표준 출력장치로출력하여확인하는경우사용됨. 명령어입력방법은다음과같음. 1. #cat 파일경로/ 파일명 : 파일을열어내용을출력 2. #cat > 파일경로/ 파일명 같은이름의파일이없는경우 같은이름의파일이있는경우 3. #cat >> 파일경로/ 파일명 같은이름의파일이없는경우 같은이름의파일이있는경우 -> 파일을새로만들고내용입력 -> 파일을덮어쓰고새로내용입력 -> 파일을새로만들고내용입력 -> 기존파일의내용밑에이어서입력 덧붙여사용할수있는명령어 more 많은내용출력시사용하는옵션 Enter 를누르면한줄씩, SpaceBar 를누르면한화면씩더보여줌 grep[word] 특정단어가포함된줄만출력하는명령어 [Word] 에특정단어를입력하여호출 nl 파일의내용이총몇줄인지출력하는명령어 head 파일의앞부분 10줄만출력하는명령어 tail 파일의뒷부분 10줄만출력하는명령어 121
02. vi 편집기를사용하여파일내용수정 vi 편집기는윈도우의메모장처럼사용되는유닉스에서제공하는표준편집기를말함. 이미존재하는파일을수정하는경우또는, 신규파일을만들고자할때 vi 명령을사용함. #vi < 파일경로/ 파일명> vi 명령어를입력하여프로그램을시작하면일반적으로명령(normal) 모드로시작되고, 이때 키보드에서 I 키를누르게되면편집(insert) 모드로바뀌어 Esc 키를누를때까지문서작성을 할수있음.( 편집모드에서는아래화면과같이 --INSERT-- 를확인할수있음) 편집중인문서저장시 :w" 를입력하고, 수정완료후 :q" 를입력하여프로그램을종료함. 파일에쓰기권한이없을때 'readonly option qis set (use! to override) 라는메시지가출력이 되면서저장이안되는경우가있는데이때는강제옵션인 "! 를추가로붙여서문제를해결함. vi 편집기는아래의 3 가지모드 로구성됨. 1. 명령모드: 기본구성 / 텍스트편집불가 / 명령어수행 2. 편집모드: 텍스트편집만가능 3. 확장모드: 종료하거나저장이가능한확장기능수행 122