软件生命周期的安全性需要加强

2016-03-03 08:01:00 作者:红黑联盟 分类 : 比特网

\

  信息安全领域各类解决方案现在已经发展的相当不错,在授权及管理机密信息上是由人来操作。自动化也正在逐步接管。应用程序、服务器、甚至网络现在都不需要手工配置部署了。这是伟大的变革,我们的系统和传输管道变得越来越快,越来越强大。这都依赖于自动化,然而,仍需一个转变,我们需要考虑如何保护我们的基础设施以及运行在上面的应用程序。

  当权力下放给非人类操作者,我们希望能够确保它们只做我们要求的事。现代的基础设施是能够干活的牛,而不是宠物。现代分布式系统的规模使得照顾个别组件太耗费时间。一个虚拟机或者容器运行的时间可能要少于用于记录它们存在的时间。在这篇文章中,我将介绍在现代软件交付生命周期中的几个常见的步骤,并分享最佳做法,以确保它们的安全性。

  开发阶段

  一个需要注意的问题是检查源代码中的秘密值,没有经过检查的源代码会导致新的问题,另外如果你的软件不能在无凭证状态下运行,这将是一种依赖关系。跟踪依赖关系会是一场噩梦。

  这个问题有几种方法。我们当然会采用最简单的方法,将解决问题的过程简单化有利于工作完成。

  一个恰当的解决方案必须满足这些标准:

  1.本地化的简单工作流程;

  2.保证最小特权,没有共享密钥;

  3.凭证的更替不应该阻碍开发工作流程;

  4.更替或者访问凭证需要被记录在案。

  让我们来看一下在保证秘密的情况下如何进行源代码控制:

\

  在上面的图表中,“也许”意味着它是可能的,但取决于实施和规模。在开发机上存储秘密值使得它很难管理谁访问了什么凭据;存储加密后的秘密值解决了一个问题,但创建了另一个问题:解密密钥分配。这些密钥也是秘密的,必须加以管理。嵌入凭证处理到配置管理或部署工具会使得工作流程变得复杂。它也阻碍了合作,因为在这些系统中存储的秘密值必须被锁定到一个值得信赖的用户,这会扼杀创新,阻碍速度。

  显然,引用存储加密是最灵活的,虽然它可能会增加一些前期的复杂性。但它在运行时,并没有在系统中留下凭证,凭证是从源获取的。使用例如Summon这类工具可以让你和供应商之间交换秘密值,同时保持相同的开发工作流程。还有很多类似的工具。

  持续集成

  一旦你有十几个项目,保持一个安全可靠的持续集成的工作流可能会成为负担,除非你采取措施防止复杂性发生蔓延。这些步骤中许多来自于CI(Continuous integration)工作十因素

  不管你使用SaaS CI 系统还是托管到自己的系统,把自己的工作管理配置提交到控制源是伟大开端的第一步。这样做可以让你随着时间的推移查看更改工作配置,并且审查变化。另外,如果你的CI系统出故障,你也可以在源头控制它。这也使得你的开发人员在推送代码之前可以在本地测试CI系统中的副本。你可以将CI界面设置为只读,只允许通过源代码控制进行更改。自托管的CI系统例如Jenkins、 Go CD, Bamboo 和 TeamCity 都支持这个,通过授权策略或者插件。Travis CI 和 Circle CI这类托管CI系统使用YAML文件来管理项目目录,因此他们也支持这种模式。如果你的CI系统不允许通过源代码进行配置,那你可以考虑换用别家的CI产品。

  现在你的CI工作定义在源控制中,同样,秘密值不能放在工作配置中。此外,由于CI工作短暂运行性,可以给予他们在运行时访问秘密值的权限。一个强大的基于角色的访问控制系统可以在工作需要秘密值时临时授权,工作结束即取消授权。这会大大降低你的服务器的威胁面。

  最后,要警惕你在源代码控制系统中给予CI系统广泛的开放特权。这是许多主机CI的一个问题,例如,默认情况下,他们可以读写访问你的Github中的repo。而对于大部分工作流程,只读访问,每个项目使用token或者访问密钥都是很好的做法。

  部署

  CI系统也经常被用做部署系统,表面上看,这似乎是一个好主意。CI中也是生产的产品,为什么不能直接部署呢?问题是,需要构建工件的凭证和用户访问的集合,可以肯定的说部署它们不会使用相同的集合。

