1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên Cứu Giải Pháp Chống Dạng Tấn Công Cross-Site Scripting (Xss).Pdf

95 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Trang 1

ĐẠI HỌC MỞ HÀ NỘI

KHOA CÔNG NGHỆ THÔNG TIN

-DƯƠNG TUẤN ANH

NGHIÊN CỨU GIẢI PHÁP CHỐNG DẠNG TẤN CÔNGCROSS-SITE SCRIPTING (XSS)

Ngành/Chuyên ngành: Công nghệ thông tin

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

Hà Nội – 2022

Trang 2

ĐẠI HỌC MỞ HÀ NỘI

KHOA CÔNG NGHỆ THÔNG TIN

-DƯƠNG TUẤN ANH

NGHIÊN CỨU GIẢI PHÁP CHỐNG DẠNG TẤN CÔNGCROSS-SITE SCRIPTING (XSS)

Ngành/Chuyên ngành: Công nghệ thông tin

Giảng viên hướng dẫn: Ths Vũ Xuân Hạnh

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

Hà Nội – 2022

Trang 3

VIỆN ĐẠI HỌC MỞ HÀ NỘIKHOA CÔNG NGHỆ THÔNG TIN

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAMĐộc lập – Tự do – Hạnh phúc

Hà Nội, ngày tháng năm 2022NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

Họ và tên: Dương Tuấn AnhNgày sinh: 20/10/1998

Chuyên ngành: Công nghệ thông tin Lớp hành chính: 16A04

Giới tính: NamNơi sinh: Hà NộiMã số: 16A10010210

1 Tên đề tài: Nghiên cứu giải pháp phòng chống dạng tấn công cross-sitescripting (XSS)

2 Nhiệm vụ và nội dung

Đồ án này thực hiện hai nhiệm vụ chính bao gồm: tìm hiểu về dạng tấncông cross-site scripting (XSS) và nghiên cứu về giải pháp phòng chốngdạng tấn công này

- Trong chương đầu tiên, đồ án sẽ trình bày những kiến thức cơ bản vềan ninh mạng và các lỗ hổng bảo mật

- Chương tiếp theo, đồ án sẽ trình bày khái niệm về dạng tấn công XSS,các loại tấn công XSS mà kẻ tấn công có thể sử dụng trong thực tế, táchại và cách phát hiện và phòng chống

- Chương cuối cùng, đồ án sẽ đưa ra giải pháp phòng chống dạng tấncông này cho đối tượng là người quản trị các ứng dụng mạng

3 Ngày giao nhiệm vụ:

4 Ngày hoàn thành nhiệm vụ:

Trang 4

5 Giảng viên hướng dẫn: Th.s Vũ Xuân Hạnh

Ngày tháng năm 2022

Trang 5

LỜI NÓI ĐẦU

Ngày nay với sự phát triển của các thiết bị kỹ thuật, phương tiện truyềntin và mạng Internet đã giúp cho đời sống, công việc của con người trở có thểphát triển tốt hơn Nhưng bên cạnh đó cũng tồn tại song song một số đe dọagây ảnh hậu quả không nhỏ đến từ các hacker vào dữ liệu hệ thống, thông tincá nhân, thông tin tài khoản của chúng ta Cross Site Scripting (XSS) là mộttrong những tấn công phổ biến và dễ bị tấn công nhất mà tất cả các Testerkinh nghiệm đều biết đến Nó được coi là một trong những tấn công nguyhiểm nhất đối với ứng dụng web và có thể mang lại hậu quả nghiêm trọng

Tấn công XSS là một đoạn mã độc, để khai thác lỗ hổng XSS, hacker sẽchèn mã độc thông qua các đoạn script để thực thi chúng ở phía client Mụcđích chính của cuộc tấn công này là ăn cắp dữ liệu nhận dạng người dùng nhưcookies, session tokens và các thông tin khác Đồ án tốt nghiệp "Nghiên cứugiải pháp chống dạng tấn công cross-site scripting (XSS)" này nhằm tài liệuhóa về XSS, các dạng tấn công và tác hại Thực hiện triển khai ứng dụng đểthực nghiệm và triển khai thực nghiệm với các kỹ thuật khác nhau Từ đótriển khai xây dựng phương án phòng chống tấn công XSS để giúp bảo mật antoàn thông tin

Em xin gửi lời cảm ơn sâu sắc tới toàn thể thầy cô giáo viên Trường Đạihọc Mở Hà Nội nói chung và thầy Vũ Xuân Hạnh nói riêng đã nhiệt tìnhgiảng dạy, chỉ bảo, cũng như đã giúp đỡ em rất nhiều trong quá trình hoànthiện đồ án này.

Trong quá trình bổ sung cũng như thực hiện đồ án, có đôi chút thiếu sót.Mong quý thầy cô xem xét bỏ qua.

Em xin chân thành cảm ơn !

Trang 6

1.2.1 Khái niệm về ứng dụng web 4

1.2.2 Ứng dụng web hoạt động ra sao? 4

1.2.3 Một số thuật ngữ trong ứng dụng Web 5

2.1.4 Tác hại của tấn công XSS 14

2.1.5 Phân loại các dạng tấn công XSS 16

2.2 Các kỹ thuật phát hiện và phòng chống 21

2.2.1 Escaping input – Thoát dữ liệu đầu vào 21

2.2.2 Input validation – Xác thực dữ liệu đầu vào 22

2.2.3 Sanitizing input – Làm sạch dữ liệu đầu vào 22

Trang 7

2.2.4 Whitelisting values – Các giá trị thuộc danh sách trắng 22

2.2.5 Content-security policy – Chính sách bảo mật nội dung 23

2.3 Các nghiên cứu trước đây 23

2.3.1 Tổng quan tình hình nghiên cứu 23

3.2.1 Tích hợp module ModSecurity của OWASP 37

3.2.2 Sử dụng phương pháp học máy có giám sát (Supervised MachineLearning) 62

3.3 Kết chương 79

KẾT LUẬN 81

TÀI LIỆU THAM KHẢO 82

Trang 8

Ngày nay với sự phát triển của các thiết bị kỹ thuật, phương tiện truyềntin và mạng Internet đã giúp cho đời sống, công việc của con người trở có thểphát triển tốt hơn Nhưng bên cạnh đó cũng tồn tại song song một số đe dọagây ảnh hậu quả không nhỏ đến từ các hacker vào dữ liệu hệ thống, thông tincá nhân, thông tin tài khoản của chúng ta Cross Site Scripting (XSS) là mộttrong những tấn công phổ biến và dễ bị tấn công nhất mà tất cả các Testerkinh nghiệm đều biết đến Nó được coi là một trong những tấn công nguyhiểm nhất đối với ứng dụng web và có thể mang lại hậu quả nghiêm trọng.Tấn công XSS là một đoạn mã độc, để khai thác lỗ hổng XSS, hacker sẽ chènmã độc thông qua các đoạn script để thực thi chúng ở phía client Mục đíchchính của cuộc tấn công này là ăn cắp dữ liệu nhận dạng người dùng nhưcookies, session tokens và các thông tin khác Đồ án tốt nghiệp "Nghiên cứugiải pháp chống dạng tấn công cross-site scripting (XSS)" này nhằm tài liệuhóa về XSS, các dạng tấn công và tác hại Thực hiện triển khai ứng dụng đểthực nghiệm và triển khai thực nghiệm với các kỹ thuật khác nhau Từ đótriển khai xây dựng phương án phòng chống tấn công XSS để giúp bảo mật antoàn thông tin.

