将 java 远程调试器端口公开到互联网是否安全?

2024-03-04

我本来打算公开一个端口,用于通过互联网远程调试基于 Java 的 Web 服务,但三思而后行,我意识到它没有任何身份验证。

从理论上讲,似乎可以编写一个工具,附加到远程调试器端口,并通过 Java API 执行任意系统命令。或者修改/转储数据库等等。 至少这个漏洞似乎是这样http://securityaffairs.co/wordpress/36394/hacking/paypal-remote-code-execution.html http://securityaffairs.co/wordpress/36394/hacking/paypal-remote-code-execution.html

我不记得曾被强烈警告过公开远程调试器端口。但如今,当数百个僵尸网络扫描端口寻找漏洞时,应该更好地进行宣传。

请任何人评论它是否安全和/或如何在任意基于 java 的网络服务上以安全的方式做到这一点?我的目标是能够在生产服务器上执行远程调试。


您可以配置远程调试以使用 SSL 和身份验证,这适用于 Windows 和 Linux,但有点麻烦。并且该端口始终开放。

我确信您有充分的理由来调试实时/生产应用程序,并且知道当您真正调试它时,而不仅仅是使用连接来访问 JMX 数据,例如,当您连接调试器时,您的应用程序将停止运行。

Oracle 文件 http://docs.oracle.com/javase/7/docs/technotes/guides/management/agent.html有些风险较高或较低,具体取决于您如何配置代理:

注意 - 已发现密码存在潜在安全问题 当客户端获取远程连接器的身份验证 来自不安全的 RMI 注册表的远程连接器(默认)。如果 攻击者在目标服务器上启动伪造的 RMI 注册表 启动合法的注册表,攻击者就可以窃取客户端的注册表 密码。此场景包括启动 Java VM 的情况 启用远程管理,使用系统属性 com.sun.management.jmxremote.port=portNum,即使启用了 SSL 时也是如此。 尽管此类攻击可能会被注意到,但它仍然是一种 脆弱性。

注意 - 此配置不安全。任何知道的远程用户 (或猜测)您的 JMX 端口号和主机名将能够 监视和控制您的 Java 应用程序和平台。虽然它可能 适合开发,不推荐用于生产 系统。

注意 - 此配置不安全:任何知道的远程用户 (或猜测)你的端口号和主机名将能够监控 并控制您的 Java 应用程序和平台。此外,可能 危害不仅限于您在 MBean 中定义的操作。 A 远程客户端可以创建 javax.management.loading.MLet MBean 并 使用它从任意 URL 创建新的 MBean,至少如果有的话 没有安全经理。换句话说,恶意远程客户端可以使 您的 Java 应用程序执行任意代码。

因此,虽然禁用安全性对于 开发中,强烈建议您不要禁用 生产系统的安全。

即使涉及最高安全性的配置(移动端口、启用 ssl、通过 ssl 客户端证书进行身份验证)仍然存在风险。 如果您仍然需要调试连接,我建议您使用可能已经存在的服务器 ssh 连接,并使用此连接创建到调试器端口的 ssh 隧道。您可以在这里阅读更多相关内容:无法通过 SSH 隧道远程调试 JVM https://stackoverflow.com/questions/7645455/cannot-remotely-debug-jvm-via-ssh-tunnel(因为它已经开启所以我不复制细节)

在不加密和身份验证的情况下打开端口将使任何人都可以连接到您的 jvm。这将允许读取和写入 JMX 值、停止代码的执行、修改值、创建堆转储、覆盖代码和所有其他不好的东西。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 java 远程调试器端口公开到互联网是否安全? 的相关文章

