1. 일반적인 서버 보안 체크 리스트
가. 서버 보안 정책의 기초 수립
l 보안정책의 목표
- 정보자산의 전산망을 통한 무단유출, 파괴, 불법변경으로부터 안전하게 보호함.
l 보안 요구 조건
- 보안정책 및 일련의 보안 활동은 정보자산에 대하여 다음의 요구조건을 만족시켜야 한다.
. 무결성(Integrity)
. 기밀성(Confidentiality0
. 식별 및 인증(Identification & Authentication)
. 접근제어(Access Control)
. 부인봉쇄(Non-Repudiation)
. 감사 및 책임 체계(Audibility & Accountability)
. 신뢰성 및 가용성(Reliability & Availability )
l 보안정책의 기본 방침
- 보안관리는 일관성 및 기밀성 유지를 위해 전산 중앙 관리를 원칙으로 한다.
- 모든 자원(인적자원/정보자원)은 보안등급에 따라 분류하여 관리한다.
- 외부에서 내부로의 접근은 제한함을 원칙으로 한다.
- 프로세스 제어시스템 부분에 대해서는 별도로 보안을 강화한다.
- 사용자가 있는 모든 시스템은 반드시 다음의 요소를 포함하는 로그 관리를 한다. ( 언제 / 누가 / 어디로부터 /내부의 어느 시스템으로 와서 / 무엇을 했는가)
- 내부에서 외부로의 정보조회는 제한 없이 허용하되 정보의 유출은 통제한다.
- User ID는 개인별로 유지함을 원칙으로 한다.
- 보안정책을 유지하기 위해 필요한 제도 및 절차는 규정화하여 시행한다.
- 연 1회 전 시스템을 대상으로 위험분석을 실시하여 보안 취약성을 보안하는 보안대책을 강구한다.
나. 서버 보안 운영관리 지침
l 계정은 일련의 절차에 따라 생명주기를 가지며 서버 관리자에 의해 통합관리 된다.
l 계정에 대한 패스워드는 사용자 계정관리 지침에 준한다.
l 서버 내 불필요한 네트워크 프로토콜은 삭제한다.
l 서버 보안 관리자는 어플리케이션 기본계획 단계에서 보안정책에 근거한 어플리케이션 개발을 권장하고 이를 위반 시 개발을 중지시킬 수 있다.
l 서버는 물리적인 보안문제를 선결한 후 가동을 원칙으로 한다.
l 보안점검계획 수립 후 일, 주, 월 단위로 보안점검을 시행한다.
l 슈퍼유저의 권한은 보안 관리자/서버운영자로 제한되며 ID와 패스워드는 극히 제한된 사용자에 의해 관리된다.
l 장애복구나 점검을 이해 타인에 루트권한을 위임 시 작업종료 후 백도어 체크 리스트에 따라 점검한 후 루트ID와 패스워드를 변경한다.
- 백도어 : 차후 불법침입을 위해 서버보안 관리자가 모르는 로그인 경로를 만들거나 일반 사용자의 계정으로 루트의 권한을 소유케 하는 불법 프로그램 등을 설치해 두는 것.
- 보안점검 리스트에는 반드시 다음의 내용을 포함해야 한다.
. Cron table, 서비스 데몬 상태, 수상한 ID, 네트웍 서비스 파일, 현재 가동중인 프로세스, 패스워드 파일, 쉐도우 파일 등
다. 사용자 계정관리 지침
l 개요
- 시스템에 LOGIN 할 수 있도록 허가된 모든 사용자들에 대한 관리규정 및 절차를 정한다.
l 사용자 계정분류
- 서버 관리자
: SUPER USER로 서버의 모든 권한을 갖고 1개만 존재한다.
- SYSTEM APPLICATION 관리자
. 각 SYSTEM 관리자로서 권한을 갖고, SUPER USER의 일부 권한을 허용한다. SYBASESEQLNK 등
- APPLICATION 관리자
: APPLICATION 개발을 위한 사용자로서 개발 종료 시 사용자 등록절차에 따라 폐기한다.
- APPLICATION 이용자
: APPLICATION 운영용으로서 APPLICATION 사용자 ID 체계 에 따라 운영한다.
- 일반 사용자
: NFS, FTP 등 사용자로서 인가된 서버 자원만 접근을 허용한다.
l 관리 범위
- 신규 사용자 계정 부여에서부터 변경, 폐기까지 일련의 과정을 사용자 등록절차에 따라 관리, 운영한다.
l 관리 지침
- 사용자별 또는 그룹별로 접근 권한을 부여한다.
- 사용자 ID의 유효기간을 설정한다.
- PASSWORD 관련 기준을 준수한다.
- PASSWORD HISTORY를 관리하여 PASSWORD 재사용을 금지한다.
- 일정횟수 Login 시도 실패 시 사용자 사용을 금지한다.
- 요일 및 시간대별 Login을 제한한다.
- 슈퍼유저는 Console 및 특정 단말에서만 Login 가능하게 한다.
l 사용자 등록 및 폐기 절차
- 슈퍼유저 권한은 서버관리자에게 부여되고 슈퍼유저 권한을 위임 시 보안관리 절차에 따른다.
- 사용자 등록 변경 및 폐기는 사용자 등록 양식에 준하여 서버 관리자가 수행한다.
l 사용자 계정별 권한기준
- 슈퍼유저는 서버의 모든 자원의 접근을 허용한다.
- 시스템 Application 관리자는 슈퍼유저 권한을 일부 통제하고, 시스템 자원 일부만 접근을 허용한다.
- Application 개발자 및 일반 사용자는 슈퍼유저 권한을 통제하고 시스템 자원 접근을 통제한다.
l Password 부여 기준
- 사용자의 이름 또는 그 이름을 변형시키거나 반복 사용하는 것을 금지한다.
- 간단한 문자의 연속을 금지한다.
- 배우자, 자녀, 유명인사 이름 등을 제한한다.
- 동물, 장소, 장비 이름 등을 피한다.
- 간단한 영어 단어 사용을 금지한다.
- 영문으로 하면 대소문자를 사용하여 설정한다.
- 특수문자, 기호를 포함한다.
- 8자리를 모두 사용한다.
라. 보안관리 절차
l 개요
- 정보보안 관리상 필요 대상에 대해 업무처리 절차를 규정하여 체계적이고 일관된 보안정책 구현을 위함.
l 대상
- 사용자 계정절차 (등록, 변경, 삭제)
- 보안 점검절차
- 시스템 사용 신청절차
- File System 사용 신청절차
l 방법
- 사용자 계정절차
사용자 계정은 사용자등록 신청서를 작성 후 해당업무팀장의 결재를 얻은 후 서버 관리자에게 통보한다.
‚ 서버관리자는 내용 검토 후 해당 팀장의 결재를 득하고 작업을 실시하며 작업종료 후 유선으로 통보한다.
- 보안점검 절차
. 보안 관리자는 보안점검 Check List에 의거하여 일, 주, 월 단위로 점검내용을 Check 하며 해당 팀장의 결재를 득하고 보안점검 관리철에 기록 관리한다.
- 시스템 사용 신청절차
시스템 작업(장해복구 및 점검)을 위해 Root 권한을 위임 시에는 시스템 작업 계획서를 작성 후 해당 팀장의 결재를 득하고, 서버관리자 입회 하에 작업을 실시한다.
‚ 작업종료 후 서버관리자는 백도어 체크 리스트에 준하여 시스템 점검 후 사용자 계정 절차에 의해 Password를변경한다.
- File System 사용(허가) 신청절차
해당 업무 담당자는 File 및 Directory 사용권한 허가를 위해 File System 사용 신청에 내용을 상세히 작성 후 해당 팀장의 결재를 득하고 서버 관리자에게 통보한다.
‚ 서버 관리자는 해당 팀장의 결재를 득하고 File 및 Directory의 Permission을 해당 사용자에게 부여한다.
마. 보안관리 활동
l 사용자 계정 정립
- 사용자 ID에 대한 유효기간 설정
- 사용자 ID별 PASSWORD 관리규정 점검
(최소길이, 변경주기, 반복 글자수 등)
- 사용종료 된 ID 삭제 작업 (개발완료 및 퇴직자 등)
- CONSOLE에 대한 LOCK 기능부여
- 미사용 ID 추출 및 정리
- PASSWORD FILE 대신 HIDDEN FILE 사용으로 ACCOUNT 관련정보 유출 방지
l FILE SYSTEM 관리강화
- FILE 및 DIRECTORY에 대한 CODE 표준화 여부 점검
- USER FILE 및 DIRECTORY의 OWNERSHIP과 PERMISSION 점검
- FILE 및 DIRECTORY의 올바른 ATTRIBUTE를 제시하고 PERMISSION 변경여부 점검
- STARTUP FILE 및 CRONTAB FILE 보안상태 점검
l 보안점검 기록관리
- 시스템 접근시도 실패 기록에 대한 기록보관 및 추적
- ROOT 활동내역 추적
- 사용자 진입내용 기록관리 및 분석(LOGIN, LOGOFF, FILE ACCESS 등)
바. 보안점검 계획서
l 서버보안 점검 대상 각 사소별 서버의 중요보안 대상 항목에 대해서 점검한다.
l 보안 점검자 및 활동
- 보안 관리자가 보안점검 리스트를 중심으로 일, 주, 월 단위로 보안 점검을 실시한다.
- SECURITY 관련 패치를 주기적으로 실시한다.
l 서버보안 점검 시 유의 사항
- 슈퍼유저 패스워드를 아는 사람이 많지는 않는가?
- 패스워드 정책이 적절한가?
- 쉐도우 파일 및 패스워드 파일의 PERMISSION이 적절한가, 변경 사항이 없는가? (체크, /etc/passwd, /etc/shadow)
- SETUID를 없애거나 READ-ONLY로 파일을 외부로 마운트 했는가?
- 보안 TOOL을 설치하여 실행하는가?
- ‘r’ 시리즈 명령어들을 금지하였는가?
- /etc/hosts.equiv, $HOME/.rhosts 파일을 없애는가?
- /etc/inetd.conf, /etc/services의 권한 모드가 644이며 소유주가 root인가?
- UUCP 계정을 없앴는가?
- 서비스 데몬들(ftpd, fingerd 등)이 최신 버전인가?
l SERVER 보안 점검 리스트
- USER
. 시스템의 물리적 보안을 유지하는가?
. LOGIN과 ACCESS CONTROL을 유지하는가?
. PASSWORD는 PASSWORD 룰에 맞게 부여했는가?
. LOGIN ID및 PASSWORD는 주기적으로 바꾸는가?
. CRONTABLE을 점검하는가?
- SYSTEM
. 시스템 파일 점검을 통제하는가?
. setuid, setgid program을 감시하는가?
. startup file을 관리하는가?
. 백업된 OS파일과 가동중인 OS 파일을 점검하는가?
. Device파일(/dev/kmem,/dev/drum,/dem/mem)을 점검하는가?
. 서비스 데몬 상태가 정상인가?
. 가동중인 프로세스가 이상은 없는가?
- NETWORK
. 인가 받지 않은 사용자에 대한 Network 접근을 통제하는가?
. 서비스 port에 대한 통제가 이루어지는가?
. NFS/NIS 보안관리가 유지되는가?
. 가장 최신버전으로 교체하였는가?
사. 서버 보안관리 TOOL 적용
l 도입배경
- 복잡하지 않고 효율적으로 운영할 수 있는 S/W(GUI환경)가 요구되고 완전하고 종합적인 정책에 의한SYSTEM 보안관리 요구
- 무결성 강화측면
. 주요업무처리를 지속적으로 수행하기 위해 요구되는 확신을 제 공해주고, 장애발생 시 데이터복구 기능을 강화(USER FRIENDLY)해야 한다.
- 생산성 증대측면
. 반복되는 작업의 단순화와 자동화, 작업 과정의 관리와 표준화, 오류방지를 통해 문제점 조기발견하고 사용자가 원하는 정보를 정확하게 공급해야 한다.
l 기존 SYSTEM의 보안 문제점
- 보안취약
. Open Architecture 형태로 인해 중앙집중의 보안관리 미약하고 정책적 관리 어려움
- 보안규칙 위반사항, 추적, 감시기능 미약
- Backup 관리 및 Backup Data 보호의 어려움
. Backup Tape의 Protect 기능미비
. Remote Backup 불편
- Schedule 기능 미약
. CRON : 작업의 연관관계 인식 불량 / 단위별 Control 기능 취약
- Console 운영 자동화 기능 부재 / Event를 제어하지 못함
- Spool 및 Report 관리 불편
- Help desk 기능의 부재로 인한 장애관리기능 빈약
- 장애 발생 시 자동감지 및 관리기능 빈약
- System 이원화(NT, UNIX)
. /etc/passwd file
Login id, Uid, Passwd, Group id, Accounting information, Login directory, Default shell
. /etc/shadow file(password information)
. /etc/group file
. Access Control Security
: File base를 기본으로 Owner, Group, Other에 대한 Read, Write, Execute Permission을 설정
. Superuser의 무제한 Access or Control
. 한계점
- 자동적인 LOGIN 거부 불가
- 제한된 password control 관리
- 감시를 위한 정책적인 기능 부재
l UNIX/NT SECURITY의 보완
- LOGIN CONTROL 관련
. 지정된 시간만 허용
. 일시적 권한 허용
. 일시적 사용자 불가 필요
. PASSWORD 위반 시 자동으로 USER ID를 제한
. 단말에 따라 권한 부여(IP나 DEVICE NAME구분)
- 자원에 대한 제어관련
. 누가 어떤 자원을 어떻게 사용할 수 있어야 하는가를 정의
. 자원에 대한 구분 정의
(FILES, COMMANDS, ADMINISTRATION FUNCTION 등)
. 해당 자원에 대한 ACCESS LEVEL, TIME AND DATE, TEMPORARY ACCESSS, SUSPENSION ON EXCESSIVE ACCESS VIOLATIONS의 정의
- 감시 모니터링 관련
. 특정한 EVENT 발생 시 감시 가능토록
. 지정된 업무 외의 행위를 감시할 수 있어야
. LOGIN USER의 경로를 모두 감시할 수 있어야
. SYSTEM ADMIN을 감시할 수 있어야
- DEFAULT로 지정된 자원 관련
. 정의되지 않은 자원의 사용불가(FILE CREATE등)
- 정책에 근거한 보안관리 측면
. 자원에 부여한 허용범위 외에 특정한 사용자에 대한 권한 혹은 ACCESS 범위를 지정
- 보안감시를 위한 기능
. REAL TIME MONITORING 및 사후 REPORTING
l 적용계획
- 각 지역의 보안 담당자는 위에서 기술한 요구조건을 반영하는 보안 TOOL 적용
- TOOL 적용 시 검토사항
. 각종 TOOL의 SYSTEM과의 호환성, 안정성이 보장되는가.
. 각종 TOOL이 위의 요구조건을 만족하는가.
. 가격대비 성능비교
. 여러 SERVER의 통합관리가 가능한가.
. 기타 유용한 기능을 위한 소요인력 산정
- 적용절차
. 사용자 정의
: 각 사용자별 기존 SYSTEM의 허용범위를 적용하되 이를 보 안 TOOL에서 재적용 하되 사용자별 허용시간, 허용단말을 부여(사용자 계정관리 지침 참조)
PASSWORD 5회 위반 시 자동으로 해당 LOGIN ID를 일시 적 사용 중단조치
. 사용자 GROUP 정의
. 자산 GROUP 정의
: 사용자 GROUP을 기준으로 해당자원의 ACCESS LEVEL을 정의(최소 권한 부여를 원칙으로 함)
. 개발자산 허용정의
: GROUP에서 정의된 자산에 대한 PERMISSION 외에 특정한 자산에 대한 별도의 PERMISSION 적용
. 통합관리 SYSTEM 구현(RECOVERY 기능 추가)
: 각 SERVER를 하나의 중앙 집중식 SERVER 체계로 운영할 수 있도록 구축하여 보안 담당자의 감시MONITORING 및 위반사항 REPORTING 가능토록 구현
아. 서버보안 관리 운영계획
l 배경
- 서버보안 관리를 통해 인증되지 않는 불법사용자로부터 서버사용을 방지하고 인가된 사용자의 정보자원을보호하여 효율적인 서버보안 관리를 시행하기 위함.
l 활동방향
- 전산적인 측면에서의 보안관리 활동 및 대책수립
- 용이한 정보관리 및 포괄적 정보보안 유지
- 정의된 보안정책에 대한 시행결과 분석 및 효과적인 보안활동 추진
l 보안관리 활동내역
- 사용자 계정점검
. Super user 계정 점검
. USER Shell 점검
. Home Directory 점검
. UID를 공유한 계정 점검
. 최근 추가 및 삭제된 계정 점검
- LOGINPARAMETER 점검
. 실패한 Login시도 사례 점검
. 일정기간동안 미사용 계정 점검
. Password가 없는 사용자 점검
. 폐기된 Password를 가진 사용자
- 사용자 FILE
. World Writable File Check
. User File & Directory의 Ownership과 Permission 점검
- 시스템 FILE
. File 과 Directory의 올바른 Attribute를 제시하고 발생된 변화를 점검
. Startup File를 Crontab File
- 서버보안점검리스트
. Server 점검리스트에 따른 보안관리 활동수행
자. 인터넷 보안관리 지침
l 담당자
l 인터넷 구성요소별 보안관리 지침
A. 구성요소 정의
- 차폐 라우터(SCREENED ROUTER)
. 방화벽으로의 IP REDIRECTION 기능과 PACKET FILTERING 기능을 가지며 내부 망과 외부 망의 유일한 경로 에 위치하는 라우터
- 공개 정보망(INFORMATION SUBNET)
. 인터넷을 통해 외부에 제공되는 정보가 위치하는 네트웍으로 다음 두개의 네트웍으로 구성된다.
. DMZ(Public segment) : 패스워드 check 등 기본적인 인증이나 인증의 절차를 거치지 않는 서버들이 위치하는 정보망
. Secured Zone : 사외의 인가된 사용자(해외사무소 등)들에게 사 내의 정보 및 시스템을 제공하는서버들이 위치하는 정보망
B. 관리지침
- N/W
. 인터넷을 이용한 모든 사외에서 사내로의 접속 시도는 방화벽 을 통해서만 접근이 가능하고 별도의 BACK DOOR는 두지 않 는다.
. 인터넷 접속 통신장치는 부가통신 사업부에서 관리하며 장치에 위협사항 인지 시 즉시 사내 외망을 분리시킨다.
. 인터넷을 통한 외부에서 내부망으로의 접속은 목적지가 공개 정보망일 경우에만 허용한다.
. XXXX 전산망을 통하여 인터넷과 연결되는 모든 계열사, 관계 사들은 독립적으로 인터넷 등 외부망과 연결될 수 없다.
. 인터넷 접속 라우팅 프로토콜은 사내망과 접속된 네트웍의 라 우팅 프로토콜과 상이하게 관리한다.
. 사내망에서 사외로의 파일송신은 불허한다.
- SERVER (MAIL, WWW, DNS)
. XXXX DNS 서버는 사내 이용자들의 인터넷 이용 시에만 사용 하고 사외로부터의 주소응답 서비스는 하지 않는다.
. 서버의 슈퍼유저의 PASSWD는 월1회 변경하며 슈퍼유저의 변 경 시 즉시 변경한다.
. MAIL, WWW등은 외부에 바로 연결되고 시스템 장애 시에도 FILE 등의 회복은 없다.
. 서버의 사용자 PASSWD는 6~8자로 하며 한자 이상의 특수문 자 및 알파벳을 포함한다,
- 방화벽
. 모든 사외로부터의 접속은 방화벽 시스템에서의 인증 절차를 거쳐 인가자만이 사용 가능하게한다.(사용자는 인식하지 못한다.)
. 모든 사외의 사내시스템 사용 인가자들은 월 1회 확인되며 사 용권한 사항의 변경 시(직무변경,퇴직)에는 현업 팀장의 승인 을 득한 후 변경한다.
. 방화벽 위협 인지시 내·외부 N/W 연결은 라우터에서 근원적 으로 차단한다.
. 방화벽 시스템의 복구는 원칙적으로 디스크 FORMAT부터 다시 시작한다.
. 방화벽 시스템에는 서비스 응용 프로토콜 PROXY 서버, OS 이 외의 어떠한 시스템도 두지 않는다.
. 방화벽 시스템에는 슈퍼유저 이외의 어떤 계정도 두지 않는다.
. 사외에서 내부로의 모든 접속 시도는 LOG 관리되며 인증시 세 번 이상의 PASSWD 입력 오류시해당 사용자로부터 접속시도 는 서비스되지 않으며 별도의 관리를 거쳐 매일 보고된다.
. 외부 인가되지 않는 사용자들의 PATTERN을 RULE화하여 RULE에 해당하는 접속시도가 있을 시 바로 보고된다.
- APPLICATION 시스템
. 모든 사외 인가된 사용자들에게 제공하는 사내 시스템들은 SECURED ZONE에 두고 사용자들은 암호화된 문서를 주고받 는다.
. 모든 인터넷을 경우한 정보 및 시스템 자원은 사전에 승인(보 안사무팀, 홍보팀)을 득한 후 제공및 OPEN한다.
2. NT 체크 리스트
가. 사용하지 않는 IP 대역/비정상적인 행위의 로그 점검
l 이벤트 표시기(시작 ->프로그램 ->관리도구(공용) ->이벤트 표시기)를 실행하여 시스템, 보안, 애플리케이션로그를 점검한다.
l 시스템 로그 점검
매개변수 '/gjgjgjgjgjh'를 가진 URL ‘/scripts/.../.../winnt/ system32/cmd.exe에서시작한 스크립트가 구성된시간 초과 기간 내에 응답하지 않았습니다. HTTP 서버가 스크립트를 종료하고 있습니다.
매개변수 '/c+del+"'을(를) 가진 URL '/scripts/../../winnt/ system32/ cmd.exe'에서 시작한 스크립트가 구성된 시간 초과 기간 내에 응답하지 않았습니다. HTTP 서버가 스크립트를 종료하고 있습니다.
l 보안 로그 점검
로그온 실패:
원인: 알 수 없는 사용자 이름 또는 잘못된 암호
사용자 이름: CHIEF
도메인: CERT
로그온 유형: 3
로그온 프로세스: KSecDD
인증 패키지: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0
워크스테이션 이름: \\CHIEF
l 응용프로그램 로그 점검 예제
Microsoft FrontPage Server Extensions:
Error #20015 Message: Cannot open "C:\InetPub\wwwroot\trojanhorse.htm": no such file or directory.
l 침입탐지시스템(Firewall), 웹서버(IIS), 라우터를 운영하고 있다면 관련로그도 점검하여야 한다.
나. 사용자 계정과 그룹 점검
l 도메인 사용자 관리자(시작 ->프로그램 ->관리도구(공용) ->도메인 사용자 관리자)를 실행하여 불법적인 계정이나 그룹의 생성 여부를 점검한다.
l 사용자 계정 점검
C:\>net user
\\TESTNT에 대한 사용자 계정
----------------------------------------------------
Administrator chief FuckU
Guest IUSR_TESTNT IWAM_TESTNT
명령이 잘 실행되었습니다.
l FuckU란 해커 계정이 생성되어 있음을 알 수 있다.
l 글로벌 그룹 계정점검 예제
C:\>net group
\\TESTNT에 대한 그룹 계정
--------------------------------------------------------
*Domain Admins *Domain Guests *Domain Users
*FuckYou
명령이 잘 실행되었습니다.
l FuckYou란 불법 글로벌 그룹이 생성되어 있음을 알 수 있다.
l 로컬그룹 계정 점검 예제
C:\>net localgroup
\\TESTNT에 대한 별명
-------------------------------------------------------*
*Account Operators *Administrators *Backup Operators
*FuckYouAll *Guests *MTS Trusted Impersonators
*Print Operators *Replicator *Server Operators
*Users
명령이 잘 실행되었습니다.
l FuckYouAll이란 불법 로컬그룹이 생성되어 있음을 알 수 있다.
l 내장된 guest 계정이 사용 안함으로 되어 있는지 점검한다.
다. 모든 그룹에서 불법사용자 점검
l 디폴트 그룹에서 그룹에 속한 사용자들에게 특별한 권한을 준다.
l 예를 들면 Administrator 그룹에 속한 사용자는 로컬 시스템에서 무엇이든지 할 수 있고, Backup operators 그룹에 속한 사용자는 시스템상의 어떤 파일이든지 읽을 수 있고, PowerUsers 그룹에 속한 사용자는 공유를 생성할 수 있다.
l 물론 이외에 다른 권한도 있다.
라. 사용자권한 점검
l 사용자와 그룹에 할당 될 수 있는 권한은 27가지가 있다.
마. 비인가된 응용프로그램의 실행 여부 점검
l 공격자가 백도어 프로그램을 심을 수 있는 방법은 여러 가지가 있으며 다음 사항들을 점검한다.
l 시작폴더를 점검한다.
c:\winnt\profiles\(Administrator, All Users, Default User 중 선택)
l 시작 메뉴\프로그램\시작프로그램 폴더를 점검한다.
혹은 시작-> 프로그램-> 시작프로그램을 클릭하여 간단히 확인할 수도 있다.
l 레지스트리를 점검한다.
- 레지스트리를 통한 일반적인 애플리케이션의 위치정보
l 레지스트리 리스트 점검
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager\KnownDLLs
HKEY_LOCAL_MACHINE\System\ControlSet001\Control\Session Manager\KnownDLLs
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current Version\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current Version\RunOnce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current Version\RunOnceEx
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows ("run=" line)
HKEY_CURRENT_USER\Software\Microsoft\Windows\Current Version\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\Current Version\RunOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\Current Version\RunOnceEx
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows ("run=" value)
l 실행중인 불법서비스를 점검한다.
- 어떤 백도어 프로그램은 시스템 부팅시 시작되는 서비스로 설치된다.
- 이 백도어 서비스는 “서비스로 로그온 권한"을 가진 사용자에 의해 실행된다.
- 자동으로 실행되는 서비스를 점검하고, 트로이목마나 백도어 프로그램인지 점검한다.
- 다음은 레지스트리로부터 실행중인 서비스 정보를 수집할 수 있는 간단한 배치 화일이다.
- 실행하면 서비스키, 시작 값과 실행파일을 볼 수 있다. 이 배치파일은 리소스킷에 있는 reg.exe를 사용한다.
l 배치파일을 이용한 점검
@echo off
REM The 'delims' parameter of PULLINFO1 and PULLINFO2 should be a single TAB.
for /f "tokens=1 delims=[]" %%I in ('reg queryHKLM\SYSTEM\CurrentControlSet
\Services') do call :PULLINFO1 %%I
set START_TYPE=
goto :EOF
:PULLINFO1
for /f "tokens=3 delims= " %%I in ('reg query HKLM\SYSTEM\CurrentControlSet
\Services\%1 ^| findstr "Start" ') do call :PULLINFO2 %1 %%I
goto :EOF
:PULLINFO2
for /f "tokens=3,4 delims= " %%I in ('reg query HKLM\SYSTEM\CurrentControlSet
\Services\%1 ^| findstr "ImagePath" ') do call :SHOWINFO %1 %2 %%I %%J
goto :EOF
:SHOWINFO
if /i {%2}=={0} set START_TYPE=Boot
if /i {%2}=={1} set START_TYPE=System
if /i {%2}=={2} set START_TYPE=Automatic
if /i {%2}=={3} set START_TYPE=Disabled
if not "%4" == "" (echo %1 -%START_TYPE%- %3\%4) else (echo %1 -%START_TYPE%- %3)
goto :EOF
l reg 명령어를 이용한 점검
C:\Administrator>reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl Set\Services
! REG.EXE VERSION 2.0
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Abiosdsk
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\abp480n5
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ACPI
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ACPIEC
-----------------------중간생략-----------------------------
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinMgmt
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinTrust
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Wmi
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\{C898773A-5CF1-4AAD-B822-4D0EEA86B27}
바. 변경된 시스템 바이너리 파일의 점검
l CD-ROM이나 기타 설치매체에서 설치된 초기 시스템 바이너리 정보를 복사한 후 주기적으로 비교한다.
l 또한 백업 시 트로이쟌호스나 백도어 파일이 있는지 미리 점검한다.
l 트로이쟌호스 프로그램을 정상 프로그램과 같은 파일 사이즈, timestamp로 조작이 가능하다.
l 이런 경우는 MD5, Tripwire나 기타 무결성 점검도구를 이용하여 트로이쟌호스 프로그램을 탐지할 수 있다.
l 이런 무결성 점검도구는 공격자에 의해 조작되지 않도록 안전하게 보관하여야 한다.
l 또는 백신프로그램을 이용하여 바이러스, 백도어, 트로이쟌호스 프로그램을 점검 할 수 있다.
l 하지만 변종 프로그램이 지속적으로 나오기 때문에 백신 프로그램은 최신버전으로 업데이트해야 한다.
사. 시스템과 네트웍 환경설정의 점검
l WINS, DNS, IP 포워딩 같은 환경설정 변경을 점검한다. 네트웍 환경설정 등록정보를 이용하거나 ipconfig /all 명령어를 이용하여 점검한다.
l ipconfig 명령어를 이용한 점검
C:\Administrator>ipconfig /all
Windows 2000 IP Configuration
Host Name . . . . . . . . . . . . : chiefw2k
Primary DNS Suffix . . . . . . . : kisa.or.kr
Node Type . . . . . . . . . . . . : Hybrid
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
DNS Suffix Search List. . . . . . : kisa.or.kr
or.kr
Ethernet adapter 로컬 영역 연결:
Connection-specific DNS Suffix . :
Description . . . . . . . . : FE574B-3Com 10/100 LAN PCCard-Fast Ethernet
Physical Address. . . . . . . . . : 00-50-DA-D4-11-A4
DHCP Enabled. . . . . . . . . . . : No
IP Address. . . . . . . . . . . . : 172.16.2.202
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 172.16.2.1
DNS Servers . . . . . . . . . . . : 211.252.150.xxx
211.252.150.xxx
l 불필요한 네트웍 서비스가 실행중인지 점검한다. “netstat -an" 명령어를 이용하여 의심스러운 호스트의 접근이나 연결 대기중인 의심스러운 포트를 점검한다.
l netstat 명령어를 이용한 점검
C:\>netstat -na
Active Connections
Proto Local Address Foreign Address State
TCP 0.0.0.0:21 0.0.0.0:0 LISTENING
---------------------- 중간생략 ------------------------
TCP 0.0.0.0:31337 0.0.0.0:0 LISTENING
TCP 127.0.0.1:1026 0.0.0.0:0 LISTENING
TCP 172.16.2.168:31337 172.16.2.154:1652 ESTABLISHED
UDP 0.0.0.0:135 *:*
UDP 172.16.2.168:137 *:*
UDP 172.16.2.168:138 *:*
- 백오리피스2000이 설치되었고, 연결되어 있음을 알 수 있다.
l 배치파일을 이용한 점검
@echo off
for /f "tokens=1,2 delims=:" %%I in ( 'netstat -an ^| findstr "0.0.0.0:[1-9]"' ) do call : CLEAN %%I %%J
goto :EOF
:CLEAN
set X=0
for /f "tokens=1,2,3 delims=TAB " %%A in ( 'findstr /I "\<%3/%1\>" port-numbers.txt' ) do call :SETUP %%A %%C %3 %1
if %X% == 0 echo %3/%1 ***UNKNOWN***
goto :EOF
:SETUP
echo %3/%4 %1 %2
set X=1;
goto :EOF
l port-numbers.txt 라는 파일이 필요하다. 이 파일에는 점검하고자 하는 포트를 정리한다. 첨부1. 참고
아. 비인가된 파일공유를 점검한다.
l 명령프롬프트에서 net share 명령어를 이용하여 점검하거나 서버관리자를 이용하여 점검한다. 공유폴더의끝에 “$" 표시가 있으면 이는 hidden share이다.
l 불법 공유폴더와 NT의 디폴트나 공유폴더에 비인가된 사용자가 연결되어 있는지 점검한다.
l net share 명령어를 이용한 점검
C:\>net share
공유 이름 리소스 설명
----------------------------------------------------------
print$ C:\WINNT\system32\spool\drivers 프린터 드라이버
IPC$ Remote IPC
C$ C:\ Default share
ADMIN$ C:\WINNT Remote Admin
I386 C:\I386
QLaserSF LPT1: 스풀됨 QLaser SF710
명령이 잘 실행되었습니다.
l net use, net session 명령어를 이용하여 점검
l 서버관리자(시작->프로그램->관리도구(공용)->서버관리자)를 이용한 점검
자. 실행중인 스케줄러의 점검
l “at" 명령어나 리소스 킷에 있는 WINAT 도구를 사용하여 점검한다.
l at 명령어를 이용한 점검
C:\>at
상태 ID 날짜 시간 명령줄
-------------------------------------------------------------
1 다음 29 오후 3:00 cmd.exe
차. 불법프로세스 점검
l 작업관리자나 리소스 킷에 있는 pulist.exe나 tlist.exe를 이용하여 실행중인 프로세스를 점검한다.
l pulist 명령어를 이용하면 누가 프로세스를 실행시켰는지 알 수 있다.
l tlist 명령어를 이용한 점검
C:\Administrator>tlist -t
System Process (0)
System (8)
smss.exe (200)
csrss.exe (228)
winlogon.exe (252) NetDDE Agent
services.exe (280)
mstask.exe (1188) SYSTEM AGENT COM WINDOW
svchost.exe (2204) ModemDeviceChange
dns.exe (1812)
------------------- 중간 생략 ------------------------
explorer.exe (1836) Program Manager
cmd.exe (2080) C:\WINNT.0\System32\cmd.exe - tlist -t
tlist.exe (2352)
IEXPLORE.EXE (2064) Microsoft Internet Explorer
regedt32.exe (1360) 레지스트리 편집기
mmc.exe (1988) 컴퓨터 관리
spade.exe (440) Spade - [Scan 172.16.2.200-172.16.2.202, finished]
tp4mon.exe (2420) Zoom Window
internat.exe (864)
conime.exe (2020)
- spade.exe 프로그램으로 스캔이 완료되었음을 알 수 있다.
카. 이상한 파일이나 숨겨진 파일의 탐색
l 패스워드 크래킹 프로그램이나 다른 시스템의 패스워드 파일이 있는지 점검한다.
l 탐색기(보기 ->폴더 옵션 ->보기 ->모든 파일 표시)를 이용하여 숨겨진 파일을 찾거나, “dir /ah" 명령어를 이용하여 점검한다.
타. 파일 퍼미션 변경이나 레지스트리 키값의 변경을 점검
l 리소스 킷의 xcacls.exe 프로그램을 이용하여 디렉토리별 파일들을 점검한다.
파. 사용자나 컴퓨터의 정책변화 점검
l 정책편집기(poledit.exe)에서 구성된 현재 정책의 복사본을 정리하여 주기적으로 변경되었는지 점검한다.
하. 시스템이 다른 도메인으로 변경되었는지 점검
A. 한 시스템이 해킹을 당한 경우 로컬 네트웍 내의 모든 시스템을 점검
댓글