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

Sự phát triển của mạng Internet cùng các dịch vụ trực tuyến đã dẫn đến việc các tổ chức, doanh nghiệp và cá nhân triển khai rộng rãi các ứng dụng web để phục vụ trao đổi thông tin, thương mại điện tử, diễn đàn và giao dịch tài chính. Tuy nhiên, sự mở rộng về quy mô dịch vụ cũng làm gia tăng các điểm yếu kỹ thuật, biến ứng dụng web thành đối tượng tấn công hàng đầu của tin tặc.

Tác giả đồ án viện dẫn các số liệu thực tế để chứng minh tính cấp bách của vấn đề:

  • Theo thống kê từ Đội cấp cứu máy tính CERT (Computer Emergency Response Team), số lượng vụ tấn công mạng ghi nhận tăng theo cấp số nhân: dưới 200 vụ năm 1989, khoảng 400 vụ năm 1991, 1.400 vụ năm 1993, 2.241 vụ năm 1994 và đạt 5.315 vụ vào năm 2001.
  • Theo hãng bảo mật Symantec, năm 2004 có 49% tổng số lỗ hổng bảo mật được phát hiện nằm trong ứng dụng web. Từ tháng 7 đến tháng 11 năm 2006, tỷ lệ lỗ hổng bảo mật trên ứng dụng web đã tăng lên mức 75% (tăng 15% so với giai đoạn đầu năm).
  • Báo cáo của CSI/FBI (Computer Crime and Security Survey) cho biết từ năm 1997 đến năm 2006, tổng thiệt hại kinh tế do các cuộc tấn công nhằm vào ứng dụng web vượt quá 800 triệu USD. Đáng chú ý, 78% đơn vị bị hại có trang bị tường lửa và 59% số cuộc tấn công được thực hiện qua đường truyền Internet.

Mục tiêu và nhiệm vụ nghiên cứu của đề tài gồm 3 nội dung chính:

  1. Nghiên cứu tổng quan về cơ chế hoạt động của ứng dụng web, các mô hình an toàn thông tin và giới hạn của các công cụ bảo vệ mạng truyền thống.
  2. Phân tích chi tiết nguyên lý, kịch bản khai thác của các kỹ thuật tấn công phổ biến dựa trên lỗ hổng ứng dụng web (chèn tham số, Cross-Site Scripting, SQL Injection, thao tác phiên làm việc, từ chối dịch vụ).
  3. Đề xuất các giải pháp kỹ thuật, cơ chế kiểm soát dữ liệu đầu vào và cấu hình an toàn nhằm phòng ngừa và kiểm soát lỗ hổng trong quá trình phát triển, vận hành dịch vụ web.

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

  • Đối tượng nghiên cứu: Các lỗ hổng bảo mật nảy sinh từ khâu lập trình và cấu hình dịch vụ web; các kỹ thuật tấn công của tin tặc và các biện pháp kiểm soát tương ứng.
  • Phạm vi không gian: Môi trường dịch vụ web hoạt động trên giao thức HTTP, hạ tầng máy chủ web (IIS, Apache), hệ quản trị cơ sở dữ liệu (SQL Server, MySQL, MS Access) và các ứng dụng viết bằng ASP, PHP, CGI.
  • Phạm vi thời gian: Khảo sát các kỹ thuật tấn công và số liệu thống kê an toàn mạng được công bố đến thời điểm thực hiện đồ án (năm 2007).

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

