【51CTO.com快译】近年来,DevOps已经发展成为最受欢迎的软件开发方法之一。DevOps已经对整个软件行业的思维方式和技术前景都产生了重大的影响。如您所见,企业在DevOps实施过程中的成败不仅取决于团队内部成员在文化认识上、以及相关流程上的转变,还取决于Dev和Ops团队的技术实施能力。可以说,每个从事构建和发布工程的软件专业人员都强烈希望成为一名DevOps领域的专家,从而能够在竞争激烈的市场环境中构建出各种云端、本地兼容的软件基础设施。
此外,随着Python和Go等编程语言的引入,我们不但可以借助DevOps工具链,在软件开发的生命周期中实现测试与部署的自动化,而且解决了诸如:软件应用服务的更新、修复和补丁之类的遗留问题,使它们变得更加灵活,进而以高度集成的方式为企业和组织带来最佳的价值。
端点检测与响应(Endpoint Detection Response,EDR)
EDR是一项网络安全技术,可满足持续监控和对各种高级威胁的响应需求。确切地说,在部署应用程序,检测威胁,以及实施预防措施时,它能够保证端点需要最少量的人工干预。
通常,EDR解决方案具有丰富的数据收集和监控功能,可以让组织在遭受严重损害之前,检测并修复各种高级威胁。因此,通过开发并实施EDR解决方案,我们可以在一定程度上保护组织免受各种潜在的网络攻击。
如今,随着各类报道的及时披露,我们发现安全漏洞远比以往任何时候都更为广泛。而其中大多数的安全漏洞都是通过端点进入网络的。通过持续监控网络中端点设备上的恶意活动,EDR方案能够根据攻击的方式,协助使用触发器予以识别,以便在主动分析端点数据的基础上,进而提供针对实时场景的检测和预防措施。
此外,EDR解决方案还具有分析端点上用户和设备的行为,根据可疑活动向系统发送相关警报的能力。相比过去仅使用数字签名来检测各类威胁,EDR能够主动将安全威胁情报运用到基于行为的解决方案之中。总的说来,EDR方案的所有过程都主要基于活动、事件、以及端点上(或与端点)的交互。
DevOps中的安全
近年来,随着业界对于DevOps的宣传,各个企业对于DevOps的实践,人们已经能够意识到向DevOps文化转移的必要性。但是,与之对应的安全性似乎并未得到足够的注意。下面是我们在DevOps方法落地的过程中可能遇到的一些挑战:
1. 环境挑战
我们在实施环境中碰到的任何差异,无疑会导致开发和部署方面的显著不同。因此,我们需要通过变更管理,来有效地应对环境变化的挑战,进而保持交付目标一致性。
2. 开源
在某种程度上,开源项目对于任何业务运营都是至关重要的。随着开源代码的大量使用,DevOps方法在效率上有了显著的提升。如今,开源软件已经脱离了过往“小作坊”产品的形象,逐渐发展成为可以在企业级别上被采用和维护的技术。可以说,有了开源项目,开发团队能够快速获取那些经历了实际商用检验的代码片段,并据此增强特定的应用功能。
不过,一个值得关注的客观情况是:大多数新兴的网络安全应用,往往被视为潜藏着各种高风险的开源漏洞。因此,为了避免成为“实验室的小白鼠”,团队应该通过全面阅读源代码及其相关文档,以了解DevOps工具链中使用到的开源框架,及其常见的提示信息。与此同时,团队还应该通过二次开发与迭代,及时修复各种错误,并发布可用的应用补丁。当然在某些情况下,直接使用市场上成熟的代码库产品也是一种不错的选择。
3. 安全管理
DevOps的成功关键因素之一就是:在创建整体策略时,能够确保安全参数在设计框架中占有一席之地。从各个角度综合来看,良好的安全态势不但可以降低软件交付过程存在的风险,还能够确保自身的合规性。过去,漫长的软件开发周期既没有引入,也无法采用最佳的安全编码实践。这就导致了在编写代码和构建提交的过程中,团队缺乏对安全方法和策略的全面了解。因此,我们有必要将安全编码和管理植入项目开发的整个生命周期。
4. 测试框架
可靠的测试是成功实施DevOps的重要标准之一。如今,我们可以使用各种自动化的工具,来提高开发人员交付代码和构建可执行文件的速度。同时,许多工具可以通过显示代码覆盖率的百分比,来方便测试团队及时、有效地发现和研究代码中的缺陷,以及需要改进的方法,进而对各种测试方案进行调整。这种从瀑布,到敏捷,再到DevOps的方式改进,有利于我们构建出健壮的软件基础设施。
5. 指标和监控
在将软件产品交付给客户之后,如果系统中出现了未曾检测到的延迟,那么就可能会给多个业务线带来不同程度的质量问题。根据本人在该域参与过的各种端到端系统的交付经验,运营人员易于通过带有既定颜色编码的经典GUI,来持续监控和判定目标服务的启、停状态。在此基础上,我们可以通过预先定义服务质量的指标,来及时发现诸如:最终用户在登录某个已启动的应用时,由于程序的挂起或加载时间过长,而无法正常使用的情况。例如:获悉Scrum团队的速度问题,可以帮助我们确定那些影响质量和敏捷性的瓶颈、或关键的技能差距。据此,我们可以在DevOps实践过程中,通过调整相关的基础架构,成功地交付出客户端应用,并为企业带来有价值的服务。
EDR与DevOps的集成
业界常提到的DevSecOps,致力于引入和利用工具与解决方案,来确保应用程序的持续集成、开发和交付。此类服务既能够以应用程序的形式运行在服务器端,又可以“跑”在用户端设备上。其中,工作在端点系统中的EDR方案,可以集成在DevOps的周期内,以方便开发人员跟踪各种错综复杂的活动,并以最快、且自动化的方法解决安全威胁的相关问题。
通常,公有云能够为开发人员提供适用于开发、测试和执行应用程序的云端环境,而DevOps方法主要适用的是社区云,及其提供商所支持的各种工具集。当然,云资源也存在着其自身的安全问题。例如:一旦某个应用存在着的任何配置或代码中的错误,那么其可能受到的攻击面会迅速扩大。而且,各类开发人员往往会使用自己的设备去开发和监控应用程序,因此我们无法保障访问云端资源的、各种类型的设备是否达到了基本的安全态势要求。此时,我们就需要通过在端点、以及在云端的应用上部署并启用EDR方案。
在DevOps中,我们通常会使用EDR方案的如下集成功能,来实现软件产品的安全交付:
- 接受并应用威胁情报(请参见--https://www.esecurityplanet.com/network-security/threat-intelligence.html)
- 能够检测和防范隐蔽的复杂过程
- 全面提供端点的可见化
- 自动化定制警报
- 能够及时检测到那些因为攻击而关闭特定进程
- 检测恶意活动,简化安全事件的响应
- 通过取证功能,可最大程度地减少违规所带来的影响
- 通过数据收集,以建立用于分析的存储库
总结
虽说部署EDR方案并不意味着组织能够一劳永逸地降低受到入侵和攻击的风险。但是,目前流行的EDR解决方案往往基于最先进的技术。而这些技术恰好能够针对请求源和端点所提供的信息进行分析,并产生相应的操作。通过EDR工具与DevOps工具链的集成,企业不但能够在整体流程的自动化执行程度上更进一步,而且可以在服务运行时,及时跟踪各类安全漏洞,修正并消除代码框架中的缺陷。
如今,随着端点设备在产生各种安全事件方面的重要性日益凸显,对于DevOps团队而言,按照测试左移(Shift-left Testing)的理念,将安全管控尽早地植入项目,通过安全编码等方式来保护端点设备,实现对于云端和终端的检查与响应,都是非常值得每一位成员去认真实践的。
原文标题:Essential Role of EDR in Safeguarding DevOps Network,作者:Eshan Kamath
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】