Phát hiện lỗ hổng SOME ảnh hưởng đến Google+ và nhiều trang web khác

15:46 | 29/12/2014

Hội nghị Black Hat Châu Âu năm 2014, Ben Hayak - nhà nghiên cứu của công ty Trustware đã trình bày phương pháp tấn công Origin Method Execution (SOME) có khả năng gây ảnh hưởng đến rất nhiều trang web lớn hàng đầu thế giới.

Trong đó Google+ được khẳng định dễ dàng bị ảnh hưởng bởi tấn công này. Ben Hayak đã trình bày cách khai thác lỗ hổng này đối với Google+ bằng cách làm cho nạn nhân nhấn vào một đường link có chứa mã độc và sau đó tất cả tệp tin sẽ được tự động gửi đến. Lỗ hổng này có thể giúp tin tặc dễ dàng truy cập vào dữ liệu hình ảnh và video của người dùng. 

Theo Hayak, tấn công SOME trên Google+ tương tự như vụ vi phạm dữ liệu gần đây trên iCloud gây rò rỉ những bức ảnh nhạy cảm của một số người nổi tiếng lên mạng. Trong kịch bản tấn công được Hayak mô tả tại Black Hat, nạn nhân có một số hình ảnh trong điện thoại của mình và tất cả những file này được tự động sao lưu thông qua tính năng “Auto Backup” của Google+. Tin tặc có thể sử dụng SOME để chọn tất cả những hình ảnh từ Google+ của nạn nhân và gửi chúng đến máy chủ bằng cách khiến nạn nhân bấm vào đường link do chúng tạo ra.

Lỗ hổng này liên quan đến JavaScript Object Notation với việc thực thi lớp đệm (JSONP) cho phép tin tặc thực hiện những hành động mạo danh nạn nhân. Tin tặc có thể dùng những quảng cáo độc hại như một phương thức tấn công mà không cần tương tác với người dùng.

Same Origin Policy (SOP) là một cơ chế bảo mật được sử dụng để ngăn chặn những trang web không liên quan tương tác với nhau. Tuy nhiên, có những tình huống một trang web cần phải vượt qua SOP để kết nối với một dịch vụ của bên thứ ba. Ví dụ một trang web khi muốn xác định vị trí của người truy cập thì phải sử dụng một dịch vụ định vị địa lý, như Telize. Trong trường hợp này, các nhà phát triển web có thể sử dụng JSONP, một cơ chế kết nối cho phép trang web yêu cầu dữ liệu từ máy chủ có tên miền khác nhờ các trình duyệt và không thực thi SOP trong thẻ <script>.

JSONP có thể rất hữu ích nhưng nó cũng có thể làm cho trang web dễ bị tổn thương nếu không hoạt động chính xác, ví dụ như có thể sử dụng một hàm gọi lại (callback) để lấy dữ liệu từ dịch vụ của bên thứ ba. Hayak phát hiện ra rằng, bằng cách điều chỉnh thông số của hàm gọi lại, có thể thực hiện các hành động tùy ý trong trang web bị ảnh hưởng. 

Khi nạn nhân nhấn vào đường link độc hại, một cửa sổ mới sẽ hiện ra phù hợp với các phương thức tấn công khác nhau. Mọi thứ xảy ra rất nhanh, các cửa sổ mở ra sẽ nhanh chóng được sử dụng để thực hiện các thao tác mà kẻ tấn công mong muốn, rồi đóng lại trước khi người dùng nghi ngờ. Để tránh việc gây ra những nghi ngờ, tin tặc sẽ mở một trang web hợp pháp sau khi hoàn thành cuộc tấn công.

Theo Hayak, tin tặc có thể thực hiện nhiều phương pháp tấn công cần thiết. Ví dụ trong trường hợp của Google+, tin tặc đã tiến hành theo hai bước. Thứ nhất, chọn hình ảnh trong tài khoản nạn nhân và thứ hai hình ảnh sẽ được gửi về cho tin tặc. Một khía cạnh khác cũng đáng lo ngại là nếu một tên miền bị tổn thương thì tất cả các trang trên tên miền đó đều bị ảnh hưởng. 

Cuộc tấn công đã được thử nghiệm thành công trên Google+ và nhà nghiên cứu cũng cho biết các trang web khác cũng tồn tại lỗ hổng này. Báo cáo nghiên cứu chi tiết về tấn công SOME sẽ được đăng tải trong thời gian tới và nó sẽ công bố tên những dịch vụ bị ảnh hưởng. Một vài trang web tài chính cũng đã được xác định bị ảnh hưởng bởi lỗ hổng này. Vấn đề này đã được báo cáo cho Google vào tháng 4/2014 và Google mới chỉ vá nó trong vài ngày trước khi lỗ hổng này được công khai.

Bảo vệ trang web trước các cuộc tấn công SOME
Tấn công SOME không thể bị ngăn chặn bởi các giải pháp bảo vệ khỏi tấn công cross-site reference forgery (CSRF) vì tin tặc sử dụng giao diện tương tự như giao diện người dùng thực tế. Các bộ lọc Cross-site scripting (XSS) cũng không có tác dụng bởi kẻ tấn công chỉ cần sử dụng bảng chữ cái thông thường và dấu chấm để thực hiện tấn công. Frame busting, một phương pháp phổ biến chống lại clickjacking cũng không hiệu quả. Hayak đã tìm ra cách khoá các cửa sổ tự động bật lên, phương pháp này có khả năng giảm thiểu các tấn công. 

Có ba cách để bảo vệ trang web đang sử dụng JSONP chống lại các cuộc tấn công. Một là sử dụng một hàm gọi lại tĩnh, hai là tạo ra danh sách trắng các cuộc gọi lại trên máy chủ và cách thứ ba được nhà nghiên cứu khuyến cáo là ghi lại các cuộc gọi lại.