Cascading Spy Sheets - Exploiting the Complexity of Modern CSS for Email and Browser Fingerprinting

CSS의 동적 기능과 보안 관련 논문 스크랩핑

https://publications.cispa.de/articles/conference_contribution/Cascading_Spy_Sheets_Exploiting_the_Complexity_of_Modern_CSS_for_Email_and_Browser_Fingerprinting/27194472?file=50994972

CSS 핑거프린팅: 웹 보안의 새로운 위협과 방어 전략

최근 웹 기술의 발전과 함께 CSS(Cascading Style Sheets)가 단순한 스타일링 언어를 넘어 사용자 추적의 새로운 위협으로 부상하고 있습니다. 본 블로그 글에서는 CSS의 복잡성을 악용한 핑거프린팅 기법과 이에 대한 방어 전략을 심층적으로 분석합니다.

CSS 핑거프린팅이란 무엇인가?

CSS 핑거프린팅은 CSS의 다양한 기능, 특히 컨테이너 쿼리, 산술 함수, 복잡한 선택자 등을 활용하여 사용자의 애플리케이션, 운영체제, 하드웨어 구성을 높은 정확도로 추론하는 기술입니다. 이는 JavaScript 없이도 가능하며, 이메일 환경에서도 적용될 수 있어 개인 정보 보호에 심각한 위협이 됩니다.


CSS 핑거프린팅의 작동 원리

CSS 핑거프린팅은 다음과 같은 방식으로 작동합니다.

이러한 기법을 통해 공격자는 사용자의 브라우저, 운영체제, 설치된 폰트, 하드웨어 구성 등 다양한 정보를 수집할 수 있습니다.


이메일 클라이언트에서의 CSS 핑거프린팅

이메일 클라이언트에서도 CSS 핑거프린팅은 심각한 위협이 될 수 있습니다. 공격자는 CSS를 이용하여 사용자의 이메일 계정을 추적하거나, 이메일 내용의 유출 가능성을 검사할 수 있으며, 이는 스피어 피싱 공격에 악용될 수 있습니다.


CSS 핑거프린팅에 대한 방어 전략

CSS 핑거프린팅 공격에 대응하기 위한 효과적인 방어 메커니즘은 다음과 같습니다.

조건부 리소스 사전 로딩의 개념

조건부 리소스 사전 로딩은 CSS 기반 핑거프린팅 공격에 대응하기 위한 방어 메커니즘 중 하나입니다. 이 방법은 외부 리소스가 조건에 따라 로딩되는 것을 방지하여 정보 유출 가능성을 줄이는 데 목적이 있습니다.

작동 방식

일반적으로 웹 페이지는 CSS 스타일을 적용하기 위해 외부 리소스를 로딩합니다. 이때, 특정 조건(예: 브라우저 종류, 운영체제, 사용자 설정 등)에 따라 다른 리소스가 로딩될 수 있습니다. 공격자는 이러한 조건부 로딩을 이용하여 사용자 환경을 식별하고 추적할 수 있습니다. 조건부 리소스 사전 로딩은 이러한 메커니즘을 차단하여, 모든 리소스를 조건 없이 미리 로딩함으로써 핑거프린팅 시도를 무력화합니다.

기술적 구현

조건부 리소스 사전 로딩은 다음과 같은 방식으로 구현될 수 있습니다.

  1. CSS 스타일 규칙 분석: 웹 페이지에서 사용되는 모든 CSS 스타일 규칙을 분석합니다.
  2. 조건부 리소스 식별: 조건부로 로딩되는 외부 리소스를 식별합니다.
  3. 사전 로딩: 식별된 모든 리소스를 조건 없이 미리 로딩합니다.

이 과정에서 서버는 모든 리소스를 클라이언트에 제공하므로, 클라이언트는 특정 조건에 따라 리소스를 선택적으로 로딩하지 않습니다.


웹 브라우저 지문 인식의 복잡성 증대

원격 리소스를 데이터 URL로 재작성하면 지문 정보 유출을 방지하는 효과가 있지만, 이는 W3C 사양의 개인 정보 고려 사항과 상충될 수 있습니다. 컨테이너 쿼리는 미디어 쿼리의 기능을 확장하여 정확한 글꼴 핑거프린팅을 가능하게 하며, 이는 기존의 JavaScript 기반 핑거프린팅 기술 없이도 작동할 수 있습니다.


실험 결과 개요

연구 결과, 핑거프린팅 기법을 통해 95% 이상의 웹 브라우저/운영체제 조합을 식별할 수 있다고 합니다. 이메일 클라이언트는 HTML 및 CSS 기능 지원을 통해 핑거프린팅을 할 수 있으며, 관련 데이터가 수집되었습니다. 확장 기반 완화 방법은 웹 브라우저의 핑거프린팅 표면을 줄일 수 있으며, 크기 오버헤드가 30% 미만으로 예상됩니다.

결론

CSS 핑거프린팅은 웹 보안의 새로운 위협이며, 이에 대한 효과적인 방어 전략이 필요합니다. 본 블로그 글에서 제시된 방어 메커니즘은 미래의 CSS 기반 핑거프린팅 기법에 대처할 수 있도록 하는 데 중요하며, 이전에는 밝혀지지 않은 CSS 기능이 정보 유출에 사용될 수 있음을 강조합니다. 웹 개발자와 보안 전문가들은 CSS 핑거프린팅의 위험성을 인지하고, 사용자 개인 정보 보호를 위한 노력을 기울여야 합니다.


웹 브라우저에서 개인 정보를 보호하기 위해 사용자가 할 수 있는 조치는 다음과 같습니다.

1. CSS 기반 핑거프린팅 방어


2. 브라우저 확장 기능 활용


3. 쿠키 관리 및 차단


4. Tor 브라우저 및 개인 정보 보호 브라우저 사용


5. CSS 기능 제한 및 관리


6. 추가적인 보안 설정 강화


7. 이메일 보안 강화

이러한 조치들을 통해 웹 브라우저 환경에서 개인 정보 보호를 강화하고, 잠재적인 위협으로부터 자신을 보호할 수 있습니다.