{'fraction_non_alphanumeric': 0.017080745341614908, 'fraction_numerical': 0.013198757763975156, 'mean_word_length': 5.287804878048781, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Fingerprinting in Style: Detecting Browser Extensions via Injected Style Sheets

Browser extensions enhance the web experience and have seen great adoption from users in the past decade. At the same time, past research has shown that online trackers can use various techniques to infer the presence of installed extensions and abuse them to track users as well as uncover sensitive information about them. In this work we present a novel extension-ﬁngerprinting vector showing how style modiﬁcations from browser extensions can be abused to identify installed extensions. We propose a pipeline that analyzes extensions both statically and dynamically and pinpoints their injected style sheets. Based on these, we craft a set of triggers that uniquely identify browser extensions from the context of the visited page. We analyzed 116K extensions from Chrome’s Web Store and report that 6,645 of them inject style sheets on any website that users visit. Our pipeline has created triggers that uniquely identify 4,446 of these extensions, 1,074 (24%) of which could not be ﬁngerprinted with previous techniques. Given the power of this new extension-ﬁngerprinting vector, we propose speciﬁc countermeasures against style ﬁngerprinting that have minimal impact on the overall user experience.