大模型在应用开发安全左移实践

1.应用开发安全左移势在必行

近年来,应用系统被入侵或敏感信息泄漏类的安全事件时有发生,大部分安全事件的根本原因是应用软件设计或实现中存在安全漏洞。由于软件安全性问题导致各种信息泄密、信息被篡改、网络服务中断的事件频发,给企业和政府的社会形象和经济效益造成难以挽回的损失。这暴露了软件在其生命周期从设计、编码、测试到安全响应等不同阶段的安全管控缺失,以及需求提供者、软件开发者、测试人员、系统用户和运维人员等不同项目干系人的安全能力不足。目前的各种软件开发方法并不能保证生产出安全的软件,解决软件安全问题不是个独立的过程,应贯穿于整个软件开发和维护过程,需要一个系统性的安全解决方案,与软件开发生命周期有机结合进行实施,才能有效减少软件安全漏洞和降低其风险。

为了提升我国软件信息系统安全,《信息安全技术 网络安全等级保护基本要求》GB/T 22239-2019针对第二级系统和第三级系统均提出了应用系统安全检测相关要求。与其事后亡羊补牢不如未雨绸缪,为减少应用系统漏洞带来的攻击威胁和损失,需要开展各项合规检测和安全防护工作,需从软件供应链源头抓起,从立项到下线全生命周期进行安全管理。通过把体系流程、人和工具相结合,在软件开发生命周期中把安全相关的内容提炼成系统性的方法论,提高软件的安全成熟度,从软件源头上解决应用程序的安全问题。应用开发安全左移是一种将安全措施和实践提前到应用开发早期阶段的策略。

传统上,安全往往在应用开发的后期阶段,如测试或部署时才被重点关注。然而,这种方式可能导致发现问题后的修复成本高昂,甚至可能需要对应用架构进行重大修改。应用开发安全左移的主要目标是在开发流程的一开始就将安全纳入考虑,包括需求分析、设计、编码等阶段。其优点包括:

1. 降低成本:早期发现和解决安全问题,避免后期大规模的返工和修复。

2. 提高效率:减少开发周期中的安全阻碍,使开发过程更加顺畅。

3. 增强安全性:从源头设计安全的应用,而不是事后补救。

2.采用大模型助力安全需求左移

大语言模型(Large Language Models,简称LLM)是一种基于深度学习的自然语言处理(NLP)模型,旨在理解和生成自然语言文本。大语言模型被用于文本分类、情感分析、机器翻译等任务。应用系统开发人员由于存在编码安全知识薄弱、组件引用来源管控不严,给应用开发带来潜在风险。

1. 代码漏洞风险

开发人员可能因不了解常见的安全漏洞类型,如 SQL 注入、跨站脚本攻击(XSS)、缓冲区溢出等,而在编写代码时引入安全隐患。

2. 错误的安全配置

在应用的配置环节,如服务器配置、数据库配置等,由于缺乏安全知识,可能设置了不安全的参数,导致应用易受攻击。

3. 忽视数据保护

不了解数据隐私法规和最佳实践,可能导致用户数据的不当收集、存储和传输,引发数据泄露风险。

4. 难以满足安全要求

在面对安全审计和合规检查时,无法提供符合安全标准的开发文档和安全管控代码,导致应用无法通过审核。

为了确保网络系统的安全性和可靠性,各种安全标准规范应运而生。应用系统开发建设同样需要符合众多政策法规、标准制度要求,需要理解融合众多的标准规范,以指导应用系统安全架构设计和信息系统安全保护。开发人员和相关管理人员需要知悉、遵守众多法律法规、标准规范。众多安全标准规范进行对标和融合,有利于指导建设和提升工作效率。传统的安全标准融合方法靠人工将每个标准规范逐条映射到对应的框架,例如COBIT、ISO27001等。然而当前技术方法存在以下问题。

1)由于人工理解不同,对安全需求归类产生差异。

2)由于人工操作局限性,对条款映射出现错误操作。

3)由于条款众多融合条款的相关性、相斥性,难以整体把控。

4)条款和实施措施的映射关系缺乏对照和参考。

