gpt4 book ai didi

java - 如何阻止 javaagent 附加?

转载 作者:行者123 更新时间:2023-11-30 02:47:29 42 4
gpt4 key购买 nike

如何检查 javaagent 是否已注入(inject) JVM 或禁用 javagent 的附加?由于安全原因,我试图防止我的应用程序在运行时被修改。

我知道如何防止 javaagent 在启动时加载,但我无法找到一种方法来防止 VirtualMachine API 动态附加。

有人有想法吗?

最佳答案

在 HotSpot 上,您可以设置 -XX:+DisableAttachMechanism,在 J9 上,您可以通过 -Dcom.ibm.tools.attach.enable=no 禁用附件,但是无法为任何虚拟机禁用它。您可以做的是自己使用 premain(String, Instrumentation 方法来检测任何类,而不是传递检测接口(interface)的实际实例或 null。但是,我会不推荐它,这会破坏附加 API 的一般契约。

但是,这些都不会提高安全性。附件要求有权访问您的 JVM 进程的另一个进程正在同一台计算机上运行。如果是这种情况,并且另一个进程是攻击者,则仪表 API 是您应该担心的最后一个问题。此外,如果您维护一个库,则该库的用户已经拥有对您的代码的完全访问权限,并且可以在运行您的代码之前对其进行修改。

因此,即使可以禁用附件,这样做也不会“提高安全性”。

关于java - 如何阻止 javaagent 附加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39736643/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com