# Virus scanning of uploaded files

**URL:** https://meta.discourse.org/t/virus-scanning-of-uploaded-files/85519
**Category:** Support
**Created:** [4월 17, 2018, 9:55오전 UTC](https://meta.discourse.org/t/virus-scanning-of-uploaded-files/85519 "2018-04-17T09:55:28Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![crispygoth](https://avatars.discourse-cdn.com/v4/letter/c/49beb7/32.png) [@crispygoth](https://meta.discourse.org/u/crispygoth)
#### Post date: [4월 17, 2018, 9:55오전 UTC](https://meta.discourse.org/t/virus-scanning-of-uploaded-files/85519/1 "2018-04-17T09:55:29Z")

</div>

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?

---

<div class="post-metadata">

### Author: ![zogstrip](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/zogstrip/32/512781_2.png) [@zogstrip](https://meta.discourse.org/u/zogstrip)
#### Post date: [4월 17, 2018, 10:29오전 UTC](https://meta.discourse.org/t/virus-scanning-of-uploaded-files/85519/2 "2018-04-17T10:29:14Z")

</div>

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

---

<div class="post-metadata">

### Author: ![Cozdabuch](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/cozdabuch/32/139120_2.png) [@Cozdabuch](https://meta.discourse.org/u/Cozdabuch)
#### Post date: [3월 15, 2019, 4:15오후 UTC](https://meta.discourse.org/t/virus-scanning-of-uploaded-files/85519/3 "2019-03-15T16:15:49Z")

</div>

Has anyone built such a plugin?

---

<div class="post-metadata">

### Author: ![zogstrip](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/zogstrip/32/512781_2.png) [@zogstrip](https://meta.discourse.org/u/zogstrip)
#### Post date: [3월 15, 2019, 5:07오후 UTC](https://meta.discourse.org/t/virus-scanning-of-uploaded-files/85519/4 "2019-03-15T17:07:50Z")

</div>

Not that I am aware of.

---

<div class="post-metadata">

### Author: ![Dev\_Work](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/dev_work/32/124200_2.png) [@Dev\_Work](https://meta.discourse.org/u/Dev_Work)
#### Post date: [3월 16, 2019, 3:06오전 UTC](https://meta.discourse.org/t/virus-scanning-of-uploaded-files/85519/5 "2019-03-16T03:06:27Z")

</div>

I am also interested in this question.

Locally - this is clamav, calling ruby gem.

And [GitHub - ifad/clammit: ClamAV HTTP filter · GitHub](https://github.com/ifad/clammit)

---

<div class="post-metadata">

### Author: ![Dev\_Work](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/dev_work/32/124200_2.png) [@Dev\_Work](https://meta.discourse.org/u/Dev_Work)
#### Post date: [3월 18, 2019, 8:40오전 UTC](https://meta.discourse.org/t/virus-scanning-of-uploaded-files/85519/6 "2019-03-18T08:40:10Z")

</div>

Found a suitable plugin?

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [3월 19, 2019, 3:46오전 UTC](https://meta.discourse.org/t/virus-scanning-of-uploaded-files/85519/7 "2019-03-19T03:46:18Z")

</div>

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

---

<div class="post-metadata">

### Author: ![Jerome\_Boccard](https://avatars.discourse-cdn.com/v4/letter/j/848f3c/32.png) [@Jerome\_Boccard](https://meta.discourse.org/u/Jerome_Boccard)
#### Post date: [4월 15, 2020, 3:40오후 UTC](https://meta.discourse.org/t/virus-scanning-of-uploaded-files/85519/8 "2020-04-15T15:40:08Z")

</div>

지난해 이후 이 주제에 대해 새로운 업데이트가 있나요?

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [4월 15, 2020, 11:35오후 UTC](https://meta.discourse.org/t/virus-scanning-of-uploaded-files/85519/9 "2020-04-15T23:35:30Z")

</div>

이 기능은 엔터프라이즈 호스팅에 부과되는 추가 월정액입니다. 이 기능을 추가하시길 원하십니까? 그렇다면 문의를 위해 지원 채널에 연락해 주세요.

---

<div class="post-metadata">

### Author: ![Wall-E](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/wall-e/32/184438_2.png) [@Wall-E](https://meta.discourse.org/u/Wall-E)
#### Post date: [2월 12, 2021, 3:19오후 UTC](https://meta.discourse.org/t/virus-scanning-of-uploaded-files/85519/10 "2021-02-12T15:19:13Z")

</div>

저희 조직에서도 동일한 문제가 발생하고 있습니다. 다만, 저희는 엔터프라이즈 호스팅을 사용할 권한이 없습니다. 해결책을 찾지 못하면 사이트가 종료될 것이라고 통보를 받았습니다.  
Discourse에서 파일이 업로드되는 위치는 어디이며, AWS에 설치된 환경에서 해당 위치를 실시간으로 악성코드 스캔하기 위해 백신 프로그램을 활용할 수 있을까요?

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2월 12, 2021, 7:08오후 UTC](https://meta.discourse.org/t/virus-scanning-of-uploaded-files/85519/11 "2021-02-12T19:08:01Z")

</div>

업로드 스캔이 필수 요건이고 엔터프라이즈 호스팅이 옵션이 아니라면, 다른 호스팅 옵션을 고려하거나 위험한 파일 유형의 업로드를 비활성화하는 방법을 생각해 볼 수 있습니다.

JPG와 PNG 파일에 대해 바이러스 스캔을 실행해야 합니까?

> [@Wall-E](#):
>
> Discourse에서 파일이 어디에 업로드되며, AWS에 설치된 경우 이 위치들을 실시간으로 스캔하기 위해 백신 소프트웨어를 활용할 수 있습니까?

그렇게 할 수는 있지만, CDCK 호스팅을 사용하는 경우 해당 사항을 직접 제어할 수 없습니다.

업로드된 파일이 사용자가 제어하는 S3 버킷에 있다면, AWS 백신 소프트웨어를 사용하여 보안 요구 사항을 충족할 수 있습니까?

---

<div class="post-metadata">

### Author: ![Wall-E](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/wall-e/32/184438_2.png) [@Wall-E](https://meta.discourse.org/u/Wall-E)
#### Post date: [2월 12, 2021, 7:20오후 UTC](https://meta.discourse.org/t/virus-scanning-of-uploaded-files/85519/12 "2021-02-12T19:20:06Z")

</div>

마지막으로 질문하신 내용은 결국 제가 묻고자 했던 내용과도 맞닿아 있습니다.  
즉, /uploads 폴더는 [영구적인] Docker 이미지 내에 업로드 파일 트리가 위치해 있는 건지, 아니면 볼륨 마운트되어 있는 건지 궁금합니다. Docker의 작동 방식을 잊어버렸고, Discourse가 업로드 파일을 저장하는 방식도 명확하지 않습니다.  
시스템 관리자는 ClamAV 설치를 검토 중이지만, 이를 EC2 인스턴스에만 설치하면 되는지, 아니면 Docker 이미지 자체에 설치해야 하는지(이미지를 편집하여 ClamAV를 추가한 뒤 재빌드해야 하는지???) 명확하지 않습니다.

---

<div class="post-metadata">

### Author: ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)
#### Post date: [2월 12, 2021, 7:21오후 UTC](https://meta.discourse.org/t/virus-scanning-of-uploaded-files/85519/13 "2021-02-12T19:21:44Z")

</div>

기본적으로 호스트의 `/var/discourse/shared/standalone`에 매핑되는 볼륨에 저장됩니다. [업로드용 객체 저장소 사용 (S3 & Clones)](https://meta.discourse.org/t/using-object-storage-for-uploads-s3-clones/148916)에 설명된 설정을 통해 업로드 파일을 객체 저장소 서비스로 전송할 수도 있습니다.

---

<div class="post-metadata">

### Author: ![Wall-E](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/wall-e/32/184438_2.png) [@Wall-E](https://meta.discourse.org/u/Wall-E)
#### Post date: [2월 12, 2021, 7:26오후 UTC](https://meta.discourse.org/t/virus-scanning-of-uploaded-files/85519/14 "2021-02-12T19:26:33Z")

</div>

그렇다면 인스턴스 운영체제에 ClamAV를 설치하고 `/var/discourse/shared/`의 항목을 스캔하는 것만으로 충분한가요? Docker 이미지 자체에 설치하는 것은 필요 없나요?

---

<div class="post-metadata">

### Author: ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)
#### Post date: [2월 12, 2021, 7:28오후 UTC](https://meta.discourse.org/t/virus-scanning-of-uploaded-files/85519/15 "2021-02-12T19:28:28Z")

</div>

기본 설치 환경에서 해당 폴더의 정확한 경로는 `/var/discourse/shared/standalone/uploads/default/`입니다. 이 경로는 컨테이너에 볼륨으로 마운트되며 모든 업로드 파일이 저장되는 위치입니다.

이것이 필요하신 컴플라이언스 요건을 충족시킨다면 진행하셔도 됩니다.

---

<div class="post-metadata">

### Author: ![Wall-E](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/wall-e/32/184438_2.png) [@Wall-E](https://meta.discourse.org/u/Wall-E)
#### Post date: [2월 12, 2021, 7:32오후 UTC](https://meta.discourse.org/t/virus-scanning-of-uploaded-files/85519/16 "2021-02-12T19:32:59Z")

</div>

@Falco 죄송하지만 조금 혼란스럽습니다. ClamAV는 Docker 이미지 내부에 설치할 필요가 없고, EC2 OS에만 설치하면 된다는 걸 확인해 주실 수 있나요? (Docker를 좀처럼 안 써서…)

---

<div class="post-metadata">

### Author: ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)
#### Post date: [2월 12, 2021, 7:44오후 UTC](https://meta.discourse.org/t/virus-scanning-of-uploaded-files/85519/17 "2021-02-12T19:44:07Z")

</div>

호스트에서 제대로 작동할 것입니다.

---

<div class="post-metadata">

### Author: ![Wall-E](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/wall-e/32/184438_2.png) [@Wall-E](https://meta.discourse.org/u/Wall-E)
#### Post date: [2월 12, 2021, 8:08오후 UTC](https://meta.discourse.org/t/virus-scanning-of-uploaded-files/85519/18 "2021-02-12T20:08:18Z")

</div>

> [@Falco](#):
>
> 호스트에서는 정상적으로 작동할 것입니다.

알겠습니다, @Falco님. 보안 검토에 더 많은 안정감을 가져다줄 것이라고 하네요…

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [2월 18, 2021, 5:50오전 UTC](https://meta.discourse.org/t/virus-scanning-of-uploaded-files/85519/19 "2021-02-18T05:50:45Z")

</div>

우리는 [공식 안티바이러스 플러그인](https://github.com/discourse/discourse-antivirus)을 보유하고 있으며, 이는 호스팅을 통해 엔터프라이즈 고객에게만 제공됩니다. 설정 및 배포가 상당히 복잡하여 메타에서 공개적으로 지원할 계획이 없습니다.

다만, 호스팅된 엔터프라이즈 고객에게는 이 서비스를 제공합니다.

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [2월 18, 2021, 5:51오전 UTC](https://meta.discourse.org/t/virus-scanning-of-uploaded-files/85519/20 "2021-02-18T05:51:08Z")

</div>


