보안/SW보안약점 진단원

[설계보안] 보안기능-인증 수행 제한

re-bugger 2022. 6. 24. 22:47

분류: 보안기능 / 반복된 인증시도 제한 기능 부재

가. 항목명

인증 수행 제한

나. 취약점 설명

로그인 시도에 대한 횟수를 검사하지 않아 비밀번호 무차별 대입 공격이 시도되어 계정정보가 노출되는 취약점

다. 보안대책

① 로그인 구현 시 인증시도 횟수를 제한하고 인증제한 정책 적용

② 실패한 인증시도에 대한 정보를 로깅하여 추적

라. 설계시 고려사항

① 로그인 구현 시 인증 횟수를 제한하고 인증제한 정책 적용

  • 로그인 시도 횟수를 3~5번 이내로 제한
  • 추가입력 값 요구 또는 계정 잠금 수행
  • 계정정보 입력 시 자동입력방지 문자와 같은 장치 마련
사용자ID별, 세션ID별 로그인 횟수를 추적하기 위해 DB테이블에 로그인 실패 횟수, 계정 장금 여부, 마지막 성공/실패 시간, 로그아웃 시간 등을 저장하고 로그인 연속 실패 시 사용자ID/비밀번호 외의 추가적인 정보를 확인하도록 설계한다.

활용가능한 프레임워크 또는 라이브러리
1. reCAPCHA
2. BotDetect CAPTCHA

마. 진단기준 및 세부사항

① 로그인 구현 시, 인증 시도 횟수 제한되도록 설계

  • 로그인 시도 횟수(5회 이내) 제한 정책
  • 인증 실패 횟수 정보 관리르 위한 저장장치(DB 또는 파일)에 인증정보 저장
  • 인증 실패 제한 횟수 초과 시 계정잠금, 추가정보 요구

② 로그인 실패 시 로깅

  • 사용자ID, 로그인 실패 횟수, 로그인 시도 시간, IP주소, 계정상태정보 등 로깅정보 기록

바. 안전한 보안설계의 예

No 요구사항명 해결방안 검수기준 비고
1 DB사용자 계정에 최소권한 부여 애플리케이션에서 사용하는 DB 사용자 계정은 애플리케이션에서 사용하는 테이블, 뷰, 프로시저에 대해서만 사용권한을 부여한다 애플리케이션에서 사용하는 DB사용자 계정은 테이블, 뷰, 프로시저에 대한 권한만 적용된다. 지속적인 DB사용자 계정 관리가 필요