小议软件系统安全

发布时间 2024-01-07 08:09:52作者: jackieathome

本文于2019年7月13日完成,发布在个人博客网站上。 考虑个人博客因某种原因无法修复,于是在博客园安家,之前发布的文章逐步搬迁过来。


安全很重要,安全也很花钱,耗费精力,体力。属于投资大,效果不明显的工作内容。

俗话说,道高一尺,魔高一丈。对于防守方来说,在安全上做的再多也不能保证完全安全,适用木桶效应和墨菲定律;对于攻击者来说,只要攻破一点,就能说明安全体系存在漏洞。

攻守双方地位不对等。

系统没有被攻破,并不能说明安全工作很到位,因为极有可能是系统自身价值不足,不值得被攻击。

同样,系统被攻破了,也不能说明安全工作一无是处,可能是某个短板没有识别到,被攻击者意外发现了。

因此,做安全类工作,千万不能抱有侥幸心理,否则现实会分分钟打脸,教自己做人。

世上没有绝对的安全,防守方安全工作的要义在于:

  1. 缩小系统暴露的攻击面。
  2. 提高攻击的门槛。
  3. 提高攻击操作的代价,比如时间,人力,物力等的成本。
  4. 攻击操作产生后,快速识别,快速处置。
  5. 发现攻击后,诱骗攻击者,提供虚假信息给攻击者,让攻击者陷入信息的汪洋大海而不能自拔。
  6. 完善的管理制度,不被内部攻破。
  7. 完整有效的权限认证,鉴权,授权系统。
  8. 记录详细的安全日志,操作日志。

将安全管理融入到日常工作,管理业务的流程和动作中。梳理

  1. 业务资产
  2. 业务流程
  3. 参与角色,岗位和职责
  4. 参与人员等

针对上述方面,分级分类,制定不同的策略和措施。
按照事前,事中,事后,设计管理和技术的管控方案和稽核方案。

按照业务重要性,比如可划分为核心和非核心业务。

核心业务与其它业务要严格隔绝,包括但不限于机房,电源,网络,计算,存储,软件,人员,以及物料,并且做好备份资源的建设和储备,保证业务中断后可在容许范围内恢复。

核心业务与非核心要从物理上做到隔离,二者之间的通信严格受控。

对于核心业务:

  1. 使用的物料清单,包括硬件物料,软件物料。
  2. 采购和废弃的物料。
  3. 物料应用到哪些业务,何时采购,何时退出。
  4. 保存的数据。
  5. 接触数据和使用的人。

上述信息需要及时维护,并定期审视。

对于软件系统的安全:

  1. 通信层安全。
    1)系统之间最小化通信,比如IP,端口,账号等,可使用黑白名单控制。
    2)使用安全信道。
    3)使用更好的硬件。
  2. 操作系统层安全。
    1)使用安全稳定的版本,及时打补丁。
    2)安装系统软件的安全版本,卸载非必要软件。
    3)关闭非必要服务和端口。
    4)控制系统资源的使用配额。
    5)控制账号权限,控制root账号的分发和使用。
    6)控制系统文件和系统软件的访问权限。
    7)监控异常行为,异常现象发生时及时阻断等。
  3. 应用层安全。
    1)使用安全版本,及时修复安全问题。
    2)最小化使用,尽可能使用低权限账号运行应用。
    3)控制应用软件自身文件的访问权限。
    4)控制应用对外开放的账号和用户。
    5)完善应用账户的认证,鉴权,授权能力。
  4. 业务安全。业务流程符合安全要求。

前面的描述有点啰嗦,按照道法术器来分别展开探讨,可能条理性会更好一些。