草庐IT

从 Kubernetes 安全到云原生应用安全

云原生技术爱好者社区 2023-03-28 原文

由于许多组织最初关注的是扫描和分析应用程序代码和基础设施以获取安全洞察力的机制,结果通常是一种反模式,其中一组复杂的重叠和松散集成的工具跨越开发和生产实际上阻碍了工程团队从解决开发过程中的安全问题。而且由于传统的安全工具是为静态环境构建的,考虑到云原生应用程序开发的动态和快速发展的性质,它们的效率通常不是太高。

尽管云原生架构使组织能够构建和运行可扩展的动态应用程序,但它并非没有挑战。根据云安全联盟 (CSA) 的说法,70% 的安全专业人员和工程团队都在努力“左移”,其中许多人无法识别反模式的形成,也无法理解云原生的开发、成本、治理、文化理念等。

认识到范式转变

正如在 CNCF 年度报告的细分中所讨论的,55% 的受访者每周或更频繁地发布代码,18% 每天多次发布代码。微服务的持续采用和实施越来越多地挑战组织——以及遗留应用程序安全工具——  在整个开发过程中跟踪软件漏洞。实施 DevSecOps的工程团队实践和自动化安全工具将更早发现安全风险,节省开发人员时间,加快发布周期,并交付更安全和合规的代码。

此外,安全事件(例如数据泄露、零日漏洞和隐私侵犯)对业务的影响只会继续增长,这使得组织绝对有必要确保安全性成为数字化转型和云原生应用程序开发的关键部分。无论您是 Solar Winds、Zoom 还是受数据泄露影响的众多其他公司中的任何一家,风险都很高,后果从失去客户到破产不等。在美国,平均数据泄露给企业造成 905 万美元的损失,  Log4j 零日漏洞正在影响数亿个应用程序和设备, 数据隐私法规导致罚款 8.88 亿美元(美元). 组织(从字面上)不能再忽视云原生开发引入的不断发展的威胁动态。

使开发人员具有安全意识

开发人员知道如何构建应用程序...... 但他们需要正确的工具、洞察力、流程和 文化 来安全地构建它们。不幸的是,确保工程团队承担安全开发的额外责任是实施 DevSecOps 最具挑战性和最关键的部分之一。根据 SANS 2022 DevSecOps 调查:创建一种文化以显着改善组织的安全态势,管理层支持是促成 DevSecOps 安全计划成功的首要因素。组织需要一种结构化的方法,让领导者参与进来、动员安全拥护者,并确保“安全”成为“完成的定义”不可或缺的一部分。

此外,通过确保工程、安全和运营之间的一致性,鼓励开发人员“提高技能”,并专注于学习和实施有助于提高 Web 应用程序安全性的技术,更重要的是,使团队能够更早地转移安全性进入设计和编码阶段。例如,  OWASP 云原生应用安全 Top 10 提供有关云原生应用程序最突出的安全风险、所涉及的挑战以及如何克服这些风险的信息。OWASP Top 10 鼓励将安全性集成到 CI/CD 管道、参数化查询、验证所有输入、实施错误处理、改进日志记录策略、利用安全框架的优势、保护静态数据和加密、减少敏感数据暴露等准则,实施安全访问控制等。

全面、优先和可行的见解

由于许多原因——速度和灵活性,最显着的是——软件开发的发展已经远远超出了单个开发人员从头开始编写代码的贡献。虽然从现有库中组装应用程序并使用自定义代码将它们连接在一起的做法很常见,但这并非完全没有风险:

  • 全球 95% 以上的 IT 组织在任务关键型 IT 工作负载中使用开源软件 (OSS)。
  • 2021 年,软件供应链攻击增长了 300% 以上。
  • 每年在开源和第三方代码中发现超过 20,000 个常见漏洞和暴露 (CVE)。
正如开发人员安全平台的 5 大评估标准中所讨论的 :

  • Cloud Native Instrumentation:提供深入了解应用程序运行时的工具,是非侵入式的,并且在云原生应用程序中可以很好地扩展
  • 优先和全面的安全洞察:提供应用程序感知的上下文信息,例如跨越应用程序代码、依赖项、容器映像和 Web 界面的使用信息和堆栈跟踪
  • 开发人员教育:为开发人员提供及时的、上下文相关的和可操作的安全见解
  • CI/CD 集成和开发人员体验:将安全性和合规性测试无缝集成并自动化到 CI/CD 管道中了解安全对合规性的影响:通过满足合规性目标确保客户数据的安全和隐私
