Quay lại

[XSS là gì?] Làm cách nào để ngăn chặn sự tấn công của XSS?

Tác giả: Hồng Nguyễn - 06/11/2020

Lỗ hổng bảo mật có lẽ là vẫn đề không quá xa lạ đối với dân IT hiện nay, nổi bật trong số đó phải kể đến chính là sự tấn công của XSS. Vậy hiểu cụ thể XSS là gì? Làm sao để có thể ngăn chặn được sự tấn công từ XSS và bảo vệ hệ thống thông tin, dữ liệu? Để có câu trả lời rõ ràng nhất, mời bạn đọc theo dõi bài viết dưới đây của timviec365.vn nhé!

việc làm it

1. Bạn hiểu về XSS là gì?

XSS là viết tắt của cụm từ “Cross Site Scripting” – đây là một trong những loại tấn công khá phổ biến và dễ xảy ra nhất trong hệ thống web mà các tester có kinh nghiệm đều sẽ biết đến. XSS được xem là một loại tấn công khá nguy hiểm đối với các ứng dụng web, đồng thời nó cũng có thể gây ra những hậu quả nghiêm trọng đối với hệ thống dữ liệu, thông tin.

Hiểu đơn giản nhất thì XSS chính là một đoạn mã độc mà các hacker chèn vào hệ thống thông qua các đoạn script và thực thi hoạt động ăn cắp thông tin ở phía Client. Và thông thường, các cuộc tấn công XSS sẽ được sử dụng để vượt qua các truy cập, mạo danh người dùng lấy cắp thông tin.

Bạn hiểu về XSS là gì?

Mục đích chính của các hacker khi áp dụng sự tấn công của các XSS đó chính là lấy các dữ liệu nhận dạng của người dùng như là session tokens, cookies hay các thông tin liên quan khác. Đối với hầu hết các trường hợp thì cuộc tấn công XSS này đều được sử dụng để ăn cắp các cookies từ người khác. Và như chúng ta đã biết, cookies có tác dụng giúp cho người dùng có thể đăng nhập tự động, do đó nếu như cookies bị đánh cặp thì các hacker cũng có thể đăng nhập bằng các thông tin nhận dạng khác vào hệ thống dữ liệu, thông tin. Chính vì vậy mà đây được xem là một sự tấn công nguy hiểm nhất trong những lỗ hổng hệ thống hiện.

Cuộc tấn công XSS đang được thực hiện cơ phía các Client và nó có thể sẽ thực hiện với các ngôn ngữ lập trình phía Client khác nhau. Tuy vậy thì cuộc tấn công XSS này thường xảy ra nhất đối với các Javascript và HTML.

Xem thêm: Phùng Anh Tuấn – Hacker chuyên nghiệp đến Chủ tịch HĐQT G – Group

2. Quá trình tấn công của XSS thực hiện như thế nào?

Các hacker tấn công XSS thông qua việc gửi, chèn các lệnh, script độc hại, gây nguy hiểm và những mã độc này thường được viết dưới dạng ngôn ngữ lập trình phía Client như là HTML, Javascript, Flash, VBScript,… Cách tấn công XSS có thể được thực hiện theo nhiều cách khác nhau và nó phụ thuộc vào các loại tấn công của XSS. Theo đó, những mã độc có thể được phản chiếu trên các trình duyệt hệ thống hoặc là được lưu trữ ở các cơ sở dữ liệu. Mã độc này sẽ được chạy khi người dụng gọi các chức năng thích hợp. Nguyên nhân chính xảy ra các loại tấn công này chính là xác thực đầu vào của người dùng không phù hợp, các dữ liệu độc hại sẽ bắt đầu có thể xâm nhập. Các mã độc có thể nhập 1 script, đồng thời chèn vào mã nguồn của các website. Khi đó, trình duyệt thiết bị của người dùng sẽ không thể nào biết được mã thực thi có phải là độc hại hay không. Cũng chính vì vậy mà mã độc trong sự tấn công của XSS có thể được thực thi ngay trên trình duyệt hoặc là bất kỳ hình thức giả nào hiển thị lên mà người dùng không biết.

Quá trình tấn công của XSS thực hiện như thế nào?

Hiện nay, có khá nhiều hình thức tấn công XSS có thể xảy ra để đánh cắp thông tin, dữ liệu. Dưới đây là một số hình thức phổ biến nhất của XSS:

- XSS có thể xảy ra trên các tập lệnh độc hại đã được thực hiện ở phía Client.

- Các trang web hay form giả mạo được hiển thị cho người dùng – nơi mà các người dùng nhập thông tin để đăng nhập hoặc có thể là nhấp vào các liên kết độc hại).

- Quảng cáo được hiển thị trên các trang web mà người dùng truy cập.

- Các email độc hại được gửi đến cho người dùng và cuộc tấn công XSS sẽ xảy ra khi tin tặc tìm kiếm những lỗ hổng có trên website, đồng thời gửi nó làm đầu vào độc hại. Lúc này, các tập lệnh độc hại sẽ được tiêm vào mã lệnh và gửi dưới dạng đầu ra cho những đối tượng người dùng cuối cùng.

Xem thêm: Việc làm lập trình front end

3. Các loại tấn công XSS phổ biến hiện nay

Hiện nay, XSS có 3 loại tấn công phổ biến nhất đó là Reflected XSS, Stored XSS và DOM Based XSS. Cụ thể quá trình tấn công của các loại này như sau:

3.1. Reflected XSS

Reflected XSS

Có rất nhiều hướng để khai thác thông tin, dữ liệu thông qua lỗi Reflected XSS và đây cũng là một trong những cách được sử dụng phổ biến nhất để chiếm phiên việc làm (session) của người dùng. Từ đây, các hacker có thể dễ dàng truy cập được vào dữ liệu, chiếm quyền của người dùng trên các website. Chi tiết về quá trình tấn công này bao gồm:

- Người dùng sẽ tiến hành đăng nhập vào trang web và giả sử như nó đã được gán session.

- Bằng một cách nào đó, các hacker sẽ gửi đến cho người dùng một url nhất định.

- Tiếp đó người dùng sẽ truy cập vào url đã nhận được và server sẽ phản hồi về cho người dùng kèm theo các dữ liệu có trong đoạn javascript của hacker.

- Trình duyệt của người dùng sẽ nhận phản hồi, đồng thời thực thi các đoạn javascript. Các dòng lệnh trên bản chất thực hiện request đến site của các hacker cùng với tham số chính là cookies của người dùng.

- Cuối cùng, từ phía site của mình, các hacker sẽ có thể nắm bắt được các nội dung mà mình request được trên, xem như các session của người dùng đã bị chiếm. Và lúc này thì các hacker có thể giả mạo với tư cách của người dùng, thực hiện các quyền truy cập vào website mà người dùng đang có.

Tìm hiểu thêm: CEH là gì?

3.2. Stored XSS

Stored XSS

Không giống với Reflected thực hiện tấn công trực tiếp vào hệ thống của 1 người dùng mà các hacker nhắm đến, đối với loại tấn công Stored XSS này sẽ hướng đến nhiều hệ thống người dùng hơn. Lỗi này sẽ xảy ra trong trường hợp ứng dụng web không được kiểm tra kỹ lưỡng các dữ liệu đầu vào trước khi thực hiện lưu vào cơ sở dữ liệu. Ví dụ như đối với các form góp ý hay các comment,… có trên website thì với kỹ thuật Stored XSS, các hacker có thể không khai thác được trực tiếp mà sẽ cần đến ít nhất là 2 bước sau:

- Bước đầu tiên, các hacker sẽ thông qua điểm đầu vào như là input, form hay textarea,… không được kiểm tra kỹ để thực hiện chèn vào các cơ sở dữ liệu những đoạn mã nguy hiểm, độc hại.

- Tiếp đến, khi người dùng thực hiện truy cập vào các ứng dụng web, thực hiện các thao tác có liên quan đến cơ sở dữ liệu được lưu này, các đoạn mã của hacker sẽ được thực thi trên chính trình duyệt người dùng đang sử dụng.

Stored XSS và Reflected XSS thực chất có 2 sự khác biệt lớn trong quá trình thực hiện tấn công, xâm nhập dữ liệu, thông tin như sau:

- Thứ nhất, các hacker để có thể khai thác được vào Reflected XSS thì sẽ cần phải lừa được người dùng truy cập vào url mà mình đã gửi. Còn đối với Stored XSS thì không cần phải mất thời gian vào thao tác đó mà sau khi chèn được các mã độc hại vào cơ sở dữ liệu của ứng dụng, các hacker chỉ cần ngồi đợi người dùng tự động truy cập là được. Đối với người dùng thì việc này là hết sức bình thường bởi họ không hề biết gì đến việc dữ liệu của mình đã bị nhiễm độc hại, nguy hiểm.

