移动应用术语

SDK 伪造

什么是 SDK 伪造?

SDK 伪造会在不执行任何实际安装的情况下,在真实设备上创建看似合法的安装。我们的 SDK 签名可防御一种名为 SDK 伪造(也称为流量欺诈或重放攻击)的移动欺诈。

作弊分析

  1. SDK 伪造比模拟或安装农场生成的虚假安装更难检测。安装看似合法;在任何特定的推广活动中,它们最多可占到安装的 80%。
  2. 欺诈者通过使用自己的应用,或利用任何可以控制的应用来收集真实设备数据;这一点可以通过无害的热门应用(例如:省电程序或手电筒工具)来实现。
  3. SDK 伪造在 2017 年成为了影响移动广告主的重大问题,因为这种作弊伎俩已变得更难解,已经从易于辨别的不良企图(当时对 URL 架构了解较浅)转变为更老练地利用基于设备的参数作弊。

这一攻击是如何发生的?

欺诈者使用真实设备创建看似真实的安装(因为他们真实的),从而消耗广告主的预算,然而设备用户实际上并未安装该应用程序。该骗局使用的设备是真实的,因此很活跃并易于传播。为实施此类欺诈,欺诈者必须:

  1. 通过执行“中间人攻击”来破解跟踪 SDK 与其后台服务器之间的 SSL 加密通信。
  2. 针对要欺诈的应用程序生成一系列测试安装。
  3. 了解哪些 URL 调用代表应用程序中的特定操作。
  4. 研究 URL 的哪些部分是静态的,哪些是动态的。
  5. 测试其设置并试验动态部分。
  6. 一旦成功跟踪了单个安装,欺诈者就会找到一个 URL 设置,允许他们无中生有地创建安装。
  7. 然后无限次重复操作。

Adjust 如何应对这类型的攻击?

我们决定创建签名哈希 (signature hash) 来对 SDK 通信包进行签名,而不是利用短期的修补程序。此方法可确保重放攻击不起作用。我们为 URL 引入了新的动态参数,其无法被猜测或窃取,且仅能使用一次。为帮助客户在实现安全哈希的同时享有好的用户体验,我们选择采用额外的共享密匙。这种共享密匙将在控制面板中生成,确保每个相应应用的安全。广告主还可更新密钥,并针对不同版本的应用使用不同的密钥。这使他们能够每隔一段时间便弃用旧的签名,确保归因是基于最新版本的最高安全标准;并且可以完全从归因中删除旧版本。

工作原理是什么?

新的 SDK 签名通过将应用的密码(应用本身独有且集成到 SDK 中的字段),与多个其他经过哈希处理并随安装请求一起发送的字段相结合来完成。我们的后端通过签名验证来自 SDK 的流量,如果两者能相匹配,則接受安装。