Loading [MathJax]/jax/output/HTML-CSS/jax.js
高级搜索

留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

模糊测试中的位置自适应变异调度策略

杨智 徐航 桑伟泉 孙浩东 金舒原

杨智, 徐航, 桑伟泉, 孙浩东, 金舒原. 模糊测试中的位置自适应变异调度策略[J]. 电子与信息学报, 2024, 46(9): 3797-3806. doi: 10.11999/JEIT240060
引用本文: 杨智, 徐航, 桑伟泉, 孙浩东, 金舒原. 模糊测试中的位置自适应变异调度策略[J]. 电子与信息学报, 2024, 46(9): 3797-3806. doi: 10.11999/JEIT240060
Hu Jin-feng, Kong Ling-jiang, Zhou Zheng-ou. Research on Wave Velocity Estimation for Ground Penetrating Radar[J]. Journal of Electronics & Information Technology, 2006, 28(11): 2003-2006.
Citation: YANG Zhi, XU Hang, SANG Weiquan, SUN Haodong, JIN Shuyuan. Position-Adaptive Mutation Scheduling Strategy in Fuzzing[J]. Journal of Electronics & Information Technology, 2024, 46(9): 3797-3806. doi: 10.11999/JEIT240060

模糊测试中的位置自适应变异调度策略

doi: 10.11999/JEIT240060
基金项目: 国家自然科学基金(62176265)
详细信息
    作者简介:

    杨智:男,教授,研究方向为操作系统安全、云计算安全和隐私保护

    徐航:男,硕士生,研究方向为软件安全性分析

    桑伟泉:男,硕士,研究方向为网络安全与人工智能

    孙浩东:男,硕士生,研究方向为软件安全性分析

    金舒原:女,教授,研究方向为漏洞挖掘、网络攻防、人工智能安全和操作系统安全

    通讯作者:

    徐航 1174290091@qq.com

  • 中图分类号: TN915.08; TP393.08

Position-Adaptive Mutation Scheduling Strategy in Fuzzing