Đồ án xây dựng nội dung dựa trên các mô hình lý thuyết an toàn thông tin và kiến trúc ứng dụng mạng phân tán:

  • Khung lý thuyết an toàn web: Xác định ba mục tiêu cốt lõi gồm Bảo mật (Confidentiality - thông tin không bị đọc trái phép), Bảo toàn (Integrity - dữ liệu không bị sửa đổi trái phép), và Bảo đảm tính sẵn sàng (Availability - tài nguyên luôn đáp ứng người dùng hợp pháp). Đồng thời, xem xét an toàn từ cả hai góc độ: người dùng dịch vụ và nhà quản trị hệ thống (bổ sung tính xác thực và chống chối bỏ).
  • Phân loại đối tượng tấn công mạng (Intruder): Phân tách ba nhóm chính gồm Tin tặc (Hacker), Kẻ giả mạo (Masquerader) và Kẻ nghe trộm (Eavesdropping).
  • Mô hình kiến trúc ứng dụng web 3 lớp: Lớp trình bày (Presentation Tier - giao diện trình duyệt), Lớp ứng dụng (Application Tier - xử lý logic nghiệp vụ bằng CGI, Java, PHP, ASP triển khai trên Apache, IIS, WebSphere), và Lớp dữ liệu (Data Tier - quản lý bởi hệ quản trị cơ sở dữ liệu như SQL Server, Oracle, DB2).
  • Khái niệm về các công cụ bảo vệ mạng: Đánh giá cơ chế hoạt động của Tường lửa (Firewall) và Mạng riêng ảo (VPN - Virtual Private Network) sử dụng kết nối đường hầm (tunnel).

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

  • Phương pháp phân tích và tổng hợp lý thuyết: Phân tích các tiêu chuẩn bảo mật của Dự án Bảo mật Ứng dụng Web Mở OWASP (Open Web Application Security Project), các khuyến cáo của CERT và Symantec.
  • Phương pháp khảo sát kỹ thuật và thực nghiệm kịch bản: Mô phỏng các kỹ thuật tấn công thông qua mã khai thác mẫu, phân tích cấu trúc gói tin HTTP request/response, kiểm thử câu truy vấn SQL và cơ chế thiết lập kết nối TCP bắt tay ba chiều (SYN, SYN/ACK, ACK).

Nguồn dữ liệu của nghiên cứu:

  • Dữ liệu thứ cấp: Báo cáo thống kê từ CERT, CSI/FBI, IBM Watson Research Lab (nghiên cứu về mật độ lỗi trên số dòng lệnh), Symantec.
  • Dữ liệu kỹ thuật: Cấu trúc giao thức HTTP (RFC), mã nguồn kịch bản xử lý phía máy chủ (ASP, VBScript) và các tham số điều khiển cơ sở dữ liệu.

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

Chương 1: Khái niệm cơ sở

Chương này trình bày các định nghĩa nền tảng về an toàn thông tin dịch vụ web, cấu trúc phân lớp bảo vệ và nguyên lý hoạt động của ứng dụng web. Tác giả phân chia thang đo mức độ tấn công và mô hình phòng thủ nhiều lớp:

Mức độ tấn công Mục tiêu và phạm vi ảnh hưởng
Mức 1 Tấn công dịch vụ mạng (web, email), làm lộ cấu hình mạng.
Mức 2 Dùng tài khoản người dùng hợp pháp để truy cập tài nguyên, đọc tập tin xác thực (/etc/passwd, SAM).
Mức 3, 4, 5 Leo thang đặc quyền cao hơn người dùng thường, kích hoạt dịch vụ, xem dữ liệu nội bộ.
Mức 6 Chiếm toàn quyền quản trị cao nhất (root hoặc administrator) trên hệ thống.

Để đối phó với các mức độ xâm nhập, hệ thống mạng áp dụng 5 lớp rào chắn bảo vệ:

  • Lớp 1: Quy định quyền truy nhập tài nguyên và tệp tin.
  • Lớp 2: Xác thực theo tài khoản và mật khẩu truy nhập.
  • Lớp 3: Sử dụng các phương pháp mã hóa dữ liệu.
  • Lớp 4: Bảo vệ vật lý (khóa phòng máy, hệ thống báo động).
  • Lớp 5: Triển khai tường lửa (firewall) để lọc gói tin.

