웹 보안
HTTP Cache를 업데이트하여 보안 및 개인 정보 보호 개선
계란바구니
2022. 6. 6. 16:39
Cache-Control 헤더를 잊어버리거나 오용하면 웹사이트의 보안과 사용자의 개인 정보에 부정적인 영향을 미칠 수 있습니다. 이것이 왜 중요한지 읽고 다음을 읽어보세요.
Spectre 취약점으로 인한 리소스 누출
-
Spectre 취약점은 페이지가 OS 프로세스의 메모리를 읽을 수 있도록 합니다.
-
결과적으로 최신 웹 브라우저는 SharedArrayBuffer 또는 고해상도 타이머와 같은 일부 기능의 사용을 원본 간 격리가 있는 페이지로 제한했습니다.
-
최신 웹 브라우저는 COEP(Cross-Origin Embedder Policy)를 시행합니다.
-
이렇게 하면 교차 출처 리소스가 다음 중 하나인지 확인합니다.
-
쿠키 없이 요청된 공개 리소스
-
CORS 또는 CORP 헤더를 통해 출처 간 공유가 명시적으로 허용된 리소스
HTTP 캐싱은 Spectre에 어떤 영향을 줍니까?
-
Cache-Control 헤더가 제대로 설정되지 않은 경우 공격자는 Spectre 공격을 성공적으로 실행하면 공격을 실행할 수 있습니다.
-
웹 브라우저의 HTTP 캐시는 이러한 일이 발생하도록 허용하지 않지만 이 공격의 성공으로 이어질 수 있는 브라우저의 즉각적인 제어 외부에 추가 캐시가 존재합니다.
리소스는 브라우저에서만 캐시됩니다.
-
캐시에는 여러 계층이 있는 경우가 많습니다. 일부 캐시는 단일 사용자 전용이고 일부 캐시는 여러 사용자 전용입니다. 일부는 서버, 일부는 사용자, 일부는 중개자에 의해 제어됩니다.
-
브라우저 캐시
-
동일한 응답을 여러 번 가져오는 것을 방지하여 성능을 향상시킵니다.
-
로컬 프록시. 그들은 종종 "공개" 캐시를 구성하는 여러 사용자에 대한 단일 응답을 캐시합니다.
SSL은 중개자가 HTTPS 리소스를 캐싱하는 것을 방지합니다.
-
많은 사용자가 액세스 목적(예: 측정 연결 공유), 바이러스 검사 또는 데이터 손실 방지(DLP) 목적에 관계없이 로컬로 구성된 프록시를 정기적으로 사용합니다.
HTTP 캐시 작동 방식
-
리소스는 기본적으로 암시적으로 캐시할 수 있습니다. 기본 캐시 키는 URL과 메서드로 구성됩니다.
-
보조 캐시 키는 Vary 헤더에 포함된 헤더입니다.
-
쿠키는 응답이 쿠키에 의존함을 나타냅니다. Cache-Control 헤더는 더 세분화된 제어를 제공합니다.
웹사이트에 대해 다음 권장 조치를 취하세요.
-
중개자가 리소스를 캐싱하는 것을 방지합니다. Cache-Control: private로 설정합니다.
-
적절한 보조 캐시 키를 설정합니다. 쿠키로 인해 응답이 다른 경우(쿠키가 자격 증명을 저장할 때 발생할 수 있음) Vary: Cookie.
추가 고려 사항
-
HTTP 캐시를 사용하는 유사한 다른 유형의 공격이 있지만 이들은 교차 출처 격리와 다른 메커니즘에 의존합니다.
-
이러한 공격이 다르고 최상위 오리진별로 분할하는 것과 상보적일지라도 문제는 로컬 프록시 캐시에 남아 있습니다.