[윈도우/서비스 관리] IIS 데이터 파일 ACL 적용 (W-20)

IIS 데이터 파일 ACL 적용

 

취약점 개요

■ 위험도
- 상

■ 점검 목적
- 웹 데이터 파일에 ACL을 부여함으로써 권한 없는 사용자로부터의 실행 및 읽기를 방지하고자 함

■ 보안 위협
- 웹 데이터 파일에 ACL을 부여되지 않은 경우 권한 없는 사용자로부터의 읽기 및 실행이 가능

점검 및 조치 방법

■ 판단 기준
- 양호 : 홈 디렉토리 내에 있는 하위 파일들에 대해 Everyone 권한이 존재하지 않는 경우
- 취약 : 홈 디렉토리 내에 있는 하위 파일들에 대해 Everyone 권한이 존재하는 경우

■ 조치 방법
- IIS 서비스를 사용하지 않는 경우 IIS 서비스 중지, 사용할 경우 홈디렉토리에 Administrators, System 권한만 설정 후, 하위 디렉토리에 존재하는 모든 Everyone 권한을 제거

● Windows 2000(IIS 5.0), 2003(IIS 6.0)
Step 1) 시작 > 실행 > INETMGR > 웹사이트 > 해당 웹사이트 > 속성 > 홈 디렉토리 경로 확인
Step 2) 탐색기를 이용하여 홈 디렉토리의 등록정보 > 보안 탭에서 Everyone 권한 확인
Step 3) 아래와 같은 파일들에 대한 불필요한 Everyone 권한 제거


● Windows 2008(IIS 7.0), 2012(IIS 8.0)
Step 1) 시작 > 실행 > INETMGR > 사이트 > 해당 웹사이트 > 기본 설정 > 홈 디렉토리 경로 확인
Step 2) 탐색기를 이용하여 홈 디렉토리의 등록정보 > 보안 탭에서 Everyone 권한 확인
Step 3) 아래와 같은 파일들에 대한 불필요한 Everyone 권한 제거

[웹사이트 실제 경로 확인]

 

[웹사이트 홈디렉토리 내 Everyone 권한 확인]


■ 스크립트

