Menu ngang

Thứ Sáu, 18 tháng 1, 2013

x-flash


Trước tiên tôi đưa ra một số phân tích cơ bản về cách hoạt động của xflash.

Về X-Flash

- Thành phần: xflash là một bộ gồm 2 file: một file method.swf (có thể là post.swf hoặc get.swf tuỳ theo phương thức tấn công của attacker) và một file .txt ứng với file .swf (đã được cấu hình trong file .swf) chứa thông tin điều khiển việc gởi request.

- Cách thức: attacker sẽ tấn công một site nào đó có số lượng người truy cập lớn, và khi đã có quyền sửa đổi nội dung site victim, attacker sẽ chèn dòng code sau vào nội dung site victim:
HTML Code:
  1. <iframe src="/link đến file method.swf" frameborder="0" height="0" width="0" noresize scrolling="NO"></iframe>
Sao chép mã
Như thế cái frame do attacker chèn vào sẽ không chiếm diện tích của site nên nó xem như chạy ngầm, và khi khách truy cập xem site victim thì lập tức xflash sẽ điều khiển flash player trên trình duyệt của họ tạo request đến site mà attacker muốn tấn công.

- Mức độ: số kết nối (connection) do xflash tạo ra trong mỗi frame hoàn toàn do attacker quyết định, trong vd dưới là 3 kết nối mỗi lần (ứng với mỗi frame). Khối lượng package gởi đi (đối với POST) khoảng 2.5KB
Code:
  1. // [Action in Frame 2]
  2. loadMovieNum(url1, "1", "POST");
  3. loadMovieNum(url2, "1", "POST");
  4. loadMovieNum(url3, "1", "POST");
Sao chép mã
Do đó mỗi một người xem site bị chèn xflash thì mỗi "giây" tạo 3 kết nối đến site đích !!! Nếu là một site sử dụng PHP MySQL thì việc biên dịch thực thi PHP và truy vấn SQL liên tục như thế sẽ làm tốn rất nhiều băng thông, nghiêm trọng hơn là làm cạn tài nguyên bộ xử lí. Điều đó khiến server chập chờn, có thể dẫn đến down.

- Nhận dạng: site victim hướng người xem đến "nơi chứa xflash" và xflash sẽ tạo request từ trình duyệt người xem gởi đến site đích. Vì thế xflash đóng vai trò là "NGƯỜI MÔI GIỚI" hay "NGƯỜI GIỚI THIỆU", trong tin học ta gọi là Referer.


Phòng chống

- Ưu điểm của phương pháp này so với các phương pháp trước là không yêu cầu xác thực người dùng, code đơn giản, tài nguyên băng thông tốn rất ít.
Với cách này, mỗi ngày xflash "ăn" của EHS khoảng 20 - 50 MB BandWidth, nếu để xflash "ăn tự do" thì mỗi giờ khoảng 800MB - 1.5GB BW.

- Cách thức: ta đã biết các request package do xflash tạo ra có đặc điểm chung là đều chứa thông tin về referer (URL của xflash). Vậy ta chỉ cần lọc kết nối do xflash "giới thiệu" và refuse, dừng xử lí hoặc gởi trả lại thông tin chuyển hướng khác cho người dùng để chuyển hướng tấn công đi nơi khác (Ở đây tôi chỉ đưa ra việc dừng xử lí các yêu cầu do xflash gởi đến, và áp dụng với mã nguồn vBulletin).

Đối với forum vBB, các file có thể tương tác với người dùng đều "nạp" file global.php trước tiên, sau đó mới bắt đầu xử lí, vì thế rất tiện cho việc ngăn xflash.

Mở file global.php và thêm đoạn sau ngay dưới thẻ mở <?php
  1. // X-Flash REQUEST Filter
  2. if(strpos($_SERVER['HTTP_REFERER'], ".swf") != NULL) exit;
  3. // wWw.EnHack.Net
Sao chép mã
save lại và bạn có thể tự tin trước xflash

P/S: Nếu attacker nhắm đến mục đích rút BW của host thông qua việc load trang HTML thì ta có thể chuyển mã HTML sang PHP (sử dụng link dưới) và áp dụng đoạn mã trên.
Code:

Không có nhận xét nào:

Đăng nhận xét