9.2. 일반적인 웹 서버 취약점 이해
이 장에서는 몇 가지 일반적인 웹 서버 취약점을 완화하는 방법을 설명합니다.
9.2.1. 교차 사이트 스크립팅(XSS) 링크 복사링크가 클립보드에 복사되었습니다!
OpenStack 대시보드는 사용자 지정할 수 있으며 대부분의 필드에서 전체 유니코드 문자 세트를 허용합니다. 이러한 확장성을 통해 XSS(Cross-site Scripting) 취약점이 도입될 수 있습니다. Horizon에는 개발자가 의도치 않게 XSS 취약점을 생성하지 않도록 도와주는 도구가 포함되어 있지만 개발자가 올바르게 사용하는 경우에만 작동합니다. 사용자 지정 대시보드를 감사하고 다음 기능에 특히 주의하는 것이 좋습니다.
-
mark_safe함수. -
is_safe- 사용자 지정 템플릿 태그와 함께 사용하는 경우입니다. -
safe템플릿 태그입니다. - 어디에서나 자동 이스케이프가 해제되고 부적절하게 이스케이프된 데이터를 평가할 수 있는 JavaScript가 모두 해제됩니다.
9.2.2. cross Site Request Forgery (CSRF) 링크 복사링크가 클립보드에 복사되었습니다!
OpenStack 대시보드는 위협이 발생할 가능성이 있으므로 개발자가 사용자 지정 대시보드를 사용하여 사이트 간 스크립팅 취약점을 도입하지 않도록 설계되었습니다. 여러 JavaScript 인스턴스를 사용하는 대시보드는 @csrf_exempt 데코레이터를 부적절하게 사용하는 등 취약점에 대해 감사해야 합니다. 이러한 권장 보안 설정을 따르지 않는 대시보드는 CORS(Cross Origin Resource Sharing) 제한이 완화되기 전에 신중하게 평가해야 합니다.
대시보드 도메인 및 프로토콜만 허용하도록 각 응답이 포함된 제한적인 CORS 헤더를 보내도록 웹 서버를 구성해야 합니다. 예:access-Control-Allow-Origin: https://example.com/. 와일드카드 원점을 허용하지 않아야 합니다.
9.2.3. 크로스 프레임 스크립팅(XFS) 링크 복사링크가 클립보드에 복사되었습니다!
disallow _iframe_embed 설정은 대시보드가 iframe 내에 임베드되지 않도록 합니다. 기존 브라우저는 여전히 XFS(Cross-frame Scripting) 취약점에 취약할 수 있으므로, 이 옵션은 iframe이 필요하지 않은 배포에 추가로 보안 강화를 추가합니다.
다음 매개변수를 사용하여 iframe 임베딩을 허용할 수 있습니다.
parameter_defaults:
ControllerExtraConfig:
horizon::disallow_iframe_embed: false
parameter_defaults:
ControllerExtraConfig:
horizon::disallow_iframe_embed: false
9.2.4. 대시보드 트래픽에 HTTPS 암호화 사용 링크 복사링크가 클립보드에 복사되었습니다!
HTTPS를 사용하여 대시보드 트래픽을 암호화하는 것이 좋습니다. 공인 CA(인증 기관)에서 신뢰할 수 있는 유효한 인증서를 사용하도록 구성하여 이 작업을 수행할 수 있습니다. 개인 조직에서 발급한 인증서는 신뢰할 수 있는 루트가 모든 사용자 브라우저에 사전 설치된 경우에만 적합합니다.
대시보드 도메인에 대한 HTTP 요청을 구성하여 정규화된 HTTPS URL로 리디렉션합니다.
director 기반 배포의 경우 https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/13/html/advanced_overcloud_customization/sect-enabling_ssltls_on_the_overcloud 을 참조하십시오.
9.2.5. HSTS(HTTP Strict Transport Security) 링크 복사링크가 클립보드에 복사되었습니다!
HSTS(HTTP Strict Transport Security)는 처음에 보안 연결을 만든 후 브라우저가 후속 비보안 연결을 수행하지 못하도록 합니다. 공용 또는 신뢰할 수 없는 영역에 HTTP 서비스를 배포한 경우 HSTS가 특히 중요합니다.
director 기반 배포의 경우 이 설정은 기본적으로 활성화되어 있습니다.
enable_secure_proxy_ssl_header: true
enable_secure_proxy_ssl_header: true