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