ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BÁO CÁO TỔNG KẾT ĐỀ TÀI KHOA HỌC VÀ CÔNG NGHỆ CẤP ĐẠI HỌC XÂY DỰNG PHẦN MỀM DIỆT VIRUS ICTUAV Mã số ĐH2016 TN07 01 Chủ nhiệm đề t[.]
ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BÁO CÁO TỔNG KẾT ĐỀ TÀI KHOA HỌC VÀ CÔNG NGHỆ CẤP ĐẠI HỌC XÂY DỰNG PHẦN MỀM DIỆT VIRUS ICTUAV Mã số: ĐH2016-TN07-01 Chủ nhiệm đề tài: ThS TRỊNH MINH ĐỨC THÁI NGUYÊN, 05/2019 ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BÁO CÁO TỔNG KẾT ĐỀ TÀI KHOA HỌC VÀ CÔNG NGHỆ CẤP ĐẠI HỌC XÂY DỰNG PHẦN MỀM DIỆT VIRUS ICTUAV Mã số: ĐH2016-TN07-01 Xác nhận quan chủ trì THÁI NGUYÊN, 05/2019 Chủ nhiệm đề tài i ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CNTT&TT DANH SÁCH THÀNH VIÊN THỰC HIỆN ĐỀ TÀI TT Đơn vị công tác lĩnh vực chuyên môn Họ tên Ghi ThS Trịnh Minh Đức Đơn vị công tác: Trường Đại học Công nghệ thông tin Truyền thông Chuyên môn: CNTT ThS Lê Khánh Dương Đơn vị công tác: Trường Đại học Công nghệ thông tin Truyền thông Chuyên môn: CNTT ThS Nguyễn Tuấn Hiệp Đơn vị công tác: Trường Đại học Công nghệ thông tin Truyền thông Chuyên môn: CNTT ThS Vũ Việt Dũng Đơn vị công tác: Trường Đại học Công nghệ thông tin Truyền thông Chuyên môn: CNTT ThS Võ Văn Trường Đơn vị công tác: Trường Đại học Công nghệ thông tin Truyền thông Chun mơn: CNTT ĐƠN VỊ PHỐI HỢP CHÍNH Tên đơn vị Nội dung phối hợp nghiên cứu nước Bộ mơn An tồn hệ - Hỗ trợ sở vật chất, thiết bị, phịng thống thơng tin – Trường nghiên cứu Đại học CNTT&TT - Phối hợp nghiên cứu Họ tên người đại diện đơn vị ThS Lê Khánh Dương ii MỤC LỤC MỞ ĐẦU 1 Tổng quan tình hình nghiên cứu thuộc lĩnh vực đề tài ngồi nước Tính cấp thiết đề tài Mục tiêu đề tài .2 Cách tiếp cận phương pháp nghiên cứu 4.1 Cách tiếp cận 4.2 Phương pháp nghiên cứu .3 Đối tượng phạm vi nghiên cứu .3 5.1 Đối tượng nghiên cứu 5.2 Phạm vi nghiên cứu Nội dung nghiên cứu CHƯƠNG 1: TỔNG QUAN VỀ MÃ ĐỘC 1.1 Giới thiệu mã độc máy tính 1.2 Phân loại mã độc 1.2.1 Virus máy tính 1.2.2 Logic Bomb 17 1.2.3 Trojan Horse 17 1.2.4 Back Door 18 1.2.5 Sâu máy tính (Worm) 19 1.3 Các kỹ thuật phát mã độc .20 1.3.1 Các kỹ thuật phát dựa phân tích tĩnh 20 1.3.2 Các kỹ thuật phát dựa phân tích động 23 CHƯƠNG 2: PHẦN MỀM MÃ NGUỒN MỞ CLAMAV 26 2.1 Tổng quan 26 2.2 Tính .26 2.3 Cài đặt 27 2.3.1 Yêu cầu 27 2.3.2 Cài đặt shell account .27 2.3.3 Thêm nhóm người dùng 28 2.3.4 Biên dịch gói sở 28 2.3.5 Biên dịch với clamav-milter 28 2.3.6 Sử dụng hệ thống LLVM 28 2.3.7 Tiến hành kiểm tra đơn vị 29 iii 2.3.8 Tải sở liệu mã độc ClamAV .30 2.4 Cách sử dụng 30 2.4.1 clamd .30 2.4.2 clamdscan 30 2.4.3 Quét lúc truy cập .31 2.4.4 clamdtop 31 2.4.5 clamscan 31 2.4.6 clamBC 31 2.4.7 freshclam 32 2.4.8 clamconf 32 2.4.9 Định dạng đầu 33 2.5 LibClamAV 34 2.5.1 Bản quyền .34 2.5.2 Các hàm API 34 2.5.3 Định dạng CVD 37 CHƯƠNG 3: XÂY DỰNG CƠ SỞ DỮ LIỆU MẪU MÃ ĐỘC 38 3.1 Cơ sở liệu mã độc dựa mã băm 38 3.2 Cơ sở liệu mẫu dựa mã byte 40 3.3 Cơ sở liệu mẫu dựa vào kinh nghiệm .44 CHƯƠNG 4: ĐỀ XUẤT GIẢI PHÁP TRÍCH CHỌN ĐẶC TRƯNG CHO BÀI TOÁN PHÁT HIỆN MÃ ĐỘC 46 4.1 Đặt vấn đề 46 4.2 Một số phương pháp trích rút đặc trưng phổ biến 46 4.2.1 Đặc trưng byte n-gram 46 4.2.2 Đặc trưng opcode n-gram .47 4.2.3 Đặc trưng PE 47 4.2.4 Đặc trưng chuỗi .47 4.2.5 Đặc trưng dựa chức 48 4.3 Tổng quan phương pháp thực 48 4.3.1 Tiền xử lý liệu .50 4.3.2 Đề xuất giải pháp chọn đặc trưng cho thuật toán phân lớp 52 4.3.3 Xây dựng mơ hình dự đoán dựa thuật toán phân lớp 58 4.4 Thực nghiệm đánh giá .59 4.4.1 Dữ liệu thực nghiệm 59 iv 4.4.2 Chương trình thực nghiệm 60 4.4.3 Đánh giá dựa phương pháp ma trận nhầm lẫn .64 4.4.4 Kết thực nghiệm .65 KẾT LUẬN VÀ KIẾN NGHỊ 68 TÀI LIỆU THAM KHẢO 69 PHỤ LỤC: PHẦN MỀM DIỆT VIRUS ICTUAV 73 v DANH MỤC TỪ VIẾT TẮT Chữ viết Tiếng Anh tắt API Application Programming Tiếng Việt Giao diện lập trình ứng dụng Interface CRC Cyclic Redundancy Check Kiểm dư chu trình ELF Distributed Denial of Service Từ chối dịch vụ phân tán KNN K-Nearest Neighbors K láng giềng gần LSASS Local Security Authority Dịch vụ hệ thống cấp quyền Subsystem Service MD Message-Digest algorithm Hàm băm MD5 PE Portable Executable Tệp thực thi di dộng RAT Remote Administration Tool Công cụ quản trị từ xa TF Term Frequency Tần số từ vi DANH MỤC CÁC HÌNH VẼ Hình 1.1 Khối khởi động bị lây nhiễm nhiều virus 17 Hình 1.2 virus lây nhiễm phần đầu tệp tin 18 Hình 1.3 Virus lây nhiễm phần cuối tệp tin 19 Hình 1.4 Mơ tả hoạt động virus macro 21 Hình 1.5 Mơ tả q trình virus giải mã 22 Hình 1.6 So sánh kỹ thuật phân tích tĩnh động 31 Hình 4.1 Tổng quan phương pháp thực 54 Hình 4.2 Biểu đồ mô tả tỷ lệ mẫu mã độc tham gia thực nghiệm 63 Hình 4.3 Chương trình đọc, phân tích cấu trúc file PE dịch ngược 64 Hình 4.4 Tập liệu mẫu mã độc ban đầu 64 Hình 4.5 Tập liệu mẫu mã độc sau dịch ngược mã hex gán 65 nhãn phân lớp Hình 4.6 Tập liệu mẫu file thực thi thông thường Windows 65 Hình 4.7 Tập liệu mẫu file thực thi thông thường sau dịch ngược 66 mã hex gán nhãn phân lớp Hình 4.8 Tập tần số xuất liệu huấn luyện 66 Hình 4.9 Chương trình trích chọn đặc trưng xây dựng mơ hình dự đốn mã độc 67 Hình 4.10 Kết độ xác thực nghiệm tập liệu test khác sử 68 dụng đặc trưng đánh giá tốt Hình 4.11 Kết độ xác thực nghiệm tập liệu test khác sử dụng đặc trưng bị đánh giá 69 vii DANH MỤC CÁC BẢNG BIỂU Bảng 4.1 Mô tả dãy n-gram byte 56 Bảng 4.2 Ví dụ tập tần số xuất ban đầu đặc trưng thuộc lớp 58 Bảng 4.3 Ví dụ tập tần số xuất ban đầu đặc trưng thuộc lớp 59 Bảng 4.4 Kết tập liệu lớp sau thực xếp 59 Bảng 4.5 Kết tập liệu lớp sau thực xếp 59 Bảng 4.6 Kết tập liệu lớp sau thực phân đoạn 59 Bảng 4.7 Kết tập liệu lớp sau thực phân đoạn 60 Bảng 4.8 Minh họa với đặc trưng “BB BB” thuộc lớp sau thực phân đoạn 60 Bảng 4.9 Minh họa với đặc trưng “BB BB” thuộc lớp sau thực phân đoạn 60 Bảng 4.10 Giá trị trung bình cộng tần số xuất đặc trưng đoạn thuộc 61 lớp Bảng 4.11 Giá trị trung bình cộng tần số xuất đặc trưng đoạn thuộc 61 lớp Bảng 4.12 Kết độ lệch tần số xuất đoạn 61 Bảng 4.13 Kết độ lệch tần số xuất toàn tập liệu 61 Bảng 4.14 Tỷ lệ số lượng mẫu mã độc tham gia thực nghiệm 63 Bảng 4.15 Thơng tin chương trình thực nghiệm 63 Bảng 4.16 Kết thực nghiệm mơ hình sử dụng tập đặc trưng tốt 68 Bảng 4.17 Kết thực nghiệm mơ hình sử dụng tập đặc trưng 69 viii ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CNTT&TT THÔNG TIN KẾT QUẢ NGHIÊN CỨU Thông tin chung Tên đề tài: XÂY DỰNG PHẦN MỀM DIỆT VIRUS ICTUAV Mã số: ĐH2016-TN07-01 Chủ nhiệm: ThS Trịnh Minh Đức Cơ quan chủ trì: Trường Đại học Cơng nghệ thơng tin Truyền thông Thời gian thực hiện: 24 tháng Mục tiêu Đưa đánh giá loại mã độc, tìm hiểu phương pháp phân tích, trích rút đặc trưng mã độc từ xây dựng phần mềm có khả phát loại bỏ mã độc Kết nghiên cứu Đề tài thực tìm hiểu lập trình Win 32 API, Named Pipes Nghiên cứu vấn đề liên quan đến loại mã độc, cách thức lây lan phá hoại mã độc, phương pháp phát loại bỏ mã độc đồng thời nghiên cứu phương pháp trích rút đặc trưng mã độc qua đề xuất giải pháp trích trọn đặc trưng cho tốn phát mã độc Bên cạnh đề tài đưa kỹ thuật để xây dựng sở liệu mẫu mã độc Sản phẩm Bài báo đăng tạp chí, kỷ yếu nước: 03 Võ Văn Trường, Trịnh Minh Đức, Nguyễn Văn Vinh, Lê Khánh Dương (2016), “Đề xuất giải pháp trích chọn đặc trưng cho thuật tốn phân lớp liệu kỹ thuật học máy giám sát ứng dụng hiệu vào toán phát mã độc”, Tạp chí Cơng nghệ thơng tin truyền thơng – Bộ TT&TT, 529 (719), tr 38-46 Võ Văn Trường, Trịnh Minh Đức, Nguyễn Văn Vinh, Lê Khánh Dương (2016), “Đề xuất giải pháp trích chọn đặc trưng cho thuật toán phân lớp liệu kỹ thuật học máy giám sát ứng dụng hiệu vào toán phát mã độc”, Kỷ 17 virus Ngược lại “mutation engine” virus siêu đa hình tự biến đổi cho lần lây nhiễm Có thể nói virus siêu đa hình tinh vi với khả lai tạo kết hợp đa hình chúng tao vô số biến thể từ mã virus ban đầu làm cho phần mềm tìm diệt virus vơ khó khăn việc phát chúng bị qua mặt dễ dàng 1.2.2 Logic Bomb Logic bomb loại mã độc không tự nhân chúng ký sinh vật chủ, mã độc logic bomb bao gồm phần : Một payload mã nạp thứ có ý đồ xấu mục đích mã độc phá hoại hay phá hủy chức an tồn hệ thống Một trigger (kích hoạt) điều kiện sai đánh giá điều khiển payload thực thi Một điều kiện kích hoạt xác giới hạn khả sáng tạo dựa điều kiện địa phương thời gian, ngày, tháng , năm để thực kích hoạt, dựa vào đăng nhập người dùng, hay phiên hệ điều hành, kiện mà kẻ viết mã độc nghĩ Kích hoạt thiết kế để kích “nổ” từ xa Đặc tính mã độc logic bomb chúng cư trú cách ký sinh phần mềm thông thường đứng cách độc lập cách ẩn nấp khỏi phát người dùng hay phần mềm diệt virus giai đoạn chúng khơng thực hành vi điều kiện kích hoạt xảy hay thông điệp công gửi mã độc hại bên thực thi 1.2.3 Trojan Horse Mã độc Trojan Horse tên xuất phát từ điển tích “Con ngựa thành Troy” thần thoại Hy Lạp Trojan loại mã độc khơng có khả tự nhân nhiên thường lây nhiễm vào hệ thống với thể bình thường hình thức đóng chương trình phần mềm hữu ích thực nhiệm vụ thông thường hợp pháp, thực chất bên lại bí mật thực số nhiệm vụ nguy hiểm, ác tính mà kẻ có ý đồ xấu cài đặt vào Ví dụ mã độc Trojan chương trình đánh cắp thông tin tài khoản mật người dùng cách người dùng thực chức đăng nhập thông tin gõ vào xác nhiên chúng tạo nhắc nhở 18 thông báo tên tài khoản mật không thông báo yêu cầu người dùng nhập lại vào để xác thực trước chạy chương trình đăng nhập thực Người dùng không nghi ngờ họ thực lỗi đánh máy nhập lại thông tin mà không hay biết Đơi Trojan cài đặt chức gián điệp điều khiển thực hành vi theo yêu cầu máy chủ từ xa, Chúng ký sinh vật chủ phần mềm thông thường thực chức vật chủ cách bình thường lại thực chức độc hại cách riêng biệt làm công việc chương trình chủ chỉnh sửa chức để thực ý đồ ác ý, núp danh phần mềm hữu ích để thực hành vi gây hại Trên máy tính chạy hệ điều hành Windows Trojan thường xuất đính kèm thư điện tử cách đặt tên danh nghĩa chương trình lương thiện chương trình văn bản, tập tin txt hay tập tin đa phương tiện nhiên ẩn bên lại tập tin thực thi exe, com, scr, bat số phần mềm cấu hình Windows mặc định khơng hiển thị thơng tin chúng đánh lừa người dùng dụ dỗ họ mở chương trình vơ tình kích hoạt chúng Trojan xuất dạng biểu tượng thơng thường phần mềm hữu ích chí chúng đóng giả chương trình diệt virus dễ dàng qua mặt người dùng thông thường 1.2.4 Back Door Back door mã độc khơng tự tái tạo chúng thường kí sinh vật chủ back door chế mà cho phép vượt qua kiểm tra an ninh thơng thường Các lập trình viên tạo back door chức bí mật chương trình cho lý đáng bỏ qua q trình xác thực tốn thời gian gỡ lỗi máy chủ mạng hay kiểm tra chương trình khắc phục lỗi Giống logic bomb, back door cài đặt mã hay chương trình hợp pháp chương trình độc lập Một loại đặc biệt back door RAT viết tắt công cụ quản trị từ xa ( Remote Administration Tool ) truy cập Trojan từ xa ( Remote Access Trojan ) điều phụ thuộc vào người hỏi Các chương trình cho phép máy tính giám sát điểu khiển từ xa, Người sử dụng chủ ý cài đặt để truy cập vào máy tính để làm việt nhà cho phép nhân viên trợ giúp chẩn đoán sửa chữa máy tính từ xa Tuy nhiên mã độc lút cài đặt RAT máy tính, sau mở cửa hậu (back door) trở lại máy tính Back door chạy máy tính bị nhiễm lưu trú nhớ đợi lệnh điều khiển 19 từ cổng dịch vụ, chúng mở cổng cho phép kẻ công truy cập vào máy nạn nhân từ cơng mạng từ kẻ cơng chiếm quyền giám sốt điều khiển máy nạn nhân Back door tỏ nguy hiểm khả lẩn trốn đơi chúng hẹn trước thời gian để kết nối thời gian lưu trú chúng khơng để lộ hành vi hay thơng tin cho phép phần mềm diệt mã độc phát 1.2.5 Sâu máy tính (Worm) Sâu máy tính loại mã độc có khả tự nhân nhiên chúng thường xuất chương trình độc lập mà khơng cần tập tin chủ để mang Do khơng ký sinh vào tệp tin khu vực đĩa cứng thân chương trình hồn chỉnh khơng thể dùng chương trình dị qt tệp tin để phát loại bỏ sâu máy tính Mơi trường hoạt động sâu máy tính mạng Internet chúng đặc biệt mạnh khả tự nhân virus cần có kiện từ người dùng để kích hoạt tự chép lây nhiễm : Mở tập tin, khởi động máy tính, chép tập tin….Sâu máy tính hồn tồn có khả chép nhân mà khơng cần thao tác người sử dụng đặc điểm giúp chúng lan rộng với tốc độ chóng mặt Mục đích sâu máy tính làm tiêu tốn tài nguyên băng thông mạng máy tính phá hoại hoạt động hệ thống phá hủy tệp tin, tạo cửa hậu cho phép tin tặc xâm nhập điều khiển trái phép hệ thống Chính nhờ khả tốc độ lan truyền khả lẫy nhiễm xuyên hệ thống khoảng thời gian ngắn làm cho tin tặc ngày ưu thích sâu máy tính virus thông thường, ngày mục tiêu thường thấy sâu máy tính thực công từ chối dịch vụ Ddos thực xâm nhập cài đặt back door tiến hành công việc phá hoại vô nguy hiểm Sâu máy tính bao gồm loại sâu dịch vụ mạng sâu gửi điện thư hàng loạt Sâu dịch vụ mạng (Network Service Worm): chúng phát tán lây lan thông qua việc khai thác lỗ hổng bảo mật dịch vụ mạng, ứng dụng hay hệ điều hành Sau lây nhiễm vào hệ thống chúng dò quét tất ứng dụng hay hệ thống chạy dịch vụ với lỗ hổng bị khai thác tiếp tục công diện rộng với tốc độ chóng mặt chúng làm tê liệt mạng máy tính hệ thống an ninh, số sâu dịch vụ mạng Sasser phát lây lan mạng ngày 1/5/2004 việc khai thác lỗ hổng bảo mật dịch vụ LSASS (Local 20 Security Authority Subsystem Service) công vào máy tính cài Windows 2000/ XP/ Server 2003 Hay sâu dịch vụ tiếng khác Witty Sâu gửi điện thư hàng loạt (Mass Mailing Worm): Chúng sâu công vào dịch vụ thư điện tử cách thức hoạt động chúng lây lan hệ thống thư điện tử, hệ thống bị lây nhiễm dị qt danh sách địa email tự động gửi tới địa mà tìm cách sử dụng email máy khách thuộc hệ thống bị lây nhiễm email thuộc hệ thống tạo ra, gửi đồng loạt thư vào mạng lưới hệ thống làm cho máy chủ trở nên tải làm cho hệ thống chịu lượng lớn “bomb mail” Loại sâu chủ yếu dùng với mục đích quảng cáo phát tán thư rác hay chương trình mã độc nguy hiểm khác số ví dụ sâu máy tính gửi điện thư hàng loạt là: Beagle, Mydoom Netsky 1.3 Các kỹ thuật phát mã độc Mục đích việc phát hiện mã độc đưa cảnh báo sớm để có chế ngăn chặn kịp thời trước mã độc thực hành vi hay chức chúng vai trị phát mã độc quan trọng, ln ln phải tìm kiếm phát tồn mã độc chúng không thực thi hay làm điều gì, chí mã độc không hoạt động hệ thống việc phát cần thiết điều đảm bảo khơng ảnh hưởng đến hệ thống khác Lấy hệ thống email ví dụ nơi mà máy nhận chạy hệ thống hay chứa ứng dụng, dịch vụ hồn tồn khác với máy chủ phải đảm bảo mã độc thực thi hệ thống Các kỹ thuật phát mã độc trình tìm kiếm thẩm định xem chương trình phần mềm bị lây nhiễm mã độc hay bên có chứa đoạn mã xem mã độc hay khơng, thêm vào hành vi chúng phân tích xem xét nhóm hành vi thông thường hay hành vi thuộc mã độc, dựa vào kết để chứng minh phát tồn mã độc hệ thống 1.3.1 Các kỹ thuật phát dựa phân tích tĩnh Kỹ thuật phát mã độc dựa phương pháp phân tích tĩnh có đặc điểm phát mã độc mà không cần phải chạy hay thực thi đoạn mã gồm có phương pháp kỹ thuật dị qt, chẩn đốn dựa kinh nghiệm kiểm tra tính tồn vẹn 21 1.3.1.1 Kỹ thuật dị qt (scanner) Thơng thường mã độc biểu diễn hay nhiều mẫu, dấu hiệu (signatures), chuỗi byte coi đặc trưng mã độc Các dấu hiệu đơi cịn gọi chuỗi (scan strings) chúng không cần ràng buộc chuỗi Một vài phần mềm chống mã độc hỗ trợ việc sử dụng ký tự đại diện (wildcards) cho byte tùy ý, phần byte, không hay nhiều byte Quá trình phát mã độc cách tìm kiếm thơng qua tập tin với dấu hiệu gọi scanning mã tìm thấy gọi scanner Cụ thể nữa, trình phát thực thơng qua dịng mã byte chúng toàn nội dung khối khởi động, toàn nội dung tập tin, phần tập tin đọc ghi, gói tin mạng Với hàng trăm ngàn dấu hiệu để phát việc tìm kiếm chúng thời điểm khơng khả thi chút Một thách thức lớn kỹ thuật tìm thuật tốn có khả tìm nhiều mẫu cách hiệu đồng thời đánh giá chúng 1.3.1.2 Kỹ thuật Static Heuristics Kỹ thuật áp dụng để nhân lên khả chuyên gia phần mềm chống virus, chẩn đốn dựa kinh nghiệm phương pháp phân tích tĩnh tìm thấy mã độc biết chưa biết cách tìm kiếm mẩu mã mà có đặc điểm chung giống mã độc thay scanning dấu hiệu đặc biệt mã độc Đây kỹ thuật phân tích tĩnh có nghĩa mã phân tích mà khơng thực thi khơng có đảm bảo mã nghi ngờ tìm thấy thực thi Kỹ thuật thực thông qua bước: Thu thập liệu: Dữ liệu thu thập sử dụng từ kỹ thuật dựa kinh nghiệm nào, có hay khơng kỹ thuật kinh nghiệm phân loại xác đầu vào điều khơng thực quan trọng kết nhiều kinh nghiệm kết hợp phân tích sau Một scanner sử dụng để xác định vị trí dấu hiệu biểu mã đáng nghi gọi booster Sự diện booster làm tăng khả mã phân tích mã độc là: mã Junk, tự thay đổi mã, sử dụng gọi hàm API không cung cấp, điều khiển véc tơ ngắt, sử dụng lệnh bất thường đặc biệt không sinh trình biên dịch, chuỗi chứa từ ngữ khiêu dâm, tín hiệu rõ ràng từ “virus” Một việc không phần 22 quan trọng tìm kiếm thứ xuất mã bình thường mà mã độc khơng thường làm Ví dụ virus khơng thường tạo hộp thoại pop-up cho người sử dụng Điều xem xét heuristic phủ định hay stopper Các kinh nghiệm heuristic khác tính tốn mà khơng dựa scanning là: Sự khác điểm vào kết thúc tập tin tính tốn, giá trị cực nhỏ thực so sánh với giá trị giống tập tin khơng bị lây nhiễm Phân tích phổ mã lệnh thực hiện, tính tốn tần số byte lệnh sử dụng mã Các mã mã hóa có dấu hiệu phổ khác với mã khơng mã hóa Phân tích: phân tích liệu tĩnh heuristic xác định đơn giản đánh trọng số cho giá trị heuristic tính tổng kết Nếu tổng số vượt qua giá trị ngưỡng sử dụng phát liệu đầu vào bị lây nhiễm Một số phương pháp phức tạp phân tích liệu sử dụng trí tuệ nhân tạo mạng neural, hệ chuyên gia, hay kỹ thuật khai phá liệu Kỹ thuật Static heuristics xem cách để giảm yêu cầu tài nguyên kỹ thuật scanner Toàn dấu hiệu mã độc sở liệu mã độc chắt lọc giảm xuống tập nhỏ hơn, tổng quát Một kỹ thuật qt mã độc tìm kiếm dấu hiệu đặc trưng ngắn nạp vào liệu chứa toàn dấu hiệu phù hợp với tìm thấy Điều làm giảm bớt yêu cầu lưu toàn dấu hiệu đặc trưng nhớ 1.3.1.3 Kỹ thuật kiểm tra toàn vẹn (Integrity Checkers) Ngoại trừ số virus đồng dạng mã độc chủ yếu hoạt động cách thay đổi tập tin Kỹ thuật kiểm tra tính tồn vẹn nhằm khai thác hành vi để tìm mã độc cách xem thay đổi trái phép vào tập tin Một kiểm tra tồn vẹn khởi đầu việc tính lưu checksum cho tập tin hệ thống xem xét Sau checksum tập tin cần kiểm tra tính lại so sánh với giá trị checksum gốc Nếu checksum khác có nghĩa có thay đổi diễn Kỹ thuật sử dụng phổ biến phần mềm chống mã độc ban đầu mã độc tìm thấy sử dụng hàm băm 23 MD5,SHA,CRC… để tính tốn giá trị băm sau giá trị lưu sở liệu liệu mẫu định danh mã độc Khi muốn kiểm tra tập tin có phải mã độc hay khơng cần tính tốn lại hàm băm so sánh giá trị kết với sở liệu có Nếu tồn mã băm sở liệu mã độc biết xác mã độc 1.3.2 Các kỹ thuật phát dựa phân tích động Kỹ thuật phát mã độc dựa phân tích động kỹ thuật định tập tin có bị lây nhiễm hay không thông qua việc thực thi mã chương trình quan sát hành vi Để thực phương pháp cần phải thiết lập môi trường để mã độc thực thi công cụ cho phép quan sát hành động chúng như: theo dõi tiến trình, theo dõi thơng tin registry, thay đổi tệp tin, thư mục, theo dõi thay đổi lưu lượng mạng kết nối TCP/IP… Tất hành vi mã độc lưu dạng nhật ký phục vụ cho cơng việc phân tích sau 1.3.2.1 Kỹ thuật Behavior Monitors/Blockers Một behavior blocker kỹ thuật chống mã độc giám sát hành vi thực thi chương trình thời gian thực, theo dõi hành động, khối lệnh khả nghi nó, hành động tìm thấy behavior blocker ngăn chặn hành động khả nghi thành cơng chấm dứt tiến trình chương trình hỏi người dùng cho cho hành động phù hợp để xử lý Một behavior blocker tìm kiếm điều gì? Về behavior blocker xem xét chương trình thuộc vào hành vi xem xét bị chặn hành vi thơng thường Chúng hành vi liên quan đến tập tin mở, sửa đổi hay xóa, hay thao tác fomat ổ đĩa phân vùng, thay đổi registry, kết nối mạng…Một hành vi thơng thường mơ hình hóa cách miêu tả sau: a Một hành động cho phép điều gọi phát positive b Một hành động không cho phép điều gọi phát negative c Một cách kết hợp giống kỹ thuật static heuristics bao gồm có boosters stoppers Một điều tương tự rút từ hệ thống miễn dịch tự nhiên, behavior blocker cố gắng để nhận thức từ thứ khơng phải nó, hay 24 hành vi bình thường từ hành vi bất bình thường Cách tư mà hệ thống miễn dịch cần làm để phân biệt tế bào bình thường xâm nhập từ bên Tuy nhiên điều cần phải xem xét cẩn thận đơi hành vi bất thường khơng có nghĩa hành vi thuộc mã độc Hình 1.6 So sánh kỹ thuật phân tích tĩnh động [20] Kỹ thuật behavior blocker tìm kiếm dấu hiệu theo phương pháp phân tích động mà biểu hành vi thuộc mã độc Ví dụ nhìn vào cách hoạt động vào/ra thêm vào mã độc thể dấu hiệu Các dấu hiệu đơi chuỗi hành vi hình minh họa chuỗi hành vi liên quan đến thao tác xử lý tập tin với độ dài Dựa vào dấu hiệu hồn tồn tìm bất thường hành vi mã độc 1.3.2.2 Kỹ thuật Emulation 25 Giám sát hành vi kỹ thuật Behavior blocking cho phép mã chương trình chạy máy thực Ngược lại kỹ thuật phát mã độc sử dụng mô giả lập (emulation) cho phép mã chạy phân tích môi trường mô giả lập Với kỳ vọng môi trường mô mã độc tiết lộ Bởi mã độc tìm thấy khơng chạy máy tính thực khơng có hiểm họa xảy Mơ áp dụng qua cách ranh giới phân biệt chúng mập mờ: Dynamic heuristic: kỹ thuật có độ xác tương tự kỹ thuật static heuristic có khác liệu thu thập nào: dynamic heuristic phân tích thu thập liệu từ mơi trường giả lập mã chương trình phân tích Các phân tích thực giống cách mà kỹ thuật static heuristic thực Dynamic heuristic tìm kiếm đặc trưng tương tự behavior blockers, lời gọi hệ thống Môi trường giả lập mơi trường ảo an tồn mã chạy giám sát Dynamic heuristics sử dụng hiệu để phát dấu hiệu hành vi virus siêu đa hình Generic decryption: với virus đa hình vịng giải mã yếu tố gây khó khăn cho phần mềm diệt mã độc để phát chúng Kỹ thuật generic decryption cứu cánh cho vấn đề dựa vào vịng lặp giải mã riêng mã độc để giải mã phần thân Có nhận xét mã độc cho dù mã hóa chúng có chung hành vi để thực mục đích Một giải mã, phần thân mã độc phát cách sử dụng phương pháp dị qt thơng thường, điều xác định xác khả nhận biết mã độc đa hình, kỹ thuật sử dụng kinh nghiệm để xác minh mã độc mã hóa Ví dụ virus cố gắng thực thi lệnh nằm thường vùng nhớ lần sửa đổi trước ( ví dụ giải mã) Một dấu hiệu khác thay đổi kích thước trình giải mã khoảng thay đổi tùy vào kiến trúc Trên tảng Intel x86, 24 byte nhiều bị sửa đổi nhớ dấu hiệu tiềm trình giải mã điễn Bên cạnh kinh nghiệm kỹ thuật dự mơ quét nhớ định kỳ khoảng thời gian mô để phát dấu hiệu bất thường 26 CHƯƠNG 2: PHẦN MỀM MÃ NGUỒN MỞ CLAMAV 2.1 Tổng quan ClamAV công cụ chống virus mã nguồn mở cho UNIX, thiết kế cách đặc biệt cho việc quét thư điện tử gateway Nó cung cấp vài tiên ích bao gồm daemon đa luồng linh động, quét dòng lệnh công cụ tự động cập nhật sở liệu ClamAV có chứa sở liệu lớn định nghĩa loại virus cập nhật hàng ngày thông qua kết nối Internet Cốt lõi ClamAV thư viện chia sẻ danh sách: mã nguồn virus, malware, toolkit, rootkit,… cho phép ta dễ dàng nhận biết phân biệt nguy hại tồn máy thông qua danh sách sở liệu 2.2 Tính Hỗ trợ quét theo dòng lệnh Quét theo lịch đặt sẵn Quét nhanh, daemon đa luồng với hỗ trợ cho việc quét truy cập Sử dụng giao diện milter cho sendmail Nâng cao sở liệu cập nhật với hỗ trợ cập chữ ký số Truy cập quét (Linux ® FreeBSD ®) Cơ sở liệu virus cập nhật nhiều lần ngày Tích hợp hỗ trợ cho định dạng lưu trữ khác nhau, bao gồm Zip, RAR, TAR, GZIP, BZIP2, OLE2, nội các, CHM, BinHex, SIS định dạng khác Tích hợp hỗ trợ cho thực thi ELF tập tin thực thi Portable nén với UPX, FSG, NsPack, wwpack32, MEW, Upack obfuscated với SUE, Y0da Cryptor định dạng khác Tích hợp hỗ trợ cho định dạng tài liệu phổ biến bao gồm MS Office MacOffice hình ảnh, HTML, RTF PDF Bên cạnh tính ưu điểm trên, ClamAV cịn có hạn chế: ClamAV không hỗ trợ chế bảo vệ thời gian thực nên có nghi ngờ xuất virus, malware, toolkit,… khởi động ClamAV lên để quét Hoặc dựa vào chế đặt lịch quét mà ClamAV hỗ trợ 27 2.3 Cài đặt 2.3.1 Yêu cầu Như trình bày trên, ClamAV thiết kế đặc biệt cho hệ thống UNIX, LINUX, thành phần sau yêu cầu để biên dịch ClamAV UNIX: Các gói zlib zlib-devel Openssl phiên 0.9.8 cao gói libssl-devel Trình biên dịch gcc GNU make (gmake) Những gói tùy chọn nhiên đề nghị sử dụng: bzip2 bzip2-devel libxml2 libxml2-dev check unit testing framework Các gói yêu cầu cho việc hỗ trợ bytecode JIT: Trình biên dịch GCC C C++ OSX Xcode phiên trước 5.0 sử dụng trình biên dịch g++ frontend mà khơng tương thích với ClamAV JIT Có thể biên dịch ClamAV JIT với clang++ biên dịch ClamAV khơng có JIT Một CPU hỗ trợ cho JIT: X86, X86-64, PowerPC, PowerPC64 Các gói cần cho trình JIT unit test GNU make Python phiên 2.5.4 2.3.2 Cài đặt shell account Để cài đặt ClamAV tài khoản shell khơng có đặc quyền bạn khơng cần tạo người dùng nhóm Giả sử thư mục home bạn /home/gary bạn nên xây dựng sau: $ /configure prefix=/home/gary/clamav disable-clamav $ make; make install Để kiểm tra thực thi cài đặt: $ ˜/clamav/bin/freshclam $ ˜/clamav/bin/clamscan ˜ 28 2.3.3 Thêm nhóm người dùng Nếu cài đặt cho lần sử dụng đầu tiên, bạn phải thêm nhóm người dùng tới hệ thống: # groupadd clamav # useradd -g clamav -s /bin/false -c "Clam AntiVirus" clamav Tham khảo tài liệu hướng dẫn sử dụng hệ điều hành bạn khơng có tiện ích groupadd useradd Đừng quên khóa truy cập tới tài khoản 2.3.4 Biên dịch gói sở Ngay tạo nhóm người dùng ClamAV, vui lịng trích rút tệp nén: $ zcat clamav-x.yz.tar.gz | tar xvf $ cd clamav-x.yz Giả sử bạn muốn cài đặt file cấu hình /etc, cấu hình xây dựng phần mềm sau: $ /configure sysconfdir=/etc $ make $ su -c "make install" Trong bước cuối phần mềm cài đặt vào thư mục /usr/local file cấu hình thư mục /etc Chú ý đừng cho phép bit SUID SGID chuỗi nhị phân ClamAV 2.3.5 Biên dịch với clamav-milter libmilter file phát triển yêu cầu, phép clamav-milter, cấu hình ClamAV với $ /configure enable-milter 2.3.6 Sử dụng hệ thống LLVM Một vài vấn đề báo cáo biên dịch ClamAV gắn liền LLVM với phát hành trình biên dịch C++ gần Những vấn đề tránh việc cài đặt sử dụng thư viện hệ thống LLVM bên ngồi Để cấu hình ClamAV để sử dụng LLVM mà cài đặt thư viện hệ thống thay LLVM JIT gắn liền nó, sử dụng sau: $ /configure with-system-llvm=/myllvm/bin/llvm-config $ make $ sudo make install 29 Tham số with-system-llvm tùy chọn, tên đường dẫn tiện ích cấu hình (llvm-config) Khi khơng có tham số with-system-llvm ./configure tìm kiếm LLVM thư mục /usr/local/ sau /usr Các phiên khuyến nghị LLVM 3.2, 3.3, 3.4 3.5 Một vài trường hợp cài đặt vấn đề sử dụng phiên LLVM cũ Các phiên LLVM 3.5 thời không hỗ trợ ClamAV 2.3.7 Tiến hành kiểm tra đơn vị ClamAV bao gồm kiểm tra đơn vị mà cho phép kiểm tra tệp tin nhị phân biên dịch có làm việc tảng bạn Bước sử dụng trình quản lý gói hệ điều hành để cài đặt gói check Nếu hệ điều hành khơng có gói đó, bạn tải từ http://check.sourceforge.net/, xây dựng cài đặt Để trợ giúp kịch cấu hình ClamAV xác định check, bạn nên cài đặt pkgconfig, cách sử dụng ưa thích dùng trình quản lý gói từ http://pkg-config freedesktop.org Cách tiến hành khuyến nghị để chạy kiểm thử đợn vị sau, bảo đảm bạn nhận lỗi unit-tests xây dựng: $ /configure enable-check $ make Tải FULL (90 trang): https://bit.ly/3Fhsi43 Dự phòng: fb.com/TaiHo123doc.net $ make check Khi make check hồn thành, nhận thơng điệp sau: All tests passed Nếu unit test thất bại, bạn nhận thông điệp giống sau: of tests failed Please report to http://bugs.clamav.net/ Nếu kiểm tra đợn vị bị vơ hiệu hóa, nhận thông điệp sau: *** Unit tests disabled in this build *** Use /configure enable-check to enable them SKIP: check_clamav PASS: check_clamd.sh PASS: check_freshclam.sh PASS: check_sigtool.sh PASS: check_clamscan.sh ====================== All tests passed 30 (1 tests were not run) Chạy /configure enable-check biết nguyên nhân 2.3.8 Tải sở liệu mã độc ClamAV Trước bạn chạy ClamAV chế độ daemon (clamd), ‘clamdscan’, ‘clamscan’, trình qt virus dịng lệnh ClamAV, bạn phải có file sở liệu virus ClamAV (.cvd) cài đặt vị trí thích hợp hệ thống Vị trí mặc định cho file sở liệu /usr/local/share/clamav Dưới danh sách file sở liệu virus sẵn có ClamAV: bytecode.cvd (dấu hiệu để phát bytecode) main.cvd (file sở liệu virus ClamAV) daily.cvd (file cập nhật sở liệu hàng ngày) safebrowsing.cvd (dấu hiệu virus cho duyệt web an tồn) Những file tải qua HTTP từ website ClamAV qua tiện ích ‘freshclam’ Sử dụng ‘freshclam’ phương pháp ưa thích để giữ cho sở liệu cập nhật không cần can thiệp thủ công 2.4 Cách sử dụng 2.4.1 clamd Clamd daemon đa luồng mà sử dụng libclamav để quét virus Nó làm việc hai chế độ: Unix socket TCP socket Tải FULL (90 trang): https://bit.ly/3Fhsi43 Dự phịng: fb.com/TaiHo123doc.net Daemon cấu hình hồn tồn file clamd.conf clamd nhận lệnh sau: PING, VERSION, RELOAD, SHUTDOWN, SCAN file/directory, RAWSCAN, CONTSCAN, MULTISCAN, ALLMATCHSCAN, INSTREAM… 2.4.2 clamdscan Clamdscan client đơn giản Trong nhiều trường hợp bạn sử dụng thay clamscan nhiên bạn phải nhớ rằng: Nó phụ thuộc vào clamd Mặc dầu chấp nhận tùy chọn dịng lệnh giống clamscan, hầu hết chúng bị lờ chúng phải cho phép trực tiếp clamd, tức clamd.conf 31 Trong chế độ TCP file quét phải truy cập từ clamd, bạn cho phép Local-Socket in clamd.conf sau clamdscan thử khắc phục giới hạn việc sử dụng FILDES 2.4.3 Quét lúc truy cập Có luồng đặc biệt clamd mà thực thi quét lúc truy cập Linux chia sẻ sở liệu virus với daemon Mặc định, luồng thông báo cho bạn mối đe dọa tiềm tàng phát Nếu bạn bật chế độ phòng ngừa (prevention) qua clamd.conf sau bạn phải theo vài quy tắc quan trọng sử dụng nó: Luôn tạm dừng daemon cách sẽ, sử dụng lệnh SHUTDOWN tín hiệu SIGTERM Đừng bảo vệ thư mục mà phần mềm quét mail sử dụng để mở tệp đính kèm Truy cập tới tất file nhiễm độc tự động bị khóa trình qt khơng thể phát virus Xem toàn hệ thống file sử dụng tùy chọn OnAccessMountPath clamd.conf Sử dụng trình quét On-Access để xem hệ thống file ảo dẫn đến tác động không xác định 2.4.4 clamdtop clamdtop công cụ để giám sát nhiều clamd Nó công việc hàng đợi clamd, sử dụng nhớ thông tin sở liệu tải bạn xác đinh dòng lệnh mà clamd kết nối tới Mặc định thử kết nối tới clamd cục định nghĩa clamd.conf 2.4.5 clamscan clamscan la trình qt virus dịng lệnh ClamAV Nó sử dụng để quét file thư mục Để clamscan làm việc đúng, file sở liệu virus phải cài đặt hệ thống mà bạn sử dụng clamscan Cách sử dụng chung clamscan là: clamscan [option] [file/directory/-] 2.4.6 clamBC clamBC công cụ kiểm tra bytecode ClamAV Nó sử dụng để test file chứa đựng bytecode 6446999 ... khác để phân loại virus dựa vào cách làm để chúng ẩn náu qua mặt người dùng phầm mềm diệt virus 1.2.1.2.1 Virus mã hóa Đối với virus mã hóa ý tưởng phần thân virus bao gồm phần lây nhiễm, kích... 1.2.1.2.2 Virus tàng hình Virus tàng hình virus nỗ lực tiến hành bước để che dấu lây nhiễm nó, khơng có phần thân virus, virus tàng hình ln cố gắng ẩn thứ khơng với phần mềm chống virus Một vài... virus, dựa vào phương thức mà virus sử dụng để che giấu thân với hệ thống phát phần mềm chống virus 1.2.1.1 Phân loại virus dựa vào hình thức lây nhiễm 1.2.1.1.1 Virus lây nhiễm Boot-Sector Virus