티스토리 뷰
가. 원인
- 일정시간 내 여러번의 인증실패 시 계정잠금 또는 추가인증이 충분하지 않을 경우
나. 영향
- 무차별 대입 인증시도 등을 통해 로그인 및 권한획득
다. 보안대책
- 인증로직 구현 시 인증시도 횟수를 제한
- 인증실패 초과 시 계정잠금 또는 추가 인증과정을 수행
라. 안전한 코드
1. 인증시도 횟수제한
... String loginID = request.getParameter( "id" ); String loginPW = request.getParameter( "pass" ); ... // 인증 처리 전 현재 실패횟수를 체크 // 5회 이상 실패 시 계정잠금 int loginFailCnt = dbms.getLoginFailCnt( loginID ); if ( loginFailCnt >= 5 ) { showAlert( "Not Allow Login" ); break; }
boolean bLoginResult = dbms.requestLogin( loginID, loginPW ); if ( !bLoginResult ) { // 인증실패 시 실패횟수를 증가 loginFailCnt++; dbms.updateLoginFailCnt( loginFailCnt ); showAlert( "Fail Login" ); break; } else { // 인증성공 시 실패횟수를 0으로 초기화 dbms.updateLoginFailCnt( 0 ); ... } ...
|
마. 진단방법
<인증시도 제한 확인>
1. 인증을 위한 함수정보 확인
2. 해당 함수의 호출을 제한하는 코드를 확인
바. 정/오탐 케이스
<정탐 케이스>
1. 인증시도 제한없이 반복문안에서 계속 인증시도를 수행하고 있을 경우
'Web Analytics > SW 보안약점 진단원' 카테고리의 다른 글
[구현보안] 시간 및 상태 02 - 종료되지 않은 반복문 또는 재귀함수 (0) | 2019.10.06 |
---|---|
[구현보안] 시간 및 상태 01 - 경쟁조건: 검사시점과 사용시점(TOC-TOU) (0) | 2019.10.06 |
[구현보안] 보안기능 15 - 무결성 검사없는 코드 다운로드 (0) | 2019.10.06 |
[구현보안] 보안기능 14 - 솔트없이 일방향 해쉬 함수 사용 (0) | 2019.10.06 |
[구현보안] 보안기능 13 - 주석문 안에 포함된 시스템 주요정보 (0) | 2019.10.06 |
- Total
- Today
- Yesterday