Chia sẻ
//Quét virus, malware, trojan hiệu quả với ClamAV

Quét virus, malware, trojan hiệu quả với ClamAV

Trong thế giới phát triển phần mềm ngày nay, bảo mật luôn là một yếu tố quan trọng không thể bỏ qua. Những mối đe dọa như virus, trojan và malware có thể ẩn nấp trong các tệp mã nguồn, tài nguyên hệ thống hoặc thậm chí trong các thư viện phần mềm mà chúng ta sử dụng hàng ngày.

Dù các giải pháp bảo mật thương mại hiệu quả nhưng chúng thường không phù hợp với dự án nhỏ hoặc công ty khởi nghiệp vì chi phí cao. Do đó, ClamAV – một giải pháp mã nguồn mở, miễn phí và dễ triển khai – trở thành lựa chọn lý tưởng. ClamAV cung cấp khả năng quét virus, malware và dễ tích hợp vào quy trình phát triển phần mềm.

Bài viết này sẽ giới thiệu về ClamAV, vai trò của nó trong bảo mật mã nguồn, cách sử dụng ClamAV trong môi trường Docker để tự động hóa và tối ưu quy trình quét mã nguồn.

Giới thiệu về ClamAV

ClamAV là một phần mềm quét virus mã nguồn mở nổi tiếng, được sử dụng rộng rãi trên các hệ thống Unix (Linux, macOS). Phần mềm này đặc biệt phù hợp với các máy chủ và môi trường không sử dụng hệ điều hành Windows. Ngoài ra, ClamAV không chỉ quét virus mà còn phát hiện malware, trojan và các mối đe dọa khác trong email, hệ thống tập tin và các luồng dữ liệu đầu vào khác.

Phần mềm này hiện được duy trì bởi Cisco Talos – nhóm nghiên cứu an ninh mạng trực thuộc Cisco. Nó cung cấp khả năng phát hiện malware hiệu quả. Tuy nhiên, ClamAV chủ yếu tập trung vào các mối đe dọa đã biết. Nó không được thiết kế để xử lý hiệu quả các mối đe dọa zero-day.

Vì sao bạn cần ClamAV?

  • Phát hiện mã độc trong tài nguyên không đáng tin cậy: Mặc dù mã nguồn của ứng dụng, website hoặc hệ thống có thể không chứa virus trực tiếp, nhưng trong các thư viện hoặc tài nguyên phụ thuộc từ bên ngoài có thể tiềm ẩn malware hoặc trojan. Vì vậy ClamAV có thể giúp bạn phát hiện mã độc tiềm ẩn từ các file tải lên hoặc các phần mềm phụ thuộc.
  • Chi phí thấp: ClamAV là phần mềm mã nguồn mở hoàn toàn miễn phí, do đó rất phù hợp với các dự án nhỏ hoặc các công ty không có ngân sách lớn cho các phần mềm bảo mật thương mại.
  • Quét tự động hóa: Có thể dễ dàng được tích hợp vào các quy trình DevOps hoặc CI/CD để tự động quét mã nguồn hoặc các tệp tải lên của người dùng, từ đó giúp bảo vệ ứng dụng ngay từ giai đoạn phát triển.
  • Cập nhật liên tục: ClamAV được duy trì và cập nhật thường xuyên, cung cấp cơ sở dữ liệu virus mới nhất. Nhờ đó nó luôn sẵn sàng để phát hiện các mối đe dọa mới.

Lợi ích khi sử dụng ClamAV

  • Miễn phí và mã nguồn mở: Không cần chi phí bản quyền, dễ dàng triển khai và tùy chỉnh theo nhu cầu.
  • Dễ sử dụng và tích hợp: ClamAV dễ tích hợp vào các công cụ và quy trình tự động.
  • Phát hiện đa dạng các loại malware: ClamAV có thể quét nhiều loại file (từ mã nguồn, tệp nén đến email) và hỗ trợ nhiều hệ điều hành.
  • Hỗ trợ đa nền tảng: Ngoài việc quét trên Linux, ClamAV còn hỗ trợ Windows và macOS, giúp bảo vệ hệ thống của bạn khỏi malware bất kể nền tảng sử dụng.

Hướng dẫn tạo Docker container sử dụng ClamAV để quét mã nguồn tự động

