如何检测和防止(有效的)恶意网络请求?例如企业间谍活动
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 能够大规模创建欺诈检测系统的方式。
我不想听起来像是在创作电影情节 - 这是一个场景:
网站使用复杂的分类报价系统为客户创建报价。
心怀恶意的人决定创建一个机器人,并通过使用各种参数,向垃圾邮件发送报价并从根本上复制您的报价模型。
问题:您如何对此进行检测和预防。网络请求基本上是合法的。
我的一些想法是通过 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 能够大规模创建欺诈检测系统的方式。