.NET antivirus API
Je suis en train de construire une application web dans laquelle j'ai besoin de scanner l'utilisateur-les fichiers téléchargés pour les virus.
Quelqu'un avec de l'expérience dans la construction de quelque chose comme cela peut fournir des informations sur la façon d'obtenir cette place et en cours d'exécution? Je devine antivirus logiciels ont des Api pour accéder à leur fonctionnalité par programmation, mais il semble qu'il n'est pas facile d'obtenir un coup de main sur les détails.
Pour info, l'application est écrite en C#.
- Cochez cette question. Il devrait être d'une certaine aide.
Vous devez vous connecter pour publier un commentaire.
Je serais probablement juste de faire un appel système pour exécuter un processus indépendant pour faire le scan. Il y a un certain nombre de ligne de commande AV moteurs de différents fournisseurs.
Remarque importante avant de l'utiliser:
Être conscient des conditions d'utilisation. Vous leur donner un accès complet à tout: "Quand vous téléchargez ou que vous soumettez du contenu, vous accordez à VirusTotal (et ceux avec qui nous travaillons) mondiale, libre de redevance, irrévocable et transférable d'utiliser, de modifier, d'héberger, de stocker, de reproduire, de modifier, créer des œuvres dérivées, de communiquer, publier, exécuter publiquement, afficher publiquement et de distribuer ce contenu."
Au lieu d'utiliser un Antivirus local de programme (et donc la liaison de votre programme à ce produit Antivirus et de demander à vos clients pour l'installation de ce produit Antivirus), vous pouvez utiliser les services de VirusTotal.com
Ce site propose un service gratuit auquel votre fichier est donné en entrée à de nombreux produits antivirus et vous recevez un rapport détaillé avec les preuves résultant du processus de numérisation. De cette façon, votre solution n'est pas plus lié à un produit Antivirus (quoique vous sont liées à la disponibilité de l'Internet)
Le site fournit également une Interface de Programmation qui permet une approche par programme à son moteur de balayage.
Ici un VirusTotal.NET une bibliothèque pour cette API
Ici, le globale de la documentation à propos de leur API
Ici, la documentation avec des exemples en Python de leur interface
Et parce qu'aucune réponse n'est complet sans code, c'est pris directement à partir de l'exemple livré avec le client VirusTotal.NET bibliothèque
}
AVERTISSEMENT
Je suis en aucune façon impliqué avec eux. Je suis en train d'écrire cette réponse juste parce qu'il semble être une bonne mise à jour pour ces 4 ans de réponses.
Vous pouvez utiliser IAttachmentExecute API.
Télécharger cette bibliothèque à partir d'ici Anti-Virus Scanner pour .NET ou ajouter une référence à votre VS projet de "NuGet" AntiVirusScanner
Pour l'exemple ci-dessous de code de scanner un fichier :
Prendre un coup d'oeil à la Antivirus de Microsoft API. Il fait usage de COM, qui devrait être assez facile à l'interface avec de .NET. Il se réfère spécifiquement à Internet Explorer et Microsoft Office, mais je ne vois pas pourquoi vous ne seriez pas en mesure d'utiliser pour l'analyse à la demande n'importe quel fichier.
Tous les scanners modernes qui s'exécutent sur Windows devrait comprendre cette API.
Différents scanners de Virus ont de l'API. J'ai intégré avec Sophos. Je suis assez sûr que Norton a une API aussi bien que McAfee n'a pas (qu'il était). Ce virus logiciel voulez-vous utiliser? Vous voudrez peut-être vérifier Metascan, car il permettra à l'intégration avec de nombreux différents scanners, mais il y a une licence annuelle des coûts. 😛
Plug sans vergogne, mais vous pourriez vouloir vérifier https://scanii.com, c'est essentiellement les logiciels malveillants/virus de la détection (ou de REPOS) de service. Oh aussi, assurez-vous de lire et de comprendre virustotal l'API de termes (https://www.virustotal.com/en/documentation/public-api/) - ils sont très clairs au sujet de ne pas permettre l'utilisation commerciale.
J'ai aussi eu cette exigence. J'ai utilisé anti-virus clamAv qui fournit des analyses à la demande par l'envoi du fichier vers leur port d'écoute tcp. Vous pouvez utiliser
nClam
package nuget pour envoyer des fichiers àclamav
.Simple et détaillée de l'exemple est montré ici. Remarque:- La machine synchrone méthode d'analyse n'est pas disponible dans la dernière nuget. Vous avez le code comme je l'ai fait ci-dessus
Pour tester un virus, vous pouvez utiliser la sous chaîne dans un
txt
fichierÀ partir de mon expérience, vous pouvez utiliser COM pour l'interfaçage avec certains logiciels anti-virus. Mais ce que je suggère, c'est un peu plus facile, il suffit d'analyser les résultats d'analyse après la numérisation. Tout ce que vous devez faire est de démarrer le scanner de processus et de pointer vers le fichier/dossier que vous souhaitez numériser, stocker les résultats d'analyse dans un fichier ou rediriger stdout à votre demande et analyse les résultats.
Vous pouvez essayer d'utiliser DevDragon.io.
Est un service web avec une API et .NET client DevDragon.Antivirus.Client que vous pouvez obtenir à partir de NuGet. Les Scans sont sous 200ms pour le fichier de 1 mo.
Plus de la documentation ici:
https://github.com/Dev-Dragon/Antivirus-Client
Divulgation: je travail pour eux.