Nghiên cứu xây dựng hệ thống lọc thư rác có khả năng lọc thư rác tiếng Anh và tiếng Việt
BỘ BƯU CHÍNH VIỄN THÔNG BÁO CÁO ĐỀ TÀI Nghiên cứu xây dựng hệ thống lọc thư rác có khả năng lọc thư rác tiếng Anh và tiếng Việt Mã số: 100-06-KHKT-RD Chủ trì đề tài: TS. Từ Minh Phương Tham gia thực hiện: ThS. Phạm Văn Cường ThS. Nguyễn Duy Phương KS. Hoàng Trọng Huy Hà nội 11-2006 2 Mục lục Mở đầu 4 Chương 1: Thư rác và tác hại của thư rác 6 1.1. Định nghĩa thư rác 6 1.2. Các loại thư rác 6 1.3. Tác hại của thư rác 7 1.4. Quy trình và thủ đoạn gửi thư rác 8 1.4.1. Thu thập địa chỉ email 8 1.4.2. Tìm kiếm các máy tính trên Internet cho phép gửi thư 9 Chương 2: Các giải pháp phòng chống thư rác 12 2.1. Lọc thư thông qua địa chỉ IP 12 2.1.1. Sử dụng danh sách đen (Blacklists) 12 2.1.2. Sử dụng danh sách các địa chỉ tin cậy (Safe Sender Lists) 12 2.2. Lọc thư theo nội dung 13 2.2.1. Lọc thư rác dựa vào các dấu hiệu nhận biết 13 2.2.2. Lọc thư rác thông qua bỏ phiếu trên các danh sách trắng 14 2.2.3. Lọc thư sử dụng phương pháp heuristic 14 2.2.4. Lọc thư sử dụng phương pháp xác suất thống kê và học máy 15 2.3. Các phương pháp khác 16 2.3.1. Yêu cầu xác thực thư 16 2.3.2. Xác thực tự động 17 2.3.3. Yêu cầu trả tiền 17 2.3.4. Phản công 17 Chương 3: Lọc thư bằng cách phân loại tự động theo nội dung 19 3.1. Giới thiệu chung 19 3.2. Biểu diễn nội dung thư 20 3.3. Các phương pháp phân loại 22 3.4. Lọc thư sử dụng phân loại Bayes đơn giản 25 3.5. Lọc thư sử dụng Support Vector Machines (SVM) 28 3.6. Lọc thư tiếng Việt 31 3.6.1. Tình hình nghiên cứu và các vấn đề cần giải quyết 31 3.6.2. Biểu diễn thư bằng các đặc trưng - từ 33 3.6.3. Lựa chọn số lượng đặc trưng 34 3.6.4. Phân loại đồng thời thư tiếng Việt và thư tiếng Anh 35 3 3.6.5. Tiếng Việt có dấu và không dấu 36 3.7. Thử nghiệm và kết quả 36 3.7.1. Dữ liệu thử nghiệm 36 3.7.2. Phương pháp thử nghiệm 37 3.7.3. So sánh phương pháp phân loại 37 3.7.4. Lựa chọn độ dài và số lượng đặc trưng 38 3.7.5. Phân biệt theo ngôn ngữ trước khi lọc 39 3.7.6. Nhận xét về kết quả thử nghiệm 39 Chương 4. Xây dựng hệ thống lọc thư rác theo nội dung 41 4.1. Vị trí hệ thống lọc thư 41 4.2. Kiến trúc hệ thống lọc thư 42 4.3. Các thành phần chức năng 44 4.4. Thiết kế chi tiết 45 4.5. Sử dụng chương trình 49 4.6. Thử nghiệm hệ thống 51 Kết luận 53 Tài liệu tham khảo 54 4 Mở đầu Thư rác (spam) là thư điện tử được gửi hàng loạt với nội dung mà người nhận không mong đợi, không muốn xem, hay chứa những nội dung không liên quan đến người nhận và thường được sử dụng để gửi thông tin quảng cáo 1 . Do có giá thành tương đối thấp so với các phương pháp quảng cáo khác, thư rác hiện chiếm một tỷ lệ lớn và ngày càng tăng trong tổng số thư điện tử được gửi qua Internet. Sự xuất hiện và gia tăng thư rác không những gây khó chịu và làm mất thời gian của người nhận mà còn ảnh hưởng tới đường truyền Internet và làm chậm tốc độ xử lý của máy chủ thư điện tử, gây thiệt hại lớn về kinh tế. Để loại bỏ hoặc giảm thiểu ảnh hưởng của thư rác, nhiều cách tiếp cận khác nhau đã được nghiên cứu và sử dụng. Giải pháp đấu tranh với thư rác rất đa dạng, bao gồm từ các cố gắng về pháp lý trong việc xây dựng luật ngăn chặn phát tán thư rác cho tới những giải pháp kỹ thuật nhằm phát hiện và ngăn chặn thư rác trong những giai đoạn khác nhau của quá trình tạo và phát tán thư. Trong số giải pháp được sử dụng, lọc thư theo nội dung đang là một trong những giải pháp được sử dụng rộng rãi và có triển vọng nhất. Lọc thư theo nội dung là phương pháp phân tích nội dung thư để phân biệt thư rác với thư bình thường, kết quả phân tích sau đó được sử dụng để quyết định chuyển tiếp thư đến người nhận hay không (trong phạm vi nghiên cứu này, nội dung thư được giới hạn là những nội dung trình bày dưới dạng văn bản). Do việc lọc theo nội dung đòi hỏi phân tích phần văn bản chứa trong tiêu đề hay nội dung thư, thuật toán lọc nội dung cần được xây dựng phù hợp với ngôn ngữ mà thư sử dụng. Hiện nay, nhiều thuật toán lọc nội dung hiệu quả đã được nghiên cứu và sử dụng cho thư viết bằng tiếng Anh. Trong vòng vài năm gần đây, việc sử dụng Internet nói chung và thư điện tử nói riêng ngày càng phổ biến tại Việt nam. Một trong những hệ quả của sự phát triển này là ngày càng có nhiều thư rác gửi tới các tài khoản thư điện tử tại Việt nam (tài khoản có đuôi .vn). Những thư rác này bao gồm cả thư viết bằng tiếng Anh và thư viết bằng tiếng Việt. Việc xuất hiện ngày càng nhiều thư rác tiếng Việt đặt ra yêu cầu cấp thiết phải có những phương pháp lọc thư có thể xử lý được thư rác loại này. Do các thuật toán lọc thư thông dụng mới chỉ được nghiên cứu và thử nghiệm cho tiếng Anh, để có thể sử dụng giải pháp lọc nội dung cho thư tiếng Việt cần 1 Định nghĩa về thư rác chỉ mang tính tương đối do các khái niệm như “không mong đợi”, “không liên quan” có thể phụ thuộc vào từng người nhận cụ thể. 5 nghiên cứu làm rõ hiệu quả của thuật toán khi phân tích nội dung thư viết bằng tiếng Việt. Bên cạnh đó cần thực hiện những cải tiến cho phù hợp khi chuyển từ phân loại nội dung tiếng Anh sang phân loại nội dung tiếng Việt. Để giải quyết những vấn đề vừa nêu, trong phạm vi đề tài này, chúng tôi tiến hành nghiên cứu một số giải pháp lọc nội dung cho thư rác tiếng Việt và tiếng Anh. Nội dung nghiên cứu bao gồm thử nghiệm làm rõ khả năng lọc thư tiếng Việt, đề xuất và phân tích so sánh các cải tiến với thuật toán, thử nghiệm trên dữ liệu thực. Sau khi thử nghiệm so sánh, giải pháp lọc thư có hiệu quả cao sẽ được cài đặt trong một bộ lọc thư có khả năng tích hợp vào máy chủ thư điện tử. 6 Chương 1: Thư rác và tác hại của thư rác 1.1. Định nghĩa thư rác Hiện nay chưa có một định nghĩa hoàn chỉnh và chặt chẽ về thư rác. Có quan điểm chỉ coi thư rác là những thư quảng cáo không được yêu cầu (Unsolicited Commercial Email - UCE), có quan điểm có thư rác với nghĩa rộng hơn, bao gồm cả thư quảng cáo, thư nhũng lạm (quấy rối), và những thư có nội dung không lành mạnh (Unsolicited Bulk Email – UBE). Dưới đây sẽ đưa ra một định nghĩa thông dụng nhất về thư rác và giải thích các đặc điểm của nó để phân biệt thư rác với thư thông thường. 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. “Thư không yêu cầu” ở đây nghĩa 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” nghĩa là bức thư mà 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 và các bức thư này có nội dung tương tự nhau. Một bức thư được gọi là thư rác chỉ khi nó là thư không yêu cầu và được gửi hàng loạt. Nếu thư rác chỉ là thư không mong muốn thì nó có thể là những bức thư làm quen, được gửi lần đầu tiên, còn nến thư rác chỉ là thư được gửi hàng loạt thì nó có thể là những bức thư gửi cho khách hành của các công ty, các nhà cung cấp dịch vụ. Như định nghĩa ở trên, thư rác là thư không yêu cầu và được gửi hàng loạt. Nhưng yếu tố quan trọng nhất để phân biệt thư rác với thư thông thường phải là ở nội dung bức thư. Khi một người nhận được thư rác, người đó không thể xác định được thư có được gửi hàng loạt hay không nhưng có thể nói chính xác đó là thư rác sau khi xem nội dung thư. Đặc điểm này chính là cơ sở cho giải pháp phân loại thư rác bằng cách phân tích nội dung thư. 1.2. Các loại thư rác Đa số thư rác là thư quảng cáo cho hàng hoá hoặc dịch vụ. Tuy nhiên cũng tồn tại một lượng lớn thư rác mang những nội dung khác. Các thư rác không mang nội dung quảng cáo hàng hoá hay dịch vụ có thể phân chia thành: • Thư có nội dung chính trị: do các tổ chức hay cá nhân hoạt động chính trị gửi trực tiếp tới người dùng thư điện tử để phục vụ mục đích quảng bá, tuyên truyền hay tạo quan hệ trực tiếp. Hiện nay tại Việt nam, thư rác có nội dung chính trị hầu hết là của các tổ chức phản động ngoài nước gửi về và cần đặc biệt ngăn chặn. 7 • Thư từ thiện: do các tổ chức hay cá nhân hoạt động từ thiện gửi với nội dung yêu cầu quyên góp hay trợ giúp. Người gửi thư dạng này có thể không nhận thức được họ đang gửi thư rác do có sự biện hộ từ mục đích gửi thư. • Thư có nội dung tôn giáo: dùng để tuyên truyền quảng bá cho các tổ chức hoặc hoạt động tôn giáo. Trong số thư những thư quảng cáo, một số dạng hàng hoá và dịch vụ chiếm tỷ trọng đặc biệt lớn. Dưới đây là kết quả phân tích thống kê các thư rác gửi qua máy chủ hotmail.com trong năm 2003 và 2004 do Microsoft thực hiện [Hulten - trends]. Bảng 1.1: Thống kê các dạng thư rác tại máy chủ Sản phẩm quảng cáo Năm 2003 Năm 2004 Quảng cáo liên quan đến tình dục (không đồ hoạ) 17% 34% Tranh ảnh khiêu dâm 13% 7% Bảo hiểm 1% 4% Quảng cáo thuốc 8% 10% Tài chính 12% 13% Du lịch, sòng bạc 2% 3% Bản tin 9% 6% Các sản phẩm có xuất sứ đáng ngờ (văn bằng giả.v.v.) 20% 10% Scam 8% 6% Các dạng quảng cáo khác 13% 8% 1.3. Tác hại của thư rác Thư rác hiện chiếm một tỷ lệ rất lớn trong tổng số thư điện tử được gửi qua Internet. Theo các thống kê khác nhau, thư rác chiếm từ 71% đến 87% lượng thư gửi qua các máy chủ thư điện tử. Lượng thư rác quá lớn 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. Có thể kể ra một số tác hại của thư rác: - Thư rác gây thiệt hại về kinh tế 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. - Thư rác có thể làm đầy hộp thư người nhận và do vậy làm thất lạc những thư bình thường đến sau. 8 - Thư rác làm tốn thời gian do người nhận phải mở thư và xoá thư khỏi hộp thư của mình. - Thư rác gây tâm lý xấu đối với người sử dụng thư điện tử. Theo thống kê tại http://www.pewinternet.org, 25% người sử dụng thư điện tử coi thư rác là trở ngại lớn khi sử dụng dịch vụ Internet này. - Thư rác chiếm một phần đường truyền Internet và làm tốn thời gian xử lý của máy chủ. 1.4. Quy trình và thủ đoạn gửi thư rác Để phát tán thư rác, những người gửi thư rác phải có được những điều kiện sau: một là có danh sách địa chỉ email nhận thư, hai là có các server cho phép gửi thư, ba là phải soạn được nội dung thư theo yêu cầu quảng cáo và qua mặt được các bộ lọc nội dung, cuối cùng cần có những chương trình để gửi thư đi. 1.4.1. Thu thập địa chỉ email Để gửi thư rác đi, người gửi thư rác cần phải có một danh sách các địa chỉ email cần gửi. Danh sách địa chỉ email này có thể thu thập được từ nhiều nguồn khác nhau, họ có thể mua từ các trang web thương mại có nhiều thành viên đăng ký hoặc sử dụng các kỹ thuật dưới đây để có được địa chỉ email của đối tượng cần gửi thư. Người gửi thư rác (hoặc đối tác của họ) thường tung ra các trang web giả để bẫy người dùng gửi địa chỉ email cho họ. Kỹ thuật này được gọi là Phishing email. Hình 1.1: Ví dụ về trang web lấy cắp địa chỉ email của người dùng 9 Người gửi thư rác còn sử dụng các máy tìm kiếm chỉ để tìm kiếm địa chỉ email trên các trang web. Các máy tìm kiếm này sẽ tìm kiếm những trang có kí hiệu “@” và sẽ tách địa chỉ email từ đó ra. Những chương trình tìm kiếm email theo kiểu như vậy còn được gọi là spambots. Danh sách các địa chỉ cũng có thể được sinh tự động theo một cơ chế nào đó để xác suất tồn tại của địa chỉ sinh tự động 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à: nguyenvannam + @ + fpt.com.vn Có thể sinh ra các địa chỉ sau: nguyenvannam1@fpt.com.vn, nguyenvannam2@fpt.com.vn, nguyenvannam1982@fpt.com.vn, nguyenvannam1983@fpt.com.vn, Để xác định một địa chỉ email có tồn tại hay không, những người gửi thư rác sẽ gửi một bức thư tới tất cả các hòm thư trong danh sách sinh tự động. Nếu hòm thư đó tồn tại và chủ nhân của nó mở bức thư đó ra thì sẽ có một chương trình được kích hoạt thông báo về sự tồn tại của địa chỉ cho người gửi thư rác. Cách này còn gọi là sinh địa chỉ email theo kiểu từ điển. 1.4.2. Tìm kiếm các máy tính trên Internet cho phép gửi thư Muốn gửi được thư rác, người gửi thư rác cần có trong tay 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. Hình ảnh sau đây là trang 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.2: Một số website của các công ty gửi thư rác 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). 10 Hình 1.3: Minh họa cách gửi thư rác qua mail server (open relay) Trên mạng Internet thường có rất nhiều mail server cho phép chuyển tiếp thư. Người gửi thư rác hay 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 những mail server dạng này thường sớm bị đưa vào danh sách đen (danh sách những địa chỉ IP bị chặn) của các bộ lọc thư rác và không thể tiếp tục gửi thư rác được nữa. Một loại server khác là các proxy cho phép gửi thư cũng được người gửi thư rác đặc biệt yêu thích. Mục đích của những proxy này 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. Người gửi thư rác lợi dụng điểm này để phát tán thư rác. Khi sử dụng những proxy này, Người gửi thư rác hầu như không bị phát hiện. Mặt khác, việc lợi dụng này thường được lâu dài vì những người quản lý proxy không quan tâm tới việc proxy có bị liệt kê trong danh sách đen của các bộ lọc hay không (vì mục đích chính của proxy không phải để gửi thư). Ngoài hai cách trên, những người gửi thư rác còn thuê các máy tính “ma” để gửi thư rác. Vì đâ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. Thêm nữa việc thuê các máy tính này lại khá rẻ nên có tới 40%-60% người gửi thư rác bắt đầu từ chiêu thức này. Không chỉ dừng lại ở việc đi thuê máy tính ma, những người gửi thư rác (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 Vào đầu năm 2005, Microsoft đã tiến hành khảo sát thử một máy tính bị Open Mail Relay Mạng trung gian người dùng cục bộ Gửi thư rác Nhận thư rác ISP [...]... Phân loại đồng thời thư tiếng Việt và thư tiếng Anh Đối với một người sử dụng tài khoản thư điện tử tại Việt nam (đuôi vn), ngoài thư điện tử tiếng Việt bao gồm thư rác và thư bình thư ng còn có thư tiếng Anh cũng bao gồm cả thư rác và thư bình thư ng (chưa kể tới thư bằng ngoại ngữ khác) Như vậy giải pháp lọc thư cần cho phép xử lý cả thư tiếng Anh và tiếng Việt Có thể có hai cách giải quyết vấn đề... phân biệt được thư tiếng Anh, thư tiếng anh sẽ được lọc riêng Hiệu quả phân loại chung sau đó được lấy bằng trung bình cộng của phân loại cho thư tiếng Việt và thư tiếng Anh 35 3.6.5 Tiếng Việt có dấu và không dấu Nhiều thư tiếng Việt, kể cả thư rác, được viết không có dấu Như vậy cùng một từ thư trong thư có dấu có thể tương ứng với hai đặc trưng là thư và “thu” Tương tự phần 3.3 có hai cách để... đề này • Cách thứ nhất là phân chia thư nhận được thành tiếng Anh và tiếng Việt, sau đó tiến hành phân loại thư tiếng Anh riêng và thư tiếng Việt riêng Tất nhiên, có thể có trường hợp trong một thư có cả tiếng Việt và tiếng Anh nhưng tỷ lệ này không nhiều • Cách thứ hai là xây dựng một bộ phân loại chung cho cả tiếng Anh và tiếng Việt Cách thứ hai đơn giản hơn nhưng có thể gặp vấn đề khi lựa chọn tham... Tình hình nghiên cứu về lọc thư rác tại Việt nam Ở Việt nam, cùng với sự phổ biến nhanh chóng của Internet trong vài năm gần đây, số lượng thư rác viết bằng tiếng Việt, nhắm vào những tài khoản thư điện tử tiếng Việt (có đuôi vn) cũng tăng lên nhanh chóng Tình trạng này đặt ra vấn đề nghiên cứu các giải pháp phát hiện thư rác cho thư tiếng Việt Vấn đề này bắt đầu được một số nhóm nghiên cứu tại các... qua được hệ thống lọc Bởi vậy tỉ lệ lọc thư rác của hệ thống này không bao giờ vượt ngưỡng 70% Do khả năng lọc thư chính xác (không chặn nhầm thư hợp pháp) và dễ triển khai nên hệ thống này thư ng được dùng để lọc thư tại phía server 13 2.2.2 Lọc thư rác thông qua bỏ phiếu trên các danh sách trắng Hoạt động của bộ lọc dạng này là tìm xem các từ ở trong danh sách đen/trắng có nằm trong bức thư mới tới... lựa chọn giải pháp lọc nội dung cho thư tiếng Việt cần chú ý tới một số vấn đề sau Thứ nhất, cần lựa chọn phương pháp tách từ tiếng Việt vừa nhanh vừa cho kết quả phân loại tốt Thứ hai, cần giải quyết vấn đề thư viết bằng tiếng Việt có dấu và không dấu Thứ ba, cần kết hợp lọc thư cho cả thư viết bằng tiếng Anh và thư viết bằng tiếng Việt Thứ tư, cần xác định chất lượng lọc thư tiếng Việt khi sử dụng... suất thư là thư rác lớn hơn xác suất thư bình thư ng và thư sẽ được gán nhãn thư rác Giá trị biểu thức (2) nhỏ hơn 1 cho kết quả ngược lại Tuy nhiên, đối với bài toán lọc thư, lỗi phân loại thư rác thành thư thường dễ chấp nhận hơn nhiều so với phân loại nhầm thư thường thành thư rác Do vậy, không thể chỉ đơn thuần gán cho thư nhãn có xác suất điều kiện lớn hơn Giả sử việc phân loại thư rác thành thư thường... biệt thư tiếng Anh và thư tiếng Việt Mặc dù có những giải pháp phức tạp hơn được đề xuất cho vấn đề này, ở đây chúng tôi sử dụng một giải pháp rất đơn giản Khi lựa chọn đặc trưng, các đặc trưng được đánh dấu riêng tiếng Việt hoặc tiếng Anh và lưu vào bảng băm Khi một thư xuất hiện, 20 đặc trưng đầu tiên của thư sẽ được băm vào bảng tiếng Việt và tiếng anh Nếu số lượng băm trúng trong bảng tiếng Việt. .. không hợp lý, hệ thống thư điện tử thông thư ng bao giờ cũng nhận được cả thư tiếng Việt và tiếng Anh Vấn đề phân loại văn bản tiếng Việt và tình hình nghiên cứu trong nước Về bản chất, lọc thư theo nội dung là trường hợp riêng của phân loại văn bản Bài toán phân loại văn bản tiếng Việt là một trong những nội dung nghiên cứu được chú ý trong vài năm gần đây với một số kết quả nghiên cứu đã được công... 3.3) Một số hệ thống lọc thư được thư ng mại hoá cũng sử dụng lọc nội dung như phương pháp lọc chính [gmail, yahoo, hotmail] Tuy nhiên, các nghiên cứu về lọc nội dung mới chỉ tập trung vào trường hợp thư điện tử viết bằng tiếng Anh Do nội dung thư phục thuộc vào đặc điểm ngôn ngữ nên khi phân loại thư trên những ngôn ngữ khác, cần có những nghiên cứu làm rõ vấn đề tiền xử lý ngôn ngữ và khả năng áp dụng . VIỄN THÔNG BÁO CÁO ĐỀ TÀI Nghiên cứu xây dựng hệ thống lọc thư rác có khả năng lọc thư rác tiếng Anh và tiếng Việt Mã số: 100-06-KHKT-RD Chủ trì đề tài:. tôi tiến hành nghiên cứu một số giải pháp lọc nội dung cho thư rác tiếng Việt và tiếng Anh. Nội dung nghiên cứu bao gồm thử nghiệm làm rõ khả năng lọc thư tiếng Việt, đề xuất và phân tích. pháp lọc thư có hiệu quả cao sẽ được cài đặt trong một bộ lọc thư có khả năng tích hợp vào máy chủ thư điện tử. 6 Chương 1: Thư rác và tác hại của thư rác 1.1. Định nghĩa thư rác Hiện