Khóa Luận Tốt Nghiệp: Nhận Diện Ý Định Tấn Công XSS Qua Phân Tích Cú Pháp và Động

Luận văn tốt nghiệp kỹ thuật nghiên cứu tốt nghiệp kỹ thuật phần mềm phương pháp nhận diện ý định tấn công xss dựa vào phân tích cú pháp và, điều tra thực trạng, phân tích số

Chuyên ngành

An toàn thông tin

Người đăng

Ẩn danh

Thể loại

khóa luận tốt nghiệp

2024

77
0
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CAM ĐOAN

LỜI CẢM ƠN

1. CHƯƠNG 1: TỔNG QUAN

1.1. Giới thiệu vấn đề

1.2. Tính cấp thiết của vấn đề

1.3. Các nghiên cứu liên quan

1.4. Phương pháp nhận diện ý định SQL injection

1.5. Khảo sát về tấn công XSS

1.6. Phương pháp tấn công tổ hợp XSSing

1.7. Mục tiêu, đối tượng, và phạm vi nghiên cứu

1.7.1. Mục tiêu nghiên cứu

1.7.2. Đối tượng nghiên cứu

1.7.3. Phạm vi nghiên cứu

1.8. Cấu trúc khóa luận tốt nghiệp

2. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

2.1. Kiến trúc của ứng dụng web

2.1.1. Giới thiệu về HyperText Markup Language (HTML)

2.1.2. Cấu trúc một trang HTML

2.1.3. Ngôn ngữ lập trình scripting

2.1.3.1. Lợi ích của việc sử dụng ngôn ngữ scripting
2.1.3.2. Một vài nhược điểm của ngôn ngữ scripting

2.1.4. Giới thiệu về Javascript

2.1.4.1. Lợi ích của Javascript trong việc phát triển và lập trình web

2.2. Lập trình client-side

2.3. Lập trình server-side

2.4. Giới thiệu về Document Object Model (DOM)

2.4.1. Tại sao cần có DOM

2.4.2. Cách biểu diễn và các phương thức thao tác của DOM

2.5. Giới thiệu về Web Application Firewall (WAF)

2.6. Giới thiệu về XSS

2.7. Các hình thức khai thác XSS

2.8. Dom-based XSS

2.9. Các loại ý định tấn công trong việc tận dụng lỗi XSS

3. CHƯƠNG 3: TỔNG QUAN VỀ DEEPBIN-INSPECTOR MÔ HÌNH PHÁT HIỆN SỰ TƯƠNG ĐỒNG MÃ NHỊ PHÂN DỰA TRÊN HỌC SÂU

3.1. Phương pháp nhận diện ý định tấn công XSS

3.1.1. Tổng quan về phương pháp

3.1.2. Phân tích cú pháp

3.1.3. Phân tích động

3.1.4. Phân loại ý định

4. CHƯƠNG 4: THÍ NGHIỆM VÀ ĐÁNH GIÁ

4.1. Cài đặt công cụ và môi trường

4.2. Tập dữ liệu đánh giá

4.3. Môi trường thực nghiệm

4.4. Kết quả thực nghiệm và đánh giá

4.4.1. Kịch bản thực nghiệm

4.4.2. Kết quả thực nghiệm

4.4.3. Đánh giá thực nghiệm

4.5. Hướng phát triển

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Phân tích cú pháp

Phân tích cú pháp là một kỹ thuật quan trọng trong việc nhận diện các ý định tấn công XSS. Phương pháp này tập trung vào việc phân tích cấu trúc và cú pháp của mã độc được chèn vào các ứng dụng web. Bằng cách xác định các mẫu cú pháp bất thường, công cụ phân tích có thể phát hiện các đoạn mã JavaScript độc hại. Phân tích cú pháp không chỉ giúp nhận diện các lỗ hổng mà còn cung cấp thông tin chi tiết về cách thức tấn công. Điều này giúp các chuyên gia bảo mật hiểu rõ hơn về mục đích của kẻ tấn công và đưa ra các biện pháp phòng ngừa hiệu quả.

1.1. Cú pháp lập trình

Cú pháp lập trình là nền tảng để phân tích các đoạn mã độc. Các công cụ phân tích cú pháp sử dụng các quy tắc ngữ pháp để xác định các cấu trúc mã bất thường. Ví dụ, các thẻ HTML hoặc JavaScript không hợp lệ có thể là dấu hiệu của một cuộc tấn công XSS. Cú pháp lập trình cũng giúp xác định các kỹ thuật tấn công phức tạp như DOM-based XSS, nơi mã độc được thực thi thông qua thao tác DOM.

