学习交流

学习园地

当前位置: 首页 >> 学习交流 >> 学习园地 >> 正文

审计人员应如何做好变更管理审计?

发布日期:2023-09-02    作者:Kishan Sath     来源: ISACA    点击:

变更管理是企业IT环境的基本组成部分之一。变更管理控制措施的有效性对企业整体风险有直接影响。在这个科技飞速发展的时代,组织正在采用自动化来简化流程。为了使自动化系统有效运行并实现预期结果,拥有复杂的变更管理控制措施至关重要。

尽管软件工程工具的不当使用很容易被恶意行为者所利用,但将变更管理的责任仅归于工程部门将是一个严重的错误。合规部门有义务教育董事会和执行管理层,使其了解实施稳健的变革管理流程的重要性。作为被审计方,工程和DevOps团队了解不当变更管理实践的影响很重要。

审计人员在审计与复杂工具相关的工件以合理鉴证新的变更管理控制措施是否有效时,也发挥着关键作用。所有审计利益相关者都必须了解行业的常见缺陷和最新的技术控制措施,以便轻松适应新的变更管理审计实践。


被审计方的通用实践


代码库工具、持续集成/持续交付(CI/CD)工具和变更文档是工程变更管理的重要组成部分。被审计方使用这些要素的行为直接影响到企业变更管理实践的有效性。


代码库与持续集成和部署


代码库工具通常用于存储源代码和控制代码版本。随着组织走向自动化,使用代码库和版本控制软件提供的分支规则保护(Branch Rule Protection)设置变得越来越重要。分支规则保护设置是一种强大的配置,用于执行职责分离(SoD),使管理员能够防止将任何未经授权的变更合并到主分支。

一个常见的缺陷是允许工程师随意修改分支规则设置。这个缺陷将导致分支规则保护设置的目的无效。如果允许的话,工程师可以在将变更合并到主分支时,将审核者需求数量更改为零以绕过审核者需求。这为工程师或不良行为者提供了实施恶意行为的可能性,并在未经授权的情况下部署自己的变更——从而违反了SoD的要求。

认真实施稳健的变更管理流程的企业应该鼓励实施更强有力的控制措施,以防工程师做出不当变更。代码库管理员限制能够修改分支规则保护设置的用户数量是很重要的。

CI/CD是在自动化的帮助下不断向客户交付应用程序。CI/CD引入了自动化,使变更管理的各个阶段永久化。CI/CD将开发和运营团队聚集在一起,以敏捷的方式开展工作。CI/CD工具作为一些最繁忙的变更管理管道,可以持续地构建和部署。一个通用的实践是在任务完成后无法终止容器和虚拟机。为了降低攻击的概率,重要的是在不需要时删除这些工具,并尽可能以只读模式使用这些工具。

代码库通常包含用于运转企业的敏感信息。稳健和安全的变更管理实践防止代码库成为黑客的滋生地。具有成熟变更管理环境的组织使用的一些最佳实践包括:

  • 实施告警工具,以便在修改规则集时通知所有管理员

  • 在为任何关键目的修改规则集之前,需要寻求其他管理员的批准

  • 每月或每季度对代码库的日志进行管理审查,标记任何未经授权的合并或更改


变更文档


变更单通常是审计人员用于确定在获得必要批准后是否部署了变更以及是否维护了SoD的主要证据。这些单据通常是工程师们就特定变更进行的对话记录。变更审核人通常将批准作为对话的一部分记录在这些单子中。当批准不明确时,审计人员必须澄清与特定工程师的谈话背景,确定是否获得了批准。当测试的变更样本量和信息不足的样本量较高时,此任务需要更长的时间。监督审计的合规团队应鼓励工程团队提高变更文件的质量。如果审核人员、测试人员(根据需要)和开发人员提供明确的信息,那么在审计过程中花费的时间可以显著减少。

另一个通用实践是通过即时消息平台批准变更。尽管一些组织会将即时消息聊天日志保留一年以上,但其他组织会在60到90天后将其删除。如果聊天记录得到保留,工程团队可以从档案中拿出证据向审计人员展示。然而,这些批准可能会丢失,或者可能在审计时没有提供支持变更批准的证据。因此,重要的是,利益相关者不要鼓励通过即时消息获得批准的做法,而是将批准记录在变更单中,以便有单一的证据来源。这种做法使得审计过程更加高效,并节省了审计期间的宝贵时间。


审计人员的职责


随着新的自动化软件工程工具的出现,审计人员在变更管理方面的职责也发生了变化。重要的是,审计人员要了解这些变化,并在适用的情况下规划其审计方法,包括:

  • 采取全面的方法执行变更管理(仅仅依靠从单据系统收集的总体并测试这些单据的做法可能是不够的。)

  • 了解流程链(即开发、测试、部署和回滚)

  • 了解范围内每个代码库的审核要求,以及执行职责分离的自动化控制措施

  • 检查范围内每个代码库具有开发人员和管理员访问权限的用户列表(这也将有助于澄清哪些用户可以修改每个代码库的规则集。)

  • 了解哪些用户有权访问生产环境,并确定哪些用户有特权访问生产环境和部署工具,以及代码库工具(看到用户有权访问代码库和生产环境可能并不总是一个危险信号,因为DevOps团队拥有多方面的技能,在一个连续循环模型上工作,管理着整个开发、测试、部署、运营的应用程序生命周期并不断重复这些阶段。)

  • 研究代码库工具生成的活动日志(如果日志中记录了任何可疑活动或对自动规则集的恶意合并或修改,则应执行必要的尽职调查,了解这些活动背后的原因。)

  • 研究在审计期间添加到和从代码库工具以及生产和部署工具删除的所有用户的日志(在某个时间点获得的用户列表可能无法清楚地说明是否有未经授权的用户在审计期间访问了关键工具,即使是在短时间内,因为用户列表只捕获了新用户,而没有捕获已删除的用户或临时用户。)

  • 确定用于生成部署到生产环境的变更的最佳来源(从通用单据系统生成的每个单据条目可能都不会影响生产环境。重要的是要找出最佳来源,获得影响生产环境的完整和准确的变更列表。)

  • 记住针对任何到达生产环境的变更维护SoD的传统要求(至少,应该有一个以上的人员知道部署到生产环境中的变更。在自动化部署的时代,审计人员了解如何审查变更并将其合并到主分支至关重要。)

  • 确保生产数据不会以任何形式在测试或开发环境中使用

  • 尽管执行了所有其他尽职调查,如检查日志和时间点用户列表,但仍执行访问设置、访问取消设置以及用户和管理员访问审查测试等传统测试


结论


变更管理是审计中的一个动态和不断发展的部分,因此是审计中风险最高的领域之一。审计人员应对变更管理风险所采取的方法不应该是复选,而应该更多地使用专业判断。每个组织使用的工程工具范围不同,因此审计人员必须及时了解新软件工程工具的特点,并相应地制定变更管理审计方法。在此过程中积累的知识有助于审计人员评估在审计与新型变更管理控制措施相关的工件时是否达到了有意义的鉴证水平。与此同时,企业应该专注于完善其变更管理实践,而不是简单地应付审计。成熟的变更管理实践有助于企业更好地定位自己,应对新的法规,并降低未来安全威胁的风险。