2 votes

Comment analyser un fichier de manière programmée

Remarque : je pose la question ici car je garantis que la pile de sécurité la fermera parce qu'il s'agit d'une question de programmation.

J'ai une application web (dans ce cas, Java sur Tomcat) pour laquelle je dois occasionnellement permettre à l'utilisateur de télécharger des fichiers. Même si mes utilisateurs sont généralement dignes de confiance, dans mon entreprise, nous partons du principe que tout le monde peut potentiellement être une menace interne (ou tout simplement stupide). Par conséquent, j'aimerais que le fichier téléchargé aille directement dans un répertoire de "quarantaine", qu'il déclenche par programme une analyse et que, seulement si l'analyse réussit, il soit copié dans le dossier de destination prévu pour être traité.

Le seul problème est de trouver (a) comment lancer une analyse, à la demande, de manière programmatique (supposons que nous utilisions la suite d'outils McAfee) et (b) comment recevoir une notification lorsque l'analyse est terminée. Est-ce possible ? Si oui, quelqu'un l'a-t-il fait et peut-il me donner des indications ?

2voto

Jonathan Points 1529

Nous le faisons. Nous avons un système de file d'attente pour que les travailleurs puissent récupérer les opérations sur les fichiers et les exécuter de manière asynchrone. Mais le flux général est de scanner le fichier en utilisant une commande, et de mettre à jour la base de données pour suivre le statut.

  1. écrire le fichier dans un répertoire
  2. noter les informations du fichier dans une base de données avec location=x ; scanned=no ;
  3. J'ai lu la documentation de mcaffee, mais il devrait y avoir un moyen de lancer un scan via la ligne de commande ou via un SDK. Je l'exécuterais probablement via la ligne de commande pour analyser le fichier, et je supposerais que la commande retournera des informations (0 ou !=0 en cas d'erreur ou de mauvais résultats).
  4. Si l'analyseur de fichiers renvoie un résultat différent de zéro, alors définissez scanned=infected ;
  5. si l'analyseur de fichiers renvoie un résultat propre, alors définissez scanned=clean ;

Configurez le code de traitement pour qu'il ne traite que les fichiers qui sont scannés=clean ;

Note : @ David Conrad J'ai trouvé les instructions pour exécuter le scanner en ligne de commande https://kc.mcafee.com/corporate/index?page=content&id=KB75478 ; upvote ce gars.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X