1.2. Phân tích mã độc

Phân tích mã độc là quá trình kiểm tra chi tiết các đoạn mã được chèn vào ứng dụng web. Công cụ phân tích sẽ tìm kiếm các mẫu mã độc hại như các hàm JavaScript nguy hiểm hoặc các thẻ HTML không hợp lệ. Phân tích mã độc giúp xác định các lỗ hổng bảo mật và cung cấp thông tin về cách thức tấn công, từ đó giúp các chuyên gia bảo mật đưa ra các biện pháp phòng ngừa hiệu quả.

II. Động để nhận diện

Động để nhận diện là phương pháp phân tích hành vi của mã JavaScript trong quá trình thực thi. Phương pháp này giúp phát hiện các hoạt động bất thường của mã độc, chẳng hạn như thay đổi nội dung trang web hoặc đánh cắp cookie. Động để nhận diện kết hợp với phân tích cú pháp tạo thành một hệ thống phát hiện tấn công XSS toàn diện. Phương pháp này không chỉ giúp nhận diện các cuộc tấn công mà còn cung cấp thông tin chi tiết về cách thức tấn công, từ đó giúp các chuyên gia bảo mật đưa ra các biện pháp phòng ngừa hiệu quả.

2.1. Phát hiện tấn công

Phát hiện tấn công là quá trình giám sát và phân tích các hoạt động của mã JavaScript trong thời gian thực. Công cụ phân tích sẽ theo dõi các thay đổi trên DOM và các yêu cầu mạng bất thường. Phát hiện tấn công giúp xác định các cuộc tấn công XSS đang diễn ra và cung cấp thông tin chi tiết về cách thức tấn công, từ đó giúp các chuyên gia bảo mật đưa ra các biện pháp phòng ngừa hiệu quả.

2.2. Phân tích ngữ nghĩa

Phân tích ngữ nghĩa là quá trình phân tích ý nghĩa của các đoạn mã JavaScript. Phương pháp này giúp xác định mục đích của mã độc, chẳng hạn như đánh cắp thông tin người dùng hoặc thay đổi nội dung trang web. Phân tích ngữ nghĩa kết hợp với phân tích cú phápđộng để nhận diện tạo thành một hệ thống phát hiện tấn công XSS toàn diện.

III. Ý định tấn công

Ý định tấn công là mục đích cuối cùng của kẻ tấn công khi thực hiện một cuộc tấn công XSS. Phương pháp nhận diện ý định tấn công dựa trên phân tích cú phápđộng để nhận diện giúp xác định chính xác mục đích của kẻ tấn công. Ý định tấn công có thể bao gồm đánh cắp thông tin người dùng, thay đổi nội dung trang web hoặc chiếm đoạt phiên làm việc. Việc nhận diện chính xác ý định tấn công giúp các chuyên gia bảo mật đưa ra các biện pháp phòng ngừa hiệu quả và giảm thiểu thiệt hại.

3.1. Tấn công XSS

Tấn công XSS là một trong những loại tấn công phổ biến nhất trên các ứng dụng web. Kẻ tấn công chèn mã JavaScript độc hại vào trang web, từ đó thực hiện các hành vi như đánh cắp thông tin người dùng hoặc thay đổi nội dung trang web. Tấn công XSS có thể được phân loại thành Stored XSS, Reflected XSS và DOM-based XSS. Việc nhận diện chính xác loại tấn công giúp các chuyên gia bảo mật đưa ra các biện pháp phòng ngừa hiệu quả.

3.2. Bảo mật web

Bảo mật web là một yếu tố quan trọng trong việc ngăn chặn các cuộc tấn công XSS. Các biện pháp bảo mật như sử dụng Web Application Firewall (WAF) và mã hóa dữ liệu giúp giảm thiểu nguy cơ bị tấn công. Bảo mật web cũng bao gồm việc thường xuyên kiểm tra và cập nhật các lỗ hổng bảo mật trên ứng dụng web.

21/02/2025
Khóa luận tốt nghiệp kỹ thuật phần mềm phương pháp nhận diện ý định tấn công xss dựa vào phân tích cú pháp và phân tích động

Trích đoạn nội dung tài liệu

Chương 1. Tổng quan Giới thiệu tổng quan về đề tài của khóa luận tốt nghiệp, mục tiêu, đối tượng và phạm vi nghiên cứu. Cơ sở lý thuyết Trình bày cơ sở lý thuyết và công nghệ liên quan đến XSS và các phương pháp phát hiện và nhận diện ý định tấn công XSS. Phương pháp nhận diện ý định tấn công XSS dựa vào phan tích cú pháp va phan tích động Trình bày về phương pháp và công nghệ được áp dụng để phân tích cú pháp và động cho việc nhận diện tấn công XSS.

