Cách Công cụ của Chrome cho nhà phát triển giúp chống lại các cuộc tấn công tự XSS

Wolfgang Beyer
Wolfgang Beyer

Tấn công tự XSS là gì?

Tự XSS hay tự viết tập lệnh trên nhiều trang web, là một loại tấn công tấn công phi kỹ thuật nhằm lừa bạn thực thi mã độc trong trình duyệt web của mình. Không giống như các cuộc tấn công XSS thông thường, vốn dựa vào các lỗ hổng bảo mật trong ứng dụng web để cho phép kẻ tấn công chèn mã độc hại, các cuộc tấn công XSS tự thực thi dựa vào các hành động thực thi mã mà bạn có thể có.

Các cuộc tấn công tự XSS thường liên quan đến việc kẻ tấn công lừa bạn sao chép và dán mã độc vào Bảng điều khiển Công cụ cho nhà phát triển của trình duyệt. Kẻ tấn công thường đạt được điều này bằng cách hứa hẹn một loại phần thưởng nào đó. Đó có thể là:

  • Hứa hẹn với bạn rằng mã xác minh sẽ cung cấp cho bạn quyền truy cập vào các tính năng ẩn hoặc phần thưởng ảo.
  • Giả mạo mã là một hoạt động kiểm tra tính bảo mật hoặc bản sửa lỗi.
  • Hứa hẹn rằng đoạn mã đó cho phép xâm nhập vào một trang web để trục lợi.

Sau khi bạn thực thi mã, kẻ tấn công có thể giành quyền kiểm soát tài khoản của bạn. Điều này có thể cho phép kẻ tấn công:

  • Đánh cắp thông tin cá nhân của bạn, chẳng hạn như tên, địa chỉ và số thẻ tín dụng.
  • Đăng thư hoặc nhận xét trái phép thay cho bạn.
  • Nắm quyền kiểm soát các tài khoản mạng xã hội của bạn.
  • Phát tán phần mềm độc hại cho người dùng khác.

Công cụ của Chrome cho nhà phát triển cố gắng giảm thiểu các cuộc tấn công tự XSS như thế nào?

Việc cho phép người dùng dán mã vào Công cụ cho nhà phát triển rồi thực thi mã này vốn tiềm ẩn rủi ro. Tuy nhiên, đây cũng là một trong những tính năng cốt lõi của Công cụ cho nhà phát triển của Chrome. Vì vậy, chúng tôi phải tìm sự cân bằng giữa việc giảm thiểu các cuộc tấn công XSS có thể xảy ra và không can thiệp vào công việc của các nhà phát triển chỉ muốn gỡ lỗi trang web.

Các nhà phát triển thường không sao chép đoạn mã mà họ tìm thấy ở đâu đó trên web, dán vào Công cụ cho nhà phát triển rồi thực thi đoạn mã đó, mà trước tiên không xem nhanh chức năng của đoạn mã. Hầu hết các nhà phát triển đều nhận thức rất rõ về những rủi ro bảo mật khi thực thi đoạn mã mà họ phát hiện thấy ở một nơi sơ sài trên web.

Công cụ của Chrome cho nhà phát triển tin tưởng các nhà phát triển biết họ đang làm gì. Chúng ta không muốn làm chậm hoặc làm họ phân tâm theo bất kỳ cách nào khi họ sao chép và dán mã.

Chúng tôi cho rằng những người không phải là nhà phát triển có nguy cơ trở thành nạn nhân của một cuộc tấn công XSS cao hơn nhiều. Để bảo vệ bạn, chúng tôi cho rằng việc làm gián đoạn khi bạn đang thực hiện một hoạt động nào đó có thể gây nguy hiểm là được chấp nhận và có lợi. Khi phát hiện thấy một người dùng không có kinh nghiệm đang cố gắng dán mã vào Công cụ cho nhà phát triển, Công cụ của Chrome cho nhà phát triển sẽ dừng lại và hiển thị cảnh báo.

Khi nào Công cụ cho nhà phát triển sẽ hiển thị cảnh báo tự XSS?

Công cụ cho nhà phát triển sử dụng một phương pháp phỏng đoán rất đơn giản để quyết định xem có hiển thị cảnh báo XSS hay không: công cụ này dựa trên nhật ký trên bảng điều khiển của hồ sơ người dùng của bạn.

Nếu cấu hình của bạn có ít nhất 5 mục nhập trong nhật ký bảng điều khiển, thì Công cụ cho nhà phát triển sẽ không làm phiền bạn về bất kỳ cảnh báo hay cửa sổ bật lên nào. Nhật ký điều khiển là danh sách các lệnh mà bạn đã nhập và thực thi trong Bảng điều khiển. Đây là những lệnh bạn sẽ thấy khi đặt con trỏ trong Bảng điều khiển và nhấn nhiều lần phím mũi tên lên.

Cảnh báo tự XSS trông như thế nào?

