[發明專利]一種基于腳本交叉編譯的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.szxzyx.cn/pat/books/202110239130.0/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種帶送料卸料的探針側孔加工設備
- 下一篇:一種高速重載列車快速清潔裝置