Phần tiếp theo của chương đi sâu vào nguyên nhân dẫn đến tình trạng bảo mật kém của ứng dụng web:

  1. Giao thức HTTP nguyên bản được xây dựng dựa trên mô hình máy chủ/máy khách đơn giản, không tích hợp sẵn cơ chế bảo mật.
  2. Mức độ phức tạp của ứng dụng web ngày càng tăng với nhiều ngôn ngữ và định dạng dữ liệu mới.
  3. Quy trình phát triển thường ưu tiên chức năng, tốc độ và giao diện thẩm mỹ hơn là an toàn; việc kiểm thử bảo mật thường chỉ tiến hành ở giai đoạn cuối bằng các bản vá chắp vá.
  4. Lỗi xuất hiện từ nền tảng dịch vụ, hệ điều hành và công cụ lập trình. Theo IBM Watson Research Lab, trung bình cứ 1.500 dòng mã lệnh lại xuất hiện 1 lỗ hổng. Hệ điều hành Windows XP với 45 triệu dòng lệnh chứa khoảng 30.000 lỗ hổng; Windows 2000 với 35 triệu dòng lệnh chứa khoảng 23.000 lỗ hổng.

Chương 1 cũng chỉ rõ hạn chế cốt tử của tường lửa: Tường lửa cho phép lưu lượng HTTP đi qua các cổng chuẩn (như cổng 80), do đó không thể phân tích nội dung ngữ nghĩa bên trong gói tin để nhận biết các cuộc tấn công khai thác lỗi ứng dụng.

Chương 2: Các kĩ thuật tấn công lợi dụng “lỗ hổng” và bảo vệ web

Đây là chương trọng tâm của đồ án, phân tích chi tiết cơ chế của 5 nhóm kỹ thuật tấn công chính cùng các biện pháp ngăn ngừa:

1. Tấn công kiểu “Chèn tham số” (Parameter Tampering)

Tin tặc thao túng các giá trị truyền giữa máy khách và máy chủ qua 4 phương thức:

  • Chỉnh sửa HTTP Header: Lợi dụng các trường như User-Agent, Referer. Ví dụ, tin tặc can thiệp Referer header để vượt qua cơ chế kiểm tra nguồn gốc yêu cầu của máy chủ, hoặc chèn mã thực thi qua telnet. Biện pháp: không tin cậy dữ liệu từ HTTP header máy khách, thực hiện mã hóa header phía máy chủ.
  • Chỉnh sửa địa chỉ URL: Can thiệp trực tiếp vào chuỗi truy vấn GET (ví dụ sửa giá trị tham số user từ tài khoản thường sang tài khoản quản trị để đổi mật khẩu). Biện pháp: sử dụng bảng băm (hash table) trên máy chủ để đối chiếu khóa phiên hoặc mã hóa thông tin nhạy cảm.
  • Chỉnh sửa trường ẩn biểu mẫu (Hidden Form Field): Khai thác các thẻ input ẩn chứa thông tin nhạy cảm (như trường giá cả sản phẩm). Tin tặc tải trang web về máy, sửa giá trị trường ẩn thành 0 và gửi lại máy chủ. Biện pháp: không dùng trường ẩn để xử lý nghiệp vụ thanh toán, kiểm tra bằng giá trị băm một chiều kèm khóa bí mật, hoặc sử dụng sessionID lưu trữ phía cơ sở dữ liệu.
  • Thao tác trên Cookie: Can thiệp vào các tệp lưu trạng thái người dùng. Tác giả phân loại 4 nhóm cookie dựa trên 2 tiêu chí:
Phân loại Cookie Đặc điểm lưu trữ và giao thức truyền
Persistent & Secure Lưu thành tệp văn bản (.txt) trên đĩa cứng; chỉ truyền qua giao thức HTTPS.
Persistent & Non-Secure Lưu thành tệp văn bản (.txt) trên đĩa cứng; truyền qua cả HTTP và HTTPS.
Non-Persistent & Secure Lưu trên bộ nhớ RAM, mất khi đóng trình duyệt; chỉ truyền qua HTTPS.
Non-Persistent & Non-Secure Lưu trên bộ nhớ RAM, mất khi đóng trình duyệt; truyền qua cả HTTP và HTTPS.

