Nghiên cứu giải pháp tăng tốc khả năng quét virus ClamAV trên phần cứng

Luận văn thạc sĩ phân tích máy tính nghiên cứu hiện thực giải pháp tăng tốc khả năng quét virus của clamav trên phần cứng, đánh giá thực trạng, chỉ ra hạn chế, đề xuất giải pháp

Chuyên ngành

Khoa học máy tính

Người đăng

Ẩn danh

Thể loại

luận văn thạc sĩ

2015

96
3
0

Phí lưu trữ

35 Point

Tóm tắt

I. Giới thiệu đề tài

Đề tài 'Tăng tốc quét virus ClamAV trên phần cứng' tập trung vào việc cải thiện hiệu suất quét virus của phần mềm ClamAV, một công cụ mã nguồn mở phổ biến. Với sự gia tăng nhanh chóng của virus máy tính, việc quét và phát hiện virus trở nên cấp thiết. Luận văn này nghiên cứu các hàm trong ClamAV, xác định các điểm thắt cổ chai và đề xuất giải pháp kết hợp phần mềm và phần cứng để tăng tốc độ quét. Theo thống kê, ClamAV hiện có khoảng 29 triệu virus trong cơ sở dữ liệu, điều này đặt ra thách thức lớn cho hiệu suất quét. Việc cải thiện tốc độ quét không chỉ giúp bảo vệ thông tin cá nhân mà còn nâng cao an ninh mạng cho các tổ chức lớn.

1.1 Tính cấp thiết của đề tài

Với sự phát triển của Internet, virus máy tính ngày càng trở nên tinh vi và nguy hiểm hơn. Chương trình chống virus như ClamAV cần phải hoạt động hiệu quả để bảo vệ người dùng khỏi các mối đe dọa. Tốc độ quét chậm có thể dẫn đến việc bỏ sót virus, gây ra thiệt hại lớn cho người dùng. Do đó, việc nghiên cứu và phát triển các giải pháp tăng tốc quét virus là rất cần thiết. Luận văn này không chỉ giải quyết vấn đề tốc độ mà còn đảm bảo tính khả thi và hiệu quả trong thực tế.

II. Cơ sở lý thuyết

Chương này trình bày các khái niệm cơ bản về phần mềm quét virus ClamAV, bao gồm cấu trúc và hoạt động của nó. ClamAV sử dụng cơ sở dữ liệu chữ ký để phát hiện virus, với các hàm quan trọng như cli_bm_scanbuff() và cli_ac_scanbuff() chiếm phần lớn thời gian quét. Việc phân tích hoạt động của các hàm này giúp xác định các điểm thắt cổ chai trong quá trình quét. Ngoài ra, các phương pháp so trùng chuỗi như Bloom Filter và Finite State Machine cũng được đề cập, nhằm cung cấp cái nhìn tổng quan về các kỹ thuật hiện có trong việc tối ưu hóa quá trình quét virus.

2.1 Khảo sát phần mềm ClamAV

ClamAV là một phần mềm quét virus mã nguồn mở, được thiết kế để kiểm tra email và các tệp tin trên máy chủ. Phần mềm này sử dụng nhiều phương pháp để phát hiện virus, bao gồm mẫu tĩnh và mẫu động. Việc khảo sát ClamAV cho thấy rằng tốc độ quét của nó bị ảnh hưởng bởi số lượng mẫu chữ ký ngày càng tăng. Để cải thiện hiệu suất, cần phải tối ưu hóa các hàm quét và giảm thiểu thời gian xử lý. Luận văn này sẽ đề xuất các giải pháp cụ thể nhằm tăng tốc độ quét virus, từ đó nâng cao hiệu quả bảo mật cho người dùng.

III. Nghiên cứu và thiết kế giải pháp

Mục tiêu chính của nghiên cứu là thiết kế một framework có khả năng quét virus nhanh hơn ít nhất 4 lần so với ClamAV. Để đạt được điều này, luận văn đã phân tích các hàm trong ClamAV và xác định rằng hai hàm cli_bm_scanbuff() và cli_ac_scanbuff() là nguyên nhân chính gây ra tình trạng chậm chạp. Bằng cách thay thế các hàm này bằng các hàm giao tiếp với phần cứng, tốc độ quét có thể được cải thiện đáng kể. Hệ thống HSAV (High Speed Anti-Virus) được thiết kế để kết hợp phần mềm và phần cứng, cho phép quét virus với tốc độ cao hơn, đồng thời duy trì tính khả thi trong việc cập nhật cơ sở dữ liệu virus.

