輕鬆審計代碼安全性,Windows 10有妙招
如果你是軟體開發人員,又希望自己開發的軟體安全性高一點,那麼當前的Windows 10企業內部預覽版(10.0.16253)中就有一個功能可以做到, 當然我無法保證未來版本中它是否還會存在,但我想這可能對你非常有用。
它的位置在「設置 - > Windows Defender - > Windows Defender安全中心 - >應用程序和瀏覽器控制 - >漏洞保護設置」中,你可以為整個系統或特定程序啟用自定義漏洞利用設置。其中有很多不同的保護特性並且許多都可以在審計模式下打開。在審計模式下,它不是在出現情況時終止進程,而是將事件寫入事件日誌。對於管理員,這就意味著其會允許軟體繼續運行,同時能夠使我們意識到這一情況是何時發生的。對於希望通過了解這些情況以此來改進產品的人來說,它其實是提供了一個啟用安全功能的附加好處,即無需重新編譯(在某些情況下),就能告訴你確切的程序代碼在當它在運行時遇到問題的位置。在版本10.0.16253中,可以進行審計的保護特性包括:
任意代碼保護 - 防止非圖像支持的執行代碼和代碼頁修改(例如VirtualAlloc / VirtualProtect創建/修改的代碼)
阻止低完整性圖像
阻止遠程圖像
阻止不受信任的字體
代碼完整性守護者
禁用Win32k系統調用
不允許子進程
導出地址過濾 - 將功能修補到另一個功能的一個常見方法中的一個步驟
導入地址過濾 - 將功能修補到另一個功能的一個常見方法中的一個步驟
模擬執行
驗證API調用(CallerCheck)
驗證圖像依賴完整性
驗證堆棧完整性
要充分利用此功能,我們需要安裝Windows Performance Toolkit。它是Windows SDK安裝程序的安裝選項之一。當您啟用了您感興趣的設置後,打開管理命令提示符並瀏覽到Windows Performance Toolkit目錄(通常為Program Files(x86) Windows Kits Windows Performance Toolkit)。您可以通過運行以下兩個命令(在替換文件名所需的任何路徑之後)啟動並開始收集上述漏洞保護設置的跟蹤以及解析堆棧跟蹤所需的數據:
xperf - 「PROC_THREAD + LOADER」-f「wdeg_klogger.etl」 xperf -start「WDEG」 - 「Microsoft-Windows-Security-Mitigations:0xFFFFFFFFFFFFFF:0xFF: stack 」-f「wdeg_unmerged.etl」
在您運行任何想要收集的方案之後,您可以停止跟蹤並將數據與以下內容合併(再次替換文件名所需的任何路徑):
xperf -stop -stop「WDEG」-d「wdeg_merged.etl」
然後,您可以刪除創建的前兩個文件,因為此時您將擁有第三個所需的所有數據。您可以在Windows Performance Analyzer(WPA)中打開生成的etl文件,並查看數據。如果你不熟悉這個,這裡有一個示例預設文件來查看這種數據:
您可以使用wpaPreset文件擴展名保存它,在WPA中載入數據,轉到我的預設(在WPA的較新版本中的文件 - >窗口 - >我的存在),選擇導入,瀏覽到保存預設的任何地方,選擇它,並雙擊它以顯示視圖。另外,您還需要載入符號,以充分利用這一點。您可以在WPA中在File-> Configure Symbols下設置符號; 您需要將其指向msdl.microsoft.com/download/symbols上的Microsoft符號伺服器以及您的符號伺服器(或您沒有符號伺服器設置的符號文件的位置)。您可以在載入跟蹤時自動配置WPA載入符號,但也可以通過轉到文件 - >載入符號來手動載入符號。一旦完成,您將能夠輕鬆地查看堆棧跟蹤。它就會像下面這樣:
以下是在創建上述過程中我為x64控制台應用程序編譯的示例代碼:
#include #include using namespace std;void* CreateCodeInVirtualMemory(BOOL writable);LPVOID result = VirtualAlloc(NULL, sizeof(code), MEM_COMMIT | MEM_RESERVE, writable ? PAGE_EXECUTE_READWRITE : PAGE_READWRITE);if (result)else cout
在這裡我沒有去對它的應用做更多的介紹,但我相信我的拋磚引玉一定能夠讓更多的人對這一功能產生興趣。
對於在事件查看器中的應用程序和服務日誌中找到的大多數內容,您也可以以相同的方式完成此類操作——單擊特定日誌的屬性,它將具有Provider-Name-Parts / LogName形式的名稱。您只需要在xperf命令中使用「Provider-Name-Parts」部分即可。
點擊展開全文
※找漏洞、打金幣、賣賬號,依靠網路遊戲黑金活了二十年的人
※威脅預警!不用再黑進系統,只要在指示牌上貼紙就可以擾亂自駕車!
TAG:嘶吼RoarTalk |
※Windows 10的安全性是Windows 7的兩倍
※Windows 10的安全性遠超Win7
※Webroot:Windows 10安全性是Windows 7的兩倍
※Windows 10 Build 17672發布:改進Windows Security
※為新一代Windows 10 Always Connected PC,高通宣布驍龍850移動計算平台
※數據報告:Windows 10比Windows 7更安全
※微軟將在今夏推出Windows 7、Windows8.1的安全修復
※Windows Server/Windows 10 SDK Build 17666發布
※錯亂的 Windows 10
※新聞–Windows 10 Insider Preview Build 17728 發布
※Windows 10系統份額已超Windows 7
※Windows 10使用率超越Windows 7
※新聞–Windows 10 Insider Preview Build 17634 發布
※新聞–Windows 10 Insider Preview Build 17733 發布
※新聞-Windows 10 Insider Preview Build 17107 發布
※新聞–Windows 10 Insider Preview Build 17655 發布
※Windows 10 下安全刪除 Linux 系統
※Windows 10 19H1出現了第二代HoloLens支持的證據
※Windows 10 Insider build17115引入了新的隱私設置體驗
※如何降級Windows 10並重新安裝Windows 7