XSS là gì?
Cross Site Scripting viết tắt là XSS – Đây là một dạng tấn công Injection khi kẻ tấn công chèn một Script gây hại vào trong Website. Nó sẽ làm tổn hại trang Web bằng cách kiểm soát các tương tác của người dùng tới Website như nhập mật khẩu, thông tin cá nhân và tra cứu các dữ liệu mà mình muốn tìm kiếm,…

Nguy hiểm nhât là tấn công XSS cho phép Hacker giả dạng thành nạn nhân để thực hiện mọi hành động mà họ có thể thực hiện được. Ngoài ra, nó còn giúp kẻ tấn công nắm được hết dữ liệu người dùng nên nếu bạn có đặc quyền truy cập vào một ứng dụng nào đó, thì họ cũng có thể làm được điều tương tự.
Cách thức hoạt động của XSS là gì?
Cross-site Scripting – XSS hoạt động bằng cách làm nhiễu các trang Web dễ tấn công để có thể chèn các mã độc vào đấy. Và sau khi các mã độc đó đã được phát tán vào trình duyệt người dùng, Hacker sẽ có quyền kiểm soát mọi hoạt động của họ.
Thực tế XSS có thể hoạt động mạnh mẽ trên các nền tảng VBScript, Flash, ActiveX,…. Vì thế hầu hết các trang Web đều có khả năng bị dính mã độc từ Cross Site Scripting.

Quan tâm thêm: Hướng dẫn cách Chống DDoS Cho VPS hiệu quả
Các loại tấn công Cross Site Scripting XSS phổ biến
Theo các chuyên gia IT cho biết Cross Site Scripting được chia ra làm 3 loại phổ biến là: Stored XSS, Reflected XSS và DOM-based XSS. Mỗi loại XSS như thế sẽ có những mối nguy hại nhất định như sau:
Stored XSS (Persistent XSS)
Stored XSS (hay Persistent XSS hoặc Second-order XSS) sẽ hoạt động khi ứng dụng nhận dữ liệu từ một nguồn không đáng tin cậy và có phản hồi HTTP không an toàn. Theo đó, các mã độc sẽ xâm nhập vĩnh viễn vào cơ sở dữ liệu, tin nhắn diễn đàn, nơi bình luận và cả hệ thống máy chủ. Khi nạn nhân truy xuất các mã độc đó từ máy chủ, Hacker sẽ có quyền kiểm soát mọi hoạt động của họ.

Reflected XSS
Reflected XSS (hay Non-persistent XSS) là loại XSS tấn công mạng thông qua việc chèn Script độc vào các phản hồi mà trình duyệt web gửi cho máy chủ. Chẳng hạn như tin nhắn lỗi hay kết quả tìm kiếm trên trang web của người dùng,…
Khi ứng dụng Web bị dính Script độc, nó sẽ gửi mã độc của Hacker tới trình duyệt của nạn nhân để xử lý như là một mã Code bình thường. Ngay sau đó, các Hacker sẽ có quyền kiểm soát tất cả các thông tin của người dùng.

DOM-based XSS
DOM-based XSS sẽ phát tán khi ứng dụng chứa những Javascript xử lý dữ liệu từ nguồn không đáng tin cậy. Theo đó các Hacker sẽ kiểm soát Data từ trường Input và xây dựng nên các mã độc gây hại.

