🚫 반복된 인증시도 제한 기능 부재

CWE-307: Improper Restriction of Excessive Authentication Attempts

  • ⬜ 진단 시작
  • ⬜ 실패 횟수 증가
  • ⬜ 임계치 초과 차단
✏️ Java 코드 에디터 취약한 코드
public boolean login(String user, String password) {
    if (checkCredentials(user, password)) {
        return true;
    } else {
        // [취약점] 로그인 실패 시 단순히 false만 반환
        // 무차별 대입 공격(Brute Force)에 취약함
        return false;
    }
}
💡 Java 수정 가이드
1. 실패 횟수 증가

로그인 실패 시 해당 계정의 실패 횟수를 증가시켜야 합니다.

increaseFailCount(user);
2. 임계치 초과 확인

실패 횟수가 일정 기준(예: 5회)을 넘었는지 확인합니다.

if (getFailCount(user) > 5) { return false; }
💡 가이드

로그인 실패 시 실패 횟수를 DB나 메모리에 저장하고, 일정 횟수(예: 5회)를 초과하면 계정을 잠그거나 지연 시간을 두어야 합니다.

  • ⬜ 진단 시작
  • ⬜ 실패 횟수 체크
  • ⬜ 계정 잠금 처리
🐍 Python 코드 에디터 취약한 코드
def login(user, password):
    if check_password(user, password):
        return "Success"
    else:
        # [취약점] 실패 횟수를 제한하지 않음
        return "Fail"
💡 Python 수정 가이드
1. 실패 횟수 카운트

로그인 실패 시 카운트를 증가시킵니다.

fail_count += 1
2. 잠금 조건 추가

실패 횟수가 기준치를 초과하면 로그인을 차단합니다.

if fail_count > 5: return "Locked"
💡 가이드

로그인 실패 시 `fail_count`를 증가시키고, `if fail_count > 5:`와 같은 조건문으로 로그인을 차단하는 로직을 추가하세요.