买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:南京邮电大学
摘要:本发明提出了一种基于普通函数和内核函数混合调用控制流图的智能主动软件防护方法,所述方法包括函数调用序列正常模式构建和程序异常判定两阶段。在函数调用序列正常模式构建阶段中,首先基于用户给定的软件功能列表、功能与源代码中入口函数的映射关系,通过静态分析软件的源代码,得到以功能为单位、代码块粒度的控制流图;紧接着,基于代码块粒度的控制流图生成普通函数和内核函数混合调用控制流图,并将上述混合控制流图转化为自动机,作为软件函数级粒度的调用序列正常模式。
主权项:1.一种基于普通函数和内核函数混合调用控制流图的智能主动软件防护方法,其特征在于,包括步骤如下:阶段一,函数调用序列正常模式构建阶段:步骤A,静态分析生成普通函数调用的控制流图:基于LLVM编译器,直接生成各个普通函数调用的控制流图;步骤B,静态分析生成普通函数的系统调用控制流图:基于LLVM生成C或C++代码的控制流图;首先编译程序到LLVMIR,然后使用opt生成控制流图;该控制流图为dot格式的文件;我们读取其生成的dot文件并依次读入图中的每个元素,判断该元素为节点信息或节点指向信息,构建出有向图,然后我们将依次遍历其中的节点,判断该节点是否含有系统调用,若不含有,则将该节点的所有子节点添加到其父节点的子节点集中,并删除该节点,最后使用新构建的有向图重新生成只包含系统调用的控制流图;步骤C,合并获得混合控制流图:基于步骤B生成的普通函数调用的控制流图的基础之上,将步骤C生成的每个普通函数的系统调用控制流图插入普通函数调用的控制流图;则得到完整的普通函数和内核函数混合调用的控制流图;步骤D,将混合调用的控制流图转化为自动机:当节点仅有一个系统调用时,则转换为从当前状态识别此系统调用到下一状态;当节点包含多个系统调用时,则增加状态,n个系统调用则增加n-1个状态进行拓展,这样就满足了DFA的定义;每个功能对应一个自动机,这样就得到了所有功能的自动机;阶段二:程序异常判定阶段:步骤E,程序插桩:在程序每一个功能的入口函数以及入口函数直接或间接调用函数的开始和结束进行插桩,以方便后续将系统函数调用序列划分成短序列;步骤F,程序动态执行获取系统函数调用序列:使用p-trace获取程序执行时的系统函数调用序列,并根据插桩信息将整个系统函数调用序列划分成各个功能对应的短序列;步骤G,程序异常与否判定:根据步骤F划分的短序列,将每个短序列对应到步骤D得到的各功能的自动机中,若各个短序列均能被相对于的自动机所识别,则认为软件运行正常,若无法被自动机接受,则判定为软件遭遇攻击或执行异常,此时触发软件行为异常警告,进入主动防护模式。
全文数据:
权利要求:
百度查询: 南京邮电大学 一种基于普通函数和内核函数混合调用控制流图的智能主动软件防护方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。