Chương 2. Các kỹ thuật lọc thư rác thư rác
2.2. Các kỹ thuật lọc thư rác
2.2.2. Các kỹ thuật lọc thư rác cơ bản
Đối với lọc thư rác dựa theo luật (rule), các quy tắc được sử dụng để lọc thư rác có thể tạo theo cách thủ công, hoặc tự động.
• Quy tắc cho nội dung thư
Một quy tắc đơn giản có thể trông như thế này:
body LOCAL_DEMONSTRATION_RULE /thư rác/
score LOCAL_DEMONSTRATION_RULE 0.1
describe LOCAL_DEMONSTRATION_RULE test rule
Quy tắc này thực hiện tìm kiếm trong phần thân (body) của thư điện tử có phân biệt chữ hoa chữ thường cho chuỗi chứa ký tự "thư rác" và thêm 0,1 vào điểm của thư điện tử (score) nếu tìm thấy nó. Trong trường hợp này, có thể khớp với trường hợp “thư rácc”.Từ khóa describe dùng để mô tả luật và thông tin này sẽ được đưa vào báo cáo chi tiết khi tính điểm cho thư điện tử.
Trong biểu thức chính quy, \b có thể được sử dụng để chỉ ra sự bắt đầu và kết thúc của từ. Quy tắc sau sẽ không khớp với chuỗi ký tự chứa "thư rácc"
hoặc "1thư rác" mà chỉ khớp với chính xác ký tự “thư rác”.
body LOCAL_DEMONSTRATION_RULE /\bthư rác\b/
Để khớp với các chuỗi ký tự chứa “thư rác” không phân biệt viết hoa và viết thường thì có thể sử dụng /i
body LOCAL_DEMONSTRATION_RULE /\bthư rácb/i score LOCAL_DEMONSTRATION_RULE 0.1
Quy tắc này sẽ khớp với bắt cứ từ “thư rác”, “THƯ RÁC” hay “Thư rác”, viết hoa hay thường đều được.
• Quy tắc cho tiêu đề thư
Bây giờ chúng ta hãy chuyển sang quy tắc tiêu đề. Quy tắc tiêu đề cho phép bạn kiểm tra tiêu đề thư. Thông thường nhất, các quy tắc này kiểm tra Subject, From hoặc To, nhưng chúng có thể được viết để kiểm tra bất kỳ tiêu đề thư nào, kể cả những tiêu đề không chuẩn. Ví dụ sau đây là quy tắc tiêu đề cho ký tự "thư rác".
header LOCAL_DEMONSTRATION_SUBJECT Subject =~ /\bthư rácb/i score LOCAL_DEMONSTRATION_SUBJECT 0.1
Trong các quy tắc này, phần đầu tiên trước dấu = ~ cho biết tên của tiêu đề bạn muốn kiểm tra là gì và phần còn lại là một biểu thức chính quy quen thuộc. Bản thân tên tiêu đề luôn không phân biệt chữ hoa chữ thường, vì vậy quy tắc trên sẽ khớp với chủ đề chứa "thư rác" hoặc “THƯ RÁC”.
Một vài chú ý về cách chấm điểm của quy tắc:
1. Các quy tắc có điểm đặt thành 0 (score=0) hoàn toàn không được áp dụng để lọc
2. Các quy tắc không ghi điểm sẽ được cho điểm là 1,0, trừ khi 3 hoặc 4 là đúng
3. Các quy tắc bắt đầu bằng dấu gạch dưới kép được đánh giá không có điểm và được sử dụng trong các quy tắc meta mà bạn không muốn các quy tắc phụ có điểm.
4. Bất kỳ quy tắc nào bắt đầu bằng T_ sẽ được coi là quy tắc "thử nghiệm" và sẽ được chạy với điểm 0,01(gần 0). Điều này có thể hữu ích vì khi đó bạn không phải lưu điểm cho chúng nếu bạn nghĩ rằng bạn sẽ không giữ chúng.
Khi tạo một quy tắc, nên cho một số điểm thấp để sẽ không ảnh hưởng nhiều đến thư rác, chẳng hạn như 0,1. Xem xét cân nhắc các quy tắc và đảm bảo quy tắc đó kích hoạt khi muốn và không kích hoạt khi không muốn. Sau đó, bắt đầu tăng điểm để nó có tác dụng hơn, nhưng không nên tăng quá mức.
Chúng ta nên cân nhắc kỹ khi có một quy tắc tùy chỉnh có điểm trên 1,0 trừ khi phải chắc chắn rằng quy tắc đó sẽ không nhận được bất kỳ thông báo spam nào. Cũng nên nhớ rằng các quy tắc được viết ra để chỉ so sánh với các tin nhắn không phải là spam và cho chúng điểm tiêu cực để tránh các lỗi dương tính giả. Nói chung dương tính giả có thể gây ra vấn đề vì thư có giá trị có thể bị bỏ qua, nhưng âm tính giả chỉ gây phiền toái nhỏ.
2.2.2.2. Lọc theo nhận dạng
Phương pháp này không xử lý toàn bộ thư hoặc từ ngữ cụ thể nhưng biến đổi thư thành một chữ ký (signature). Điều này có thể được thực hiện theo nhiều cách khác nhau ví dụ như sử dụng một hàm băm. Tuy nhiên, phương pháp này hiệu quả khi kiểm tra những thay đổi nhỏ trong e-mail, chẳng hạn như như một lời chào được cá nhân hóa hoặc các thay đổi nhỏ của thông điệp.
Chữ ký này cần được cập nhật và phân phối rất thường xuyên vì nội dung của thư rác nhanh chóng thay đổi. Quy trình chung để sàng lọc thư rác là xây dựng chữ ký của nó và so sánh nó với các chữ ký của các thư rác trong cơ sở dữ liệu.
Các phương pháp lọc dựa trên chữ ký không chỉ khác nhau về cách chúng xây dựng chữ ký; chúng có thể dựa trên mô hình máy trạm- máy chủ hoặc chia sẻ ngang hàng để phân phối chữ ký. Đặc biệt khi người dùng báo cáo thư rác, điều quan trọng là phải thiết lập ngưỡng báo cáo khi số lượng người dùng báo cáo thư rác vượt qua ngưỡng, thư đó sẽ trở thành thư rác.
Một ví dụ của hệ thống này là Razor, một mạng phân tán, cộng tác, phát hiện và lọc thư rác. Dự án này thông qua đóng góp của người dùng, Razor thiết lập một kênh phân phối và cập nhật liên tục danh mục thư rác được đóng góp bởi chính người dùng. Việc phát hiện được thực hiện với các chữ ký thống kê và ngẫu nhiên giúp phát hiện nội dung thư rác đột biến một cách hiệu quả.
Damiani và cộng sự đã đề xuất một mô hình lọc thư rác cộng tác với các máy chủ e-mail, chia sẻ thông tin qua mạng P2P [2]. Đối với mỗi tin nhắn đã được người dùng báo cáo là thư rác, một chuỗi hàm băm 256 bit được tính
toán. Hai thông điệp được coi là tương tự nếu hàm băm của chúng khác nhau nhiều nhất là 74 bit. Các tác giả sử dụng một kiến trúc ba tầng bao gồm một tầng người dùng, một tầng ngang hàng chứa e-mail máy chủ và một tầng siêu cấp ngang hàng chứa những máy chủ e-mail đóng vai trò thu thập và đánh giá các báo cáo thư rác. Các máy chủ chia sẻ thông tin (thông tin về thư rác) với nhau bằng cách gửi và nhận báo cáo thư rác đến/từ các máy chủ siêu ngang hàng của họ. Máy chủ siêu ngang hàng chia sẻ thông tin của họ với nhau. Giao thức bao gồm chữ ký của thư rác.
Zhou và cộng sự cũng sử dụng mạng P2P [2]. Thay vì một chữ ký duy nhất, họ tạo một tập hợp các mẫu dấu (fingerprint) cho mỗi tin nhắn và phân phối mẫu dấu thông qua hệ thống gọi là DOLR. Mục tiêu là phát hiện thư rác hiệu quả, các mẫu dấu được phân phối trên toàn mạng, chia sẻ những điểm tương đồng về nội dung của thư rác. Trong khi đó, hệ thống phân phối DCC dựa trên một số máy chủ mở duy trì cơ sở dữ liệu chữ ký của các thư rác [2].