Bối cảnh và vấn đề nghiên cứu

Sự phát triển mạnh mẽ của công nghệ thông tin, mạng máy tính và Internet đã thúc đẩy các ứng dụng web thâm nhập sâu rộng vào mọi lĩnh vực của đời sống xã hội. Website trở thành công cụ quan trọng phục vụ hoạt động sản xuất, kinh doanh, truyền thông và quản trị của các tổ chức, doanh nghiệp cũng như cá nhân. Tuy nhiên, cùng với sự gia tăng về khối lượng và giá trị của dữ liệu được lưu trữ, xử lý trực tuyến (bao gồm các dữ liệu có tính kinh tế, tính chính xác và tính tin cậy cao), các mối đe dọa an toàn thông tin cũng xuất hiện ngày một nhiều với thủ đoạn tinh vi, phức tạp hơn. Nhiệm vụ bảo đảm an toàn, bảo mật hệ thống web đặt ra cho các nhà phát triển ứng dụng và quản trị viên mạng trở nên cấp thiết. Xuất phát từ thực tế đó, đề tài đồ án tốt nghiệp "Các tấn công và giải pháp bảo mật web" được thực hiện nhằm nghiên cứu toàn diện các lỗ hổng bảo mật phổ biến, phân tích cơ chế tấn công và đề xuất các giải pháp phòng vệ tương ứng.

Mục tiêu và nhiệm vụ nghiên cứu được xác định cụ thể trong đồ án:

  1. Mục tiêu tổng quát: Nâng cao hiểu biết về ứng dụng website, nhận diện các mối đe dọa an toàn thông tin khi làm việc trên môi trường web, làm rõ cơ chế của các kỹ thuật tấn công và giải pháp bảo vệ hệ thống web.
  2. Nhiệm vụ 1: Khảo sát, tổng hợp cơ sở lý thuyết về các kỹ thuật tấn công web phổ biến và các biện pháp ngăn chặn tiêu chuẩn.
  3. Nhiệm vụ 2: Phân tích yêu cầu, thiết kế và xây dựng một hệ thống website thử nghiệm hoàn chỉnh sử dụng ngôn ngữ lập trình Golang và hệ quản trị cơ sở dữ liệu MySQL.
  4. Nhiệm vụ 3: Cố ý thiết lập hoặc mô phỏng các điểm yếu bảo mật trên hệ thống website thử nghiệm phục vụ kiểm thử.
  5. Nhiệm vụ 4: Xây dựng các module tấn công, tiến hành thực nghiệm khai thác lỗ hổng và phát triển các module phòng thủ, ngăn chặn tương ứng.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Các kỹ thuật tấn công ứng dụng web phổ biến bao gồm Cross-Site Scripting (XSS), Cross-Site Request Forgery (CSRF), SQL Injection, Denial of Service (DoS/DDoS), Tấn công vét cạn (Brute Force), Chiếm phiên làm việc (Session Hijacking); các cơ chế phòng thủ, ngăn chặn từ phía mã nguồn ứng dụng, cấu hình cơ sở dữ liệu, máy chủ web và thói quen của người dùng.
  • Phạm vi không gian và công nghệ: Nghiên cứu lý thuyết kết hợp thực nghiệm trên môi trường máy chủ cục bộ và hệ thống website xem phim trực tuyến được xây dựng bằng ngôn ngữ Golang, cơ sở dữ liệu MySQL, máy chủ web phụ trợ Nginx Reverse Proxy.
  • Phạm vi thời gian: Đồ án được triển khai và hoàn thành vào tháng 07 năm 2019 tại Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh.

Cơ sở lý thuyết và phương pháp

