微軟宣布發布其原始碼分析工具Microsoft Application Inspector 的原始程式碼,旨在幫助依賴第三方軟體元件的開發人員。 Microsoft Application Inspector 是一款原始碼分析器,它利用基於 JSON 的規則引擎進行靜態分析,從而揭示軟體元件的重要特徵和其他特性。
這個程式碼分析器與其他同類型工具的不同之處在於,它不僅限於檢測程式設計實踐,其設計方式使得在程式碼控制過程中,它可以識別並突出顯示那些通常需要仔細人工分析的特徵。
根據Microsoft提供的有關該工具的說明:
Microsoft Application Inspector不會嘗試識別“好”或“壞”模型。 通過引用用於特徵檢測的400多個規則模板來報告發現的內容。 根據Microsoft的說法,這還包括對安全有影響的功能,例如使用加密等。
該工具透過命令列運行,並且跨平台。它的設計目的是在使用前掃描組件,以幫助確定軟體的類型或功能。
您提供的數據可通過直接檢查源代碼而不是依賴於大多數有限的文檔或建議來減少確定軟件組件做什麼所需的時間。
Microsoft Application Inspector支援分析各種程式語言,包括:C、C++、C#、Java、JavaScript、HTML、Go、PowerShell等,以及 HTML、JSON 和文字等輸出格式。
微軟應用程式檢查器開發人員表示,它既可用於個人用途,也可用於大規模用途,並且可以分析使用多種不同程式語言建構的元件的數百萬行原始程式碼。
Microsoft使用Application Inspector來識別組件功能集隨時間推移(按版本劃分)的關鍵更改,因為它們可以指示從增加的攻擊面到惡意的後門程序的所有內容。
他們還利用該工具識別高風險組件以及那些具有異常特徵、需要進一步審查的組件。高風險組件包括涉及密碼學、身份驗證或反序列化等領域的元件,這些領域的漏洞很可能造成更大的問題。
該工具的目標是根據第三方軟體元件的具體特徵快速識別存在風險的第三方軟體元件,但它在許多不安全環境中也很有用。
基本上,Microsoft Application Inspector最重要的功能如下:
- 基於JSON的規則引擎,執行靜態分析。
- 從使用多種語言創建的組件中分析數百萬行源代碼的能力。
- 識別高風險組件和具有意外特徵的組件的能力。
- 識別組件功能集(逐個版本)更改的能力,可以指示從惡意後門到較大攻擊面的所有內容。
- 能夠以多種格式生成結果,包括JSON和HTML。
- 發現涵蓋Microsoft Azure,Amazon Web Services和Google Cloud Platform服務API的功能以及操作系統功能(例如文件系統,安全功能和應用程序框架)的功能。
正如預期的那樣,該平台和加密技術得到了很好的支持,包括對稱加密、非對稱加密、哈希加密和 TLS 加密。
可以檢查數據類型的風險,包括敏感的個人身份信息。
其他檢查包括操作系統功能(例如平台標識,文件系統,註冊表和用戶帳戶)以及安全功能(例如身份驗證和授權)。
最後,對於有興趣嘗試 Microsoft Application Inspector 的用戶,現在它可以在 GitHub 上取得。