• Thứ Năm, 19/05/2005 08:09 (GMT+7)

    Các chiến lược chống virus

    Trên thực tế đã có rất nhiều giải pháp bảo mật được triển khai để chống lại nguy cơ virus máy tính. Tuy nhiên chưa có giải pháp nào thực sự là phương thuốc trị bách bệnh. Thiệt hại do virus gây ra ngày càng lớn đòi hỏi các giải pháp hữu hiệu hơn để bảo vệ các hệ thống máy tính, đặc biệt là các hệ thống máy tính dịch vụ và thương mại.

    Trên thực tế đã có rất nhiều giải pháp bảo mật được triển khai để chống lại nguy cơ virus máy tính. Tuy nhiên chưa có giải pháp nào thực sự là phương thuốc trị bách bệnh. Thiệt hại do virus gây ra ngày càng lớn đòi hỏi các giải pháp hữu hiệu hơn để bảo vệ các hệ thống máy tính, đặc biệt là các hệ thống máy tính dịch vụ và thương mại.

    Virus, trojan horse và sâu chính là các phương tiện tấn công của tin tặc. Thường thì thuật ngữ “virus” được dùng chỉ chung các loại chương trình phá hoại này, tuy nhiên giữa chúng có đôi chút khác biệt:

    Kịch bản tấn công

    Virus tự xâm nhập vào hệ thống máy tính làm việc để thực hiện các lây nhiễm tiếp theo. Tuy nhiên, virus không thể chạy độc lập mà cần có chương trình khác chạy tại máy làm việc để kích hoạt nó.

    Sâu (worm) tương tự như virus, ngoại trừ việc nó chỉ lây lan giữa các hệ thống máy tính khác nhau và thường chỉ tồn tại trong bộ nhớ. Sâu là chương trình có thể chạy độc lập, cần dùng đến tài nguyên của máy làm việc để thực thi.

    Các chương trình trojan horses (trojan) xâm nhập vào hệ thống máy tính bằng cách nguỵ trang dưới các chương trình hữu ích. Tuy nhiên để được kích hoạt, trước hết trojan horse cần thuyết phục người sử dụng chấp nhận và chạy chúng.

    Chiến lược bảo vệ

    Chúng ta hãy hình dung một kịch bản trong đó virus cố gắng bằng mọi cách xâm nhập vào hệ thống máy tính của chúng ta. Còn chúng ta thì nghĩ cách chống lại chúng.

                                  Hình 1 - Mô hình chốt chặn

     
    Để có thể phá hoại được một hệ thống, trước hết virus cần xâm nhập vào hệ thống đó, tìm ra các lỗ hổng bảo mật hoặc điểm yếu của hệ thống để triển khai tấn công. Rõ ràng kịch bản tấn công của virus mang đến cho ta hai chiến lược chính để phòng chống. Đó là ngăn ngừa virus xâm nhập hệ thống và giảm thiểu thiệt hại của hệ thống trong trường hợp bị xâm nhập. Nói theo khía cạnh về kiểm soát truy xuất thì có hai chiến lược đó là kiểm soát việc truy xuất từ bên ngoài hệ thống và kiểm soát việc truy xuất ngay bên trong hệ thống đó.

    Hai kỹ thuật tương ứng để triển khai các chiến lược lần lượt là đặt các chốt chặn và mô hình sandbox. Với chiến lược thứ nhất, chúng ta phải đặt các chốt chặn tại các điểm vào của hệ thống cần bảo vệ. Các chốt chặn này thực chất là các chương trình kiểm tra, phân tích để phát hiện virus. Với mô hình sandbox, chúng ta tập trung vào việc giới hạn sự truy xuất của các chương trình không tin cậy tới dữ liệu và tài nguyên của hệ thống. Sự truy xuất tới hệ điều hành được kiểm soát chặt chẽ theo nguyên tắc ít đặc quyền nhất (The Least Privilege). Nghĩa là chương trình chỉ được cấp quyền truy xuất tối thiểu đủ để thực hiện công việc, nhờ thế sẽ giảm thiểu rủi ro cho hệ thống khi bị xâm nhập.

    Chốt chặn

    Trước hết cần xác định các con đường (hay các điểm vào) từ đó virus có thể xâm nhập vào máy tính. Tại các điểm vào đó chúng ta đặt các chương trình kiểm tra (hình 1). Ví dụ các chương trình firewall được cài đặt để kiểm soát luồng thông tin vào ra một hệ thống. Kỹ thuật ký mã (code signing) hoặc mã mang theo bằng chứng (proof-carrying code) được sử dụng để kiểm tra tính tin cậy và toàn vẹn của thông tin, đảm bảo thông tin đến từ các nguồn tin cậy và bản thân thông tin không bị làm giả trong quá trình truyền.

     
    Tuy vậy chúng ta cần lưu ý việc kết hợp sử dụng kỹ thuật firewall và ký mã là không khả thi vì kỹ thuật firewall yêu cầu duyệt từng gói tin và có thể thêm vào đó các sửa đổi cần thiết. Trong khi kỹ thuật ký mã không cho phép thông tin bị sửa đổi để đảm bảo tính toàn vẹn.

    Mặc dù các kỹ thuật mới được triển khai rầm rộ song các phần mềm chống virus ngày càng đóng vai trò quan trọng. Hàng chục ngàn virus đã tồn tại và virus mới xuất hiện hàng ngày hàng giờ. Nhận biết những virus này để bảo vệ máy tính là công việc vô cùng khó khăn nếu không có các chương trình chống virus. Thực tế hầu hết các chương trình chống virus đều triển khai kỹ thuật tìm kiếm kinh nghiệm (heuristics) để phát hiện virus. Kỹ thuật tìm kiếm kinh nghiệm bao gồm hai nhóm là tìm kiếm tĩnh (static) và tìm kiếm động (dynamic).

    Tìm kiếm tĩnh duyệt toàn bộ file, phân tích cấu trúc của nó và tìm kiếm các mẫu điển hình của virus. Sau đó sử dụng các thông tin này để đưa ra quyết định file có nhiễm virus hay không. còn tìm kiếm động thiết lập một môi trường kiểm soát ảo trong đó các file cần kiểm tra được mở ra (các file tài liệu) hoặc thực thi. Các hành vi lúc run-time của quá trình thử nghiệm sẽ được ghi lại và dựa vào các luật bảo mật đã được thiết lập sẵn, hệ thống sẽ đưa ra quyết định.

    Chiến lược cơ bản để sử dụng kỹ thuật tìm kiếm kinh nghiệm là duy trì một cơ sở dữ liệu chứa các thông tin về virus. Tuy nhiên nếu như thông tin về virus mới không được cập nhật đầy đủ (hoặc các luật bảo mật không đầy đủ trong trường hợp tìm kiếm động) thì các chương trình chống virus trở thành vô dụng.

    Mô hình Sandbox

                                  Hình 2 - Mô hình sandbox

     

    Như đã đề cập, các chương trình chống virus không thể phát hiện được virus mới, do vậy không bảo vệ được máy tính trước những virus này. Giải thuật cho việc phát hiện mọi virus là khó và không khả thi. Trong trường hợp này, chúng ta chỉ mong giảm thiểu được thiệt hại bằng việc giới hạn sự truy xuất của virus tới dữ liệu và tài nguyên của hệ thống. Mô hình áp đặt các giới hạn này được biết đến với cái tên “sandbox” (hình 2). Các loại mã ngoại lai (foreign code) hay các chương trình không tin cậy sẽ phải chạy dưới sự kiểm soát của mô hình này.

    Có nhiều người cho rằng máy tính bị nhiễm virus là do hay kết nối vào Internet. Nếu bạn thường xuyên duyệt web có lẽ bạn cũng đồng ý như vậy. Nhưng nếu chúng ta chỉ duyệt web không thôi thì khả năng máy tính bị nhiễm virus rất thấp. Vì hầu hết các trình duyệt web đều đã triển khai mô hình sandbox, ngay bản thân trình duyệt cũng là đối tượng kiểm soát của mô hình này.

    Mô hình sandbox cho Java applet có lẽ nổi tiếng nhất. Khi người dùng duyệt trang web có chứa applet, trình duyệt tự động tải về và chạy applet dưới sự kiểm soát chặt chẽ của mô hình này.

    Tuy nhiên, kỹ thuật sanbox có hạn chế là đòi hỏi sự hỗ trợ của hệ điều hành để giám sát và lọc các lời gọi hệ thống.

    Kết luận

    Chưa bao giờ thế giới lại dành nhiều quan tâm đến bảo mật như lúc này. Các cuộc tấn công gần đây gây hoang mang lớn trong cộng đồng người dùng. Đối với người dùng, virus dường như thật đáng sợ và hiện hữu mọi lúc mọi nơi. Thế nhưng sự thật không chỉ có duy nhất bức tranh mầu tối đó. Virus chỉ có thể xâm nhập vào máy tính của người dùng bằng những con đường nhất định và sẽ là vô hại nếu bạn kiểm soát được các con đường này.

    Mặc dù các chiến lược chống virus mang lại những kết quả ngăn chặn nhất định nhưng bản thân chúng vẫn còn nhiều hạn chế. Chẳng hạn chiến lược chốt chặn có thể không phát hiện được virus, hoặc virus có thể làm giả bằng chứng để qua mặt các chương trình kiểm tra... Với mô hình sandbox, sự truy xuất của chương trình bị giới hạn do vậy các tính năng sẽ bị hạn chế.

    Sự hội tụ của các chiến luợc có thể đưa đến một giải pháp toàn vẹn hơn cho vấn đề virus. Đó cũng chính là xu hướng phòng chống virus hiện tại. Quả thực hiện nay chúng ta triển khai cùng lúc rất nhiều kỹ thuật khác nhau để bảo vệ máy tính.

    Nguyễn Đình Hân
    nguyendinh.han@ait.ac.th
    Trường ĐH SP Kỹ Thuật Hưng Yên

    ID: A0504_108