Thí nghiệm và đánh giá Thực nghiệm và đánh giá hiệu quả của phương pháp đề xuất. Kết luận Tổng kết, đánh giá kết quả và hướng phát triển trong tương lai. Ứng dụng web Ứng dụng web (web application) là một phần mềm hoặc chương trình máy tính được thiết kế để chạy trên trình duyệt web. Các ứng dụng web được phân phối trên World Wide Web tới người dùng có kết nối mang đang hoạt động.|6] Ứng dụng web có thể cung cấp các dịch vụ như mạng xã hội, mua sắm trực tuyến hoặc các dịch vụ ngân hàng trực tuyến.

Các ứng dụng web phổ biến ngày nay bao gồm Gmail, Facebook, Amazon. Kiến trúc của ứng dựng tueb Ứng dụng web hoạt động dựa trên kiến trúc client-server, nghĩa là sẽ có các xử lý được thực hiện tại phía client (client-side), và có các xử lý được thực hiện 6 phía server (server-side). Một ứng dung web thường được chia thành ba phần chính: client-side, server- side và các yếu tố mạng. Client-side Client-side (hay còn gọi là front-end) là phần giao diện người dùng của ứng dụng web, chạy trên trình duyệt của người dùng.

Các thành phần chính của client-side bao gồm: e HTML (HyperText Markup Language): Ñgôn ngữ đánh dấu được sử dụng để tạo cấu trúc và nội dung cho trang web. HTML xác định các phần tử như tiêu đề, đoạn văn, liên kết, biểu mẫu, và các thành phần khác. e CSS (Cascading Style Sheets): Ngôn ngữ định kiểu được sử dụng để mô tả cách trình bày HTML trên trang web. CSS xác định giao điện trực quan của các phần tử HTML, bao gồm màu sắc, phông chữ, bố cục, và các hiệu ứng khác.

e JavaScript: Ngôn ngữ lập trình được sử dụng để tạo ra các tính năng động và tương tác trên trang web. JavaScript có thể thay đổi nội dung HTML, thao tác với CSS, xử lý sự kiện người dùng, và thực hiện các yêu cầu bất đồng bộ (AJAX) đến server. e Frameworks và Libraries: Các thư viện và khung làm việc như React, Angular, và Vue.js giúp phát triển ứng dụng web nhanh hơn và dễ dang hơn bằng cách cung cấp các công cụ và cấu trúc sẵn có. 11 Các xử lý tai client-side bao gồm việc gửi yêu cầu tới server, nhận mã HTML, CSS và JavaScript từ server, thực thi mã và hiển thị kết quả cho người dùng.

Server-side Server-side (back-end) là nơi xử lý logic nghiệp vụ va quản lý dữ liệu của ứng dụng. Đây là phần mà người dùng không nhìn thấy nhưng rất quan trọng để đảm bảo ứng dụng hoạt động đúng cách. Các thành phần chính của server-side bao gồm: e Server: Máy chủ lưu trữ ứng dụng và xử lý các yêu cầu từ client. Các ngôn ngữ pho biến để phát triển phía server bao gồm Node.js, Django, Ruby on Rails, và ASP.

e Database: Cơ sở dit liệu lưu trữ va quan lý dữ liệu của ứng dung. Các hệ quản trị cơ sở dit liệu pho biến bao gồm MySQL, PostgreSQL, MongoDB, va Microsoft SQL Server. e Server-Side Logic: Chita các logic nghiệp vụ và xử lý dữ liệu trước khi trả lại kết quả cho client. Các xử lý tại server-side bao gồm việc nhận yêu cầu do client gửi tới, làm việc với cơ sở dữ liệu, xử lý yêu cầu, trả kết quả về cho client.

Giao thúc mang Giao thức mạng là tập hợp các quy tắc và tiêu chuẩn cho việc truyền dữ liệu qua mạng, đảm bảo rằng các thành phần client-side và server-side có thể giao tiếp hiệu quả và an toàn. e HTTP/HTTPS: Giao thức truyền tải siêu văn bản là nền tảng của truyền thông web. HTTPS là phiên bản bảo mat của HTTP, sử dụng mã hóa SSL/TLS để bảo vệ dữ liệu. 12 e WebSockets: Giao thức cung cấp kênh giao tiếp hai chiều toàn thời gian giữa server va client, thường được sử dụng cho các ứng dụng thời gian thực như chat hoặc game.

