降低因恶意访问导致资金或资源包损失的风险

由于场景和业务存在差异性,以下建议可能无法完全适配您的实际环境或满足特定要求,并不等同完整的安全解决方案,仅作为参考。
如果您的OBS桶或并行文件系统遭受恶意攻击或流量盗刷,会引发信息泄露和流量激增,造成资源包耗尽、高额账单等较大的资金损失,且一旦账户余额耗尽进入欠费状态可能会影响业务正常运行:
- 账单风险
一旦桶遭受恶意攻击或流量被盗刷,会引发流量激增,由于OBS基于实际使用的流量进行计费,因此这些恶意行为产生的所有流量费用均需由您自行承担,最终形成远高于正常使用水平的高额账单。
- 欠费风险
受计费周期及账单处理延迟等因素制约,无法在账户余额耗尽的瞬间立即暂停服务,这就导致当恶意攻击引发高额费用时,可能出现账户欠费。账户欠费可能会影响业务正常运行 ,造成更大范围的损失。
您可以参考本文给出的一系列防护建议,有效规避此类风险,提升存储安全防护能力。
阻止桶公共访问
公共访问是指请求者无需拥有特定权限或身份验证即可访问桶和桶内数据,存在数据泄露和恶意访问导致大量外网流量的风险。为了避免这些风险,OBS支持为桶配置阻止公共访问功能(Block Public Access,以下简称BPA),以确保数据的安全性。借助BPA,桶拥有者可以集中轻松限制资源的公共访问。启用该功能后,已有的公共访问权限会被忽略,并禁止创建新的公共访问权限配置,以保障数据的安全性。
了解具体详情和操作步骤,可参考阻止桶公共访问。
修改ACL为私有访问权限
除非您有明确需求,允许包括匿名访问者在内的所有人员对您的OBS资源进行读写操作,否则尽量避免将桶或对象的ACL设置为 “公共读写(public-read-write)” 或 “公共读(public-read)”。以下是对这两种公共权限的说明:
- 公共读写:任何人(包括匿名访问者),都有权对该桶内的对象进行读写操作。任意用户都能访问桶内对象,并可向桶中写入数据,这不仅可能导致数据泄露,还会因为大量写入操作使费用急剧增加。更严重的是,若恶意写入违法信息,还会损害您的合法权益。因此,除特殊场景外,不推荐配置公共读写权限。
- 公共读:只有桶所有者能写桶内数据,但任何人(包括匿名访问者)都能进行读操作。由于互联网上的任何用户都能访问桶内数据,同样存在数据泄露和费用激增的风险,操作时务必谨慎。
考虑到“公共读写”或“公共读”带来的数据安全隐患,强烈建议您将桶或对象的读写权限设置为 “私有(private)”,即只有桶或对象所有者才能够读写桶和桶内数据,其他人员均无法访问。但在将ACL修改为私有前,请务必确认您的业务不会受到影响。了解具体详情和操作步骤,可参考ACL的相关内容。
通过桶日志监控恶意访问IP
开启桶日志,监控桶日志中的“Remote IP”字段,该字段用于记录发起访问请求的IP地址,您可以灵活使用该字段实现桶的安全防护:
- 识别陌生或可疑IP地址的访问:分析Remote IP字段可识别来自陌生或可疑IP地址的访问尝试,进而发现潜在的恶意攻击,如暴力破解、数据窃取等。如果发现某个IP地址频繁发起异常访问请求,就可以采取相应的安全措施,如限制该IP的访问权限。
- 对存储桶的访问流量进行分析和管理:监测Remote IP字段来观察不同IP地址或IP地址段的流量使用情况,发现异常的流量高峰时及时采取措施应对可能的网络拥塞或DDoS攻击。
- 历史记录审查:定期回顾桶日志中的Remote IP字段历史记录,查找长期存在但未被发现的异常访问模式或潜在的安全威胁迹象。例如,发现某个IP地址在过去一段时间有异常行为,通过历史记录审查可以及时发现并采取措施。
了解具体详情和操作步骤,可参考桶日志。
配置防盗链
在HTTP协议中,通过表头字段referer,网站可以检测目标网页访问的来源网页。有了referer跟踪来源,就可以通过技术手段来进行处理,一旦检测到来源不是本站即进行阻止或者返回指定的页面。防盗链就是通过配置基于请求标头Referer的访问规则,去检测请求来源的referer字段信息是否与白名单或黑名单匹配,如果与白名单匹配成功则允许请求访问,否则阻止请求访问或返回指定页面,从而防止其他网站盗用您的文件,并避免由此引起的不必要的流量费用增加。
例如,某个桶配置了白名单Referer为https://11.11.11.11。
- 用户A在https://11.11.11.11嵌入test.jpg图片,当浏览器请求访问此图片时会带上https://11.11.11.11的Referer,此场景下OBS将允许该请求的访问。
- 用户B盗用了test.jpg的图片链接并将其嵌入https://22.22.22.22,当浏览器请求访问此图片时会带上https://22.22.22.22的Referer,此场景下OBS将拒绝该请求的访问。
了解具体详情和操作步骤,可参考防盗链。
设置跨域资源共享
跨域资源共享(Cross Origin Resource Sharing,CORS)是由W3C标准化组织提出的一种网络浏览器的规范机制,定义了一个域中加载的客户端Web应用程序与另一个域中的资源交互的方式。而在通常的网页请求中,由于同源安全策略(Same Origin Policy,SOP)的存在,不同域之间的网站脚本和内容是无法进行交互的。OBS支持根据您的业务场景灵活配置CORS规则,实现允许或者拒绝相应的跨域请求,确保跨域数据传输的安全性。
了解具体详情和操作步骤,可参考配置CORS实现跨域访问OBS。
避免使用顺序前缀的方式命名文件
如果您在上传对象时采用容易被总结规律的方式进行对象命名,比如按照时间戳、字母顺序排列、日期或数字ID等,攻击者一旦发现命名规律,即可根据规律批量获取文件,导致数据泄露。为了避免这种情况,建议使用更安全的命名方法,例如在文件名前加上十六进制哈希值,这种随机生成的字符序列很难被预测,能降低文件名被恶意遍历的风险,进而降低恶意访问的风险。