針對 Python 程式設計語言的新功能提議之一是希望為運作時添加“透明度”,并讓安全和審計工具檢視 Python 何時可能運作潛在危險的操作。
在目前的形式下,Python 不允許安全工具檢視運作時正在執行的操作。 除非這些操作之一産生可能引起警報的特定錯誤,否則安全和審計工具就會視而不見,攻擊者可能正在使用 Python 在系統上執行惡意操作。

PEP-551 為 Python 提出了兩個新的 API
但在 Python Enhancement Proposal 551(PEP-551)中,Python 核心開發人員 Steve Dower 已經提出了兩個新的 API,這些 API 将使安全工具能夠在 Python 執行潛在危險操作時進行檢測。
第一個是 Audit Hook API,它可以引發關于某些類型的 Python 操作的警告消息。
“這些操作通常在 Python 運作時或标準庫的深處,比如動态代碼編譯,子產品導入,DNS 解析或使用某些子產品,如 ctypes,”Dower 說。
安全或審計工具可能會使用這些消息作為可疑事件的警告标志,并在真正造成危害之前标記或阻止 Python 程序繼續。
第二種,驗證 Open Hook API,這是是一種讓 Python 運作時允許執行或篡改哪些檔案的機制。 道爾解釋道:
大多數作業系統都有一種機制來區分可以執行的檔案和不可執行的檔案。 例如,這可能是權限字段中的執行位,或者是檔案内容的驗證散列,以檢測潛在的代碼篡改。 這些是防止執行未被準許用于給定環境的資料或代碼的重要安全機制。 目前,Python 在啟動腳本或導入子產品時無法與這些內建。
Python 的性能影響可以忽略不計
道爾去年8月份提出了 PEP-551。 早期的測試表明,添加這兩個 API 所帶來的性能影響可以忽略不計,“絕大多數基準測試顯示速度在 1.05 倍之間”的結果。
最初的計劃是讓 PEP-551 搭載 Python 3.7,并計劃于 2018 年 6 月中旬釋出,但根據下個月釋出的新功能清單,該提案沒有進行最終削減。 但這并不意味着 PEP-551 不會在未來版本的 Python 中提供。
本文來自雲栖社群合作夥伴“開源中國”
本文作者:達爾文
原文連結