3.1 Thiết kế framework HSAV

Framework HSAV được thiết kế để tối ưu hóa quá trình quét virus bằng cách kết hợp giữa phần mềm và phần cứng. Phần mềm sẽ đảm nhận việc tiếp nhận và xử lý dữ liệu, trong khi phần cứng sẽ thực hiện quét virus với tốc độ cao. Việc sử dụng giao thức truyền nhận dữ liệu hiệu quả giữa phần mềm và phần cứng là rất quan trọng để tránh tình trạng thắt cổ chai. Kết quả thực nghiệm cho thấy rằng hệ thống HSAV có throughput đạt 541.6 Mb/s, nhanh gấp 4.2 lần so với ClamAV, chứng minh tính khả thi và hiệu quả của giải pháp.

IV. Kết quả thực nghiệm

Kết quả thực nghiệm cho thấy rằng hệ thống HSAV đã đạt được mục tiêu đề ra về tốc độ quét. Thông qua các thử nghiệm, tốc độ quét của hệ thống nhanh hơn đáng kể so với ClamAV. Việc sử dụng phần cứng chuyên dụng giúp giảm thiểu thời gian xử lý và tăng cường khả năng phát hiện virus. Các thử nghiệm cũng chỉ ra rằng việc tối ưu hóa các hàm quét trong ClamAV là rất cần thiết để cải thiện hiệu suất. Hệ thống HSAV không chỉ đáp ứng yêu cầu về tốc độ mà còn đảm bảo tính chính xác trong việc phát hiện virus.

4.1 Phân tích kết quả thử nghiệm

Kết quả thử nghiệm cho thấy rằng hệ thống HSAV có thể quét virus với tốc độ cao hơn 4 lần so với ClamAV. Thông qua việc phân tích sơ đồ gọi hàm trong ClamAV, các điểm thắt cổ chai đã được xác định và cải thiện. Hệ thống HSAV cho thấy khả năng xử lý dữ liệu nhanh chóng và hiệu quả, đồng thời giảm thiểu độ trễ trong quá trình quét. Điều này chứng tỏ rằng việc kết hợp phần mềm và phần cứng là một giải pháp khả thi để nâng cao hiệu suất quét virus.

09/02/2025

Trích đoạn nội dung tài liệu

Đặt vấn đề Phần mềm quét virus ClamAV có tốc độ quét chậm (khoảng 12. Để tăng tốc hệ thống, các nghiên cứu trên thế giới thường tập trung vào 2 hướng chính. Đó là chỉ dùng phần cứng và phần mềm-phần cứng kết hợp. Ở hướng tiếp cận chỉ dùng phần cứng trong công trình “The Parallel Sieve Method for a Virus Scanning Engine” [1] của nhóm nghiên cứu Hiroki Nakahara, Tsutomu Sasao, 1 Munehiro Matsuura và Yoshifumi Kawamura.

Chúng tôi đánh giá ưu và nhược điểm của hướng tiếp cận này như sau: Ưu điểm:  Throughput cao (1.6 Gbps)  Sử dụng bộ nhớ hiệu quả. MUC (memory utilization coefficient) : amount of memory per a character = 1.7 Bytes/Char) Khuyết điểm:  Phức tạp  Tốn công sức  Giá thành cao  Khó cập nhật cơ sở dữ liệu virus cho hệ thống Ở hướng tiếp cận kết hợp phần cứng và phần mềm trong công trình “Phần mềm- phần cứng kết hợp for high-speed signature-based virus scanning” của nhóm nghiên cứu Ying-Dar Lin, Po-Ching Lin và Yuan-Cheng Lai [4] thì họ đã giảm tải cho chương trình ClamAV bằng cách đẩy một phần xử lý so trung chuỗi xuống hệ thống BFAST (Bloom Filter Accelerated Sublinear Time). BFAST đóng vai trò như bộ lọc tiền xử lý dữ liệu quét. Nếu như BFAST nghi ngờ có virus thì hệ thống sẽ báo lên phần mềm để kiểm tra kĩ hơn.

