Computer >> Máy Tính >  >> Kết nối mạng >> An ninh mạng

Tấn công chéo trang web (XSS):Tất cả những gì bạn cần biết

Các cuộc tấn công Cross-Site Scripting (XSS) được cho là một trong những cuộc tấn công tiêm nhiễm xảy ra tràn lan nhất nhưng có thể sửa chữa dễ dàng nhất mà các doanh nghiệp thương mại điện tử và nhiều ứng dụng web khác phải đối mặt. Từ việc nhắm mục tiêu các ứng dụng được xây dựng trên các công nghệ web cổ xưa đến các ứng dụng mới hơn sử dụng giao diện người dùng phong phú, phía máy khách, XSS đã cản trở tất cả. Tuy nhiên, cần phải nhận ra rằng các lỗ hổng được coi là nguyên nhân tiềm ẩn cho một cuộc tấn công XSS có thể dễ dàng được phát hiện và khắc phục kịp thời.

Làm thế nào để một cuộc tấn công tập lệnh trên nhiều trang web xảy ra?

Một cuộc tấn công tập lệnh trang web (XSS) xảy ra khi

  1. Một ứng dụng web yêu cầu dữ liệu đầu vào thông qua một nguồn không đáng tin cậy
  2. Nội dung động được nhập qua yêu cầu web được sử dụng mà không bị chứng thực là thiếu nội dung độc hại.
Tấn công chéo trang web (XSS):Tất cả những gì bạn cần biết

Một ví dụ đơn giản về dữ liệu đầu vào như vậy là khi chúng tôi gửi tên, ID e-mail, tên người dùng-mật khẩu hoặc bất kỳ dữ liệu đầu vào nào trong một biểu mẫu. Mỗi đầu vào đã nhập ở trên có thể bị thao túng nếu mã bên dưới không xác thực đúng các đầu vào. Kẻ tấn công lợi dụng việc không có khả năng này để đưa nội dung độc hại vào, thường ở dạng mã Javascript, HTML hoặc bất kỳ dạng mã nào được trình duyệt thực thi. Người dùng cuối không có cách nào để nghi ngờ tập lệnh không đáng tin cậy và cuối cùng sẽ thực thi nó. Sau khi được đưa vào, tập lệnh có quyền truy cập vào bất kỳ cookie, mã thông báo phiên hoặc thông tin nhạy cảm nào được trang web này sử dụng.

Cuộc tấn công XSS có 3 loại:

  1. Tấn công dựa trên DOM :Gây ra bởi việc tiêm mã độc hại từ phía máy khách. Mã được đưa vào có thể là Javascript, Flash, Visual Basic, v.v.
  2. Tấn công XSS liên tục: Gây ra khi tải trọng được lưu trữ ở phía máy chủ và được truy xuất khi có yêu cầu của người dùng đến một trang
  3. Tấn công XSS không liên tục: Gây ra khi tải trọng được phản ánh trở lại người dùng bằng cách mở một liên kết đến một trang web dễ bị tấn công với đầu vào được tạo thủ công.
Tấn công chéo trang web (XSS):Tất cả những gì bạn cần biết

Giải phẫu cuộc tấn công tạo tập lệnh trên nhiều trang web (XSS)

Những kẻ tấn công khai thác XSS như thế nào?

Nói chung, kẻ tấn công sử dụng lỗ hổng XSS để trích xuất cookie phiên của người dùng cuối, điều này cuối cùng cho phép kẻ tấn công truy cập vào tài khoản của người dùng. Ví dụ về trường hợp trên là:
  • Trang web bạn truy cập có trường nhận xét.
  • Kẻ tấn công đăng tải trọng sau trong phần nhận xét.
  • Ngay khi bất kỳ người dùng hợp pháp nào mở hộp nhận xét để xem nhận xét sau, HTML sẽ phân tích cú pháp tập lệnh này.
  • Khi trình duyệt thực hiện phân tích cú pháp HTML, cookie của người dùng sẽ được gửi đến kẻ tấn công trên máy chủ của anh ta.
Lỗ hổng đơn giản này, nếu tồn tại trong ứng dụng web của bạn, có thể có những tác động rất nghiêm trọng. Một cách khai thác XSS phổ biến khác là khi những kẻ tấn công sử dụng ứng dụng của bạn để tải xuống từng ổ đĩa, trong đó kẻ tấn công khiến người dùng cuối tải xuống phần mềm độc hại mà họ không biết bằng cách nhấp vào các liên kết hợp pháp.

Các trường hợp tấn công kịch bản chéo trang web nổi tiếng

Các cuộc tấn công XSS chủ yếu xảy ra vì lợi nhuận tài chính, một trong những cuộc tấn công đáng chú ý là cuộc tấn công trước đây chống lại gã khổng lồ thương mại điện tử eBay. Các tin tặc đã đưa mã Javascript độc hại vào một số danh sách dành cho điện thoại giá rẻ, từ đó chuyển hướng người dùng đến trang đăng nhập giả mạo được tạo để xâm phạm thông tin đăng nhập của người dùng.

Ngoài các trang thương mại điện tử, một số trang web truyền thông xã hội cũng đã bị các cuộc tấn công khét tiếng như vậy. Twitter đã bị nhắm mục tiêu với một loại sâu XSS như vậy, dẫn đến các liên kết độc hại được đăng trên một trang web có tên StalkDaily. Một cuộc tấn công XSS nổi tiếng khác là cuộc tấn công MySpace của sâu Samy - một loại virus lành tính đã thay đổi trang hồ sơ của người dùng MySpace và gửi các yêu cầu kết bạn ngẫu nhiên.

Các biện pháp phòng ngừa để giảm thiểu các cuộc tấn công XSS

Ngăn chặn cuộc tấn công XSS không có nghĩa là vô hiệu hóa người dùng nhập tải trọng của họ, mà là thực hiện các biện pháp để ngăn nó được phân tích cú pháp thành HTML trong trình duyệt. Điều đó đang được nói, đây là một vài phương pháp được sử dụng để ngăn chặn một cuộc tấn công XSS.
  1. Xác thực đầu vào

    Để ngăn XSS, hãy liệt kê trắng hầu hết các đầu vào là chữ và số hoặc trong một số trường hợp là các ký tự đặc biệt. Điều này sẽ làm giảm sự tấn công trên bề mặt và giảm thiểu khả năng xuất hiện lỗi.

  2. Sử dụng các phần tử DOM an toàn

    Thông thường, việc xử lý không an toàn các phần tử DOM (mô hình đối tượng tài liệu) dẫn đến các cuộc tấn công XSS trong ngay cả các giao diện người dùng khách hàng phong phú. Ví dụ:sử dụng thuộc tính innerHTML hiển thị đầu vào của người dùng dưới dạng XSS với các sự kiện Javascript. Trong trường hợp này, giải pháp thay thế an toàn sẽ là sử dụng contentText hoặc innerText.

  3. Thoát JavaScript

    Bỏ qua các dấu ngoặc kép có thể ngăn chặn việc đưa vào trong Javascript. Mã hóa HTML sử dụng dấu ngoặc kép với ‘nên được sử dụng để ngăn chặn sự cố chèn

  4. Mã hóa đầu ra

    Mã hóa đầu ra hoạt động kỳ diệu khi trung hòa tải trọng XSS tối đa. Phương pháp này hoạt động để giảm thiểu các cuộc tấn công chèn ép phía máy chủ. Mặc dù mã hóa HTML là một phương pháp khá phổ biến, nhưng mã hóa URL có thể giúp xóa bỏ bất kỳ hành vi đánh dấu nào trong các liên kết và chuyển hướng.