[윈도우 서버 취약점 점검] 암호 정책 설정

■ 분류 :  계정 관리

■ 항목명 :  암호 정책 설정

■ 항목 설명 : 

패스워드 추측 및 설정 값에 의한 암호 탈취를 방지 하기 위해 최소한의 설정 정보를 확인
■ 서비스 영향
일반적인 경우 영향 없음


■ 설정방법
1. 암호정책 설정 방법
시작 > 제어판 > 시스템 및 보안 > 관리 도구 > 로컬 보안 정책 > 계정 정책 > 암호 정책
 

2. 계정별 암호 만료날짜 설정
시작 > 제어판 > 시스템 및 보안 > 관리도구 > 컴퓨터 관리 > 로컬 사용자 및 그룹 > 사용자 에서 각 계정별 속성창에서 암호사용기간 제한없음 체크 해지
 

3. 패스워드 설정 기준
1) 패스워드는 아래의 4가지 문자 종류 중 2종류 이상을 조합하여 최소 10자리 이상 또는 3종류 이상을 조합하여 최소 8자리 이상의 길이로 구성
(1) 영문 대문자 (26), 영문 소문자 (26), 숫자 (10), 특수문자 (32)
 
2) 패스워드는 비인가자에 의한 추측이 어렵도록 다음의 사항을 반영하여 설계
(1) Null 패스워드 사용 금지
(2) 문자 또는 숫자만으로 구성 금지
(3) 사용자 ID와 동일하거나 유사하지 않은 패스워드 금지
(4) 연속적인 문자/숫자(. 1111, 1234, abcd) 사용 금지
(5) 주기성 패스워드 재사용 금지
(6) 전화번호, 생일같이 추측하기 쉬운 개인정보 패스워드로 사용 금지
 
3) SAM 파일에 암호를 저장하기 위해 사용되는 LANMan 알고리즘은 8자 단위로 글자를 나누어 암호화하기 때문에 8의 배수가 되는 암호사용을 권장 (8자의 암호사용 권장)
 
4) 아래와 같은 암호는 설정은 금지
Null, 계정과 동일하거나 유사한 스트링, 지역명, 부서명, 담당자성명, 대표업무명
root, rootroot, root123, 123root, admin, admin123,
123admin,osadmin,adminos

■ 진단기준
양호 - 진단 방법의 기준을 모두 만족할 때
취약 - 진단 방법의 기준 중 하나라도 만족하지 않을 때
※ 암호정책 설정 유무 확인
    암호는 복잡성을 만족해야 함 > “사용”
    최근 암호 기억 > “12”
    최대 암호 사용 기간 > “1일(이상), 60일(이하)”
    최소 암호 길이 > “8문자(이상)”
    최소 암호 사용 시간 > “7일(이상)"
    해독 가능한 암호화를 사용하여 암호 저장 > “사용 안 함”
※ 패스워드 설정 유무 확인
- 문자/숫자/특수문자의 2종류 조합으로 10자리 이상, 3종류 조합으로 8자리 이상

■ 진단방법 (배치파일)

