Phạm vi ứng dụng Đề tài “ NGHIÊN CỨU XÂY DỰNG BỘ LỌC SPAM THƠNG MINH, TỰ ĐỘNG” cĩ thể được ứng dụng trong các trình duyệt mail, và giúp cho người sử dụng loại bỏ được thư cĩ nội dung
Trang 1BÁO CÁO NGHIÊN CỨU KHOA HỌC
Trang 2BÁO CÁO NGHIÊN CỨU KHOA HỌC
ĐỀ TÀI:
NGHIÊN CỨU XÂY DỰNG BỘ LỌC SPAM THÔNG MINH, TỰ ĐỘNG
Người thực hiện: PHAN HỮU TIẾP
CAO NGUYỄN THỦY TIÊN Chủ nhiệm đề tài: Ths Lâm Thành Hiển
BIÊN HÒA, THÁNG 6/2011
Trang 3Trung Tâm Thông Tin Tư Liệu, trường Đại Học Lạc Hồng, nơi chúng tôi công tác và nghiên cứu đã tạo điều kiện và hỗ trợ chúng tôi trong suốt thời gian qua Chúng tôi cũng xin chân thành cám ơn đến những người thân, bạn bè và đồng nghiệp đã giúp đỡ và động viên chúng tôi trong suốt thời gian học tập cũng như trong thời gian thực nghiên cứu này
Chân thành cám ơn !
Biên Hòa, ngày 15 tháng 06 năm 2011
Phan Hữu Tiếp, Cao Nguyễn Thủy Tiên
Trang 4Mục lục ii
Danh mục các bảng biểu, hình vẽ iii
Mở đầu 1
1 Tóm lược đề tài 1
2 Mục tiêu đề tài 1
3 Nội dung thực hiện đề tài 1
4 Phạm vi ứng dụng 2
Chương 1- Tổng quan thư spam 3
1.1 Khảo sát thư spam 3
1.1.1 Định nghĩa thư spam 3
1.1.2 Phân loại thư spam 3
1.1.2.1 Thư spam tiếng Anh 3
1.1.2.2 Thư spam tiếng Việt 4
1.1.3 Đặc điểm thư spam 4
1.1.4 Tác hại của thư spam 5
1.1.5 Phương thức hoạt động của thư spam 7
1.1.5.1 Quy trình chung phát tán thư spam 7
1.1.5.2 Thu thập địa chỉ email 7
1.1.5.3 Tìm kiếm máy tính trên Internet cho phép gửi thư 9
1.1.6 Tình hình thư spam tại Việt Nam 10
1.2 Phương pháp chống thư spam 11
1.2.1 Lọc thư qua địa chỉ IP 11
1.2.1.1 Sử dụng danh sách đen (Black List) và danh sách địa chỉ tin cậy (White List) 11
1.2.1.2 Sử dụng danh sách xám (Grey List) 12
1.2.1.3 Chặn IP 13
Trang 51.2.2.2 Kỹ thuật nhân viên giả mạo (Fake worker) 14
1.2.2.3 Kiểm tra Header 14
1.2.3 Lọc thư spam dựa vào nội dung 14
1.2.3.1 Sử dụng các từ khóa chuẩn 14
1.2.3.2 Xác thực tự động 15
1.2.3.3 Yêu cầu xác thực thư 15
1.2.3.4 Lọc thư theo nội dung 16
1.2.4 Lọc thư spam dựa vào các thuật toán 16
1.2.4.1 Lọc thư sử dụng phương pháp heuristic 16
1.2.4.2 Lọc thư theo nội dung sử dụng phương pháp xác suất thống kê
và học máy 17
Chương 2- Phân tích bộ lọc thống kê 19
2.1 Giới thiệu 19
2.2 Bài toán phân loại văn bản 19
2.2.1 Định nghĩa 19
2.2.2 Tiến trình phân loại văn bản 20
2.3 Những nguyên tắc bộ lọc thống kê 22
2.3.1 Xây dựng tập huấn luyện 22
2.3.2 Sửa lỗi, huấn luyện lại 23
2.4 Các bộ lọc thống kê 23
2.4.1 Bộ phân tích các token và tính giá trị 23
2.4.2 Phân lớp k Nearest Neighbors (k-NN) 25
2.4.3 Phân lớp theo kỹ thuật Support Vector Machine (SVM) 26
2.5 Các thuật giải áp dụng cho quá trình lọc thư spam 27
2.5.1 Giải thuật xác định kích thước 27
2.5.2 Giải thuật giảm nhiễu Bayesian (Bayesian Noise Reduction) 29
Trang 63.1 Tổng quan mạng Bayes 31
3.1.1 Giới thiệu mạng Bayes 31
3.1.2 Mô hình chi tiết Naive Bayes 31
3.1.3 Ưu điểm của bộ lọc thư rác Bayes 32
3.2 Quy trình phân tích tổng quát 33
3.2.1 Phân tích đặc điểm chung của thư spam 33
3.2.1.1 Phần Header của thư spam 33
3.2.1.2 Phần thân của thư spam 33
3.2.2 Phân loại thư rác tiếng Việt và thư rác tiếng Anh 34
3.2.3 Phân tích từ vựng và câu 35
3.2.3.1 Phân tích từ vựng 35
3.2.3.2 Phân tích câu 36
3.2.4 Biểu diễn nội dung thư 37
3.2.4.1 Biểu diễn nội dung thư dưới dạng tập hợp từ (“túi từ”) 37
3.2.4.2 Sử dụng cụm từ có ngữ nghĩa để biểu diễn văn bản 38
3.2.4.3 Sử dụng phân cụm từ để biểu diễn văn bản 39
3.2.5 Các bước tiến hành lọc trên mạng Bayes 40
3.3 Tổng quan lọc thư rác tiếng Việt 42
3.3.1 Khó khăn trong quá trình lọc thư spam tiếng Việt 42
3.3.2 Tình hình nghiên cứu 42
3.3.3 Phương pháp tiếp cận 43
3.3.3.1 Mục tiêu chính 44
3.3.3.2 Tiền xử lý và tách câu tiếng Việt 45
3.3.3.3 Phân tích từ đơn 46
3.3.3.4 Phân tích từ ghép 48
3.3.3.5 Xây dựng bộ từ điển tiếng Việt 51
Trang 73.4.2 Quy trình lọc thư rác tiếng Việt 53
Chương 4- Xây dựng chương trình lọc thư spam 55
4.1 Kiến trúc hệ thống chương trình 55
4.1.1 Chương trình 1 55
4.1.2 Chương trình 2 56
4.2 Các bước cơ bản xây dựng hệ thống 56
4.2.1 Xây dựng một số chức năng cơ bản 56
4.2.1.1 Chức năng chuẩn hóa dữ liệu 56
4.2.1.2 Chức năng tách câu 56
4.2.1.3 Chức năng tạo thư 57
4.2.2 Đối với thư tiếng Anh 57
4.2.2.1 Các bước thực hiện quá trình lọc 57
4.2.2.2 Xây dựng tập hợp các token cho thư spam và thư ham 57
4.2.2.3 Tính xác suất của các token và phân loại thư 58
4.2.2.4 Cập nhật lại tri thức cho bộ lọc 58
4.2.3 Đối với thư tiếng Việt 58
4.2.3.1 Xây dựng bộ từ điển tiếng Việt 58
4.2.3.2 Phân tích văn bản tiếng Việt 59
4.2.3.3 Các bước thực hiện quá trình lọc thư tiếng Việt 59
4.2.3.4 Xây dựng tập hợp token cho thư spam và thư ham tiếng Việt 59
4.2.3.5 Tính xác suất của các token và phân loại thư tiếng Việt 59
4.2.3.6 Cập nhật lại tri thức cho bộ lọc tiếng Việt 59
4.3 Chức năng chương trình 61
4.3.1 Các chức năng chính của chương trình 61
4.3.2 Quá trình lọc thư spam tiếng Anh 62
4.3.2.1 Xây dựng tập huấn luyện token cho quá trình lọc thư 62
Trang 84.3.3 Quy trình lọc thư spam tiếng Việt 66
4.3.3.1 Xây dựng bộ từ điển từ đơn và từ ghép 66
4.3.3.2 Chuẩn hóa bộ từ điển tiếng Việt 66
4.3.3.3 Thể hiện nội dung thư tiếng Việt 67
4.3.3.4 Xây dựng tập huấn luyện cho quá trình lọc thư 68
4.3.3.5 Phân tích thư tiếng Việt 69
4.3.4 Các hàm cơ bản phục vụ chương trình 70
4.3.4.1 Chức năng tách câu đơn cho nội dung thư tiếng Việt 70
4.3.4.2 Chức năng tạo thư chứa nội dung 71
4.3.5 Các chức năng tổng quát liên quan đến hệ thống 72
4.3.5.1 Quản lý các thông số chung của hệ thống 72
4.3.5.2 Mô hình hóa các chức năng của chương trình 71
4.3.6 Bộ lọc spam trên môi trường Internet 73
4.3.6.1 Chức năng gửi email 73
4.3.6.2 Bộ lọc spam trên chương trình 73
4.4 Kết quả thực nghiệm và đánh giá kết quả đạt được 74
4.4.1 Đối với thư spam tiếng Anh 74
4.4.2 Đối với thư spam tiếng Việt 75
4.4.2.1.Xây dựng bộ từ điển tiếng Việt 75
4.4.2.2 Kết quả phân lớp thư tiếng Việt 75
Kết luận và hướng phát triển 77 Phụ lục
Tài liệu tham khảo
Trang 9Hình 1.3 - Virus trong email theo báo cáo tháng 12-2010 7
Hình 1.4 - Ví dụ về trang web lấy cắp địa chỉ email của người dùng 8
Hình 1.5 - Một số website của các công ty gửi thư rác 9
Hình 1.6 - Minh họa cách gửi thư rác qua mail server (open relay) 9
Hình 1.7 - Tình hình thư rác tại một số nước 10
Hình 1.8 - Nguyên lý phương pháp xác thực thư 15
Hình 1.9 - Ví dụ về Capcha 16
Hình 2.1 - Tiến trình phân loại văn bản 20
Hình 2.2 - Tiến trình phân loại văn bản nâng cao 22
Hình 2.3 - Phân loại văn bản theo kỹ thuật Vector Machine (SVM) 26
Hình 3.1 - Mô hình tổng quát lọc thư spam tiếng Việt 45
Hình 3.2 - Mô hình tách câu tiếng Việt 46
Hình 3.3 - Mô hình tách từ đơn tiếng Việt 48
Hình 3.4 - Mô hình tách từ ghép tiếng Việt 51
Hình 4.1 - Sơ đồ khối chương trình 55
Hình 4.2 - Giao diện chính của chương trình 61
Hình 4.3 - Quy trình huấn luyện các token tiếng Anh 62
Hình 4.4 - Quy trình chuẩn hóa tập token tiếng Anh 63
Hình 4.5 - Quy trình phân tích một bức thư tiếng Anh 64
Hình 4.6 - Quy trình phân lớp hàng loạt thư tiếng Anh 65
Hình 4.7 - Xây dựng bộ từ điển từ tiếng Việt 66
Hình 4.8 - Chuẩn hóa từ điển tiếng Việt 67
Hình 4.9 - Quy trình phân tích một bức thư tiếng Việt 68
Hình 4.10 - Quy trình huấn luyện các token tiếng Việt 68
Hình 4.11 -Phân tích thư tiếng Việt 69
Hình 4.12 -Kết quả phân tích thư tiếng Việt 70
Trang 10Hình 4.16- Chức năng gửi mail 73
Hình 4.17 Bộ lọc spam của hệ thống 73
DANH MỤC BẢNG BIỂU Bảng 3.1 Ví dụ nội dung của 4 thư 38
Bảng 3.2 Biểu diễn véctơ cho dữ liệu trong bảng 3.1 38
Bảng 3.3 Thống kê độ dài của từ trong từ điển 48
Bảng 3.4 Ví dụ minh họa phân tích từ đơn 54
Bảng 4.1 Kết quả phân loại thư tiếng Anh 74
Bảng 4.2 Thống kê bộ từ điển từ tiếng Việt 75
Bảng 4.3 Kết quả phân loại thư tiếng Việt 76
Trang 11MỞ ĐẦU
1 Tóm lược đề tài
Trong đời sống công nghệ hiện nay, thư điện tử (email) là một trong những ứng dụng phổ biến và nổi bật nhất mà nhiều người sử dụng Ứng dụng email đã mang đến lợi ích cho người sử dụng : đơn giản, hiệu quả và dễ sử dụng Tuy nhiên, spam hay các email không mong muốn hiện nay đã trở thành vấn đề nghiêm trọng đối với các công ty và những người sử dụng cá nhân và chính nó là nguyên nhân chính làm lãng phí tài nguyên mạng và thời gian của người dùng
Đặc biệt tại Việt Nam, bên cạnh những email spam thông thường bằng tiếng Anh, còn có những spam tiếng Việt, mang tính chất riêng khác với các loại mail spam khác
Bài toán giải quyết lọc thư spam là một bài toán lớn và đã có nhiều phương pháp giải quyết được hiệu quả Tuy nhiên các phương pháp này đều tập trung vào thư tiếng Anh, trong khi thư spam tiếng Việt có những đặc điểm riêng nhưng chưa
có một nghiên cứu cụ thể nào về vấn đề này
Đề tài tập trung nghiên cứu các bộ lọc thống kê hiện tại được sử dụng rộng rãi,
từ đó đưa ra giải pháp ngăn chặn các loại thư rác đặc biệt phát tán tại Việt Nam
2 Mục tiêu đề tài
Nghiên cứu tổng quan các hệ thống lọc thư rác thông dụng hiện nay, từ đó đề xuất mô hình lọc thư rác có thể tự động phát hiện không những các thư rác quen thuộc được các hệ thống cảnh báo trên thế giới cung cấp mà còn có thể phát hiện các thể loại thư rác mới được phát tán ở Việt Nam
Bên cạnh đó, cũng nghiên cứu kỹ thuật tách câu, tách từ đơn, từ ghép trong tiếng Việt mà chỉ xét về mặt tồn tại của từ, không xét về mặt ý nghĩa của từ
3 Nội dung thực hiện đề tài
Tìm hiểu về thư spam: các loại thư spam, đặc điểm thư spam…Đặc biệt, tìm hiểu về thư spam đang phát triển và đặc trưng của thư spam tại Việt Nam
Nghiên cứu các kỹ thuật đang sử dụng hiện nay để lọc thư spam (spam tiếng Anh và tiếng Việt)
Trang 12Nghiên cứu các thuật tốn, đặc biệt là thuật tốn Nạve Bayes để lọc thư spam Nghiên cứu các bộ lọc spam truyền thống hiện được sử dụng
Áp dụng thuật tốn cho việc lọc thư spam Việt Nam
Nghiên cứu xây dựng các phương pháp tách câu, tách từ đơn, từ ghép trong tiếng Việt mà khơng xét về mặt ý nghĩa của từ
Xây dựng chương trình huấn luyện thư spam tiếng Anh và tiếng Việt, tách câu, tách từ đơn, từ ghép trong tiếng Việt
Nghiên cứu xây dựng bộ lọc spam cải tiến từ các bộ lọc đã cĩ hoặc bộ lọc spam mới phù hợp với các thư spam tại Việt Nam
Triển khai bộ lọc spam vào web mail thử nghiệm
4 Phạm vi ứng dụng
Đề tài “ NGHIÊN CỨU XÂY DỰNG BỘ LỌC SPAM THƠNG MINH, TỰ
ĐỘNG” cĩ thể được ứng dụng trong các trình duyệt mail, và giúp cho người sử
dụng loại bỏ được thư cĩ nội dung spam, đặc biệt là spam tiếng Việt giảm thiểu thời gian lãng phí của người sử dụng khi phải “vất vả” kiểm tra “bằng tay” nội dung từng bức thư
Trang 13CHƯƠNG 1: TỔNG QUAN THƯ SPAM 1.1 Khảo sát thư spam
1.1.1 Định nghĩa thư spam
Hiện nay, chưa có bất cứ một định nghĩa chính thức nào về thư spam Một định nghĩa thông dụng nhất về spam có thể hiểu thư spam như sau ([15]) : “Thư rác (spam) là những bức thư điện tử không yêu cầu, không mong muốn và được gửi hàng loạt tới nhiều người nhận khác nhau” “Thư không yêu cầu” là người nhận thư không yêu cầu người gửi gửi bức thư đó “Thư được gửi hàng loạt” là bức thư có nội dung gửi giống nhau, người nhận đã nhận được nằm trong một loạt các thư được gửi đi cho nhiều người khác Tuy nhiên, không phải tất cả các thư không mong muốn đều là thư spam và ngược lại không phải tất cả các thư spam đều là thư quảng cáo
Theo một số quan điểm hiểu theo nghĩa hẹp, thư spam là những thư quảng cáo không được yêu cầu (Unsolicited Commercial Email – UCE) Một số quan điểm hiểu theo nghĩa rộng thư spam là bao gồm tất cả thư quảng cáo, quấy rối, những thư
có nội dung không lành mạnh (Unsolicited Bulk Email – UBE)
Tóm lại, thư spam có thể xem là thư không được yêu cầu và được gửi đi hàng loạt Nội dung bức thư là yếu tố quyết định dùng để phân biệt thư spam và thư thông thường, và đó cũng chính là cơ sở chính cho giải pháp phân loại thư spam bằng cách phân tích nội dung thư
1.1.2 Phân loại thư spam
1.1.2.1 Thư spam tiếng Anh
+ Thư spam quảng cáo thuốc: thư spam quảng cáo bán thuốc Viagra, Cialis, thuốc giảm đau trực tuyến
+ Thư spam Penny Stock: Thư spam khuyến khích mua chứng khoán, thư loại này khuyến khích nhà đầu tư mua chứng khoán giá rẻ
+ Thư spam tài chính: Trong khi spam quảng cáo có xác suất nhỏ để người nhận đáp ứng như mua hàng, gửi tiền v.v, thì spam tài chính chỉ thực hiện với những người khờ dại và nhận được tiền của họ vì một lý do nào đó
Trang 14+ Thư spam hẹn sex hay khiêu dâm: Các site khiêu dâm và các site hẹn sex thường được mua bán thông qua sex (hiện nay tỷ lệ này so với các loại spam khác ngày càng ít đi)
1.1.2.2 Thư spam tiếng Việt
Hiện tại, chưa có một thống kê chính xác nào, xác định những đặc điểm chung của thư rác tiếng Việt Theo khảo sát, đa phần thư rác tiếng Việt tập trung vào + Thư spam mời tham gia các diễn đàn trực tuyến: hoclamgiau.vn, hi5.com, diễn đàn học tiếng Anh miễn phí
+ Thư spam quảng cáo, rao vặt: mua bán bất động sản, sim số đẹp,
+ Thư spam giới thiệu các chương trình khuyến mãi mua sắm: mời mua hàng trên các website giảm giá, tạo tài khoản mua hàng,…
+ Mời tham gia các mạng xã hội
1.1.3 Đặc điểm thư spam
Đặc tính chung của thư spam là không ràng buộc về mặt nội dung Phần lớn các spam tuân theo các mẫu chung và có thể được nhận diện một cách rõ ràng Ngoài
ra, các thư spam có các đặc điểm về ngôn ngữ, thời gian Hầu hết các thư spam này đều được viết bằng tiếng Anh với tỉ lệ rất cao hơn 80%
Đặc điểm chính của thư spam khác biệt với thư thông thường đó là
+ Không được yêu cầu
+ Người nhận không quan tâm đến thông tin trong thư mình nhận được
+ Không rõ người gửi Người nhận không biết, không có bất cứ liên hệ nào với người gửi
+ Email này được gửi đến một số lượng lớn các địa chỉ Thể loại thư rác rất đa dạng phần lớn tập trung vào quảng cáo, lừa đảo, phần mềm giá rẻ, nội dung không lành mạnh
Trang 15Hình 1.1- Nội dung thư spam theo báo cáo tháng 12-2010 [12]
1.1.4 Tác hại của thư spam
Thư spam hiện tại chiếm một tỷ lệ vô cùng lớn trong tổng số thư điện tử được gửi qua Internet Lượng thư spam quá lớn này gây ra nhiều tác hại đối với sự phát triển Internet nói chung và người sử dụng thư điện tử nói riêng Theo nhiều thống
kê từ nhiều nguồn khác nhau, thư rác chiếm khoảng 71% đến hơn 85% lượng thư gửi qua các máy chủ thư điện tử
Trang 16Hình 1.2- Lưu lượng spam theo báo cáo tháng 12-2010 [12]
Dưới đây, mô tả một số tác hại cụ thể rõ ràng nhất của thư rác
+ Gây thiệt hại về kinh tế tài chính cho người nhận thư trong trường hợp người nhận thư phải trả tiền cho lượng thông tin truyền qua mạng
+ Lãng phí thời gian cực lớn cho việc mở thư và xóa thư khỏi hộp thư và có thể làm đầy hộp thư của người nhận, dẫn đến việc thất lạc những thư đến sau, gây cản trở diễn tiến công việc của những người sử dụng thư điện tử
+ Thư rác gây tâm lý xấu đối với người sử dụng thư điện tử Theo số liệu thống
kê từ [13] , 25% người sử dụng thư điện tử xem thư rác là một trở ngại lớn khi sử dụng dịch vụ thư điện tử trên Internet
+ Thư rác chiếm một phần lớn đường truyền Internet và làm tiêu tốn thời gian
xử lý của máy chủ
+ Thư rác còn gây ra các vấn đề kỹ thuật, phần lớn các thư rác có thể rất nguy hiểm, chứa virus, trojan hay các loại phần mềm gây hại khác, tạo ra các lỗ hổng bảo mật trong máy tính và mạng Ngoài ra, thư rác còn được xem là phương tiện chính
để thực hiện tấn công ”phishing” người dùng
Trang 17Hình 1.3- Virus trong email theo báo cáo tháng 12-2010 [12]
1.1.5 Phương thức hoạt động của thư spam
1.1.5.1 Quy trình chung phát tán thư spam
Để phát tán thư rác, những người gửi thư rác phải có những điều kiện
+ Có danh sách địa chỉ email nhận thư
+ Có các server cho phép gửi thư
+ Soạn được nội dung thư theo yêu cầu quảng cáo qua mặt bộ lọc
+ Có những chương trình để gửi thư đi
1.1.5.2 Thu thập địa chỉ email
Để gửi thư rác, spammer cần phải có một danh sách địa chỉ email cần gửi Danh sách này được thu thập được từ nhiều nguồn khác nhau như mua từ website thương mại có nhiều thành viên đăng ký hoặc sử dụng các kỹ thuật khác như
+ Phishing email: Spammer thường tung ra các website giả để bẫy người dùng gửi địa chỉ email cho họ
Trang 18Hình 1.4- Ví dụ về trang web lấy cắp địa chỉ email của người dùng [6]
+ Spambots: dùng các máy tìm kiếm chỉ để tìm kiếm địa chỉ email trên các website Các máy này sẽ tìm kiếm những trang có kí hiệu “@” và sẽ tách địa chỉ email từ đó ra
+ Sinh địa chỉ email theo kiểu từ điển: Danh sách các địa chỉ cũng có thể được sinh tự động để xác suất tồn tại của địa chỉ mới sinh đó có thể chấp nhận được Địa chỉ email thường được tạo ra nhờ kết hợp giữa các họ tên phổ biến với các domain nhiều người dùng và các con số có nghĩa Ví dụ như địa chỉ email được sinh như sau:
Từ địa chỉ gốc là: phanhuutiep + @ + yahoo.com
Có thể sinh ra các địa chỉ sau:
Trang 191.1.5.3 Tìm kiếm máy tính trên Internet cho phép gửi thư
Muốn gửi được thư rác, spammer cần một danh sách các server để gửi thư đi Các server này có thể là những server chuyên để gửi thư rác do người gửi thư rác sở hữu hoặc thuê, hoặc là những server bị người gửi thư rác lợi dụng
Dưới đây là hình ảnh quảng cáo của một số công ty chuyên tung thư rác được Google liệt kê khi tìm kiếm hai từ “bulk mail”
Hình 1.5 -Một số website của các công ty gửi thư rác [12]
Người gửi thư rác thường khai thác lỗ hổng của những server cho phép chuyển tiếp thư (open relay) hoặc những proxy mở cho phép gửi thư (open proxy)
Hình 1.6 - Minh họa cách gửi thư rác qua mail server (open relay)
Trên mạng Internet, có rất nhiều mail server cho phép chuyển tiếp thư Spammer sử dụng các server này để chuyển tiếp thư rác vì khi đó họ sẽ khó bị phát hiện hơn và chuyển được các gánh nặng về đường truyền sang cho các server đó Tuy nhiên, server dạng này thường sớm bị đưa vào danh sách đen của các bộ lọc thư rác
Một loại server khác là các proxy cho phép gửi thư mà các spammer thường sử dụng Mục đích chính của proxy là giúp các trang web vượt qua được tường lửa (firewall) Một số proxy cho phép gửi thư và bất cứ ai cũng có thể truy cập được Spmmer lợi dụng điểm này để phát tán thư rác
Trang 20Ngoài ra, spammer còn thuê các máy tính “ma” để gửi thư rác Đây là các máy tính không được quản lý nên khó có thể pháp hiện ra tác giả của các bức thư rác và giá thuê lại rẻ, nên có tới 40%-60% spammer bắt đầu từ cách này
Nghiêm trọng hơn, các spammer (và cũng là những hacker) còn chiếm quyền kiểm soát các máy tính hợp pháp để gửi thư rác
1.1.6 Tình hình thư spam tại Việt Nam
Hãng bảo mật Sophos (Anh) vừa chính thức công bố báo cáo về tình trạng thư spam toàn cầu trong đó có danh sách 12 quốc gia là nguồn xuất phát lớn nhất của thư spam tính đến hết tháng 12 – 2010, Việt Nam đứng thứ 10 trong danh sách kể trên Hơn 56% tổng số thư rác toàn cầu xuất phát từ chính 12 quốc gia này
Hình 1.7 – Tình hình thư rác tại một số nước [12]
Theo kết quả điều tra ban đầu của VNCERT - Bộ Bưu chính viễn thông hơn 1/3
Số người được hỏi khẳng định mỗi ngày nhận được từ 20 - 50% số thư rác mang nội dung tiếng Việt trên tổng số thư rác phải nhận mỗi ngày, khoảng 40 % khẳng định trong số thư rác từng nhận có chứa các nội dung xuyên tạc , vi phạm thuần phong
mỹ tục, gây hại, lừa đảo, 48,36 % người dùng không có ấn tượng gì đặc biệt và 33,45 % cho rằng các công ty được quảng cáo thông qua thư rác là không có uy tín thương hiệu và tiềm lực hạn chế
Trang 21Chính vì sự phát triển mạnh mẽ của thư rác tại Việt Nam nên nghị định chống thư rác chính phủ đã ra đời và bắt đầu có hiệu lực từ ngày 09-02-2009
1.2 Phương pháp chống thư spam
1.2.1 Lọc thư qua địa chỉ IP
1.2.1.1 Sử dụng danh sách đen (Black List) và danh sách địa chỉ tin cậy (White List)
Danh sách trắng và danh sách đen là hai phương pháp rất phổ biến để lọc thư rác Ở danh sách đen sẽ chứa các địa chỉ server thường xuyên gửi thư rác, ngược lại, những địa chỉ nằm trong danh sách trắng thường luôn an toàn Địa chỉ này có thể là email cá nhân, tên các domain hay địa chỉ IP và nó sẽ lọc ra cá nhân hay nhóm gửi
Kỹ thuật này thường được sử dụng ở phía máy chủ hay là máy client và nó được xem là một một sự bổ sung cho phương pháp khác hiệu quả hơn Đối với các địa chỉ trong danh sách đen sẽ bị các nhà cung cấp dịch vụ thư điện tử (ISP) loại bỏ những thư có địa chỉ server nằm trong danh sách đen này Ngược lại, các địa chỉ trong danh sách trắng đáng tin cậy, ở phía server, người quản trị có thể kiểm soát các địa chỉ này trước khi cho vào danh sách trắng, danh sách này cũng có thể do một nhà cung cấp nào tin cậy đưa ra
Đối với mỗi danh sách đều có ưu điểm riêng của nó Đối với danh sách đen, sẽ được thường xuyên được cập nhật và chia sẻ giữa những nhà cung cấp dịch vụ Ưu điểm của danh sách đen này là các ISP sẽ ngăn chặn được khá nhiều server gửi thư rác Ưu điểm của danh sách trắng so với danh sách đen là số lượng địa chỉ trong danh sách trắng sẽ ít hơn rất nhiều và sẽ giải quyết tình trặng chặn nhầm
Bên cạnh ưu điểm vừa nêu trên, cả hai danh sách đều có khuyết điểm riêng của
nó Đối với danh sách đen,do số lượng các thư rác được gửi đi vẫn tăng theo thời gian vì các spammer lại chuyển sang server khác, giả mạo địa chỉ email hay chiếm một server hợp pháp để gửi thư rác Do vậy, danh sách đen thường chỉ chặn một nửa số thư rác được gửi đi, và sẽ làm mất rất nhiều thư hợp pháp nếu chặn nhầm Khuyết điểm lớn nhất của danh sách đen là khó cập nhật danh sách và dễ chặn nhầm địa chỉ IP Đối với danh sách trắng sẽ gây phiền phức trong việc cập nhật,
Trang 22nhất là khi thay đổi địa chỉ IP Ngoài ra, các spammer cũng có thể lợi dụng những server có trong danh sách trắng để gửi thư rác, khi đó tình trạng trở nên khó kiểm soát
1.2.1.2 Sử dụng danh sách xám (Grey List)
Danh sách xám như là một sự bổ sung cho hai danh sách trắng và đen vừa nêu ở trên Cốt lõi của phương pháp này là giả định rằng các thư spam được gửi bằng cách
sử dụng chương trình gửi thư rác tự động, đây là phần mềm được thực hiện cụ thể
để gửi hàng ngàn email trong một thời gian ngắn Phần mềm này khác với các máy chủ thư điện tử truyền thống và không tôn trọng các tiêu chuẩn RFC email Khi hệ thống nhận được email từ một người gửi mà không rõ không nằm trong danh sách trắng, nó tạo ra một người gửi tupla
Lần đầu tiên tupla xảy ra trong hệ thống, email bị từ chối vì vậy nó trả lại cho người gửi Một máy chủ thật sự sẽ gửi email đó lại một lần nữa để lần thứ hai hệ thống tìm tupla, email được gắn cờ là an toàn và giao cho người nhận
Phương pháp này có một số hạn chế Khi sử dụng phương pháp này, đối với email hợp pháp sẽ rất tốn thời gian chờ đợi email gửi 2 lần và làm lãng phí băng thông trong quá trình gửi – từ chối - gửi lại Hạn chế thứ hai là các phần mềm gửi thư spam tự động chỉ cần thêm chức năng mới vào sẽ dễ dàng gửi lại email bị trả lại
1.2.1.3 Chặn IP
Phương pháp này sẽ chặn các email được gửi đến từ các địa chỉ IP biết trước Khi một email được gửi đến, bộ lọc sẽ phân tích địa chỉ máy gửi và so sánh với danh sách địa chỉ bị chặn Nếu email đó đến từ một máy có địa chỉ trong danh sách
này thì nó sẽ bị coi là spam, ngược lại nó sẽ được coi là email hợp lệ
1.2.1.4 Kiểm tra địa chỉ IP
Bằng cách kiểm tra địa chỉ người gửi và người nhận, phần lớn spam sẽ được phát hiện và chặn lại Thực hiện kiểm tra địa chỉ người gửi trước khi email được tải xuống sẽ tiết kiệm băng thông đường truyền cho toàn bộ hệ thống
Trang 23Kỹ thuật được sử dụng nhất đó là Sender Policy Framework (SPF – [16]) Kỹ thuật này cho phép chủ sở hữu của một tên miền Internet sử dụng các DNS đặc biệt, gọi là bản ghi SPF, chỉ rõ các máy được dùng để gửi email từ miền của họ Khi một email được gửi tới, bộ lọc SPF sẽ phân tích các thông tin trong trường ”From” hay
”Sender” để kiểm tra địa chỉ người gửi Sau đó SPF sẽ đối chiếu địa chỉ đó với các thông tin đã được công bố trong bảng ghi SPF của miền đó xem máy gửi email có được phép gửi email hay không Nếu email đến từ một server không có trong bản ghi SPF mà miền đó đã công bố thì email đó bị coi là giả mạo
1.2.2 Lọc thư dựa vào đặc tính của thư spam
1.2.2.1 Kỹ thuật giấu địa chỉ email
Cách đơn giản nhất để loại bỏ thư spam là không cho các spammer biết địa chỉ email sử dụng Địa chỉ email này chỉ cho những cá nhân hay tổ chức tin cậy biết Trong liên lạc hàng ngày có thể sử dụng một tài khoản email tạm thời cho các cá nhân hay tổ chức kém tin cậy hơn
Nếu địa chỉ email được công bố trên một trang web thì nó có thể được che đậy bằng cách chèn một thẻ vào và thẻ này sẽ được gỡ bỏ trước khi địa chỉ email được
sử dụng Các robot sẽ thu thập địa chỉ email có thẻ đó, và thẻ đó đã bị gỡ bỏ để có được một địa chỉ email chính xác
Với hầu hết người sử dụng, phương pháp này không khả thi Đầu tiên là tốn nhiều thời gian để thực hiện các kỹ thuật lưu giữ an toàn địa chỉ email, và thứ hai là địa chỉ che dấu không những có thể làm các robot lạc lối mà còn khiến người dùng khó sử dụng
1.2.2.2 Kỹ thuật nhân viên giả mạo (Fake worker)
Ý tưởng chính của giải pháp này là tạo ra một địa chỉ email giả mạo hoạt động như một cái bẫy Việc làm này có thể được sử dụng một cách đặc biệt tại các công
ty (ví dụ: Xyz@company.com) Sau khi tạo ra một địa chỉ email giả mạo như vậy, một người có thể chắc chắn rằng không có người gửi thực sự nào liên hệ với địa chỉ này Trong trường hợp này, mỗi email mà nhân viên giả mạo này nhận hầu như
Trang 24chắc chắn là spam Sử dụng thông tin này có thể giúp lọc nội dung của các hộp thư
từ những nhân viên khác
1.2.2.3 Kiểm tra Header
Phương pháp này sẽ phân tích các trường trong phần header của email để đánh giá email đó là email thông thường hay là spam Spam thường có những đặc điểm như:
+ Để trống trường Form: hay To:
+ Trường From: chứa các địa chỉ email không tuân thủ theo các chuẩn RFC + Các URL trong phần Header và phần thân của message có chứa địa chỉ IP được mã hóa dưới dạng hệ hex/oct hay có sự kết hợp theo dạng username/password + Phần tiêu đề của email có thể chứa địa chỉ email người nhận để cá nhân hóa email đó Một điều lưu ý là khi sử dụng tính năng này với các địa chỉ email dùng chung có dạng như :sales@company.com Ví dụ khi một khách hàng phản hồi bằng cách sử dụng tính năng auto-reply với tiêu đề ”your email to sales” có thể bị đánh dấu là spam
+ Gửi tới một số lượng rất lớn người nhận khác nhau
+ Chỉ chứa các file ảnh mà không có chứa các từ để lừa các bộ lọc
+ Sử dụng ngôn ngữ khác với ngôn ngữ người nhận đang sử dụng
1.2.3 Lọc thư spam dựa vào nội dung
1.2.3.1 Sử dụng các từ khóa chuẩn
Một trong các giải pháp đầu tiên là tìm kiếm các từ khóa trong subject của thư,
có nghĩa là chúng ta quét subject để lấy ra các từ có liên quan đến thư spam Việc phân tích ngôn ngữ chỉ đơn giản là so sánh các từ hay cụm từ đặc biệt Phương pháp này gặp phải nhiều vấn đề do chủ đề của các thư spam thay đổi theo thời gian Điều này có thể được xử lý bằng một danh sách từ khóa thường xuyên được cập nhật, nhưng chỉ cần một sự thay đổi nhỏ trong các từ của subject cũng dẫn đến lỗi so sánh (ví dụ: viết “softw@re” thay vì viết “software”) Việc lọc trên cơ sở một ký tự đơn
có tỷ lệ thành công khoảng 80%
Trang 25Kỹ thuật tìm kiếm từ khóa đều dựa trên cơ sở danh sách các từ hay các cụm từ chắc chắn là có trong thư spam Sự đơn giản trong các bộ lọc spam kiểu này dẫn đến tỷ lệ lỗi false-positive cao và tốn công cập nhật danh sách từ khóa
1.2.3.2 Xác thực tự động
Để tránh cho người gửi không phải tự mình xác thực yêu cầu như ở phương pháp trên, yêu cầu xác thực có thể được thực hiện tự động Phương pháp này, chương trình email của người nhận sẽ gửi yêu cầu chương trình email của bên gửi thực hiện một công việc tính toán nào đó và gửi lại kết quả để xác thực Việc tính toán kết quả và xác thực đòi hỏi một số lượng nhất định tài nguyên tính toán của chương trình gửi email Do chương trình phát tán thư rác gửi thư hàng loạt với số lượng lớn nên sẽ không thể thực hiện được việc tính toán và xác thực như vậy với mọi thư được gửi đi
Ưu điểm cơ bản của phương pháp này là có thể tự động hoá toàn bộ khâu kiểm tra và xác thực Nếu độ phức tạp của công việc tính toán khi xác thực đủ lớn thì hiệu quả của phương pháp này sẽ gần như tuyệt đối
1.2.3.3 Yêu cầu xác thực thư
Nguyên lý hoạt động của phương pháp này là khi có một bức thư được gửi từ một địa chỉ lạ, bộ lọc sẽ gửi trả lại bức thư và yêu cầu người gửi điền các thông tin cần thiết vào một form để xác thực bức thư mới đó như trên hình 1.8
Hình 1.8- Nguyên lý phương pháp xác thực thư [1]
Trang 26Phương pháp này tỏ ra rất hiệu quả nếu được người dùng chấp nhận vì người gửi thư rác sẽ không thể nào phản hồi hết được thư rác mà họ đã gửi Tuy nhiên việc làm cầu kỳ này rất khó được người dùng chấp nhận vì để gửi một bức thư giới thiệu họ phải chờ đợi phản hồi từ phía bộ lọc rồi bức thư đó mới chính thức đến đích
Bên cạnh việc yêu cầu điền thông tin xác thực vào những form thông thường, phương pháp này có thể sử dụng những kỹ thuật phức tạp hơn để tránh trường hợp chương trình gửi thư rác có thể điền thông tin vào form tự động Kỹ thuật thường được sử dụng Turing test, tức là yêu cầu thực hiện một công việc rất dễ với con người nhưng rất khó với máy tính Ví dụ, chương trình email của người nhận sẽ gửi lại một ảnh nhỏ có chữ như trên hình dưới
Hình 1.9- Ví dụ về Capcha [12]
Người nhận cần xác thực bằng cách gõ và gửi lại các chữ trên hình vẽ Đây là việc rất dễ đối với con người nhưng lại vô cùng khó với máy tính
1.2.3.4 Lọc thư theo nội dung
Một chương trình sẽ thu thập thông tin nằm trong phần nội dung của email để giúp cho các quản trị viên máy chủ email tách thư rác ra khỏi hệ thống Phần mềm
sẽ lướt qua toàn bộ thông điệp để tìm kiếm những từ khóa có liên quan đến thư rác Các cơ chế lọc thư phức tạp hơn có thể lọc nguyên cả một đoạn mã lệnh đầu của thông điệp, những đoạn mã này bám theo suốt quá trình luân chuyển của email
và cung cấp thông tin về chuyến đi đó Nếu một site spam có tên trong lịch trình đó, phần mềm sẽ tự động chặn bức thông điệp lại
1.2.4 Lọc thư spam dựa vào các thuật toán
1.2.4.1 Lọc thư sử dụng phương pháp heuristic
Được phát triển vào cuối thập niên 1990, phương pháp này dùng tập hợp luật
“cảm tính” để xác định những đặc trưng của thư spam Những đặc trưng này có thể
Trang 27bao gồm nội dung hay những quan sát xác định về các xây dựng điển hình của spam Khơng giống như các phương pháp lọc thơ sơ, lọc heuristic cĩ những quy luật để phát hiện cả spam và cả email khơng hợp lệ Những email cĩ những đặc tính tương tự spam cĩ thể được xem như một email hợp lệ nếu như chúng cĩ những dấu hiệu xác định nội dung đĩ khơng phải là spam Tuy nhiên, điểm yếu cơ bản nhất xuất phát từ tập luật được thiết kế cho mọi người dùng nĩ, vì thế các luật phải cĩ cách nào đĩ để tránh nhận diện nhằm, một email hợp lệ bị nhận diện là spam Do vì nhiều người dùng chung tập luật, spammer cũng cĩ thể dùng bộ lọc để học các đánh bại nĩ, vì tập luật và cách tính điểm gần như là tĩnh, ít thay đổi, các spammer cĩ thể tải xuống cơng cụ heuristic mới nhất và chạy thử các spam của chúng qua nĩ, họ bắt đầu xác định các bộ phận của spam của họ mà bộ lọc khơng cho qua, sau đĩ họ cĩ thể thay đổi nội dung trong thơng điệp spam của họ để chúng cĩ thể vượt qua bộ lọc, kết quả là độ chính xác khơng cịn nữa và giảm đáng kể sau đĩ
1.2.4.2 Lọc thư theo nội dung sử dụng phương pháp xác suất thống kê và học máy
Lọc theo nội dung của email cĩ thể được xem như là một ứng dụng đặc biệt của bài tốn phân loại văn bản (text categorization – TC) TC chia tất cả các từ vào hai nhĩm: spam và nonspam (hợp lệ), theo nghĩa nào đĩ, một số kỹ thuật TC đã được chứng minh như Ensembles of Decision Trees và Booting Decision Trees [6], đã được sử dụng để phân loại và lọc các email Các thuật tốn khác như Ripper, Rocchio, Nạve Bayes và Bayesian [1] cũng được thực hiện thử nghiệm để phát hiện spam Hầu hết những phương pháp này phân tích nội dung của email để nhận diện từ khĩa liên quan đến spam, tần suất của các từ lặp đi lặp lại để xác định spam
và để phân loại chúng vào những chỗ chứa tương ứng để người dùng cĩ thẻ sau đĩ đọc lại hay xĩa bỏ chúng Hiện nay, các phương pháp thống kê được sử dụng để phân tích và lọc email, những phương pháp này chuyển bài tốn lọc spam thành bài tốn phân lớp, trong phương pháp này cĩ thể sử dụng nhiều kỹ thuật phân lớp, dựa trên thơng tin thống kê đã học từ dữ liệu email thực tế Cụ thể, bài tốn lọc thư spam thường được coi là bài tốn phân lớp văn bản (text), dựa trên cơ sở là phần lớn các
Trang 28email cĩ chứa một số dạng nội dung text, những kỹ thuật này khá thành cơng mặc
dù cịn hạn chế về mặc dữ liệu chuẩn để kiểm tra và đủ lớn để cĩ thể so sánh và đánh giá một cách chính xác Một số phương pháp học để giải quyết bài tốn nhĩm văn bản (text) bao gồm: Nạve Bayes, Rocchio, K-Nearest Neighbour, Decision Trees…
Trang 29CHƯƠNG 2: PHÂN TÍCH BỘ LỌC THỐNG KÊ 2.1 Giới thiệu
Trong số các phương pháp dùng để chặn thư spam thông dụng, phương pháp lọc theo nội dung hiện tại đang được sử dụng rất nhiều trong các hệ thống Lọc theo nội dung hoạt động theo nguyên tắc cơ bản là phân loại thư điện tử thành hai nhóm
“thư rác” và “thư bình thường” bằng cách phân tích phần nội dung của thư (phần văn bản trong email được gửi)
Hiện tại , qui trình lọc thư spam theo nội dung được xem là một trường hợp riêng của bài toán phân loại văn bản Để giải quyết vấn đề này, rất nhiều phương pháp bộ lọc thống kê được sử dụng như phân loại Bayes đơn giản, Support Vector Machines (SVM), Boosting mỗi phương pháp có ưu điểm cũng như khuyết điểm riêng biệt, cụ thể khi áp dụng phương pháp Bayes thì đơn giản, nhanh và cho độ chính xác phân loại chấp nhận được, ở phương pháp SVM thì phức tạp, tốc độ chậm hơn nhưng có độ chính xác cao hơn
Ở các bộ lọc thống kê,nội dung thư được biểu diễn dưới dạng các đặc trưng hay các thuộc tính, mỗi đặc trưng thường là một từ hoặc cụm từ xuất hiện trong thư Sau
đó, trong giai đoạn huấn luyện, tập thư đã được gán nhãn {rác, bình thường} - gọi là
dữ liệu huấn luyện hay dữ liệu mẫu - được sử dụng để huấn luyện một bộ phân loại Sau khi huấn luyện xong, bộ phân loại được sử dụng để xác định thư mới (thư chưa biết nhãn) thuộc vào loại nào trong hai loại nói trên Trong cả giai đoạn huấn luyện
và phân loại, thuật toán phân loại chỉ làm việc với nội dung thư đã được biểu diễn dưới dạng các đặc trưng
2.2 Bài toán phân loại văn bản
2.2.1 Định nghĩa
Phân loại văn bản là sự phân loại không cấu trúc các tài liệu văn bản dựa trên một tập hợp của một hay nhiều loại văn bản đã được định nghĩa trước Quá trình này thường được thực thi bằng một hệ thống tự động gán cho các tài liệu văn bản một loại nào đó
Trang 30Ứng dụng thực tiễn quan trọng nhất của phân loại văn bản là giới hạn phạm vi tìm kiếm thông tin Phân loại văn bản góp phần quan trọng trong việc tổ chức thông tin và quản lí tài liệu
Các bước chính trong tiến trình phân loại văn bản
+ Lựa chọn các đặc trưng văn bản
+ Biểu diễn văn bản
+ Học một bộ phân loại văn bản
+ Tiến hành phân loại văn bản
Trong đó, lựa chọn đặc trưng văn bản là quá trình phân tích văn bản thành các
từ hay cụm từ Biểu diễn văn bản là cách thể hiện văn bản dưới dạng một vector mà không gian của nó là tập các đặc trưng đã lựa chọn Căn cứ vào các đặc trưng đã chọn có thể học một bộ phân loại văn bản như Naive Bayes hay kNN… Đầu ra của quá trình này sẽ là một máy dùng để phân loại các tài liệu cần thiết
2.2.2 Tiến trình phân loại văn bản
Đưa ra một tập tài liệu mẫu D, cần được phân bổ thành một số loại tài liệu nhất định - mỗi tài liệu đó cần được gán cho một loại văn bản nào đó Yêu cầu là tìm một hệ thống phân hoạch, mà nó sẽ cung cấp một nhãn y phù hợp cho một số tài liệu trong D vừa được đưa vào từ nguồn tài nguyên giống nhau như các văn bản mẫu Tổng quát hơn với một hệ thống phân loại điển hình như mô tả ở sơ đồ sau gồm có các tiến trình
Hình 2.1 - Tiến trình phân loại văn bản
Ở khâu tiền xử lí là khâu lựa chọn đặc trưng cho các văn bản (các dấu hiệu quan trọng để nhận biết văn bản) Đây là khâu tiền đề cần thiết cho việc học một bộ
Trang 31phân loại Vì thế hiệu quả của các bộ phân loại văn bản phụ thuộc rất cao vào tập các đặc trưng được sử dụng
Trong các mô hình phân loại điển hình và phức tạp thường có một số các phương pháp có sẵn để lựa chọn đặc trưng Với những phương pháp này, tập hợp các dữ liệu thô được miêu tả bằng một số các tập hợp đặc trưng Vấn đề được đặt ra
là làm thế nào để sử dụng những đặc trưng ấy cho phân hoạch tài liệu
Hiện nay có hai phương pháp để giải quyết vấn đề trên
Phương pháp thứ nhất: sử dụng các phương pháp lựa chọn đặc trưng để chọn ra một đặc trưng tối ưu Nếu chọn ra được một đặc trưng tối ưu từ bộ dữ liệu thô ở đầu vào, có thể chỉ đơn thuần sử dụng nó để học một bộ phân loại Tuy nhiên, quá trình tối ưu đó không phải đơn giản Trong trường hợp này khi sử dụng các đặc trưng khác nhau vẫn có thể sẽ dẫn đến các kết quả tương tự nhau hoặc là hiệu quả khác nhau
Phương pháp thứ hai: sử dụng một tập hợp các đặc trưng phức hợp để đạt kết quả phân loại cao hơn, đây là một trong những cải tiến quan trọng Điều đó nghĩa không chỉ sử dụng một đặc trưng để phân loại các tập tài liệu mà phải căn cứ vào tất
cả các tập đặc trưng khác nhau có trong tập tài liệu Sau đó phối hợp các đặc trưng
đó để đưa ra một “vector phức hợp” của các không gian đặc trưng cho các tập đặc trưng vừa chọn được, rồi mới tiến hành phân loại văn bản
Vấn đề cơ bản nhất của những phương pháp này là phác thảo các đặc trưng Do
đó, việc học một phương pháp phân loại bao gồm hai công đoạn Phân hoạch đầu tiên sẽ được huấn luyện trên tập tài liệu mẫu và sau đó tổ hợp các sắp xếp này được huấn luyện trên một tập các phê chuẩn ngược lại
Trang 32Hình 2.2- Tiến trình phân loại văn bản nâng cao
2.3 Những nguyên tắc bộ lọc thống kê
2.3.1 Xây dựng tập huấn luyện
Tập dữ liệu là bộ nhớ của bộ lọc spam, nó chứa dữ liệu của những email trước
đó, các từ, nhóm từ và sự kết hợp của chúng để xem xét cho những email, để đưa ra quyết định một email có là spam hay không thì tập dữ liệu này phải có trước
Những đặc trưng dùng trong bộ lọc thống kê được tạo ra dựa trên nội dung của email, vì thế dù cho spam có thay đổi theo thời gian, nó vẫn luôn có duy nhất nội dung ,có thể dùng nó để xác định, những từ mới xuất hiện trong spam, chúng tự động được thêm vào bộ nhớ của bộ lọc Việc này bắt đầu với tập hợp nhỏ gồm spam
và những email hợp lệ đã được sắp xếp trước và phân lớp Bộ lọc sẽ xử lý mỗi email và xây dựng bảng chứa sự xuất hiện của mỗi token Khi kết thúc, sẽ có được một tập hợp lớn những token và bộ đếm tương ứng của chúng đại diện cho sự xuất hiện của chúng trong gói Có hai cách xây dựng được tập dữ liệu như sau:
+ Lấy dữ liệu từ các thư cũ: Cung cấp tập hợp các email trước đây cho việc xây dựng tập dữ liệu ”lịch sử” bằng việc phân tích chúng
+ Xây dựng tập dữ liệu từ đầu: Trong những bộ lọc spam hiện nay, việc xây dựng tập dữ liệu từ đầu, từ những email vừa nhận được, chức năng sẽ hoạt động tốt hơn, bắt đầu từ đầu có nghĩa là bộ lọc sẽ không biết gì hết cho đến khi nó được huấn luyện, khi được huấn luyện các token được đưa vào tập dữ liệu mới hay bộ đếm của
nó sẽ được tăng lên( nếu trước đó đã đưa vào rồi)
Trang 33Tùy thuộc vào chế độ huấn luyện, bộ lọc sẽ đưa thêm thông tin vào tập dữ liệu những lần khác nhau, chế độ huấn luyện có thể cho phép token nào sẽ tăng vì đã giữ được tổng số email, tổng số email sẽ được cập nhật khi nào có email được huấn luyện, vì thế sẽ dễ dàng biết được kích thước của tập dữ liệu vào bất kỳ thời điểm nào Xây dựng tập dữ liệu từ đầu thường mất nhiều thời gian và email mới
2.3.2 Sửa lỗi, huấn luyện lại
Khi tập dữ liệu đã được xây dựng xong, những lỗi huấn luyện cũng xảy ra trong quá trình bộ lọc Khi điều này xảy ra điều quan trọng là làm sao để đổi lại những thông tin mà nó đã được lưu, nếu thông tin đã được học phải làm sao để bỏ đi bằng cách giảm đi bộ đếm của những token có liên quan mà nó đã được phân lớp và đưa vào, và sau đó nó được học với từ mới đúng, bộ đếm tương ứng cho nó cũng tăng lên, đây gọi là huấn luyện lại
Trong quá trình học lại, phần quan trọng là phải học tất cả những token đã được dùng trong phân lớp gốc bao gồm cả phần đầu (header) của thông điệp và toàn bộ nội dung của nó
2.4 Các bộ lọc thống kê
2.4.1 Bộ phân tích các token và tính giá trị
Khi một thông điệp được xử lý, bộ phân tích biểu hiện (tokenizer) sẽ tách thông điệp ra nhiều thành phần nhỏ và gán cho mỗi biểu hiện (token) một giá trị, giá trị của token là một con số biểu hiện cho khả năng của token đó (tốt hay xấu) dựa trên
sự xuất hiện của nó trong những email trước đó Ví dụ một từ xuất hiện chính trong spam, nó sẽ được gám một giá trị để phản ánh khả năng spam của nó rất cao thuộc
về spam (chẳng hạn như 99%)
Có 2 kỹ thuật thông dụng để tính giá trị cho các token
+ Kỹ thuật của Graham [6]: Graham cho công thức rất đơn giản để xác định xác suất của một token cho trước được cho là spam Hướng tiếp cận của Graham cho rằng nhiều người có tập spam và tập email hợp lệ không bằng nhau và tính xác suất
có hệ số trong tổng số của thông điệp trong tập email được chọn
Trang 34Trong công thức sau, SH và IH là tổng số lần xuất hiện trong spam và email hợp lệ của token được tính toán TS và TI lần lượt là tổng số spam và email trong
tập email được chọn
Kết quả của P như sau: là một con số nằm giữa 0.0 và 1.0, 0.5 là giá trị trung
hòa, những token với xác xuất cao hơn 0.5 được xem như có tính chất spam và thấp hơn được xem như không phải spam Những token có khả năng mạnh được tính ra
có giá trị gần 0.0 hay 1.0
Kỹ thuật của Robinson [6]: Robinson cải tiến kỹ thuật của Graham bằng việc chia giá trị của xác suất trên một token dựa trên số lượng dữ liệu cũ của mỗi token Ông tin rằng những token với rất ít điểm dữ liệu (xảy ra trong lịch sử) sẽ có ít khả năng hơn những token khác với nhiều điểm hơn và đề xuất một cách tính mới để tính xác suất của từng token
N Tổng số lần một token xuất hiện trong những tập dữ liệu cả spam
và những email hợp lệ
X Giá trị giả định của token khi N=0, giá trị tốt nhất là 0.5000
S Hằng số điều chỉnh cho hiệu suất, giá trị hợp lý mặc định là 1
Theo Robinson, trong các trường hợp mà ở đó có rất ít thông tin để xem xét, có một ít dữ liệu, nhưng không thật sự đủ tin cậy
Trước tiên, tính xác suất của một từ dùng kỹ thuật Graham, gọi là P(w) cho từ
Trang 35Robinson đã cải thiện chút ít độ chính xác cho nhiều kiểu khó phân loại, nó thật sự hữu ích trong việc cải tiến việc xác định email hợp lệ và làm giảm sai sót
2.4.2 Phân lớp k Nearest Neighbors (k-NN)
Ý tưởng: kNN là phương pháp truyền thống khá nổi tiếng theo hướng tiếp cận thống kê đã được nghiên cứu trong nhiều năm qua kNN được đánh giá là một trong những phương pháp tốt nhất được sử dụng từ những thời kỳ đầu trong nghiên cứu về phân loại văn bản
Ý tưởng của phương pháp này đó là khi cần phân loại một văn bản mới , thuật toán sẽ xác định khoảng cách (có thể áp dụng các công thức về khoảng cách như Euclide , Cosine , Manhattan , …) của tất cả các văn bản trong tập huấn luyện đến văn bản này để tìm ra k văn bản gần nhất ,gọi là k nearest neighbor – k láng giềng gần nhất , sau đó dùng các khoảng cách này đánh trọng số cho tất cả các chủ đề Khi
đó , trọng số của một chủ đề chính là tổng tất cả các khoảng cách ở trên của các văn bản trong k láng giềng có cùng chủ đề , chủ đề nào không xuất hiện trong k láng giềng sẽ có trọng số bằng 0 Sau đó các chủ đề sẽ được sắp xếp theo giá trị trọng số giảm dần và các chủ đề có trọng số cao sẽ được chọn làm chủ đề của văn bản cần phân loại
Công thức:
Trọng số của chủ đề cj đối với văn bản x được tính như sau : [8]
Trong đó:
y(d i ,c j ) thuộc {0,1} với
y=0: vector văn bản di không thuộc chủ đề c j
y=1: vector văn bản di thuộc chủ đề c j
sim(x,d): độ giống nhau giữa văn bản cần phân loại x và văn bản d i Có
thể sử dụng độ đo consine đề tính sim(x,d i )
(3)
Trang 36Để chọn được tham số k tốt nhất cho thao tác phân loại , thuật toán cần được chạy thử nghiệm trên nhiều giá trị k khác nhau , giá trị k càng lớn thì thuật toán
càng ổn định và sai sót càng thấp
2.4.3 Phân lớp theo kỹ thuật Support Vector Machine (SVM)
Ý tưởng: đây là một phương pháp học tương đối mới được Vapnik [8] giới thiệu năm 1995 để giải quyết các bài toán nhận diện mẫu hai lớp Phương pháp này dựa trên ý tưởng tối thiểu hóa rủi ro cấu trúc, trong đó nhắm đến việc tìm một giả thuyết được đảm bảo rằng sẽ trả về giá trị sai số thật thấp nhất
Một tính chất đặc biệt của Support Vector Machine là khả năng học của nó có thể là độc lập với kích thước của không gian đặc tính Support Vector Machine đo lường độ phức tạp của giả thuyết dựa trên số dư, sử dụng số dư này nó thực hiện phân tách dữ liệu thay vì dựa trên số lượng của các đặc tính
Nói cách khác, SVM là một phương pháp tiếp cận gần đúng thường áp dụng để phân loại hai lớp văn bản Phương pháp này được xác định dựa trên một không gian vector mà trong không gian này vấn đề phải tìm ra một “mặt quyết định” giữa hai lớp sao cho khoảng cách giữa các điểm dữ liệu giữa hai lớp này là lớn nhất
Nếu văn bản cần phân loại nằm về phía nào của mặt quyết định thì nó được phân vào loại văn bản đó Phương pháp SVM thường áp dụng để phân loại hai lớp văn bản nhưng vẫn có thể áp dụng để phân loại nhiều lớp văn bản
Hình 2.3 - Phân loại văn bản theo kỹ thuật Vector Machine (SVM) [8]
Trang 37Công thức :SVM thực chất là một bài toán tối ưu , mục tiêu của thuật toán là
tìm được một không gian H và siêu mặt phẳng quyết định h trên H sao cho sai số
khi phân loại là thấp nhất , nghĩa là kết quả phân loại sẽ cho kết quả tốt nhất
Phương trình siêu mặt phẳng chứa vector di trong không gian như sau :
Như thế vector h(d i ) biểu diễn sự phân lớp của vector d i vào hai lớp Gọi Y i
mang giá trị +1 hoặc -1 , khi đó Y i = +1 văn bản tương ứng với vector d i thuộc lớp
+ và ngược lại nó sẽ thuộc vào lớp - Khi này để có siêu mặt phẳng h sẽ giải bài
toán
Rõ ràng, SVM là mặt phẳng quyết định chỉ phụ thuộc vào các vector hỗ trợ có
khoảng cách đến mặt phẳng quyết định là 1/w i Khi các điểm khác bị xóa đi thì thuật toán vẫn cho kết qủa giống như ban đầu Chính đặc điểm này làm cho SVM khác với các thuật toán khác như kNN , NB vì tất cả dữ liệu trong tập huấn luyện đều được dùng để tối ưu hóa kết quả
2.5 Các thuật giải áp dụng cho quá trình lọc thư spam
2.5.1 Giải thuật xác định kích thước
Giải thuật này cung cấp trọng số phụ cho các token trong tập dữ liệu dataset dựa trên độ tin cậy của token Một token có thể có xác xuất 0.9500, nhưng điều đó không nói lên nhiều về những quyết định được ra trước đó có liên quan đến token đó, ví dụ giá trị của token có thể đến từ hàng trăm bộ phân lớp chính xác của
(4)
(5)
(6)
Trang 38spam hoặc nó có thể được điều chỉnh giá trị từ việc huấn luyện lại hàng giờ vì bị lỗi Nếu một token có liên quan đến nhiều bộ phân lớp lỗi trong quá khứ, không chỉ muốn token này được đánh trọng số khác với các token được tin cậy, mà còn muốn khi token này xuất hiện trong thông điệp đó nó còn cho ta biết kết quả chúng ta tạo ra có thể có sai số cao
Giải thuật xác định kích thước được thiết kế để làm giảm tập đặc trưng bằng việc xác định các đặc trưng có ít hiệu quả nhất trong việc xác định spam một cách chính xác Điều này được thực hiện bằng việc bỏ đi những token trong ma trận quyết định nếu nó không đáng tin cậy để đưa ra quyết định Để biết được mức độ lệch trên kết quả, cần phải tính độ lệch phân lớp sai Tính toán này khác với cách xác định xác suất của token, nhưng chúng cùng dựa vào cùng một dữ liệu Giải thuật xác định kích thước cũng có thể được dùng để tăng tập đặc trưng cùng lúc với việc rút gọn chúng Tìm nhiều token không tin cậy để bỏ đi từ ma trận quyết định, các từ trung tính có tiền sử rất không được tin cậy là mục tiêu chính trong quá trình này
Ví dụ từ “sell” có thể xuất hiện trong spam và email hợp lệ với xác suất gần bằng nhau 50 phần trăm, token này thường không xuất hiện trong ma trận quyết định để xác định kết quả của thông điệp đang xét, bởi vì nó trung tính Nếu token này được nhận biết với số lần lớn bị phân lớp nhằm là spam, nó không chỉ ảnh hưởng đến độ tin cậy của bộ lọc mà còn ảnh hưởng đến khuynh hướng thực sự của thông điệp khi token này xuất hiện Khi một số lượng lớn các token trong thông điệp được tìm thấy trước đây trong các thông điệp bị phân lớp sai, bộ lọc sẽ nhận biết nó không tin cậy vào kết quả và có cách đặc biệt để đo kích thước quyết định của nó
Bước đầu tiên trong xác định độ tin cậy của mỗi token trong tập dữ liệu dataset
là giữ 4 bộ đếm phụ cho mỗi token: Số lần token xuất hiện trong phân lớp sai của spam và trong phân lớp sai của email hợp lệ, và số phân lớp đúng và sai xảy
ra khi token xuất hiện trong thông điệp
Trang 392.5.2 Giải thuật giảm nhiễu Bayesian (Bayesian Noise Reduction)
Giải thuật giảm nhiễu Bayesian (BNR) là một kỹ thuật mới được Jonathan A Zdziarski thiết kế nhằm mục đích cung cấp “bộ não từ vựng” (lexical brain) cho bộ lọc thông minh hơn cho phép bộ lọc có cách nhìn ngôn ngữ tương tự như sự hiểu biết của con người Để hình thành những khái niệm này, sẽ đưa vào một số phần mà bộ lọc spam hiện tại không có đó là ngữ cảnh (context) Xem giảm nhiễu Bayesian như là một cách xác định những từ “ngoài ngữ cảnh” Ví dụ nếu chúng ta có cuộc đàm thoại trực tiếp và nói một điều gì đó ngoài ngữ cảnh câu chuyện đó, có thể có nghĩa hoàn toàn khác và dễ dàng dẫn đến hiểu nhằm Vấn đề này đưa vào phân lớp ngôn ngữ, ở đó một token được sử dụng trong một ngữ cảnh này, nhưng nó lại được sử dụng hoàn toàn trái ngược khi ở ngữ cảnh khác Các bộ lọc ngày nay không có cách nào để xử lý với những từ và cụm từ ngoài ngữ cảnh như thế, bởi vì nó không biết ngữ cảnh đó là gì
BNR xác định dữ liệu ngoài ngữ cảnh bằng việc tạo ra ngữ cảnh cho riêng nó,
nó tạo ra chuỗi ngữ cảnh giả xung quanh text đã có (tên, thân của thông điệp) và sau
đó xác định dữ liệu mâu thuẩn với chính nó trong ngữ cảnh mà nó tạo ra
2.5.3 Thuật toán dựa trên luật RIPPER
Thuật toán phân lớp text RIPPER rất phổ biến trong lĩnh vực phân loại email tự động Sự khác biệt của RIPPER so với những luật lọc chuẩn là RIPPER có thể được sử dụng để phát sinh tự động những luật đánh dấu từ khóa (keyword – sporting) này, ngược lại với phương pháp truyền thống là tạo bằng tay
RIPPER có nhiều ưu điểm, nó là một trong một số ít những thuật toán máy học
có khả năng xử lý được với text tự nhiên, tốc độ xử lý nhanh và có khả năng xử lý tập đặc trưng lớn, kết xuất của RIPPER là một tập các luật lọc chuẩn có thể được sử dụng để phân biệt các lớp text khác nhau Điều này có nghĩa là các luật của nó có thể dễ dàng được tích hợp, ưu điểm nữa của việc phát sinh các luật đánh dấu từ khóa là ở chỗ chúng có thể kiểm tra được, vì vậy chúng có thể được người dùng kiểm tra để tìm ra cái mà người dùng đang nghĩ, khả năng này không có với các thuật toán máy học khác
Trang 40Hạn chế của RIPPER như việc sử dụng các luật cơ bản làm kỹ thuật để lọc email là không rõ ràng, các luật đánh giá từ khóa phải được xây dựng cho mọi nhóm có khả năng xảy ra, và nó dễ dàng bị phát hiện Chúng cũng rất dễ bị giới hạn bởi các luật nhị phân; chúng không đưa vào tính toán số lượng các từ trong một tài liệu, chỉ có sự hiện diện hay có mặt của một từ khóa Do chúng chỉ thực hiện các quyết định nhị phân, chúng không thể kết hợp một cách đánh giá riêng vào trong dự báo của chúng, điều này là rất quan trọng nếu các luật dành cho những nhóm khác nhau đang đối lập nhau đối với quyền sở hữu một thông điệp Các đánh giá riêng là cũng quan trọng đối với các trường hợp trong đó không có nhóm nào có
vẻ thích hợp với thông điệp, trong những trường hợp này, sẽ muốn rằng phải có một nhóm nào đó chấp nhận thông điệp
Giải pháp để giải quyết tốt nhất trong trường hợp này là chuyển thông điệp không có khả năng phân lớp này vào một nhóm chung để người dùng có thể kiểm tra bằng tay sau đó Một hệ thống dựa trên luật không thể học tăng cường được Bất
kỳ khi nào nội dung của một lớp nào đó bị thay đổi, các luật sẽ cần phải được phát sinh lại từ đầu để cập nhật lại thông tin, và điều này có thể dẫn đến việc chiếm dụng CPU không cần thiết, trong một môi trường xây dựng dựa trên các máy chủ lớn, khi
có nhiều người dùng phân loại thư của mình thì có thể dẫn đến quá tải máy chủ