Kích thước tối đa của mỗi cookie là 4 KB và mỗi tên miền được lưu tối đa 20 cookie. Biện pháp phòng chống can thiệp cookie gồm: lưu thông tin đăng nhập trên đối tượng session ở máy chủ, kiểm tra tính hợp lệ của cookie và áp dụng mã hóa đối xứng hoặc bất đối xứng.

2. Tấn công “Chèn mã lệnh trên trình duyệt” (Cross-Site Scripting - XSS)

Phương thức tấn công hướng vào người dùng cuối bằng cách chèn các đoạn mã kịch bản (JavaScript, VBScript) thông qua URL, các thuộc tính thẻ HTML (onmouseover, thẻ img, div). Quá trình tấn công XSS gồm 5 bước: phát hiện lỗ hổng -> gửi liên kết chứa mã độc -> máy người dùng thực thi và gửi cookie/mật khẩu về máy chủ tin tặc -> máy chủ tin tặc ghi nhận thông tin vào tệp -> tin tặc sử dụng dữ liệu đánh cắp để thâm nhập tài khoản. Biện pháp phòng ngừa: Tuân thủ khuyến nghị của OWASP (chỉ chấp nhận dữ liệu hợp lệ, từ chối dữ liệu hỏng, liên tục lọc dữ liệu), mã hóa ký tự đặc biệt trước khi hiển thị ra màn hình (ví dụ mã hóa thẻ script thành chuỗi an toàn), cấu hình trình duyệt để cảnh báo thực thi kịch bản.

3. Tấn công kiểu “Chèn câu lệnh truy vấn” (SQL Injection)

Tin tặc khai thác sự bất cẩn của lập trình viên khi ghép trực tiếp dữ liệu người dùng nhập vào câu truy vấn SQL. Bốn dạng tấn công cụ thể gồm:

  • Vượt qua kiểm tra đăng nhập: Nhập chuỗi điều kiện luôn đúng dạng ' OR ''='' vào ô đăng nhập, khiến mệnh đề WHERE trả về giá trị đúng cho toàn bộ bảng tài khoản và đăng nhập với tư cách người dùng đầu tiên.
  • Tấn công sử dụng câu lệnh SELECT: Lợi dụng mệnh đề UNION SELECT kết hợp khai thác các bảng hệ thống sysobjects và syscolumns trong SQL Server (với điều kiện xtype='U') để trích xuất toàn bộ cấu trúc bảng và dữ liệu.
  • Tấn công sử dụng câu lệnh INSERT: Chèn câu truy vấn con vào các trường nhập liệu để ghi dữ liệu trái phép.
  • Tấn công sử dụng Stored-Procedure: Nguy hiểm nhất khi ứng dụng chạy với quyền sa (System Administrator). Tin tặc chèn dấu chấm phẩy (;) để thực thi thủ tục hệ thống xp_cmdshell gọi lệnh điều khiển hệ điều hành, hoặc thi hành lệnh tắt cơ sở dữ liệu.

Biện pháp ngăn ngừa SQL Injection:

  1. Kiểm soát dữ liệu nhập: Sử dụng hàm thay thế dấu nháy đơn EscapeQuotes, hàm kiểm tra kiểu số IsNumeric(), xây dựng hàm lọc KillChars để loại bỏ các chuỗi nguy hiểm như select, drop, insert, delete, xp_, dấu chấm phẩy và ký tự ghi chú (--).
  2. Cấu hình an toàn cơ sở dữ liệu: Không cấp quyền sa hoặc dbo cho tài khoản kết nối của ứng dụng web, áp dụng nguyên tắc đặc quyền tối thiểu và vô hiệu hóa thông báo lỗi kỹ thuật chi tiết gửi về trình duyệt.

4. Tấn công dựa vào “Kiểu quản lý phiên làm việc” (SessionID Management)

