반응형
https://www.kisa.or.kr/public/laws/laws3.jsp
구현 단계 시큐어코딩 가이드 - 보안 기능 - 반복된 인증 시도 제한 기능 부재
가. 개요
- 일정 시간 내에 여러 번의 인증을 시도하여도 계정잠금 또는 추가 인증 방법 등의 충분한 조치가 수행되지 않는 경우, 공격자는 성공할법한 ID와 비밀번호들을 사전(Dictionary)으로 만들고 무차별 대입 (brute-force)하여 로그인 성공 및 권한 획득이 가능하다.
나. 보안대책
- 인증시도 횟수를 적절한 횟수로 제한하고 설정된 인증 실패 횟수를 초과했을 경우 계정을 잠금 하거나 추가적인 인증과정을 거쳐서 시스템에 접근이 가능하도록 한다.
다. 코드예제
JAVA
더보기
다음 예제는 로그인 정보를 잘못 입력하였을 경우 다시 입력을 시도하는 데 있어 제한이 없다. 따라서 공격자는 여러 가지 비밀번호로 인증을 재시도하여 올바른 비밀번호를 알아내고 로그인에 성공할 수 있다.
다음 예제는 사용자 인증 시도 횟수를 기록하는 MAX_ATTEMPTS 변수를 정의하고, 이를 인증시도 횟수를 제한하는 카운터로 사용함으로써 무차별 공격에 대응하는 코드이다
C#
더보기
다음 예제는 로그인 정보를 잘못 입력하였을 경우 다시 입력을 시도하는 데 있어 제한이 없다. 따라서 공격자는 여러 가지 비밀번호로 인증을 재시도하여 올바른 비밀번호를 알아내고 로그인에 성공할 수 있다.
로그인 시도에 대한 횟수를 제한한다.
C
참고자료
- CWE-307, Improper Restriction of Excessive Authentication Attempts, MITRE,
http://cwe.mitre.org/data/definitions/307.html - Blocking Brute Force Attacks, OWASP,
https://www.owasp.org/index.php/Blocking_Brute_Force_Attacks
반응형
'공부 > KISA' 카테고리의 다른 글
종료되지 않는 반복문 또는 재귀함수 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.22 |
---|---|
경쟁조건: 검사시점과 사용시점(TOCTOU) - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.22 |
무결성 검사 없는 코드 다운로드 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.21 |
솔트 없이 일방향 해쉬함수 사용 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.21 |
주석문 안에 포함된 시스템 주요정보 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.21 |
댓글