第45卷第7期2020年7月
Vol.45No.7
July2020环境科学与管理
ENVIRONMENTAL SCIENCE AND MANAGEMENT
文章编号:1674-6139(2020)07-0023-05
基于污染源追踪的PHP源代码漏洞检测方法研究
张媛
(新疆农业职业技术学院,新疆昌吉831100)
摘裏:为了更好的实现对污染源进行准确谴最,提高源代码漏洞检测准确性,提出基于污染源迪席的PHP源
代码漏洞检测方法。首先对污染源代码特征数值进行准确采集和规划,针对不同PHP源代码漏顶数值和相关
数据进行漏顶区域定/位处理,根据定/位结果对源代码漏洞特征级别进行修补,以提高源代码漏洞检测的准确性
和源代码安全性。最后通过实验证实,基于污染源3的PHP源代码漏洞检测方法具有更高的准确性和有效
性,充分满足研究要求。
关键词:污染源;PHP;数据源代码;漏洞检测
中图分类号:X32文猷标志码:A
PHP Source Code Vulnerability Detection Method Based on Pollution Source Tracking
Zhang Yuan
(Xinjiang Agricultural Vocational Technical College,Changji831100,China) Abstract:In order to track pollution sources accuratdy and improve the accuracy of source code vulnerability detection,a PHP source code vulnerability detection method based on pollution source tracking is proposed.Firsdy,the pollution source code characteristic values are accurately collected and planned,and the leaky top regi
ons are located for different PHP source code leaky top values and related data,and the source code vulnerability characteristic levds are repaired according to the location re­sults,so as to improve the accuracy of source code vulnerability detection and source code security.Finally,the experiment proves that the PHP source code vulnerability detection method based on pollution source tracking has higher accuracy and effec­tiveness and fully meets the research requirements.
Key words:pollution sources;PHP;data tracking;source code;vulnerability detection
前言
代码漏洞城MW的过程中,MM賊的数据流解析环境污染数值,以保证检控的正确率⑴。4步对污染源的检破值进行分析,获取源代码构成信息蒯断其安全可靠度数值作为标准参数遊行分析,将文件记为My-PHP-Scan静态格式,以便更好的研究PHP源代码漏洞自主化检控效果,利用污染源追踪和静态检控方法进行实验结果对比,发现该方法对污点型缺陷的检控防揪率比较高,对
收稿日期:2020-04-12
作者筒介:张媛(1981-),女,硕士,讲师,研究方向:计算机网络、网站蝕周围的漏洞缺陷有很高的敏感性。并统一了多类型的PHP源代码静态检控手段⑵o实验证实,基于对实鳏果和数据的比较旨在有力证明该对策可以有效的减少PHP源代码漏洞检控的容错率。
1PHP源代码漏洞检测
1.1PHP源代码翻译解读
为了更好地实现PHP语言的动态位移,对PHP 语言的后台解读设备递行改善,在进行源代码解读的尅I作,其关键是Zend仿真器。Zend仿真器的主要作用是为前端语言的呈现提供支持,对PHP语言的翻译,脚本的解读操作背景,关于制度的扩大和管理内诗信息删优化⑶。在PHP源代码被翻译运行
的同时,Zend会抢先将其翻译成字符段代码继而再对字符段代鹹步骤读粼伽读步骤。
将Zend仿真器的后台系统机构依次划分成:解读层、运行启动器、语法分析以及编辑四个部分。其包括词语解释、语法翻译和编程产生的中心原始代码⑷。把PHP源代码的字符段数列从前往后分裂成标注数列,结合语法翻译原理把收到的标注数列按照词语定义的规则翻译成独立文本,以完成指定的源代码处理工作。根据Zend仿真器对指定的op-
code中央源代码进行语言编码⑸。利用解读生成中央源代码数列的基础按流程去对应方法去调节运行,具体见图1。
图1中央源代码数列处理流程
php文件下载源码
基于上述流程进一步对PHP源代码语法进行分析,对翻译出的源代码进行规范定义,从而正确表述缺陷发生的制度,并进行规范定义,包括敏感根源性规范的定义、安全过滤系统规范的定义、缺陷规范的定义等叭在此基础上,利用分析PHP的核心管控制度对源代码语言的名类型语法掌握基本的理解和翻译,以实现对PHP源代码进行静态解析叭具体PHP源代码静态图解析执行步骤如图2所示。
基于上述步骤进一步对PHP语言的跨平台属性进行分析,对源代码内部涉及数据特征种类进行判断。利用静态技术研究PHP源代码的动态运用特征,在进行源代码翻译解读的过程中,需要注意控制源代码程序中大概率会出现的污染源轨迹,继而再根据实际的源代码检测指令,从概率流程中的采集源代码的状况集合作数据,并建立单个流程节点上的数据流程集合⑻。
图2PHP源代码静态解析执行步骤
假设待测的PHP源代码样本数量为2V且则2V =TP+TN+FP+FN。其中,7P为PSP恶意代码数目;FP为错误标记代码的数量;西是正常代码数目;FN为被错误标记的正常代码⑼。则基于上述
内容进一步对PHP源代码的漏洞检测指标进行设置,具体如下:
指标1:PHP源代码翻译准确性指标可标记
TP+TN
为:
指标2:PHP源代码解读有效性指标可标记
为TP
K:TP+FN。
基于上述标准进_步结合静态研究技术检控PHP源代码进行解读,以便更好的判断源代码当中存在的安全隐患。
1.2PHP源代码异常区域定位
基于上述步骤,进一步对源代码中存在的敏感根源进行检测淀义PHP语言用户增添可操控的输入云端,输入云端污点信息,需要准确的定义和赵PHP源代码信息根源特征,并进行数据信息的安全筛选,以便高效的减少检控结果的偏差率何。在对PHP源代码检测的过程中,需要对缺陷的可触摸节点进行分析,获取能够致使安全隐患发生的导数关系。PHP源代码语言都是可以进行移动的,在对数据流解析和污染源追踪原理对PHP源代码语言漏洞区域进行定位的过程相对较为复杂。因此基于污染源朋原理和类型源代码变量模型检漏洞追踪定位,详细得定义污点漏洞信息,导入攻击信息来源和敏感性函数以及代码缺陷数值
为了可以流畅的处理PHP语言中的审査筛选,从根本上降低漏洞检测偏差,导入有限自主化的字段并进时析。针对PHP语言进行前端编程解译,在前端编程解译完成的前提下,通过编程正向匹配的规定实现PHP编码得静态审査,此类操作基于TS4RATS和Flaw finder等原始编码审査工具方法追踪数据流动的性能,避免源代码漏洞区域定位过程中发生大量偏差的问题。进一步对源代码污点信息数据流移动情况进行分析,具体如图3所示。
图3PHP源代码数据流分析步骤
基于上述步骤进一步对源代码的正向匹配原理进行设计,规范出现的大量的定位偏差。基于污染源追踪和数据流解析的方法对静态PHP语言的动数移数值进行审査和过滤性。
基于污染源朋原刪简单的数据流漏洞进行解析,因此必须对PHP语言的信息类型进行建模,判断其异常区域,对PHP漏洞区域进行定位,主要使用得导入操作进行处理,甚至是处理审査筛选机制,确保研究结果真实有效。
为保障漏洞定位的有效性和准确性,对源代码的移动信息增益数值进行选择,PHP语言的增长速度也是很快的,其本身具有最普遍的web启动脚本。由于PHP源代码是动态位移语言,因此PHP语言和C/C+等语
言是有一定类似性的,但由于C/C+语言是编程型,编程型语言运行的前提就是独立的翻译过程,通过处理源代码翻译变成机动文本从而达到运行,而PHP语言是一种HTML嵌入式脚本语言,轴作的可行性相对更高,具有更高的实用性。为保障PHP源代码操作安全。需要进一步判断PHP源代码操作过程中的平均移动信息量。具体算法如下:
Z(X,Y)
TP+TN
N
__TP_\
TP+FN}-1
2H(X/Y)-1
(1)
+
在上述算法中厨表示PHP源代码信息爛;Y为检测到的异常区域,X为源代码干扰条件爛。若平均互信息量为z(x;y),则进一步对PHP源代码中的不确定性的数值进行消除。在代码漏洞的樋I过程中,若源代码的静态数值为阳),则对代码移动的平均信息量进时算,可得:
心八盏忆喘%⑵
在上述算法中円表示源代码中第j个异常特征数值,若%=1代表区域代码存在异常询=0区域代码安全;C:表示PHP源代码中存第i个特征类别,若恶意代码和为P®),正常代码为P(CJ。若入)表示第j个mw应的迹。
考虑源代码中的漏洞数值变化情况,对待检测区域的恶意代码出现频率和信息增益变化数值进行将,结合加权信息增益原理,以便能够更加准确地选出有效特征,提高恶意代码的准确率和检测率。具体的源代码漏洞区域检测算法如下:
2IIA||i-;||
(3)
基于上述算法可有效实现对PHP源代码漏洞区域的准确定位,以便更好的提高对PHP源代码漏洞的精准颐
1.3PHP源代码漏洞检测的实现
对PHP源代码数据流特征进行解析,整理执行词语理解、语法研究、操作流的解读以及其他流程。并根据整理结果对PHP源代码进行模仿运行,通过完成流程源代码和抽象词语树等的规范和操作,实现对PHP中央源代码的标注,继而获取到流程的操控框架图,调节源代码异常区域的信息结构。
进一步对源代码区域缺陷进行分析,规范即是流程变量属性,提取区域代码中存在的缺陷条件,根据数据变量的属性形式以及数据取值对数
据变量属性和形式进行分析研究。采用状况分析模型获取漏洞源,并在漏洞区域进行代码的对应,判断数据变量数值。基于历史缺陷的整理及其他安全代码的设计标准,规范在流程编码。对PHP 源代码中的相关变量代码进行追踪并对齐属性、形态、取值情况检测,通过静态检控观察其是否存在违反安全编程规范或者缺陷存在的要求,进一步发现源代码中的缺陷。对源代码缺陷区域进行检测,具瞬法如下:
”=超£21<^嬴)(4)
在上述算法中,g代表的是核心代码的关艇度, z为关键变量,取检测结果的值范围在(0,1)之间为了保证全部计算檢当中自行设计的计算规则。
为了保证源代码漏洞检测的精准度,进一步对PHP源代码漏洞进行检测,利用运行速度的二阶增量对未来某一时刻的代码转变频率进行跟踪检测,分析其潜在的漏洞点,结合污染源追踪原理进行优化,对源代码中所要求的核心辅助提供支持,结合前文方法将标准代码数据作为参照标准,以便对检测到的漏洞区域进行修复。在静态状态下对PHP源代码中的数据变量变化数值进行分析,在已经发生污染的前提下,对静态代码数据变量进行采集,对取值范围进行规范,以便更好的加强对PHP源代码漏洞检测的转型,对代码污染源中的污染源检测步骤进行优化,具体流程如图4所示:
图4污染点漏洞字段定位检测
基于上述步骤对PHP源代码的漏洞发生字段进行检测和修补,获取数据流的污点区域及数值,沿着代码设计的流程轨迹进行对比,并对异常数值区域进行提示和反馈,判断污点即漏洞数值的走向,以便体检进行代码的保护处理。进一步査看PHP源代码的所在位置及Source文件存储区域,判断监测出的污点数据和漏洞数值,基于上述检测结果,根据污点对异常区域代码进行截止和规范处理,判断代码漏洞区域的Sink位謝|作是否有必要依靠Source 节点进行修补,并对异常区域特征进行描述。依靠代码特征联系对漏洞点中的字段或者部分源代码进行解译处理,对解译后的代码进行交换执行,以准确获取漏洞字段,并进行代码修复处理。基于上述原PHP源代码漏洞師步骤进行优化,具体步骤如图5所示:
图5PHP源代码漏洞检测步骤优化
基于上述步骤可有效实现对PHP源代码的有效检测,以便更好的提高源代码漏洞检测的准确性,保运行的安全稳定。
2实验结果分析
为验证基于污染源追踪的PHP源代码漏洞检测方法的实际应用效果,进行了对比检测。为保障实瞬果有效性,首颐实验环瞬行统一砸。2.1实验环境
实验代码选择使用静态源代码,没有代码运行的要求,省去了建立web管理器的麻烦,因此昨控实验条件很简单,检控背景一般是基于软硬件设备的检査、测试运行,具体的实验环境如下:
硬件环境(VMWARE仿真化):处理器:Intel Core i78核处理器;内存:16G;硬盘:32G;
软件环境:操作系统:A-bimtu64位系统(HH-VM仅支持128位系统);编程语言:PHP/java;第三方软件:Face book HHVM,Lib Stranger,MON A0进一步对源代码自定义数据格式进行统一设置,具体数据见表1。
表1PHP源代码自定义数据格式规范
字节粉值编码
1100to200address code
2DatdvytelO DataO
3200to300Data5
4Datdvyte20Data10
5300to400Data15
6Datdvyt^O Data20
7400to500Data15
8Datdvyte4O Data30
分别采用SQL注入攻击检测方法,即通过结合词法分析及PHP语言特性,提出基于规则及特征匹配的漏洞检测架构,进而实现PHP源代码的静态检测的方法与文章所述方法对实验使用的静态源代码进行颐
图6对比实验检测结果
2.2实验结果
基于上述实验环境进行对比检测,并记录实验检测结果,具体如图6所示。
2.3实验结论
源代码漏顶的过程中,对代码中的异常信息数融高,则说明相应的師结果瞬准。基于上述实验检测结果可相对于传统代码漏洞師施WW站提出的基于污染源朋的PHP源代码漏洞检测方法具有更高准确性,可以更加快速准确的实现对源代码漏洞进行转检测和修补,避免代码受到攻击,保i躍序运行安全。
3结语
PHP语言是一种HTML嵌入式脚本语言,是在浏览器前端运行的动态位移语言,其内部脚本特征同C语言是有关联的。但比较发现PHP具有更完备的灵活性,可以高效的完成动态操作。为了保证对PHP代码的准确设计,结合污染源追踪原理对源代码漏洞进行检测,为提高检测结果有效性,设计了L/WAMP框架进行核心代码的执行检测,最后通过实验证实,基于污染源追踪的PHP源代码漏洞检测方法具有更高的检测精度,相对于传统方法具有更高的准确性和有效性,充分满足研究要求。
参考文献:
[1]张海云,王小平.基于Hrink PHP框架快速开发新教師招聘材料网上预审系统[J].电脑编程技巧与维护,2017,46⑶:6-12.
[2]彭双和,刘佩瑤,赵佳利.基于特征矩阵的Python克隆代码漏洞检测方法[J].武汉大学学报:理学版,2019,16(5):472 -478.
[3]李亚红,冯东华.激光传感网络恶意代码主动检测系统设计[J]•激光杂志,2019,36⑹:212-215.
[4]段涛,向军,张宏,等.基于混合测试的工控系统攻击测试模拟方法硏宪[J].网络空间安全,2019,34⑶:8-22.
[5]館静.Java语言的程序漏洞检测与诊斷技术应用硏宪[J].中国安全防范认证,2017,26Q:51-54.
[6]李艳华,郝艳,李海威.一种改进的Web应用越权漏洞自动化检测方法硏宪及实现[J].誓察技术,2017,14⑷:72-74.
[7]邓兆琨,陆余良,黄钊.动静结合的网络恶意代码检测技术硏宪[J].计算机应用硏宪,2019⑺:2159-21©.
⑻侯金炳,李彤,常成,等.基于硬件行为的按入式系统固件漏洞检测方法[J].数字技术与应用,2017,11⑷:111-112.
[9]孙易安,胡仁豪.工业控制系统漏洞担描与挖掘技术硏宪[J].网络空间安全,2017,35⑴:75-77.
[10]陈锦富,葛宏河,蔡赛华,等.基于变异技术的笫三方构件安全性测试系统[J].江苏大学学报(自然科学版),2018,39⑴:71-77.