[웹 취약점 진단/모의해킹/해킹] 약한 문자열 강도

목차

     

     

    BF - 약한 문자열 강도

     

    ■ 점검내용

     

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

     

    ■ 점검목적

     

    유추 가능한 취약한 문자열 사용을 제한하여 계정 및 패스워드 추측 공격을 방지하기 위함

     

    ■ 보안위협

     

    해당 취약점 존재 시 유추가 용이한 계정 및 패스워드의 사용으로 인한 사용자 권한 탈취 위험이 존재하며, 해당 위험을 방지하기 위해 값의 적절성 및 복잡성을 검증하는 로직을 구현하여야 함

     

    ■ 참고

     

    ※ 약한 문자열 강도 취약점: 웹 사이트에서 취약한 패스워드로 회원가입이 가능할 경우 공격자는 추측 및 주변 정보를 수집하여 작성한 사전 파일로 대입을 시도하여 사용자 계정을 탈취할 수 있는 취약점
    ※ 소스코드 및 취약점 점검 필요

     

     

    점검대상 및 판단기준

     

    ■ 대상 : 웹 애플리케이션 소스코드

     

    양호

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

     

    취약

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

     

    ■ 조치방법

     

    계정 및 비밀번호의 체크 로직 추가 구현

     

     

    점검 및 조치 방법

     

    ■ 점검방법

     

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

     

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

     

    ■ 보안설정방법


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


    ※ 규정 예시

    Step 1) 다음 각 목의 문자 종류 중 2종류 이상을 조합하여 최소 10자리 이상 또는
    3종류 이상을 조합하여 최소 8자리 이상의 길이로 구성
    (1) 영문 대문자(26개)
    (2) 영문 소문자(26개)
    (3) 숫자(10개)
    (4) 특수문자(32개)

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

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

    Step 4) 최근 사용되었던 패스워드 재사용 금지

     

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

    ※ 인증 실패 횟수를 Client Side Script(Javascript, VBScript 등)를 사용하면 사용자가 임의로 수정할 수 있으므로 Server Side Script(PHP, ASP, JSP 등)를 통하여 구현

     

    조치 시 영향 : 일반적인 경우 영향 없음

     

    댓글

    Designed by JB FACTORY