Jump to content

on-access scan - détecter l'ouverture du fichier


Recommended Posts

Bonjour à tous,

Je recherche un moyen pour détecter l'ouverture d'un fichier, typiquement lorsque l'utilisateur ouvre un document je cherche a pouvoir récupérer l'info.

L'idée étant d'ajouter un scanner à clamwin à l'ouverture d'un document. (la fonction se nommant on-access scan)

Par exemple l'utilisateur double clique sur un zip ou un doc ceci lançant la décompression du fichier ou l'ouverture du doc, je récupère l'info. et lance un scan du document avec clamwin (dans l'idéal le scan devrait intervenir avant l'ouverture du fichier, mais bon déjà être certain que chaque document ouvert a droit a être scanné ira pour le moment).

Problème je n'ai pas vraiment d'idée pour récupérer cette info. D'où le sens de ma question: comment récupérer l'info?

J'utilise autoscript et j'imagine qu'en utilisant l'API windows on doit pouvoir le faire. (Mais je ne suis pas franchement très connaisseur de cette API, j'imagine qu'une personne habituée au vba par exemple doit pouvoir me renseigner).

J'ai déjà créé un script qui analyse au lancement de la session les éléments en mémoire. Puis analyse régulièrement les fichiers vitaux du système, et surveille spécifiquement certains répertoires définis par l'utilisateur (par exemple le répertoire de destination lorsqu'on télécharge un fichier). Il détecte les fichiers dans "document récent" pour les analyser. Enfin il propose un cadre où l'on peut saisir une url pour télécharger un fichier tout en étant certain qu'il est analysé.

Mais dans tous les cas l'ouverture de certains document échappe au répertoire "document récent", l'idéal étant du coup de pouvoir détecter chaque ouverture.

Merci de votre aide, piste...

(dès que j'ai terminé, au moins les éléments décrits plus haut, je donne le code source si cela intéresse).

Link to comment
Share on other sites

Merci pour vos réponses.

Tu dois faire un hook sur l'appel API d'ouverture de fichier. Le seul vrai problème, c'est l injection.

Oui et pas qu'un peu :transpi:

sous unix, j'aurais opte pour un LD_PRELOAD sur open

a voire pour windows, c'est peut-etre faisable

J'ai pensé à quelque chose d'approchant, mais c'est en fait un boulot de romain. J'ai trouvé quelques articles et topics sur le sujet, et c'est vraiment pas facile à mettre en place (il parait que sur vista c'est nettement plus facile).

On final je comprend parfaitement pourquoi clam n'a pas une telle fonction, et surtout pourquoi certains antivirus n'ont pas une vraie fonction scan on-access.

Donc je pense rester sur une analyse régulière des processus d'un coté et un scan des fichiers ouverts récemment, ceux sur le bureau et mes documents, enfin une analyse au pif au mètre de quelques fichiers à la manière d'avast. En prenant en compte certaines clefs du registre j'aurais la plupart des répertoires par défaut des programmes. J'aouterai une fonction dans le menu contextuel "scanner & ouvir".

Une autre solution que j'ai trouvé sur un topic, mais qui me laisse perplexe en terme de performance, c'est de tester l'écriture sur un fichier, si on a un refus, c'est que le plus souvent il est ouvert par un programme. Mais cela demande te faire une sorte de signature de chaque répertoire, vérifier ces répertoires pour détecter un changement, tenter l'écriture (en ayant fait une copie) sur les fichiers du répertoire, et donc trouver celui ouvert. Hum... ça doit pas mal attaquer les performances, au démarrage rien qu'un accès permanent au disque pour vérifier les signatures va faire très très mal.

Donc du coté de l'analyse des fichiers j'en reste là, en revanche je pense qu'intégrer l'analyse des mails est parfaitement faisable, avec un petit proxy mail (pop) libre que j'ai trouvé sur sourceforge.

Merci encore :ouioui:

Link to comment
Share on other sites

Tu peux peut etre regarder du coté de winpooch ( http://winpooch.free.fr/ ) , il me semble que tu peux mettre n'importe quel logiciel avant l'ouverture d'un fichier. Notamment clamwin.

Mais personnellement, j'ai arreté de l'utiliser, avec winpooch, mon core2duo est a genoux. Donc je n'imagine pas sur une machine 600 MHz ou autre, mais c'est un logiciel libre il me semble, donc le code doit etre disponible, y'a moyen de zieuter et d'améliorer les perfs (a moins que la perte de perfs ne vienne d'un autre module de winpooch)

Link to comment
Share on other sites

Merci du tuyau, j'avais complètement oublié l'existence de ce soft qui peut de base gérer clam, et effectivement il peut mettre sur les genoux la meilleure config. du marché. Je tenterai de voir si je peux tirer quelques choses du code source (qui est bien commenté), ou voir si des optimisations sont possibles. Merci :transpi:

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...