随机推荐

  • 将 UserControl 序列化为 xaml,但不序列化其子控件?

    NET 4 0 中的 XAML 序列化堆栈进行了相当多的更改 其中一项更改是 当序列化 UserControl 时 您不仅可以获得控件本身 还可以获得其所有子控件 var sb new StringBuilder var writer Xm
  • 创建链接服务器和数据库别名

    我有两台服务器 Server1 和 Server2 在两台服务器上我都有一个名为 QAI 的数据库 有没有一种方法可以创建一个链接服务器 其别名从 Server2 到 Server1 而不是 服务器1 QAI dbo tbBlah 将其别名
  • 使用 Windows 调度程序运行 jar 文件

    我有 jar 文件 我想从 Windows 7 中的 Windows 调度程序运行该文件 我已经给出了路径java exe在路径 脚本中和 jar c abc ab jar在参数字段中 但它不运行 我也曾在bat文件的帮助下尝试过 但它无法
  • Bash:在 OS X 下查找字符串中字符的位置

    有没有办法找到字符串中第一个字符的位置Bash under Mac OS X 就像是 stringZ abcABC123ABCabc 6 echo expr index stringZ C12 C position 如中所述高级 Bash
  • 如何在 Python 中重新运行代码?

    我有这个单词解扰器游戏 仅在 CMD 或 python shell 中运行 当用户正确或错误地猜测单词时 它会显示 按任意键再次播放 我怎样才能让它重新开始 在评估用户的输入后不要让程序退出 相反 在循环中执行此操作 例如 一个甚至不使用函
  • CSS:在同一行有3个div,中间的div占据剩余空间

    我正在构建一个工具栏 我希望以下示例中的黄色部分占据整个左侧空间 白色 http jsfiddle net MWjGH 1 http jsfiddle net MWjGH 1 div class left Some content div
  • 一起运行 Tkinter 窗口和 PysTray 图标

    我正在构建一个 tkinter gui 项目 并且正在寻找使用 tkinter 窗口运行托盘图标的方法 我发现 Pystray 库可以做到这一点 但现在我正在尝试弄清楚如何将这个库 托盘图标 与 tkinter 窗口一起使用 我设置了当用户
  • 如何使用 OpenPyXL 设置带标题的列格式

    我正在尝试以日期格式设置某些列的格式 我能够使用以下命令成功更改单个单元格的格式 date style Style number format M D YYYY ws E7 style date style 但是除了标题之外 是否有更简单的
  • 由各种分隔符分割,同时保留分隔符?

    我想分割文本 过公元年 因为无论你如何选择 简体字危及了对古代文学的研究输入 使用这三个 或更多 字符作为分隔符 我当然可以这样做 lines preg split u body 但是我不想让结果行保留其结束分隔符 一个句子也可能这样结束啊
  • 如何检查 Bigquery 上列表的某个项目是否在另一个列表项目中?

    我有一个专栏 比如 11999999999 12999999999 31999999999 和另一列 例如 5511777777777 5512888888888 5531999999999 我想做一个CASE WHEN如果第一列上的任何项
  • model.fit 上的尺寸数量错误

    我正在尝试运行这个 SimpleRNN model add SimpleRNN init uniform output dim 1 input dim len pred frame columns model compile loss ms
  • 使用一个 Iron-ajax 元素处理多个请求

    理论上来说 应该可以使用一个iron ajax通过设置多个请求的元素auto属性 然后重复设置url元素上的属性 iron ajax有一个属性叫做activeRequests 这是一个只读数组 因此它似乎支持同时对多个请求进行排队 但实际上
  • 使用 Ruby 将 XML 请求发送到 Web 服务器

    恐怕我在通过网络服务器发布文档 例如 XML 方面没有太多经验 所以如果我对 HTTP 缺乏了解 我深表歉意 我在 ruby 应用程序中设置了一个基本的 Mongrel Web 服务器127 0 0 1 port 2000 服务器 我在同一
  • MongoDB 服务器无法使用 gitlab-ci 在 gitlab runner 上启动

    现在我正在使用 Ruby 和 Mongo 开发一个应用程序 但是当我使用 gitlab ci 部署应用程序时 我陷入了困境 似乎 mongo 服务器没有在 gitlab runner 的测试环境中启动 这是我的 gitlab ci yml
  • 可变集合有文字语法吗?

    我知道我可以创建一个NSArray with foo bar or an NSDictionary with 0 foo 1 bar 是否有用于创建的文字语法NSMutableArray or an NSMutableDictionary
  • 如何为列表中的 ::marker 添加 CSS 背景?

    我有一个 HTML 有序列表 其结构如下 ol li class myclass First Element li li class myclass First Element li li class myclass First Eleme
  • 将 CSS 对象转换为样式标签

    有时我被迫以编程方式向 DOM 添加 CSS 样式 如果您需要一个理由 想象一下编写一个小型 ui 小部件 它具有自己的样式 但应该仅包含一个 js 文件 以便于处理 在这种情况下 我更喜欢使用对象表示法在脚本代码中定义样式 而不是混合规则
  • 如何使用新的 UDF 功能来创建“动态 SQL 语句”?

    如何使用新的 UDF 功能来创建 动态 SQL 语句 有没有办法使用 UDF 来根据模板和输入变量构造 SQL 语句 然后运行此查询 文档https cloud google com bigquery user definition fun
  • AFNetworking - 下载多个文件+通过 UIProgressView 进行监控

    我正在尝试将代码从 ASIHTTPRequest 更改为 AFNetworking 目前我想选择 10 15 个不同的 HTTP URL 文件 并将它们下载到文档文件夹中 使用 ASIHTTPRequest 就很容易了 myQueue se
  • 将 java 远程调试器端口公开到互联网是否安全?

    我本来打算公开一个端口 用于通过互联网远程调试基于 Java 的 Web 服务 但三思而后行 我意识到它没有任何身份验证 从理论上讲 似乎可以编写一个工具 附加到远程调试器端口 并通过 Java API 执行任意系统命令 或者修改 转储数据