\

  这就相当于“把所有鸡蛋放到同一个篮子里”,也违背了安全要求的“最小特权”。在现代分布式系统中,每一部分都应该只能访问它自己所需的资源来完成它的工作。

  增强持续集成的作用,因为部署也需要人力成本。现在CI系统有了所有的密钥,就需要做相应的操作锁定它,防止滥用。

  最后,对于部署系统来说,自动管理是至关重要的。在运行环境中产生的问题应该能够自动被记录下来,并且能够被任何人访问。

  考虑创建单独的角色和系统来处理你的系统中的构建和部署。明确的职责分离使得管理安全策略和访问两个系统都比它们被合并更容易。

  运行

  在运行环境中你需要记录日志,日志记录大部分的数据是操作,服务器负载,每秒请求,等等。你并不需要过于关注这些,状态变化的可见性才是真正的目标。

  同时也应当尽量避免人工维护,因为这很难跟踪,容易出错,有点不切实际。

  自动化是一个可靠的做法。在这里要注意的一点是,你不会捕捉到日志中的敏感数据。这里的目标是向任何想要它的人打开数据。在您的日志中有数据库密码意味着您必须锁定访问权限,只有“可信”用户。

  最后,权力下放给自动化工具应该是具体的。只授予所需的特权,会让你的系统更容易理解。

  总结

  自动化所提供的控制和可视性可以使它更容易理解大型复杂系统。安全提供了一个安全的环境,以了解更多的系统,我们需要进行调整,以更好地满足我们的需求。

芥末视频

最近更新
科普

科普图集
带着朋友和机器人上月亮散步

带着朋友和机器人上月亮散步>>详情

邮件订阅

软件信息化周刊
比特软件信息化周刊提供以数据库、操作系统和管理软件为重点的全面软件信息化产业热点、应用方案推荐、实用技巧分享等。以最新的软件资讯,最新的软件技巧,最新的软件与服务业内动态来为IT用户找到软捷径。
商务办公周刊
比特商务周刊是一个及行业资讯、深度分析、企业导购等为一体的综合性周刊。其中,与中国计量科学研究院合力打造的比特实验室可以为商业用户提供最权威的采购指南。是企业用户不可缺少的智选周刊!
网络周刊
比特网络周刊向企业网管员以及网络技术和产品使用者提供关于网络产业动态、技术热点、组网、建网、网络管理、网络运维等最新技术和实用技巧,帮助网管答疑解惑,成为网管好帮手。
服务器周刊
比特服务器周刊作为比特网的重点频道之一,主要关注x86服务器,RISC架构服务器以及高性能计算机行业的产品及发展动态。通过最独到的编辑观点和业界动态分析,让您第一时间了解服务器行业的趋势。
存储周刊
比特存储周刊长期以来,为读者提供企业存储领域高质量的原创内容,及时、全面的资讯、技术、方案以及案例文章,力求成为业界领先的存储媒体。比特存储周刊始终致力于用户的企业信息化建设、存储业务、数据保护与容灾构建以及数据管理部署等方面服务。
安全周刊
比特安全周刊通过专业的信息安全内容建设,为企业级用户打造最具商业价值的信息沟通平台,并为安全厂商提供多层面、多维度的媒体宣传手段。与其他同类网站信息安全内容相比,比特安全周刊运作模式更加独立,对信息安全界的动态新闻更新更快。
新闻中心热点推荐
新闻中心以独特视角精选一周内最具影响力的行业重大事件或圈内精彩故事,为企业级用户打造重点突出,可读性强,商业价值高的信息共享平台;同时为互联网、IT业界及通信厂商提供一条精准快捷,渗透力强,覆盖面广的媒体传播途径。
云计算周刊
比特云计算周刊关注云计算产业热点技术应用与趋势发展,全方位报道云计算领域最新动态。为用户与企业架设起沟通交流平台。包括IaaS、PaaS、SaaS各种不同的服务类型以及相关的安全与管理内容介绍。
CIO俱乐部周刊
比特CIO俱乐部周刊以大量高端CIO沙龙或专题研讨会以及对明星CIO的深入采访为依托,汇聚中国500强CIO的集体智慧。旨为中国杰出的CIO提供一个良好的互融互通 、促进交流的平台,并持续提供丰富的资讯和服务,探讨信息化建设,推动中国信息化发展引领CIO未来职业发展。
IT专家网
IT专家新闻邮件长期以来,以定向、分众、整合的商业模式,为企业IT专业人士以及IT系统采购决策者提供高质量的原创内容,包括IT新闻、评论、专家答疑、技巧和白皮书。此外,IT专家网还为读者提供包括咨询、社区、论坛、线下会议、读者沙龙等多种服务。
X周刊
X周刊是一份IT人的技术娱乐周刊,给用户实时传递I最新T资讯、IT段子、技术技巧、畅销书籍,同时用户还能参与我们推荐的互动游戏,给广大的IT技术人士忙碌工作之余带来轻松休闲一刻。