티스토리 뷰
가. 취약점 개요
- 취약한 패스워드를 사용할 수 있을 경우, 무차별 대입공격을 통해 패스워드가 누출될 수 있는 취약점
→ 취약한 비밀번호 허용
- 패스워드 복구 메커니즘이 취약 시, 다른 사용자의 패스워드를 획득/변경/복구가 가능한 취약점
→ (취약한 비밀번호 복구)
- 하드코드된 패스워드로 내부인증을 하거나, 통신할 경우, 관리자 정보가 노출될 수 있는 취약점
→ 하드코드된 비밀번호
나. 요구사항
1. KISA 암호화 정책수립기준의 패스워드 설정 규칙을 적용
2. 패스워드 전송 시 암호화처리 또는 암호화 통신 이용
3. 패스워드 저장 시 솔트가 적용된 안전한 해쉬함수 사용
4. 패스워드 재설정/변경 시 안전하게 변경할 수 있는 규칙 정의
5. 패스워드 관리규칙을 정의
다. 요구사항 별 고려사항
1. KISA 암호화 정책수립기준의 패스워드 설정 규칙을 적용
- 영문 대/소문자/숫자/특수기호 중 3종류 이상 사용 시 최소 8자리, 2종류 이상 사용 시 최소 10자리로 구성
- 사전적 단어를 포함하지 않는 패스워드
- 예측이 어렵도록 가공한 패스워드
- 사용자 ID와 연관있는 단어구성을 포함하지 않는 패스워드
- 제 3자가 쉽게 알 수 있는 개인정보를 포함하지 않는 패스워드
2. 패스워드 전송 시 암호화 처리 또는 암호화 통신 이용
- 패스워드를 송/수신 시 보호대책으로 TLS, VPN 등의 암호기술을 적용
3. 패스워드 저장 시 솔트가 적용된 안전한 해쉬함수 사용
- 해쉬함수는 서버에서 실행
4-1. 패스워드 변경 시 안전하게 변경할 수 있는 규칙 정의
- 3개월에서 6개월 이하의 주기적 패스워드를 변경
- 패스워드 변경 시 이전 패스워드와 연관성 금지
4-2. 패스워드 재설정 시 안전하게 변경할 수 있는 규칙 정의
- 해당 사용자에게만 패스워드 정보를 전달
- 올바른 패스워드가 입력되기 전까지 개인정보 수정제한
- 사용자 검증 실패횟수가 일정횟수 초과 시 패스워드 찾기기능 잠금
- 사용자 검증 후 임시 패스워드를 발급
- 임시 패스워드 사용 시 즉시 새로운 패스워드로 재설정
5. 패스워드 관리규칙을 정의
- 3개월~6개월마다 주기적으로 패스워드를 변경
- 패스워드 기간이 만료 시 사용자에게 패스워드 변경을 요청
- 마지막으로 로그인한 시간정보를 저장 및 알림
라. 요구사항 별 진단기준 및 방법
0. 공통내용
- 요구사항 정의서에 보안요구항목에 대한 대책이 수립
- 아키텍쳐 설계서에 보안요구항목 적용계획이 수립
- 요구사항 추적표를 통해 요구사항 추적가능 여부
1. KISA 암호화 정책수립기준의 패스워드 설정 규칙을 적용
- 안전한 패스워드 설정 규칙이 설계되었는지 확인
2. 패스워드 전송 시 암호화 처리 또는 암호화 통신 이용
- 회원가입, 로그인 등 네트워크를 통해 패스워드가 전송되는 기능의 분류를 확인
- 패스워드 전송 시 안전한 암호 알고리즘을 사용한 암호화 여부를 확인
- 패스워드 전송 시 TLS, VPN 등 안전한 통신채널 사용 여부를 확인
3. 패스워드 저장 시 솔트가 적용된 안전한 해쉬함수 사용
- 패스워드 암호화 시 SHA-2계열 해쉬함수의 사용 여부를 확인
- 해쉬함수 사용 시 솔트값 사용하도록 설계되었는지 확인
- 솔트값은 암호키가 저장되는 장소에 저장되도록 설계되어 있는지 확인
4-1. 패스워드 변경 시 안전하게 변경할 수 있는 규칙 정의
- 패스워드 변경 시 기존 패스워드를 확인하도록 설계되었는지 확인
- 변경하려는 패스워드가 안전한 패스워드 설정 규칙이 적용되었는지 확인
4-2. 패스워드 재설정 시 안전하게 변경할 수 있는 규칙 정의
- 패스워드 재설정 요청 시 안전한 본인인증 절차수행이 설계되었는지 확인
- 본인인증 후 패스워드 재설정 페이지로 연결되는지 확인
5. 패스워드 관리규칙을 정의
- 패스워드 만료기간이나 변경주기에 대한 정책적용 확인
- 만료/변경주기 정책을 관리할 수 있도록 데이터베이스가 설계되었는지 확인
마. 진단기준
1. KISA 암호화 정책수립기준의 패스워드 설정 규칙을 적용
- 패스워드 설정 규칙이 안전하게 정의되어 있는지 확인
- 패스워드 설정 규칙을 점검하는 테스트 계획 확인
2. 패스워드 전송 시 암호화 처리 또는 암호화 통신 이용
- 네트워크를 통해 전송되는 패스워드가 안전한 암호알고리즘으로 암호화되거나, 안전한 암호화 통신채널을 사용하는지 확인
- 네트워크를 통해 전송되는 패스워드의 암호화를 점검하는 테스트 계획 확인
3. 패스워드 저장 시 솔트가 적용된 안전한 해쉬함수 사용
- 패스워드 저장/변경 시 솔트가 적용된 안전한 해쉬함수를 사용하도록 설계되었는지 확인
- 해쉬함수를 이용한 패스워드 암호화가 서버에서 실행되도록 설계되었는지 확인
- 저장된 패스워드의 안전성을 점검하는 테스트 계획 확인
4. 패스워드 변경/재설정 시 안전하게 변경할 수 있는 규칙 정의
- 패스워드를 안전하게 변경 및 재설정할 수 있도록 설계되었는지 확인
- 패스워드 변경 및 재설정이 안전하게 수행되는지 점검하는 테스트 계획 확인
5. 패스워드 관리규칙을 정의
- 패스워드 관리 규칙이 설계되어 있는지 확인
- 패스워드 관리 규칙을 점검하는 테스트 계획 확인
바. 안전한 보안설계 예
No | 요구사항 명 | 해결방안 | 검수기준 | |
1 | 안전한 패스워드 생성규칙 적용 | 암호이용안내서의 패스워드 생성규칙을 적용한다. | 암호이용안내서의 패스워드 생성규칙을 따른다. | |
2 | 네트워크를 통한 패스워드 전송 시 암호화 | 로그인, 회원정보수정 등 패스워드 정보를 포함하는 요청은 HTTPS로 처리한다. | 패스워드 정보가 포함된 요청은 HTTP로 처리되지 않고 HTTPS로 처리된다. | |
3 | 패스워드 저장 시 솔트가 적용된 안전한 해쉬함수 사용 | 해쉬를 추출하는 공통모듈 구현 시 임의의 난수를 생성하여 솔트로 사용하고, 해쉬값과 함께 반환하도록 한다. | 해쉬를 추출할 때 난수 형태의 솔트가 적용되고 사용한 솔트를 확인할 수 있다. | |
4 | 패스워드 재설정/변경 시 안전한 변경 규칙 적용 | 항시 패스워드 변경이 가능하도록 하고, 동일 패스워드를 장기간 사용하는 경우 3개월 주기로 패스워드를 변경하도록 강제한다. 팻워드를 분실한 경우, 패스워드 찾기 기능을 통해 가입 시 입력한 이메일로 임시 패스워드를 발급한다. | 패스워드 변경, 3개월 주기로 변경, 패스워 찾기 기능을 제공한다. | |
5 | 패스워드 관리 규칙 적용 | 패스워드 변경주기를 3개월로 하고 만료기간을 6개월로 한다. | 패스워드 변경주기와 만료기간 정책이 반영되어 있다. |
'Web Analytics > SW 보안약점 진단원' 카테고리의 다른 글
[설계보안] 보안기능 05 - 암호키 관리 (0) | 2019.09.29 |
---|---|
[설계보안] 보안기능 04 - 중요자원 접근통제 (0) | 2019.09.23 |
[설계보안] 보안기능 02 - 인증 수행 제한 (0) | 2019.09.23 |
[설계보안] 보안기능 01 - 인증 대상 및 방식 (0) | 2019.09.23 |
[설계보안] 입력데이터 검증 및 표현 10 - 업로드/다운로드 파일 검증 (0) | 2019.09.23 |
- Total
- Today
- Yesterday