针对上述问题,可以采用基于大模型应用开发安全标准规范多标融合方法,旨在整合不同的标准规范,提供统一、准确的指导。通过引入自然语言处理(NLP)和人工智能(AI)技术进行标注和融合,训练自动融合算法,减少人工工作量。大语言模型经过大量文本数据训练的语言模型,由于参数量巨大,这些模型可以更好地捕获文本的语义信息,从而在多种任务上取得更好的效果。大语言模型可以存储更多的词汇和短语,可以更好地理解文本的含义,从而在问答、摘要生成等任务上取得更好的效果。大语言模型在开发安全标规范对标融合方面的应用,体现了其在促进自然语言处理技术、跨学科融合、特定领域应用以及资源高效化等方面的重要作用。大模型的发展得益于计算能力的提升和大规模数据集的可用性。通过增加模型的参数量和层数,大模型能够提高模型的表达能力,并在更广泛的领域中取得出色的性能。将大模型技术用于软件系统安全开发,可以大大提高开发效率,形成行业安全开发标准和知识库。

开发者在日常工作中面临着诸多繁重的开发工作,如撰写业务或功能代码、分析优化代码、识别修复代码安全漏洞、查询学习技术文档等。这些工作不仅耗时多,且很难避免人为产生的疏漏。采用先进AIGC技术和机器学习算法,能够快速准确地完成代码预测补全、图片生成代码、代码翻译、生成接口文档、代码优化、生成单侧、安全漏洞识别及修复等功能,助力开发者高效、流畅编码。利用在烟草行业业务场景下积累的内容安全数据,基于历史敏感词,使用内容生成算法形成特有的检测问题库。同时结合团队在大模型安全领域攻防经验形成的衍生问题库,形成了特有的面向大模型内容安全的检测能力。

3.大模型助力应用安全开发

“安全左移”实践过程中遇到的问题,具体而言主要涉及安全工具和人员技能两大方面。首先,在工具层面,现有代码安全工具在准确性、漏洞成因描述及修复方案适配等方面均存在不足,不能满足安全左移至研发的场景;另一方面,研发人员在安全意识和技能水平方面存在较大差异,初、中级研发人员安全编码能力相对较弱,通常难以脱离安全人员支持来独立修复漏洞。鉴于上述两点,将安全左移理念成功应用于开发者场景的成功案例少之又少。例如,传统的代码安全产品,普遍都没有帮助开发者解决好“快速定位问题代码”的问题,难以将代码与特定开发者相对应。导致开发人员必须在拿到整体代码包的安全检测报告后,在大量问题中筛选出自身负责的部分,再进行修复,这种模式很影响安全响应的效率。在实际的项目过程也发现,很多客户在devsecops的建设方面已经有所成绩,但是devsecops的建立并不意味着能实践好开发安全左移,在devsecops的流程中可能是在上线前设置安全检测卡点,漏洞的发现和修复一般是在系统发布阶段,这并没有降低漏洞的修复成本。当然相对于以往的devops流程,安全性很大的提高,但是距离我们认为的真正的开发安全左移,还有比较大的差距。

图片

如上图所示,海云安公司的开发者安全智能助手D10系统基于大模型技术助力应用安全开发。D10系统如下图所示,分为IDE客户端、SAST(静态应用程序安全测试)&SCA(软件成分分析)检测管理端和LLM服务器三部分。IDE客户端面向开发者,通过对接调用SAST&SCA检测管理端和LLM服务器为开发者提供代码组件安全检测和AI缺陷解释修复等功能。SAST&SCA检测管理端主要面向管理人员,负责统计管理代码项目和代码组件检测等。LLM服务器主要为IDE客户端和SAST&SCA检测管理端提供AI智能技术支持。

图片

通过开发者安全智能助手D10系统,可以帮助开发人员:

  • 代码自动补全:在日常编码中,D10可以通过分析上下文和学习代码模式,提供智能的代码自动补全建议,从而提高开发效率。

  • 解释代码:D10能够解释代码,帮助开发者理解特定代码片段的功能和实现方式,提供更深层次的代码理解支持。

  • 生成代码:通过学习大量的代码库和模式,D10可以生成符合需求的代码片段,加速开发过程,尤其在重复性工作中发挥重要作用。

  • 代码审查:D10能够进行代码审查,提供高质量的建议和反馈,帮助开发者改进代码质量、遵循最佳实践。

  • 自然语言查询:开发者可以使用自然语言查询与D10进行交互,提出问题或请求,以获取相关代码片段、文档或解释,使得开发者更轻松地获取需要的信息。