Do bản chất phi trạng thái của giao thức HTTP, SessionID được dùng làm định danh tạm thời thay cho mật khẩu sau khi đăng nhập thành công. Tác giả phân tích hai hình thức tấn công phiên:

  • Ấn định phiên làm việc (Session Fixation): Tin tặc khởi tạo trước một sessionID hợp lệ, gửi cho nạn nhân qua liên kết URL, trường ẩn hoặc cookie/thẻ META. Khi nạn nhân đăng nhập thành công bằng liên kết đó, tin tặc dùng chính sessionID này để chiếm phiên.
  • Đánh cắp phiên làm việc (Session Hijacking): Tin tặc đoạt sessionID của phiên đang hoạt động thông qua việc dự đoán thuật toán sinh ID, tấn công vét cạn (brute-force) hoặc dùng mã độc XSS đánh cắp cookie.

Biện pháp phòng ngừa: Luôn hủy sessionID cũ và cấp phát sessionID mới ngẫu nhiên ngay sau khi người dùng đăng nhập thành công; gắn kết sessionID với địa chỉ IP trình duyệt hoặc phiên mã hóa SSL; hủy phiên khi người dùng đăng xuất hoặc khi hết thời gian chờ (timeout).

5. Tấn công “Từ chối dịch vụ” (Denial of Service - DoS)

Tác giả phân tích cơ chế bắt tay ba chiều của giao thức TCP (gói tin SYN khởi tạo kết nối -> máy chủ gửi lại SYN/ACK -> máy khách gửi ACK để hoàn tất). Kỹ thuật tấn công SYN Flood lợi dụng việc máy khách liên tục gửi gói tin SYN nhưng không bao giờ phản hồi gói tin ACK cuối cùng, khiến máy chủ phải duy trì các hàng đợi kết nối bán mở cho đến khi cạn kiệt bộ nhớ và tê liệt dịch vụ.

Chương 3: Tổng kết kỹ thuật tấn công của Hacker

Chương 3 khái quát quy trình thực tế gồm các bước:

  • Thu thập thông tin ở mức hạ tầng của mục tiêu: Dò quét hệ thống, nhận diện phiên bản hệ điều hành, máy chủ web (IIS, Apache) và các dịch vụ cổng mở thông qua các công cụ phân tích mạng.
  • Khảo sát ứng dụng web: Thăm dò cấu trúc liên kết, kiểm tra các tham số trên URL, các biểu mẫu nhập liệu và mã nguồn trang HTML để tìm kiếm trường ẩn, cơ chế cookie và điểm khiếm khuyết trong kiểm tra dữ liệu đầu vào.
  • Thử nghiệm: Tiến hành thực nghiệm các kịch bản khai thác cụ thể đối với các lỗ hổng đã phát hiện trên hệ thống thử nghiệm.

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

Kết quả chính của đồ án:

  • Phân loại và hệ thống hóa toàn diện các kỹ thuật tấn công phổ biến nhằm vào ứng dụng web tại thời điểm năm 2007 (Parameter Tampering, XSS, SQL Injection, Session Hijacking/Fixation, DoS SYN Flood).
  • Làm rõ bản chất kỹ thuật của các lỗ hổng bắt nguồn từ việc thiếu kiểm soát dữ liệu đầu vào và các hạn chế của giao thức HTTP, đồng thời cung cấp các dẫn chứng số liệu thực tế về thiệt hại và tỷ lệ xuất hiện lỗi phần mềm từ các tổ chức bảo mật uy tín.
  • Xây dựng các hàm xử lý dữ liệu mẫu bằng ngôn ngữ VBScript/ASP nhằm lọc ký tự nguy hại, kiểm tra kiểu dữ liệu và khử dấu nháy đơn để ngăn chặn tấn công SQL Injection.

