[WAS] 보안 설정

김봉남·2024년 5월 29일

WAS

목록 보기
23/23
post-thumbnail

SHA-1 암호 스위트가 발견됨

  • 위험:
    합법적인 사용자로 위장하는 데 사용될 수 있는 고객 세션 및 쿠키를 빼내거나 조작하는 것이 가능하여 해커가 사용자 레코드를 보거나 변경할 수 있으며 해당 사용자처럼 트랜잭션을 수행할 수 있습니다.
    서버에서 SHA-1 암호 스위트를 지원합니다.
    NIST는 2011년부터 SHA-1을 더 이상 공식적으로 사용하지 않고 있으나 많은 애플리케이션에 여전히 사용되고 있습니다.
    현재까지(2017년)는 SHA-1에 대한 이론상의 공격만 알려졌고 이로 인해 많은 애플리케이션에서 계속 사용되고 있습니다.
    최근 CWI Amsterdam 및 Google 리서치 팀([1] 및 [2])에 의해 실질적인 공격이 소개되었습니다.
  • 조치방법
    SSLProtocol -All +TLSv1.3
    SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:!SHA1
    SSLHonorCipherOrder on

누락되었거나 안전하지 않은 "X-Content-Type-Options" 헤더

  • 위험 :
    속기 쉬운 사용자를 설득해서 사용자 이름, 비밀번호, 신용카드 번호, 주민등록 번호와 같은 민감한 정보를 제공하도록 하는 것이 가능합니다.
    사용자 이름, 비밀번호, 머신 이름 및/또는 민감한 파일 위치 등과 같이 웹 애플리케이션에 대한 민감한 정보를 모으는 것이 가능합니다.
  • 조치방법
<IfModule mod_headers.c>
    Header always set X-Content-Type-Options "nosniff"
</IfModule>

디렉토리 목록화 패턴 발견

  • 위험:
    디렉토리 목록화(Directory Listing) 기능이 활성화되어 있는 경우, 해당 디렉토리의 파일 목록이 공개적으로 노출될 수 있습니다. 이는 여러 가지 보안 위험을 초래할 수 있습니다.
  • 조치방법
Options -MultiViews -FollowSymLinks +IncludesNoExec

애플리케이션에서 불필요한 Http 응답 헤더가 발견되었습니다

  • 위험 :
    사용자 이름, 비밀번호, 머신 이름 및/또는 민감한 파일 위치 등과 같이 웹 애플리케이션에 대한 민감한 정보를 모으는 것이 가능합
    니다.
  • 조치방법
<IfModule mod_headers.c>
    Header unset Server
    Header unset X-Powered-By
    Header unset X-AspNet-Version
    Header unset X-Content-Type-Options
    Header unset X-Frame-Options
    Header unset X-XSS-Protection
</IfModule>

약한 암호 발견됨: 일부 암호 스위트가 PFS(Perfect Forward Secrecy)를 지원하지 않습니다

  • 위험 :
    PFS를 지원하지 않는 암호 스위트에서는 서버의 장기 개인 키가 손상될 경우 과거의 모든 통신 세션이 복호화될 수 있습니다. 공격자가 서버의 개인 키를 얻으면, 과거에 캡처한 트래픽도 복호화할 수 있게 됩니다.
  • 조치방법
SSLProtocol -All +TLSv1.3
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:!RSA
SSLHonorCipherOrder on

apache http/https 에서 browser 가 caching 하지 않게 하는 http header 설정

  • 위험 :
    Apache HTTP 서버에서 브라우저가 캐시를 하지 않도록 HTTP 헤더를 설정하려면, 다음과 같은 방법을 사용
  • 조치방법
<IfModule mod_headers.c>
    <Location />
        Header set Cache-Control "no-store, no-cache, must-revalidate, max-age=0"
        Header set Pragma "no-cache"
        Header set Expires "Thu, 01 Jan 1970 00:00:00 GMT"
    </Location>
</IfModule>

Content-Security-Policy 상황에 따라 설정(서비스 영향 발생)

  • 위험 :
    ex) Content-Security-Policy: default-src 'self'; img-src *; media-src example.org example.net; script-src userscripts.example.com
    -소스 파일에서 로드된 스크립트만 실행하고 HTML 속성을 포함한 인 라인 스크립트 및 이벤트 처리 등의 다른 모든 스크립트는 무시
    -미디어는 example.org 및 example.net에서만 허용되며 해당 사이트의 하위 도메인에서는 허용되지 않음
    -실행 가능한 스크립트는 userscripts.example.com에서 온 것만 허용
  • 조치 방법, (JS 수행안될 가능성이 있기 때문에 충분히 고려)
Header always set Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self'"

통상 보안 설정

  • index 및 숨겨진 파일
    <Directory "/home2/xx09/www_dev">
    Options -MultiViews -FollowSymLinks +IncludesNoExec
  • header
    <IfModule mod_headers.c>        
        Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
        Header set X-Content-Type-Options "nosniff"
        Header unset Server
        Header always unset X-Powered-By
        Header unset X-Powered-By
        Header unset X-CF-Powered-By
        Header unset X-Mod-Pagespeed
        Header unset X-Pingback
        Header unset X-AspNet-Version
        Header unset X-Content-Type-Options
        Header unset X-Frame-Options
        Header unset X-XSS-Protection
     </IfModule>
profile
남자다

0개의 댓글