2017-01-12 14 views
1

Я создаю пользовательский проводник файлов в java. Я узнал об этом черве, который начинает выполняться, когда значок файла просматривается в проводнике файлов. Я считаю, что это возможно только в том случае, если оно каким-то образом загружается в память с помощью чтения метаданных (пожалуйста, исправьте меня, если я ошибаюсь). Я слышал, что Java является «безопасным» языком, но просто хотел знать, насколько он безопасен.Может ли браузер файлов с открытием и предварительным просмотром файлов отключиться, быть в безопасности от вредоносных программ, которые запускаются при просмотре в проводнике?

Я использую следующий импорт в моей программе:

java.io.File; 

java.net.URL; 

java.nio.file.Path; 

javax.swing.filechooser.FileSystemView; 

Я использую fileSystemView.getFiles(), чтобы получить список файлов и просто отобразить иконку, проверив файл extension.Files не preveiwed также.

Так что, если я отключу открытие файла, щелкнув по его значку в моем браузере файлов, тогда есть ли способ, которым может работать некоторая вредоносная программа, когда моя программа-проводник отображает содержимое зараженного pendrive?

Можно ли это сделать и на других языках программирования?

+0

У вас есть ссылки на этот * червяк *? Трудно сказать, защищает ли решение от потока, не зная, что такое угроза ... –

+0

Я не упомянул об одной угрозе, упомянутой выше, но для вашей информации вы можете больше узнать об этом черве [здесь] (https://en.wikipedia.org/wiki/Stuxnet) – JPK

ответ

2

Здесь есть несколько вопросов.

Прежде всего, об опасности случайного чтения/выполнения файлов, щелкнув их в приложении: Я думаю, что немного сложно ответить на этот вопрос, фактически не видя код, который вы используете. Я не вижу никакой очевидной угрозы, основанной на вашем описании, но опять же, я не знаю точно, что ваша Java Runtime будет делать для вас, когда вы помечаете файл, читаете каталог, в котором он находится, и читаете сам файл - если нет никакой «магии», происходящей за кулисами там, может быть, не проблема. Если Java выполняет какой-либо просмотр/разбор/что-либо с файлом, чтобы зарегистрировать и перечислить его, это трудно сказать.

Из documentation for Class FileSystemView

Поскольку API JDK1.1 файла не позволяет получать доступ к такой информации, как корневые разделы, информацию о типе файла, или скрытых файлов бит, этот класс предназначен для интуитивно, как много ОС - информацию о конкретной файловой системе, насколько это возможно.

Я не совсем уверен, что именно это означает даже, но я воспринимаю это как показатель того, что что-то происходит за кулисами при доступе к файлам. Возможно, кто-то с более глубокими знаниями может добавить к этому.

Теперь, чтобы использовать это для анализа потенциально зараженных флэш-накопителей: Будьте очень осторожны.

Когда вы подключаете что-то к своему USB-порту, он может делать «материал» (*) автоматически, как только он подключен. Вероятно, это произойдет задолго до того, как вы даже запустили приложение Java, поэтому не имеет значения, насколько безопасно его кодировать.

Есть способы ограничить доступ к USB и такое поведение автоматического запуска. Вы должны, по крайней мере, знать и изучать это, и убедитесь, что у вас есть обновленный и работающий сканер безопасности, прежде чем вставлять что-либо подозрительное на ваш компьютер.


(*) Есть даже примеры, когда USB-устройства могут украсть информацию от запертых компьютеров, обеспечивая (подделка или настоящий?), а затем прослушивание и управление компьютерами с автоматическими соединениями обычно выполняются постоянно в фоновом режиме.

+0

Но будет ли это, если все функции автозапуска отключены? – JPK

+0

Если вы можете быть уверены, что отключили все из них, то нет, очевидно, нет; что касается Java, я просто не знаю достаточно, ни о вашем приложении, ни о том, как работает библиотека, которую вы используете. Чтобы быть в безопасности, я лично предпочел бы использовать, по возможности, совершенно отдельную машину; Один из них можно стереть как до, так и после ваших исследований. – Kjartan