2017-01-12 2 views
1

Je crée un explorateur de fichiers personnalisé en Java. J'ai appris à connaître ce ver qui commence à s'exécuter lorsque l'icône du fichier est affichée dans l'explorateur de fichiers. Je crois que cela ne pourrait être possible que s'il est chargé en mémoire par quelque chose comme la lecture de métadonnées (Corrigez-moi si je me trompe). J'ai entendu java est une langue «sûre», mais je voulais juste savoir combien il est sûr.Un navigateur de fichiers, avec l'ouverture et la prévisualisation des fichiers désactivées, peut-il être protégé contre les logiciels malveillants qui s'exécutent dans l'explorateur?

J'utilise les importations suivantes dans mon programme:

java.io.File; 

java.net.URL; 

java.nio.file.Path; 

javax.swing.filechooser.FileSystemView; 

J'utilise fileSystemView.getFiles() pour obtenir la liste des fichiers et afficher simplement une icône en cochant les fichiers extension.Files ne sont pas preveiwed aussi. Donc, si je désactive l'ouverture d'un fichier en cliquant sur son icône dans mon navigateur de fichiers, y a-t-il un moyen qu'un logiciel malveillant puisse lancer lorsque mon programme d'exploration de fichiers affiche le contenu d'une clé USB infectée?

Est-ce que cela peut également être réalisé par d'autres langages de programmation?

+0

Avez-vous des références sur ce * ver *? Il est difficile de dire si une solution protège d'un fil sans savoir quelle est la menace ... –

+0

Je ne me concentre pas sur la seule menace mentionnée ci-dessus mais pour vos informations, vous pouvez en savoir plus sur ce ver [ici] (https://en.wikipedia.org/wiki/Stuxnet) – JPK

Répondre

2

Vous avez plusieurs questions à poser ici. Tout d'abord, sur le danger de lire/exécuter accidentellement des fichiers en les cliquant dans votre application: Je pense qu'il est un peu difficile de répondre à cette question sans voir le code que vous utilisez. Je ne vois aucune menace évidente basée sur votre description, mais là encore, je ne sais pas exactement ce que votre Java Runtime fera pour vous lorsque vous marquez un fichier, lisez le répertoire dans lequel il se trouve et lisez le fichier lui-même - S'il n'y a pas de "magie" dans les coulisses, il n'y aura peut-être pas de problème. Si Java fait n'importe quel type de lecture/analyse/quoi que ce soit avec un fichier pour s'enregistrer et le lister, c'est difficile à dire.

De l'documentation for Class FileSystemView

Depuis l'JDK1.1 File API ne permet pas l'accès à ces informations partitions racine, des informations de type de fichier, ou bits de fichiers cachés, cette classe est conçu pour Intuit autant OS -spécifiques informations sur le système de fichiers que possible.

Je ne suis pas vraiment sûr exactement ce que cela signifie même, mais je le prends comme un indicateur que quelque chose va dans les coulisses lors de l'accès aux fichiers. Peut-être que quelqu'un avec des connaissances plus approfondies peut ajouter à cela.

Maintenant, comme pour l'utiliser pour analyser les clés USB potentiellement infectées: Soyez très prudent. Lorsque vous connectez quelque chose à votre USB, il peut faire "stuff" (*) automatiquement dès qu'il est connecté. Cela se produira probablement bien avant que vous ayez démarré votre application Java, cela n'aura donc pas d'importance si vous le codez en toute sécurité.

Il existe des moyens de restreindre l'accès à l'USB, et un tel comportement d'exécution automatique. Vous devriez au moins être conscient et regarder dans ceci, et assurez-vous que vous avez un scanner de sécurité mis à jour et fonctionnel d'une certaine sorte avant d'insérer quelque chose de suspect dans votre PC.


(*) Il y a même des exemples où les périphériques USB peuvent voler les informations à partir d'ordinateurs verrouillés en fournissant un (faux ou réel?) connexion réseau, puis en écoutant et en manipulant les connexions automatiques généralement les ordinateurs en arrière-plan.

+0

Mais cela se produira-t-il si toutes les fonctions d'exécution automatique sont désactivées? – JPK

+0

Si vous pouvez être sûr que vous les avez tous désactivés, alors non, évidemment pas; Quant à ce que Java pourrait faire, je n'en sais tout simplement pas assez, ni sur votre application, ni sur la façon dont la bibliothèque que vous utilisez fonctionne. Pour être du bon côté cependant, je préférerais personnellement utiliser une machine complètement séparée pour cela si possible; Celui que vous pouvez essuyer à la fois avant et après vos enquêtes. – Kjartan