变更管理是企业IT环境的基本组成部分之一。变更管理控制措施的有效性对企业整体风险有直接影响。在这个科技飞速发展的时代,组织正在采用自动化来简化流程。为了使自动化系统有效运行并实现预期结果,拥有复杂的变更管理控制措施至关重要。
尽管软件工程工具的不当使用很容易被恶意行为者所利用,但将变更管理的责任仅归于工程部门将是一个严重的错误。合规部门有义务教育董事会和执行管理层,使其了解实施稳健的变革管理流程的重要性。作为被审计方,工程和DevOps团队了解不当变更管理实践的影响很重要。
审计人员在审计与复杂工具相关的工件以合理鉴证新的变更管理控制措施是否有效时,也发挥着关键作用。所有审计利益相关者都必须了解行业的常见缺陷和最新的技术控制措施,以便轻松适应新的变更管理审计实践。
被审计方的通用实践
代码库工具、持续集成/持续交付(CI/CD)工具和变更文档是工程变更管理的重要组成部分。被审计方使用这些要素的行为直接影响到企业变更管理实践的有效性。
代码库与持续集成和部署
代码库工具通常用于存储源代码和控制代码版本。随着组织走向自动化,使用代码库和版本控制软件提供的分支规则保护(Branch Rule Protection)设置变得越来越重要。分支规则保护设置是一种强大的配置,用于执行职责分离(SoD),使管理员能够防止将任何未经授权的变更合并到主分支。
一个常见的缺陷是允许工程师随意修改分支规则设置。这个缺陷将导致分支规则保护设置的目的无效。如果允许的话,工程师可以在将变更合并到主分支时,将审核者需求数量更改为零以绕过审核者需求。这为工程师或不良行为者提供了实施恶意行为的可能性,并在未经授权的情况下部署自己的变更——从而违反了SoD的要求。
认真实施稳健的变更管理流程的企业应该鼓励实施更强有力的控制措施,以防工程师做出不当变更。代码库管理员限制能够修改分支规则保护设置的用户数量是很重要的。
CI/CD是在自动化的帮助下不断向客户交付应用程序。CI/CD引入了自动化,使变更管理的各个阶段永久化。CI/CD将开发和运营团队聚集在一起,以敏捷的方式开展工作。CI/CD工具作为一些最繁忙的变更管理管道,可以持续地构建和部署。一个通用的实践是在任务完成后无法终止容器和虚拟机。为了降低攻击的概率,重要的是在不需要时删除这些工具,并尽可能以只读模式使用这些工具。
代码库通常包含用于运转企业的敏感信息。稳健和安全的变更管理实践防止代码库成为黑客的滋生地。具有成熟变更管理环境的组织使用的一些最佳实践包括:
变更文档
变更单通常是审计人员用于确定在获得必要批准后是否部署了变更以及是否维护了SoD的主要证据。这些单据通常是工程师们就特定变更进行的对话记录。变更审核人通常将批准作为对话的一部分记录在这些单子中。当批准不明确时,审计人员必须澄清与特定工程师的谈话背景,确定是否获得了批准。当测试的变更样本量和信息不足的样本量较高时,此任务需要更长的时间。监督审计的合规团队应鼓励工程团队提高变更文件的质量。如果审核人员、测试人员(根据需要)和开发人员提供明确的信息,那么在审计过程中花费的时间可以显著减少。
另一个通用实践是通过即时消息平台批准变更。尽管一些组织会将即时消息聊天日志保留一年以上,但其他组织会在60到90天后将其删除。如果聊天记录得到保留,工程团队可以从档案中拿出证据向审计人员展示。然而,这些批准可能会丢失,或者可能在审计时没有提供支持变更批准的证据。因此,重要的是,利益相关者不要鼓励通过即时消息获得批准的做法,而是将批准记录在变更单中,以便有单一的证据来源。这种做法使得审计过程更加高效,并节省了审计期间的宝贵时间。
审计人员的职责
随着新的自动化软件工程工具的出现,审计人员在变更管理方面的职责也发生了变化。重要的是,审计人员要了解这些变化,并在适用的情况下规划其审计方法,包括:
结论
变更管理是审计中的一个动态和不断发展的部分,因此是审计中风险最高的领域之一。审计人员应对变更管理风险所采取的方法不应该是复选,而应该更多地使用专业判断。每个组织使用的工程工具范围不同,因此审计人员必须及时了解新软件工程工具的特点,并相应地制定变更管理审计方法。在此过程中积累的知识有助于审计人员评估在审计与新型变更管理控制措施相关的工件时是否达到了有意义的鉴证水平。与此同时,企业应该专注于完善其变更管理实践,而不是简单地应付审计。成熟的变更管理实践有助于企业更好地定位自己,应对新的法规,并降低未来安全威胁的风险。