Nội dung đề tài dự định đạt được:

- Nghiên cứu và tài liệu hóa về XSS, các dạng tấn công và tác hại

Trang 9

- Triển khai ứng dụng thực nghiệm và lập báo cáo

- Triển khai thực nghiệm với các kỹ thuật khác nhau và lập báo cáo- Lập báo cáo và triển khai xây dựng phương án phòng chống

Trang 10

DANH MỤC CÁC BẢNG

Bảng 2.1 Tỷ lệ tấn công XSS gần đây 11

Bảng 2.2 Ảnh hưởng của tấn công XSS 14

Bảng 2.3 Các cách thoát khỏi tấn công bằng ký tự đặc biệt 21

Bảng 3.1 Các tính năng của WAF [6] 33Bảng 3.2 Giá trị biến Request variable 41

Bảng 3.3 Giá trị biến Server variable 43

Bảng 3.4 Giá trị biến Response variable 44

Bảng 3.5 Giá trị biến Miscellaneouse variable 44

Bảng 3.6 Giá trị biến Parsing flags 45

Bảng 3.7 Giá trị biến Collection variable 47

Bảng 3.8 Giá trị biến Time variables 47

Bảng 3.9 Các toán tử so trùng chuỗi 49

Bảng 3.10 Các toán tử số 49

Bảng 3.11 Các toán tử xác thực 50

Bảng 3.12 Các toán tử kết hợp 50

Bảng 3.13 Các hành động trong Disruptive actions 52

Bảng 3.14 Các hành động trong Flow actions 52

Bảng 3.15 Các hành động trong Metadata actions 53

Bảng 3.16 Các hành động trong Variable actions 53

Bảng 3.17 Các hành động trong Logging actions 54

Bảng 3.18 Các hành động trong Special actions 55

Bảng 3.19 Các hành động trong Special actions 55

Bảng 3.20 So sánh độ chính xác và độ đo F1 của hai bộ dữ liệu dataset1 và dataset2 69

Trang 11

Bảng 3.21 Kết quả kiểm thử với hai model tương ứng với hai dataset1 và

Bảng 3.22 Các đặc trưng được trích chọn 70

Bảng 3.23 Dữ liệu huấn luyện và kiểm thử 74

Bảng 3.24 Hiệu suất của một số kỹ thuật học máy 74

Bảng 3.25 Bảng so sánh sáu độ đo vời từng số lượng cây quyết định 75

Bảng 3.26 Hiệu suất kiểm thử 75

Trang 12

Hình 3.3 Bảng thông báo hiện lên sau khi tấn công XSS 61

Hình 3.4 Thông báo từ chối truy cập 62

Hình 3.5 Mô hình học máy có giám sát 64

Hình 3.6 Mô hình phát hiện đề xuất 66

Hình 3.7 Mô hình trích chọn đặc trưng 76

Hình 3.8 Xây dựng module huấn luyện sử dụng thuật toán RandomForest .77Hình 3.9 Xây dựng ứng dụng dựa trên module huấn luyện 77

Hình 3.10 Ứng dụng phát hiện XSS 78

Hình 3.11 Kết quả đưa ra sau khi nhập dữ liệu lành tính 78

Hình 3.12 Kết quả đưa ra sau khi nhập dữ liệu chứa mã độc XSS 79

Trang 13

DANH MỤC CÁC CHỮ VIẾT TẮT

STT

Trang 14

CHƯƠNG 1: TỔNG QUAN VỀ AN NINH MẠNG, ỨNGDỤNG WEB

1.1.Tổng quan về An ninh mạng

1.1.1 An ninh mạng là gì?

An ninh mạng là hoạt động bảo vệ các hệ thống quan trọng và thông tinnhạy cảm khỏi các cuộc tấn công kỹ thuật số Còn được gọi là bảo mật côngnghệ thông tin, các biện pháp an ninh mạng được thiết kế để chống lại cácmối đe dọa gây hại cho các hệ thống và ứng dụng được nối mạng, cho dùnhững mối đe dọa đó xuất phát từ bên trong hay bên ngoài một tổ chức.

Trong phân tích an ninh mạng, bước đầu tiên là xem xét bộ ba CIAđây làmột mô hình nổi tiếng cho sự phát triển của an ninh mạng Bộ ba CIA baogồm: tính sẵn sàng (Availability), tính toàn vẹn (Integrity) và tính bảo mật(Confidentiality), là mô hình được thiết kế để hướng dẫn chính sách và bảomật thông tin của một tổ chức Mục tiêu của bộ ba CIA là đảm bảo rằng thôngtin được lưu trữ chính xác và nhất quán cho đến khi thực hiện các thay đổi cóthẩm quyền.

- Tính bảo mật là khả năng không tiết lộ thông tin cho những người,chương trình hoặc quy trình không được phép Nó liên quan đến bảomật thông tin vì nó yêu cầu kiểm soát quyền truy cập vào thông tinđược bảo vệ Nếu tính bảo mật bị xâm phạm, điều này có thể dẫn đếnmất quyền riêng tư và tiết lộ thông tin bí mật cho công chúng hoặcnhững người khác.

- Tính toàn vẹn có nghĩa là bảo vệ chống lại việc xóa bỏ và sửa đổi thôngtin không đúng cách, đảm bảo rằng thông tin không thể bị thay đổi mà

Trang 15

không bị phát hiện và đảm bảo tính toàn vẹn của thông tin Điều này cónghĩa là một mối đe dọa mạng hoặc lỗ hổng đối với tấn công mạng cóthể được đo lường bằng cách xâm phạm một hoặc nhiều nguyên tắc củanó Tính toàn vẹn dựa trên mã hóa và băm để đảm bảo việc bảo vệ tốtnhất có thể chống lại các cuộc tấn công mạng và các mối đe dọa mạngnhư gián điệp mạng.

- Tính sẵn sàng đảm bảo rằng thông tin luôn sẵn sàng cho những ai cónhu cầu, bao gồm truy cập kịp thời và đáng tin cậy, bất kể thời giantrong ngày, nơi ở, vị trí hoặc các yếu tố khác.

1.1.2 Kẻ tấn công là ai?

Có 3 dạng hacker nổi tiếng trong thế giới bảo mật thông tin: hacker mũđen, hacker mũ trắng và hacker mũ xám Màu sắc của mũ được sinh ra khicác hacker cố gắng phân biệt bản thân và tách hacker tốt ra khỏi các hackerxấu.

- Hacker mũ đen

Hacker mũ đen còn được gọi là Hacker phi đạo đức hoặc kẻ phá hoại bảomật Những người này hack hệ thống một cách bất hợp pháp để ăn cắp tiềnhoặc để đạt được các mục tiêu bất hợp pháp nào đó của bản thân Họ tìm kiếmcác ngân hàng hoặc các công ty có bảo mật yếu và ăn cắp tiền hoặc thông tinthẻ tín dụng Họ cũng có thể sửa đổi hoặc phá hủy dữ liệu mà họ tìm thấy.

