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

Thảo luận trong 'Web Security' bắt đầu bởi hunganh1803, 21/01/17, 02:01 PM.

  1. hunganh1803

    hunganh1803 W-------

    Tham gia: 24/06/15, 01:06 AM
    Bài viết: 5
    Đã được thích: 6
    Điểm thành tích:
    8
    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
    [​IMG]
    • 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
    [​IMG]
    • 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
    [​IMG]
    • 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.
    [​IMG]
    • 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.
    [​IMG]
    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;
    }
     
    Last edited by a moderator: 21/01/17, 02:01 PM
    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
  2. ho sy son

    ho sy son New Member

    Tham gia: 12/08/19, 05:08 AM
    Bài viết: 1
    Đã được thích: 0
    Điểm thành tích:
    1
    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