Trong hướng dẫn này, tôi sẽ trình bày cách build một Docker Container sử dụng ClamAV để quét mã nguồn. Việc này giúp bạn triển khai ClamAV dễ dàng và hiệu quả, đồng thời bảo vệ mã nguồn trong các môi trường phát triển.

Bước 1: Tạo Dockerfile cho ClamAV

Tạo một tệp Dockerfile để xây dựng một container chứa ClamAV. Trong tệp này, bạn sẽ cài đặt ClamAV và cấu hình môi trường để quét mã nguồn.

# Chọn image base từ clamav/clamav

FROM clamav/clamav:latest

# Cập nhật cơ sở dữ liệu virus khi build image

RUN freshclam

# Lệnh mặc định khi chạy container sẽ chạy freshclam và clamscan

CMD freshclam && clamscan -r --bell -i /scan

Chú thích:

  • -r: Quét đệ quy tất cả file và thư mục con trong /scan.
  • –bell: Phát tiếng “chuông” (nếu được hỗ trợ) khi phát hiện virus.
  • -i: Chỉ hiển thị các file bị nhiễm (ẩn các file sạch).
  • /scan: Thư mục chứa mã nguồn hoặc file cần quét (được mount từ máy chủ).Dữ liệu từ các API.

Xem thêm: Mẹo Build Docker Images

Bước 2: Tạo file docker-compose.yml

File docker-compose.yml giúp bạn dễ dàng quản lý và triển khai container ClamAV trong môi trường phát triển.

services:
  clamav:
    build:
      context: .
    image: clamav-scanner
    container_name: clamav-scanner

Bước 3: Build Docker Image

Mở terminal và di chuyển đến thư mục chứa Dockerfiledocker-compose.yml, sau đó chạy lệnh để build Docker image.

docker compose build

Bước 4: Chạy Docker Container để quét mã nguồn

Sau khi build thành công, bạn có thể chạy Docker container để quét thư mục mã nguồn. Bạn cần mount thư mục chứa mã nguồn vào container để ClamAV có thể quét.

docker run --rm -v <full-path-source-code>:/scan clamav-scanner

Demo

1. Chuẩn bị data

Trong ví dụ này, cấu trúc thư mục của project-a bao gồm một file normal.txt và một thư mục eicar. Thư mục eicar chứa các file tải từ bộ kiểm tra malware của Eicar, bao gồm eicar_com.zip, eicar.com, eicar.txt,eicarcom2.zip. Các file trong thư mục eicar đều được coi là virus, do đó khi quét, chúng sẽ bị phát hiện (found). Ngược lại, file normal.txt là file sạch và không hiển thị trong kết quả quét.

project-a/
├── normal.txt
└── eicar/
    ├── eicar_com.zip
    ├── eicar.com
    ├── eicar.txt
    └── eicarcom2.zip

2. Cấu hình cronjobs ClamAV

Để thực hiện cấu hình cho hệ thống quét malware theo thời gian định kì cronjob thì ta làm như sau:

# crontab -e
0 0 * * * docker run --rm -v /var/opt/www/project-a:/scan clamav-scanner

Với nội dung cấu hình cronjob trên thì cứ mỗi ngày vào lúc 00 giờ sáng, ClamAV sẽ tiến hành quét malware, trojan ở thư mục /var/opt/www/project-a/

3. Kết quả sau khi scan

vuongtoan@DESKTOP-S0923Q3:~/www/clamav$ docker run --rm -v ./project-a:/scan clamav-scanner
ClamAV update process started at Wed Dec 11 17:34:43 2024
daily.cld database is up-to-date (version: 27484, sigs: 2069620, f-level: 90, builder: raynman)
main.cvd database is up-to-date (version: 62, sigs: 6647427, f-level: 90, builder: sigmgr)
bytecode.cvd database is up-to-date (version: 335, sigs: 86, f-level: 90, builder: raynman)
/scan/eicar/eicar.txt: Eicar-Signature FOUND
/scan/eicar/eicarcom2.zip: Win.Test.EICAR_HDB-1 FOUND
/scan/eicar/eicar_com.zip: Win.Test.EICAR_HDB-1 FOUND
/scan/eicar/eicar.com: Eicar-Signature FOUND

