小议软件系统安全
本文于2019年7月13日完成,发布在个人博客网站上。 考虑个人博客因某种原因无法修复,于是在博客园安家,之前发布的文章逐步搬迁过来。
安全很重要,安全也很花钱,耗费精力,体力。属于投资大,效果不明显的工作内容。
俗话说,道高一尺,魔高一丈。对于防守方来说,在安全上做的再多也不能保证完全安全,适用木桶效应和墨菲定律;对于攻击者来说,只要攻破一点,就能说明安全体系存在漏洞。
攻守双方地位不对等。
系统没有被攻破,并不能说明安全工作很到位,因为极有可能是系统自身价值不足,不值得被攻击。
同样,系统被攻破了,也不能说明安全工作一无是处,可能是某个短板没有识别到,被攻击者意外发现了。
因此,做安全类工作,千万不能抱有侥幸心理,否则现实会分分钟打脸,教自己做人。
世上没有绝对的安全,防守方安全工作的要义在于:
- 缩小系统暴露的攻击面。
- 提高攻击的门槛。
- 提高攻击操作的代价,比如时间,人力,物力等的成本。
- 攻击操作产生后,快速识别,快速处置。
- 发现攻击后,诱骗攻击者,提供虚假信息给攻击者,让攻击者陷入信息的汪洋大海而不能自拔。
- 完善的管理制度,不被内部攻破。
- 完整有效的权限认证,鉴权,授权系统。
- 记录详细的安全日志,操作日志。
将安全管理融入到日常工作,管理业务的流程和动作中。梳理
- 业务资产
- 业务流程
- 参与角色,岗位和职责
- 参与人员等
针对上述方面,分级分类,制定不同的策略和措施。
按照事前,事中,事后,设计管理和技术的管控方案和稽核方案。
按照业务重要性,比如可划分为核心和非核心业务。
核心业务与其它业务要严格隔绝,包括但不限于机房,电源,网络,计算,存储,软件,人员,以及物料,并且做好备份资源的建设和储备,保证业务中断后可在容许范围内恢复。
核心业务与非核心要从物理上做到隔离,二者之间的通信严格受控。
对于核心业务:
- 使用的物料清单,包括硬件物料,软件物料。
- 采购和废弃的物料。
- 物料应用到哪些业务,何时采购,何时退出。
- 保存的数据。
- 接触数据和使用的人。
上述信息需要及时维护,并定期审视。
对于软件系统的安全:
- 通信层安全。
1)系统之间最小化通信,比如IP,端口,账号等,可使用黑白名单控制。
2)使用安全信道。
3)使用更好的硬件。 - 操作系统层安全。
1)使用安全稳定的版本,及时打补丁。
2)安装系统软件的安全版本,卸载非必要软件。
3)关闭非必要服务和端口。
4)控制系统资源的使用配额。
5)控制账号权限,控制root账号的分发和使用。
6)控制系统文件和系统软件的访问权限。
7)监控异常行为,异常现象发生时及时阻断等。 - 应用层安全。
1)使用安全版本,及时修复安全问题。
2)最小化使用,尽可能使用低权限账号运行应用。
3)控制应用软件自身文件的访问权限。
4)控制应用对外开放的账号和用户。
5)完善应用账户的认证,鉴权,授权能力。 - 业务安全。业务流程符合安全要求。
前面的描述有点啰嗦,按照道法术器来分别展开探讨,可能条理性会更好一些。
本文来自博客园,作者:jackieathome,转载请注明原文链接:https://www.cnblogs.com/jackieathome/p/17949629