欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2024115221570
申请人: 珠海晞曼科技有限公司
专利类型:发明专利
专利状态:授权未缴费
专利领域: 计算;推算;计数
更新日期:2025-04-02
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种安全数据渗透测试方法,其特征在于,所述方法包括:

预先建立多线程应用程序竞态条件漏洞特征库,对目标应用程序的源代码进行静态分析,识别出潜在的竞态条件漏洞点,获取初步的漏洞候选集合;

根据漏洞候选集合,建立并构建可触发竞态条件的多线程交互场景,通过动态插桩方式在应用程序运行时实时监控多个线程对共享资源的访问情况,捕获疑似静态条件事件;

对于监控到的疑似竞态条件事件,将事件上下文信息抽象为约束条件,利用约束求解器探索疑似静态条件的输入组合,确定稳定触发竞态条件的最小输入集;

监测是否触发竞态条件,若触发竞态条件,则分析竞态条件对应用程序数据完整性和行为正确性的影响,构造利用竞态条件执行任意代码或提升权限的攻击载荷,评估竞态条件漏洞的危害性;

针对不同编程语言的内存模型和同步原语,获取竞态条件反模式,提取覆盖各种竞态条件漏洞的通用利用原语;

在渗透测试过程中,应用静态分析、动态监控、符号执行对目标应用系统挖掘竞态条件漏洞,并验证漏洞的可利用性,协助完成对系统安全性的评估;

获取多线程应用的典型竞态条件漏洞案例,归纳漏洞的成因、触发条件、利用方式以及修复方案,完善竞态条件漏洞知识库,并将总结得到的竞态条件漏洞知识和利用原语集成到自动化的漏洞挖掘和渗透测试工具中。

2.根据权利要求1所述的方法,其特征在于,所述预先建立多线程应用程序竞态条件漏洞特征库,对目标应用程序的源代码进行静态分析,识别出潜在的竞态条件漏洞点,获取初步的漏洞候选集合,包括:根据预先建立的多线程应用程序竞态条件漏洞特征库提取关键特征,所述关键特征包括漏洞模式、代码结构和变量依赖关系;

接收目标应用程序的源代码,采用基于正则表达式和语法分析的匹配方式对所述源代码进行静态分析,识别出潜在的竞态条件漏洞点,得到初步的漏洞候选集合;

针对所述初步的漏洞候选集合进行深度语义分析,通过抽象语法树进行代码结构分析,模拟程序执行路径,提取每个候选漏洞点的上下文信息,生成漏洞特征向量;

对所述漏洞特征向量进行数据预处理和特征选择,利用支持向量机算法将所述特征向量映射到高维特征空间,构建最优分类超平面,得到初步的竞态条件漏洞列表。

3.根据权利要求1所述的方法,其特征在于,所述根据漏洞候选集合,建立并构建可触发竞态条件的多线程交互场景,通过动态插桩方式在应用程序运行时实时监控多个线程对共享资源的访问情况,捕获疑似静态条件事件,包括:根据多线程交互场景生成测试用例,所述测试用例包含线程创建、资源分配和并发操作信息;

对目标应用程序进行代码注入,所述代码注入在共享资源访问点、线程同步操作调用处和关键控制流节点插入监控探针;

通过监控探针获取多个线程的执行状态和资源访问信息,所述资源访问信息包括线程标识、操作类型、访问地址和时间戳;

对所述资源访问信息进行数据过滤、去重和归类处理,得到标准化的事件序列;

利用时序逻辑规则分析所述事件序列中的线程交互模式,所述分析包括:使用有限状态机对线程行为进行建模;

判断是否存在违反同步约束的并发访问;

若存在违反同步约束的并发访问,则确定竞态条件的类型、发生位置和相关线程信息。

4.根据权利要求1所述的方法,其特征在于,所述对于监控到的疑似竞态条件事件,将事件上下文信息抽象为约束条件,利用约束求解器探索疑似静态条件的输入组合,确定稳定触发竞态条件的最小输入集,包括:获取监控到的疑似竞态条件事件相关的程序路径及变量信息,根据所述程序路径及变量信息进行变量符号化处理,得到包含变量取值范围和操作顺序的初始路径条件;