Khung lý thuyết của đồ án dựa trên các nguyên lý an toàn bảo mật ứng dụng web và mạng máy tính, bao gồm:

  • Lý thuyết tấn công phía máy khách (Client-side attacks): Cơ chế can thiệp luồng thực thi kịch bản trình duyệt (XSS), cơ chế mượn quyền trái phép thông qua sự tin cậy của trình duyệt đối với phiên làm việc (CSRF, Session Riding), kỹ thuật đánh cắp cookie và chiếm quyền phiên (Session Hijacking).
  • Lý thuyết tấn công phía máy chủ và cơ sở dữ liệu (Server-side & Database attacks): Cơ chế tiêm mã SQL trái phép do thiếu sót trong việc kiểm soát dữ liệu đầu vào (SQL Injection dạng Inline, Terminating, Blind, câu lệnh SELECT, INSERT, Stored Procedures); kỹ thuật tấn công vét cạn mật khẩu (Brute Force).
  • Lý thuyết tấn công từ chối dịch vụ (DoS/DDoS): Cơ chế làm cạn kiệt tài nguyên mạng và năng lực xử lý máy chủ thông qua giao thức kết nối (TCP SYN flood, Land Attack, UDP flood port 7, Smurf Attack dùng ICMP broadcast, Tear Drop làm sai lệch offset gói tin); mô hình điều khiển DDoS (IRC-based với Agent và Secret Channel); tấn công từ chối dịch vụ tầng ứng dụng (HTTP POST DDoS).
  • Khung giải pháp phòng thủ: Các khuyến nghị bảo mật từ W3C (chuẩn hóa phương thức HTTP GET/POST/RESTful), cơ chế Anti-CSRF Token (nonce), mã hóa và lọc dữ liệu (Data Validation, Filtering, Escaping), mô hình ánh xạ quan hệ - đối tượng (ORM), kỹ thuật phân quyền cơ sở dữ liệu tối thiểu, và mô hình cân bằng tải, kiểm soát lưu lượng qua Nginx Reverse Proxy.

Phương pháp nghiên cứu thực tế được tác giả áp dụng:

  • Phương pháp nghiên cứu tài liệu: Thu thập, đọc hiểu, phân tích các tài liệu học thuật, tiêu chuẩn an toàn web, đặc tả giao thức mạng TCP/IP, tài liệu ngôn ngữ Golang và hệ quản trị MySQL.
  • Phương pháp quan sát: Theo dõi luồng gửi nhận request/response HTTP, cấu trúc gói tin mạng, sự biến đổi trạng thái trình duyệt và các thông báo lỗi trả về từ hệ quản trị cơ sở dữ liệu MySQL khi có dữ liệu bất thường.
  • Phương pháp nghiên cứu sản phẩm hoạt động: Thiết kế và xây dựng website xem phim trực tuyến hoàn chỉnh với đầy đủ các tầng ứng dụng để tạo môi trường thực nghiệm trực quan.
  • Phương pháp phân tích, tổng hợp: Đánh giá nguyên nhân gốc rễ của từng lỗ hổng, xây dựng kịch bản tấn công thực tế và tổng hợp các biện pháp phòng vệ đa tầng kết hợp giữa nhà quản trị mạng, nhà thiết kế ứng dụng web và người sử dụng.

Nguồn dữ liệu sử dụng trong đồ án:

  • Dữ liệu thử nghiệm từ hệ thống website xem phim (thông tin người dùng, danh mục phim, nội dung mô tả, bình luận, lượt thích).
  • Các kịch bản thử nghiệm payload mã độc (đoạn script JavaScript, thẻ HTML, chuỗi tiêm mã SQL, luồng request HTTP POST tự động).

Thiết kế và triển khai

Hệ thống thực nghiệm trong đồ án là một website dịch vụ xem phim trực tuyến, được phát triển nhằm phục vụ việc kiểm thử lỗ hổng và đánh giá các giải pháp phòng ngừa tấn công mạng.

Kiến trúc công nghệ và môi trường

  • Ngôn ngữ lập trình: Golang (được cài đặt và kiểm thử trên môi trường Windows và Linux/MacOS).
  • Hệ quản trị cơ sở dữ liệu: MySQL, kết nối trực tiếp với ứng dụng Golang.
  • Hạ tầng phòng thủ mạng: Máy chủ Nginx cấu hình theo mô hình Reverse Proxy để điều phối luồng dữ liệu và ngăn chặn tấn công DoS/DDoS.

