
SRV-044 (Tomcat) 웹 서비스 파일 업로드 및 다운로드 용량 제한 미설정
【 상세설명 】
웹 서버에 불필요한 대량의 파일 업로드, 다운로드로 인한 서비스 거부 공격 위협이 존재하므로, 서버에 영향을 줄 정도의 대량의 업로드와 다운로드에 대한 통제 여부를 점검
【 판단기준 】
- 양호 : 파일 업로드 및 다운로드 용량 제한이 설정이 되어 있을 경우
- 취약 : 파일 업로드 및 다운로드 용량 제한이 설정이 안되어 있을 경우
【 판단방법 】
1. 웹 서비스 설정 파일에서 웹 서비스 파일 업로드 및 다운로드 용량 제한 설정 확인
※ Connector 설정 내 “maxSwallowSize”, “maxPostSize” 설정 확인("unlimited" 설정 시 "취약")
2. (웹 콘솔을 사용하는 경우) 웹 서비스 콘솔의 업로드 및 다운로드 파일 크기 설정 확인
※ manage 콘솔 설정 파일에서 “max-file-size“, “max-request-size” 설정 확인("unlimited" 설정 시 "취약")
■ Linux, AIX, HP-UX, SOLARIS
# cat $CATALINA_HOME/server.xml
# cat $CATALINA_HOME/conf/server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxParameterCount="1000"
/>
# cat $CATALINA_HOME/webapps/manager/WEB-INF/web.xml
<servlet>
<servlet-name>HTMLManager</servlet-name>
...
<multipart-config>
<!-- 50MB max -->
<max-file-size>52428800</max-file-size>
<max-request-size>52428800</max-request-size>
<file-size-threshold>0</file-size-threshold>
</multipart-config>
</servlet>
※ Tomcat 을 패키지 관리자(apt, yum, dnf 등)로 설치하는 경우 $CATALINA_HOME 경로는 "/etc/tomcat<version>", "/usr/local/tomcat<version>" 등
※ Tomcat 을 Source 파일이나 package 파일로 직접 설치하는 경우 임의 경로를 $CATALINA_HOME 으로 설치 가능
■ Windows
cmd > notepad %CATALINA_HOME%\server.xml
cmd > notepad %CATALINA_HOME%\config\server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxParameterCount="1000"
/>
cmd > notepad %CATALINA_HOME%\webapps\manager\WEB-INF\web.xml
<servlet>
<servlet-name>HTMLManager</servlet-name>
...
<multipart-config>
<!-- 50MB max -->
<max-file-size>52428800</max-file-size>
<max-request-size>52428800</max-request-size>
<file-size-threshold>0</file-size-threshold>
</multipart-config>
</servlet>
※ Tomcat 지시자 Value 처리는 7.0.63 이하 버전에서는 "0"을 "unlimited"으로 처리했으나 7.0.63 이상 버전부터 "0"은 "null", "-1"은 "unlimited"으로 처리
※ Connector 관련 지시자
- maxSwallowSize 지시자(Default : 2097152(2MB), Unlimited : -1) : request body 사이즈를 제한하는 설정으로 바이트 단위로 설정
- maxPostSize 지시자(Default : 2097152(2MB), Unlimited : -1) : POST 사이즈를 제한하는 설정으로 바이트 단위로 설정
- connectionTimeout 지시자(Default : 60000(60s), none : 20000(20s), Unlimited : -1) : 커넥터 연결 시간 타임아웃 설정으로 밀리초 단위로 설정
- disableUploadTimeout 지시자 : connectionTimeout 설정 활성화 설정(True : 미적용, False : 적용)
※ manager 콘솔 관련 지시자
- location 지시자 : manager 콘솔에서 업로드된 파일이 저장되는 디렉터리 지정 설정(none : temporary directory)
- max-file-size 지시자(Default : 52428800(50MB), none : 1048576(1MB), Unlimited : -1) : manager 콘솔 업로드 크기 제한 설정으로 바이트 단위로 설정
- max-request-size 지시자(Default : 52428800(50MB), none : 10485760(10MB), Unlimited : -1) : manager 콘솔 multipart/form-data 요청 크기 제한 설정으로 바이트 단위로 설정
- multipart/form-data : HTTP Request Content-type
- file-size-threshold 지시자(Default : 0) : 디스크에 기록되는 파일 크기 임계값 설정으로 바이트 단위로 설정(Default : 0)
【 조치방법 】
1. 웹 서비스 설정 파일에서 웹 서비스 파일 업로드 및 다운로드 용량 제한 설정
※ Connector 에서 “maxSwallowSize”, “maxPostSize” 설정
2. (웹 콘솔을 사용하는 경우) 웹 서비스 콘솔의 업로드 및 다운로드 파일 크기 설정
※ manage 콘솔 설정 파일에서 “max-file-size“, “max-request-size” 설정
3. 웹 서비스 재시작
2024-01-13 : (조치과정 삭제)
'인프라 진단 > 전자금융기반시설(서버) - Tomcat' 카테고리의 다른 글
SRV-048 (Tomcat) 불필요한 웹 서비스 실행 (0) | 2024.01.02 |
---|---|
SRV-046 (Tomcat) 웹 서비스 경로 설정 미흡 (0) | 2024.01.02 |
SRV-043 (Tomcat) 웹 서비스 경로 내 불필요한 파일 존재 (0) | 2024.01.02 |