BACKRUSH  대화방입장  유닉스명령  다음  자료실  Ascii Table   Exploit   원격접속  달력,시간   프로세스  
지하철노선   Whois   RFC문서   SUN FAQ   SUN FAQ1   C메뉴얼   PHP메뉴얼   너구리   아스키월드 아이피서치

글쓴이: 보안 보안 체크리스트 조회수: 8427


보안 체크리스트 by ToTo
1. 통신망
•웹서버는 올바른 DMZ 구성이 되어 있는가?
•DMZ 방화벽에는 웹서비스 포트外 다른 포트가 Open되어 있는가?
- 웹서비스포트外 다른 서비스가 Open될 경우, 사용서비스 포트와 접속IP 주소를 고정하여 사용하는지 확인(SMTP,DNS사용의 경우 별도 예외)
- 내부에서 외부로 나가는 Outbound 포트도 필요한 포트外 차단하였는지 확인
•방화벽 접속로깅을 하고 있으며 보관기간은 충분한가?
- 방화벽 접속로깅은 6개월 이상 보관 권고
•침입탐지시스템(IDS) 또는 침입방지시스템(IPS)이 가동 중인가?
- 근래는 외부 트랙픽 보다 외부 트래픽에 의한 문제가 더 많은 만큼 내부 트래픽에 대한 검출이 중요
•침입탐지시스템(IDS) 또는 침입방지시스템(IPS)의 로그 파일 중 비정상적인 로그가 방치되고 있는가?
- 이상 로그 발생에 대한 SMS 연동 등 관리체계 수립 및 다양한 패턴D/B의 유지보수가 필요

2. 서버
•서버에 해킹취약서비스가 제거 되었는가?
- ttdb, cmsd, sadmind, snmpXdmid, ypbind, xntpx 등의 제거
•서버에 불필요서비스가 존재하는가?
- RPC 서비스 : rusers, rexd, statd, rquotad, walld, snmp(100122), snmpv2(100138), kcms_server, metad, metamhd, finger, systat, netstat, tftp, comsat, talk, uucp, auth, printer, echo, discard, time, daytime, chargen, dtspcd, snmpd, snmptrapd, pdnsd, cachefsd
•서버에 최신 패치 또는 대체 방안을 적용했는가?
- 각 서버 밴더에서 제공하는 공식 보안 패치를 주기적으로 검토하여 적용
•서버 내 설치되는 별도 프로그램 또는 패키지의 샘플 및 테스트용 파일, 디렉토리들을 제거 했는가?
- 아래에 나열된 샘플 디렉토리 이외에도 디폴트로 설치되거나 테스트 목적으로 설치되는 모든 샘플 파일들은 모두 제거되어야 함
예) \Inetpub\iissamples 제거
\Inetpub\iissamples\sdk 제거
\Inetpub\AdminScripts 제거
\Inetpub\Scripts\Samples 제거
\Program Files\Common Files\System\msadc\Samples 제거
\Winnt\System32\Inetsrv\Iisadmpwd
•리눅스 O/S사용시 Secure O/S를 설치했는가?
- 핵심 정보자산을 운영하는 시스템은 리눅스 사용을 권고하지 않음
•웹서버의 관리자 디폴트 패스워드를 변경 하였는가?
예) iPlanet(Netscape): admin/admin
Weblogic: system/weblogic
•웹서버의 디렉토리 리스팅 금지 기능이 적용되어 있는가?
•웹서버에 취약한 옵션이 제거 되었는가?
- PUT, DELETE, MKDIR, RMDIR 등