- Hacker mũ trắng

Hacker mũ trắng hay còn gọi là Hacker có đạo đức Những người này sửdụng cùng một kỹ thuật được sử dụng bởi các hacker mũ đen Họ cũng hackhệ thống, nhưng họ chỉ có thể hack hệ thống mà họ có quyền hack để kiểm tra

Trang 16

tính bảo mật của hệ thống Họ tập trung vào bảo mật và bảo vệ hệ thống côngnghệ thông tin.

- Hacker mũ xám

Hacker mũ xám là sự kết hợp giữa Hacker mũ trắng và Hacker mũ đen.Họ có thể hack bất kỳ hệ thống nào ngay cả khi họ không được phép kiểm tratính bảo mật của hệ thống nhưng họ sẽ không bao giờ ăn cắp tiền hoặc làmhỏng hệ thống đó.Trong hầu hết các trường hợp, họ thông báo lỗi bảo mật choquản trị viên của hệ thống đó Nhưng điều đó cũng là bất hợp pháp vì họ tựtiện kiểm tra tính bảo mật của hệ thống mà chưa được cho phép.

1.1.3 Lỗ hổng bảo mật

Lỗ hổng bảo mật là các yếu điểm tồn tại trong các hệ thống thông tin chophép kẻ tấn công truy cập bất hợp pháp vào hệ thống thông tin, gây ngưng trệdịch vụ mạng hay đánh cắp dữ liệu Các lỗ hổng bảo mật liên tục được pháthiện trong tất cả các loại phần mềm chống vi-rút và được các nhà cung cấpphần mềm phát hành các bản vá - còn được gọi là "bản sửa lỗi" hoặc chỉ đơngiản là "bản cập nhật bảo mật" - để đưa ra giải pháp sửa chữa nhanh chóngngay lập tức cho sự cố Các lỗ hổng bảo mật được chia như sau:

- Lỗ hổng loại A: Đây là một lỗ hổng vô cùng nguy hiểm, cho phépngười ngoài có thể truy cập một cách bất hợp pháp vào hệ thống đểđánh cắp thông tin hay phá hủy toàn bộ hệ thống.

- Lỗ hổng loại B: Đây là một lỗ hổng có độ nguy hiểm tầm trung, chophép người dùng thêm cácquyền trên hệ thống mà không cần thực hiệnviệc kiểm tra tính hợp lệ của quyền đó Những lỗ hổng này thườngxuất hiện trong các ứng dụng trênhệ thống, có thể dẫn đến việc mấthoặc lộ thông tin dữ liệu.

Trang 17

- Lỗ hổng loại C: Đây là một lỗ hổng có độ nguy hiểm thấp, gây ngưngtrệ, làm gián đoạn hệ thống, được quyền truy cập bất hợp pháp vàkhông gây ra việc làm hỏng dữ liệu

1.2 Tổng quan về ứng dụng web

1.2.1 Khái niệm về ứng dụng web

Ứng dụng web là một chương trình ứng dụng thường được lưu trữ trênmáy chủ từ xa, và người dùng có thể truy cập thông qua việc sử dụng phầnmềm được gọi là trình duyệt web.

Đây là một dạng chương trình máy tính thường chạy với sự hỗ trợ củatrình duyệt web và cũng sử dụng nhiều công nghệ web để thực hiện đa nhiệmvụ trên Internet Một ứng dụng web có thể được phát triển cho nhiều ngườidùng, được sử dụng bởi bất kỳ ai như cá nhân hay tổ chức nào đó.

Nói chung, một ứng dụng web có thể chứa nhiều cửa hàng trực tuyến,webmail, máy tính, nền tảng mạng xã hội, Có một số loại ứng dụng mạngthường yêu cầu một loại trình duyệt web đặc biệt để thực hiện truy cập.Chúng ta không thể sử dụng các trình duyệt thông thường để truy cập các ứngdụng đó Tuy nhiên, hầu hết ứng dụng mạng trên Internet đều có thể đượctruy cập bằng một trình duyệt tiêu chuẩn.

1.2.2 Ứng dụng web hoạt động ra sao?

Tất cả những gì chúng ta cần để truy cập một ứng dụng web là có kết nốiInternet Người dùng truy cập một ứng dụng web bằng cách nhập một mãURL vào thanh địa chỉ của trình duyệt Sau khi kích hoạt ứng dụng:

- Người dùng gửi một yêu cầu tới máy chủ web sử dụng các trình duyệtnhư Chrome, Firefox thông qua Internet.

Trang 18

- Yêu cầu ngay lập tức được gửi thẳng tới máy chủ ứng dụng web bởimáy chủ web.

- Máy chủ ứng dụng web thực hiện các nhiệm vụ được yêu cầu như xử lýcơ sở dữ liệu, truy vấn cơ sở dữ liệu; tạo ra kết quả của dữ liệu đã yêucầu.

- Kết quả thu được sẽ được gửi về cho máy chủ web với thông tin/dữ liệuđược yêu cầu hay dữ liệu đã qua xử lý.

- Máy chủ web phản hồi lại dữ liệu cho người dùng và hiển thị nó lênmàn hình.

1.2.3 Một số thuật ngữ trong ứng dụng Web

- Session

Session là khoảng thời gian mà người sử dụng thực hiện giao tiếp với mộtứng dụng.Trong hệ thống máy tính, Session bắt đầu khi người dùng đăngnhập hoặc truy cập vào một máy tính, mạng hoặc dịch vụ cụ thể Nó kếtthúckhi người dùngđăng xuất khỏi dịch vụ hoặc tắt máy tính Session có thể tạmthời lưu trữ thông tin liên quan đến các hoạt động của người dùng khi đượckết nối Trong lập trình máy tính, các biến Session lưu trữ thông tin tạm thời,đôi khi được sử dụng để truy xuất và xem dữ liệu trên nhiều trang web Cáctrang web yêu cầu tên người dùng và mật khẩu sử dụng các biến Session đểgiúp chuyển dữ liệu giữa các trang web, nhưng chỉ khi người dùng đăng nhậpvào máy tính.Mỗi session sẽ có một định danh(ID), mỗi session khác nhau sẽcó ID khác nhau.

- HTTP – Hypertext Transfer Protocol

Giao thức truyền siêu văn bản (HTTP) là nền tảng của World Wide Webvà được sử dụng để tải các trang web bằng các liên kết siêu văn bản HTTP là

Trang 19

một giao thức lớp ứng dụng được thiết kế để truyền thông tin giữa các thiết bịđược nối mạng và chạy trên các lớp khác của ngăn xếp giao thức mạng.

- Cookie

Cookie là các tệp văn bản với các phần dữ liệu nhỏ - như tên người dùngvà mật khẩu - được sử dụng để xác định máy tính khi ta sử dụng mạng máytính Các cookie cụ thể được gọi là cookie HTTP được sử dụng để xác địnhngười dùng cụ thể và cải thiện trải nghiệm duyệt web Dữ liệu được lưu trữtrong cookie được tạo bởi máy chủ dựa trên kết nối Dữ liệu này được gắnnhãn ID duy nhất cho người dùng và máy tính của họ Khi cookie được traođổi giữa máy tính của người dùng và máy chủ mạng, máy chủ sẽ đọc ID vàbiết thông tin nào cần cung cấp cụ thể cho người dùng.

