Czego używacie do skanowania plików wrzuconych przez userów?

1

W kontekście wytycznych Microsoftu dot. obsługi file uploadu Upload files in ASP.NET Core, a dokładniej

Run a virus/malware scanner on uploaded content before the file is stored.

Use a third party virus/malware scanning API on uploaded content.

Scanning files is demanding on server resources in high volume scenarios. If request processing performance is diminished due to file scanning, consider offloading the scanning work to a background service, possibly a service running on a server different from the app's server. Typically, uploaded files are held in a quarantined area until the background virus scanner checks them. When a file passes, the file is moved to the normal file storage location. These steps are usually performed in conjunction with a database record that indicates the scanning status of a file. By using such an approach, the app and app server remain focused on responding to requests.

Czy ktoś z was to realizuje? a jeżeli tak, to w jaki sposób?

Jakiś background task, który używa https://virustotal.com? chociaż to chyba jest problematyczne ze względu na poufne dane, GDPR itd.
A może jakiś dobry AV + do niego libka?

Na Windowsie to chyba może być łatwiejsze, a jak to wygląda na Linuxie?

Z jednej strony interesuje mnie coś, co działa z .NET Corem, ale z drugiej i tak to pewnie będzie jakieś zewnętrzne narzędzie, to raczej nie powinno być problemu, więc chętnie usłyszę czego inni używają.

offtop:

w sumie nawet nie wiem czy to dobry dział, ale kompletnie nie mam pojęcia gdzie by to dać. brakuje mi jakiegoś cross-technologicznego działu.

3

https://hub.docker.com/r/niilo/clamav-rest/ Taki jeden z gotowych przykładów. Ogólnie to albo kupuje się API od np. ESET czy innych antywirusów, albo implementujesz sobie w izolowanym środowisku scanner z jakąś bazą wirusów typu clamAV.

1

Jeżeli chcesz tylko odhaczyć wymóg dla jakiegoś ISO-crapu to clamAV da radę. Open-source'owy antywirus który możesz odpalić po prostu jako exe'a. Najlepiej działa na GNU/Linux'ie oczywiście.
Najprościej to zrobić na maszynie która będzie odpowiadała za zapis i odczyt plików. Powiedzmy masz serwis X z S3 jako storage'em. Wtedy wysyłasz plik do X najlepiej w formie zaszyfrowanej, X odszyfrowuje i skanuje. Jeżeli wszystko jest OK to plik zostaje umieszczony w S3 is staje się dostępny dla reszty systemu.

Do testów można wykorzystać to: https://www.eicar.org/?page_id=3950

Jeżeli firmę stać to lepiej brać jakiegoś SaaS'a z certyfikatami. Tak jak nikt nie będzie się czepiał RODO jak wrzucasz na S3 w regionie AWSa z EU, tak samo nikt nie będzie się czepiał jak SaaS będzie miał odpowiednie certyfikaty.

1 użytkowników online, w tym zalogowanych: 0, gości: 1