보안개구리

[게시판 실습] - 약한 문자열 강도 (1) 회원가입 시 패스워드 복잡도 미흡 본문

웹 진단/게시판 실습

[게시판 실습] - 약한 문자열 강도 (1) 회원가입 시 패스워드 복잡도 미흡

보안개구리 2024. 5. 29. 22:02

[설 명]

 약한 문자열 강도 취약점은 웹 사이트에서 취약한 패스워드로 회원가입이 가능할 경우 공격자는 추측 및 주변 정보를 수집하여 작성한 사전 파일로 대입을 시도하여 사용자 계정을 탈취할 수 있는 취약점으로 해당 취약점 존재 시 유추가 용이한 계정 및 패스워드의 사용으로 인한 사용자 권한 탈취 위험이 존재하며, 위험을 방지하기 위해 값의 적절성 및 복잡성을 검증하는 로직을 구현하여야 한다.

 

[점검 내용]

 웹 페이지 내 로그인 폼 등에 약한 강도의 문자열 사용 여부

 

[점검 기준]

 관리자 계정 및 패스워드가 유추하기 쉬운 값으로 설정되어 있으며, 일정 횟수 이상 인증 실패 시 로그인을 제한하고 있지 않은 경우 취약

 

[대응 방법]

 * 취약한 계정 및 패스워드를 삭제하고, 사용자가 취약한 계정이나 패스워드를 등록하지 못하도록 패스워드 규정이 반영된 체크 로직을 회원가입, 정보변경, 패스워드 변경 등 적용 필요한 페이지에 모두 구현

 * 로그인 시 패스워드 입력 실패가 일정 횟수(3~5회) 이상 초과 시 관리자에게 통보 및 계정 잠금

 

[진단 과정]

1) 회원가입 시 단순한 패스워드(123)를 입력하여 가입을 시도합니다.

회원가입 시도

 

2)  단순한 패스워드로 회원가입이 가능함을 확인하였습니다.

회원가입 성공

 

3) 소스코드 확인 시 별도의 패스워드 복잡도 검증이 없는 것을 확인하였습니다.다음과 아래 3가지의 패스워드 조건을 추가하겠습니다.

  ㄱ) 최소 길이는 8자리 이상

  ㄴ) 아이디와 비슷한 패스워드는 사용 불가

  ㄷ) 숫자, 특수문자가 각각 1개 이상씩 포함

소스코드 확인

 

4) 4번에선 언급한 3가지 패스워드 규칙을 추가하였습니다.

소스코드 수정

 

5) 소스코드 수정 후 회원가입 페이지 접속 시 패스워드 조건 메시지가 화면상에 출력됨을 확인할 수 있습니다.

패스워드 규칙 확인

 

6) ID : userA /  PW : 123으로 가입을 시도합니다. 가입 시도 시 패스워드 규칙에 맞지 않는다는 메시지가 출력되며 회원가입이 진행되지 않음을 확인하였습니다.

회원가입 실패

 

7) ID : userA /  PW : votmdnjem1!으로 가입 시 정상적으로 회원가입 및 로그인이 가능함을 확인하였습니다.

회원가입 성공