Self-XSS Attacks
Self-XSS Attacks thiên về tấn công phi kỹ thuậ, đánh lừa người dùng để mọi người tự Script lấy mã độc. Hiện nay cách tấn công này đã không còn thông dụng do các trình duyệt đã áp dụng biện pháp nâng cao để cảnh báo người dùng. Nếu ai đó cố gắng dán một đoạn Javascript vào thanh địa chỉ của Chrome hoặc Firefox, trình duyệt sẽ cảnh báo về những nguy hiểm có thể xảy đến ngay tức thì.
Mutated XSS Attacks
Mutated XSS Attacks – là một loại XSS tận dụng lợi thế của chính trình duyệt truy cập để gây hại cho hệ thống của người dùng.
Đây là loại Cross Site Scripting khó bị phát hiện bởi kẻ tấn công sẽ cài một vài thứ vào trong Form khởi nguồn. Sau đó, nó sẽ trở thành thứ gây hại khi được Hacker chỉnh sửa và viết lại Data lúc trình duyệt phân tích các Markup của mình.
Cách kiểm tra Website bị Cross Site Scripting tấn công nhanh chóng
Bất kỳ trang Web hay ứng dụng nào cũng đều có khả năng bị dính tấn công Cross Site Scripting – XSS. Vì vậy, mọi người nên kiểm tra Website thường xuyên để tránh XSS tấn công vào hệ thống.
Với Stored và Reflected XSS, bạn có thể kiểm tra bằng cách đưa vào đây một số Input đơn giản và độc nhất. Sau đó, nhận diện từng nơi mà Input phản hồi rồi chờ HTTP trả kết quả cho các Input đó. Rồi tiến hành kiểm tra xem nơi nào đang có các hành động bất thường của Javascript để xác định được vị trí mà XSS đang ẩn mình.
Với DOM-based XSS, người dùng cần kiểm tra Cross Site Scripting thông qua các thông số URL có liên quan theo cách sau đây:
- Chèn Input đơn giản và độc nhất vào thông số đó.
- Sử dụng công cụ nhà phát triển trình duyệt để tìm DOM cho Input đầu vào.
- Kiểm tra từng vị trí để xem đâu là nơi bị tấn công mà ngăn chặn kịp thời đúng lúc.
Tấn công XSS gây ra hậu quả gì?
Các cuộc tấn công XSS gây ra những tác hại khôn lường, cụ thể:
- Đánh cắp thông tin người dùng: Bằng cách kiểm soát quyền truy cập của nạn nhân, kẻ tấn công XSS có thể nắm tất cả thông tin cá nhân của người đó.
- Giảm thứ hạng tìm kiếm trang Web: Khi trang Web bị dính mã độc, độ uy tín và độ tin tưởng của Website sẽ bị giảm sút. Điều này ảnh hưởng trực tiếp đến thứ hạng của nó trên các công cụ tìm kiếm như Google.
- Giả dạng người dùng: Khi lấy được quyền truy cập của người dùng ứng dụng, Hacker có thể mạo danh nạn nhân để tương tác với ứng dụng. Đồng thời đánh cắp thông tin User hết sức trắng trợn để phục vụ vào các mục đích xấu.