Các loại tấn công XSS

- Thứ hai, mục tiêu chính của các hacker đó chính là làm sao để đạt được các dữ liệu, thông tin. Và mục tiêu này sẽ dễ dàng hơn nếu như ở thời điểm tấn công người dùng trong phiên làm việc của ứng dụng website. Đối với Reflected XSS thì hacker có thể thuyết phục được hoặc cũng có thể là lừa người dùng đăng nhập, tiếp đó truy cập vào url mà hacker đã cung cấp. Tuy nhiên, đối với Stored XSS thì lại hoàn toàn khác vì các mã độc đã được lưu ở bên trong cơ sở dữ liệu website, do đó bất kỳ khi nào người dùng truy cập kể cả các chức năng liên quan thì đều sẽ khiến cho mã độc thực thi, đồng thời sẽ có khả năng là chức năng này sẽ yêu cầu người dùng phải xác nhận trước khi đăng nhập. Và tất nhiên, trong thời gian này người dùng sẽ vẫn đang ở trong phiên làm việc và dễ bị xâm nhập.

Từ những phân tích trên cho thấy, sự tấn công của Stored XSS nguy hiểm hơn rất nhiều so với Reflected XSS và các đối tượng bị ảnh hưởng có thể sẽ là tất cả những người dùng có truy cập vào ứng dụng website đó. Và nếu hệ thống có vai trò quản trị thì sẽ có thể có nguy cơ bị chiếm toàn bộ quyền điều khiển website.

cv xin việc it

3.3. DOM Based XSS

DOM Based XSS

Một loại hình tấn công cơ sở dữ liệu nữa cũng khá phổ biến đó chính là DOM Based XSS. Đây được biết đến là kỹ thuật khai thác XSS dựa trên cơ sở thay đổi các cấu trúc DOM của tài liệu mà cụ thể ở đây chính là HTML.

Ví dụ như một website có url nhất định để đăng ký và người dùng khi truy cập đến sẽ thấy một form rất bình thường, quen thuộc. Chắc chắn khi đó người dùng sẽ chẳng có chút nghi ngờ gì mà sẽ lựa chọn điền các thông tin theo yêu cầu. Lúc này script sẽ ngay lập tức thực thi và cơ sở dữ liệu, thông tin của hệ thống đã bị hack. Chỉ với một mẹo vô cùng đơn giản thông qua việc áp dụng DOM Based XSS mà các hacker đã có thể nhanh chóng xâm nhập và có được thông tin họ cần. Do đó, DOM Based XSS cũng là một hình thức tấn công vô cùng nguy hiểm hiện nay.

4. Phương pháp kiểm thử tấn công XSS

Để có thể kiểm thử về sự tấn công của XSS thì người dùng nên áp dụng phương pháp kiểm thử hộp đen trước. Điều này có nghĩa là chúng ta có thể thực hiện test mà không cần xem xét về code, song việc kiểm tra code luôn được khuyến khích bởi nó mang đến kết quả đáng tin cậy hơn.

Phương pháp kiểm thử tấn công XSS

Và trong quá trình kiểm thử, các tester nên xem xét kỹ lưỡng phần nào của website có thể sẽ bị tấn công bởi XSS, đồng thời liệt kê toàn bộ các mối nghi ngờ đó ra tài liệu kiểm thử để đảm bảo không bị xót. Sau đó, các tester cần lập kế hoạch cho các script nào cần thực hiện kiểm tra. Một vấn đề quan trọng ở đây chính là kết quả có ý nghĩa gì hay ứng dụng đó dễ bị xâm nhập, có lỗ hổng bảo mật và cần phải được phân tích, đưa ra kết quả chuẩn xác.

Trong khi thực hiện thử nghiệm các cuộc tấn công XSS, các tester cần lưu ý là kiểm tra xem nó có đang đáp ứng như thế nào đối với các kịch bản đã nhập, các kịch bản đó có đang được thực thi hay không?,…

Tham khảo ngay: Việc làm tester nhé

5. Cách để ngăn chặn sự tấn công của XSS

Mặc dù XSS được đánh giá là một dạng tấn công cơ sở dữ liệu khá nguy hiểm, có nhiều rủi ro nhất, tuy nhiên vẫn có thể ngăn chặn và người dùng cần phải có kế hoạch cụ thể để ngăn ngừa tình trạng này xảy ra. Và cùng bởi sự phổ biến của loại tấn công này mà cũng có khá nhiều cách để ngăn chặn nó như là data validation, filtering, escaping,…