Giải pháp và kiến nghị tác giả đề xuất:

  • Áp dụng nguyên tắc kiểm soát dữ liệu đa tầng: Kiểm tra và làm sạch toàn bộ dữ liệu đầu vào nhận từ đối tượng Request (URL parameters, Form fields, Cookies, HTTP headers) trước khi đưa vào logic xử lý hoặc câu truy vấn cơ sở dữ liệu.
  • Tái cấu trúc cơ chế quản lý phiên: Bắt buộc hủy bỏ sessionID trước đăng nhập và tạo mới sessionID sau khi xác thực thành công; thiết lập thời hạn sống (Time To Live) hợp lý cho phiên làm việc.
  • Phân quyền tối thiểu cho hệ quản trị cơ sở dữ liệu: Tuyệt đối không cho phép ứng dụng web kết nối đến cơ sở dữ liệu bằng tài khoản quản trị hệ thống (sa) hoặc người sở hữu cơ sở dữ liệu (dbo).
  • Ẩn toàn bộ thông báo lỗi kỹ thuật của hệ thống để tránh việc tin tặc khai thác thông tin cấu trúc bảng và đường dẫn tệp.

Đóng góp của đồ án: Đồ án đã chỉ ra sự thiếu hụt trong nhận thức bảo mật mạng truyền thống: việc chỉ dựa vào tường lửa và mạng riêng ảo là hoàn toàn không đủ để bảo vệ dịch vụ web trước các cuộc tấn công tầng ứng dụng. Nghiên cứu đã chuyển dịch sự chú ý từ bảo vệ chu vi hạ tầng sang việc xây dựng mã nguồn an toàn trong từng khâu phát triển phần mềm.

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

Hạn chế của nghiên cứu:

  • Phạm vi công nghệ khảo sát trong đồ án tập trung chủ yếu vào các công nghệ web phổ biến ở giai đoạn 2007 như ASP cổ điển, Internet Information Server (IIS 5.0), SQL Server, ngôn ngữ kịch bản VBScript và JavaScript. Chưa đề cập đến các khung phát triển ứng dụng hiện đại và các kiến trúc dịch vụ web mới.
  • Các giải pháp phòng chống được đề xuất ở mức xử lý cục bộ trên từng đoạn mã của ứng dụng (code-level functions), chưa tích hợp thành các mô hình tường lửa ứng dụng web (WAF) chuyên dụng hoặc các quy trình kiểm thử tự động toàn diện.

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

  • Nghiên cứu cơ chế kiểm soát lỗ hổng tự động và các giải pháp lọc gói tin chuyên sâu ở tầng ứng dụng web.
  • Mở rộng phạm vi phân tích đối với các dạng tấn công từ chối dịch vụ phân tán (DDoS) phức tạp và các kỹ thuật tấn công tràn bộ đệm trên máy chủ dịch vụ web.

Giá trị tham khảo

Đồ án có giá trị tham khảo rõ ràng trong các trường hợp sau:

  • Đối tượng sử dụng: Sinh viên chuyên ngành Công nghệ thông tin, An toàn thông tin; các lập trình viên web mới tiếp cận việc lập trình an toàn; các quản trị viên hệ thống mạng quản lý máy chủ web IIS và cơ sở dữ liệu SQL Server.
  • Phần đáng tham khảo nhất:
    • Các kịch bản phân tích chi tiết về SQL Injection và Session Fixation trong Chương 2, đi kèm mã nguồn xử lý chuỗi nhập liệu (hàm EscapeQuotes, KillChars) có thể áp dụng trực tiếp để hiểu rõ bản chất tấn công cơ sở dữ liệu.
    • Bảng phân tích các kiểu cookie và quy trình 5 bước tấn công XSS, giúp người học nắm vững luồng di chuyển dữ liệu độc hại giữa máy khách và máy chủ.

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

1. Tại sao tường lửa mạng truyền thống không thể ngăn chặn các cuộc tấn công khai thác lỗ hổng ứng dụng web?

