在禁用文件打开和预览的情况下,文件浏览器是否可以安全地免受在资源管理器中查看时运行的恶意软件的攻击



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

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

java.io.File;
java.net.URL;
java.nio.file.Path;
javax.swing.filechooser.FileSystemView;

我使用fileSystemView.getFiles()来获取文件列表,并通过检查文件扩展名来简单地显示一个图标。文件也不优先。

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

其他编程语言也可以实现这一点吗?

这里有几个方面要问。

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

从Class FileSystemView 的文档

由于JDK1.1 File API不允许访问诸如根分区、文件类型信息或隐藏文件位之类的信息,因此该类被设计为直观地显示尽可能多的特定于操作系统的文件系统信息。

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

现在,关于使用它来分析潜在感染的拇指驱动器:请非常小心

当你将某个东西连接到USB时,它一连接就可以自动执行"填充"(*)。这种情况可能早在你启动Java应用程序之前就发生了,所以你对它的编码有多安全并不重要

有一些方法可以限制对USB的访问,以及这种自动运行行为。你至少应该意识到并调查这一点,并确保在将任何可疑的东西插入你的电脑之前,你有一个更新的、可工作的某种安全扫描仪。


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

相关内容

最新更新