분류: 보안기능 / 반복된 인증시도 제한 기능 부재
가. 항목명
인증 수행 제한
나. 취약점 설명
로그인 시도에 대한 횟수를 검사하지 않아 비밀번호 무차별 대입 공격이 시도되어 계정정보가 노출되는 취약점
다. 보안대책
① 로그인 구현 시 인증시도 횟수를 제한하고 인증제한 정책 적용
② 실패한 인증시도에 대한 정보를 로깅하여 추적
라. 설계시 고려사항
① 로그인 구현 시 인증 횟수를 제한하고 인증제한 정책 적용
- 로그인 시도 횟수를 3~5번 이내로 제한
- 추가입력 값 요구 또는 계정 잠금 수행
- 계정정보 입력 시 자동입력방지 문자와 같은 장치 마련
사용자ID별, 세션ID별 로그인 횟수를 추적하기 위해 DB테이블에 로그인 실패 횟수, 계정 장금 여부, 마지막 성공/실패 시간, 로그아웃 시간 등을 저장하고 로그인 연속 실패 시 사용자ID/비밀번호 외의 추가적인 정보를 확인하도록 설계한다.
활용가능한 프레임워크 또는 라이브러리
1. reCAPCHA
2. BotDetect CAPTCHA
마. 진단기준 및 세부사항
① 로그인 구현 시, 인증 시도 횟수 제한되도록 설계
- 로그인 시도 횟수(5회 이내) 제한 정책
- 인증 실패 횟수 정보 관리르 위한 저장장치(DB 또는 파일)에 인증정보 저장
- 인증 실패 제한 횟수 초과 시 계정잠금, 추가정보 요구
② 로그인 실패 시 로깅
- 사용자ID, 로그인 실패 횟수, 로그인 시도 시간, IP주소, 계정상태정보 등 로깅정보 기록
바. 안전한 보안설계의 예
No | 요구사항명 | 해결방안 | 검수기준 | 비고 |
1 | DB사용자 계정에 최소권한 부여 | 애플리케이션에서 사용하는 DB 사용자 계정은 애플리케이션에서 사용하는 테이블, 뷰, 프로시저에 대해서만 사용권한을 부여한다 | 애플리케이션에서 사용하는 DB사용자 계정은 테이블, 뷰, 프로시저에 대한 권한만 적용된다. | 지속적인 DB사용자 계정 관리가 필요 |
'보안 > SW보안약점 진단원' 카테고리의 다른 글
[설계보안] 보안기능-중요자원 접근통제 (0) | 2022.06.25 |
---|---|
[설계보안] 보안기능-비밀번호 관리 (0) | 2022.06.24 |
[설계보안] 보안기능-인증 대상 및 방식 (0) | 2022.06.24 |
[설계보안] 보안기능-업로드/다운로드 파일검증 (0) | 2022.06.24 |
[설계보안] 보안기능-입력값 검증 (0) | 2022.06.24 |