Akamai埋点分析

Akamai多层次环境检测机制

浏览器环境指纹检测
API 存在性检测
硬件设备特征检测
用户行为模式检测
自动化工具检测

核心检测点分类

navigator.webdriver // 自动化工具检测
navigator.mediaDevices // 媒体设备API
navigator.serviceWorker // Service Worker支持
navigator.bluetooth // 蓝牙API
navigator.getBattery() // 电池API
navigator.getGamepads() // 游戏手柄API
navigator.javaEnabled() // Java支持
navigator.permissions // 权限API
navigator.platform // 平台信息
navigator.maxTouchPoints // 触摸点数量
navigator.userAgent // 用户代理
navigator.cookieEnabled // Cookie支持
navigator.connection // 网络连接信息

Window 对象检测

window.chrome // Chrome特有对象
window.indexedDB // IndexedDB支持
window.speechSynthesis // 语音合成API
window.DeviceOrientationEvent // 设备方向事件
window.DeviceMotionEvent // 设备运动事件
window.TouchEvent // 触摸事件
window.RTCPeerConnection // WebRTC
window.webkitRTCPeerConnection // WebKit前缀WebRTC
window.XMLHttpRequest // AJAX支持
window.addEventListener // 事件监听器

Screen 对象检测

screen = {
pixelDepth: 24, // 像素深度
colorDepth: 24, // 颜色深度
width: 1536, // 屏幕宽度
availWidth: 1536, // 可用宽度
availHeight: 824, // 可用高度
height: 864 // 屏幕高度
}

高级检测机制

1
2
3
4
5
// 检测原型链中特定属性的存在性
var P95 = DK["Object"]["prototype"]["hasOwnProperty"]
.call(DK["Navigator"]["prototype"], 'mediaDevices');
var hs5 = DK["Object"]["prototype"]["hasOwnProperty"]
.call(DK["Navigator"]["prototype"], 'serviceWorker');

平台特征识别

1
2
3
4
5
6
// 检测iPad伪装成Mac的情况
var Is5 = DK["navigator"]["platform"] === 'MacIntel'
&& DK["navigator"]["maxTouchPoints"] > 1
&& /(Safari)/["test"](M95)
&& !DK["window"]["MSStream"]
&& typeof DK["navigator"]["standalone"] !== 'undefined';

Function.toString 反检测

1
2
3
4
5
// 防止toString hook检测
const myToString = function toString() {
return typeof this == 'function' && this[myFunction_toString_symbol]
|| $toString.$call(this);
};

总结

环境完整性检测:验证浏览器API的完整性和一致性
设备指纹采集:收集屏幕、硬件、网络等设备特征
行为模式分析:监控用户交互行为和时间模式
自动化工具识别:检测各种自动化工具的特征
动态监控:实时监控环境变化和异常访问

后续尝试算法还原下