----------- SCAN SUMMARY -----------
Known viruses: 8701412
Engine version: 1.4.1
Scanned directories: 2
Scanned files: 5
Infected files: 4
Data scanned: 0.00 MB
Data read: 0.00 MB (ratio 0.00:1)
Time: 19.253 sec (0 m 19 s)
Start Date: 2024:12:11 17:34:43
End Date: 2024:12:11 17:35:02

Kết luận

ClamAV là một công cụ quét virus mạnh mẽ và miễn phí, giúp bảo vệ hệ thống khỏi các mối đe dọa. Hơn nữa, việc xây dựng Docker container với ClamAV giúp đơn giản hóa quá trình quét mã nguồn, đảm bảo mã của bạn không chứa malware, trojan hoặc các mối đe dọa bảo mật khác.

Điều này rất quan trọng trong môi trường phát triển để đảm bảo bảo mật cho các ứng dụng và hệ thống của bạn. Do đó, hãy thử tích hợp ClamAV vào quy trình phát triển của bạn để bảo vệ mã nguồn và ứng dụng một cách hiệu quả!

Vương Toàn
PHP Developer

ỨNG TUYỂN







    Chế độ phúc lợi

    CHÍNH SÁCH LƯƠNG & THƯỞNG

    Thấu hiểu tâm tư nguyện vọng của nhân viên, công ty Rivercrane Việt Nam đặc biệt thiết lập chế độ xét tăng lương định kỳ 2lần/năm. Xét đánh giá vào tháng 06 và tháng 12 hàng năm và thay đổi lương vào tháng 01 và tháng 07 hàng năm. Ngoài ra, nhân viên còn được thưởng thành tích định kỳ cho các cá nhân xuất sắc trong tháng, năm.

    CHẾ ĐỘ ĐÀO TẠO TẠI NHẬT

    Luôn luôn mong muốn các kỹ sư và nhân viên trong công ty có cái nhìn toàn diện về lập trình những mảng kỹ thuật trên thế giới, công ty Rivercrane Việt Nam quyết định chế độ 3 tháng 1 lần đưa nhân viên đi học tập tại Nhật. Các bạn kỹ sư hoàn toàn đều có thể quyết định khả năng phát triển bản thân theo hướng kỹ thuật hoặc theo hướng quản lý.

    CHẾ ĐỘ ĐI DU LỊCH HÀNG NĂM

    Không chỉ đưa đến cho nhân viên những công việc thử thách thể hiện bản thân, công ty Rivercrane Việt Nam muốn nhân viên luôn thích thú khi đến với những chuyến hành trình thú vị hàng năm. Những buổi tiệc Gala Dinner sôi động cùng với những trò chơi Team Building vui nhộn sẽ giúp cho đại gia đình Rivercrane thân thiết hơn.

    CHẾ ĐỘ EVENT CÔNG TY

    Những hoạt động Team building, Company Building, Family Building, Summer Holiday, Mid-Autumn Festival… sẽ là những khoảnh khắc gắn kết đáng nhớ của mỗi một nhân viên trong từng dự án, hoặc sẽ là những điều tự hào khi giới thiệu công ty mình với với gia đình thân thương, cùng nhau chia sẻ yêu thương với thông điệp “We are One”

    BẢO HIỂM

    Công ty Rivercrane Việt Nam đảm bảo tham gia đầy đủ chế độ Bảo hiểm xã hội, bảo hiểm y tế và bảo hiểm thất nghiệp. Cam kết chặt chẽ về mọi thủ tục phát sinh công ty đều hỗ trợ và tiến hành cho nhân viên từ đầu đến cuối. Những chế độ bảo hiểm khác công ty cũng đặc biệt quan tâm và từng bước tiến hành.

    CHẾ ĐỘ PHÚC LỢI KHÁC

    Hỗ trợ kinh phí cho các hoạt động văn hóa, văn nghệ, thể thao; Hỗ trợ kinh phí cho việc mua sách nghiên cứu kỹ thuật; Hỗ trợ kinh phí thi cử bằng cấp kỹ sư, bằng cấp dành cho ngôn ngữ. Hỗ trợ kinh phí tham gia các lớp học về quản lý kỹ thuật bên ngoài; Các hỗ trợ phúc lợi khác theo quy định công ty…

    © 2012 RiverCrane Vietnam. All rights reserved.

    Close