Những Lỗ Hổng An Ninh Ứng Dụng Web Phổ Biến & Giải Pháp (GVHD: Lê Đình Thanh)

Tìm hiểu các lỗ hổng bảo mật ứng dụng web phổ biến nhất và cách khắc phục. Bảo vệ trang web của bạn khỏi các cuộc tấn công mạng nguy hiểm.

Trường đại học

Đại Học Hòa Bình

Chuyên ngành

Công Nghệ Thông Tin

Người đăng

Ẩn danh

Thể loại

Đồ án tốt nghiệp
70
0
0

Phí lưu trữ

30 Point

Mục lục chi tiết

MỤC LỤC

1. CHƯƠNG 1: TỔNG QUAN VỀ ỨNG DỤNG WEB

1.1. Khái niệm ứng dụng web

1.2. Lớp trình bày (Prensentation layer)

1.3. Lớp ứng dụng (Bussiness logic layer)

1.4. Mô tả hoạt động của một ứng dụng web

1.5. Các khái niệm, thuật ngữ liên quan

1.5.1. Giao thức HTTP

2. CHƯƠNG 2: SƠ LƯỢC VỀ CÁC KỸ THUẬT TẤN CÔNG ỨNG DỤNG WEB

2.1. KIỂM SOÁT TRUY CẬP WEB

2.2. CHIẾM HỮU PHIÊN LÀM VIỆC

2.2.1. Ấn định phiên làm việc

2.2.2. Đánh cắp phiên làm việc

2.3. LỢI DỤNG THIẾU SÓT TRONG VIỆC KIỂM TRA DỮ LIỆU HỢP LỆ

2.3.1. Kiểm tra tính đúng đắn của dữ liệu bằng ngôn ngữ phía trình duyệt

2.4. Tràn bộ đệm

