Khóa luận tốt nghiệp: Ứng dụng hệ miễn dịch nhân tạo cho lọc thư rác - Lương Văn Lâm

docx
Số trang Khóa luận tốt nghiệp: Ứng dụng hệ miễn dịch nhân tạo cho lọc thư rác - Lương Văn Lâm 59 Cỡ tệp Khóa luận tốt nghiệp: Ứng dụng hệ miễn dịch nhân tạo cho lọc thư rác - Lương Văn Lâm 768 KB Lượt tải Khóa luận tốt nghiệp: Ứng dụng hệ miễn dịch nhân tạo cho lọc thư rác - Lương Văn Lâm 0 Lượt đọc Khóa luận tốt nghiệp: Ứng dụng hệ miễn dịch nhân tạo cho lọc thư rác - Lương Văn Lâm 6
Đánh giá Khóa luận tốt nghiệp: Ứng dụng hệ miễn dịch nhân tạo cho lọc thư rác - Lương Văn Lâm
4.6 ( 8 lượt)
Nhấn vào bên dưới để tải tài liệu
Để tải xuống xem đầy đủ hãy nhấn vào bên trên
Chủ đề liên quan

Nội dung

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC SƯ PHẠM LƯƠNG VĂN LÂM ỨNG DỤNG HỆ MIỄN DỊCH NHÂN TẠO CHO LỌC THƯ RÁC KHOÁ LUẬN TỐT NGHIỆP NGÀNH: TIN HỌC Người hướng dẫn khoa học: Ths. Nguyễn Văn Trường Thái Nguyên, năm 2015 1 LỜI CẢM ƠN Để hoàn thành luận văn tốt nghiệp này, em xin bày tỏ lòng biết ơn sâu sắc tới thầy giáo Ths. Nguyễn Văn Trường – Giảng viên Tin học, khoa Toán, Trường Đại học Sư Phạm – Đại học Thái Nguyên, đã định hướng ý tưởng, tận tình giúp đỡ, chỉ bảo em trong suốt quá trình thực hiện luận văn. Em xin chân thành cảm ơn Ban giám hiệu nhà trường, Ban chủ nhiệm khoa Toán cùng toàn thể các thầy, cô giáo trong khoa đã tận tình hướng dẫn, giúp đỡ em thực hiện luận văn. Bên cạnh đó, em xin gửi lời cảm ơn đến gia đình, bạn bè và những người thân đã động viên giúp đỡ em trong suốt quá trình làm luận văn. Trong quá trình tiến hành làm luận văn do chưa có nhiều kinh nghiệm nên không tránh khỏi những thiếu sót và hạn chế. Vì vậy em rất mong nhận được sự góp ý của các thầy cô và các bạn sinh viên để luận văn được hoàn thiện hơn. Em xin chân thành cảm ơn! Thái Nguyên, tháng 04 năm 2015 Sinh viên Lương Văn Lâm 2 DANH MỤC TỪ VIẾT TẮT, KÝ HIỆU Viết tắt, ký hiệu HMD NSA Viết đầy đủ, ý nghĩa Hệ miễn dịch. Negative Selection Algorithm - Thuật toán chọn lọc tiêu SMTP WEKA HTML IBM TP cực (âm tính) Simple Mail Transfer Protocol. Waikato Environment for Knowledge Analysis. HyperText Markup Language. International Business Machines. Số lượng email spam kết luận đúng. TN Số lượng email thường kết luận đúng. FP FN Acc DR FPR Số lượng email thường kết luận sai thành spam. Số lượng email spam kết luận sai thành thường. Độ chính xác tổng thể. Tỉ lệ phát hiện. Tỉ lệ dương tính giả. DANH MỤC HÌNH VẼ Hình 1.1. Cấu trúc hệ thống thư điện tử..............................................................................13 Hình 2.1. Các tầng hệ miễn dịch sinh học...........................................................................27 3 Hình 2.2. Một số bộ phận của HMD sinh học.....................................................................29 Hình 2.3. Cấu trúc phân tầng của HMD nhân tạo...............................................................30 Hình 2.4. Sơ đồ thuật toán chọn lọc tích cực......................................................................32 Hình 2.5. Sơ đồ thuật toán chọn lọc tiêu cực......................................................................33 Hình 3.1. Giao diện chương trình.......................................................................................40 Hình 3.2. Giao diện phần mềm Weka.................................................................................50 Hình 3.3. Giao diện Weka Explorer....................................................................................51 Hình 3.4. Giao diện Weka Explorer sau khi mở nạp Spambase..........................................52 Hình 3.5. Phân loại dữ liệu.................................................................................................52 DANH MỤC CÁC BẢNG Bảng 3.1. Một số kết quả....................................................................................................49 Bảng 3.2. Kết quả thử nghiệm trên WEKA và NSA...........................................................53 Bảng 3.3. Kết quả NSA so với một số phương pháp cho kết quả tốt..................................54 Bảng 3.4. Kết quả của NSA so với một số phương pháp thấp hơn.....................................54 MỤC LỤC Trang bìa phụ………………………………………………………………………………..1 Lời cảm ơn………………………………………………………………………..................2 Danh mục từ viết tắt, ký hiệu ...............................................................................................3 4 Danh mục hình vẽ.................................................................................................................4 Danh mục các bảng .............................................................................................................. 4 MỤC LỤC...........................................................................................................................5 MỞ ĐẦU.............................................................................................................................. 7 CHƯƠNG 1 TỔNG QUAN VỀ THƯ ĐIỆN TỬ VÀ THƯ RÁC...................................9 1.1. Tổng quan về thư điện tử...........................................................................................9 1.1.1. Lịch sử phát triển................................................................................................9 1.1.2. Thư điện tử là gì................................................................................................11 1.1.3. Lợi ích của thư điện tử......................................................................................12 1.1.4. Cấu trúc chung và các giao thức gửi, nhận thư điện tử......................................13 1.2. Tổng quan về thư rác...............................................................................................16 1.2.1. Lịch sử..............................................................................................................16 1.2.2. Định nghĩa.........................................................................................................17 1.2.3. Mục đích gửi thư rác.........................................................................................17 1.2.4. Các đặc tính của thư rác....................................................................................17 1.2.5. Các kĩ thuật tạo thư rác.....................................................................................19 1.2.6. Các kĩ thuật phát hiện và ngăn chặn thư rác......................................................19 1.2.7. Cơ sở dữ liệu thống kê thư rác..........................................................................24 1.3. Kết luận....................................................................................................................26 Chương 2 TỔNG QUAN VỀ HỆ MIỄN DỊCH SINH HỌC VÀ HỆ MIỄN DỊCH NHÂN TẠO....................................................................................................................... 27 2.1. Tổng quan về hệ miễn dịch sinh học........................................................................27 2.1.1. Khái niệm..........................................................................................................27 2.1.2. Các tầng bảo vệ của hệ miễn dịch sinh học.......................................................27 2.2. Tổng quan về hệ miễn dịch nhân tạo........................................................................30 2.2.1. Khái niệm hệ miễn dịch nhân tạo......................................................................30 2.2.2. Mô hình hệ miễn dịch nhân tạo.........................................................................30 2.2.3. Các thuật toán trong hệ miễn dịch nhân tạo......................................................31 2.2.4. Sinh tập bộ dò...................................................................................................34 2.3. Kết luận....................................................................................................................37 5 Chương 3 XÂY DỰNG CHƯƠNG TRÌNH LỌC THƯ RÁC.......................................38 3.1. Giới thiệu.................................................................................................................38 3.1.1. Bài toán lọc thư rác...........................................................................................38 3.1.2. Xây dựng chương trình.....................................................................................39 3.2. Các quá trình thực hiện chương trình.......................................................................41 3.2.1. Quá trình chia file nguồn (Split file).................................................................41 3.2.2. Quá trình huấn luyện – Tạo tập bộ dò (Training)..............................................41 3.2.3. Quá trình kiểm tra – phân loại (testing).............................................................43 3.3. Phân tích kết quả......................................................................................................48 3.3.1. Khả năng phát hiện thư thường và thư rác........................................................48 3.3.2. So sánh kết quả với một số thuật toán khác.......................................................49 3.4. Kết luận....................................................................................................................55 KẾT LUẬN.......................................................................................................................56 TÀI LIỆU THAM KHẢO................................................................................................57 6 MỞ ĐẦU Thư điện tử (email) đã và đang là một trong những phương tiện, công cụ gửi nhận thông tin được sử dụng rộng rãi nhất trên thế giới. Sự phát triển của thư điện tử gắn liền với sự phát triển của ngành khoa học công nghệ thông tin. Thư rác (spam) là những thư điện tử được gửi một cách tự động tới tài khoản (hộp thư) của người dùng với những nội dung không mong đợi, không muốn nhận, không phù hợp hoặc nội dung thư không liên quan tới người nhận. Sự xuất hiện của thư rác gây ra phiền phức, mất thời gian cho người sử dụng bên cạnh đó nó cũng làm cho đường truyền Internet trở nên chậm hơn do số lượng thư rác gửi đi trong một thời điểm là rất nhiều, thư rác cũng là một trong những công cụ phát tán virus máy tính gây ra nhiều hậu quả khó lường về nhiều mặt. Để phòng ngừa và ngăn chặn thư rác, nhiều phương pháp đã được sử dụng tạo ra nhiều phần mềm lọc thư rác, một trong những phương pháp mới đã và đang được nghiên cứu phát triển là ứng dụng HMD nhân tạo (Artificial immune system - AIS) – là phương pháp dựa trên nguyên lý, chức năng, mô hình hoạt động của HMD sinh học ở người, với kĩ thuật “học máy” mang lại hiệu quả tương đối cao. Với kĩ thuật này các thư điện tử thông thường hoặc thư rác sẽ được “học” hay “huấn luyện” tạo thành cơ sở dữ liệu để phát hiện các thư rác. Vấn đề đặt ra là cần cải thiện hiệu quả của quá trình học máy, cũng như quá trình nhận dạng và loại bỏ thư rác. Vì vậy, tôi quyết định lựa chọn nội dung nghiên cứu trong khóa luận của mình là: “Ứng dụng hệ miễn dịch nhân tạo cho lọc thư rác”. I. Mục tiêu nghiên cứu Bước đầu tìm hiểu hệ miễn dịch nhân tạo và áp dụng nó cho bài toán lọc thư rác. II. Nhiệm vụ nghiên cứu - Nghiên cứu lịch sử phát triển của thư điện tử, những lợi ích và mặt hạn chế mà thư điện tử mang lại. - Nghiên cứu về thư rác: quá trình phát triển, cấu trúc, tác hại của chúng… Tìm hiểu nội dung các phương pháp ngăn chặn thư rác, ưu – nhược điểm của các phương pháp. 7 - Tìm hiểu nội dung hệ miễn dịch nhân tạo, một số thuật toán trong hệ miễn dịch nhân tạo. - Xây dựng chương trình áp dụng một thuật toán của hệ miễn dịch nhân tạo cho lọc thư rác. III. Phương pháp nghiên cứu - Nghiên cứu tài liệu: sách, luận văn, một số đề tài nghiên cứu cùng lĩnh vực, những bài báo, diễn đàn chuyên về thư điện tử và hệ miễn dịch nhân tạo. - Tham khảo ý kiến thầy giáo hướng dẫn, các bạn sinh viên cùng chuyên ngành. - Thử nghiệm cài đặt chương trình và so sánh hiệu quả của chương trình với một số phương pháp khác (trên WEKA) về khả năng phát hiện đúng và tỉ lệ lỗi. IV. Cấu trúc của đề tài Ngoài phần mở đầu và kết luận, đề tài có 03 chương: - Chương 1. Tìm hiểu tổng quan về thư điện tử và thư rác. - Chương 2. Tìm hiểu tổng quan nội dung hệ miễn dịch sinh học và hệ miễn dịch nhân tạo. - Chương 3. Xây dựng chương trình lọc thư rác áp dụng hệ miễn dịch nhân tạo. 8 CHƯƠNG 1 TỔNG QUAN VỀ THƯ ĐIỆN TỬ VÀ THƯ RÁC Chương này trình bày tổng quan về lịch sử phát triển, khái niệm, lợi ích của thư điện tử, cấu trúc chung và các giao thức gửi – nhận thư điện tử. 1.1. Tổng quan về thư điện tử 1.1.1. Lịch sử phát triển Ngày nay thư điện tử (email) là một trong những khái niệm quen thuộc và gần như không thể thiếu đối với hầu hết người sử dụng Internet, hàng tỉ tài khoản thư điện tử đang được sử dụng cho thấy thư điện tử là một công cụ gửi, nhận và trao đổi thông tin hàng đầu thế giới hiện nay. Lịch sử phát triển của thư điện tử gắn với các cột mốc sau:  Thời tiền thư điện tử - Năm 1961: Tom Van Vleck (kĩ sư phần mềm máy tính của Mĩ) đã phát triển hệ thống giao dịch tin nhắn nhiều người dùng trên một máy tính. - Năm 1965: Lần đầu tiên thư điện tử được ra mắt tại viện Công nghệ Massachusetts - Hoa Kì. - Năm 1971: Ray Tomlinson (lập trình viên người Mĩ) đã phát triển hệ thống giao dịch tin nhắn nhiều người trên nhiều máy tính và gửi bức thư điện tử đầu tiên trên mạng ARPANET (Advanced Research Projects Agency Network), bức thư điện tử đó là một bài kiểm tra e-mail. - Năm 1977: Định dạng chuẩn (RFC 733) được Dave Crocker đề xuất để phổ biến phương thức giao tiếp bằng thư điện tử qua mạng Internet.  Thư điện tử ra đời - Năm 1978: VA Shiva Ayyadurai đã tạo ra một hệ thống điện tử để gửi thư giữa các phòng trong nội bộ trường Đại học Y và Nha khoa New Jersey. - Năm 1979: Các thành phần: To, From, Cc, Bcc, Subject, Inbox, Outbox,.. được chuyển thành một hệ thống thư điện tử. 9 - Năm 1980: Hệ thống thư điện tử trên được ứng dụng thực tế trong trường Đại học Y và Nha khoa New Jersey. - Ngày 30/08/1982: Thuật ngữ “email” và hệ thống thư điện tử được trao bản quyền chính thức. - Năm 1982: Giao thức truyền tải thư điện tử SMTP ra đời. SMTP là giao thức truyền tải thư điện tử qua mạng, SMTP cho phép chuyển thông điệp thư điện tử từ máy chủ thư điện tử (mail server) của người gửi đến máy chủ thư điện tử của người nhận. - Năm 1985: Hệ thống phát triển hình thức email offline cho phép người nhận lưu trữ thư trên máy tính. - Năm 1988: Microsoft Mail là hòm thư điện tử thương mại đầu tiên được phát triển dùng cho giao thức mạng MAC (Media Access Control). - Năm 1989: IBM ra mắt Lotus 1.0 – mô hình email server đầu tiên.  Những năm 1990 - Những năm đầu 1990 vấn nạn thư rác bắt đầu hoành hành. - Năm 1992: Microsoft Outlook phiên bản dành cho hệ điều hành MS-DOS ra đời. - Năm 1993: America Online và Delphi kết nối hệ thống email độc quyền của họ vào Internet. Cùng lúc đó hãng IBM liên doanh với BellSouth sản xuất dòng điện thoại thông minh đầu tiên Simon Personal Communicator có tính năng sử dụng email. - Năm 1996: Sabeer Bhatia và Jack Smith khởi động “HotMail” - website cung cấp dịch vụ thư điện tử miễn phí đầu tiên trên thế giới và HotMail nhanh chóng trở thành dịch vụ thư điện tử được sử dụng nhiều nhất thế giới. - Năm 1997: Yahoo! cho ra đời Yahoo Mail tạo ra sự cạnh tranh với Hotmail. - Năm 1999: Blackberry cho phép truy cập dịch vụ thư điện tử qua điện thoại di động. Khả năng gửi thư qua điện thoại làm cho việc sử dụng thư điện tử trở nên tiện lợi và nhanh chóng hơn bao giờ hết. - Cuối những năm 1990, thư điện tử sử dụng ngôn ngữ HTML ra đời cho phép định dạng văn bản phong phú hơn so với văn bản thuần túy.  Những năm đầu thế kỉ 21 10 - Năm 2000: Microsoft phát hành ứng dụng email client Microsoft Entourage dành cho hệ điều hành Mac OS. - Năm 2003: Microsoft Outlook 2003 phát triển bộ lọc thư rác và thư lừa đảo. - Năm 2004: Ủy ban Thương mại Liên bang Mĩ ban hành đạo luật chống thư rác. - Năm 2006: Microsoft Outlook 2007 ra đời hỗ trợ việc duyệt tin qua RSS và nhận tin nhắn. Cùng thời gian này mạng xã hội Facebook bắt đầu đi vào hoạt động trên quy mô toàn cầu, tạo ra sự liên kết giữa tài khoản Facebook với tài khoản thư điện tử. - Tháng 4/2007: Gmail đi vào hoạt động sau 4 năm chạy bản thử nghiệm. - Năm 2010: + Microsoft Outlook 2010 ra đời tích hợp Outlook Social Connector (hỗ trợ nhận gửi thư với các mạng xã hội) bỏ qua hội thoại và dọn dẹp hội thoại. + Outlook Mobile dành cho Windows Phone 7 và Outlook dành cho Mac 2011 ra đời. + Mạng xã hội Facebook công khai kế hoạch kết hợp ứng dụng Microsoft nền web vào hệ thống tin nhắn mới. - Năm 2011: Hệ thống quy ước AP Stylebook của Hoa kì chính thức sử dụng chữ “email” trên các phương tiện truyền thông thay cho “e-mail”. Trải qua các giai đoạn phát triển, hiện nay thư điện tử đang được cải tiến theo hướng thuận tiện, thân thiện hơn với người dùng thể hiện qua việc cải tiến giao diện người dùng cùng với đó là các chức năng bảo vệ thư điện tử ngày càng hiệu quả hơn. 1.1.2. Thư điện tử là gì Thư điện tử (email hay electronic mail) là một hệ thống chuyển nhận thư qua các mạng máy tính. Thư điện tử là một phương tiện thông tin rất nhanh. Một mẫu thông tin có thể được gửi đi ở dạng mã hóa hay dạng thông thường và được chuyển qua các mạng máy tính đặc biệt là mạng Internet. Nó có thể chuyển thông tin từ một máy nguồn tới một hay nhiều máy nhận trong cùng một thời điểm. Ngày nay, thư điện tử không chỉ gửi thông tin dạng chữ mà nó còn có thể truyền các dạng thông tin khác như: hình ảnh, âm thanh, phim,… đặc biệt là các phần mềm thư điện 11 tử kiểu mới còn có thể hiển thị các thư điện tử dạng sống động tương thích với kiểu tệp HTML. Phần mềm thư điện tử (email software) là loại phần mềm nhằm hỗ trợ cho người dùng việc chuyển và nhận các mẫu thông tin. Thông tin có thể đưa vào phần mềm thư điện tử bằng cách thông dụng nhất là gõ chữ từ bàn phím, hoặc dùng máy quét hình ảnh scanner, máy ghi hình, webcam,… Phần mềm thư điện tử giúp việc soạn thảo, gửi, nhận, đọc, in, xóa hay lưu trữ các thư điện tử. Có hai loại phần mềm thư điện tử:  Các phần mềm thư điện tử được cài đặt trên từng máy tính (email client), hay phần mềm thư điện tử cho máy khách. Ví dụ: Microsoft Outlook, Microsoft Outlook Express, Netscape Communicator,….  Các phần mềm thư điện tử không cần cài đặt trên máy tính: Phần mềm loại này được cung cấp bởi các máy chủ (web server) trên mạng Internet. Để sử dụng được các phần mềm loại này thường các máy tính nối vào phải có một máy truy cập tương thích với sự cung ứng của Webmail. Ví dụ: Mail.Yahoo.com hay Hotmail.com,… Các dịch vụ thư điện tử có thể được cung ứng miễn phí hoặc có phí tùy theo nhu cầu và mục đích của người dùng. Ngày nay, thư điện tử thường được cung cấp kèm với các phương tiện Internet khi người tiêu dùng ký hợp đồng với các dịch vụ Internet một cách miễn phí. 1.1.3. Lợi ích của thư điện tử Tốc độ gửi/nhận nhanh: Thư điện tử được chuyển qua đường Internet dưới dạng các tín hiệu điện nên tốc độ di chuyển gần như là tức thời. Với các bức thư tín bình thường chúng ta có thể mất một vài ngày để thư có thể tới được địa chỉ cần thiết nhưng với thư điện tử người nhận dường như không cần chờ đợi. Chi phí không đáng kể: Với các bức thư tín bình thường, ta phải tốn một khoản chi phí khá lớn khi gửi các bức thư của mình. Còn với thư điện tử, ta chỉ tốn một khoản phí rất 12 nhỏ để kết nối Internet cùng với chi phí cho dịch vụ thư điện tử. Hiện nay, dịch vụ thư điện tử hầu hết được cung cấp miễn phí. Không có khoảng cách: Với thư điện tử, người nhận cho dù ở xa thì việc gửi và nhận thư đều được thực hiện gần như ngay lập tức. Chi phí cho các bức thư đó cũng đều như nhau và không đáng kể. 1.1.4. Cấu trúc chung và các giao thức gửi, nhận thư điện tử 1.1.4.1. Cấu trúc hệ thống thư điện tử SMTP (via internet) MTA chuyển tiếp MUA gửi System call SMTP (Direction connection) TCP MDA SMTP Mail retrieval Agent MTA nhận System call Đọc, viết Viết MDA cục bộ POP/IMAP System call Hộp thư MUA nhận Hình 1.1. Cấu trúc hệ thống thư điện tử Để thực hiện việc trao đổi thư với người dùng, giữa máy chủ và các máy khách thống nhất sử dụng chung một bộ giao thức gửi và nhận thư, trong đó quy định cụ thể về cổng làm việc, quy trình thao tác, các câu lệnh trao đổi, cấu trúc của thư điện tử. Mô hình trên mô tả một hệ thống thư điện tử với giao thức gửi thư SMTP và giao thức nhận thư POP hoặc IMAP. 13 Hệ thống bao gồm bốn phần tử chính: - MUA (Mail User Agent): là chương trình phần mềm của máy client được người dùng sử dụng để gửi, nhận, soạn thảo, xử lý thư điện tử. - MTA (Mail Transfer Agent): là một chương trình thư của máy chủ, cho phép truyền tải thư điện tử từ máy này sang máy khác. - MDA (Mail Delivery Agent): là chương trình MTA sử dụng để chuyển thư vào hộp thư của người dùng hoặc để truyền tải thư tới một MTA khác. Mỗi MTA sử dụng một hoặc nhiều MDA, mỗi MDA được sử dụng cho một loại yêu cầu phân phát thư riêng. - MRA (Mail Retrieval Agent): là một chương trình hoặc một dịch vụ có chức năng lấy thư điện tử về từ một hộp thư trên một máy chủ ở xa và đưa chúng tới một MUA. Các MRA truy vấn các thư và các phần header từ những hộp thư ở xa và phân phát chúng tới các MUA trên máy của người dùng. 1.1.4.2. Cấu trúc của thư điện tử Một thư điện tử thường có hai phần chính : phần đầu (Header) và phần thân (Body) là văn bản chứa nội dung của thư. Khi gửi đi, toàn bộ thư điện tử được gói trong nội dung (content). Ngoài ra, hệ thống thư còn tạo thêm một phần nữa gọi là bì thư (envelope) chứa các thông tin cần thiết cho việc chuyển thư đến nơi nhận. 1.1.4.3. Cấu trúc của một địa chỉ thư điện tử Một địa chỉ thư điện tử gồm ba phần chính dạng: Tên_định_dạng_thêm Tên_truy_cập@Địa_chỉ_máy_chủ_thư - Thành phần: Tên_định_dạng_thêm: Đây là một dạng tên để người đọc có thể dễ dàng nhận ra người gửi hay nơi gửi. Tuy nhiên, trong các thư điện tử người ta thường không cần tên định dạng thêm và lá thư điện tử vẫn được gửi đi đúng nơi. Ví dụ: Su_pham_tin spt@gmail.com có thể viết địa chỉ thư là: spt@gmail.com lúc này phần mềm thư điện tử vẫn hoạt động chính xác và gửi đến đúng địa chỉ. - Phần Tên_truy_cập: là phần xác định hộp thư. Do người đăng ký hộp thư đặt và cần phải nhớ rõ phần tên này. Phần này còn gọi là: phần tên địa phương. - Phần Địa_chỉ_máy_chủ_thư: là địa chỉ máy chủ của nhà cung cấp dịch vụ thư điện tử. Giữa Tên_truy_cập và Địa_chỉ_máy_chủ_thư ngăn cách nhau bởi kí tự @ . 14 Ví dụ: khoatoan11@gmail.com; suphamtn@yahoo.com; thpttn@hotmail.com;… 1.1.4.4. Một số giao thức sử dụng để gửi và nhận thư điện tử Hệ thống thư điện tử được xây dựng dựa trên một số giao thức: SMT, Post Office Protocol (POP), Multipurpose Internet Mail Extensions (MIME) và Interactive Mail Access Protocol (IMAP) được định dạng trong RFC 1176 là một giao thức quan trọng để thay thế POP, nó cung cấp nhiều cơ chế tìm kiếm văn bản, phân tích tin nhắn từ xa mà ta không nhìn thấy trong POP.  Một số giao thức gửi thư điện tử - Giao thức SMTP: Là giao thức truyền tin tin cậy, chịu trách nhiệm phân phát thư điện tử từ hệ thống mạng này sang hệ thống mạng khác, chuyển thư trong hệ thống mạng nội bộ. Hầu hết các hệ thống thư điện tử gửi thư qua Internet đều dùng giao thức này. Các mẫu thông tin có thể được lấy ra bởi một email client. Những email client này phải dùng giao thức POP hay giao thức IMAP. - Giao thức X.400: là giao thức được ITU-T và ISO định nghĩa nó đã được ứng dụng rộng rãi ở Châu Âu, Canada. X.400 cung cấp tính năng điều khiển và phân phối thư điện tử, sử dụng định nghĩa dạng nhị phân, do đó không cần mã hóa nội dung khi phân phát thư trên mạng Internet.  Một số giao thức nhận thư điện tử Có hai giao thức chính thường được dùng bởi các ứng dụng máy thư khách để truy cập thư từ các máy chủ: Post Office Protocol (POP) và Internet Message Access Protocol (IMAP). - Giao thức POP: là giao thức được thiết kế để hỗ trợ tiến trình thư “offline”, trong tiến trình này thư điện tử được phân phát tới một máy chủ. Một máy tính cá nhân người dùng gọi định kỳ một chương trình thư khách được kết nối tới máy chủ và tải tất cả thư treo đó tới máy tính của người dùng. Cách truy cập offline là một loại dịch vụ store-to-forward, được sử dụng để chuyển thư từ máy chủ thư tới máy của người đọc thư. - Giao thức IMAP: là một giao thức chuẩn cho việc truy cập thư điện tử từ máy chủ thư cục bộ. Là một giao thức chủ/khách trong đó thư điện tử được nhận và duy trì bởi máy chủ thư. Với những yêu cầu này chỉ một trao đổi dữ liệu nhỏ làm việc tốt thậm trí qua một 15 kết nối chậm như một modem. Chỉ khi người dùng yêu cầu đọc một thư điện tử cụ thể thì nó sẽ được tải về từ máy chủ thư đó. Người dùng có thể tạo và chế tác các thư mục hoặc các hộp thư trên máy chủ, xóa tin nhắn,… 1.2. Tổng quan về thư rác 1.2.1. Lịch sử Lịch sử thư rác có thể chia thành ba giai đoạn. 1.2.1.1. Giai đoạn thứ nhất - những năm đầu của thư rác Nhiều ý kiến cho rằng thư rác đầu tiên được phát tán trên mạng diện rộng vào năm 1978, đó là một quảng cáo từ Digital Equipment Corporation (DEC) [5] nhà sản xuất máy tính mini hàng đầu thế giới. Do dịch vụ thư điện tử lúc này chưa tiên tiến nên người phát tán thư rác (spammer) phải đánh thủ công các địa chỉ thư điện tử muốn gửi và có khoảng 320 trong tổng số các địa chỉ thư điện tử mà spammer muốn gửi nhận được thư rác này trong lần phát tán đầu tiên. Vào 1988 xuất hiện kiểu thư rác khác là thư rác lừa đảo (như lừa đảo làm việc từ thiện, lừa đảo về kiếm tiền). 1.2.1.2. Giai đoạn thứ hai - thư rác được gửi thông qua phần mềm Đầu thập niên 1990, với sự phát triển của Internet gây ra vấn nạn thư rác với số tăng lên nhanh chóng. Lúc này các spammer dùng các phần mềm để gửi tự động thư rác đến một danh sách nhiều địa chỉ. Ví dụ: thư rác Jesus, Cantel và Siegel. Vào 1995 Jeff Slaton - tự nhận mình là “vua thư rác”, ông là một trong những người đầu tiên kiếm lợi nhuận từ các thư rác mà ông gửi đi, ông còn ép buộc các nạn nhân của mình trả phí nếu không muốn nhận thư rác. Việc làm của ông tạo ra ý tưởng cho các công ty thương mại là thuê những người như Jeff Slaton để phát tán thư điện tử với mục đích là quảng cáo giúp họ. 1.2.1.3. Giai đoạn thứ ba - phần mềm chống thư rác chống lại các phần mềm gửi thư rác Vào 1996 xuất hiện các phần mềm chống thư rác đầu tiên như Spamblock, Internet Death Penalty, tuy nhiên vẫn không làm giảm sự phát triển của thư rác. Các địa chỉ thư điện tử của người dùng được bán cho các công ty, tổ chức muốn thực hiện quảng cáo trên 16 thư điện tử. Và từ 1997 sự phát triển của thư rác đã vượt quá sự kiểm soát, một thống kê cho thấy 97% tổng số thư điện tử được gửi trên mạng là các thư người nhận không mong muốn [6]. 1.2.2. Định nghĩa Có nhiều tranh cãi về định nghĩa chính xác của thư rác (spam email), bởi vì thư rác mang tính cá nhân hóa nên khó mà nói lên được hết ý nghĩa của thư rác. Nhiều ý kiến cho rằng thư rác là những “thư điện tử không mong muốn”. Định nghĩa này cũng không thực sự chính xác, như một nhân viên nhận những thư điện tử về công việc từ sếp của họ, đây là những thư điện tử người nhân viên không mong muốn nhưng chúng không phải là thư rác. Lại có ý kiến khác cho rằng thư rác là những “thư điện tử thương mại không được yêu cầu từ phía người nhận” những thư này bao gồm các thư điện tử quảng cáo về các sản phẩm và thư điện tử lừa gạt. Nhưng định nghĩa này cũng không thực sự chính xác. Sau đó có ý kiến cho rằng thư rác là “số lượng lớn thư điện tử không yêu cầu” và trong số đó các thư điện tử quảng cáo, thương mại chiếm đa số, đây có thể là định nghĩa gần đúng với ý nghĩa của thư rác nhất [7]. 1.2.3. Mục đích gửi thư rác Mục đích chính của việc gửi thư rác: - Quảng cáo sản phẩm, hàng hóa, dịch vụ,… của tổ chức, công ty thương mại hay cá nhân nào đó. - Lợi dụng sự tin tưởng của người dùng để lừa gạt như các hình thức thanh toán trực tuyến. - Phát tán virus, mã độc hại kèm theo thư điện tử xâm nhập vào các máy nhận thư rác nhằm đánh cắp thông tin, phá hoại tài liệu, phá hủy hệ thống phần mềm. - Tuyên truyền những luận điệu sai trái, văn hóa không lành mạnh, nói xấu chế độ chính trị. 1.2.4. Các đặc tính của thư rác Thư rác có các đặc tính cơ bản sau: - Mang tính tương đối vì nó mang tính cá nhân, có thể một thư điện tử này là vô bổ với người này nhưng lại có lợi với người khác. 17 - Tính bất biến trong một thư rác thể hiện ở những từ, cụm từ hầu như không thay đổi trong những lần spam. - Đặc tính phần header của thư rác [6]: + Địa chỉ thư điện tử của người nhận sẽ không được thể hiện ở trường “To:” hay “Cc:” vì địa chỉ này sẽ được ẩn trong trường “Bcc”. Người gửi thư rác thực hiện hành động này để giấu số lượng lớn các địa chỉ thư điện tử mà người gửi thư rác muốn gửi. + Để nội dung trống hoặc thiếu trường “To”. + Nội dung trường “From:” giống trường “To:”. + Thiếu trường “From:”. + Định danh –ID của thư điện tử bị thiếu hoặc bị làm giả. + Trường “Bcc:” có tồn tại vì ở các thư điện tử thông thường trường này thường không xuất hiện. + Trường “X-mailer” là trường thể hiện tên phần mềm dùng để gửi thư điện tử, nếu trường này bao gồm tên của phần mềm gửi thư rác quen thuộc thì có thể xác định được là thư rác hay không. + X-UIDL header: là một định danh duy nhất được sử dụng bởi các giao thức POP để lấy thư điện tử từ một máy chủ thư điện tử. Nó thường được thêm vào giữa các máy chủ thư điện tử của người nhận và phần mềm thư điện tử của người nhận, nếu thư đến tại các máy chủ thư điện tử mà xuất hiện trường này thì là thư rác. + Tồn tại các dòng mã lệnh hoặc khoảng trắng tuần tự. Ví dụ như thêm mã lệnh trên chủ đề của thư và dùng khoảng trắng để giấu. + Tồn tại các dòng mã HTML không đúng quy tắc. - Nội dung của thư thường chứa các từ như: khuyến mãi, kiếm tiền nhanh, free, … - Giống nhau ở kích thước/ loại tệp tin/ tên tệp tin đính kèm thư rác ở các lần spam. 18 1.2.5. Các kĩ thuật tạo thư rác 1.2.5.1. Chỉnh sửa phần header của thư rác - Nhập địa chỉ của các người nhận thư rác vào trường “Bcc:” thay vì trường “To:” hoặc “Cc”. - Thể hiện ở trường “To:” các địa chỉ thư điện tử không hợp lệ để đánh lừa người nhận. - Dùng mã HTML và khoảng trắng để che dấu thông tin nhằm mục đích đánh lừa người nhận. 1.2.5.2. Chỉnh sửa phần nội dung của thư rác - Gửi cùng một văn bản thư rác nhiều lần mà không có gì thay đổi. - Đảo nội dung, xóa bớt hoặc thêm một số đoạn văn bản trong lần gửi tiếp theo. - Thay đổi cách dùng từ, hình thức mà không làm thay đổi nội dung thư rác. - Thêm các thẻ HTML vào văn bản thư rác để vượt qua các phần mềm lọc thư rác. - Dùng hình ảnh thay văn bản để tránh các phần mềm lọc thư rác thông qua văn bản (biến dạng chữ để tránh nhận dạng kí tự quang học). Dựa vào các đặc tính của thư rác và các thủ thuật tạo thư rác của các spammer, người ta đã và đang nghiên cứu xây dựng các kĩ thuật lọc thư rác nhằm mục đích ngăn chặn phán tán thư rác sao cho hiệu quả nhất. 1.2.6. Các kĩ thuật phát hiện và ngăn chặn thư rác 1.2.6.1. Kĩ thuật blacklisting Một blacklist là một danh sách chứa thông tin các địa chỉ thư điện tử hay địa chỉ IP bị cho là địa chỉ phát tán thư rác. Blacklist còn được gọi là danh sách blackhole. Hiện nay trên thế giới có nhiều tổ chức chuyên về lĩnh vực thu thập và cung cấp blacklist của các máy chủ thư điện tử được kẻ phát tán thư rác sử dụng. Có nhiều loại danh sách blacklist khác nhau (IP blacklist, DNS blacklist, email blacklist) đưa đến nhiều mức độ lọc khác nhau trong mạng. Mỗi blacklist có một tập luật và điều kiện khác nhau để xác định thư rác. Một vài danh sách quá khắt khe, quá nhiều điều kiện dẫn đến rủi ro các thư điện tử hợp lệ bị mất rất cao. 19 Các danh sách blacklist có hai hạn chế quan trọng là [7]: - Thời gian lan truyền: Các danh sách blacklist sẽ thêm các địa chỉ mạng vào danh sách của nó chỉ khi mạng đó được dùng để phát tán thư rác. Trước đây việc thêm các mạng đó vào danh sách làm việc tốt do kẻ phát tán thư rác khá bị động. Nhưng ngày nay kẻ phát tán thư rác có thể đánh cắp tài khoản dialup, sử dụng các máy trung gian giúp gửi thư tạo ra các host mới để gửi thư rác trước khi chúng được thêm vào danh sách blacklist. Nhiều danh sách đã bắt đầu blacklist không gian địa chỉ người dùng dialup và ISDN để chống lại các host phát tán thư rác mới này. Tuy nhiên nỗ lực này gặp phải vấn đề lớn là không gian địa chỉ này thường xuyên thay đổi. - Chất lượng duy trì các danh sách blacklist: Nhiều danh sách blacklist hiện nay được duy trì kém. Kết quả là một số mạng hợp lệ bị thêm vào blacklist không bao giờ bị xóa, hay chậm xóa. Những vấn đề này làm cho một số blacklist rất không được tin cậy do chúng khóa cả những thư điện tử hợp lệ.  Một số ưu – nhược điểm - Ưu điểm: + Dễ cài đặt. + Dễ dàng chia sẻ danh sách này cho người khác sử dụng. - Nhược điểm: + Cần thời gian lan truyền để cập nhật danh sách nên có thể để lọt các thư rác từ những host sử dụng tài khoản dialup bị đánh cắp, open replays hay proxy server. + Tốn nhiều công sức để duy trì danh sách blacklist. Chỉ nên dùng các blacklist tin cậy được cập nhật thường xuyên và chỉ nên blacklist các địa chỉ biết chắc là nơi phát tán thư rác. 1.2.6.2. Kĩ thuật whitelisting Whitelist là một danh sách các địa chỉ thư điện tử hay địa chỉ IP được coi là không phát tán thư rác. Các danh sách whitelist thường được sử dụng trong các ứng dụng thư điện tử để cho phép người dùng tạo ra danh sách những người mà họ muốn nhận thư điện tử. Danh sách này sẽ ghi đè lên bất cứ danh sách blacklist nào, và nó cho phép thư điện tử được gửi vào hộp thư đến của người dùng mà không cần phải lọc như thư rác. 20 Whitelisting ngược với blacklisting, nó sử dụng một danh sách tin cậy. Theo mặc định mọi người sẽ bị blacklist trừ khi họ có tên trong danh sách whitelist. Điểm khác biệt lớn nhất giữa kĩ thuật whitelisting và các kĩ thuật lọc nội dung là các kĩ thuật lọc nội dung được dùng để xác định thư rác, còn whitelisting được dùng để xác định người gửi rõ ràng. Hầu hết các whitelist được quản lý riêng bởi mỗi người dùng vì số lượng thư điện tử hợp lệ rất là lớn. Kĩ thuật whitelisting có độ chính xác cao vì nó chỉ cho phép những địa chỉ rõ ràng đi qua. Điều này là một lợi thế lớn, nhưng cũng có một số bất lợi vì tất cả thư điện tử của người lạ đều bị loại bỏ nên các thư điện tử hợp lệ từ những người muốn liên lạc với một người dùng nào đó cũng sẽ bị loại bỏ. Có một số cách để khắc phục nhược điểm này: - Tạo ra whitelist các địa chỉ thư điện tử và một địa chỉ thư đặc biệt dùng để gửi tới người gửi chưa được whitelist. - Một cách khác liên quan đến việc điều tiết người gửi (giới hạn tốc độ và số lượng thông điệp một người chưa được whitelist có thể gửi) và gửi đi một challenge/response [7].  Một số ưu – nhược điểm - Ưu điểm: + Kết quả có độ chính xác cao. + Không phải dựa trên việc học nội dung thông điệp. - Nhược điểm: + Có thể giả mạo địa chỉ trong danh sách whitelist. + Tất cả người dùng phải được tin cậy mới có thể gửi thư vào inbox được. + Người dùng cần phải cấu hình danh sách whitelist một cách thủ công. Kĩ thuật này phù hợp cho những người dùng cần độ chính xác cao mà không bận tâm đến rủi ro có thể mất các thư điện tử. 1.2.6.3. Kĩ thuật heuristic filtering Phương pháp lọc heuristic được phát triển vào cuối năm 1990. Phương pháp này sử dụng một tập các luật thông dụng nhằm nhận dạng tính chất của thư rác cụ thể nào đó. Các tính chất này có thể nằm trong nội dung hoặc có được do quan sát cấu trúc cụ thể đặc thù của thư rác. Không giống như các bộ lọc trước, bộ lọc heuristic có các luật để phát hiện cả 21 thư rác lẫn thư hợp lệ. Các thông điệp chỉ có một ít tính chất là thư rác có thể được xem là thư hợp lệ nếu ta không thiết lập cảnh báo cho trường hợp này. Heuristic filtering làm việc dựa trên hàng ngàn luật được định nghĩa trước [9], mỗi luật đều được gán một điểm số để biết xác suất thông điệp có phải là thư rác hay không. Kết quả cuối cùng của biểu thức gọi là Spam score. Spam score để đo mức độ của thư rác (thấp, trung bình hay cao). Thiết lập mức độ càng cao thì càng lọc được nhiều thư rác, tuy nhiên tỉ lệ false-positive (không phải là thư rác nhưng cho là thư rác) cũng sẽ tăng do các thư điện tử hợp lệ bị coi là thư rác cũng nhiều hơn. Dựa vào Spam score và một ngưỡng xác định thì các thông điệp được phân lớp thành thư rác, thư hợp lệ và thư chưa xác định. Tuy nhiên cũng có ngoại lệ cho luật này: - Các thông điệp từ người gửi trong whitelist không bao giờ bị coi là thư rác - Các thông điệp từ người gửi trong blacklist luôn bị coi là thư rác. Heuristic filtering có hai điểm yếu làm giảm hiệu quả của nó [7]: - Điểm yếu chính xuất phát từ lý do tập luật được thiết kế để mọi người sử dụng. Do đó cần phải cắt giảm một số luật để tránh một số lỗi false-positive quan trọng. Kết quả là phiên bản đầu tiên của Spam Assassin có một tỉ lệ lỗi là 1/10 thông điệp, các phiên bản sau này cải thiện chỉ còn 1/20 thông điệp, đạt độ chính xác khoảng 95%. - Điểm quan trọng hơn là mọi người sử dụng chung một tập các luật, cho nên các spammer có thể học và thích nghi với các luật để vượt qua bộ lọc. Do các tập luật và các cơ chế gán điểm số hầu như không thay đổi, những kẻ phát tán thư rác có thể tải công cụ heuristic phiên bản mới nhất và chạy thử thư rác của họ. Khi chúng đã xác định được các phần trong thư rác của mình tạo ra đã nằm trong tập luật của phần mềm thì chúng có thể thay đổi thông điệp đó để qua mặt các luật. Kết quả là độ chính xác giảm nghiêm trọng, một vài nhà quản trị hệ thống cho biết trong một số trường hợp nó có thể giảm xuống 40%. Độ chính xác sẽ tăng khi bộ lọc được thêm các tập luật mới nhưng cũng sẽ nhanh chóng giảm khi những kẻ phát tán thư rác thích nghi với các tập luật này. Các vấn đề cần quan tâm trong kỹ thuật này [7]: - Vấn đề duy trì: mặc dù nhiều bộ lọc heuristic rất hiệu quả trong việc giảm hơn 85% thư rác, nhưng các tập luật cũng cần phải được cập nhật liên tục do sự tiến hóa của thư rác. Spam Assassin sử dụng khoảng 900 đến 950 luật heuristic khác nhau, và tập luật mới 22 xuất hiện chỉ có thể duy trì độ chính xác trong khoảng thời gian ngắn. Người quản trị hệ thống không có thời gian để theo dõi 900 luật, vì thế trách nhiệm duy trì tập luật được giao cho những nhà duy trì phần mềm, và chúng ta cần phải cập nhật mỗi lần các luật mới được thêm. - Vấn đề gán điểm số: một khuyết điểm nữa của cách tiếp cận heuristic là mỗi luật được gán một điểm số riêng, điểm số xác định độ quan trọng của luật trong việc phân tích thông điệp. Tuy nhiên, đối với mỗi người dùng độ quan trọng của mỗi luật khác nhau, các điểm số chỉ định nghĩa cho phần lớn cá nhân. Khi thư rác tiến hóa, các điểm số khác có thể tốt hơn, do đó cần nhà quản trị hệ thống điều chỉnh lại ngưỡng xác định thư rác của bộ lọc. Nhưng có lẽ một vấn đề mơ hồ hơn là các điểm số đó không thể hiện một điều gì đó cụ thể, chúng chỉ là các con số và chúng không dựa vào một biểu thức toán học hay thống kê nào.  Một số ưu – nhược điểm - Ưu điểm: + Độ chính xác cao hơn các phương pháp lọc thô sơ. + Có thể dễ dàng phân phối các tập luật. - Nhược điểm: + Các tập luật cần được duy trì thường xuyên. + Độ chính xác không tốt bằng các bộ lọc thống kê mới hơn. + Những kẻ phát tán thư rác có thể sử dụng các tập luật để qua mặt bộ lọc. - Phương pháp này phù hợp với các nhà quản trị hệ thống có thể chấp nhận tỉ lệ lỗi lớn hơn 5% với độ chính xác thường xuyên thay đổi. 1.2.6.4. Kĩ thuật học máy Học máy (Machine Learning) là một lĩnh vực nghiên cứu của trí tuệ nhân tạo. Các định nghĩa về học máy: - Là một quá trình nhờ đó một hệ thống cải thiện hiệu quả hoạt động của nó. - Là một quá trình mà một chương trình máy tính cải thiện hiệu suất của nó trong một công việc thông qua kinh nghiệm. - Việc lập trình các máy tính để tối ưu hóa một tiêu chí hiệu suất dựa trên các dữ liệu ví dụ hoặc kinh nghiệm trong quá khứ. 23 Biểu diễn một bài toán học máy: - Học máy là việc cải thiện hiệu quả một công việc thông qua kinh nghiệm: + Một công việc hay nhiệm vụ T. + Đối với các tiêu chí đánh giá hiệu năng P. + Thông qua kinh nghiệm E. - Bài toán học máy lọc thư rác: + T: Dự đoán những thư điện tử nào là thư rác. + P: Phần trăm của các thư điện tử gửi đến được phân loại chính xác. + E: Một tập các thư điện tử mẫu, mỗi thư điện tử được biểu diễn bằng một tập thuộc tính và nhãn lớp (thư thường/thư rác) tương ứng.  Một số ưu – nhược điểm - Ưu điểm: + Khả năng thích nghi cao với sự tiến hóa rất nhanh của thư rác. + Thể hiện tính cá nhân hóa mạnh mẽ do mỗi người dùng có thể có một tập dữ liệu riêng, chính điều này làm cho độ chính xác đối với từng người dùng tăng lên đáng kể. - Nhược điểm: Phải mất một khoảng thời gian đầu huấn luyện cho bộ lọc. Bạn đọc muốn tìm hiểu kĩ hơn các kĩ thuật trên và một số kĩ thuật khác có thể tìm đọc trong tài liệu [7]. 1.2.7. Cơ sở dữ liệu thống kê thư rác Những số liệu về thư rác đã được những chuyên gia, những tổ chức hoạt động tích cực bằng những phương pháp khác nhau đã thống kê, xây dựng các cơ sở dữ liệu về thư rác nhằm mục đích cung cấp thông tin, tạo nguồn dữ liệu thử nghiệm cho việc thiết kế các bộ lọc thư rác thông qua các kĩ thuật phát hiện và ngăn chặn thư rác. 1.2.7.1. Spambase Data Set Cơ sở dữ liệu này bao gồm các số liệu thống kê về cả thư thường và thư rác. Spambase Data Set chứa kết quả của một cuộc tổng hợp của các chuyên gia về các thư rác từ bưu điện và cá nhân nhận được thư rác. Spambase Data Set có chứa các số liệu thống kê về 58 thuộc tính của 4601 thư điện tử. Trong 58 thuộc tính của cơ sở dữ liệu này: 24 - Có 48 thuộc tính đầu “word_freq_” nói về tỉ lệ phần trăm các từ trong thư phù hợp với nội dung của thuộc tính nhắc đến. Ví dụ: word_freq_address là tỉ lệ phần trăm các từ trong thư phù hợp với địa chỉ gửi. - 6 thuộc tính tiếp theo “char_freq_” là tỉ lệ phần trăm các kí tự trong thư phù hợp với kí tự nhắc đến trong thuộc tính. Ví dụ: char_freq_! : chỉ tỉ lệ phần trăm kí tự ‘!’ có trong thư điện tử. - 3 thuộc tính tiếp theo: + Capital_run_length_average: Chiều dài trung bình không bị gián đoạn của chuỗi chữ viết hoa. + Capital_run_length_longest: Chiều dài lớn nhất không bị gián đoạn của chuỗi chữ viết hoa. + Capital_run_length_total: Tổng số lượng chữ in hoa trong email. - Thuộc tính cuối dùng là thuộc tính class (phân lớp) nhận giá trị 0 hoặc 1 tương ứng với một email là thư thường hoặc thư rác. Danh sách 58 thuộc tính trong cơ sở dữ liệu: 1. word_freq_make 2. word_freq_address 3. word_freq_all 4. word_freq_3d 5. word_freq_our 6. word_freq_over 7. word_freq_remove 8. word_freq_internet 9. word_freq_order 10. word_freq_mail 11. word_freq_receive 12. word_freq_will 13. word_freq_people 14. word_freq_report 15. word_freq_addresses 16. word_freq_free 17. word_freq_business 18. word_freq_email 19. word_freq_you 20. word_freq_credit 30. word_freq_labs 31. word_freq_telnet 32. word_freq_857 33. word_freq_data 34. word_freq_415 35. word_freq_85 36. word_freq_technology 37. word_freq_1999 38. word_freq_parts 39. word_freq_pm 40. word_freq_direct 41. word_freq_cs 42. word_freq_meeting 43. word_freq_original 44. word_freq_project 45. word_freq_re 46. word_freq_edu 47. word_freq_table 48. word_freq_conference 49. char_freq_semicolon 25 21. word_freq_your 22. word_freq_font 23. word_freq_000 24. word_freq_money 25. word_freq_hp 26. word_freq_hpl 27. word_freq_george 28. word_freq_650 29. word_freq_lab 50. char_freq_left_paren 51. char_freq_left_bracket (‘(‘,’)’) 52. char_freq_exclamation (!) 53. char_freq_dollar 54. char_freq_pound 55. capital_run_length_average 56. capital_run_length_longest 57. capital_run_length_total 58. class (is spam or no spam) 1.2.7.2. Bộ dữ liệu TREC’07 Bộ dữ liệu TREC'07 lưu trữ 75,419 thư điện tử trong đó có 50,199 spam và 25,220 ham. Là một trong những dữ liệu lớn nhất và uy tín được tài trợ bởi Viện Quốc gia về Tiêu chuẩn và Công nghệ (NIST) và Bộ Quốc phòng Mỹ. Số lượng thư điện tử thu thập được là rất lớn, cung cấp dữ liệu cho việc xây dựng các kĩ thuật lọc thư rác. Ngoài ra, còn nhiều bộ dữ liệu khác như Enron Email Dataset, Smspamcollection, ECML-PKDD, Lingspam,... Vì mục đích thử nghiệm, nên chúng tôi sẽ sử dụng spambase với đặc tính nhỏ gọn, đã chuẩn hóa trong đề tài này. 1.3. Kết luận Ngày nay, hầu hết người dùng Internet đều có hộp thư điện tử cho riêng mình, để có thể sử dụng các dịch vụ giải trí, kinh doanh, … trên Internet. Tuy nhiên nhiều người, tổ chức lại sử dụng thư điện tử để thực hiện những hành vi xấu, đặc biệt là việc phát tán thư rác với nhiều mục đích khác nhau gây ra nhiều tác hại. Do vậy, nhiều phần mềm lọc thư rác được ra đời, giúp hạn chế việc lưu hành của thư rác. Trong chương 2, trình bày nội dung phương pháp sử dụng hệ miễn dịch nhân tạo để xây dựng phần mềm lọc thư rác. 26 Chương 2 TỔNG QUAN VỀ HỆ MIỄN DỊCH SINH HỌC VÀ HỆ MIỄN DỊCH NHÂN TẠO Chương này trình bày tổng quan về hệ miễn dịch sinh học: khái niệm, các tầng bảo vệ của hệ miễn dịch sinh học; tổng quan về hệ miễn dịch nhân tạo: khái niệm, mô hình và các thuật toán trong hệ miễn dịch nhân tạo. Phương pháp sinh bộ dò sử dụng bảng băm. 2.1. Tổng quan về hệ miễn dịch sinh học 2.1.1. Khái niệm Hệ miễn dịch sinh học là tập hợp tất cả các cơ chế sinh học giúp cho một cơ thể đa bào giữ được sự liên kết giữa các tế bào và các mô, đảm bảo sự toàn vẹn của cơ thể bằng cách loại bỏ những thành phần bị hư hỏng cũng như các chất và sinh vật xâm hại. Chức năng bảo vệ cơ thể bao gồm hai loại cơ chế miễn dịch, lần lượt xuất hiện trong quá trình tiến hóa của các loài và liên hệ chặt chẽ với nhau ở các động vật bậc cao [2]. 2.1.2. Các tầng bảo vệ của hệ miễn dịch sinh học Hình 2.2. Các tầng hệ miễn dịch sinh học 27 HMD sinh học có thể coi như một cấu trúc phân tầng với cơ chế điều khiển và bảo vệ ở các mức: - Mức vật lý (Physical Barriers) gồm lớp DNA và màng nhầy nằm ở các tuyến hô hấp và tiêu hóa chứa đại thực bào (Macrophage) và kháng thể ngăn không cho những chất lạ xâm nhập vào cơ thể. - Mức sinh hóa (Biochemical Barriers): Các chất lưu như nước bọt, mồ hôi, nước mắt chứa những enzym có thể loại bỏ kháng nguyên. Các axit trong vùng DNA cùng với nhiệt độ của cơ thể cũng ngăn cản sự sống và kháng sinh của kháng nguyên. Với cấu trúc phân tầng và bảo vệ ở các mức vật lý và sinh hóa, trong cơ thể sinh học các loài vật tự bảo vệ cơ thể bằng hai dạng HMD: HMD bẩm sinh và HMD thích nghi. - HMD bẩm sinh: Là HMD mà cơ thể sinh vật tự hình thành khi sinh ra và trong suốt quá trình sinh trưởng, phát triển của cơ thể, tuy nhiên HMD bẩm sinh còn có hạn chế đặc biệt là việc HMD bẩm sinh không có cơ chế ghi nhớ, hoạt động của HMD bẩm sinh đối với các vi sinh vật xâm nhập vào cơ thể lần thứ hai không có gì khác so với lần thứ nhất. Hoạt động dựa vào bạch cầu huyết là đại thực bào và bạch cầu trung tính (có chức năng nuốt và tiêu diệt các vi trùng, tạo ra một cơ chế bảo vệ quan trọng chống lại các bệnh truyền nhiễm). Những bạch huyết này có các cơ quan thụ cảm trên bề mặt, chúng có thể nhận diện và bám vào các phần tử gây bệnh. - HMD thích nghi: Là HMD được cơ thể sinh vật hình thành, phát triển, tái tạo trong quá trình phát triển của cơ thể và trong quá trình tác động với môi trường sống. HMD thích nghi có khả năng ghi nhớ các loại vi sinh vật lạ xâm nhập nên việc miễn dịch, bảo vệ cơ thể sinh vật tốt hơn so với HMD bẩm sinh. Hoạt động với các thành phần chính là các lymphô bào (Lymphocyte – là một loại bạch cầu) bao gồm B - cell và T - cell. Các B - cell và T - cell trên bề mặt của chúng có những cơ quan thụ cảm chuyên dụng cho một loại kháng thể nào đó. Khi kháng nguyên xâm nhập vào cơ thể các cơ quan thụ cảm trên bề mặt của lymphô bào sẽ kết hợp với kháng nguyên làm cho các lymphô bào này được kích hoạt và thực hiện quá trình nhân rộng, đột biến sau đó tạo ra những kháng thể thích hợp có khả năng nhận diện và loại bỏ kháng nguyên. Một số lymphô bào sẽ trở thành tế bào có khả năng ghi nhớ lưu thông trong cơ thể. Khi có loại kháng nguyên tương tự lây nhiễm, thì HMD thích nghi có thể nhanh 28 chóng phát hiện và loại bỏ chúng. Khả năng này giúp cho cơ thể không mắc lại những bệnh cũ, do đó đáp ứng miễn dịch thích nghi cho phép HMD tự hoàn thiện sau mỗi lần đụng độ với kháng nguyên. Hình 2.3. Một số bộ phận của HMD sinh học Trong quá trình chọn lọc các tế bào B - cell và T - cell, HMD thích nghi không chỉ phải chọn những tế bào có khả năng nhận biết những tế bào lạ (antigen hay nonself), mà nó còn phải loại bỏ những tế bào nhận biết được những tế bào do cơ thể tạo ra (self - antigen hay self), tương ứng với hai khả năng trên là quá trình chọn lọc tích cực và quá trình chọn lọc tiêu cực. - Chọn lọc tích cực: Phép chọn lọc tích cực đối với các Lymphô bào (T - cell và B cell) nhằm mục đích tránh sự xuất hiện của các Lymphô bào không có ích. Những Lymphô bào mà cơ quan thụ cảm của chúng không có khả năng nhận diện được kháng nguyên. Kết quả cuối cùng là những Lymphô bào có khả năng nhận diện được kháng nguyên. - Chọn lọc tiêu cực: Phép chọn lọc tiêu cực của các lymphô bào nhằm mục đích loại bỏ những lymphô bào mà cơ quan thụ cảm của nó nhận diện được các tế bào do cơ thể tạo ra và nó có thể tiêu diệt những tế bào này. HMD thích nghi được nghiên cứu áp dụng nhiều trong xây dựng HMD nhân tạo. 29 2.2. Tổng quan về hệ miễn dịch nhân tạo 2.2.1. Khái niệm hệ miễn dịch nhân tạo Hệ miễn dịch nhân tạo là một hệ thống thích nghi lấy ý tưởng của học thuyết miễn dịch và những chức năng, nguyên tắc, mô hình miễn dịch quan sát được, áp dụng giải các bài toán thực tế. 2.2.2. Mô hình hệ miễn dịch nhân tạo Cấu trúc phân tầng của hệ miễn dịch nhân tạo Lời giải Các thuật toán miễn dịch Các phương pháp đánh giá độ tương thích AIS Biểu diễn các thành phần Lĩnh vực ứng dụng Hình 2.4. Cấu trúc phân tầng của HMD nhân tạo - Tầng lĩnh vực ứng dụng: lĩnh vực ứng dụng khác nhau sẽ quyết định những thành phần và cách thức biểu diễn khác nhau dẫn tới các thao tác trên các thành phần cũng khác nhau. - Tầng biểu diễn các thành phần: Trong HMD nhân tạo phải biểu diễn được hai thành phần quan trọng là kháng thể và kháng nguyên. - Tầng các phương pháp đánh giá độ thích hợp: sử dụng nhiều phương pháp khác nhau như khoảng cách Hamming, khoảng cách Euclid hoặc khoảng cách Mahatan. - Tầng các thuật toán miễn dịch: Có thể sử dụng các thuật toán miễn dịch như thuật toán chọn lọc tích cực, NSA, thuật toán Clôn, thuật toán AiNet, thuật toán RAIN để điều chỉnh tính động của hệ HMD nhân tạo. 30 - Tầng lời giải cho bài toán: Lời giải cho bài toán sẽ được cập nhật lại sau khi một quần thể mới được tạo và đưa ra kết quả cuối cùng khi đạt đến điều kiện kết thúc nào đó ví dụ như sau một số bước lặp nhất định. - Nhận dạng mẫu gần đúng trong hệ miễn dịch nhân tạo: Trong hệ miễn dịch ở người thì ràng buộc sinh học giữa kháng thể và kháng nguyên là gần đúng. Nếu áp dụng vào hệ thống máy tính có thể coi các gói dữ liệu là tác nhân gây bệnh, chúng được phân đoạn cụ thể. Việc sử dụng tập dữ liệu để phù hợp với các phân đoạn trong gói dữ liệu được gọi là mẫu (pattern). Bằng cách sử dụng mối quan hệ trưởng thành tương tự với hệ miễn dịch tự nhiên, mẫu có thể nhận ra các phân đoạn tác nhân gây bệnh trong các gói dữ liệu, khác biệt là phải kiểm soát ngưỡng quan hệ. Nếu chúng ta có bộ điều khiển ngưỡng thích ứng thì tình hình an ninh của hệ thống máy tính được cải thiện đáng kể. 2.2.3. Các thuật toán trong hệ miễn dịch nhân tạo S là tập Self hay còn gọi là tập tế bào cần bảo vệ. A là quần thể có giá trị. 2.2.3.1. Thuật toán chọn lọc tích cực (Positive Selection Algorithms - PSA) Ý tưởng của thuật toán khá đơn giản, đó là chọn lọc những T - cell có thể nhận diện các peptide (một phần của kháng nguyên xâm nhập vào cơ thể), mà peptide này đã kết hợp với MHC (Major Histocompatibility Complex - phức hợp các phần tử có nhiệm vụ trình diện peptide kháng nguyên cho T - cell) để tạo thành MHC/peptide. Giả thiết có tập MHC/ peptide, kí hiệu là tập S, các cơ quan thụ cảm T - cell sẽ phải được kiểm tra về khả năng kết hợp với các phần tử thuộc tập S này. Nếu một T - cell không nhận diện được bất kỳ phần tử nào, nó sẽ bị loại bỏ. Trái lại, nó được chọn như một tế bào có khả năng miễn dịch và bổ sung vào quần thể có giá trị A. Sơ đồ sau minh họa cho thuật toán chọn lọc tích cực: 31 S pP nhận diện được sS Quần thể tiềm năng P Loại bỏ Sai Đúng Cho vào quần thể có giá trị A Hình 2.5. Sơ đồ thuật toán chọn lọc tích cực Các bước thực hiện thuật toán Bước 1. Khởi tạo: Sản sinh một quần thể tiềm năng P những T - cell chưa trưởng thành. Giả thiết tất cả các phần tử được biểu diễn như các xâu nhị phân có cùng độ dài ℓ bit (ℓ >0). Bước 2. Đánh giá độ thích hợp: Xác định độ thích hợp của tất cả phần tử trong quần thể P với tất cả phần tử trong tập Self S. Bước 3. Tạo một quần thể có giá trị: Nếu độ thích hợp của một phần tử trong P với một phần tử trong S lớn hơn hoặc bằng một ngưỡng tương tác chéo nào đó thì T - cell có khả năng nhận diện kháng nguyên, sẽ được chọn vào quần thể có giá trị A trái lại T - cell bị loại bỏ. 2.2.3.2. Thuật toán chọn lọc tiêu cực (Negative Selection Algorithms - NSA) NSA của Forrest và các đồng nghiệp khá đơn giản: Giả sử đã có một tập SelfPeptide để tạo thành phức chất MHC-Self peptide, các cơ quan thụ cảm T - cell nếu nhận diện được một self - peptide thì sẽ bị loại bỏ, trái lại nó sẽ được chọn như một tế bào có khả năng miễn dịch và bổ sung vào quần thể có giá trị A. Sơ đồ sau minh họa cho thuật toán chọn lọc tiêu cực: 32 S pP nhận diện được sS Quần thể tiềm năng P Loại bỏ Đúng Sai Cho vào quần thể có giá trị A Hình 2.6. Sơ đồ thuật toán chọn lọc tiêu cực Các bước thực hiện thuật toán: Bước 1. Khởi tạo: Sản sinh một quần thể tiềm năng P những T - cell chưa trưởng thành. Giả thiết tất cả các phần tử (các cơ quan thụ cảm và các self-peptide) được biểu diễn bằng một xâu nhị phân độ dài ℓ bit (ℓ >0). Bước 2. Đánh giá độ thích hợp: Xác định độ thích hợp của tất cả T - cell trong P với mọi phần tử của tập Self S. Bước 3. Tạo một quần thể có giá trị: Nếu độ thích hợp của một T - cell chưa trưởng thành với ít nhất một phần tử self - peptide lớn hơn hoặc bằng một ngưỡng tương tác chéo nào đó, thì T - cell nhận diện được self-peptide này và bị loại bỏ, trái lại T - cell được bổ sung vào quần thể có giá trị A. 2.2.3.3. Thuật toán Clôn (Clonal Selection Algorithm – CLONALG) Các bước thực hiện của thuật toán: Bước 1. Khởi tạo: Tạo ngẫu nhiên quần thể P. Bước 2. Trình diện kháng nguyên, với mỗi kháng nguyên thực hiện: 2.1. Đánh giá độ thích hợp: Xác định độ thích hợp của mỗi phần tử trong P. 33 2.2. Tăng độ thích hợp: Chọn n phần tử tốt nhất từ P và nhân rộng + đột biến theo tỉ lệ nghịch với độ thích hợp của chúng sau đó thêm các phần tử mới vào P. Bước 3. Tính siêu động: 3.1. Chọn các phần tử tốt nhất từ P đưa vào tập ghi nhớ M. 3.2. Thay thế n phần tử có độ thích hợp thấp bằng một số phần tử mới được sinh ra ngẫu nhiên. Bước 4. Lặp: lặp lại bước 2 và 3 cho tới khi gặp điều kiện dừng. Trong thuật toán chọn lọc tích cực, việc bảo vệ tập Self S thực hiện bằng cách kiểm tra các cơ quan thụ cảm T - cell về khả năng kết hợp với các phần tử thuộc tập S. Nếu một T - cell không nhận diện được bất kỳ phần tử nào, nó sẽ bị loại bỏ. Trái lại, nó được chọn như một tế bào có khả năng miễn dịch và bổ sung vào quần thể có giá trị A. Với ý tưởng đơn giản, các bước thực hiện không quá phức tạp phù hợp với thời gian cũng như cơ sở dữ liệu sử dụng trong nghiên cứu xây dựng chương trình. Cho nên trong nội dung đề tài sẽ sử dụng thuật toán NSA để xây dựng chương trình lọc thư rác. Bạn đọc quan tâm đến các thuật toán còn lại có thể tìm đọc tài liệu [10] và các tài liệu khác về hệ miễn dịch nhân tạo. 2.2.4. Sinh tập bộ dò Để áp dụng hệ miễn dịch nhân tạo hay cụ thể phép chọn lọc tiêu cực xây dựng chương trình lọc thư rác, cần tạo ra tập bộ dò từ cơ sở dữ liệu mẫu đã có. Những thư điện tử thông thường trong cơ sở dữ liệu được chuyển đổi sang các xâu nhị phân độ dài ℓ bit, từ đó việc chọn lọc được tiến hành với các xâu nhị phân. Điều này nảy sinh vấn đề so khớp giữa xâu nhị phân của phần tử trong tập bộ dò với phần tử cần chọn lọc. Vấn đề so khớp bạn đọc quan tâm có thể tìm hiểu trong tài liệu [3]. Có nhiều thuật toán sinh tập bộ dò trong hệ miễn dịch nhân tạo, như: sinh tập bộ dò kết hợp chọn lọc âm tính và chọn lọc dương tính dựa trên r-chunk,…; sinh tập bộ dò sử dụng bảng băm, sinh tập bộ dò theo mô hình tiền tố dựa trên r-contiguous. Trong luận văn sẽ sử dụng phương pháp sinh tập bộ dò sử dụng bảng băm. Sau đây trình bày quá trình xây dựng. 34 Việc so khớp hai xâu bất kì thực chất là so khớp lần lượt r vị trí liên tiếp (r  ℓ). Do vậy, chắc chắn trong quá trình so khớp ta phải nhiều lần so khớp các đoạn có độ dài r giống nhau, công việc này làm tốn nhiều thời gian tính toán. Để khắc phục nhược điểm đó, trong tập các xâu lưu trong S ta có thể loại những xâu trùng nhau để tăng hiệu suất sử dụng bộ nhớ. Tuy nhiên công việc này lại đòi hỏi mất thêm thời gian tính toán. Phương pháp tốt hơn cho công việc này là sử dụng bảng băm. Phương pháp bảng băm Tư tưởng: Ta sử dụng bảng A kiểu Boolean có n hàng và m cột với: n = 2r và m = ℓ – r + 1 A 0 1 …. n-1 1 … M Trong đó: + A[i, j] = 1: đoạn bit từ bit j đến bit thứ j + r – 1 của các s  S có giá trị là i trong hệ đếm cơ số 10. + A[i, j] = 0: trong trường hợp ngược lại. - Bảng A được xây dựng bằng cách đọc lần lượt các đoạn r bit liên tiếp của các xâu trong S rồi tính giá trị thập phân của đoạn bit đó và gán A[i, j] tương ứng có giá trị bằng 1. Ví dụ: Cho tập S = {10100; 00110; 10101; 01001; 11010} Ta có ℓ = 5 và chọn r = 3. Vì vậy: Số dòng của bảng A: n = 2r = 23 = 8 Số cột của bảng A: m = ℓ – r + 1 = 5 – 3 + 1 = 3 - Ta xây dựng được bảng A như sau: *) Xét xâu 1: s1 = 10100 + Với j = 1: ta có đoạn bit 101 (101)2 = (5)10 Vậy A[5, 1] = 1 + Với j = 2: ta có đoạn bit 010 35 A 0 1 2 3 4 5 6 7 1 0 1 1 0 0 1 1 0 2 0 0 1 1 1 1 0 0 3 0 1 1 0 1 1 1 0 (010)2 = (2)10 Vậy A[2, 2] = 1 + Với j = 3: ta có đoạn bit 100 (100)2 = (4)10 Vậy A[4, 3] = 1 *) Xét xâu 2: s2 = 00110 + Với j = 1: ta được đoạn bit 001 (001)2 = (1)10 Vậy A[1, 1] = 1 + Với j = 2: ta được đoạn bit 011 (011)2 = (3)10 Vậy A[3, 2] = 1 +Với j = 3: ta có đoạn bit 110 (110)2 = (6)10 Vậy A[6, 3] = 1 *) Xét xâu 3: s3 = 10101 + Với j = 1: ta có đoạn bit 101 (101)2 = (5)10 Ta thấy A[5, 1] đã nhận giá trị là 1, do vậy đoạn bit 101 ở vị trí thứ nhất đã trùng với đoạn bit ở vị trí thứ nhất của một xâu trước đó. Vậy nên ta đã loại được các bit giống nhau. + Với j = 2: ta được đoạn bit 010 (010)2 = (2)10 Ta thấy A[2, 2] đã nhận giá trị là 1, do vậy đoạn bit 010 ở vị trí thứ hai đã trùng với đoạn bit ở vị trí thứ hai của một xâu trước đó. Vậy nên ta đã loại được các bit giống nhau. + Với j = 3: ta được đoạn bit 101 (101)2 = (5)10 Vậy A[5, 3] = 1. Thực hiện tương tự với hai xâu còn lại ta sẽ thu được kết quả là bảng A ở trên.  Nhận xét phương pháp sinh tập bộ dò sử dụng bảng băm - Kích thước bảng A phụ thuộc vào độ lớn của hai tham số ℓ và r. Với các giá trị tham số hợp lý thì hoàn toàn có thể lưu bảng A ở bộ nhớ trong. - Các xâu bit có đoạn r bit tương ứng giống nhau sẽ tự động được loại bỏ vì ta chỉ cần biết đoạn bit đó nằm ở vị trí nào và có giá trị trong hệ 10 là bao nhiêu, ta lưu những đoạn trùng lặp nên tối ưu về bộ nhớ. 36 - Vì A là bảng hai chiều, được lưu trữ trên bộ nhớ trong nên việc truy cập đến phần tử A[i, j] chỉ mất thời gian là O(1). Dù dữ liệu bảo vệ có thay đổi rất lớn đi nữa thì ta vẫn chỉ cần 1 bảng A có kích thước cố định 2r dòng, (ℓ - r + 1) cột. - Độ phức tạp của thuật toán: 2r. ℓ.|D| (D là tập bộ dò). 2.3. Kết luận Hệ miễn dịch nhân tạo là phương pháp mới lấy ý tưởng của hệ miễn dịch sinh học, nó gồm các thuật toán khác nhau. Thuật toán chọn lọc âm tính của hệ miễn dịch nhân tạo có thể sử dụng để xây dựng bộ lọc thư rác. Kỹ thuật dùng bảng là một cách tiếp cận đơn giản trong cài đặt thuật toán chọn lọc âm tính. 37 Chương 3 XÂY DỰNG CHƯƠNG TRÌNH LỌC THƯ RÁC Trong chương này, trình bày các quá trình xây dựng chương trình; phân tích kết quả đạt được; so sánh kết quả với các phương pháp khác sử dụng phần mềm Weka. 3.1. Giới thiệu Như đã trình bày ở chương 1. Để nghiên cứu, xây dựng bộ lọc thư rác người ta thường sử dụng các cơ sở dữ liệu đã được thống kê sẵn. Trong bài toán lọc thư rác của luận văn sẽ sử dụng cơ sở dữ liệu Spambase Data Set với số liệu thống kê của 4601 thư điện tử, trong đó có 1813 thư rác và 2788 thư thường. Cơ sở dữ liệu này thống kê khá đầy đủ và chính xác, được các chuyên gia hàng đầu nghiên cứu, sử dụng. Hơn nữa, nó phù hợp với thuật toán áp dụng cũng như thời gian thực hiện luận văn. Vì vậy, tôi sử dụng cơ sở dữ liệu này để thử nghiệm chương trình trong luận văn. 3.1.1. Bài toán lọc thư rác Input: - Số nguyên dương r  [7,10], ℓ. - Cơ sở dữ liệu Spambase Data Set (lưu trong file *.txt) Output: Kết quả về sự phát hiện thư rác hay thư thường thể hiện qua 10 lần thử nghiệm với 3 số liệu thống kê trung bình: Acc (Độ chính xác tổng thể), DR (Tỉ lệ phát hiện), FPR (lỗi phát hiện sai). Chương trình lấy giá trị ℓ chính là độ dài các xâu nhị phân được chuyển đổi từ các số liệu thống kê 57 thuộc tính của từng email (trừ thuộc tính cuối cùng phân biệt thư rác và thư thường). Giá trị của r được thử nghiệm lần lượt với các giá trị trong đoạn [7,10]. Việc thử nghiệm chương trình được thực hiện theo quy tắc: Tenfold cross validation, thực hiện như sau: - Bước 1: Chia các email thường trong file nguồn (HAM.txt) ngẫu nhiên thành 10 phần ta được 10 file email thường. - Bước 2: Đọc số liệu trong 9 file email thường để huấn luyện. 38 - Bước 3: Tiến hành kiểm tra (testing), thực hiện với 1 file email thường còn lại và tất cả các email spam. Số lượng các email thường và email rác mà chương trình phát hiện được sẽ được tính toán quy đổi ra 3 số liệu: DR = TP/(TP + FN) FPR = FP/(TN + FP) Acc = (TP + TN) /(TP + TN + FP + FN) Trong đó: + TP : Số lượng email spam kết luận đúng. + TN: Số lượng email thường kết luận đúng. + FP : Số lượng email thường kết luận sai thành spam. + FN: Số lượng email spam kết luận sai thành email thường. Chương trình thực hiện lặp bước hai và ba mười lần, mỗi lần sẽ tính toán và cho ra 3 số liệu trên. Sau đó lấy giá trị trung bình mười lần tính toán. 3.1.2. Xây dựng chương trình 3.1.2.1. Môi trường và công cụ - Môi trường: Sử dụng hệ điều hành Windows 7. - Công cụ: Chương trình được xây dựng bằng ngôn ngữ lập trình C# nằm trong bộ Visual Studio 2008 và chạy trên nền .NetFramework. 39 3.1.2.2. Giao diện chương trình Hình 3.7. Giao diện chương trình Chức năng của các đối tượng trong giao diện: - Nút Open File Ham…: Mở file thư thường (Ham). - Nút Open File Spam…: Mở file thư rác (Spam). - Hộp Select a value r: Đặt giá trị cho r. - Nút Split File: Chia file nguồn của chương trình (file thư thường – HAM.txt, file thư spam – SPAM.txt). - Nút Test: + Tạo tập bộ dò từ các file thư thường. + Cho file thư thường còn lại (không sử dụng để tạo bộ dò) và file thư rác qua tập bộ dò thực hiện so khớp. + Tính toán và kết luận về khả năng phát hiện của tập bộ dò, hiển thị kết quả tại vùng Results. 40 - Nút Exit: Thoát khỏi chương trình. 3.2. Các quá trình thực hiện chương trình 3.2.1. Quá trình chia file nguồn (Split file) Input: file chứa số liệu thống kê 58 thuộc tính của thư thường - HAM.txt Output: 10 file thư thường: HSub 1.txt, HSub 2.txt, …, HSub 10.txt Quá trình thực hiện Trong cơ sở dữ liệu Spambase Data Set sử dụng có số liệu thống kê từng thuộc tính của 4601 thư điện tử ghi trên từng dòng. Trong đó, có 1813 thư rác và 2788 thư thường, ta tạo 2 file HAM.txt chứa 2788 thư thường và SPAM.txt chứa 1813 thư rác. Sử dụng nút Open File Ham trên giao diện để tìm đường dẫn tới file HAM.txt Quá trình chia như sau: - Kiểm tra trong thư mục bin\Debug đã có các file HSub i.txt (i=1,…,10) chưa, nếu chưa có thì tạo các file này. - Lần lượt đọc từng dòng trong file HAM.txt, sinh ngẫu nhiên một số nn  [1,10] ghi dòng dữ liệu trên vào file: HSub nn.txt. - Đóng các file vừa tạo. 3.2.2. Quá trình huấn luyện – Tạo tập bộ dò (Training) Input: Chọn 9 trong 10 file: HSub i.txt (i=1,…,10). Output: Tập bộ dò lưu trong bảng băm kích thước: 2r x (ℓ-r+1). Quá trình thực hiện Quá trình huấn luyện như sau: - Đọc lần lượt các dòng của 9 file đầu vào, từ đó tạo mảng chuỗi lưu trữ giá trị của 57 thuộc tính (trừ thuộc tính 58). - Thống kê lại các chuỗi thuộc tính sao cho không còn các giá trị trùng nhau. - Chuyển đổi theo quy tắc các dãy thuộc tính sang dạng các dãy nhị phân. - Mỗi thuộc tính của từng email sẽ ứng với một dãy nhị phân, kết hợp các dãy nhị phân của 57 thuộc tính lại ta được một dãy nhị phân của từng email và giá trị của các dòng dữ liệu trong các file khi chuyển sang dạng nhị phân sẽ có độ dài như nhau. 41 - Duyệt ℓ - r + 1 dãy con độ dài r của từng dãy nhị phân, áp dụng cách tính toán của phương pháp tạo tập bộ dò bằng bảng băm để xây dựng bảng A. Đoạn chương trình tạo bảng A …………… string[] s = new string[5000]; for (lh = 1; lh <= somail; lh++) { s = mail[lh].Split(','); int i1 = 0, cc = 0, k; string chuoiNP = ""; while (i1 < s.Length - 1) { for (k = cc; k <= dau[i1]; k++) { if (s[i1].CompareTo(A[k + 1]) == 0) { chuoiNP += B[k + 1]; break; } } cc = dau[i1]; i1++; } l = chuoiNP.Length; string xc = ""; int i2, i3, i4, tong; for (i2 = 0; i2 <= l - r; i2++) { xc = chuoiNP.Substring(i2, r); tong = 0; 42 i3 = xc.Length - 1; i4 = 0; while (i4 <= i3) { if (xc[i4] == '1') tong += (int)Math.Pow(2, i3 - i4); i4++; } if (bangbam[tong, i2 + 1] == 0) bangbam[tong, i2 + 1] = 1; } } 3.2.3. Quá trình kiểm tra - phân loại (testing) Input: Bảng băm đã tạo; File thư thường còn lại và file thư rác SPAM.txt Output: Các số liệu: Acc, DR, FPR. Quá trình thực hiện Thiết lập các thông số sau có giá trị 0: TN, FP, TP, FN, Acc, DR, FPR. *) Kiểm tra khả năng phát hiện thư thường - Đọc lần lượt từng dòng dữ liệu trong file thư thường còn lại, ta dựng dãy nhị phân dựa vào mảng chứa các dãy nhị phân đã tạo được ở quá trình huấn luyện cho từng dòng dữ liệu. Từ đó ta có được dãy nhị phân của từng email. - Chuyển ℓ - r + 1 dãy nhị phân con độ dài r của từng email từ hệ nhị phân sang hệ cơ số 10 lưu bằng số nguyên k. + Nếu xuất hiện bất kì một trường hợp A[k, j]= 0 (các đoạn bit từ j đến bit thứ j + r - 1 với j=1,…, ℓ - r + 1) thì tăng giá trị FP thêm 1 (kết luận email đang kiểm tra là spam). + Nếu toàn bộ A[k, j]= 1 thì tăng giá trị TN thêm 1 (kết luận email đang kiểm tra là thư thường). *) Kiểm tra khả năng phát hiện thư rác 43 - Đọc lần lượt từng dòng dữ liệu trong file thư spam: SPAM.txt, ta dựng dãy nhị phân dựa vào mảng chứa các dãy nhị phân đã tạo được ở quá trình huấn luyện cho từng dòng dữ liệu. Từ đó ta có được dãy nhị phân của từng email. - Chuyển ℓ - r + 1 dãy nhị phân con độ dài r của từng email từ hệ nhị phân sang hệ cơ số 10 lưu bằng số nguyên k. + Nếu xuất hiện bất kì một trường hợp A[k, j]= 0 (các đoạn bit từ j đến bit thứ j + r - 1 với j=1,…, ℓ - r + 1) thì tăng giá trị TP thêm 1 (kết luận email đang kiểm tra là spam). + Nếu toàn bộ A[k, j]= 1 thì tăng giá trị FN thêm 1 (kết luận email đang kiểm tra là thư thường). *) Sau 2 quá trình kiểm tra trên, tính toán 3 thông số: DR = TP/(TP + FN) FPR = FP/(TN + FP) Acc = (TP + TN) /(TP + TN + FP + FN) Kết luận Thực hiện quá trình kiểm tra trên 10 lần (tương ứng mỗi lần sử dụng 1 file thư thường HSub i.txt làm file test, i=1,…,10). Kết thúc quá trình, đưa ra kết quả khi lấy giá trị trung bình 10 lần của 3 thông số: DR, FPR, Acc. Đoạn mã lệnh thực hiện { ………………………….. // Kiểm tra file ham thứ ii; StreamReader ham = new StreamReader("HSub " + ii.ToString() + ".txt"); string chuoikt, np; string[] lam = new string[60]; while ((chuoikt = ham.ReadLine()) != null) { lam = chuoikt.Split(','); int i5 = 0, i6 = 1, d = 0; np = ""; 44 bool ok; while (i5 < lam.Length - 1) { ok = true; while (i6 <= dau[i5]) { if (lam[i5] == A[i6]) { np = np + B[i6]; ok = false; break; } i6++; } if (ok) { Random ngaunhien = new Random(); int h = ngaunhien.Next(d + 1, dau[i5]); np += B[h]; } d = dau[i5]; i6 = dau[i5] + 1; i5++; } int i2, i3, i4, tong; string xc; l = np.Length; bool kt = true; //Là thư HAM for (i2 = 0; i2 <= l - r; i2++) { 45 xc = np.Substring(i2, r); tong = 0; i3 = xc.Length - 1; i4 = 0; while (i4 <= i3) { if (xc[i4] == '1') tong += (int)Math.Pow(2, i3 - i4); i4++; } if (bangbam[tong, i2 + 1] == 0) { kt = false; break; } } if (kt) TN++; else FP++; } ham.Close(); // Kiểm tra file Spam; StreamReader spam = new StreamReader("SPAM.txt"); while ((chuoikt = spam.ReadLine()) != null) { lam = chuoikt.Split(','); int i5 = 0, i6 = 1, d = 0; np = ""; bool ok; while (i5 < lam.Length - 1) { ok = true; while (i6 <= dau[i5]) 46 { if (lam[i5] == A[i6]) { np = np + B[i6]; ok = false; break; } i6++; } if (ok) { Random ngaunhien = new Random(); int h = ngaunhien.Next(d + 1, dau[i5]); np += B[h]; } d = dau[i5]; i6 = dau[i5] + 1; i5++; } bool kt = true; int i2, i3, i4, tong; string xc; l = np.Length; for (i2 = 0; i2 <= l - r; i2++) { xc = np.Substring(i2, r); tong = 0; i3 = xc.Length - 1; i4 = 0; while (i4 <= i3) 47 { if (xc[i4] == '1') tong += (int)Math.Pow(2, i3 - i4); i4++; } if (bangbam[tong, i2 + 1] == 0) { kt = false; break; } } if (kt) FN++; else TP++; } spam.Close(); } //In các thông số sau khi thực hiện 10 lần lặp TP = TP / 10; TN = TN / 10; FN = FN / 10; FP = FP / 10; DR = (float)TP / ((float)TP + (float)FN); FPR = (float)FP / ((float)TN + (float)FP); Acc = ((float)TP + (float)TN) / ((float)TP + (float)TN + (float)FP + (float)FN); listBox1.Items.Add("FN = " + FN + "; TP = " + TP + "; FP = " + FP + "; TN = " + TN); listBox1.Items.Add("DR = " + DR* 100 + "; FPR = " + FPR * 100 + "; Acc = " + Acc * 100); …………………… 48 3.3. Phân tích kết quả 3.3.1. Khả năng phát hiện thư thường và thư rác Khả năng phát hiện của chương trình phụ thuộc vào độ chặt chẽ của bảng băm A, bảng A có mức độ chặt chẽ cao hay thấp còn tùy thuộc vào việc ta đặt giá trị của r. Giá trị r càng cao mức độ kiểm tra (so khớp) càng chặt chẽ và ngược lại. Trong chương trình, sẽ thử nghiệm giá trị của r trong đoạn [7,10], trong đoạn giá trị này bộ dò cho những kết quả tốt nhất. r DR (%) FPR (%) Acc (%) Thời gian (s) 7 75.50 29.62 74.82 24.7 8 82.34 42.52 79.15 25.59 9 87.77 54.41 82.15 24.95 10 91.81 60.51 84.84 26.57 Bảng 3.1. Một số kết quả Việc lựa chọn 9/10 file thư thường để huấn luyện và 1 file thư thường còn lại đưa vào quá trình test cùng với file các thư rác được lựa chọn ngẫu nhiên, nên kết quả ở các lần chạy sẽ có sự khác nhau, tuy nhiên không chênh lệch quá lớn cả 3 số liệu DR, FPR, Acc và thời gian chạy. Với kết quả trên ta có nhận xét: - Về khả năng phát hiện: Với r càng lớn thì kích thước bộ dò (bảng A) càng lớn, đồng nghĩa với việc mức độ kiểm tra, so khớp sẽ chặt chẽ hơn. Do vậy, r càng lớn xác suất thư thường bị phân loại thành thư rác càng lớn. Và ngược lại, r càng nhỏ thì mức độ kiểm tra sẽ ít chặt chẽ hơn, dẫn đến nhiều thư rác được phân loại là thư thường. Những thư thường mang tính quan trọng hơn rất nhiều, do vậy khi phân loại thư thường và thư rác, cần lựa chọn giá trị của r hợp lí để các thư thường ít bị phân loại thành thư rác. 49 - Về thời gian chạy chương trình: Thời gian chạy chương trình tùy thuộc vào kích thước của bảng băm là chủ yếu, với giá trị r lớn thì bảng băm có kích thước lớn hơn nên việc tạo bảng cũng lâu hơn. 3.3.2. So sánh kết quả với một số thuật toán khác Để đánh giá kết quả của chương trình, tôi sử dụng phần mềm WEKA, xem xét sự chênh lệch kết quả so với một số thuật toán trong WEKA. 3.3.3.1. Phần mềm WEKA WEKA (Waikato Environment for Knowledge Analysis) là phần mềm khai thác dữ liệu thuộc dự án của trường đại học Waikato, New Zealand lần đầu tiên năm 1993. Mục tiêu để xây dựng công cụ hiện đại nhằm phát triển các kĩ thuật máy học và áp dụng chúng vào các bài toán khai thác dữ liệu trong thực tế, sử dụng trong các bài giảng về các thuật giải Machine Learning ở nhiều trường đại học lớn trên thế giới. WEKA được viết bằng ngôn ngữ Java JDK, cấu trúc gồm hơn 600 lớp tổ chức thành 10 packages. Với các chức năng chính: - Khảo sát dữ liệu: Tiền xử lí dữ liệu, phân lớp, gom nhóm dữ liệu, khai thác luật kết hợp. - Thực nghiệm mô hình: cung cấp phương tiện để kiểm chứng đánh giá các mô hình học. - Biểu diễn trực quan dữ liệu bằng nhiều dạng đồ thị. Trong đề tài, chủ yếu sử dụng phần mềm này để khảo sát dữ liệu nhằm so sánh với chương trình xây dựng trong đề tài. Giao diện của phần mềm WEKA 50 Hình 3.8. Giao diện phần mềm Weka Như đã nói, trong luận văn chỉ sử dụng chức năng khảo sát phân loại dữ liệu của phần mềm để phân loại thư rác và thư thường của cơ sở dữ liệu Spambase. Từ giao diện chính của WEKA thực hiện các bước: - Bước 1. Chọn nút tác vụ Explorer, giao diện Weka Explorer xuất hiện. Hình 9.3. Giao diện Weka Explorer - Bước 2. Tại thẻ Preprocess chọn nút Open file… để nạp tệp cơ sở dữ liệu. Thông thường cơ sở dữ liệu lưu dạng *.arff hoặc *.csv 51 Hình 3.10. Giao diện Weka Explorer sau khi mở nạp Spambase WEKA sẽ thống kê và đưa ra các thuộc tính có trong cơ sở dữ liệu hiển thị trên giao diện, tại hộp Attributes nhấn nút All để chọn tất cả các thuộc tính. - Bước 3. Chọn thẻ Classify để chọn sử dụng các phương pháp phân loại. 52 Hình 3.11. Phân loại dữ liệu - Bước 4. Chọn hàm, luật,.. phân loại tại mục Classify nhấn nút Choose. Thiết lập một số tùy chọn tại mục Test options, ở đây ta chọn sử dụng phương pháp Cross-validation. - Bước 5. Nhấn nút Start để thực hiện, và theo dõi kết quả tại vùng Classifier output. Để tìm hiểu các chức năng khác của phần mềm Weka và chi tiết cách sử dụng bạn đọc có thể tìm hiểu tại [11]. 3.3.3.2. So sánh với một số phương pháp trên WEKA Sau đây là kết quả thử nghiệm trên các hàm, luật,… trong WEKA và chương trình sử dụng NSA trên cơ sở dữ liệu Spambase. Với 100% thư thường và thư rác đưa vào quá trình phân loại. Với giá trị r = 8, chương trình sử dụng NSA cho kết quả như sau: Trong 2788 thư thường, chương trình sử dụng NSA cho kết quả: - Số lượng thư thường phân loại đúng là TN = 2668. - Số lượng thư phân loại sai thành thư rác là FP = 120. Trong 1813 thư rác, chương trình sử dụng NSA cho kết quả: 53 - Số lượng thư rác phân loại đúng là TP = 1499. - Số lượng thư phân loại sai thành thư thường là FN = 314. Và các kết quả: - DR: 82.67% - FPR: 4.31% - Acc: 90.56% Các phương pháp phân loại trong WEKA đều sử dụng toàn bộ 2788 thư thường và 1813 thư spam vào quá trình kiểm tra (phát hiện, phân loại) nên trong chương trình NSA cũng sẽ sử dụng toàn bộ các thư thường và thư rác thay vì chỉ sử dụng file thư thường chưa dùng vào quá trình huấn luyện + thư rác. (Đơn vị tính 3 thông số DR, FPR, Acc: %) Phương pháp TP TN FN FP DR FPR Acc BayessianLogisticRegression 1758 1986 55 802 96.97 28.77 81.37 NaiveBayesUpdateable 1725 1923 88 865 95.15 31.03 79.29 bayes.DMNBtext 1617 2662 196 126 89.19 4.52 93.00 functions.logistic 1607 2645 206 143 88.64 5.13 92.41 functions.RBFNetwork 1568 2143 245 645 86.49 23.13 80.66 funtions.Spegasos 1544 2661 269 127 85.16 4.56 91.39 lazy.TB1 1592 2585 221 203 87.81 7.28 90.78 misc.HyperPipes 163 2777 1650 11 8.99 0.39 63.90 rules.ComnunctiveRule 1276 2437 537 351 70.38 12.59 80.70 trees.RandomTree 1621 2563 192 225 89.41 8.07 90.94 NSA 1499 2668 314 120 82.67 4.31 90.56 Bảng 3.2. Kết quả thử nghiệm trên WEKA và NSA Dựa vào bảng trên ta thấy: - Phương pháp NSA cho kết quả chính xác hơn 90% nằm trong những phương pháp cho kết quả chính xác nhất. Phương pháp TP TN FN FP DR FPR Acc bayes.DMNBtext 1617 2662 196 126 89.19 4.52 93.00 54 functions.logistic 1607 2645 206 143 88.64 5.13 92.41 funtions.Spegasos 1544 2661 269 127 85.16 4.56 91.39 lazy.TB1 1592 2585 221 203 87.81 7.28 90.78 trees.RandomTree 1621 2563 192 225 89.41 8.07 90.94 NSA 1499 2668 314 120 82.67 4.31 90.56 Bảng 3.3. Kết quả NSA so với một số phương pháp cho kết quả tốt Ta nhận thấy rằng, phương pháp NSA cho kết quả xấp xỉ với các phương pháp trong WEKA về độ chính xác tổng thể. NSA có khả năng phát hiện các thư rác kém hơn thể hiện ở thông số TP và FN. Tuy nhiên, NSA phân loại các thư thường tốt hơn, thể hiện các thông số TN, FP. - NSA cho kết quả cao hơn về độ chính xác tổng thể so với các phương pháp trong bảng dưới: Phương pháp TP TN FN FP DR FPR Acc 1758 1986 55 802 96.97 28.77 81.37 1725 1923 88 865 95.15 31.03 79.29 functions.RBFNetwork 1568 2143 245 645 86.49 23.13 80.66 misc.HyperPipes 163 2777 1650 11 8.99 0.39 63.90 rules.ComnunctiveRule 1276 2437 537 351 70.38 12.59 80.70 NSA 1499 2668 314 120 82.67 4.31 90.56 BayessianLogisticRegressio n NaiveBayesUpdateable Bảng 3.4. Kết quả của NSA so với một số phương pháp thấp hơn Các phương pháp BayessianLogisticRegression, NaiveBayesUpdateable cho khả năng phát hiện thư rác rất tốt, nhưng kéo theo đó nhiều thư thường bị phân loại thành thư rác thể hiện: trong 2788 thư thường BayessianLogisticRegression có 802 bị coi là thư rác, NaiveBayesUpdateable có 865 bị coi là thư rác. Thông thường, các thư thường có chứa thông tin quan trọng hơn, do vậy việc các thư thường được phân loại thành thư rác gây ra lo ngại hơn so với việc các thư rác bị phân loại nhầm thành thư thường. Xét về mặt này, NSA cho khả năng phân loại tốt hơn 5 phương pháp trên. 55 3.4. Kết luận Qua việc phân tích kết quả, so sánh với một số phương pháp trên ta thấy NSA cho khả năng phát hiện với độ chính xác cao, tùy thuộc vào cách đặt giá trị r mà ta được các bảng băm (bộ dò) kích thước khác nhau làm khả năng phát hiện khác nhau. Về thời gian NSA gần tương đương với thời gian chạy của các phương pháp khác. KẾT LUẬN Đề tài đã đạt được mục đích nghiên cứu đề ra ban đầu. Cụ thể đã nghiên cứu cấu trúc, đặc điểm của thư điện tử đặc biết là về thư rác. Những tác hại mà thư rác gây ra được nêu rõ và từ đó đặt ra vấn đề lọc thư rác. Đề tài đã sử dụng thuật toán NSA của hệ miễn dịch nhân tạo để xây dựng chương trình lọc thư rác và bước đầu đã cho ra những kết quả nhất định. Về ưu điểm, chương trình đã thể hiện được thuật toán NSA và khả năng phát hiện tương đối cao, thời gian huấn luyện và kiểm tra chương trình thực hiện khá nhanh. 56 Về nhược điểm, khả năng phát hiện thư rác và thư thường trong một số trường hợp là còn hạn chế, điều này đặt ra vấn đề cần xem xét các thuộc tính của email về tần suất xuất hiện, một số thư thường chỉ cần có một thuộc tính có mức độ xuất hiện ngang với thuộc tính đó ở thư rác cũng có thể bị coi là thư rác. Để loại bỏ vấn đề trên, cần nghiên cứu và áp dụng thêm một số phương pháp khác nhằm cải tiến chương trình cho kết quả cao hơn. Ngoài ra, vấn đề thử nghiệm phương pháp này với bộ tham số tối ưu hoặc kết hợp nó với các phương pháp học máy khác, áp dụng cho nhiều cơ sở dữ liệu thư điện tử để tăng khả năng học cho hệ thống cũng là một hướng phát triển của đề tài trong tương lai. Do khả năng nghiên cứu của tác giả có hạn, nên đề tài chắc chắn không tránh khỏi thiếu sót. Em rất mong nhận được sự đóng góp ý kiến của các thầy cô và các bạn để đề tài được hoàn thiện hơn. Em xin chân thành cảm ơn! TÀI LIỆU THAM KHẢO 1. Tiếng Việt [1] Nguyễn Xuân Hoài, Nguyễn Văn Trường, Vũ Mạnh Xuân, (2007), Hệ miễn dịch nhân tạo và ứng dụng, Tạp chí Khoa học và Công nghệ Đại học Thái Nguyên, 13-18. [2] Phạm Đình Lựu, (2005) Sinh Lý Học Y Khoa, Đại Học Y Dược TP. Hồ Chí Minh. [3] Tống Văn Đạt, (2008) Tìm hiểu hệ miễn dịch nhân tạo trong Machine Learning để xây dựng một hệ thống bảo đảm an toàn mạng máy tính, Luận văn Thạc sĩ công nghệ thông tin, Trường ĐH CNTT, ĐHQG Thành phố Hồ Chí Minh. [4] Vũ Thị Nguyệt Thu, (2014), Sinh tập bộ dò đầy đủ không dư thừa trong hệ miễn dịch nhân tạo, Luận văn Tốt Nghiệp, ĐH Sư phạm Thái Nguyên. 2. Tiếng Anh 57 [5] Goldszmidt D., Friedman, N.Geiger, Bayesian network Classifiers Machine Learning, 2006. e, 2003. [6] Mike Spy Kerman, Typical spam characteristics, Red Earth Softwar, 2003. [7] Jonathan, A.Zdziarski, Ending Spam: Bayesian Content Filtering and the Art of Statistical Language Classification, No Starch Press, 2005. [8] Nguyen Van Truong, Vu Thi Nguyet Thu, Trinh Van Ha, (2013), Combining negative Selection and positive Selection in artificial immune systems, Journal of Science and Technology, Thai Nguyen University, 106(6), 41-47. [9] Csaba Gulyás, Creation of a Bayesian network-based meta spam filter, using the analysis of different spam filters, 2006. [10] Forrest et al, Self-Nonself Discrimination in a Computer, (1994), in Proceedings of 1994 IEEE Symposium on Research in Security and Privacy, Oakland, CA, 202-212.. 3. Địa chỉ [11] https://www.cs.waikato.ac.nz/ml/weka/ [12] https://www.cs.auckland.ac.nz/~pat/706_98/ln/node119.html Xác nhận của GVHD 58
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.