买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:北京大学
摘要:本发明公开了一种面向解释型语言源程序的系统调用白名单生成方法。本发明的白名单生成方法步骤包括:1对于待分析应用的源代码,根据该源代码的编写语言选取对应的目标解释器;2利用所选目标解释器获取该源代码运行时的系统调用;3利用该源代码的编写语言编写一测试程序并运行,获取运行测试程序时所需的系统调用作为该目标解释器初始化时所需的系统调用,然后将其与步骤2所得系统调用相结合,得到该待分析应用的系统调用白名单。在容器上运行时,只允许应用调用白名单上的系统调用,大大增强了安全性。
主权项:1.一种面向解释型语言源程序的系统调用白名单生成方法,其步骤包括:1对于待分析应用的源代码,根据该源代码的编写语言选取对应的目标解释器;2利用所选目标解释器获取该源代码可能调用的系统调用;该源代码为Python语言代码时,目标解释器包括开源模块astroid和开源模块pycparser;获取该源代码可能调用的系统调用的方法为:211使用开源模块astroid为该源代码生成抽象语法树,并遍历其中的函数调用节点,根据当前函数调用节点所对应的函数所在的模块名与类名找出所有C语言函数;212使用开源模块pycparser对步骤211得到的每一C语言函数所在模块的源码生成一对应的抽象语法树H,根据Python的C语言API特性,找到抽象语法树H中表示存放模块中所有函数以及所有类方法的结构体数组的节点,该结构体数组中每个元素表示该模块的一个函数或者该模块一个类中的一个方法;根据结构体数组中的信息建立C语言函数在Python中和C语言源码中函数名的映射,然后根据映射关系确定模块在编译之后的二进制文件路径;最终输出步骤211所得每一C语言函数在其源码中的函数名及其源码所在的动态链接库路径;213对步骤212输出的二进制文件进行静态分析,获取该源代码可能调用的系统调用;3利用该源代码的编写语言编写一测试程序并运行,获取运行测试程序时所需的系统调用作为该目标解释器初始化时所需的系统调用,然后将其与步骤2所得系统调用相结合,得到该待分析应用的系统调用白名单。
全文数据:
权利要求:
百度查询: 北京大学 面向解释型语言源程序的系统调用白名单生成方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。