Khi một người dùng không có kinh nghiệm cố gắng dán mã vào Bảng điều khiển, thao tác này sẽ bị chặn và Bảng điều khiển sẽ hiển thị một cảnh báo.

Cảnh báo tự XSS trong Console.

Bạn có thể ghi đè cảnh báo này và cho phép dán, nhưng cần nhập 'cho phép dán' để thực hiện việc này.

Khi một người dùng không có kinh nghiệm dán mã vào trình chỉnh sửa mã của Công cụ cho nhà phát triển (ví dụ: bảng điều khiển Nguồn), trải nghiệm người dùng là rất tương tự nhau. Thay vì cảnh báo, bạn sẽ thấy hộp thoại phương thức.

Hộp thoại phương thức tự XSS trong bảng điều khiển Nguồn.

Và một lần nữa, chỉ đóng hộp thoại này là không đủ để bật dán. Để ghi đè cảnh báo, bạn cần nhập "cho phép dán" vào trường nhập dữ liệu.

Đây có phải là chế độ cài đặt một lần không?

Có, sau khi quyết định cho phép dán, bạn sẽ không còn phải lo lắng về cảnh báo tự XSS nữa.

Chúng tôi hy vọng rằng phương pháp này giúp cân bằng giữa sự hữu ích và sự khó chịu. Bằng cách tăng thêm sự phiền hà, chúng tôi làm tăng khả năng bạn đọc được cảnh báo, từ đó giảm khả năng một cuộc tấn công XSS tự thành công.

Công cụ của Chrome cho nhà phát triển giữ cờ chỉ định liệu có hiển thị cảnh báo tự XSS cho bạn trong hồ sơ Chrome của bạn hay không. Vì vậy, nếu bạn tạo một hồ sơ mới và bắt đầu dán mã ngay lập tức vào Công cụ cho nhà phát triển, thì việc dán sẽ bị chặn và thay vào đó, cảnh báo tự XSS sẽ hiển thị.

Bạn có thể tắt tính năng tự động thử nghiệm không?

Còn thử nghiệm tự động thì sao? Nhiều công cụ kiểm thử tạo một hồ sơ mới tạm thời cho mỗi lần chạy chương trình kiểm thử. Vì vậy, nếu bạn sử dụng Công cụ cho nhà phát triển để gỡ lỗi kiểm thử tự động, thì việc dán vào Bảng điều khiển ban đầu sẽ bị chặn.

Để tránh né vấn đề này, hãy thực hiện một trong hai cách sau:

  • Sử dụng Chrome for Testing, một loạt Chrome được thiết kế riêng cho thử nghiệm và tự động hóa. Cảnh báo tự XSS đã bị tắt.

  • Đối với kênh phát hành Chrome khác, hãy chuyển cờ dòng lệnh --unsafely-disable-devtools-self-xss-warnings cho Chrome để tắt hoàn toàn hộp thoại cảnh báo tự xss.

Kết luận

Bạn nghĩ gì về chiến lược này để giảm thiểu các cuộc tấn công XSS? Nếu bạn có nhận xét hoặc đề xuất, hãy thêm nhận xét vào lỗi này hoặc liên hệ bằng một trong những phương thức sau.

Đặc biệt, nếu bạn đang phát triển một trang web cảnh báo về các cuộc tấn công tự động XSS thông qua nhật ký bảng điều khiển, chúng tôi rất mong được trao đổi về cách điều chỉnh các nỗ lực của mình hoặc đo lường tác động của các biện pháp tự giảm thiểu XSS.

Tải kênh xem trước xuống

Hãy cân nhắc việc sử dụng Chrome Canary, Nhà phát triển hoặc Beta làm trình duyệt phát triển mặc định của bạn. Các kênh xem trước này cho phép bạn truy cập vào các tính năng mới nhất của Công cụ cho nhà phát triển, kiểm thử các API nền tảng web tiên tiến và tìm ra các vấn đề trên trang web của bạn trước khi người dùng làm điều đó!

Liên hệ với nhóm Công cụ của Chrome cho nhà phát triển

Sử dụng các lựa chọn sau để thảo luận về các tính năng và thay đổi mới trong bài đăng, hoặc bất cứ nội dung nào khác liên quan đến Công cụ cho nhà phát triển.

  • Gửi đề xuất hoặc phản hồi cho chúng tôi qua crbug.com.
  • Báo cáo sự cố trong Công cụ cho nhà phát triển bằng cách sử dụng Tuỳ chọn khác   Thêm   > Trợ giúp > Báo cáo vấn đề về Công cụ cho nhà phát triển trong Công cụ cho nhà phát triển.
  • Tweet tại @ChromeDevTools.
  • Để lại bình luận về Tính năng mới trong Video trên YouTube của Công cụ cho nhà phát triển hoặc Mẹo video trên YouTube trong Công cụ cho nhà phát triển.