正文
苹果的USB-C接口设计产生了一个必须推翻自己才能修复的漏洞, 所以说这是一个糟糕的设计。对于软硬件的兼容性设计,第一,一定要注意兼容的对象是否为同一类,不同类的对象最好不要强容,苹果这个设计就没有将控制指令的输入设备(键盘)与数据输入设备(U盘)这两类对象区分对待,导致了这个越权漏洞的产生;第二,兼容性设计者需要确保鉴权机制能够识别不同的对象输入,对不同的对象输入走不同的处理,避免出现控制指令输入设备可以伪装数据输入设备,代码可以伪装成数据输入的漏洞,借用一句经典的话——“圈子不同,不要强容”。
误区二:降低成本设计
架构设计者也会非常关注架构的成本,能以最少的成本实现系统是体现设计者水平的重要标志,所以架构设计者的设计总有降低软硬件成本的倾向,这种倾向本没有错,但如果在错误的地方降了成本,给系统带来极大的安全风险,就得不偿失了。
例如下面这个因为降成本设计导致服务器无法防范CC攻击的场景。很多设计者会将每台服务器的负载率设定得非常高,高达50%-70%,希望减少服务器的部署以降低成本,但是在正常业务场景下就有这么高的负载,被CC攻击的时候会很容易被瘫痪,安全专家也没有办法在服务器上实施安全策略以防御攻击。CC(Challenge Collapsar)是一种HTTP层的DDos攻击,它通过发送大量HTTP层的请求,以达到让被攻击的目标网站瘫痪的目的。Challenge Collapsar的中文意思是挑战黑洞,大家可能会觉得它的名字有点怪,这里涉及攻击命名者与一个防火墙产品的纠葛,黑洞是一款知名的防火墙产品,意思很明显了,命名者想说黑洞防火墙也防不住他的这种攻击。目前国内领先的几家DDos清洗设备安全厂商可以基于特征防御一些普通的CC攻击,但是对于一些没有数据段特征,并且有大量代理IP的CC攻击仍然没有办法。这个时候防御的重点战场就必须转移到服务器上来了,通过业务服务器上更多业务场景的数据,以及更容易编程实现复杂的安全策略优势来检测攻击请求,举个例子,比如我们通常业务场景下,来自河南省的访问量很少,而攻击的时候该省的访问量上升10倍,我们可以对该省的访问量丢掉80%,从而防御攻击,并且最大限度的降低对业务的影响。