- Proxy server

Máy chủ proxy là một hệ thống hoặc bộ định tuyến cung cấp cổng kết nốigiữa người dùng và internet Do đó, nó giúp ngăn chặn những kẻ tấn côngmạng xâm nhập vào mạng riêng Nó là một máy chủ, được gọi là "trung gian"vì nó đi giữa người dùng cuối và các trang web họ truy cập trực tuyến Khimột máy tính kết nối với Internet, nó sẽ sử dụng địa chỉ IP Địa chỉ này tươngtự như địa chỉ đường phố của nhà, cho dữ liệu đến nơi cần đến và đánh dấudữ liệu đi bằng địa chỉ trả lại để các thiết bị khác xác thực Máy chủ proxy vềcơ bản là một máy tính trên internet có địa chỉ IP của riêng nó Proxy cungcấp một lớp bảo mật có giá trị cho máy tính người dùng Chúng có thể đượcthiết lập làm bộ lọc web hoặc tường lửa, bảo vệ máy tính của họ khỏi các mốiđe dọa từ internet như phần mềm độc hại.

- Firewall

Trang 20

Tường lửa là một thiết bị bảo mật mạng giám sát lưu lượng mạng đến vàđi và cho phép hoặc chặn các gói dữ liệu dựa trên một tập hợp các quy tắc bảomật Mục đích của nó là thiết lập một rào cản giữa mạng nội bộ và lưu lượngđến từ các nguồn bên ngoài (chẳng hạn như internet) để chặn lưu lượng độchại như vi rút và tin tặc Tường lửa phân tích cẩn thận lưu lượng đến dựa trêncác quy tắc được thiết lập trước và lọc lưu lượng đến từ các nguồn không antoàn hoặc đáng ngờ để ngăn chặn các cuộc tấn công Tường lửa bảo vệ lưulượng truy cập tại điểm vào của máy tính, được gọi là cổng, nơi thông tinđược trao đổi với các thiết bị bên ngoài

1.3 Kết chương

Mạng máy tính là một không gian rộng lớn và là nơi có nguồn dữ liệu vôtận với các ứng dụng mạng phong phú làm phát triển nền kinh tế, tư duy cũngnhư văn hóa của con người Đây cũng là cầu nối kết nối con người với nhautừ bất kỳ đâu trên thế giới Tuy nhiên, như một con dao hai lưỡi, mạng máytính cũng ẩn chứa rất nhiều mối nguy hiểm tiềm tàng Không có gì là hoànhảo khi an ninh mạng máy tính xuất hiện các lỗ hổng làm cầu nối cho kẻ xấuthực hiện những hành vi vi phạm pháp luật gây ảnh hưởng đến lợi ích của cánhân, tổ chức hay cả chính phủ Trong những năm gần đây, đặc biệt do ảnhhưởng của dịch COVID-19, tỷ lệ tấn công trực tuyến đang ngày càng tăng bởinhu cầu sử dụng không gian mạng của người dân Chính vì thế các công tycông nghệ, những nhà phát triển mạngcần cấp thiết đưa ra được nhữngphương án phòng thủ tốt nhất để bảo vệ được thông tin, quyền lợi người dùngcũng như hạn chế những ảnh hưởng gây ra do các lỗ hổng bảo mật.

Trang 21

CHƯƠNG 2: TỔNG QUAN VỀ KỸ THUẬT TẤN CÔNG XSS

Ngày nay, hàng triệu người dùng sử dụng các ứng dụng web cho việcgiao dịch, giáo dục hay phương tiện truyền thông đại chúng Tuy nhiên sựhiện diện của các lỗ hổng bảo mật tạo nên mối nguy hiểm tiềm tàng mỗi khisử dụng những ứng dụng này Những người dùng xấu có thể lợi dụng lợi thếnày để đánh cắp các thông tin nhạy cảm, gửi các yêu cầu về HTTP một cáchkhông hợp pháp, chuyển hướng người dùng tới các trang web không an toàn,cài đặt các mã độc hay thực thi một số hành động độc hại XSS là một dạngtấn công điển hình được tìm thấy trên ứng dụng web

2.1 Tổng quan về XSS

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

Tấn công XSS (Cross-site scripting) xảy ra từ những năm 1990 Vàotháng 1 năm 2000, thuật ngữ “Cross-site scripting” lần đầu được giới thiệubởi kỹ sư bảo mật của Microsoft Thậm chí ngày nay, XSS vẫn được xem nhưmột mối đe dọa với các ứng dụng web Hầu hết tất cả các trang mạng xã hộiphổ biến như Facebook, Twitter, Youtube đều bị ảnh hưởng bởi dạng tấncông XSS này

Tấn công XSS chính là một dạng tấn công xâm nhập [1].Nó là một trongnhững lỗ hổng bảo mật nghiêm trọng xuất hiện trên các ứng dụng mạng.Trong dạng tấn công này, kẻ tấn công tiêm nhiễm mã JavaScript độc hại đãđược tạo ra một cách chỉn chu thông qua các tham số đầu vào bên phía ngườidùng Nó được thực hiện để tạo nên các hoạt động gây hại thông qua các ứngdụng mạng và thực hiện mục đích như lấy trộm cookie và trộm mã thông báophiên hay thực thi các dạng tấn công khác Nguồn gốc của dạng tấn công XSS

Trang 22

là do bộ lọc không phù hợp của văn bản đầu vào bên phía người dùng, khiếncho kẻ tấn công dễ dàng đưa đoạn mã độc vào trang mạng trên nền tảng OSN.Các mã script độc hại này chạy trên trình duyệt bên phía người dùng.

Tấn công XSS xảy ra khi một kẻ thâm nhập sử dụng ứng dụng mạng đểgửi mã tấn công cho phần lớn các nội dung bên phía chương trình Thậtkhông hoàn hảo khi những cuộc tấn công này thành công là rất lớn và xảy raở bất kỳ nơi nào mà một ứng dụng mạng sử dụng đóng góp từ một ngườidùng bên trong mà không phê duyệt hay mã hóa.

Tấn công XSS là một dạng tấn công phổ biến nhất từ khi họ khai thácđược rất nhiều lỗ hổng Các lỗ hổng này có thể được tìm thấy bằng cách sửdụng các công cụ google dev và các phương pháp đặc biệt khác Cách đơngiản nhất để ngăn chặn bất kỳ lỗ hổng nào là thoát các ký tự mà một ngườidùng có thể nhập vào và loại bỏ bất kỳ thẻ HTML nào xuất hiện ở đầu vàotrang mạng Các bước kiểm tra thủ công của một ứng dụng mạng cũng có thểtìm kiếm các mã stored XSS và mirrored XSS thông thường thông qua việcgửi các thông tin nhập đơn giản (như một chuỗi ký tự ngắn như số hay chữ)tới từng đầu vào trên ứng dụng; định danh từng vị trí nơi dữ liệu đầu vào đãđược gửi đi được trả lại trong phản hổi HTTP, và kiểm tra từng vị trí riêng lẻđể xác định liệu các dữ liệu được nhập đúng cách có thể được sử dụng để thựcthi mã JavaScript bất kỳ không.

