微軟近日開源了其內部使用的軟件特征源碼分析工具 Application Inspector。

  現代軟件開發實踐通常需要基于數百個現有組件中構建應用,無論它們是由組織中的另一個團隊、外部供應商還是開源社區中的某個人編寫的。這樣雖然會帶來許多好處,比如加快開發進度、軟件質量與互操作性等,但同時也會帶來隱藏的復雜性和風險。

  應對這種情況,微軟介紹其內部使用的工具是 Application Inspector,這是一個軟件特征源碼分析器,可以通過使用靜態分析和可自定義的基于json的規則引擎來識別軟件源碼特征,了解程序的功能。

  此工具與傳統的靜態分析工具的不同之處在于,它不會嘗試識別“好”或“壞”的模式,而是會根據500多種規則模式報告發現的內容,并進行特征檢測,包括影響安全性的特征,例如加密技術的使用等。

  在以下示例中,Application Inspector將識別出以下功能:

  • FileOperation.Write

  • Network.Connection.Http

  • Process.DynamicExecution

  這些功能可以告訴我們很多程序的相關信息。

  Application Inspector包含一個可過濾的置信度指示器,可幫助最大程度減少誤報匹配以及可自定義的默認規則和條件匹配邏輯,其帶有數百種功能檢測模式,涵蓋了許多流行的編程語言,并且對以下類型的特征提供了良好的支持:

  • 應用程序框架(開發、測試)

  • 云/服務API(Microsoft Azure、Amazon AWS和Google Cloud Platform)

  • 密碼學相關(對稱、非對稱、哈希和TLS)

  • 數據類型(敏感的個人身份信息)

  • 操作系統功能(平臺標識、文件系統、注冊表和用戶帳戶)

  • 安全功能(身份驗證和授權)