瞭解 CodeQL 如何確保第三方驅動程式符合強大的安全性標準,以協助減少 Windows 的受攻擊面。 本文說明使用 CodeQL 進行 WHCP 合規性的優點。
設定此安全性列的其中一個步驟是 Windows 硬體相容性計劃 (WHCP) 的需求,指出所有驅動程式提交都必須在驅動程式原始程式碼上使用 CodeQL 引擎,並修正任何被視為 「必須修正」的違規。
瞭解 CodeQL 概念
CodeQL 是開發人員用來對即時環境外部程式代碼執行安全性分析的靜態分析引擎。
CodeQL 會在編譯期間內嵌程式代碼,並從中建置資料庫。 資料庫會變成包含可查詢數據的目錄、來源參考和記錄檔。 建置資料庫之後,就可以利用 CodeQL 查詢(也稱為檢查或規則)對它執行分析,以判斷原始程式碼是否包含違規或安全性弱點。
CodeQL 提供標準查詢連結庫,可檢查語言正確性和語意,為想要確保程式代碼不受 Bug 和弱點的開發人員提供絕佳的價值。
CodeQL 也提供建置自定義查詢的選項。
若要深入瞭解如何撰寫自定義查詢,請參閱CodeQL檔中的 撰寫查詢 。
CodeQL 也提供 CodeQL 命令行工具 (CLI) 來執行 CodeQL 動作或大規模分析。
在 CodeQL 用戶入門中尋找其他 CodeQL CLI 檔。
CodeQL 如何增強驅動程序安全性
由 GitHub 撰寫的 CodeQL 是功能強大的語意程式代碼分析引擎,以及廣泛的高價值安全性查詢套件組合,以及強固的平臺,使其成為保護驅動程式程式代碼的寶貴工具。
在 硬體實驗室套件 (HLK) 終端使用者許可協定下,允許使用 CodeQL 進行 WHCP 測試。
對 WHCP 參與者來說,HLK 的 EULA 會取代 GitHub 的 CodeQL 條款及條件,指出 CodeQL 可在自動分析、持續整合或持續交付過程中使用,作為一般工程流程的一部分,以分析準備提交並認證為 WHCP 一部分的驅動程式。
靜態工具標誌測試會強制執行此需求,以分析驅動程式原始程式碼,並修正任何必須修正違規。
這很重要
Windows 硬體相容性計劃要求在我們的用戶端和伺服器作業系統上使用 CodeQL 進行靜態工具徽標 (STL) 測試。 我們將繼續在舊版產品上維護 SDV 和 CA 的支援。 我們強烈建議合作夥伴檢閱 靜態工具標誌測試的程式代碼QL需求。
HLK EULA 和 CodeQL
在 硬體實驗室套件 (HLK) 終端使用者許可協定下,允許使用 CodeQL 進行 Windows 硬體相容性計畫測試的認證。
對於 WHCP 參與者,HLK 的 EULA 會覆寫 GitHub 的 CodeQL 條款及條件,讓 CodeQL 在自動化分析、CI 或 CD 期間 使用 ,作為一般工程程式的一部分,以分析提交給 WHCP 認證的驅動程式。
如需後續的一般用途,請閱讀 GitHub CodeQL 條款及條件 和/或 連絡 CodeQL。