Phương pháp tiếp cận

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 49)

Quá trình lây nhiễm điển hình của một XSS worm là như sau:

1. Một người dùng, Alice, bị lừa vào xem một trang web độc hại mà được tạo động bởi một ứng dụng web có lỗ hổng. Trang web đó, ví dụ, có thể là hồ sơ một người bạn tin cậy của Alice.

2. Do trang web có lỗ hổng nên hacker có thể nhúng một XSS worm payload vào trang web đó. Khi người dùng tải trang web đó xuống trình duyệt thì trình duyệt hiểu đó là script và sẽ dịch chúng bằng một JavaScript engine ở phía client. Trong thời gian này, nó sao chép bản thân nó và gửi đi trong một yêu cầu HTTP.

3. Yêu cầu HTTP đó có chứa mã độc được gửi đến ứng dụng máy chủ với danh nghĩa của Alice. Bởi máy chủ đã xác thực Alice, nên XSS worm có thể thực hiện hành động sửa đổi hồ sơ của Alice làm cho hồ sơ của Alice cũng bị nhiễm. Sau đó, khi bạn của Alice xem hồ sơ của Alice, tài khoản của họ lại cũng có thể bị nhiễm. Từ quá trình trên ta có ý tưởng để ngăn chặn XSS worm như sau: Khi XSS worm muốn lây lan nó cần phải nhân bản nó và gửi đi trong một yêu cầu HTTP. Ta thấy ở đây có thể khai thác sự tương tự giữa mã của script trong documment và mã của script trong yêu cầu gửi đi. Nếu mà làm cách nào đó so sánh sự tương tự của script trong documment và script trong yêu cầu HTTP thì ta có thể phát hiện ra XSS worm. Trước khi đi vào chi tiết, ta đi tìm hiểu một số khái niệm căn bản.

DOM: Document Object Model ("Mô hình đối tượng tài liệu"), là một giao diện lập trình ứng dụng (API). Thường thường DOM, có dạng một cây cấu trúc dữ liệu, được dùng để truy xuất các tài liệu dạng HTML và XML. Mô hình DOM độc lập với hệ điều hành và dựa theo kỹ thuật lập trình hướng đối tượng để mô tả tài liệu.

Hình 26: Ví dụ DOM tree của một văn bản

URI: là chữ viết tắt từ Uniform Resource Identifier là một chuỗi định danh tài nguyên trên mạng. Mỗi một nguồn tài nguyên trên mạng sẽ có một địa chỉ duy nhất xác định nó, đó chính là URI. Một dạng thức quen thuộc của URI là URL (Uniform Resource Locator) được sử dụng để định danh một địa chỉ Web nào đó trên Internet. Nói theo cách khác, URI là sự mở rộng của URL. Trên web, chuỗi định danh URI được sử dụng để chỉ đến các nguồn tài nguyên trên Internet. URI được phân loại thành URL (Uniform Resource Locator) hay URN (Uniform Resource Name). URN tương tự như tên của một người, còn URL chính là địa chỉ nơi cư trú của người đó. Theo một cách khác URN là định danh của tài nguyên, còn URL là cái dựa vào đó để tìm được tài nguyên.

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 49)