e RESTful APIs: Kiến trúc dịch vụ web phổ biến cho phép giao tiếp giữa client và server thông qua các phương thức HTTP như GET, POST, PUT, và DELETE. e GraphQL: Ngôn ngữ truy van dữ liệu linh hoạt và hiệu quả hon REST, cho phép client yêu cầu chính xác dữ liệu cần thiết. Giới thiệu vé HyperText Markup Language (HTML) HTML là ngôn ngữ tiêu chuẩn dùng để tạo các trang web. HTML là sự kết hợp của Hypertext (định nghĩa liên kết giữa các trang web) và Markup (định nghĩa các tài liệu văn bản trong các tag để cấu trúc và định dạng một trang web), các tag được sử dụng để định nghĩa các thao tác sẽ được thực hiện trên văn bản.

Cấu trúc một trang HTML HTML sử dụng các thẻ và phần tử được xác định trước để hướng dẫn trình duyệt hiển thị nội dung. HTML bao gồm thẻ đóng, thẻ mở và nội dung giữa hai thẻ đó. Lay ví dụ một đoạn mã HTML như sau: 13 Hinh 2.2: Vi dụ HTML e <!DOCTYPE html>: khai báo loại tài liệu mà ở đây là HTML. e <html>: phần tử gốc của html, tất cả phần tử định nghĩa mot trong đó.

e <head>: head tag bao gồm các phần tử bên trong của trang web và không được hiển thị ở phần front-end. e <title>: tag này đặt tiêu đề cho trang web. e <body>: tag này bao gồm tất cả nội dung sẽ được hiển thị trên trang web. Ngoài ra còn rất nhiều tag khác được sử dụng trong thiết kế web, tham khảo day: https:/ /developer.org/en-US/docs/Web/HTML/Element 2.

Ngôn ngữ lập trình scripting Ngôn ngữ scripting là loại ngôn ngữ mà máy tính có thực thi trực tiếp từ mã nguồn mà không cần thông qua quá trình biên dịch. Các ngôn ngữ như 14 Javascript (được giới thiệu ở phần tiếp theo) thường được nhúng trực tiếp vào mã nguồn HTML của trang web và chay trên trình duyệt khi người dùng truy cập trang web đó. Lợi ích của viéc sử dung ngôn ngữ scripting e Dễ học và sử dụng: script sử dụng các câu lệnh và cú pháp đơn giản. e Khong cần biên dịch: các thông tin trong script cần phải chuyển thành mã nhị phân và đươhc thông dịch bởi trình thông dịch, do đó tiết kiệm được rất nhiều thời gian để thực thi đươc code.

e Khả năng mở rộng các chức năng và dịch vụ một cách linh hoạt. e Tìm và sửa lỗi một cách dễ dàng: nhờ các công cụ debug trên trình thông dịch giúp phát hiện nhanh chóng và sửa lỗi trực tiếp trên mã nguồn. Một vai nhược điểm của ngôn ngữ scripting e Bảo mật kém: mã nguồn được lưu trữ dưới dạng văn bản và có thể dễ dang truy cập, làm tăng nguy cơ bị tấn công và khai thác. e Phụ thuộc vào trình thông dịch: script chỉ chạy đúng với trình thông dịch của nó gây ra nhiều vấn đề tương thích giữa các thiết bị và hệ thống khác nhau.

e Hiệu năng kém đối với các hệ thống lớn và phức tạp: không thích hợp đối với các hệ thống đòi hỏi hiệu năng cao và phức tạp về mặt tính toán. Giới thiệu về Javascript Javascript là ngôn ngữ lập trình đơn luồng và đa nền tang, Javascript còn được gọi là ngôn ngữ kịch ban (scripting) tương tự như Python. Javascript được sử dụng để phát triển web ở client-side cũng như server-side. Javascript vừa là ngôn ngư mệnh lệnh vừa là ngôn ngữ khai báo.

Javascript chứa một thư viện chuẩn gồm các đối tượng, câu trúc điều khiển và câu lệnh. Client-side: Javascript cung cấp các đối tượng để điều khiển trình duyệt và mô hình DOM và phản hồi lai các sự kiện của người dùng như nhấp chuột, nhập biếu mẫu và điều hướng trang. Server-side: Javascript cung cấp các đối tượng liên quan đến thực thi script trên server. Javascript cho phép ứng dụng giao tiếp với cơ sở dữ liệu và cung cấp thông tin liên tục từ lệnh gọi đến lệnh gọi khác của ứng dụng hoặc thực hiện các thao tác tệp trên server.

