Clickjacking là một loại hình tấn công liên quan trực tiếp với người dùng và không thể diễn ra nếu không có sự tham gia của người dùng.
Theo nghĩa nào đó, Clickjacking một kỹ thuật nhằm đánh cắp các “cú click” của người dùng. 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.
Vài nét về sự phát triển của Clickjacking
- Clickjacking được Robert Hansen(nhà sáng lập và điều hành hãng SecTheory) và Jeremiah Grossman (Whitehat Security) phát hiện vào năm 2008. Đặc biệt là công bố về khả năng bị clickjacking của Adobe Flash từ version 9 trở về trước.
- Năm 2010 tại hội thảo BlackHat (Barcelona), Paul Stone – chuyên gia bảo mật người Anh đã có những khám phá mới hơn về Clickjacking.
- Facebook cũng từng là nạn nhân của Clickjacking worm (Được Sophos đặt tên là Troj/Iframe -ET) khi người sử dụng nhìn thấy một liên kết có dạng
Một số kỹ thuật tấn công Clickjacking
Chen dấu đối tượng:
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.
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 tượng web dùng để lừa.
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.
Chèn đối tượng mục tiêu khi người dùng đang nhấp chuột:
Ví dụ về tấn công clickjacking
- Kẻ tấn công tạo ra một trang hấp dẫn hứa hẹn cung cấp cho người dùng một chuyến đi miễn phí đến Côn Đảo.
- Trong nội dung chính, kẻ tấn công sẽ kiểm tra xem người dùng đã đăng nhập vào trang web ngân hàng của mình chưa và nếu có, hãy tải màn hình cho phép chuyển tiền, sử dụng các tham số truy vấn để chèn chi tiết ngân hàng của kẻ tấn công vào biểu mẫu.
- Trang chuyển khoản ngân hàng được hiển thị trong iframe vô hình phía trên trang quà tặng miễn phí, với nút “Xác nhận chuyển khoản” được căn chỉnh chính xác trên nút “Nhận quà tặng” hiển thị cho người dùng.
- Người dùng truy cập trang và nhấp vào nút “Đặt chuyến đi miễn phí của tôi”.
- Trên thực tế, người dùng đang nhấp vào iframe vô hình và đã nhấp vào nút “Xác nhận chuyển”. Tiền được chuyển cho kẻ tấn công.
- Người dùng được chuyển hướng đến trang có thông tin về quà tặng miễn phí.
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.
- 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.