引入了一種用於隱藏系統和瀏覽器識別的新技術

來自格拉茨科技大學(奧地利)的一組研究人員,此前以開發攻擊方法而聞名 MDS, 網絡幽靈 и 飛錘, 裸露 有關新的第三方分析技術的信息,該技術允許您確定瀏覽器的確切版本、使用的操作系統、CPU 架構以及使用附加組件來打擊隱藏識別。

要確定這些參數,只需在瀏覽器中執行研究人員編寫的 JavaScript 代碼即可。 在實踐中,該方法不僅可以用作間接用戶識別的附加來源,還可以用於確定係統環境參數,以便有針對性地使用漏洞利用,同時考慮操作系統、體系結構和瀏覽器。 該方法在使用具有隱藏身份識別阻止機制的瀏覽器時也有效,例如 Tor 瀏覽器。 帶有方法實現的源代碼原型代碼 發表 在麻省理工學院的許可下。

根據JIT、CPU和內存分配機制的特點,根據不同瀏覽器在JavaScript中屬性狀態模式的分配特徵和操作執行時間的特點來確定。 定義屬性是通過生成 JavaScript 中所有可用對象的列表來完成的。 事實證明,對象的數量與瀏覽器引擎及其版本直接相關。

函數 getProperties(o) {
變量結果 = [];
while (o !== null) {
結果 = result.concat(Reflect.ownKeys(o));
o = Object.getPrototypeOf(o);
}
返回結果;
}

例如,對於 Firefox,在文檔中聲明了對 2247 個屬性的支持,而某些屬性的實際數量,考慮到未記錄的屬性,是 15709(在 Tor 瀏覽器中 - 15639),對於 Chrome,聲明了 2698 個屬性,但是 13570實際上提供(在 Android 版 Chrome 中 - 13119)。 屬性的數量和值因瀏覽器版本和不同操作系統而異。

某些屬性的值和存在可用於確定操作系統類型。 例如,在 Kubuntu 中 window.innerWidth 屬性設置為 1000,在 Windows 10 中設置為 1001。在 Windows 上,window.navigator.activeVRDisplays 屬性可用,但在 Linux 上不可用。 Android提供了很多具體的調用,但是沒有window.SharedWorker。 為了識別操作系統,還建議使用 WebGL 參數的分析,其狀態取決於驅動程序。 此外,調用 WEBGL_debug_renderer_infoextension 可以讓你獲得有關 OpenGL 渲染引擎的信息,每個操作系統都不同。

為了確定 CPU,使用了對各種典型代碼塊執行時間差異的評估,其處理取決於指令集的體系結構,同時考慮了 JIT 的行為(確定有多少 CPU 寄存器將涉及,在這種情況下,JIT 將生成具有優化和涉及擴展指令的高效代碼,如果不是)。 為了判斷內存分配系統和操作系統的類型,還測量了各種結構在內存分配時間上的差異,可以用來判斷內存塊的大小。

將腳本執行期間確定的參數與預測試環境的典型參考值進行比較。 在測試過程中,開發的技術可以準確地確定 40 種不同的測試環境,確定使用的瀏覽器版本、CPU 製造商、使用的操作系統,以及它是在真實硬件上運行還是在虛擬機中運行。

另外,還指出了定義瀏覽器插件甚至個別插件設置的可能性,包括旨在阻止隱藏識別方法或隱私瀏覽活動的插件。 在所提出方法的上下文中,此類添加成為識別數據的另一個來源。 添加是通過評估由添加引入的原始環境參數的扭曲來確定的。

在其他識別方法中,可以注意到對此類間接數據的考慮,例如 屏幕分辨率, 支持的 MIME 類型列表, 標頭特定選項 (HTTP / 2 и HTTPS), 建立的分析 插件和字體,特定於視頻卡的某些 Web API 的可用性 產品特點 使用 WebGL 渲染和 帆布, 操縱 使用 CSS,分析使用的特性 и 鍵盤.

來源: opennet.ru

添加評論