Lợi ích của Javascript trong viéc phat triển va lập trinh web 2. Lập trinh client-side e Tương tác với bộ nhớ tam thời. e Tương tác với bộ nhớ cục bộ. e Gửi yêu cầu dữ liệu đến máy chủ.

e Hoạt động như một giao diện giữa máy chủ và người dùng. e Tạo các trang web tương tác. Lập trinh server-side e Truy vấn co sở dit liệu. e Thao tác trên cơ sở dit liệu.

16 e Thao tác với tệp trên máy chủ. e Tương tác với các máy chủ khác. e Xử lí dữ liệu đầu vào của người dùng. Giới thiệu về Document Object Model (DOM) DOM là model giao diện lập trình cho các tài liệu HTML va XML.

DOM đại diện cho cấu trúc của trang web, nó định nghĩa các đặc tính cơ bản và hành vi của các thẻ HTLM , cho phép các đoạn mã Javascript truy cập, thao tác cũng như thay đổi nội dung, cấu trúc của trang web một cách linh hoạt. Vì vậy, cơ cơ bản DOM như mot API đại diện giúp tương tác với các tài liệu HTML và XML. Tai sao cần có DOM Khi một tệp HTML được tải vào trình duyệt, các đoạn mã cient-side Javascript không thể hiểu trực tiếp tài liệu HTML mà phải diễn giải và tương tác với nó thông qua DOM. Về cơ bản DOM như một biểu diễn của tài liệu HTML nhưng dưới dạng cây cấu trúc bao gồm các đối tượng.

Javascript không hiểu được thé <al></al> trong HTML nhưng lại có thể hiểu đối tượng a1 trong DOM. Mô hình DOM rất cần thiết trong việc lập trình và phát triển web vì những lí đó sau: e Khả năng tương tác: nhanh chóng phản hồi lại các hành động của người dùng và sửa đổi trang web cho phù hơp. e Tao trang web động: cho phép Javascript truy cập và thao tác nội dung, kiểu trang một cách linh hoạt giúp tăng độ tương tác và phản hồi một cách nhanh chóng. 17 e Cập nhật: câp nhật nội dung mà không cần phải tải lại toàn bộ trang, DOM cho phép thay đổi các thành phần cụ thể giúp cập nhật nhanh chóng và thân thiện với người dùng hơn.

e Khả năng tương thích: DOM cung cấp cách tiêu chuẩn hóa điển hiện HTML và CSS ở nhiều trình duyệt và thiết bị khác nhau. Cách biểu diễn va các phương thức thao tác của DOM DOM được thể hiện bằng cấu trúc cây (Tree) hoặc Forest (nhiều hơn một cây). Mỗi nhánh của cây kết thúc bằng một nút và mỗi nút chứa các đối tượng.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Phân Tích Cú Pháp và Động để Nhận Diện Ý Định Tấn Công XSS là một tài liệu chuyên sâu tập trung vào việc phân tích và phát hiện các cuộc tấn công XSS (Cross-Site Scripting) thông qua các phương pháp cú pháp và động. Tài liệu này cung cấp cái nhìn chi tiết về cách thức hoạt động của các cuộc tấn công XSS, đồng thời đề xuất các kỹ thuật hiệu quả để nhận diện và ngăn chặn chúng. Đối với các chuyên gia bảo mật và nhà phát triển web, đây là nguồn tài nguyên quý giá để nâng cao khả năng bảo vệ ứng dụng web khỏi các mối đe dọa phổ biến này.

Nếu bạn quan tâm đến chủ đề này, bạn có thể khám phá thêm các tài liệu liên quan như Luận văn thạc sĩ nghiên cứu các kỹ thuật kiểm thử bảo mật ứng dụng web, cung cấp cái nhìn tổng quan về các phương pháp kiểm thử bảo mật hiện đại. Ngoài ra, Luận văn thạc sĩ nghiên cứu phương pháp phát hiện mã độc trên máy người dùng sử dụng kỹ thuật MITRE ATT&CK cũng là một tài liệu đáng chú ý, giúp bạn hiểu rõ hơn về các kỹ thuật phát hiện mã độc tiên tiến. Để mở rộng kiến thức về mã độc, hãy tham khảo Tiểu luận nghiên cứu phương pháp phát sinh mẫu mã độc đối kháng chống lại trình phát hiện mã độc tổng hợp, nơi bạn có thể tìm hiểu về các phương pháp tạo mã độc đối kháng. Mỗi liên kết là cơ hội để bạn đi sâu hơn vào chủ đề, nâng cao hiểu biết và kỹ năng của mình.