对所述初始路径条件进行广度优先遍历,判断所有的可执行路径,若判断到执行路径,则将该执行路径上的分支条件、变量赋值和线程操作转化为逻辑表达式;

利用约束求解器对所述逻辑表达式进行求解,得到满足约束条件的具体输入值组合;

根据所述具体输入值组合进行模拟执行,通过计算每个输入组合触发竞态条件的概率,确定触发概率大于预设阈值的高潜力输入组合;

针对所述高潜力输入组合进行验证和精简,通过反复执行目标程序并调整线程调度策略,从所述高潜力输入组合中筛选出能够稳定触发竞态条件的最小输入子集;

还包括:分别记录和分类捕获到的疑似竞态条件事件,提取关键的上下文信息,将事件涉及的变量、条件、同步操作抽象为符号表达式,生成约束条件和约束系统;利用约束求解器对约束系统进行求解,得到满足约束条件的输入组合,对输入组合进行等价类划分,通过测试不同输入组合,评估不同输入组合触发竞态条件的稳定性和可重现性,选择目标输入集合作为后续漏洞利用和验证的基础。

5.根据权利要求4所述的方法,其特征在于,所述分别记录和分类捕获到的疑似竞态条件事件,提取关键的上下文信息,将事件涉及的变量、条件、同步操作抽象为符号表达式,生成约束条件和约束系统;利用约束求解器对约束系统进行求解,得到满足约束条件的输入组合,对输入组合进行等价类划分,通过测试不同输入组合,评估不同输入组合触发竞态条件的稳定性和可重现性,选择目标输入集合作为后续漏洞利用和验证的基础,包括:根据所捕获的疑似竞态条件事件,提取事件发生时的程序执行路径、变量状态及线程交互信息,将相关变量替换为符号表达式,将条件语句转换为逻辑约束,识别同步操作并转化为时序约束,构建符号执行路径;

对所构建的符号执行路径进行分析,生成路径约束条件,结合线程间交互约束和资源访问约束,形成约束系统;

对所述约束系统进行求解,设置最大求解时间及最大解数量,得到满足约束条件的输入值组合;

对所得到的输入组合采用K-means算法进行聚类分析,设置聚类数为输入组合数量的平方根,划分等价类,选择每个等价类的中心点作为代表性输入;

针对所选择的代表性输入进行测试执行,记录每次执行的竞态条件触发情况,计算触发概率和重现性指标,根据所设定的预设阈值筛选出稳定触发的输入组合,作为目标输入集合。

6.根据权利要求1所述的方法,其特征在于,所述监测是否触发竞态条件,若触发竞态条件,则分析竞态条件对应用程序数据完整性和行为正确性的影响,构造利用竞态条件执行任意代码或提升权限的攻击载荷,评估竞态条件漏洞的危害性,包括:获取应用程序的关键执行点信息,在所述关键执行点插入监测探针,所述监测探针用于实时捕获线程执行状态、共享变量访问序列和同步操作信息;

根据所述监测探针捕获的信息,比对线程间的资源访问顺序和时序关系,判断是否触发竞态条件;

若触发所述竞态条件,则对程序执行前后的数据状态进行快照比对,得到被篡改的数据项,追踪被篡改数据的传播路径;

根据得到的传播路径,分析攻击向量,从中选择最匹配的攻击方式;

针对所述选择的攻击方式,构造对应的输入序列和线程调度方案,将被篡改数据引入到程序的控制流决策点或内存操作中,所述控制流决策点或内存操作用于实现控制流劫持或缓冲区溢出。

7.根据权利要求1所述的方法,其特征在于,所述针对不同编程语言的内存模型和同步原语,获取竞态条件反模式,提取覆盖各种竞态条件漏洞的通用利用原语,包括:获取主流编程语言的内存模型特性和同步原语实现信息,根据所述信息构建语言特性比较矩阵,所述语言特性比较矩阵包含内存一致性模型、原子操作支持、锁机制和内存屏障等维度;

通过所述语言特性比较矩阵分析语言特性在实际代码中的应用情况,得到不同同步机制的使用频率和分布数据;

从开源项目代码库提取并发编程相关代码片段,采用静态代码分析工具识别所述代码片段中的临界区和资源竞争点,判断不同类型的同步操作使用频率和分布特征;

