如何检测和防止(有效的)恶意网络请求?例如企业间谍活动

How to detect and prevent (valid) malicious web requests? e.g. corporate espionage

我不想听起来像是在创作电影情节 - 这是一个场景:

网站使用复杂的分类报价系统为客户创建报价。

心怀恶意的人决定创建一个机器人,并通过使用各种参数,向垃圾邮件发送报价并从根本上复制您的报价模型。

问题:您如何对此进行检测和预防。网络请求基本上是合法的。

我的一些想法是通过 IP 地址监控请求频率。

您是否从服务器级别处理此问题,例如IIS 日志和设置或 application/code 级别?有没有第三方应用程序或插件来监控这种事情?

我担心这可能会引起讨论,而不是直接回答,但我正在寻找一些起点和方向。

一些想法确实没有特别的顺序:

  • 您可以进行一些机器学习和访问者流量分析:无论 IP 是什么,该机器人都会有一组编程指令 - 很可能会逐句通过您所有可用的报价。当然,违规行为者可能会执行一些 "random" 位操作,因此机器人并不总是具有完全相同的行为。
  • 与此同时,您可以预期类似的流量块将流向相同的 IP。如果您对其进行监控,您可能会开始看到一些模式
  • 您还可以使用 Javascript 进行一些机器人检测,例如是否有任何鼠标点击,如果有的话在哪里? x,y 是否与 (0,0) 不同?

是人还是机器人?

CAPTCHA 开始,消除人类机器人。 Google 投资于技术并拥有一些复杂的方法。

IP 是欺诈系统的信号,而不是解决方案

您可以尝试限制 IP 地址,但这会失败,因为 IP 与个人之间没有关联。大多数手机和公司用户都通过单个 public IP 进行 NAT。

了解您的基线(和其他信号)

  • 测量您的典型报价/分钟数。
  • 对用户输入的 quality/uniqueness/etc 进行排名。 (是用户名"asdf 123")

使用信号作为总分

获得信号后,您可以组合它们来确定风险评分。

系统不应只有二进制 - 阻止或允许

如果您只有两个选择——阻止或允许——那么您要么会惹恼别人,要么不够严格以防止滥用。建立一个中间地带。

例如,停止返回完整的报价,而是要求用户提供他们的电子邮件地址,并通过电子邮件发送完整的报价结果。

人比计算机更擅长欺诈检测

一旦达到风险阈值,请专人审核请求,如果看起来合法,则发送电子邮件。

这就是 paypal 能够大规模创建欺诈检测系统的方式。