NuDetect
NuData, a subsidiary of Mastercard, integrates with 3DS verification and features an anti-bot system called nuDetect, similar to Akamai’s reliance on human behavioral analysis.
Understanding nuData’s Functionality
nuData operates through a website’s domain or server, using a fingerprinting script found in URLs containing /init/js/
or /sync/js/
. For instance, Kohls.com
uses the following URL for nuData integration: https://fc.kohls.com/2.2/w/w-552128/sync/js/
, utilizing a customer ID for request identification.
The configuration of nuData is stored in a pageModeConfig property, and its fingerprinting script initializes a window property at window.ndsapi
.
nuData’s Initial Analysis Process
nuData examines various properties, such as:
pageX
,pageY
coordinates of page elements, including the main document.- Scroll positions:
document.body.scrollLeft
&document.body.scrollRight
. - Current time:
Date.now()
. - Numerous Math operations, likely assessing the JavaScript VM.
- Common properties like
window._phantom
,window.callPhantom
,window.__phantomas
, etc. - Screen details:
window.screen.width
,window.screen.height
,window.screen.colorDepth
. - Flash plugin presence.
- Navigator attributes, including language and device timezone.
- WebGL parameters:
- Canvas fingerprinting and font metrics, using a specific script to draw and analyze text on a canvas using the following script:
Behavioral Analysis by nuData
nuData tracks all page events, including keyboard (keyCode
) and mouse movements (pageX
, pageY
), logging the sequence and timing of these events. This data suggests analysis of user interaction speed. The collected data is encoded in a proprietary format, for example:
Bypassing nuData
Bypassing nuData security requires a nuanced approach, especially considering its reliance on GPU rendering information to determine the operating system and device type.
Here are some strategies:
- GPU Rendering: Emulate consumer-grade GPUs rather than professional hardware, as nuData’s algorithms are tuned to recognize and differentiate between them.
- Behavioral Analysis: Utilize tools like
ghost-cursor
(found at https://npmjs.com/package/ghost-cursor) to simulate human-like cursor movements and keystrokes. Timing is crucial here; movements or keystrokes that are too rapid can be flagged as suspicious.