XSS là gì?- XSS Cross-Site Scripting là một lỗi bảo mật cho phép người tấn công Attacker, Hacker,… chèn các đoạn script nguy hiểm nhằm thực thi ở máy người dùng Client.. - Mục đích của c
Trang 1Tìm hiểu về XSS
Kiều Duy Khánh
Dương Viết Hưng
Lê Thị Hương
Trang 31 XSS là gì?
- XSS (Cross-Site Scripting) là một lỗi bảo mật cho phép người tấn
công (Attacker, Hacker,…) chèn các đoạn script nguy hiểm nhằm thực thi ở máy người dùng (Client)
- Mục đích của các cuộc tấn công XSS là nhằm ăn cắp các dữ liệu
nhận dạng người dùng như: session tokens, cookies, … Thường là nhằm vào cookies bởi cookies giúp kẻ tấn công có thể đăng nhập tự động với thông tin nhận dạng của nạn nhân
=> Đây chính là lý do tại sao XSS được coi là một trong những lỗ hổng nguy hiểm nhất hiện nay
Trang 42 Các cuộc tấn công XSS gần đây
2.1 Lỗ hổng XSS của Microsoft Edge
- Hai nhà nghiên cứu bảo mật, Vansh Devgan và Shivam Kumar
Singh, đã phát hiện ra một lỗ hổng Universal XSS trong tính năng dịch tự động của Microsoft Edge
- Cụ thể, trình dịch này đã xử lý không đúng cách với thẻ “>” Bất cứ thẻ nào có “> img” thì không cần kiểm tra đầu vào mà được tiến hành thực thi luôn dưới dạng javascript
- Ngày 3/6/2021, lỗ hổng đã được báo cáo lại với Microsoft Ngày
24/6/2021, lỗ hổng đã được vá
Trang 52 Các cuộc tấn công XSS gần đây
2.1 Lỗ hổng XSS của Microsoft Edge
Trang 62 Các cuộc tấn công XSS gần đây
2.2 Lỗ hổng iCloud XSS của Apple
- Một nhà nghiên cứu bảo mật, Vishal Bhardwaj, đã phát hiện ra một lỗ hổng XSS nằm trong tính năng Page / Keynotes của iCloud
- Để khai thác lỗi, kẻ tấn công chỉ cần tạo một payload độc hại và gửi nó cho bất kỳ người dùng nào Sau khi được chia sẻ, kẻ tấn công sẽ phải thực hiện một số thay đổi trên trang mục tiêu, lưu, truy cập lại trang bị ảnh hưởng và đi tới menu “Cài đặt” qua cùng một trang Sau đó, nhấp vào “Tất cả các phiên bản trình duyệt” sẽ kích hoạt lỗ hổng trên tài khoản của người dùng mục tiêu
- Lỗ hổng đã được báo cáo lại cho Apple vào tháng 8 năm 2020.
Trang 72 Các cuộc tấn công XSS gần đây
2.2 Lỗ hổng iCloud XSS của Apple
Trang 83 Phân loại lỗ hổng XSS
- Reflected XSS
- Stored XSS
- DOM-based XSS
Trang 93 Phân loại lỗ hổng XSS
3.1 Reflected XSS
Reflected XSS – XSS phản chiếu
xảy ra khi đoạn script độc hại
được phản chiếu lại trong một
phản hồi từ Server
Trang 103 Phân loại lỗ hổng XSS
3.1 Reflected XSS
Trang 113 Phân loại lỗ hổng XSS
3.1 Reflected XSS
Trang 123 Phân loại lỗ hổng XSS
3.1 Reflected XSS
Trang 13STORED XSS
Trang 305 S ession của user
được gửi đến Hacker
1.Hacker thông qua điểm đầu vào
(form,input…) không được kiểm tra kỹ để chèn vào CSDL các đoạn mã nguy hiểm
2 User đăng nhập, truy cập nội dung chứa mã độc
3 Server phản hồi kèm mã độc của Hacker
Trang 401.Trước hết chúng ta cần biết DOM là gì?
❖ DOM là viết tắt của Document Object Model
❖ Là 1 dạng chuẩn của W3C đưa ra nhằm để truy xuất
và thao tác dữ liệu của tài liệu có cấu trúc như HTML, XML.
❖ Mô hình này thể hiện tài liệu dưới dạng cấu trúc cây phân cấp Tất cả các thành phần trong HTML, XML đều được xem như một node.
Trang 41Vậy DOM-based XSS là gì?
❖ Như 2 phần trên là Reflected XSS và Stored XSS, chúng
đều có đặc điểm chung là các đoạn mã nguy hiểm sau khi được chèn vào sẽ được thực thi sau response của server, có nghĩa là lỗi nằm về phía server.
❖ DOM-Based XSS lại đi ngược lại với đặc điểm này, mã độc sẽ được thực thi ngay khi xử lý phía client mà không cần thông qua server
❖ DOM Based XSS là kỹ thuật khai thác XSS dựa trên việc thay đổi cấu trúc DOM của tài liệu, cụ thể là HTML.
Trang 42Ví dụ
Trang 45Sơ đồ tấn công cơ bản
Trang 47Luôn lọc đầu vào từ người dùng
● Luôn Luôn lọc các dữ liệu từ phía người dùng bằng cách lọc các kí tự đặc biệt được định nghĩa trong đặc tả của HTML Mỗi trường nhập liệu bao gồm cả tham số liên kết sẽ được kiểm tra để phát hiện các thẻ script (sử dụng biểu thức chính quy, …)
Trang 48Mã hóa
● Lỗi XSS có thể tránh được khi máy chủ Web đảm bảo
những trang phát sinh được mã hóa (ENCODING) thích hợp để ngăn chặn chạy các script không mong muốn.
Trang 49Sử dụng tường WAF
● Tường lửa ứng dụng web (WAF) là giải pháp được sử dụng phổ biến nhất để bảo vệ khỏi xss và các cuộc tấn công ứng dụng web.
● WAF có khả năng thực thi các chính sách bảo mật dựa trên các dấu hiệu tấn công, các giao thức tiêu chuẩn và các lưu lượng truy cập ứng dụng web bất thường Đây là điều mà các tường lửa mạng khác không làm được.
Trang 50Sử dụng Javascript framework
● Hiện nay có rất nhiều thư viện giúp ta ngăn ngừa XSS Các framework để làm web cũng đã tích hợp sẵn rất nhiều các công nghệ chống loại hình tấn công này
● Vd: Javascript framework (React, Angular, …)
Trang 51Sử dụng development tools
● Sử dụng Development Tools có thể phát hiện được code không an toàn.
Trang 52Quét mã độc trên website
● Để có thể sớm phát hiện ra lỗi và khắc phục thì mọi người cần sử dụng các biện pháp nhằm quét mã độc trên website của mình từ đó có kế hoạch xử lý tốt hơn
● Các phần mềm quét mã độc trên website: Sucuri SiteCheck, WPScan, Mozilla Observatory,…
Trang 53Sử dụng HTTPOnly Flag
● Bảo vệ cookie khỏi việc truy cập trái phép từ browser Nếu cookie được set HttpOnly, nó không thể bị truy cập bởi Client thông qua Javascript hacker sẽ không thể đọc được giá trị của cookie và gửi về server của Hacker, thậm chí cũng không thể biết cookie có tồn tại hay không.