3. 프로그램
•웹서버 사용시 취약한 버전은 패치되었는가?
- 웹서버 밴더에서 제공하는 공식 패치를 주기적으로 최신 패치 수행 권고
•중간 페이지 접속 취약점이 존재하여 권한 없는 페이지에 접속이 가능한가?
- browser-보기-탐색 창-열어 본 페이지 접속후 확인
- URL, 변수값 조작으로 권한이 없는 페이지 접속 및 실행가능 여부 확인
ex) http://localhost/view.asp?id=1 → http://localhost/edit.asp?id=1
•인증 프로그램 구현시 스크립트를 우회 할수 있는가?
- 브라우저에서 스크립트 비활성화를 이용한 인증우회 가능여부 체크
•CGI 프로그램 작성시 meta character를 체크하지 않아 시스템 명령어를 수행 혹은 시스템 정보가 노출되지 않는가?
•파일 접근시 경로를 조작하여 시스템 파일에 접근 불가능 한가?
ex) http://localhost/download.jsp?file=../. ··· 2Fpasswd
http://localhost/download.jsp?file=../. ··· load.jsp
•중요 정보가 쿠키, 프로그램 소스, URL에서 표시된 Key 값을 변조가능한지 확인
- 해당 key값을 변조하여 타인,타 부서의 정보를 조회할 수 없는지 테스트
※ Key값: ID, 주민번호, 사업자번호, 계약번호, 증권번호, 부서코드, Primary key 등
•중요 정보가 쿠키, 프로그램 소스, URL에서 평문형태로 조회되는지 확인
- 쿠키: javascript:(document.cookie);
- 소스: HTML 소스보기로 중요정보 노출확인 (hidden정보 등)
•응용프로그램에서 사용하는 DB계정은 DBA권한이 아닌 일반권한을 사용하고 있는가?
- MS-SQL의 경우 sa 계정 사용 금지
•php,jsp,asp등의 소스의 백업(zip, bak, tar, bk 등)은 웹 디렉토리가 아닌 별도의 디렉토리에 보관되어 URL로 접근이 불가한가?
•게시판 등 사용자 입력 부분에 관리자가 아닌 사용자로부터 html tag입력이 불가능 하도록 설정되어 있는가?
- 사용을 허용할 html tag를 정리하여 제한적으로 제공할 것으로 권고
•사용자 인증, 검색, 게시판 보기화면 등 DB연결시 SQL조건문 조작을 통한 해킹이 불가능한가?
- 가능한 다양한 SQL Injection 코드로 점검을 요함
•원격에서 명령어 실행이 가능한 악의의 소스를 업로드하여 명령어 실행이 불가하도록 차단 되어 있는가?
- 업로드 파일의 확장자 체크는 무의미하며 php, jsp, asp, bak, inc 등의 실행불가 여부확인
•중요문서(대외비 이상 또는개인정보가 포함된 문서)는 웹경로상에서 직접 접근이 불가능 한가?
- 웹서버 등의 .doc, .pdf, .xls 등 문서 파일을 검색하여 불필요한 파일은 삭제
- Google 등의 검색엔진을 통해 중요 문서가 검색되는지 여부 확인
•게시판 구현시 공개된 프로그램을 사용하지 않는가?
- 테크노트, Crazy보드, Zero보드, 그누보드 등 공개 프로그램 사용금지
•php 사용시 세션정보를 안전하게 저장하고 있는가?
- php.ini 중 세션 설정 디렉토리(session.save_path=/tmp 가 디폴트)를 따로 만들고(session.save_path=/tmp/session) user와 group값을 nobody로 설정하고 퍼미션을 750으로 조정했는지 확인
•Php.ini 환경파일을 안전하게 운영하고 있는가?
- allow_url_fopen : off (디폴트 on)
- register_globals : off (디폴트 on)
- magic_quotes_gpc : on
- display_errors = off
•웹 서버 설치시 최소한의 권한으로 설치 되었는가?
- root 권한으로 설치금지
•중요정보를 입력 Form의 자동완성 기능을 Off 했는가?
예) <form name="input" method="post" action="input.php" autocomplete=off>
&#8226;중요정보가 있는 페이지의 경우는 CACHE가 불가능하도록 response의 header에 no-cache로 설정하여 로그아웃 이후에 뒤로가기로 정보 조회가 불가능 한가?
&#8226;클라이언트측 소스에 불필요한 주석(Comment)를 사용하여 시스템 정보를 노출하고 있지 않은가?
- HTML 소스 보기를 통해 테스트 계정,패스워드, 테스트 서버IP, 개발자명 等와 같은 불필요 정보 존재하는지 확인
&#8226;예외 처리시 에러페이지를 지정하지 않아 웹서버의 시스템 정보가 노출되지 않는가?
- SQL문, SQL 에러, Web서버 절대경로 노출 금지
- 웹서버에서 404 Error 등의 표시를 기본 설정으로 하지 않고 별도 페이지로 연결 설정
&#8226;자바 클래스를 안전하게 운영하는가?
- 자바 애플릿의 디컴파일러를 이용하여 소스를 원복하여 관리 권한과 같은 중요로직이 노출되거나 조작이 가능한지 확인
- 자바를 이용하여 웹서버를 구성한 경우 웹브라우저를 이용하여 서버에서 실행되는 class위치에 접근, 다운가능한지 확인
(확인방법)
. http://대상URL/WEB-INF/classes/해당디렉토리/클래스명을 입력하여 서버측 클래스가 다운로드 가능한지 확인
&#8226;로그인 패스워드 정책 및 암호화 전송 기준이 있는가?
- 회원가입, 사용자 정보 변경 시 단순 패스워드를 사용하지 못하도록 하는 검증 프로그램을 운영
- 중요정보의 전송 시 128bit 이상의 SSL 적용
- 개인 정보(ID/Password)분실 시 복구절차가 자동화되어 내부 사용자의 접근이 불가능하도록 설정
&#8226;CMS 등 웹사이트 관리자화면은 안전하게 관리되는가?
- 관리자화면 접근 IP를 제한하거나 내부망에서만 접근가능하도록 조치