4.应用开发安全左移成效

将大模型技术运用到应用开发安全,有效的建立融会贯通的安全需求知识库和安全设计知识库指导产品安全建设。同时大模型技术的开发者安全智能助手D10赋能开发人员可提供代码安全保障,降低编码工作门槛,提升编码效率,释放研发生产力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/51286.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# 泛型类型的约束详解与示例

文章目录 一、泛型约束概述二、泛型约束详解与示例1. 类约束2. 接口约束3. 引用类型约束4. 值类型约束5. 无参数构造函数约束6、多重约束7、默认构造函数约束8、基类和接口的组合约束 三、总结 在C#编程语言中,泛型是一种非常强大的特性,它允许我们编写可…

图解Redis五大数据类型

五种数据类型的不同之处&#xff0c;是value在存储时的形式不同。 hash类型 value类型是<key,value>键值对。如果发生hash冲突&#xff0c;用开放定址法解决&#xff0c;不拉链&#xff01; key值重复&#xff0c;则新值覆盖旧值 List类型 Set类型 与List的类似&…

3款一键AI智能改写软件,轻松改出高质量文章 tzq

随着科技的不断发展&#xff0c;人工智能技术正逐渐渗透到各个领域。在写作方面&#xff0c;一键AI智能改写软件的出现&#xff0c;为人们提供了更加便捷高效的写作工具。无论是写作初学者还是专业作家&#xff0c;都可以通过这些软件轻松改写出高质量的文章。本文将介绍三款优…

查找数学类文献的专业数据库有哪些 如何获取这些数据库资源

一、MathSciNet&#xff08;美国数学会《数学评论》&#xff09; MathSciNet数据库是美国数学学会出版的《数学评论》Mathematical Reviews和Current Mathematical Publications的网络版&#xff0c;包含《数学评论》自1940年出版以来的所有评论文章&#xff0c;包括期刊、图书…

【AI+编程】只需1句提示词0代码生成前端展示效果

最近被Vercel发布的V0 编程效果惊艳到了&#xff0c; 不管是前端开发 还是立志成为全栈工程师的 同学&#xff0c;不可错过。 官网地址&#xff1a;https://v0.dev/chat/ 代码生成工具很多&#xff0c;不管是github copilot、阿里的通义灵码&#xff0c; 腾讯云的AI代码助手…

PyTorch升级之旅——主要组成模块

本文仅作为个人学习记录使用 文章目录 前言 一、深度学习的简单流程 二、基本配置 三、数据读入 四、模型构建 五、模型初始化 六、损失函数 七、训练和评估 八、可视化 九、PyTorch优化器 总结 前言 学习链接&#xff1a;第三章&#xff1a;PyTorch的主要组成模块…

leetcode 80 删除有序数组中的重复项 II

正文 仍旧使用双指针&#xff0c; 思想与 leetcode 26 删除有序数组中的重复项 一致。只是此时因为要求保留重复元素两次&#xff0c;我们的左侧指针可以从第二个数据开始&#xff0c;且右侧指针需要和两个元素的值进行判断。 class Solution:def removeDuplicates(self, nums…

深度学习入门:循环神经网络------RNN概述,词嵌入层,循环网络层及案例实践!(万字详解!)

目录 &#x1f354; RNN 概述 1.1 循环神经网络 1.2 自然语言处理 &#x1f354; 词嵌入层 2.1 词嵌入层的使用 2.2 关于词嵌入层的思考 2.3 小节 &#x1f354; 循环网络层 3.1 RNN 网络原理 3.1.1 RNN计算过程 3.1.2 如何计算神经元内部 3.2 PyTorch RNN 层的使用…

Flask返回Json格式字符,中文导致unicode乱码问题

一.问题描述 或者直接返回json格式的字符串 从上图可以看出&#xff0c;当flask实现的接口响应中存在中文时&#xff0c;接口返回json字串的中文为unicode乱码。 二.问题解决 百度搜索了很多&#xff0c;原来在创建flask app时使用json格式的字符串&#xff0c;默认是ascii编…

