系统安全的思考¶
世上并没有绝对的安全,只有安全成本的问题。
真正的安全不过是一种意识。
过往¶
网络安全¶
工作相关,做的一直是跟系统安全相关的东西。
前几年的时候在做的是网络安全,所谓的网络安全。
说是网络安全,其实跟安全的关系不是很大,主要还是做网络设备,支持各种协议及功能, 还要尽可能地提高性能。
跟安全的那点儿关系就是,在网络设备里面嵌入了部分跟安全相关的功能。
想来,像访问包过滤(很多厂商也叫 ACL,访问控制列表),NAT 转换这些跟安全的关联性也不大 吧,他们是更倾向于控制和管理的功能;DPI 协议识别呢?算是个基础功能吧,接下来可以根据 识别结果做控制与分析,也可以继续深入的做攻击防御。
那么真正跟安全密切相关的功能有哪些呢? MAC/IP 绑定,攻击防护,网页防篡改等,这在网络安全设备像硬件防火墙这些,的功能中, 着实的算不算主要的功能吧,也不常用。只是说多一个功能就多一个卖点。
其实网路安全设备很少关注自身的安全,挺多厂商把侧重点放在了性能上面。
真的有可以提供整体安全方案的厂商吗?我是不信的,至少国内的厂商是这样的吧。 并不是说这些设备没有必要,确实很多功能还是很好的,但是跟系统安全相差的还是很远的吧。
现今¶
真正的系统安全¶
换过工作之后负责系统的一个安全模块,对安全有了稍微深入一点的理解。
安全与易用,在某种程度上会有一些冲突,但这个程度肯定不会很大。
易用也是一种安全,想用户所想。 系统遭遇到安全威胁时,用户能想到的,系统帮他去做了,用户没有想到的, 系统也帮他做好了,系统也帮他做了,这是易用,也是安全。
因此,系统的正确行为定义也是安全的基础,在威胁出现时不能做出正确响应,就没有安全可言了。
安全是不能有短板的,不仅要保证数据的安全,还要保证用户输入的安全,传输的安全等等, 缺了任何一个环节,就像系统有了漏洞一样,攻击者顺着这个漏洞可以获取系统中的很多东西。
安全的核心工作应该是在后台默默完成的,很少的提示用户,更很少让用户来选择, 就像武侠小说中的扫地僧,绝大多数时候用户都意识不到他的存在,他只是在后台默默的做着 自己的工作,他的存在只是为了那突然的攻击出现的时候。
稳定也是一种安全,我们无法保证每一次的修改都可以做到全系统的测试,而每次修改对系统 哪些模块有影响又是不完全预知的,尤其是系统的基础架构,略一更改影响面都很大。系统不 稳定就很容易出问题。
其实,安全是一种意识,这种意识应该无处不在。 开发中的安全意识保证我们的系统漏洞更少,系统更稳健。 如果我们在开发中测试代码随便写,变量不初始化,溢出不检查,系统就很容易被攻击。
使用中的安全意识保证了我们自己这个系统更加不容易被骗。 我们自己如果更加的注意自己的隐私不随意泄露,遇到电话 / 网络诈骗时可以多核实,社会 工程学也不那么容易就获取到我们的电话、邮箱、密码等信息了。
只要在系统的所有环节做到一般性的防护,就已经比在系统的关键环节做很强的防护但在 其他环节不防护安全很多了。