Chương 1 1 TỔNG QUAN 1.1 Giới thiệu đề Đề tài đồ án tốt nghiệp của em được dựa trên các kiến thức về lý thuyết kiểm thử bảo mật phần mềm, từ đó ứng dụng triển khai trên hệ thống trường học trực tuyến vnedu.vn thuộc Tập đoàn bưu chính viễn thông Việt Nam – VNPT. Kiểm thử phần mềm là một hoạt động giữ vai trò rất quan trọng để bảo đảm chất lượng phần mềm và là hoạt động mang tính sống còn trong các dự án sản xuất hoặc gia công phần mềm. Kiểm thử phần mềm chiếm 30 – 40% trong quy trình phát triển phần mềm[1]. Vì vậy, kiểm thử phần mềm đã trở thành qui trình bắt buộc trong các dự án phát triển phần mềm trên thế giới.
Hiện nay, khâu kiểm thử phần mềm đang dần được chú trọng hơn trong các dự án phát triển phần mềm ở cả các công ty lớn hay vừa và nhỏ. Đặc biệt đối ví các đơn vị uy tín trong lĩnh vực phần mềm đánh giá rất cao khâu kiểm thử, nếu các sản phẩm đưa ra chưa được qua kiểm thử và có các văn bản xác nhận đi kèm thì đều không được chấp nhận hay đánh giá cao. Nếu phần mềm sau khi thi công được đưa ra sử dụng mà xảy ra các tình trạng như: hoạt động không đúng yêu cầu thiết kế, xảy ra các lỗi đến từ phía người dùng sẽ dẫn đến: mất thời gian, tiền bạc, ảnh hướng tới uy tín của đơn vị thực hiện.qua đó thấy được mỗi phần mềm cần phải kiểm thử trước khi được đưa ra sử dụng, nhờ vậy sản phẩm sẽ được hoàn thiện nhất, tránh được các phát sinh do chủ quan từ phía lập trình viên, ngoài ra cũng giúp các đơn vị thi công phần mềm tạo dựng được uy tín và chất lượng dịch vụ. Câu hỏi đặt ra tiếp theo là: Kiểm thử phần mềm là gì? 2 Theo IEEE (Insttitute of Electrical and Electronic Engineers): Kiểm thử là tiến trình vận hành hệ thống hoặc thành phần dưới những điều kiện xác định, quan sát hoặc ghi nhận xét kết quả và đưa ra đánh giá về hệ thống hoặc thành phần đó.
Theo Glen Myers: “Kiểm thử là tiến trình thực thi chương trình với mục đích tìm ra lỗi (The art of software testing)” Kiểm thử phần mềm là một cuộc kiểm tra được tiến hành để cung cấp cho các bên liên quan thông tin về chất lượng của sản phẩm hoặc dịch vụ được kiểm thử[2]. Trên đây là các định nghĩa chung giúp phần nào nói rõ hơn về kiểm thử phần mềm. Trọng tâm đề tài đưa ra là hướng đến kiểm thử bảo mật website. Vậy bảo mật là gì? Bảo mật là sự hạn chế khả năng lạm dụng tài nguyên và tài sản.
Bảo mật trở nên đặc biệt phức tạp trong quản lý, vận hành những hệ thống thông tin có sử dụng các công cụ tin học, nơi có thể xảy ra tràn lan nhanh chóng việc lạm dụng tài nguyên và lạm dụng tài sản. An toàn của một hệ thống thông tin, website thực chất là sự đảm bảo an ninh ở mức độ chấp nhận được. Nếu bảo mật quá chặt chẽ nó sẽ trở nên khó sử dụng hoặc khó hoạt động một cách hiệu quả. Nếu bảo mật quá đơn giản, hệ thống sẽ dễ bị tấn công và thâm nhập.
Vì vậy, trước khi đưa sản phẩm phần mềm vào sử dụng, nhà phát triển cần đặc biệt chú trọng đến khâu bảo mật. Đôi khi những nhà lập trình viên không thể kiểm soát hết được các lỗ hổng do sự chủ quan từ nhiều phía, điều này dẫn đến một bộ phận chuyên môn am hiểu về bảo mật phần mềm và có hiểu biết đủ để có thể rà soát các lỗ hổng bảo mật của phần mềm. Bộ phận ấy nằm trong kiểm thử phần mềm, cụ thể là kiểm thử bảo mật. Dựa trên sự quan trọng và cần thiết trên, em đã lựa chọn đề tài đồ án tốt nghiệp là: Ứng dụng lý thuyết kiểm thử bảo mật vào hệ thống trường học trực 3 tuyến vnedu.
Đây là một hệ thống giáo dục trực tuyến trọng điểm và quan trọng có sức ảnh hưởng lớn đối với rất nhiều trường học từ mầm non đến trung học phổ thông trên cả nước, vì vậy vấn đề bảo mật được đặt lên hàng đầu, và đây cũng chính là lý do em lựa chọn kiểm thử bảo mật trên hệ thống này.2 Phạm vi đề tài Phạm vi đề tài được thực hiện tập trung vào những nội dung sau: Tìm hiểu về kiểm thử bảo mật website một cách chi tiết ở mức độ cho phép. Xây dựng quy trình kiểm thử bảo mật và áp dụng vào kiểm thử hệ thống VnEdu. 4 Chương 2 2 LÝ THUYẾT ÁP DỤNG 2.1 Tổng quan về bảo mật website 2.1 Sơ lược về bảo mật thông tin Bảo mật là bảo vệ những thứ có giá trị [2]. Bảo mật cũng là sự hạn chế khả năng lạm dụng tài nguyên và tài sản.
Bảo mật đặc biệt trở nên phức tạp trong quản lý, vận hành những hệ thống thông tin có sử dụng các công cụ tin học, nơi có thể xảy ra và tràn lan nhanh chóng việc lạm dụng tài nguyên và lạm dụng tài sản. Tuy nhiên không phải bất cứ lúc nào cũng có thể xử lý ngay lập tức những hành động đó, điều này dẫn đến việc cần thiết phải có sự chuẩn bị trước để sẵn sàng trước mọi tình huống sẽ xảy ra. An toàn thông tin theo một cách dễ hiểu thì đó thực chất là sự đảm bảo an toàn thông tin ở mức có thể chấp nhận được. Nếu bảo mật quá chặt chẽ nó sẽ trở nên khó sử dụng hoặc khó hoạt động một cách hiệu quả.
Ngược lại nếu bảo mật quá sơ sài thì hệ thống lại dễ bị tấn công và xâm nhập. Các yêu cầu cần bảo vệ hệ thống thông tin: Tính bí mật (Confidental): Thông tin chỉ được xem bởi những người có quyền. Thông tin luôn cần được đảm bảo bí mật vì đó là sản phẩm của tổ chức hoặc khách hàng của tổ chức. Bí mật về thông tin được hiểu là điều bắt buộc hoặc tuân theo điều khoản nào đó giữa khách hàng và tổ chức.
Tính toàn vẹn (Integrity): Thông tin cần phải đầy đủ, không được suy diễn hoặc thay đổi bất hợp pháp. Nó cần phải biệt lập để tránh các tai nạn hay các thay đổi có mục đích xấu. Tính sẵn sàng (Availability): Thông tin phải luôn trong tình trạng sẵn sàng cung cấp cho những người được cấp quyền sử dụng bất cứ lúc nào.2 Mô hình bảo mật Để xây dựng nên các tiêu chuẩn, chính sách bảo mật thì cần phải mô tả các thực thể bị chi phối bởi các chính sách và chúng ta phải phát biểu các quy tắc cấu thành nên chính sách đó. Và việc này chính là công việc của mô hình bảo mật[2].
Theo tìm hiểu về các hệ thống thông tin lơn, em đưa ra được một số mô hình bảo mật được sử dụng tương đối phổ biến: Mô hình ma trận truy cập (Acess matrix model): là mô hình điều khiển truy nhập cơ bản. Đây là mô hình được phát triển độc lập với các hệ điều hành và các hệ quản trị cơ sở dữ liệu, tuy nhiên nó vẫn được sử dụng một cách khá phổ biến trong các hệ điều hành và hê quản trị cơ sở dữ liệu. Chủ thể Lọc Đối tượng Sơ đồ minh họa hoạt động của mô hình ma trận Cơ chế hoạt động của mô hình ma trận truy nhập là dựa theo danh sách điều khiển truy cập. Danh sách điểu khiển truy cập dùng để bảo vệ các đối tượng.
Lúc này sẽ tồn tại người dùng đặc biệt Admin, người dùng này có thể thêm, sửa, xóa quyền truy cập của tất cả mọi thành viên thuộc hệ thống (Ví dụ quyền truy cập: insert, update, delete,…). Mô hình ma trận được định nghĩa một cách cụ thể bằng thuật ngữ trạng thái và thay đổi trạng thái. Trạng thái của hệ thống xác định bằng 3 đối tượng: O, S, A. Trong đó: S: tập hợp người dùng hữu hạn.
O: tập hợp các đối tượng hữu hạn. A: ma trận truy nhập. Mỗi phần tử của ma trận A[S i, Oj] là danh sách các quyền truy nhập của người dùng Si lên đối tượng Oj, hay mức độ cho phép truy nhập dành cho người dùng. 6 Ma trận truy cập thể hiện trạng thái an toàn ở thời điểm hiện tại của hệ thống thông tin.
Thành phần của ma trận: Hàng ngang: Si (các người dùng hiện tại) Hàng dọc: Oj (các đối tượng hiện tại) Ma trận A[Si, Oj] xác định quyền truy cập hiện tại. Các quyền truy cập được xác định bởi kiểu đối tượng. Đối với loại đối tượng là file thì quyền truy cập sẽ bao gồm: đọc, ghi, thêm mới, xóa, copy, update,… Còn nếu đối tượng là các tín trình thực hiền thì quyền truy cập sẽ là: nhận, gửi, sao chép tín hiệu,… Ngoài ra, có một số quyền đặc biệt như: Quyền điều khiển: nếu Si tạo ra một Sj thì Si khi đó có quyền gọi là điều khiển, thay đổi và cũng có thể xóa bất cứ quyền nào của Sj. Quyền làm chủ: nếu S tạo mới một O thì S có quyền làm admin của O và cũng có quyền thay đổi quyền truy cập O của tất cả các đối tượng khác.
Quyền thay đổi quyền: S có thể chuyển quyền đối với một O, có thể đặt quyền của chính S cho O cho một S khác. Lưu ý: quyền được chuyển phải cao hơn quyền được trao. Trạng thái hiện thời của các quyền bảo vệ sẽ thay đổi khi có một quyền mới được trao hoặc xóa một quyền nào đó ra khỏi ma trận. Việc này được thực hiện thông qua bộ kiểm tra ma trận truy cập.
Bộ kiểm tra được thực hiện bằng tập gồm 8 lệnh trong tập lệnh bảo vệ: Transfer: chuyển quyền cho một người dùng khác Grant: tạo quyền cho người dùng khác Delete: xóa quyền Read: đọc nội dung từ ma trận truy nhập Create object: khởi tạo một đối tượng mới Delete object: xóa một đối tượng đã tồn tại Create subject: tạo một người dùng mới 7 Delete subject: xóa một người dùng đã tồn tại Đánh giá về ma trận truy cập thì có thể nhận thấy được 2 điểm: Admin là thành viên có quyền cao nhất đối với toàn bộ việc bổ sung hay loại bỏ quyền truy cập của người dùng khác trong hệ thống. Quyền truy cập lên từng đối tượng khá cụ thể, ngoài ra cũng có thể thay đổi đối tượng cũng như người dùng một cách nhanh chóng và thuận tiện dề dàng. Điều này khá phù hợp với các hệ thống có cơ chế quản lý theo hướng tập trung.