반응형
Nginx X-Frame-Options 설정
'웹취약점 GS인증대비'
-
"nginx x-frame-options / hsts / x-content-type-options / x-xss-protection"
(적용예시및 테스트)
X-Frame-Options 개념
웹 페이지가 다른 웹 사이트의 프레임 또는 iframe 내에 표시되지 않도록 하는 HTTP 헤더입니다.
공격자가 사용자가 인식하는 것과 다른 것을 클릭하도록 사용자를 속이는 클릭재킹 공격을
완화하는데 도움이 되는 보안 기능이다.
| HTTP 응답헤더 종류
"DENY" - 해당 페이지는 frame을 랜더링 하지 않음
"SAMEORIGIN" - 해당 페이지와 동일한 origin에 해당하는 frame만 렌더링
"ALLOW-FROM URL" - 지정된 uri(orgin)에 해당하는 frame만 렌더링
1. nginx X-Frame-Options 명령어
# nginx.conf 파일편집
$ sudo vi /etc/nginx/nginx.conf
# DENY의경우 아래내용 추가
$ add_header X-Frame-Options DENY;
# SAMEORIGIN 의경우 아래내용 추가
$ add_header X-Frame-Options SAMEORIGIN;
# example.com 특정URL의 경우 아래내용 추가
$ add_header X-Frame-Options ALLOW-FROM http://example.com/
$ add_header X-Frame-Options ALLOW-FROM http://www.example.com/
$ add_header X-Frame-Options ALLOW-FROM https://example.com/
$ add_header X-Frame-Options ALLOW-FROM https://www.example.com/
# 재시작
$ sudo service nginx restart
OR
$ sudo systemctl restart nginx
2. nginx X-Frame-Options SAMEORIGIN
우분투 기준으로 /etc/nginx/nginx.conf 경로에 가서 nginx.conf 파일을 편집한다.
3. nginx 웹취약점 처리
HSTS, X-Content-Type-Options, X-XSS-Protection 3가지 웹취약점 추가하기
$ add_header X-Frame-Options SAMEORIGIN;
$ add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
$ add_header X-Content-Type-Options nosniff;
$ add_header X-XSS-Protection "1; mode=block";
HSTS (HTTP Strict Transport Security)
1.개념
HTTPS를 강제하게 될 때서버측에서 302 Redirect 를 이용하여 전환시켜 줄 수 있습니다.
하지만 이것이 취약점 포인트로 작용될수 있습니다.
2.max-age=63072000
HSTS가 브라우저에 설정될 시간이며 초단위로 설정됩니다. 63072000은 2년을 의미합니다.
3.includeSubdomains
HSTS가 적용될 도메인의 subdomain (test.com - 또는 admin.test.com) 까지 HSTS를 확장 적용함을 의미합니다.
4.preload
HSTS 적용이 클라이언트 측에서 preload로 이루어짐을 의미합니다.
5. 테스트사이트주소
https://hstspreload.org
HSTS 성공화면
X-Content-Type-Options
특정 유형의 MIME 기반 공격을 방지하여 웹 보안을 강화하는데 사용되는HTTP 헤더이다.
예를들어 mime type이 "text/plain" 으로 인식해야하나 html이나 script 등의 내용이 헤더에 있으면
브라우저가 실행해 버린다.
X-XSS-Protection
"X-XSS-Protection: 0" (XSS 필터링을 비활성화)
"X-XSS-Protection: 1" (XSS 필터링을 활성화)
→ 공격이 감지되면 브라우저는 안전하지 않은 영역을 제거 후에 렌더링을 하게 됩니다.
"X-XSS-Protection: 1; mode=block" (XSS 필터링을 활성화)
→ 공격이 탐지되면 안전하지 않는 영역을 제거하는게 아니라, 페이지 렌더링을 중단합니
반응형
'IT정보 > 보안' 카테고리의 다른 글
[보안] CORS 처리활성화 여러가지방법(GS인증 보안성) (0) | 2023.04.20 |
---|---|
[보안] SameSite Cookie 적용 여러가지방법 (GS인증 보안성) (0) | 2023.04.19 |