윈도우(Windows) 화면 보호기는 사용자가 일정 시간 동안 작업을 수행하지 않으면 자동으로 화면이 잠기도록 하는 설정이다. 만약, 이 기능을 설정하지 않으면 사용자가 자리를 비운 사이에 임의의 사용자가 해당 시스템에 접근하여 중요 정보를 유출하거나 악의적인 행위를 수행하여 시스템에 악영향을 미칠 수 있다.


화면 보호기는 화면에 보여줄 스크린 세이버, 다시 시작할 때 로그온 화면 표시, 대기 시간 총 3가지 설정 값이 존재한다.


현재 시스템에 화면 보호기가 설정되어 있는지 확인하려면 시작 > 설정 > 개인 설정 > 잠금 화면 > 화면 보호기 설정 순서로 클릭하면 된다.

 

현재 화면 보호기의 설정 값을 살펴보면 스크린 세이버는 없음 이외의 값인 비눗방울, 다시 시작할 때 로그온 화면 표시 활성화, 대기 시간은 10분 이하의 값으로 설정되어 있다.


이렇게 설정되어 있으면 10분 동안 작업을 수행하지 않으면 자동으로 화면이 잠기게 되어 비눗방울 화면 보호기가 동작한다. 만약, 마우스, 키보드를 누르면 로그온 화면이 표시되어 화면 보호기 동작이 중지된다.



화면 보호기의 레지스트리 키는 HKEY_CURRENT_USER\Control Panel\Desktop이고, 3가지 설정에 대한 값은 ScreenSaveActive, ScreenSaverIsSecure, ScreenSaveTimeOut 이다.


화면 보호기가 없음으로 선택하면 SCRNSAVE.EXE 값이 삭제되고, 없음 이외의 값으로 선택하면 값이 생성된다. 현재 화면 보호기를 비눗방울로 선택했으므로 SCRNSAVE.EXE 값에 Bubbles.scr이 저장된다.


다시 시작할 때 로그온 화면 표시의 값은 ScreenSaverIsSecure이며, 활성화를 하면 1, 비활성화를 하면 0의 값이 저장된다.


대기 시간의 값은 ScreenSaveTimeOut이며, 단위는 초로 계산된다.



화면 보호기의 3가지 값이 정상적으로 설정되어 있는지 확인하려고 배치 스크립트로 구현했다.


ScreenSaveActive의 값이 1, ScreenSaverIsSecure의 값이 1, ScreenSaveTimeOut의 값이 600 이하이면 양호로 판단하고 3가지 값 중 하나라도 정상적으로 설정되어 있지 않으면 취약으로 판단한다.


현재 취약 로직만 구현했으므로 하단에 양호 로직을 구현하는 것은 쉽다. 예를 들면, 텍스트 파일에 취약 문자열이 하나라도 존재하지 않으면 최종적인 결과로 양호로 판단하면 된다.


배치 스크립트는 대부분 조건문을 사용하므로 ERRORLEVEL이 0 또는 1 존재 유무만 확인한다면 스크립트를 파악하기 쉬울 것으로 생각한다.


reg query "HKEY_CURRENT_USER\Control Panel\Desktop" | find /i "ScreenSaveActive" | find "1" > nul
if %ERRORLEVEL% NEQ 0 (
	echo 취약 >> RES.txt 2>&1
	echo 화면 보호기가 없음으로 선택되어 있음 >> RES.txt 2>&1
)

reg query "HKEY_CURRENT_USER\Control Panel\Desktop" | find /i "ScreenSaverIsSecure"  | find "1" > nul
if %ERRORLEVEL% NEQ 0 (
	echo 취약 >> RES.txt 2>&1
	echo 다시 시작할 때 로그온 화면 표시가 체크되어 있지 않음 >> RES.txt 2>&1
)

reg query "HKEY_CURRENT_USER\Control Panel\Desktop" | find /I "ScreenSaveTimeOut" > nul
if %ERRORLEVEL% NEQ 0 (
	echo 취약 >> RES.txt 2>&1
	echo 대기 시간이 설정되어 있지 않음 >> RES.txt 2>&1
) else (
	FOR /F "tokens=3" %%a IN ('reg query "HKEY_CURRENT_USER\Control Panel\Desktop" ^| find /I "ScreenSaveTimeOut"') DO (
		IF %%a GTR 600 (
			echo 취약 >> RES.txt 2>&1
			echo 대기 시간이 600초(10분) 이상으로 설정되어 있음 >> RES.txt 2>&1
		)
	)
)

▶ 윈도우 시작 레지스트리 (자동실행 조작)

▶ 윈도우 웹서버 IIS 보안

▶ 칼리리눅스 레지스트리

  • 카카오톡-공유
  • 네이버-블로그-공유
  • 네이버-밴드-공유
  • 페이스북-공유
  • 트위터-공유
  • 카카오스토리-공유