2.1.2 Các bước khai thác lỗ hổng XSS

Có rất nhiều nghiên cứu tập trung vào việc xác định các cách tấn côngXSS được sử dụng để kiểm soát và điều chỉnh cách trang web vận hành Cácnền tảng khác nhau yêu cầu các cách thử nghiệm và khai thác lỗ hổng tấncông XSS khác nhau.

Trang 23

XSS xuất hiện do các khuyết điểm về bảo mật trong HTML, JavaScript,flash, Ajax, Khi mã độc đến từ một nguồn tin cậy, nó được thực thi giốngmã JavaScript chính thống để có thể truy cập các thông tin nhạy cảm của nạnnhân.

Về cơ bản rất khó để dự đoán được các lỗ hổng XSS khi có nhiều véc tơmà kẻ tấn công XSS có thể sử dụng trong các ứng dụng Trái ngược với các lỗhổng như SQL injection hay OS command injection, XSS lại gây ảnh hưởngbên phía người dùng làm cho việc nắm bắt và giải quyết càng thêm khó khăn.Hơn nữa, không hề có một tiêu chuẩn hay kỹ thuật nào để ngăn chặn tấn côngXSS giống như SQL injection Có rất nhiều nghiên cứu tập trung vào việc xácđịnh các cách tấn công XSS được sử dụng để kiểm soát và điều chỉnh cáchtrang web vận hành Các nền tảng khác nhau yêu cầu các cách thử nghiệm vàkhai thác lỗ hổng tấn công XSS khác nhau Việc sử dụng các lớp bảo mật nhưđã nói ở trên là một cách tuyệt vời để phòng tránh tấn công XSS, đây là mộtđiều cơ bản cần lưu ý nhưng trái lại các chiến lược phòng tránh này sẽ hỗ trợphần lớn các vecto tấn công XSS chứ không phải tất cả Điểm then chốt là sửdụng sự kết hợp việc thử nghiệm tĩnh được lập trình, kiểm tra mã, và thửnghiệm động với việc áp dụng kỹ thuật mã hóa bảo mật Nếu biện pháp nàykhông được triển khai và chạy thường xuyên với các biện pháp bảo mật khácnhư hệ thống phát hiện xâm nhập (Intrusion Detection Systems) thì kẻ tấncông vẫn có thể chiếm quyền kiểm soát các dịch vụ quan trọng và dữ liệunhạy cảm.

Các bước để kiểm tra xem trang mạng có lỗ hổng XSS hay không:- Bước 1: Tìm kiếm trường đầu vào khả dụng trên trang mạng.

- Bước 2: Nhập bất kỳ đoạn chuỗi nào vào trường định danh và gửi nóđi Tìm kiếm đoạn chuỗi này trong phần mã nguồn của trang mạng.

Trang 24

- Bước 3: Kiểm tra liệu đoạn chuỗi được nhập có hiển thị trên trangkhông Nếu nó được hiển thị thì trang web này có lỗ hổng XSS; ngượclại thì không Cố gẳng thử các đầu vào khác nhau.

- Bước 4: Nhập vào một đoạn mã độc “<script>alert(“XSS”);</script>”và gửi.

- Bước 5: Nếu trang mạng không sửdụng bất kì kĩ thuật bảo vệ nào, thìmã script độc hại sẽ được thực thi trong trình duyệt Sau khi thực thithành công, một ô hộp thoại sẽ xuất hiện, phản hồi lại đoạn mã XSS.Điều này biểu thị rằng trang mạng đã bị tấn công XSS Bằng cách chènmã, kẻ tấn công có thể trộm mã phiên và thông tin cookie của ngườidùng và thực hiện truy cập tài khoản để thực hiện các dạng tấn côngkhác.

2.1.3 Tỷ lệ tấn công XSS gần đây

Đây là một công việc khó khăn để phát hiện tấn công XSS dựa vào hànhvi không thay đổi tương đối của trình duyệt và phân biệt giữa đoạn JavaScriptđộc hại từ nội dung mạng thông thường Hầu hết hệ thống ứng dụng trựctuyến lớn bị tấn công bởi mã độc XSS Các trang web như Twitter, Facebook,Youtube và Drupal đều bị tấn công nặng nề bởi XSS.

Trang 25

Cisco ASA VPN

Tấn công XSS ảnh hưởng đến cổng VPNcủa Cisco và hậu quả là lấy trộm các

UK Parliament Web

Sai lệch thông tin

đúng cách dẫn đến bị trộm thông tin cá

Trang 26

HTML Editor nhân và bị tấn công drive-by-download

XSS để chiếm đoạt tài khoản người dùng

thông tin cho người dùng.

thi tấn công drive-by-download.

Lỗ hổng bảo mật trong Hotmail cho phépkẻ tấn công trộm tài khoản và cookiengười dùng chiếm phiên làm việc của họ.

Lỗ hổng XSS cho phép kẻ tấn công trộmID session để chiếm quyền qua tài khoảnngười dùng khi họ nhấn vào đường dẫn

Trang 27

2.1.4 Tác hại của tấn công XSS

Kẻ tấn công có thể sử dụng XSS để gửi một nội dung không lành mạnhđến người dùng Chương trình của người dùng cuối không có cách nào đểnhận ra rằng nội dung trên là không đáng tin cậy và sẽ thực thi nội dung đó.Khi nó nghĩ rằng nội dung này có nguồn gốc từ một nguồn đáng tin, thì nộidung độc hại này có thể lấy được bất kỳ mã thông báo hay dữ liệu nào đượclưu trữ bởi chương trình và sử dụng nó với trang đó Những nội dung này cóthể thay đổi các thành phần của trang HTML.

XSS không chỉ cho phép những kẻ tấn công chạm vào các thông tin nhạycảm của người dùng mà còn cho phép thực hiện nhiều dạng tấn công nâng caokhi sử dụng máy nạn nhân Bảng 2.2 nêu lên các ảnh hưởng và tác động củatấn công XSS trên máy nạn nhân.

Bảng 2.2 Ảnh hưởng của tấn công XSS[7]

Trộm Cookie(Cookie Stealing)

Không có gì là bất khả thi để kẻ tấn công trộm cookie được gửi bởi máy chủ để duy trì ID session và chiếm quyền kiểm soát tài khoản để thực hiện các hành vi độc hại như gửi các tin nhắn spam tới bạn bè của họ.

Chiếm đoạt tài khoản(Accoung Hijacking)

Những kẻ tấn công có thể trộm thông tin nhạy cảm như các thông tin tài khoản tài chính hay các thông tinđăng nhập tài khoản ngân hàng cho mục đích cá nhân.Nếu tài khoản bị chiếm đoạt, kẻ tấn công sẽ truy cập vào máy chủ OSN và hệ thống cơ sở dữ liệu và sau đócó thể hoàn toàn chiếm quyền kiểm soát các ứng dụngmạng OSN.

Sai lệch thông tin Đây là một lỗ hổng về sai lệch thông tin Nó có thể

Trang 28

bao gồm các mã độc dùng để theo dõi các thống kê vềluồng dữ liệu của người dùng, dẫn đến mất quyền riêng tư Lớn hơn, nó có thể thay đổi nội dung trang, dẫn đến mất tính toàn vẹn

