首页 web前端 js教程 为开发人员和安全团队提供主动的 AppSec 持续漏洞管理

为开发人员和安全团队提供主动的 AppSec 持续漏洞管理

Oct 03, 2024 am 11:32 AM

现代软件开发环境中哪些日益增长的网络安全风险让 CISO 忙碌?

开发人员和安全团队面临着越来越多的威胁,从复杂的开源和供应商控制的供应链攻击到 AI 生成的代码引入的漏洞,例如提示注入和 GitHub Copilot 的糟糕代码安全性。现代应用程序通常严重依赖开源组件(例如在 npm、PyPI 或 RubyGems 上找到的组件)和容器化部署,其复杂性增加了挑战。 

考虑到这些风险的规模和复杂性,自动化漏洞管理变得至关重要。手动网络安全流程根本无法跟上潜在漏洞和软件开发的数量和速度。自动化不仅可以加快安全问题的识别和修复速度,还可以确保安全团队定期遵循的这些流程在软件开发生命周期的所有阶段得到一致应用。

特定领域持续漏洞管理的重要性

  • 对开源组件的依赖日益增加:开源组件在现代软件开发中已经变得无处不在。虽然这些组件加速了应用程序开发人员的开发并有助于降低成本,但它们也带来了重大的安全风险。 XZ 后门和 SolarWinds 漏洞等备受瞩目的供应链攻击凸显了当开源依赖项和封闭供应商控制组件中的漏洞被利用时可能造成广泛损害。
  • 在开发中越来越多地使用人工智能生成的代码:生成式人工智能(GenAI)在软件开发中的兴起带来了机遇和挑战。 GenAI 可以显着加快编码任务的速度,但它也可能引入新的漏洞。人工智能生成的代码可能缺乏经验丰富的开发人员通常考虑的安全考虑,从而导致潜在的安全漏洞。其中一个例子是 GitHub Copilot 在 React 中引入了 XSS。
  • 容器化应用程序的快速增长:容器化应用程序已成为部署现代软件的规范。容器提供了许多好处,包括跨环境的一致性和易于扩展。然而,它们也带来了新的安全挑战,特别是在管理容器镜像内的漏洞方面。因此,开发人员可以利用帮助来教育他们如何选择最佳容器镜像和一般容器专业技巧,但自动化 docker 容器镜像漏洞是必须的。

让我们进一步分解一下……备受瞩目的供应链攻击的另一个例子是对 Codecov 的攻击,攻击者通过利用流行代码覆盖工具中的漏洞来访问敏感数据。开发人员的日常工作包括管理与开源依赖项相关的风险。开源依赖项可能会给您的代码库带来直接和传递的漏洞。直接漏洞存在于您明确包含的库中,而传递漏洞则存在于这些库的依赖项中。手动管理这些风险是一项艰巨的任务,因此自动化成为强大安全策略的关键组成部分。

借助 GenAI,GitHub Copilot 或 ChatGPT 等 AI 代码助手会引入真实的潜在漏洞。 GenAI 可能会无意中引入不安全的编码实践或无法识别特定于上下文的安全要求。例如,AI 模型可能生成容易受到 SQL 注入或跨站点脚本 (XSS) 攻击的代码。因此,监控和保护人工智能生成的代码对于维护应用程序安全至关重要。 

安全团队也无法逃脱应对新容器漏洞的复杂性。新容器漏洞的快速出现可能令人难以承受。每个新漏洞都需要及时识别和修复,以防止潜在的漏洞利用。这种复杂性需要具有安全专业知识的自动化解决方案来有效管理容器安全。

容器漏洞可能会对应用程序的整体安全性产生重大影响。单个易受攻击的容器映像可能会危及整个应用程序堆栈。 Snyk Container 等工具可以自动识别和修复容器映像中的漏洞。 Snyk Container 可以建议新的基础镜像标签,以最大限度地减少漏洞数量并自动执行 Pull 请求来更新您的代码存储库。

我们如何缓解所有这些 AppSec 网络安全威胁?

使用 Snyk 进行主动 AppSec 和持续漏洞管理

为了减轻与 AI 生成代码相关的风险,请考虑使用 Snyk Code 等工具。这种快速的 SAST 工具由 Snyk DeepCode AI 提供支持,可以通过插件直接集成到开发人员的 IDE 中。它使用特定于安全的数据训练来识别易受攻击和不安全的代码,确保在开发早期发现并解决问题。

Snyk DeepCode AI 入门非常简单。该插件支持流行的 IDE,例如 Visual Studio Code、IntelliJ IDEA、VS Code 和 PyCharm。 

在 Visual Studio Code 中安装和集成 Snyk DeepCode AI 的快速指南

  1. 安装 Snyk 扩展:
  • 打开 Visual Studio Code。
  • 通过单击窗口一侧活动栏中的扩展图标导航到扩展视图。
  • 搜索“Snyk”并单击 Snyk 扩展上的“安装”。
  1. 使用 Snyk 进行身份验证:
  • 安装后,系统将提示您使用 Snyk 帐户进行身份验证。
  • 按照屏幕上的说明在此处登录或注册。
  1. 启用 Snyk DeepCode AI:
  • 经过身份验证后,导航到活动栏中的 Snyk 视图。
  • 启用 Snyk DeepCode AI 开始扫描您的代码是否存在漏洞。