4. 접근 및 관리 통제
&#8226;서버에 접근 가능한 IP 주소를 통제하는가?
- O/S에서 제공하는 Trust Mode 설정화면에서 통제 관리
- 보안 툴이 설치된 경우 관리자 화면에서 통제 관리
&#8226;서버 접속시 패스워드 정책을 관리하고 준수하는가?
- 패스워드 설정규칙(6자 이상 사용,영숫자 혼용,연속문자열 4자 이상 사용금지 권고) 적용
- 주기적(분기 1회 권고)패스워드 변경실시
&#8226;root의 FTP을 사용 금지 옵션을 적용 했는가?
- /etc/ftpusers 파일 내 root가 있는지 확인
&#8226;일반 사용자가 root권한을 갖는가?
- /etc/passwd 파일 내 root외 UID=0 사용자 존재 확인
&#8226;서버 및 웹서버의 접속 로깅을 실시하는가?
- 웹서버 로그, last 로그(wtmp), messages 파일, syslog 파일, 사용자 history 파일 별도보관 확인
(단, /dev/null로 링크한 경우도 인정함)
- 주기적인 모니터링 및 6개월 이상 별도 보관 권고
&#8226;웹서비스를 위한 서버의 설치 장소가 통제구역으로 관리되고, 출입 제한절차가 있는지 확인한다.
- 물리적 출입 보안 체계 수립 및 유지
- 출입 시 출입 대장관리

5. 데이터베이스
&#8226;데이타베이스 접속 ID/패스워드가 관리되고 있는가?
- 사용자 ID별 사용자를 지정
- 디폴트 ID/Password 사용금지
예) 오라클 Default Password :
scott/tiger,system/manager,dbsnmp/dbsnmp,sys/change_on_install,
tracesvr/trace,demo/demo,ctxsys/ctxsys,mdsys/mdsys,
ctxdemo/ctxdemo,apps/apps,applsys/fnd,po8/po8,names/names,
sysadm/sysadm, ordplugins/ordplugins,outln/outln,adams/wood,
blake/paper, jones/steel, clark/cloth,aurora$orb$unauthenticated/invalid
(oracle 9i 추가) wksys/wksys, olapsys/manager, olapdba/olapdba,
LBACSYS/LBACSYS, olapsvr/instance
MS SQL Default Password : sa/null,probe/null
- 패스워드 설정규칙 적용
( 6자 이상 사용, 영숫자 혼용, 연속문자열 4자 이상, ID가 포함된 패스워드 사용 금지 )
- 주기적(분기 1회)패스워드 변경실시
&#8226;중요 정보(개인정보,거래정보)에 대한 사용권한이 지정되어 있는가?
- ID별 사용권한(읽기,쓰기) 및 범위를 지정
- ID는 운영에 필요한 최소한의 사용자에게만 부여
&#8226;데이타베이스 관련 파일에 대해서 접근권한이 통제되는가?
- UNIX인 경우 : DBA에게만 파일 모드 644 허용
- NT인 경우 : DBA에게만 읽기,쓰기 허용
&#8226;DB취급자를 최소한으로 하고 허용 대상자를 통제, 관리하고 있는가?
- 접속 가능한 IP 주소 및 Port를 제한하였는지 확인
&#8226;중요정보(개인정보,거래정보)의 조회,삭제,수정 등 이력을 기록하는가?
- 접속 ID, 접속 프로그램, 접속일시, 명령어 수정내역 등의 이력을 기록
&#8226;데이타베이스가 존재하고 있는 서버의 접속 이력을 기록하는가?
- 서버 로그 및 DB 리스너 로그 포함
- 로그인 ID, 접속일시, 접속IP 등의 이력 관리
&#8226;고객/거래정보 데이터베이스는 통신망 내부망에 위치하여 외부에서 직접 접속이 불가능 한가?
- WEB/WAS와 DB의 분리 운영 및 내/외 통신망의 분리
&#8226;데이터베이스에 고객/거래정보가 암호화 저장 되는가?
- 패스워드, 주민번호, 신용카드번호, 은행계좌번호 등의 중요 정보를 암호화 하여 저장
- 패스워드 암호화의 경우 단방향 알고리즘(MD5, SHA-1 등)을 사용
- 공인된 암호 알고리즘(SEED 등)을 사용
- 문자열의 재배열, 단순치환, ASCII코드값 변환, URL Encode, Base64 Encode 사용금지
- DB link 등을 이용한 내부 DB와 연결 시 동일한 수준의 암호화 유지
기타 전반적인 보안가이드는 KISA에서 발행한 정보보안가이드를 참조
(http://www.kisa.or.kr)

관련글 : 없음 글쓴시간 : 2011/04/14 9:25 from 183.109.84.23

  jsp shell 목록보기 새글 쓰기 지우기 응답글 쓰기 글 수정 DNS 캐쉬 포이즈닝- 취약점  
BACKRUSH  대화방입장  유닉스명령  다음  자료실  Ascii Table   Exploit   원격접속  달력,시간   프로세스  
지하철노선   Whois   RFC문서   SUN FAQ   SUN FAQ1   C메뉴얼   PHP메뉴얼   너구리   아스키월드 아이피서치