Project

General

Profile

Actions

개발 #5

closed

[서울대_유지보수] BK21 웹취약점 보완

Added by 개발팀 이석화 about 1 year ago. Updated about 1 year ago.

Status:
완료
Priority:
보통
Start date:
01/03/2025
Due date:
01/08/2025
% Done:

100%

Estimated time:
24:00 h
Spent time:
Actions #1

Updated by 개발팀 이석화 about 1 year ago

웹 취약점 처리내역

  • SQL 인젝션
  • CMME 정보노출
  • 반사형 크로스 사이트 스크립팅
  • 조회의 비밀번호 매개변수
    • 오진, 중요정보가 아니라 단순한 게시판 검색단어를 의미
  • 존재하지 않는 도메인의 링크가 있음
  • SHA-1 암호 스위트가 발견됨
    • 아파치 설정에서 SHA-1 불허
  • SRI 지원검사
  • 데이터베이스 오류 패턴 발견
  • 디렉토리 목록화
    • 아파치 설정 변경
  • 디렉토리 목록화 패턴 발견
    • 아파치 설정 변경
  • 링크 인젝션
  • 누락된 SameSite 속성
  • 안전하지 않은 서드파티 링크
  • 쿠키의 누락된 보안속성
  • 약한 암호 스위트 PFS
    • 아파치 설정 변경
  • 약한 암호 스위트 - ROBOT
    • 아파치 설정 변경
  • 임시파일 다운로드
    • _bak 파일은 제거 완료
    • 그 외에 검출된 목록은 오진 (임시 파일이 아니라 실제 사용하는 화면의 파일)
  • 취약한 구성요소
    • jquery 최신 버전으로 업그레이드
  • 프레임을 통한 파싱
  • X-Content-Type-Options 헤더 누락
    • 아파치 설정 변경
  • Strict-Transport-Security 헤더 누락
    • 아파치 설정 변경
  • Content-Security-Policy 헤더 누락
    • 아파치 설정 변경
  • 비밀번호 자동완성 비활성화
  • 숨겨진 디렉토리 발견
  • 불필요한 HTTP 응답헤더
    • /etc/apache2/conf-enabled/security.conf 수정
    • ServerTokens Prod, ServerSignature Off
  • 캐시화 가능한 SSL 발견
    • 아파치 설정 변경
  • HTML 주석 중요정보 누출
  • Refferer policy 보안 헤더 누락
    • 아파치 설정 변경
  • 이메일 주소 패턴 발견
    • 오진, 개인정보가 아니라 사이트 대표 메일
  • 클라이언트 측 쿠키 참조
    • 해당 쿠키는 팝업을 1일간 띄우지 않게 하는데 쓰이는 단순 정보로,
      탈취되거나 변조되어도 보안상 문제없는 데이터

미처리 항목 정리

  • 조회의 비밀번호 매개변수
    • 오진
    • 매개변수명 keyword는 중요정보가 아니라 단순한 게시판 검색단어로 사용되기 때문에
      URL에 노출되어도 문제없는 데이터
  • 임시파일 다운로드
    • 오진
    • _bak 파일은 제거완료, 그 외에 검출된 파일은 실제 화면구성에 사용되는 파일
  • 이메일 주소 패턴 발견
    • 오진
    • 개인정보가 아니라 연락을 위한 사이트 대표 이메일
  • 클라이언트 측 쿠키 참조
    • 보안상 문제없음
    • 해당 쿠키는 팝업을 1일간 띄우지 않게 하는데 쓰이는 단순 정보로,
      탈취되거나 변조되어도 보안상 문제없는 데이터

변경된 아파치 설정

  • /etc/apache2/sites-enabled/https-default.conf
<VirtualHost *:443>
        DocumentRoot /home/vetgrad/public_html
        ServerName vetgrad.snu.ac.kr

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        SSLEngine on
        #SSLProtocol all -SSLv2
        SSLProtocol -all +TLSv1.2 +TLSv1.3
        SSLHonorCipherOrder on
        SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256
        #SSLCipherSuite HIGH:!aNULL:!MD5:!RC4:!DHE
        #SSLProxyCipherSuite HIGH:!aNULL:!MD5:!RC4:!DHE

        SSLCertificateFile /etc/apache2/ssl/File_Wildcard.snu.ac.kr_crt.crt
        SSLCertificateKeyFile /etc/apache2/ssl/KeyFile_Wildcard.snu.ac.kr_crt.key
        SSLCertificateChainFile /etc/apache2/ssl/ChainFile_ChainBundle.crt
        SSLCACertificateFile /etc/apache2/ssl/CA_GLOBALSIGN.crt

        <Directory /home/vetgrad>
                Options FollowSymLinks
                AllowOverride All
                Require all granted
        </Directory>

        <IfModule mod_headers.c>
                Header always set Cache-Control "no-store"
                Header always set X-Content-Type-Options "nosniff"
                Header always set Referrer-Policy "same-origin"
                Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
                Header always set Content-Security-Policy "default-src 'self' 'unsafe-inline' 'unsafe-eval' code.jquery.com fonts.googleapis.com www.youtube.com; font-src 'self' 'unsafe-inline' fonts.googleapis.com fonts.gstatic.com;"
        </IfModule>
</VirtualHost>
  • /etc/apache2/conf-enabled/security.conf (값변경)
ServerTokens Prod
ServerSignature Off
Actions

Also available in: Atom PDF