安装后,侧边栏上的 Snyk 徽标将显示在您的开源依赖项、您自己的代码(或 GenAI 生成的代码)以及 IaC 问题中发现的漏洞和安全问题。

Proactive AppSec continuous vulnerability management for developers and security teams

SAST 工具在为开发人员识别 IDE 中不安全代码模式方面的优势

  1. 实时反馈:当您编写代码时,Snyk DeepCode AI 会实时分析代码,提供有关潜在安全问题的即时反馈。这使得开发人员能够在漏洞在代码库中根深蒂固之前解决它们。
  2. AI 驱动的见解:AI 模型在大量特定安全数据的数据集上进行训练,使其能够识别不安全的编码模式,甚至是 GenAI 引入的编码模式或不良编程实践。
  3. 无缝集成:通过直接集成到 IDE 中,Snyk DeepCode AI 自然地融入开发人员的工作流程,最大限度地减少干扰并最大限度地提高生产力。

让我们看一个缓解 GenAI 引入的漏洞的示例。我在此项目中使用 GitHub Copilot 自动完成代码,该代码创建 Express POST 端点路由来查询 OpenAI API,然后使用 res.send() 将响应发送到浏览器。

但是,如果此有效负载中的响应直接在浏览器中呈现怎么办?如果使用默认的 text/html 内容类型标头发送此请求,则跨站点脚本漏洞将影响正在运行的应用程序。对此我们能做什么?

Proactive AppSec continuous vulnerability management for developers and security teams
正如您在第 31 行上方的注释中看到的,Snyk 建议修复此安全问题。我点击它,几秒钟之内,Snyk DeepCode AI 扩展提出了一种缓解措施,将 res.send() 替换为 res.json,如下所示:

res.json(response.choices[0].message.content);

登录后复制

通过此更改,Express 应用程序强制响应中的内容类型为 application/json,它是通用文本,并且可以允许诸如alert() 之类的文本。

通过在 IDE 中利用 Snyk,开发人员可以使用底层 Snyk DeepCode AI 引擎主动识别和缓解漏洞,确保他们的代码从一开始就是安全的。这种主动的应用程序安全方法在当今的环境中至关重要,因为与开源供应链和 GenAI 生成的代码相关的风险始终存在。

使用 Snyk Open Source 自动化依赖管理

Snyk Open Source 是一款功能强大的工具,旨在帮助开发人员和安全团队管理与开源依赖项相关的风险。随着对开源库的依赖日益增加,对强大且自动化的依赖关系管理的需求变得前所未有的迫切。 Snyk Open Source 提供全面的漏洞扫描和修复功能,确保您的项目保持安全和合规。

在我之前的 Node.js 应用程序中,我还使用了 SQLite 依赖项,Snyk 提醒我存在安全问题,如下所示:

Proactive AppSec continuous vulnerability management for developers and security teams
This vulnerability information is helpful to understand which transitive dependency is introducing the security risk and how to mitigate it, if at all possible. In this case, the transitive dependency inflight is detected to have a medium vulnerability.

Snyk detects that my lockfile and dependency is potentially out of date and so it can’t find a remediation path. However, let’s see the automation in practice when we import the GitHub code repository to Snyk. Doing so, shows the following information on the Snyk application:

Proactive AppSec continuous vulnerability management for developers and security teams
From this point on, Snyk will automatically open new Pull Requests to suggest dependency upgrades when security vulnerabilities are detected in my package manifest.

Managing dependencies is not just about the libraries you directly include in your project. Transitive dependencies—those pulled in by your direct dependencies—can also introduce vulnerabilities. Snyk excels at identifying and remediating vulnerabilities in both direct and transitive dependencies.

Consider the following scenario:

{
  "dependencies": {
    "express": "^4.17.1",
    "lodash": "^4.17.20"
  }
}

登录后复制

In this example, express and lodash are direct dependencies. However, express might have its own set of dependencies, which in turn might have their own dependencies. Snyk will traverse this entire dependency tree, identifying and addressing vulnerabilities at every level.

When it comes to managing container vulnerabilities, Snyk Container helps remove the burden of keeping base image tags up-to-date with security patches.

Snyk Container is a comprehensive solution designed to help developers and security teams manage container vulnerabilities effectively. Containerized application workloads is prevalent at the Enterprise and as is the need to secure these environments. Snyk Container integrates seamlessly into your CI/CD pipeline, providing continuous monitoring and proactive remediation of vulnerabilities in your container images.

One of the standout features of Snyk Container is its ability to automate the creation of Pull Requests to address vulnerabilities in your container images. This automation is a game-changer for both developers and security teams, as it significantly reduces the manual effort required to keep container images secure.

Here's an example of how Snyk Container might automate a PR to update a vulnerable package in a Dockerfile:

