(부록) 취약점 분석평가 기술적 점검항목 설명서 1. 유닉스 취약점 항목 상세 설명서 점검분류 항목 계정 관리 위험도 상 분류번호 U-1 세부점검 항목 root 계정 원격 접속 제한 대상 UNIX root는 시스템을 관리하는 계정으로 아주 중요함. root 계정으로 직접 로그인하도록 허용하면 불법적인 침입자의 목표가 될 수 있으므로 root 계정 접속에 대한 관리가 필요함. root 계정의 원격 접속 허용은 공격자에게 더 좋은 기회를 제공할 수 있으므로 root의 원격 접속은 금지 한다. 시스템 관리자 권한 획득 root 계정 로그인 관련 환경변수 확인(원격접속) #cat /etc/default/login... #IF CONSOLE is set, root can only login on that device. #comment this line out to allow remote login by root. # CONSOLE=/dev/console 점검분류 항목 계정 관리 위험도 상 분류번호 U-2 세부점검 항목 패스워드 복잡성 설정 대상 UNIX/LINUX 영숫자만으로 이루어진 암호는 공개되어 있는 유틸리티를 사용하여 아 주 쉽게 공격할 수 있기 때문에 암호가 공격당하는 것을 방지하려면 암호에 광범위한 문자가 있어야 함. 최소 암호 길이를 8로 지정하여 이 정책 설정과 함께 사용하면 하나의 암호를 만들 수 있는 경우의 수가 매우 많아져 무작위 공격을 성공하는 것이 불가능한 것은 아니지만 어려워짐. 초당 백만 개의 암호를 충분히 테스트할 수 있는 처리 성능을 가진 공격자는 대략 7일 반나절 이내에 암호를 알아낼 수 있으며 최소 암호 길이 설정을 높이면 공격에 성공하 는 데 필요한 평균 시간도 함께 증가함. 공격자가 암호를 쉽게 해독할 수 있음.임의의 명령어 실행, 임의의 파일 수정, 시스템 관리자 권한 획득. [UNIX/LINUX] root 권한에서. # grep testuser1 /etc/shadow 로그인ID:패스워드:최종변경일:min.:max:warning:inactive:expire:flag 양호 - 'CONSOLE=/dev/console' 이거나 CONSOLE= 일 경우, 2. 그룹 이 설정 되어 있을 경우 취약 - #CONSOLE=/dev/console 이거나 2. 그룹 설정이 되어있지 않 은 경우 양호 - 패스워드를 영문숫자 혼합을 사용하여 복잡하게 설정 취약 - 패스워드를 영문숫자 혼합을 사용하지 않고 간단하게 설정 # vi /etc/default/login 파일 수정 [UNIX / LINUX] CONSOLE=/dev/console 이나 CONSOLE= 로 루트 권한을 준후. 1. # useradd testuser1 2. # passwd likmaxhom975 <- 패스워드 복잡하게 설정.. - 1 - - 2 -
점검분류 항목 계정 관리 위험도 상 분류번호 U-3 세부점검 항목 계정 잠금 임계값 설정 대상 UNIX 침입자에 의한 패스워드 무작위 공격(Brute Forceing)이나 패스워드 추 측(Geussing) 공격 시 시간을 지체하게 하거나 자동공격에 시간을 끌기 위해 암호입력 횟수를 적정하게 제한하는 것이 좋음. 미 설정시 패스워드 노출 위협 [solaris 10] 계정 잠금 정책 설정 여부 확인 #cat /etc/default/login RETRIES= 양호 - 암호 입력 횟수를 적정하게 제한했을 경우. 취약 - 암호 입력 횟수를 적정하게 제한하지 않았을 경우. 변수 값 설정 점검분류 항목 계정 관리 위험도 상 분류번호 U-4 세부점검 항목 패스워드 파일 보호 대상 UNIX/Solaris 10 쉐도우 패스워드는 암호화되어 있는 패스워드 정보를 일반 사용자들로 부터 비밀로 유지하기 위한 한 가지 방법이며 최근에 나온 데비안은 쉐도우 패스워드를 기본적으로 사용하도록 되어 있으며, 다른 리눅스 구성본은 암호화된 패스워드를 /etc/passwd 파일에 누구나 읽을 수 있 을 수 있도록 저장한다. 누구라도 이 파일을 패스워드를 추측해 내는 프로그림에 돌려서 패스워드를 알아내려고 할 수 있어 보안에 취약한 반면에 쉐도우 패스워드는 특별 권한이 있는 사용자들만 읽을 수 있도 록 패스워드에 대한 정보를 /etc/shadow 파일에 저장한다. 쉐도우 패스 워드를 사용하려면, 패스워드 정보를 읽어야 하는 모든 유틸리티들이 쉐도우 패스워드를 지원하도록 제대로 리컴 파일 되었는지 확인해야 한다. 패스워드 노출 [UNIX/Solaris 10] * shadwow 파일은 오직 root 만이 확인 할 수 있음. # grep testuser1 /etc/shadow 확인하면 yundream:$1$pt/vnlsk$papp4lllblrlozvfsd3xx1:11657:0:99999:7 암호화 되어 있는 것을 확인 할 수 있음. /etc/default/login 변경 RETRIE=3(패스워드 정책에 따라 설정) 양호 - 패스워드 저장을 #/etc/shadow 파일에 저장 취약 - 패스워드 저장을 #/etc/passwd 파일에저장 계정이 잠기게 되면 필요시 관리자가 풀어줘야 함 조치 방안 [UNIX/Solaris 10] 1. # useradd testuser1 2. # passwd unix54 <- 패스워드 복잡하게 설정 # grep testuser1 /etc/shadow 로그인ID:패스워드:최종변경일:min.:max:warning:inactive:expire:flag. - 3 - - 4 -
점검분류 항목 계정 관리 위험도 중 분류번호 U-5 세부점검 항목 root 이외의 UID가 0 금지 대상 UNIX 점검분류 항목 계정 관리 위험도 하 분류번호 U-6 세부점검 항목 root 계정 su 제한 대상 UNIX 사용자가 시스템에 접근하려면 사용자 계정이 반드시 필요함. 이때 모 든 계정에는 UID가 부여 되는데 이것을 통해 사용자의 이름, 패스워드, 홈 디렉토리등과 같은 사용자에 관련된 정보에 대응시킴. 그러므로 시 스템은 로그인 ID가 달라도 동일한 UID를 가진 계정을 같은 사용자로 인식함. 유닉스 시스템에서 root 계정의 UID는 0 으로 설정 되어있는데, 만약 root 이외의 다른 사용자의 UID가 0 일 경우 root 계정과 동일한 권한 을 갖게 됨. 그러므로 root를 제외한 모든 사용자의 UID는 0 일 수 없 root계정에 접속할 때 일반 사용자로 로그인한 후 root 사용자로 전환 하는 것을 권장하는데 이때 su 명령을 사용함. su 명령어는 로그아웃하 지 않고 다른 사용자의 권한으로 셀을 실행함. su 명령어를 통해 root 계정으로 접속 시 모든 권한을 획득 할 수 있으므로 허용하는 계정만 su 명령어를 통해 root 계정으로 접속 할 수 있도록 해야함. 시스템 관리자 권한 획득 음. [solaris 10] 만일 시스템 관리자라면 다른 UID를 갖는 2개의 계정을 가지는 것이 좋음. 하나는 관리업무를 위한 UID가 '0'인 root 사용자 이고, 다른 하 1. 허용 그룹 설정이 되어있는지 확인(su 명령어 사용 설정 그룹) #cat /etc/pam.d/su 파일에 아래 내용 첨가 확인 나는 일반적인 일을 하기 위한 것으로 사용함. auth required /lib/security/pam_wheel.so debug group=wheel 시스템 관리자 권한 획득 UID 중복 계정이 있는지 확인 함. # cat /etc/passwd etc/pam.d/su 파일에 아래 내용 첨가 후 /etc/group 의 wheel 그룹에 su 명령을 허용하고자 하는 사용자 그룹 등록 wheel:x:10:root,someone 양호 - root계정과 동일한 UID를 갖는 계정이 존재하지 않을 경우 취약 - UID가 '0'인 계정이 두개이상 존재할 경우 새로운 UID로 변경 만약 허용되지 않은 그룹의 사용자가 su 명령을 시도하면 /var/log/message 에 로그가 남음.. # usermod -u 부여할 UID UID를 변경할 계정의 로그인 ID' - 5 - - 6 -
점검분류 항목 계정 관리 위험도 중 분류번호 U-7 세부점검 항목 패스워드 최소 길이 설정 대상 UNIX 점검분류 항목 계정 관리 위험도 중 분류번호 U-8 세부점검 항목 패스워드 최대 사용 기간 설정 대상 UNIX 일반적으로 모든 계정은 패스워드가 존재하도록 권장함. 만약 패스워드 가 없는 계정이 있다면 조취를 취해야 함. 또한 공격자가 쉽게 유추 할 수 없는 패스워드를 만들도록 패스워드 규칙을 정해 주는 것이 좋음. 패스워드의 최소 길이를 특정수치 이상으로 설정하여 패스워드 무작위 공격(Brute Forceing)이나 패스워드 추측(Geussing) 공격 등에 대처할 수 있음 일반적으로 모든 계정은 패스워드가 존재하도록 권장함. 만약 패스워드 가 없는 계정이 있다면 조취를 취해야 함. 유닉스 시스템을 관리하다 보면 사용자들의 패스워드를 관리하는 것이 중요한 문제임. 이럴 경우 패스워드 정책을 설정하여 특정 기간이 지나 면 패스워드를 새로 변경해야 한다거나, 몇 일 이내에는 패스워드를 변 경할 수 없게 하는 것이 가능함. 예를들어 공격자가 어느 시점의 암호화된 패스워드파일과 암호화 함수 를 얻어도, 패스워드 정책에 따라 주기적으로 패스워드를 변경하여 원 패스워드 추측 가능성 높아짐 패스워드 최소 길이 설정 확인 #cat /etc/default/passwd PASSLENGTH= 하는 정보를 얻을 수 없게 함. 따라서 패스워드 정책을 사용하면 공격자는 패스워드를 추측하기 어려 울 뿐만아니라, 주기에 따라 패스워드가 변경되므로 더 안전하게 보호 할 수 있음. 주기를 단기간으로 주면 보호성을 높일 수 있으나 너무 자주 패스워드 를 변경하게 되면, 계정 사용자의 불편을 초래할 수 있음. 그러므로 보 호정도와 이용 특성에 따라 적절하게 패스워드 정책을 세워야 함 패스워드 추측 가능성 높아짐 양호 - 최소 길이가 PASSLENGTH=8 설정 되어 있는 경우 취약 - 최소 길이가 8 이하이거나 설정 되어 있지 않은 경우 패스워드 사용 가능 최대 기간 확인 1.[root@unix /]#more /etc/shadow 명령으로 확인 /etc/default/passwd 파일 수정 로그인ID:패스워드:최종변경일:min.:max:warning:inactive:expire:flag 1. 2. 3. 4. 5. 6. 7 8. 9. PASSLENGTH=8 5. 패스워드를 사용할 수 있는 최대 기간.. 양호 - 정책에 따른 최대 사용 기간 설정 취약 - 정책에 따른 최대 사용 시간 미 설정 #ident"(#)passwd.dfl 1.3 92/07/14 SMI" MAXWEEKS = : 최대 패스워드 유효기간 설정 내규 패스워드 정책에 따라 사용기간 설정. - 7 - - 8 -
점검분류 항목 계정 관리 위험도 중 분류번호 U-9 세부점검 항목 패스워드 최소 사용 기간 설정 대상 UNIX/LINUX 사용자가 암호를 계속 바꿔서 이전에 즐겨 쓰던 암호를 다시 사용할 수 있다면 암호를 정기적으로 바꾸도록 요구하는 것은 효과가 없음. 정책 설정을 최근 암호 기억 설정과 함께 사용하면 이전 암호를 다시 사용하 는 것을 막을 수 있음. 최근 암호 기억 설정을 유효하게 하려면 최소 암 호 사용 기간 정책 설정을 0보다 큰 값으로 구성해야 함. 취약한 계정을 통해 계정 권한이 도용당할 수 있음. [UNIX/LINUX] 패스워드 사용 가능 최소 기간 확인 1.[root@unix/] #more /etc/shadow 명령으로 확인 로그인ID:패스워드:최종변경일:min.:max:warning:inactive:expire:flag 1. 2. 3. 4. 5. 6. 7 8. 9. 5. 패스워드를 사용할 수 있는 최소 기간. 양호 - 정책에 따른 최소 사용 기간 설정 취약 - 정책에 따른 최소 사용 시간 미 설정 [UNIX/LINUX] #ident"(#)passwd.dfl 1.3 92/07/14 SMI" MINWEEKS = : 최소 패스워드 유효기간 설정 내규 패스워드 정책에 따라 날짜 수 지정.. 점검분류 항목 계정 관리 위험도 하 분류번호 U-10 세부점검 항목 불필요한 계정 제거 대상 UNIX/LINUX 로그인이 가능한 사용자 계정들은 로그인을 통해서 시스템에 접근이 가능하기 때문에 로그인 계정의 패스워드 부재로 인한 패스워드 유출 이나 패스워드 추측 공격으로 인한 패스워드 유출가능성이 있음. 오랫동안 로그인 하지 않은 계정은 계정만 만들어지고 관리가 되지 않 는 계정일 가능성이 높으며, 이런 경우 계정을 악의적인 사용자가 불법 적으로 사용해도 알 수 없으며, 패스워드 변경이 없으므로 패스워드 유 출가능성이 존재함. 반복된 로그인 실패 기록이 남아있다는 계정도 패 스워드 추측에 의한 불법적인 로그인 시도 가능성이 있음. 그러므로 사용 목적이 만료된 관리자, Guest, 테스트 계정, 무자격 사용 자(예>퇴직자) 등 시스템에 불필요한 계정을 주기적으로 삭제 조치 취 해야함. 관리되지 않는 계정을 통한 시스템 접속 [UNIX/LINUX] 1. 수면 계정 점검 오랫동안 로그인하지 않은 계정, 한 번도 로그인하지 않은 계정 존재하 는지 점검. 2. 로그인 실패기록 점검(반복된 로그인 실패 기록을 점검) #cat /var/adm/loginlog 파일을 분석 시스템 로그인 데몬 (syslogd.authlog)이 동작되는지 점검.시스템 로그 데몬이 수행중인 확인(/etc/syslog.conf)을 권함. 3. 로그인 실패 기록을 점검./var/adm/loginlog 또는 /var/log/authlog파 일분석을 권장함. #cat /var/adm/loginlog 파일을 분석하여 로그인 실패기록 점검. #cat /var/adm/authlog 파일을 분석하여 로그인 실패기록 점검. #cat /var/adm/sulog 파일을 분석하여 로그인 실패기록 점검. 양호 - 불필요한 계정을 삭제, 변경 했을 경우 취약 - 불필요한 계정을 미삭제, 방치 했을 경우 - 9 - - 10 -
오랫동안 로그인 하지 않은 계정, 한번도 로그인 하지 않은 계정이 사 용되는 계정인지 확인하고 불필요한 계정이면 삭제 #userdel '오랫동안 로그인 하지 않은 계정 or 한번도 로그인하지 않은 계정 ' 점검결과에서 발견된 반복된 로그인 실패시간, 로그인 시도 호스트 정 보로부터 로그인 실패가 불법적인 로그인 시도에 의한 것인지 확인.. 점검분류 항목 계정 관리 위험도 하 분류번호 U-11 세부점검 항목 관리자 그룹에 최소한의 계정 포함 대상 UNIX/LINUX 여러 사용자가 동시에 사용하는 다중 사용자 시스템이므로, 파일에 대 한 소유자와 포함 그룹에 따라 접근 할 수 있는 반경이 달라짐. 시스템을 관리하는 root 계정이 속한 그룹 시스템 운영을 위해 필요한 파일에 접근 권한이 있으므로 일반사용자가 이 그룹에 속해선 안됨. 그 러므로 최소한의 계정을 포함해야 함. 일반사용자의 관리자 권한으로 인한 위협 [UNIX/LINUX] 1. root가 포함된 그룹에 속한 사용자 확인 #cat /etc/group 장기 적용 양호 - 관리자의 그룹에 최소한의 계정을 할당 했을 경우. 취약 - 관리자의 그룹에 많은 계정을 했을 경우. 관리자 계정이 포함된 그룹에 불필요한 계정 존재시 해당 계정 그룹 변경 #usermod -g 바꿀GID 로그인ID - 11 - - 12 -
점검분류 항목 계정 관리 위험도 하 분류번호 U-12 세부점검 항목 계정이 존재하지 않는 GID 금지 대상 UNIX 점검분류 항목 계정 관리 위험도 중 분류번호 U-13 세부점검 항목 동일한 UID 금지 대상 UNIX/LINUX 구성원이 존재하지 않는 빈 그룹이 있다면 그룹관리가 정상적으로 이 루어지지 않을 가능성이 있음. 그룹관리가 정상적으로 이루어지지 않아 구성원이 존재하지 않는 그룹이 있을 경우 해당 그룹소유의 파일이 비 인가자에게 노출 될 위험이 있음. 그러므로 계정이 존재하지 않는 GID 설정을 관리자와 검토하여 제거해야 함. 사용자가 시스템에 접근하려면 사용자 계정이 반드시 필요함. 이때 모 든 계정에는 UID가 부여 되는데 이것을 통해 사용자의 이름, 패스워드, 홈 디렉토리 등과 같은 사용자에 관련된 정보에 대응시킴. 그러므로 시 스템은 로그인 ID가 달라도 동일한 UID를 가진 계정을 같은 사용자로 인식함. 그러므로 중복된 UID가 존재할 경우 보안상 문제가 발생할 수 있음. 관리되지 않는 그룹을 통한 시스템 접속 공격자에 의한 개인정보 정보 습득. 관련 데이터 습득. [UNIX/LINUX] 1. 그룹 정보 확인 #cat /etc/group [Solaris 10] 1. UID 중복 계정이 있는지 확인 함. #login -d 양호 - 존재하지 않는 계정에 GID 설정을 금지 했을 경우 취약 - 존재하지 않은 계정에 GID 설정을 했을 경우 구성원이 존재하지 않는 그룹이 있을 경우 관리자와 검토하여 제거. #groupdel '구성원이 없는 사용하지 않는 그룹 명 양호 - 동일한 UID 가 설정이 되지 않도록 조치했을 경우. 취약 - 동일한 UID 가 설정이 가능 하도록 조치되었을 경우. [Solaris 10] 새로운 UID로 변경 #usermod -u 새로 부여할 UID UID를 변경할 계정의 로그인 ID' - 13 - - 14 -
점검분류 항목 계정 관리 위험도 하 분류번호 U-14 세부점검 항목 사용자 Shell 점검 대상 UNIX Shell이란 유닉스 운영체제에서 사용자가 입력하는 명령을 읽고 해석하 는 프로그램, 즉 명령어 해석기임. 다시 말해서 사용자가 사용할 수 있 는 유틸리티나, 명령 등을 실행 할 수 있도록 하는 프로그램으로서 이 것은 명령행 에서 입력된 내용을 해석하고 그에 따른 작업을 커널이 하도록 지시하며 커널에서 작업한 결과를 다시 사용자에게 보여주는 기능을 하는데 공격자가 이를 악용하여, 사용자의 명령어를 해석하여. 악용 할 수 있음. usermod -s /bin/false noaccess usermod -s /bin/false diag usermod -s /bin/false listen usermod -s /bin/false operator usermod -s /bin/false games 명령어를 해석 하여 침입 위협. [UNIX] #cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1bin:/bin:/bin/false. -> bin 계정으로는 쉘이 부여되지 않음 양호 - 로그인이 필요 없는 계정은 쉘을 /bin/false 설정 했을 경우 취약 - 로그인이 필요 없는 계정에 별도의 설정이 없을 경우 조치 방안 [UNIX] 1. bin 이라는 계정에 2. # /etc/passwd에서 /bin/flase, /no shell 로 설정 을 하면 쉘이 부 여 되지 않음. * Shlell 제한시 명령어 usermod -s /bin/false gopher usermod -s /bin/false adm usermod -s /bin/false daemon usermod -s /bin/false bin usermod -s /bin/false sys usermod -s /bin/false listen usermod -s /bin/false nobody usermod -s /bin/false nobody4-15 - - 16 -
점검분류 항목 계정 관리 위험도 하 분류번호 U-15 세부점검 항목 Session Timeout 설정 대상 UNIX 4. /etc/profile 에 넣어두면 자가 접속하여 시간이 지나면서 아무것도 하지 않 을 시에 자동으로 로그아웃 설정됨 5. 패러미터를 설정한 뒤에는 반드시 로그아웃 한 뒤 다시 로그인 하여 바뀐 설정 내용을 시스템에 적용해야 함. 로그인하여 계정을 모두 사용한 후 사용자의 부주의로 계정이 접속한 상태로 방치할 경우 악의 적인 목적으로 사용 될 수 있으며, 권한이 없 는 사용자에 의한 사용이 이루어 질 수 있음. 그러므로 일정 시간 이후 어떠한 이벤트가 발생하지 않으면 연결을 강 제로 종료하는 session timeout 설정이 필요함. 비인가자의 시스템 접속 위험 [LINUX] #TMOUT 값을 준 후에, 계정으로 접속 한 후, 일정한 시간동안 작업을 하지 않았을 시에 로그아웃이 되는가를 확인 함 양호 - Session Time out 을 설정해 주었을 경우. 취약 - Session Time out 을 설정해 주지 않았을 경우. 조치 방안 [UNIX] * Solaris 에서 지정된 시간 동안 사용하지 않을 경우 접속된 session 해당 서버에서 끊도록 설정 /etc/default/login'파일 수정(주석 제거 or 신규삽입) 1. #vi/etc/profile 명령으로 프로파일을 열어 추가 2. #TMOUT=900 <- 시간 계산은 (30*30 = 900초) 이러한 기준으로 시간 을 삽입해준다. 3. #export TMOUT - 17 - - 18 -
점검분류 항목 세부점검 항목 파일 및 디렉토리 위험도 상 분류번호 U-16 관리 root 홈, 패스 디렉터리 권한 및 패스 대상 UNIX 설정 점검분류 항목 파일 및 디렉토리 관리 위험도 상 분류번호 U-17 세부점검 항목 파일 및 디렉터리 소유자 설정 대상 UNIX root의 검색경로가 되는 $PATH 경로내에. 이나 :: 등이 포함되어 소유자가 존재하지 않는 파일 및 디렉터리는 현재 권한이 없는 자(퇴직 침입자가 특정 명령어를 샐행시킬 수 있도록 조작될 수 있는 위험한 환경변수 값을 갖고 있는지 검사해야함. 만약. 이나 :: 등과 같은 환 경변수가 들어있을 경우 침입자에 의해 root 권한이 노출 될 수 있음. 자 등)의 소유였거나, 관리 소홀로 인해 생긴 파일일 가능성이 있음. 만 일 중요 파일 및 디렉터리일 경우 문제가 발생할 수 있으므로 관리가 필요함.., :: 등과 같은 환경변수가 들어있을 경우 침입자에 의해 root 권한 노출. 삭제된 소유자의 UID 와 동일한 사용자가 해당파일, 디렉토리 접근 가능. # PATH 변수내에. 이나 :: 의 항목이 있는지 확인 함 [Solaris 10] 중기 적용 #find /\( -nouser -o -nogroup \) -xdev -ls 2> /dev/null 검색 하여 해당 불필요한 파일이 있는지 검색. 양호 - Root 검색경로가 되는, 이나 :: 항목 제거를 했을 경우 취약 - Root 경색경로가 되는," 이나 :: 항목 제거를 하지 않았을 경 우 조치 방안 양호 - 소유자가 존재하지 않은 파일 및 디렉토리를 점검 하여 불필요 한 파일을 검색하여 제거 또는 적절한 소유자를 부여 했을 경우 [Solaris 10] 취약 - 소유자가 존재하지 않을 파일 및 데릭토리 점검 을 하지 않았 을 경우 # env PATH 변수내에. 이나 :: 의 항목이 있으면 삭제 시켜 줘야 함 조치 방안 [Solaris 10] 파일이나 디렉토리 소유자가 Nouser, nogroup 검색 1.#find /\( -nouser -o -nogroup \) -xdev -ls 2> /dev/null 명령어를 친후 디렉토리를 점검한다. 2.위의 명령어 처럼 해당 파일들을 검색 하여 제거하거나 적절한 소유 자를 부여함. - 19 - - 20 -
점검분류 항목 파일및 디렉토리 관리 위험도 상 분류번호 U-18 세부점검 항목 /etc/passwd 파일 소유자 및 권한 설정 대상 UNIX 점검분류 항목 파일및 디렉토리 관리 위험도 상 분류번호 U-19 세부점검 항목 /etc/shadow 파일 소유자 및 권한 설정 대상 UNIX /etc/passwd 파일은 사용자의 ID, 패스워드(보안상 x'로 표시), UID, GID, 홈 디렉토리, shell 정보를 담고 있는 중요 파일임. 이 파일이 노출되면 보안상 심각한 문제를 발생할 수 있어 관리자 이 외의 사용자는 접근 제한이 필요함. 따라서 /etc/passwd 파일의 소유자와 퍼미션 지정여부를 확인해야 함. /etc/passwd 파일에서 패스워드의 보안을 위해 표시하지 않는 패스워 드를 따로 관리하는 파일이 /etc/shadow 파일로 암호화된 패스워드 정 보를 담고 있음. 이 파일은 root를 제외한 사용자의 접근이 허용되면 보안상 문제가 발생할 수 있음. 예를 들어 /etc/shadow 파일의 퍼미션을 444로 설정하여 일반 사용자 가 접근 할 수 있다면 이 파일을 가지고 암호를 유추할 수 있으므로 /etc/shadow 파일의 소유자와 퍼미션 설정이 중요함. 임의적인 파일 정보 습득. 파일변경. 임의적인 파일 정보 습득, 파일변경. # ls -l /etc/passwd 명령으로 확인 -rwsr-xr-x 1 root root 14112 1월 16 2001 /bin/su 1 2 1 파일 소유권자 퍼미션, 소유그룹퍼미션, 일반사용자 퍼미션 2 파일 소유자 단기적용 # ls -l /etc/shadow 명령으로 확인 -rwsr-xr-x 1 root root 14112 1월 16 2001 /bin/su 1 2 1 파일 소유권자 퍼미션, 소유그룹퍼미션, 일반사용자 퍼미션 2 파일 소유자 단기적용 양호 - 파일 퍼미션 444, 소유자 root 취약 - root외의 사용자의 퍼미션이 4이상 이거나, 소유자가 root가 아 닐때 양호 - 파일 퍼미션 400, 소유자 root 취약 - 위와 동일한 퍼미션과 소유자가 아닐때 파일의 퍼미션을 바꾸어 줌. # chmod 444 /etc/passwd 파일의 퍼미션을 바꾸어 줌. # chmod 400 /etc/shadow 소유자를 root로 바꾸어 줌. # chown root /etc/passwd 소유자를 root로 바꾸어 줌. # chown root /etc/shadow - 21 - - 22 -
점검분류 항목 파일및 디렉토리 관리 위험도 상 분류번호 U-20 세부점검 항목 /etc/hosts 파일 소유자 및 권한 설정 대상 UNIX 점검분류 항목 세부점검 항목 파일및 디렉토리 위험도 상 분류번호 U-21 관리 /etc/(x)inetd.conf 파일 소유자 및 권한 대상 UNIX 설정 /etc/hosts.equiv 파일의 퍼미션을 600로 설정하여 일반 사용자가 접 근 할 수 있다면 이 파일을 가지고 host 파일에 접근하여 snoof 공격 을 할 수 있으므로 /etc/hosts.equiv 파일의 소유자와 퍼미션 설정이 중 요함 inetd용 config 파일은 inetd가 데몬과 기타 서비스 제공자를 관리하는 데 필요한 각 네트워크 서비스용 엔트리를 보유하고있음. 서비스는 실 행되겠지만 /etc/services에 있는 주석을 제거하여 실행중일 때에도 사 용할 수 없도록 함. 외부에서 IP 스푸핑 공격 위험이 있음. 임의적인 파일 정보 습득, 파일변경 # ls -l /etc/hosts 명령으로 확인 lrwxrwxrwx 1 root root 9 Sep 2 22:57 /etc/hosts.equiv -> /dev/null 1 2 1 파일 소유권자 퍼미션, 소유그룹퍼미션, 일반사용자 퍼미션 2 파일 소유자 # ls -l /etc/inetd.conf 명령으로 확인 -rw------ 1 root root 2935 aug 22 22:25 /etc/inetd.conf 1 2 1 파일 소유권자 퍼미션, 소유그룹퍼미션, 일반사용자 퍼미션 2 파일 소유자 단기적용 양호 - 파일 퍼미션 600, 소유자 root 취약 - 위와 동일한 퍼미션과 소유자가 아닐때 양호 - 파일 퍼미션 600, 소유자 root 취약 - 위와 동일한 퍼미션과 소유자가 아닐때 [Solaris] [Solaris] 파일의 퍼미션을 바꾸어 줌. # chmod 600 /etc/inetd.conf 파일의 퍼미션을 바꾸어 줌. # chmod 600 /etc/hosts 소유자를 root로 바꾸어 줌. # chown root /etc/inetd.conf 소유자를 root로 바꾸어 줌. # chown root /etc/hosts. - 23 - - 24 -
점검분류 항목 세부점검 항목 파일및 디렉토리 위험도 상 분류번호 U-22 관리 /etc/syslog.conf 파일 소유자 및 권한 대상 UNIX 설정 점검분류 항목 파일및 디렉토리 관리 위험도 상 분류번호 U-23 세부점검 항목 /etc/services 파일 소유자 및 권한 설정 대상 UNIX /etc/syslog.conf 파일에 로그에 대한 임의로 접근이 허용되면 보안상의 문제가 많이 때문에 /etc/syslog.conf 파일의 퍼미션을 644로 설정하여 만약에 일반 사용자가 접근 할 수 있다면 이 파일을 가지고 syslog 파 일에 접근 할 수 있음으로 /etc/syslog.conf 파일의 소유자와 퍼미션 설 정이 중요함. /etc/services 파일에 Services 에 대한 접근 허용되면 보안상의 문제가 많이 때문에 /etc/services 파일의 퍼미션을 644로 설정함 만약에 일반 사용자가 접근 할 수 있다면 이 파일을 가지고 services 파일에 에 접 근 할 수 있음으로 /etc/services 파일의 소유자와 퍼미션 설정이 중요 함. 일반 사용자가 Syslog 파일에 접근 할 수 있음. 일반 사용자가 Services 파일에 접근 할 수 있음. # ls -l 명령으로 확인 # ls -l 명령으로 확인 -rw--------- 1 root root 712 aug 22 22:35 /etc/syslog.conf 1 2 1 파일 소유권자 퍼미션, 소유그룹퍼미션, 일반사용자 퍼미션 2 파일 소유자 -rw-r-r-- 1 root root 11231 aug 26 13:50 /etc/services 1 2 1 파일 소유권자 퍼미션, 소유그룹퍼미션, 일반사용자 퍼미션 2 파일 소유자 단기적용 단기적용 양호 - 퍼미션을 644 로 설정 함. 취약 - 피미션을 위에 동일 하게 설정하지 않음. 양호 - 퍼미션을 644 로 설정 함. 취약 - 피미션을 위에 동일 하게 설정하지 않음. 파일의 퍼미션을 바꾸어 줌. # chmod 644 etc/syslog.conf 파일의 퍼미션을 바꾸어 줌. # chmod 644 etc/services 소유자를 로 바꾸어 줌. # chown root etc/syslog.conf 소유자를 로 바꾸어 줌. # chown root etc/services - 25 - - 26 -
점검분류 항목 파일및 디렉토리 관리 위험도 상 분류번호 U-24 세부점검 항목 SUID,SGID,Stick bit 설정 파일 점검 대상 UNIX UNIX system을 보면 파일의 실행권한에 s가 있는 경우가 있음. 이 s가 사용자의 실행권한에 설정되어있는 경우를 setuid, setgid 가 설정되어 있다고 함. 일반적으로 실행 파일은 파일 소유자와는 상관없이 파일을 실행시킨 사용자의 권한으로 작동함. SUID(Set Uid) 와 SGID(Set Gid) 가 설정된 파일은 사용자가 특정 명령 어를 실행할 때 보통은 접근 불가능한 시스템 자원을 접근할 수 있게 해주는 데 사용함. 사용자가 특정 시스템 파일과 자원을 제한된 환경에 서 사용할 수 있지만, 심각한 보안 문제가 발생할 수 있으므로 점검이 필요함. 특히 root 소유의 파일인 경우, 버퍼 오버플로우 공격과 Local 공격에 사용되어 root 권한을 노출 시킬 수 있으며, 시스템의 장애를 유발 할 수 있음. 버퍼 오버플로우나 Local 공격에 시용되어 root 권한을 노출 시킬 우려가 있음. SUID/SGID 설정된 의심스러운 파일 확인 # find / -user root -type f \( -perm -04000 -o -perm -02000 \) -xdev -exec ls -al {} \; 단기적용 양호 - 디렉토리의 설정 따라서 SUID,SGID, Sticky bit 설정 및 제거 해줌. 취약 - 디렉토리를 확인 하지 않고, SUID,SGID, Sticky bit 설정. 보안에 취약한 root 소유의 SetUID 파일들의 경우에는 꼭 필요한 파일 을 제외한 SetUID, SetGID 파일에 대하여 SetUID, SetGID를 제거해주 고, 잘못 설정되어 보안 위협이 되고 있는지 주기적인 진단 및 관리가 필요하다 점검분류 항목 세부점검 항목 파일및 디렉토리 위험도 상 분류번호 U-25 관리 사용자, 시스템 시작파일 및 환경파일 대상 UNIX 소유자 및 권한 설정 시스템 초기 파일들은 시스템 부팅시 시스템 환경변수를 설정하거나 부팅시 서비스를 가동시키는 설정들이 들어있음. 그러므로 시스템 초기 파일은 시스템 전체, 그리고 시스템의 모든 사용자에게 영향을 미치므 로 중요하게 관리해야하는 파일임. 1. 시스템 초기 파일의 내용이 변경되었을 경우 시스템 전체, 그리고 시스템의 모든 사용자에게 영향을 미침. 2. 시스템 초기 파일의 소유자, 혹은 그룹이 변경되면 적절하지 않은 사용자에 의해서 파일이 수정될 수 있음. 3. 시스템 초기 파일의 접근모드가 변경되면 적절하지 않은 사용자에 의해서 파일이 수정될 수 있음 4. 추가된 시스템 초기 파일이 존재하거나 삭제된 시스템 초기 파일이 존재하면 원하지 않는 환경설정이나 서비스가 수행될 수 있음 시스템 초기 파일이 변경될 경우 시스템 전체에 영향을 미침 # ls -l 명령으로 확인 -rwsr-xr-x 1 root root 1 2 14112 1월 16 2001 /bin/su 1 파일 소유권자 퍼미션, 소유그룹퍼미션, 일반사용자 퍼미션 2 파일 소유자 초기 시스템 설정 * 처음으로 실행되어 list file을 생성하는지 점검. * 체크섬(md5)의 값이 변경되었는지 점검. * startup file의 소유자가 변경되었는지 점검. * startup file의 그룹이 변경되었는지 점검. * startup file의 모드가 변경되었는지 점검. * 새로 생성된startup file이 존재하는지 점검. * 삭제된 startup file이 존재하는지 점검. 단기적용 SUID/SGID 설정된 의심스러운 파일 점검 # find / -user root -type f \( -perm -04000 -o -perm -02000 \) -xdev -exec ls -al {} \;. 양호 - 환경파일이 변경되지 않았고, root와 소유자만 write 가능한 경 우 취약 - 환경파일이 변경되었거나, root와 소유자 이외에도 write 가능한 - 27 - - 28 -
경우 파일의 퍼미션을 바꾸어 줌. # chmod 644 /etc/profile # chmod 644 /.profile 소유자를 로 바꾸어 줌. # chown root /etc/profile # chown root /.profile 점검분류 항목 파일및 디렉토리 관리 위험도 상 분류번호 U-26 세부점검 항목 world writable 파일 점검 대상 UNIX 공격자가 사용자의 시스템에 사용권을 얻게 되고, 시스템 파일이나 World-writa ble 파일들을 변경할 수 있게 되면 심각한 보안 허점이 존재하게 된다 그리고 World-writable 디렉토리도 위험하다 그래서 이러한 파일 및 디 렉토리들도 찾아보고 설정되어 있는지 확인해봐야 하며 불필요한 경우 에는 쓰기가능 을 제거해 주어야 함. 공격자에 의하여 World-writable 파일 변경. [UNIX/LINUX] # find / -perm -2 -ls 명령어를 친후 존재 유무를 확인. 양호 - world writable 파일 찾아보고 쓰기가능 설정 이유 확인하는 경 우 취약 - world writable 파일을 찾아보지 않는 경우 [UNIX/LINUX] 1.# find / -perm -2 -ls 명령을 쳐 World-writable 파일들을 찾는다. 2. 파일을 찾은후에 World-writable 파일이 있을시에 삭제한다. - 29 - - 30 -
점검분류 항목 세부점검 항목 파일및 디렉토리 위험도 상 분류번호 U-27 관리 /dev에 존재하지 않는 device 파일 대상 UNIX 점검 논리적 장치 파일을 담고 있는 /dev 디렉토리는 /devices 디렉토리에 있는 물리적 장치 파일에 대한 심볼릭 링크임. 예를 들어 rmt0 를 rmto 로 잘못 쓴 것처럼, 디바이스 이름이 잘못 입 력될 경우 /dev 디렉토리에 rmto 라는 파일이 생성됨. 보통 root 파일 시스템이 full 나서 error를 일으킬 때까지 계속해서 일어나는데 그 이 유는 /dev 디렉토리가 root (/)의 일부이기 때문이다. 따라서 실제로 존 재하지 않는 디바이스를 찾아내는 것이 중요하다.(major, minor number를 가지지 않는 디바이스) 임. 점검분류 항목 파일및 디렉토리 관리 위험도 상 분류번호 U-28 세부점검 항목 $HOME/.rhosts, hosts.equiv 사용 금지 대상 UNIX rlogin, rsh, rcp 는 패스워드를 입력하지 않고 원격서버로 신뢰받는 원 격로그인을 하기 위한 명령어입니다. 참고로 이와 같이 원격에서 수행 되는 명령어들을 원격명령어, r-commands라고 합니다. 이들 명령어들이 모두 원격에서 신뢰된 로그인 또는 접근을 할 수 있 기 위해서는 접근할 원격서버의 /etc/hosts.equiv 또는 홈디렉토리내에 있는.rhosts파일의 접근허용설정이 있어야 정상적인 수행이 됩니다. 따라서 rlogin과 함께 rsh, rcp등의 명령어 사용시에는 /etc/hosts.equiv, 그리고 홈디렉토리내에 있는.rhosts파일의 설정을 확인해야 합니다. 또한 이들 명령어들은 모두 원격에서 패스워드 인증과정 없이 바로 실 행이 될 수 있기 때문에 서버자체의 보안문제도 심각하게 고려해야합 니다. root 파일시스템 손상 및 다운. 불법적인 접속을 통한 시스템 접근 [UNIX/LINUX] # find /dev -type f -exec ls -l {} \; 명령어로 확인. # ls -l $HOME/.rhosts 명령으로 확인 # ls -I hosts.equiv 명령으로 확인 양호 - dev 에 존재하지 않은 device 파일을 점검하고, 존재하지 않은 device 을 제거 했을 경우 취약 - dev 에 대한 파일점검을 하지 않거나, 존재하지 않은 device 파 양호 - $HOME /.rhosts, hosts.equiv 활성화를 시키지 않았을 경우 취약 - $HOME /.rhosts, hosts.equiv 활성화를 시켰을 경우 일을 방치 했을 경우 [UNIX/LINUX 1.# find /dev -type f -exec ls -l {} \; 2.major, minor number를 가지지 않는 device 일 경우에는 삭제 [$HOME/.rhosts는 기본적으로 잘 쓰지 않음.)] 개인 계정의 홈 디렉토리에.rhosts 파일을 가지고 있지 않도록 확인해 야 함. 이 파일들은 각각의 유저들에 의해 만들어질 수 있기 때문에 /etc/hosts.equiv 파일 보다 더 보안상 위험한 상태에 놓여지게 됨. 그 리고 주기적으로 cron을 사용하여 이것을 체크해주고 내용을 정리해서 $HOME/.rhosts 파일을 지워 주도록 해야 함 [만약 이 파일의 사용이 꼭 필요하다면] 1) 파일의 첫번째 문자가 - 로 시작하지 않도록 확인 - 31 - - 32 -
2) 파일 퍼미션이 600으로 되어있는지 확인. 3) 파일의 소유자가 해당계정의 소유자인지 확인 4) 파일내에 어떤 라인에서도 + 가 포함되지 않도록 해야함. 이것은 해 당 계정에 다른 이용자의 로그인이 가능성이 있을 수 있기 때문. 5) 이 파일은 주석문을 사용할 수 없기 때문에 파일에! 혹은 # 을 허 용을 하지 않아야함. 6) HOME/.rhosts의 사용을 제한할 수 있는 log daemon 을 사용할 수 있다는 점을 유의 [/etc/hosts.equiv] rlogin과 같은 프로그램들은 패스워드의 적용없이 어떤 허가된 시스템 으로부터 여러분들의 시스템의 동일 계정으로 로그인하는데 사용될 수 있음.. 만일 r command를 사용하지 않거나 다른 시스템으로부터의 로 그인 허용을 원하지 않을 경우에는 이 파일을 사용하지 않아도 되고 필요하다면 삭제 가능. 이 파일이 존재하지 않는다면 그것은 r command들을 사용하더라도 큰 문제 없음. [/etc/hosts.equiv 파일을 가지고 있어야만 한다면] 1) 최소한의 신뢰된 호스트의 목록만을 유지하는지 확인. 2) NIS 혹은 NIS+를 사용한다면 좀 더 관리에 쉬운 네트웍 그룹을 사 용. 3) 관리하에 있거나 도메인 내부의 호스트들만을 허가해야 함. 4) salsari.org 와 같은 완벽하게 사용되어지는 호스트 네임 들을 사용 하는지 확인 5) 시스템을 access하는 유저의 허용때문에 파일 어느 곳에도 + 를 가 지지 않도록 주의 6) 이 파일에서는 주석을 위한 어느 문자도 지원하지 않으므로! 혹은 # 를 사용하지 않도록 주의. 7) 파일의 퍼미션이 600으로 셋팅되어 있는지 확인 8) 파일의 소유자가 root 인지 확인 9) O/S 인스톨이나 패치 후에는 꼭 체크 점검분류 항목 파일및 디렉토리 관리 위험도 상 분류번호 U-29 세부점검 항목 접속 IP 및 포트 제한 대상 UNIX 원격지에서 서버를 관리하려면 안전하고 통제가 가능한 접속 방법을 찾는 것이 중요한데, TCP Wrapper 프로토콜이 사용됨. TCP Wrapper 는 암호화는 지원하지 않지만 서버와 로그로의 외부 접 근을 제한 할 수 있는 특징이 있음. TCP Wrapper 에는 2가지 권고사항이 존재 하며 시행해야 함. 1. 시스템 이름이나 도메인 이름을 사용하지 말고 IP 주소를 사용 2. etc/hosts.deny 을 deny ALL 설정한 후 접속을 허용할 주소만 /etc/hosts.allow 파일에 기록. 불법적인 시스템 접근 및 스니핑 공격 우려. [UNIX/LINUX/Solaris 10] 1.#/etc/hosts.allow 명령어로 확인 2.#etc/hosts.deny 명령어로 확인. 중기적용 [기준] 양호 - 서버로 접속하는 접속 IP 를 설정했을 경우. 취약 - 서버로 접속하는 접속 IP 를 설정을 하지 않았을 경우. [조치사항] 1..#/etc/hosts.allow <예문> in.telnetd :192.168.100.100, 192.168.100.101 (192.168.100.100 와 192.168.100.101 IP에 대해서 telnet 접속 허용) in.telnetd :192.168.100 (192.168.100.0 ~ 255 네트워크에 대해서 telnet 접속 허용) in.ftpd :192.168.100.100 (192.168.100.100 에 대해서 ftp 접속을 허용) 2.#etc/hosts.deny <예문> ALL:ALL (inetd 서비스의 모든 서비스에 대해 접속 거부) 허용되지 않은 IP는 접속 불가 - 33 - - 34 -
점검분류 항목 파일및 디렉토리 관리 위험도 하 분류번호 U-30 세부점검 항목 host.lpd 파일 소유자 및 권한 설정 대상 UNIX /etc/host.lpd 파일의 퍼미션을 600로 설정하여 일반 사용자가 접근 할 수 있다면 이 파일을 가지고 host 파일에 접근하여 snoof 공격을 할 수 있으므로 /etc/host.lpd 파일의 소유자와 퍼미션 설정이 중요함. 외부에서 IP 스푸핑 공격 위험이 있음. # ls -l /etc/hosts.lpd 명령으로 확인 lrwxrwxrwx 1 root root 9 Sep 2 22:57 /etc/hosts.lpd -> /dev/null 1 2 1 파일 소유권자 퍼미션, 소유그룹퍼미션, 일반사용자 퍼미션 2 파일 소유자 양호 - 파일 퍼미션 600, 소유자 root 취약 - 위와 동일한 퍼미션과 소유자가 아닐때 점검분류 항목 파일및 디렉토리 관리 위험도 중 분류번호 U-31 세부점검 항목 NIS 서비스 비활성화 대상 UNIX 네트워크 정보 서비스(Network Information service, 예전의 YP)는 그룹 의 컴퓨터들에 정보를 배포하는 한 가지 방식이다. NIS 주 서버는 정보 표를 소유하며 그것들을 NIS 대응 (map) 파일들로 변환한다. 이 대응 파일들이 네트워크를 통해 제공됨으로써 NIS 클라이언트 컴퓨터들은 로그인과 패스워드, 홈 디렉토리와 쉘에 대한 정보 (즉 보통의 /etc/passwd 파일에 들어 있는 모든 정보)를 얻을 수 있게 된다. NIS를 이용하면 사용자들은 패스워드를 한 번만 바꾸면 그 NIS 영역에 들어 있는 모든 컴퓨터에 (정보가 갱신되도록) 할 수 있다. NIS는 안전한 것이 아니다. 원래부터 안전을 염두에 두고 만든 것이 아 니었다. 단지 간편하고 쓸모 있는 작업 역할을 위해서 만든 것뿐이다. (네트워크 상 어디에 있건) 여러분의 NIS 도메인의 이름을 알아맞힐 수 있는 사람은 여러분의 passwd 파일 복사본을 얻을 수 있고, 여러분의 사용자 패스워드를 깨기 위해 "크랙 (Crack)"과 "존 더 립퍼 (John the ripper)"를 쓸 수 있게 된다. NIS를 속여서 (spoof) 온갖 지저분한 일을 하게 할 수도 있다. 꼭 NIS를 써야 갰다면, 이런 위험들을 감수해야 한다. 서버 정보 유출 위험 # ps -ef grep yp NIS 서버가 실행되는지 확인 [Solaris] 파일의 퍼미션을 바꾸어 줌. # chmod 600 /etc/host.lpd 소유자를 root로 바꾸어 줌. # chown root /etc/host.lpd 양호 - 불필요해 서비스를 비활성화 한 경우 취약 - 불필요하지만 서비스를 활성화 한 경우 NIS 서비스가 필요하지 않다면 비활성화 필요 # /usr/lib/netsvc/yp/ypstop -> NIS 서비스 정지 # ps -ef grep yp -> 서비스 확인. # rm -r /var/yp/blue.org # rm /etc/ethers /etc/netgroup /etc/timezone /etc/bootparams # vi /etc/nsswitch.conf NIS 설정 삭제 - 35 - - 36 -
점검분류 항목 파일및 디렉토리 관리 위험도 중 분류번호 U-32 세부점검 항목 UMASK 설정 관리 대상 UNIX Umask 는 unix에서 파일/ 디렉토리 생성시 기본적으로 부여하는 권한 설정이며, unix 의 파일 권한은 rwxrwxrwx 형태로 표현되며, on/off 는 1/0으로 표현 이 됨. 기본적으로 rwxr-xr-x 권한을 가진 파일 이라면 chmod 는 이를 755 로 표현하며 umask 는 022로 표현을 해야함. 만약에 umask 값을 임의로 지정한다면 chmod 값도 바뀌기 때문에 설정시에 폴더에 접근이 불가 할 수 있음. umask 값이 022 값으로 주어지지 않으면 파일 접근이 안될 가능성이 있음. 다음 명령어로 현재 값 알아봄 #umask 양호 - 마스크값 022 취약 - 그 외의 값 #/home/oracle> ls -lad 1 drwxr-xr-x 2 oracle oinstall 4096 Feb 28 10:52 1 #/home/oracle> cd 1 #/home/oracle/1> touch 1 #/home/oracle/1> ls -la total 20 drwxr-xr-x 2 oracle oinstall 4096 Feb 28 10:52. drwxr-xr-x 18 oracle dba 4096 Feb 28 10:52.. -rw-r--r-- 1 oracle oinstall 0 Feb 28 10:52 1 위 결과를 보면 디렉토리에 대해서는 umask 설정이 그대로 적용되었 지만 파일에 대해서는 execute 권한이 빠져있는 걸 확인할 수 있다.. 마스크의 값을 바꾸어 줌. #umask 022 * umask 122 로 지정되었을 경우 #/home/oracle> mkdir 1 #/home/oracle> cd 1 #/Permission denied #/home/oracle> ls -lad 1 drw-r-xr-x 2 oracle oinstall 4096 Feb 28 10:46 1 #/home/oracle> chmod 755 1 #/home/oracle> cd 1 umask 1 과 같이 값을 줄 수 없다는 것을 알 수 있음. umask 값을 022 로 원복해서 directory / file 에 대해 권한할당 정보를 확인해 보겠다. #/home/oracle> mkdir 1-37 - - 38 -
점검분류 항목 파일및 디렉토리 관리 위험도 중 분류번호 U-33 세부점검 항목 홈 디렉토리 소유자 및 권한 설정 대상 UNIX 사용자 홈 디렉토리는 사용자가 로그인후 작업을 하는 디렉토리임. 또 한 사용자 홈 디렉토리에는 사용자 환경설정을 위한 파일이 들어있어 로그인후 사용자의 환경은 이 환경설정파일에 의해 설정됨. 홈 디렉토리의 소유자가 /etc/passwd 내에 등록된 홈 디렉토리 사용자 와 일치하지 않으면 해당 사용자 로그인시 사용자의 홈 디렉토리로 접 근이 되지 않을 수 있음. 또한 사용자 홈 디렉토리 내의 파일에 대한 접근 권한관리를 해당 사용자가 할 수 없게 되므로 소유자를 확인해야 함.사용자 환경 파일내에 등록되어 있는 umask 값이 사용자이외에 쓰 기 가능하도록 설정 되었을 경우 그룹이나 타 사용자에 의해 파일변경 가능성이 있음. 접근 권한 관리를 사용할 수 없음. # ls -l 명령으로 확인 -rwsr-xr-x 1 root root 1 2 14112 1월 16 2001 /bin/su 1 파일 소유권자 퍼미션, 소유그룹퍼미션, 일반사용자 퍼미션 2 파일 소유자 Directory Mode가 아닌 home directory가 존재하는지 점검 타 사용자에게 Trl 권한이 설정된 home directory가 존재하는지 점검 home directory가 존재하지 않는 사용자 계정이 존재하는지 점검 home directory의 소유자가 /etc/passwd file에 등록된 사용자와 일치 하는지 점검. 양호 - /etc/passwd 에 나와 있는 홈디렉토리 존재 취약 - /etc/passwd 에 나와 있는 홈디렉토리 미 존재 파일의 퍼미션을 바꾸어 줌. # chmod 711 /home 소유자를 로 바꾸어 줌. # chownd root /home 홈 디렉토리의 소유자를 /etc/passwd에 등록된 홈디렉토리의 사용자로 변경. #chown "/etc/passwd에 등록된 홈 디렉토리의 사용자" "홈 디렉토리 경로". 점검분류 항목 세부점검 항목 파일및 디렉토리 위험도 중 분류번호 U-34 관리 홈 디렉토리로 지정한 디렉토리의 존재 대상 UNIX 관리 사용자 홈 디렉토리는 사용자가 로그인후 작업을 하는 디렉토리임. 또 한 사용자 홈 디렉토리에는 사용자 환경설정을 위한 파일이 들어있어 로그인후 사용자의 환경은 이 환경설정파일에 의해 설정됨. 1. 홈 디렉토리가 존재하지 않는 경우, root계정이 아닌 일반사용자의 홈 디렉토리가 /로 되어있을 경우 로그인을 하면 사용자의 현재디렉토 리가 /로 로그인 되므로 관리,보안상 문제가 발생됨 2. 홈 디렉토리내에 숨겨진 디렉토리가 존재하는 경우 정당하지 못한 사용자가 파일을 숨길 목적으로 만들어놓은 것일 수 있음. 3. 사용자 홈 디렉토리내에 시스템 명령의 이름을 가진 불법적인 실행 파일이 존재하고 상대경로를 입력하여 시스템 명령을 수행하면 이 불 법적인 실행파일이 수행되어 원하지 않는 일을 수행할 수 있음. 내부의 관리. 보안상 문제 발생. 불법실행파일 실행 #cat /etc/passwd test:x:1232:1232::/home/test:/bin/bash 분을 확인 할 수 있음. -> /home/test 홈디렉토리 부 양호 - 홈 디렉토리에 지정한 디렉토리가 있는지 확인하고, 불법적인 거나 의심스러운 디렉토리가 있을 경우 삭제 했을 경우 취약 - 홈 디렉토리에 지정한 디렉토리에 이상 유무를 확인하지 않았 을 경우 * /etc/passwd에 사용자 홈 디렉토리를 설정하거나 수정 함. 홈 디렉토리 수정시 #vi /etc/passwd 분 rara:x:1232:1232::/home/test:/bin/bash -> /home/test 홈디렉토리 부 rara:x:1232:1232::/data:bin/bash -> 홈디렉토리 /data 로 수정 - 39 - - 40 -
* 숨겨진 디렉토리가 정당하지 못한 사용자에 의해서 생성된 것인지 확인. * 사용자 홈 디렉토리 내에 의심스러운 실행파일(시스템 명령의 이름을 가진 실행파일 등)이 존재하면 해당 파일이 정당한사용자에 의해서 생 성된 것인지 확인하고 필요 없는 파일이면 삭제. 점검분류 항목 파일및 디렉토리 관리 위험도 하 분류번호 U-35 세부점검 항목 숨겨진 파일 및 디렉토리 검색 및 제거 대상 UNIX 기본적으로 파일들을 검색할 때 ls 명령어를 이용하여 파일들을 검색하 는데, 이때 숨은 파일은 출력되지 않는다. 숨은 파일들은 기본적으로 [-a] 명령어를 이용하여 검색하여 파일이름이.으로 시작하는 숨은 파일 들의 리스트를 볼 수 있음. 보통 ls 명령어로 파일을 검색 할 경우가 많기 때문에 디렉토리 내에 존재하는 불필요한 파일이나 의심 가는 파 일이 있을 경우 삭제해야 함. 불법적인 파일로 인한 파일임의 변경. 정보 습득. # ls -a 명령어로 불필요한 파일이 있는지를 확인 중기적용 [기준] 양호 - 디렉토리 내에 숨겨진 파일을 확인 및 검색 하여, 불필요한 파 일 존재 경우 삭제 했을 경우 취약 - 디렉토리 내에 숨겨진 파일을 확인하지 않고, 불필요한 파일 방 치 했을 경우 [조치사항] # ls -al 해당디렉토리 1. 숨겨진 파일 목록에서 불필요한 파일이 있으면 삭제 2. 마지막으로 변경된 시간에 따라, 최근 작업한 파일들을 알고 싶으면 [-t] 플래그를 사용. 일반적인 영향 없음 - 41 - - 42 -
점검분류 항목 서비스 관리 위험도 상 분류번호 U-36 세부점검 항목 finger 서비스 비활성화 대상 UNIX 점검분류 항목 서비스 관리 위험도 상 분류번호 U-37 세부점검 항목 Anonymous FTP 비활성화 대상 UNIX finger(사용자정보 확인 서비스)를 통해서 네트워크 외부에서 해당 ip를 사용하는 사용자의 개인 정보 등을 확인할 수도 있으므로, 사용하지 않 는다면 비활성화 시켜야 함. 익명 ftp 서비스(anonymous ftp)는 익명 ftp를 사용하는 접근제한을 설 정하지 않으므로 익명 ftp 사용자가 서비스 사용 중 필요이상의 권한을 갖는 것을 막아야 함. 사용자 접속 상태를 원격에서 알 수 있음 관리자의 IP가 노출되어 IP 도용 공격의 대상이 될 수 있음 익명 ftp 서비스만을 제공해야하므로 익명 ftp 계정으로 로그인이 가능 하지 못하게 하여야함. ftp 서비스를 위해서 ~ftp에 생성되는 모든 파 1. /etc/inetd.conf 에서 Finger 서비스가 주석처리 되었는지 확인. 일은 root 소유이고 root외의 사용자가 쓰기권한을 가지도록 설정되면 안됨. 그렇지 않으면 익명 ftp 서비스 사용자에 의해서 익명 ftp생성에 단기적용 관계된 파일이 수정될 수 있어 권한도용에 사용 가능하게 되기 때문임. 공격자가 서버로 접근하여 임의 파일 변경, 삭제 할 수 있음. 양호 - Finger 서비스를 비활성화 했을 경우. 취약 - Finger 서비스를 활성화 시켰을 경우. 1. etc/vsftpd/vsftpd.conf에서 anonymous_enable = No 인지 확인해야 함. 1. /etc/inetd.conf에서 Finger 서비스에 주석처리(#) 를 하여 해당 서비 중기적용 스를 비활성 화 시켜 놓는다. 양호 - Anonymous FTP (익명 ftp) 를 비활성화 시켰을 경우 취약 - Anonymous FTP (익명 ftp) 를 활성화 시켰을 경우 # vi etc/vsftpd/vsftpd.conf anonymous_enalble = No * 익명접속을 허용할 것인가 않을 것인가 를 결정할 때 기본 값은 YES 로 되어 있으므로 NO 로 설정해야 함. - 43 - - 44 -
점검분류 항목 서비스 관리 위험도 상 분류번호 U-38 세부점검 항목 r 계열 서비스 비활성화 대상 UNIX rlogin, rsh, rcp 는 패스워드를 입력하지 않고 원격서버로 신뢰받는 원 격로그인을 하기 위한 명령어 이다. 참고로 이와 같이 원격에서 수행 되는 명령어들을 원격명령어, r-commands라고 한다. 이들 명령어들이 모두 원격에서 신뢰된 로그인 또는 접근을 할 수 있 기 위해서는 접근할 원격서버의 /etc/hosts.equiv 또는 홈디렉토리 내에 있는.rhosts파일의 접근허용설정이 있어야 정상적인 수행이 됨. 따라서 rlogin과 함께 rsh, rcp등의 명령어 사용시에는 /etc/hosts.equiv, 그리고 홈디렉토리 내에 있는.rhosts파일의 설정을 확인해야 함.. 또한 이들 명령어들은 모두 원격에서 패스워드 인증과정 없이 바로 실 행이 될 수 있기 때문에 서버자체의 보안문제도 심각하게 고려해야 됨. r-romand 계열의 보안상 취약점 발생. # cd /etc/xinetd.d] # cat rlogin or rsh disable 상태 확인. } # cd /etc/xinetd.d] # vi rlogin -------- 생략 { socket_type wait user log_on_success log_on_failure server disable 바꿈 } = stream = no = root += USERID += USERID = /usr/sbin/in.rshd = no <== 비활성화를 활성화로 중기 적용 일반적인 영향 없음 양호 - r 계열 서비스 비활성화인 경우 취약 - r 계열 서비스 활성화인 경우 # cd /etc/xinetd.d] # vi rlogin ---------- 생략 { socket_type wait user log_on_success log_on_failure server disable 바꿈 = stream = no = root += USERID += USERID = /usr/sbin/in.rlogind = no <== 비활성화를 활성화로 - 45 - - 46 -
점검분류 항목 서비스 관리 위험도 상 분류번호 U-39 세부점검 항목 cron 파일 소유자 및 권한설정 대상 UNIX 점검분류 항목 서비스 관리 위험도 상 분류번호 U-40 세부점검 항목 Dos 공격에 취약한 서비스 비활성화 대상 UNIX crontab은 멀티 시스템 환경하의 규칙적인 작업에 주로 사용된다. 그리 고 /var/spool/cron/crontabs 디렉토리 밑의 파일에 유저별로 작업 내용 이 저장된다. 데몬은 /etc/cron.d/cron.allow 와 /etc/cron.d/cron.deny 파일들에 의해 엑세스 컨트롤 됨. 침입자는 보통 cron과 at 명령으로 수행되는 파일들에 백도어 프로그 램을 남겨둔다. 그러므로 이러한 프로그램으로 수행되는 파일들은 쓰기 금지로 설정해야함. Dos (서비스 거부 공격) 공격에 취약한 echo, discard, daytime, chargen 은 취약점이 많이 때문에 서비스를 비활성화 하는 것이 좋음. - cron을 허용하는 계정의 목록은 cron.allow 파일 - cron을 허용하지 않는 계정의 목록 cron.deny 파일 echo, discard, daytime, chargen은 DoS(서비스 거부 공격)에 악용될 수 있다. - 만약 cron.allow 파일이 존재하면 cron.deny 파일은 유효성이 없음. cron. deny 파일은 그 안에 포함된 계정으로 하여금 cron 명령을 수행 하지 못하도록 한다 불법적인 예약 파일 실행으로 시스템 피해 1. /ect/inted.conf 를 하여 해당 활성화가 되어 있는지 확인. # ls -l 명령으로 확인 -rw-r--r-- 1 root sys -rw-r--r-- 1 root sys 1 2 14112 1월 16 2001 cron.allow 14112 1월 16 2001 cron.deny 양호 - DoS 공격에 취약한 echo, discard, daytime, chargen 서비스 를 사용하지 않았을 경우 1 파일 소유권자 퍼미션, 소유그룹퍼미션, 일반사용자 퍼미션 2 파일 소유자 양호 - 파일권한이 640 미만 취약 - DoS 공격에 취약한 DoS공격에 취약한 echo, discard, daytime, chargen를 설정했을 경우 [조치사항] 취약 - 파일권한이 640 이상 1. /etc/services 와 /etc/inted 에 해당 서비스에 접속함. 2. 해당 discard, daytime, chargen 목록이 있는 것을 확인 할 수 있 파일의 퍼미션을 바꾸어 줌. # chmod 640 cron.allow # chmod 640 cron.deny 소유자는 root # chown root cron.allow 음. 3. 해당 서비스 앞에 # 주석처리를 하여 비활성 시킴. 3. inted를 끊고(hang up) 재시동시키면 inted.conf 파일을 읽은 뒤, 보다 접근이 제한된 상태로 남아 있음. # chown root cron.deny - 47 - - 48 -
점검분류 항목 서비스 관리 위험도 상 분류번호 U-41 세부점검 항목 NFS 서비스 비활성화 대상 UNIX NFS와 NIS(Network Information Service) 같은 패키지를 이용하면 원격 컴퓨터의 파일시스템을 로컬 시스템에 마운트하여, 마치 로컬 파일시스 템 처럼 사용할 수 있게됨. 따라서 NFS를 사용하려면 접근제한을 설정 해야 하고 만일 사용하지 않는다면 반드시 제거해야 하며, 사용하지 않 는 서비스 NFS를 시스템에서 제거하기 위해서는 /etc/dfs/dfstab의 모 든 공유를 제거하고 NFS 데몬 nfsd, statd, mountd을 중지, 시동` 스크 립트를 삭제하거나, 이름을 변경해서 시스템 부팅 시에 실행되지 않도 록 설정해야한다. # cd /etc/rc3.d # mv S15nfs.server s15nfs.server # cd /etc/rc2.d # mv S73nfs.client s73.nfs.client 로컬 시스템 침입 할 가능성이 있음. # ps -ef grep mountd 명령어로 확인 # ps -ef grep nfs 명령어로 확인 # ps -ef grep statd 명령어로 확인 중기 적용 양호 - 사용하지 않는 NFS를 시스템에서 제거 했을 경우 취약 - 사용하지 않는 NFS를 방치 했을 경우 [ 조치사항 ] # ps -ef grep mountd root 163 1 0 Sep 27? 0:04 /usr/lib/autofs/automountd root 3234 3156 1 02:08:22 pts/4 0:00 grep mountd # kill -9 163 # ps -ef grep nfs root 146 1 0 Sep 27? 0:16 /usr/lib/nfs/nfs root 3236 3156 1 02:08:28 pts/4 0:00 grep nfs # kill -9 146 # ps -ef grep statd root 147 1 0 Sep 27? 0:16 /usr/lib/nfs/statd root 3242 3156 1 02:09:31 pts/4 0:00 grep statd # kill -9 147-49 - - 50 -
점검분류 항목 서비스 관리 위험도 상 분류번호 U-42 세부점검 항목 NFS 접근통제 대상 UNIX NFS와 NIS(Network Information Service) 같은 패키지를 이용하면 원격 컴퓨터의 파일시스템을 로컬 시스템에 마운트하여, 마치 로컬 파일시스 템 처럼 사용할 수 있게 됨. 따라서 NFS를 사용하려면 접근제한을 설 정해야 하고 만일 사용하지 않는다면 반드시 제거해야 하며, 사용하지 않는 서비스 NFS를 시스템에서 제거하기 위해서는 /etc/dfs/dfstab의 모든 공유를 제거하고 NFS 데몬 nfsd, statd, mountd을 중지, 시동 스 크립트를 삭제하거나, 이름을 변경해서 시스템 부팅 시에 실행되지 않 도록 설정해야한다. 만일 사용한다면 /etc/dfs/dfstab에 공유할 디렉토 리를 설정하기 때문에 NFS 설정 파일에 대한 접근 권한을 점검해야 한 다. 그리고 /etc/dfs/dfstab 에 공유할 디렉토리 설정 시, 디렉토리 권한 (RO, RW) 를 고려해야 한다. 공유 디렉토리 자료 변경 가능 점검분류 항목 서비스 관리 위험도 상 분류번호 U-43 세부점검 항목 automountd 제거 대상 UNIX SUN 솔라리스 시스템의 automountd는 일반적으로 UDP나 TCP프로토 콜을 통해서 패킷을 받아들일 수 없지만 rpc.statd가 포워딩 해주는 TLI 프로토콜을 통해서는 패킷을 받아들일 수 있다. 공격자는 이를 이용해 자신이 실행시키고자 하는 명령어를 rpc.statd에 패킷형태로 보내 실행 시킬 수 있음. 공격자는 간단한 명령으로 공격 대상 원격 시스템의 rpc서비스 정보를 얻을 수 있고, rstatd 데몬의 실행 여부를 확인이 가능함 공격자는 rpc 서비스와 rstatd 데몬 실행 여부를 확인 할 수 있음 # cd /etc/dfs # cat dfstab 으로 공유 디렉토리 권한 확인 automountd 서비스 확인 # ps -ef grep auto root 186 1 0 9월 07? 0:00 /usr/lib/autofs/automountd 중기 적용 양호 - 공유 디렉토리 권한이 적절한 경우 취약 - 공유 디렉토리 권한이 부적절한 경우 양호 - automountd 를 제거 했을 경우 공유 디렉토리 권한 수정 share [-F fstype] [ -o options] [-d "<text>"] <pathname> [resource] 취약 - automountd 를 제거 하지 않았을 경우 1. share : 공유 시킴 2. -F nfs : 파일시스템형식 nfs 방식 3. -o ro : read only 권한 # ps -ef grep auto # /etc/init.d/autofs stop # mv /etc/rc2.d/sxxautofs /etc/rc2.d/sxxautofs -o rw : read write 권한 4. -d "공유시킬 디렉토리 - 51 - - 52 -
점검분류 항목 서비스 관리 위험도 상 분류번호 U-44 세부점검 항목 RPC 서비스 확인 대상 UNIX 점검분류 항목 서비스 관리 위험도 상 분류번호 U-45 세부점검 항목 NIS, NIS+ 점검 대상 UNIX 최근 들어 국내뿐만 아니라 국외에서도 RPC 서비스의 취약점을 이용한 공격 빈도가 급격히 증가하고 있으며 대부분의 경우 관리자의 권한을 획득하게 된다. 어떠한 곳은 하루 동안 50여 호스트(Solaris)가 침해당 하는 사례가 있을 만큼 현재도 많은 수의 관련사고가 발생하고 있음. 아래 나열되어 있는 서비스 목록은 원격 버퍼오버프로우 취약점 및 인 증을 거치지 않아 원격에서 시스템에 접속을 가능하게 해주는 서비스 로 취약점이 다수 존재하여 공격에 이용되는 것이 가능. NIS는 사용자의 정보 등을 여러 client가 NIS server로부터 받아서 사용 을 할 수가 있는데, 여러 시스템을 여러 사용자가 사용할 경우 NIS server에서만 관리를 할 수 있다는 강점을 갖고 있지만, 역시 사용자 정보보안에 문제점을 많이 내포하고 있음. NIS를 써야 한다면 NIS+를 쓰도록 하는 것이 좋다. NIS+는 보안에 대해 신경을 많이 사용한 제품 이며, 그리고, Sun의 Secure RPC를 사용하는 경우에 더 편리하게 사용 할 수 있으며, Secure RPC는 데이터의 인증을 강화하여 불법적으로 데 sadmind,rpc.rwalld,rpc.rusersd, rpc.cmsd, rpc.rexd, rquotad 이터가 유출되어도 알지 못하도록 함. rpc.ttdbserverd, rpc.rstatd,rpc.sprayd,shell,login,exec,talk,time discard,chargen,printer,uucp,echo,daytime,dtscpd,finger 불법적으로 데이터가 유출될 우려가 있음. 관리자의 권한을 획득 RPC 서비스 확인 # cat /etc/inetd.conf NIS+ 서비스 확인 # ps -ef grep nis rpc.nisd 중기 적용 중기 적용 양호 - RPC 서비스를 중지하거나, 최신 패치를 적용 시켰을 경우 취약 - RPC 서비스를 중지하지 않거나, 최신패치를 설치하지 않았을 경우 패치를 설치하거나 RPC 서비스를 제한한다. # vi /etc/inetd.conf 아래에 있는 서비스 제한 (# 주석처리) 양호 - NIS 보단 데이터 인증이 강회된 NIS+ 쓰면서 주기적으로 검사 했을 경우 취약 - 기본적인 NIS 를 사용하거나, 주기적으로 검사가 미흡했을 경우 NIS 가 필요하다면 NIS+ 로 구동 (/etc/rc2.d/s71rpc 스크립트에서 부팅 시 구동 됨) sadmind,rpc.rwalld,rpc.rusersd, rpc.cmsd, rpc.rexd, rquotad rpc.ttdbserverd, rpc.rstatd,rpc.sprayd,shell,login,exec,talk,time discard,chargen,printer,uucp,echo,daytime,dtscpd,finger 서비스 중지 시 시스템 운영에 영향 고려 - 53 - - 54 -
점검분류 항목 서비스 관리 위험도 상 분류번호 U-46 세부점검 항목 tftp, talk 서비스 비활성화 대상 UNIX 모든 불필요한 OS 시스템 서비스를 비활성화하는 것으로 보안을 높일 수 있음. UNIX와 Windows 플랫폼의 양쪽 모두가 다양한 운영체제 서 비스, 예를 들어 FTP, TFTP, TELNET, TALK 등의 서비스를 포함하고 있 고. 반드시 UDP와 TCP 포트의 양쪽을 닫고 이러한 서비스가 비활성화 되도록 해야 함. 어느 쪽이든 1개의 포트만을 비활성화한다고 해도 보 안성은 높아짐. 보안적 으로 취약해 질수 있음. tftp, talk 서비스 확인 # cat /etc/inetd.conf grep tftp # cat /etc/inetd.conf grep talk 점검분류 항목 서비스 관리 위험도 상 분류번호 U-47 세부점검 항목 Sendmail 버전 점검 대상 UNIX 원격으로 이용할 수 있는 취약점이 Sendmail에서 발견 되었음. 이 취 약점은 SMTP 헤더 분석(parsing) 구성 요소의 버퍼 오버플로우 상태 때문에 발생하며, 원격 침입자는 대상 SMTP 서버에 연결하고 서버에 손상된 SMTP 데이터를 전송하여 이 취약점을 이용할 수 있음. 수신 전자 메일 메시지를 처리할 때 발생. 주소가 유효함을 확인하는 작업 중 하나에 오류가 있으면 버퍼 오버플로우 상태가 되어, 침입자는 이 취약점을 사용하여 감염된 서버에 대한 기본 권한을 원격으로 얻을 수가 있음. sendmail 프로그램은 입력 검증 오류, 접근 검증 오류, 예외 조건 처리 오류, 환경변수오류 등 프로그램의 잘못된 구현으로 인한 취약점들이 \계속적으로 발견되고 있다. 이러한 취약점이 해커에게 노출될 경우 시스템의 중요한 정보가 유출되거나 시스템 전체가 허가되지 않은 사용자 혹은 외부 침입자에게 점령당할 수 있다. 오버플로우 에 취약함. 기본 권한을 원격으로 얻을 수 있음. sendmail 서비스 확인 # ps -ef grep sendmail root 522 1 0 9월 07? 0:00 /usr/lib/sendmail -bd -q15m 양호 - tftp, tallk 서비스를 비활성화 시켰을 경우 smmsp 520 1 0 9월 07? 0:00 /usr/lib/sendmail -Ac -q15m 취약 - tftp, talk 서비스를 활성화 시켰을 경우 sendmail 버전 확인 # echo \$Z /usr/lib/sendmail -bt -d0 [UNIX / LINUX] Version 8.12.5+Sun # vi /etc/inetd.conf 아레에 있는 서비스 제한 (# 주석처리) #talk dgram udp wait root /usr/sbin/in.talkd in.talkd #tftp dgram udp6 wait root /usr/sbin/in.tftpd in.tftpd 양호 - Sendmail 버전을 정기적으로 점검하고, 패치를 했을 경우 취약 - Sendmail 버전을 점검하지 않고, 패치도 안 했을 경우 sendmail 설치 및 업그레이드를 위해서는 현재 사용중인 sendmail 데 몬 중지 필요. 그러므로 담당자와 협의하여 업그레이드 고려 - 55 - - 56 -
sendmail 버전 확인. # echo \$Z /usr/sbin/sendmail -bt -d0 sendmail 업데이트 참조 http://www.sendmail.org/releases 업그레이드시 데몬 중지로 인한 sendmail 서비스 중 점검분류 항목 서비스 관리 위험도 상 분류번호 U-48 세부점검 항목 스팸 메일 릴레이 제한 대상 UNIX 메일서버 설치시 Anti-Spam 메일서버의 정확한 설치와 환경설정방법을 몰라 자사의 메일서버가 스팸 릴레이(Relay) 서버로 이용되는 불미스러 운 일이 발생하기도 함. 뿐만 아니라 국내 메일 서버들이 스팸메일 서 버로 오인되게끔 하여 메일 서버로서의 제 기능을 담당하지 못하도록 하는 일이 종종 발생하기도 함 메일 서버로서의 제 기능이 떨어짐 스팸 메일 릴레이 제한 확인 # cat /etc/mail/sendmail.cf 메일과 해당 수신 여부를 확인 할 수 있음 중기 적용 양호 - 스팸 메일 릴레이를 방지 설정을 했을 경우 취약 - 스팸 메일 릴레이를 방지 설정을 안했을 경우 1. sendmail 8.9.0부터는 기본적으로 메일 릴레이 기능을 제한하는 기능이 지원이 되며, 버전이 향상되면서 추가된 `Anti Spam`이 바로 그것인데, Access DB라는 새로운 데이터베이스의 도입으로 이것을 설정하여 특정 메일들을 받지 않을 수 있음. spam@jabra.com REJECT psp2.com REJECT antispam.com OK 110.242.120 RELAY 110.243.124 RELAY 설명 : jabra.com`의 아이디 `spam`으로 오는 메일과 `psp2`에서 오는 모든 메일을 수신 거부하고. antispam.com에서 오는 메일은 모두 받고, 110.242.120 과 110.243.124 네트워크의 IP 주소에 대하여는 릴레이를 허가함. 2. 여기서 설정된 사항은 /etc/mail/access란 이름의 access DB로 파일시스템에 저장되며, 파일구조는 텍스트 형식이고 sendmail이 참조할 수 없음 그래서 makemap이란 프로그램을 사용하여 sendmail이 인식할 수 있는 DB형태로 다음과 같이 변경해야 함. - 57 - - 58 -
.#/etc/mail/makemap dbm /etc/mail/access < /etc/mail/access access.dir과 access.pag라는 이름의 DB가 생성된 것을 볼 수 있음. 한가지 번거로운 점은 /etc/mail/access 파일을 수정할 때마다 makemap을 사용해서 DB를 새로 만들어 주어야 함. 점검분류 항목 서비스 관리 위험도 상 분류번호 U-49 세부점검 항목 일반사용자의 Sendmail 실행 방지 대상 UNIX 가장 일반적으로 사용되고 있는 간이 이메일 전송 프로토콜(SMTP) 서 버 소프트웨어로 인터넷 이메일 분배는 오랫동안 센드메일로만 처리되 어 왔기 때문에 SMTP 서버의 사실상의 표준으로 널리 사용되고 있다. 센드메일의 설정은 복잡하고 이해하기가 어렵기 때문에 일반 이용자는 취급하기가 어렵다. 메일 큐 처리 명령은 일반 사용자에게 꼭 필요한 기능이 아니므로 다음과 같은 방법으로 실행권한을 루트 권한으로 제 한한다. 권한 없는 일반사용자의 sendmail 설정 # cat /etc/mail/sendmail.cf 양호 - 일반사용자의 sendmail 실행 방지가 설정되어 있는 경우 취약 - 일반사용자의 sendmail 실행 방지가 설정되어 있지 않은 경우 SMTP 서비스 운영시 일반사용자의 q 옵션을 사용한 sendmail 실행 방 지 # vi /etc/mail/sendmail.cf O PrivacyOptions=authwarnings,novrfy,noexpn,restrictqrun 변경 #/etc/rc.d/init.d/sendmail restart 재시작한다. 위와 같이 설정한 후에 는 다음과 같은 경고 메시지를 보내며, 처리가 제한된다. $ sendmail -q You do not have permission to process the queue - 59 - - 60 -
점검분류 항목 서비스 관리 위험도 상 분류번호 U-50 세부점검 항목 DNS 보안 버전 패치 대상 UNIX DNS 보안 에 관하여 소홀 했거나 패치를 하지 않는 다면 DNS의 Cach Poisoning 취약점에 취약해 질 수 있음. 공격자는 취약한 DNS 를 사용 하는 시스템에 조작된 DNS 쿼리를 전송하여 캐쉬의 정보를 변경, 정상 적인 사이트에 접속 시 다른 사이트의 ip 를 변조 하는 방법을 사용함. 공격자는 조작된 DNS 쿼리를 다량으로 전달하여 DNS 캐쉬서버의 내 용을 임의로 변경할 수 있고, 악성코드가 설치된 임의의 주소 등으로 변경이 가능하기 때문에 DNS 보안에 대해서 많은 신경을 써야함. DNS 를 이용한 다양한 공격에 취약. 취약점 확인 방법 - 다음 명령 실행 $dig @localhost +short porttest.dns-oarc.net TXT 또는 $dig @해당서버IP +short porttest.dns-oarc.net TXT 조회. - 업그레이드 캐시 DNS 서버로 사용되는 시스템을 운영 중이라면, 패치가 된 버전으 로 업그레이드 합니다. 패치버전: BIND 9.3.5-p1, BIND 9.4.2-p1, BIND 9.5.0-p1 - 업그레이드 외에 recursive query 제한 $ vi /etc/named.conf acl xxx { 127.0.0.1; 해당서버IP; }; options { version "unknown";... allow-recursion { xxx; }; }; - 취약한 경우 응답 내용 확인 porttest.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net. "해당서버IP is POOR: 26 queries in 3.6 seconds from 1 ports with std dev 0" - 취약하지 않은 경우 DNS 확인 내용 확인 z.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net. "IP-of-GOOD is GOOD: 26 queries in 2.0 seconds from 26 ports with std dev 17685.51" 중기 적용 양호 - DNS 보안 패치를 최신 버전으로 유지 하고 점검 했을 경우 취약 - DNS 보안 패치를 구 버전으로 설정하거나, 점검이 미흡 했을 경우 * 패치 방법 - 61 - - 62 -
점검분류 항목 서비스 관리 위험도 상 분류번호 U-51 세부점검 항목 DNS Zone Transfer 설정 대상 UNIX 네임서버 간에는 Secondary NS 측에 의하여 Primary NS측 도메인의 Zone에 대한 복사본을 얻기위해, Zone 데이터베이스를 끌어오는 Zone Transfer작업이 주기적으로 이루어지게 된다. 하지만 이 Zone Transfer를 무제한으로 허용할 경우에는 내부 네트웍의 정보가 필요이상으로 외부 에 유출되는 결과가 되므로 Primary NS측 입장에서 Zone Transfer를 오 직 한 호스트로부터만 접근 가능 하도록 DNS 구성을 변경설정 하여야 함 외부로 정보가 유출 될 우려가 있음. named.conf 파일에서 권고사항에 나와 있는 바와 같이 Secondary Name Server 로만 Zone Transfer 를 할 수 있도록 설정되어 있는지 점검 # cat /etc/named.conf 양호 - DNS ZoneTransfer 를 허가된 사용자에게 허용 했을 경우 취약 - DNS ZoneTransfer 를 허가되지 않은 사용자에게 허용 했을 경 우 DNS서버를 디폴트로 설치할 경우 임의의 사용자가 Zone Transfer를 할 수 있도록 설정되며, BIND-8 버전의 경우 named.conf 설정파일에서 Zone 데이터를 획득할 수있는 시스템을 제한할 수 있음. Primary Name Server에서는 다음과 같이 Zone Transfer를 허용하는 서버를 지정 Options { allow-transfer{10.10.10.111; 10.10.10.112;}; }; 특정 도메인의 Zone에 대해서 제한할 경우에는 다음과 같이 설정할 수 있음. Type master ; File "db.xxx.co.kr"; allow-transfer{10.10.10.111; 10.10.10.112;}; } Secondary Server에서는 다음과 같이 설정하여 Zone 데이터 유출을 허용하지 않아야 함. allow-transfer{none; } 외부공격자로부터 address spoofing 공격을 당하지 않도록 관리하고 있는 DNS를 다음과 같이 설정 1. 우선 클라이언트에 DNS 서비스를 제공하지 않는 DNS라면 다음과 같이 recursion 모드를 해지 options { recursion no; } 2. 클라이언트에게 DNS 서비스를 제공해야 하는 경우 DNS 서버가 받아 들일 수 있는 요청을 제한할 수 있도록 설정한다. 즉, 특정 주소로 부터 온 질의에 대해서만 DNS 서버가 응답하도록 설정하거나, 특정 Zone에 대한 요청에만 응답하도록 설정한다. 일반적으로 DNS 서버가 관리하는 Zone에 대한 요청은 외부나 내부 모두에게서 발생할 수 있으며, DNS 서버가 관리하지 않는 Zone에 대해서는 내부에서만 발생되게 된다. 이는 다음과 같이 allow-query를 사용하여 제한할 수 있게 함. acl internal { 10.10.10.176/24; }; options { directory "/var/named"; allow-query { internal; }; }; zone "xxx.co.kr" { Zone "xxx.co.kr" { - 63 - - 64 -
점검분류 항목 서비스 관리 위험도 상 분류번호 U-52 세부점검 항목 Apache 디렉토리 리스팅 제거 대상 UNIX 디렉터리 검색은 디렉터리에 대한 요청시 그 디렉터리에 기본 문서가 존재하지 않을 경우 디렉터리 내에 존재하는 모든 파일들의 목록을 보 여주는 것임. 디렉터리 검색이 허용되면 외부에서 디렉터리 내의 모든 파일들에 대한 접근이 가능하여 백업 파일이나 소스 파일 등 공개되어서는 안되는 중 요한 파일들이 노출될 수 있음. 아파치에서 따로 리스팅이 방지 되도록 설정 해야 함. Allow from all </Directory> Options에서 Indexes 부분만 삭제하여 주면, 디렉토리가 리스팅되지 않 음. 외부로 정보가 유출 될 수 있음. apache 디렉토리 리스팅 확인 # cati httpd.conf Options 부분에 Indexes 확인 중기 적용 양호 - 디렉토리 리스팅을 제거하거나 방지 해주었을 경우 취약 - 디렉토리 레스팅이 계속 실행 되었을 경우 아파치 설치후, 웹에서 엑세스 가능한 디렉토리에 접근했을때,Directory Indexes 지시자에 의하여 지정된 Index 파일이 존재하지 않는다면, 디 렉토리를 리스팅 하는 경우가 있음. # vi httpd.conf <Directory "/usr/local/apache2/htdocs"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny - 65 - - 66 -
점검분류 항목 서비스 관리 위험도 상 분류번호 U-53 세부점검 항목 Apache 웹 프로세스 권한 제한 대상 UNIX 확인할 수 있다. 일반 사용자들이 웹 브라우져를 이용해서 웹 서비스를 받을 경우 nobody 권한의 httpd 데몬과 연결을 맺게 된다. Apache 웹서버 운영시에 위험을 최소화하기 위해서 웹서버 애플리케이 션만을 위한 하나의 유일하고 관리자 권한이 아닌 최소 권한의 사용자 ID와 그룹을 생성하는 것이 안전하다. 대부분의 경우에 이러한 목적을 위해 사용자 ID와 그룹으로 nobody" 를 사용한다. 물론 웹서버를 위해 nobody가 아닌 다른 root 권한 이외의 사용자 ID 와 그룹을 생성해도 무방하다. 웹서버를 위해 생성된 root가 아닌 계정은 인터렉티브한 로그 인을 허락해서는 안 된다. 즉 이 계정을 통해서 사용자가 로그인할 수 없도록 해야 한다. 패스워드 파일에서 Apache를 위한 사용자 계정 (nobody)이 locked되어 로그인할 수 없는지 확인한다. 웹 프로세서의 관리자 권한을 획득하여 임의의 명령어와 파일 수정. 웹서버 프로세스 소유자 확인 # ps -ef grep http nobody 453 1 0 9월 07? 2:31 /usr/local/apache/bin/httpd nobody 465 1 0 9월 07? 30:37 /usr/local/apache/bin/httpd 양호 - 웹 프로세스 권한을 제한 했을 경우 취약 - 웹 프로세스 권한을 제한 하지 않았을 경우 Ap ache 서버가 초기설정될 때, 로그 파일을 열고, 웹서버 데몬을 구동 하고, 적당한 TCP 포트(일반적으로 80 포트)를 열기 위해 root 권한이 필요하다. 일단 초기 구동단계가 완료되면 웹서버 데몬은 root가 아닌 이미 사전에 생성한 사용자 ID와 그룹(nobody)으로 전환한다. 웹서버 데몬(http d)이 root로 구동된 후 다른 사용자로 변환할 때 사용 할 사용자와 그룹은 httpd.conf 파일에서 지정해 줄 수 있다. 일반적으로 nobody를 사용할 경우 다음과 같다. User nobody Group nobody 위의 설정으로 구동된 웹서비스 프로세스들은 초기 구동된 httpd 데몬 1개만이 root 권한이고 나머지는 nobody 권한으로 띄워져 있는 것을 - 67 - - 68 -
점검분류 항목 서비스 관리 위험도 상 분류번호 U-54 세부점검 항목 Apache 상위 디렉토리 접근 금지 대상 UNIX 상위패스로 이동하는 것이 가능할 때 하위경로에 접속하여 상위로 이 동함으로써 해킹을 당할 위험이 있으며, Unicode 버그 및 서비스 거부 공격에 이용당하기 쉬우므로 되도록이면 ".." 와 같은 상위 경로를 사용 하지 못하도록 설정하는 것이 바람직함. ".." 는 unicode 버그, 서비스 거부와 같은 공격에 쉽게 이용되므로 허용 하지 않는 것을 권장함. 패스워드 파일에 등록된 모든 사용자들이 접근할 수 있도록 하기 임의 명령어 실행, 임의의 파일 수정, 시스템 관리자 권한 획득. 위해서는 사용자를 지정하는 대신 Require valid-user "라고 하면 된다. # cd / usr/local/www # cat httpd.conf # vi.htaccess <Directory "/usr/local/www"> AllowOverride AuthConfig AuthType Basic AuthName "Welcome" </Directory> AuthUserFile /usr/local/apache/passwords Require valid-user 중기 적용 양호 - 상위 디렉토리에 이동제한을 설정 했을 경우 취약 - 상위 디렉토리에 이동제한을 설정 하지 않았을 경우 먼저 각 디렉토리별로 사용자 인증을 하기 위해서 httpd.conf 파일 내의 AllowOverride 지시자의 옵션을 None에서 AuthConfig 또는 All로 바꾼다.(사용자 인증만을 위해서는 AuthConfig 사용을 권고) <Directory "/usr/local/www"> AllowOverride AuthConfig </Directory> 그리고, 사용자 인증이 필요한 디렉토리에 다음의 지시자들이 포함된.htaccess 파일 을 생성한다. - 69 - - 70 -
점검분류 항목 서비스 관리 위험도 상 분류번호 U-55 세부점검 항목 Apache 불필요한 파일 제거 대상 UNIX 점검분류 항목 서비스 관리 위험도 상 분류번호 U-56 세부점검 항목 Apache 링크 사용 금지 대상 UNIX 서버 내에서 불필요한 파일을 제거하여, 혹시 모를 외부에서 침입한 불 법 파일에 대하여 대비 해야함. 의심 가는 파일이 있거나. 사용하지 않 는 파일이 있을 경우에는 제거를 해주어야 함. 몇몇 서버는 심블릭 링크를 이용해서 기존의 웹 문서 이외의 파일시스 템에 접근 가능하도록 하고 있다. 이러한 방법은 편리할 수는 있지만 심 각한 보안 문제를 야기시킬 수 있다. 가령 시스템 자체의 root 디렉토리 (/)를 링크 걸게 되면 웹서버 구동 사용자 권한(nobody)으로 모든 파일 임의의 파일 변경. 삭제 시스템의 파일에 접근할 수 있게 된다. 즉, /etc/passwd 와 같은 대단히 민감한 파일까지 누구나 열람가능하게 된다. 웹 서버를 정기적으로 검사하여 불필요한 파일 확인 해당 링크 사용시 디렉토리 파일에 접근하여 시스템 중요 파일에 접근 심블릭 링크 설정 확인 # cat httpd.conf 양호 - 불필요한 파일을 제거 했을 경우 Options FollowSymLinks 확인 취약 - 불필요한 파일을 제거를 안했을 경우 웹 서버를 정기적으로 검사하여 임시 파일들을 삭제하도록 한다. 특히 양호 - 심볼릭 링크, aliases 을 사용 금지 했을 경우 취약 - 심볼릭 링크, aliases 을 사용 했을 경우 웹 서비스의 업데이트나 유지보수 시 생성되는 백업파일이나 중요한 파일 등은 작업이 끝난 후 반드시 삭제하도록 한다. 아파치를 설치하면 기본적으로 설치되는 cgi-bin은 공격에 이용 될 수 있으므로 삭제하고 메뉴얼 파일은 시스템에 대한 정보를 포함하고 있어서 해킹에 도움이 Options" 지시자에서 심블릭 링크를 가능하게 하는 옵션인 FollowSymLinks 를 제거함으로써 이를 막을 수 있음. 될 수 있기 때문에 웹 서버에서 삭제한다. 정확한 관리를 위해 폴더와 파일의 이름과 위치, 개수 등이 적혀있는 별도의 문서를 관리하는 것이 좋다. 그래서 문서에 등록되지 않은 불필 요한 파일들을 점검해서 삭제하도록 한다. # vi httpd.conf <Directory /> Options FollowSymLinks 제거 AllowOverride None </Directory> - 71 - - 72 -
점검분류 항목 서비스 관리 위험도 상 분류번호 U-57 세부점검 항목 Apache 파일 업로드 및 다운로드 제한 대상 UNIX 점검분류 항목 서비스 관리 위험도 상 분류번호 U-58 세부점검 항목 Apache 웹 서비스 영역의 분리 대상 UNIX 불필요한 파일 업로드, 다운로드 시에, 대량의 업로드, 다운로드로 인한 서비스 불능상태가 발생 함. 불필요한 업로드 와 다운로드는 허용하지 않으며, 웹서버에 의해 처리되지 못하게 해야 하며, 자동이나 수동으로 파일의 보안성 검토를 하도록 해야 한다. 대량의 업로드와 다운로드 시 서비스 불능상태 발생 웹서버를 안전하게 하기 위해서 서버 데몬과 컨텐트가 별도의 하드 디스크 파티션에 인스톨되어져야만 한다. 웹 컨텐트는 DocumentRoot에 설치되는데 DocumentRoot는 모든 웹 컨텐트가 저장될 Apache 내부의 디렉토리 구조이다. 가능하면 이 디렉토리는 서버 root나 chroot로부터 별도의 파티션이나 하드 드라이버를 사용하는 것이 좋다. Apache 웹서 버 애플리케이션 파일들로부터 컨텐트를 분리하는 것은 공격자가 웹서 # cat httpd.conf 파일 을 열어 용량 이 잘 설정 되어 있는지 확인 버 공격을 훨씬 어렵게 한다. Apache 기본 설치 시에는 htdocs 디렉토리를 DocumentRoot로 사용하 고 있는데 이를 바꾸도록 한다. htdocs 디렉토리는 공개되어서는 안될 양호 - 파일 업로드 및 다운로드를 제한하도록 한다. 취약 - 파일 업로드 및 다운로드를 제한하지 않는다. (또는 공개될 필요가 없는) Apache 문서를 포함하고 있으며, 공격에 이 용될 수 있는 시스템 관련 정보도 포함하고 있다. 웹 서비스 침해가 시스템 영역으로 확장 # vi httpd.conf 밑의 보이는 것과 같이 용량을 설정 해줌. (시스템에 따라 용량을 설정) DocumentRoot 디렉토리 확인 # cat httpd.conf Document Root "usr/local/apache/htdocs"\ <Directory /> LimitRequestBody 5000000 </Directory> <Directory /home/userdir/> LimitRequestBody 10240000 </Directory> 양호 - DocumentRoot 를 별도의 디렉토리로 지정 취약 - DocumentRoot 를 기본 디렉토리로 지정 위와 같이 LimitRequestBody 를 설정하면 아파치 웹서버를 이용하여 ( / )는 모든 파일의 사이즈를 5M로 제한하고 /home/userdir/ 폴더에 대 해서는 10M로 제한하게 됨. 1. DocumentRoot를 /usr/local/www 로 지정하였다. 설정은 httpd.conf 파일에서 다음과 같이 할 수 있다. #Document Root "/usr/local/apache/htdocs " Document Root "/usr/local/www" - 73 - - 74 -
점검분류 항목 서비스 관리 위험도 중 분류번호 U-59 세부점검 항목 ssh 원격접속 허용 대상 UNIX SSH는 사용자와 시스템과의 모든 통신을 암호화하여 사용할 수 있음. TCP Wrapper 같은 경우는 암호화되지 않기 때문에 스니핑 으로부터 네트워크 트래픽을 보호하지 못하며 패스워드를 포함한 키 스트로크를 캡쳐 할 수 있어 위험 요소가 존재한다. 이렇게 원격 작업시 데이터나 통신이 캡쳐 되거나 누군가에 의해 침해당할 우려가 있는 중요한 것이 라면 telnet과 ftp를 ssh로 대체하는 것을 권장 함 telnet과 ftp는 스니핑과 트래픽 공격에 취약 ssh로 접속 확인 중기적용 양호 - 원격 접속 시 SSH 프로토콜을 사용 했을 경우 취약 - 원격 접속 시 Telnet 이나 안전하지 않은 프로토콜을 사용 했을 경우 /var/svc/log# svcs -a ssh svcs: -a ignored when used with arguments. STATE STIME FMRI online 14:34:13 svc:/network/ssh:default /var/svc/log# -- log 확인 --- /var/svc/log/ network-ssh:default.log [ 7월 11 14:34:13 Executing start method ("/lib/svc/method/sshd start") ] [ 7월 11 14:34:13 Method "start" exited with status 0 ] ################################################# [root 접속 설정] #cd /etc/ssh #vi sshd_config 132번째 줄 PermitRootLogin no ===> PermitRootLogin yes 변경. [LINUX] /etc/ssh# svcadm refresh ssh /etc/ssh# SSH 설정 1.#sudo apt-get install ssh -> SSH 설치 2.#ps -ax grep sshd -> 데몬 실행 확인 암호화되지 않는 프로토콜 접속 불가 3./user/sbin/sshd 라는 줄이 있으면 실행 중 없으면 /etc/init.d/ssh restart 명렁어 실행. [Solaris 10] SSH 설정 /var/svc/log# svcs -a grep ssh disabled 14:31:56 svc:/network/ssh:default /var/svc/log# - 75 - - 76 -
점검분류 항목 서비스 관리 위험도 하 분류번호 U-60 세부점검 항목 ftp 서비스 확인 대상 UNIX 점검분류 항목 서비스 관리 위험도 중 분류번호 U-61 세부점검 항목 ftp 계정 shell 제한 대상 UNIX FTP 서비스를 사용하면 계정을 발급하게 될 때 Shell 라는 접속이 있는 기본적인 FTP 서비스는 계정과 패스워드가 암호화 되지 않은 채로 전 송 되므로 간단한 Sniffer 에 의해서도 스니핑이 가능하므로 FTP 사용 하지 않을 것이 좋음. 데 보안상 취약하고 계정을 shell 로 발급될시 외부의 침입자가 접근하 여 계정에 대한 정보를 빼내어 갈 수 있으므로 shell 을 부여하지 못하 도록 접속을 끊는 것이 좋음. 공격자의 의하여 계정이 노출 될 수 있음. 보안성 취약. 스닝핑 공격에 취약. # cat /etc/passwd 명령어를 쳐 끝부분에 shell 차단 명령어를 하였는 지 확인. 단기적용 1. /etc/service 명령어로 접속하여 ftp 서비스가 주석 처리가 되어 비 활성화 되어 있는지를 확인. 양호 - ftp 계정의 Shell 을 접속을 하지 못하도록 설정 했을 경우 취약 - ftp 계정의 Shell 을 접속을 할 수 있도록 설정 했을 경우 중기 적용 방법 1 # vi /etc/passwd 양호 - ftp 서비스를 비활성화 했을 경우 취약 - ftp 서비스를 활성화 했을 경우 필요하지 않다면 서비스 비활성화 및 필요하다면 안전한 ssh 사용 필 요aa # vi /etc/services ftp 21/tcp에서 ftp -> #ftp 21/tcp 주석 처리를 하여 비 활성화 test:x:500:500::/home/test:/bin/bash <-- /bin/bash 가 shell 설정 부분 -> test:x:500:500::/home/test:/bin/false /bin/false 로 했을 경우 shell 이 차단되지만 ftp 서비스까지 할 수 없으므로 유의 하여야 함. 방법 2. # cat/etc/shells 쉘이 등록되어 있는 장소에서 /bin/nosh 임의의 하나 를 등록 # cd /bin # touch nosh (퍼미션777) # vi /etc/passwd 쪽에서 쉘부분 세팅만 바꿔줌. test:x:500:500::/hom/test:/bin/nosh <- 이곳을 nosh 로 바꿔주어 shell 차단 - 77 - - 78 -
점검분류 항목 서비스 관리 위험도 하 분류번호 U-62 세부점검 항목 ftpusers 파일 소유자 및 권한 설정 대상 UNIX 점검분류 항목 서비스 관리 위험도 중 분류번호 U-63 세부점검 항목 ftpusers 파일 설정 대상 UNIX ftpusers 를 이용하여, 특정 사용자에게 접속 권한을 주어 ftp를 접속 Ftpusers 파일은 ftp 접근제한 할 사용자 리스트를 포함 함. 이 파일의 권한 적정성을 검토해야 함. 만약 파일 권한 설정이 부적절하게 되어있 할 수 있음. 이외에 계정 사용자는 ftp 에 접속하지 못하며, 해당 접속 하기 위해서 권한을 요청을 해야함. 공격자가 ftp로 접속하여 악의적인 용도로 사용 할 수 있으므로 ftpusers 설정을 해주는 것이 좋음. 을 경우 침입자가 ftp 접근 제한에 걸린 계정 주석 처리 하거나 내용을 삭제하는 등 ftp 사용 제한에 영향을 미칠 수 있음. 공격자가 악의적인 의도로 정보 습득, 임의 파일변경 1./etc/vsftpd/ftpusers -> FTP 유저 확인 2./etc/vsftpd/user_list -> FTP 유저 리스트 확인 임의로 내용 변경 및 삭제 우려. 양호 - ftpuser 명령어를 사용하여 특정 사용자 계정 에게만 ftp 서버에 접근 할 수 있도록 설정 했을 경우 # ls -l /etc/ftpusers 명령으로 확인 -rwsr-xr-x 1 root root 14112 1월 16 2001 /bin/su 취약 - ftpuser 명령어를 사용하지 않고, 사용자 계정이 ftp 를 이용하 여 접근 했을 경우 1 2 1 파일 소유권자 퍼미션, 소유그룹퍼미션, 일반사용자 퍼미션 2 파일 소유자 [ 조치방안 ] 1./etc/vsftpd/ftpusers -> ftp 로그인을 허락하지 않은 계정 정보가 있 음. 중기적용 * root, bin, daemon, adm, lp, sync, shutdown. halt, mail. news, uucp operator, games, nobody 는 기본적으로 ftp의 유저로 등록된 사 용자임 양호 - 파일권한이 640 미만 취약 - 파일권한이 640 이상이면 취약 2. /etc/vsftpd/user_list userlist_enable=yes userlist_deny=no * 거부자 목록으로 쓰지 않으면 user_list 에 등록된 사용자는 ftp 사용 파일의 퍼미션을 바꾸어 줌. # chmod 640 /etc/ftpusers 이 가능하며 user_list 에 등록이 되었더라고 /etc/vsftpd/ftpusers에 등 록된 사용자는 접속이 불가능 함. 이와 같이 설정을 해주고 ftpusers에 서 root를 삭제하면 root로도 ftp 접속 할 수 있음. * etc/vsftpd/user_list 에 등록된 사용자는 접속 거부/승인 목록이 될 수 있음. * etc/vsftpd/ftpusers에 등록된 사용자는 user_list에 상관없이 접속불가 - 79 - - 80 -
점검분류 항목 서비스 관리 위험도 중 분류번호 U-64 세부점검 항목 at 파일 소유자 및 권한설정 대상 UNIX 점검분류 항목 서비스 관리 위험도 중 분류번호 U-65 세부점검 항목 SNMP 서비스 구동 점검 대상 UNIX at은 싱글 시스템 하의 자동 작업 시 주로 사용한다. 그리고 /var/spool/cron/atjobs 디렉토리 밑의 파일에 저장된다. 데몬은 /etc/cron.d/at.deny 파일들에 의해 엑세스 컨트롤 된다. 침입자는 보통 cron과 at 명령으로 수행되는 파일들에 백도어 프로그 램을 남겨둔다. 그러므로 이러한 프로그램으로 수행되는 파일들은 쓰기 금지로 설정한다. SNMP 서비스는 시스템 상태를 실시간으로 파악하거나 설정하기 위하여 사용하는 서비스임. SNMP 서비스를 사용하지 않을 경우 중지 시킴 at을 허용하지 않는 계정의 목록은 at.deny 에 저장되어 있으며, at. deny 파일은 그 안에 포함된 계정으로 하여금 cron 명령을 수행하 시스템의 주요 정보 유출 및 불법 수정. 지 못하도록 함. 불법적인 예약 파일 실행으로 시스템 피해 # ls -l 명령으로 확인 -rw-r--r-- 1 root sys 14112 1월 16 2001 at.deny 1 2 1 파일 소유권자 퍼미션, 소유그룹퍼미션, 일반사용자 퍼미션 # ps -ef grep snmp -> 프로세서 확인 # netstat -an grep 161 -> 포트 확인 # cat /etc/snmpd.conf 명령으로 확인 2 파일 소유자 양호 SNMP 서비스를 사용하지 않음 취약 SNMP 서비스를 사용 함 양호 - 파일권한이 640 미만 취약 - 파일권한이 640 이상 파일의 퍼미션을 바꾸어 줌. 불필요시 서비스 중지/사용안함 [Solaris] # chmod 640 at.deny # svcadm disable svc:application/management/dmi:default 소유자는 # chown root at.deny # svcadm disable svc:application/management/snmpdx:default # svcadm disable svc:application/management/sma:default - 81 - - 82 -
점검분류 항목 서비스 관리 위험도 중 분류번호 U-66 세부점검 항목 snmp 서비스 커뮤티니스트링의 복잡성 설정 대상 Unix SNMP 서비스는 시스템 상태를 실시간으로 파악하거나 설정하기 위하여 사용하는 서비스임. 그러나 이 정보를 받기 위한 일종의 패스워드인 Community String이 Default로 public, private로 설정되어 있는 경우가 많으며, 이를 변경하지 않으면 이 String을 악용하여 비인가사용자가 시 스템의 주요 정보 및 설정 상황을 파악 할 수 있는 취약성이 존재함. 커뮤니티명을 변경하지 않고 기본적으로 사용할 경우 보안상 취약 점검분류 항목 서비스 관리 위험도 하 분류번호 U-67 세부점검 항목 로그온 시 경고 메시지 제공 대상 UNIX 유닉스나 리눅스 서버에 로그인하는 사용자들에게 로그인 배너를 통하 여 적절한 경고 메시지를 알려주는 것은 매우 중요하다. 때때로 이러한 메시지는 단순히 기술적인 코멘트를 하는 것으로 생각되기도 하지만, 공 격자들이 침입했을 때 법적인 경고를 함으로써 시스템 보안에 효율적으 로 사용될 수 있다. 경고 메시지를 표시함으로써 접속 시도자에게 경각심을 주어 비 인가된 행동을 억제해주는 효과가 있음. #cat /etc/snmp/conf/snmpd.conf에서 커뮤니티스트링 확인 1. /etc/issue.net 설정 확인 2. /etc/motd 설정 확인. 양호 SNMP Community 이름이 public, private 이 아닐 경우 양호 - 로그온 경고 메시지를 설정했을 경우. 취약 - 로그온 경고 메시지를 설정을 안했을 경우. 취약 SNMP Community 이름이 public, private 인 경우 [조치사항] 시스템에 로그인하기 전과 후에 보여주는 메시지를 편집할 때. 1. 시스템을 운영하는 관리자는 로그인하는 사용자들에게 알리고픈 공지 # cat /etc/snmp/conf/snmpd.conf system-group-read-community read-community public trap-community SNMP-trap public 사항 등을 로그인할 당시에 보여주는 것이 가장 효과 적임. 2. TELNET으로 remote로그인을 하는 사용자들에게 메시지를 보여주는 절차는 크게 두 가지로 나뉨. 첫째, 로그인 전에 보여주는 메시지, 즉 ID와 패스워드의 입력을 요 커뮤니티명을 확인하여 디폴트 커뮤니티명인 public, private 를 사용하 지 않고 추측하기 어려운 커뮤니티 명으로 변경해야함. 구하는 단계에서 시스템의 정상사용자인증을 받지 못했을 경우. 이 메시 지는 /etc/issue.net파일에 보관되어 있음. 이 메시지를 원하는 내용으로 변경하려면 이 파일의 내용을 수정. 둘째, ID와 패스워드를 정상적으로 입력한 후 즉, 정상사용자로 인증 된 후에 메시지임. 즉, ID와 패스워드를 입력하고 시스템에 로그인한 바 로 다음에 보여줄 메시지를 말함인데 이 메시지는 /etc/motd에 보관 되 어 있음. 따라서 정상사용자들에게 안내할 공지사항이나 필독 사항 등 은 여기에 넣어두면 로그인에 성공한 사용자들은 모두 이 메시지를 볼 - 83 - - 84 -
수 있음. 시스템관리자의 측면에서의 이 파일에 대한 일반적인 용도는 시스템 점검일자 등에 대한 공지 등으로 이용 가능. 점검분류 항목 서비스 관리 위험도 중 분류번호 U-68 세부점검 항목 NFS 설정 파일 접근 권한 대상 UNIX NFS와 NIS(Network Information Service) 같은 패키지를 이용하면 원격 컴퓨터의 파일시스템을 로컬 시스템에 마운트하여, 마치 로컬 파일시스 템 처럼 사용할 수 있게 됨. 따라서 NFS를 사용하려면 접근제한을 설 정해야 하고 만일 사용하지 않는다면 반드시 제거해야 하며, 사용하지 않는 서비스 NFS를 시스템에서 제거하기 위해서는 /etc/dfs/dfstab의 모든 공유를 제거하고 NFS 데몬 nfsd, statd, mountd을 중지, 시동 스 크립트를 삭제하거나, 이름을 변경해서 시스템 부팅 시에 실행되지 않 도록 설정해야한다. 만일 사용한다면 /etc/dfs/dfstab에 공유할 디렉토리를 설정하기 때문에 NFS 설정 파일에 대한 접근 권한을 점검해야 한다. 로컬 시스템 침입 할 가능성이 있음. # ls -l -rw-r--r-- 1 root sys 393 3월 12 2009 dfstab 1 2 1 파일 퍼미션 2 파일 소유자 중기 적용 양호 - 파일 퍼미션이 644이하인 경우 취약 - 파일 퍼미션이 644초과인 경우 파일의 퍼미션을 바꾸어 줌. # chmod 644 /etc/dfs/dfstab 소유자는 # chown root /etc/dfs/dfstab - 85 - - 86 -
점검분류 항목 서비스 관리 위험도 중 분류번호 U-69 세부점검 항목 expn, vrfy 명령어 제한 대상 UNIX 인증되지 않은 사용자의 Sendmail Deamon사용을 제한하기 위해서 Sendmail에는 Anti-Spam Feature를 포함하고 있음. 이 기능을 제대로 사용하기 위해서는 /etc/mail/sendmail.cf 또는 /etc/sendmail.cf파일에서 옵션을 바꾸어 주어야 함. endmail에서 goaway 옵션을 사용할 경우에 SMTP의 EXPN, VRFY명령 어를 제한하게 되며, 이로 인해서 VERB명령어도 더불어 제한하게 됨. SMTP 명령어는 아래와 같이 접속 후 HELP 명령어를 타이핑하면 HELO, EHLO, MAIL, RCPT, DATA, RSET, NOOP, QUIT, HELP, VRFY, EXPN, VERB ETRN, DSN, AUTH, STARTTLS등의 사용 가능한 명령어를 볼 수 있음. 인증되지 않은 사용자가 접속하여, Sendmail을 임의적으로 사용. sendmail(25 번 포트)에 접속하여 expn 과 vrfy 명령을 통해 aliases 정보와 사용자 정보를 알아낼 수 있는지 점검함. 중기 적용 점검분류 항목 서비스 관리 위험도 중 분류번호 U-70 세부점검 항목 Apache 웹서비스 정보 숨김 대상 UNIX 에러페이지, 웹 서버 종류, 사용 OS, 사용자 계정 이름 등 웹 서버와 관련된 불필요한 정보가 노출되지 않도록 한다. 이러한 정보를 아는 것 만으로도 공격에 필요한 정보를 수집하는데 도움이 될 수 있음. 공격자가 여러 정보를 수집함으로써 다양한 공격을 시도 할 수 있음. Apache 웹서비스 정보 확인 # telnet xxx.xxx.xxx.xxx 80 Try ing xxx.xxx.xxx.xxx... Connect ed t o xxx.xxx.xxx.xxx. Escape character is '^ ] '. GET / HTTP/ 1. 1 HTTP/ 1. 1 400 Bad Reques t Dat e : Tue, 15 Oct 2002 11:25 : 10 GMT Server : Apache / 1.3.19 (Unix) PHP/ 4.0.4pl1 양호 - expn, vrfy 접근을 못하도록 설정 했을 경우 취약 - expn, vrfy 접근을 허용했을 경우 다음과 같은 방법으로 goaway 옵션을 설정함. 1 /etc/mail/sendmail.cf 또는 /etc/sendmail.cf 파일에서 옵션을 바꾸어 준다. # privacy flags O PrivacyOptions=authwarnings, goaway 위와 같은 옵션 설정으로 인증받지 않은 사용자는 EXPN, VRFY, VERB 명령어를 사용할 수 없게 됨. 2. sendmail.cf 파일을 저장하고 아래와 같이 sendmail deamon을 재시작함. # /etc/rc.d/init.d/sendmail restart 양호 웹서버와 불필요한 정보 유출 서비스를 차단 취약 웹서버와 불필요한 정보 유출 서비스 미차단 이 정보는 공격자에 의해 Ap ache 웹서버 버전별 또는 구동되고 있는 응용프로그램에 잘 알려진 취약점을 공격하는데 유용하게 이용될 수 있으며, 인터넷 웜과 같은 자동화된 공격에서도 이러한 banner 정보가 사용되어지기도 한다. 따라서 공격자에게 웹서버의 버전과 같은 bann er 정보를 숨기는 것이 안전하다. Apache 웹서버에서는 ServerTokens 지시자를 수정함으로써 헤더에 의해 전송되는 정보를 바꿀 수 있다. Syntax: ServerTokens Minimal Product Only OS Full ServerTokens 지시자에서 설정할 수 있는 각 키워드에 의해 나타나는 - 87 - - 88 -
점검분류 항목 패치 관리 위험도 상 분류번호 U-71 정보는 다음과 같다. 세부점검 항목 최신 보안패치 및 벤더 권고사항 적용 대상 UNIX 보안패치를 안했을 경우에는 외부의 공격에 매우 취약함. 그렇기 때문 에 정기적으로 최신패치인지를 확인 하여야 함. 각종 물리적 접근, 계 정 도용, 파일 시스템 비밀성 및 무결성 침해, 비 인가된 네트웍 접근 등의 다양한 공격들에 의하여 침입을 당할 위험이 있으므로 정기적인 점검이 필요함. 외부의 공격으로 인한 계정 도용 파일 시스템 비밀성 및 무결성 침해 등 각종 공격에 취약. ServerToken은 Apache 1.3 이상에서 가능하고 ProductOnly 키워드는 1.3.12 이상의 버전에서 사용가능하다. 일반적으로 ServerToken은 http d.conf에서 명시되어 있지 않는 경우가 많은데 이럴 경우에는 기본값인 솔라리스는 showrev -p 라는 명령어로 패치가 적용되어 있는지 확인 할 수 있음 ServerTokens Full 이 적용되어 운영체제 정보, 웹서버 정보, 버전정보, 설치된 모듈 정보 등이 모두 서버의 응답 헤더에 포함되어 클라이언트 에게 전송된다. 최소한의 정보를 주기 위해서 ServerTokens Prod 를 설 정하는 것이 바람직하다. 혹자는 공격자를 속이기 위해서 서버의 헤더 정보를 앞에서 명기한 양호 최신보안 패치 및 벤더를 적용하고 정기적으로 점검 했을 경우 내용과는 전혀 다른 내용으로 조작하여 클라이언트에 보내기를 원할 수도 있는데 이 경우에는 Apache 소스코드를 수정해서 재 컴파일 취약 최신보안 패치 및 벤더를 적용하지 않고 미 점검 했을 경우 하여야 하므로 권고하지 않는다. Red Hot Linux 패치 - http://www.redhat.com/support/errata/ Sun Solaris 패치 - http://sunsolve.sun.com Sun Solaris 패치 확인 - http://sunsolve.sun.com/pub-cgi/show.pl - 89 - - 90 -
점검분류 항목 로그 관리 위험도 상 분류번호 U-72 세부점검 항목 로그의 정기적 검토 및 보고 대상 UNIX 점검분류 항목 로그 관리 위험도 하 분류번호 U-73 세부점검 항목 정책에 따른 시스템 로깅 설정 대상 UNIX 컴퓨터에 관한 작업은 로그라는 정보로 저장함. 로그는 컴퓨터 관련 범 죄가 발생 했을시 해킹의 흔적을 찾기 위하여 로그를 분석. 단순히 해킹 의 흔적을 찾기 위한 수단만이 아니라 로그분석을 통해 공격기법을 발 견하여 시스템 취약점을 제거 할 수 있고, 공격에 대한 근원을 찾을 수 있다면 자산의 손실을 공격자에게 법적인 책임을 물을 수가 있으므로 로그에 대한 관리와 분석이 중요시 됨. 로그 자료가 없을시, 공격자에 대한 방어대응 취약. 자산의 재산 손실 우려. 정기적으로 로그 분석에 대한 결과물 존재 확인 중기 적용 감사 설정이 구성되어 있지 않거나 감사 설정 수준이 너무 낮으면 보 안 관련 문제 발생시 원인을 파악하기 어려우며 법적 대응을 위한 충 분한 증거로 사용될 수도 없음. 그러나 감사 설정이 너무 높으면 보안 로그에 불필요한 항목이 많이 기 록되므로 매우 중요한 항목과 혼동할 수 있으며 컴퓨터 성능에도 심각 한 영향을 줄 수 있기 때문에 법적 요구 사항과 조직의 정책에 따라 필 요한 로그를 남기도록 해야 함. 각종 침해 사실에 대한 확인과 대응책 및 법적 대응이 어려움. # cat /etc/syslog.conf에서 로그 설정 확인 중기 적용 양호 로그기록에 대해 정기적 검토, 분석, 그에 대한 리포트 작성 및 보고등의 조치가 되 있을 경우. 양호 아래와 같은 이벤트에 대한 감사 설정이 되어 있는 경우. 취약 아래와 같은 이벤트에 대한 감사 설정이 되어 있지 않은 경우. 취약 로그기록에 대해 미 검사, 미 검토 되었을 경우. syslog.conf 파일은 선택자 필드와 액션 필드로 구성되어 있는데, 선택 log 파일에는 해킹의 흔적들이 남겨져 있을 수 있습니다. 그러므로 주 기적으로 로그 파일을 백업 검토해야 합니다. 가. su 시도에 관한 로그들을 주기적으로 모니터링 해야 합니다. 나. 반복적인 로그인 실패에 관해 주기적으로 모니터링 해야 합니다. 다. 로그인 거부 메세지에 대해 주기적으로 모니터링 해야 합니다. 라. 기본적 log 파일의 위치는 ( /var/adm, /var/log) 입니다. 자 필드는 어떤 것을 기록할 것인가를 설정하는 부분이고, 액션필드는 어느 파일에 로그를 기록할 것인가를 설정하는 부분이다. 선택자 필드에는 메시지 종류(facility)와 메시지 우선 순위(Priority)를 지 정 * 메시지 종류 auth : 로그인 등의 인증 프로그램 유형이 발생한 메시지 커널과 시스템 로그 메시지들을 분석함으로써 시스템의 비정상적인 authpriv : 개인인증을 요구하는 프로그램 유형이 발생한 메시지 작동을 점검할 수 있고 외부로부터 불법적인 침입을 하였는지 감시할 수 cron : cron이나 at과 같은 프로그램이 발생하는 메시지 있다. 커널과 시스템에 관련된 로그 메시지들은 syslogd와 klogd 두 개의 daemon : telnetd, ftpd등과 같은 데몬이 발생한 메시지 데몬에 의해서 /var/log/messages에 기록하게 된다. 이 파일을 kern : 커널이 발생한 메시지 분석함으로써 시스템을 항상 점검 관리해야 한다. lpr : 프린터 유형의 프로그램이 발생한 메시지 mail : 메일시스템에서 발생한 메시지 news : 유즈넷 뉴스 프로그램 유형이 발새? 메시지 syslog : syslog 프로그램 유형이 발생한 메시지 user : 사용자 프로세스 - 91 - - 92 -
uucp : 시스템이 발생한 메시지 local0 :여분으로 남겨둔 유형 * 메시지 우선 순위 alert : 즉각적으로 조치를 취해야 할 상황 crit : 급한 상황은 아니지만, 치명적인 시스템 문제 발생 시 debig : 프로그램 실행 시 발생되는 오류 발생 시 emerg : 매우 위험한 상황 err : 에러가 발생되었을 경우 info : 단순한 프로그램에 대한 정보 메시지 notice : 에러가 아닌 알림에 관한 메시지 warning : 주의를 요하는 메시지 액션 필드에는 선택자 필드에서 설정한 메시지들이 전달될 곳을 지정 하는데 이에 사용될 수 있는 값으로는 콘솔, 파이명, 사용자 또는 원격 시스템 등이 있다. 로그 설정 방법에 대해 살펴보면 kern.* /dev/consol 이것이 뜻하는 바는 커널 메시지의 모든 것을 콘솔로 보내라는 것이다. 만일 /var/log/messages 로 파일명을 지정하면 지정된 파일명으로 커 널의 모든 메시지들을 기록하게 된다. 2. 윈도우즈 취약점 항목 상세 설명서 점검분류 항목 계정 관리 위험도 상 분류번호 W-1 Windows NT, 2000, 세부점검 항목 Administrator 계정 이름 바꾸기 대상 2003 관리자 계정으로 설정되어져 있는 "Administrator" 계정을 다른 이름으 로 바꾸고 "Administrator"라는 가짜 계정을 만들어 아무런 권한도 주 지 않는 방법을 사용할 수 있는데, 이러한 방법은 "모호함을 통한 보안 (Security through obscurity)"의 한 예임. 즉 Bogus 계정을 만드는 것 임. Administrator 계정은 로그온 시 몇 번이고 실패해도 절대 접속을 차단 하지 않기 때문에 시스템을 공격하려는 사람들은 이 계정의 패스워드 유추를 계속 시도할 수 있음. 따라서 관리자 계정의 이름을 바꿈으로써 공격자는 패스워드뿐만 아니 라 계정이름도 유추 하여야 하는 어려움을 줄 수 있음. 또 하나의 방법은 보안정책 설정에서 로그온 실패 횟수에 따른 계정 잠금을 설정함으로써 brute force 공격이나 사전공격에 대응할 수 있음 임의의 명령어 실행, 임의의 파일 수정, 시스템 관리자 권한 획득. [Windows NT] 1. 시작>프로그램>관리도구>도메인사용자관리>Administrators그룹>등 록정보에서 확인 [Windows 2000, 2003] 1. 시작>실행>LUSRMGR.MSC>그룹> Administrators>속성에서 확인 양호 - Administrators 그룹에 관리자 계정이 하나만 존재 할 경우 취약 - 두개이상 존재할 경우 불필요한 Administrators 그룹에 포함된 계정을 Administrators 그룹에 서 제거하고 다른 그룹에 넣어줌 Administrator 계정을 관리자 계정이 아닌 일반 계정으로 사용하거나, 또는 Administrator 가 아닌 다른 이름의 관리자 계정을 생성해 사용하 도록 해야 하며, Administrator 권한을 가지는 유저는 최소한의 숫자로 제한 되어야 함. 또한, Password는 최소 8자리 이상으로 숫자와 영어, - 93 - - 94 -
특수문자를 혼합하여 사용하도록 하여야 함. [Windows NT] 1. 시작>프로그램>관리도구>도메인사용자관리>Administrators그룹>등 록정보를 선택하여 불필요한 관리자 계정 삭제 또는 그룹 변경 [Windows 2000, 2003] 1. 시작>실행>LUSRMGR.MSC>그룹> Administrators>속성 2. Administrators 그룹에서 불필요한 계정 제거후 그룹 변경 점검분류 항목 계정 관리 위험도 상 분류번호 W-2 Windows NT, 2000, 세부점검 항목 GUEST 계정 상태 대상 2003 대부분의 시스템은 Guest 계정의 사용을 필요치 않으며 앞으로도 계속 Guest 계정의 사용을 제한해야 하며, 불특정 다수의 접근이 필요할 경우 Guest 가 아닌 일반 사용자 계정을 생성해 사용 하도록 해야 함. 임의의 명령어 실행, 임의의 파일 수정, 시스템 관리자 권한 획득. [Windows NT] 1. 시작>프로그램>관리도구>도메인사용자관리>Administrators그룹>등 록정보에서 확인 [Windows 2000, 2003] 1. 시작>실행>LUSRMGR.MSC>그룹> Administrators>속성에서 확인 양호 Guest 계정 비활성화 취약 Guest 계정 활성화 Administrators 권한이 필요 없을 경우 변경 시 영향 없음 Guest 계정 비활성화 [Windows NT] 1. 시작>프로그램>관리도구>도메인사용자관리>Guest 계정 선택>등록 정보에서 "계정사용안함 체크" [Windows 2000, 2003] 1. 시작>실행>LUSRMGR.MSC>사용자>Guest>속성 2. "계정 사용 안함" 에 체크 - 95 - - 96 -
점검분류 항목 계정 관리 위험도 상 분류번호 W-3 세부점검 항목 불필요한 계정 제거 대상 Windows NT, 2000, 2003 퇴직, 전직, 휴직 등의 이유로 더 이상 사용하지 않는 계정, 불필요한 계 정, 의심스러운 계정이 있는지 점검 함. 시스템에 대한 접속을 통해 파일의 삭제 및 유출과 관련된 피해. [Windows NT] 시작>프로그램>관리도구>도메인사용자관리>계정 선택>등록정보에서 확인 [Windows 2000, 2003] 1. 시작>실행>LUSRMGR.MSC>사용자>"불필요한 사용자 선택">속성에 서 확인. 양호 불필요한 계정이 존재하지 않을 경우 취약 불필요한 계정이 존재할 경우 현재 계정현황 확인후 불필요한 계정 삭제, 불필요한 계정 없으면 양호 [Windows NT] 시작>프로그램>관리도구>도메인사용자관리>계정 더 이상 사용되지 않는 계정을 제거함. 선택>등록정보에서 [Windows 2000, 2003] 1. 시작>실행>LUSRMGR.MSC>사용자>"불필요한 사용자 선택">속성 2. "계정 사용 안함" 에 체크하거나 계정 삭제 - 97 - - 98 -
점검분류 항목 계정 관리 위험도 상 분류번호 W-4 Windows NT, 2000, 세부점검 항목 계정 잠금 임계값 설정 대상 2003 암호 공격에서는 자동화된 방법을 통해 모든 사용자 계정에 대해 수천 또는 수백만 개의 암호 조합을 시도하기 때문에 가능한 로그온 실패 수 를 제한하여야 함. Brute force에 의한 지속적인 계정 공격의 위험. [WindowsNT] 시작>프로그램>관리도구>도메인사용자관리자>정책>계정에서 확인 [Windows 2000, 2003] 1. 시작>실행>SECPOL.MSC>계정 정책>계정 잠금 정책에서 확인 계정의 사용여부를 파악하여 사용하지 않는 계정일 경우 제거 양호 계정 잠금 임계값 5번 취약 계정 잠금 임계값 5번이 아닌 경우 계정 잠금 임계값 5번 설정 (계정 잠금 임계값: 계정이 잠기는 로그온 실패 횟수) [WindowsNT] 시작>프로그램>관리도구>도메인사용자관리자>정책>계정 - 99 - - 100 -
점검분류 항목 계정 관리 위험도 상 분류번호 W-5 세부점검 항목 해독 가능한 암호화를 사용하여 암호 저장 대상 Windows NT, 2000, 2003 이 정책을 사용하면 인증을 위해 사용자 암호를 알아야 하는 응용 프로 그램 프로토콜이 지원되지만 해독 가능한 방식으로 저장되는 암호는 해 독할 수 있기 때문에 이 암호화를 공격할 수 있는 공격자가 노출된 계 정을 사용하여 네트워크 리소스에 로그온 할 수 있음. 공격자가 암호를 쉽게 해독할 수 있음. [Windows 2000, 2003] 시작>실행>SECPOL.MSC>계정 정책>암호정책에서 확인 [Windows 2000, 2003] 1. 시작>실행>SECPOL.MSC>계정 정책>계정 잠금 정책 2. "계정 잠금 임계값"을 5번 설정 양호 "해독 가능한 암호화를 사용하여 암호 저장" 정책이 "사용안함" 으로 되어 있을 경우 취약 "해독 가능한 암호화를 사용하여 암호 저장" 정책이 "사용" 으 로 되어 있을 경우 2003 - 해독 가능한 암호화를 사용하여 암호 저장 -> 사용안함 2000 - 도메인내의 모든 사용자에 대해 해독 가능한 암호화를 사용하 여 암호 저장 -> 사용안함 [Windows 2000, 2003] 1. 시작>실행>SECPOL.MSC>계정 정책>암호정책 2. "해독 가능한 암호화를 사용하여 암호 저장" 을 "사용안함" 으로 설 정 Administrator 계정은 잠기지 않으며 일반 계정의 경우 5번 패스워드 입력 실패 시 잠김. - 101 - - 102 -
점검분류 항목 계정 관리 위험도 상 분류번호 W-6 Windows NT, 2000, 세부점검 항목 관리자 그룹에 최소한의 사용자 포함 대상 2003 일반적으로 관리자를 위한 계정과 일반 사용자들을 위한 계정을 분리 하여 사용하는 것이 바람직하며 만일 시스템 관리자라면 두 개의 계정 을 가지는 것이 좋음. 하나는 관리업무를 위한 것이고, 다른 하나는 일 반적인 일을 하기 위한 것임. 예를 들어 일반사용자 권한으로부터 활성 화된 바이러스에 비해 관리자 권한을 가진 계정으로부터 활성화된 바 이러스라면 시스템에 훨씬 많은 피해를 줄 수 있음. 임의의 명령어 실행, 임의의 파일 수정, 시스템 관리자 권한 획득. [Windows NT] 1. 시작>프로그램>관리도구>도메인사용자관리>Administrators그룹>등 록정보에서 확인 [Windows 2000, 2003] 1. 시작>실행>LUSRMGR.MSC>그룹> Administrators>속성에서 확인. 양호 - Administrators 그룹에 관리자 계정이 하나만 존재 할 경우 취약 - 두개이상 존재할 경우 불필요한 Administrators 그룹에 포함된 계정을 Administrators 그룹에 서 제거하고 다른 그룹에 넣어줌 Administrator 계정을 관리자 계정이 아닌 일반 계정으로 사용하거나, 또는 Administrator 가 아닌 다른 이름의 관리자 계정을 생성해 사용하 도록 해야 하며, Administrator 권한을 가지는 유저는 최소한의 숫자로 제한되어야 함. 또한, Password는 최소 8자리 이상으로 숫자와 영어, 특수문자를 혼합하여 사용하도록 하여야 함. [Windows NT] 1. 시작>프로그램>관리도구>도메인사용자관리>Administrators그룹>등 록정보를 선택하여 불필요한 관리자 계정 삭제 또는 그룹 변경 [Windows 2000, 2003] - 103 - - 104 -
1. 시작>실행>LUSRMGR.MSC>그룹> Administrators>속성 2. Administrators 그룹에서 불필요한 계정 제거후 그룹 변경 점검분류 항목 계정 관리 위험도 중 분류번호 W-7 세부점검 항목 Everyone 사용 권한을 익명 사용자에게 적용 대상 Windows NT, 2000, 2003 디폴트 공유인 C$, D$, Admin$, IPC$ 등을 제외한 공유폴더를 everyone 그룹으로 공유가 금지되었는지 여부를 점검함. Everyone이 공유계정에 포함 되어 있을 경우 익명 사용자의 접근이 가능하므로 접근을 확인하 여 제어 하게 되면 익명사용자에 의한 접근을 차단 할 수 있음. 악의적인 사용자에 의한 접근 제한 [Windows NT] 1.프로그램>관리도구>서버관리자>컴퓨터>공유디렉터리>등록정보>사용 권한에서 확인 [Windows 2000, 2003] 1. 시작>실행>FSMGMT.MSC>공유에서 확인 Administrators 권한이 필요없을 경우 변경시 영향 없음 양호 일반공유 디렉터리가 없거나 공유 디렉터리 접근 권한에 Everyone 없을 경우 취약 일반공유 디렉터리의 접근 권한에 Everyone이 있을 경우 공유 디렉터리 접근 권한에서 Everyone 권한 제거 후 필요한 계정 추 가 [Windows NT] 1. 프로그램>관리도구>서버관리자>컴퓨터>공유디렉터리>등록정보>사 용권한에서 Everyone 으로 된 공유를 제거하고 접근이 필요한 계정의 적절한 권한을 추가 - 105 - - 106 -
점검분류 항목 계정 관리 위험도 중 분류번호 W-8 [Windows 2000, 2003] 1. 시작>실행>FSMGMT.MSC>공유 2. 사용 권한 에서 Everyone 으로 된 공유를 제거하고 접근이 필요한 계정의 적절한 권한을 추가 Windows NT, 2000, 세부점검 항목 계정 잠금 기간 설정 대상 2003 계정 잠금 기간 설정이 0이 아닌 값으로 구성되면 이 기간 동안 기다린 후 로그인 시도를 할 수 있으며 이 설정을 사용하면 자동으로 암호를 추측하는 것이 어려워지거나 효과가 없어질 수 있음. Brute force에 의한 지속적인 계정 공격의 위험. [Windows NT] 시작>프로그램>관리도구>도메인사용자관리자>정책>계정에서 확인 [Windows 2000, 2003] 시작>실행>SECPOL.MSC>계정 정책>계정 잠금 정책에서 확인 양호 계정 잠금 기간 60분, 계정 잠금 기간 원래대로 설정 60분 취약 계정 잠금 기간 및 잠금 기간 원래대로 설정 기간이 60분이 아 닌 경우 계정 잠금 기간 및 잠금 기간 원래대로 60분 설정 (계정 잠금 기간 :잠금 해제되기 전에 잠금 상태를 유지하는 시간(분)) 다음 시간 후 계정 잠금 수를 원래대로 설정 : 실패한 로그온 시도 이 후 실패 횟수가 0으로 다시 설정되기 전까지 경과되어야 하는 시간(분) [Windows NT] 시작>프로그램>관리도구>도메인사용자관리자>정책>계정 어플리케이션이나 Backup 용도로 Everyone 공유를 사용하지 않는지 확인 필요 - 107 - - 108 -
점검분류 항목 계정 관리 위험도 중 분류번호 W-9 [Windows 2000, 2003] 1. 시작>실행>SECPOL.MSC>계정 정책>계정 잠금 정책 2. "계정 잠금 기간", "다음 시간 후 계정 잠금 수를 원래대로 설정" 에 대해 각각 60분 설정 Windows NT, 2000, 세부점검 항목 패스워드 복잡성 설정 대상 2003 영숫자만으로 이루어진 암호는 공개되어 있는 유틸리티를 사용하여 아 주 쉽게 공격할 수 있기 때문에 암호가 공격당하는 것을 방지하려면 암호에 광범위한 문자가 있어야 함. 최소 암호 길이를 8로 지정하여 이 정책 설정과 함께 사용하면 하나의 암호를 만들 수 있는 경우의 수가 매우 많아져 무작위 공격을 성공하는 것이 불가능한 것은 아니지만 어려워짐. 초당 백만 개의 암호를 충분히 테스트할 수 있는 처리 성능을 가진 공격자는 대략 7일 반나절 이내에 암호를 알아낼 수 있으며 최소 암호 길이 설정을 높이면 공격에 성공하 는 데 필요한 평균 시간도 함께 증가함. 공격자가 암호를 쉽게 해독할 수 있음.임의의 명령어 실행, 임의의 파일 수정, 시스템 관리자 권한 획득. [Windows 2000, 2003] 1. 시작>실행>SECPOL.MSC>계정 정책>암호정책에서 확인 양호 "암호는 복잡성을 만족해야 함" 정책이 "사용" 으로 되어 있을 경우 취약 "암호는 복잡성을 만족해야 함" 정책이 "사용안함" 으로 되어 있을 경우 암호는 복잡성을 만족해야 함 -> 사용. [Windows 2000, 2003] 1. 시작>실행>SECPOL.MSC>계정 정책>암호정책 2. "암호는 복잡성을 만족해야 함" 을 "사용" 으로 설정 - 109 - - 110 -
점검분류 항목 계정 관리 위험도 중 분류번호 W-10 Windows NT, 2000, 세부점검 항목 패스워드 최소 암호 길이 대상 2003 특정 사용자 계정의 암호를 알아내기 위해 수행할 수 있는 암호 공격 의 유형은 일반적인 단어와 구 사용을 시도하는 사전 공격과 가능한 모든 문자의 조합을 시도하는 무작위 공격이 있음. 대부분의 환경에서 8자리의 암호를 사용하면 적절한 보안이 제공될 뿐 만 아니라 사용자가 쉽게 기억할 수 있으며 무작위 공격을 적절히 방 어할 수 있음. 취약한 계정을 통해 계정 권한이 도용당할 수 있음. [WindowsNT ] 시작>프로그램>관리도구>도메인사용자관리자>정책>계정에서 확인 [Windows 2000, 2003] 1. 시작>실행>SECPOL.MSC>암호 정책에서 확인 이 정책 설정은 암호를 변경하거나 새 암호를 만드는 경우 암호가 강 력한 암호로 간주되는 데 필요한 일련의 규정을 만족시키는지를 결정 암호는 적어도 6자 이상이어야 함. 사용자 계정 이름이나 표시 이름의 문자를 3개 이상 연속하여 포함 하지 않아야 함. 암호에는 다음 네 가지 중 세 가지 범주의 문자가 포함되어야 함. - 대문자(A, B, C,...) - 소문자(a, b, c,...) - 숫자(0, 1, 2, 3, 4, 5, 6, 7, 8, 9) 양호 최소 암호 길이가 8 문자인 경우 취약 최소 암호 길이가 8 문자가 아닌 경우 - 영숫자이외의 문자와 유니코드 문자(( ) ` ~! @ # $ % ^ & * - + = \ { } [ ] : ; " ' < >,.? / Γ ' λ 및 공백) 다음번 패스워드 변경시 복잡성을 만족해야 변경가능함. 일반적으로 영 향 없음 최소 암호 길이 8자 설정 [WindowsNT ] 시작>프로그램>관리도구>도메인사용자관리자>정책>계정에서 설정 - 111 - - 112 -
점검분류 항목 계정 관리 위험도 중 분류번호 W-11 Windows NT, 2000, 세부점검 항목 패스워드 최대 사용 기간 대상 2003 시간과 컴퓨터 처리 능력이 충분한 공격자는 가장 복잡한 암호를 포함 하여 모든 암호를 추측하거나 "공격"할 수 있음. 사용자가 암호를 자주 바꾸도록 하면 유효한 암호가 공격당하는 위험을 줄일 뿐 아니라 누군 가가 불법으로 획득한 암호를 사용하여 무단 로그온하는 위험을 줄일 수 있음. 취약한 계정을 통해 계정 권한이 도용당할 수 있음. [WindowsNT] 시작>프로그램>관리도구>도메인사용자관리자>정책>계정에서 확인 [Windows 2000, 2003] 1. 시작>실행>SECPOL.MSC>암호 정책 2. "최소 암호 길이"을 8문자 설정 [Windows 2000, 2003] 1. 시작>실행>SECPOL.MSC>암호 정책에서 확인 양호 최대 암호 사용 기간 60일인 경우 취약 최대 암호 사용 기간 60일이 아닌 경우 최대 암호 사용 기간 60일 설정 [WindowsNT] 시작>프로그램>관리도구>도메인사용자관리자>정책>계정에서 설정 다음번 패스워드 변경시 8자 이상으로 설정을 해야함, 일반적으로 영향 없음. - 113 - - 114 -
점검분류 항목 계정 관리 위험도 중 분류번호 W-12 [Windows 2000, 2003] 1. 시작>실행>SECPOL.MSC>암호 정책 2. "최대 암호 사용 기간"을 60일로 설정 Windows NT, 2000, 세부점검 항목 패스워드 최소 사용 기간 대상 2003 사용자가 암호를 계속 바꿔서 이전에 즐겨 쓰던 암호를 다시 사용할 수 있다면 암호를 정기적으로 바꾸도록 요구하는 것은 효과가 없음. 정책 설정을 최근 암호 기억 설정과 함께 사용하면 이전 암호를 다시 사용하 는 것을 막을 수 있음. 최근 암호 기억 설정을 유효하게 하려면 최소 암 호 사용 기간 정책 설정을 0보다 큰 값으로 구성해야 함. 취약한 계정을 통해 계정 권한이 도용당할 수 있음. [WindowsNT] 시작>프로그램>관리도구>도메인사용자관리자>정책>계정에서 확인 [Windows 2000, 2003] 1. 시작>실행>SECPOL.MSC>암호 정책에서 확인 60일 후 패스워드가 만료되며 패스워드 변경을 위한 경고 메시지 팝업, 어플리케이션에서 사용하는 계정을 제외하고는 영향 없음. (예외적으로 관리도구>컴퓨터관리>로컬 사용자 및그룹>사용자계정에서 계정별 등 록정보 확인 후 "암호 사용기간 제한없음" 에 체크가 되어 있을 경우 최대사용기간 적용 안됨) 양호 최소 암호 사용 기간 1일인 경우 취약 최소 암호 사용 기간 1일이 아닌 경우 최소 암호 사용 기간 1일 설정 [WindowsNT] 시작>프로그램>관리도구>도메인사용자관리자>정책>계정에서 설정 [Windows 2000, 2003] 1. 시작>실행>SECPOL.MSC>암호 정책 2. "최소 암호 사용 기간"을 1일로 설정 - 115 - - 116 -
점검분류 항목 계정 관리 위험도 중 분류번호 W-13 Windows NT, 2000, 세부점검 항목 마지막 사용자 이름 표시 안함 대상 2003 컴퓨터에 마지막으로 로그온한 사용자의 이름을 Windows 로그온 대화 상자에 표시할지 여부를 결정함. 실제로 콘솔에 액세스할 수 있는 사용 자 또는 터미널 서비스를 통해 서버에 연결할 수 있는 사용자 등 콘솔 에 액세스할 수 있는 공격자는 서버에 마지막으로 로그온한 사용자의 이름을 볼 수 있으며 공격자는 암호를 추측하거나 무작위 공격을 통해 로그온을 시도 할 수 있음. Login ID를 공격자가 알 수 있으므로 공격 가능 [Windows NT] 시작>프로그램>관리도구>시스템정책편집기>파일>레지스트리열기>로 컬컴퓨터>편집>등록정보 >Windows NT 시스템>로그온에서 확인 [Windows 2000, 2003] 1. 시작>실행>SECPOL.MSC>로컬정책>보안옵션에서 확인 양호 "마지막 사용자 이름 표시 안 함"이 "사용"으로 설정되어 있을 경우 취약 "마지막 사용자 이름 표시 안 함"이 "사용안함"으로 설정되어 있을 경우 2003 - 대화형 로그온 : 마지막 사용자 이름 표시 안함 -> 사용 한번 패스워드를 변경 후 다시 변경을 위해서는 1일이 지나야 함, 일반 적으로 영향 없음 2000 - 로그온 스크린에 마지막 사용자 이름 표시 안함 -> 사용 [Windows NT] 시작>프로그램>관리도구>시스템정책편집기>파일>레지스트리열기>로 컬컴퓨터>편집>등록정보 >Windows NT 시스템>로그온>'마지막으로 로그온한 사용자 이름 표시 안함'을 설정 후 저장 [Windows 2000, 2003] 1. 시작>실행>SECPOL.MSC>로컬정책>보안옵션 2. "마지막 사용자 이름 표시 안 함" 을 사용으로 설정 - 117 - - 118 -
점검분류 항목 계정 관리 위험도 중 분류번호 W-14 세부점검 항목 로컬 로그온 허용 대상 Windows NT, 2000, 2003 로컬로 로그온 허용 사용자 권한이 있는 계정은 컴퓨터의 콘솔에서 로 그온할 수 있으며 컴퓨터 콘솔에 로그온해야 하는 적법한 사용자로 이 사용 권한을 제한하지 않으면 권한이 없는 사용자가 자신의 사용 권한 향상을 위해 악의적인 코드를 다운로드하여 실행할 수 있음. IIS 를 사용 할 경우 이 권한에 IUSR_<ComputerName> 계정을 할당해야 함. 임의의 사용자가 로컬로 로그온 할 수 있음. [Windows 2000, 2003] 1. 시작>실행>SECPOL.MSC>로컬 정책>사용자 권한 할당 2. "로컬 로그온 허용" 정책에서 확인 일반적인 경우 영향 없음 양호 "로컬 로그온 허용" 정책에 "Administrators", "IUSR_" 만 존재할 경우 취약 "로컬 로그온 허용" 정책에 "Administrators", "IUSR_" 외 다른 계정 및 그룹이 존재할 경우 로컬 로그온 허용 -> Administratrors, IUSR_ [Windows 2000, 2003] 1. 시작>실행>SECPOL.MSC>로컬 정책>사용자 권한 할당 2. "로컬 로그온 허용" 정책에 "Administrators", "IUSR_" 외 다른 계정 및 그룹 제거 - 119 - - 120 -
점검분류 항목 계정 관리 위험도 중 분류번호 W-15 Windows NT, 2000, 세부점검 항목 익명 SID/이름 변환 허용 대상 2003 이 정책 설정은 익명 사용자가 다른 사용자의 SID 특성을 요청할 수 있 는지 여부를 결정. 이 정책 설정을 사용하는 경우 로컬 액세스 권한이 있는 사용자는 잘 알려진 Administrator SID를 사용하여Administrator 계정의 실제 이름을 알아낼 수 있으며 암호 추측 공격을 실행할 수 있 음. 이 정책을 "사용안함" 으로 설정할 경우 Windows NT 도메인 환경 에서 통신이 안될 수 있음 암호 추측 공격이 쉬워짐. [Windows 2003] 시작>실행>SECPOL.MSC>로컬 정책>보안옵션에서 확인 Anonymous FTP 를 사용하지 않고 로컬 계정을 사용하여 윈도우 대화 형 로그인 형식의 FTP 를 사용할 경우 해당 계정을 넣어줘야 함.(예: Internet Explorer 을 이용하여 FTP를 사용할 경우) 양호 "익명SID/이름 변환 허용" 정책이 "사용안함" 으로 되어 있을 경우 취약 "익명SID/이름 변환 허용" 정책이 "사용" 으로 되어 있을 경우 네트워크 엑세스 : 익명 SID/이름 변환 허용 -> 사용안함 [Windows 2003] 1. 시작>실행>SECPOL.MSC>로컬 정책>보안옵션 2. "익명 SID/이름 변환 허용" 정책이 "사용안함" 으로 설정 - 121 - - 122 -
점검분류 항목 계정 관리 위험도 중 분류번호 W-16 Windows NT, 2000, 세부점검 항목 최근 암호 기억 대상 2003 특정 계정에 같은 암호를 오래 사용할수록 공격자가 무작위 공격을 통 해 암호를 확인할 수 있는 가능성이 커지며 손상된 계정은 암호를 바꾸 지 않는 한 계속 악용될 수 있음. 암호를 변경해야 할 경우 암호를 다시 사용하는 것을 금지하지 않거나 적은 수의 암호를 계속해서 다시 사용 할 수 있도록 허용하면 좋은 암호 정책의 효과가 크게 반감됨. 취약한 계정을 통해 계정 권한이 도용당할 수 있음. [WindowsNT] 시작>프로그램>관리도구>도메인사용자관리자>정책>계정에서 확인 [Windows 2000, 2003] 1. 시작>실행>SECPOL.MSC>암호 정책에서 확인 양호 최근 암호 기억이 12번 인 경우 취약 최근 암호 기억이 12번이 아닌 경우 최근 암호 기억 12일 설정 [WindowsNT] 시작>프로그램>관리도구>도메인사용자관리자>정책>계정에서 설정 - 123 - - 124 -
점검분류 항목 계정 관리 위험도 중 분류번호 W-17 [Windows 2000, 2003] 1. 시작>실행>SECPOL.MSC>암호 정책 2. "최근 암호 기억"을 12번으로 설정 12개의 암호를 기억됨으로 해놓으면 최근 사용자가 사용한 12개의 암 호는 재사용 할 수 없음. 세부점검 항목 콘솔 로그온 시 로컬 계정에서 빈 암호 사용 제한 대상 Windows NT, 2000, 2003 이 정책 설정은 빈 암호를 사용하는 로컬 계정에 터미널 서비스, Telnet 및 FTP와 같은 네트워크 서비스의 원격 대화형 로그온을 허용할지 여부 를 결정. 이 정책 설정은 콘솔에서 실제로 수행하는 대화형 로그온이나 도메인 계정을 사용하는 로그온에는 영향을 주지 않음. 서비스 거부 공격에 이용될 수 있음. [Windows 2003] 시작>실행>SECPOL.MSC>로컬 정책>보안옵션에서 확인 양호 "콘솔 로그온 시 로컬 계정에서 빈 암호 사용 제한" 정책이 "사 용" 으로 되어 있을 경우 취약 "콘솔 로그온 시 로컬 계정에서 빈 암호 사용 제한" 정책이 "사 용안함" 으로 되어 있을 경우 계정 : 콘솔 로그온 시 로컬 계정에서 빈 암호 사용 제한 -> 사용 [Windows 2003] 1. 시작>실행>SECPOL.MSC>로컬 정책>보안옵션 2. "콘솔 로그온 시 로컬 계정에서 빈 암호 사용 제한" 정책을 "사용" 으로 설정 - 125 - - 126 -
점검분류 항목 계정 관리 위험도 중 분류번호 W-18 세부점검 항목 원격터미널 접속 가능한 사용자 그룹 제한 대상 Windows NT, 2000, 2003 원격터미널의 그룹이나 계정을 제한하지 않는다면 임의의 사용자가 원 격으로 접속하여 해당 서버에 정보를 임의로 변경하거나 정보를 훔쳐 갈 가능성이 있으므로 사용자 그룹 과 계정을 설정 및 제한 해야함. 원격으로 서버에 접속하여, 데이터 변경, 손실, 해킹 할 가능성이 있음. [Windows 2000, 2003] 1.제어판>시스템>원격 탭 -> 원격 탭 메뉴에서 확인 양호 관리자 계정과 이외의 계정을 생성, 권한을 제한 설정시 취약 관리자 계정과 이외의 계정을 생성, 권한을 제한 미설정시 점검분류 항목 서비스 관리 위험도 상 분류번호 W-19 Windows NT, 2000, 세부점검 항목 공유 권한 및 사용자 그룹 설정 대상 2003 디폴트 공유인 C$, D$, Admin$, IPC$ 등을 제외한 공유폴더를 everyone 그룹으로 공유가 금지되었는지 여부를 점검함. Everyone이 공유계정에 포함 되어 있을 경우 익명 사용자의 접근이 가능하므로 접근을 확인하 여 제어 하게되면 익명사용자에 의한 접근을 차단 할 수 있음. 악의적인 사용자에 의한 접근 제한 [Windows NT] 1.프로그램>관리도구>서버관리자>컴퓨터>공유디렉터리>등록정보>사용 권한에서 확인 [Windows 2000, 2003] 1. 시작>실행>FSMGMT.MSC>공유에서 확인 [Windows 2000, 2003] 1. 제어판>사용자 계정 -> 관리자 계정 이외의 계정 생성 한 후 2. 제어판>시스템>원격 탭 -> 원격 탭 메뉴에서 (사용자가 이 컴퓨터 에 원격으로 연결할 수 있음)에 체크 후 확인 양호 일반공유 디렉터리가 없거나 공유 디렉터리 접근 권한에 Everyone없을 경우 취약 일반공유 디렉터리의 접근 권한에 Everyone이 있을 경우 공유 디렉터리 접근 권한에서 Everyone 권한 제거 후 필요한 계정 추 가 [Windows NT] 1. 프로그램>관리도구>서버관리자>컴퓨터>공유디렉터리>등록정보>사 용권한에서 Everyone 으로 된 공유를 제거하고 접근이 필요한 계정의 적절한 권한을 추가 - 127 - - 128 -
점검분류 항목 서비스 관리 위험도 상 분류번호 W-20 Windows NT, 2000, 세부점검 항목 하드디스크 기본 공유 제거 대상 2003 시스템의 기본공유 항목이 제거되지 않게 되면 모든 시스템 자원에 접 근할 수 있는 위험한 상황이 발생할 수 있음. 최근에 발생한 Nimda 바 이러스도 여러 가지 방법 중에서 이러한 공유기능을 침투의 한 경로로 이용한 것임. [Windows 2000, 2003] 1. 시작>실행>FSMGMT.MSC>공유 2. 사용 권한 에서 Everyone 으로 된 공유를 제거하고 접근이 필요한 계정의 적절한 권한을 추가 임의의 명령어 실행, 임의의 파일 수정, 시스템 관리자 권한 획득. [Windows NT] 1. 프로그램>관리도구>서버관리자>컴퓨터>공유디렉터리>공유에서 확 인 [Windows 2000, 2003] 1. 시작>실행>FSMGMT.MSC>공유>기본공유 선택>공유에서 확인 양호 AutoShareServer (WinNT : AutoShareWks)가 0 이며 기본 공유 가 존재하지 않을 경우 취약 AutoShareServer (WinNT : AutoShareWks)가 1 이거나 기본 공 유가 존재할 경우 기본 공유 중지 후 레지스트리 값 설정(IPC$, 일반공유 제외) 어플리케이션이나 Backup 용도로 Everyone 공유를 사용하지 않는지 확인 필요 [Windows NT] 1. 프로그램>관리도구>서버관리자>컴퓨터>공유디렉터리>공유 중지 - 129 - - 130 -
(Windows NT 일 경우 : AutoShareWks) [Windows 2000, 2003] 1. 시작>실행>FSMGMT.MSC>공유>기본공유 선택>공유 중지 또한, 방화벽과 라우터에서 135~139(TCP/UDP)포트를 차단하여 외부로 부터의 위험을 제거함으로써 보안성을 높일수 있음. Active Directory, Clustered system 에서는 적용시 영향 있음 "net share 공유이름 /delete" 로 공유한 폴더를 공유해제 2. 시작>실행>REGEDIT>아래 레지스트리 값을 0 으로 수정(키 값이 없 을 경우 새로 생성 DWORD) "HKLM\SYSTEM\CurrentControlSet\Services\lanmanserver\paramete rs\autoshareserver" - 131 - - 132 -
점검분류 항목 서비스 관리 위험도 상 분류번호 W-21 Windows NT, 2000, 세부점검 항목 불필요한 서비스 제거 대상 2003 일반적으로 시스템에는 필요하지 않은 취약한 서비스들이 디폴트로 설 치되어 실행되고 있으며 이러한 서비스 또는 응용 프로그램은 공격 지 점이 될 수 있으므로 사용자의 환경에서 필요하지 않은 서비스나 실행 파일을 사용하지 않거나 제거해야 함. 임의의 명령어 실행, 임의의 파일 수정, 시스템 관리자 권한 획득. [WindowsNT] 시작>설정>제어판>서비스에서 확인 [Windows 2000, 2003] 시작>실행>SERVICES.MSC>"해당 서비스 선택">속성에서 확인 중기 적용 양호 - 아래 서비스가 중지되어 있을 경우 취약 아래 서비스가 구동중일 경우 Alerter(서버에서 클라이언트로 경고메세지를 보냄) Clipbook(서버내 Clipbook 을 다른 클라이언트와 공유) Messenger(net send 명령어를 이용하여 클라이언트에 메시지 보냄) Simple TCP/IP Services(Echo, Discard, Character Generator, Daytime, Quote of the Day) 해당 서비스를 선택하고 오른쪽 메뉴에서 "시작 옵션"을 클릭하면 시스 템이 시작할 때에 해당 서비스의 시작 유형을 선택할 수 있음. 만약, 시스템 시작시 자동으로 시작되게 하려면 [자동], 수동으로 서비스를 시 작하려면 [수동], 서비스 자체를 사용하지 않으려면 [사용안함]을 선택 한 후 [확인]을 클릭함. 서비스 중지 후 사용안함 설정 [WindowsNT] 시작>설정>제어판>서비스를 선택하여 불필요한 서비스를 중지하고, "시작옵션"에서 "시작유형"을 "사용안함"으로 수정 [Windows 2000, 2003] 1. 시작>실행>SERVICES.MSC>"해당 서비스 선택">속성 2. 시작유형->사용안함, 시작 상태->중지 설정 - 133 - - 134 -
점검분류 항목 서비스 관리 위험도 상 분류번호 W-22 세부점검 항목 IIS 서비스 구동 점검 대상 Windows NT, 2000, 2003 Web, FTP 등의 서비스를 제공해주는 유용한 서비스 이나 프로파일링, 서비스 거부, 불법적인 접근, 임의의 코드실행, 정보 공개, 바이러스, 웜, 트로이목마등의 위협에 노출 될 수있다. 서비스 거부, 정보유출 [Windows NT, 2000, 2003] 1. 시작>실행>services.msc>IISdadmin>정지 중기 적용 양호 IIS 서비스가 필요하지 않아 이용하지 않는경우 취약 IIS 서비스를 필요로 하지 않지만 사용하는 경우 특별한 목적을 위해 사용하는 서비스가 아니라면 시스템의 업무에 부 합되는 서비스가 아닌 기타 디폴트 서비스를 사용하지 않는 것이 좋으 며 시스템 관리자는 대상 시스템의 용도를 정확히 파악해 불필요한 서 비스를 제거 해야 함. 사용하지 않을 경우 IIS 서비스 중지 서비스 시작 유형 자동 수동 사용안함 설치되어 있으나 실행되지 않음 설 명 다른 서비스나 응용 프로그램에서 해당 기능을 필요로 할 때만 시작됨 부팅 시에 해당 장치 드라이버가 로드된 후에 운영 체제에 의해 시작됨 각 서비스 마다 옵션을 설정할 수 있으며 해당 서비스를 선택하고 더블 클릭하게 되면 시작 유형을 선택할 수 있으며 시작시 로그온 계정을 별 도로 설정할 수 있음. 만약, 시스템 시작시 자동으로 시작되게 하려면 [자동], 수동으로 서비스를 시작하려면 [수동], 서비스 자체를 사용하지 않으려면 [사용안함]을 선택한 후 [확인]을 클릭. [Windows NT, 2000, 2003] 1. 시작>실행services.msc>IISADMIN>속성>정지>사용안함 2. "디렉터리 검색" 체크 해제 - 135 - - 136 -
점검분류 항목 서비스 관리 위험도 상 분류번호 W-23 세부점검 항목 IIS 디렉토리 리스팅 제거 대상 Windows NT, 2000, 2003 디렉터리 검색은 디렉터리에 대한 요청시 그 디렉터리에 기본 문서가 존재하지 않을 경우 디렉터리 내에 존재하는 모든 파일들의 목록을 보 여주는 것임. 디렉터리 검색이 허용되면 외부에서 디렉터리 내의 모든 파일들에 대한 접근이 가능하여 백업 파일이나 소스 파일 등 공개되어서는 안되는 중 요한 파일들이 노출될 수 있음. 정보유출 [Windows NT, 2000, 2003] 시작>실행>INETMGR>웹 사이트>속성>홈 디렉터리에서 확인 점검분류 항목 서비스 관리 위험도 상 분류번호 W-24 세부점검 항목 IIS CGI 실행 제한 대상 Windows NT, 2000, 2003 CGI 스크립트는 정해진 디렉터리에서만 실행 되도록 해야 함. 게시판이 나 자료실과 같이 업로드 되는 파일이 저장되는 디렉터리에 CGI 스크립 트가 실행 가능하다면 악의적인 파일을 업로드하고 이를 실행하여 시스 템의 중요 정보가 노출 될수 있으며 침해사고의 통로로 이용 될수 있음. 악의적인 파일의 실행 가능 [Windows NT, 2000, 2003] 1. 탐색기>해당 디렉터리>속성>보안에서 확인 중기 적용 양호 "디렉터리 검색" 이 체크되어 있지 않은 경우 취약 "디렉터리 검색" 이 체크되어 있는 경우 조치시 마스터 속성과 모든 사이트에 적용을 해야함 양호 해당 디렉터리의 Everyone 의 모든권한, 수정권한, 쓰기 권한이 부여되어 있지 않은 경우 취약 해당 디렉터리의 Everyone 의 모든권한, 수정권한, 쓰기 권한이 부여되어 있을 경우 사용하지 않을 경우 IIS 서비스 중지, 사용할 경우 디렉터리 검색 체크 해제 [Windows NT, 2000, 2003] 1. 시작>실행>INETMGR>웹 사이트>속성>홈 디렉터리 2. "디렉터리 검색" 체크 해제 사용하지 않을 경우 IIS 서비스 중지, 사용할 경우 Everyone 의 모든권 한, 수정권한 쓰기 권한 제거 후 Administrators, System 그룹 추가(모 든권한) [ 서비스영향 ] 일반적으로 기본 CGI 디렉터리(C:\inetpub\scripts)를 사용하지 않음, 해당 디렉터리 확인 후 추가적인 파일이 없다면 영향 없음. [Windows NT, 2000, 2003] 1. 탐색기>해당 디렉터리>속성>보안 2. Everyone 의 모든권한, 수정권한 쓰기 권한 제거<기본 CGI 디렉터 리 C:\inetpub\scripts> 3. Administrators, System 그룹 모든 권한 추가 - 137 - - 138 -
점검분류 항목 서비스 관리 위험도 상 분류번호 W-25 세부점검 항목 IIS 상위 디렉토리 접근 금지 대상 Windows NT, 2000, 2003 상위패스로 이동하는 것이 가능할 때 하위경로에 접속하여 상위로 이 동함으로써 해킹을 당할 위험이 있으며, Unicode 버그 및 서비스 거부 공격에 이용당하기 쉬우므로 되도록이면 ".." 와 같은 상위 경로를 사용 하지 못하도록 설정하는 것이 바람직함. ".." 는 unicode 버그, 서비스 거부와 같은 공격에 쉽게 이용되므로 허용 하지 않는 것을 권장함. 임의의 명령어 실행, 임의의 파일 수정, 시스템 관리자 권한 획득. [Windows NT, 2000, 2003] 1. 시작>실행>INETMGR>웹 사이트>속성>홈 디렉터리>구성>옵션에서 확인 중기 적용 일반적으로 기본 CGI 디렉터리(C:\inetpub\scripts)를 사용하지 않음, 해당 디렉터리 확인 후 추가적인 파일이 없다면 영향 없음. 양호 "상위 경로 사용" 옵션이 체크되어 있지 않을 경우 취약 "상위 경로 사용" 옵션이 체크되어 있을 경우 조치시 마스터 속성과 모든 사이트에 적용을 해야함 사용하지 않을 경우 IIS 서비스 중지, 사용할 경우 "상위경로 사용" 체 크 해제 [Windows NT, 2000, 2003] 1. 시작>실행>INETMGR>웹 사이트>속성>홈 디렉터리>구성>옵션 삭 제 2. "부모 경로 사용" 또는 "상위 경로 사용" 체크 해제 - 139 - - 140 -
점검분류 항목 서비스 관리 위험도 상 분류번호 W-26 Windows NT, 2000, 세부점검 항목 IIS 불필요한 파일 제거 대상 2003 샘플 어플리케이션은 IIS 서비스 설치시 디폴트로 설치되는 예제 스크 립트로 제거하는 것이 안전함. IIS를 설치하면 기본적으로 예제와 설명서 등이 같이 설치됨. 이 폴더들 은 해킹에 이용되거나 백도어가 심어질 위험이 있으므로 제거해 주어 야 함. 예 제 가상 디렉토리 IIS 예제 IIS 설명서 IISSamples IISHelp 어플리케이션에서 "../" 와 같이 상대경로를 사용하도록 Coding 되어 있을 경우 영향 있음 임의의 명령어 실행, 임의의 파일 수정, 시스템 관리자 권한 획득 [Windows NT, 2000, 2003] 시작>실행>INETMGR>웹 사이트>IISSamples에서 확인 중기 적용 양호 해당 웹사이트에 IISSamples, IISHelp 가상디렉터리가 존재하지 않을 경우 취약 해당 웹사이트에 IISSamples, IISHelp 가상디렉터리가 존재할 경 우 조치시 마스터 속성과 모든 사이트에 적용을 해야함 사용하지 않을 경우 IIS 서비스 중지, 사용할 경우 가상디렉터리 삭제 [ 서비스영향 ] [Windows NT, 2000, 2003] 1. 시작>실행>INETMGR>웹 사이트>IISSamples, IISHelp 선택> 삭제 - 141 - - 142 -
점검분류 항목 서비스 관리 위험도 상 분류번호 W-27 Windows NT, 2000, 세부점검 항목 IIS 웹 프로세스 권한 제한 대상 2003 웹 프로세스에서 권한을 제한하지 않는다면, 웹 사이트 방문자가 웹 서 비스의 취약점을 이용하여 시스템에 권한을 획득 할 수 있음. 웹의 취 약점을 통해 접속 권한을 획득한 경우에는 관리자 권한을 획득하게 되 어, 서버에 접속하여 해당 정보를 해킹 하거나 변경 손실 할 우려가 있 음. 웹 프로세서의 관리자 권한을 획득하여 임의의 명령어와 파일 수정. 시작>제어판>관리도구>로컬보안정책에서 nobody 계정이 추가 되어 있는지 확인. 중기 적용 양호 웹 프로세스가 웹 서비스 운영에 필요한 최소한 권한 설정, 서 버 관리시 일반적으로 nobody 권한으로 웹 프로세스 동작. 취약 웹 프로세스 권한 미설정. 서버관리 nobody 권한 미설정시. [Windows NT, 2000, 2003] 1. 시작>제어판>관리도구>컴퓨터관리 사용자 Name에 nobody를 추가. (nobody 등록정보를 보면 소속그 룹 탭에서 소속그룹이 정해진 User가 있으면 제거해준다.) 2. 시작>제어판>관리도구>서비스 IIS 서비스 속성에서 로그온 탭으로 간 후에 계정 지정에 nobody와 비밀번호를 입력. 3. 시작>제어판>관리도구>로컬보안정책 서비스로 로그온 에 nobody를 추가한다. 4. 시작>프로그램>윈도우 탐색기 IIS 가 설치된 폴더 속성 보안 탭에 들어간후 nobody를 추가하고 모든 권한 에 체크 (보안탭이 없을시 윈도우 메뉴>도구>폴더옵션에서 모든 사용자 동일한 폴더 공유 권한 지정 체크를 해제함) - 143 - - 144 -
점검분류 항목 서비스 관리 위험도 상 분류번호 W-28 세부점검 항목 IIS 링크 사용금지 대상 Windows NT, 2000, 2003 공개적인 웹 컨텐츠 디렉토리 안에서 서버의 다른 디렉토리나 파일들 에 접근할 수 있는 심볼릭 링크, aliases, 바로가기 등을 사용하지 않도 록 해야 한다. 해당 링크 사용시 디렉토리 파일에 접근하여 웹 서버에 침입. 해당 디렉토리에서 바로가기 파일 있는지 확인 양호 심볼릭 링크, aliases, 바로가기 등의 링크를 사용 금지. 취약 심볼릭 링크, aliases, 바로가기 등의 링크를 허용. 점검분류 항목 서비스 관리 위험도 상 분류번호 W-29 Windows NT, 2000, 세부점검 항목 IIS 파일 업로드 및 다운로드 제한 대상 2003, 2003IIS 불필요한 파일 업로드, 다운로드 시에, 대량의 업로드, 다운로드로 인한 서비스 불능상태가 발생 함. 불필요한 업로드 와 다운로드는 허용하지 않으며, 웹서버에 의해 처리되지 못하게 해야 하며, 자동이나 수동으로 파일의 보안성 검토를 하도록 해야 한다. 대량의 업로드와 다운로드 시 서비스 불능상태 발생. Admin 서비스를 다시 시작하여 AspMaxRequestEntityAllowed값과 AspBufferIng Limit 값이 주어진 값이 맞는지 확인. [Windows NT, 2000, 2003] 1. 시작>관리도구>인터넷 정보 서비스(IIS) 관리>웹 사이트>기본 웹사 이트 마우스 오른쪽 클릭 한 후 속성에서 홈 디렉토리 확인 양호 웹서비스의 서버 자원관리를 위해 업로드, 다운로드 용량을 제 한. 취약 웹서비스의 서버 의 업로드 다운로드 용량을 미 제한. [Windows 2003 IIS] 1. 내 컴퓨터 우측 클릭>관리>서비스에서 ISS Admin을 정지 시킨다. 2. c:windows\system32\inetsrv\metabase.xml를 찾아서 편집기로 open 함 3. uploade 용량 제한시키기 위해 AspMaxRequestEntityAllowed 값을 찾아 제한할 용량을 변경. 4. down 용량 제한을 하기 위해 AspBufferingLimit 값을 찾아 제한할 용량을 변경. 5. IIS Admin 서비스를 시작. 2. 홈 디렉토리로 이동하여 바로가기 파일 삭제 - 145 - - 146 -
점검분류 항목 서비스 관리 위험도 상 분류번호 W-30 Windows NT, 2000, 세부점검 항목 IIS DB 연결 취약점 점검 대상 2003 Global.asa 파일에는 데이터베이스 관련 정보(IP주소,DB명,패스워드), 내 부 IP주소, 웹어플리케이션 환경설정 정보 및 기타 정보 등 보안상 민감 한 내용들이 포함되어 있기 때문에 해당 파일이 악의적인 사용자에게 노출될 경우 침해사고로 이어질 수 있음. 임의의 명령어 실행, 임의의 파일 수정, 시스템 관리자 권한 획득 [Windows NT, 2000, 2003] 시작>실행>INETMGR>웹 사이트>속성>홈 디렉터리>구성>매핑에서 확 인 중기 적용 양호.asa 매핑이 존재할경우 취약.asa 매핑이 존재하지 않을 경우 조치시 마스터 속성과 모든 사이트에 적용을 해야함 사용하지 않을 경우 IIS 서비스 중지, 사용할 경우.asa 매핑을 아래 그 림과 같이 추가 [Windows NT, 2000, 2003] 1. 시작>실행>INETMGR>웹 사이트>속성>홈 디렉터리>구성>매핑 2..asa 매핑을 확인 후 없으면 아래와 같이 추가 일반적인 경우 영향 없음 - 147 - - 148 -
점검분류 항목 서비스 관리 위험도 상 분류번호 W-31 Windows NT, 2000, 세부점검 항목 IIS 가상 디렉토리 삭제 대상 2003 IIS 4.0, 5.0 설치 시 기본적으로 /issadmpwd라는 가상 디렉토리를 생 성하는데, 이 디렉토리에는 웹 서버를 통하여 패스워드를 변경시켜주는 기능 등을 하는.HTR 파일이 존재함. 이러한 기능들이 필요하지 않을 경우 /issadmpwd를 제거함. 이 외 존재하는 취약점을 줄이기 위해서 IISADMIN에 관계되는 모든 파일 및 디렉토리를 삭제. 예 제 가상 디렉토리 IIS Admin IIS Admin 예제 IIS Adminpwd 점검분류 항목 서비스 관리 위험도 상 분류번호 W-32 Windows NT, 2000, 세부점검 항목 IIS 데이터 파일 ACL 적용 대상 2003 웹 데이터 파일에 ACL 을 부여함으로써 권한없는 사용자로부터의 실행 및 읽기 제한을 설정 할 수 있음. 향후 필요에 의하여 IIS 를 설치하여 운용한다면 웹 데이터 파일에 대 한 ACL 을 부여하는 것이 바람직하며 ACL 을 설정할 때에는 다음과 같은 사항을 참고하여 설정해야 함. - 가능한 파일의 종류끼리 분류하여 폴더에 저장하는 것이 좋음. - 홈 디렉터리(기본:c:\inetpub\wwwroot)내에 적절한 ACL 권한을 부여 함. 부적절한 파일 접근, 열람 및 삭제 가능. 정보유출 [Windows NT, 2000, 2003] 1. 시작>실행>INETMGR>웹 사이트>IIS Admin에서 확인 중기 적용 [Windows NT, 2000, 2003] 1. 시작>실행>INETMGR>웹 사이트>해당 웹사이트>속성>홈 디렉터리 2. 탐색기를 이용하여 홈 디렉터리 등록정보>보안에서 확인 중기 적용 양호 IIS Admin, IIS Adminpwd가상디렉터리가 존재하지 않을 경우 취약 IIS Admin, IIS Adminpwd 가상디렉터리가 존재할 경우 조치시 마스터 속성과 모든 사이트에 적용을 해야함 사용하지 않을 경우 IIS 서비스 중지, 사용할 경우 IISAdmin, 양호 C:\Inetpub\wwwroot 하위 파일들에 대해Everyone 권한이 존 재하지 않을 경우(정적컨텐트 파일은 Read 권한만) 취약 C:\Inetpub\wwwroot 하위 파일들에 대해 Everyone 권한이 존 재할 경우(정적컨텐트 파일은 Read 권한 제외) IISAdminpwd 삭제 [Windows NT, 2000, 2003] 1. 시작>실행>INETMGR>웹 사이트>IIS Admin, IIS Adminpwd 선택> 삭제 사용하지 않을 경우 IIS 서비스 중지, 사용할 경우 C:\Inetpub\wwwroot 디렉터리에 Administratrors, System 추가(모든권 한), Everyone Read 만 설정 후 하위 디렉터리에 존재하는 CGI, 스크립 트 파일, 포함파일에 Everyone 권한 모두 제거 [Windows NT, 2000, 2003] 1. 시작>실행>INETMGR>웹 사이트>해당 웹사이트>속성>홈 디렉터리 2. 탐색기를 이용하여 홈 디렉터리 등록정보>보안 확인 3. 아래와 같은 파일들에 대한 불필요한 Everyone 권한 제어 파일 형식 엑세스 제어 목록 CGI (.exe,.dll,.cmd,.pl) 모든 사람(X), 관리자/시스템(전체 제어) 일반적으로 IIS 관리용 페이지를 사용하지 않기 때문에 영향 없음 스크립트 파일(.asp) 모든 사람(X), 관리자/시스템(전체 제어) - 149 - - 150 -
포함 파일(.inc,.shtm,.shtml) 정적 컨텐트(.txt,.gif,.jpg,.html) 모든 사람(X), 관리자/시스템(전체 제어) 모든 사람(R), 관리자/시스템(전체 제어) 점검분류 항목 서비스 관리 위험도 상 분류번호 W-33 Windows NT, 2000, 세부점검 항목 IIS 미사용 스크립트 매핑 제거 대상 2003 사용하지 않는 스크립트 매핑은 보안에 위협이 될 수 있으므로 개발자 와 협의하여 불필요한 매핑인지 확인한 후에 제거..asp나.shtm 과 같은 확장자들은 특정 DLL 파일과 매핑되어 있어, 이 러한 파일들에 대한 요청이 들어오면 해당 DLL에 의해 처리되어진다. 이러한 매핑가운데는 사용되지 않는 것들이 있어서 이를 제거해주는 것이 보안에 도움이 됨..ida,.idc,.idq,.printer,.htr,.htw 확장자는 Buffer overflow 공격 위험이 존재 하므로 삭제를 권고. 시스템 권한 획득 [Windows NT, 2000, 2003] 1. 시작>실행>INETMGR>웹 사이트>속성>홈 디렉터리>구성>매핑에서 확인 중기 적용 IIS 에서 C:\Inetpub\wwwroot 디렉터리를 홈디렉터리로 사용할 경우 사용하고 있는 데이터 파일에 대한 조치에 따른 검증이 필요, C:\Inetpub\wwwroot 디렉터리를 사용하지 않는다면 영향 없음 양호 취약한 매핑이 존재하지 않을 경우 취약 취약한 매핑이 존재할 경우 조치시 마스터 속성과 모든 사이트에 적용을 해야함 사용하지 않을 경우 IIS 서비스 중지, 사용할 경우 취약한 매핑 제거 (아래 표의 제거할 매핑 만) [Windows NT, 2000, 2003] 1. 시작>실행>INETMGR>웹 사이트>속성>홈 디렉터리>구성>매핑 2. 아래의 매핑들을 개발자와 상의하여 제거할 것을 권고. IIS가 사용하지 않는 것 제거할 매핑 웹 기반 암호 재설정 인터넷 데이터베이스 커넥터 Server-side Includes 인터넷 인쇄 인덱스 서버.htr.idc.stm,.shtm,.shtml.printer.htw,.ida,.idq - 151 - - 152 -
점검분류 항목 서비스 관리 위험도 상 분류번호 W-34 Windows NT, 2000, 세부점검 항목 IIS Exec 명령어 쉘 호출 진단 대상 2003 명령어가 Web 서버에서 임의의 명령을 호출하도록 사용될 수 있음. 임 의의 명령을 호출하도록 설정되어 있다면 아래의 조치방법에 따라서 설 정을 변경하여 주는 것이 안전함. 임의의 명령어 실행, 임의의 파일 수정, 시스템 관리자 권한 획득. [Windows NT, 2000, 2003] 1. 시작>실행>REGEDIT> HKLM\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters 검색 2. DWORD > SSIEnableCmdDirective 라는 값 확인 일반적인 경우 영향 없음 양호 해당 레지스트리 값이 0 인 경우, IIS 5.0 버전에서 해당 레지스 트리 값이 존재하지 않을 경우, IIS 6.0 이상 양호 취약 해당 레지스트리 값이 1인 경우 레지스트리 값 설정(IIS 5.0 해당 값이 없으면 양호, IIS 6.0 이상 양호) [Windows NT, 2000, 2003] 1. 시작>실행>REGEDIT> HKLM\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters 검색 2. DWORD > SSIEnableCmdDirective 라는 값을 찾아 오른쪽 버튼을 눌러 값을 0 으로 입력 - 153 - - 154 -
점검분류 항목 서비스 관리 위험도 상 분류번호 W-35 세부점검 항목 IIS WebDAV 비활성화 대상 Windows NT, 2000, 2003 WebDAV(Web Distributed Authoring and Versioning) 는 웹상의 공동 개발을 지원하기 위한 IETF 표준안(RFC 2518)으로서, 원격지 사용자들 간에 인터넷 상에서 파일을 공동 편집하고 관리할 수 있도록 해줌. 요청이 특별한 방식으로 교묘하게 조작되었을 경우, 매개 변수를 정확하 게 점검하지 않는 WebDAV에 의해 호출된 구성 요소 중 하나에 결함이 존재하며, 이로 인해 버퍼 오버런이 일어날 수 있음. 권한 획득 및 특정 명령 실행 가능 [Windows 2000] < IIS 를 사용하지 않을 경우 > 시작>실행>SERVICES.MSC> World Wide Web Publishing Service >속 성에서 확인 일반적인 경우 영향 없음 < IIS 사용하지만 WebDAV를 사용하지 않을 경우 > 1. 시작>실행>REGEDIT 를 실행 2. HKLM\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters에 서 확인 < IIS 를 사용하고, WebDAV도 필요한 경우 > 별도 점검 중기 적용 양호 다음중 한가지라도 해당되는 경우 1. IIS 를 사용하지 않을 경우 2. DisableWebDAV 값이 1로 설정되어 있을경우 3. Windows 2000 시스템에 서비스팩 4가 설치되어 있을 경우 취약 양호기준에 한가지라도 해당되지 않을 경우 사용하지 않을 경우 IIS 서비스 중지, 사용할 경우 해당 레지스트리 값 을 1 로 설정 (Windows 2000 서비스팩 4 양호, Windows 2003 양호) [Windows 2000] < IIS 를 사용하지 않을 경우 > - 155 - - 156 -
1. 시작>실행>SERVICES.MSC> World Wide Web Publishing Service > 속성 2. "시작유형"->사용안함, 서비스 상태->중지 < IIS 사용하지만 WebDAV를 사용하지 않을 경우 > 1. 시작>실행>REGEDIT 를 실행 2. HKLM\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters 3. 오른쪽 버튼을 눌러 새로만들기 DWORD값을 선택 4. DisableWebDAV 를 입력. 이때 값은 Default 값인 0을 1로 변경. < IIS 를 사용하고, WebDAV도 필요한 경우 > -Windows NT 인 경우 - 아래 사이트에서 패치를 받아 설치함 http://211.234.93.190/korea/technet/security/bulletin/ms03-007.asp #top - Windows 2000 Service Pack 버전이 2 인 경우 - 아래 사이트에서 패치를 받아 설치함. http://211.234.93.190/korea/technet/security/bulletin/ms03-013.asp - Windows 2000 Service Pack 버전이 3 인 경우 - 아래 사이트에서 패치를 받아 설치 함.http://211.234.93.190/korea/technet/security/bulletin/MS03-007.as p#top - Windows 2000 Service Pack 버전이 4 인 경우 취약점 없음. * 리부팅후 적용됨 일반적으로 사용하지 않는 기능임 점검분류 항목 서비스 관리 위험도 상 분류번호 W-36 Windows NT, 2000, 세부점검 항목 NetBIOS 바인딩 서비스 구동 점검 대상 2003 NetBIOS(Network Basic Input/Output System)은 IBMpc를 위한 네트워크 인터페이스 체계로 네임, 세션 데이터그램의 세가지 서비스를 제공하고 있다. 윈도우 NT 시스템이 인터넷에 직접연결되어 있을 경우 공격자가 쉽게 파일시스템을 사용할 수 있으므로 NetBIOS 에 대한 접근 통제가 필요하다. 시스템의 주요 정보 유출. [Windows NT, 2000, 2003] 시작>실행>ncpa.cpl>로컬 영역 연결>속성> TCP/IP>속성>[일반]탭>[고급]>[WINS]탭>NetBIOS 설정에서 확인 중기 적용 양호 TCP/IP와 NetBIOS 간의 바인딩이 제거 되어있다. 취약 TCP/IP와 NetBIOS 간의 바인딩이 제거 되어있지 않다. 네트워크 제어판을 이용하여 TCP/IP와 NetBIOS 간의 바인딩(binding) 제거한다. [Windows NT, 2000, 2003] 시작>실행>ncpa.cpl>로컬 영역 연결>속성> TCP/IP>속성>[일반]탭>[고급]>[WINS]탭>NetBIOS 설정> TCP/IP에서 NetBIOS 사용 안 함 선택 - 157 - - 158 -
점검분류 항목 서비스 관리 위험도 상 분류번호 W-37 세부점검 항목 FTP 서비스 구동 점검 대상 Windows NT, 2000, 2003 기본적인 FTP 서비스는 계정과 패스워드가 암호화 되지 않은 채로 전 송 되므로 간단한 Sniffer 에 의해서도 스니핑이 가능하므로 FTP 사용 하지 않을 것을 권고. 정보유출 [Windows NT, 2000, 2003] 1. 시작>실행>services.msc>FTP Publishing Service 확인 양호 FTP를 사용하지 않음 취약 FTP를 사용 TCP/IP를 거치게 되는 파일 공유 서비스 제공되지 않음, 인터넷에서의 공유자원에대한 접근시도 불가능. 라우터를 거치지 않은 내부 네트워크 에서는 가능하다. 불필요시 서비스 중지/사용안함 설정 [Windows NT, 2000, 2003] 1. 시작>실행>services.msc>FTP Publishing Service>속성>정지/사용안 함 - 159 - - 160 -
점검분류 항목 서비스 관리 위험도 상 분류번호 W-38 세부점검 항목 FTP 디렉토리 접근권한 설정 대상 Windows NT, 2000, 2003 홈 디렉토리에 쓰기권한이 주어진 경우 임의의 사용자가 쓰기, 수정이 가능해짐 정보유출, 파일 위변조 [Windows NT, 2000, 2003] 1. 홈디렉토리>속성>[보안]탭>그룹 또는 사용자 이름>사용권한 확인 양호 Everyone 사용자 삭제, 사용자의 권한에 쓰기권한 거부 취약 Everyone 사용자 존재, 사용자의 권한에 쓰기권한 허용 Everyone 사용자 삭제, 각 사용자에 맞는 권한 부여 [Windows NT, 2000, 2003] 1. 홈디렉토리>속성>[보안]탭>그룹 또는 사용자 이름>Everyone 사용자 제거.엑세스 가능 사용자만 추가>권한부여 점검분류 항목 서비스 관리 위험도 상 분류번호 W-39 세부점검 항목 Anonymous FTP 금지 대상 Windows NT, 2000, 2003 기본적인 FTP 서비스는 계정과 패스워드가 암호화 되지 않은 채로 전 송 되므로 간단한 Sniffer 에 의해서도 스니핑이 가능하므로 FTP 사용 하지 않을 것을 권고. 불가피 하게 FTP 서비스를 이용해야 할 경우 Default 설정으로 되어 있는 익명연결 허용을 금지 FTP 를 위한 계정을 따로 만들어서 사용. Password는 복잡도를 높이고 또한 권한은 해당 디렉터리에 대한 Read 권한만을 부여. Home Directory는 Default로 설정하지 말고, 임의의 폴더를 생성하여 설정하는 것이 바람직함. 정보유출 [Windows NT, 2000, 2003] 1. 시작>실행>INETMGR>FTP 사이트>속성>보안 계정에서 확인 양호 FTP를 사용하지 않거나 "익명 연결 허용" 이 체크되어 있지 않 은 경우 취약 FTP를 사용하거나 "익명 연결 허용" 이 체크되어 있는 경우 조치시 마스터 속성과 모든 사이트에 적용을 해야함 불필요시 서비스 중지/사용안함 설정, 사용할 경우 "익명 연결 허용" 체크 해제 [Windows NT, 2000, 2003] 1. 시작>실행>INETMGR>FTP 사이트>속성>보안 계정>익명 연결 허용 체크 해제 일반적으로 영향없음 - 161 - - 162 -
점검분류 항목 서비스 관리 위험도 상 분류번호 W-40 세부점검 항목 FTP 접근 제어 설정 대상 허가되지 않은 네트워크에서의 FTP 접속을 차단 Windows NT, 2000, 2003 정보유출, 파일 위변조 [Windows NT, 2000, 2003] 1. 시작>실행>INETMGR>디렉터리보안에서 확인 FTP에 접속 가능/불가능한 IP 추가 익명으로 FTP 를 사용할 경우 FTP 를 위한 일반 계정 생성후 사용해야 함, 어플리케이션에서 익명연결을 사용할 경우를 제외하고 일반적으로 영향 없음 [Windows NT, 2000, 2003] 1. 시작>실행>INETMGR>디렉터리보안>IP추가 일반적으로 영향없음 - 163 - - 164 -
점검분류 항목 서비스 관리 위험도 상 분류번호 W-41 Windows NT, 2000, 세부점검 항목 DNS Zone Transfer 설정 대상 2003 DNS 서버에 저장되어 있는 도메인 정보를 승인된 DNS서버가 아닌 다 른 외부로 유출하는 것은 보안상 바람직하지 않으며 적절한 설정을 통 하여 이러한 정보의 전송을 제한할 수 있음. DNS 서버를 사용하지 않을 경우 중지 시킴 서비스 거부 공격 [Windows NT] 시작>프로그램>관리도구>DNS관리자>각 조회영역>해당 영역>등록정 보>알림에서 확인 [Windows 2000, 2003] 시작>실행>DNSMGMT.MSC>각 조회영역>해당 영역>속성>영역전송에 서 확인 중기 적용 [Windows 2000, 2003] 1. 시작>실행>DNSMGMT.MSC>각 조회영역>해당 영역>속성>영역전 송 2. "다음 서버로만" 선택후 전송할 서버 IP 추가 양호 DNS서비스를 사용 않하거나 영역 전송이 "특정 서버로만" 설정 되어 있을 경우 취약 DNS서비스를 사용하며 영역 전송이 "아무 서버로" 설정되어 있 을 경우 불필요시 서비스 중지/사용안함, 사용할 경우 영역 전송을 특정 서버로 제한 [Windows NT] 1. 시작>프로그램>관리도구>DNS관리자>각 조회영역>해당 영역>등록 정보>알림 2. "알림 목록에 있는 보조 영역에서만 액세스 허용" 선택후 서버 IP 추가 -불필요시 해당 서비스 제거 시작>실행>SERVICES.MSC>DNS Server>속성에서 [시작 유형]을 [사용 안함]으로 만든 후, DNS 서비스를 중지. 영역 전송할 경우 서버를 지정해 주면 영향 없음 - 165 - - 166 -
점검분류 항목 서비스 관리 위험도 상 분류번호 W-42 Windows NT, 2000, 세부점검 항목 RDS(RemoteDataServices)제거 대상 2003 RDS는 MDAC(Microsoft Data Access Componets)의 한 컴포넌트로 RDS (Remote Data Services)가 잘못 설정되어 있을 경우 서비스거부 공격이나 원격에서 관리자 권한으로 임의의 명령을 실행할 수 있는 취 약점이 있음. MDAC 2.7 미만의 버전에서 웹 서버와 웹 클라이언트는 모두 이 취약점으로 인해 위험해질 수 있음. 대부분의 취약점들이 서비스 팩이나 핫 픽스로 결함이 제거되지만 이 취약점을 제거하기 위해서는 관리자가 수동으로 레지스트리 키를 조작 해야 하며 일반적인 패킷 필터링 파이어월로도 공격차단이 불가능하기 때문에 관리자들의 주의를 요함. RDS로부터의 공격을 차단하기 위해서 는 MDAC의 버전별로 설정을 달리하여 운영하거나 RDS가 불필요할 경 우 제거하는 것이 안전함. 시스템 정보 확인 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Param eters\adclaunch\vbbusobj.vbbusobjcls WAS 와 연동될 경우 일부 RDS 를 사용하는 경우가 있으며 사용할 경 우 레지스트리 키 값 제거 [Windows NT, 2000] 시작>실행>INETMGR>웹사이트에서 확인 중기 적용 양호 다음의 중 한가지라도 해당되는 경우 1. IIS 를 사용하지 않는 경우 2. Windows 2000 일 경우 서비스팩 4가 설치되어 있는 경우(2003 양호) 3. 디폴트 웹사이트에 MSADC 가상 디렉터리가 존재하지 않을 경우 4. 해당 레지스트리 값이 존재하지 않을 경우 취약 양호 기준에 한가지도 해당되지 않는 경우 사용하지 않을 경우 IIS 서비스 중지/사용안함, 사용할 경우 레지스트리 키 값 제거 [Windows NT, 2000] <RDS 제거 방법> 1. 웹 사이트로부터 /msadc 가상 디렉토리를 제거 시작>실행>INETMGR>웹사이트 선택 오른쪽 디렉터리에서 msadc 제거 2. 다음의 레지스트리 키/디렉터리를 제거. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Param eters \ADCLaunch \RDSServer.DataFactory HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Param eters \ADCLaunch\AdvancedDataFactory - 167 - - 168 -
점검분류 항목 서비스 관리 위험도 상 분류번호 W-43 Windows NT, 2000, 세부점검 항목 최신 서비스팩 적용 대상 2003 서비스 팩은 Windows 시스템을 마이크로소프트에서 출시하고 난 뒤 Windows와 관련된 응용프로그램, 서비스, 실행파일 등 여러 수정 파일 들을 모아 놓은 프로그램 임. Hot Fix는 즉시 교정되어야만 하는 주요한 취약점(주로 보안과 관련된) 을 패치하기 위해 배포되는 프로그램 임. Hot Fix는 각각의 Service Pack 이 발표된 이후 패치가 추가될 필요가 있을 때 별도로 발표 됨. 때 론, Hot Fix 보다 취약성을 이용한 공격도구가 먼저 출현 할 수 있으므 로 Hot Fix는 발표 후 가능한 빨리 설치 할 것을 권장함. 임의의 명령어 실행, 임의의 파일 수정, 시스템 관리자 권한 획득. [Windows NT, 2000, 2003] 1. 시작>실행>Winver에서 Service Pack 버전 확인 2. 최신 Hotfix 설치유무 확인 중기 적용 양호 최신 서비스팩이 설치되어 있을 경우, 최신 Hotfix 또는 PMS(Patch Management System) Agent 가 설치되어 있을 경우 취약 최신 서비스팩이 설치 되어 있지 않은 경우, 최신 Hotfix 또는 PMS(Patch Management System) Agent 가 설치 되어 있지 않은 경우 최신 서비스팩 설치, Windows NT 6a, Windows 2000 SP4, Windows 2003 SP2 Microsoft NT 보안 패치 사이트 http://www.microsoft.com/korea/ntserver/security/default.asp Microsoft 2000 보안 패치 사이트 http://www.microsoft.com/korea/windows2000/downloads/servicepacks /sp4/default.asp Microsoft 2003 보안 패치 사이트 http://www.microsoft.com/korea/technet/downloads/winsrvr/servicepacks /default.mspx 최신 Hotfix 설치 1. 아래의 패치 리스트를 조회하여, 서버에 필요한 패치를 선별하여 수 동으로 설치 http://www.microsoft.com/korea/technet/security/current.asp 2. Windows 자동 업데이트 기능을 이용한 설치 수동 업데이트의 부담을 덜어주기 위하여 Microsoft에서는 자동으로 시 스템에 필요한 Hot Fix 및 소프트웨어 업그레이드를 보여주고 다운로 드 및 적용을 쉽게 하기 위한 사이트를 마련해 놓고 있음. Internet Explorer 도구 메뉴 중 "Windows Update" 라는 것을 선택하여 주면 자동으로 Windows Update 사이트로 이동하게 되며 또한 다음의 URL 을 직접 주소 입력창에 입력해도 됨. http://windowsupdate.microsoft.com/?ie 3. PMS(Patch Management System) Agent 를 설치하여 자동으로 업 데이트되도록 설정한다 [Windows NT, 2000, 2003] 1. 시작>실행>Winver 2. Service Pack 버전 확인 후 최신 버전이 아닐 경우 아래 사이트에서 다운로드하여 설치 Service Pack 설치 시에는 네트워크와 분리된 상태에서 설치 할 것을 권장 함. 현재 많은 인터넷 웜(Worm)이 Windows 의 취약점을 이용하 여 공격을 하기 때문에 O/S를 설치한 후 곧바로 네트워크에 연결하는 것은 곧바로 서버에 피해를 입을 수 있기 때문 임. 현재까지 발표된 가장 최신의 Windows 2000 의 Service Pack은 SP4, Windows 2003 의 Service Pack은 SP2 이며 Microsoft 홈페이지에서 다운로드 받을 수 있음. - 주의 보안 패치 및 Hot Fix의 경우는 적용 후 시스템 재시작을 요하는 경우 가 대부분이므로 관리자는 서비스에 지장이 없는 시간대에 적용을 하 는 것을 권장함. 시스템에 알맞은 Hot Fix는 수행되고 있는 OS프로그램 및 특히 개발되거 나 구매한 Application 프로그램에 영향을 줄 수 있음. 따라서 패치 적용 전Application 프로그램을 구분하고, 필요하다면 OS 벤더 또는 Application 엔지니어의 확인 하에 패치를 수행해야 함. 설치후 시스템 재시작이 필요하며 설치에 따른 영향도 필요함. - 169 - - 170 -
점검분류 항목 서비스 관리 위험도 중 분류번호 W-44 Windows NT, 2000, 세부점검 항목 터미널 서비스 암호화 수준 설정 대상 2003 터미널 서비스는 원격지에 있는 서버를 관리하기 위한 유용한 도구이나 취약한 패스워드를 사용하거나 접근제어가 적절치 못할 경우 해킹의 도 구로 악용될 수 있으므로 불필요하게 터미널 서비스가 사용되고 있는지 점검함. 임의의 사용자 접속 가능여부 점검 및 사용여부 점검. [Windows 2000, 2003] 1. 시작>실행>TSCC.MSC>"해당 서비스 선택">속성에서 확인 양호-터미널 서비스가 사용하지 않거나 사용 할 시 암호화 수준을 "클 라이언트와 호환가능(중간)" 이상으로 설정한 경우 취약-터미널 서비스를 사용하고 암호화 수준이 "낮음" 으로 설정한 경 우 터미널 서비스가 필요한 경우 추가 보완 대책 1, 관리자 이외의 일반 사용자의 터미널 서비스 접속을 허용하지 않음. 2. 방화벽에서 터미널 서비스 포트(3389)의 사용을 관리자 컴퓨터의 IP 로 제한. 3. 다수의 계정이 필요한 경우 엄격한 ACL(Access Control List)을 적용. 암호화 수준 변경시 불필요시 서비스 중지/사용안함 설정, 사용할 경우 암호화 수준 설정 [Windows 2000, 2003] 1. 시작>실행>TSCC.MSC>"해당 서비스 선택">속성 2. 암호화 수준-> 클라이언트 호환 가능(Windows 2003), 중간 (Windows 2000) 이상으로 설정 - 171 - - 172 -
점검분류 항목 서비스 관리 위험도 중 분류번호 W-45 Windows NT, 2000, 세부점검 항목 IIS 웹서비스 정보 숨김 대상 2003 에러페이지, 웹 서버 종류, 사용 OS, 사용자 계정 이름 등 웹 서버와 관련된 불필요한 정보가 노출되지 않도록 한다. 이러한 정보를 아는 것 만으로도 공격에 필요한 정보를 수집하는데 도움이 될 수 있음. 점검분류 항목 서비스 관리 위험도 중 분류번호 W-46 Windows NT, 2000, 세부점검 항목 SNMP 서비스 구동 점검 대상 2003 SNMP 서비스는 시스템 상태를 실시간으로 파악하거나 설정하기 위하여 사용하는 서비스임. SNMP 서비스를 사용하지 않을 경우 중지 시킴 시스템의 주요 정보 유출 및 불법 수정. 공격자가 여러 정보를 수집함으로써 다양한 공격을 시도 할 수 있음. [Windows NT] 1. URL의 파라미터를 변경하여 내부오류를 발생시킨다. - 파라미터 값 변경 시도 : www.kkk.com/common.htmlapp&c=1201 2. 검색 창 또는 ID/PW 입력 창에 특수문자 등을 입력하여 에러 메시지 발생 여부를 확인한다. 바탕화면>네트워크환경>등록정보>서비스/SNMP Service>속성>보안에 서 확인 [Windows 2000, 2003] 시작>실행>SERVICES.MSC>SNMP Service>속성>보안에서 확인 중기 적용 양호 웹서버와 불필요한 정보 유출 서비스를 차단 취약 웹서버와 불필요한 정보 유출 서비스 미차단. o 통일된 메시지를 출력한다. - 접근된 파일이 존재하지 않거나 거부되는 경우 : access denied 출력 양호 SNMP 서비스를 사용하지 않음 - 로그인 시 ID나 패스워드가 틀린 경우 : 로그인에 실패 했습니다 출 취약 SNMP 서비스를 사용 함 력 - 웹 어플리케이션의 인수에 특수문자 입력 시 : 특수문자 입력 불가 메시지 출력 불필요시 서비스 중지/사용안함 o 최종 사용자에게 스택 추적 정보, 경로 정보와 디버그 정보 제공을 금 지한다. o 에러 메시지를 특정 URL로 리다이렉트 또는 예외 호출을 설정한다. [Windows NT] 1. 바탕화면>네트워크환경>등록정보>서비스/SNMP Service>속성>보안 o 히든 필드 값을 그대로 사용하지 말고, 데이터베이스에서 재검색 하여 값을 새로 얻어 오거나 히든 필드로 전송된 값들에 대한 검증을 하도록 소스를 수정한다. o 히든 필드로 값을 넘기는 것보다 세션의 속성을 통하여 변수를 저장 관리하는 것이 안전하다. [Windows 2000, 2003] 1. 시작>실행>SERVICES.MSC>SNMP Service>속성>보안 2. 불필요시 해당 서비스 제거 시작>실행>SERVICES.MSC>SNMP Servic>속성에서 [시작 유형]을 [사용 안함]으로 만든 후, SNMP 서비스를 중지 - 173 - - 174 -
점검분류 항목 서비스 관리 위험도 중 분류번호 W-47 세부점검 항목 SNMP 서비스 커뮤니티스트링의 복잡성 설정 대상 Windows NT, 2000, 2003 SNMP 서비스는 시스템 상태를 실시간으로 파악하거나 설정하기 위하여 사용하는 서비스임. 그러나 이 정보를 받기 위한 일종의 패스워드인 Community String이 Default로 public, private로 설정되어 있는 경우가 많으며, 이를 변경하지 않으면 이 String을 악용하여 비인가사용자가 시 스템의 주요 정보 및 설정 상황을 파악 할 수 있는 취약성이 존재함. 시스템의 주요 정보 유출 및 불법 수정. NMS 에서 서버를 모니터링 하는 경우 SNMP 를 사용하며 기타 SNMP 를 사용할 경우 Community 이름 변경시 통신하고자 하는 Server/Client에 모두 같은 Community 이름을 사용해야 함. [Windows NT] 바탕화면>네트워크환경>등록정보>서비스/SNMP Service>속성>보안에 서 확인 (서비스>SNMP>등록정보>종속성 참고) [Windows 2000, 2003] 시작>실행>SERVICES.MSC>SNMP Service>속성>보안에서 확인 중기 적용 양호 SNMP Community 이름이 public, private 이 아닐 경우 취약 SNMP Community 이름이 public, private 인 경우 Default Community 이름(public) 변경 [Windows NT] 1. 바탕화면>네트워크환경>등록정보>서비스/SNMP Service>속성>보안 [Windows 2000, 2003] 1. 시작>실행>SERVICES.MSC>SNMP Service>속성>보안 2. 쓰기권한이 필요하지 않다면 커뮤니티 이름을 읽기 전용으로 Public/Private 이 아닌 이름을 추가 (NT의 경우 시작>제어판>서비스에서 설정) - 175 - - 176 -
점검분류 항목 서비스 관리 위험도 중 분류번호 W-48 Windows NT, 2000, 세부점검 항목 SNMP Access Control 설정 대상 2003 SNMP v1 이 안고 있던 제일 큰 약점은 보안기능이 없어 단순하게 Community name 확인 절차만 거치면 Network 가 불가능하게 되는 문 제점 등이 발견되었는데 이를 보안한 것이 SNMP v2 이다. 여기서 인증절차의 대한 보안 M5 알고리즘과, Party mib를 이용한 사용 자에게만 특정 객체를 이용하거나 못하게 하는 Access Control 기능이 추가되어 보안요소가 높아짐. SNMP에서 모든 권한이 주어졌을 경우 침입 시에 네트워크 설정을 변 경하여 혼란을 줄 수 있으며, 데이터 손실까지 일어 날수 있음. [Windows NT] 바탕화면>네트워크환경>등록정보>서비스/SNMP Service>속성>보안에 서 확인 NMS 에서 서버를 모니터링 하는 경우 SNMP 를 사용하며 기타 SNMP 를 사용할 경우 Community 이름 변경시 통신하고자 하는 Server/Client에 모두 같은 Community 이름을 사용해야 함. (서비스>SNMP>등록정보>종속성 참고) [Windows 2000, 2003] 시작>실행>SERVICES.MSC>SNMP Service>속성>보안에서 확인 양호 특정 호스트로부터 SNMP 패킷 받아들이기 인 경우 취약 모든 호스트로부터 SNMP 패킷 받아들이기 인 경우 [Windows NT] 1. 바탕화면>네트워크환경>등록정보>서비스/SNMP Service>속성>보안 [Windows 2000, 2003] 1. 시작>실행>SERVICES.MSC>SNMP Service>속성>보안 2. 인증 트랩 보내기 및 다음 호스트로부터 SNMP 패킷 받아들이기 선 택 3. SNMP 호스트 등록 - 177 - - 178 -
점검분류 항목 서비스 관리 위험도 중 분류번호 W-49 세부점검 항목 DNS 서비스 구동 점검 대상 Windows NT, 2000, 2003 동적 업데이트는 변경 사항이 있을 때마다 DNS 클라이언트 컴퓨터가 자신의 리소스 레코드를 DNS 서버에 등록하고 동적으로 업데이트할 수 있게하며 이 기능을 사용하면 특히 위치를 자주 이동하거나 변경하고DHCP를 통해 IP 주소 를 얻는 클라이언트의 영역 레코드 수동 관리 작업을 줄일 수 있음. 하지만 동적 업데이트를 사용할 경우 악의적인 사용자에 의해 신뢰할 수 없는 데이터가 받아들여 질 수 있기 때문에 동적업데이트를 사용하지 않아야 함. DNS 서버를 사용하지 않을 경우 중지 시킴 서비스 거부 공격 [Windows NT] N/A [Windows 2000, 2003] 시작>실행>DNSMGMT.MSC>각 조회영역>해당 영역>속성>일반에서 확인 중기 적용 W- 양호 DNS서비스를 사용 않하거나 동적 업데이트 "없음"이 설정되어 있을 경우 취약 DNS서비스를 사용하며 동적 업데이트가 설정되어 있을 경우 불필요시 서비스 중지/사용안함, 사용할 경우 동적 업데이트 "없음" 설정 [Windows NT] N/A [Windows 2000, 2003] 1. 시작>실행>DNSMGMT.MSC>각 조회영역>해당 영역>속성>일반 2. "동적 업데이트" -> 없음 선택 - 179 - - 180 -
-불필요시 해당 서비스 제거 시작>실행>SERVICES.MSC>DNS Server>속성에서 [시작 유형]을 [사용 안함]으로 만든 후, DNS 서비스를 중지. 점검분류 항목 서비스 관리 위험도 하 분류번호 W-50 Windows NT, 2000, 세부점검 항목 HTTP/FTP/SMTP 배너 차단 대상 2003 임의의 사용자가 HTTP, FTP, SMTP 접속 시도시 보여지는 접속 배너 정 보를 수집하여 해킹에 사용함 시스템 정보 확인 [Windows NT, 2000] HTTP: WinNTsystem32inetsrvw3svc.dll를 Hex편집기로 열어 확인 FTP: WinNTsystem32inetsrvftpsvc2.dll를 Hex편집기로 열어 확인 SMTP: IIS 관리자에서 메타베이스 직접 편집 중기 적용 사용하지 않을 경우 IIS 서비스 중지/사용안함, 사용할 경우 값 수정 [Windows NT, 2000] HTTP: WinNTsystem32inetsrvw3svc.dll를 Hex편집기로 연 다음 "Microsoft-IIS/4.0" 또 는 'Microsoft-IIS/5.0" 부분을 찾아(해당 부분이 두군데 있으며 거의 같은 위치 에 붙어 있다.) 수정한다. dll파일이 메모리에 올려져 있어 편집할 수 없으니 윈도우를 명령 프롬프트만 뜨게 부팅한 후 해당 파일을 바꿔준다 FTP: WinNTsystem32inetsrvftpsvc2.dll를 Hex편집기로 연 다음 "Microsoft FTP Service" 부분을 찾아 수정한다. dll파일이 메모리에 올려져 있어 편집할 수 없으니 윈도우를 명령 프롬프트만 뜨게 부팅한 후 해당 파일을 바꿔준다. SMTP: IIS 관리자에서 서버 개체를 마우스 오른쪽 단추로 클릭한 다음 속성을 클릭합 니다. 메타베이스 직접 편집 허용 확인란을 선택합니다. Exchange System Manager에서 사용할 수 없는 매개 변수를 변경하려는 경우 메타베이스 설정을 직접 편집할 수 있습니다. 예를 들어 다음과 같이 SMTP 통 신에서 Exchange 관련 버전 정보를 공개하지 못하도록 기본 SMTP 가상 서버 의 구성 개체(<IIsSmtpServerLocation ="/LM/SmtpSvc/1">)에 ConnectResponse 속성 값을 추가하여 SMTP 서버의 SMTP 배너를 변경할 수 있습니다. <IIsSmtpServer Location ="/LM/SmtpSvc/1" AdminACL="4963.........a472" ClusterEnabled="FALSE" - 181 - - 182 -
ConnectionTimeout="600" 점검분류 항목 서비스 관리 위험도 중 분류번호 W-51 Windows NT, 2000, 세부점검 항목 Telnet 보안 설정 대상 2003 Windows 2000에서는 기본적으로 Telnet 서비스에 대하여 NTLM 인증 을 사용하며 Windows 2003에서는 NTLM인증과 Password 인증을 동시 에 사용함. 이는 별도의 계정, 비밀번호의 입력없이 클라이언트 컴퓨터 의 로그인 계정 및 패스워드를 이용하여 Telnet 서버와 인증을 하는 것 으로서 Windows 계열의 클라이언트만 사용할 수 있는 인증임. NTLM 을 사용하지 않고 ID/PASSWORD를 직접 입력하여 인증(NTLM값이 0일 경우)할 수도 있는데 이는 클라이언트가 유닉스 계열 또는 NTLM 인증 을 사용할 수 없을 때에 이러한 인증 방법을 사용할 수 있음. Telnet을 이용한 통신은 암호화 되지 않은 평문으로 전송되므로 간단한 Sniffer 에 의해서도 정보가 유출될 수 있으므로 SSH, IPsec 등을 이용한 암호화 통신을 권장하며 사용하지 않을 경우 중지시킴. 시스템 내부 접근, 시스템 관리자 권한 획득. [Windows NT, 2000] 시작>설정>제어판>관리도구>텔넷서버설정에서 확인 [Windows 2003] 시작>실행>cmd>tlntadmn config에서 확인 양호 Telnet 서비스가 구동 되어 있지 않거나 인증방법이 NTLM 일 경우 취약 Telnet 서비스가 구동 되어 있으며 인증방법이 NTLM 이 아닐 경우 불필요시 서비스 중지/사용안함 설정, 사용시 인증방법으로 NTLM 만 사용 [Windows NT, 2000] 1. 시작>설정>제어판>관리도구>텔넷서버설정 2. NTLM인증방식만 사용 - 183 - - 184 -
점검분류 항목 서비스 관리 위험도 중 분류번호 W-52 세부점검 항목 불필요한 ODBC/OLE-DB 데이터 소스와 드라이브 제거 대상 Windows NT, 2000, 2003 어떤 샘플 어플리케이션은 샘플 데이터베이스를 위해서 ODBC 데이터 소스를 설치하거나 불필요한 ODBC/OLE-DB 데이터베이스 드라이브를 설치함. 불필요한 데이터 소스나 드라이버는 ODBC 데이터 소스 관리자 도구를 이용해서 제거하는 것이 바람직 함. 임의의 명령어 실행, 임의의 파일 수정, 시스템 관리자 권한 획득. [Windows NT] 시작>설정>제어판>데이터 원본(ODBC)>시스템 DSN에서 확인 [Windows 2000, 2003] 1. 시작>설정>제어판>관리도구>데이터 원본 (ODBC)>시스템DSN>해당 드라이브에서 확인 중기 적용 [Windows 2003] 1. 시작>실행>cmd>tlntadmn config 2. tlntadmn config sec = +NTLM-passwd(passwd 인증 방식을 제외하 고 NTLM 인증방식 만 사용) 양호 시스템 DSN 부분의 Data Source 를 현재 사용하고 있는 경우 취약 시스템 DSN 부분의 Data Source 를 현재 사용하고 있지 않은 경우 사용하지 않는 불필요한 ODBC 데이터 소스는 제거. 사용할 경우 양호 [Windows NT] 시작>설정>제어판>데이터 원본(ODBC)>시스템 DSN [Windows 2000, 2003] 1. 시작>설정>제어판>관리도구>데이터 원본 (ODBC)>시스템DSN>해당 드라이브 클릭 2. 사용하지 않는 데이터 소스 제거 -불필요시 해당 서비스 제거 시작>실행>SERVICES.MSC>Telnet>속성에서 [시작 유형]을 [사용 안함]으 로 만든 후, Telnet 서비스를 중지. - 185 - - 186 -
어플리케이션에서 사용할 경우는 양호. 점검분류 항목 서비스 관리 위험도 중 분류번호 W-53 Windows NT, 2000, 세부점검 항목 원격터미널 접속 타임아웃 설정 대상 2003 일반적으로 웹 서비스를 사용시 사용자가 Brower 어떠한 이벤트도 발생 하지 않는다면 웹서버에서 보안상 자동으로 세션을 끊는 경우가 있음. 이와 같은 방식으로 원격제어를 이용한 터미널에 접속한 후에 어떠한 이벤트 나 Action이 발생시키지 않는다면 Timeout 설정을 해주어야 함. 타인의 의하여 원격으로 정보 습득. 또한 명령어 조작. 임의의 파일 조 작. [windowns 2003] RDP-Tcp connection 마우스 우측 클릭>RDP-Tcp properties>sessions 에서 Idle session limit 값이 적용되어 있는지 확인. 중기 적용 양호 원격제어시 Timeout 을 제어설정을 했을시. 취약 원격제어시 Timeout 을 제어설정을 안했을시. [windowns 2003] 1. 시작>실행>열기>tscc.msc을 실행. 2. RDP-Tcp connection을 마우스 오른쪽 클릭 후 속성을 실행. 3. Sesstions 탭에서 아래 Override user settings 을 체크 하고 Idle session time 세션이 끊어지도록 원하는 시간을 삽입. 어플리케이션에서 사용할 경우는 양호. - 187 - - 188 -
점검분류 항목 서비스 관리 위험도 중 분류번호 W-54 세부점검 항목 예약된 작업에 의심스러운 명령이 Windows NT, 2000, 대상 등록되어 있는지 점검 2003 일정 시간마다 미리 설정해둔 프로그램을 실행할 수 있는 예약된 작업 은 시작프로그램 과 더불어서 해킹과 트로이목마, 백도어가 설치하여 공 격하기 좋은 루트임. 예약된 작업에서 수시로 확인하는 것을 권장. 트로이목마/백도어 공격에 취약. 해커들이 공격하기 용이함. [windowns 2000, 2003] 1. 시작>설정>제어판>예약된 작업 확인. 2. cmd 창에서 C:\>at 명령어 실행 하여 확인. 중기 적용 양호 예약된 작업에 접속하여 불필요한 명령어나 파일이 있는지 확 인. 취약 예약된 작업에 접속을 하지 않아 확인을 하지 않거나, 방치 했 을 경우. 어플리케이션에서 사용할 경우는 양호. [windowns 2000, 2003] GUI 확인 방법 1. 시작>설정>제어판>예약된 작업 확인. 2. 등록된 예약작업을 Click하여 상세 내역을 확인. 3. 불필요한 파일 있다면 삭제. CLI 확인 방법 1. 시작>실행>cmd 입력 후 엔터 2. cmd창에서 at실행. 3. C:\>at 명령어 실행 하여 확인. - 189 - - 190 -
점검분류 항목 패치 관리 위험도 상 분류번호 W-55 Windows NT, 2000, 세부점검 항목 최신 HOT FIX 적용 대상 2003 Hot Fix는 즉시 교정되어야만 하는 주요한 취약점(주로 보안과 관련된) 을 패치하기 위해 배포되는 프로그램 임. Hot Fix는 각각의 Service Pack 이 발표된 이후 패치가 추가될 필요가 있을 때 별도로 발표 됨. 때 론, Hot Fix 보다 취약성을 이용한 공격도구가 먼저 출현 할 수 있으므 로 Hot Fix는 발표 후 가능한 빨리 설치 할 것을 권장함. 임의의 명령어 실행, 임의의 파일 수정, 시스템 관리자 권한 획득. 점검분류 항목 패치 관리 위험도 상 분류번호 W-56 세부점검 항목 백신 프로그램 업데이트 대상 Windows NT, 2000, 2003 계속되는 신종 바이러스의 출현으로 인해 백신 프로그램의 설치만으로 는 그 효과를 볼 수 없으므로 바이러스 정보에 대한 주기적인 업데이트 를 통해 최신의 바이러스까지 치료할 수 있는 기능이 필요함. 새로운 바이러스에 파일 감염이 가능함. 바이러스 백신 프로그램 최신 엔진 업데이트 설치 유무 확인 [windowns 2000, 2003] 최신 패치가 설치되는지. 사이트에서 확인. 중기 적용 양호 최신Hotfix 또는PMS(Patch Management System) Agent 가 설 치되어 있을 경우 취약 최신Hotfix 또는PMS(Patch Management System) Agent 가 설 치되어 있을 경우 [windowns 2000, 2003] 최신 Hotfix 설치 아래의 패치 리스트 조회. 서버에 필요한 패치 선별 하여 수동 설치 요 망 양호 바이러스 백신 프로그램의 최신 엔진 업데이트가 설치되어 있 을 경우 취약 바이러스 백신 프로그램의 최신 엔진 업데이트가 설치되어 있 진 않은 경우 담당자를 통해 바이러스 백신을 설치 후 엔진 업데이트를 설정하도록 권고 백신사들 마다 다소 차이는 있으나 매주 업데이트가 이뤄지고, 긴급한 경우 수시로 업데이트를 하기도 함. 정기적인 업데이트를 통해 검색엔 진을 최신 버전으로 유지하고, 백신사에서 발표하는 경보를 주시해야 함. 또한, 백신 프로그램의 자동 업데이트 기능을 이용하면 인터넷에 연결 되어 있을 때 변동 사항을 자동으로 업데이트 함. http://www.microsoft.com/korea/technet/security/current.asp 안철수연구소, 하우리 : 매주 수요일 정기업데이트 보안 패치 및 Hot Fix 의 경우는 적용 후 시스템 재시작을 요하는 경 우가 대부분이므로 관리자는 서비스에 지장이 없는 시간대에 적용을 하 는 것을 권장. 시스템에 알맞은 Hot Fix 는 수행되고 있는 OS 프로그램 및 특히 개발 되거나 구매한 Application 프로그램에 영향을 줄 수 있음. 따라서 패치 적용전 Application 프로그램을 구분하고, 필요하다면 OS 벤더 또는 Application 엔지니어의 호가인 하에 패치를 수행해야 함. 시만텍코리아, 트랜드마이크로 : 매주 목요일 정기업데이트 (미국시간으 로 수요일) 4개 백신업체 모두 긴급시 수시업데이트 및 실시간 업데이트 기능 제 공. 어플리케이션에서 사용할 경우는 양호. - 191 - - 192 -
점검분류 항목 패치 관리 위험도 중 분류번호 W-57 Windows NT, 2000, 세부점검 항목 정책에 따른 시스템 로깅 설정 대상 2003 감사 설정이 구성되어 있지 않거나 감사 설정 수준이 너무 낮으면 보 안 관련 문제 발생시 원인을 파악하기 어려우며 법적 대응을 위한 충 분한 증거로 사용될 수도 없음. 그러나 감사 설정이 너무 높으면 보안 로그에 불필요한 항목이 많이 기 록되므로 매우 중요한 항목과 혼동할 수 있으며 컴퓨터 성능에도 심각 한 영향을 줄 수 있기 때문에 법적 요구 사항과 조직의 정책에 따라 필 요한 로그를 남기도록 해야 함. 각종 침해 사실에 대한 확인과 대응책 및 법적 대응이 어려움. [Windows NT] 시작>프로그램>관리도구>도메인사용자관리자>정책>감사에서 확인 [Windows 2000, 2003] 시작>실행>SECPOL.MSC>로컬정책>감사정책에서 확인 [Windows 2000, 2003] 1. 시작>실행>SECPOL.MSC>로컬정책>감사정책 양호 아래와 같은 이벤트에 대한 감사 설정이 되어 있는 경우. 취약 아래와 같은 이벤트에 대한 감사 설정이 되어 있지 않은 경우 로그온 이벤트, 계정 로그온 이벤트, 정책 변경 : 성공/실패 감사 계정 관리, 디렉터리 서비스 액세스, 권한 사용 : 실패 감사 위와 같은 이벤트에 대한 추가적인 감사 설정 [Windows NT] 시작>프로그램>관리도구>도메인사용자관리자>정책>감사 로그온 및 로그오프, 보안정책 바꾸기 : 성공/실패 감사 사용자 권한 사용, 사용자 및 그룹 관리 : 실패 감사 정 책 로그온 이벤트 계정 로그온 이벤트 계정 관리 개체 액세스 설 명 사용자가 컴퓨터에 로그온하거나 로그오프할 때마다 로 그온이 시도된 컴퓨터의 보안 로그에 이벤트가 생성 사용자가 도메인에 로그온하면 도메인 컨트롤러에 로그 온 시도가 기록 사용자나 그룹이 작성, 변경 또는 삭제된 시간을 판단하 는데 사용 시스템 액세스 컨트롤 목록(SACL)이 있는Windows 2000 기반 네트워크의 모든 개체에 대해 감사를 활성화 보안 로그에 이벤트를 표시하려면 먼저 개체 액세스 감 사를 활성화한 후 감사할 각 개체에 대해 SACL을 정의 - 193 - - 194 -
디렉터리 서비스 액 세스 권한 사용 프로세스 추적 시스템 이벤트 정책 변경 Active Directory 개체의 SACL에 나열된 사용자가 해당 개체에 액세스를 시도할 때 감사 항목이 생성 권한 사용의 성공 및 실패를 감사할 경우 사용자 권한을 이용하려고 할 때마다 이벤트가 생성 실행되는 프로세스에 대한 자세한 추적 정보를 감사하는 경우 이벤트 로그에 프로세스를 작성하고 종료하려고 한 시도가 나타남 사용자나 프로세스가 컴퓨터 환경을 변경하면 시스템 이 벤트가 생성 시스템 이벤트를 감사할 경우 보안 로그가 삭제된 시간 도 감사 감사 정책 변경의 성공 및 실패를 감사 점검분류 항목 로그 관리 위험도 상 분류번호 W-58 Windows NT, 2000, 세부점검 항목 로그의 정기적 검토 및 보고 대상 2003 컴퓨터에 관한 작업은 로그라는 정보로 저장함. 로그는 컴퓨터 관련 범 죄가 발생 했을시 해킹의 흔적을 찾기 위하여 로그를 분석. 단순히 해킹 의 흔적을 찾기 위한 수단만이 아니라 로그분석을 통해 공격기법을 발 견하여 시스템 취약점을 제거 할 수 있고, 공격에 대한 근원을 찾을 수 있다면 자산의 손실을 공격자에게 법적인 책임을 물을 수가 있으므로 로그에 대한 관리와 분석이 중요시 됨. 일반적인 경우 영향 없음 로그자료가 없을시, 공격자에 대한 방어대응 취약. 자산의 재산 손실 우 려. [Windows NT, 2000, 2003] 1. 이벤트 뷰어 -> 시작>제어판>관리도구>이벤트 뷰어. 2. 로컬보안정책 -> 시작>설정>제어판>관리도구>로컬보안정책. 양호 로그기록에 대해 정기적 검토, 분석, 그에 대한 리포트 작성 및 보고등의 조치가 되 있을 경우. 취약 로그기록에 대해 미 검사, 미 검토 되었을 경우. [Windows NT, 2000, 2003] - 이벤트 로그를 확인하기 위해서는 Windows의 이벤트 뷰어를 사용. 1. 시작>제어판>관리도구>이벤트 뷰어 2. 으용 프로그램 로그, 보안 로그, 시스템 로그 와 같은 세가지 로그를 이벤 트에 기록 3. OS 구성에 따라 디렉토리 서비스 로그, 파일 복제 서비스 로그, DNS 서버 로그 추가 - 감사 정책을 구성하는 방법으로 서는 로컬보안정책 설정을 이용. * 로컬보안정책을 이용하여 감사 정책을 구성하기 위해서는 Administrators 그룹 구성원 또는 적절한 권한이 임이 된 사용자 이여야 함. - 195 - - 196 -
1. 시작>설정>제어판>관리도구>로컬보안정책 2. 보안 템플릿을 이용한 감사 정책을 구성. (보안 템플릿이란 보안 구 성을 표 시하는 파일로 로컬 컴퓨터 및 그룹 정책 개제를 적용 보 안 분석에 사용) 점검분류 항목 로그 관리 위험도 상 분류번호 W-59 세부점검 항목 원격으로 액세스할 수 있는 레지스트리 경로 대상 Windows NT, 2000, 2003 Windows에 의해 사용되는 모든 초기화와 환경설정 정보는 레지스트리 에 저장되어 있음. 레지스트리 편집기는 원격접속으로도 그 키를 바꿀 수 있는데 이는 대 단히 위험한 것으로 네트워크를 통한 레지스트리 접속을 차단해야 됨. 원격에서 레지스트리로의 접근을 위해서는 관리자의 권한 또는 원격에 서 접근을 하기 위한 특별한 계정이 필요함. 윈도우에서는 원격에서 레지스트리 접근에 대한 요구를 다루기 위해 원 격 레지스트리 서비스를 제공하고 있는 데 이 서비스를 중지시키면 레 지스트리에 대한 어떠한 원격 접근도 막을 수 있음. 일반적인 경우 영향 없음 임의의 레지스트리 변조 [Windows 2000, 2003] 시작>실행>SERVICES.MSC>Remote Registry>속성에서 확인 양호 Remote Registry Service 가 중지되어 있을 경우 취약 Remote Registry Service 가 사용중일 경우 불필요할 경우 서비스 중지/사용안함 설정 [Windows 2000, 2003] 1. 시작>실행>SERVICES.MSC>Remote Registry>속성 2. "시작유형"->사용안함, 서비스 상태->중지 Remote Registry Service 를 사용하는지 확인 필요(서비스>Remote Registry Service>등록정보>종속성 참고) - 197 - - 198 -
점검분류 항목 로그 관리 위험도 하 분류번호 W-60 Windows NT, 2000, 세부점검 항목 이벤트 로그 관리 설정 대상 2003 최대 로그 크기는 10MBytes 이상, 이벤트 로그 관리는 이벤트 겹쳐 쓰 지 않음 으로 설정하여 시스템에 보안상 로그가 자동으로 덮어쓰지 않도 록 설정 되어 있는지 확인함. 보안 로그의 크기를 유지하여 접근자 추적 및 불법 접근자 확인 자료로 이용. [Windows NT] 프로그램>관리도구>이벤트표시기>로그>로그설정에서 확인 [Windows 2000, 2003] 시작>실행>EVENTVWR.MSC>해당 로그>속성>일반에서 확인 [Windows 2000, 2003] 1. 시작>실행>EVENTVWR.MSC>해당 로그>속성>일반 2. "최대 로그 크리"->10240, "최대 로그 크기에 미쳤을 때"-> 90일 양호 최대 로그 크기 10240KB 이상이고 "90일 이후 이벤트 덮어씀" 으로 설정되어 있을 경우 취약 최대 로그 크기 10240KB 미만이거나 "이벤트 덮어쓰는 기간이 90일 이하일 경우" 가 설정되어 있을 경우 최대 로그 크기 10204KB, "90일 이후 이벤트 덮어씀" 설정 [Windows NT] 1. 프로그램>관리도구>이벤트표시기>로그>로그설정 2. "최대 로그 크리"->10240, "다음 이전의 이벤트 겹쳐씀"-> 90일 일반적인 경우 영향 없음 - 199 - - 200 -
점검분류 항목 로그 관리 위험도 중 분류번호 W-61 Windows NT, 2000, 세부점검 항목 원격에서 이벤트 로그 파일 접근 차단 대상 2003 익명으로 중요 시스템로그 파일 및 어플리케이션 로그 파일에 접근 가능하여 중요 보안 감사 정보의 변조/삭제/유출의 위험이 존재 하므로 원격 익명사용자의 시스템 로그 접근을 방지해야 됨. 일반적으로 시스템 로그파일은 C:\winnt\system32\config에 저장되나 어플리케이션 로그파일은 각각의 어플리케이션마다 로그저장 위치가 다름. 웹 서버에 많이 사용하는 IIS 의 경우에는 C:\winnt\system32\LogFiles에 IIS 로그 저장이 이루어 짐. 시스템 정보 변조/삭제/유출 [Windows NT, 2000, 2003] 1. 탐색기>로그 디렉터리>속성>보안에서 확인 양호 로그 디렉터리의 권한에 Everyone 이 없는 경우 취약 로그 디렉터리의 접근권한이 Everyone 이 있는 경우 - 시스템 로그 디렉터리: %systemroot%\system32\config - IIS 로그 디렉터리: %systemroot%\system32\logfiles Everyone 권한 제거 [Windows NT, 2000, 2003] 1. 탐색기>로그 디렉터리>속성>보안 2. Everyone 을 제거 점검분류 항목 보안 관리 위험도 상 분류번호 W-62 Windows NT, 2000, 세부점검 항목 백신 프로그램 설치 대상 2003 웜, 트로이목마 등의 악성 바이러스로 인한 피해규모가 커지고 있으며 이에 대한 피해를 최소화하기 위해 반드시 바이러스 백신 프로그램을 설치해야 함. 바이러스 백신 프로그램은 바이러스 감염 여부 진단 및 치료, 파일의 보 호를 할 수 있으며 예방도 가능함. 바이러스로 인한 파일의 감염을 예방할 수 있음. 바이러스 백신 설치유무 확인 중기 적용 양호 바이러스 백신 프로그램이 설치되어 있는 경우 취약 바이러스 백신 프로그램이 설치되어 있지 않은 경우 담당자를 통해 바이러스 백신을 설치토록 권고 바이러스 백신 프로그램을 반드시 설치해야 함. 안철수 연구소 : http://www.ahnlab.com 하우리 : http://www.hauri.co.kr 시만텍코리아 : http://www.symantec.co.kr 한국트렌드마이크로: http://www.trendmicro.co.kr/ 일반적인 경우 영향 없음 - 201 - - 202 -
점검분류 항목 보안 관리 위험도 상 분류번호 W-63 세부점검 항목 SAM 파일 접근 통제 설정 대상 Windows NT, 2000, 2003 Security Account Manager (SAM) 파일은 사용자와 그룹 계정들을 다 루고, LSA를 위한 인증을 제공함. 패스워드 공격 시도에 의한 Password Database 노출될 수 있으므로 Administrator 및 Sytem 그룹외에는 SAM 파일에 대한 접근이 제한되 어야 함 패스워드 유출 [Windows NT, 2000, 2003] %systemroot%\system32\config\sam>속성>보안에서 확인 양호 SAM 파일 접근권한에 Administrator, System 그룹만 모든권한 으로 등록되어 있는 경우 취약 SAM 파일에 Administrator, System 그룹 외 다른 그룹에 권한 이 설정되어 있을 경우 점검분류 항목 보안 관리 위험도 상 분류번호 W-64 Windows NT, 2000, 세부점검 항목 화면보호기 설정 대상 2003 사용자들은 시스템에서 얼마동안 떨어져 있을 경우에는 로그오프하거나 워크스테이션 잠김 설정이 되어있는지 여부를 확인함. 자리 이탈시의 정보 유출 가능성을 최소화 함. [Windows NT, 2000, 2003] 바탕화면>속성>화면보호기에서 확인[Windows NT, 2000, 2003] %systemroot%\system32\config\sam>속성>보안에서 확인 양호 화면보호기를 설정하고 암호를 사용하며 대기 시간이 5분일 경 우 취약 화면보호기가 설정되어 있지 않거나 암호를 사용하지 않거나 대기시간이 5분 초과 일 경우 화면보호기 사용, 대기시간 5분, 암호 사용 SAM 파일 권한 확인후 Administrator, System 그룹외 나머지 제거 [Windows NT, 2000, 2003] 1. %systemroot%\system32\config\sam>속성>보안 2. Administrator, System 그룹 외 다른 사용자 및 그룹 권한 제거 [Windows NT, 2000, 2003] 1. 바탕화면>속성>화면보호기>"다시 시작할 때 암호로 보호" 설정, "대 기 시간" 5분 설정 - 203 - - 204 -
점검분류 항목 보안 관리 위험도 상 분류번호 W-65 Windows NT, 2000, 세부점검 항목 로그온하지 않고 시스템 종료 허용 대상 2003 로그온창에 "시스템 종료"버튼이 활성화되면, 비인가된 사용자가 또는 인가된 사용자의 비의도적인실수 등으로 로그인을 하지않고도 시스템의 불법적인 시스템 다운을 가능하게 하여, 정상적인 서비스에 장애를 발생 시킬 수 있음. 시스템 종료 버튼을 비활성화 시킴으로 비인가된 사용자로부터의 불법 적인 시스템 다운, 비의도적인 실수 등을 미연에 방지할 수 있음. [Windows NT 4.0] H K E Y _ L O C A L _ M A C H I N E \ S O F T W A R E \ M i c r o s o f t \ W i n d o w s NT\CurrentVersion\Winlogon\ ShutdownWithoutLogon 값 확인 [Windows 2000, 2003] 시작>실행>SECPOL.MSC>로컬정책>보안옵션에서 확인 일반적인 경우 영향 없음 양호 "로그온 하지 않고 시스템 종료 허용"이 "사용안함"으로 설정되 어 있을 경우 취약 "로그온 하지 않고 시스템 종료 허용"이 "사용"으로 설정되어 있을 경우 시스템 종료 : 로그온 하지 않고 시스템 종료 허용 -> 사용안함 [Windows NT 4.0] H K E Y _ L O C A L _ M A C H I N E \ S O F T W A R E \ M i c r o s o f t \ W i n d o w s NT\CurrentVersion\Winlogon\ ShutdownWithoutLogon= 0 [Windows 2000, 2003] 1. 시작>실행>SECPOL.MSC>로컬정책>보안옵션 2. "로그온 하지 않고 시스템 종료 허용"을 사용안함 으로 설정 - 205 - - 206 -
점검분류 항목 보안 관리 위험도 상 분류번호 W-66 Windows NT, 2000, 세부점검 항목 원격 시스템에서 강제로 시스템 종료 대상 2003 이 보안 설정은 원격에서 네트워크를 사용하여 운영 체제를 종료할 수 있는 사용자 및 그룹을 결정하며 해당 권한 부여가 부적절 할 경우 서 비스 거부 공격에 이용 될 수 있음. 임의의 사용자가 원격에서 시스템을 종료 할 수 있음. [Windows 2000, 2003] 1. 시작>실행>SECPOL.MSC>로컬 정책>사용자 권한 할당 2. "원격 시스템에서 강제로 시스템 종료" 정책에서 확인 양호 "원격 시스템에서 강제로 시스템 종료" 정책에 "Administrators" 만 존재할 경우 취약 "원격 시스템에서 강제로 시스템 종료" 정책에 "Administrators" 외 다른 계정 및 그룹이 존재할 경우 점검분류 항목 보안 관리 위험도 상 분류번호 W-67 세부점검 항목 보안 감사를 로그할 수 없는 경우 즉시 시스템 종료 대상 Windows NT, 2000, 2003 이 정책 설정은 보안 이벤트를 기록할 수 없는 경우 컴퓨터를 종료할 것인지 여부를 결함. 이 정책을 사용할 경우 서비스 거부 공격으로 사용 될 수 있으며 비 정상 종료로 인해 시스템 및 데이터에 손상을 입힐 수 있음. 서비스 거부 공격에 이용될 수 있음. [Windows 2000, 2003] 시작>실행>SECPOL.MSC>로컬 정책>보안옵션에서 확인 원격 시스템에서 강제로 시스템 종료 -> Administrators [Windows 2000, 2003] 1. 시작>실행>SECPOL.MSC>로컬 정책>사용자 권한 할당 2. "원격 시스템에서 강제로 시스템dnjsrur 종료" 정책에 양호 "보안 감사를 로그할 수 없는 경우 즉시 시스템 종료" 정책이 " 사용안함" 으로 되어 있을 경우 취약 "보안 감사를 로그할 수 없는 경우 즉시 시스템 종료" 정책이 " 사용" 으로 되어 있을 경우 "Administrators" 외 다른 계정 및 그룹 제거 2003 - 감사:보안 감사를 로그할 수 없는 경우 즉시 시스템 종료 -> 사용안함 2000 - 보안 감사를 로그할 수 없는 경우 즉시 시스템 종료 -> 사용안 함 [Windows 2000, 2003] 1. 시작>실행>SECPOL.MSC>로컬 정책>보안옵션 2. "보안 감사를 로그할 수 없는 경우 즉시 시스템 종료" 정책을 "사용 안함" 으로 설정 - 207 - - 208 -
점검분류 항목 보안 관리 위험도 상 분류번호 W-68 세부점검 항목 SAM 계정과 공유의 익명 열거 허용 안 함 대상 Windows NT, 2000, 2003 SAM(보안 계정 관리자) 계정과 공유의 익명 열거가 허용될 경우 Windows에서는 익명 사용자가 도메인 계정(사용자, 컴퓨터 및 그룹)과 네트워크 공유의 이름 열거를 통해 악의적인 사용자가 계정 이름 목록 을 익명으로 표시한 다음 이 정보를 사용하여 암호를 추측하거나 사회 공학적 기술 공격을 수행 할 수 있음. 임의의 명령어 실행, 임의의 파일 수정, 시스템 관리자 권한 획득. [Windows NT] 1. 시작>실행>regedit 를 실행 2. HKLM\SYSTEM\CurrentControlSet\Control\LSA 레지스트리에서 확인 [Windows 2000] 시작>실행>SECPOL.MSC>로컬정책>보안옵션에서 확인 [Windows 2003] 시작>실행>SECPOL.MSC>로컬정책>보안옵션에서 확인 양호 해당 보안옵션 값이 설정 되어 있을 경우 취약 해당 보안옵션 값이 설정 되어 있지 않을 경우 레지스트리 값 또는 로컬보안정책 설정 [Windows NT] 1. 시작>실행>regedit 를 실행 2. HKLM\SYSTEM\CurrentControlSet\Control\LSA 레지스트리를 검 색. 3. 오른쪽 버튼을 눌러 새로만들기 DWORD값 을 선택. - 209 - - 210 -
[Windows 2003] 1. 시작>실행>SECPOL.MSC>로컬정책>보안옵션 2. "SAM 계정과 공유의 익명 열거 허용 안 함", "SAM 계정의 익명 열 거 허용 안 함" 에 각각 "사용" 을 선택 4. RestrictAnonymous 를 입력. 이때 값은 Default 값인 0 을 1 로 변 경. [Windows 2000] 1. 시작>실행>SECPOL.MSC>로컬정책>보안옵션 2. "익명의 연결에 추가적인 제한" 에 "명백한 익명의 사용권한이 없으 면 액세스 제한" 을 선택 - 방화벽과 라우터에서 135~139(TCP, UDP)포트의 차단을 통해 외부로 부터의 위협을 차단하도록 함. - 원천적으로 봉쇄. 네트워크 및 전화 접속 연결>로컬영역>등록정보>고급>고급설 정>Microsoft네트워크파일 및 프린트공유를 해제 해야 함. Active Directory, Clustered system 에서는 적용시 영향 있음 - 211 - - 212 -
점검분류 항목 보안 관리 위험도 상 분류번호 W-69 Windows NT, 2000, 세부점검 항목 Autologon 기능 제어 대상 2003 Autologon 기능을 사용하면 침입자가 해킹 도구를 이용하여 레지스트리 에서 로그인 계정 및 암호를 확인할 수 있으므로 Autologon 기능을 사 용하지 말아야 함. 비 허가자가 시스템에 물리적으로 접근시 시스템 정보 유출 및 손상. [Windows NT, 2000, 2003] 시작>실행>REGEDIT>HKLM\SOFTWARE\Microsoft\WindowsNT\Curr entversion\winlogon에서 확인 양호 AutoAdminLogon 값이 없거나 0으로 설정되어 있는 경우 취약 AutoAdminLogon 값이 1로 설정되어 있는 경우 반드시 자동 로그인을 사용할 경우를 제외하고 적용시 일반적으로 영 향 없음 해당 레지스트리 값이 존재할 경우 0 으로 설정 [Windows NT, 2000, 2003] 시작>실행>REGEDIT>HKLM\SOFTWARE\Microsoft\WindowsNT\Curr entversion\winlogon 2. AutoAdminLogon 값을 0으로 세팅. 3. DefaultPassword 엔트리가 존재한다면 삭제 - 213 - - 214 -
점검분류 항목 보안 관리 위험도 상 분류번호 W-70 세부점검 항목 이동식 미디어 포맷 및 꺼내기 허용 대상 Windows NT, 2000, 2003 이 정책 설정은 이동식 NTFS 미디어 포맷 및 꺼내기가 허용되는 사용자 를 결정. 사용자가 관리 권한을 가진 다른 컴퓨터로 이동식 디스크의 데 이터를 이동하여 파일에 대한 소유권을 얻고 자신에게 모든 권한을 부여 하여 파일을 보거나 수정할 수 있음. 중요 데이터 유출 [Windows 2000, 2003] 1. 시작>실행>SECPOL.MSC>로컬 정책>보안옵션 양호 "이동식미디어 포맷 및 꺼내기 허용" 정책이 "Administrator"으 로 되어 있을 경우 취약 "이동식미디어 포맷 및 꺼내기 허용" 정책이 "Administrator"으 로 되어 있지 않을 경우 2003 - 이동식 미디어 포맷 및 꺼내기 허용 -> Administrator 2000 - 이동식 NTFS미디어 꺼내기 허용 -> Administrator [ 서비스영향 ] [Windows 2000, 2003] 1. 시작>실행>SECPOL.MSC>로컬 정책>보안옵션 2. "이동식 미디어 포맷 및 꺼내기 허용" 정책을 "Administrator" 로 설 정 - 215 - - 216 -
점검분류 항목 보안 관리 위험도 상 분류번호 W-71 세부점검 항목 디스크볼륨 암호화 설정 대상 Windows NT, 2000, 2003 데이터 스토리지 분실 시 데이터 열람이 가능. 데이터 유출 [Windows 2000, 2003] 1. 폴더선택>속성>[일반]탭>고급>고급특성에서 데이터 보호를 위해 내용을 암호화 확인 양호 "데이터 보호를 위해 내용을 암호화" 정책이 선택 된 경우 취약 데이터 보호를 위해 내용을 암호화" 정책이 선택 되어 있지 않 은경우 EFS(Encryping File System) 활성화 [Windows 2000, 2003] 1. 폴더선택>속성>[일반]탭>고급>고급특성>데이터 보호를 위해 내용 을 암호화 점검분류 항목 보안 관리 위험도 중 분류번호 W-72 세부점검 항목 Dos공격 방어 레지스트리 설정 대상 Windows NT, 2000, 2003 Dos 공격에 대한 방어 레지스트리 설정 점검 서비스 거부 레지스트리 값 확인 권장 값으로 변경 HKLMSystemCurrentControlSetServicesTcpipParameters 값 이름: SynAttackProtect 키: TcpipParameters 값 종류: REG_DWORD 유효 범위: 0,1 기본값: 0 > 1로 값 이름: EnableDeadGWDetect 키: TcpipParameters 값 종류: REG_DWORD 유효 범위: 0, 1(False, True) 기본값: 1(True) >0로 값 이름: KeepAliveTime 키: TcpipParameters 값 종류: REG_DWORD - 시간(밀리초) 유효 범위: 1-0xFFFFFFFF 기본값: 7,200,000(2시간) >300,000(5분) 으로 복호키 분실 시, 데이터 복구 어려움 값 이름: NoNameReleaseOnDemand 키: NetbtParameters 값 종류: REG_DWORD 유효 범위: 0, 1(False, True) 기본값: 0(False) > 1로 잘못된 값 입력시 OS 재설치를 요구할 수 있음 - 217 - - 218 -
점검분류 항목 보안 관리 위험도 중 분류번호 W-73 세부점검 항목 사용자가 프린터 드라이버를 설치할 수 없게 함 대상 Windows NT, 2000, 2003 이 정책 설정은 모든 사용자가 프린터 드라이버를 설치할 수 있는지를 결정. 서버에 프린터 드라이버를 설치하는 경우 악의적인 사용자가 고의 적으로 잘못된 프린터 드라이버를 설치하여 컴퓨터를 손상시킬 수도 있 고, 사용자가 프린터 드라이버로 위장한 악성 코드를 실수로 설치할 수 도 있음. 악의적인 사용자에 의한 악성코드 설치 [Windows 2000, 2003] 1. 시작>실행>SECPOL.MSC>로컬 정책>보안옵션에서 확인 양호 "사용자가 프린터 드라이버를 설치할 수 없게 함" 정책이 "사용 "으로 되어 있을 경우 취약 "사용자가 프린터 드라이버를 설치할 수 없게 함" 정책이 "사용 안함"으로 되어 있을 경우 장치 : 사용자가 프린터 드라이버를 설치할 수 없게 함 -> 사용 [Windows 2000, 2003] 1. 시작>실행>SECPOL.MSC>로컬 정책>보안옵션 2. "사용자가 프린터 드라이버를 설치할 수 없게 함" 정책을 "사용" 으 로 설정 - 219 - - 220 -
점검분류 항목 보안 관리 위험도 중 분류번호 W-74 세부점검 항목 세션 연결을 중단하기 전에 필요한 Windows NT, 2000, 대상 유휴시간 2003 이 정책 설정은 세션이 중단되기 전에 SMB(서버 메시지 블록) 세션에 서 보내야 하는 연속 유휴 시간을 결정. 각 SMB 세션에서는 서버 리소 스를 사용하며, null 세션의 수가 많으면 서버 속도가 느려지거나 서버 에 오류가 발생할 수 있으며 공격자는 SMB 세션을 반복 설정하여 서 버의 SMB 서비스가 느려지거나 응답하지 않도록 하여 서비스 거부 공 격을 실행 할 수 있음. 클라이언트가 작업을 다시 시작하면 SMB 세션이 자동으로 다시 설정되 기 때문에 별다른 영향 없음. 서비스 거부공격이 가능 [Windows 2000, 2003] 1. 시작>실행>SECPOL.MSC>로컬 정책>보안옵션에서 확인 양호 "로그온 시간이 만료되면 클라이언트 연결 끊기" 정책을 "사용" 으로 설정하고 "세션 연결을 중단하기 전에 필요한 유휴 시간" 정책이 "15분" 으로 설정되어 있을 경우 취약 "로그온 시간이 만료되면 클라이언트 연결 끊기" 정책이 "사용 안함" 으로 설정되어 있거나 "세션 연결을 중단하기 전에 필요한 유휴 시간" 정책이 "15분" 으로 설정되어 있지 않을 경우 (2003) Microsoft 네트워크 서버 : 로그온 시간이 만료되면 클라이언트 연결 끊기 -> 사용 Microsoft 네트워크 서버 : 세션 연결을 중단하기 전에 필요한 유휴 시 간 -> 15분 (2000) 로그온 시간이 만료되면 클라이언트 연결 끊기 -> 사용 세션 연결을 끊기전 필요한 유휴시간 -> 15분 [Windows 2000, 2003] 1. 시작>실행>SECPOL.MSC>로컬 정책>보안옵션 2. "로그온 시간이 만료되면 클라이언트 연결 끊기" "사용" 설정 및 "세 션 연결을 중단하기 전에 필요한 유휴 시간" 정책을 "15분" 설정 - 221 - - 222 -
점검분류 항목 보안 관리 위험도 하 분류번호 W-75 Windows NT, 2000, 세부점검 항목 경고 메시지 설정 대상 2003 시스템에 로그온 하려는 사용자들에게 관리자는 시스템의 불법적인 사 용에 대하여 경고 창을 띄울 수 있음. 로그온 하기 이전에 사용자는 이 러한 경고 메시지를 주지한 후 "확인" 버튼을 누름으로써 패스워드를 입력할 수 있는 로그인 창이 나타남. 이러한 경고창의 효과는 악의의 사용자로부터 시스템을 직접적으로 보 호하지는 못하지만 관리자가 적절한 보안수준으로 시스템을 보호하고 있으며 공격자의 활동을 주시하고 있다는 생각을 들게 하여 간접적으로 공격 피해를 감소 시키는 효과를 볼 수 있음. 시스템 침해 시도 감소 * 이처럼 변경된 레지스트리 키의 내용은 시스템을 로그오프한 후 반 영됨. [Windows NT] HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentV ersion\winlogon 에서 확인 [Windows 2000, 2003] 1. 시작>실행>SECPOL.MSC>로컬정책>보안옵션에서 확인 [Windows 2000, 2003] 1. 시작>실행>SECPOL.MSC>로컬정책>보안옵션 2. "로그온 시도하는 사용자에 대한 메시지 제목", "로그온 시도하는 사 용자에 대한 메시지 텍스트" 에 적절한 값을 입력 예)로그온 시도하는 사용자에 대한 메시지 제목 : Warnning!! 로그온 시도하는 사용자에 대한 메시지 텍스트 : This system is for the use of authorized users only. 양호 로그인 경고 메시지/제목이 설정되어 있을 경우 취약 로그인 경고 메시지/제목이 설정되어 있지 않을 경우 제목/메시지에 경고 문구 삽입 [Windows NT] 1. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentV ersion\winlogon 2. LegalNoticeCaption : 제목 3. LegalNoticeText : 메시지 내용 일반적인 경우 영향 없음 - 223 - - 224 -
점검분류 항목 보안 관리 위험도 중 분류번호 W-76 Windows NT, 2000, 세부점검 항목 사용자별 홈 디렉터리 권한 설정 대상 2003 사용자 계정별 홈 디렉터리의 권한이 제한되어 있지 않을 경우 임의의 사용자가 다른 사용자의 홈 디렉터리의 파일 및 디렉터리에 접근이 가 능하므로 해당 사용자만의 접근 권한을 설정해야 함. 홈디렉터리 파일 위/변조 [Windows NT] 1. Windows NT : C:\WinNT\Profiles\사용자 홈디렉터리>등록정보> 보안에서 확인 [Windows 2000, 2003] 1. C:\Documents and Settings\사용자 홈디렉터리>속성>보안에서 확 인 양호 홈디렉터리에 Everyone 권한이 없을 경우(All Users, Default User 디렉터리는 제외) 취약 홈디렉터리에 Everyone 권한이 있을 경우 Everyone 권한 제거 [Windows NT] 1. Windows NT : C:\WinNT\Profiles\사용자 홈디렉터리>등록정보> 보안 2. Everyone 권한 제거(All Users, Default User 디렉터리는 제외) [Windows 2000, 2003] 1. C:\Documents and Settings\사용자 홈디렉터리>속성>보안 2. Everyone 권한 제거(All Users, Default User 디렉터리는 제외) - 225 - - 226 -
점검분류 항목 보안 관리 위험도 중 분류번호 W-77 세부점검 항목 LAN Manager 인증 수준 대상 Windows NT, 2000, 2003 이 정책 설정은 네트워크 로그온에 사용할 Challenge/Response 인증 프 로토콜을 결정 함. LAN Manager 는 네트워크를 통한 파일 및 프린터 공유 등과 같은 작업시 인증을 담당함. 보다 안전한 인증을 위해 NTLMv2 를 사용하는 것이 좋으며 NTLMv2 는 Windows 2000, 2003, XP 이상에서 지원되며 Windows 98, NT 버전과 통신을 할 경우 패치를 설치해야 함. 암호 재생 공격에 취약함. [Windows 2000, 2003] 시작>실행>SECPOL.MSC>로컬 정책>보안옵션에서 확인 Windows 98/NT 와 파일 및 프린터 공유 등의 작업을 하지 않을 경우 양호 "LAN Manager 인증 수준" 정책에 "NTLMv2 응답만 보냄" 이 설정되어 있을 경우 취약 "LAN Manager 인증 수준" 정책에 "LM" 및 "NTLM"인증이 설 정되어 있을 경우 2003 - 네트워크 보안:LAN Manager 인증 수준 -> NTLMv2 응답만 보 냄 2000 - LAN Manager 인증 수준 -> NTLMv2 응답만 보냄 [Windows 2000, 2003] 1. 시작>실행>SECPOL.MSC>로컬 정책>보안옵션 2. "LAN Manager 인증 수준" 정책에 "NTLMv2 응답만 보냄" 을 설정 - 227 - - 228 -
점검분류 항목 보안 관리 위험도 중 분류번호 W-78 세부점검 항목 보안 채널 데이터 디지털 암호화 또는 서명 대상 Windows NT, 2000, 2003 이 정책 설정은 도메인 구성원이 시작하는 모든 보안 채널 트래픽을 서명하거나 암호화할지 여부를 설정함 인증 트래픽을 끼어들기 공격, 반복 공격 및 기타 유형의 네트워크 공 격에서 보호하기 위해 Windows 기반 컴퓨터에서는 NetLogon을 통해 보안 채널이라는 통신 채널을 만들며 이 채널은 컴퓨터 계정을 인증하 며 원격 사용자가 네트워크 리소스에 연결되어 있고 사용자 계정이 신 뢰할 수 있는 도메인에 있는 경우 사용자 계정도 인증함. 이 정책을 활 성화 할 경우 "보안 채널 데이터를 디지털 암호화(가능하면)", "보안 채 널 데이터를 디지털 서명(가능하면)" 도 자동으로 활성화 됨. Windows NT 4.0 서비스 팩 6a(SP6a) 이상 버전의 Windows 운영 체제 만이 보안 채널 디지털 암호화 및 서명을 지원함. 암호 추측 공격이 쉬워짐 [Windows 2000, 2003] 시작>실행>SECPOL.MSC>로컬 정책>보안옵션에서 확인 도메인 구성원만 해당, Windows 98/NT 와 파일 및 프린터 공유 등의 작업을 하지 않을 경우 양호 아래 3가지 정책이 "사용" 으로 되어 있을 경우 취약 아래 3가지 정책이 "사용안함" 으로 되어 있을 경우 도메인 구성원: 보안 채널 데이터를 디지털 암호화 또는 서명(항 상) 도메인 구성원: 보안 채널 데이터를 디지털 암호화(가능한 경우) 도메인 구성원: 보안 채널 데이터를 디지털 서명(가능한 경우) 보안 채널 데이터를 디지털 암호화/서명 관련 3개 정책 -> 사용 [Windows 2000, 2003] 1. 시작>실행>SECPOL.MSC>로컬 정책>보안옵션 2. 위 3가지 정책을 모두 "사용" 으로 설정 - 229 - - 230 -
점검분류 항목 보안 관리 위험도 중 분류번호 W-79 Windows NT, 2000, 세부점검 항목 파일 및 디렉토리 보호 대상 2003 NTFS 파일시스템은 FAT 시스템에 비해 좀 더 많은 보안기능을 제공해 주고 윈도우 의 NTFS 방식 포맷은 모든 파일과 디렉터리에 소유권과 사용 권한을 제공해 줄 수 있으며, 접근통제목록(Access Control List)를 제공해 줄 수 있음. 보안을 감안한다면 FAT 파일시스템의 사용보다는 NTFS의 사용을 권장함. 기존에 FAT 파일시스템을 사용하다가 NTFS로 변환하기 위해서는 "convert.exe" 명령을 사용할 수 있음. 하지만 FAT 파일시스템으로 운영 중에 변환할 경우는 DefaultACL이 적용되지 않으므로 가능한 초기 설치 시 NTFS 파일시스템을 선택하는 것이 보다 안전 함. 중요 데이터 열람 및 삭제 해당파일의 등록정보>보안에서 계정과 권한 설정을 확인. 양호 파일 시스템이 NTFS 일 경우 취약 파일 시스템이 FAT일 경우 FAT 파일시스템을 사용하고 있다면 NTFS 파일시스템으로 변환하도록 함. [ 서비스영향 ] 파일 시스템을 변경할 경우 기존 파일시스템에 영향을 줄 수 있음. [Windows NT, 2000, 2003] 명령어 프롬프트(DOS창)에서 다음과 같이 입력. 시작>실행>CMD>convert 드라이브명: /fs:ntfs 예)convert F: /fs/ntfs 라고 입력하면 F 드라이브는NTFS 형식으로 포맷 됨. 점검분류 항목 보안 관리 위험도 중 분류번호 W-80 Windows NT, 2000, 세부점검 항목 컴퓨터 계정 암호 최대 사용 기간 대상 2003 이 정책 설정은 도메인 구성원이 도메인 암호를 변경해야 하는 기간을 결정. 기본적으로 도메인 구성원의 도메인 암호는 자동으로 변경하도록 설정되어 있음. 사용자 암호 해독 우려. 1. 관리도구>로컬 보안 정책>보안 옵션>도메인 구성원: 컴퓨터 계정 암호 최대 사용 기간에서 일수 확인. 2. 관리도구>컴퓨터 관리>시스템 도구>로컬 사용자 및 그룹>사용자에 서 확인. 양호 "컴퓨터계정 암호 변경 사용 안 함" 정책 "사용안함" 설정 및 " 컴퓨터 계정 암호 최대 사용 기간" 정책이 "90일" 로 설정되어 있을 경 우 취약 "컴퓨터계정 암호 변경 사용 안 함" 정책이 "사용"으로 설정되 어 있거나 "컴퓨터 계정 암호 최대 사용 기간" 정책이 "90일" 로 설정 되어 있지 않을 경우 도메인 구성원: 컴퓨터 계정 암호 변경 사용 안 함 -> 사용안함 도메인 구성원: 컴퓨터 계정 암호 변경 사용 안 함 -> 90일 [ 서비스영향 ] 도메인 구성원만 해당, [Windows 2003] 1. 시작>실행>SECPOL.MSC>로컬 정책>보안옵션 2. "컴퓨터 계정 암호 변경 사용 안 함" 정책 "사용안함" 설정 및 "컴퓨 터 계정 암호 최대 사용 기간" 정책을 "90일" 로 설정 - 231 - - 232 -
점검분류 항목 보안 관리 위험도 중 분류번호 W-81 세부점검 항목 시작프로그램 목록 분석 대상 Windows NT, 2000, 2003 윈도우가 부팅될 때 같이 시작 프로그램도 동시에 실행되는데 이때 너 무 많은 시작프로그램 때문에 속도가 떨어지기도 하지만 공격자가 심어 놓은 악성 공격 프로그램이나 해킹 툴이 존재 하고 있을지 모르기 때문 에 수시로 검사가 필요함 또한 많은 시작프로그램이 실행되고 있을 경우에는 시스템 부팅 속도 로 떨어지므로 불필요한 시작 프로그램은 체크를 해지시켜야 함. 공격자의 해킹 툴의 의한 방어 취약. 부팅속도 저하. [Windows NT,2000, 2003] 1.시작>검색>msconfig 명령어 입력>시작프로그램 탭 클릭 확인. 중기 적용 일반적인 영향 없음 양호 시작프로그램에서 불필요한 서비스 체크 해제. / 정기적인 검 사. 취약 시작프로그램에서 불필요한 서비스 체크 해제 하지 않음. / 검 사를 하지 않음. [ 조치 보안 ] [Windows NT,2000, 2003] 1. 시작>검색>msconfig 명령어를 입력 2. 시작 프로그램 탭을 클릭하고, 시작 프로그램 목록 중에 불필요하거 나 의심스러운 체크 표시를 해제함. 일반적인 영향 없음. - 233 - - 234 -
점검분류 항목 DB 관리 위험도 중 분류번호 W-82 Windows SQL 세부점검 항목 Windows 인증 모드 사용 대상 Server 2005 데이터베이스 엔진 인증 모드에는 Windows 인증 모드와 SQL Sever 가 있는 혼합 모드 두 가지 구성이 있음. Windows 인증 모드를 선택하면 설치 프로그램이 SQL Sever 인증을 위해서 sa 라는 계정을 만드는데 이 계정은 비활성화 된다. 만약에 sa 라는 계정을 활성화 시키려면 혼합모 드를 사용하게 되는데, sa 계정은 일반 사용자에게 잘 알려져 있고, 악 의적인 사용자의 공격의 대상이 될 수 있기 때문에, 꼭 필요하지 않는 경우에는 사용하지 활성화 시키면 안 된다. 사용될 경우에는 강력한 암 호 체계를 사용해야 함. Windows 인증은 kerberos 보안 프로토콜을 사용하며, 강력한 암호 정책 을 적용하여 적합한 복잡성 수준을 유지, 계정 잠금 및 암호 만료를 지 원하고 SQL Server가 Windows에서 제공하는 자격 증명을 신뢰한 트러 스트 연결을 사용하기 때문에 Windows 인증을 쓰는 것이 좋음. 혼합모드 사용 시 sa 계정이 활성화되어, 악의적인 공격자의 공격에 의 하여 데이터 손실, 수집 당할 위험성이 존재함. DB 담당자에게 문의하여 확인 필요. [기준] 양호 - Windows 인증을 사용하여, 강력한 암호 정책으로 인하여 안전 성과 신뢰성이 보장. 취약 - 혼합 인증을 사용하면, Sa 계정이 활성화 되어 공격자의 목표가 될 수 있으며, Windows 인증에 비하여 낮은 안전성으로 인해 보안성 에 취약. [조치방법] Windows 만 인증 활성화 [SQL Server 2005] 1. 마우스 오른쪽 단추로 서버 클릭>등록 정보>보안 탭>인증>인증모 드>Windows만[W] 를 클릭하여 활성화 시킨다. - 235 - - 236 -
3. 보안장비 취약점 항목 상세 설명서 점검분류 항목 계정 관리 위험도 상 분류번호 S-1 점검분류 항목 계정 관리 위험도 상 분류번호 S-2 세부점검 항목 보안장비 Default 패스워드 변경 대상 보안장비 세부점검 항목 보안장비 Default 계정 변경 대상 보안장비 디폴트 로그인 계정은 장비 제조업체에서 출고 시 설정되어 나오는 기 본 로그인 아이디를 말한다. 각 제조사의 장비별 디폴트 로그인 아이디 리스트는 인터넷 등을 통해 쉽게 구할 수 있어, 악의적인 사용자가 이러한 디폴트 로그인계정을 이 용하여 불법적으로 방화벽 장비에 접근할 수 있다. 방화벽 장비에 대한 불법 접근은 일반 정보시스템 침해사고 보다 훨씬 심각한 피해를 초래할 수 있다. 불법접근이 가능한 경우 시스템으로의 침입경로를 제공해 줄 수도 있다. 보안장비에 불법적입 침입 허용 1. Web을 통한 접속 2. Default 계정, 비밀번호 입력 3. 접속확인 디폴트 로그인 패스워드는 장비 제조업체에서 출고 시 설정되어 나오 는 기본 로그인 패스워드를 말한다. 각 제조사의 장비별 디폴트 로그인 패스워드 리스트는 인터넷 등을 통 해 쉽게 구할 수 있어, 악의적인 사용자가 이러한 디폴트 패스워드를 이용하여 불법적으로 방화벽 장비에 접근할 수 있다. 보안장비에 대한 불법 접근은 일반 정보시스템 침해사고 보다 훨씬 심 각한 피해를 초래할 수 있다. 불법접근이 가능한 경우 시스템으로의 침 입경로를 제공해 줄 수도 있다. 보안장비에 불법적입 침입 허용 1. Web을 통한 접속 2. Default 계정, 비밀번호 입력 3. 접속확인 1. 보안장비에서 제공하고 있는 계정 메뉴에서 ID 변경 2. ID 변경이 불가능 할 경우 패스워드로 보완 필요 1. 보안장비에서 제공하고 있는 패스워드 메뉴에서 패스워드 변경 2. 보안장비가 제공하는 범위에서 패스워드 설정 (특수문자, 숫자, 영소문자 포함 8자리이상) 일반적으로 이상 영향 없음 일반적으로 이상 영향 없음 - 237 - - 238 -
점검분류 항목 계정 관리 위험도 상 분류번호 S-3 세부점검 항목 보안장비 계정별 권한 설정 대상 보안장비 점검분류 항목 계정 관리 위험도 상 분류번호 S-4 세부점검 항목 보안장비 계정 관리 대상 보안장비 여러 사람이 접속하여 사용하는 경우, 계정별 부적절한 권한 설정으로 인해 보안장비에 영향을 끼칠 수 있다. 예를 들면, 보안 정책과 관련 없는 관리자에게 보안정책을 수정할 수 있는 권한이 부여된다면, 의도 하지 않았어도 보안장비의 보안정책이 수정될 수도 있다. 계정을 제대로 관리하지 않는 경우, 자신의 업무와 관련이 없는 애플리 케이션 및 자원에 접속할 수 있기 때문에 정보 보호가 힘들어지며, 그 밖에 다른 여러 가지 보안 문제가 파생될 수 있다. 운영자 부주의로 발생한 시스템 장애 발생 시 사후 추적을 할 수 있는 방안을 마련하지 못하고 있으며, 휴면중인 사용자 계정이 시스템에 지 잘못된 권한 설정으로 추가적인 피해 발생 증가 속적으로 존재하여 타인으로 인해 악의적인 목적으로 사용될 가능성을 내포하고 있다. 1. 보안장비에서 제공하고 있는 계정 메뉴에서 계정별 권한 확인 시스템 담당자들이 관리 편의를 위하여 하나의 관리 계정을 공용으로 사용하기도 하는데, 이렇게 여러 사용자가 공유하여 사용하는 관리 계 정은 개별적으로 세부적인 권한을 관리하기가 매우 어렵다. 또 계정의 생성/변경/삭제 및 시스템 접근이력 등에 대한 데이터를 체계적으로 관 리하지 않아 사용자의 시스템 사용 현황을 확인하거나 추적이 쉽지 않 다. 1. 보안장비에서 제공하고 있는 계정 메뉴에서 새로운 계정 생성 2. 새로운 계정 담당자에 대한 역할 확인 후 권한 부여 네트워크 장애, 정보유출, 비인가 사용자 접속 허용 보안장비에서 제공하고 있는 계정 메뉴에서 계정 및 담당자 확인 시스템에 대해 1인 1계정 및 공용으로 사용하는 공유 계정의 사용금지 및 사용하지 않는 계정은 삭제 하여 시스템 접근 이력을 관리하여 명 시적인 계정 관리 설정 일반적인 영향 없음 중요한 것은 시스템이 아닌 사람을 중심으로 하는 통합된 계정관리가 필요하다는 것이다. - 239 - - 240 -
점검분류 항목 계정 관리 위험도 중 분류번호 S-5 세부점검 항목 로그인 실패횟수 제한 대상 보안장비 점검분류 항목 접근 관리 위험도 상 분류번호 S-6 세부점검 항목 보안장비 원격 관리 접근 통제 대상 보안장비 암호 공격에서는 자동화된 방법을 통해 모든 사용자 계정에 대해 수천 또는 수백만 개의 암호 조합을 시도하기 때문에 가능한 로그온 실패 수 를 제한하여야 함 원격 접속 IP나 계정을 제한하지 않는다면 임의의 사용자가 원격으로 접속하여 해당 보안장비의 정보를 임의로 변경하거나 훔쳐 갈 가능성이 있으므로 접속 IP 와 계정 제한해야 함 Brute force에 의한 지속적인 계정 공격의 위험. 비인가 사용자가 접속하여 데이터 변경, 손실, 해킹 할 가능성이 있음 보안장비에서 제공하고 있는 계정 메뉴에서 로그인 임계값 확인 보안장비에서 제공하고 있는 메뉴에서 접속 IP나 계정 제한 확인 중기 적용 보안장비에서 제공하고 있는 계정 메뉴에서 Lockout 기능 설정 특정 IP나 계정에서만 접속할 수 있도록 설정. - 241 - - 242 -
점검분류 항목 접근 관리 위험도 상 분류번호 S-7 세부점검 항목 보안장비 보안 접속 대상 보안장비 점검분류 항목 접근 관리 위험도 상 분류번호 S-8 세부점검 항목 Session timeout 설정 대상 보안장비 기존의 TCP/IP 가 데이터 암호화를 위한 어떠한 방법도 제공해주지 않 기 때문에 Sniffing등을 통한 네트워크 내에서의 메시지 전송을 도청 당할 수 있다. 관리자가 장비에 접속하고 무의식적으로 장시간 접속 터미널을 떠났을 때 자동으로 접속을 종료하거나 로그아웃이 되도록 설정하는 것이 좋 은데, 이는 실수로 로그아웃을 하지 않고 자리를 뜨는 경우에 대비하기 위함임 암호화되지 않은 패킷을 전달하기 때문에 각종 위험에 노출될 가능성 이 높음 비 인가자 접속으로 인한 악의적인 행위 발생 1. https 를 통한 접속 확인 벤더별 설정 값 확인. 대부분의 보안장비는 default 로 되어 있음 제품마다 상이하므로 메뉴에서 Timeout 기능 활성화 설정 2. ssh 를 통한 접속 확인 장기 적용 보안장비 접속 시, 가능하다면 SSL 등의 암호화 접속 활용 (제품마다 상이하므로 벤더사에 문의) - 243 - - 244 -
점검분류 항목 패치 관리 위험도 상 분류번호 S-9 세부점검 항목 벤더에서 제공하는 최신 업데이트 적용 대상 보안장비 점검분류 항목 로그 관리 위험도 중 분류번호 S-10 세부점검 항목 보안장비 로그 설정 대상 보안장비 많은 취약점들 중 어떤 취약점은 반드시 패치를 적용해야만 장비의 안 정성을 보장할 수 있기 때문에 심각한 버그에 대해서는 신속한 패치 적용을 고려해야 함 로그 정보를 사용함으로써 관리자는 보안장비의 작동과 손상 여부를 파악할 수 있다. 또, 어떤 종류의 침입이나 공격이 진행되고 있는지 알 수 도 있다. 패치 미적용으로 인한 취약점 노출 보안사고의 징후가 발견 되었을 때 원인 규명을 할 수 없음 자동 업데이트 기능 및 벤더사에 문의 보안장비의 로그 설정 메뉴 확인 중기 적용 벤더사에 문의하여 자동 업데이트 기능 설정 정책에 따른 로깅 설정 각 벤더마다 설정방법 상이 최신 업데이트 적용 시 유의사항 발생할 수 있음 상세한 로깅 설정은 보안장비 기능에 영향을 미칠 수 있음 - 245 - - 246 -
점검분류 항목 로그 관리 위험도 중 분류번호 S-11 세부점검 항목 보안장비 로그 정기적 검토 대상 보안장비 점검분류 항목 로그 관리 위험도 중 분류번호 S-12 세부점검 항목 보안장비 로그 보관 대상 보안장비 로깅에 관해 기억해야 할 사항 중 중요한 것은 로그를 정기적으로 조 사해야 한다는 것이다. 로그를 정기적으로 검사함으로써, 해당 장비와 네트워크 상태의 동향을 파악할 수 있다. 정상적 운영상태 및 그 상태 가 로그에 반영되어 있음을 확인함으로써 비정상적인 상태 또는 공격 상태를 식별할 수 있다 보안장비 로그를 법규 기준에 따라 보관하고, 효율적이고 경제적으로 저장 관리하는 정책을 수립하지 않으면, 추후 필요한 용도에 따라 제출 할 수 없게 됨 보안사고 발생 시 원인 분석 및 원인을 찾을 수 없음 공격, 방화벽 규칙의 문제 파악, 그리고 네트워크 상의 비정상적인 행 동을 파악하여 사고를 방지 할 수 없음 보안장비 로그를 정기적으로 분석하여 보관하는지 확인 보관된 로그 날짜 확인 중기 적용 중기 적용 양호 정책에 따라 로그 보관 설정이 되어 있음 취약 로그 보관 정책이 없고, 관리되고 있지 않음 양호 로그 수집이 설정되어 있고, 분석이 정기적으로 되고 있음 취약 로그 수집이 설정되어 있지 않고, 분석이 되고 있지 않음 1. 로그 수집 설정 보안장비 로그 보관 설정에서 로그 저장기간 확인 및 변경 (별도의 장비에 보관하고 있다면 로그 보관 정책에 맞춰 보관 설정) 각 벤더마다 설정방법 상이 2. 로그 분석 도구를 사용하여 결과 생성 및 리포트 제공 (로그를 수집하여 수작업으로 분석하는 것은 시간과 인적으로 무리가 있으므로 자동 로그 분석 도구를 사용) - 247 - - 248 -
점검분류 항목 로그 관리 위험도 중 분류번호 S-13 세부점검 항목 보안장비 정책 백업 설정 대상 보안장비 점검분류 항목 로그 관리 위험도 중 분류번호 S-14 세부점검 항목 원격 로그서버 사용 대상 보안장비 보안장비의 정책은 조직의 요구에 맞게 작성되어 운영되고 있다. 그러한 정책들도 중요한 자산이며, 분실 시 조직의 서비스 운영에 큰 차질이 생길 수 있다. 정책이 복잡하면 할수록, 새로 정책을 수립 하는 데 시간과 경제적인 손실이 늘어나게 된다. 보안장비 장애 시, 정책 복구가 힘들어 정상적인 서비스 구현 안됨 로그에는 장비의 이상이나 침입흔적이 남아 있을 수 있기 때문에 별도 의 로그 분석 시스템에서 장비의 로그를 모으고 분석해야 하는데 Syslog 로깅을 활용함 이런 기능을 사용할 수 있음. 장비와 네트워크 관리에 있어 로그(log)는 아주 중요한 위치를 차지하 는 것으로, 일반적으로 각 장비의 로그를 개별적으로 저장하지 않고 별 도의 로그 서버로 한 곳에서 통합 관리할 것을 권함. 보안장비에 적용된 정책을 별도의 파일로 보관 확인 타인의 내부 침입으로 인해 로그가 분석 및 훼손될 우려가 있음 보안장비 로그 설정 메뉴에서 syslog 설정 확인 보안장비 설정 메뉴에서 정책 백업 설정. 별도의 파일로 export 중기 적용 각 벤더마다 설정방법 상이 원격 syslog 로그 수집 서버 설정 - 249 - - 250 -
점검분류 항목 로그 관리 위험도 하 분류번호 S-15 세부점검 항목 로그 서버 설정 관리 대상 보안장비 점검분류 항목 로그 관리 위험도 중 분류번호 S-16 세부점검 항목 NTP 서버 연동 대상 보안장비 Syslog 서버는 기본적으로 모든 IP로부터 로그 메시지를 받아들인다. 이 경우에 공격자는 이미 syslog 서버에 저장되어 있는 로그 메시지를 변경 하지는 못하지만 조작된 로그 메시지를 전송함으로써 관리자에게 혼란을 야기시킬 수 있다. 또한, syslog 서버의 디스크를 모두 조작된 로그로 채 움으로써 정상적으로 발생된 로그가 저장될 수 없도록 할 수 있다. 따라 서, 외부의 IP 주소를 가진 시스템으로부터 로그를 받아들이지 않도록 syslog 서버를 설정하여야 한다. 이를 위해서는 보더 라우터에 외부로부 보안장비들의 시간을 동기화시키는 것은 매우 중요하다. NTP는 RFC958 을 통하여 처음 등장하여 장비의 시간 동기화 프로토콜의 표준이 되었다. 만약 보안장비에 NTP와 같은 프로토콜이 적용되어 있지 않다면 로그파 일 관리를 시간별로 일관되게 하지 못할 것이며 이는 네트워크 관리, accounting, 사고 분석 등을 수행하는 데 큰 단점으로 작용할 것이다. 따 라서 정확한 시간 관리는 안전한 보안을 유지하는 필수적인 조건이라 할 수 있다. 터 syslog 패킷(UDP 포트 514)이 유입될 수 없도록 ACL을 적용한다. 잘못 전송된 로그로 인해 로그 분석을 제대로 할 수 없음 syslog 서버에서 syslog 수집 제한 설정 가능 확인 장비들의 상이한 시간설정은 정확한 로그 분석을 어렵게 함 보안장비 시간 설정에서 NTP 프로토콜 연동 확인 및 벤더사에 문의 1. syslog 서버에서 로그 수집 제한 기능 설정 보안장비 설정 메뉴에서 NTP 서버 연동 설정 2. 네트워크 장비에서 수집 제한 설정 특정 내부 네트워크에서의 syslog 전송만 허용할 경우 ACL을 적용하여 제어할 수 있다. - 251 - - 252 -
점검분류 항목 기능 관리 위험도 중 분류번호 S-17 세부점검 항목 정책 관리 대상 보안장비 점검분류 항목 기능 관리 위험도 상 분류번호 S-18 세부점검 항목 NAT 설정 대상 방화벽 표준 절차와 지침이 필요. 관리자 마다 자신의 관리 방법을 적용한다면 그 침입차단시스템의 정책은 다양한 버전이 존재하고 관리자가가 퇴사 하거나 팀을 옮기게 될 경우, 이는 침입차단 시스템의 정책 보안성에 심각한 문제를 발생할 수 있으므로 관리자에 따라서 개별적인 정책 관 리 방법이 존재하지 않도록 표준적인 정책 관리와 지침이 필요합니다. 외부사용자의 비인가 접근 NAT를 사용하는 목적에는 2가지가 있는데, 첫째는 인터넷의 공인 IP주 소를 절약할 수 있다는 점이고 둘째는 인터넷이란 공공망과 연결되는 사용자들의 고유한 사설망을 침입자들로부터 보호할 수 있다는 점이다. 공개된 인터넷과 사설망 사이에 방화벽(Firewall)을 설치하여 외부 공격 으로부터 사용자의 통신망을 보호하는 기본적인 수단으로 활용할 수 있다. 자신에게 할당된 공인 IP주소만 외부로 알려지게 하고, 내부에서 는 사설 IP주소만 사용하도록 하여 필요시에 이를 서로 변환시켜 준다. 정책에 대한 주기적인 검사로 미사용 & 중복된 정책 확인 따라서 외부 침입자가 공격하기 위해서는 사설망의 내부 사설 IP주소 를 알아야 하기 때문에 공격이 불가능해지므로 내부 네트워크를 보호 할 수 있다. 침입차단 시스템의 정책 관리 시, 객체관리는 관리자의 편의와 발생할 수 있는 오류를 최소화하기 위하여 기존 IP대신에 관리자가 인식하기 용이한 객체명 을 사용합니다. 이 객체명 을 이용해서 관리자가 숫자 내부 네트워크 정보 노출 공인 IP 확인 사이트에 접속하여 확인 (IP ADDRESS)의 오타나 서버의 착각을 최대한 방지할 수 있습니다. 이런 객체를 관리할 때 가장 중요한 것은 관리자가 직관적으로 인식하 기 용이하게 명명이 되어야 하며, 다른 관리자들이 혼동을 최소화 할 수 있는 표준 명명 규약 이 있어야 한다는 점입니다. 객체 관리와 더불어 정책의 입력 시, 서로 연관성이 있는 서비스들은 대부분의 네트워크 보안 제품들은 NAT 기술을 기본으로 채택하고 있음 비슷한 카테고리로 분류하여 정책 점검 시 검색이 용이해야 하고 관리 자마다 같은 정책내의 세부 규칙을 여러 곳에 분산시키지 않도록 해야 합니다. 추가로 정책내의 세부 규칙에 대한 카테고리가 존재하는지, 그 리고 그 카테고리 내에서 정렬 규칙이 존재하는지 등에 대해서 관리자 가 다르더라도 존재할 수 있는 "정책 명명 방식 의 차이가 최소화 되도록 해야 합니다. 즉, 어떤 관리자가 정책을 변경하더라도 같은 방 법으로 정책을 변경할 수 있는 정책 변경/관리 세부 지침이 존재해야 합니다. 정책의 입력 시, 정책이 침입차단시스템의 성능과의 관계를 고려하였는 가에 대해서 점검합니다. 일반적으로 가장 정책의 적용을 많이 받게 되 는 공개 서비스군 카테고리가 정책의 최고 kdeks에 존재하고 그 다음 으로 접근이 많은 서비스군 카테고리가 존재하는 것이 바람직합니다. - 253 - - 254 -
점검분류 항목 기능 관리 위험도 상 분류번호 S-19 세부점검 항목 DMZ 설정 대상 방화벽 점검분류 항목 기능 관리 위험도 상 분류번호 S-20 세부점검 항목 최소한의 서비스만 허용 대상 보안장비 컴퓨터 보안에서의 비무장지대(영어: Demilitarized zone, DMZ)는 조직 의 내부 네트워크와 (일반적으로 인터넷인) 외부 네트워크 사이에 위치 한 서브넷이다. 내부 네트워크와 외부 네트워크가 DMZ로 연결할 수 있도록 허용하면서도, DMZ 내의 컴퓨터는 오직 외부 네트워크에만 연 결할 수 있도록 한다는 점이다. 즉 DMZ 안에 있는 호스트들은 내부 네트워크로 연결할 수 없다. 이것은 DMZ에 있는 호스트들이 외부 네 방화벽은 기본적으로 all deny 설정이다. 이와 더불어 허용할 포트와 IP 만 추가해 줌으로써, 관리 포인트도 적어지게 된다. 필요 없는 포트는 차단 돼있으므로 침입자의 침입 가능성을 낮춰준다. 비 인가자 접속 시도 발생 증가 트워크로 서비스를 제공하면서 DMZ 안의 호스트의 칩입으로부터 내부 네트워크를 보호한다. 내부 네트워크로 불법적 연결을 시도하는 외부 방화벽에서 허용되지 않은 포트 접속 확인 네트워크의 누군가가 있다면, DMZ는 그들에게 막다른 골목이 된다. DMZ를 구성하지 않고 서버와 클라이언트PC들을 하나의 네트워크로 구성하면 보안에 HOLE 이 생길 소지가 있음 네트워크 구성도나 방화벽 설정 확인 방화벽 기본 정책인 all deny에 최소 서비스만 허용 확인 (허용된 IP와 서비스 포트만 오픈, IP 및 서비스 ANY 적용 금지) 중기 적용 1. 방화벽의 설정 옵션 각각의 네트워크는 방화벽에 서로 다른 포트를 사용하여 연결하게 된 다. 이것을 삼각 방화벽 설정(three-legged firewall set-up)이라 부른다. 2. 두 개의 방화벽 사용 DMZ는 이 두 개의 방화벽 중간에 위치하며, 두 개의 방화벽과 연결된 허용되지 않은 접속은 모두 차단 다. 하나의 방화벽은 내부 네트워크와 연결되고 다른 하나는 외부 네트 워크와 연결된다. 이것은 우연한 설정 실수를 통해 외부 네트워크가 내 부 네트워크로 연결할 수 있게 되는 상황을 방지한다. 이런 구성 형식 을 차단된 서브넷 방화벽(screaned-subnet firewall)이라고 부른다. - 255 - - 256 -
점검분류 항목 기능 관리 위험도 상 분류번호 S-21 세부점검 항목 이상징후 탐지 경고 기능 설정 대상 보안장비 점검분류 항목 기능 관리 위험도 상 분류번호 S-22 세부점검 항목 장비 사용량 검토 대상 보안장비 유해 트래픽은 정상적인 네트워크 운용 및 서비스에 지장을 주는 악의적 인 공격성 패킷과 바이러스 패킷으로, 망 운영에 치명적인 장애를 유발하 며 동시 다발적인 급속한 확산이 특징이다. 유해 트래픽의 위험성은 지속 적인 증가 추세이며 트래픽 관리는 망 운용에 필수적인 요소로 부각 장비 사용량에 대한 검토로 인해 네트워크 트래픽의 수준을 파악하게 되 고, 그에 따른 가용성 향상을 고려해 볼 수 있다. 미 검토로 인한 보안장비 장애 발생 경고 기능 미 설정으로 인해 적절한 대응 시기 놓침 보안장비의 실시간 알람, 이메일, SMS 경고 기능 설정 확인 보안장비의 실시간 알람, 이메일, SMS 경고 기능 설정 확인 중기 적용 보안장비의 Web Dash Board 모니터링 24시간 모니터링을 통한 감시가 여건상 어려울 경우 이메일이나 SMS 을 통한 경고 기능 설정으로 대체 - 257 - - 258 -
점검분류 항목 기능 관리 위험도 상 분류번호 S-23 세부점검 항목 SNMP 서비스 확인 대상 보안장비 점검분류 항목 기능 관리 위험도 상 분류번호 S-24 세부점검 항목 SNMP community string 복잡성 설정 대상 보안장비 SNMP는 UDP를 이용하기 때문에 공격 주소를 속여 DOS 공격을 할 수 있다. 보안장비의 성능저하, 크래쉬, 리로드등의 장애가 초래하게 되어 불필요 할경우는 비활성화 시키는 것이 좋다. SNMP 서비스가 활성화 시켰을 시에 각종 공격에 취약해질 수 있음. 보안장비의 SNMP 설정 메뉴에서 확인 SNMP에서 community string은 SNMP(데몬)와 클라이언트가 데이터를 교환하기 전에 인증하는 일종의 패스워드로서 초기값으로 설정되어 있 는 Public, Private와 같은 SNMP default community string을 이용할 시에 해당 장비의 중요한 정보를 외부로 노출시킬 가능성이나 네트워 크 장비 설정 등을 변경(RW)시킬 수 있는 위험성이 많음. 이를 그대로 사용하는 것은 패스워드를 사용하지 않는 계정을 사용하는 것 이상 위 험함에도 불구하고 대부분의 시스템, 네트워크 관리자들이 기본적인 문 자열인 public을 그대로 사용하거나 다른 문자열로 변경을 해도 상호나 monitor, router, mrtg 등 사회 공학적으로 추측할 수 있는 문자열을 사용하고 있어 문제가 되고 있음. 불필요하다면 SNMP 서비스 중지하고, 관리를 위해 NMS 솔루션과의 연동이 필요하다면 SNMP 설정 SNMP community string 변경을 하지 않았을 시에 중요한 정보가 외 부로 노출될 위험이 있음 보안장비의 SNMP 설정 메뉴에서 커뮤니티 스트링 확인 네트워크 보안 장비는 SNMP로의 취약성이 존재하므로 누구나 추측하 기 어렵고 의미가 없는 문자열, 영문자 혼합으로 변경 권고함 (SNMP 버전은 v1, v2,v3 가 존재하는데 v1, v2 는 암호화가 되어 있 지 않고 텍스트 열로 전송되지만 v3 가 암호화가 설정되어 있고 해쉬 값으로 전송한다.) 보안장비의 SNMP 설정에서 커뮤니티이름 변경 - 259 - - 260 -
점검분류 항목 기능 관리 위험도 중 분류번호 S-25 세부점검 항목 부가 기능 설정 대상 보안장비 점검분류 항목 기능 관리 위험도 중 분류번호 S-26 세부점검 항목 유해 트래픽 차단 정책 설정 대상 보안장비 방화벽에서 제공하고 있는 기본 기능 이외의 부가기능 으로는 네트워 유해 트래픽은 정상적인 네트워크 운용 및 서비스에 지장을 주는 악의적 크 주소변환(Network Address Translation), 가상 사설망(VPN), 패킷 내 용 검사, 감사 로그 기능 등이 있다. 부가기능을 사용하지 않는다고 운 영에 큰 영향을 미치지는 않지만, 사용함으로써 도움을 줄 수 있다. 인 공격성 패킷과 바이러스 패킷으로, 망 운영에 치명적인 장애를 유발하 며 동시 다발적인 급속한 확산이 특징이다. 유해 트래픽의 위험성은 지속 적인 증가 추세이며 트래픽 관리는 망 운용에 필수적인 요소로 부각 보안장비 운영에 큰 영향은 없음 유해 트래픽으로 인한 정상적인 운영 불가 보안장비에서 제공하는 부가기능 설정 확인 침입차단시스템의 유해 트래픽 차단 기능 확인 중기 적용 벤더사에 문의하여, 부가 기능 설정 시 영향 고려하여 적용 침입차단시스템의 signature detection(알려진 것 탐지)와 anomaly detection(알려지지 않은 것들 탐지) 기능 설정 부가기능 적용 시, 발생하는 영향 고려 오탐으로 인한 정상 트래픽 차단 가능성 있음 - 261 - - 262 -
4. 네트워크장비 취약점 항목 상세 설명서 점검분류 항목 계정 관리 위험도 상 분류번호 N-1 세부점검 항목 패스워드 설정 대상 라우터 원격에서 라우터를 관리할 때 사용하는 패스워드를 장비의 초기 설정 그대로 사용할 경우, 누구라도 라우터에 접근을 할 수 있을 것이다. 이 러한 기본 패스워드는 인터넷상에서 검색을 통해서 손쉽게 접할 수 있 다. 이러한 점을 감안해서 패스워드는 반드시 설정 또는 변경한 후에 사용해야 한다. 패스워드가 없거나 기본 패스워드의 경우 비인가의 접속 가능 [Cisco] 1. Console, VTY, AUX 를 통해 라우터 접속 시, 패스워드 입력 없이 접속 가능 테스트 2. enable 접속시 패스워드 입력 없이 접속 가능 테스트 [Juniper] user@juniper> configure [edit] user@juniper# show [Cisco] 1. enable 패스워드 Router# config terminal (단축 명령은 config t) Enter configuration commands, one per line. End with CNTL/Z. Router(config)# enable password <패스워드> Router(config)# ^Z (Ctrl + z) Router# Router(config)# line console? <0-0> First Line number Router(config)# line console 0 Router(config-line)# login Router(config-line)# password <패스워드> 4. 보조포트(AUX) 패스워드 Router# config terminal Router(config)# line aux? <0-0> First Line number Router(config)# line aux 0 Router(config-line)# login Router(config-line)# password <패스워드> [Juniper] user@juniper> configure [edit] user@juniper# set system root-authentication plain-text-passwd New password : 패스워드 <- 새로운 패스워드 입력 retype new password: : 패스워드 <- 입력했던 패스워드 확인 2. vty 패스워드 Router# config terminal Router(config)# line vty? <0-4> First Line number Router(config)# line vty 0 4 Router(config-line)# login Router(config-line)# password <패스워드> 3. Console 패스워드 Router# config terminal - 263 - - 264 -
점검분류 항목 계정 관리 위험도 상 분류번호 N-2 세부점검 항목 패스워드 복잡성 설정 대상 라우터 Console, VTY, AUX 접속 시, enable 모드 접속 시 추측하기 쉬운 패스 워드를 사용할 경우, 비인가자가 패스워드 추측을 통해 장비에 접속할 수 있음. 또한 장비의 설정은 읽기만 하는 권한과 설정을 변경할 수 있는 권한 으로 구분되는데, 접속 패스워드와 enable password가 같을 경우 하나 의 패스워드 추측만으로 장비의 설정을 변경할 수 있으므로 접속 패스 워드, enable password, enable secret를 다르게 설정해야 함. - 대문자(A, B, C,...) - 소문자(a, b, c,...) - 숫자(0, 1, 2, 3, 4, 5, 6, 7, 8, 9) - 영숫자 이외의 문자와 유니코드 문자(( ) 공격자가 암호를 쉽게 해독할 수 있음. [Cisco] 라우터 설정화면에서 show running 을 하여 패스워드를 확인한다. Router> enable Router# show running! enable password <패스워드>! line con 0 password <패스워드>! [Juniper] user@juniper>configure [edit] user@juniper#show [Cisco / Juniper] N-1 패스워드 설정을 참고하여 패스워드 설정 시 아래와 같은 규칙을 세워 입력한다. 1. 암호는 적어도 8자 이상이어야 함. 2. 사용자 계정 이름이나 표시 이름의 문자를 3개 이상 연속하여 포함하지 않아야 함. 3. 암호에는 다음 네 가지 중 세 가지 범주의 문자가 포함되어야 함. - 265 - - 266 -
점검분류 항목 계정 관리 위험도 상 분류번호 N-3 세부점검 항목 암호화된 패스워드 사용 대상 라우터 - 암호화된 패스워드를 사용하지 않으면 장비의 설정 파일에 패스워드가 Plain Text(암호화되지 않은 평문)로 저장됨. - 평문으로 저장 되어 있을시 해독될 가능성이 쉬워 정보에 대한 유출 위험. enable password 7 0822455D0A1648121C0A0E082F! [Juniper] user@juniper> configure [edit] user@juniper# set system root-authentication encrypted-password "#1$14c5.%4Bopasddfs0" user@juniper# ^Z 설정 파일이 유출되면 패스워드가 유출될 수 있음 [Cisco] 일반적인 영향 없음 라우터 설정화면에서 show running 을 하여 패스워드 설정이 enable secret password 형식으로 암호화가 되어있는지 확인한다. Router# enable Router# show running! enable password <패스워드>! [Juniper] user@juniper# configure [edit] user@juniper# show [Cisco] Enable secret 패스워드는 기본적으로 암호화가 되어서 표시된다. 또한 하드웨어 적으로 암호화가 되기 때문에 암호를 해독하기는 그리 쉽지 는 않다. Enable secret 패스워드는 Enable password보다 강하고 우선적으로 사 용한다. 두 개의 Enable 패스워드를 설정했다면 Enable secret 사용될 것이다. 즉, Enable password 와 Enable secret password를 같이 사용 할 경우 Enable password는 아무 의미가 없다는 것이다. * Enable password와 Enable secret 패스워드 서로 틀리게 입력 Router# config terminal Enter configuration commands, one per line. End with CNTL/Z. Router(config)# enable secret <패스워드> Router(config)# service password-encryption Router(config)# ^Z Router# show running! enable secret 5 $1$mERr$9WCswBwUv6WeC6M8kNSs8-267 - - 268 -
점검분류 항목 계정 관리 위험도 중 분류번호 N-4 세부점검 항목 사용자 명령어별 권한 수준 설정 대상 라우터 Router(config)# privilege exec level 15 show logging 해당 명령어 실행 시 권한 부족으로 실행되지 않을 수 있음 시스코 IOS에서는 0에서 15에 이르는 16개의 서로 다른 권한 수준을 규정하고 있는데 레벨 1과 레벨 15는 시스코 IOS에 기본적으로 정의되어 있다. 사용자 EXEC 모드는 레벨 1에서 실행되며 privileged EXEC 모드는 레벨 15에서 실행된다. IOS 각 명령어는 레벨 1이나 레벨 15 중 어느 하나의 레벨이 사전에 기본적으로 지정되어 있다. 레벨 1에서는 라우터의 설정 조회만 가능하고 레벨 15에서는 라우터의 전체 설정을 조회하고 변경할 수 있다. 이와 같은 레벨 1, 레벨 15의 2 종류의 권한수준은 한 명의 관리자가 소규모의 네트워크를 관리 할 때 많이 사용된다. 규모가 큰 네트워크를 관리할 때에는 권한 수준 0에서부터 15까지의 여러 단계의 레벨을 사용하여 라우터 및 네트워크를 효율적으로 관리한다. 사용자별 명령어별 권한 설정을 통한 비인가된 행동 차단 [Cisco] Router# show privilege [Cisco] 1. 사용자별 권한 수준 지정 Router# config terminal Router(config)# username [ID] privilege [1-15] password [PASS] 2. 명령어별 권한 수준 지정 Router(config)# privilege exec level [1-15] [서비스명] NSA에서 권고한 사항에 따르면 공격자들이 라우터에 침입해도 허가된 권한 수준이 아니면 중요한 프로그램은 실행하지 못하도록 설정하여야 한다. 따라서, 중요한 명령어에는 반드시 레벨 15를 적용해야 하는데 그 명령어 목록은 아래와 같다. - connect / telnet / rlogin / show ip access-list / show logging Router# config terminal Router(config)# privilege exec level 15 connect Router(config)# privilege exec level 15 telnet Router(config)# privilege exec level 15 rlogin Router(config)# privilege exec level 15 show ip access-list 점검분류 항목 접근 관리 위험도 상 분류번호 N-5-269 - - 270 -
세부점검 항목 VTY 접근(ACL) 설정 대상 라우터 자세한 설정은 네트워크 담당자에게 문의 인터넷으로 부터 VTY 접근을 차단하지 않았을 경우, VTY 장치를 통해 서 네트워크 접속을 시도할 수 있으며 원격 접속 패스워드 추측공격 및 sniffer 공격을 통해 장비에 접근할 수 있음. Brute Force 공격이나 HTTP 서버 취약점 공격을 받을 수 있음. [Cisco] 허가되지 않은 임의의 컴퓨터에서 vty를 통해 라우터 접속을 시도해 본 다. 예를 들어 1.1.1.1 이라는 라우터 주소가 있으면 윈도우 시작 창에서 실행을 누른 후 cmd 명령어를 치고 들어간다. 도스화면 창이 뜨면, Telnet 1.1.1.1 을 실행해 텔넷 접속 유무를 확인한다. [Juniper] user@juniper# configure [edit] user@juniper# show [Cisco] VTY 접근 허용 IP 설정 Router# config terminal Router(config)# access-list [1-99] {permit deny} [Source Network] [WildcardMask] Router(config)# access-list [1-99] permit any -> 기본 deny 방지 Router(config)# line vty 0 4 Router(config)# access-class [1-99] in ex) 192.168.2.1 에서만 vty 접근 가능 Router(config)# access-list 1 permit 192.168.2.1 [Juniper] ACL 로깅 설정 user@juniper>configure [edit] user@juniper# source-address 127.0.0.0/24; user@juniper# source-address 224.0.0.0/4; user@juniper# source-address 0.0.0.0/0; 일반 Access-list 를 만드는 순간, 기본 Deny 로 변함 - 271 - - 272 -
점검분류 항목 접근 관리 위험도 상 분류번호 N-6 세부점검 항목 Session Timeout 설정 대상 라우터 관리자가 장비에 접속하고 무의식적으로 장시간 접속 터미널을 떠났을 때 자동으로 접속을 종료하거나 로그아웃이 되도록 설정하는 것이 좋 은데, 이는 실수로 로그아웃을 하지 않고 자리를 뜨는 경우에 대비하기 위함임. user@juniper# set admin auth timeout 360 ----------unknown keyword timeout 부재시간에 따라 로그아웃이 되므로 시간 설정 유의 터미널에 접근할 수 있는 사람에 의해 악의적인 행위가 발생할 수 있음 [Cisco] Session Time out 설정 확인 Router# config terminal Router(config)# show running! exec-timeout 2[분] 0[초] -> 아무 입력 없으면 2분 후 timeout! [Juniper] user@juniper>configure [edit] user@juniper#show [Cisco] 1. Console Router# config terminal Router(config)# line con 0 Router(config-line)# exec-timeout 2 0 2. VTY Router# config terminal Router(config)# line vty 0 4 Router(config-line)# exec-timeout 2 0 3. AUX Router# config terminal Router(config)# line aux 0 Router(config-line)# exec-timeout 2 0 [Juniper] user@juniper> configure [edit] - 273 - - 274 -
점검분류 항목 접근 관리 위험도 중 분류번호 N-7 세부점검 항목 VTY 접속 시 안전한 프로토콜 사용 대상 라우터 VTY 접속시에 Telnet프로토콜이 많이 쓰이는데 Telnet은 정보 전달시 패킷이 그대로 전송되어서 보안에 취약한 점이 있음. 즉, 텔넷에서는 패킷을 전송할 때 암호화 되지 않는 Text(PlanText) 으 로 전달을 하기 때문에 Sniffer(NetWorek 상에서 패킷을 Capturer 하기 위한 해킹툴) 등을 이용하여 password를 쉽게 가로챌 수 있는 보안적 인 취약점이 있음. Telnet 프로토콜 사용 시 암호화되지 않은 패킷을 전달하기 때문에 각종 위험에 노출될 가능성이 높음. [Cisco] Router(config-line)# login local Router(config-line)# transport input ssh SSH 접속 1. ssh 접속 프로그램 사용 2. # ssh -c rsa -l <ID> <라우터IP> [Juniper] services로 검색하여 ssh를 사용할 경우 양호이며, 사용하지 않을 경우 접속가능 IP를 제한해야 양호. user@juniper> configure [edit] user@juniper# set ssh enable 일반적인 영향 없음. SSH 활성화 확인방법 Router# show ip ssh SSH Enabled - version 1.5 Authentication timeout: 120 secs; Authentication retries: 3 (활성화) %SSH has not been enabled (비 활성화) [Juniper] SSH 버전 확인 user@juniper# set ssh 패킷 자체를 암호화 하여 전송하기 때문에 SSH 사용하기를 권장. SSH 설정방법 사전작업 : 라우터이름, 도메인명 설정 Router# config terminal Router(config)# hostname <호스트명> Router(config)# ip domain-name <도메인명> Router(config)# username <ID> password <PASS> Router(config)# crypto key generate rsa! How many bits in the modulus [512]: 1024 <- 입력! Router(config)# ip ssh time-out [초] -> timeout 시간(단위: second) Router(config)# ip ssh authentication-retries [횟수] -> 재시도 횟수 Router(config)# line vty 0 4-275 - - 276 -
점검분류 항목 접근 관리 위험도 중 분류번호 N-8 점검분류 항목 접근 관리 위험도 중 분류번호 N-9 세부점검 항목 불필요한 보조 입출력 포트 사용 금지 대상 라우터 불필요한 보조 입출력 포트를 사용함으로써, 비인가자의 접속을 허용할 경로가 많아짐 라우터나 스위치에 불필요한 포트를 차단시키지 않았을 시에 외부에서 접속하여 내부 네트워크와 데이터 손실 우려. BruteForce, DDOOS 공격에 취약할 수 있음. 세부점검 항목 로그온 시 경고 메시지 설정 대상 라우터 라우터에 로그인하는 사용자들에게 로그인 배너를 통하여 적절한 경고 메시지를 알려주는 것은 매우 중요하다. 때때로 이러한 메시지는 단순히 기술적인 코멘트를 하는 것으로 생각되기도 하지만, 공격자들이 침입했을 때 법적인 경고를 함으로써 라우터 보안에 효율적으로 사용될 수 있다. 경고 메시지를 표시함으로써 접속 시도자에게 경각심을 주어 비 인가 된 행동을 억제해주는 효과가 있다. 해당 포트 차단 및 허용 설정 확인 telnet 접속 시 경고 배너 표시 확인 Router# show running 불필요한 보조 입출력 포트의 오른쪽 끝부분에 Up 불필요한 보조 입출력 포트의 오른쪽 끝부분에 Down (활성화) (비활성화) 바람직한 배너가 반드시 포함해야할 조건은 아래와 같다. [Cisco] 1. 허가된 사용자만 사용 가능 허가된 사용자만이 라우터를 사용해야 한다. 2. 공식적인 일에만 사용 가능 1. AUX 포트 접속 차단 Router# config terminal Router(config)# line aux 0 Router(config-line)# no password (어떤 사용자도 접속 금지) Router(config-line)# transport input none (어떤 입력도 받지 않음) Router(config-line)# no exec (어떤 명령도 실행 안됨) Router(config-line)# exec-timeout 0 1 (1초 지나면 자동 타임 아웃) 허가된 사용자만 라우터에 접속 가능해야할 뿐만 아니라 허가된 사용자가 공식적인 일에만 라우터를 사용해야 한다. 3. 개인의 privacy가 보장되지 않음 시스템을 사용할 때 개인의 privacy는 보장되지 않는다. 이것을 사용자들에게 알려주는 것은 매우 중요하며 이러한 경고 메시지를 하지 않게 되면 관리자가 네트워크를 관리하면서 불법적으로 사용자 데이터를 2. 해당 인터페이스 차단 Router# config terminal Router(config)# int f0/1 (해당 포트 선택) Router(config-line)# shutdown 도청하게 되는 상황이 발생할 수도 있다. 4. 모든 접속ㆍ사용 내역은 모니터링 되고 기록될 수 있음 모든 접속ㆍ사용 내역이 반드시 모니터링 된다 라고 표현하기 보다는 모니터링 될 수 있다 라고 표현하는 것이 바람직하다. 실제로 관리자는 [Juniper] user@juniper> configure [edit] user@juniper# editinterfacesso-1/0/3 [edit interfaces so-1/0/3] user@juniper# setunit0familyinetaddress10.0.20.1/24 user@juniper# commit 모든 접속ㆍ사용 내역을 모니터링 할 수 없기에 컴퓨터 로그가 법정에서 증거로써 사용되면 이러한 메시지는 법적인 문제를 발생시킬 수 있다. 5. 결과물은 관련기관에 제공됨 접속ㆍ사용 내역은 법정 혹은 관련 기관들에게 제공될 수 있다 6. 라우터를 사용하는 것은 배너에 제시된 사항에 대한 묵시적인 동의를 의미함 포트에 연결 필요시, 사용 활성화 설정 필요 위에서 제시한 사항들이 로그인 배너에 포함되지 않는다면 해킹 사고 발생시에 법적인 대응을 제대로 할 수 없을지도 모른다. 그리고 많은 기관에서는 라우터 HW/SW타입, 라우터의 위치, 연락처, 관리자의 이름 - 277 - - 278 -
등도 로그인 배너에 포함하고 있다. 이는 공격자에게 매우 유용한 정 점검분류 항목 패치 관리 위험도 상 분류번호 N-10 보가 될 수 있기에 모두 로그인 배너에서 제거하도록 한다. 설정 방법은 아래와 같다. 세부점검 항목 최신 보안 패치 및 벤더 권고사항 적용 대상 라우터 Router# config terminal Enter configuration commands, one per line. End with CNTL/Z. Router(config)# banner motd # Enter TEXT message. End with the character '#'. <배너 문구 입력> # Router(config)# banner login # Enter TEXT message. End with the character '#'. <배너 문구 입력> # Router(config)# banner exec # Enter TEXT message. End with the character '#'. <배너 문구 입력> # Router(config)# 많은 취약점들 중 어떤 취약점은 반드시 패치를 적용해야만 라우터의 안정성을 보장할 수 있기 때문에 심각한 버그에 대해서는 신속한 패치 적용을 고려해야 함. 보안패치를 안했을 경우, 일부 라우터나 스위치에 IP Option, TCP, IPv6 Hearder 패킷을 발송할 경우에 서비스 거부 피해가 발생 우려 장비 재로딩, 임의코드 실행의 피해와 조작된 TCP 패킷으로 인한 서비 스 거부 라우터 버전 확인 [Cisco] 일반적인 영향 없음 Router# show version Cisco IOS Software, 3600 software (c3660-i-m), version 12.2(2)T4, RELEASE SOFTWARE (fc3)! [Juniper] user@juniper> configure [edit] user@juniper# show version 주기적으로 적용 [Cisco] 보안의 관점에서 본다면 오랜 기간의 테스트와 수정을 통하여 검증받은 GD 단계의 IOS를 사용하여야 하며, 다른 버전은 꼭 필요한 기능이 있는 경우만 사용해야 한다. IOS의 버전 체계 및 버전별 정보는 "http://www.cisco.com/web/about/security/intelligence/ios-ref.html" 사이트를 통하여 얻을 수 있다. 위의 IOS 버전 체계와 더불어 IOS 버전 이름이 붙여지는 방법 또한 IOS 적용을 위하여 꼭 알고 있어야 할 사항이다. "Version 12.2(2)T4"에서 12.2는 Major Release번호를 의미한다. Major Release의 버그 수정은 8주를 주기로 이루어지며 Major Release 번호 옆의 괄호의 번호가 버그 수정이 몇 번째 이루어졌는가를 나타낸다. - 279 - - 280 -
[Juniper] 보안의 관점에서 본다면 오랜 기간의 테스트와 수정을 통하여 검증받은 제품과 IOS를 해야 하며 관련 정보 및 버전을 알아보고 싶다면, http://www.juniper.net/us/en/products-services/routing/ 사이트를 통하여 얻을 수 있다. 서비스의 영향을 고려하여 벤더사와 협의하여 적용 점검분류 항목 로그 관리 위험도 하 분류번호 N-11 세부점검 항목 원격 로그서버 사용 대상 라우터 로그에는 장비의 이상이나 침입흔적이 남아 있을 수 있기 때문에 별도 의 로그 분석 시스템에서 장비의 로그를 모으고 분석해야 하는데 Syslog 로깅을 활용함 이런 기능을 사용할 수 있음. 시스템과 네트워크 관리에 있어 로그(log)는 아주 중요한 위치를 차지 하는 것으로, 일반적으로 각 시스템의 로그를 개별적으로 저장하지 않 고 별도의 로그 서버로 한 곳에서 통합 관리할 것을 권함. 타인의 내부 침입으로 인해 로그가 분석 및 훼손될 우려가 있음 [Cisco] 라우터 syslog configuration 확인 Router# show running! logging facility local 6 (syslog facility 레벨) logging source-interface Serial0 logging 192.168.3.1. (syslog 서버)! [Juniper] user@juniper> configure user@juniper# show archive size 5m files 5 world-readable; host [주소] { any emergency; } console { any critical; } 중기 적용 라우터 로그는 일정량 경과 후 자동 Overwrite 되어 사후관리가 되지 않으므로 별도의 로그를 저장하여 운영하는 것도 바람직함 [Cisco] 라우터 로깅 설정 Router# config terminal - 281 - - 282 -
Router(config)# logging on (log를 console 이외도 전달) Router(config)# logging trap informational (severity level 설정) Router(config)# logging 192.168.3.1 (syslog 서버) Router(config)# logging facility local6 (syslog facility 설정) Router(config)# logging source-interface serial 0 (syslog interface) 점검분류 항목 로그 관리 위험도 중 분류번호 N-12 세부점검 항목 로깅 버퍼 크기 설정 대상 라우터 [Juniper] user@juniper> configure edit user@juniper# edit system syslog [edit system syslog] user@juniper# set archive files 5 sizes 5m world-readable 여기서 files 5는 파일 수를 5개 까지 표시하고 데이터를 사용하며, 5m 은 최대 사이즈를 5m 까지 허용 하는 것을 뜻한다. 상세한 로깅 설정은 라우터 기능에 영향을 미칠 수 있음 기본적으로 라우터에서는 로그를 파일에 저장하지 않고 버퍼 메모리에 저장한다. 그러나 메모리가 한정돼 있어 할당된 메모리의 양을 초과해 로그가 저장될 경우에는 이전의 버퍼에 있는 데이터부터 지우고 새롭 게 로그를 저장하여야 한다. 만약 짧은 시간에 많은 로그가 남았다면 중요한 로그를 확인하지 못할 수도 있어 그 사이에 침입을 한 흔적이 있다면 확인을 못하는 경우가 발생 할 수 도 있다. 규모에 비해 버퍼 크기가 작으면 로그 정보를 잃을 가능성이 있다. 메모리(RAM)에 저장된 로그는 'show logging'으로 확인할 수 있고, 'clear logging'을 실행하거나 RAM에 저장된 로그는 재부팅하면 사라지 게 된다. Router> enable Router# show logging 로그에 대한 정보를 확인. 중기 적용 최대 버퍼 크기는 65500 kbyte 까지 할당 해줄 수가 있다. 버퍼크기를 너무 높게 잡으면 패킷이 전달이 안되는 경우가 있어 주의해야 한다. 일반적으로 16Kbyte에서 32Kbyte의 크기가 적당하다. Buffered 로깅 설정 Router# config terminal Router(config)# logging on (로그를 메모리에 백업) Router(config)# logging buffered 16000 (16KByte 할당) Router(config)# logging buffered information (severity 레벨 설정) Router(config)# ^Z 버퍼 크기가 너무 큰 경우 라우터 성능에 영향을 줌 - 283 - - 284 -
점검분류 항목 로그 관리 위험도 중 분류번호 N-13 세부점검 항목 정책에 따른 로깅 설정 대상 라우터 라우터에서의 로깅은 여러 가지 장점을 가져다준다. 로그 정보를 사용 함으로써 관리자는 라우터가 제대로 작동하는지의 여부와 라우터가 손 상되었는지의 여부를 파악할 수 있다. 어떤 경우에는 라우터나 보안 네 트워크에 어떤 종류의 침입이나 공격이 진행되고 있는지 알수 있다. 로깅에 관해 기억해야 할 사항 중 중요한 것은 로그를 정기적으로 조 사해야 한다는 것이다. 로그를 정기적으로 검사함으로써, 해당 네트워 크의 동향을 파악할 수 있다. 정상적 운영상태 및 그 상태가 로그에 반 영되어 있음을 확인함으로써 비정상적인 상태 또는 공격 상태를 식별 할 수 있다. 부적절한 로깅 설정은 사고인지 및 상태 확인 등에 어려움 [Cisco] show logging 실행하면 로그 정보 확인이 가능 Router> enable Router# show logging 로그에 대한 정보를 확인. [Juniper] Buffered 로깅은 로그를 라우터의 RAM에 저장한다. 로깅 버퍼가 라우터 에 설정되어 있어야 하며 이 버퍼가 가득 차게 되면 오래된 로그는 자동 으로 새로운 로그에 의해 대체되게된다. 3. Terminal 로깅 terminal monitor 명령을 사용하여 로깅을 설정하면 라우터에서 발생하는 로그메시지를VTY terminal에 보내게 된다. 4. Syslog 시스코 라우터는 라우터의 로그 메시지가 외부의 syslog 서버에 저장되도 록 설정할 수 있다. 5. SNMP traps SNMP trap이 설정되면 SNMP는 특별한 상황을 외부의 SNMP 서버에 전 송하도록 설정될 수 있다. 6. ACL 침입 로깅 표준 또는 확장된 액세스 리스트를 설정할 때 특정한 룰에 매칭됐을 경 우 해당하는 패킷 정보를 로그에 남기도록 설정할 수 있는데, 이는 액세 스 리스트 룰의 끝에 로그나 로그 인풋을 추가하기만 하면 된다. 로그 인 풋은 로그와는 달리 인터페이스 정보도 함께 남기게 되므로 어떤 인터페 이스를 통해 로그가 남았는지를 알 수 있다. 일반적인 영향 없음 show log messages 로 확인 가능 user@juniper> configure [edit] user@juniper# show log messages 로그 정보 확인 중기 적용 [Cisco/Juniper] 라우터에 기본적으로 설정되어 있는 로그 파일 설정을 변경하지 않고 사 용하기에 로깅을 효율적으로 사용하지 못하고 있다. 라우터의 로깅 기능 을 활용하는 방법은 아래와 같다. 크게 아래의 6가지 방법으로 이루어진 다. 1. 콘솔 로깅 콘솔 로그 메시지는 오직 콘솔 포트에서만 보인다. 따라서 이 로그를 보 기 위해서는 반드시 콘솔 포트에 연결하여야 한다. 2. Buffered 로깅 - 285 - - 286 -
점검분류 항목 로그 관리 위험도 중 분류번호 N-14 세부점검 항목 NTP 서버 연동 대상 라우터 네트워크의 라우터들의 시간을 동기화시키는 것은 매우 중요하다. NTP는 RFC958을 통하여 처음 등장하여 네트워크 장비의 시간 동기화 프로토콜 의 표준이 되었다. 만약 라우터에 NTP와 같은 프로토콜이 적용되어 있지 않다면 라우터 로그파일 관리를 시간별로 일관되게 하지 못할 것이며 이 는 네트워크 관리, accounting, 사고 분석 등을 수행하는 데 큰 단점으로 작용할 것이다. 따라서 정확한 시간 관리는 안전한 네트워크를 유지하는 필수적인 조건이라 할 수 있다. 브로드캐스트 모드 user@juniper# set broadcast (NTP 서버주소) Symmetric ative 모드 user@juniper# set peer (NTP 서버주소) prefer user@juniper# set peer (NTP 서버주소) 일반적인 영향 없음 장비들의 상이한 시간설정은 정확한 로그 분석을 어렵게 함 [Cisco] NTP 설정 확인 Router> enable Router# show ntp 실행하여 서버 연동을 확인한다. [Juniper] user@juniper> configure [edit] user@juniper# show [Cisco] NTP 서버 연동 설정 Router# config terminal Router(config)# ntp server 129.237.32.2 (NTP 서버 IP) Router(config)# ^Z [Juniper] Juniper 라우터에서 NTP를 설정하기 위해 Boot 서버를 설정을 해줘야 한다. user@juniper> configure [edit] user@juniper# edit system ntp [edit system ntp] user@juniper# set boot-server 1.1.1.1 <- (NTP 서버주소) 클라이언트 모드 user@juniper# set server (NTP 서버주소) - 287 - - 288 -
점검분류 항목 로그 관리 위험도 하 분류번호 N-15 세부점검 항목 timestamp 로그 설정 대상 라우터 점검분류 항목 기능 관리 위험도 상 분류번호 N-16 세부점검 항목 SNMP 서비스 확인 대상 라우터 로그에 해당 시간이 남지 않으면 외부에서 공격 및 침입시도 시간 등에 관한 정보를 정확하게 분석할 수 없어, 로그기록에 대한 신뢰성이 떨어 질 수 있음 SNMP는 UDP를 이용하기 때문에 공격 주소를 속여 DOS 공격을 할 수 있다. 라우터의 성능저하, 크래쉬, 리로드등의 장애가 초래하게 되어 불필요 할경우는 비활성화 시키는 것이 좋다. 시간에 대한 로그 기록이 없어 로그 분석에 차질이 빚어 질 수 있음. SNMP 서비스가 활성화 시켰을 시에 각종 공격에 취약해질 수 있음. [Cisco] [Cisco] show logging 실행하면 로그 정보 확인이 가능 SNMP 서비스 off 확인 방법 Router> enable Router# show logging 로그에 대한 정보를 확인. Router# config terminal Router(config)# show snmp 을 실행시켜주면! [Juniper] %SNMP agent not enabled (snmp가 비활성)! show log messages 실행하여 로그 정보 확인 [Juniper] user@juniper> configure [edit] user@juniper# show log messages user@juniper> configure [edit] user@juniper# show snmp 로그의 무결성을 위하여 설정하기를 권고함 중기 적용 [Cisco] 불필요하다면 SNMP 서비스 중지 [Cisco] Router# config terminal Router(config)#service timestamp log date time msec local show-timezone (log할 때 시간이 print 되도록 설정) Router(config)# ^Z [Juniper] Router# config terminal Router(config)# no snmp-server Router(config)# ^Z [Juniper] user@juniper> configure user@juniper# no set snmp community public user@juniper> set cli timestamp format '%m-%d-%t' <- 해당 월 일 시간을 입력. SNMP 서비스에 영향을 끼칠 수 있음 일반적인 영향 없음. - 289 - - 290 -
점검분류 항목 기능 관리 위험도 상 분류번호 N-17 Community String 구성 세부점검 항목 SNMP community string 복잡성 설정 대상 라우터 SNMP에서 community string은 SNMP(데몬)와 클라이언트가 데이터를 교환하기 전에 인증하는 일종의 패스워드로서 초기값으로 설정되어 있 는 Public, Private와 같은 SNMP default community string을 이용할 시에 해당 장비의 routing table, MAC address 등의 중요한 정보를 외 부로 노출시킬 가능성이나 네트워크 장비 설정 등을 변경(RW)시킬 수 있는 위험성이 많음. 이를 그대로 사용하는 것은 패스워드를 사용하지 않는 계정을 사용하는 것 이상 위험함에도 불구하고 대부분의 시스템, 네트워크 관리자들이 기본적인 문자열인 public을 그대로 사용하거나 다른 문자열로 변경을 해도 상호나 monitor, router, mrtg 등 사회 공 학적으로 추측할 수 있는 문자열을 사용하고 있어 문제가 되고 있음. SNMP community string 변경을 하지 않았을 시에 중요한 정보가 외 부로 노출될 위험이 있음 user@juniper> configure [edit] user@juniper# edit [edit] snmp { } community public { } authorization read-only; [Cisco] community String 문자열 변경 확인 일반적인 영향 없음 Router> enable Router# show running (밑에 하단부분에 설정이 적용된 것을 확인 할 수 있음) [Juniper] user@juniper> configure [edit] user@juniper# show 네트워크 장비는 SNMP로의 취약성이 존재하므로 누구나 추측하기 어 렵고 의미가 없는 문자열, 영문자 혼합으로 변경 권고함 (SNMP 버전은 v1, v2,v3 가 존재하는데 v1, v2 는 암호화가 되어 있 지 않고 텍스트 열로 전송되지만 v3 가 암호화가 설정되어 있고 해쉬 값으로 전송한다.) [Cisco] Community String 문자열 변경 Router# config terminal Router(config)# snmp-server Community <커뮤니티 명> [Juniper] - 291 - - 292 -
점검분류 항목 기능 관리 위험도 상 분류번호 N-18 세부점검 항목 SNMP ACL 설정 대상 라우터 점검분류 항목 기능 관리 위험도 상 분류번호 N-19 세부점검 항목 SNMP 커뮤니티 권한 설정 대상 라우터 SNMP(Simple Network Management Protocol)는 단순한 네트워크 관 리를 위한 목적으로 주로 서버나 네트워크 장비에서 SNMP를 설정한 후 mrtg 프로그램을 이용하여 트래픽 관리 등을 위해 사용되고 있다. 그러나 트래픽 정보뿐만 아니라 전체 네트워크의 구성이나 MAC 주소, IP주소, IOS 버전등 소프트웨어 정보 및 각종 하드웨어 정보까지 제공 하는 등 관리자 입장에서는 매우 중요한 정보를 제공하므로 이의 보안 에 신경을 쓰도록 하여야 한다. 더군다나 SNMP에 대한 읽기 권한 뿐 아니라 쓰기 권한까지 있을 경우에는 config 파일을 열람하거나 직접 네트워크 설정을 변경할 수도 있다. SNMP에서는 RO(Read Only)와 RW(Read Write) 모드를 제공하는데, 대 부분 RO모드를 사용하지만 일부 관리자들은 SNMP를 이용한 쉬운 관 리를 위해 RW(ReadWrite) community 문자열을 사용하는 경우도 있는 데, 이러한 경우 보안 설정을 확실하게 하지 않을 경우 SNMP를 이용 하여 설정을 수정할 수 있는 등 심각한 보안문제를 유발할 수 있다. SNMP를 이용하면 전체 네트워크의 구성, MAC 주소, IP 주소, SW 정보, HW 정보 등을 알 수 있다. SNMP 쓰기 권한을 사용 할 시에 침입으로 인해 피해 우려 SNMP에서 모든 권한이 주어졌을 경우 침입 시에 네트워크 설정을 변 경하여 혼란을 줄 수 있으며, 데이터 손실까지 일어 날수 있음. SNMP Community 권한 확인 SNMP ACL 확인 [Cisco] Router> enable Router# config terminal Router(config)# show running 하단부분에서 설정 확인 Router# show running (밑에 하단부분에 설정이 적용된 것을 확인 할 수 있음) SNMP는 라우터의 정보취득이 가능하므로 해당 PC만 접근 가능하도록 해야함 access-list 를 이용하여 특정 호스트만 열어주기(port:161,162) Router# config terminal Router(config)# access-list 100 permit ip host 100.100.100.100 any [Juniper] user@juniper> configure [edit] user@juniper# show Router(config)# access-list 100 deny udp any any eq snmp Router(config)# access-list 100 deny udp any any eq snmptrap Router(config)# access-list 100 permit ip any any Router(config)# interface serial 0 (해당 인터페이스에 설정) [Cisco] SNMP Community String 권한 설정 방법(가능하다면 RW 권한 삭제) Router(config-if)# ip access-group 100 in Router# config terminal 시스코 스위치 장비인 경우에 vlan 에 설정 한다 Router(config)# interface vlan1 Router(config)# snmp-server community <스트링명> RO (읽기권한) Router(config)# snmp-server community <스트링명> RW (쓰기권한) Router(config-if)# ip access-group 100 in * 가급적 사용을 자제하되 부득이 사용하여야 한다면 각별히 주의하여야 일반적인 영향 없음 한다. [Juniper] Community 또는 사용자 허가 user@juniper> configure - 293 - - 294 -
[edit] user@juniper# snmp-server community 계정 view everything rw Community 서버 사용자 설정 user@juniper> configure [edit] user@juniper # snmp-server user fred auth sha fred-password priv des password group user 쓰기 권한 설정 시에 라우터 정보의 변경까지 가능하므로 매우 주의를 해야 한다. 점검분류 항목 기능 관리 위험도 상 분류번호 N-20 세부점검 항목 TFTP 서비스 차단 대상 불필요한 서비스 제거 TFTP 서비스는 특정 호스트가 아닌 일반적으로 어느 호스트에게 접근 할 수 있게 되며 특히 서버에 수행되는 데몬 프로세서가 자신의 파일 시스템에 대한 접근을 두지 않는 경우에는 읽기 가능한 어느 파일도 외부에 있는 시스템에서 침입 정보를 빼내어 갈 가능성이 있음. TFTP 는 데몬은 인증 과정을 거치지도 않고 누구든지 파일을 읽거나 쓸 수 있도록 허용하기 때문에 가급적이면 차단시키는 것이 좋다. TFTP는 인증과정을 거치지 않기 때문에 외부에서 패스워드 파일을 훔쳐 시스템 침입 할 가능성이 높음. [Cisco] TFTP 서비스 차단 확인 Router> enable Router# show running (밑에 하단부분에 설정이 적용된 것을 확인 할 수 있음) [Juniper] user@juniper> configure [edit] user@juniper# show [Cisco] 외부망에서 사용할 필요가 없는 TFTP 서비스 포트를 막는다. TFTP 명령어 차단 Router# config terminal Router(config)# no service tftp [Juniper] user@juniper> configure [edit] user@juniper# edit forwarding-options - 295 - - 296 -
[edit forwarding-options] no tftp { description text-description; server < [ routing-instance routing-instance-names ] >; interface interface-name { description text-description; no-listen; server < [ routing-instance routing-instance-names ] >; } } } 일반적인 영향 없음 점검분류 항목 기능 관리 위험도 상 분류번호 N-21 세부점검 항목 Spoofing 방지 필터링 적용 대상 라우터 IP spoofing 은 IP를 속여서 공격하는 기법을 의미한다. 지금 알려진 TCP/IP 프로토콜 약점을 이용한 IP spoofing 핑 기술은 여 러가지가 존재 한다. 공격방법을 나열 하자면 밑에 있는 것과 같다. 순서제어번호 추측 (Sequence number quessing) 반 접속 시도 공격 (Syn flooding) 접속가로채기(Connection hijacking) RST를 이용한 접속 끊기 (Connection killing by RST) FIN을 이용한 접속 끊기 (Connection by FIN) 네트워크 데몬 정지(Killing the INETD) TCP 윈도우 위장(TCP window spoofing) IP spoofing 공격은 공격하고자 하는 시스템의 서비스 포트나 그에 대 한 취약점을 알아내는 것부터 시작되는데 공격자는 스캔용 프로그램과 점검 툴을 사용하여 해당 네트워크를 공격한다. 공격으로 사용되는 툴 중에는 자신의 위치를 감추기 위해 Spoofed IP를 사용한다. Spoofing 공격에 대한 보안이 취약함. IP spoofing 방지 설정 확인 Router# show running (설정 확인) 주소 위조 방지 필터는 내부IP 및 예약된 IP 주소를 가진 패킷이나 사설 IP 주소를 가진 패킷을 차단해야 안전하다. 루프백 주소, 브로드캐스트 주 소, 멀티캐스트 주소등의 주소를 가진 패킷도 물론 외부로부터 유입되는 것을 차단해야 한다. 이와 같이 일반적으로 외부로부터 유입되는 것을 차 단해야할 네트워크 주소 목록은 아래와 같다. 내부 네트워크 주소 127.0.0.0/8 10.0.0.8/8 172.16.0.0/12 192.168.0.0/16 224.0.0.0/4. - 297 - - 298 -
240.0.0.0/5 255.255.255.255/32 점검분류 항목 기능 관리 위험도 상 분류번호 N-22 세부점검 항목 DDoS 공격 방어 설정 대상 라우터 Router# config terminal Router(config)# access-list 115 deny 130.18.0.0 0.0.255.255 (내부 네트워크 130.18.0.0/16 일 경우) Router(config)# access-list 115 deny 127.0.0.0 0.255.255.255 Router(config)# access-list 115 deny 10.0.0.0 0.255.255.255 Router(config)# access-list 115 deny 172.16.0.0. 0.15.255.255 Router(config)# access-list 115 deny 192.168.0.0 0.0.255.255 Router(config)# access-list 115 deny 224.0.0.0 15.255.255.255 Router(config)# access-list 115 deny 240.0.0.0 7.255.255.255 Router(config)# access-list 115 deny 255.255.255.255 0.0.0.0 Router(config)# access-list 115 permit any Router(config)# interface fastethernet 0/1 Router(config-line)# ip access-group 15 in Router(config)# ^Z 우선 악성 Bot 이용한 DDoS 공격이 있다. 해커는 다양한 방법으로 일반 사용자 PC에 봇을 감염시켜 봇에 감염된 PC에 공격명령을 하달하여 DDoS 공격을 수행하게 된다. 해커는 주로 이 방법을 사용하여 보안에 취약한 곳에 금전을 요구하는 협박성의 DDOS 공격 유형이다. 다른 공격 유형으로는 명령 및 제어서버의 접속 없이 감염된 컴퓨터를 실행시 특정한 사이트를 공격하도록 제작 유포되어 해당 서비스를 마비시킨다. 이외의 DDoS 공격은 좀비 PC를 이용하여 시스템 서버를 마비시키는 공격이 다양하여 각별한 주의가 요구됨. 대규모 네트워크의 많은 호스트에 설치되어 서로 통합된 형태로 패킷을 범람시켜 심각한 네트워크 성능저하 및 시스템 마비를 유발 DDoS 공격 방어 설정 확인 필터링을 적용할 때 ACL을 사용하게 되는데 ACL은 라우터 성능에 많 은 영향을 미치게 됨 [Cisco] Router> enable Router# show running (하단 부분에서 확인 가능) [Juniper] user@juniper> configure [edit] user@juniper# sh configuration 즉시 적용 [Cisco / Juniper] DDoS 공격 방어 설정 요소 1. Fragment 공격 차단 설정 2. 적절한 ACL을 통한 사전방어 설정 필요 3. 보안담당과 네트워크담당 이 연계 하여 차단을 설정 DDoS 공격 방어 설정(차단되어야 하는 아이피 대역) - 0.0.0.0/8 : Default/Broadcast & Other unique IP - 299 - - 300 -
- 127.0.0.0/8 : Host Loopback IP address - 169.254.0.0/16 : DHCP를 통한 IP 미 할당시 자동 생성되는 IP - 192.0.2.0/24 : TEST-NET IP - 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16:RFC 1918 에 정의된 사설 IP - access-list 번호는 100~199 구간을 사용하여 Extended access-list 를 사용 한다. 필터링을 적용할 때 ACL을 사용하게 되는데 ACL은 라우터 성능에 많 은 영향을 미치게 됨 점검분류 항목 기능 관리 위험도 상 분류번호 N-23 세부점검 항목 사용하지 않는 인터페이스의 shutdown 설정 대상 라우터 라우터와 스위치에는 많은 포트가 있는데 사용하지 않은 포트에 연결 시킨 인터페이스상태가 Up 이 되어 있다면 다른 외부 침입자에 의해 라우터의 정보와 내부 네트워크 망에 손실을 입 힐 수가 있음 불필요한 포트를 차단시키지 않는다면 외부 공격자가 침입하는 경로가 그 사이로 침입하여 시스템에 피해를 줄 수 있음. [Cisco] 해당 인터페이스 Shutdown 확인 Router> enable Router# show ip int brief 모드로 접속하여 확인 (우측부분에 해당포트가 down/up 이 되어 있는지 확인 할 수 있다.) [Juniper] user@juniper> configure user@juniper# show ip [Cisco] 사용하지 않은 인터페이스 차단 Router# config terminal Router(config)# interface fastethernet 0/1 Router(config-line)# shutdown Router(config-line)# ^Z 사용할 포트는 no shutdown 으로 포트상태를 up 시켜준다. [Juniper] 기본적인 인터페이스 비활성 [edit interface interface-name] <- 해당 인터페이스 이름 삽입 disable; 예제> - 301 - - 302 -
user@juniper# configure user@juniper# edit interfaces [edit interfaces] user@juniper# set so-1/1/0 disable user@juniper# ^z user@juniper# edit interface [edit interfaces] user@juniper# show so-1/1/0 so-1/1/0 { disable; mtu 8000; clocking internal; encapsulation aaa; sonet-options { fcs 16; } unit 0 { family inet { address 1.1.1.1/32 { destination 1.1.1.2; } } } } 일반적인 영향 없음 점검분류 항목 기능 관리 위험도 중 분류번호 N-24 세부점검 항목 TCP keepalive 서비스 설정 대상 라우터 소켓 옵션이 설정되면 tcp_keepalive_interval로 지정된 시간 동안 연결 이 유휴 상태가 되었을 때 keepalive 탐색 패킷을 보낸다. 응답 메시지가 수신될 때까지 또는 tcp_ip_abort_interval로 지정된 시간 이 다 경과할 때까지 탐색 패킷을 보내는데 응답은 연결 상대측을 지 연시키는 요소의 영향을 받는데, 연결 상대측이 연결을 닫거나 다시 부 팅을 하면 응답 메시지는 RST(reset packet)가 된다. 수신 주소에 도달 할 수 없다는 ICMP 메시지를 수신하게 될 가능성도 있으며, 라우터가 고장 나거나 케이블 연결이 끊기는 등 여러 상황이 발생한다. 탐색 패 킷 자체는 tcp_rexmit_interval로 지정된 간격으로 보내진다. Keepalive 탐색 패킷을 전송 응답을 하지 못할 시에 라우터에 문제가 있을 가능성이 있음. TCP Keepalive 서비스 차단 확인 Router> enable Router# show running 사용되지 않는 터미널 삭제, 원격에서의 동일한 터미널 접속 방지 Router# config terminal Router(config) service tcp-keepalives-in (비정상종료 세션 종료) - 303 - - 304 -
점검분류 항목 기능 관리 위험도 중 분류번호 N-25 세부점검 항목 Finger 서비스 차단 대상 라우터 Finger 서비스는 원격의 사용자로 하여금 어떤 사용자가 라우터에 접속해 있는지를 알려주는 역할을 한다. 이는 라우터에 로그인할 수 있는 사용자 이름을 비롯한 중요한 정보를 제공하기에 공격자들이 많이 사용하는 서비스 중의 하나이다. no service finger 명령을 사용하여 finger 서비스 를 차단시킬 수 있는데 이는 라우터로 하여금 외부의 finger 요청에 응답하지 않게 하지만, 원천적으로 finger 요청 자체를 받아들이지 않도 록 동작하지는 않는다. 이를 구현하기 위해서는 라우터의 인터페이스로 들어오는 TCP 포트 79번 패킷을 ACL을 이용하여 차단하여야 한다. user@juniper> configure [edit] user@juniper# edit system services [edit system services] no finger { <connection-limit limit>; <rate-limit limit>; } 일반적인 영향 없음 사용자 접속 상태를 원격에서 알 수 있음 관리자의 IP가 노출되어 IP 도용 공격의 대상이 될 수 있음 Finger 서비스 차단 확인 [Cisco] Router> enable Router# show running (밑에 하단부분에 설정이 적용된 것을 확인 할 수 있음) [Juniper] user@juniper> configure [edit] user@juniper# show [Cisco] 최근 출시되는 IOS는 no service finger 명령 대신 no ip finger 명령을 사용하기도 한다. Router# config terminal Router(config)# no service finger (예전) Router(config)# no ip finger [Juniper] - 305 - - 306 -
점검분류 항목 기능 관리 위험도 중 분류번호 N-26 세부점검 항목 웹 서비스 차단 대상 라우터 시스코 IOS HTTP Server 상에 악의적인 HTML Code 삽입을 통해 해당 시스코 장비에 대해 악의적인 명령을 수행하거나, 각종 공격에 취약 할 수 있다. 기본 취약점에 대한 성공적인 공격을 위해서는 사용자 브라우 저가 HTML 명령이 삽입된 동적 콘텐츠에 접근하는 것이 필요하다. 본 취약점을 악용할 수 있는 익스플로잇 코드가 공개되었으며, 해당 코 드를 이용한 공격의 결과는 시스코 장비 상의 활성화된 패스워드를 재 설정할 수가 있다. Brute Force, 새로운 XSS 공격에 취약하다. HTTP 서버 취약점을 이용한 공격으로 인해 공격자는 시스코 장비 상 의 임의로 명령을 수행할 수 있으며, 해당 장비에 대한 모든 관리자 권한을 획득할 수가 있다. 웹서비스 차단 명령어 확인 Router> enable Router# show running (밑에 하단부분에 설정이 적용된 것을 확인 할 수 있음) 점검분류 항목 기능 관리 위험도 중 분류번호 N-27 세부점검 항목 TCP/UDP small 서비스 차단 대상 라우터 Cisco 제품의 경우 DoS 공격의 대상이 될 수 있는 기본적인 서비스 (echo, discard, daytime, chargen)를 제공하는 위험성이 있다. 이런 서 비스는 거의 사용되지 않는 것이므로 서비스가 열려있다면 이들 서비 스를 제거하는 것이 DoS 공격을 막는데 도움이 된다. TCP/UDP Small 서비스는 IOS 11.3 이상에서는 기본적으로 서비스가 제거된 상태이다. 요즘 사용되는 IOS는 이러한 Small Sever들이 Default 로 Disable 되어 있지만 낮은 버전의 경우는 직접 설정해 주어야 한다. DoS 공격의 대상이 될 수 있다. 라우터 버전 확인 Router# show version Cisco IOS Software, 3600 software (c3660-i-m), version 12.2(2)T4, RELEASE SOFTWARE (fc3)! [Cisco] 서비스 거부공격을 완전히 차단하지는 못하지만 알려진 서비스 거부 공격 포트는 적용/설정하여 방어하기를 권고함 웹서비스 차단 명령어 Router# config terminal Router(config)# no ip http server Router(config)# ^Z 부득이 IOS 상의 HTTP 서버를 사용해야만 한다면, HTTP WEB_EXEC 서 비스를 비활성화 함으로써 위험을 우회할 수 있습니다 TCP 와 UDP 관련된 small server들의 기능을 Disable 시킨다. Router# config terminal Router(config)# no service tcp-small-servers Router(config)# no service udp-small-servers Router(config)# ^Z Router# config terminal Router(config)# ip http active-session-modules exclude_webexec Router(config)# ip http secure-active-session-modules exclude_webexec Router(config)# ^Z 일반적인 영향 없음 일반적인 영향 없음 - 307 - - 308 -
점검분류 항목 기능 관리 위험도 중 분류번호 N-28 점검분류 항목 기능 관리 위험도 중 분류번호 N-29 세부점검 항목 Bootp 서비스 차단 대상 라우터 세부점검 항목 CDP 서비스 차단 대상 라우터 Bootp는 Booting에 사용되는 Protocol로서 원격지 라우터가 부팅에 필 요한 IOS Image 를 중앙의 Bootp Server로부터 전송 받아 부팅할 수 있도록 하는 서비스 이다. 전송 과정에서 공격자가 라우터의 IOS Image를 불법적으로 복사 할 수 있기 때문에 사용하지 않도록 한다. 대부분의 현장에서 원격으로 라우팅을 부팅하는 곳은 거의 없다. 공격자가 IOS Image를 복사하여 악용 할 우려가 있음. CDP(Cisco Discovery Protocol)는 Cisco 전용 프로토콜로서 관리자는 CDP를 실행하고 있는 라우터나 스위치의 정보 자세히 말하자면, 장비 의 종류, 이름 그리고 IOS 버전과 같은 내용을 얻을 수 다. 하지만 이 를 불법적인 목적을 가진 사용자에게 장비의 구체적인 정보나 네트워 크 구성 내용을 제공하기 때문에, 특별한 목적이 없다면 가급으로 사용 을 자제해야 한다. 실제적으로 대부분 네트워크에서는 CDP를 사용하지 않는다. Bootp 설정 차단 확인 Router> enable Router# show running 라우터의 정보를 얻을 수 있어, 공격자의 침입으로 인해 정보를 유출 할 수 있음. (밑에 하단부분에 설정이 적용된 것을 확인 할 수 있음) CDP 서비스 차단 확인 [Juniper] user@switch>sh configuration & sh interfaces detail Router> enable Router# show running (밑에 하단부분에 설정이 적용된 것을 확인 할 수 있음) [Cisco] 라우터를 자동 리부팅 하는 취약점이 존재하므로 적용/설정하여 방어 하기를 권고함 CDP를 라우터 전체에서 사용하지 못하도록 하기 위해서는 no cdp run 명령어가 사용되며 특정 인터페이스에서 사용하지 못하도록 하려면 no cdp enable 명령어를 사용한다. BootP 차단 설정 Router# config terminal Router(config)# no ip bootp server [Juniper] Router# config terminal Router(config)# no cdp run Router(config)# interface FastEthernet0/1 Router(config-if)#no cdp enable DHCP 서버의 IP 주소와 서버가 연결되어있는 스위치에 대한 인터페이 스를 지정 하는 옵션을 제거해준다. 일반적인영향 없음 user@switch> configure [edit] user@switchr# edit forwarding-options helpers bootp [edit forwarding-options helpers bootp] user@switch# no set interface (인터페이스 포트) server (주소) 일반적인 영향 없음 - 309 - - 310 -
점검분류 항목 기능 관리 위험도 중 분류번호 N-30 세부점검 항목 Directed-broadcast 사용 대상 라우터 Directed-broadcast는 목표지점에 도달하기 전까지 unicast 방식으로 전송되다가 최종 라우터를 통과할 때 비로소 Directed-broadcast를 알 아볼 수 있으므로 각 장치별로 이러한 패킷을 차단해야 한다. Directed Broadcast를 이용한 공격을 Smurf 공격이라 있는데 예를 들 어 다이렉트 브로드캐스팅이 허용되는 라우터에 연결된 PC들은 Broadcast ping 요청을 받게 되면 모두 공격 대상에게 핑을 보내게 됩 니다. 따라서 네트워크에 연결된 PC수가 40대이면 40개의 핑이 공격자 에게 보내지게 된다. 낮은 버전은 직접 설정이 필요하다. Router# config terminal Router(config)# interface fastethernet 0/1 Router(config-line)# no ip directed-broadcast. [Juniper] user@juniper> configure [edit] user@juniper# no ip directed-broadcast 일반적인 영향 없음 DoS(Denial Of Service)의 일종인 Smurf공격에 취약함. 브로드캐스트로 인해 과부하로 인한 다운현상 및 속도저하. 다이렉트 브로드 캐스트 차단 명령어 확인 [Cisco] Router> enable Router# show running 해당 포트 밑 부분에서 설정 확인 [Juniper] user@juniper> configure [edit] user@juniper# show [Cisco] 1. Smurf Attack 공격 예방 다량의 ICMP Echo Requst Packet 을 특정 Network 나 Broadcast 주 소로 보낼 때 응답 받을 패킷의 Source 주소를 공격 대상 IP 로 속여 대상 호스트를 공격하는 것으로 라우터가 공격의 경로에 있으면 특정 Network 나 Brodcast로 보내지는 ICMP 패킷을 차단하여 예방이 가능 Router# config terminal Router(config)# no access-list 108 Router(config)# acces-list 108 deny icmp any host 1.1.1.255 (1.1.1.0/24의 broadcast address인 1.1.1.255 ICMP를 차단) Router(config)# access-list 108 deny icmp any host 1.1.1.0 (1.1.1.0/24의 network address인 1.1.1.0 ICMP를 차단) 2. 다이렉트 브로드캐스트 차단 Cisco IOS는 내부 사용자가 외부 Network 의 Broadcast 주소로 요청 할 수 없도록 이와 관련된 설정이 이미 Default로 Disable 되어 있는데 - 311 - - 312 -
점검분류 항목 기능 관리 위험도 중 분류번호 N-31 세부점검 항목 Source 라우팅 차단 대상 라우터 점검분류 항목 기능 관리 위험도 중 분류번호 N-32 세부점검 항목 Proxy ARP 차단 대상 라우터 라우터에서 패킷의 목적지에 따라 패킷을 라우팅 하는 것이 기본이지 만, 경우에 따라 송신측에서 라우팅 경로 정보를 송신 데이터에 포함시 켜 라우팅 시키는 방법을 사용하는 경우가 있음. 현재, 거의 사용되지 않는 방법이지만 내부의 라우팅 경로를 파악하여 라우팅이 되지 않는 중요서버로 접근을 할 수 있기 때문에 소스 라우팅을 기본적으로 막아 야 함. 외부로 나가는 Packet의 경로를 Default Gateway 인 라우터가 결정하 는 것이 아니고, 목적지까지의 경로를 자신이 결정하는 것이기 때문에, 특별히 네트워크의 요구가 없으면 사용을 하지 않는다. Proxy ARP는 디폴트 라우터나 게이트웨이를 가지고 있지 않은 네트워크 의 호스트들에게 ARP 서비스를 제공하는 역할을 한다. 이 경우에 호스트 가 목적지 IP 주소에 대한 MAC 주소를 요청하면 Proxy ARP가 설정된 라우터가 이에 응답하여 자신의 MAC 주소를 목적지 MAC 주소인 것처 럼 전송한다. 최근에는 DHCP와 같은 프로토콜이 사용되면서 Proxy ARP 를 사용할 필요가 없어진 네트워크가 많다. 공격자들은 패킷의 주소를 위 조하여 Proxy ARP를 요청할 수 있으며 라우터가 이에 응답하는 것을 이 외부에서 내부로 오는 IP spoofing 공격에 취약함. 용하여 라우터와 네트워크에 관련된 정보를 획득할 수 있다. [Cisco] IP Source Routing 차단 확인 잘못된 IP와 MAC이 관련된 호스트에 대한 정상적인 통신을 방해하거 나 가로채기를 할 수 있게 함. [Cisco] Router# show running 접속 하여 확인 no proxy-arp 적용 확인 [Juniper] Router> enable user@juniper# show route [Cisco] Router# show running (각 인터페이스 정보 밑에 보면 적용 된 것을 확인 할 수 있다.) [Juniper] IP Source Routing 차단 proxy 로 검색하여 특정 MAC과 IP로 제한하거나 off되어 있는지 확인 Router# config terminal Router(config)# no ip source-route Router(config)# ^Z [Juniper] user@juniper# show proxy { } inet-address inet-address; user@juniper> configure [edit] user@juniper# no-source-route 일반적인 영향 없음 [Cisco] Proxy ARP를 차단하기 위해서는 no ip proxy-arp 명령을 사용할 수 있으며 그 사용 예는 아래와 같다. 이더넷 인터페이스에 대해 적용 Router# config terminal Router(config)# interface fastethernet 0/1-313 - - 314 -
Router(config-line)# no ip proxy-arp Router(config)# ^Z [Juniper] user@juniper> configure [edit] user@juniper# delete interfaces (interface-name) unit logical - unit -member proxy-arp 일반적인 영향 없음 점검분류 항목 기능 관리 위험도 중 분류번호 N-33 세부점검 항목 ICMP unreachable, Redirect 사용 대상 라우터 ICMP unreachables 메시지를 이용하여 스캔하고자 하는 호스트 또는 특정 포트의 open 여부를 결정하게 된다. 포트 오픈시 공격자가 침입 하여 unreachables 를 스캔하여 해당 정보를 해킹을 할 수 있음. ICMP Redirect는 최적의 경로를 알려주는 용도로 사용되지만 실제로 대부분의 환경에서는 불필요한 설정되어 있다면 변경하는 등 의 방법 으로 악용될 수 있으므로 서비스를 중지하는 것이 좋음. Smurf 공격에 취약함. [Cisco] ICMP Unreachables, ICMP redirects 적용 확인 Router> enable Router# show running 각 인터페이스 정보 밑에 보면 적용 된 것을 확인 할 수 있다. [Juniper] user@juniper# show [Cisco] 인터페이스에 no ip unreachables 를 실행 이를 차단 설정하면 스캔 시 소요되는 시간도 길어지게 되어 결국 스캔 공격을 지연 차단 할 수 있다. Router# config terminal Router(config)# interface FastEthernet0/1 (인터페이스 선택) Router(config-if)# no ip unreachables RIP, OSPF 등의 프로토콜을 사용함으로써 ICMP Redirect를 제거할 수 있다. Router# config terminal Router(config)# interface FastEthernet0/1 (인터페이스 선택) Router(config-if)# no ip redirects [Juniper] ICMP 트래픽을 추적하여 옵션을 지정 할 수 있다. [edit protocols router-options]를 통하여 특정 ICMP 옵션 값을 변환 해 줄 수 있다. - 315 - - 316 -
<> 표시 한곳에는 해당 옵션 값을 넣어주어야 한다. 점검분류 항목 기능 관리 위험도 중 분류번호 N-34 세부점검 항목 identd 서비스 차단 대상 라우터 [edit protocols router-discovery] traceoptions { file name <replace> <size size> <files number> <no-stamp> <(world-readable no-world-readable)>; flag flag <flag-modifier> <disable>; } ICMP 프로토콜의 트래픽을 추적하기 위해서는 아래의 명령어를 사용 하면 된다. [edit] routing-options { traceoptions { file routing-log; } } protocols { router-discovery { traceoptions { file icmp-log; flag state; } } } 어떠한 경로로 찾아갈 때 보다 시간이 경과 될 수 있음. identd 서비스는 클라이언트 머신들에게 접속을 요청한 유저에 대한 신원 확인을 위해 이 서비스를 사용한다. 이 서비스의 중요한 부분은 인증 데몬에 대한 응답을 받았을 때 유효 성을 체크하지 않고 응답은 전적으로 클라이언트 머신에서 달려 있기 때문에 인증 머신이 위조 될 수 있다는 것이다. identd 가 정상적으로 동작하려면 서버와 클라이언트가 모두 작동되어야 하며, 최근에는 서비 스보다 필터링 하는게 대부분이며 보안과 속도 등의 문제가 발생하고 있으며 대규모의 집단에서 사용하지 않은 한 identd 는 서비스를 하지 않은 것이 좋다. 중기 적용 identd 설정 확인 Router> enable Router# show running (하단 부분에서 확인 가능) 1. identd 기능을 필요할 경우 identd는 추적시 검문소 역할 을 하고 TCP 서비스를 쓰고 있는 사람들 의 사용자 이름을 identd 가 원격 사이트에 알려주는 기능을 한다. 만 약에 다른 사람이 자신의 사이트에 침입 한다면 그에 대해서 대응을 할 수 있다. 실행 시키지 않는다면 수많은 기록을 살펴봐야 하기 때문 에 긴 시간이 소요 될 수 있어, 자신의 시스템 구성에 따라 설정/해제 를 설정 하는 것이 좋다. 2. identd 서비스 차단 Router# config terminal Router(config)# no ip identd Router(config)# ^Z 일반적인 영향 없음 - 317 - - 318 -
점검분류 항목 기능 관리 위험도 중 분류번호 N-35 세부점검 항목 Domain lookup 차단 대상 라우터 점검분류 항목 기능 관리 위험도 중 분류번호 N-36 세부점검 항목 pad 차단 대상 라우터 Domain lookup 은 라우터 상에서 명령어를 수행 했을 때 오타가 났을 라우터 서비스 중에 하나인 Pad 는 Packet assembler / disassembler 때 그 명령어를 주위에 인접한 서버나 라우터들에게 묻게 된다. 이때 속도가 저하 되거나, 불필요한 시간을 낭비 하게 되기 때문에 설정을 라는 뜻의 서비스로서 기계적인 패킷을 서비스 할 때 사용한다. X.25 프로토콜을 사용 할 때 필요 하므로 일반적인 경우에는 중지하는 것이 차단시키는 것이 좋음 좋다. 오타가 났을 경우, 속도저하와 시간이 낭비 될 수 있음. no ip domain-lookup 설정 확인 현재 Pad 서비스는 기계적인 패킷을 사용하기 때문에 속도가 저하될 우려가 있음. Router> enable Router# show running 모드로 접속하여 확인 (상단 부분에서 확인) [Juniper] user@juniper# show ip domain-lookup [ filter ] [Cisco] pad 설정 확인 Router> enable Router# show running 모드로 접속하여 확인 [Juniper] 도메인 룩업(domain-lookup) 서비스 잘 사용하지 않지만 꼭 필요한 경 우 에만 사용 하는 것이 좋다. 보통 처음에 라우터 실행시에 적용 시키 user@juniper> configure [edit] user@juniper# show 는 것이 일반 적이다. [Cisco] [Cisco] Domain Lookup 차단 설정 pad 차단 설정 Router# config terminal Router(config)# no ip domain-lookup Router(config)# ^Z Router# config terminal Router(config)# no service pad Router(config)# ^Z [Juniper] [Juniper] user@juniper> configure user@juniper# no ip domain-lookup user@juniper# ^Z [edit] user@juniper# no hello-padding (adaptive loose strict); 일반적인 영향 없음 일반적인 영향 없음 - 319 - - 320 -
점검분류 항목 기능 관리 위험도 중 분류번호 N-37 세부점검 항목 mask-reply 차단 대상 라우터 mask-reply 는 인터페이스를 통해 netmask를 요청하는 icmp 패킷을 발송했을 시 응답하도록 하는 설정이다. mask-reply 활성화 했을 시에 네트워크의 netmask 정보 등을 유출 할 수 있음으로 이 기능은 차단하 는 것이 권장된다. [Juniper] user@juniper> configure [edit] user@juniper# no ip mask-reply 일반적인 영향 없음 네트워크 정보가 유출될 수 있음. [Cisco] 만약에 serial interface 1/0 에 no ip mask-reply 설정을 하였다면 Router# config terminal Router(config)# show ip interface serial1/0 (밑에처럼 config 된 걸 볼 수가 있는데 브로드 캐스트 포워딩이 다른 것을 볼 수가 있다.)! Directed broadcast forwarding is * disabled * <- 변경후 ICMP redirects are never sent ICMP unreachables are never sent ICMP mask replies are never sent! Directed broadcast forwarding is * enable * <- 변경전 ICMP redirects are never sent ICMP unreachables are never sent ICMP mask replies are never sent! [Juniper] user@juniper> configure [edit] user@juniper# show interface terse [Cisco] reply 설정 차단 Router# config terminal Router(config)# interface serial 1/0 Router(config)# no ip mask-reply - 321 - - 322 -
점검분류 항목 기능 관리 위험도 하 분류번호 N-38 세부점검 항목 스위치 허브 보안 강화 대상 스위치/허브 스위치 계층의 공격에는 두 가지 공격의 유형으로 크게 나뉘는데, 대체 로 장비를 이용하는 공격과, 트래픽 흐름을 변경하여 네트워크를 공격 하는 유형으로 분류를 할 수 가 있다. 장비 공격은 스위치의 허술한 보 안설정, 관리정책 등의 취약점을 이용한 공격이고, 네트워크 공격은 스 위치 계층의 통신 원리를 이용해 트래픽의 흐름을 변조하여 네트워크 통신을 마비시키는 등의 공격 등이 있어 스위치 보안설정에 신경을 많 이 써야 한다. 허브는 연결된 모든 PC들에게 통신하는 데만 보통 쓰인다. HUB는 콜 리젼이 발생하여 만약에 데이터를 서로 보내고 있다면 다른 데이터는 기다려야 하는 현상이 발생하면 속도가 느려 질 수 밖에 없다 만약에 100mbps 10대의 pc에 전송하게 된다면 한 대당 10mbps 속도 밖에 수신을 못하여 속도적인 측면에서도 비효율적이다. 트래픽의 흐름을 이용하여 네트워크를 마비 시켜 통신이 불가능 하게 될 우려가 있음. 포트 보안 설정을 확인 Switch> enable Switch# show port-security address 명령을 치면 확인 할 수 있음 SPAN 설정 확인 Switch> enable Switch# show monitor 명령을 치면 확인 할 수 있음 흐름을 변경하는 트래픽 변경 공격 유형이다. 단순하게 ARP 스푸핑 공 격만을 이용하는 것보다는 여러 가지 툴들을 이용 조합된 공격을 하는 것이 특징이다. 시스코의 경우 개인 가상랜(VLAN) 기능을 이용하여 ARP 스푸핑에 대 한 대책을 세울 수 있다. 개인 가생랜은 동일한 가상랜 내에서 포트 단 위로 분리 할 수 있는 기능으로, promiscuous/isolated/community의 포트 속성을 정의하여 트래픽 이동에 대한 제한이 가능 하다. * 스위치의 기본 보안 설정 * - 정적 포트 보안 설정 (port security 는 access port, trunk port, tunnel port에 만 구성이 가능) Switch> enable Switch# config terminal Switch(config)# interface fastethernet 0/1 Switch(config-line)# switchport mode access Switch(config-line)# switchport port-security mac-add 0050.bf1c.82d3 Switch(config-line)# switchport port-security - Port Sticky 방식을 사용한 포트 보안 설정 Switch# config terminal Switch(config)# interface fastethernet 0/1 Switch(config-line)# switchport port-security violation? (밑에 있는 명령어를 선택하여 설정) 스위치를 이용한 종류별 공격 위협 및 대책 1. MAC 플루딩 이더넷 환경에서 스니퍼를 이용한 스니핑 공격을 하여 주요 정보 유출 이 될 가능성이 높다. MAC 플루딩 공격은 특정 호스트가 대량의 변조 된 MAC 주소를 생성하기 때문에 이를 차단 시켜야 한다. 각 포트마다 MAC 주소를 스위치에 설정 또는 포트 마다 수용 할 수 있는 최대 MAC 주소의 개수를 제한 한다. 2. ARP 스푸핑 ARP 스푸핑은 스위치 장비에 의한 직접적인 공격이 아니라 트래픽의 * Protect Security violation protect mode (침입시 해당장비 접속만 차단) * restrict Security violation restrict mode (추가 로깅 메시지 발생, 보안 침해 카운터 증가) * shutdown Security violation shutdown mode (기본적인 설정이면 침해 발생시 포트 shutdown) - MAC Access List 생성 및 적용 Switch# config terminal Switch(config)# mac access-list extended mac-pc1-to-pc2 Switch(config)# deny host xxxx.xxxx.xxxx host ssss.ssss.ssss (Mac 호스트를 적용) - 323 - - 324 -
Switch(config)# permit any any Switch(config)# ^Z Switch(config)# interface fastethernet 0/1 Switch(config-line)# mac access-group mac-pc1-to-pc2 in - IP ACL을 이용한 포트 ACL 및 적용 Switch# config terminal Switch(config)# ip access-list xtended ip-pc1-to-pc2 Switch(config)# deny ip host 192.168.10.1 host 192.168.1.2 Switch(config)# permit ip any any Switch(config)# ^Z Switch(config)# interface fastethernet 0/1 Switch(config-line)# ip access-group ip-pc1-to-pc2 in - Traffic Monitoring 위한 SPAN 설정 Switch# config terminal Switch(config)# monitor session 1 source int fastethernet 0/1, fastethernet 0/24 rx Switch(config)# monitor session 1 destination int f0/23 - VLAN Mirroring 설정 Switch# config terminal Switch(config)# monitor session 1 source vlan 1 rx Switch(config)# monitor session 1 destination int f0/23 일반적인 영향 없음 5. 제어시스템 취약점 항목 상세 설명서 점검분류 항목 계정관리 위험도 상 분류번호 C-1 제어시스템 운영, 관리 계정 세부점검 항목 대상 제어시스템 공유 금지 대부분의 제어시스템 운영기관들이 하나의 제어시스템 운영 계정을 교 대 근무인력들이 공유하여 사용하는 경우가 많다. 그러나 제어시스템 운영자, 관리자 각각에 유일한 계정을 부여하여 관리해야 한다. 제어시스템 오작동, 침해사고에 대한 책임 규명과 사고 조사가 어려움 제어시스템 운영자, 관리자별로 별도의 계정이 발급되었는지 확인 1. Windows의 경우 시작>제어판>사용자 계정 2. Unix, Linux 계열의 경우 #cat /etc/passwd 제어시스템 운영자, 관리자별로 별도의 계정을 생성 1. Windows의 경우 시작>제어판>사용자 계정>추가 2. Unix, Linux 계열의 경우 #useradd 계정명 일반적인 영향 없음 - 325 - - 326 -
점검분류 항목 계정관리 위험도 상 분류번호 C-2 점검분류 항목 계정관리 위험도 상 분류번호 C-3 세부점검 항목 ID/PW, 접속경로, 인증서 등이 하드 코딩되지 않음 대상 제어시스템 세부점검 항목 제어시스템 운영, 관리를 위한 계정의 로그인, 사용 기록 저장 대상 제어시스템 제어시스템은 보안에 대한 고려 없이 설계 개발되는 경우가 많아 ID/PW, 접속경로, 인증서 등을 하드코딩 하는 경우가 자주 발생한다. 제어시스템의 오작동, 침해사고 분석과 추적을 위하여 제어시스템 운 영, 관리자의 계정 사용에 대하여 기록해야 한다. 하드코딩된 정보를 이용하여 시스템에 침입하거나 비인가된 제어를 수 행할 수 있음 이러한 기록을 저장하지 않는 경우, 장애와 침해사고의 원인을 분석할 수 없으며, 공격자를 추적하기도 어려움 따라서, 장애와 침해사고에 대한 적절한 대응과 보안대책의 수립, 적용 이 어려움 - 제어시스템 매뉴얼에서 ID/PW, 접속경로 등의 중요정보를 변경할 수 없게 설정되어 있는지 확인 - strings 등의 명령어를 이용하여 실행파일내에 하드코딩된 정보 확인 # strings 실행파일명 로깅설정 및 로그파일의 로깅정보 확인 1. Windows의 경우 시작>프로그램>관리도구>도메인사용자관리자>정책>감사 2. Unix, Linux 계열의 경우 #cat /etc/syslog.conf 파일에서 로그 설정 확인 #cat /var/adm/loginlog, authlog, sulog의 파일을 열어 로깅 정보 확인 장기 적용 1. Windows의 경우 시작>프로그램>관리도구>도메인사용자관리자>정책>감사 하드코딩된 정보가 없으며 서비스 이용시 사용자에 의해서 ID/PW 등 이 입력되도록 변경 - 로그온 및 로그오프, 보안정책 바꾸기 : 성공/실패 감사 설정 - 사용자 권한 사용, 사용자 및 그룹 관리 : 실패 감사 설정 * 제어시스템의 경우 vendor 社 에 의한 소스코드의 변경이 필요한 경우 가 있으며, 정상적인 제어시스템 운영, 관리를 위하여 설계 개발 된 경우에는 하드코딩 된 중요 정보를 제거하기 어려움 2. Unix, Linux 계열의 경우 #vi /etc/syslog.conf 파일을 열어 로깅 설정 * 메시지 종류 auth : 로그인 등의 인증 프로그램 유형이 발생한 메시지 authpriv : 개인인증을 요구하는 프로그램 유형이 발생한 메시지 하드코딩된 ID/PW 사용 불가 cron : cron이나 at과 같은 프로그램이 발생하는 메시지 daemon : telnetd, ftpd등과 같은 데몬이 발생한 메시지 kern : 커널이 발생한 메시지 lpr : 프린터 유형의 프로그램이 발생한 메시지 mail : 메일시스템에서 발생한 메시지 - 327 - - 328 -
news : 유즈넷 뉴스 프로그램 유형이 발새? 메시지 syslog : syslog 프로그램 유형이 발생한 메시지 user : 사용자 프로세스 uucp : 시스템이 발생한 메시지 local0 : 여분으로 남겨둔 유형 일반적인 영향 없음 점검분류 항목 패치관리 위험도 상 분류번호 C-4 세부점검 항목 제어시스템에 대한 최신 업데이트, 보 안패치를 안전하게 적용하기 위한 테 대상 제어시스템 스트 등의 절차 수립 보안 취약점을 제거하기 위해서 최신 업데이트, 보안패치를 적용이 필 요하다. 업데이트, 보안패치는 정상적인 제어시스템 운영에 영향을 미 칠 수 있으며, 따라서, 제어시스템 업데이트, 패치 적용 테스트, 시험운 영, 유휴시간 적용 테스트 등의 안전한 업데이트, 패치 절차가 수립 필 요하다. 대부분의 제어시스템은 높은 가용성을 요구하고 있어, 업데이트 및 패 치로 인한 시스템 오작동, 서비스 장애는 많은 문제 발생 가능성 존재 제어시스템에 대한 업데이트, 보안패치 절차가 수립되어 있는지 점검 - 업데이트, 보안패치에 대한 주기적 점검 여부 - 업데이트, 보안패치에 대한 적용 전, 영향성 점검 절차 여부 테스트베드를 통한 시험 적용 및 검토 백업 시스템에 먼저 적용하고 영향성 검토 제어시스템 비운행 시간에 적용하고, 정상 동작 여부 검토 - 업데이트, 보안패치가 문제를 일으키는 경우에 대한 복구(rollback) 대 책 수립 여부 제어시스템에 대한 안전한 업데이트, 보안패치 절차를 수립 - 업데이트, 보안패치에 대한 주기적 점검 - 업데이트, 보안패치에 대한 적용 전, 영향성 점검 테스트베드를 통한 시험 적용 및 검토 백업 시스템에 먼저 적용하고 영향성 검토 제어시스템 비운행 시간에 적용하고, 정상 동작 여부 검토 - 업데이트, 보안패치가 문제를 일으키는 경우에 대한 복구(rollback) 대 책 수립 일반적인 영향 없음 - 329 - - 330 -
점검분류 항목 접근통제 위험도 상 분류번호 C-5 점검분류 항목 접근통제 위험도 상 분류번호 C-6 세부점검 항목 제어시스템 운영자의 운영 권한은 제 한된 범위 및 명령으로 제한 대상 제어시스템 운영자가 제어 가능한 시스템은 관할 기반시설로 범위가 제한되어야 세부점검 항목 제어시스템은 업무망, 인터넷 망과 물리적으로 분리 대상 제어시스템 하며, 제어시스템의 손상, 기반시설의 피해를 야기할 수 있는 명령들도 제한되어야 한다. 제어시스템은 지리적으로 넓은 범위에 걸쳐 많은 시스템이 운영되고 있으며, 오작동 및 보안 침해 시 피해가 막대함으로 운영자의 제어 범 제어시스템은 기반시설을 운영하고 있기 때문에 피해 시 파급효과가 막대하므로 인터넷 또는 업무망과 물리적으로 완전한 분리 운영이 필 요하다. 위, 수행 가능한 명령에 대해서 제한해야 한다. 이러한 제한이 적용되지 않은 경우, 운영자는 본인의 운영범위를 벗어 난 임의의 시스템을 제어하거나, 권한 이상의 제어명령을 실행할 수 있 음 MMI(HMI)의 임의 운영자 계정으로 로그인하여 관할 범위 외의 시스템 에 대한 제어 가능여부, 업무규정상 허용된 권한 이상의 제어명령 실행 가능 여부를 확인 * 점검을 위하여 제어를 수행하거나, 권한 이상의 제어명령을 실제로 수행할 경우 심각한 결과를 초래할 수 있으므로, 제어명령 실행가능 성, 접근통제 여부에 대하여 점검 방화벽을 이용한 연계구간 접근제어, 스토리지 기반의 자료전달 시스템 은 양방향 통신을 사용하므로 정책 관리 미흡, 해당 시스템의 취약점 발견 시 제어 네트워크로의 침입을 완벽하게 차단할 수 없음 - 제어시스템 네트워크 구성도를 검토하여 물리적인 분리가 이뤄졌는 지 확인 - 네트워크 장비, 방화벽의 정책을 기술적으로 분석하여 실제로 분리되 어 운영되는지 확인 장기 적용 관할 범위를 벗어난 네트워크 및 시스템에 접근이 가능한지 점검 - 허용된 서비스(ssh, Xwindows, Web 등)에 대하여 로그인 점검 - 방화벽 정책 검토 제어시스템 운영에 인터넷, 업무망과의 연계가 필수적이지 않은 경우 제어 네트워크를 물리적으로 분리하여 구성 * 국가정보원에서 배포한 전자제어시스템 보안가이드라인 3장 2절 제어 네트워크의 물리적 망분리 참조 * 제어시스템 운영에 외부망 연결이 필수적인 경우에는 3장 3절 안전 한 제어 네트워크 연동 기법 참조 - (제어시스템에서 제어범위, 제어명령에 대한 제한이 가능한 경우) 운 영자 계정에 대한 제어범위, 제어명령의 제한 - 운영에 필요한 타 제어시스템에 대한 접근 차단 정책을 방화벽에 적 업무망에서 인터넷 사용 불가 용 권한에 따라 운영자가 실행 불가능한 제어명령이 발생할 수 있음 - 331 - - 332 -
점검분류 항목 접근통제 위험도 상 분류번호 C-7 점검분류 항목 접근통제 위험도 상 분류번호 C-8 세부점검 항목 제어 네트워크 외부와 자료연계시 물리적 일방향 환경을 구축하여 제어 대상 제어시스템 세부점검 항목 제어 네트워크에 무선인터넷, 테더링, 외부 유성망 연결 등의 외부망 연결 대상 제어시스템 네트워크로의 침입을 근본적으로 차단 을 제한하고 점검 제어 네트워크는 인터넷망, 내부망(업무망)과 물리적으로 분리되어 운영 되어야 한다. 외부망과의 자료 연계 시에는 물리적 일방향 환경을 구축하여 필요한 자료를 연계해야 한다. 제어 네트워크는 인터넷망, 내부망(업무망)과 물리적으로 분리되어 운영 되어야 한다. 무선인터넷, 테더링(tethering), 외부 유선망 연결을 통하 여 외부와 연결되지 않도록 제한하고 점검해야 한다. 일방향 환경이 구축되지 않을 경우, 외부로부터 내부로의 접근과 침입 을 근본적으로 차단할 수 없음 제어시스템 네트워크 구성도를 검토하여 외부망 연계지점이 일원화 되 어 있는지 확인 해당 연계구간이 물리적 일방향 시스템을 통하여 연계되어 있는지 확 인 제어 네트워크가 물리적으로 분리되어 운영되는 경우에도, 제어 네트워 크 내부에서 무선인터넷, 테더링 등을 통하여 연결되거나, 이와 같은 외부망에 연결된 노트북 등의 시스템이 제어 네트워크에 연결되는 경 우에는 인터넷으로부터 제어 네트워크로의 직접적인 침입경로가 생성 됨 1. 제어 네트워크 내부에서 외부 인터넷 사이트 접속 여부 점검 - 랜, 시리얼 라인의 외부망 제어 네트워크로의 TX-RX 라인 절체 - 웹브라우저에서 인터넷 포털사이트 등 연결 점검 - 물리적 일방향 시스템 적용 - #ping 외부 IP 장기 적용 제어시스템 운영에 인터넷, 업무망과의 연계가 필수적인 경우 물리적 일방향 시스템 적용 랜, 시리얼 라인의 외부망 제어 네트워크로의 TX-RX 라인 절체 2. Wifi 등의 무선네트워크 점검 - 무선AP, 무선네트워크 전파 스캐너를 사용하여 점검 - 노트북 등을 이용하여 무선네트워크 보기 를 실행하여 점검 3. 제어 네트워크 내의 패킷을 스니핑(Sniffing)하여 외부 통신 패킷 여 부 검토 - Wireshark 등의 패킷 스니핑 도구를 이용하여 패킷 분석 장기 적용 제어 네트워크를 외부망과 물리적으로 분리 또는 물리적 일방향 시스 템을 통하여 외부망과 연계 물리적 일방향 시스템 적용 물리적 일방향 시스템 적용 내부망과 인터넷망 자료 연계 제한 내부망과 인터넷 연계 제한 - 333 - - 334 -
점검분류 항목 접근통제 위험도 상 분류번호 C-9 점검분류 항목 보안관리 위험도 상 분류번호 C-10 세부점검 항목 제어 네트워크에 비인가된 시스템에 대한 연결 및 접속 차단 대상 제어시스템 세부점검 항목 제어시스템 구성도, 운용 매뉴얼, 비 상조치 절차서 등을 작성하고 최신으 대상 제어시스템 제어시스템은 지리적으로 넓게 분포된 지역에 구축되기 때문에, 네트워 크에 대한 물리적인 접근에 대하여 차단하기가 어렵다. 따라서, 비인가 된 시스템이 네트워크에 연결되어 시스템에 접근하는 것을 차단할 수 있도록 NAC 등의 보안대책을 적용하여야 한다. 로 관리 제어시스템의 장애와 사이버 침해사고에 대한 신속한 대응을 위해서는 정확한 제어시스템 현황과 네트워크 구성도, 운용매뉴얼, 비상조치 절 차서가 구비되어 있어야 한다. 해당 문서들은 제어시스템에 대한 중요 정보를 포함하고 있으므로, 대외비 이상으로 보호, 관리되어야 하며, 비 비인가된 시스템에 의한 제어 네트워크 불법 접근 가능 상시 신속하게 활용할 수 있도록 절차가 마련되어야 한다. 제어시스템에 대한 현황과 정보가 정확하지 않은 경우, 장애 및 침해사 제어 네트워크의 임의의 연결 포트에 노트북 등을 연결하여 DHCP, 제 어네트워크 IP 임의 세팅을 통한 네트워크 접속 점검 고에 대한 분석과 대응이 실제와 다르고, 부적절하여 제어시스템 운영 에 악영향을 미칠 수 있으며, 해당 문서들에 대한 관리가 소홀한 경우 제어시스템 중요정보가 유출될 수 있음 제어시스템 현황, 구성도, 운영 매뉴얼, 비상조치 절차서를 확인 장기 적용 - 구비된 현황, 구성도, 문서가 현재의 제어시스템과 일치하는지 검토 - 해당 문서는 제어시스템에 대한 중요정보를 포함하고 있으므로, 문서 의 비밀관리에 대한 사항 점검 NAC 등의 보안솔루션을 적용하여 제어 네트워크 임의 접속 장비에 대 한 네트워크 접근 차단 - 제어시스템을 유형별로 분류하고, 일련번호를 부여하여 관련 현황 파 악 비인가 시스템의 제어 네트워크 접근 제한 - 제어시스템 네트워크에 대한 구성도를 최신으로 파악하여 관리 - 운영매뉴얼, 비상조치 절차서를 수립하여 활용 - 해당문서에 대하여 대외비 이상으로 관리 일반적인 영향 없음 - 335 - - 336 -
점검분류 항목 보안관리 위험도 상 분류번호 C-11 점검분류 항목 보안관리 위험도 상 분류번호 C-12 세부점검 항목 제어시스템에서의 USB 사용을 금지 하고, 사용시 USB 등의 이동형 저장 대상 제어시스템 세부점검 항목 제어명령에 대한 위변조 방지 대책 적용 대상 제어시스템 매체 사용 통제 제어시스템 운영 시 필수적인 경우가 아니라면 USB를 사용하지 못하도 록 차단, 포트폐쇄 등의 보안조치를 수행해야 한다. 사용 시에는 인가 제어시스템은 보안에 대한 고려 없이 설계 개발되는 경우가 많아, 제어 명령을 평문으로 전송하거나, 인증 없이 명령을 수행함으로써 비인가 된 위 변조 명령에 대하여 취약한 경우가 다수 존재한다. 된 USB 사용, 자동실행 차단 등의 보안대책을 적용하여야 한다. 제어시스템에 대한 네트워크 접근이 엄격하게 통제는 가운데 USB를 통 한 제어시스템 공격이 대두되고 있음 - 제어시스템 USB 포트의 물리적 차단, USB 보안통제솔루션 도입 여부 제어명령이 위 변조에 취약한 경우, 비인가자에 의한 제어시스템 운영 과 제어가 가능하기 때문에, 제어명령에 대한 무결성 점검, 암호화, 인 증 등의 보안대책을 적용하여야 함 - 전송되는 제어명령을 스니핑(Sniffing)하여 암호화, 무결성 체크 등의 확인 위 변조 방지대책이 적용되었는지 검토 - 제어시스템 USB 포트의 물리적 차단 확인 - 제어명령의 전송과 실행과정에 인증을 수행하는지 검토 - 안전하게 포맷된 USB 메모리를 허용된 USB포트에 삽입하여 인식 사 용 여부 확인 * USB 보안통제솔루션이 도입된 경우에 점검(제어시스템 영향성으로 - 스니핑된 제어명령 위 변조하고 이를 다시 전송하여, 해당 명령이 실 행되는지 확인할 수도 있음 - 다만 이러한 점검은 실제로 운영되는 제어시스템에서 수행될 경우 USB 보안통제솔루션 도입을 강제할 수 없음, 단 미도입시 관리 절차 매우 위험하므로, 테스트베드 등을 통하여 분석되어야 함 적인 보안대책 수립에 대하여 점검) * 제어명령 위 변조에 대한 점검은 시스템 오작동, 장애 등의 높은 위 1. 제어시스템의 USB 포트를 물리적 차단, 또는 시건 시스템 관리 등의 목적으로 필요한 경우에 한하여 지정된 사용자만 험을 수반하므로, 암호화 여부, 무결성 체크, 인증 과정 여부를 점검 하여 간접적으로 분석할 수 있음 사용 - 제어명령 전송 시, 인증 과정을 수행하도록 함 - 제어명령의 암호화, 무결성 체크를 통하여 위 변조에 안전하도록 제 어시스템을 수정하여야 함 * Vendor 社 에 의한 제어시스템 수정, 개선이 필요하며, 정상적인 제어 시스템 운영에 많은 영향을 미칠 수 있음 일반적인 영향 없음 USB 포트 물리적 차단 예 2. USB 보안통제솔루션을 도입(도입 및 적용이 가능한 경우) * 제어시스템에 대한 보안솔루션 도입 시, 반드시 영향성 검토 필요 제어시스템에서 USB, CD/DVD 등 사용 제한 - 337 - - 338 -
점검분류 항목 보안관리 위험도 상 분류번호 C-13 점검분류 항목 보안관리 위험도 상 분류번호 C-14 세부점검 항목 제어명령 replay 공격에 대한 방지 대책 적용 대상 제어시스템 세부점검 항목 제어시스템 개발자, 운영자, 관리자에 대한 접근권한 분리 대상 제어시스템 제어시스템은 보안에 대한 고려 없이 설계 개발되는 경우가 많아, 제어 명령을 재전송하는 경우 인증 없이 실행하는 경우 다수 존재한다. 제어시스템에 대한 접근권한은 각 업무에 따라 최소한으로 부여되어야 한다. 개발자, 운영자, 관리자는 접근권한을 분리하고 필요한 최소한의 권한만 부여해야 한다. 공격자가 네트워크를 통하여 전송되는 제어명령을 스니핑(Sniffing)하여 저장한 후, 재전송하여 제어시스템을 임의 제어할 수 있음 전송되는 제어명령을 스니핑(Sniffing)하여 저장하고, 이를 다시 네트워 개발자, 운영자에 대한 접근권한이 적절하게 분리 제한되지 않은 경우, 개발자에 의한 비인가 제어, 운영자에 의한 제어시스템 관리 기능 접근 이 가능함 개발자, 운영자, 관리자별로 별도의 계정이 부여되었는지 확인하고, 해 크에 전송하야 해당 제어명령이 수행되는지 점검 당 계정별로 권한이 분리되어 운영되는지 확인 * 제어명령 재전송 취약점에 대한 점검은 시스템 오작동, 장애 등의 높 은 위험을 수반하므로 테스트베드 등을 통하여 수행되어야 하며, 제 어명령에 대한 인증절차, 세션키, Time Stamp 등의 보안대책을 검토 하여 간접적으로 분석할 수 있음 - 제어시스템 계정 확인 #cat /etc/passwd - 확인된 계정이 개발자, 운영자, 관리자별로 구분되어 발급되었는지 - 제어명령 전송 시, 인증 과정을 수행 - 제어명령의 인증, 세션키 확인, Time Stamp 확인 등을 통하여 재전 송 공격에 안전하도록 제어시스템을 수정하여야 함 * Vendor 社 에 의한 제어시스템 수정, 개선이 필요하며, 정상적인 제어 확인 - 각 계정의 권한 및 그룹 확인(관리자 권한 및 관리자 그룹 포함 여부 등) #cat /etc/group 시스템 운영에 많은 영향을 미칠 수 있음 일반적인 영향 없음 각 계정에 대한 그룹 분리 #usermod g 바꿀 GID ID 계정에 따라 명령어 실행 제한 - 339 - - 340 -
점검분류 항목 보안관리 위험도 상 분류번호 C-15 점검분류 항목 보안관리 위험도 상 분류번호 C-16 세부점검 항목 제어시스템, 제어기기에 (vendor default) 은닉서비스 및 취약한 서비 스가 없도록 설정 대상 제어시스템 세부점검 항목 제어프로그램의 입력창에 비정상적인 특정값을 입력할 시 사전에 정의한 에러 메시지가 출력되도록 하여 시스템 대상 제어시스템 제어시스템, 제어기기에 유지보수 등을 위하여(vendor 社 에 의해서) 은 닉된 서비스 및 tftp와 같은 취약한 서비스를 제거하여야 한다. 은닉된 서비스는 공격자의 침입경로 및 백도어로 활용될 수 있음 인증과정이 없는 tftp, 평문(Pain text) 통신을 하는 telnet 등은 쉽게 공 중요정보가 노출되지 않도록 설정 제어시스템 소프트웨어 설계 시 에러 처리 미흡으로 인하여 제어시스템의 취약점 및 정보가 노출될 수 있으며 이를 통한 제어시스템의 침투, 획득한 정보를 이용한 연계공격 가능 격에 이용될 수 있음 제어시스템 운영에 불필요한 서비스가 오픈되어 있는지 검토 제어시스템 매뉴얼을 검토하여 default 서비스, 관리용 서비스 확인 시스템 주요 정보(제품명, 개발버전 등) 노출 서비스 설정정보를 확인 1. Windows의 경우 시작>설정>제어판>서비스에서 확인 제어 프로그램의 입력 값에 비정상적인 임의의 값을 넣어 에러를 유발 시킨 후 시스템 정보 등이 유출되는지 확인 2. Unix, Linux 계열의 경우 #cat /etc/inetd.conf 파일을 열어 확인 - 식별된 해당 서비스가 제어시스템 운영에 필수적인지 검토, 식별된 줃기 적용 해당 서비스가 인증, 암호화 등이 수행되는 안전한 서비스인지 검토 제어 프로그램은 품질 및 기술검토활동을 통하여 단위테스트, 통합테스트, 불필요한 서비스 제거 및 접근제한 설정 시스템테스트 및 인수테스트 등을 실시함으로써 에러를 최소화하고 1. Windows의 경우 성능의 검증 및 테스트가 완료된 프로그램을 사용 시작>설정>제어판>서비스에서 불필요한 서비스를 선택하여 중지 제어 프로그램 에러 발생 시, 사전에 정의된 에러코드 또는 에러 메시지를 (시작옵션에서 시작유형을 사용안함 으로 설정) 출력하여 에러를 처리하여 시스템의 주요 정보노출을 최소화 시작>설정>제어판>방화벽설정에서 접근 가능한 IP 제한 2. Unix, Linux 계열의 경우 #vi /etc/inetd.conf 파일에서 불필요한 서비스 주석(#) 처리하여, 해당 일반적인 영향 없음 서비스 비활성화 #/etc/hosts.allow에 접근 가능한 서비스, IP 지정 #/etc/hosts.deny에서 차단하고자 하는 서비스, IP 지정 일반적인 영향 없음 - 341 - - 342 -
점검분류 항목 보안관리 위험도 중 분류번호 C-17 점검분류 항목 보안관리 위험도 중 분류번호 C-18 세부점검 항목 정보시스템에 대한 정책과 별도로 제 어시스템에 대한 정보보안 정책 및 대상 제어시스템 세부점검 항목 비인가자 또는 인증과정이 없는 제어 시스템, 제어기기에 대한 환경 설정 대상 제어시스템 지침 수립 제어시스템은 정보시스템과 다른 보안요소 및 특성, 침해시의 높은 파 급효과를 지닌다. 따라서, 이를 반영하여 보다 엄격하고 차별화된 정보 보안 정책, 지침 수립이 필요하다. * 정보시스템 : C(Confidentiality) > I(Integrity) > A(Availability) 제한 제어시스템은 보안에 대한 고려 없이 설계 개발되는 경우로 인해 시스 템 운영에 영향을 미치는 환경 설정, 중요 파라미터 설정 시 로그인, 인증 절차 없이 수행되는 경우가 존재할 수 있다. 제어시스템 : A(Availability) > I(Integrity) > C(Confidentiality) 일반적인 IT시스템에 대한 보안정책이 제어시스템의 운영에 영향을 미 제어시스템에 대한 환경설정이 비인가자에 의해서 임의로 변경되는 경 우, 제어시스템 오작동, 장애 유발 가능성 존재 치는 경우가 존재함. 예를 들어 신속한 업데이트, 보안패치의 적용이 제어시스템에 대한 영향 검토 없이 수행된 경우 제어시스템 오작동과 중지 발생 가능성 존재 제어시스템 관리 서비스, 설정변경에 대한 인증, 접근통제 여부 확인 - 제어시스템 관리 서비스 접근 시, ID/PW 요구 등의 인증과정 수행 여부 점검 - 조직, IT시스템 전반에 대한 보안정책 외에 제어시스템에 특화된 보 - 제어시스템 중요 설정명령, 설정파일에 대한 접근통제 여부 점검 안정책이 별도로 수립되어 있는지 점검 - 기존 보안정책에 제어시스템에 대한 별도 항목, 제어시스템 특성에 따른 정책이 있는지 점검 - 제어시스템 관리 서비스 접근 시 인증과정 수행토록 설정 - 제어시스템 관리 서비스에 대하여 관리자 IP만 접근하도록 TCPWrapper, 방화벽 등에서 접근통제설정 - 제어시스템의 보안요구사항 식별 - 제어시스템 보안요구사항을 반영한 별도의 보안정책을 수립 - 기존 보안정책을 제어시스템의 특성을 반영하여 개선 - 설정명령, 설정파일의 권한을 관리자에 한하여 부여 일반적인 영향 없음 일반적인 영향 없음 - 343 - - 344 -
점검분류 항목 보안관리 위험도 중 분류번호 C-19 점검분류 항목 보안관리 위험도 중 분류번호 C-20 세부점검 항목 목적에 맞지 않는 제어시스템과 운영 시스템의 기능 및 서비스 제거 대상 제어시스템 세부점검 항목 운엉에 있어 사용가능한 제어명령 및 안전한 제어를 위한 파라미터의 범위 대상 제어시스템 제한 제어시스템은 높은 가용성을 요구하기 때문에 이러한 위험이 없도록 제어를 위한 단일 목적으로 사용되어야 함 제어명령, 파라미터 설정 등을 운영자 권한별로 제한해야 한다. 제어시스템을 기반시설 제어 이외의 다른 용도로 중복하여 활용하는 경우, 타 시스템 서비스 장애가 제어시스템 장애로 전이될 수 있음 제어시스템이 제어를 위한 목적 외의 다른 서비스를 위하여 사용되고 권한별로 제한되지 않은 제어명령 및 파라미터에 의해 제어시스템 운 영 시 기반시설 운영이 심각한 영향을 받을 수 있음 있는지 점검 1. Windows의 경우 시작>설정>제어판>서비스에서 확인 2. Unix, Linux 계열의 경우 #cat /etc/inetd.conf 파일을 열어 확인 - 제어시스템 운영자 계정(HMI/MMI 등의 운영자 계정)의 제어 범위 및 명령이 제한되어 있는지 확인 - 제어시스템 운영자 계정, 관리자 계정이 분리되어 있는지 점검 - 운영자, 관리자 계정간의 제어범위, 명령의 권한이 상이한지 확인 * 제어 응용프로그램에 대한 계정으로, 제어시스템 서버의 계정이 아님 제어 목적 이외의 서비스 제거 장기 적용 1. Windows의 경우 시작>설정>제어판>서비스에서 불필요한 서비스를 선택하여 중지 (시작옵션에서 시작유형을 사용안함 으로 설정) - 제어시스템 운영자, 관리자 계정을 별도로 생성 - 제어 범위를 제한하며 중요 제어 명령에 대한 실행 권한 제한 * Vendor 社 에 의한 제어시스템 수정, 개선이 필요하며, 정상적인 제어 2. Unix, Linux 계열의 경우 #vi /etc/inetd.conf 파일에서 불필요한 서비스 주석(#) 처리하여, 해당 서비스 비활성화 시스템 운영에 많은 영향을 미칠 수 있음 계정에 따라 명령어 실행 제한 * 제어 시스템에서 해당 서비스 제거 시, 제거된 서비스가 제어 외의 다른 업무를 위한 목적으로 필요한 경우에는 독립된 별도의 장비 구 축 일반적인 영향 없음 - 345 - - 346 -
점검분류 항목 보안관리 위험도 중 분류번호 C-21 점검분류 항목 보안관리 위험도 중 분류번호 C-22 세부점검 항목 제어시스템 개선, 신규 시스템 도입, 패치 및 수정 시, 안전성을 테스트하 기 위한 테스트베드 또는 시험환경 구축 대상 제어시스템 제어시스템에 새로운 기기, 장비를 도입하거나, 시스템 수정, 업데이트 및 패치를 적용하기 전에 시스템 영향을 점검할 수 있는 테스트베드의 구축이 필요하다. 제어시스템에 대한 새로운 기기, 장비의 도입, 시스템 수정, 업데이트 및 패치의 적용은 시스템 오작동 및 장애를 유발할 수 있어, 높은 가용 성을 요구한 제어시스템 운영에 문제를 야기할 수 있음 세부점검 항목 제어 네트워크의 세분화 및 네트워크, 시스템 간 통신 제한 대상 제어시스템 제어시스템은 지리적으로 넓은 범위에 걸쳐 많은 시스템이 운영되고 있으므로, 구성된 제어시스템이 제어하는 범위에 맞추어 서브 네트워크 로 구성하고, 각 네트워크 및 필요한 시스템 간으로 통신을 제한하여야 한다. 또한 한 관할 구역의 제어시스템 운영자가 다른 관할 구역의 시스템을 제어하거나, 일부 시스템의 침해사고가 다른 시스템으로 전이되지 않도 록 세분화된 네트워크 구성과 접근통제가 필요하다. 제어범위가 다른 많은 시스템을 한개의 네트워트에서 운영하는 경우, 적절한 접근통제가 어려우며, 내부자에 의한 임의 제어시스템 운영 위 험과 제어 네트워크 내에서의 침입전이 위험이 높음 운영되는 제어시스템 외에 교육, 테스트, 시험 평가를 우한 별도의 제어 시스템 테스트베드가 구축되어 있는지 확인 - 제어 네트워크 구성도 분석 및 기술적 점검을 통하여, 제어 네트워크 가 제어 범위에 따라 별도의 서브넷으로 분리되고 적절한 접근통제 가 이루어지고 있는지 점검 - 네트워크 장비, 방화벽 정책 검토 - 임의의 시스템에서 다른 서브넷의 제어시스템 서비스에 접근 점검 장기 적용 장기 적용 운영 시스템 외의 별도의 제어시스템 테스트베드 구축 * 제어시스템 테스트베드 구축에는 많은 예산과 시간이 소요되므로, 최 초의 제어시스템 도입 구축 시 함께 고려 필요 제어 범위에 따라서 별도의 네트워크, 서브넷으로 분리하고, 각 시스템, 네트워크 간에 운영에 필요한 서비스, IP에 한하여 접근 허용 계층적으로 구성된 IP 체계 예시 일반적인 영향 없음 네트워크 단위 중앙 제어 네트워크 광역 지역 제어 네트워크 1 광역 지역 제어 광역 지역 제어 네트워크 네트워크 2 광역 지역 제어 네트워크 3 지역 제어 네트워 크 1 지역 제어 네트 지역 제어 네트워 워크 크 2 지역 제어 네트워 크 3 IP 10.0.0.1~255 10.10.0.1~255 10.20.0.1~255 10.30.0.1~255 10.30.10.1~ 255 10.30.20.1~ 255 10.30.30.1~ 255-347 - - 348 -
계층적으로 구성된 IP 체계 예시 6. PC 취약점 항목 상세 설명서 점검분류 항목 계정관리 위험도 상 분류번호 PC-1 세부점검 항목 패스워드의 주기적 변경 대상 PC 계정의 패스워드를 주기적으로 변경하지 않고 오랫동안 사용할 경우 계정 패스워드가 외부에 유출될 수 있다. 특히, 관리자 계정의 패스워드가 유출될 시 자료 유출 등 심각한 사고 발생 가능성 존재 - 패스워드가 3개월 정도의 주기를 가지고 변경되는지 확인 - 암호 사용 기간 제한 화면 예시 제어시스템 내부 네트워크 구성 및 접근통제 예시 * 국가정보원 전자제어시스템 보안가이드 3장 4절 안전한 내부 네트워 크 구성 참조 내부망-인터넷 연계 제한 패스워드의 주기적 변경 수행 주기적인 패스워드 변경 필요 - 349 - - 350 -
점검분류 항목 계정관리 위험도 상 분류번호 PC-2 점검분류 항목 계정관리 위험도 중 분류번호 PC-3 세부점검 항목 패스워드 정책이 해당기관의 보안정 책에 적합하게 설정 대상 대부분의 환경에서 8자리의 암호를 사용하면 적절한 보안이 제공될 뿐 만 아니라 사용자가 쉽게 기억할 수 있으며 무작위 공격을 적절히 방 어할 수 있다. 특정 사용자 계정의 암호를 알아내기 위해 수행할 수 있는 암호 공격 의 유형은 일반적인 단어와 구의 사용을 시도하는 사전 공격과 가능한 모든 문자의 조합을 시도하는 무작위 공격이 있음 - 최소 암호 길이가 8자 이상인지 확인 - 암호 설정 화면 예시 PC 세부점검 항목 복구 콘솔에서 자동 로그온 금지 대상 PC 복구 콘솔에서 자동 로그온을 허용하도록 설정하는 경우가 존재한다. 복구 콘솔에서 자동 로그온을 허용할 경우, 비인가된 공격자는 관리자 권한으로 시스템의 주요 정보를 획득할 수 있음 - [그룹 정책] 콘솔에서 [로컬 컴퓨터 정책] -> [컴퓨터 구성] -> [Windows 설정] -> [보안 설정] -> [로컬 정책] -> [보안 옵션] 선택 - [보안 옵션] 중 복구 콘솔: 자동 관리 로그온 허용 정책이 사용 안 함 으로 되어 있지 않으면, 취약점 존재 - [그룹 정책] 콘솔 실행 방법은 [시작] -> [실행] 또는 명령 프롬프트 에서 gpedit.msc" 입력 최소 암호 길이를 8자 이상으로 설정 복구 콘솔: 자동 관리 로그온 허용 정책을 사용 안 함 으로 설정 최소 암호 길이 8자로 제한 복구 콘솔에서 자동 로그온 제한 - 351 - - 352 -
점검분류 항목 서비스관리 위험도 상 분류번호 PC-4 점검분류 항목 서비스관리 위험도 상 분류번호 PC-5 세부점검 항목 공유폴더 제거 대상 PC 세부점검 항목 불필요한 서비스 제거 대상 PC 불필요한 공유 폴더가 존재할 경우, 비인가자는 공유 폴더를 통해 주요 정보에 접근하거나 악성코드를 유포할 수 있다. Telnet 등 위협에 취약한 서비스를 사용할 경우, 이를 이용한 외부 공 격에 취약해질 수 있다. 공유 폴더를 통한 주요 정보 유출 및 악성코드 전파 [컴퓨터 관리] 콘솔에서 [공유 폴더] -> [공유] 선택 후 확인 [시작] -> [실행]에서 cmd 입력 후, 명령 프롬프트에서 "net share" 입력 후 확인 불필요한 네트워크 서비스가 활성화되어 있는 경우, 공격자는 특정 서 비스의 알려진 취약점을 이용하여 시스템에 침투할 수 있음 [컴퓨터 관리] -> [서비스 및 응용 프로그램] -> [서비스] 선택 [시작] -> [실행] 또는 명령 프롬프트에서 services.msc 입력 후 실행 서비스 상태 확인 공유 폴더를 제거하고 사용함 꼭 필요한 서비스만 사용하고 나머지는 사용안함으로 설정 개인 방화벽 실행 백신 등에서 제공하는 방화벽 기능 활성화 사용 공유폴더에 의한 자료 공유 불가 TELNET 등 불필요한 서비스 이용 불가 - 353 - - 354 -
점검분류 항목 서비스관리 위험도 상 분류번호 PC-6 점검분류 항목 서비스관리 위험도 중 분류번호 PC-7 세부점검 항목 Windows Messenger(MSN,.NET 메 신더 등)와 같은 상용 메신저의 사용 대상 PC 금지 일반 사용자 PC에서 Windows Messenger를 사용할 경우, Messenger 를 통해서 주요 정보가 유출될 수 있을 뿐만 아니라 Messenger를 통 해 악성코드가 유입될 수 있다. 메신저를 통한 악성코드 유입 및 내부정보 유출 [그룹 정책] 콘솔에서 [로컬 컴퓨터 정책] -> [컴퓨터 구성] -> [관리 템플릿] -> [Windows 구성 요소] -> [Windows Messenger] 선택 후 확인 세부점검 항목 파일 시스템을 NTFS로 포맷 대상 PC Windows에서 사용할 수 있는 파일 시스템 포맷은 FAT32와 NTFS가 존 재한다. FAT32를 사용할 경우 접근통제와 암호화를 적용할 수 없기 때문에 중 요 데이터를 보호할 수 없음 [컴퓨터 관리] 콘솔에서 [저장소] -> [디스크 관리] 선택 모든 디스크 볼륨의 파일 시스템이 NTFS가 아닌 경우, 취약점 존재 또는 레지스트리의 HKLM\Software\Policies\Microsoft\ Messenger\ Client 키의 PreventRun 값이 DWORD 1로 설정되어 있지 않으면, 취약 점 존재 모든 디스크 볼륨에 대해 파일 시스템 NTFS로 변경 Windows Messenger를 실행하지 않음 설정을 사용 으로 설정 일반적인 영향 없음 Windows Messenger 사용 불가 - 355 - - 356 -
점검분류 항목 서비스관리 위험도 중 분류번호 PC-8 점검분류 항목 서비스관리 위험도 하 분류번호 PC-9 세부점검 항목 다른 OS로 멀티부팅 금지 대상 PC 세부점검 항목 브라우저 종료시 임시 인터넷 파일 폴더의 내용 삭제 대상 PC 윈도우 이외의 다른 OS로 멀티부팅이 가능하도록 설정할 수 있다. 브라우저가 종료하면서 효율을 위해서 임시 인터넷 파일을 기록할 수 있다. 멀티 OS로 부팅이 가능한 경우, 공격자는 해당 PC의 주요 OS 이외에 다른 OS로 부팅하여 파일 시스템에 접근, 주요정보를 획득할 수 있음 - [[시스템 등록 정보]의 [고급] -> [시작 및 복구] -> [설정] 선택 - [시작 및 복구]의 기본 운영 체제 드롭 다운 메뉴에서 2개 이상의 OS가 표시되면, 취약점 존재 임시 인터넷 파일 폴더를 삭제하지 않을 경우, 다른 사람 계정에 저장 되어 있는 임시 인터넷 파일 폴더를 통해 열람한 이메일, 방문한 사이 트 등의 개인 정보를 획득할 수 있음 - [시작] -> [실행] 또는 명령 프롬프트에서 gpedit.msc" 입력 - [그룹 정책] 콘솔에서 [로컬 컴퓨터 정책] -> [컴퓨터 구성] -> [관리 템플릿] -> [Windows 구성 요소] -> [Internet Explorer] -> [고급 페 이지] 선택 - [고급 페이지]의 브라우저를 닫을 때 임시 인터넷 파일 폴더 비우기 설정이 사용 으로 되어 있지 않으면, 취약점 존재 반드시 1개의 OS만 설치하여 운영함 브라우저를 닫을 때 임시 인터넷 파일 폴더 비우기 설정을 사용 으 로 설정 일반적인 영향 없음 일반적인 영향 없음 - 357 - - 358 -
점검분류 항목 패치관리 위험도 상 분류번호 PC-10 점검분류 항목 패치관리 위험도 상 분류번호 PC-11 세부점검 항목 HOT FIX 등 최신 보안패치 적용 대상 PC 세부점검 항목 최신 서비스팩 적용 대상 PC - Hot Fix는 즉시 교정되어야만 하는 주요한 취약점(주로 보안과 관련 된)을 패치하기 위해 배포되는 프로그램이다. 서비스 팩은 Windows 시스템을 마이크로소프트에서 출시하고 난 뒤 Windows와 관련된 응용프로그램, 서비스, 실행파일 등 여러 수정 파일 - Hot Fix는 각각의 Service Pack 이 발표된 이후 패치가 추가될 필요 가 있을 때 별도로 발표 된다. - Hot Fix 보다 취약성을 이용한 공격도구가 먼저 출현 할 수 있으므로 Hot Fix는 발표 후 가능한 빨리 설치 할 것을 권장된다. 최신 패치를 적용하지 않을 경우, 공격에 쉽게 노출될 수 있음 들을 모아 놓은 프로그램이다. 최신 서비스팩을 적용하지 않을 경우, 공격에 쉽게 노출될 수 있음 - 인터넷에 연결되는 경우 windows update 사이트에 접속하여 최신 패치 존재 여부 확인 - 제어판->프로그램 추가/제거에서 서비스팩 등의 설치 여부 확인 - 인터넷에 연결되는 경우 windows update 사이트에 접속하여 최신 패치 존재 여부 확인 - 제어판->프로그램 추가/제거에서 HOT FIX, 서비스팩 등의 설치 여부 확인 최신 서비스팩, HOT FIX 등의 설치 최신 서비스팩, HOT FIX 등의 설치 일반적인 영향 없음 일반적인 영향 없음 - 359 - - 360 -
점검분류 항목 패치관리 위험도 상 분류번호 PC-12 점검분류 항목 보안관리 위험도 상 분류번호 PC-13 세부점검 항목 MS-Office, 글, 어도비 아크로뱃 등 의 응용 프로그램에 대한 최신 보안 패치 및 벤더 권고사항 적용 대상 PC 현재의 공격 추세가 운영체제의 공격에서 응용 프로그램에 대한 공격 으로 전환되고 있다. 응용 프로그램 중 국가 공공기관에 널리 쓰이며, 공격이 용이한 프로그램이 MS-Office, 글, 어도브 아크로뱃 등이다. 해당 응용프로그램의 패치를 수행하지 않을 경우 시스템 권한 획득 등 의 취약점이 존재함 - 글 자동 업데이트 사용 예시 세부점검 항목 바이러스 백신 프로그램 설치 및 주 기적 업데이트 대상 바이러스 백신 프로그램은 바이러스, 웜 등의 감염을 예방하기 위한 중 요한 보안 요소이다. 백신은 패턴 업데이트가 자주 일어나므로 이에 대 한 최신 업데이트의 수행이 중요하다. 바이러스 백신 프로그램의 최신 업데이트를 적용하지 않을 경우, 악성 코드 감염 위협이 높아짐 V3 스마트 업데이트 사용 예시 PC 어도브 아크로뱃 리더의 경우 도움말->지금 업데이트 확인 탭을 클릭 업데이트 수행 후 업데이트 내용이 존재하는지 확인함 하여 업데이트 존재 여부 확인 MS-Office의 경우 Windows Update 사이트에서 확인 가능 백신에 대한 최신 업데이트를 반드시 실행 사용 빈도가 높은 응용 프로그램의 업데이트를 반드시 수행 일반적인 영향 없음 일반적인 영향 없음 - 361 - - 362 -
점검분류 항목 보안관리 위험도 상 분류번호 PC-14 점검분류 항목 보안관리 위험도 상 분류번호 PC-15 세부점검 항목 바이러스 백신 프로그램에서 제공하 는 실시간 감시 기능 활성화 대상 바이러스 백신 프로그램은 바이러스, 웜 등의 감염을 예방하기 위한 중 요한 보안 요소이다. 실시간 감시 기능에는 바이러스/스파이웨어/개인 방화벽 기능 존재한다. 이러한 기능은 PC의 보안관리를 위해 중요한 기능이므로 사용이 권고된다. 바이러스 백신 프로그램의 실시간 감시 기능을 사용하지 않을 경우, 악 성코드 감염 위협이 높아짐 V3 실시간 검사 적용 예시 PC 세부점검 항목 OS에서 제공하는 침입차단 기능 대상 PC 활성화 윈도우즈의 운영체제에서 제공하는 침입차단 기능은 윈도우즈 방화벽 이다. 윈도우즈 방화벽의 사용은 내 PC의 자료 유출 방지, 해킹 차단 등을 위한 중요한 요소이다. 윈도우즈 방화벽을 사용하지 않을 경우, 중요 정보 유출 및 외부 공격 에 대한 노출 위협 이 높아짐 Windows 방화벽 설정 예시 실시간 검사가 사용 으로 표시되어 있는지 점검 윈도우즈 방화벽이 사용 인지 점검 백신의 실시간 검사 기능을 활성화하여 사용 윈도우즈 방화벽 기능을 활성화하여 사용 일반적인 영향 없음 일반적인 영향 없음 - 363 - - 364 -
점검분류 항목 보안관리 위험도 상 분류번호 PC-16 점검분류 항목 보안관리 위험도 상 분류번호 PC-17 세부점검 항목 화면보호기 대기 시간을 5~10분으로 설정 및 재시작시 암호로 보호하도록 대상 PC 세부점검 항목 CD, DVD, USB 메모리 등과 같은 미 디어의 자동실행 방지 등 이동식 미 대상 PC 설정 화면보호기 대기 시간 및 암호 사용 설정을 이용해서 비인가자의 컴퓨 터 물리적 접근을 차단할 수 있다. 화면보호기 대기 시간 및 암호 사용 설정을 하지 않을 경우, 비인가자 의 컴퓨터 물리적 접근 가능 [시작] 메뉴에서 [제어판] -> [디스플레이] 선택. [디스플레이 등록 정보] 디어에 대한 보안대책 수립 CD/DVD, USB 메모리 등과 같은 미디어에 탑재되어 있는 Autorun.inf 파일을 통해 다른 응용프로그램이 자동 실행될 수 있다. 대부분의 USB 관련 악성코드들은 Autorun.inf 파일을 통해 자동 실행되도록 제작된다. 자동 실행의 경우 사용자가 의도하지 않은 악성코드가 실행될 수 있음 HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\IniFileMap 에서 [화면 보호기] 탭 선택 ping\autorun.inf 키의 기본값의 데이터가 '@SYS:DoesNotExist' 또는 [화면 보호기] 탭에서 다시 시작할 때 암호로 보호 가 선택되어 있지 @SYS:NoWhere' 등과 같이 실행가능하지 않은 값으로 되어 있지 않으 않거나, 대기 시간이 5분~10분 사이가 아니면, 취약점 존재 면, 취약점 존재 다시 시작할 때 암호로 보호 선택 및 대기시간 5분~10분 사이로 설 정 HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\IniFileMap ping\autorun.inf 키의 기본값을 '@SYS:DoesNotExist' 또는 @SYS:NoWhere' 등과 같이 실행 불가능한 값으로 수정 일반적인 영향 없음 USB, CD/DVD 등 자동실행 제한 - 365 - - 366 -
점검분류 항목 보안관리 위험도 상 분류번호 PC-18 점검분류 항목 보안관리 위험도 중 분류번호 PC-19 세부점검 항목 PC 내부의 미사용(3개월) ActiveX 제거 대상 PC 세부점검 항목 시스템 부팅시 Winodws Messenger 자동시작 금지 대상 PC ActiveX 프로그램의 경우 각종 인터넷 사이트 등에서 동영상보기, 금융 결제 등을 위해 PC에 설치된다. 윈도우 시작시 자동으로 Windows Messenger가 시작되도록 설정하는 경우가 존재한다. 미사용되는 ActiveX의 경우 취약점이 존재할 시 시스템 해킹 등의 위 험성 존재 일반 사용자 PC에서 Windows Messenger를 사용할 경우, Messenger 를 통해서 주요 정보가 유출될 수 있을 뿐만 아니라 Messenger를 통 해 악성코드가 유입될 수 있음 - [그룹 정책] 콘솔에서 [로컬 컴퓨터 정책] -> [컴퓨터 구성] -> [관리 템플릿] -> [Windows 구성 요소] -> [Windows Messenger] 선택 후 확인 - [Windows Messenger]의 처음에 Windows Messenger를 자동으로 ActiveX의 경우 3개월 이내에 사용되지 않은 것은 삭제하는것이 좋음 ActiveX의 점검은 Clean ActiveX 등의 점검 프로그램을 통해 점검 시작하지 않음 설정이 사용 으로 되어 있지 않으면, 취약점 존재 3개월 이내 사용실적이 없는 ActiveX 삭제 또는 레지스트리의 HKLM\Software\Policies\Microsoft\ Messenger\ Client 키의 PreventAutoRun 값이 DWORD 1로 설정되어 있지 않으면, 취약점 존재 삭제된 ActiveX 사용 불가 처음에 Windows Messenger를 자동으로 시작하지 않음 설정을 사 용 으로 설정 일반적인 영향 없음 - 367 - - 368 -
점검분류 항목 보안관리 위험도 중 분류번호 PC-20 세부점검 항목 원격 지원 금지 정책 설정 대상 PC 윈도우 관리 등의 이유로 원격 지원을 허용하는 경우가 존재한다. 비인가자의 원격 지원 제공을 사용자의 부주의로 허용할 경우, 대상 시 스템이 공격자에게 완전히 제어 당함 [그룹 정책] 콘솔에서 [로컬 컴퓨터 정책] -> [컴퓨터 구성] -> [관리 템플릿] -> [시스템] -> [원격 지원] 선택 [원격 지원]의 원격 지원 제공 설정이 사용 안 함 으로 되어 있지 않 으면, 취약점 존재 7. DB 취약점 항목 상세 설명서 점검분류 항목 계정관리 위험도 상 분류번호 D-1 세부점검 항목 기본 계정의 패스워드, 정책 등을 변 경하여 사용 대상 데이터베이스의 기본계정(system, scott 등)의 패스워드 또는 접근제어 정책을 변경하지 않고 그대로 사용하는 경우가 존재한다. 데이터베이스의 기본 계정(system, scott 등)의 패스워드 또는 접근 제 어 정책을 변경하지 않고 사용하는 경우 공격자는 알려진 정보를 이용 하여 데이터베이스에 쉽게 접근할 수 있는 취약점이 존재함 - SQL*Plus에서 알려진 계정 정보(system/manager, scott/tiger 등)를 이용하여 데이터베이스에 접근 가능한지 확인함 - chkpassword 프로그램을 이용하여 system 계정의 패스워드를 확인 하였을 경우 이를 이용하여 기본 정보를 사용하는 계정 존재 여부 확인함 - SQL*Plus를 통한 확인 예시 SELECT username ': ' account_status FROM dba_users WHERE password = Decode(username, '#INTERNAL','38379FC3621F7DA2','#INTERNAL','87DADF57B623B777', 'ABM','D0F2982F121C7840','ADAMS','72CDEF4A3483F60D','ADLDEMO','1 47215F51929A6E8',username); - 위와 같이 잘 알려진 계정 중 SYSTEM, SYS, SCOTT 등에 대해서 점 검 수행 DB - 불필요한 계정인 경우 계정 삭제 원격 지원 제공 설정을 사용 안 함 으로 선택 sql>drop USER username; - 사용되는 계정인 경우 계정의 기본 패스워드 변경 후 사용 sql>alter user username identified by new_passwd; - 그 이외에 객체 권한 부여 및 기본 role 확인 및 변경 수행 원격 지원 기능 사용 불가 - DBSNMP 파일의 접근권한 설정이 필요함 chmod 700 snmp_rw.ora (결과값 -rwx------snmp_rw.ora) 불필요한 계정 사용 불가 - 369 - - 370 -
점검분류 항목 계정관리 위험도 상 분류번호 D-2 점검분류 항목 계정관리 위험도 상 분류번호 D-3 세부점검 항목 scott 등 Demonstration 및 불필요 계정을 제거하거나 잠금설정 후 사용 대상 DB 세부점검 항목 패스워드의 사용기간 및 복잡도를 기 관의 정책에 맞도록 설정 대상 DB scott, pm, adams, clark 등의 Demonstration 계정을 삭제하지 않고 사 용하는 경우가 존재한다. PASSWORD_LIFE_TIME 값은 패스워드가 만기된 이후에 사용가능한 일 수에 대한 제한을 제공한다. SCOTT, PM, ADAMS, CLARK 등의 Demonstration 계정이 삭제되지 않 고 존재하여 공격자가 데이터베이스 시스템에 쉽게 접근 가능함 SQL*Plus를 통한 확인 예시 이를 설정하지 않아서 동일 패스워드의 장기간 사용으로 노출의 가능 성이 증가함 SQL*Plus를 통한 확인 예시 select username from dba_users where username in ( select profile,limit 'SCOTT','HR','OE','PM','SH', from dba_profiles, 'COMPANY','MFG','FINANCE','ANYDATA_USER', (select limit as def_pwd_life_tm 'ANYDSET_USER','ANYTYPE_USER','AQJAVA','AQUSER', from dba_profiles 'AQXMLUSER','GPFD','GPLD','MMO2','XMLGEN1', 'BLAKE','ADAMS','CLARK','JONES') where profile='default' and resource_name='password_life_time') or username like 'QS%' where resource_name='password_life_time' or username like 'USER%' and ((replace(limit,'default',def_pwd_life_tm) in or username like '%DEMO%' ('UNLIMITED',NULL)) or username like 'SERVICECONSUMER%'; or (lpad(replace(limit,'default',def_pwd_life_tm),40,'0') > 어떠한 사용자라도 리스트 되면 취약함 lpad('60',40,'0'))); - PASSWORD_LIFE_TIME 프로파일 파라미터변경 ALTER PROFILE LIMIT PASSWORD_LIFE_TIME xx - 프로파일 값과 관련된 사용자들 변경 ALTER USER PROFILE 불필요한 Demonstration 계정/오브젝트의 삭제 Drop user username - SQL*Plus를 통한 확인 예시 sql> CREATE PROFILE grace_5 LIMIT FAILED_LOGIN_ATTEMPTS 3 (패스워드 실패를 3번까지만 가능) PASSWORD_LIFE_TIME 30 (30일동안만 패스워드를 사용) PASSWORD_REUSE_TIME 30 (한번 사용한 패스워드를 다시 사용 하려면 30일 후부터 재사용 가능) Demonstration 계정/오브젝트 사용 불가 PASSWORD_VERIFY_FUNCTION verify_function PASSWORD_GRACE_TIME 5 ; (life time이 끝나고 5일동안 메시지 를 보여줌) 주기적인 패스워드 교체 필요 - 371 - - 372 -
점검분류 항목 계정관리 위험도 상 분류번호 D-4 점검분류 항목 계정관리 위험도 중 분류번호 D-5 세부점검 항목 데이터베이스 관리자 권한을 꼭 필요한 계정 및 그룹에 대해서만 허용 대상 DBA에게만 허용되어야 하는 SYSDBA 권한이 응용프로그램 계정 또는 일반 사용자 계정에 허용되어 있는 경우 공격자는 이를 이용하여 쉽게 DBA 권한으로 데이터베이스에 접근 가능하다. SYSDBA 권한이 응용프로그램 계정 또는 일반 사용자 계정에 허용되어 있는 경우 공격자는 이를 이용하여 쉽게 DBA 권한으로 데이터베이스 에 접근 가능한 취약점 존재 SQL*Plus를 통한 확인 예시 SYSDBA 권한 점검 SELECT USERNAME FROM V$PWFILE_USERS WHERE USERNAME NOT IN (SELECT GRANTEE FROM DBA_ROLE_PRIVS WHERE GRANTED_ROLE='DBA') and USERNAME!='INTERNAL' and sysdba='true'; 어떠한 계정이라도 나오면 취약함 Admin에 부적합 계정 존재 여부 점검 select grantee,privilege from dba_sys_privs where grantee not in ('SYS','SYSTEM','AQ_ADMINISTRATOR_ROLE','DBA','MDSYS', 'LBACSYS', 'SCHEDULER_ADMIN','WMSYS') and admin_option='yes' and grantee not in (select grantee from dba_role_privs where granted_role='dba'); 어떠한 계정 결과라도 나오면 취약함 불필요하게 시스템 권한을 부여한 계정의 권한 변경 반드시 필요한 경우 필요한 테이블에만 권한 한정 인가된 사용자는 관리자의 권한에 role을 grant 한 후, 시스템 권한을 grant 하고, role을 인가된 사용자에게 grant를 함 일반적인 영향 없음 DB 세부점검 항목 패스워드 재사용 제약 설정 대상 DB PASSWORD_REUSE_TIME 값은 패스워드가 재사용 될 수 있기 전에 일 수를 명시하는 파라미터이며, PASSWORD_REUSE_MAX는 횟수 설정 파 라미터이다. 파라미터 미설정 시 패스워드 노출 가능성이 증가함 SQL*Plus를 통한 확인 예시 -- Check for both reuse max and reuse time not set: select profile from DBA_PROFILES where (resource_name='password_reuse_max' and limit in ('UNLIMITED','NULL')) or profile in (select profile from DBA_PROFILES where resource_name='password_reuse_time') and limit in ('UNLIMITED','NULL'); -- Check for reuse max with value that is less than allowed minimum select profile from DBA_PROFILES where resource_name='password_reuse_max' and limit not in ('UNLIMITED','NULL') and limit < '10'; -- Check for reuse time that is less than allowed minimum select profile from DBA_PROFILES where resource_name='password_reuse_time' and limit not in ('UNLIMITED','NULL') and limit < '365'; PASSWORD_REUSE_TIME 및 프로파일 파라미터 수정 SQL*Plus를 통한 확인 예시 alter profile default limit password_reuse_time 365 password_reuse_max 10; alter profile [profile name] limit password_reuse_time default password_reuse_max default; 일반적인 영향 없음 - 373 - - 374 -
점검분류 항목 계정관리 위험도 중 분류번호 D-6 점검분류 항목 접근관리 위험도 상 분류번호 D-7 세부점검 항목 DB 사용자 계정을 개별적으로 부여 대상 DB 세부점검 항목 원격에서 DB서버로의 접속 제한 대상 윈도우 운영체제 데이터베이스의 사용자 계정이 사용자, 프로세스와 응용 프로그램 등에 동일하게 사용하여 책임추적성에 영향을 준다. 공격자가 원격으로 IP 주소를 시용하여 DB 로그인을 시도 하여 데이터 를 해킹 하는 경우가 많다. IP를 차단하여도 다른 IP 주소로 변경 하여 sa 계정을 이용하여 로그인 시도를 하고 있어, DB 데이터의 노출 위협 사용계정 중 사용하지 않는 계정의 방치는 인가되지 않은 사용자의 접 속을 허가하는 결과를 초래할 수 있음 이 높아지고 있다. 공격자가 IP 주소를 이용해 DB로 원격으로 접속함으로써 DB의 데이터 정보 해킹 및 설정 변경 할 위험이 있음 특정 IP에서만 접속 가능하도록 방화벽 등이 설정되어 있는지 확인 SQL*Plus를 통한 확인 예시 select username from dba_users order by username; 결과를 통하여 사용하지 않거나 모르는 계정이 있으면 취약함 - 공통으로 사용하는 계정 삭제 DROP USER username - 각 응용에 적합한 계정 생성 Create user username identified by passwd - 권한 부여 grant connect, resource to username 일반적인 영향 없음 시작>제어판>보안센터>windows 방화벽 설정 예외 tab -> 포트추가 -> 1433 -> TCP 추가 -> 범위 변경 예외 tab -> 포트추가 -> 135 -> TCP 추가 -> 범위 변경 예외 tab -> 포트추가 -> 1434 -> UDP 추가 -> 범위 변경 PASSWORD_GRACE_TIME 5 ; (life time이 끝나고 5일동안 메시지를 보여줌) 일반적인 영향 없음 - 375 - - 376 -
점검분류 항목 접근관리 위험도 상 분류번호 D-8 점검분류 항목 접근관리 위험도 상 분류번호 D-9 세부점검 항목 DBA 이외의 인가되지 않은 사용자가 시스템 테이블에 접근할 수 없도록 대상 DB 세부점검 항목 오라클 데이터베이스의 경우 리스너 의 패스워드를 설정하여 사용 대상 DB 설정 DBA만 접근 가능하여야 할 테이블을 잘못된 설정에 의해 인가되지 않 은 사용자가 접근 가능한 경우가 존재한다. 이 경우 비인가 사용자가 시스템의 주요 정보를 획득하거나, 주요 데이 터베이스 설정을 변경할 수 있음 SQL*Plus를 통한 확인 예시 오라클 리스너의 패스워드를 설정하는 기능을 제공한다. 리스너의 패스워드가 설정되지 않을 경우 인가되지 않은 사용자가 데 이터베이스에 직접 접속할 수 있는 취약점 존재 select grantee,privilege,owner,table_name from dba_tab_privs tnslsnr을 통한 확인 예시 where (owner='sys' or table_name like 'DBA_%') LSNRCTL> status listener 이름 and privilege <> 'EXECUTE' set current_listener listener 이름 and grantee not in ('PUBLIC','AQ_ADMINISTRATOR_ROLE','AQ_USER_ROLE','AURORA$JIS$UTILITY$','OSE$HTTP$ADMIN','TR LSNRCTL> set password LSNRCTL> save_config ACESVR','CTXSYS','DBA','DELETE_CATALOG_ROLE','EXECUTE_CATA LOG_ROLE','EXP_FULL_DATABASE','GATHER_SYSTEM_STATISTICS',' HS_ADMIN_ROLE','IMP_FULL_DATABASE','LOGSTDBY_ADMINISTR 결과가 " TNS-01169: The listeners has not recognized the password" 이면 패스워드에 의해 보호되고 있으나, 그 외의 결과는 안전하지 않음 ATOR','MDSYS','ODM','OEM_MONITOR','OLAPSYS','ORDSYS','OUT L N ', ' R E C O V E R Y _ C A T A L O G _ O W N E R ', ' S E L E C T _ C A T A L O G _ R O L E ', ' S N M P A G E N T ', ' S Y S T E M ','WKSYS','WKUSER', 'WMSYS','WM_ADMIN_ROLE','XDB','LBACSYS','PERFSTAT','XDBADMIN') and grantee not in (select grantee from dba_role_privs where granted_role='dba') order by grantee; 어떤 계정이나 롤이 나타나지 않으면, 취약하지 않음 tnslsnr을 통한 설정 예시 LSNRCTL>set password LSNRCTL>change_password (새로운 패스워드 입력) LSNRCTL>save_config 불필요하게 테이블 접근 권한이 사용자 계정에 할당된 경우 이를 삭제 일반적인 영향 없음 함 SQL*Plus를 통한 확인 예시 sql>revoke 권한 on 객체 FROM User 사용자 계정으로 시스템 테이블 접근 불가 - 377 - - 378 -
점검분류 항목 접근관리 위험도 중 분류번호 D-10 점검분류 항목 접근관리 위험도 중 분류번호 D-11 세부점검 항목 불필요한 ODBC/OLE-DB 데이터 소스 와 드라이브 제거 대상 윈도우 운영체제 세부점검 항목 일정 횟수의 로그인 실패시 이에 대 한 잠금정책 설정 대상 DB 어플리케이션에 따라 샘플 데이터베이스를 위해서 ODBC 데이터 소스 를 설치하거나 불필요한 ODBC/OLE-DB 데이터베이스 드라이브를 설치 일정한 횟수의 로그인 실패에 대해 계정잠금을 설정할 수 있다. 하는 경우 존재한다. 임의의 명령어 실행, 임의의 파일 수정, 시스템 관리자 권한 획득 일정한 횟수의 로그인 실패 횟수가 발생하였을 경우 이를 제한하지 않 으면 무작위 추측 공격을 통하여 데이터베이스에 접근할 수 있는 취약 windows의 경우 확인 예시 점을 가짐 [Windows NT] 시작>설정>제어판>데이터 원본(ODBC)>시스템 DSN에서 확인 [Windows 2000, 2003] 시작>설정>제어판>관리도구>데이터 원본 (ODBC)>시스템DSN>해당 드라이브에서 확인 사용하지 않는 불필요한 ODBC 데이터 소스 제거 tnslsnr을 통한 확인 예시 select profile from dba_profiles where resource_name='password_lock_time' and limit not in ('UNLIMITED','DEFAULT'); 결과가 리스트 되지 않으면 취약점이 존재하고, UNLIMITED 값의 경우 직접 Lock을 풀 때까지 계정이 잠겨있음을 의미함 windows의 경우 설정 예시 [Windows NT] 시작>설정>제어판>데이터 원본(ODBC)>시스템 DSN - 접근 횟수 제한을 위해 파라미터를 설정함 DB 접속 [Windows 2000, 2003] 1. 시작>설정>제어판>관리도구>데이터 원본 (ODBC)>시스템DSN>해당 드라이브 클릭 2. 사용하지 않는 데이터 소스 제거 Failed_login_attempts 프로파일 파라미터 수정 ALTER PROFILE LIMIT FAILED_LOGIN_ATTEMPTS xxx 프로파일 적용 sql> connect / as sysdba sql> @$Ora_Home/rdbms/admin/utlpwdmg.sql - 또는 default profile에 unlimited로 설정하고 이 default 값을 적용하 고자 하는 profile에 적용 alter profile default limit password_lock_time unlimited; alter profile [profile name] limit password_lock_time default; 일반적인 영향 없음 일반적인 영향 없음 - 379 - - 380 -
점검분류 항목 접근관리 위험도 하 분류번호 D-12 점검분류 항목 접근관리 위험도 중 분류번호 D-13 세부점검 항목 데이터베이스의 주요 파일 보호 등을 위해 DB 계정의 umask를 022 이상 대상 유닉스 운영체제 세부점검 항목 데이터베이스의 주요 설정파일, 패스 워드 파일 등과 같은 주요 파일들의 대상 유닉스 운영체제 으로 설정 오라클 소프트웨어의 주요 파일에 대한 보호 등을 위해 오라클 계정의 umask는 022 이상으로 설정되어야 함 그렇지 않은 경우 인가되지 않은 사용자가 이를 이용하여 관련 소프트 웨어를 실행할 수 있음 접근권한 설정 비인가자가 redo 파일, 데이터베이스 설정파일, 데이터 파일, 네트워크 설정 파일, 오라클 패스워드 관련 파일인 orapw.ora, listener.ora, init<sid>.ora 등의 주요 파일이 존재한다. 비인가자가 redo 파일, 데이터베이스 설정파일, 데이터 파일, 네트워크 설정 파일, 오라클 패스워드 관련 파일인 orapw.ora, listener.ora, init<sid>.ora 등의 주요 파일에 접근하여 수정/삭제하면 오라클 데이 터베이스 운영에 오류가 발생함 디렉토리 또는 파일의 퍼미션 점검 $ORACLE_HOME/bin/oracle (퍼미션 755) umask 명령을 통해 설정되어 있는 umask 확인 $ORACLE_HOME/bin/ 아래 (퍼미션 755) sqlplus, sqlldr, sqlload, proc, oraenv, oerr, exp, imp,tkprof, tnsping, wrap $ORACLE_HOME/bin 아래 (퍼미션 750) svrmgrl, lsnrctl, dbsnmp 일시적 설정으로 umask 명령을 이용하여 umask 022 이상 설정 시스템 재부팅 후 설정 내역 유지를 위해.bashrc,.cshrc,.login,.profile 등의 환경 변수 지정 파일에 umask 022(이상 설정)를 추가함 일반적인 영향 없음 $ORACLE_HOME/nework (퍼미션 755) $ORACLE_HOME/network/admin (퍼미션 755) listener.ora, sqlnet.ora 등 $ORACLE_HOME/lib (퍼미션 755) $ORACLE_HOME/network/admin 아래 환경파일 (퍼미션 644) tnsnames.ora, protocol.ora, sqlpnet.ora $ORACLE_HOME/dbs/init.ora (퍼미션 640) $ORACLE_HOME/dbs/init<SID>.ora (퍼미션 640) Find $ORACLE_HOME name init*.ora print SQL*Plus에서 Select value from v$parameter where name='spfile'; redo 파일, 데이터베이스 설정파일, 데이터 파일의 위치를 파악함 select 'Control Files: ' value from v$parameter where name= 'control_files'; select 'Control Files: ' value from v$parameter where name= 'spfile'; select 'Logfile: ' member from v$logfile; select 'Datafile: ' name from v$datafile; - 381 - - 382 -
해당 파일 및 디렉토리의 퍼미션 설정 변경 점검분류 항목 접근관리 위험도 하 분류번호 D-14 일반적인 영향 없음 세부점검 항목 관리자 이외의 사용자가 오라클 리스 너의 접속을 통해 리스너 로그 및 대상 DB trace 파일에 대한 변경 설정 오라클의 LSNRCTL 도구를 이용하여 리스너에 직접 접근 시 set 명령 어를 이용하여 리스너의 모든 파라미터를 변경할 수 있다. 위와 같이 파라미터 변경이 가능한 경우, trace파일 및 리스너 로그 파 일을 변경하는데 사용가능한 취약점이 존재함 파일 퍼미션 확인 $ORACLE_HOME/network/admin 디렉토리의 퍼미션을 ls-al(unix 계열 시스템) 또는, 파일 속성(Windows 계열)을 통해 확인함 lsnrctl을 이용한 확인 LSNRCTL> status listenername LISTENER.ORA 파일 확인 ADMIN_RESTRICTIONS_ListenerName=ON listener.ora 파일에 ADMIN_RESTRICTIONS_LISTENER=ON 라인 추가 listener를 재실행하거나 lsnrctl reload 명령어를 실행하여 listener 재로 딩 #vi /Oracle_HomeDirectory/network/admin/listener.ora - ADMIN_RESTRICTIONS_LISTENER=ON 추가 ListenerName은 DBA가 제공한 리스터 이름 #cd /Oracle_Homedirectory/bin/에서 #LSNRCTL> reload 일반적인 영향 없음 - 383 - - 384 -
점검분류 항목 옵션관리 위험도 상 분류번호 D-15 점검분류 항목 옵션관리 위험도 상 분류번호 D-16 세부점검 항목 응용 프로그램 또는 DBA 계정의 Role이 Public으로 설정되지 않도록 대상 DB 세부점검 항목 OS_ROLES, REMOTE_OS_AUTHENTICATION, 대상 DB 조정 응용 프로그램 계정의 Role 또는 DBA 계정의 Role이 Public으로 설정 하는 경우가 존재한다. 응용 프로그램 계정의 Role 또는 DBA 계정의 Role이 Public으로 설정 되어 있으면, 일반 계정에서도 응용 프로그램 테이블 또는 DBA 테이블 로의 접근이 가능함 REMOTE_OS_ROLES를 FALSE로 설정 OS_ROLES 설정 파라미터는 데이터베이스 접근 제어로 컨트롤이 되지 않는 OS 그룹에 의해 grant 된 퍼미션을 허락한다. REMOTE_OS_ROLES가 TRUE로 설정되어 있을 경우, 원격 사용자가 OS 의 다른 사용자로 속여 데이터베이스에 접근할 수 있다. REMOTE_OS_AUTHENT가 TRUE로 설정되어 있을 경우 신뢰하는 원격 호스트에서 인증 절차 없이 데이터베이스에 접속할 수 있음 SQL*Plus를 통한 확인 예시 - OS_ROLES에 대한 확인 show parameter os_roles; SQL*Plus를 통한 확인 예시 select granted_role from dba_role_privs where grantee='public'; 또는, select value from v$parameter where name='os_roles'; 결과값이 False가 아니면 취약함 어떠한 롤(role)이라도 나오면 취약함 - REMOTE_OS_AUTHENTICATION에 대한 확인 show parameter remote_os_authent; 또는 select value from v$parameter where name='remote_os_authent'; 결과가 FALSE가 아니면 취약함 - REMOTE_OS_ROLES에 대한 확인 show parameter remote_os_roles; 또는 Select value from v$parameter where name='remote_os_roles'; 결과가 FALSE가 아니면 취약함 public 그룹의 권한 취소 Revoke role from public; - OS_ROLES 파라미터를 FALSE로 설정 #vi /Oracle_HomeDirectory/admin/pfile/init.ora에서OS_Role=False를 추 가 일반적인 영향 없음 - init.ora 파일에서 remote_os_authent=false를 추가함 pfile='$full_path/init.ora' 버전 9i 이후 버전은 SPFILE을 재 생성해야 하므로, 데이터베이스를 셧 다운 시키면 spfile이 재 생성됨 - init.ora 파일에 remote_os_roles=false를 추가함 일반적인 영향 없음 - 385 - - 386 -
점검분류 항목 옵션관리 위험도 중 분류번호 D-17 점검분류 항목 옵션관리 위험도 하 분류번호 D-18 세부점검 항목 패스워드 확인함수 설정 대상 DB PASSWORD_VERIFY _FUNCTION 값은 이 프로파일에 명시된 사용자가 데이터베이스에 로그인 할 때 패스워드 확인을 위해 PL/SQL 함수가 사 용되도록 명시한다. 세부점검 항목 인가되지 않은 Object Owner의 존재 여부 대상 Object Owner는 SYS, SYSTEM과 같은 데이터베이스 관리자 계정과 응 용 프로그램의 관리자 계정에만 존재하여야 한다. DB 패스워드 확인 함수가 명시되지 않아서 기본적인 패스워드 정책이 적 용되지 않는 경우 존재 그렇지 않은 경우 공격자가 이를 이용하여 Object의 수정, 삭제가 가능 함 SQL*Plus를 통한 확인 예시 SELECT profile, limit FROM dba_profiles, (SELECT limit AS def_pwd_verify_func FROM dba_profiles WHERE resource_name = 'PASSWORD_VERIFY_FUNCTION' AND profile = 'DEFAULT') WHERE resource_name='password_verify_function' AND REPLACE(limit,'DEFAULT',def_pwd_verify_func) in ('UNLIMITED','NULL'); 반환 레코드가 존재하면, 취약점이 존재함 SQL*Plus를 통한 확인 예시 select distinct owner from dba_objects where owner not in ('SYS','SYSTEM','MDSYS','CTXSYS', ORDSYS', 'ORDPLUGINS', 'AURORA$JIS$UTILITY$','HR','ODM','ODM_MTR','OE','OLAPDBA','OLA PSYS','OSE$HTTP$ADMIN','OUTLN','LBACSYS','MTSYS','PM','PUBLIC',' QS','QS_ADM','QS_CB','QS_CBADM', DBSNMP', 'QS_CS', 'QS_ES','QS_OS', 'QS_WS','RMAN', 'SH','WKSYS', 'WMSYS','XDB') and owner not in (select grantee from dba_role_privs where granted_role='dba'); 패스워드 복잡도를 강제하는 패스워드 검증 함수를 생성 또는 사용해 어떤 결과가 나오면 오브젝트의 권한이 있는지 확인하여 평가함 야함 패스워드 확인 함수 적용 예시 alter profile default limit password_verify_function verify_password_dod; 일반적인 영향 없음 권한 취소 수행 sql>revoke 권한 on 객체 FROM User 일반적인 영향 없음 - 387 - - 388 -
점검분류 항목 옵션관리 위험도 중 분류번호 D-19 점검분류 항목 옵션관리 위험도 하 분류번호 D-20 세부점검 항목 grant option이 role에 의해 부여되도 록 설정 대상 DB 세부점검 항목 데이터베이스의 자원 제한 기능을 TRUE로 설정 대상 DB GRANT OPTION은 권한을 갖은 사용자가 마치 자신이 객체의 소유자 인 것과 같이 다른 사용자들에게 권한을 부여할 수 있다. 설정 옵션 RESOURCE_LIMIT 에 의해서 모든 프로파일 limit 설정 값들 을 무시할 수 있다. WITH_GRANT_OPTION은 role에 의하여 설정되어야 함 기본적으로 설정 옵션 RESOURCE_LIMIT 값은 TRUE로 설정되어 있지 않으면 모든 프로파일 limit 설정 값들은 무시될 수 있음 SQL*Plus를 통한 확인 예시 select grantee ':' owner '.' table_name from dba_tab_privs where grantable='yes' SQL*Plus를 통한 확인 예시 and owner not in ('SYS','MDSYS','ORDPLUGINS','ORDSYS','SYSTEM', 'WMSYS','SDB','LBACSYS') show parameter resource_limit; 또는 Select value from v$parameter where name='resource_limit'; and grantee not in (select grantee from dba_role_privs where granted_role='dba') order by grantee; 결과가 TRUE가 아니면 취약함 어떠한 계정이라도 나오면 취약함 init.ora 설정 파일에 RESOURCE_LIMIT = TRUE' 라인을 추가 권한 취소하고 재 부여 sql>revoke Role FROM User - 서버에서 RESOURCE_LIMIT = TRUE 추가 #vi /Oracle_HomeDirectory/admin/pfile/init.ora - SQL*Plus에서 sql>alter System Set Resource_Limit=TRUE; 일반적인 영향 없음 일반적인 영향 없음 - 389 - - 390 -
점검분류 항목 패치관리 위험도 상 분류번호 D-21 점검분류 항목 패치관리 위험도 상 분류번호 D-22 세부점검 항목 데이터베이스에 대해 최신 보안패치 와 벤더 권고사항을 모두 적용 대상 DB 세부점검 항목 데이터베이스의 접근, 변경, 삭제 등 의 감사기록이 기관의 감사기록 정책 대상 DB 데이터베이스의 주요 보안 패치 등을 모두 최신 상태로 관리해야 한다. 에 적합하도록 설정 데이터베이스의 주요 보안 패치 등을 설치하지 않은 경우 공격자가 알 려진 취약점을 이용하여 데이터베이스에 접근이 가능함 ORACLE_HOME에 설치된 오라클 제품 컴포넌트를 조회하거나, 적용된 임시 패치를 조회할 때는 lsinventory 명령어를 사용함 데이터베이스의 감사 기록이 기관에서 정의한 감사 기록 정책에 적합 하도록 기록하여야 한다. 데이터베이스는 데이터, 로그와 응용프로그램 에 대한 백업 정책을 수립해야 한다. - oracle 제공 패치 명령을 이용하여 확인함 $opatch lsinventory [ -all ] [ -detail ] [ -invptrloc ] [ -jre ] [ -oh ] 이를 지속적으로 준수하지 않을 경우 데이터베이스에 문제 발생 시 이 를 효과적으로 대처할 수 없음 all : ORACLE_BASE 밑에 설치된 모든ORACLE_HOME 정보를 표시 detail : 설치된 패치 내에 포함된 라이브러리 파일까지 표시하므로 패치 적용 시 충돌되는 객체 파일을 확인 가능함 - Unix 시스템 경우 $ORACLE_HOME/OPatch/opatch lsinventory -detail 인터뷰를 통해 데이터베이스 감사기록, 백업 정책 관련 지침이 존재하 - Windows 시스템 경우 %ORACLE_HOME%\OPatch\opatch lsinventory -detail 는지 확인 확인된 내용을 토대로 실제 감사 기록 및 백업이 이루어지는지 확인함 http://metalink.oracle.com에서 최신 패치 버전을 확인하고 opatch 명 령을 통해 도출된 결과를 비교함 버전이 9.2.0, 10.2.0, or 10.1.0이 아니면 아주 취약함 오라클 10g Release 2의 patchset level이 10.2.0.1이나 이후 버전이 아니면 취약함 오라클 10g Release 1의 patchset level이 10.1.0.4이나 이후 버전이 아니면 취약함 데이터베이스 감사 기록 정책 및 백업 정책 수립 오라클 9i Release 2의 patchset level이 9.2.0.6이나 이후 버전이 아니 면 취약함 일반적인 영향 없음 오라클 9.0이 오라클9iAS 또는 오라클AS10g를 지원하기 위해 사용되 면 취약함 http://metalink.oracle.com을 통해 발표되는 오라클 패치 수행 일반적인 영향 없음 - 391 - - 392 -
점검분류 항목 패치관리 위험도 중 분류번호 D-23 점검분류 항목 로그관리 위험도 하 분류번호 D-24 세부점검 항목 보안에 취약하지 않은 버전의 데이터 베이스 사용 대상 DB 세부점검 항목 Audit Table이 데이터베이스 관리자 계정에 속하도록 설정 대상 DB 항상 최신 버전의 데이터베이스를 사용해야 한다. Audit Table은 반드시 SYS, SYSTEM과 같은 데이터베이스 관리자 계정 에 속해 있어야 한다. 벤더에서 보안 패치 등을 지원하지 않는 버전을 사용할 경우 공격자가 시스템 권한 획득 등을 수행할 수 있는 취약점 존재 그렇지 않은 경우 인가되지 않은 사용자가 감사 데이터의 수정, 삭제 수행 가능함 9.2 버전 또는 이전 버전에 대한 업그레이드 계획이 없으면 취약점이 존재함 SQL*Plus를 통한 확인 예시 select banner from v$version where banner like 'Oracle%'; SQL*Plus를 통한 확인 예시 select owner from dba_tables where table_name='aud$'; SYS 또는 SYSTEM이 아닌 계정이 나오면 확인하여 평가함 오라클 업데이트 수행 Audit table에 접근할 권한이 없는 계정이 있다면 권한을 삭제함 일반적인 영향 없음 일반적인 영향 없음 - 393 - - 394 -