admin管理员组

文章数量:1532440

2024年2月14日发(作者:)

Python源代码漏洞检测系统的研究

摘要:随着现代社会的不断进步,计算机正在高速发展,人工智能和机器学习也快速发展,Python广泛应用于网络爬虫、机器学习、数据分析等领域,并且Python拥有可公开使用的第三方库,这使得Python在编程语言中的地位越来越高,在2020年显示为常用编程语言的第二位。希望维护网络的安全,同时使python代码的检测达到一个新的维度,基于以上两个愿景,开发了这个系统,为python代码编译工作者们提供一个可供使用的编译环境。

关键词:代码安全漏洞、python、AST技术、代码指纹分析技术。

1.引言

Python编程语言正在快速发展,随之而产生了各种各样的python代码安全漏洞,但是,由于系统的不安全性,无法保证Python脚本在其整个生命周期内都是可信的。并且目前可以检测python代码漏洞的太少,尤其是专注于检测python代码漏洞的系统几乎没有,这使python漏洞的危险性大大提高,若无法及时并有效地检测出相关的漏洞,甚至会造成经济上的重大损失。Python源代码漏洞检测系统的出现就很好地解决了这一问题,只需要在线上便可以对自己编译的代码进行检测。

代码常见的相关漏洞及危害

(1)常见漏洞:SQL注入、assert语句、解析Xml、计时攻击、pickle漏洞等。

(2)相关危害:

①SQL注入:数据库信息泄漏、网页篡改、网站被挂马、传播恶意软件、数据库被恶意操作、服务器被远程控制、破坏硬盘数据。

②assrt语句:不规范使用assert函数,当发生异常时,不管有无权限,都会跳到安全代码。

③解析Xml:身份认证失效、敏感信息泄露。

④计时攻击:暴露行为和方式,Python做web开发时,时间盲注。

⑤pickle漏洞:反序列化攻击。

3.系统概述

Python源代码安全漏洞检测系统是由两个模块组成,分为源代码漏洞检测平台、源代码漏洞分析平台。源代码漏洞检测平台主要运用多种算法与技术对客户提供的代码进行检测,源代码漏洞分析平台是对所检测出的漏洞进行精准的分析,并生成相关的报告。

其中,我们将运用解析AST技术和深度学习的技术来支持源代码漏洞检测平台对python源代码进行检测;我们将运用神经网络中的交叉验证法与支持向量机,以及代码指纹分析技术来支持源代码漏洞分析平台进行对报告进行分析给出结果。

4.系统相关技术

(1)基于重子节点的抽象语法树(AST)的同源对比技术

在实际软件项目开发过程中,软件缺陷预测能辅助测试人员找到项目中可能存在缺陷的位置。通过抽象语法树(AST)可以获取项目模块中的隐藏的结构和语义信息,助于提高缺陷预测的精度。

基于重子节点的抽象语法树(AST)的同源对比技术对本项目的帮助:市面上代码漏洞检测准确率为83%左右,但使用该技术后准确率达到了95%,使代码漏洞的检测精准率提高了12%。

(2)深度学习技术

深度学习是学习样本数据的内在规律和表示层次,学习过程中获得的信息对诸如文字、图像和声音等数据的解释有很大的帮助。深度学习技术将原来的从源代码到提取特征,到训练分类器,最后再输出的相关步骤改为从源代码到学习简单特征,到学习复杂特征,再到训练分类器,最后再输出。

深度学习实际上就是通过一层又一层的中间层实现了复杂的功能,提高了检测的精准度,重点提高了对恶意代码检测的精准度。

(3)交叉验证法

主要用于估计一个预测模型在实际数据应用中的准确度。它是一种统计学上将数据样本切割成较小子集的实用方法。交叉验证的基本思想是把在某种意义下将原始数据进行分组,一部分做为训练集,另一部分做为验证集,首先用训练集对分类器进行训练,再利用验证集来测试训练得到的模型,以此来做为评价分类器的性能指标。

交叉验证法将代码进行分级,便利对漏洞进行分析。效率较同类产品提高了20%。

(4)支持向量机

超平面和最近的数据点之间的间隔被称为分离边缘。支持向量机的目标是找到一个特殊的超平面,对于这个超平面分离边缘最大。在这个条件下,决策曲面称为最优超平面。将SVM算法应用于网络入侵检测中,可以避免传统的机器学习检测方法的局限性。保证系统的分类精度不降低甚至有所提高,提升整个系统的入侵检测性能。

支持向量机算法将代码进行多种分类,便利于定位漏洞的精准度。运用这项技术使系统的精准度较同类产品提高了32%。

(5)代码指纹分析技术

一种通过对比得出待检测源代码与指纹化的漏洞特征间的相似度,再利用相似度计算检测python源代码的方法。这种指纹选取方法相对传统代码检测方法

是革命性的技术方向转变。本系统独创利用代码指纹将代码检测转化为相似度对比,将Python检测水平提高到新的维度。

5.结束语

本系统将对研究python的相关技术人员提供一个可以进行检测的系统,本系统可以在最低的时间和最高的精准度的情况下完成检测。通过对本系统进行相关的研究,达到了检测网络代码安全的效果,完善了网络安全的程度,促进了社会的发展。

参考文献

[1]朱翔宇,张健,高铖,邓丽晨,蒲均益.基于虚拟化环境恶意代码检测系统的设计与实现[J].天津理工大学学报,2020,36(01):12-17+24.

[2]李翼宏. 基于主动学习的恶意代码检测技术研究[D].国防科技大学,2018.

[3]赵明洪,张太红,王正敏.Python程序代码相似度检测[J].现代计算机(专业版),2014(34):30-32.

作者简介:王墨林,男,2001年10月,山东滨州,山东协和学院网络工程专业学生,主要研究方向为计算机网络安全

教师简介:张鲁,女,硕士,高级工程师,山东协和学院网络工程教研室,主要研究方向计算机应用技术、软件工程

本文标签: 检测漏洞代码源代码系统