Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 如何在云平台上防止恶意昂贵的查询?_Security_Ddos_Rate Limiting - Fatal编程技术网

Security 如何在云平台上防止恶意昂贵的查询?

Security 如何在云平台上防止恶意昂贵的查询?,security,ddos,rate-limiting,Security,Ddos,Rate Limiting,假设小丑是蝙蝠侠初创公司batmanrules.com的一个极其复杂、装备精良且恶意的用户,比如说,由AWS基础设施托管。batmanrules.com的业务逻辑要求未注册的用户能够向batman.com的REST API层发送http请求,这导致对基于AWS的数据库调用(以某种方式)查询。蝙蝠侠不希望受到DB类型的约束(它可以是SQL或noSQL) 小丑想通过发送尽可能多的http请求来增加蝙蝠侠的AWS账单,从而在财务上毁掉蝙蝠侠。小丑使用书中的所有最新技巧,使用类似DDOS的方法从不同的I

假设小丑是蝙蝠侠初创公司
batmanrules.com
的一个极其复杂、装备精良且恶意的用户,比如说,由AWS基础设施托管。batmanrules.com的业务逻辑要求未注册的用户能够向batman.com的REST API层发送http请求,这导致对基于AWS的数据库调用(以某种方式)查询。蝙蝠侠不希望受到DB类型的约束(它可以是SQL或noSQL)

小丑想通过发送尽可能多的http请求来增加蝙蝠侠的AWS账单,从而在财务上毁掉蝙蝠侠。小丑使用书中的所有最新技巧,使用类似DDOS的方法从不同的IP地址发送http请求,这些IP地址针对batman.com业务逻辑中的各种机制

主要问题:蝙蝠侠如何防止财务破产,同时为普通用户保持服务的平稳运行

假设有大量流量在进行,如何从非恶意查询中剔除“恶意”查询,尤其是在用户未注册的情况下?我知道你可以对IP地址进行速率限制,但是小丑(他是最老练和装备最精良的)不能找到聪明的方法来发出来自不断变化的IP地址的请求,或者调整请求以便没有两个是完全相同的吗

注意:我的问题不是关于拒绝服务——假设网站宕机一段时间也没问题——而是关于蝙蝠侠的财务损失。蝙蝠侠在使建筑在不同负载下上下伸缩方面做了大量工作,他唯一关心的是高负载(由小丑的恶作剧引起)会带来高成本


我的直觉告诉我,这里没有银弹,蝙蝠侠必须在其业务逻辑中构建安全措施(例如,如果流量峰值在某些参数范围内,则关闭)和/或在提交给REST API的所有非平凡请求上要求使用reCAPTCHA令牌

您可以使用AWS WAF并配置规则来阻止恶意用户

例如,一个简单的规则是执行基于速率的阻塞,如果您发现从同一IP地址并发获得的请求量不太可能超过X个,则执行该阻塞

对于高级用例,您可以通过使用Lambda分析请求日志并在WAF中应用块来实现自定义规则

此外,正如您明确指出的,不可能阻止所有恶意请求。我们的目标应该是检查和防止这是一个持续的过程,有适当的体系结构根据需要阻止请求