@ECHO OFF
ECHO ■ 전체 기준
ECHO 양호 : 진단 방법의 기준을 모두 만족 시킬 때
ECHO 취약 : 진단 방법의 기준을 하나라도 만족 시키지 않을 때
ECHO.
ECHO.===========================================================================
ECHO.
ECHO ■ 1.1 암호 복잡성 기준
ECHO 양호 : "암호는 복잡성을 만족해야 함" 정책이 "사용" 으로 되어 있는 경우
ECHO 취약 : "암호는 복잡성을 만족해야 함" 정책이 "사용 안 함" 으로 되어 있는 경우
ECHO.
ECHO ■ 1.1 암호 복잡도 현황
Secedit /EXPORT /CFG Local_Security_Policy.txt
TYPE Local_Security_Policy.txt | find /i "PasswordComplexity"
ECHO.
ECHO ■ 1.1 암호 복잡도 결과
TYPE Local_Security_Policy.txt | find /i "PasswordComplexity" | find "1" > NUL
IF ERRORLEVEL 1 ECHO 취약
IF NOT ERRORLEVEL 1 ECHO 양호
ECHO.
ECHO.===========================================================================
ECHO.
ECHO ■ 1.2 최근 암호 기억 기준
ECHO 양호 : "최근 암호 기억"이 12개 이상으로 설정되어 있는 경우
ECHO 취약 : "최근 암호 기억"이 12개 미만으로 설정되어 있는 경우
ECHO.
ECHO ■ 1.2 최근 암호 기억 현황
TYPE Local_Security_Policy.txt | find /i "PasswordHistorySize"
ECHO.
ECHO ■ 1.2 최근 암호 기억 결과
TYPE Local_Security_Policy.txt | find "PasswordHistorySize =" > pass_wd.txt
FOR /f "tokens=1-3" %%a IN (pass_wd.txt) DO SET passwd_hsize=%%c
IF %passwd_hsize% GEQ 12 ECHO 양호
IF NOT %passwd_hsize% GEQ 12 ECHO 취약
ECHO.
ECHO.===========================================================================
ECHO.
ECHO ■ 1.3 최대 암호 사용 기간 기준
ECHO 양호 : "최대 암호 사용 기간"이 “60일” 이하로 설정되어 있는 경우
ECHO 취약 : "최대 암호 사용 기간”이 설정되지 않았거나 “60일”을 초과하는 값으로 설정된 경우
ECHO.
ECHO ■ 1.3 최대 암호 사용 기간 현황
TYPE Local_Security_Policy.txt | find /i "MaximumPasswordAge" | find /v "\"
ECHO.
ECHO ■ 1.3 최대 암호 사용 기간 결과
TYPE Local_Security_Policy.txt | find "MaximumPasswordAge =" > pass_wd1.txt
FOR /f "tokens=1-3" %%a IN (pass_wd1.txt) DO SET passwd_maxage=%%c
IF %passwd_maxage% LEQ 60 ECHO 양호
IF NOT %passwd_maxage% LEQ 60 ECHO 취약
ECHO.
ECHO.===========================================================================
ECHO.
ECHO ■ 1.4 최소 암호길이 설정 기준
ECHO 양호 : "최소 암호 길이"가 "8문자" 이상으로 설정되어 있는 경우
ECHO 취약 : "최소 암호 길이"가 설정되지 않았거나 "8문자" 미만으로 설정되어 있는 경우
ECHO.
ECHO ■ 1.4 최소 암호길이 설정 현황
TYPE Local_Security_Policy.txt | find /i "MinimumPasswordLength"
ECHO.
ECHO ■ 1.4 최소 암호길이 설정 결과
TYPE Local_Security_Policy.txt | find "MinimumPasswordLength =" > pass_wd2.txt
FOR /f "tokens=1-3" %%a IN (pass_wd2.txt) DO SET passwd_length=%%c
IF %passwd_length% GEQ 8 ECHO 양호
IF NOT %passwd_length% GEQ 8 ECHO 취약
ECHO.
ECHO.===========================================================================
ECHO.
ECHO ■ 1.5 최소 암호 사용 기간 기준
ECHO 양호 : "최소 암호 사용 기간"이 0보다 큰 값으로 설정되어 있는 경우
ECHO 취약 : "최소 암호 사용 기간"이 0으로 설정되어 있는 경우
ECHO.
ECHO ■ 1.5 최소 암호 사용 기간 현황
TYPE Local_Security_Policy.txt | find /i "MinimumPasswordAge"
ECHO.
ECHO ■ 1.5 최소 암호 사용 기간 결과
TYPE Local_Security_Policy.txt | find "MinimumPasswordAge =" > pass_wd3.txt
FOR /f "tokens=1-3" %%a IN (pass_wd3.txt) DO SET passwd_minage=%%c
IF %passwd_minage% GEQ 7 ECHO 양호
IF NOT %passwd_minage% GEQ 7 ECHO 취약
ECHO.
ECHO.===========================================================================
ECHO.
ECHO ■ 1.6 해독 가능한 암호화를 사용하여 암호 저장 기준
ECHO 양호 : "해독 가능한 암호화를 사용하여 암호 저장" 정책이 "사용 안 함" 으로 되어 있는 경우
ECHO 취약 : "해독 가능한 암호화를 사용하여 암호 저장" 정책이 "사용" 으로 되어 있는 경우
ECHO.
ECHO ■ 1.6 해독 가능한 암호화를 사용하여 암호 저장 현황
TYPE Local_Security_Policy.txt | find /i "ClearTextPassword"
ECHO.
ECHO ■ 1.6 해독 가능한 암호화를 사용하여 암호 저장 결과
TYPE Local_Security_Policy.txt | find /i "ClearTextPassword = 0" > NUL
IF ERRORLEVEL 0 ECHO 양호
IF NOT ERRORLEVEL 0 ECHO 취약
ECHO.
ECHO.===========================================================================
DEL Local_Security_Policy.txt
DEL pass_wd.txt
DEL pass_wd1.txt
DEL pass_wd2.txt
DEL pass_wd3.txt

pause






댓글(2)

Designed by JB FACTORY