차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판양쪽 다음 판
guide:jsp_개발_보안_가이드 [2013/11/26 08:42] 121.140.124.172guide:jsp_개발_보안_가이드 [2013/11/29 06:26] 121.140.124.172
줄 427: 줄 427:
   * 중요한 작업의 기준이 되는 정보 (예: 결재 모듈에서 상품의 가격 정보, 회원정보 수정시 사용자의 ID 정보 등)는 GET/POST 파라미터 등으로부터 입력 받은 변수값의 사용을 자제하고 Session 객체나 DB 와 같이 신뢰할 수 있는 저장소의 정보를 읽어와 사용하도록 함 (예를 들면 상품의 가격 정보는 DB에서 읽어오도록 하고, 사용자의 ID 는 Session 객체에서 읽어오도록 함)   * 중요한 작업의 기준이 되는 정보 (예: 결재 모듈에서 상품의 가격 정보, 회원정보 수정시 사용자의 ID 정보 등)는 GET/POST 파라미터 등으로부터 입력 받은 변수값의 사용을 자제하고 Session 객체나 DB 와 같이 신뢰할 수 있는 저장소의 정보를 읽어와 사용하도록 함 (예를 들면 상품의 가격 정보는 DB에서 읽어오도록 하고, 사용자의 ID 는 Session 객체에서 읽어오도록 함)
 이 유형의 취약점은 진단 대상의 구조 및 종류, 서비스 유형 등에 따라서 다양한 형태로 발생하게 되므로 각 진단대상의 특성과 로직을 분석하여 대상에 맞는 적절한 보안 대책을 적용해야 한다. 이 유형의 취약점은 진단 대상의 구조 및 종류, 서비스 유형 등에 따라서 다양한 형태로 발생하게 되므로 각 진단대상의 특성과 로직을 분석하여 대상에 맞는 적절한 보안 대책을 적용해야 한다.
 +==== 8. 취약한 ID/PW ====
 +
 +=== 가. 취약점 상세 내용 및 보안 대책 ===
 +로그인 인증을 통과해야만 접근할 수 있는 웹페이지의 경우, 취약한 계정을 사용한다면, 공격자는 해당 웹사이트의 정보를 바탕으로 자주 사용되는 word를 이용한 사전 파일 공격을 시도하거나, 또는 무작위 대입 방식에 의해서 취약한 계정을 획득할 수 있음.
 +\\
 +시스템에서 기본으로 제공하는 계정이나 DBMS, 어플리케이션 서버 등에서 관리를 위해 제공하는 기본 계정을 그대로 사용하는 경우 공격자에게 쉽게 계정의 사용 여부가 노출될 수 있음. 일반 사용자 계정 역시 여러 가지 방법으로 공격자에게 계정의 존재 여부가 노출될 수 있음.
 +=== 나. 보안 대책 ===
 +사용자가 취약한 패스워드를 사용할 수 없도록 패스워드 생성 규칙을 선정하고 이에 대한 안내 및 강제할 수 있는 로직을 적용해야 함.
 +  * 패스워드 생성 규칙 예시
 +    * admin, master 등 유추하기 쉬운 계정 이름 사용 금지
 +    * 8자 이상 숫자, 영문자, 특수문자를 혼합하여 패스워드를 생성해야 함
 +    * 자신과 관련된 정보를 이용한 패스워드 생성 금지(계정과 유사 한 패스워드 등)
 +    * 간단한 문자(영어단어 포함)나 숫자의 연속사용은 금함
 +    * 사전에 있는 단어, 이를 거꾸로 철자화한 단어 또는 숫자 하나를 더한 단어 사용 금지
 +    * 기억하기 쉽게 만들어 별도의 기록이 필요 없도록 함
 +    * 키보드상에서 일련화된 배열을 따르는 패스워드 선택 금지
 +    * 패스워드를 주기적으로 변경해야 함
 +    * 패스워드의 최소 사용기간, 최대 사용기간을 설정함
 +    * 이전에 사용한 패스워드는 재 사용 금지
 +==== 9. 디렉터리 인덱싱 ====
 +
 +=== 가. 취약점 상세 내용 및 보안 대책 ===
 +웹서버 설정상의 오류나 개발 과정의 편의를 위해서 웹 디렉토리 내부의 파일 리스트가 웹브라우져를 통해서 출력되도록 설정되어 있을 수 있음
 +\\
 +웹 디렉토리의 파일 목록이 노출되면 공격자에게 웹사이트 구조 및 환경과 관련된 정보가 노출될 수 있으며, 백업 파일이나 설정 파일 등이 웹 디렉토리 내부에 존재할 경우, 공격자가 이 파일을 다운로드하여 웹사이트의 핵심적인 정보를 획득할 수 있음
 +=== 나. 보안 대책 ===
 +사용중인 웹서버를 확인한 후, 설정 파일 또는 관리 콘솔상에서 Directory Indexing 을 허용하지 않는 것으로 변경함.
 +  * Apache\\ DocumentRoot 디렉터리 내의 모든 파일의 목록이 출력되는 것을 방지하기 위해서 httpd.conf 파일 내의 <Directory> 설정 영역에서 "Options" 지시자 에서 "Indexes" 옵션을 제거한다.\\ DocumentRoot 디렉토리의 최상위 디렉토리에서 Indexes 옵션을 제거하면 하위 디렉토리에도 모두 적용되지만 특정 하위 디렉토리에서 Indexes 옵션이 추가되어 있을 경우, 하위 디렉토리의 설정이 우선 적용되므로 하위 디렉토리의 모든 Indexes 옵션도 제거하도록 한다.
 +<code>
 +<Directory “/usr/local/www”>
 +    Options Indexes FollowSymLinks     (---> Indexes 지시어 삭제)
 +    AllowOverride None
 +</Directroy>
 +</code>
 +  * IIS\\ 인터넷 정보서비스(IIS) 관리 –> [해당 웹사이트] -> [등록정보] -> [홈 디렉토리] -> [디렉토리 검색] 체크박스를 해제한다.
 +{{:guide:테스트등록정보.png?600|}}
 +  * WebTob\\ 환경파일내의 ‘DIRINDEX’절 삽입유무 확인 후, ‘NODE’절의 ‘NODE’절에 ‘DIRINDEX’절과 관계된 설정을 확인한다. ‘DIRINDEX’절을 삽입하지 않거나 Options 값을 ‘-index’로 설정함\\ (※ 환경파일 : ${WEBTOBDIR}/config/[파일명.m] )
 +<code>
 +*NODE
 +nex-edfa87d356c WEBTOBDIR="C:/TmaxSoft/WebtoB4.1", 
 + SHMKEY = 54000,
 + DOCROOT="C:/TmaxSoft/WebtoB4.1/docs",
 + PORT = "8080", 
 + HTH = 1,
 + LOGGING = "log1",
 + ERRORLOG = "log2",
 + JSVPORT = 9900,
 + DirIndex = "diridx_full",
 + Options = "-index"
 +
 +*DIRINDEX
 +diridx_full Options = "Fancy"
 +</code>
 +==== 10. 디폴트 페이지 ====
 +
 +=== 가. 취약점 상세 내용 및 보안 대책 ===
 +웹서버, WAS 등 플랫폼을 디폴트 옵션으로 설치할 경우, 사용자의 편의를 위해 제공되는 각종 예제 및 샘플 페이지, 설치 정보, 관리 콘솔 등이 함께 설치된다. 이런 기능들은 제품별로 항상 동일한 경로에 설치되는 것이 일반적이며, 설치 정보가 일반에 공개되어 있기 때문에 공격자들의 주요 공격 목표가 될 수 있으며, 특히 샘플 페이지 등에 존재하는 취약점이 공격의 경로로 이용된 사례가 과거에 보고되어 있다.
 +\\
 +따라서 샘플 페이지 등이 관리되지 않고 방치되는 경우 보안 취약점으로 작용할 가능성이 있는 만큼 사용하지 않는 기능은 설치하지 않거나 삭제하는 것이 바람직하며, 만일 사용되어야 하는 기능들은 철저한 관리를 통해 사고를 방지해야 한다.
 +=== 나. 보안 대책 ===
 +운영중인 웹서버에서 사용하고 있는 웹서버, WAS, Database, 기타 Third party 제품군을 파악하고 각 제품별로 디폴트로 설치되는 기능들 중에서 불필요한 기능이 있는지 검토하여 삭제하도록 한다.
 +  * 불필요한 샘플 페이지 및 기능의 삭제
 +    * 웹 서버/WAS의 Default Page와 Banner를 삭제
 +    * PHP의 phpinfo 페이지 삭제
 +    * WAS 등의 사용 예제 및 샘플 도메인 삭제
 +    * Tomcat, Jeus, IIS, Weblogic 등의 관리 콘솔 중 사용하지 않는 기능을 중지하거나 삭제
 +    * 기타 Third party 제품군의 관리 페이지, 샘플 페이지 등을 삭제
 +  * 디폴트 페이지 사용시 관리 강화
 +    * 디폴트 페이지나 관리 콘솔을 사용해야 하는 경우, 접근 경로 및 접근 port 의 디폴트 설정값을 변경하여 사용하도록 함
 +    * 관리 콘솔 설치시 생성되는 디폴트 계정은 사용하지 않도록 하고 별도의 계정을 생성하여 사용함
 +    * 관리 콘솔 등 중요한 기능의 경우 적절한 ACL 정책을 적용함
 +    * Third party 제품군의 관리 페이지 등이 일반에 노출되지 않도록 주의함
 +