Tấn công từ chốidịch vụ (Denial of

Service Attack)

Dữ liệu sẵn có là một chức năng vô cùng quan trọng được cung cấp bởi tổ chức Nhưng tấn công XSS có thể được sử dụng để điều hướng người dùng đến trangmạng giả mạo để họ không thể truy cập trang mạng chính chủ, bất cứ khi nào người dùng tạo yêu cầu đến trang mạng đó Sau đó kẻ tấn công có thể thực thi thành công tấn công Ddos Các mã script độc hại có thể làm gián đoạn trình duyệt người dùng bằng cách chặn dịch vụ của ứng dụng mạng một cách vô thời hạn thông qua pop-ups.

Khai thác trình duyệt(BrowserExploitation)

Các mã độc script có thể điều hướng trình duyệt ngườidùng tới trang của kẻ tấn công để chiếm toàn quyền kiểm soát máy tính người dùng và sử dụng nó để cài đặt các chương trình độc hại như virus, trojan

horse, và có thể đạt quyền truy cập các thông tin nhạy cảm.

Điều khiển hệ thốngtừ xa (RemoteControl on System)

Một khi vecto tấn công XSS được thực thi trên máy nạn nhân, nó sẽ mở ra một con đường cho kẻ tấn côngtiêm nhiễm các mã độc khác nhau giúp đạt được quyền truy cập từ xa đến máy nạn nhân Sau đó, hệ thống có thể thực hiện các hoạt động gây hại trên Internet hay trở thành một phần của mạng lưới mạng cho việc khởi chạy các dạng tấn công khác như botnet

Trang 29

army

Phising [8, 9]

Khi người dùng nhấp vào đường dẫn độc hại được gửibởi kẻ tấn công thì sẽ điều hướng người dùng đến trang mạng giả mạo do kẻ tấn công thiết kế để tạo truycập vào thông tin nhạy cảm như các thông tin đăng nhập của người dùng

2.1.5 Phân loại các dạng tấn công XSS

Rất nhiều các trang web hay các ứng dụng ngày nay thu nhập và hiển thịdữ liệu từ mỗi khách truy cập như những bình luận trên blog hay những đánhgiá trên trang thương mại điện tử Nếu nhà phát triển ứng dụng web khôngthêm một số biểu mẫu chắt lọc đầu vào của người dùng trước khi hiển thị nólên thì bất kỳ ai cũng có thể chèn thêm các nội dung không chỉ là văn bảnthuần túy đơn thuần Một người dùng xấu có thể lạm dụng cơ chế đầu vào nàyđể chèn và khởi chạy các mã JavaScript độc hại được ẩn đi với người dùng,và hiện diện như một phần của của trang hay ứng dụng hợp pháp với trìnhduyệt.

Điều này cho phép kẻ xấu truy cập bất kỳ trang web hay ứng dụng nào màngười dùng có thể Ví dụ, nếu kẻ tấn công tìm thấy một lỗ hổng XSS trêntrang Amazon.com thì chúng có thể tận dụng nó để truy cập vào tất cá dữ liệucá nhân của Amazon bao gồm những thứ như dữ liệu của người dùng, thậmchí cả thông tin xác thực cookie, session của họ để sử dụng đăng nhập với tưcách là chính họ Về bản chất, kẻ tấn công có thể làm hay truy cập bất cứ thứgì trên Amazon khi họ sử dụng tài khoản người dùng.

Có các cách khác nhau để thực hiện tấn công XSS Nó có thể được thựchiện theo ba cách khác nhau và do đó được phân loại thành ba loại [10]persistent XSS attack, non-persistent XSS attack, DOM-based XSS attack.

Trang 30

2.1.5.1 Persistent XSS attack

Nó được biết đến với cái tên tấn công Stored XSS bởi mã script độc hạiđược lưu trữ vĩnh viễn tại phần cuối máy chủ Trong dạng tấn công này, kẻtấn công tiêm nhiễm mã độc được tạo bởi các dòng mã vào trong máy chủmột cách vĩnh viễn Sau đó, bất kỳ người dùng nào ghé thăm trang mạng chứamã script này sẽ bị nhiễm dạng tấn công này Nó là dạng tấn công XSS nguyhiểm nhất trong các loại tấn công do kẻ tấn công chỉ cần tiêm nhiễm mã độcvào trong máy chủ một lần duy nhất và gây ảnh hưởng đến một lượng lớnngười dùng nhẹ dạ cả tin với các cơ chế bảo vệ không phù hợp Hình 2.1 miêutả kịch bản tấn công XSS liên tục.

Trang 31

Hình 2.1 Dạng tấn công Stored XSS [7]2.1.5.2 Non-persistent XSS attack

Nó được biết đến là dạng tấn công reflected XSS do mã độc script đượcphản hồi lại trong phần phản hồi của máy chủ Ở dạng tấn công này, kẻ tấncông tạo ra các đường dẫn URL độc hại và sử dụng email gửi nó cho nạnnhân hay gửi một tin nhắn độc đáo lên phương tiện truyền thông đại chúng.Khi người dùng nhấp vào đường dẫn, một yêu cầu sẽ được gửi đến máy chủnhưng do yêu cầu đó chứa mã script nên nó không được lưu trữ trên máy chủmà nó phản hồi lại mã script độc hại cho người dùng Và rồi, mã script sẽđược thực thi bên phía trình duyệt và người dùng sẽ chịu ảnh hưởng bởi dạngtấn công XSS này Mặc dù tấn công Reflected XSS có tác động tương tự với

ngườidùng6 Cookie

5 Đăng nhập

1.Người đăng ký: Alice

3 Gửi tin nhắn độc hại2 ID: Alice_id

4 Lưu trữ tin nhắn8 Đọc

tin nhắnđộc hại

9 Phản hồi bằngtin nhắn7 Yêu cầu

truy cập ứngdụng mạng

Trình duyệt người dùngThực thi mã Script

Tên miền phía hackerTên miền

tin cậy

Kẻtấncông

Trang 32

tấn công Stored XSS nhưng ít dữ dội hơn do script không được nhúng trongứng dụng web và phải yêu cầu người dùng tương tác để thành công Hình 2.2miêu tả toàn bộ kịch bản của dạng tấn công này.

Hình 2.2 Non-Persistent XSS attack [7]2.1.5.3 DOM-Based XSS attack

Tấn công XSS dựa trên mô hình đối tượng tài liệu – DOM (DocumentObject Model) là dạng tấn công XSS bên phía người dùng DOM cho phéptrình duyệt xử lý nội dung web được trình bày bởi trang web Ở đây, mã scriptđộc có thể thay đổi cấu trúc DOM Nếu DOM không được lọc đúng cách thìnó dẫn đến việc bị rò rỉ thông tin nhạy cảm Các thuộc tính của DOM nhưdocument.location, document.write, và document.anchors có thể bị sử dụng

6 Cookiengười

dùngTrình duyệt người dùng

Thực thi mã Script

Tên miền phía hackerTên miền tin cậy

Kẻtấncông5 Tin

nhắn lỗikèm mãscript độc2 Người

dùngnhấn vào

3 Tìm kiếmđốitượng yêu cầu4 Không tìm thấy lỗi

độchại

Trang 33

