분류: 보안기능 / 하드코드된 중요정보, 취약한 비밀번호 이용
가. 항목명
비밀번호 관리
나. 취약점 설명
취약한 비밀번호 사용: 회원가입 시 안전한 비밀번호 생성규칙이 적용되지 않아 무차별 대입 공격으로 비밀번호가 누출되는 취약점
취약한 비밀번호 복구: 비밀번호 복구 메커니즘(아이디/비밀번호 찾기 등)이 취약하여 불법적으로 비밀번호 획득, 변경, 복구하는 취약점
하드코딩된 중요정보: 프로그램 코드 내부에 비밀번호를 하드 코딩하여 내부 인증에 사용하거나 외부 컴포넌트와 통신하는 경우 관리자 계정정보가 노출될 수 있는 취약점
다. 보안대책
① KISA "비밀번호 선택 및 이용 안내서"의 비밀번호 보안 지침 적용
② 네트워크로 비밀번호 전송하는 경우 반드시 비밀번호 암호화하거나 암호화된 통신 채널 이용
③ 비밀번호 저장 시, 솔트 적용한 안전한 해쉬 함수 사용
④ 비밀번호 재설정/변경 시 안전하게 변경할 수 있는 규칙 정의
라. 설계시 고려사항
① KISA "비밀번호 선택 및 이용 안내서"의 비밀번호 보안 지침 적용
- 두 종류 이상의 문자 구성과 8자리 이상의 길이로 구성된 문자열
- 10자리 이상의 길이로 구성된 문자열
- 문자 종류는 알파벳 대/소문자, 특수문자, 숫자
② 네트워크로 비밀번호 전송하는 경우 반드시 비밀번호 암호화하거나 암호화된 통신 채널 이용
- TLS, VPN 등 과 같은 다양한 통신 암호화 기술을 적용
③ 비밀번호 저장 시, 솔트 적용한 안전한 해쉬 함수 사용
- 솔트가 적용된 안전한 암화 해시함수 사용하며 해시는 서버에서 실행
★ 일방향 해시 함수
수학적인 연산으로 원본 메시지를 변환하여 암호화된 메시지 '다이제스트' 를 생성한다.
원본 메시지를 알면 암호화된 메시지를 구현하기 쉽지만 암호화된 메시지로는 원본 메시지를 구할 수 없어야 하며 이를 '일방향성' 이라고 한다.
솔트는 일방향 해시 함수에서 다이제스트를 생성할 때 추가되는 바이트 단위의 임의의 문자열이다.
솔트와 비밀번호의 다이제스트를 데이터베이스에 저장하고, 사용자가 로그인할 때 입력한 비밀번호를 해시하여 일치 여부를 확인한다.
솔트 길이는 32바이트 이상이어야 한다.
④ 비밀번호 재설정/변경 시 안전하게 변경할 수 있는 규칙 정의
- 비밀번호 변경
- 주기적으로 비밀번호 변경
- 변경 시 이전에 사용하지 않은 새로운 비밀번호로 변경
- 비밀번호 재설정
- '비밀번호 찾기' 기능 구현 시 i-pin 인증, 휴대폰 인증, 질의답변 검증 등 재설정 권한을 확인한 후 등록된 이메일로 재설정 링크 전송
- 비밀번호 관리(규칙 정의)
- 변경주기: 3개월(또는 6개월) 주기 변경
- 만료기간 설정
- 성공한 로그인시간 관리
마. 진단기준 및 세부사항
① KISA "비밀번호 선택 및 이용 안내서"의 비밀번호 보안 지침 적용
- 비밀번호 설정 규칙 정의 시 "문자구성 및 길이조건", "특정정보 이용 및 패턴 조건" 등 과 같은 안전한 비밀번호 설정 규칙 설계
② 네트워크로 비밀번호 전송하는 경우 반드시 비밀번호 암호화하거나 암호화된 통신 채널 이용
- 네트워크로 비밀번호가 전송되는 기능 분류
- 비밀번호를 암호화된 통신채널로 이용하여 전송하는지 확인
③ 비밀번호 저장 시, 솔트 적용한 안전한 해쉬 함수 사용
- 비밀번호 암호화하기 위해 SHA-2 계열(SHA-224, SHA-256, SHA-384, SHA-512)의 해시함수 사용
- 솔트값(랜덤하게 사용) 사용
- 솔트값은 데이터 암/복호화에 사용되는 암호키를 저장되는 장소에 저장
- 일방향 암호를 서버에서 수행
④ 비밀번호 재설정/변경 시 안전하게 변경할 수 있는 규칙 정의
- 비밀번호 변경 시 기존 비밀번호 확인
- 재설정 시 안전한 본인인증 절차 ( 휴대폰, I-Pin, 공인인증서, 신용카드인증 등)
- 비밀번호 재설정 페이지 연결 시 이메일 사용
바. 안전한 보안설계의 예
No | 요구사항명 | 해결방안 | 검수기준 | 비고 |
1 | DB사용자 계정에 최소권한 부여 | 애플리케이션에서 사용하는 DB 사용자 계정은 애플리케이션에서 사용하는 테이블, 뷰, 프로시저에 대해서만 사용권한을 부여한다 | 애플리케이션에서 사용하는 DB사용자 계정은 테이블, 뷰, 프로시저에 대한 권한만 적용된다. | 지속적인 DB사용자 계정 관리가 필요 |
'보안 > SW보안약점 진단원' 카테고리의 다른 글
[설계보안] 보안기능-암호키 관리 (0) | 2022.06.25 |
---|---|
[설계보안] 보안기능-중요자원 접근통제 (0) | 2022.06.25 |
[설계보안] 보안기능-인증 수행 제한 (0) | 2022.06.24 |
[설계보안] 보안기능-인증 대상 및 방식 (0) | 2022.06.24 |
[설계보안] 보안기능-업로드/다운로드 파일검증 (0) | 2022.06.24 |