版本控制和审核:您需要了解的内容
在软件开发领域,最大的公司拥有完善的治理框架。他们的安全策略旨在引导组织取得成功。专注于优先级和策略可帮助组织满足业务和IT需求,并降低风险。
审核检查组织如何满足预定义的要求。这些要求可能因公司或机构而异。因此,治理和合规性取决于组织的风险管理需求。
在上市公司和受监管行业的公司中,审核合规标准通常由法律法规决定。众所周知的例子包括:
萨班斯 – 奥克斯利法案(SOX)
健康保险流通与责任法案(HIPAA)
通用数据保护条例(GDPR)
ISO 26262
其中每项都有一些要求,旨在确保保护您公司的数据和客户信息。
在本博客中,我们将重点关注如何满足合规性并为审核做好准备。我们将审核一些审核员问题,并讨论如何使用服务器日志回答这些问题。这些日志可以突出显示开发人员如何使用您的版本控制系统(VCS)。我们不会深入遵守上述任何具体法律法规。
您的VCS安全策略应包含清晰,全面且定义明确的计划,规则和实践,以规范对系统及其中数据的访问。它还可能包含上述法律要求的规则,具体取决于哪一个适用于您。
准备VCS以进行审核
根据您组织的需要,审核可以是广泛的,并涉及梳理详细的开发记录。这就是你的版本控制系统的用武之地。你应该准备好解决六个基本问题:
您记录的安全策略是什么?
您的员工是否真的了解您的安全策略?
你如何保护你的数据?
如何在整个组织中授予访问权限?
您的HA / DR计划是什么?
对于VCS违规行为,您的对策是什么?
您的文件安全策略是什么?
大多数大公司都记录了安全策略。这些策略的存在是为了防止可能影响您最大限度的灾难。但是,开发团队不接触这些策略也就不足为奇了,这会使您宝贵的知识产权面临风险。
您的版本控制策略应该是您的总体安全策略的子集。它应该与开发人员及其对VCS和其他系统的使用联系起来。为了评估策略的可靠性,审核人员希望将您的文档与已建立的内部流程进行比较。理想情况下,这些会匹配。如果没有,审核员会提出疑虑。根据您的业务和实施成本,您的策略可能需要更改以确保合规性。
您的员工是否真的了解您的安全策略?
审核不仅仅是安全性的技术方面和文档。审核员还将留意员工如何实际遵守您的策略。查看您提供的培训以及您的开发组织如何进行安全策略的更新。
了解贵公司对安全策略的认真程度也很重要。例如,许多公司定期进行培训,以解释个人身份信息(PII)以及如何保护个人身份信息。
通常,培训并非针对开发人员的角色,也不包括可操作的见解。为开发人员提供具体的相关培训以提高他们的安全意识并帮助他们关心安全性非常重要。
你如何保护自己的数据?
许多信息安全策略都侧重于保护敏感数据,例如PII。尽管PII通常不存储在VCS中,但通常将配置数据存储在VCS中,尤其是在基础架构代码(IaC)时代。这使得控制和监控访问变得至关重要。开发分层安全模型有助于从多个角度保护信息。
整个组织的访问权限如何?
审核人员将查看谁有权访问,访问什么以及为什么。不适当地控制访问权限是开发组织中常见且可能具有破坏性的安全风险。目标是证明权限是根据您的安全策略分配的,并且它们是有效的。
保护VCS的一个关键部分是控制对代码的访问,例如,可以提供对客户数据库的访问。这就是为什么对粒度许可系统和实现分层安全性很重要的原因。遵循此策略应该可以帮助您检测何时有入侵者,或内部员工滥用权力(例如,管理员访问用户数据)。
您的HA / DR计划是什么?
根据您的业务和审核类型,您可能需要评估高可用性/数据恢复(HA / DR)计划,因为它会影响业务连续性。我们做“消防演习”是有原因的。它确保在紧急情况下,人们知道该做什么以及去哪里。在收入(以及公司的成功)取决于产品的源代码或硬件设计的公司中,必须包含VCS。
这就是为什么审核人员可能会通过评估您的HA / DR计划来检查业务连续性计划的合规性。问题可能包括:
如果服务器出现故障,您是否可以随时使用故障转移?
有哪些系统可以从备份中恢复?
您最后一次测试您的备份是什么时候?
在发生VCS违规的情况下,您的计划是什么?
如果发生安全事件(如开发人员的笔记本电脑或凭据被盗),您需要确保最小化损害和潜在的负面后果。为了准备这个计划,首先要问自己:
在紧急情况下,哪些员工/角色负责安全事宜?
如果有违规行为,他们应该如何应对?
他们应该联系谁?
他们的笔记本电脑上有哪些代码和/或数据?
我们应该首先开始确保哪些系统和数据?
如果您使用Git,整个项目的代码库通常存储在开发人员的笔记本电脑上是很常见的。在我们之前的博客中, 我们讨论了应对这种情况的方法。
配置服务器日志以满足审核要求
一旦一切尽可能安全,主动监控日常的最佳方式是利用VCS服务器日志。这也有助于解决审核员的问题。
在许多VCS系统中,日志没有您需要的所有信息,有些使得以可用形式检索数据变得复杂。如果您可以获取数据,关键是保留数据足够长的时间以满足合规性需求。由于各种原因,这可能很困难,其中最重要的原因是当存在大量VCS事务时生成的数据量。
服务器日志轮转
在Helix Core中,设置日志以捕获满足审核所需的信息相对容易。即使由于自动化而导致大量事务处理,也可以轻松建立日志的定期轮转,以便更轻松地组织和保留数据。轮转日志的最佳做法取决于组织的规模和需求,但通常每天都会进行。
审核测试
准备审核就像备份一样。如果未经过测试,它就不存在。Helix Core可以降低您的复杂性,简化用户流程并减轻您的管理员负担。它提供了一种更好的方法来满足治理和合规性,以满足整个产品开发组织的审核需求。它保留了整个组织中更改和访问的历史记录,以及对文件,用户和产品发布的审核跟踪。
在Helix Core中,有几种方法可以生成帮助满足审核所需的信息。以下是一些基本步骤:
1. 设置组成员资格和p4保护,使管理员更容易管理访问控制。
2. 使用Helix Core记录用户执行的所有命令及其对所有文件内容的访问权限。这对于知识产权保护以及潜在的审核要求都很重要。
3. 查看结构化或非结构化服务器日志。
许多Helix Core管理员还使用Splunk或开源ELK堆栈等工具来更轻松地分析Helix Core服务器日志,包括实时仪表板。
Perforce帮助您做好准备
将审核视为改善合规性并增强安全性的机会。应定期进行审核,以检查您的数据和策略。在版本控制方面,Helix Core会为您提供有力的帮助。它使您可以更好地了解您的开发环境,并能够将其传达给审核员。
如果您对在整个开发生命周期中简化合规性和报告的方法感兴趣,请调查Helix ALM。Perforce还通过Helix QAC实施编码标准,帮助您确保安全,可靠和可靠的代码。