Funds: The National Natural Science Foundation of China (62176265)
  • 摘要: 种子自适应变异调度策略是基于变异的模糊测试中最新的技术,该技术能够根据种子的语法和语义特征自适应地调整变异算子的概率分布,然而其存在两个问题:(1)无法根据变异位置自适应地调整概率分布;(2)使用的汤普森采样算法在模糊测试场景中容易导致学习到的概率分布接近平均分布,进而导致变异调度策略失效。针对上述问题,该文提出一种位置自适应变异调度策略,通过一种自定义的双层多臂老虎机模型为变异位置和变异算子建立联系,并且采用置信区间上界算法选择变异算子,实现位置自适应的同时避免了出现平均分布的问题。基于American Fuzzy Lop(AFL)实现了位置自适应的模糊测试器 (PAMSSAFL),实验结果表明位置自适应的变异调度策略能明显提升模糊测试器的bug发现能力和覆盖能力。
  • 随着智能交通的深入研究和快速发展,增强现实、自动辅助驾驶等新兴应用不断被提出。为了支持这些应用,通常需要在车辆端快速处理复杂任务。随着技术的不断成熟,新型车辆将拥有强大的计算能力,同时新能源汽车将通过配备能源收集(Energy Harvest, EH)设备收集环境中的太阳能等绿色能源,促进车载设备的自我可持续性和不间断运行,实现绿色节能的目的[1]。然而绿色能源在时间和地域上的不确定性使得车辆无法完全依赖,结合车联网和移动边缘计算优点的车辆边缘计算(Vehicular Edge Computing, VEC)为该问题的解决提供了新的范式,通过将计算资源下沉到车辆附近,在不显著增加网络传输时延的同时实现车辆能耗的有效降低[2]

    边缘服务器的能效是实现VEC可持续计算的瓶颈,边缘服务器通常位于难以吸纳可再生能源的城市与人群中心,使用化石燃料燃烧产生的电网电力[3],仅依赖边缘服务器无法充分挖掘绿色能源的潜力。尽管车辆协同任务卸载对节约能源成本有帮助,但从经济的角度看车辆没有义务在无任何补偿的情况下作为服务提供者执行其他车辆的任务。考虑到自身资源消耗和出于安全的目的,可以预期车辆不愿意在没有任何激励的情况下贡献其空闲资源[4]

    不同车辆会根据其乘客偏好生成特定类型的任务请求。例如,对于乘客偏好路线规划的车辆会频繁地请求交通状况信息,对于乘客偏好舒适交通体验的车辆会频繁地请求交互式信息[5]。由于任务类型不同,其执行的必要程度也不同。然而,现有工作很少考虑到不同类型的任务给车辆带来的体验差异,所有任务都有相同的概率得到所需资源。当车辆资源不足时,可能导致一些关键任务的卸载失败,造成严重后果。此外考虑到任务请求在时空上的动态性,在追求即时性能时不能忽略长期性能。然而车辆的高速移动性、时变网络环境下的复杂资源分配对确保系统的长期性能提出了挑战。

    为了解决上述问题,促进VEC系统的可持续发展,本文提出了面向绿色计算的车辆协同任务卸载方法,主要贡献包括3个方面:

    (1)本文设计一种“绿色能源-电网”混合能源供应模式下的车辆协同任务卸载框架。在该框架下,车辆之间使用车对车(Vehicle-to-Vehicle, V2V)技术共享资源,节省边缘服务器能源成本,并根据任务类型分别采用不同的效用函数,保证了高优先级任务的优先执行。

    (2)本文引入一种动态定价方案,动态调整价格促进用户和服务提供者之间的合作,缓解了任务车辆和服务车辆之间存在的利益冲突,激励车辆按需共享其空闲资源,提高资源利用效率。

    (3)本文提出一种基于双延迟深度确定性策略梯度(Twin Delayed Deep Deterministic policy gradient, TD3)[6]的在线任务卸载方法。实验结果表明,本文所提方法在性能上相较基于深度确定性策略梯度(Deep Deterministic Policy Gradient, DDPG)和基于贪心原则(Greedy Principle Execution, GPE)的方法分别提升了7.34%和37.47%。

    考虑到车辆拥有一定的闲置计算资源时本身可以被看作边缘计算节点,针对车辆可能在收到任务处理结果前驶出路侧单元覆盖范围的问题,文献[7]构造了一个基于车辆卸载决策的博弈以最小化计算开销。文献[8]制定了一个具有通信、计算、缓存和协作功能的统一框架,车辆可以通过V2V通信进行数据中继和计算的相互协作,并开发了一种调度方案以最小化系统范围内的数据处理成本。但是能效限制仍然是制约VEC的一个关键问题,上述工作并没有充分考虑边缘服务器的能效。

    大多数设备的能源有限,因此提供自主的能源至关重要,研究人员通过实施EH技术作为电池的可行且经济实用的替代方案。文献[9]针对具有EH模块的物联网设备提出了一种基于强化学习的卸载方法,根据当前电池电量、先前对每个边缘设备的无线电传输速率以及预测捕获的能源量来选择边缘设备和卸载速率。文献[10]研究了多层次边缘计算系统中的联合任务卸载和能源调度问题,通过调用李雅普诺夫技术将长期优化问题分解为一系列仅使用当前系统信息的单时隙优化问题。文献[11]提出了一种近邻感知的分布式任务卸载方法,其中物联网设备兼顾考虑其能源状态和近邻设备的决策,解决了大量移动设备同时将任务卸载到边缘云上时任务无法在预期时间内完成的问题。然而现有的工作大多是在物联网场景下,不适用于本文提出的动态异构VEC环境下车辆间通过共享绿色能源和计算资源协作执行任务的情况。

    目前车辆协同激励机制常见的设计思路大都受经济学中契约理论、拍卖理论等的启发。文献[12]利用契约理论使得路侧单元能够根据资源共享车辆的贡献和独特特性为其提供量身定制的合同,从而获得最适宜的奖励。文献[13]为鼓励车辆共享资源制定了一个反向拍卖机制,并开发了一种基于单边匹配的方法,利用整数线性规划提供了具有个体理性以及匹配稳定性的解。然而,这些工作大都基于一个假设,即所有参与者都会公开自己的私人信息,然后依据相关指标对车辆类型进行划分。计算资源分配策略应该实时响应环境变化,上述工作因很难及时获得完整的系统模型和环境动态并做出反应而不太适用。而动态定价基于平衡计算需求和资源的关系,能使价格随着资源的供需关系动态调整,展现出强大的激励潜力。文献[14]通过动态定价,由运营商租赁服务车辆实现了运营商收益最大化。文献[15]研究了在多个服务提供者存在竞争的情况下如何动态定价。

    图1所示,本文提出一个面向绿色计算的车辆协同任务卸载框架(Green Computing Oriented Vehicle Collaborative task offloading framework, GCOVC)。在所提框架中,考虑一个城市双向直行车道上,1个配备边缘服务器的基站和多个车辆组成的网络。每辆车都配有1个太阳能电池板,从环境中收集太阳能储存在电池中作为提供持续能源的唯一来源。绿色能源可用于任务的本地执行,帮助其他车辆,以及任务卸载产生的通信开销,且不计入系统内的能耗成本。基站的通信距离远大于车载通信距离,鉴于基站具有全局信息,其被信任为所有车辆做出全面的卸载决策。如果车辆进入基站的覆盖区域后愿意参与协作,它将持续向基站发送包含其位置、速度、可用绿色能源量、计算能力等消息,基站可由此获知其覆盖范围内的道路交通情况。系统内存在两类角色:一类是任务车辆,即产生任务请求的车辆;另一类是服务车辆,即拥有大量绿色能源,可以对外提供服务以获取报酬的车辆。本文将时间离散为多个时隙,在每个时隙,任务车辆首先向基站发送请求,然后基站决定任务分配,并将分配消息发送回任务车辆和所选服务车辆。假设在某一时段期间,基站的通信范围内有M辆车,集合表征为M,车辆的计算能力表示为Fm,mM。每一时隙每个车辆都会产生一个任务请求,任务车辆m在时隙l产生的任务klm可以用4元组{Dlm,Clm,αlm,βlm}表示,其中Dlm表示任务大小,Clm表示任务所需的CPU周期,αlm表示任务延迟容忍,βlm表示任务类型。使用aklm,d,d{0,1,,M}表示任务车辆m的3类执行方式,其中aklm,d=1,d=0表示任务被卸载到基站,aklm,d=1,d=m表示任务在本地执行,aklm,d=1,d=n,nm表示任务被卸载到服务车辆n

    图 1  GCOVC架构

    由于自然界中绿色能源的可捕获量是随机和突发的,为了体现绿色能源收集过程的不确定性,假定车辆m收集到的绿色能源服从最大值为Rm的均匀分布,并且每个时隙是独立同分布的。此外,EH模块的充电和放电过程是可以同时进行的,所收集的能源被缓存在一个存储队列中,定义Qlm为时隙l时车辆m的能源存储队列状态,rlm表示成功收集到的绿色能源,Elm表示时隙内所消耗的绿色能源。基于上述定义和假设,车辆m的EH模块的动态变化为

    Ql+1m=max{Qlm+rlmElm,0} (1)

    车辆通信方式可分为两种:当整个系统内绿色能源充足时,为了节约能源成本,绿色能源供应不足的任务车辆可优先通过V2V方式将任务卸载到供应充足的相邻车辆上执行;但当由于天气原因使环境中可收集的绿色能源减少,整个系统内可用绿色能源无法满足所有任务要求时,车辆可采用车对基础设施(Vehicle-to-Infrastructure, V2I)方式通过蜂窝链接将任务卸载到基站的边缘服务器上执行。

    3.3.1   V2I通信

    以道路为x轴,道路到基站的垂直连线为y轴,建立2维坐标系。假设基站位于(0,h)处,h表示基站与道路的垂直距离,车辆在道路上匀速行驶,车辆m的移动模式可由一个2元组{(xm,0),vm}表示,其中(xm,0)表示车辆m的初始位置,|xm|表示车辆与基站的横向距离,矢量vm表示车辆的速度。假设无线信道状态在任务的数据传输期间保持静态,上行链路的数据传输速率为

    Vm,0=ωlog2(1+Pmgm,0dαm,0/N0) (2)

    其中,ω为分配的传输信道带宽,Pm为任务车辆m的传输功率,gm,0为参考距离处的信道功率增益,α为路径损耗指数,N0为加性高斯白噪声,dm,0为任务车辆m与基站之间的距离,定义为

    dm,0=h2+(xm+vml)2 (3)

    则任务车辆m与基站间的通信时延为

    tl,transm,0=Dlm/Vm,0 (4)
    3.3.2   V2V通信

    假设V2V通信采用正交频率,忽略由其他V2V传输链接引入的干扰,从任务车辆m到服务车辆n的数据传输速率为

    Vm,n=ωlog2(1+Pmgm,ndαm,n/N0) (5)

    其中,dm,n为任务车辆m与服务车辆n之间的距离,定义为

    dm,n=(xmxn)2+[(vmvn)l]2 (6)

    由于车辆传输范围有限且移动性强导致传输链路不稳定,定义链路失效时间为

    ρm,n=[R(xmxn)sign(vmvn)]/|vmvn| (7)

    其中,R表示固定传输功率下的V2V传输范围,sign()是符号函数,当>0时,sign()=1,表示两个车辆彼此间正在远离。则任务车辆m与服务车辆n间的通信时延为

    tl,transm,n=Dlm/Vm,n (8)

    若车辆m选择本地执行,任务的计算时延仅取决于本地处理器分配给任务的频率Fklmm,总时延为

    tlm,m=tl,compm,m=DlmClm/Fklmm (9)

    若车辆m选择将任务卸载到基站,假设基站有无限大的计算能力同时服务多个车辆,并为车辆提供固定大小为F0的计算能力,则任务在边缘服务器上的计算时延为

    tl,compm,0=DlmClm/F0 (10)

    由于结果通常很小,本文忽略反馈时延,仅考虑传输和计算过程,因此选择卸载到基站的总时延为

    tlm,0=tl,transm,0+tl,compm,0 (11)

    若车辆m选择将任务卸载到服务车辆n,用Fklmn表示服务车辆分配给任务的频率,计算时延为

    tl,compm,n=DlmClm/Fklmn (12)

    因此选择卸载到服务车辆n的总时延为

    tlm,n=tl,transm,n+tl,compm,n (13)

    综上,任务的完成时延可统一表示为

    tlm=Md=0aklm,dtlm,d (14)

    若车辆m选择本地执行,车辆端每个CPU周期的能耗为κ(Fklmm)2,其中,κ受芯片架构影响,则本地执行任务消耗的绿色能源为

    Elm=κ(Fklmm)2DlmClm (15)

    若车辆m选择将任务卸载到基站,任务车辆为传输任务消耗的绿色能源为

    Elm=tl,transm,0Pm (16)

    假设边缘服务器处理一个CPU周期的能耗为u,则服务器处理任务消耗的电网电力为uDlmClm

    若车辆m选择将任务卸载到服务车辆n,任务车辆为传输任务消耗的绿色能源为

    Elm=tl,transm,nPm (17)

    而服务车辆为执行任务消耗的绿色能源为

    Eln=κ(Fklmn)2DlmClm (18)

    一般来说,车辆任务可以分为高优先级和低优先级两类。高优先级任务是指一类与安全密切相关,具有严格延迟约束的任务,如导航、路况感知等。低优先级任务是一类容忍延迟的任务,如车载娱乐服务等。如果高优先级任务在截止期限前完成,则任务的收益为非负值,并取决于完成时间。如果完成时间超过截止期限而失败,则收益为负常值作为严厉惩罚。因此高优先级任务的收益函数定义为

    UHklm={ln(1+αlmtlm),tlmαlmCH,tlm>αlm (19)

    如果低优先级任务在截止期限前完成,则任务的收益为正常值。如果完成时间超过截止期限,结果仍然被认为是可用的,但收益随着超过截止期限时间的增加而下降。因此低优先级任务的收益函数定义为

    ULklm={CL,tlmαlmCLe(tlmαlm),tlm>αlm (20)

    任务的完成效用定义为任务收益与付出成本的差值,表示为

    Uklm=I(βlm=βH)UHklm+I(βlm=βL)ULklmI(aklm,01)plm,nFklmntl,compm,nλI(aklm,0=1)uDlmClm} (21)

    其中,I()是指示函数,当·为真时,I()=1βHβL分别表示高、低优先级任务,plm,n表示任务车辆m为卸载任务到服务车辆n支付的价格,当任务在本地执行时,plm,m=0λ为系统能耗的重要性权重。

    服务车辆要同时执行本地任务和任务车辆的卸载任务。考虑到有限的计算能力,计算资源的分配首先要保证本地任务优先完成。考虑服务车辆n有本地任务kln表征为{Dln,Cln,αln,βln},则本地任务所需的最低频率Fminn=DlnCln/αln。如果车辆拒绝所有来自其他车辆的卸载任务,将所有计算资源分配给本地任务,则有Fmaxn=Fn。如果车辆决定接受来自车辆m的卸载请求并将频率Fklmn分配给卸载任务,本地任务的效用将下降,卸载任务的服务价格应补偿本地任务效用的损失。为任务支付的价格应满足

    plm,nFklmntl,compm,n=Ukln|Fklnn=FnUkln|Fklnn=FnFklmn (22)

    从式(22)可以看出,如果任务车辆想要使用服务车辆更多的计算资源,则应向其支付更高的价格。

    本文的目标是在基站的控制辅助下,调整相应的任务执行策略以最大化一段时间内的社会福利,即在最大化所有车辆平均任务完成效用的同时高效利用绿色能源,减少电网电力的使用。在每个时隙,基站要确定任务执行方式和卸载到服务车辆时对应的价格。最优化问题由式(23)给出

    maxaklm,d,plm,nlmaxl=01MMm=1Uklms.t. C1:0<plm,n(Ukln|Fklnn=FmaxnUkln|Fklnn=Fminn)/[(FnFminn)tl,compm,n]C2:aklm,d{0,1}C3:Md=0aklm,d=1C4:I(aklm,n=1)ρm,ntlmC5:Mm=1FklmnFn} (23)

    在上述问题中,约束条件C1保证支付价格为正且不超过最大值,约束C2表示任务采用整体卸载的形式,约束C3确保任务只能在本地端、边缘端、服务车辆端中采取一种执行方式,约束C4表示为任务选择的服务车辆必须可用,约束C5表示服务车辆提供的计算资源不超过自身限制。

    TD3算法克服了DDPG算法存在的超参数和其他微调鲁棒性不足的缺陷。在处理最优决策问题时,TD3无需知道完整定义的系统模型即可通过与环境的交互感知环境变换,从而实现从环境特征到策略的映射,更适用于优化动态变换环境下的实时控制决策问题,可对任务卸载过程中计算资源的分配进行细粒度的频率控制。基于以上考虑,本文基于TD3设计了车辆协同任务卸载方法。

    由于系统动态特性对于基站是未知的,在每一时隙基站中的智能体观测基站覆盖范围内的车辆环境,并收集环境参数作为观测状态。时隙l的状态向量表示为:sl={Ql1,,QlM,Dl1,Cl1,αl1,βl1,,DlM,ClM,αlM,βlM}

    智能体依据策略进行决策,时隙l产生的动作向量表示为:al={al1,al2,,alM},其中alm是一个确定的实数,用于决定任务执行方式及服务车辆应向任务车辆提供的计算资源。注意,由式(22)可知,给定可获得的计算资源Fklmn后,应付价格plm,n是唯一确定的。因此动态定价问题可等价转化为计算资源分配问题。

    在每一时隙中,智能体观察状态sl并执行动作al,获得即时奖励Rl,其值与式(23)中定义的单时隙的优化目标一致,lmax时隙内的累积奖励用以表征系统的长期性能。

    图2所示,方法包含3个组件:actor网络、critic网络和经验回放池。actor网络包含主actor网络μθ和目标actor网络μθ。critic网络包含主critic网络1QΦ1、主critic网络2QΦ2、目标critic网络1QΦ1和目标critic网络2QΦ2。目标网络具有与主网络相同的结构,参数周期性地从主网络复制。在每个时隙,环境状态的转变、智能体进行的动作和即时奖励形成经验(sl,al,Rl,sl+1)存储在池中。主critic网络使用近似动作-价值的Q值函数评估所选行动。用神经网络进行函数近似存在不精确性,同时使用后续状态的估计来更新值函数的估计进一步夸大了这种不精确性。在每一次更新策略中错误被累加,使得不好的状态被高估,策略无法被优化到最优。TD3使用双重critic网络来评估Q值,选取较小的Q值更新可以缓解Q值高估的现象。当更新critic网络时,使用确定性策略的学习目标极易导致目标估计的方差大。这种诱导方差可通过目标策略平滑正则化来减少,即在计算目标值时,在下一个状态的动作上加入扰动,使学到的价值函数在动作维度上更平滑,价值评估更准确。添加的噪声服从正态分布,随训练进行逐渐衰退,对噪声进行裁剪以保持与原始动作相似。在每个训练步,从池中随机抽样一小批经验作为样本集ψ={(sj,aj,Rj,sj+1)}。依据贝尔曼方程递归关系,通过最小化时间差分误差更新主critic网络,表示为

    图 2  基于TD3的车辆协同任务卸载方法
    L(Φi)1|ψ|jψ(yQΦi(sj,aj))2 (24)
    y=Rj+rmini=1,2QΦi(sj+1,a) (25)
    a=μθ(sj+1)+ε,εclip(N(0,δ),c,c) (26)

    主actor网络旨在基于当前状态产生一个使Q值最大化的动作,其最后一层为tanh层,有M个神经元,每个神经元的输出{aj1,aj2,,ajM}分别对应每个车辆。将区间(1,1)均等划分为M+1个小区间,若ajm落在小区间(1,1+2/(M+1)),代表任务车辆m选择将任务卸载到基站;若ajm落在小区间(1+2(n1)/(M+1),1+2n/(M+1)),代表任务车辆m选择将任务卸载到服务车辆n,从而满足约束条件C2和C3。若m=n,即任务在车辆m本地处理,若没有其他车辆将其作为服务车辆,则为任务分配最大频率,否则为任务分配所需的最低频率。若mn,为了满足约束条件C1和C5,服务车辆n为任务车辆m分配的计算频率在经正则化操作后得出,表示为

    Fkjmn=(FnFminn)(ajm(1+2(n1)/(M+1)))Mi=1I(akji,n=1)(aji(1+2(n1)/(M+1))) (27)

    当卸载过程中发生链路中断时,不再考虑结果传递,高优先级任务效用与超过截止期限时相同,低优先级任务因tjm=,效用为0,从而通过环境反馈施加的惩戒使智能体倾向于满足约束条件C4。智能体通过策略梯度方法更新主actor网络,损失函数的梯度表示为

    θJ(θ)=1|ψ|jψθμθ(sj)ajQΦ1(sj,aj)|aj=μθ(sj) (28)

    为了稳定Q值,减少一些错误的更新,采用策略延迟更新。首先目标网络与主网络不同步更新,在主网络更新多次后,再对目标网络进行更新。同样地,actor网络与critic网络不同步更新,在critic网络更新多次后,再对actor网络进行更新,即策略网络以低于价值网络的频率更新。这样一方面减少了不必要的重复更新,另一方面减少了多次更新中累积的误差。基于TD3的任务卸载方法实现如算法1所示。

    算法1 基于TD3的车辆协同任务卸载方法
     初始化VEC环境,包括:基站的位置信息(0,h),所有车辆的计算能力Fm,车辆的移动模式{(xm,0),vm}和EH模块初始能源存储
     Q0m,mM
     for 迭代次数v=1,2,,V do
      初始化一个随机过程用于动作探索,即产生一个随机噪声εN(0,δ)
       for l=0,1,,lmax do
        基站从车辆处接收任务请求,并从环境收集状态信息sl,依据当前策略及探索噪声生成动作al=μθ(sl)+ε,发送任务执行和资源
        分配信息给车辆,执行动作获得环境反馈的即时奖励Rl及新状态sl+1,添加经验(sl,al,Rl,sl+1)到回放池中。
        if v训练开始阈值 then
         从池中随机抽取一小批经验作为样本集ψ={(sj,aj,Rj,sj+1)}
         根据式(24)更新主critic网络。
         if lmod更新频率=0 then
          根据式(28)更新主actor网络。
           以软更新方式更新目标critic网络和目标actor网络。
        end for
     end for
    下载: 导出CSV 
    | 显示表格

    本节通过仿真实验来评估本文方法在最大化社会福利方面的性能。表1给出了实验中典型参数值。

    表 1  仿真参数设置
    参数
    车辆速度(km/h)40~80
    车辆计算能力(GHz)5~10
    EH模块初始能源(J)50~4000
    任务大小(kbit)200~1000
    任务所需计算资源(cycles/bit)500~1000
    最大延迟容忍(ms)高优先级:200
    低优先级:1000
    最大V2V链路传输范围(m)100
    边缘服务器处理一个CPU周期能耗(W)4×109
    下载: 导出CSV 
    | 显示表格

    为了验证本文方法,引入以下4种方法进行比较:

    (1)完全边缘执行(Naive Edge Execution, NEE):所有车辆的任务全部卸载到边缘服务器进行处理。

    (2)随机原则执行(Random Principle Execution, RPE):随机选择任务的执行方式和以V2V方式卸载任务时服务车辆应向任务车辆提供的计算资源。

    (3)GPE:贪心地选择具有最多剩余绿色能源的车辆作为服务车辆,并优先为高优先级任务分配使任务能在最大延迟容忍内完成的计算资源。

    (4)DDPG:该方法使用与上文中定义的相同的状态空间、动作空间和奖励函数。

    首先本文将一段时间内实现的累计社会福利作为评估标准,探索不同学习率对本文方法性能的影响。如图3所示,方法在训练迭代次数达400次左右时达到收敛,不同学习率实现的社会福利之间的差异很小,这表明本文方法对学习率参数不太敏感。当actor网络学习率δa=0.0001,critic网络学习率δc=0.0002时,方法的收敛性能最好,因为critic网络更快的收敛能更好地指导actor网络的更新。

    图 3  不同学习率下本文方法实现的累计社会福利

    然后本文比较了5种方法在不同交通密度下实现的平均社会福利。假设在一段时间内没有车辆的加入和离开,如图4所示,在不同的交通密度下,每辆车获得的平均社会福利维持基本稳定。当车辆增多时,状态空间和输出动作维度增加可能导致维数灾难,但本文方法性能没有出现明显下降,说明方法具有很好的扩展性,可适应中等规模的车辆环境。且本文方法实现的平均社会福利均高于其他方法,相比DDPG和GPE方法分别有7.34%和37.47%的提升,而NEE方法的表现最差。这是因为在NEE方法中,绿色能源仅用作通信开销,丧失了车辆协同减少电力使用的优势。GPE方法目标仅是使每个时隙绿色能源的使用效率最大化,无法获得一段时间内社会福利的最大化。尽管DDPG方法的优化目标也是最大化预期长期回报,但DDPG实现的平均社会福利略低于本文方法,这是因为DDPG虽然借鉴使用了两个critic网络,但在实际过程中仍存在高估Q值的情况,而在TD3中利用两套critic网络缓解了这一问题,并通过调整actor网络的更新频率避免了因盲目迭代被困在次优值。此外DDPG可能出现错误Q估值引导下的错误策略,TD3在动作一定范围内随机选择来实现策略平滑,从而摆脱错误峰值的影响。这些策略使得TD3在选择动作时更准确、更鲁棒,可以探索更合适的行为。

    图 4  不同交通密度下的平均社会福利

    本文模拟了当车辆数量为15时,可收集绿色能源最大值对社会福利的影响。如图5所示,随着可收集绿色能源的增加,除NEE方法外,其他方法实现的社会福利都有提升,这验证了更多的绿色能源可以为车辆协同任务卸载的优化提供更多潜力的事实。本文方法和DDPG方法实现的社会福利的增长幅度明显高于GPE方法和RPE方法。这是因为GPE方法基于贪心原则优先选择具有最多剩余绿色能源的车辆作为服务车辆,而RPE方法不考虑这些,随机选择任务的执行方式,所以对富余绿色能源的使用效率较低。但GPE方法同样缺乏对最佳资源分配的考虑,为保障计算资源优先向高优先级任务分配,任务车辆支付给服务车辆的价格是根据预定义的法则得出的,这种固定模式无法使任务获得最大完成效用。而本文方法通过动态定价,在确保高优先级任务可通过支付更高的价格获取更多计算资源的同时,充分发挥了共享资源按需分配的优势,提高了计算资源的利用效率。此外随着可收集绿色能源的增加,社会福利的增速有所放缓,这意味着绿色能源足够使任务在车辆端执行,社会福利更多地取决于任务的完成效用。

    图 5  不同可收集绿色能源最大值下的累计社会福利

    最后,如图6所示,随着可收集绿色能源的增加,低优先级任务完成效用的增速比高优先级任务快,说明本文方法在可收集绿色能源较少时优先确保了高优先级任务以尽可能大的效用完成,同时使低优先级任务以相对适当的效用完成。因此,本文方法在区分执行不同优先级的任务时具有较好的性能。

    图 6  不同可收集绿色能源最大值下的任务完成效用

    为了提高VEC系统中边缘服务器能效,实现绿色计算,本文构建了“绿色能源-电网”混合能源供应模式,考虑多个配备能源收集设备的车辆之间任务协同卸载问题,通过动态定价解决了任务车辆与服务车辆之间存在的利益冲突,促进了二者间的资源共享。同时提出了一种动态VEC环境下基于TD3的任务卸载方法,通过引入双重网络、策略延迟更新、目标策略平滑等策略,本文方法在选择任务执行方式和资源分配方面更具有准确性。最后实验结果验证了本文所提方法的优越性能,相比DDPG和GPE性能上分别提升了7.34%和37.47%。未来会考虑跨越边缘服务器边界的任务卸载以及协同过程中车辆个人隐私保护。

  • 图  1  种子自适应变异调度策略流程

    图  2  示例种子

    图  3  双层多臂老虎机示例

    图  4  PAMSSAFL系统流程

    图  5  位置自适应变异调度策略流程

    图  6  触发漏洞的测试用例

    图  7  路径数量对比

    图  8  SeamFuzz测试objdump和who时学习到的概率分布

    表  1  变异算子类型

    类型 释义
    Flip(k) 翻转第k个比特,0翻转为1,1翻转为0
    Overwrite(s, e, v) 将第s个字节至第e个字节的内容复写为v
    Arithmetic(s, e, v) 将第s个字节至第e个字节的内容与
    v进行算术运算
    Delete(s, l) 从第s个字节开始删除长度l的内容
    Insert(s, v) 在第s个字节之后插入v
    下载: 导出CSV

    表  2  示例代码段

     1. function example() {
     2.   number = getNumber();
     3.   if(number == 10) bug1();
     4.   content = getContent();
     5.   length = strlen(content);
     6.   if(length > 8) bug2();
     7. }
    下载: 导出CSV

    表  3  MAGMA测试结果

    模糊测试器libpnglibtifflibxml2luaopenssl总计
    AFL覆盖6681425
    触发241119
    DARWIN覆盖6681425
    触发131117
    PAMSSAFL覆盖6881427
    触发1521110
    SeamFuzz覆盖6681424
    触发131117
    AFL++覆盖6881427
    触发2441112
    PAMSSAFL++覆盖6881427
    触发2541214
    下载: 导出CSV

    表  4  LAVA-M测试结果

    模糊测试器base64md5sumuniqwho总计
    AFL07007
    DARWIN071412
    PAMSSAFL074516
    SeamFuzz07108
    下载: 导出CSV

    表  5  真实应用中的漏洞挖掘情况

    程序版本所在文件漏洞类型AFLDARWINPAMSSAFLSeamFuzz
    binutils2.28libbfd.c缓冲区溢出0 h 55 min1 h 11 min0 h 27 min0 h 48 min
    binutils2.30dwarf1.c整数溢出1 h 36 min1 h 3 min2 h 1 min
    cflow1.6parser.c释放后使用15 h 9 min10 h 33 min6 h 36 min6 h 57 min
    cflow1.6parser.c跨界读取5 h 51 min10 h 22 min
    libexif0.6.14exif-entry.c缓冲区溢出0 h 18 min0 h 10 min0 h 6 min0 h 5 min
    libexif0.6.14exif-data.c跨界读取0 h 21 min0 h 24 min0 h 31 min0 h 27 min
    libtiff4.0.4tif_print.c跨界读取1 h 25 min0 h 18 min0 h 6 min0 h 53 min
    libxml22.9.4valid.c缓冲区溢出6 h 8 min
    tcpdump4.9.0print-sl.c缓冲区溢出0 h 49 min0 h 47 min0 h 4 min0 h 3 min
    tcpdump4.9.2print-bootp.c跨界读取0 h 6 min0 h 7 min0 h 9 min0 h 9 min
    xpdf3.02parser.cc无限递归19 h 46 min3 h 21 min0 h 51 min2 h 39 min
    平均时长10 h 4 min6 h 2 min1 h 59 min4 h 24 min
    下载: 导出CSV

    表  6  漏洞所在代码段

     1. static u_int lastlen[2][256];
     2. static void sliplink_print() {
     3.  int dir = p[SLX_DIR];
     4.  compressed_sl_print(dir);
     5. }
     6. static void compressed_sl_print(int dir) {
     7.  lastlen[dir][lastconn] = length - (hlen << 2);
     8. }
    下载: 导出CSV

    表  7  路径数量和边数量统计

    目标程序版本输入参数AFLDARWINPAMSSAFLSeamFuzz
    路径路径路径路径
    cflow1.7@@15882251144922191644224716402230
    objdump2.41-d @@20206462217464412222659020506467
    tcpdump4.99.4-nr @@460311441470911790519812414486411401
    tiffinfo4.6.0@@29914391287944242959435629984394
    增幅(%)00+0.08+1.34+7.33+4.33+3.12–0.22
    下载: 导出CSV
  • [1] ZALEWSKI M. American Fuzzy Lop (AFL) fuzzer[EB/OL]. https://lcamtuf.coredump.cx/afl/, 2023.
    [2] Honggfuzz: A security oriented, feedback-driven, evolutionary, easy-to-use fuzzer[EB/OL]. https://github.com/google/honggfuzz, 2023.
    [3] LLWM. LibFuzzer—A library for coverage-guided fuzz testing[EB/OL]. http://llvm.org/docs/LibFuzzer.html, 2023.
    [4] LEE M, CHA S, and OH H. Learning seed-adaptive mutation strategies for greybox fuzzing[C]. 2023 IEEE/ACM 45th International Conference on Software Engineering, Melbourne, Australia, 2023: 384–396. doi: 10.1109/ICSE48619.2023.00043.
    [5] AGRAWAL S and GOYAL N. Analysis of thompson sampling for the multi-armed bandit problem[C]. The 25th Annual Conference on Learning Theory, Edinburgh, UK, 2012: 39.
    [6] AUER P, CESA-BIANCHI N, and FISCHER P. Finite-time analysis of the Multiarmed bandit problem[J]. Machine Learning, 2002, 47(2/3): 235–256. doi: 10.1023/A:1013689704352.
    [7] JAUERNIG P, JAKOBOVIC D, PICEK S, et al. DARWIN: Survival of the fittest fuzzing mutators[C]. The 30th Annual Network and Distributed System Security Symposium, San Diego, USA, 2023. doi: 10.14722/ndss.2023.23159.
    [8] LEMIEUX C and SEN K. FairFuzz: A targeted mutation strategy for increasing greybox fuzz testing coverage[C]. The 33rd IEEE/ACM International Conference on Automated Software Engineering, Montpellier, France, 2018: 475–485. doi: 10.1145/3238147.3238176.
    [9] SHE Dongdong, SHAH A, and JANA S. Effective seed scheduling for fuzzing with graph centrality analysis[C]. The 43rd IEEE Symposium on Security and Privacy, San Francisco, USA, 2022: 2194–2211. doi: 10.1109/SP46214.2022.9833761.
    [10] SAHA S, SARKER L, SHAFIUZZAMAN M, et al. Rare path guided fuzzing[C]. The 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis, Seattle, USA, 2023: 1295–1306. doi: 10.1145/3597926.3598136.
    [11] LÜ Chenyang, JI Shouling, ZHANG Chao, et al. MOPT: Optimized mutation scheduling for fuzzers[C]. The 28th USENIX Security Symposium, Santa Clara, USA, 2019: 1949–1966.
    [12] WU Mingyuan, JIANG Ling, XIANG Jiahong, et al. One fuzzing strategy to rule them all[C]. The 44th International Conference on Software Engineering, Pittsburgh, USA, 2022: 1634–1645. doi: 10.1145/3510003.3510174.
    [13] SUTTON R S and BARTO A G. Reinforcement Learning: An Introduction[M]. 2nd ed. Cambridge: The MIT Press, 2018: 31–47.
    [14] 李明磊, 陆余良, 黄晖, 等. 模糊测试变异算子调度优化模型[J]. 小型微型计算机系统, 2021, 42(10): 2190–2195. doi: 10.3969/j.issn.1000-1220.2021.10.029.

    LI Minglei, LU Yuliang, HUANG Hui, et al. Fuzzy tester mutation operator scheduling optimization algorithm[J]. Journal of Chinese Computer Systems, 2021, 42(10): 2190–2195. doi: 10.3969/j.issn.1000-1220.2021.10.029.
    [15] FIORALDI A, MAIER D C, EIßFELDT H, et al. AFL++: Combining incremental steps of fuzzing research[C]. The 14th USENIX Conference on Offensive Technologies, Berkeley, USA, 2020: 10.
    [16] HAZIMEH A, HERRERA A, and PAYER M. Magma: A ground-truth fuzzing benchmark[J]. Proceedings of the ACM on Measurement and Analysis of Computing Systems, 2020, 4(3): 49. doi: 10.1145/3428334.
    [17] DOLAN-GAVITT B, HULIN P, KIRDA E, et al. LAVA: Large-scale automated vulnerability addition[C]. 2016 IEEE Symposium on Security and Privacy, San Jose, USA, 2016: 110–121. doi: 10.1109/SP.2016.15.
  • 加载中
图(8) / 表(7)
计量
  • 文章访问数:  201
  • HTML全文浏览量:  120
  • PDF下载量:  18
  • 被引次数: 0
出版历程
  • 收稿日期:  2024-01-26
  • 修回日期:  2024-07-13
  • 网络出版日期:  2024-08-02
  • 刊出日期:  2024-09-26

目录

/

返回文章
返回