2

每当一个人想从Visual Studio附加到一个进程,一个接收到这个讨厌的消息:调试过程如何影响调试过程(机器)?

Attach security warning

question and its answers显示的斗争摆脱它。这Microsoft article告诉我们有关附加的调试过程/机器的潜在危险:

然而,许多开发人员没有意识到安全威胁可以 也流在相反的方向。 调试对象进程中的恶意代码 有可能危及调试的安全性 机器:存在许多安全漏洞,必须对其进行防护 。

问题:调试过程如何能够利用调试过程? (我只对几个亮点感兴趣,因为我想可以写一本关于它的书)。

而且也,什么是对本地计算机的w3wp.exe过程进行调试时,有此警告的目的(我想,绝大多数的调试会话的发生发展机内)。如果本地机器的w3wp进程受到威胁,那么无论如何你都会陷入困境。

+1

此文件共享可能的原因,为什么它在调试时在本地w3wp.exe进程调试过程中:http: //developers.de/blogs/damir_dobric/archive/2009/11/13/attach-debugger-security-warning.aspx。例如,如果托管该服务的附加过程由不具有调试权限的用户托管,则会出现该错误。 –

+0

你见过这个:https://security.stackexchange.com/questions/127681/how-attaching-to-a-process-with-a-debugger-can-compromise-systems-security? –

+0

@SimonMourier - 我已阅读过类似的MSDN文章,但信息相当一般。我对调试进程如何实际上危害调试器进程感兴趣。我认为了解一些关于这个主题的内容会很有趣。 – Alexei

回答

2

当您在调试对象中调试某些东西时,您将有效地在调试器上运行代码。这是潜在的安全问题。

例如,假设调试对象有一些类型会将natvis加载到调试器中。假设C++ Expression Evaluator中有一个安全漏洞,允许通过natvis进行缓冲区溢出攻击。只要调试某个进程,远程进程就可以控制你的本地机器。当然这不太可能,但调试器并没有针对这种攻击加强。调试的本质意味着你必须让任何代码运行。

另一方面,一旦进程正在被调试,调试器就具有与它相同的权限。你可以做任何你想做的事。

附加到未知用户的进程时会弹出此警告。请参阅此文章: https://msdn.microsoft.com/ro-ro/library/ms241736.aspx