[发明专利]一种基于脚本交叉编译的Python安全扩展方法在审
申请号: | 202110239130.0 | 申请日: | 2021-03-04 |
公开(公告)号: | CN113031931A | 公开(公告)日: | 2021-06-25 |
发明(设计)人: | 沈方阳;储备;涂子豪;雷宇;贾梦 | 申请(专利权)人: | 嘉兴丰鸟科技有限公司;奥本未来(北京)科技有限责任公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/41;G06F21/53 |
代理公司: | 北京德崇智捷知识产权代理有限公司 11467 | 代理人: | 王金双 |
地址: | 314500 浙江省嘉兴市桐*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 脚本 交叉 编译 python 安全 扩展 方法 | ||
一种基于脚本交叉编译的Python安全扩展方法,包括以下步骤:定义图灵完备的脚本语言,并提供函数调用功能;在宿主程序中定义脚本语言程序安全规则;从脚本语言源程序生成抽象语法树;对生成的抽象语法树进行过滤和安全检查;从安全的抽象语法树生成Python源代码,在宿主环境中加载执行。本发明的基于脚本交叉编译的Python安全扩展方法,在Python程序运行时对用户脚本语言进行交叉编译和安全检查,生成安全的Python源代码,再注入宿主环境中运行,可以限制用户脚本可以调用的系统和应用的应用程序接口,并对调用逻辑进行安全检查,保护应用不受到注入攻击。
技术领域
本发明涉及程序扩展技术领域,特别是涉及一种基于脚本交叉编译的Python安全扩展方法。
背景技术
随着Python程序设计语言的普及,许多服务器端应用,包括人工智能和科学计算应用都采用Python语言进行编写,其中大部分应用需要提供程序运行时的可扩展性,使得开发、运维人员甚至用户可以通过脚本程序调整应用逻辑,实现灵活的定制功能。
现有Python程序设计语言编写的应用运行时逻辑扩展方法通常在应用中宿主环境下直接注入并运行用户Python程序源代码,缺乏安全性,难以限制用户可调用的功能和系统应用程序接口,容易受到注入攻击。
现有Python程序扩展方法,通常包括:
1)直接注入一段用户编写的Python脚本源程序,并立即在宿主环境使用Python解释器执行,或者使用exec方法在隔离的独立Python环境中解释执行;用户脚本通过Python系统调用和库调用完成功能的灵活定制。这类方法中,用户脚本程序拥有和宿主程序相同的环境和权限,或者可以很容易获得宿主权限,从而访问宿主程序能访问的功能和系统资源,无法防范恶意或有缺陷的用户程序对宿主系统造成破坏,也无法限制用户脚本可以使用的应用程序接口和方法。
2)使用PyPy等特定Python解释器提供的操作系统级别Python沙盒,在Python应用中创建独立子进程,将输入输出和系统调用重定向到父进程,由父进程进行过滤和转发,实现脚本的沙盒化和虚拟化。该方法不适用于大量服务器端应用部署使用的Python解释器,并且在运行时对每次输入输出、系统和库函数调用增加了一层分析和和转发,降低了程序运行效率。
发明内容
为了解决现有技术存在的不足,本发明的目的在于提供一种基于脚本交叉编译的Python安全扩展方法,通过交叉编译将用户脚本源程序一次性转化为Python脚本,并在过程中分析、过滤程序的输入输出、函数调用和程序逻辑,排除不安全的代码后,在宿主程序的环境和进程中直接执行,实现Python宿主程序的安全扩展。
为实现上述目的,本发明提供的基于脚本交叉编译的Python安全扩展方法,包括以下步骤:
定义图灵完备的脚本语言,并提供函数调用功能;
在宿主程序中定义脚本语言程序安全规则;
从脚本语言源程序生成抽象语法树;
对生成的抽象语法树进行过滤和安全检查;
从安全的抽象语法树生成Python源代码,在宿主环境中加载执行。
进一步的,所述定义图灵完备的脚本语言,并提供函数调用功能的步骤,还包括,
定义OSL脚本语言的语法,并用巴克斯范式进行表达;
证明OSL脚本语言的语法的图灵完备性。
进一步的,所述证明OSL脚本语言的语法的图灵完备性的步骤,还包括,对于图灵机有限字符集,为每个字符创建一个变量;
构造一个内存允许的最大数组,表示图灵机输入输出纸带;
创建一个变量存储当前读写头位置;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于嘉兴丰鸟科技有限公司;奥本未来(北京)科技有限责任公司,未经嘉兴丰鸟科技有限公司;奥本未来(北京)科技有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110239130.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种带送料卸料的探针侧孔加工设备
- 下一篇:一种高速重载列车快速清洁装置