để thực thi dạng tấn công XSS do các thuộc tính này được sử dụng để truycập và thay đổi các đối tượng HTML của trang web Dạng tấn công này rất ítbị tìm thấy bởi các nhà nghiên cứu do nó rất khó để phát hiện và hạn chế dạngtấn công này Nó yêu cầu một phân tích tỉ mỉ của cây DOM trong khi phảiphiên dịch trang web hay phản hồi hiển thị bởi máy chủ.

Nạn nhân

Phản hồi sau khi thao tác innerhtml<html>

Người dùng tìm kiếm:

Var word = location.search.substring(6);

Documnet.querySelector(‘em’).innerhtml = word;</script>

</html>2 Người

dùngnhấp vào

đườngdẫn vàgửi yêu

5 Cookiengười

dùng4 Thực thi Innerhtml

1 Tạo URLđộc hại3 Tin nhắn lỗi kèm mã script

độc hại

Hình 2.3 Dạng tấn công DOM-Based XSS [7]

Trang 34

2.2 Các kỹ thuật phát hiện và phòng chống

Có một số ít phương pháp phòng chống được cho là hiệu quả với dạng tấncông XSS.

2.2.1 Escaping input – Thoát dữ liệu đầu vào

Kỹ thuật đầu tiên là Escaping input, là khái niệm về việc bảo đảm dữ liệuứng dụng được gửi đi một cách bảo mật trước khi kiết xuất cho các quy trìnhsau này Kỹ thuật này cũng được sử dụng để mã hóa các ký tự đặc biệt Nhưđã thể hiện trong bảng 2.3, escaping thay đổi các ký tự cụ thể có thể được giảimã thành mã gây hại bằng cách thay đổi hay thay thế chúng bằng các ký tựkhác.Nó hỗ trợ kiểm soát thông tin được đưa vào trang web để hạn chế nguycơ tấn công XSS Nếu người dùng không được phép thêm dòng lệnh haythông tin vào một trang web, thì một nguyên tắc nhỏ là thoát tất cả HTML,URL và JavaScript Nếu trang web cho phép người dùng nhập những thôngtin trên thì tốt nhất nên sử dụng một cách tiếp cận tương tựđể thoát khỏi tất cảđầu vào HTML.

Bảng 2.3 Các cách thoát khỏi tấn công bằng ký tự đặc biệt

2.2.2 Input validation–Xác thực dữ liệu đầu vào

Một kỹ thuật khác được biết đến với tên gọi Input validation Kỹ thuậtnày dựa vào quy trình đảm bảo dữ liệu đầu vào là lành tính và không chứa các

Trang 35

ký tự không mong muốn hay các giá trị không tốt có thể tấn công cơ sở dữliệu, trang web hay người dùng Xác thực giá trị đầu vào là một kỹ thuậtphòng chống hiệu quả đối với dạng tấn công XSS bởi nó ngăn chặn ngườidùng nhập các ký tự đặc biệt vào các trường thay vì cố gắng chặn hay từ chốicác yêu cầu kết quả.

2.2.3 Sanitizing input – Làm sạch dữ liệu đầu vào

Sanitizing inputngăn chặn tấn công XSS bằng cách kết hợp các kỹ thuậtkhác như thoát và xác thực Giá trị đầu vào của người dùng được phân tích vàlàm sạch dấu vết có khả năng gây hại,thay đổi hiệu quả những giá trị đầu vàokhông được chấp nhận thành định dạng chấp nhận được Bộ lọc giá trị đầuvào người dùng đặc biệt hiệu quả trên các trang cho phép HTML markup.

2.2.4 Whitelisting values – Các giá trị thuộc danh sách trắng

Một cách khác để ngăn chặn tấn công XSS là whitelisting values Nếumột dữ liệu cụ thể động chỉ nên chấp nhận một số giá trị hợp lệ, tốt nhất làluyện tập cho logic kết xuất chỉ cho phép các giá trị được phép đã biết Ví dụ,một trang web yêu cầu một tham số “màu mắt” để đảm bảo chỉ có các ký tựcủa bảng chữ cái – hay một danh sách giới hạn các giá trị quy định- đượcchấp nhận thay vì các chữ số hay các ký tự đặc biệt khác Trong khiwhitelisting và input validation thường liên quan đến các cuộc tấn công SQLinjection,nhưng nó cũng có thể được sử dụng để ngăn chặn tấn công XSS.

2.2.5 Content-security policy – Chính sách bảo mật nội dung

Tấn công XSS dựa vào việc kẻ tấn công có thể chạy các mã script độc hạitrên trang web người dùng bằng cách chèn các thẻ <script> nội tuyến ở đâuđó vào trong thẻ <html> của trang, hay đánh lừa trình duyệt tải JavaScript từmột tên miền độc hại thứ ba Do vậy, phương pháp cuối cùng để ngăn chặn

Trang 36

tấn công XSS là thực thi một chính sách bảo mật nội dung (content-securitypolicy) Một chính sách bảo mật nội dung cho phép nhà sáng tạo trang webchỉ định nơi JavaScript và các phương pháp gây hại tiềm tàng khác có thểkhởi chạy và thực thi Theo cách này, content-security policy có thể đảm bảoJavaScript nội tuyến không được thực thi, ngăn chặn được một số dạn tấncông XSS.

2.3 Các nghiên cứu trước đây

2.3.1 Tổng quan tình hình nghiên cứu

- Ensemble Methods to Detect XSS Attacks - Nagarjun, Shaik ShakeelAhamad [2]

Nagarjun, Shaik Shakeel Ahamad đã nghiên cứu về một phương phápphát hiện các cuộc tấn công XSS dựa trên các thuật toán học máy, có tên làphương pháp tổng hợp Đây là cách kết hợp các mô hình cơ sở khác nhau vàcác mô hình học tổng hợp có thể đưa ra các kết quả tối ưu so với các mô hìnhcơ sở Tác giả cho rằng một vấn đề phổ biến trong các kỹ thuật ngăn chặnXSS hiện hành là do không có khả năng phát hiện các cuộc tấn công XSS mớivà không xác định Các mô hình phát hiện XSS có mức hiệu quả cao có thểđược xây dựng bằng cách sử dụng kỹ thuật học tổng hợp Các mô hình tổnghợp sử dụng các thuật toán khác nhau để đạt được tỷ lệ dự đoán tốt hơn.Trong học tổng hợp các mô hình cơ sở được kết hợp theo 3 cách

 Bagging: trong bagging (bootstrap aggregation) các thuật toán họcyếu áp dụng trên một tập dữ liệu mẫu nhỏ và lấy giá trị trung bìnhcủa tất cả dự đoán của người học Bagging sẽ làm giảm sự xungkhắc

Trang 37

 Boosting: Đây là một phương pháp lặp, trong boosting trọng lượngmẫu dựa trên phân loại trước đó Boosting sẽ làm giảm lỗi chênhlệch.

 Stacking: Trong đầu ra này của một mô hình được đưa ra làm đầuvào đối với một mô hình khác Stacking sẽ làm giảm sự xung khắchay độ chênh lệch dựa trên mô hình được sử dụng.