越来越多地使用开源软件——结合成熟的 DevOps 管道提供的敏捷性和灵活性——继续突出开发速度超过安全性的领域。出于这个原因,工程团队应该评估可以观察正在运行的应用程序的工具,以便为开发人员提供上下文相关的应用程序感知信息。这可能包括使用信息、堆栈跟踪以及涵盖应用程序代码、依赖项、容器镜像和 Web 界面的全面见解。跨应用程序组件的漏洞和不安全代码的识别和关联可以支持工程团队通过帮助开发人员发现、确定优先级和补救最关键的安全风险来防止警报疲劳。

自动化安全测试

当大多数工程团队考虑采用 DevSecOps 时,跨开发和运营无缝集成和自动化安全性的能力是一项必备功能。然而,许多传统的应用程序安全工具专注于通过耗时的“门”或检查点提供反馈,给开发人员带来了开销和摩擦。(顺便说一句,这是反模式的一个很好的例子!)摆脱这种模式实际上代表了安全团队的重大转变,安全团队习惯于强迫开发人员遵守他们的流程和工具。

然而,通过强调直接集成到现有 CI/CD 工作流和工具链中的技术和支持系统,目标应该是在开发和测试期间“自动”观察正在运行的应用程序的行为,以提供安全洞察力,而不需要工程团队浪费宝贵的资源开发时间上下文切换。事实上,回到之前的挑战,确保每个功能测试都成为安全测试有助于将 DevOps 的“你构建它,你运行它”的理念扩展到发现、解决安全漏洞。

有关从 Kubernetes 安全到云原生应用安全的更多相关文章

  1. ruby - 将差异补丁应用于字符串/文件 - 2

    对于具有离线功能的智能手机应用程序,我正在为Xml文件创建单向文本同步。我希望我的服务器将增量/差异(例如GNU差异补丁)发送到目标设备。这是计划:Time=0Server:hasversion_1ofXmlfile(~800kiB)Client:hasversion_1ofXmlfile(~800kiB)Time=1Server:hasversion_1andversion_2ofXmlfile(each~800kiB)computesdeltaoftheseversions(=patch)(~10kiB)sendspatchtoClient(~10kiBtransferred)Cl

  2. ruby-on-rails - Rails 应用程序之间的通信 - 2

    我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此

  3. ruby - 无法运行 Rails 2.x 应用程序 - 2

    我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby​​:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r

  4. ruby-on-rails - Rails 应用程序中的 Rails : How are you using application_controller. rb 是新手吗? - 2

    刚入门rails,开始慢慢理解。有人可以解释或给我一些关于在application_controller中编码的好处或时间和原因的想法吗?有哪些用例。您如何为Rails应用程序使用应用程序Controller?我不想在那里放太多代码,因为据我了解,每个请求都会调用此Controller。这是真的? 最佳答案 ApplicationController实际上是您应用程序中的每个其他Controller都将从中继承的类(尽管这不是强制性的)。我同意不要用太多代码弄乱它并保持干净整洁的态度,尽管在某些情况下ApplicationContr

  5. ruby - 如何使用 Ruby aws/s3 Gem 生成安全 URL 以从 s3 下载文件 - 2

    我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A

  6. ruby-on-rails - 如何在我的 Rails 应用程序 View 中打印 ruby​​ 变量的内容? - 2

    我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby​​中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R

  7. ruby - 如何安全地删除文件? - 2

    在Ruby中是否有Gem或安全删除文件的方法?我想避免系统上可能不存在的外部程序。“安全删除”指的是覆盖文件内容。 最佳答案 如果您使用的是*nix,一个很好的方法是使用exec/open3/open4调用shred:`shred-fxuz#{filename}`http://www.gnu.org/s/coreutils/manual/html_node/shred-invocation.html检查这个类似的帖子:Writingafileshredderinpythonorruby?

  8. ruby-on-rails - 如何在 Gem 中获取 Rails 应用程序的根目录 - 2

    是否可以在应用程序中包含的gem代码中知道应用程序的Rails文件系统根目录?这是gem来源的示例:moduleMyGemdefself.included(base)putsRails.root#returnnilendendActionController::Base.send:include,MyGem谢谢,抱歉我的英语不好 最佳答案 我发现解决类似问题的解决方案是使用railtie初始化程序包含我的模块。所以,在你的/lib/mygem/railtie.rbmoduleMyGemclassRailtie使用此代码,您的模块将在

  9. 世界前沿3D开发引擎HOOPS全面讲解——集3D数据读取、3D图形渲染、3D数据发布于一体的全新3D应用开发工具 - 2

    无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD

  10. 叮咚买菜基于 Apache Doris 统一 OLAP 引擎的应用实践 - 2

    导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵

随机推荐