Phân tích yêu cầu và chức năng hệ thống

Hệ thống được thiết kế phục vụ hai nhóm tác nhân chính với các ca sử dụng (Use Case) cụ thể:

Nhóm tác nhân Danh sách Use Case chức năng Mục đích
Người dùng (User) Đăng ký, Đăng nhập, Đổi mật khẩu, Xem thông tin phim, Xem phim, Bình luận, Thích bình luận, Tìm kiếm, Xem thông tin liên hệ Tương tác với dịch vụ, xem nội dung phim, gửi phản hồi và quản lý tài khoản cá nhân.
Quản trị viên (Admin) Đăng nhập, Đăng xuất, Xem danh sách phim, Thêm phim, Chỉnh sửa phim, Xóa phim Quản lý nội dung phim, kiểm soát hệ thống và điều hành cơ sở dữ liệu.

Thiết kế cơ sở dữ liệu

Cơ sở dữ liệu của website gồm 5 bảng chính, ánh xạ tương ứng vào các model trong mã nguồn Golang:

Tên bảng dữ liệu Vai trò và chức năng trong hệ thống
Bảng Tài Khoản Lưu trữ thông tin định danh, tên đăng nhập, mật khẩu và vai trò người dùng/quản trị viên.
Bảng Phim Lưu trữ thông tin về các bộ phim, đường dẫn video, tiêu đề, thể loại.
Bảng Mô Tả Lưu trữ nội dung tóm tắt, chi tiết nội dung và thông số của từng bộ phim.
Bảng Comment Lưu trữ các bình luận do người dùng gửi lên hệ thống dưới mỗi bộ phim.
Bảng Like Ghi nhận lượt thích (thao tác tương tác) của người dùng đối với các bình luận hoặc bộ phim.

Cài đặt và thực nghiệm các module bảo mật

Trong quá trình triển khai, nhóm tác giả đã xây dựng các module thực nghiệm tấn công và module phòng vệ tương ứng:

  1. Module Tấn công và phòng thủ Vét cạn (Brute Force): Mô phỏng công cụ thử mật khẩu liên tục trên form đăng nhập; triển khai module khóa tài khoản/chặn IP hoặc áp dụng cơ chế xác thực gia tăng.
  2. Module Tấn công và phòng thủ XSS: Mô phỏng chèn script lấy cắp cookie phiên; xây dựng module lọc dữ liệu (Data Validation, Filtering, Escaping).
  3. Module Tấn công và phòng thủ CSRF: Xây dựng trang giả mạo kích hoạt hành vi chuyển tiền/đổi thông tin; cài đặt cơ chế sinh và kiểm tra Anti-CSRF Token trên từng form và request AJAX.
  4. Module Tấn công và phòng thủ DDoS: Thực thi công cụ tạo luồng HTTP POST flood làm treo máy chủ; cấu hình Nginx Reverse Proxy để phân tải và thiết lập ngưỡng giới hạn truy cập.
  5. Module Tấn công và phòng thủ SQL Injection: Thực nghiệm các dạng tiêm mã SQL; cài đặt module kiểm soát tham số đầu vào và chuyển đổi sang sử dụng ORM framework.
  6. Module Tấn công và phòng thủ Session Hijacking: Khai thác và bắt gói tin phiên làm việc; triển khai module gắn cờ bảo mật cookie và tạo định danh phiên an toàn.

Nội dung chính theo từng chương

Chương 1: Tổng quan các kỹ thuật tấn công website và ngăn chặn

