分享方式:


偵錯工具安全性

偵錯其他處理序的功能可以讓您獲得在他處無法得到的多樣化功能,特別是在遠端偵錯時。 惡意偵錯工具可能會在被偵錯的電腦上散佈更廣泛的損害。

然而,許多開發人員並不了解也可能會有反向的安全性威脅。 偵錯項目處理序中的惡意程式碼可能會危及偵錯電腦的安全性:有一些必須防範的安全性漏洞。

安全性最佳作法

在偵錯的程式碼和偵錯工具之間有隱含的信任關係。 如果您願意對其進行偵錯,應該也願意加以執行。 底限是您必須能夠信任要偵錯的項目。 如果不能信任它,則您不應該進行偵錯,或是應該在隔離環境中從能夠容忍危害的電腦上進行偵錯。

為了降低潛在攻擊面,實際執行電腦上應該停用偵錯。 基於相同的原因,應該永遠不啟用偵錯。

Managed 偵錯安全性

以下列出幾項適用所有 Managed 偵錯的一般建議:

遠端偵錯安全性

本機偵錯通常比遠端偵錯安全。 遠端偵錯會增加能夠探查的整體表面範圍。

遠端偵錯會使用「Visual Studio 遠端偵錯監視」(msvsmon.exe),並且在設定方面有幾個安全性建議。 設定驗證模式的慣用方法是「Windows 驗證」,因為「非驗證」模式並不安全。

Error dialog

當使用「Windows 驗證」模式時,請留意授予未受信任使用者連接至 msvsmon 的權限是危險的,因為這樣使用者就會擁有您在裝載 msvsmon 之電腦上的所有權限。

請勿在遠端電腦上偵錯未知的處理序:可能會有潛在弱點影響執行偵錯工具的電腦,或是危害 msvsmon。 如果您一定要偵錯未知的處理序,請嘗試在本機偵錯並使用防火牆以避免任何潛在的威脅。

如需設定 msvsmon 的詳細資訊,請參閱設定遠端偵錯程式

Web 服務偵錯安全性

在本機偵錯比較安全,但是因為在 Web 伺服器上可能並未安裝 Visual Studio,所以本機偵錯並不實用。 一般來說,偵錯 Web 服務會在遠端完成 (除了在開發期間以外),因此遠端偵錯安全性的建議也適用於 Web 服務偵錯。 這裡有幾個額外的最佳作法。 如需詳細資訊,請參閱 Debugging XML Web Services

  • 請勿在受到危害的 Web 伺服器上啟用偵錯

  • 在偵錯前請確定 Web 伺服器是安全的。 如果不確定是否安全,請勿進行偵錯

  • 如果要偵錯公開在網際網路上的 Web 服務要特別小心

外部元件

請留意程式進行互動的外部元件之信任狀態,特別是如果您並未撰寫其程式碼。 同時留意 Visual Studio 或偵錯工具會使用的元件。

符號和原始程式碼

需要考慮安全性的兩個 Visual Studio 工具如下所示: