Tuesday, July 17, 2007

Đòn hi sinh của đám spammer

Tôi dành nguyên buổi tối ngày hôm qua để khắc phục sự cố trên hệ thống chống spam. Lũ spammer thật khốn nạn, chúng đẻ ra đủ mọi cách để chơi xấu. Nếu như lần trước là trò ném đá dấu tay thì lần này chúng đánh thẳng vào hệ thống chống spam của tôi. Đúng là quân bất nhân!

Mấy ngày gần đây không ngày nào tôi không bị khách hàng than phiền về trình trạng chập chờn của hệ thống chống spam, khi mà họ không thể nhận được email từ phía đối tác gửi vào.
Tìm hiểu log, tôi phát hiện ra DSPAM, một phần mềm quan trọng trong hệ thống chống spam cứ vài phút lại lăn ra chết cứng, mặc kệ tôi đã tái khởi động cũng như điều chỉnh các thông số như thế nào. Tôi đã sử dụng phần mềm này được hơn 1 năm nay và đây là lần đầu tiên tôi thấy tình trạng này. Trước giờ nó rất ổn định, chỉ đôi lần bị quá tải chứ chưa bao giờ chết bất đắt kì tử như thế này. Đám spammer lại giở trò gì nữa chăng? Tôi quyết định biên dịch lại DSPAM, mở tính năng debug để xem chuyện gì đã xảy ra. Để chắc ăn, tôi khởi động lại toàn bộ hệ thống chống spam rồi đặt một cái tail cùng một cái strace và một cái tcpdump để vừa theo dõi thông tin debug, vừa xem xét diễn biến bên trong của phần mềm đang gặp lỗi, cũng như chộp các packet gửi đến hệ thống của tôi.

Tình hình có vẻ căng àh, lúc mới khởi động thì hệ thống vẫn chạy ngon nhưng chỉ cần 5' hoặc 10', thằng DSPAM lại lăn ra chết. Nó không chết hẳn, mà chiếm trọn CPU và RAM trên hệ thống, làm cho các thành phần khác cũng cứng đơ. Nhìn vào thông tin debug, tôi thấy nó đang xử lí một cái spam gửi đến địa chỉ mailer-daemon@mydomain.com. Thằng strace cũng đang dừng lại ở chỗ đó. Tôi kiên nhẫn chờ 5', 10' rồi 15' nhưng nó vẫn chưa xử lí xong nữa. Toàn bộ hệ thống gần như đứng yên, spam từ ngoài vẫn ào ạt gửi vào, nằm sắp lớp như cá mồi trong mấy cái hàng đợi.

Tôi lướt thử qua nội dung cái spam mà thằng DSPAM đang xử lí. Chà, sao trông nó kì cục vậy nè, chẳng có bất kì đoạn text nào trong đó, chỉ có những chuỗi rất dài phân cách với nhau bởi chuỗi kí tự =3D. DSPAM rất được đám sysadmin như tôi ưa chuộng, có lẽ nào cái spam này được gửi đi với một nhiệm vụ kết liễu phần mềm này? Tôi không dám chắc điều đó nhưng quả thật trong vài ngày vừa qua, tôi chứng kiến rất nhiều spam kiểu như thế này gửi vào hệ thống của mình. Thằng DSPAM hễ đụng phải đám spam này là lại lăn ra chết. Có vẻ như sau khi thất bại trong cuộc chiến với Bayesian filtering, đám spammer đã chơi đòn hi sinh, sử dụng lực lượng cảm tử để tiêu diệt hết những phần mềm triển khai ý tưởng của Paul Graham. Một fuzzer dành riêng cho phần mềm chống spam chăng?

Tôi sẽ gửi báo cáo cho tác giả của DSPAM và Internet Storm Center, hi vọng họ sẽ tìm ra được manh mối. Giải pháp tạm thời là chặn tất cả các spam đáng nghi kể trên không cho chúng đụng tới bé DSPAM nữa!

1 comment:

Anonymous said...

Hình như không phải là đòn hi sinh, mà là đòn tấn công trực tiếp ^^