Và quá trình ngăn ngừa sự xâm nhập, tấn công của XSS sẽ được thực hiện từ việc xác thực đầu vào. Toàn bộ mọi thứ được nhập bởi người dùng sẽ cần phải đảm bảo xác thực chính xác vì đầu vào sẽ ảnh hưởng đến đầu ra. Việc xác thực dữ liệu này có thể được đặt tên làm cơ sở và đảm bảo về tính bảo mật của hệ thống dữ liệu đó. Mặc dù vậy thì việc này cũng chỉ góp phần làm giảm thiểu các rủi ro chứ không thể ngăn chặn hoàn toàn các lỗ hổng mà sự tấn công XSS đã gây ra.

Cách để ngăn chặn sự tấn công của XSS

Một cách nữa cũng có thể ngăn chặn được sự tấn công của XSS đó chính là lọc đầu vào của người dùng. Tức là sẽ thực hiện tìm kiếm các từ khóa nguy hiểm ở mục nhập của người dùng và sẽ xóa chúng hay thực hiện các thao tác thay thế chúng bằng chuỗi trống. Các từ khóa đó có thể sẽ là thẻ<script> </script> hoặc là lệnh javascript, đánh dấu HTML,…

Việc lọc đầu vào này cũng khá dễ thực hiện và thông qua nhiều cách khác nhau như:

- Thực hiện bởi các lập trình viên đã viết mã ở phía server.

- Thông qua thư viện ngôn ngữ lập trình thích hợp mà người dùng đang sử dụng.

Riêng đối với trường hợp ngăn chặn này thì một số lập trình viên viết mã riêng của họ để có thể tìm kiếm được các từ khóa thích hợp nhất và xóa bỏ chúng đi. Tuy nhiên thì cách tối ưu nhất và dễ thực hiện nhất đó là lựa chọn các thư viện ngôn ngữ lập trình phù hợp để đảm bảo mức độ tin cậy bởi các thư viện đó đã được kiểm nghiệm bởi các nhà phát triển phần mềm nổi tiếng.

Phương pháp ngăn chặn sự tấn công của XSS

Ngoài ra, để phòng ngừa sự tấn công của XSS thì cũng có thể sử dụng các ký tự Escape và trong thực tế thì các ký tự này đang được thay đổi bằng các mã đặc biệt.

Trên đây là những thông tin chi tiết giúp bạn giải đáp thắc mắc XSS là gì cùng các vấn đề xoay XSS. Hy vọng từ bài viết, các bạn sẽ hiểu và áp dụng một cách hiệu quả các kiến thức này vào công việc trong thực tế để ngăn chặn sự tấn công từ XSS, đảm bảo sự an toàn, bảo mật cho các thông tin, dữ liệu trong hệ thống website nhé!

SSL là gì? Tầm quan trọng mà SSL mang lại cho người dùng

SSL là thuật ngữ không còn quá xa lạ trong ngành công nghệ thông tin hiện nay. Tuy nhiên, không phải ai cũng hiểu rõ về SSL là gì, đặc biệt là những ai chưa có cơ hội tiếp xúc với ngành này. Vậy thì hãy cùng đọc bài viết và tìm hiểu về SSL nhé!

SSL là gì?​

Từ khóa liên quan

Chuyên mục

