Thiết kế chương trình

Một phần của tài liệu Nghiên cứu lỗ hổng bảo mật Cross-Site Scripting và xây dựng chương trình phát hiện sâu mã độc phát tán (Trang 50)

Bình thường khi một HTTP request gửi đi nó sẽ phải qua bộ lọc để thực hiện lọc dữ liệu gửi đi. Đây chỉ là bộ lọc đơn giản chủ yếu để loại bỏ sai sót trong dữ liệu của HTTP Request.

Hình 27: Quá trình gửi HTTP request và nhận HTTP response

Mục tiêu của chương trình là phát hiện sự tự sao chép của XSS worm mà không thay đổi các ứng dụng web hay kiến trúc của trình duyệt. Người viết sẽ xây dựng một hệ thống so sánh các yêu cầu HTTP gửi đi với các script có trong văn bản hiện tại. Hình 28 chỉ ra kiến trúc cơ chế phát hiện XSS worm phía client.

Hình 28: Kiến trúc client cho phát hiện XSS

Sở dĩ người viết chọn nơi để phát hiện XSS worm là trình duyệt web bởi vì quá trình lan truyền của XSS worm được kích hoạt trong quá trình dịch mã ở phía client. Hơn nữa giải pháp phía client là dễ triển khai và không phải thay đổi ứng dụng web.

Các script có thể được nhúng trực tiếp vào trang web hoặc được tải động từ máy chủ, vì thế cần phải kiểm tra tất cả các tập tin Javasaript bên ngoài mà được trỏ đến bởi một URI link có trong yêu cầu HTTP gửi đi và trong DOM tree. Các bước phát hiện XSS worm như sau:

• Chặn các yêu cầu HTTP gửi đi và lấy các giá trị tham số từ mỗi yêu cầu đó. Từ đó lấy ra các liên kết URI có thể trỏ đến tập tin JavaScript độc hại.

• Nếu có tồn tại liên kết URI, tiếp tục gửi các yêu cầu không đồng bộ để lấy các tập tin đó. Quá trình giải mã chưa được thực hiện cho đến khi nhận được tất cả các response hoặc các tín hiệu timeout từ servers. Gọi tập các giá trị tham số và các tập tin bên ngoài là D

• Sau đó lấy script từ DOM tree và các tập tin JavaScript bên ngoài mà được tải động vào trang web hiện tại. Gọi tập các script đó là P.

• Áp dụng một bộ giải mã tự động trên cả hai tập P và D. Lặp lại quá trình giải mã này cho đến khi không còn văn bản mã hóa.

• Cuối cùng, sử dụng một máy dò tương tự để so sánh mã từ tập P với mã từ D để tìm kiếm mã tương tự, chỉ ra tiềm năng hành vi lan truyền của một XSS worm. Nếu phát hiện các mã tương tự, chuyển hướng các yêu cầu HTTP độc hại và cảnh báo người sử dụng.

Để cài đặt được hệ thống như trên, sau đây người viết sẽ mô tả chi tiết chức năng và cách thực hiện của mỗi thành phần của hệ thống. Làm thế nào lấy được giá trị các tham số và các URI link, các nơi mà script có thể xuất hiện trong một trang web. Bộ giải mã được thiết kế để xử lý được kiểu mã hóa nào, và thuật toán phát hiện tương tự được sử dụng là gì.

Một phần của tài liệu Nghiên cứu lỗ hổng bảo mật Cross-Site Scripting và xây dựng chương trình phát hiện sâu mã độc phát tán (Trang 50)