2.2.2.1. Giới thiệu về ClamAV
Clam AntiVirus là bộ công cụ một mã nguồn mở (GPL) chống virus cho Unix được thiết kế đặc biệt cho email. Nó cung cấp một số các tiện ích như sự linh hoạt và khả năng mở rộng các tiến trình đa luồng vận hành dạng Daemon, một công cụ quét virus trên giao diện dòng lệnh và các tiện ích cho việc cập nhật cơ sở dữ liệu.
Các tính năng của clamav :
• Quét với giao diện dòng lệnh
• Các tiến trình đa luồng vận hành dạng Daemon có hỗ trợ quét trên các truy cập.
• Giao diện Milter cho gửi mail
• Quét trên các truy cập
• Cơ sở dữ liệu virus cập nhật nhiều lần một ngày.
• Tích hợp cho các định dạng lưu trữ khác nhau : Zip, RAR, Tar, Gzip, Bzip2, OLE2, Cabinet, CHM, BinHex, SIS.
• Tích hợp hỗ trợ cho tất cả các định dạng mail
• Tích hợp hỗ trợ các tập tin thực thi ELF và các tập tin nén Portable
• Tích hợp hỗ trợ các định dang tài liệu phổ biến như MS office, Mac office, HTML,
2.2.2.2. Các hệ điều hành được hỗ trợ :
Unix : Clam anti virus hỗ trợ hầu hết cho các hệ điều hành Unix phổ biến. Các phiên bản Clamav 0.9x đều được thử nghiệm trên các hệ điều hành như: • GNU/Linux • Solaris • Free BSD • Open BSD • Mac OS X
Window : Trên các hệ điều hành của window sử dụng Clamwin. Clamwin sử dụng cơ chế ClamAV Scanning Engine để quét virus vì vậy nó có thể phát hiện virus và spyware với tỉ lệ rất cao. Các tính năng nổi bật của ClamWin đó là quét virus theo lịch đặt sẵn, tự động update Virus Database, là một chương trình quét virus độc lập và có thể tích hợp vào Windows Explorer, Microsoft Outlook để xóa các file đính kèm đã bị đầu độc.
Một điều đáng tiếc cho ClamWin đó là chương trình chưa có cơ chế quét virus thời gian thực vì vậy bạn phải tự lên lịch quét cho chương trình. Clamwin hỗ trợ các hệ điều hành như Window 98/Me/2000/XP/Vista và 2003.
Phiên bản mới nhất của phần mềm quét virus mã nguồn mở ClamAV 0.96 đã có khả năng phát hiện được những chương trình malware hoạt động trong môi trường Windows.
Chúng thường xuyên cố gắng ngụy trang bằng những phần mềm vô hại, những biểu tượng không có thật và giả mạo tiêu đề PE, hỗ trợ thêm khả năng rà soát trong các file 7zip, InstallShield và CPIO, tính năng phân tích hành động đối với những file 64-bit ELF, Mac OS X bằng công nghệ Mach-O. Hiệu suất hoạt động trung bình của ClamAV cũng đã được cải thiện tối đa.
2.2.2.3. Các thành phần trong Clamav
• Libclamav : Libclamav là một thư viện cơ sở dữ liệu chia sẻ của clamav và các công cụ quét virus. Trong libclamav bao gồm các cơ sở dữ liệu các mẫu virus, nó cung cấp các hỗ trợ quét trên giao diện của chương trình ứng dụng và có thể được tích hợp với các phần mềm diệt virus khác.
• Clamd : là một tiến trình đa luồng vận hành dạng daemon. Clamd sử dụng các socket, các luồng và các tệp tin điều khiển để có thể thực hiên quét virus trên hệ thống mail và các định dạng tệp tin được hỗ trợ liên tục nhiều lần khi cần thiết.Clamd khi quét chỉ
cần phải tải cơ sở dữ liệu một lần và dữ liệu đó được chía sẻ cho các tiến trình khác. Clamd có hỗ trợ quá trình quét virus on- access sử dụng trên các hệ điều hành Linux và BSD.
• CLamdscan : là một quá trình quét với giao diện dòng lệnh. Clamdscan giống như một client của clamd. Clamdscan có thể sử dụng dể thay thế cho clamscan. Khi cần quét các tệp tin theo yêu cầu và clamd đang chạy. Sử dụng clamdscan sẽ cho hiệu suất tốt hơn. Clamdscan sử dụng các Daemon đang chạy để quét và nó không cần phải khởi động clamav.
• Clamscan: Clamscan là tiến trình quét với giao diện dòng lệnh. Clamscan được sử dụng để quét các tập tin trên cơ sở không thường xuyên hoặc khi clamd không hoạt động. Clamscan mỗi khi khởi động lại phải tải lại cơ sở dữ liệu clamav. Do vậy đối với các quá trình quét thường xuyên thi nên sử dụng clamdscan.
• Freshclam: là một công cụ cập nhật cơ sở dữ liệu virus của clamav. Nó vận hành dạng Daemon hoặc trên cơ sở tương tác dòng lệnh để cập nhật dữ liệu virus của clamav. Nó đưa ra các kết nối internet để cập nhật cơ sở dữ liệu. Đối với các cài đặt khi không kết nối internet, các tệp tin cơ sở dữ liệu clamav và các gói phần mềm sẽ không tự động cập nhật.
• Sigtool : là một công cụ thao tác với cơ sở dữ liệu virus của clamav. Công cụ này mục đích cho những người dùng có trình độ cao muốn tạo ra những mẫu virus của mình.
• Clamav-milter : là một plugin hỗ trợ cho chương trình Sendmail và Postfix có thể quét email.
• Clamuko : là một tiến trình đặc biệt trong clamd sử dụng để quét virus dạng on-access được sử dụng trên các hệ điều hành Linux và FreeBSD. Tiến trình này sử dụng cơ sở dữ liệu được chía sẻ của Clam Daemon.
• Clamconf : là chương trình chạy dựa trên các dòng lênh. Nó hiển thị các thông tin về cấu hình của Clamav. Nó hữu ích khi sử dụng để vá các lỗi của clamav. Khi người dùng thông báo các lỗi của clamav thì đội ngũ kỹ sư của clamav thường yêu cầu tệp tin cấu hình.
2.2.2.4. Hoạt động của các thành phần
• Clam Daemon
Clamd là một tiến trình đa luồng vận hành dạng Daemon sử dụng cơ sở dữ liệu của clamav để quét virus cho các tệp tin. Clamd có thể hoạt động trên một hoặc cả hai chế độ mà nó lắng nghe là:
• Unix (local) socket
• TCP socket
Các lệnh trong clamd :
• Ping: kiểm tra trạng thái vận hành dạng Daemon
• Version : in ra phiên bản của chương trình và cơ sở dữ liệu.
• Scan : quét các thư mục hoặc tệp tin có hỗ trợ các đình dạng dữ liệu lưu trữ.
• Rawscan : quét các thư mục hoặc tệp nhưng không hỗ trợ cho các định dạng lưu trữ và các tệp tin đặc biệt.
• Contscan : quét các thư mục hoặc tệp tin có hỗ trợ các đình dạng dữ liệu lưu trữ và không dừng lại quá trình quét khi phát hiện virus.
• Multiscan : quét các tệp tin theo một tiêu chuẩn hoặc các thư mục sử dụng tiến trình đa luồng.
• Instream :Quét một luồng dữ liệu, luồng dữ liệu này sẽ được gửi đi trong một khối sau lệnh instream trên một cổng. Điều này sẽ tránh đươc việc thiết lập thêm các kết nối TCP mới và các vấn đề với NAT. Cấu trúc của khối nằm sau lênh Instream là < length> <data> .
• Fildes : Lệnh này chỉ sử dụng vơi Unix domain sockets. Sử dụng lệnh này các gói tin được gửi tới clamd bao gồm các tệp tin miêu tả việc quét các cơ sở dữ liệu ở bên trong. Các tệp tin miêu tả có thể gửi cùng trong một gói tin.
• Stats : Lệnh này cung cấp số liệu thống kê của clamd về quét các hàng đợi, nội dung quét các hàng đợi và sử dụng bộ nhớ.
• Clamdscan
Hoạt động đơn giản như một client của clamd. Được sử dụng để thay thê cho clamscam nhưng phải tuân theo một số yêu cầu :
• Clamscan chỉ được thiết lập khi Clamd hoạt động.
• Mặc dù chấp nhận các tùy chọn dòng lệnh như clamscan nhưng đa số các tùy chọn này đều bị loại bỏ vì chúng phải được cho phép trong cấu hình của clamd.
• Quét các tệp tin trong chế độ TCP phải truy cập tới clamd. Còn nếu chế độ Local-socket được sử dụng trong cấu hình thì clamdscan sẽ thực hiên quét trong giới hạn và sử dụng lệnh FILDES.
• Freshclam
Là công cụ cập nhật cơ sở dữ liệu tự động cho Clamav. Nó hoạt động ở hai chế độ :
• Interactive : dựa trên các tương tác với dòng lệnh.
• Daemon : vận hành dạng daemon.
Freshclam có hỗ trợ các tập lệnh cập nhật tự động, kiêm tra phiên bản cơ sở dữ liệu thông qua DNS, máy chủ proxy và các mẫu virus .Các chỉ thị Datamirrors trong tệp tin cấu hình sẽ chỉ đinh máy chủ cơ sở dữ liệu cho Freshclam tải về. Cấu trúc mặc định của database mirrors là database.clamav.net. Để sắp xếp thứ tự của việc lựa chon tải về cơ sơ dữ liệu thì phải cấu hình Freshclam với database mirrors là database.xx.clamav.net với xx ở đây là tên nước hoặc mã vùng.
2.2.2.5. ClamAV sử dụng công nghệ điện toán đám mây
Với công nghệ điện toán đám mây, các tác tử đám mây tích hợp trong ClamAV (ClamAV Cloud Agent) tương tác online với hệ thống đám mây
bao phủ rộng và năng lực tính toán của đám mây giúp máy tính của người sử dụng được bảo vệ chặt chẽ. Bên cạnh đó, hệ thống cơ sở dữ liệu mẫu nhận diện trên đám mây sẽ được cập nhật kịp thời hơn so với các giải pháp truyền thống. virus sẽ được sàng lọc qua nhiều tầng lớp kỹ thuật, bảng mã nhận diện và phiên bản dịch vụ.
Hình 2-13. Công nghệ điện toán đám mây sử dụng trong ClamAV
ClamAV được phát triển bởi Immunet Corp và Sourcefire inc, dựa trên nền tảng điện toán đám mây với giấy phép mã nguồn mở. Phần mềm này được biết đến như là một giải pháp bảo mật dành riêng cho UNIX, và gần đây ClamAV được phát triển cho môi trường Windows.
Giao diện của ClamAV khá bắt mắt và trình bày rõ ràng, có phần giống với cách bố trí của Norton 360 khi đưa tất cả các chức năng ra ngoài "tiền sảnh" và phân loại chúng theo từng nhóm: Community (dữ liệu và đồ họa từ cộng đồng dùng ClamAV), Computer (bao gồm các hoạt động quét hệ thống, biểu đồ tóm
tắt và lịch sử quét), Product (các tùy chọn cho ClamAV và cập nhật, nâng cấp phần mềm).
Hình 2-14. Giao diện các chức năng của ClamAV
Cũng như các trình antivirus "đám mây" khác, việc kết nối internet để dùng ClamAV là điều cần thiết. Nhưng ngoài máy quét chính là ClamAV, phần mềm này cũng tích hợp ba bộ máy quét khác bao gồm ETHOS, SPERO và TETRA (chỉ có trên phiên bản PLUS ,người dùng vẫn có thể quét virus khi không kết nối internet).
ClamAv phát triển dựa trên kinh nghiệm của cộng đồng người dùng, mỗi khi chúng ta gặp một nguy cơ bảo mật, ClamAV sẽ tự “lấy mẫu” và chuyển về máy chủ để phân tích. Thông tin thu được sẽ bổ sung vào dữ liệu trên “đám mây” và cập nhật cho các nguời dùng khác trong cộng đồng.
ClamAV còn có một phiên bản cập nhật mang tên PLUS, phiên bản này bổ sung thêm bộ máy quét TETRA (giúp tăng khả năng phát hiện và loại bỏ virus, malware và rootkit ngoại tuyến), chức năng quét sâu (Deep scan) và quét Email.
Theo thông tin từ nhà phát triển, ClamAV có khả năng phát hiện hơn 19 triệu mẫu virus và malware
Hình 2-15. Giao diện các tùy chọn trên ClamAV
Ngoài ra ClamAV còn phát triển phiên bản chạy trên môi trường Windows : Ban đầu, ClamAV được phát triển cho các máy chạy hệ điều hành UNIX, nhưng gần đây Sourcefire đã phát triển một phiên bản mới dành cho Windows (ClamAV for Windows). Phiên bản chạy trên Windows hiện đang trong giai đoạn thử nghiệm (beta) do Sourcefire và Immunet (gần đây đã được Sourcefire mua lại) sản xuất, kết hợp công nghệ diệt virus dựa trên điện toán đám mây (cloud-based anti-virus) và công nghệ diệt virus truyền thống của ClamAV (sử dụng Clamlib – cơ sở dữ liệu về virus được lưu trên máy tính đã cài ClamAV để bảo vệ ngoại tuyến).
Có thể nói ClamAV for Windows hiện tại sử dụng 2 engine song song (đối với bản MIỄN PHÍ) và 3 engine (đối với bản PLUS – có phí có thể engine của BitDefender), chưa kể các module riêng của ClamAV, điều này làm khả năng nhận diện virus của ClamAV được cải thiện rất nhiều nhưng không làm tốn tài nguyên của máy tính cho lắm. ClamAV for Windows có tốc độ quét rất nhanh và
khả năng phát hiện Zero-day malware – phần mềm độc hại chưa được phát hiện trong cơ sở dữ liệu rất tốt (sử dụng engine ETHOS, engine phát hiện hành vi do Immunet phát triển).
Phiên bản 2.0.19 Beta MIỄN PHÍ hiện tại cho phép quét virus trong tập tin nén (rar, zip…), tập tin được đóng gói (UPX…) – điều mà phiên bản miễn phí ổn định hiện tại chưa cho phép.
• Yêu cầu hệ thống : Microsoft Windows 7
Hệ điều hành Windows 7 32-bit hoặc 64-bit, 100 MB dung lượng ổ cứng Microsoft Windows Vista SP1
Hệ điều hành Windows Vista 32-bit hoặc 64-bit Service Pack 1+, 100 MB dung lượng ổ cứng
Microsoft Windows XP SP3
Hệ điều hành Windows XP 32-bit Service Pack 3+, 100 MB dung lượng ổ cứng
• Yêu cầu chung Kết nối Internet Tương thích với:
• AVG
• Avast!
• Avira
• Norton Anti-Virus, Internet Security, 360
• McAfee
• Microsoft Security Essentials
• Trend Antivirus
Hình 2-16. Cảnh báo malware
Hình 2-17. Mô phỏng cộng đồng người dùng ClamAV
Cộng đồng người dùng (ClamAV dùng công nghệ Community-based, càng nhiều người dùng khả năng bảo vệ của ClamAV càng cao)
Chương 3
HTTP Anti Virus Proxy Squid Proxy Server 3.1. HTTP Anti Virus Proxy
3.1.1. Giới thiệu về HAVP :
HAVP (HTTP Antivirus Proxy) được xây dựng ở dạng proxy tích hợp bộ quét virus của ClamAV. Mục tiêu chính của gói này là quét tất cả gói tin của dữ liệu truyền thông dạng HTTP. HAVP có thể chạy dựa trên squid hoặc chạy độc lập.
Khi chạy độc lập Havp tích hợp Clam anti virus đóng vai trò như là một chương trình quét virus trên các lưu lượng truyền thông giữa người dùng và máy chủ Web.Còn khi chạy kết hợp với squid nó nhận một yêu cầu từ máy trạm, xử lý các yêu cầu và sau đó chuyển tiếp các yêu cầu tới máy chủ nguồn. Các yêu cầu này có thể được cho phép, bi từ chối hoặc chỉnh sửa trước khi chuyển tiếp.
Với chức năng bộ nhớ đệm trong squid lưu trữ nội dung các trang web mà nó nhân được cho mục đích sử dụng lại. Các yêu cầu sau đó cho cùng một nội dung có thể được trả về từ bộ nhớ đệm mà không cần liên kết đến máy chủ nguồn.
Các tính năng của HAVP:
• Vận hành dạng HTTP Antivirus proxy.
• Hỗ trợ nhiều tiến trình quét virus vào một thời điểm.
• Quét cả các dòng truyền thông của các thành phần được bảo vệ bằng mật khẩu.
• Có thể sử dụng với squid hoặc một proxy khác.
• Hỗ trợ cơ chế Parent proxy.
• Hỗ trợ cơ chế Transparent proxy.
• Cho phép lưu nhật ký.
• Xử lý phù hợp với từng nhóm hoặc từng người dùng.
• Vận hành dạng daemon.
• Sử dụng ClamAV.
3.1.2. Quá trình xử lý của HAVP :
Hình 3-2. Quá trình xử lý của HAVP
Khi máy chủ nguồn trả về một phản hồi cho các yêu cầu của người dùng trong mạng, Havp sẽ xử lý các dữ liệu gửi về theo hai quá trình :
Quá trình thứ nhất :
• Các dữ liệu sẽ được ghi lại vào một tệp tin tạm thời được thêm vào một hard lock EOF. Hard lọck EOF có vai trò đảm bảo cho lượng dữ liệu được gửi đi vẫn sẽ được xử lý mà không cần phải đợi phần dữ liệu còn lại. Nó giúp cho hệ thống xử lý không bi ngưng hoặc treo khi lượng dữ liệu còn lại chưa được gửi đến.
dữ liệu nhỏ đến trình duyệt web của người dùng để đảm bảo các kết nối không bị ngắt trong khi quét virus do thời gian timeout của các trình duyệt web của người dùng, kỹ thuật này được gọi là trickling. Nó giúp cho quá trình quét virus và quá trình tải dữ liệu về diễn ra đồng thời một lúc.
Quá trình thứ hai :