家人们
点击上方蓝字关注我
今天还是假期,我就想到哪讲到哪咯。
其实吧,在现代的网络环境下,我们只要理解并且能应用一些核心原则就能显著提升系统的整体安全性,很多系统有问题有漏洞的根因并不是技术,而是没有把这些核心原则执行落实到位,我大概列一下关键的原则吧。
威胁建模
通过威胁建模能识别和评估出系统内的潜在风险。具体做法包括识别核心资产、潜在安全问题,评估威胁的影响和发生概率,并制定相应的策略。
最小权限和职责分离
我们实践中经常会无视这一点,无论是运维系统还是给研发开个什么账号,最小权限和职责分离长期被忽视,至于为什么被忽视?这属于公说公有理婆说婆有理,可能是系统权限系统划分的不好,也有可能是嫌麻烦,还有可能是对最小权限原则和职责分离没概念。具体做法就是仅只给用户执行其所需功能的最小权限、定期审计和更新权限、RBAC、把任务和权限分配给不同的人员等等。
纵深防御
分层安全策略,就是利用多个冗余防御措施来保护我们的核心资产,网络分段、防火墙、入侵检测 or 防御、加密、认证、访问控制和定期审计等等,纵深防御在实践中常见的问题就是设备和软件左一层右一层,但每一层都没人认真维护,甚至配置的基础策略是 Allow All 而不是 Deny All...
默认配置安全
这个简单,就是保证系统在默认配置时是安全的,例如在基础镜像中禁用不必要的工具和服务、强制使用强密码和 MFA 等等。按理说安全设备厂商或者软件服务提供商应该做好默认配置安全的,不过很多厂商为了可用性和降低投诉概率,选择优先保证默认配置的可用性,而不是安全性。
安全的异常和简洁设计
确保我们做的系统在遇到什么 crash 或莫名其妙的异常时仍保持安全,一个例子就是假设用户密码输入错误你别给用户的其他信息吐出来呀(有案例);同时保持设计的简洁性,这样能提高系统整体的可靠性。
零信任原则
这里不是说你要买某一家的服务,只是在你自己系统建设时要多注意这一点(Never trust, always verify),例如你肯定不能默认内网流量全是安全的对吧?但遗憾的是很多公司内网就是给了默认安全...再例如有些系统只在入口处校验一遍访问请求的合法性,之后就不管了,按照零信任的原则我们就应该对每一个访问请求做验证。
隐私设计
主要涉及合规和监管,我们在系统、流程的设计中,要让个人隐私数据在默认情况下受到保护,这里面的关键原则也是数据最小化、数据收集要征得用户同意、数据保护措施落地等。
责任共担
这一点好像不是有很多人注意到,现在云服务渗透率很高的,云上安全是由云服务商和我们共同承担,好好看看协议,无论是IaaS、PaaS 还是 SaaS,有些服务商的责任划分和 SLA 不会和你细讲,也不要听商务说的天花乱坠,看合同看 SLA 即可,国内的案例我就不举了,看看 Capital One数据泄露、Accenture 被勒索、Facebook 数据泄露等案例吧,云服务商的内心还是倾向于甩锅给用户的。
大家好好享受假期吧,端午安康!
点点赞 点点关注 点点文末广告 抱拳了家人们
创作不易
关注一下
帮忙点点文末广告
原文始发于微信公众号(imBobby的自留地):[周末闲聊] 构建安全系统的核心原则!
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论