::tomcat:: 보안 취약점 진단 조치

MinJeongKim·2024년 7월 29일
0

1. 설정파일 권한 관련

❗ 설정 파일이 was server 계정 소유이며 600 or 700 이하인 경우 양호

- 조치: 설정 파일 일부 권한 변경
cd /home/app/apache-tomcat-8.5.6/conf
chmod 600 server.xml
chmod 600 context_1.xml

2. 로깅 디렉터리/파일 권한

❗ 로깅 디렉터리의 권한이 750 이하, 로그 파일의 권한이 640 이하인 경우 양호

umask 값 변경 이슈

  • 로그 파일 권한 경우 chmod 명령어로 변경 가능, 이후 생성되는 파일 자동 적용 필요
  • catalina.sh umask 값을 0022 > 0027로 변경
  • 연계되는 시스템(ex.sap, 그룹웨어)과 첨부파일(nas)을 공유 사용중이라 다른 사용자의 읽기 권한을 제외시키니 오류 발생 > rollback
cd /home/app/apache-tomcat-8.5.6/bin
vi catalina.sh
UMASK = "0027"

---
find 명령어
-perm : permission 검색
-newermt : 특정 날짜와 시간 이후에 수정된 파일을 찾는 데 사용, newer modification time의 약자
-exec : 검색된 파일에 대해 지정된 명령 실행 
\; : -exec 끝을 나타내며, 명령어 실행을 마치는데 사용 ; 특수문자라 백슬래시를 사용해 이스케이프 처리
{} : find 명령어로 찾은 각 파일의 이름을 의미 {} 자리에 파일의 이름이 들어감
ex)
find /nas/upload/co -type f -newermt "2024-07-25" -exec chmod 644 {} \;
find /nas/upload/co -perm 644 -newermt "2024-07-25"

3. 에러 메시지 관리

❗ 별도의 에러 페이지를 생성하여 설정되어 있는 경우 양호

아파치 웹서버 503 이슈

  • 아파치 웹서버 정상 작동중, tomcat 중지일 경우 503 error 발생
  • httpd.conf > ErrorDocument 503 /dir/503.html 설정
- 조치: web.xml 에러 메시지 설정(필수 : 400, 401, 403, 404, 500)
  <web-app>
      <error-page>
          <error-code>400</error-code>
          <location>/error.jsp</location>
      </error-page>
      <error-page>
          <error-code>401</error-code>
          <location>/error.jsp</location>
      </error-page>
      <error-page>
          <error-code>403</error-code>
          <location>/error.jsp</location>
      </error-page>
      <error-page>
          <error-code>404</error-code>
          <location>/error.jsp</location>
      </error-page>
      <error-page>
          <error-code>500</error-code>
          <location>/error.jsp</location>
      </error-page>
  </web-app>
  
 24.07.31 추가) 
 - springboot ErrorController를 상속받아 customError page를 핸들링 할 수 있다.
   운영중인 서비스 경우 공통에 설정되어 있었음.
 - error page 우선순위 : 1.CustomErrorPage > 2.whiteLabelErrorPage > 3. TomcatErrorPage 

4. 로그 설정 관리

❗ 로그 포맷 설정 값이 Combined이면 양호

- 조치: server.xml AccessLogValue pattern 변경
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
       prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
       prefix="localhost_access_log" suffix=".txt" pattern="combined" />               

5. 불필요한 데이터 제거

❗ was 디렉터리 내 불필요한 백업 파일 및 설정 파일이 존재하면 취약

- 조치: 백업 파일 삭제
cd /home/app/apache-tomcat-8.5.6/conf
rm context_1.xml

6. 최신 패치 적용(보안패치)

❗ 최신 패치 미적용 시 취약

tomcat 8.5 EOL

  • the 8.5.x download pages will be removed
  • 8.5.100 최신 버전 업그레이드 불가능
  • cve 취약점 제거한 9.0.91 최신 버전 개발 서버에 적용하였으나 현행 유지하기로 함.

참고 : [2020.12] 한국인터넷진흥원 발간 내용 "클라우드 취약점 점검 가이드"

profile
웹 개발자 & DA

0개의 댓글

관련 채용 정보