你聽說了嗎?臉書開源Python語言工具的Pysa!
這Python工具到底有什麼作用?這篇為你解釋!
Pysa 為「Python Static Analyzer」的縮寫,是Python靜態分析工具的意思,與另一套同名的勒索軟件 Pysa 毫無關係──希望讀者別把這兩者混為一談。
Pysa 專門用於追蹤大規模的 「Python 代碼庫──如驅動 Instagram 的 Python 程式碼──中的潛在安全漏洞。
這套工具會在代碼運行 / 編譯之前,以靜態模式掃描程式碼,著眼於數據流經系統的方式,查找潛在已知的錯誤模式、然後幫助開發者標註出潛在的問題:
安全漏洞
Facebook 資安工程師 Graham Bleaney 和 Sinan Cepel 寫道:「分析數據流是非常管用的,因為許多安全和隱私問題,都可被建模為數據而流入不該進入的地方。」舉例來說,遠端代碼執行的漏洞,會被視為一般的用戶輸入,而到達系統程式碼內未經授權的部分。
Facebook 表示:在 2020 年的前半年,Pysa 就偵測到有 44% 的安全漏洞,是藏在 Instagram 伺服器端的 Python 代碼中。
Pysa 是基於開源代碼 Pyre 項目而建立的。Pyre 項目本是用來提高Python程式碼的品質的自動化工具,經過特別修改以協助發現安全漏洞。
去年,Facebook 就有推出了一個類似的工具 Zoncolan,該工具是用於 Hack 語言 (一種類 PHP 語言,用於 Facebook 應用程序的主要代碼庫) 中尋找安全漏洞。
無論是 Pysa 還是 Zoncolan,掃描程式均會尋找潛在危險的資料型態。這些資料型態可能會利用漏洞以允許跨網站指令碼攻擊 (XSS)、遠端程式碼攻擊、SQL 注入或用戶資料外洩等。當掃描到這些有害的數據後,即會通知程式開發人員。
及時檢查
「就像 Zoncolan 用於 Facebook 的 Hack;Pysa 幫助我們擴展了 Python 的應用程式安全性,尤其是那驅動 Instagram 伺服器的代碼庫。」Facebook 資安工程師 Bleaney 和 Cepel 寫道。「這些結果將直接傳送給程式開發人員或是轉到資安工程師,取決於檢測到的問題類型以及我們針對該問題的信噪比 (S/N Ratio)。」
Facebook 表示,它讓 Pysa 開源,以讓更多開發者用來檢查自己的 Python 程式碼。
開源
Bleaney 和 Cepel 表示: 「因為我們在自家產品上使用開源 Python 伺服器端框架,如 Django 以及 Tornado。Pysa 可以從一開始就找出應用這些框架的項目的安全性問題。」他們補充說:將 Pysa 用於尚不支持的框架可以很簡單,只需添加幾行配置,即可告訴 Pysa 數據進入伺服器的位置。
Facebook 已在 GitHub 上正式發布了 Pysa 的開源代碼,以及一些能協助它追踪安全問題的 bug definitions。
相關文章:
是怎樣的Python課程,讓他成功轉職為大醫院的網站工程師?
Python和R語言,哪個適合機器學習或人工智慧?(上)
讓我們利用AI工具搭配Python,讓行銷工作變得簡單!(上)
人工智慧貓砂盆 - 因愛貓腎病過世 工程師研發預防性貓用醫療品
非資工系出身!產品工程師「Python 課程」結業後轉職大醫院的網站工程師
人工智慧結合汽車雷達偵測行車視線死角 「駕駛盲區」即將走入歷史?
Python 教學 - 控制結構篇 - while 迴圈