Chúng tôi đánh giá hướng tiếp cận này như sau: Ưu điểm:  Throughput của hệ thống BFAST (151 Mbps) tăng gấp 28 lần so với chương trình gốc ClamAV  Ít công sức  Giá thành có thể chấp nhận  Dễ dàng cập nhật cơ sở dữ liệu virus cho hệ thống 2 Khuyết điểm:  Throughput đạt được vẫn còn thấp hơn rất nhiều so với mức độ mô phỏng hardware là 8.79 Gbps  Copy dữ liệu từ user space sang DMA buffer thì tiêu tốn rất nhiều thời gian  Throughput của toàn hệ thống có thể bị suy giảm do overhead từ việc truyền dữ liệu của DMA. Mục tiêu nghiên cứu Nghiên cứu và thiết kế được framework có tốc độ quét nhanh tối thiểu 4 lần so với phần mềm quét virus ClamAV. Nghiên cứu và thiết kế giải pháp Mục tiêu của chúng tôi là thiết kế 1 framework hoàn chỉnh trong 1 hệ thống quét virus trong 1 doanh nghiệp. Do vậy, framework này ngoài tốc độ cao (khoảng từ 1 Gb/s) thì phải cho phép người dùng thể theo dõi, quan sát, cấu hình, cập nhật hệ thống một cách dễ dàng theo nhu cầu của người dùng.

Để làm điều này thì chúng tôi cần phải kết hợp giữa software và hardware. Software đóng vai trò là tiếp nhận files, tiền xử lý, phân loại file, lọc tách data ra khỏi header. Phần hardware sẽ đóng vai trò tăng tốc hệ thống cho ta biết rằng tốc độ của hardware chuyên dụng thì luôn cao hơn rất nhiều lần so với software. Ngoài ra, để tăng tốc hệ thống hơn nữa, chúng tôi quyết định thiết kế phần cứng sao cho đảm nhận việc quét virus toàn bộ chứ không chỉ đóng vai trò bộ lọc.

Nếu để phần mềm phải quét lại dữ liệu nghi ngờ từ phần cứng gửi lên thì tốc độ quét của hệ thống sẽ chậm đi. Clam Antivirus (ClamAV) là một công cụ quét virut mã mở nguồn, được thiết kế đặc biệt cho việc kiểm tra e-mail trên các e-mail gateways. Nó cung cấp một số tiện ích bao gồm khả năng mở rộng multi-threaded daemon (cung cấp dịch dụ quét qua các socket communications). Hiện tại, tổng số lượng chữ kí trong ClamAV là 2.843 (thống kê theo 23/4/2013) và số lượng chữ kí này vẫn tiếp tục tăng lên theo từng ngày.

Cơ sở dữ 3 liệu của ClamAV được chia thành ba nhóm: mẫu tĩnh, MD5 và mẫu động. Mẫu tĩnh và mẫu MD5 chiếm tới 99. Thời gian so trùng mẫu tĩnh và mẫu động chiếm tới 84% thời gian quét file. Đây chính là phần chạy chậm nhất trong phần mềm ClamAV.

Do đó, chúng tôi tiến hành thay thế các hàm này bằng các hàm giao tiếp socket với phần cứng bên dưới để tăng tốc độ quét virus. Như vậy, ta có thể áp dụng Amdahl’s law bên dưới để có thể tính toán tốc độ truyền DMA để không làm thắt cổ chai hệ thống. 1 𝑆= 𝐹 (1) 1− 𝐹+ 𝐸 Trong đó:  F là tỉ lệ phần được cải tiến,  E: Speedup của phần cải tiến.  S: Speedup của toàn hệ thống Theo kết quả tìm hiểu, chạy thử thì trong phần mềm ClamAV, 2 hàm cli_bm_scanbuff() và cli_ac_scanbuff() chiếm tổng thời gian là 84%.

