Bài giảng An ninh mạng - Bài 10: An toàn dịch vụ web - Một số dạng tấn công khác. Sau khi học xong chương này, người học có thể hiểu được một số kiến thức cơ bản về: Clickjacking, Phân tích hành vi nhấp chuột (click), Clickjacking – Cách thức thực hiện, Clickjacking – Một số kỹ thuật, phòng chống clickjacking, phòng chống clickjacking – Frame Bursting,…
BÀI 10 AN TOÀN DỊCH VỤ WEB MỘT SỐ DẠNG TẤN CƠNG KHÁC Bùi Trọng Tùng, Viện Cơng nghệ thơng tin Truyền thông, Đại học Bách khoa Hà Nội 1 CLICKJACKING Bùi Trọng Tùng, Viện Công nghệ thông tin Truyền thông, Đại học Bách khoa Hà Nội CuuDuongThanCong.com https://fb.com/tailieudientucntt Nút “Like” hoạt động nào? Nút “Like” hoạt động nào? • Yêu cầu: Đọc cookie tên miền facebook.com Tích hợp website khác với facebook.com Các script website tích hợp khơng thể tự động nhấp nút “Like” (giả mạo thao tác nhấp chuột) Cách ly nút “Like” với thành phần khác website How? CuuDuongThanCong.com https://fb.com/tailieudientucntt Nút “Like” hoạt động nào? • Chính sách SOP ngăn cản script giả mạo thao tác nhấp chuột Clickjacking • Clickjacking: hình thức cơng đánh lừa người dùng nhấp chuột cách vô ý vào đối tượng website Claim your free iPad CuuDuongThanCong.com https://fb.com/tailieudientucntt Phân tích hành vi nhấp chuột (click) • Người dùng tin tưởng vào thao tác nhấp chuột (click) nào? Tin tưởng vào thị giác Nhìn thấy mục tiêu Nhìn thấy trỏ chuột Tin tưởng vào thao tác gồm tin tưởng vào thị giác vào tương tác Kiểm tra mục tiêu Chuẩn bị nhấp chuột Nhấp chuột Tin tưởng vào tương tác Targetclicked = Targetchecked Pointerclicked = Pointerchecked Clickjacking – Cách thức thực • “Evil site”: trang web chứa mã độc thực cơng • • • • Clickjacking Người dùng bị đánh lừa để tương tác với trang mục tiêu “good site” Chèn frame chứa nội dung “good site” vào “evil site” Phủ/chèn đối tượng web giả mạo lên trang “good site” (và ẩn vài đối tượng “good site”) Các dạng công: Giả mạo, che giấu đối tượng web Đánh lừa thị giác Giả mạo, che giấu trỏ chuột Chèn chuỗi tương tác nhấp chuột CuuDuongThanCong.com https://fb.com/tailieudientucntt Clickjacking – Một số kỹ thuật • Che giấu đối tượng mục tiêu: Kỹ thuật 1: Sử dụng thuộc tính CSS opacity để che giấu đối tượng web cần click(mục tiêu) z-index hiển thị đối tượng web dùng để đánh lừa Kỹ thuật 2: Phủ đối tượng dùng để đánh lừa lên đối tượng mục tiêu Sử dụng thuộc tính CSS pointer-events: none để vơ hiệu hóa thao tác nhấp chuột đối tượng dùng để đánh lừa opacity: 0.1 pointer-event: none Click Event z-index: -1 Click Event Clickjacking – Một số kỹ thuật • Partial Overlays: Chèn trang web mục tiêu vào iframe phủ lên đối tượng mục tiêu đối tượng giả mạo: sử dụng thuộc tính CSS z-index thuộc tính Flash Window Mode wmode=direct • Cropping: Chèn trang web mục tiêu vào iframe cắt xén nội dung xung quanh z-index: Paypal iframe Paypal iframe Cropping 10 CuuDuongThanCong.com https://fb.com/tailieudientucntt Clickjacking – Một số kỹ thuật • Ẩn trỏ chuột thật, thay trỏ chuột giả: sử dụng thuộc tính CSS cursor: none Sử dụng Javascript để trỏ giả mô di chuyển trỏ thật Real Cursor Icon Fake Cursor Icon cursor: none #mycursor { cursor: none; background: url("images/custom-cursor.jpg") } 11 Giả mạo trỏ chuột – Ví dụ Fake cursor Real cursor 12 CuuDuongThanCong.com https://fb.com/tailieudientucntt Clickjacking – Một số kỹ thuật • Strokejacking: đánh lừa người dùng gõ chuỗi ký tự trỏ chuột đặt vào form nhập liệu Trang công Typing Game Type what ever screen shows to you Trang mục tiêu ấn trang công Bank Transfer 9540 Bank Account: 3062 Amount: _ USD Xfpog95403poigr06=2kfpx [ ] Transfer 13 Clickjacking – Một số kỹ thuật • Chèn đối tượng mục tiêu người dùng nhấp chuột • Ví dụ 1: kỹ thuật công “bait-and-switch” chèn vào thao tác nhấp đúp First Click Second Click 14 CuuDuongThanCong.com https://fb.com/tailieudientucntt Clickjacking – Một số kỹ thuật(tiếp) • Chèn đối tượng mục tiêu người dùng nhấp chuột – Ví dụ 2: kỹ thuật cơng “whack-a-mole” lừa người dùng tham gia trò chơi yêu cầu nhấp chuột nhanh 15 PHỊNG CHỐNG CLICKJACKING Bùi Trọng Tùng, Viện Công nghệ thông tin Truyền thông, Đại học Bách khoa Hà Nội 16 CuuDuongThanCong.com https://fb.com/tailieudientucntt Phịng chống Clickjacking • u cầu người dùng xác nhận lại: Hiển thị hộp thoại thông báo thao tác người dùng thực yêu cầu xác nhận Phụ thuộc vào kinh nghiệm thói quen người dùng • Ngẫu nhiên hóa giao diện: đặt đối tượng web vào vị trí ngẫu nhiên Gây khó khăn cho người dùng giao diện khơng ổn định Mã khai yêu cầu người dùng click liên tục tới thành công (tấn công dạng multi-click) • Thiết lập sách trình duyệt để buộc frame hiển thị với opacity > Lỗi hiển thị giao diện 17 Phòng chống Clickjacking – Frame Bursting • Viết thêm đoạn mã Javascript vào mã nguồn trang web cần bảo vệ để ngăn cản trang web khác nhúng nội dung trang vào iframe Không làm việc với nút “Like” Facebook • Cách thức thực Frame Bursting: Sử dụng câu lệnh điều kiện để kiểm tra trang web có nằm iframe hay khơng? Chuyển hướng cửa sổ trình duyệt trang web bị nhúng vào iframe Ví dụ: if(top! = self) top.location = self.location; 18 CuuDuongThanCong.com https://fb.com/tailieudientucntt Frame Bursting – Kết khảo sát • Tỉ lệ trang Top500 Alexa sử dụng Frame Bursting Sites Framebusting Top 10 60% Top 100 37% Top 500 14% “Busting Frame Busting: a Study of Clickjacking Vulnerabilities on Popular Sites”, Gustav Rydstedt 19 Frame Bursting – Câu lệnh điều kiện Conditional Statements if (top != self) if (top.location != self.location) if (top.location != location) if (parent.frames.length > 0) if (window != top) if (window.top !== window.self) if (window.self != window.top) if (parent && parent != window) if (parent && parent.frames && parent.frames.length>0) if((self.parent && !(self.parent===self)) && (self.parent.frames.length!=0)) 20 CuuDuongThanCong.com https://fb.com/tailieudientucntt 10 Frame Bursting – Chuyển hướng top.location = self.location top.location.href = document.location.href top.location.href = self.location.href top.location.replace(self.location) top.location.href = window.location.href top.location.replace(document.location) top.location.href = window.location.href top.location.href = "URL" document.write(’’) top.location = location top.location.replace(document.location) top.location.replace(’URL’) top.location.href = document.location 21 Frame Bursting Hầu hết kỹ thuật Frame Bursting bị vượt qua (bypass)!!! • Cách thức chung: ngăn cản kiện chuyển hướng tới trang gốc cần bảo vệ 22 CuuDuongThanCong.com https://fb.com/tailieudientucntt 11 Vượt qua Frame Bursting • Ví dụ 1: if(top != self) top.location = self.location; • Bypass: This is iframe function myFunction() { return "Asking the user nicely"; }