FROM node:14.1.0
RUN npm install express
COPY . /app
CMD ["node", "/app/index.js"]

登录后复制

When Snyk Container detects a vulnerability, it automatically generates a PR with the necessary changes to mitigate the issue. This could include updating a vulnerable package or applying a security patch. By automating this process, Snyk Container ensures that vulnerabilities are addressed promptly, reducing the window of exposure.

Proactive AppSec continuous vulnerability management for developers and security teams
By following these recommended base images, you can significantly reduce the number of vulnerabilities in your container images, enhancing the overall security of your applications.

Proactive AppSec continuous vulnerability management for developers and security teams
Snyk Container identified multiple vulnerabilities in this base image and automatically generated PRs to update the image and associated dependencies. The team was able to review and merge these PRs quickly, reducing their vulnerability count by over 30% within seconds by merging the Pull Request and ensuring the CI/CD pipeline tests pass with flying colors.

Proactive AppSec continuous vulnerability management for developers and security teams
This proactive approach not only improved the security posture of their applications but also freed up valuable time for developers to focus on building new features rather than managing vulnerabilities.

以上是为开发人员和安全团队提供主动的 AppSec 持续漏洞管理的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1672
14
CakePHP 教程
1428
52
Laravel 教程
1332
25
PHP教程
1277
29
C# 教程
1257
24
Python vs. JavaScript:学习曲线和易用性 Python vs. JavaScript:学习曲线和易用性 Apr 16, 2025 am 12:12 AM

Python更适合初学者,学习曲线平缓,语法简洁;JavaScript适合前端开发,学习曲线较陡,语法灵活。1.Python语法直观,适用于数据科学和后端开发。2.JavaScript灵活,广泛用于前端和服务器端编程。

JavaScript和Web:核心功能和用例 JavaScript和Web:核心功能和用例 Apr 18, 2025 am 12:19 AM

JavaScript在Web开发中的主要用途包括客户端交互、表单验证和异步通信。1)通过DOM操作实现动态内容更新和用户交互;2)在用户提交数据前进行客户端验证,提高用户体验;3)通过AJAX技术实现与服务器的无刷新通信。

JavaScript在行动中:现实世界中的示例和项目 JavaScript在行动中:现实世界中的示例和项目 Apr 19, 2025 am 12:13 AM

JavaScript在现实世界中的应用包括前端和后端开发。1)通过构建TODO列表应用展示前端应用,涉及DOM操作和事件处理。2)通过Node.js和Express构建RESTfulAPI展示后端应用。

了解JavaScript引擎:实施详细信息 了解JavaScript引擎:实施详细信息 Apr 17, 2025 am 12:05 AM

理解JavaScript引擎内部工作原理对开发者重要,因为它能帮助编写更高效的代码并理解性能瓶颈和优化策略。1)引擎的工作流程包括解析、编译和执行三个阶段;2)执行过程中,引擎会进行动态优化,如内联缓存和隐藏类;3)最佳实践包括避免全局变量、优化循环、使用const和let,以及避免过度使用闭包。

Python vs. JavaScript:社区,图书馆和资源 Python vs. JavaScript:社区,图书馆和资源 Apr 15, 2025 am 12:16 AM

Python和JavaScript在社区、库和资源方面的对比各有优劣。1)Python社区友好,适合初学者,但前端开发资源不如JavaScript丰富。2)Python在数据科学和机器学习库方面强大,JavaScript则在前端开发库和框架上更胜一筹。3)两者的学习资源都丰富,但Python适合从官方文档开始,JavaScript则以MDNWebDocs为佳。选择应基于项目需求和个人兴趣。

Python vs. JavaScript:开发环境和工具 Python vs. JavaScript:开发环境和工具 Apr 26, 2025 am 12:09 AM

Python和JavaScript在开发环境上的选择都很重要。1)Python的开发环境包括PyCharm、JupyterNotebook和Anaconda,适合数据科学和快速原型开发。2)JavaScript的开发环境包括Node.js、VSCode和Webpack,适用于前端和后端开发。根据项目需求选择合适的工具可以提高开发效率和项目成功率。

C/C在JavaScript口译员和编译器中的作用 C/C在JavaScript口译员和编译器中的作用 Apr 20, 2025 am 12:01 AM

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。 1)C 用于解析JavaScript源码并生成抽象语法树。 2)C 负责生成和执行字节码。 3)C 实现JIT编译器,在运行时优化和编译热点代码,显着提高JavaScript的执行效率。

从网站到应用程序:JavaScript的不同应用 从网站到应用程序:JavaScript的不同应用 Apr 22, 2025 am 12:02 AM

JavaScript在网站、移动应用、桌面应用和服务器端编程中均有广泛应用。1)在网站开发中,JavaScript与HTML、CSS一起操作DOM,实现动态效果,并支持如jQuery、React等框架。2)通过ReactNative和Ionic,JavaScript用于开发跨平台移动应用。3)Electron框架使JavaScript能构建桌面应用。4)Node.js让JavaScript在服务器端运行,支持高并发请求。

See all articles