Theo mục tiêu nghiên cứu, hệ thống framework cần nhanh hơn phần mềm ClamAV ít nhất là 4 lần. Thế vào công thức (1), ta có: 4 = 1/[(1-0.3 Theo đo đạc thực nghiệm, thì tốc độ quét của 2 hàm là khoảng 0. Để hệ thống tăng tốc 5 lần thì phải cải tiến tốc độ quét của 2 hàm lên tối thiểu là 9.3 lần tức là tốc độ của hàm sau khi cải tiến phải đạt được 0. Như vậy tốc độ truyền dữ liệu của DMA phải đạt tối thiểu được 3.7 Gb/s Để có thể giao tiếp được giữa phần cứng và phần mềm mà không bị chi phí overhead nhiều, chúng tôi dùng hiện thực phần giao tiếp dùng RAW socket.

Sau đó, dữ liệu được copy từ user space sang kernel space vào TX buffer. Chúng tôi định nghĩa giao thức bắt 4 tay giữa phần cứng và phần mềm trong từng frame truyền bằng các trường như MAGIC code, loại packet, block ID, cũng như số lượng byte truyền. Tiếp theo, dữ liệu được DMA truyền từ TX bufer tới module quét virus HSVS (High speed virus scanner). DMA có 2 tần số hoạt động là 125 Mhz và 250 Mhz.

Do ở đây chúng tôi cần DMA hoạt động ở tốc độ cao lên hơn 4 Gb/s, nên chúng tôi cấu hình DMA hoạt động ở tần số 250 MHz vì ở tần số 125 MHz thì DMA chỉ đạt throughput tối đa là 2 Gb/s theo kết quả thực nghiệm. Sau khi dữ liệu quét tới HSVS (High speed virus scanner) thì cli_static_scanbuff() (là 1 hàm quét mẫu động được dùng để thay thế cli_bm_scanbuff() của ClamAV) sẽ đợi HSVS trả kết quả quét từng block về: có virus hay không có virus. Nếu có virus thì gửi kèm thông tin số lượng virus, virus ID và cli_static_scanbuff() sẽ kết thúc việc quét ngay lập tức, không quét block tiếp theo. Nếu như không có virus thì cli_static_scanbuff() sẽ gửi block tiếp theo để quét.

Tương tự quá trình xử lý trên khi block dữ liệu được gửi tới cli_dynamic_scanbuff() để quét mẫu động. Khi quét tới block cuối cùng của file thì kết thúc xong việc quét 1 file, và quét file tiếp theo nếu có. Những đóng góp của luận văn Những đóng góp chính của luận văn là:  Cải tiến khả năng giao tiếp giữa phần mềm và phần cứng tránh được tình trạng thắt cổ chai.  Thiết kế và hiện thực một framework HSAV quét virus tốc độ cao.

Framework của chúng tôi có thể tương thích bất kì server nào cổng PCI-express. Từ đó, cải thiện rõ rệt hiệu suất hoạt động của phần mềm diệt virus ClamAV. 5  Tích hợp được framework của chúng tôi vào ClamAV, phần mềm quét virus mã nguồn mở phổ biến được sử dụng rộng rãi nhất. Đóng góp này chứng tỏ hiện thực của chúng tôi là có tính thực tế và khả thi.

 Chạy thử nghiệm và đánh giá hiệu suất của framework theo 2 tiêu chí: là thông lượng (throughput) và độ trễ (latency) 1. Những kết quả đạt được Trong giới hạn thời gian làm luận văn, chúng tôi đã thiết kế framework của hệ thống tăng tốc quét virus phần cứng trên nền phần cứng (gọi tắt là HSAV). Hệ thống gồm có 3 phần chính là : phần cứng so trùng mẫu chữ kí tĩnh, phần giao tiếp giữa phần mềm và phần cứng và phần mềm quản lý bằng giao diện web. Qua thực nghiệm, HSAV có throughput của hệ thống đạt được trung bình là 541.6 Mb/s, nhanh gấp 4.2 lần so với giải pháp dùng phần mềm ClamAV có throughput là 65.

Như vậy, hệ thống của chúng tôi đã gần đạt yêu cầu và nhiệm vụ của đề tài là hệ thống sau khi cải tiến phải nhanh tối thiểu 4 lần so với phần mềm. Cấu trúc của luận văn  Chương 2: Trình bày cơ sở lý thuyết của phương pháp so trùng chuỗi bao gồm 3 hướng tiếp cận chính là systolic array, FSM và hashing cũng như khảo sát phần mềm ClamAV.  Chương 3: Tổng hợp các công trình nghiên cứu liên quan. Chương này đề cập tới 2 kiểu framework tiêu biểu là kết hợp phần cứng và phần mềm và chỉ dùng phần cứng, đồng thời phân tích ưu và khuyết điểm của mỗi kiểu framework.

 Chương 4: Giới thiệu về hệ thống HSVS (High speed virus scanner) dùng để so trùng mẫu chữ kí tĩnh. Phần này sẽ đề cập tới kiến trúc hệ thống, bộ quét kí tự (Character Scanning Unit), bộ so sánh (Comparison Unit). 6  Chương 5: Trình bày framework tăng tốc quét virus trên FPGA (HSAV): gồm các vấn đề như định nghĩa giao thức truyền nhận dữ liệu, thiết kế bộ điều khiển giao tiếp với PCIe.  Chương 6: Kết quả và đánh giá khi chạy thực nghiệm hệ thống HSAV  Chương 7: Một số kết luận và hướng mở rộng của đề tài.

7 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 KHẢO SÁT PHẦN MỀM QUÉT VIRUS CLAMAV Trong phần này, nhóm tiến hành khảo sát phần mềm quét virus mã nguồn mở ClamAV một cách toàn diện bao gồm:  Thiết lập môi trường phát triển hệ thống và cài đặt phần mềm ClamAV.  Chạy thử nghiệm và cấu hình chức năng của ClamAV.  Phân tích giải thuật và hoạt động của ClamAV  Phân tích tập chữ ký Virus của ClamAV  Phân tích source code, thời gian hoạt động các hàm quét trong ClamAV.1 Giới thiệu ClamAV Clam Antivirus (ClamAV) là một công cụ quét virut mã mở nguồn, được thiết kế đặc biệt cho việc kiểm tra e-mail trên các e-mail gateways. Nó cung cấp một số tiện ích bao gồm khả năng mở rộng multi-threaded daemon (cung cấp dịch dụ quét qua các socket communications), một dòng lệnh máy quét và công cụ tiên tiến cho việc update tự động cơ sở dữ liệu.

Cái chính của gói là một công cụ chống virus có sẵn ở dạng thư viện chia sẻ. ClamAV được phát triển bởi nhiều công ty vừa và nhỏ trong hệ thống email của họ, ví dụ như:  Vermont State Government (United States of America)  Michigan University (United States of America)  Nantes University (France)  Webmail.2 Cơ sở dữ liệu chữ ký của ClamAV 2.1 Giới thiệu Gói dữ liệu virus của ClamAV gồm có các file chính như sau  main.cvd: là dữ liệu chính, chứa các mẫu virus từ trước đến giờ.cvd: là dữ liệu mới nhất, được cập nhật theo ngày.cvd: là dữ liệu đặc biệt.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Bài viết "Tăng tốc quét virus ClamAV trên phần cứng: Nghiên cứu thạc sĩ khoa học máy tính" trình bày những cải tiến trong việc tối ưu hóa hiệu suất quét virus của phần mềm ClamAV trên các hệ thống phần cứng. Nghiên cứu này không chỉ giúp nâng cao tốc độ quét mà còn giảm thiểu tài nguyên hệ thống cần thiết, từ đó mang lại lợi ích lớn cho người dùng trong việc bảo vệ an toàn thông tin. Bài viết cung cấp cái nhìn sâu sắc về các phương pháp kỹ thuật và ứng dụng thực tiễn, giúp độc giả hiểu rõ hơn về tầm quan trọng của việc bảo mật trong môi trường số hiện nay.

Nếu bạn muốn tìm hiểu thêm về các giải pháp bảo mật khác, hãy tham khảo bài viết Tiểu luận đồ án môn học an toàn thông tin đề tài các giải pháp đảm bảo an toàn bảo mật website, nơi bạn sẽ khám phá thêm nhiều phương pháp bảo vệ website hiệu quả. Ngoài ra, bài viết Luận văn thạc sĩ hcmute giải pháp quản trị bảo mật hệ thống mạng dựa vào kỹ thuật điều khiển truy cập và quản lý lỗ hổng cũng sẽ cung cấp cho bạn những kiến thức bổ ích về quản lý an ninh mạng. Cuối cùng, bạn có thể tìm hiểu về việc phát hiện lỗ hổng bảo mật trong mạng LAN qua bài viết Tiểu luận đồ án môn học an toàn thông tin đề tài sử dụng kali linux phát hiện lỗ hổng bảo mật trong mạng lan. Những tài liệu này sẽ giúp bạn mở rộng kiến thức và nâng cao khả năng bảo mật trong lĩnh vực công nghệ thông tin.