字节微前端框架Garfish

Garfish 是字节跳动开源的微前端框架&#xff0c;旨在应对现代 Web 应用在前端生态繁荣与应用日益复杂化背景下的挑战。本文将介绍如何使用 Garfish&#xff0c;提供代码示例&#xff0c;并与另一流行的微前端框架 Qiankun 进行对比分析。 安装 Garfish 首先&#xff0c;安装…

快速排序模版

1.霍尔法 #include <iostream> using namespace std; int partition(int *arr,int left,int right){int pivotIndexleft;while(left<right){while(left<right && arr[right]>arr[pivotIndex]){right--;}while(left<right && arr[left]<a…

vTable实现多维表格

介绍 vTable是字节开发的一款能用来渲染表格的库&#xff0c;是用canvas渲染&#xff0c;避免了传统用dom组件表格的一些问题&#xff0c;能很快的渲染出上万格子的表格。 接下来我将使用vTable构建类似下面的多维表格&#xff0c;其中quantity、sales等是指标。 使用 官网地址…

【精选】基于大数据的___银行信用卡用户的数仓系统的设计与实现(全网独一无二,最新定制)

目录&#xff1a; 关键技术介绍 PYTHON语言简介 大数据介绍 MySql数据库 DJANGO框架 Hadoop介绍 Scrapy介绍 B/S架构 系统的设计 系统总功能模块设计 系统测试 系统测试的目的 软件测试过程 6.3测试用例 参考代码&#xff1a; 为什么选择我&#xff1a; 博主介绍&am…

自动驾驶-机器人-slam-定位面经和面试知识系列10之高频面试题(04)

这个博客系列会分为C STL-面经、常考公式推导和SLAM面经面试题等三个系列进行更新&#xff0c;基本涵盖了自己秋招历程被问过的面试内容&#xff08;除了实习和学校项目相关的具体细节&#xff09;。在知乎和牛客也会同步更新&#xff0c;全网同号&#xff08;lonely-stone或者…

Elasticsearch安装 Kibana安装

安装Elasticsearch 一、拉取镜像或者上传 docker pull Elasticsearch 二、将上传的镜像导入(在仓库拉取的这一步跳过) docker load -i es.tar docker load -i 三、创建容器 1.Elasticsearch 注意修改到自己的网络&#xff08;第八行&#xff09; docker run -d \--nam…

2014年4月-2023年上市公司秩鼎ESG评级数据

2014年4月-2023年上市公司秩鼎ESG评级数据 1、时间&#xff1a;2014年4月-2023年11月 2、来源:秩鼎数据 3、指标&#xff1a;证券代码、SC、评级日期、ESG评级、ESG等级、ESG得分、E评级、E等级、E得分、S评级、S等级、S得分、G评级、G等级、G得分、总市值(亿元)、流通市值(…

电脑硬盘坏了怎么恢复数据?

在数字化时代&#xff0c;电脑硬盘作为存储核心&#xff0c;承载着我们的工作文档、学习资料、家庭照片以及无数珍贵的回忆。然而&#xff0c;硬盘作为机械设备&#xff0c;也有其寿命和脆弱性&#xff0c;一旦出现故障&#xff0c;数据恢复便成为了一个紧迫而棘手的问题。本文…

电子元器件之聚丙烯膜电容(CBB)

很多人对硬件感兴趣&#xff0c;要么就是想学一门手艺&#xff0c;找一份相关的工作。要么就是对电子感兴趣&#xff0c;想自己做些东西玩玩。虽然现在很多电子模块已经很成熟了&#xff0c;稍微连接一下线路就能做一个自己电子小制作&#xff0c;网上也有很多教学视频。 但大…

「Python程序设计」基本数据类型:字符串

​在python的程序设计过程中&#xff0c;字符串是需要经常处理的变量类型。字符串在程序中的存储方式&#xff0c;类似于一维数组&#xff0c;每个字符占据数组中的一个单元格。 字符串可以存储字符类型的变量&#xff0c;即使是数字类型&#xff0c;也可以通过字符串来进行存…