Quan tâm: Wannacry Ransomware là gì? Biện pháp Ngăn Chặn Tấn Công ransomware WannaCry
Gợi ý 7 cách đối phó Cross Site Scripting hiệu quả nhất
Sau đây là 7 cách đối phó XSS hiệu quả giúp bạn giảm thiểu được hậu quả mà tấn công này gây ra:
Duy trì sự cảnh giác cao độ
Để ứng dụng Web được an toàn, các nhà phát triển cần có sự cảnh giác cao độ trước các tác nhân dễ phát tán mã độc. Đồng thời, cần lan truyền tinh thần cảnh giác này cho tất cả nhân viên phát triển, nhân viên QA, DevOps và SysAdmins của mình.
Không tin tưởng bất cứ Input nào của người dùng
Bất kỳ Input nào cũng có khả năng dính tấn công XSS. Vì vậy các quản trị viên Website nên xử lý tất cả các Input của người dùng như là các Input không đáng tin cậy, bao gồm cả những Input đã được xác thực đến từ người dùng nội bộ.
Sử dụng Escaping/Encoding
Kỹ thuật hiện đại chuyên phòng tránh tấn công XSS là Escaping/Encoding. Tuỳ vào Input người dùng được sử dụng ở đâu, mà các thủ thuật HTML Escape, XSS Escape và JS Escape sẽ được áp dụng tương ứng.
Lúc này, LANIT có 1 khuyên nhỏ dành cho bạn là hãy sử dụng thư viện có sẵn khi dùng Escaping/Encoding chứ không nên tự thiết kế cho riêng mình trừ khi nó thật sự cần thiết. Chỉ có như thế thì việc ngăn chặn XSS mới hiệu quả.
Thanh lọc HTML
Trong trường hợp không thể sử dụng được thủ thuật Escaping/Encoding, thì bạn có thể áp dụng cách thanh lọc HTML. Bằng cách sử dụng các thư viện tin cậy và xác thực, cần tiến hành mổ xẻ và thanh lọc HTML khỏi các mã độc được cài vào.
Tốt nhất là bạn nên dựa vào ngôn ngữ phát triển của riêng mình để chọn ra thư viện lọc HTML phù hợp. Một ví dụ điển hình chính là HtmlSanitizer cho .NET và Sanitize Helper cho Ruby được ứng dụng rất rộng rãi trên thị trường.
Cài đặt HttpOnly Flag
Để giảm thiểu các cuộc tấn công XSS, bạn có thể sử dụng HttpOnly Flag cho Cookies của Website. Theo đó, các Cookies sẽ không bị mã độc xâm nhập thông qua Javascript từ phía người dùng.
Sử dụng CSP (hay Content Security Policy)
Bạn còn có thể ứng dụng Content Security Policy hay CSP cho mình. CSP như là một Header của các phản hồi HTTP, giúp bạn phát hiện các nguồn cấp phát tài nguyên động để cho phép Load dữ liệu hoặc không trên chính website của mình.
Quét Website thường xuyên
Cuối cùng bạn có thể áp dụng cách để giảm tấn công XSS là tiến hành quét Website thường xuyên. Bởi vì XSS có thể đến từ bất cứ đâu, kể cả thư viện bên ngoài, Module hay phần mềm. Nên nếu bạn quét Website định kỳ, khả năng trang web của bạn bị XSS tấn công sẽ được hạn chế xuống mức thấp nhất.
Cách phục hồi Website sau khi bị XSS tấn công
Nếu ứng dụng của bạn không may bị XSS tấn công, bạn vẫn có thể có nhiều biện pháp khắc phục sự cố hiệu quả như:
- Định vị Code gây hại: Bước đầu tiên mọi người cần làm là nhận diện xem nguồn gây hại của Website đến từ đâu để tìm ra nguyên nhân cụ thể và khắc phục nhanh chóng.
- Gỡ những nội dung độc hại: Sau khi đã xác định được nguyên nhân gây hại, bạn hãy gỡ các nội dung chứa mã độc và dữ liệu bẩn ra khỏi trình duyệt của mình. Sau đó, khôi phục lại mọi thứ ở một nơi an toàn nhất.
- Vá các lỗ hổng của Website: Tiến hành chạy bản vá và cập nhật các Code gây hại cùng với những phiên bản đã lỗi thời cần được thay thế mới.
- Cập nhật thông tin của bạn: Đến đây, bạn cần đổi tất cả thông tin có liên quan gồm mật khẩu và các quyền riêng tư của chính trình duyệt mà mình đang sử dụng.
- Cài đặt tường lửa: Hãy thiết lập hệ thống tường lửa kiên cố để tránh tình trạng trang Web bị XSS tấn công trong thời gian gần nhất
Câu hỏi thường gặp về tấn công XSS
Cross Site Scripting có phải là vấn đề cần quan tâm hàng đầu?
Như chúng ta cũng thấy XSS có thể đánh cắp toàn bộ thông tin người dùng, khiến trang Web bị mất đi độ tin cậy vốn có và làm giảm cả thứ hạng của nó trên Google. Vì thế nếu bạn là một nhà phát triển Website và ứng dụng, bạn phải đặt mục tiêu đối phó với Cross Site Scripting lên hàng đầu.
Hình thức tấn công XSS nào nguy hiểm nhất?
Mỗi cách thức tấn công của XSS đều có độ nguy hiểm khác nhau. Trong đó Stored XSS được xem là phương thức tấn công nguy hiểm nhất khi nó có thể nằm vĩnh viễn trong máy chủ. Và nếu không có sự ngăn chặn kịp thời, Stored XSS sẽ phát tán tới rất nhiều người dùng một cách âm thầm.
Ứng dụng nào ngăn chặn tấn công Cross Site Scripting hiệu quả?
Thực tế thì cho đến bây giờ vẫn chưa có một ứng dụng nào có thể phòng chống Cross Site Scripting một cách triệt để. Tuy nhiên, bạn vẫn có thể sử dụng các thủ thuật khác để ngăn chặn tấn công XSS như Escaping, xác thực dữ liệu và lọc tìm kiếm độc hại,…

Kết luận
Trên đây, LANIT đã chia sẻ chi tiết về tấn công Cross Site Scripting là gì, các loại tấn công XSS phổ biến cũng như các cách ngăn chặn hiệu quả nhất. Có thể nói đây là một thứ vô cùng nguy hiểm khi nó có thể đánh cắp thông tin cá nhân và gây tổn hại lớn cho Website người dùng. Vì vậy, các bạn đừng nên chủ quan mà hãy áp dụng các biện pháp phòng ngừa XSS ngay từ bây giờ. Chúc bạn thành công!