MOPT: Optimize Mutation Scheduling for Fuzzers

MOPT:优化模糊器的变异调度

摘要

基于变异的模糊化是最流行的漏洞发现解决方案之一。它生成有趣测试用例的性能在很大程度上取决于变异调度策略。然而,现有的模糊程序通常遵循一个特定的(例如,统一的)分布来选择变异算子,这在发现一般程序上的漏洞方面效率很低。因此,在本文中,我们提出了一种新的变异调度方案MOPT,它使基于变异的模糊器能够更有效地发现漏洞。MOP实现了一种定制的粒子群优化(PSO)算法,以找到与模糊有效性相关的算子的最优选择概率分布,并提供了一种起搏器模糊模式,以加快PSO的收敛速度。我们将MOPT应用于最先进的模糊程序AFL、AFLFast和Vuzzer,并分别实现了MOPT-AFL、-AFLFast和-Vuzzer,然后在13个实际开源程序上对它们进行了评估。结果表明,MOPT-AFL可以发现比AFL多170%的安全漏洞和350%的崩溃。MOPT-AFLFast和MOPT-VUzzer的表现也优于他们的同行。此外,广泛的评估还表明,MOPTP提供了良好的合理性、兼容性和稳定性,同时引入的成本可以忽略不计。

主要内容

本文将变异调度作为一个优化问题,提出了一种新的变异调度方案MOPT,旨在解决上述问题,提高模糊性能。受著名优化算法粒子群优化(PSO)[20]的启发,MOPTD动态评估候选变异算子的效率,并将其选择概率调整为最优分布。
MOPT将每个变异算子建模为沿概率空间[xmin,xmax]移动的粒子,其中xmin和xmax分别是预定义的最小概率和最大概率。在局部最优概率和全局最优概率的指导下,每个粒子(即算子)向其最优选择概率移动,从而产生更多高质量的测试用例。因此,MOPT的目标是通过聚合粒子发现的概率来找到算子的最佳选择概率分布,从而聚合产生更高质量的测试用例。与粒子群算法类似,MOP算法根据粒子的局部最优概率和全局最优概率对粒子的概率进行更新。然后,对所有粒子的更新概率进行积分,得到新的概率分布。MOPT可以快速收敛到选择变异算子的概率分布的最佳解,从而显著提高模糊性能。在AFL及其后代中,我们进一步设计了一种特殊的起搏器模糊模式,可以进一步加快MOPT的收敛速度。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是使用互信息法和虚假最近邻点法确定最佳时间延迟和嵌入维数,并进行相空间重构的MATLAB代码示例: ```matlab % 输入参数 x = ... % 输入的一维时间序列 maxDim = ... % 最大嵌入维度 maxTau = ... % 最大延迟时间 % 互信息法估计 MI = zeros(maxDim, maxTau); for m = 1:maxDim for tau = 1:maxTau X = zeros(length(x)-(m-1)*tau, m); for i = 1:length(x)-(m-1)*tau X(i,:) = x(i:tau:i+(m-1)*tau); end MI(m,tau) = mutualinfo(X(:,1), X(:,2)); % 仅计算前两个维度的互信息 end end % 绘制互信息矩阵 figure; imagesc(MI); xlabel('Delay time'); ylabel('Embedding dimension'); colorbar; % 虚假最近邻点法估计 D = zeros(maxDim, 1); for m = 1:maxDim X = zeros(length(x)-(m-1)*maxTau, m); for i = 1:length(x)-(m-1)*maxTau X(i,:) = x(i:maxTau:i+(m-1)*maxTau); end [~, D(m)] = fnn(X); end % 绘制虚假最近邻点曲线 figure; plot(1:maxDim, D, 'o-'); xlabel('Embedding dimension'); ylabel('FNN'); % 确定最佳嵌入维度和时间延迟 mOpt = ... % 根据互信息矩阵或虚假最近邻点曲线确定最佳嵌入维度 tauOpt = ... % 根据互信息矩阵或虚假最近邻点曲线确定最佳时间延迟 % 相空间重构 X = zeros(length(x)-(mOpt-1)*tauOpt, mOpt); for i = 1:length(x)-(mOpt-1)*tauOpt X(i,:) = x(i:tauOpt:i+(mOpt-1)*tauOpt); end ``` 其中,mutualinfo函数用于计算两个维度之间的互信息,fnn函数用于计算虚假最近邻点的比例。在实际应用中,需要根据具体问题选择合适的估计方法和参数,并对重构后的相空间进行进一步分析和处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值