Chương 1 cung cấp cơ sở lý thuyết chi tiết về các hình thức tấn công web phổ biến và nguyên lý phòng chống tương ứng:

  • Cross Site Scripting (XSS): Bản chất là việc chèn các đoạn mã script độc hại (JavaScript, HTML, VBScript, Flash) vào mã nguồn ứng dụng web để thực thi trên trình duyệt nạn nhân nhằm đánh cắp cookie, session hoặc thông tin đăng nhập. Phân tích 3 biến thể chính:
    • Reflected XSS: Hacker lừa nạn nhân truy cập URL chứa mã độc (ví dụ script gắn qua tham số request tạo đối tượng Image gửi cookie về máy chủ hacker).
    • Stored XSS: Mã độc được lưu trực tiếp vào cơ sở dữ liệu (qua form góp ý, comment) và tự động kích hoạt khi bất kỳ người dùng nào tải trang dữ liệu đó, gây nguy hiểm trên diện rộng.
    • DOM Based XSS: Khai thác dựa trên việc thay đổi cấu trúc cây DOM của tài liệu HTML tại trình duyệt mà không cần làm thay đổi dữ liệu trả về từ máy chủ.
    • Giải pháp: Thực hiện nghiêm ngặt kiểm tra tính hợp lệ dữ liệu (Data Validation), lọc bỏ từ khóa độc hại như thẻ <script>, lệnh JavaScript, mã HTML (Filtering), và chuyển đổi ký tự đặc biệt (Escaping) bằng các thư viện chuẩn.
  • Cross-site Request Forgery (CSRF): Kỹ thuật tấn công mượn quyền trái phép của người dùng đã được xác thực (thông qua thẻ iframe, thẻ img, hoặc kỹ thuật chuyển hướng redirect .htaccess) để ép trình duyệt gửi các truy vấn trái ý muốn (như chuyển tiền ngân hàng). Đồ án chỉ ra rằng CSRF không bị ngăn bởi chính sách cùng nguồn gốc (Same-Origin Policy).
    • Giải pháp phía người dùng: Đăng xuất khỏi hệ thống quan trọng sau khi sử dụng, không click vào đường dẫn lạ, không lưu mật khẩu trên trình duyệt, không duyệt web lạ trong khi đang thực hiện giao dịch.
    • Giải pháp phía máy chủ: Sử dụng chuẩn HTTP (GET cho truy vấn, POST cho thay đổi dữ liệu), sử dụng Captcha, triển khai Token ngẫu nhiên duy nhất cho mỗi form/request lưu trong Session, sử dụng cookie riêng biệt cho khu vực quản trị, kiểm tra IP và nguồn gửi request.
  • SQL Injection: Lỗ hổng phát sinh khi ứng dụng ghép chuỗi dữ liệu đầu vào trực tiếp vào câu truy vấn SQL gửi tới hệ quản trị CSDL (MySQL, SQL Server, Oracle). Lợi dụng các thông báo lỗi MySQL điển hình (mysql_fetch_array(), cú pháp SQL, Unknown column), kẻ tấn công có thể nhận diện điểm yếu.
    • Các dạng tấn công: Inline Injection, Terminating Injection (sử dụng -- hoặc # để vô hiệu hóa phần sau câu lệnh), Blind Injection, vượt qua kiểm tra đăng nhập (Bypass Authorization bằng mệnh đề ' or '1'='1), tấn công bằng lệnh SELECT (and 1=1, or 1=1), tấn công chèn dữ liệu bằng lệnh INSERT, và tấn công Stored Procedures (EXEC xp_cmdshell).
    • Giải pháp: Sử dụng ORM framework để tự động tạo truy vấn tham số hóa, kiểm soát chặt chẽ các ký tự (', #, --, /* */) và từ khóa (select, insert, union, delete), thiết lập cấu hình phân quyền tối thiểu cho tài khoản cơ sở dữ liệu và ẩn hoàn toàn các thông báo lỗi kỹ thuật.
  • Denial of Service (DoS) & DDoS: Phân tích các dạng DoS làm cạn kiệt tài nguyên hệ thống qua kết nối (SYN flood), lợi dụng tài nguyên nạn nhân (Land Attack, UDP flood port 7), sử dụng băng thông (DDoS), sử dụng tài nguyên xử lý (Smurf Attack qua mạng khuếch đại ICMP broadcast, Tear Drop làm sai lệch offset gói tin), phá hoại cấu hình mạng (DNS, Router) và phá hoại vật lý. Về DDoS, chương trình bày kiến trúc IRC-Based gồm thành phần Agent và Secret Channel, phân loại theo vị trí triển khai, giao thức mạng và thời điểm hành động.
    • Giải pháp phòng chống DoS/DDoS: Xây dựng kiến trúc hệ thống hợp lý giảm phụ thuộc, thiết lập xác thực và mật khẩu thiết bị mạng, lọc thông tin trên router/firewall chống SYN flood, đóng các dịch vụ không cần thiết, giới hạn định mức tài nguyên người dùng, cập nhật vá lỗi liên tục, giám sát hệ thống và xây dựng hệ thống dự phòng.

Chương 2: Xây dựng hệ thống website và những lỗ hổng bảo mật trên website

Chương 2 mô tả quá trình thiết kế và hiện thực hóa hệ thống ứng dụng web thử nghiệm:

  • Cơ sở công nghệ: Giới thiệu ngôn ngữ lập trình Golang, đánh giá ưu nhược điểm, hướng dẫn cài đặt trên môi trường Windows và Linux/MacOS; tích hợp hệ quản trị cơ sở dữ liệu MySQL với Golang.
  • Xác định yêu cầu hệ thống:
    • Yêu cầu chức năng: Phân định rõ ràng chức năng cho người dùng (9 chức năng) và quản trị viên (6 chức năng).
    • Yêu cầu phi chức năng: Đảm bảo tính ổn định, tốc độ xử lý và môi trường thích hợp cho việc chèn các module kiểm thử an toàn thông tin.
  • Đặc tả lược đồ Use Case: Chi tiết hóa các kịch bản đăng ký, đăng nhập, đổi mật khẩu, xem thông tin phim, xem phim, bình luận, thích bình luận, tìm kiếm, liên hệ, quản trị danh sách phim, thêm, sửa, xóa phim.
  • Thiết kế CSDL và Models: Xây dựng cấu trúc quan hệ dữ liệu gồm 5 bảng: Bảng Tài Khoản, Bảng Phim, Bảng Mô Tả, Bảng Comment, Bảng Like.
  • Thiết lập các lỗ hổng bảo mật có chủ đích trên website: Cài đặt các đoạn mã thiếu cơ chế kiểm tra để tạo ra lỗi Brute-force, lỗi SQL Injection trong truy vấn tìm kiếm/đăng nhập, và lỗi Session Hijacking do quản lý cookie chưa an toàn.

Chương 3: Xây dựng, thực hiện các tấn công website và ngăn chặn

Chương 3 là phần thực nghiệm trọng tâm với 6 kịch bản tấn công và các biện pháp đối phó cụ thể:

  • 3.1 Tấn công vét cạn (Brute Force): Xây dựng module tự động gửi thử danh sách mật khẩu trên trang đăng nhập; theo dõi quá trình thực thi và xây dựng module giới hạn số lần đăng nhập sai, xác thực bổ sung để ngăn chặn.
  • 3.2 Tấn công XSS: Viết script tiêm mã JavaScript vào các trường nhập liệu (như ô tìm kiếm, form bình luận); ghi nhận quá trình đánh cắp cookie phiên làm việc; xây dựng module lọc dữ liệu đầu vào và mã hóa đầu ra (Escaping/Filtering).
  • 3.3 Tấn công CSRF: Tạo kịch bản website giả mạo gửi yêu cầu tự động đến hệ thống khi người dùng vẫn còn phiên làm việc; xây dựng module sinh token bảo mật duy nhất gắn vào form và kiểm tra token phía máy chủ trước khi xử lý.
  • 3.4 Tấn công DDoS: Sử dụng công cụ mô phỏng tấn công gửi liên tục các gói tin HTTP POST DDoS làm quá tải tài nguyên máy chủ; triển khai máy chủ Nginx cấu hình Reverse Proxy để điều phối luồng request, giới hạn tần suất truy cập và lọc lưu lượng bất thường.
  • 3.5 Tấn công SQL Injection: Sử dụng công cụ và payload chèn mệnh đề logic (' or '1'='1', and 1=1), vô hiệu hóa cú pháp bằng dấu chú thích; ghi nhận việc đăng nhập thành công không cần mật khẩu và trích xuất trái phép dữ liệu phim; phát triển model ngăn chặn bằng kỹ thuật kiểm soát ký tự đầu vào và áp dụng cơ chế truy vấn an toàn.
  • 3.6 Tấn công Session Hijacking: Khai thác cookie phiên không được bảo vệ để chiếm quyền điều khiển tài khoản của người dùng khác; xây dựng module gắn cờ an toàn cho session, kiểm tra tính hợp lệ của phiên và thu hồi phiên khi phát hiện bất thường.

Chương 4: Kết luận

  • Tổng kết toàn bộ kết quả nghiên cứu lý thuyết và thực nghiệm xây dựng hệ thống website Golang - MySQL, kiểm thử thành công 6 dạng tấn công và module phòng vệ tương ứng.
  • Đề xuất các định hướng nghiên cứu và phát triển tiếp theo nhằm hoàn thiện giải pháp bảo mật ứng dụng web.

Kết quả và đóng góp

Kết quả chính đạt được

  • Về mặt lý thuyết: Hệ thống hóa toàn diện các khái niệm, cơ chế hoạt động, phân loại và kịch bản khai thác của các kỹ thuật tấn công ứng dụng web phổ biến hàng đầu (XSS, CSRF, SQL Injection, DoS/DDoS, Brute Force, Session Hijacking).
  • Về mặt xây dựng hệ thống: Hoàn thành thiết kế và lập trình website xem phim trực tuyến bằng ngôn ngữ Golang và cơ sở dữ liệu MySQL với cấu trúc 5 bảng dữ liệu (Tài Khoản, Phim, Mô Tả, Comment, Like) cùng 15 ca sử dụng hoàn chỉnh (9 Use Case cho người dùng, 6 Use Case cho quản trị viên).
  • Về mặt thực nghiệm:
    • Xây dựng thành công 6 module tấn công thực nghiệm mô phỏng chính xác các kịch bản xâm nhập thực tế trên môi trường web.
    • Xây dựng và kiểm chứng thành công các module phòng thủ tương ứng (module lọc và escape mã độc XSS, module sinh và so khớp Anti-CSRF Token, model kiểm soát truy vấn chống SQL Injection, module bảo vệ phiên chống Session Hijacking, module chặn Brute Force, và triển khai Nginx Reverse Proxy chống HTTP POST DDoS).

Giải pháp và khuyến nghị được đề xuất

Đồ án đưa ra bộ giải pháp bảo mật toàn diện kết hợp giữa ba chủ thể:

  1. Phía người dùng: Nâng cao ý thức an toàn thông tin; luôn đăng xuất khỏi các dịch vụ quan trọng sau phiên làm việc; không nhấp vào liên kết không rõ nguồn gốc; không lưu mật khẩu tự động trên trình duyệt; không truy cập các trang web lạ khi đang thực hiện giao dịch nhạy cảm.
  2. Phía nhà phát triển ứng dụng web:
    • Thực hiện kiểm tra, xác thực chặt chẽ mọi dữ liệu đầu vào (Data Validation) và lọc từ khóa độc hại (Filtering, Escaping).
    • Tuân thủ chuẩn phương thức HTTP (GET cho truy vấn dữ liệu, POST/PUT/PATCH/DELETE cho các thao tác thay đổi trạng thái hệ thống).
    • Áp dụng Anti-CSRF Token duy nhất gắn với từng phiên làm việc cho toàn bộ các form và request AJAX.
    • Sử dụng các framework ORM thay vì viết truy vấn SQL thuần để triệt tiêu lỗ hổng SQL Injection; phân tách cookie quản trị riêng biệt.
  3. Phía nhà quản trị hệ thống và mạng:
    • Phân quyền cơ sở dữ liệu ở mức tối thiểu cho tài khoản ứng dụng web; ẩn toàn bộ các thông báo lỗi kỹ thuật chi tiết hiển thị cho người dùng.
    • Cấu hình tường lửa, thiết bị định tuyến để lọc gói tin và phòng chống SYN flood, ICMP flood; đóng các cổng và dịch vụ không sử dụng.
    • Triển khai mô hình máy chủ trung gian Nginx Reverse Proxy để cân bằng tải và kiểm soát lưu lượng chống tấn công DoS/DDoS.
    • Duy trì hệ thống sao lưu dự phòng, thiết lập cơ chế giám sát liên tục và cập nhật các bản vá bảo mật định kỳ.

Đóng góp của đề tài

  • Đồ án đã kết hợp chặt chẽ giữa nghiên cứu lý thuyết an toàn thông tin và thực nghiệm xây dựng phần mềm trên nền tảng công nghệ Golang kết hợp MySQL.
  • Cung cấp mô hình thực nghiệm trực quan giúp phân tích rõ nguyên nhân lỗ hổng bảo mật và minh chứng hiệu quả của các giải pháp lập trình an toàn, cấu hình máy chủ web trong thực tế.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế

  • Thời gian thực hiện và kinh nghiệm thực tiễn của nhóm sinh viên còn hạn chế nên phạm vi khảo sát chưa bao quát hết tất cả các biến thể tấn công mạng nâng cao.
  • Môi trường thử nghiệm tấn công DoS/DDoS chủ yếu thực hiện ở quy mô mô phỏng (tập trung vào dạng HTTP POST DDoS và cấu hình Reverse Proxy Nginx), chưa kiểm thử trên hệ thống mạng phân tán quy mô lớn thực tế.

Hướng nghiên cứu tiếp

  • Mở rộng nghiên cứu và thử nghiệm các kỹ thuật tấn công và cơ chế phòng thủ chuyên sâu khác trên môi trường điện toán đám mây.
  • Tích hợp các công cụ tự động quét và đánh giá lỗ hổng bảo mật (Web Vulnerability Scanners) vào quy trình phát triển phần mềm.
  • Nghiên cứu tối ưu hóa hiệu năng và khả năng chịu tải của máy chủ web Nginx khi áp dụng các bộ lọc bảo mật phức tạp dưới áp lực lưu lượng tấn công lớn.

Giá trị tham khảo

Tài liệu đồ án có giá trị tham khảo hữu ích cho các nhóm đối tượng:

  • Sinh viên ngành Công nghệ Thông tin, Kỹ thuật Phần mềm, An toàn Thông tin: Tài liệu cung cấp kiến thức nền tảng và kịch bản thực hành cụ thể về các lỗ hổng bảo mật web kinh điển (XSS, CSRF, SQL Injection, DoS, Brute Force, Session Hijacking).
  • Lập trình viên phát triển ứng dụng Web (đặc biệt là lập trình Golang và MySQL): Có thể tham khảo cách tổ chức mô hình dữ liệu (Models), thiết kế ca sử dụng (Use Case), kỹ thuật kết nối CSDL và áp dụng các cơ chế lập trình an toàn (Data Sanitization, Token CSRF, ORM).
  • Quản trị viên hệ thống mạng và máy chủ: Tham khảo mô hình triển khai Nginx Reverse Proxy để phân tải, chống nghẽn dịch vụ và các nguyên tắc cấu hình an toàn cho hệ quản trị cơ sở dữ liệu.

Các nội dung đáng tham khảo nhất trong đồ án bao gồm:

  • Phân loại chi tiết và kịch bản khai thác XSS, CSRF, SQL Injection tại Chương 1.
  • Sơ đồ thiết kế CSDL và cấu trúc chức năng của website Golang tại Chương 2.
  • Phương pháp xây dựng các module phòng thủ và cấu hình Nginx Reverse Proxy tại Chương 3.

Câu hỏi thường gặp

1. Website thử nghiệm trong đồ án được xây dựng bằng công nghệ gì và phục vụ nghiệp vụ gì?
Website thử nghiệm được lập trình bằng ngôn ngữ Golang, sử dụng hệ quản trị cơ sở dữ liệu MySQL và máy chủ phụ trợ Nginx Reverse Proxy. Hệ thống mô phỏng một website dịch vụ xem phim trực tuyến với 5 bảng dữ liệu (Tài Khoản, Phim, Mô Tả, Comment, Like), cung cấp 9 chức năng cho người dùng và 6 chức năng cho quản trị viên.

2. Đồ án phân loại kỹ thuật tấn công SQL Injection thành những dạng nào?
Trong đồ án, SQL Injection được phân loại theo các hình thức khai thác gồm: Inline Injection, Terminating Injection (dùng -- và # để ngắt câu lệnh), Blind Injection, tấn công vượt qua đăng nhập (Authorization Bypass qua mệnh đề ' or '1'='1'), tấn công bằng lệnh SELECT (and 1=1, or 1=1), tấn công bằng lệnh INSERT, và tấn công Stored Procedures (EXEC xp_cmdshell).

3. Nhóm tác giả đề xuất giải pháp kỹ thuật nào để ngăn chặn tấn công từ chối dịch vụ HTTP POST DDoS?
Để ngăn chặn tấn công HTTP POST DDoS, đồ án triển khai mô hình máy chủ Nginx cấu hình làm Reverse Proxy đứng trước máy chủ ứng dụng để phân phối luồng yêu cầu, thiết lập giới hạn tần suất truy cập và lọc các lưu lượng bất thường trước khi chuyển tiếp vào hệ thống xử lý bên trong.

4. Khác biệt cơ bản giữa Reflected XSS và Stored XSS được tác giả chỉ ra là gì?
Khác biệt thứ nhất nằm ở cách thức lừa nạn nhân: Reflected XSS đòi hỏi hacker phải lừa nạn nhân nhấp vào URL chứa mã độc do hacker tạo ra, trong khi Stored XSS đã lưu trực tiếp mã độc vào cơ sở dữ liệu của ứng dụng nên mã độc tự động kích hoạt khi bất kỳ ai tải trang. Khác biệt thứ hai là phạm vi ảnh hưởng: Stored XSS nguy hiểm hơn vì tác động lên toàn bộ người dùng truy cập dữ liệu đó, đặc biệt nếu quản trị viên truy cập có thể dẫn đến nguy cơ bị chiếm toàn quyền điều khiển hệ thống.

5. Cơ chế phòng thủ CSRF ở phía máy chủ được đề xuất triển khai như thế nào?
Ở phía máy chủ, đồ án đề xuất: sử dụng đúng phương thức HTTP (POST cho các tác vụ thay đổi dữ liệu), áp dụng Captcha cho các thao tác quan trọng, tạo ra một token ngẫu nhiên bảo mật duy nhất cho mỗi form/request lưu trong Session và tiến hành so khớp token này khi nhận request, sử dụng cookie riêng biệt cho trang quản trị, và kiểm tra địa chỉ IP/nguồn gốc HTTP request.


Kết luận

Đồ án tốt nghiệp "Các tấn công và giải pháp bảo mật web" của sinh viên Trần Công Hậu và Võ Thế Vinh (Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Kỹ thuật TP.HCM) đã nghiên cứu toàn diện cơ chế hoạt động của các mối đe dọa an toàn thông tin phổ biến trên môi trường web. Bằng việc xây dựng một hệ thống website xem phim thực nghiệm sử dụng ngôn ngữ Golang và cơ sở dữ liệu MySQL, nhóm tác giả đã mô phỏng thành công 6 kịch bản tấn công điển hình và phát triển các module phòng thủ tương ứng. Các giải pháp ngăn chặn được đề xuất mang tính hệ thống, kết hợp đồng bộ giữa lập trình an toàn, cấu hình máy chủ Nginx Reverse Proxy và nâng cao ý thức người dùng. Đồ án là tài liệu tham khảo có giá trị học thuật và tính ứng dụng thực tiễn cao cho sinh viên cũng như các nhà phát triển phần mềm trong lĩnh vực an toàn ứng dụng web.