Theo nội dung đồ án, tường lửa truyền thống chỉ kiểm soát lưu lượng dựa trên thông số địa chỉ IP và cổng dịch vụ. Do cổng dịch vụ web (như cổng 80 hoặc 443) bắt buộc phải mở cho công chúng truy cập, luồng dữ liệu trao đổi qua giao thức HTTP được coi là hợp lệ. Tường lửa không phân tích được ngữ nghĩa bên trong gói tin HTTP, do đó không thể phát hiện các đoạn mã độc hại hoặc các câu truy vấn can thiệp sâu vào ứng dụng web.

2. Kỹ thuật tấn công vượt qua kiểm tra đăng nhập bằng SQL Injection hoạt động dựa trên cơ chế nào?

Kỹ thuật này khai thác sơ hở khi ứng dụng ghép trực tiếp chuỗi ký tự người dùng nhập vào câu lệnh SQL để xác thực. Khi tin tặc nhập chuỗi ' OR ''='' vào cả tên đăng nhập và mật khẩu, biểu thức so sánh luôn trả về giá trị đúng (TRUE). Khi đó mệnh đề WHERE bị vô hiệu hóa, hệ thống sẽ chọn bản ghi đầu tiên trong bảng người dùng và cấp quyền đăng nhập cho kẻ tấn công như một người dùng hợp lệ.

3. Sự khác nhau giữa tấn công ấn định phiên làm việc (Session Fixation) và đánh cắp phiên làm việc (Session Hijacking) là gì?

  • Trong tấn công ấn định phiên làm việc, tin tặc là bên chủ động khởi tạo trước một sessionID rồi lừa nạn nhân sử dụng sessionID đó để đăng nhập. Sau khi nạn nhân đăng nhập thành công, tin tặc dùng chính sessionID đã biết để vào hệ thống.
  • Trong tấn công đánh cắp phiên làm việc, nạn nhân đã đăng nhập và đang làm việc bình thường; tin tặc sử dụng các phương thức như nghe trộm, dự đoán, vét cạn hoặc chèn mã XSS để lấy cắp sessionID hiện thời của nạn nhân.

4. Quy định về kích thước và số lượng tối đa của cookie trên trình duyệt theo văn bản là bao nhiêu?

Theo số liệu kỹ thuật được nêu trong Chương 2 của đồ án, kích thước tối đa cho một cookie là 4 KB và số lượng cookie tối đa được lưu trữ cho một tên miền là 20 cookie.

5. Những hàm nào được tác giả xây dựng để xử lý dữ liệu nhập nhằm phòng ngừa SQL Injection?

Tác giả đề xuất xây dựng hai hàm chính trong môi trường VBScript/ASP:

  • Hàm EscapeQuotes: Thay thế một dấu nháy đơn (') bằng hai dấu nháy đơn ('') nhằm vô hiệu hóa khả năng ngắt chuỗi câu lệnh SQL.
  • Hàm KillChars: Sử dụng mảng để duyệt và loại bỏ hoàn toàn các từ khóa và ký tự nguy hiểm khỏi chuỗi nhập, bao gồm: select, drop, ;, --, insert, delete, xp_. Đồng thời sử dụng hàm chuẩn IsNumeric() để kiểm tra tính hợp lệ của dữ liệu số.

Kết luận

Đồ án tốt nghiệp "Nghiên cứu bảo đảm an toàn thông tin bằng kiểm soát lỗ hổng trong dịch vụ Web" (2007) của sinh viên ngành Công nghệ thông tin, Trường Đại học Dân lập Hải Phòng đã hệ thống hóa các nguy cơ an toàn mạng cốt lõi ở tầng ứng dụng. Bằng việc phân tích sâu các cơ chế tấn công như chèn tham số, XSS, SQL Injection, thao tác phiên làm việc và DoS, công trình đã chứng minh tính cấp thiết của việc xây dựng mã nguồn an toàn thay vì phụ thuộc hoàn toàn vào tường lửa phần cứng. Đồ án cung cấp các giải pháp kỹ thuật cụ thể từ mức lọc dữ liệu đầu vào đến cấu hình an toàn cho cơ sở dữ liệu, tạo nguồn tài liệu tham khảo cơ bản cho việc nghiên cứu an toàn ứng dụng web.