Linux Docker 컨테이너에서 실행하기 위해 clamd 프로세스를 사용했습니다.https://hub.docker.com/r/mkodockx/docker-clamav/
내 사용 사례는 내 서비스가 사용자가 업로드한 모든 첨부 파일을 검사하고 업로드 서비스에 대한 응답으로 검사 상태를 반환하는 것입니다.
12MB와 같은 작은 .pdf 파일과 같은 일부 파일을 스캔하는 데 시간이 오래 걸립니다(~2분).
bash-5.0$ clamdscan 12MB-PDF.pdf
/tmp/12MB-PDF.pdf: OK
----------- SCAN SUMMARY -----------
Infected files: 0
Time: 121.192 sec (2 m 1 s)
Start Date: 2021:08:24 16:02:09
End Date: 2021:08:24 16:04:10
bash-5.0$
bash-5.0$ top
Mem: 4102684K used, 4050300K free, 412640K shrd, 30660K buff, 2356148K cached
CPU: 16% usr 0% sys 0% nic 83% idle 0% io 0% irq 0% sirq
Load average: 0.21 0.07 0.02 2/524 1844
PID PPID USER STAT VSZ %VSZ CPU %CPU COMMAND
26 1 clamav S 1251m 15% 4 17% clamd
25 1 clamav S 9372 0% 3 0% freshclam -d
1844 553 clamav S 5884 0% 1 0% clamdscan 12MB-PDF.pdf
553 0 clamav S 2420 0% 5 0% bash
560 0 clamav S 2412 0% 3 0% bash
1 0 clamav S 2228 0% 1 0% {bootstrap.sh} /bin/bash /bootstrap.sh
567 560 clamav R 1584 0% 3 0% top
아래는 참조용 clamd.conf입니다.
###############
# General
###############
DatabaseDirectory /var/lib/clamav
TemporaryDirectory /tmp
LogTime yes
PidFile /run/clamav/clamd.pid
LocalSocket /run/clamav/clamd.sock
TCPSocket 3310
Foreground yes
###############
# Results
###############
DetectPUA yes
ExcludePUA NetTool
ExcludePUA PWTool
AlgorithmicDetection yes
Bytecode yes
###############
# Scan
###############
ScanPE yes
DisableCertCheck yes
ScanELF yes
AlertBrokenExecutables yes
ScanOLE2 yes
ScanPDF yes
ScanSWF yes
ScanMail yes
PhishingSignatures yes
PhishingScanURLs yes
ScanHTML yes
ScanArchive yes
###############
# Scan
###############
MaxScanSize 2000M
MaxFileSize 2000M
StreamMaxLength 2000M
MaxRecursion 30
MaxFiles 50000
MaxEmbeddedPE 40M
MaxHTMLNormalize 40M
MaxHTMLNoTags 2M
MaxScriptNormalize 5M
MaxZipTypeRcg 1M
MaxPartitions 128
MaxIconsPE 200
PCREMatchLimit 10000
PCRERecMatchLimit 10000
1GB 정도의 큰 .bin 파일에 대해서도 동일한 성능 저하가 발생하며, 파일을 스캔하고 스캔 결과를 제공하는 데 2분 이상이 소요됩니다.
누구든지 스캔 시간을 최적화하는 방법에 대한 팁을 제공해 주실 수 있습니까?
감사해요.