정보보안-이론/KISA주요정보통신기반시설 취약점가이드

[KISA 주요정보통신기반시설] W-04 계정 잠금 임계값 설정

일반사항

  • 점검내용 : 계정 잠금 임계값의 설정 여부 점검
  • 점검목적 : 계정 잠금 임계값을 설정하여 공격자의 자유로운 자동화 암호 유추 공격을 차단하기 위함
  • 보안위협 : 공격자는 시스템의 계정 잠금 임계값이 설정되지 않은 경우 자동화된 방법 을 이용하여 모든 사용자 계정에 대해 암호조합 공격을 자유롭게 시도할 수 있으므로 사용자 계정 정보의 노출 위험이 있음
  • 참고
    • 계정 잠금 임계값 설정은 사용자 계정이 잠기는 로그온 실패 횟수를 결정하며 잠긴 계정 은 관리자가 재설정하거나 해당 계정의 잠금 유지 시간이 만료되어야 사용할 수 있음
    • 계정 잠금 정책: 해당 계정이 시스템으로부터 잠기는 환경과 시간을 결정하는 정책으 로 ‘계정 잠금 기간’, ‘계정 잠금 임계값’, ‘다음 시간 후 계정 잠금 수를 원래대로 설정’ 의 세가지 하위 정책을 가짐
    • 관련 점검 항목 : W-47(중)

 

  • 점검대상 및 판단기준 
    • 대상 : Window NT, 2000, 2003, 2008, 2012, 2016, 2019
    • 판단기준
      • 양호 : 계정 잠금 임계값이 5 이하의 값으로 설정되어 있는 경우
      • 취약 : 계정 잠금 임계값이 6 이상의 값으로 설정되어 있는 경우

 

  • 점검 및 조치
    • Window NT, 2000, 2003, 2008, 2012, 2016, 2019 
      • 시작 > 프로그램 > 제어판 > 관리도구 > 도메인 사용자 관리자 > 정책 > 계정 정책
      • "계정 : Administrator 계정 이름 바꾸기"를 유추하기 어려운 계정 이름으로 변경

스크립트

@echo off
chcp 437 >nul 2>&1

:W_04

set YEAR=%date:~0,4%
set MONTH=%date:~5,2%
set DAY=%date:~8,2%

set OUTPUT_DIRECTORY=C:\INSPECT\%YEAR%_%MONTH%_%DAY%_INSPECTION\
set OUTPUT_FILE=%OUTPUT_DIRECTORY%INSPECTION_OUTPUT.txt
set DETAIL_FILE=%OUTPUT_DIRECTORY%W_04.txt

:: FILE EXISTENCE CHECK
if NOT EXIST %OUTPUT_DIRECTORY% (mkdir %OUTPUT_DIRECTORY%)
echo. >> %DETAIL_FILE%
echo :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 			> %DETAIL_FILE%
echo :: 							>> %DETAIL_FILE%
echo ::  [W-04] Lockout Threshold Check 			>> %DETAIL_FILE%
echo :: 							>> %DETAIL_FILE%
echo ::  Check Lockout Threshold Policy count			>> %DETAIL_FILE%
echo ::							>> %DETAIL_FILE%
echo ::  PASS : Lockout Threshold is less than 6			>> %DETAIL_FILE%
echo ::           and Lockout count is configured(not 0)		>> %DETAIL_FILE%
echo ::							>> %DETAIL_FILE%
echo ::  MADE By REDUCTO https://tutoreducto.tistory.com/	>> %DETAIL_FILE%
echo ::							>> %DETAIL_FILE%
echo ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::			>> %DETAIL_FILE%
echo. 							>> %DETAIL_FILE%

secedit /export /cfg %OUTPUT_DIRECTORY%secedit.txt >nul 2>&1

type %OUTPUT_DIRECTORY%secedit.txt | findstr /bic:"LockoutBadCount" > %OUTPUT_DIRECTORY%tmp_w_04.txt
for /f "tokens=1,2 delims==" %%a in (%OUTPUT_DIRECTORY%tmp_w_04.txt) do set conf=%%b

if %conf% EQU 0 (
  set result=W-04 = FAIL
  echo Lock Policy not configured	>> %DETAIL_FILE%
) else if %conf% GEQ 6 (
  set result=W-04 = FAIL
  echo Lock After "%conf%" count Bad Password is entered	>> %DETAIL_FILE%
) else (
  set result=W-04 = PASS
  echo Lock After "%conf%" count Bad Password is entered	>> %DETAIL_FILE%
)

echo %result%
echo %result% >> %OUTPUT_FILE%

if EXIST %OUTPUT_DIRECTORY%tmp_w_04.txt (del %OUTPUT_DIRECTORY%tmp_w_04.txt)
if EXIST %OUTPUT_DIRECTORY%secedit.txt (del %OUTPUT_DIRECTORY%secedit.txt)

:FINISH
pause >nul 2>&1

 

W_04.zip
0.00MB

 

 

파일의 검사결과는 C:\INPSECT아래 오늘날짜로 이루어진 폴더에 들어가 있다. secedit은 관리자 권한을 필요로 하니, "반드시" 관리자 권한으로 실행시켜주기를 바란다. 

  • INSPECT_OUTPUT.txt : W-04 항목의 PASS/FAIL여부가 들어있다. 다른 취약점 스크립트의 결과도 이곳에 기록된다.
  • W_04.txt : 점검 결과인 

첨언

Lockout policy의 가장 큰 이유는 역시 BF(Brute Force)공격의 대응책이라고 생각한다. 재래적인 방법이지만 어쩌면 가장 효과적이고 다른 공격의 전신이되는 BF의 가장 효과적인 기술적통제방안은 여러번의 접근 후에 계정의 접근을 차단하는 방법이다. 솔직하게 정상적인 사용자라면 5번이나 자신의 비밀번호를 틀리기는 어려울 뿐더러, 그만큼 틀려서 Lock상태의 계정이 생성되더라도 정당한 사용자라면 자신을 인증함으로써 IT부서를 통해 계정을 Unlock할 수 있기 떄문이다.

 

[KISA 주요정보통신기반시설] 취약점 가이드 목록

KISA에서 배포하는 기술적 취약점 분석 평가 방법상세가이드라는 가이드가 있다. OS별로, 서버/클라이언트별로 세부항목으로 관리해야하는 기본적인 정보보안 기법이 기재되어있는데, 최근에 사

tutoreducto.tistory.com