echo. W-32 START
echo.                                                                                           >>	[RESULT]_%COMPUTERNAME%_WINSVR.txt
echo [ W-32 "IIS 데이터 파일 ACL 적용" ]                                                      		>>	[RESULT]_%COMPUTERNAME%_WINSVR.txt
echo.                                                                                           >>	[RESULT]_%COMPUTERNAME%_WINSVR.txt
echo.                                                                                           >>	[RESULT]_%COMPUTERNAME%_WINSVR.txt
echo ■ 수동점검 ■                                                              					>>	[RESULT]_%COMPUTERNAME%_WINSVR.txt
type [RESULT]_applicationHost.config | find "physicalPath"										>>	[RESULT]_%COMPUTERNAME%_WINSVR.txt
type [RESULT]_applicationHost.config | find "physicalPath"										>   path.txt
echo.																							>>	[RESULT]_%COMPUTERNAME%_WINSVR.txt
echo ■ everyone권한이 허용되지 않는 파일 확장자(.exe, .dll, .cmd, .pl, .asp, .inc, .shtm, .shtml)  ■		>>	[RESULT]_%COMPUTERNAME%_WINSVR.txt
echo. 																							>>	[RESULT]_%COMPUTERNAME%_WINSVR.txt
For /F "tokens=4 delims= " %%j IN (path.txt) DO cacls %%j\*.exe /T | find /I "Everyone" 		>> acl-F.txt
For /F "tokens=4 delims= " %%j IN (path.txt) DO cacls %%j\*.dll /T | find /I "Everyone" 		>> acl-F.txt
For /F "tokens=4 delims= " %%j IN (path.txt) DO cacls %%j\*.cmd /T | find /I "Everyone" 		>> acl-F.txt
For /F "tokens=4 delims= " %%j IN (path.txt) DO cacls %%j\*.pl /T | find /I "Everyone" 			>> acl-F.txt
For /F "tokens=4 delims= " %%j IN (path.txt) DO cacls %%j\*.asp /T | find /I "Everyone" 		>> acl-F.txt
For /F "tokens=4 delims= " %%j IN (path.txt) DO cacls %%j\*.inc /T | find /I "Everyone" 		>> acl-F.txt
For /F "tokens=4 delims= " %%j IN (path.txt) DO cacls %%j\*.shtm /T | find /I "Everyone" 		>> acl-F.txt
For /F "tokens=4 delims= " %%j IN (path.txt) DO cacls %%j\*.shtml /T | find /I "Everyone" 		>> acl-F.txt
TYPE acl-F.txt																					>>	[RESULT]_%COMPUTERNAME%_WINSVR.txt 
echo.																							>>	[RESULT]_%COMPUTERNAME%_WINSVR.txt
echo ■ everyone권한이 R만 허용되는 파일 확장자(.txt, .gif, .jpg, .html)  ■									>>	[RESULT]_%COMPUTERNAME%_WINSVR.txt
echo.																							>>	[RESULT]_%COMPUTERNAME%_WINSVR.txt
For /F "tokens=4 delims= " %%j IN (path.txt) DO cacls %%j\*.txt | find /I "Everyone" 			>> acl-R.txt
For /F "tokens=4 delims= " %%j IN (path.txt) DO cacls %%j\*.gif | find /I "Everyone" 			>> acl-R.txt
For /F "tokens=4 delims= " %%j IN (path.txt) DO cacls %%j\*.jpg | find /I "Everyone" 			>> acl-R.txt
For /F "tokens=4 delims= " %%j IN (path.txt) DO cacls %%j\*.html | find /I "Everyone" 			>> acl-R.txt
TYPE acl-R.txt																					>>	[RESULT]_%COMPUTERNAME%_WINSVR.txt 
echo.																							>>	[RESULT]_%COMPUTERNAME%_WINSVR.txt
TYPE acl-R.txt | find /v "Everyone:R"															>> acl-F.txt
echo.																							>>	[RESULT]_%COMPUTERNAME%_WINSVR.txt
type acl-F.txt | find /I "Everyone" 			> nul
IF ERRORLEVEL 1 ECHO Result : Good																>>	[RESULT]_%COMPUTERNAME%_WINSVR.txt
IF NOT ERRORLEVEL 1 ECHO Result : Vulnerable													>>	[RESULT]_%COMPUTERNAME%_WINSVR.txt
del path.txt
del acl-F.txt
del acl-R.txt
echo.                                                                                           >>	[RESULT]_%COMPUTERNAME%_WINSVR.txt
echo.                                                                                           >>	[RESULT]_%COMPUTERNAME%_WINSVR.txt
echo.                                                                                           >>	[RESULT]_%COMPUTERNAME%_WINSVR.txt
echo W-32 END                                                                                   >>	[RESULT]_%COMPUTERNAME%_WINSVR.txt
echo ======================================================================================     >>	[RESULT]_%COMPUTERNAME%_WINSVR.txt
echo.                                                                                           >>	[RESULT]_%COMPUTERNAME%_WINSVR.txt
echo.                                                                                           >>	[RESULT]_%COMPUTERNAME%_WINSVR.txt



■ 용어 설명 / 팁
- 향후 필요에 의해 IIS를 설치하여 운용한다면 웹 데이터 파일에 대한 ACL을 부여하는 것이 바람직하며 ACL을 설정할 때에는 다음과 같은 사항을 참고하여 설정하여야 합니다
1. 가능한 파일의 종류끼리 분류하여 폴더에 저장
2. 홈 디렉토리 내에 적절한 ACL 권한 부여 (홈 디렉토리 : c:\inetpub\wwwroot)
※ ACL(Access Control List) : 접근이 허가된 주체들과 허가받은 접근 종류들이 기록된 목록

댓글

Designed by JB FACTORY