Trong nghiên cứu này, các véc tơ XSS được thu thập bằng cách sử dụngcác công cụ XSS phổ biến như XSStrike, XSSER và từ các nguồn khác nhauđã thu thập được hàng ngàn vecto tấn công Tập dữ liệu chứa 154626 mẫu độcnhất với các nhãn Một nửa tập dữ liệu này là các vecto tấn công XSS và nửacòn lại là các vecto an toàn Các vecto tấn công XSS và các vecto an toànđược duy trì ở 128 ký tự và các chuỗi dài hơn được phân tách thành 128 khốiký tự Các vecto an toàn được tạo ra ngẫu nhiên này có 3 loại với độ dài nằmtrong khoảng từ 40 đến 126, chúng là: chuỗi chỉ có các ký tự bảng chữ cáiviết hoa hoặc viết thường, chuỗi có cả các ký tự bảng chữ cái và số, và chuỗicó cả ký tự bảng chữ cái, số và ký tự đặc biệt Số lượng các véc tơ an toànđược tạo ra phụ thuộc vào các véc tơ tấn công XSS, nhằm duy trì sự cân bằnggiữa các mẫu XSS và các mẫu an toàn của tập dữ liệu Tập dữ liệu đã đượccân bằng này sử dụng để huấn luyện và thử nghiệm các mô hình.

Trong nghiên cứu này, các phương pháp học tổng hợp được sử dụng làphân loại rừng ngẫu nhiên, AdaBoost, bagging với SVM, Extra-Trees,gradient boosting, và histogram-based gradient boosting Để tính toán chỉ sốhiệu suất của mô hình, tác giả sử dụng ma trận hỗn độn tính toán các giá trị độthu hồi, độ đúng đắn, F-measure, và độ chính xác.

- Cross-Site Scripting Attacks Classification, Attacks andCountermeasures – B B Gupta và Pooja Chaudhary [7]

Trang 38

Tác giả đưa ra cái nhìn toàn cảnh và chi tiết về tấn công XSS, những ảnhhưởng của nó trong những năm gần đây Do đó trong nghiên cứu này, họ đãkiến nghị một phương pháp hỗ trợ trong việc phòng thủ tấn công XSS.Phương pháp được đề nghị này là một kỹ thuật lọc văn bản nhạy cảm dựa trênviệc phân cụm và tách khung hình Thêm vào đó, nó là kỹ thuật client-servernhằm cung cấp sự bảo vệ tới từng khung hình của ứng dụng khỏi tấn côngXSS Nó được thực hiện thông qua việc xác định việc chèn một phầnJavaScript cùng với toàn bộJavaScript đang kết nối Phương thức phòngchống kẻ tấn công thực hiện truy cập đến bất kỳ khung hình nào Phươngpháp có 2 giai đoạn: công đoạn đào tạo và công đoạn nhận biết Trong giaiđoạn cũ, ứng dụng mạng được chia thành tất cả khung hình khả dụng và ACLđược huấn luyện để kiểm tra tất cả các đặc quyền/quyền mà một khung hìnhcụ thể có thể bảo mật Giai đoạn sau xác định tất cả các điểm xâm nhập trongkhung hình được tạo tương ứng với mỗi yêu cầu HTTP giải nén bên phía máychủ Sau đó, bên phía người dùng, công đoạn nhận biết thực hiện một hànhđộng xác thực để chứng nhận khung hình tương thích có sở hữu khả năngthực hiện được hành động đó hay không Nếu hành động đó được xác thức thìyêu cầu được cho phép và nó sẽ phát hiện dạng tấn công XSS độc hại tại mỗiđiểm trích xuất xâm nhập của ứng dụng mạng Sau đó nó thực thi thuật toánso sánh chuỗi tương đối để xác định việc chèn script thành phần với nhau theocụm để tạo mẫu nén trên cuộc tấn công XSS Cuối cùng, các mẫu theo cụmđược lọc theo quy trình lọc với bối cảnh phù hợp và kết quả được hiển thị chongười dùng.

Tác giả đã thực hiện thử nghiệm của mình trên năm nền tảng mạng xã hộithực: Elgg, Humnub, WordPress, Drupal, Joomlavới 127 vecto tấn công XSSvà thu được các kết quả khá khả quan.

Trang 39

- Preventing Cross-Site Scripting Attacks with CodeSanitizationTechniques – Annu Choudhary, Rajendra Kachhwaha, ArjunChoudhary Assistant [3]

Tác giả đã đưa ra được tổng quan khái niệm về XSS và sử dụng một ứngdụng web dễ bị tấn công để chứng minh việc vượt qua cả hai loại lỗ hổngXSS (stored và reflected) trong cả 3 mức độ bảo mật Nghiên cứu này đã đưara một giải pháp có thể loại bỏ thành công các giới hạn của các giải pháp hiệnthời do có thể được tích hợp vào bất kỳ ứng dụng nào.

- Detecting Cross-Site Scripting Vulnerabilities through Automated UnitTesting – Mahmoud Mohammadi, Bill Chu, Heather Richter Lipford[4]

Hướng tiếp cận của tác giả là thêm thử nghiệm cho lỗ hổng XSS vào thửnghiệm đơn vị, một hoạt động phát triển phần mềm phổ biến Cách tiếp cậnnày gồm 3 yếu tố Đầu tiên, để củng cố phạm vi thử nghiệm lỗ hổng XSS, tácgiả xây dựng nhiều tệp thử nghiệm đơn vị dựa trên một JSP cho trước trongứng dụng Thứ 2, tác giả xác nhận từng lỗ hổng bằng cách kết xuất các trangweb bị tấn công sử dụng JwebUnit Thứ 3, tác giả có một cách tạo chuỗi tấncông có cấu trúc cho đầu vào thử nghiệm.

Họ hạn chế dương tính giả bằng cách xác nhận các lỗ hổng thông quathực thi Dương tính giả là một trở ngại cho việc áp dụng rỗng rãi các công cụbảo mật phần mềm Cách tiếp cận thử nghiệm này có thể xác định chính xácvị trí các lỗ hổng, khiến việc sửa chữa dễ dàng hơn Tác giả cũng hạn chế tốiđa âm tính giả bằng việc củng cố phạm vi bao phủ đường dẫn cho các thửnghiệm đơn vị cũng như tạo chuỗi tấn công có cấu trúc sử dụng ngữ pháp

Trang 40

BNF dựa trên xây dựng mô hình cách trình duyệt thông dịch các chương trìnhJavaScript.

- Đưa ra được bảng so sánh điểmxác thực chéo về độ thu hồi, độ đúng đắn, F-measure, và độ chính xác của từng mô hình

- Có độ chính xác lên đến 0.9989 trong mô hình phân loại HGBC

- Cách thức thực hiện chưa chi tiết

- Yêu cầu nhiều sự tính toán hơnso với một mô hình riêng lẻ

- Cross-Site Scripting Attacks Classification, Attacks andCountermeasures – B B Gupta và Pooja Chaudhary

- Có tỷ lệ phát hiện tấn công cao khi thử nghiệm trên nền tảng mạng xã hội thực

- Có mức dương tính giả và âm tính giả ở mức thấp.

- Mức hiệu suất trên các nền tảng lớn hơn 0.9 qua phương pháp phân tích F-measure

- Số lượng vecto tấn công được sử dụng để thử nghiệm không nhiều.

Ngày đăng: 16/07/2024, 17:09

w