작업 환경

  • VMware Workstation Pro (17.6.2 ver)
  • Server 
    • Web 서버 : Rocky_Linux(8.10 ver, VMnet 2, PHP로 구성)
    • DNS 서버 : Rocky_Linux(8.10 ver, VMnet 1)
  • Client
    • Kali Linux : Web 취약점 점검용 (VMnet 1)
  • GNS 구성

  • 해당 점검은 비밀번호 수정 페이지에 한해서 진행됨
BF (상) 12. 약한 문자열 강도
취약점 개요
점검 내용 웹페이지 내 로그인 폼 등에 약한 강도의 문자열 사용 여부 점검
점검 목적 유추 가능한 취약한 문자열 사용을 제한하여 계정 및 패스워드 추측 공격을 방지하기 위함
 보안 위협 해당 취약점 존재 시 유추가 용이한 계정 및 패스워드의 사용으로 인한 사용자 권한 탈취 위험이 존재하며,
해당 위험을 방지하기 위해 값의 적절성 및 복잡성을 검증하는 로직을 구현하여야 함
판단 기준

양호 : 관리자 계정 및 패스워드가 유추하기 어려운 값으로 설정되어 있으며,
일정 횟수 이상 인증 실패 시 로그인을 제한하고 있는 경우

취약 : 관리자 계정 및 패스워드가 유추하기 쉬운 값으로 설정되어 있으며,
일정 횟수 이상 인증 실패 시 로그인을 제한하고 있지 않은 경우
참고 OWASP TOP 10 항목 중 
A07 : Identification and Authentication Failures
에 해당한다고 판단

 

 

점검 방법

  • Step 1) 웹 사이트 로그인 페이지의 로그인 창에 추측 가능한 계정이나 패스워드를 입력하여 정상적으로 로그인되는지 확인
    • 취약한 계정 : admin, administrator, manager, guest, test, scott, tomcat, root, user, operator, anonymous 등
    • 취약한 패스워드 : Abcd, aaaa, 1234, 1111, test, password, public, blank 패스워드, ID와 동일한 패스워드 등

admin / 0000 입력

 

ID / PW 존재 여부를 알려주지 않음

 

  • Step 2) 일정 횟수(3~5회) 이상 인증 실패 시 로그인을 제한하는지 확인

→ 테스트 서버이므로 로그인 제한 기능 없음

 


보안 설정 방법

  • 취약한 계정 및 패스워드를 삭제하고, 사용자가 취약한 계정이나 패스워드를 등록하지 못하도록 패스워드 규정이 반영된 체크 로직을 회원가입, 정보변경, 패스워드 변경 등 적용 필요한 페이지에 모두 구현하여야 함
[ 규정 예시 ]
1. 다음 각 목의 문자 종류 중 2종류 이상을 조합하여 최소 10자리 이상 또는 3종류 이상을 조합하여 최소 8자리 이상의 길이로 구성
(1) 영문 대문자(26개)
(2) 영문 소문자(26개)
(3) 숫자(10개)
(4) 특수문자(32개)

2. 연속적인 숫자나 생일, 전화번호 등 추측하기 쉬운 개인정보 및 아이디와 비슷한 비밀번호는 사용하지 않는 것을 권고

3. 비밀번호에 유효기간을 설정하여 반기별 1회 이상 변경

4. 최근 사용되었던 패스워드 재사용 금지
  • 로그인 시 패스워드 입력 실패가 일정 횟수(3~5회) 이상 초과할 경우 관리자에게 통보 및 계정 잠금
    • 인증 실패 횟수를 Client Side Script(Javascript, VBScript 등)를 사용하면 사용자가 임의로 수정할 수 있으므로 Server Side Script(PHP, ASP, JSP 등)를 통하여 구현

참고

🔐 OWASP TOP 10(2021)과의 연관

1. A07:  Identification and Authentication Failures

  • 사용자의 인증, 권한 부여, 세션 관리 기능이 적절히 보호되지 않으면 공격자가 계정을 탈취하거나 권한을 초과하는 동작을 수행할 수 있다