Clickjacking và cách phòng chống

hunganh1803

W-------
24/06/2015
6
5 bài viết
Clickjacking và cách phòng chống
  1. Giới thiệu về clickjacking
Clickjacking là một hình thức tấn công đánh lừa người dùng nhấp chuột vô ý vào một đối tượng trên website. Khi nhấp chuột vào một đối tượng trên màn hình, người dùng nghĩ là mình đang click vào đối tượng đó nhưng thực chất họ đang bị lừa click vào một đối tượng khác đã bị làm mờ hay ẩn đi.
Kẻ tấn công có thể sử dụng kỹ thuật tấn công này cho nhiều mục đích. Đánh cắp tài khoản người dùng, lừa click vào quảng cáo để kiếm tiền, lừa like page hoặc nguy hiểm hơn là cài một webshell lên máy chủ web.
  1. Một số kỹ thuật tấn công
  • Che giấu đối tượng mục tiêu:
  • Sử dụng thuộc tính CSS opacity (làm cho các iframe trong suốt) để che giấu đối tượng web cần click vào và z-index để hiển thị đối tượng web dùng để lừa
1489939954Capture1.PNG

  • Lấy đối tượng dùng để đánh lừa phủ lên đối tượng mục tiêu và sử dụng thuộc tính CSS pointer-events: none để vô hiệu hóa thao tác nhấp chuột lên đối tượng dùng để đánh lừa
1489939954Capture2.PNG

  • Giả mạo con trỏ chuột:
Ẩn con trỏ chuột thật, thay thế bằng con trỏ chuột giả bằng cách sử dụng thuộc tính CSS cursor: none và sử dụng javascript để mô phỏng sự di chuyển của con trỏ thật
1489939954Capture.PNG

  • Strokejacking:
Đánh lừa người dùng gõ chuỗi ký tự khi con trỏ chuột đang đặt vào các form nhập dữ liệu. Kẻ tấn công có thể lừa người dùng nhập vào một số thông tin không mong muốn vào trang web mục tiêu.
1489939954Capture3.PNG

  • Chèn đối tượng mục tiêu khi người dùng đang nhấp chuột:
Để tấn công bằng kỹ thuật này, kẻ tấn công có thể lừa người dùng tham gia trò chơi yêu cầu nhấp chuột nhanh nhất.
1489939954Capture4.PNG
  1. Cách phòng chống clickjacking
Mức độ nghiêm trọng gây ra bởi các kiểu tấn công Clickjacking là rất cao, nhưng để ngăn chặn tấn công là khá dễ dàng. Sau đây mình xin giới thiệu một số cách thức phòng chống kiểu tấn công này.
  • Yêu cầu người dùng xác nhận lại bằng cách hiển thị hộp thoại thông báo thao tác người dùng đã thực hiện yêu cầu và xác nhận.
  • Đặt các đối tượng web vào các vị trí ngẫu nhiên gây khó khăn cho kẻ tấn công vì giao diện không ổn định.
  • Thiết lập các chính sách trên trình duyệt yêu cầu các frame hiển thị với opacity > 0
  • Sử dụng Javascript ngăn cản một trang web khác nhúng nội dung của trang đó vào iframe ( Frame Bursting ):
  • Sử dụng câu lệnh điều kiện kiểm tra trang web có nằm trong iframe hay không
  • Chuyển hướng cửa sổ trình duyệt về trang web bị nhúng và iframe.
if(top! = self)
top.location = self.location; Thông thường thì hầu hết các kỹ thuật Frame Busting đều có thể bị vượt qua bằng cách ngăn cản sự chuyển hướng tới trang web cần bảo vệ. Để thay thế Frame Bursting ta cần sử dụng tiêu đề X-Frame-Options. Sử dụng các giá trị sau:
  • DENY: cấm nhúng vào frame
  • SAMEORIGIN: chỉ được nhúng vào frame trên các trang cùng tên miền
  • ALLOW -FROM domain: chỉ được nhúng vào frame trên các trang có tên miền là domain
Hoặc cải tiến Frame Brusting:

body{
display:none !important;
}


if (self === top) {
var antiClickjack =
document.getElementById("antiClickjack");
antiClickjack.parentNode.removeChild(antiClickjack );
}
else {
top.location = self.location;
}
 
Chỉnh sửa lần cuối bởi người điều hành:
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
cần lắm code để thử test
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Bên trên