Bí quyết viết CV- Tâm sự Nghề nghiệp- Cẩm Nang Tìm Việc- Kỹ Năng Tuyển Dụng- Cẩm nang khởi nghiệp- Kinh nghiệm ứng tuyển việc làm- Kỹ năng ứng xử văn phòng- Quyền lợi người lao động- Bí quyết đào tạo nhân lực- Bí quyết lãnh đạo- Bí quyết làm việc hiệu quả- Bí quyết viết đơn xin nghỉ phép- Bí quyết viết thư xin thôi việc- Cách viết đơn xin việc- Bí quyết thành công trong công việc- Bí quyết tăng lương- Bí quyết tìm việc dành cho sinh viên- Kỹ năng đàm phán lương- Kỹ năng phỏng vấn- Kỹ năng quản trị doanh nghiệp- Kinh nghiệm tìm việc làm tại Hà Nội- Kinh nghiệm tìm việc làm tại Đà Nẵng- Mẹo viết hồ sơ xin việc- Mẹo viết thư xin việc- Chia sẻ kinh nghiệm ngành Kinh doanh - Bán hàng- Định hướng nghề nghiệp- Top việc làm hấp dẫn- Tư vấn nghề nghiệp lao động phổ thông- Tư vấn việc làm Hành chính văn phòng- Tư vấn việc làm ngành Báo chí- Tư vấn tìm việc làm thêm- Tư vấn việc làm ngành Bất động sản- Tư vấn việc làm ngành Công nghệ thông tin- Tư vấn việc làm ngành Du lịch- Tư vấn việc làm ngành Kế toán- Tư vấn việc làm ngành Kỹ thuật- Tư vấn việc làm ngành Sư phạm- Tư vấn việc làm ngành Luật- Tư vấn việc làm thẩm định- Tư vấn việc làm vị trí Content- Tư vấn việc làm ngành Nhà hàng - Khách sạn- Tư vấn việc làm quản lý- Kỹ năng văn phòng- Nghề truyền thống- Các vấn đề về lương- Tư vấn tìm việc làm thời vụ- Cách viết Sơ yếu lý lịch- Cách gửi hồ sơ xin việc- Biểu mẫu phục vụ công việc- Tin tức tổng hợp- Ý tưởng kinh doanh- Chia sẻ kinh nghiệm ngành Marketing- Kinh nghiệm tìm việc làm tại Bình Dương- Kinh nghiệm tìm việc làm tại Hồ Chí Minh- Mẹo viết Thư cảm ơn- Góc Công Sở- Câu chuyện nghề nghiệp- Hoạt động đoàn thể- Tư vấn việc làm Biên - Phiên dịch- Tư vấn việc làm Ngành Nhân Sự- Tư vấn việc làm Ngành Xuất Nhập Khẩu - Logistics- Tư vấn việc làm Ngành Tài Chính - Ngân Hàng- Tư vấn việc làm Ngành Xây Dựng- Tư vấn việc làm Ngành Thiết kế - Mỹ thuật- Tư vấn việc làm Ngành Vận tải - Lái xe- Quản trị nhân lực - Quản trị sản xuất- Cẩm nang kinh doanh- Tư vấn việc làm Ngành Thiết kế - Nội thất- Mô tả công việc ngành Kinh doanh- Mô tả công việc ngành Bán hàng- Mô tả công việc Tư vấn - Chăm sóc khách hàng- Mô tả công việc ngành Tài chính - Ngân hàng- Mô tả công việc ngành Kế toán - Kiểm toán- Mô tả công việc ngành Marketing - PR- Mô tả công việc ngành Nhân sự- Mô tả công việc ngành IT - Công nghệ thông tin- Mô tả công việc ngành Sản xuất- Mô tả công việc ngành Giao nhận - Vận tải- Mô tả công việc Kho vận - Vật tư- Mô tả công việc ngành Xuất nhập khẩu – Logistics- Mô tả công việc ngành Du lịch - Nhà hàng - Khách sạn- Mô tả công việc ngành Hàng không- Mô tả công việc ngành Xây dựng- Mô tả công việc ngành Y tế - Dược- Mô tả công việc Lao động phổ thông- Mô tả công việc ngành Kỹ thuật- Mô tả công việc Nhà nghiên cứu- Mô tả công việc ngành Cơ khí - Chế tạo- Mô tả công việc bộ phận Quản lý hành chính- Mô tả công việc Biên - Phiên dịch- Mô tả công việc ngành Thiết kế- Mô tả công việc ngành Báo chí - Truyền hình- Mô tả công việc ngành Nghệ thuật - Điện ảnh- Mô tả công việc ngành Spa – Làm đẹp – Thể lực- Mô tả công việc ngành Giáo dục - Đào tạo- Mô tả công việc Thực tập sinh - Intern- Mô tả công việc ngành Freelancer- Mô tả công việc Công chức - Viên chức- Mô tả công việc ngành Luật - Pháp lý- Tư vấn việc làm Chăm Sóc Khách Hàng - Tư vấn việc làm Vật Tư - Kho Vận- Hồ sơ doanh nhân- Việc làm theo phường- Danh sách các hoàng đế nổi tiếng- Tài liệu gia sư- Vĩ Nhân Thời Xưa- Chấm Công- Danh mục văn thư lưu trữ- Tài Sản Doanh Nghiệp- KPI Năng Lực-