Virus scanning of uploaded files

I’m currently looking into integrating Discourse with our existing web systems to provide a discussion forum for our site’s users. One of the requirements of our platform is that all uploaded files are checked for viruses prior to being made available for anyone to download.

Looking through the documentation, I can’t see any way to configure Discourse to use a virus scanner on uploaded files. Am I missing something?

Discourse doesn’t have such feature. You’d have to build a plugin to scan uploaded files for viruses.

Has anyone built such a plugin?

Not that I am aware of.

I am also interested in this question.

Locally - this is clamav, calling ruby gem.

And GitHub - ifad/clammit: ClamAV HTTP filter

Found a suitable plugin?

As far as I know there is no virus scanning plugin for Discourse.

Есть ли какие-то обновления по этой теме с прошлого года?

Это будет дополнительная ежемесячная плата для корпоративного хостинга. Хотите ли вы добавить эту функцию? Если да, свяжитесь с нашей службой поддержки для получения информации.

У меня возникла та же проблема в моей организации, но у нас нет прав на размещение корпоративного уровня. Мне сказали, что сайт будет закрыт, если мы не найдём решение.
Где в Discourse загружаются файлы и может ли установка на AWS использовать антивирусы для сканирования этих мест в реальном времени?

Если сканирование загружаемых файлов является обязательным требованием, а размещение на Enterprise-хостинге невозможно, рассмотрите другие варианты хостинга или отключите загрузку опасных типов файлов.

Вам действительно нужно сканировать на вирусы файлы JPG и PNG?

Это возможно, однако при использовании хостинга от CDCK вы не будете иметь контроля над этим процессом.

Если бы загрузки находились в S3-бакете, которым вы управляете, могли бы вы использовать антивирусные решения AWS для выполнения требований безопасности?

Последний вопрос, который вы задали, по сути совпадает с тем, что я хотел спросить.
Так вот, находится ли папка /uploads, где хранится дерево загруженных файлов, в [персистентном?] образе Docker или она подключена как том? Я забыл, как всё работает с Docker, и не до конца понимаю, как Discourse хранит загруженные файлы.
Мой системный администратор рассматривает возможность установки ClamAv, но мы не уверены, нужно ли устанавливать его только на нашем экземпляре EC2 или же его нужно установить внутри самого образа Docker (путём редактирования образа для добавления ClamAv и последующей пересборки???).

По умолчанию он находится в томе, который отображается на /var/discourse/shared/standalone в хост-системе. Вы также можете отправлять файлы в облачные хранилища, используя конфигурацию, описанную в статье Использование объектного хранилища для загрузок (S3 и аналоги).

Значит, достаточно установить ClamAv в операционную систему экземпляра и настроить сканирование содержимого в /var/discourse/shared/? Не нужно устанавливать его глубже, то есть внутри самого образа Docker?

Точная папка при стандартной установке — /var/discourse/shared/standalone/uploads/default/. Она монтируется как том в контейнере, и именно туда сохраняются все загруженные файлы.

Если это соответствует вашим требованиям по соответствию, можете смело использовать этот вариант.

@Falco извини, я запутался. Ты подтверждаешь, что ClamAV не нужно устанавливать внутри образа Docker, а достаточно только на ОС EC2? (Я давно не работал с Docker…)

Это должно работать отлично на хосте.

Понял, спасибо @Falco. Мне сказали, что это добавит больше спокойствия в наш обзор безопасности…

У нас есть официальный плагин антивируса, доступный только нашим корпоративным клиентам в рамках нашего хостинга. Настройка и развёртывание довольно сложны, поэтому мы не планируем оказывать поддержку этому плагину публично на meta.

Однако, как корпоративный клиент на хостинге, вы можете воспользоваться этой услугой.