根据并发编程模式构造包含竞态条件的测试用例集,通过动态执行和并发调度控制触发潜在的竞态条件,所述并发调度控制包括线程优先级调整和时间片控制;

对竞态条件案例进行分类和归纳,提取共性特征和触发模式,构建竞态条件反模式库,所述竞态条件反模式库按漏洞类型、触发条件和影响范围维度进行组织。

8.根据权利要求1所述的方法,其特征在于,所述在渗透测试过程中,应用静态分析、动态监控、符号执行对目标应用系统挖掘竞态条件漏洞,并验证漏洞的可利用性,协助完成对系统安全性的评估,包括:根据预设的规则集对目标应用系统进行静态代码分析,得到包括未同步的共享变量访问和不当的锁使用顺序在内的潜在竞态条件风险点列表;

植入动态监控探针,获取线程创建、资源分配和锁操作关键事件信息,构建系统运行时的并发行为模型;

分析所构建的并发行为模型,判断是否存在潜在的死锁、资源竞争和同步异常情况;

若存在潜在异常情况,则针对风险点和分析结果进行符号执行,模拟不同的线程调度场景,生成触发竞态条件的输入序列和调度策略;

根据输入序列和调度策略选择匹配的利用原语,构造针对性的攻击载荷,在配置了沙箱和虚拟化方法的受控环境中验证漏洞的可利用性;

还包括:渗透测试前,收集和分析目标系统的架构、组件、通信协议信息,针对多线程并发、共享资源访问、同步机制易引入竞态条件的代码片段,实时监控应用程序运行状态和资源访问情况,对捕获到的疑似竞态条件事件进行进一步分析和验证,根据符号执行结果构造针对性的攻击载荷,验证竞态条件漏洞的可利用性,评估竞态条件漏洞对系统的影响,提出相应的风险等级和修复建议。

9.根据权利要求8所述的方法,其特征在于,所述渗透测试前,收集和分析目标系统的架构、组件、通信协议信息,针对多线程并发、共享资源访问、同步机制易引入竞态条件的代码片段,实时监控应用程序运行状态和资源访问情况,对捕获到的疑似竞态条件事件进行进一步分析和验证,根据符号执行结果构造针对性的攻击载荷,验证竞态条件漏洞的可利用性,评估竞态条件漏洞对系统的影响,提出相应的风险等级和修复建议,包括:对目标系统进行全面扫描,获取所述目标系统的系统架构、组件信息和通信协议数据;

根据所获取的系统信息,选择支持多种编程语言和并发模式分析能力的静态代码分析工具,对所述目标系统的源代码或反编译后的代码进行扫描,标记潜在的竞态条件风险点;

对所述目标系统的运行中应用程序进行实时监控,在静态分析标记的风险点注入延迟和错误条件;

针对捕获到的疑似竞态条件事件,使用符号执行工具进行分析,生成可触发竞态条件的输入序列和线程调度方案;

结合预先构建的通用利用原语库,构造针对性的攻击载荷,在受控环境中验证竞态条件漏洞的可利用性;

若验证所述竞态条件漏洞可被利用,则评估漏洞影响范围并给出风险等级。

10.根据权利要求1所述的方法,其特征在于,所述获取多线程应用的典型竞态条件漏洞案例,归纳漏洞的成因、触发条件、利用方式以及修复方案,完善竞态条件漏洞知识库,并将总结得到的竞态条件漏洞知识和利用原语集成到自动化的漏洞挖掘和渗透测试工具中,包括:获取数据库中多线程应用的竞态条件漏洞案例,所述漏洞案例包含漏洞类型、影响范围、严重程度、触发条件和修复建议字段;

根据所述漏洞案例进行静态代码分析和动态执行跟踪;

通过所述静态代码分析和动态执行跟踪得到漏洞的完整触发流程,所述触发流程包括关键的线程交互点和资源竞争场景;

针对触发流程建立竞态条件漏洞利用原语,所述利用原语包括线程调度控制模块、内存访问序列构造模块和异常状态触发模块;

将所述利用原语整合到自动化漏洞挖掘工具中,所述自动化漏洞挖掘工具进行代码模式匹配;

若所述代码模式匹配结果与预设阈值相符,则进行启发式搜索,得到新型竞态条件漏洞的识别和验证结果。