2.5. Kí tự Meta (Meta-characters Sử dụng những kí tự đặc biệt

2.6. Vượt qua đường dẫn

2.7. Chèn mã lệnh thực thi trên trình duyệt nạn nhân

2.8. Thêm câu lệnh hệ thống

2.9. Tiêm nhiễm SQL

2.10. Ngôn ngữ phía máy chủ

2.11. Thao tác trên tham số truyền

2.12. Từ chối dịch vụ

3. Chương 3: TIÊM NHIỄM SQL

3.1. KHÁI NIỆM SQL INJECTION

3.2. GIỚI THIỆU MÔ HÌNH CƠ SỞ DỮ LIỆU

3.3. Các cách tấn công

3.3.1. Kỹ thuật tấn công SQL Injection

3.3.2. Tấn công dưa vào câu lệnh SELECT

3.3.3. Tấn công dựa vào câu leenhhj HAVING

3.3.4. Tấn công dựa vào câu lệnh kết hợp UNION

3.3.5. Tấn công dựa vào lệnh INSERT

3.3.6. Tấn công dưa vào STORED PROCEDURE

3.3.7. Kỹ thuật tấn công nâng cao

3.3.8. Cách phòng chống

4. CHƯƠNG 4: TẤN CÔNG TRÀN BỘ ĐỆM

4.1. Các đối tượng bị ảnh hưởng bởi kiểu tấn công này

4.1.1. Tấn công trên Swap Space

4.1.2. Tấn công trên Bandwidth

4.1.3. Tấn công vào Ram

4.1.4. Tấn công vào Disks

4.2. Các kiểu tấn công DDos

4.2.1. Kiểu tấn công thứ 1

4.2.2. Kiểu tấn công thứ 2

4.2.3. Kiểu tấn công vào tài nguyên hệ thống

4.3. Cách phòng chống

5. Chương 5: CHÈN MÃ LỆNH THỰC THI TRÊN TRÌNH DUYỆT NẠN NHÂN

5.1. Mô tả việc khai thác

5.2. Phương pháp tấn công XSS truyền thống

5.3. Tấn công XXS bằng FLASH

5.4. Tấn công chiếm phiên làm việc

5.4.1. Tổng quan về SessionID

5.4.2. Ấn định phiên làm việc

5.4.3. Đánh cắp phiên làm việc

5.4.4. Tấn công Session ID trên tham số URL

5.4.5. Phòng chống

6. Chương 6: SỬ DỤNG CÔNG CỤ ACUNENTIX WEB VUNLNERABILITY SCANNER ĐỂ QUÉT LỖ HỔNG AN NINH ỨNG DỤNG WEB

6.1. Giới thiệu công cụ

6.2. Chạy công cụ Acunetix Web Vulnerability Scanner

TÀI LIỆU THAM KHẢO

LỜI CẢM ƠN

LỜI NÓI ĐẦU

Tóm tắt

I. Tổng quan các lỗ hổng bảo mật web phổ biến hiện nay

Trong bối cảnh công nghệ thông tin phát triển vượt bậc, các ứng dụng web đã trở thành một phần không thể thiếu trong hoạt động của doanh nghiệp và đời sống xã hội. Tuy nhiên, song song với sự tiện lợi là những rủi ro tiềm ẩn về an ninh mạng. Các lỗ hổng bảo mật web ngày càng trở nên tinh vi, đặt ra thách thức lớn cho các nhà phát triển và quản trị hệ thống. Một ứng dụng web thường bao gồm ba lớp chính: lớp trình bày (giao diện người dùng), lớp ứng dụng (xử lý logic nghiệp vụ) và lớp dữ liệu (quản lý cơ sở dữ liệu). Sự tương tác phức tạp giữa các lớp này, chủ yếu thông qua giao thức HTTP, chính là nơi các lỗ hổng có thể xuất hiện. Việc hiểu rõ bản chất của các mối đe dọa này là bước đầu tiên và quan trọng nhất trong việc xây dựng một chiến lược bảo mật ứng dụng web hiệu quả. Các hình thức tấn công phổ biến nhất hiện nay thường nhắm vào những sai sót trong quá trình phát triển ứng dụng, thay vì tấn công trực tiếp vào hạ tầng mạng. Do đó, việc trang bị kiến thức về cách phát hiện và phòng ngừa các lỗ hổng bảo mật web là nhiệm vụ cấp thiết để bảo vệ tài sản số và duy trì uy tín của tổ chức.

1.1. Kiến trúc cơ bản và cơ chế hoạt động của ứng dụng web

Một ứng dụng web hoạt động dựa trên mô hình client-server, sử dụng giao thức HTTP để truyền tải yêu cầu và phản hồi. Kiến trúc n-lớp là mô hình phổ biến, bao gồm Lớp trình bày (Presentation Layer) chịu trách nhiệm hiển thị giao diện cho người dùng, Lớp ứng dụng (Business Logic Layer) xử lý các yêu cầu và logic nghiệp vụ, và Lớp dữ liệu (Data Layer) tương tác trực tiếp với hệ quản trị cơ sở dữ liệu như SQL Server hoặc MySQL. Khi người dùng thực hiện một hành động trên trình duyệt, một yêu cầu HTTP (request) sẽ được gửi đến máy chủ web. Máy chủ sau đó xử lý yêu cầu này, có thể truy vấn cơ sở dữ liệu, và trả về một phản hồi HTTP (response) chứa nội dung HTML, hình ảnh, hoặc dữ liệu khác để hiển thị cho người dùng. Toàn bộ quá trình này diễn ra trên một giao thức vốn "phi trạng thái" (stateless), nghĩa là máy chủ không lưu lại thông tin về các yêu cầu trước đó của cùng một người dùng. Chính đặc điểm này đã dẫn đến sự ra đời của các cơ chế quản lý phiên để giải quyết vấn đề.

1.2. Vai trò của phiên làm việc Session và Cookie trong bảo mật

Để khắc phục tính phi trạng thái của HTTP, khái niệm phiên làm việc (Session) được giới thiệu. Một session là khoảng thời gian người dùng tương tác với ứng dụng, bắt đầu từ lúc truy cập và kết thúc khi thoát ra. Mỗi session được cấp một định danh duy nhất gọi là SessionID. Theo tài liệu nghiên cứu, "SessionID là một chuỗi để chứng thực phiên làm việc". Chuỗi này thường được lưu trữ ở phía client thông qua Cookie, biến ẩn trong form hoặc trên URL. Cookie là những mẩu dữ liệu nhỏ mà máy chủ gửi cho trình duyệt và được lưu trữ trên máy của người dùng. Ở những lần truy cập sau, trình duyệt sẽ gửi cookie trở lại máy chủ, giúp nhận diện người dùng mà không cần đăng nhập lại. Tuy nhiên, chính cơ chế này lại mở ra nguy cơ bị tấn công. Nếu kẻ tấn công đánh cắp được SessionID, chúng có thể mạo danh người dùng hợp lệ, thực hiện hành vi chiếm hữu phiên làm việc và truy cập trái phép vào các tài nguyên được bảo vệ.

II. Top 5 lỗ hổng bảo mật web nghiêm trọng nhất cần biết

Thế giới an ninh mạng luôn biến động với vô số kỹ thuật tấn công được phát triển mỗi ngày. Tuy nhiên, một số lỗ hổng bảo mật web kinh điển vẫn liên tục xuất hiện và gây ra những thiệt hại nặng nề nhất. Các lỗ hổng này thường bắt nguồn từ một nguyên nhân cốt lõi: sự thiếu sót trong việc kiểm tra và xác thực dữ liệu đầu vào từ người dùng. Kẻ tấn công lợi dụng sự tin tưởng của ứng dụng đối với dữ liệu được gửi đến để chèn các đoạn mã độc hại, thay đổi logic thực thi của chương trình, hoặc làm tê liệt toàn bộ hệ thống. Việc nhận diện và hiểu rõ cơ chế hoạt động của những lỗ hổng hàng đầu như SQL Injection, tấn công XSS, chiếm hữu phiên làm việc, hay tấn công từ chối dịch vụ (DoS) là yêu cầu bắt buộc đối với bất kỳ ai làm trong lĩnh vực phát triển và quản trị web. Báo cáo của các tổ chức an ninh mạng uy tín trên thế giới đều xếp những điểm yếu này vào nhóm có mức độ rủi ro cao nhất, có khả năng dẫn đến mất mát dữ liệu, gián đoạn kinh doanh và ảnh hưởng nghiêm trọng đến uy tín thương hiệu.

2.1. Rủi ro từ việc kiểm soát truy cập và chiếm hữu phiên làm việc

Kiểm soát truy cập là nền tảng của mọi hệ thống bảo mật, nhưng cũng là mục tiêu hàng đầu của tin tặc. Các kỹ thuật như chiếm hữu phiên làm việc (Session Hijacking) và ấn định phiên làm việc (Session Fixation) là những mối đe dọa trực tiếp đến tính toàn vẹn của phiên người dùng. Trong tấn công Session Hijacking, kẻ tấn công tìm cách đánh cắp SessionID của một người dùng đã đăng nhập hợp lệ, thường thông qua việc nghe lén mạng hoặc khai thác lỗ hổng XSS. Ngược lại, Session Fixation là kỹ thuật mà kẻ tấn công "ấn định" một SessionID cụ thể cho người dùng trước khi họ đăng nhập. Sau khi người dùng đăng nhập thành công với SessionID đó, kẻ tấn công sẽ sử dụng lại nó và nghiễm nhiên có toàn quyền truy cập như người dùng hợp lệ. Cả hai phương pháp này đều cho phép kẻ tấn công mạo danh người dùng mà không cần biết mật khẩu, gây ra những hậu quả khôn lường.

2.2. Nguy cơ khi thiếu sót kiểm tra dữ liệu đầu vào hợp lệ

Đây là nguyên nhân gốc rễ của rất nhiều lỗ hổng bảo mật web nguy hiểm. Khi ứng dụng không thực hiện kiểm tra dữ liệu đầu vào một cách cẩn thận, kẻ tấn công có thể gửi đi những đoạn mã hoặc ký tự đặc biệt để thao túng hệ thống. Các kiểu tấn công điển hình bao gồm: Chèn ký tự Meta (ví dụ: