1

我正在用java制作一个自定义文件资源管理器。我知道这个蠕虫会在文件资源管理器中查看文件图标时开始执行。我相信,只有通过读取元数据之类的方式以某种方式将其加载到内存中,这才有可能(如果我错了,请纠正我)。我听说 java 是一种“安全”语言,但只是想知道它有多安全。

我在我的程序中使用以下导入:

java.io.File;

java.net.URL;

java.nio.file.Path;

javax.swing.filechooser.FileSystemView;

fileSystemView.getFiles()用来获取文件列表并通过检查文件扩展名来简单地显示一个图标。文件也没有被预先查看。

因此,如果我通过在文件浏览器中单击文件图标来禁用打开文件,那么当我的文件资源管理器程序显示受感染的 pendrive 的内容时,是否可以运行某些恶意软件?

这也可以通过其他编程语言来实现吗?

4

1 回答 1

2

你在这里有几个方面的问题。

首先,关于通过在应用程序中单击文件而意外读取/执行文件的危险:我认为在没有实际看到您正在运行的代码的情况下回答这个问题有点困难。根据您的描述,我看不到任何明显的威胁,但话又说回来,当您标记文件、读取文件所在的目录并读取文件本身时,我不知道您的 Java 运行时会为您做什么 -如果那里没有幕后发生的“魔术”,则可能不会有问题。如果 Java 对文件进行任何类型的读取/解析/任何操作以注册和列出它,那么很难说。

来自Class FileSystemView 的文档

由于 JDK1.1 文件 API 不允许访问根分区、文件类型信息或隐藏文件位等信息,因此该类旨在尽可能多地直观了解特定于操作系统的文件系统信息。

我不太确定这到底意味着什么,但我认为这是在访问文件时在幕后发生的事情的一个指标。也许有更深入的知识的人可以补充这一点。

现在至于使用它来分析可能被感染的拇指驱动器:非常小心

当您将某些东西连接到 USB 时,它可以在连接后立即自动执行“stuff”(*)。这很可能在您启动 Java 应用程序之前很久就发生了,因此您编写代码的安全性并不重要。

有一些方法可以限制对 USB 的访问,以及这种自动运行行为。您至少应该意识到并调查这一点,并确保在将任何可疑内容插入您的 PC 之前,您拥有更新且有效的某种安全扫描程序。


(*)甚至还有一些例子,USB 设备可以通过提供(假的还是真实的?)网络连接从锁定的计算机中窃取信息,然后监听和操纵计算机通常在后台持续进行的自动连接。

于 2017-01-12T10:10:48.833 回答