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ì?
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 tuyến vnedu.vn Đâ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.
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.vn.
Tổng quan về bảo mật website
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.1.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
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ụ
Chủ thể Lọc Đối tượng 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.
Mỗi phần tử của ma trận A[Si, 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
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
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
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 Điểm thử 2 đó là đối với những hệ thống lớn, số lượng người dùng nhiều, danh sách điều khiển truy cập sẽ trở nên phức tạp, cồng kềnh, dẫn đến việc truy cập mất nhiều thời gian, làm giảm hiệu xuất làm việc của hệ thống.
Mô hình HRU (Harison – Ullman): Đối với mô hình này, quyền hạn của người dùng sẽ đc xác định một cách cụ thể Quy ước:
R: tập các quyền truy cập
Phươg thức xác định một ma trận truy cập:
Có 6 hành động chính trong các quyền hạn của người dùng có được:
Nhập r vào trong/ từ M so
Tạo / xóa đối tượng O Đặc điểm bảo mật của mô hình HRU: Định nghĩa về mô hình HRU:
Một ma trận truy cập M lộ ra quyền r nếu có một lệnh c:
M M’ thêm quyền r vào trong M mà không chứa r trước đó, có nghĩa là ∃ s , o sao cho r ∉ M so và r ∈ M ’ so
Một ma trận M được coi là an toàn đối với quyền r nếu không co chuỗi lệnh nào có thể biến đổi M thành một trạng thái mà bị phát hiện r Vì vậy, sự kiểm chứng bảo mật có thể coi như kiểm chứng an toàn. Định lý của mô hình:
- Cho một ma trận truy cập M và quyền r, sự kiểm chứng độ an toàn của
M đối với quyền r là vấn đề không thể quyết định được.
Tổng quan lý thuyết kiểm thử
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ì?
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]
2.2.2 Mục đích của kiểm thử bảo mật
Với tư cách là Tester, tập trung kiểm thử bảo mật của Web và Ứng dụng Web ở mức độ ứng dụng, nói cách dễ hiểu thì là ta đang thực hiện một công cuộc tìm kiếm các lỗ hổng và rò rỉ thông tin gây nên chủ yếu đến từ phía lập trình và do cấu hình sai các trình chủ Web, các trình chủ ứng dụng khác nhau.
Kiểm thử bảo mật liên quan tới trách nhiệm từ nhiều phía Cụ thể thường nhắc tới đó là:
Nhà định nghĩa chính sách (policymaker), định nghĩa các yêu cầu bảo mật nhằm tăng độ tin cậy của người sử dụng và nhà sản xuất về bảo mật hệ thống.
Quản trị mạng, thiết kế và cài đặt các biện pháp bảo mật nhằm cung cấp bảo mật ở mức độ hoạt động
Lập trình viên, người chịu trách nhiệm kiểm thử hệ thống nhằm phát hiện các lỗi chức năng, tương tác cấu hình và khả năng thích ứng khi có liên quan đến vấn đề bảo mật (công việc này thường chỉ đạt ở mức ứng dụng và có thể ở mức hoạt động), phát hiện các vấn đề phát sinh đến từ phía lỗi thiết kế bảo mật
Các chuyên gia, nhà tư vấn bảo mật, giúp kiểm thử và duy trì các chương trình bảo mật cũng như xử lý các lỗ hổng bảo mật Những người này thường đóng vai trò là kẻ tấn công Họ thường là những người có nhiều kinh nghiệm và chịu trách nhiệm điều khiển các kiểm thử xâm nhập trước khi triển khai một hệ thống Đối với một số các đơn vị, vị trí này sẽ được thay thế bởi kiểm thử viên và lập trình viên khi không có đủ nguồn lực
2.2.3 Các loại hình kiểm thử bảo mật
2.2.3.1 Kiểm thử yêu cầu thiết kế
Mỗi hệ thống khi sinh ra đều được xây dựng dựa trên một tập hợp các yêu cầu Đôi khi những yêu cầu đưa ra chưa được trình bày một cách tường mình hoàn toàn, vì vậy nên cần thực hiện kiểm thử yêu cầu thiết kế để xác định một cách chính xác nhất rằng hệ thống đã đạt đúng yêu cầu đưa ra hay chưa
Phương pháp kiểm tra mức độ bảo mật của hệ thống thông qua mã nguồn xây dựng nên hệ thống đó Công việc này chủ yếu thực hiện kiểm tra về sự an toàn mã thuật toán sử dụng, xác định được nguy cơ rò rỉ thông tin khi chưa bắt hết các lỗi có thể xảy ra, nguy cơ lạm dụng và chiếm đoạt quyền kiểm soát thông qua mã nguồn
2.2.3.3 Kiểm thử thiết lập trình duyệt
Các thiết lập của một số trình duyệt có thể được cài đặt trong các trình duyệt cho phép giới hạn truy cập đến các nội dung internet có thể gây hại. Người sử dụng có thể chỉnh sửa các thiết lập này Ngoài ra, có một sự thay đổi lớn từ phía người dùng về khả năng làm chủ các thiết lập này Những người sử dụng Web ngày càng được đào tạo nhiều hơn cách sử dụng các thiết lập để bảo vệ chính họ Đóng vai trò phát triển Web hay ứng dụng Web, chúng ta không có quyền bắt người dùng chấp nhận các thiết lập mặc định.
Do đó, cần phải kiểm thử thiết lập trình duyệt
2.2.3.4 Kiểm thử tường lửa Đối với tường lửa, người kiểm thử không có nghĩa vụ kiểm tra hiệu quả cũng như các cấu hình của chúng Ở đây, kiểm thử tường lửa được đưa ra để thực hiện các công việc nhằm nhận biết các hiệu ứng về chức năng được tạo ra bởi sự chuyển đổi qua loại của dữ liệu qua các mạng khác nhau.
SQL Power Injector
SQL Power Injector là một ứng dụng được tạo ra trong Net 1.1 giúp các kiểm tra xâm nhập để tìm kiếm và khai thác tiêm SQL trên một trang web.
Hỗ trợ trên Windows, Unix và Linux hệ điều hành
SQL Server, Oracle, MySQL, Sybase / Adaptive Server và DB2 compliant
Tải tự động các thông số từ một hình thức hoặc một IFrame trên một trang web (GET hoặc POST)
Phát hiện và duyệt bộ khung
Lựa chọn mà tự động phát hiện ngôn ngữ của trang web
Phát hiện và thêm các tập tin cookie được sử dụng trong quá trình tải trang (Set-Cookie phát hiện)
Tìm tự động gửi trang (s) với phương pháp của nó (GET hoặc POST) được hiển thị trong một màu sắc khác nhau
Có thể tạo / chỉnh sửa / xóa nạp chuỗi và cookie thông số trực tiếp trong datagrids
So sánh các phản ứng đúng và sai của trang hoặc kết quả trong cookie
Phản ứng của SQL injection trong một trình duyệt tùy chỉnh
Có thể xem mã nguồn HTML của trang trở lại trong màu sắc theo ngữ cảnh HTML và tìm kiếm trong nó
các thông số điều chỉnh và cookie tiêm Fine
Có thể tham số kích thước của chiều dài và số lượng của các kết quả mong đợi để tối ưu hóa thời gian thực hiện bởi các ứng dụng để thực thi SQL injection
Tạo / chỉnh sửa các ký tự ASCII định sẵn để tối ưu hóa số SQL injection mù của các yêu cầu / tốc độ
Đa luồng (cấu hình lên đến 50)
Lựa chọn thay thế không gian bằng cách nhận xét trống / ** / chống IDS hoặc phát hiện bộ lọc
Tự động mã hóa ký tự đặc biệt trước khi gửi chúng
Tự động phát hiện lỗi SQL được xác định trước trong trang đáp ứng
Tự động phát hiện một từ được xác định trước hoặc câu trong trang đáp ứng
kết quả thời gian thực
Lưu và tải các phiên trong một tập tin XML
Tính năng tự động phát hiện sự khác biệt giữa các trang phản ứng của một câu trả lời tích cực với một trong những tiêu cực
Có thể tạo ra một danh sách phạm vi đó sẽ thay thế các biến (> @) bên trong một chuỗi SQL injection mù và tự động đóng chúng cho bạn
Tự động phát lại một loạt biến với một danh sách định sẵn từ một tập tin văn bản
Firefox plugin mà sẽ khởi động SQL Power Injector với tất cả các thông tin của trang web hiện tại với bối cảnh phiên của nó (thông số và cookies)
Hai công cụ tích hợp: Hex và Char encoder và MS SQL
Có thể chỉnh sửa Referer
Có thể chọn một User-Agent (hoặc thậm chí tạo ra một trong các tập tin XML User-Agent)
Có thể cấu hình các ứng dụng với cửa sổ cài đặt
Hỗ trợ các proxy cấu hình
Hình 3.4 Giao diện công cụ SQL Power Injector 1.2
LOIC
Low Orbit Ion Cannon (LOIC) là phần mềm mã nguồn mở hỗ trợ kiểm tra và tấn công thử nghiệm phương thức từ chối dịch vụ LOIC được viết bằng ngôn ngữ C# bởi công ty công nghệ có tên là Praetox Technologies Tuy nhiên sau đó được phát tán rộng rãi và hiện tại nó được biết đến như một phần mềm mã nguồn mở.
LOIC thực hiện một cuộc tấn công DoS theo kiểu flooding với gói tin TCP và UDP làm gián đoạn dịch vụ của máy chủ mục tiêu.
Một số tính năng chính:
Cho phép tùy chỉnh sử dụng 3 loại gói tin để tấn công khác nhau TCP, UDP, HTTP.
Sử dụng hình thức DoS, mở ra nhiều kết nối tới máy chủ mục tiêu, gửi liên tục các thông điệp.
Cho phép tùy chỉnh tốc độ và số thread để sinh gói tin phù hợp với test tải của website
Hình 3.5 Giao diện công cụ LOIC
Brup Suite
Brup Suite là một ứng dụng java dùng để kiểm thử xâm nhập ứng dụng web, Brup Suite bao gồm nhiều công cụ nhỏ (chức năng) khác nhau, chúng bổ trợ lẫn nhau trong quá trình kiểm thử.
Hình 3.6 Giao diện công cụ Brup Suite
Một số chức năng chính của Brup Suite:
Proxy server: dùng để bắt các yêu cầu http được gửi từ trình duyệt cũng như cầu trả lời từ phía server và có thể xem được nội dung gói tin đó
Repeater: giúp người dùng có thể thay đổi và phát lại các yêu cầu HTTP khác nhau gửi tới server, phân tích các phản hồi từ phía server khi gửi các yêu cầu khác nhau.
Web spider: Đây là chức năng tự động duyệt web để xác định cấu trúc (site map) của một trang web.
Decoder: giúp người dùng có thể decode hay encode dữ liệu theo các dạng khác nhau Ngoài ra burp suite còn có chức năng tính toán các hàm hash như MD5, SHA-1, SHA-256, SHA512.
Giới hiệu hệ thống vnedu.vn
VNEDU là một giải pháp xây dựng trên nền tảng web công nghệ điện toán đám mây nhằm tin học hoá toàn diện công tác quản lý, điều hành trong giáo dục, kết nối gia đình, nhà trường và xã hội, góp phần nâng cao chất lượng quản lý, chất lượng dạy và học.
VNEDU được thiết kế và xây dựng một cách tối ưu nhằm mang đến lợi ích và trải nghiệm tốt nhất cho người dùng
VNEDU hướng tới mục tiêu tin học hoá một cách toàn diện trong giáo dục, phục vụ nhu cầu quản lý cho các cấp quản lý giáo dục VNEDU có thể áp dụng cho các cấp học từ mầm non tới trung học phổ thông.
VNEDU có các chức năng đáp ứng yêu cầu, phục vụ quản lý giáo dục:Quản trị hệ thống, Danh mục dùng chung
Hình 4.7 Giao diện hệ thống vnEdu.vn
Dựa theo các chức năng chính của hệ thống, em lựa chọn ra 2 module để thực hiện kiểm thử bảo mật là: Quản lý học tập và Xét tốt nghiệp.
4.1.1 Module Quản lý học tập
Module Quản lý học tập gồm nhiều chức năng, trong đó có 4 chức năng quan trọng nhất là: Nhập sổ điểm, Nhập điểm danh, Nhập hạnh kiểm, Tổng kết điểm Dưới đây là mô tả cụ thể về 4 chức năng kể trên
4.1.1.1 Nhập sổ điểm a Thông tin chung:
Bảng 4.1 Đặc tả chức năng Nhập sổ điểm
Tên chức năng: Nhập sổ điểm
Tác nhân: Giáo viên bộ môn
Mục đích: Cập nhật điểm hoặc đánh giá cho các môn học mà giáo viên được phân công giảng dạy Điều kiện: Giáo viên đã được phân công giảng dạy và được cấp tài khoản sử dụng hệ thống. b Biểu đồ xử lý:
Hệ thống thực hiện Giáo viên bộ môn
Hệ thống hiển thị giao diện nhập sổ điểm
Chọn Lớp, môn và học kỳ được phân công giảng dạy
Yêu cầu kích hoạt chức năng
Nhập điểm và yêu cầu lưu
Nhập điểm từ file Excel
Xuất điểm của cả lớp ra file Excel
Thực hiện đọc và lưu điểm trong file Excel
Thực hiện xuất điểm ra file Excel
Hình 4.8 Biểu đồ xử lý chức năng Nhập sổ điểm c Chi tiết:
Từ giao diện chính của hệ thống, Người dùng là giáo viên bộ môn yêu cầu kích hoạt chức năng nhập sổ điểm Khi đó hệ thống hiển thị giao diện cho phép người sử dụng chọn lớp , môn và học kỳ mà mình được phân công giảng dạy để thực hiện nhập sổ diểm Sổ điểm được chia làm 2 loại:
Sổ điểm của môn học đánh giá bằng điểm.
Sổ điểm của môn học đánh giá bằng nhận xét.
Với môn học đánh giá bằng điểm: Hệ thống sẽ hiển thị giao diện bao gồm các thông tin sau:
Điểm kiểm tra thường xuyên theo các tháng của học kỳ đã chọn Trong đó học kỳ 1 được tính từ tháng thứ nhất đến hết tháng thứ 5, học kỳ 2 được tính từ tháng thứ 6 đến hết tháng thứ 9.
Điểm kiểm tra định kỳ
Học lực môn theo kỳ
Từ giao diện này người dùng là giáo viên bộ môn sẽ thực hiện nhập điểm các bài kiểm tra thường xuyên hoặc định kỳ Trong đó:
Điểm kiểm tra thường xuyên: được nhập ở các tháng và cách nhau bởi
Điểm kiểm tra định kỳ: Với 2 môn Toán và Tiếng Việt sẽ có 2 bài kiểm tra định kỳ (Kiểm tra giữa kỳ và Kiểm tra cuối kỳ), trong đó môn Tiếng Việt, điểm được chia làm 2 phần “ĐỌC” và “VIẾT”, điểm của môn này sẽ là trung bình cộng của 2 phần được làm tròn 0.5 lên 1 Với các môn học còn lại thì chỉ có bài kiểm tra cuối kỳ Điểm cuối kỳ sẽ được lấy làm điểm tổng kết môn cho cả kỳ học, và điểm kiểm tra cuối kỳ 2 sẽ được lấy làm điểm tổng kết môn cả năm học.
Với môn học đánh giá bằng nhận xét: Hệ thống sẽ hiển thị giao diện bao gồm các thông tin sau:
Họ và tên học sinh
Các nhận xét trong học kỳ và cả năm học
Từ giao diện này, Giáo viên bộ môn sẽ thực hiện đánh giá học sinh ứng với các nhận xét trong sổ “Theo dõi kết quả kết quả kiểm tra đánh giá học sinh” Kết quả học tập học kỳ của môn học này sẽ được tính tự động theo quy tắc trong sổ “Theo dõi kết quả kết quả kiểm tra đánh giá học sinh”.
Khối trung học cơ sở và trung học phổ thông
Với môn học đánh giá bằng điểm: Hệ thống sẽ hiển thị giao diện bao gồm các thông tin sau:
Họ và tên học sinh
Các con điểm kiểm tra thường xuyên hệ số 1 (Điểm miệng và Điểm kiểm tra 15 phút).
Các con điểm kiểm tra học kỳ hệ số 2 (Điểm kiểm tra 1 tiết).
Điểm kiểm tra học kỳ hệ số 3.
Từ giao diện này, giáo viên bộ môn thực hiện nhập điểm cho học sinh. Khi nào có điểm kiểm tra học kỳ, hệ thống sẽ tự động tính điểm trung bình học kỳ cho môn học của học sinh Và nếu có điểm kiểm tra học kỳ 2, hệ thống sẽ tự động tính điểm trung bình cả năm của môn học cho học sinh.
Với môn học đánh giá bằng nhận xét: Hệ thống sẽ hiển thị giao diện bao gồm các thông tin sau:
Họ và tên học sinh
Các đánh giá nhận xét thường xuyên (kiểm tra miệng hoặc 15 phút)
Các đánh giá nhận xét định kỳ (kiểm tra 1 tiết)
Đánh giá nhận xét kiểm tra học kỳ (kiểm tra học kỳ).
Từ giao diện này, giáo viên bộ môn thực hiện đánh giá nhận xét cho học sinh, nếu học sinh nào “ĐẠT” ở bài kiểm tra nào thì đánh dấu “Đ” ở bài thi đó, ngược lại “CHƯA ĐẠT” đánh dấu là “CĐ” Khi có nhận xét của bài kiểm tra học kỳ, hệ thống sẽ tự động tính kết quả học tập môn học của học sinh theo quy chế mới nhất của Bộ GD&ĐT. Ở tất cả các khối và môn học, giáo viên bộ môn đều có thể nhập điểm thông qua file Excel hoặc xuất điểm của các học sinh trong lớp ra file Excel.
Chức năng này cho phép bạn cập nhật điểm của môn mình phụ trách ứng với các lớp được phân công giảng dạy. Để thao tác với chức năng này, từ màn hình Desktop bạn thực hiện như sau: click vào Start/Quản lý nhà trường/Quản lý học tập/Nhập sổ điểm.Khi đó hệ thống sẽ hiển thị giao diện:
Hình 4.9 Giao diện Nhập sổ điểm Để nhập điểm cho học sinh, bạn chọn lớp cần nhập điểm, khi đó môn học bạn dạy sẽ tương ứng được hiển thị Tiếp theo bạn chọn học kỳ cần nhập điểm cho học sinh đó Đưa trỏ chuột vào ô tương ứng với loại điểm cần nhập cho học sinh và gõ số điểm muốn cho Sau khi nhập điểm xong, bạn click để hệ thống lưu điểm cho học sinh.
Chú ý: Bạn có thể nhập điểm thập phân nhanh bằng cách
VD: điểm 5.5 (năm điểm rưỡi) => nhập nhanh bằng cách gõ 2 lần số 5 liên tiếp.
Giao diện này còn cho phép bạn nhập/xuất điểm với định dạng fileExcel VD:
Hình 4.10 Giao diện Nhập/xuất dữ liệu
4.1.1.2 Nhập điểm danh a Thông tin chung
Bảng 4.2 Bảng đặc tả chức năng Nhập điểm danh
Tên chức năng Cập nhật điểm danh
Tác nhân Giáo viên chủ nhiệm
Mục đích Nhập điểm danh cho học sinh Điều kiện Đã phân công chủ nhiệm b Biểu đồ xử lý:
Giáo viên chủ nhiệm Hệ thống thực hiện
Xuất sổ điểm danh ra file Excel
Hiển thị giao diện điểm danh
Yêu cầu kích hoạt chức năng
Yêu cầu lưu thông tin
Thực hiện xuất dữ liệu ra file Excel
Tải danh sách lớp chủ nhiệm của giáo viên thuộc khối đã chọn
Thực hiện lưu thông tin điểm danh
Chọn lớp, tháng, năm cần cập nhật
Tải bảng điểm danh theo tháng và năm của lớp đã chọn
Nhập điểm danh cho học sinh
Hình 4.11 Biểu đồ xử lý chức năng nhập điểm danh c Chi tiết
Từ giao diện chính của hệ thống, Người dùng là Giáo viên chủ nhiệm chọn chức năng Cập nhật điểm danh Khi đó hệ thống hiển thị Sổ điểm danh.
Các thông tin hiển thị gồm: o Khối (có lớp chủ nhiệm của giáo viên đang đăng nhập) o Các lớp chủ nhiệm của giáo viên thuộc khối đã chọn o Tháng năm cần nhập điểm danh o Sổ điểm danh của lớp tương ứng
Từ giao diện này người dùng là Giáo viên chủ nhiệm có thể thực hiện các yêu cầu sau:
Quy trình kiểm thử bảo mật đề xuất và áp dụng
áp dụng 4.2.1 Quy trình kiểm thử bảo mật đề xuất
Trong các loại hình kiểm thử phần mềm, kiểm thử bảo mật được đưa vào diện kiểm thử phi chức năng, kiểm thử khám phá Vì vậy, hiện nay chưa có một quy trình khuôn mẫu nào để đánh giá về kiểm thử bảo mật Lý giải là do bảo mật là 1 yếu tố không thể theo bất cứ chuẩn nào, đối với từng hệ thống, từng ứng dụng phần mềm lại có một yêu cầu bảo mật riêng, phụ thuộc vào điều kiện thực tế
Bảo mật của mỗi hệ thống chỉ có thể đánh giá ở mức tương đối, rất khó để một hệ thống hay ứng dụng phần mềm nào đó có thể nói rằng: Đã đạt bảo mật một cách tuyệt đối Bởi lẽ đó, trong đồ án em đưa ra quy trình kiểm thử bảo mật đề xuất áp dụng trên chính hệ thống vnEdu.vn
Dựa vào mô hình bảo mật và ước tính khối lượng công việc thực hiện trong thời gian thực hiện đồ án, em xin đưa ra quy trình thực hiện kiểm thử đề xuất như sau:
Nghiên cứu tài liệu phân tích, yêu cầu thiết kế phân tích, yêu cầu thiết kế tài liệu phân tích, yêu cầu thiết kế hởi động
Test yêu cầu, thiết kế hệ thống
Test thiết lập trình duyệt
Tổng hợp kết quả Test
Kết thúc Báo cáo Test
Tổng hợp kết quả Test lần 2
Hình 4.23 Quy trình kiểm thử bảo mật
4.2.2 Áp dụng quy trình vào kiểm thử hệ thống
Thực hiện kiểm thử hệ thống
- Tài liệu được thiết kế để cho ra một kế hoạch kiểm thử 2 module: Quản lý học tập và Xét tốt nghiệp thuộc hệ thống trường học trực tuyến: vnEdu.vn
- Tài liệu làm rõ được mục tiêu, kế hoạch thực hiện, tiến độ thực hiện, kết quả kiểm thử và đề xuất khắc phục đối với bên phát triển đối với một số lỗi cần thiết
Dựa theo khối lượng, phạm vi thực hiện và mục tiêu đặt ra Testplan được xây dựng như sau; o Tổng thời gian thực hiện: 73 ngày
Đọc tài liệu và phân tích hệ thống: 13 ngày
Test case phân quyền: 18 ngày
Test case mã nguồn: 31 ngày
Thiết lập trình duyệt: 2 ngày
Test yêu cầu thiết kế: 19 ngày
Test thiết lập trình duyệt: 1 ngày
4.3.2 Thiết kế testcase và thực hiện test tool
4.3.2.1 Testcase yêu cầu thiết kế
Dựa theo mô hình bảo mật hệ thống áp dụng, testcase yêu cầu thiết kế được xây dựng dựa trên phân quyền của hệ thống Hệ thống áp dụng mô hình ma trận truy nhập một cách chặt chẽ, cụ thể: Admin là người có quyền thêm, sửa và thay đổi quyền của từng user thuộc hệ thống Vì vậy, testcase được thiết kế theo các quyền truy cập đến từng chức năng của các module
Cụ thể đối vứi từng module, testcase được thiết kế như sau:
Module Quản lý học tập
Bảng 4.24 Danh sách testcase yêu cầu thiết kế quản lý học tập
Mô tả Test case Kết quả dự kiến
SD - 01 Check Combobox chọn khối nhập điểm
Hiện đầy đủ các khối từ 1-12
SD - 02 Login user quyền Admin thực hiện nhập điểm
Hiện giao diện form nhập điểm và thao tác thành công
SD - 03 Login user Support03 với quyền Nhập điểm thuộc nhóm quyền A01
Hiện giao diện form nhập điểm và thao tác thành công
SD - 04 Login user huyenanhnguyenthi với nhóm quyền A02 thực thi quyền Thống kê báo cáo
User thực thi chức năng thống kê báo cáo kết quả học tập của từng lớp
SD - 05 Login user huyenanhnguyenthi với nhóm quyền A02 thực thi quyền Ủy quyền nhập điểm cho user khác
User ủy quyền nhập điểm cho user bất kỳ thuộc hệ thống để nhập điểm cho lớp/khối/ tất cả các môn
SD - 06 Login user quyền Admin Hiện giao diện form thực hiện nhập điểm nhập điểm nhưng không thao tác được
SD - 07 Login user Support03 với quyền Nhập điểm thuộc nhóm quyền A01
Hiện giao diện form nhập điểm nhưng khóa ô nhập điểm
SD - 08 Login user huyenanhnguyenthi với nhóm quyền A02 thực thi quyền Thống kê báo cáo
Chức năng thống kê báo cáo bị khóa, user không thao tác được
SD - 09 Login user huyenanhnguyenthi với nhóm quyền A02 thực thi quyền Ủy quyền nhập điểm cho user khác
Chức năng ủy quyền bị khóa, user không thao tác được
DD - 01 Login user Support04 với quyền Nhập nhập điểm danh nhóm quyền A01
Hiện giao diện form nhập điểm danh và thao tác thành công
DD - 02 Login user Support05 với quyền Thống kê báo cáo thuộc nhóm quyền A02
Hiện giao diện cho phép thống kê điểm danh của lớp được chọn
DD - 03 Login user huyenanhnguyenthi với quyền Nhập / xuất file thuộc nhóm quyền A02
Thực hiện được chức năng Nhập/ xuất file Exel
DD - 04 Login user Support04 với quyền Nhập nhập điểm danh nhóm quyền A01
Hiện giao diện form nhập điểm, nhưng không thao tác được
DD - 05 Login user Support05 với quyền Thống kê báo cáo
Chức năng thống kê điểm danh của lớp bị thuộc nhóm quyền A02 khóa
DD - 06 Login user huyenanhnguyenthi với quyền Nhập / xuất file thuộc nhóm quyền A02
Chức năng Nhập / xuất file bị khóa
HK - 01 Login user Support03 với quyền Nhập hạnh kiểm thuộc nhóm quyền A01
Hiện giao diện form nhập hạnh kiểm và thao tác thành công
HK - 02 Login user Support03 với quyền Nhập hạnh kiểm thuộc nhóm quyền A01
Hiện giao diện form nhập, thao tác không thành công, bảng hạnh kiểm khóa không cho phép người dùng nhập
HK - 03 Login user huyenanhnguyethi với quyền Thống kê báo cáo thuộc nhóm quyền A02
Thực hiện được chức năng Nhập/ xuất file Exel
HK - 04 Login user huyenanhnguyenthi với quyền Thống kê báo cáo thuộc nhóm quyền A02
Chức năng Thống kê bị khóa, user không thực thi được hành đồng Điểm tổng kết
TK - 01 Login user huyenanhnguyenthi với quyền Nhập hạnh kiểm cho học sinh tổng kết kết quả học tập
Người dùng thao tác thành công với cột Hạnh kiểm, các điểm được tính tổng kết
TK - 02 Login user huyenanhnguyenthi với quyền Nhập hạnh kiểm
Người dùng không thể thao tác. cho học sinh tổng kết kết quả học tập
TK - 03 Login user Support 05 với quyền Tính tổng kết
Người dùng thao tác thành công với tính tổng kết theo khối, theo lớp.
TK - 04 Login user Support 05 với quyền Tính tổng kết
Người dùng thao tác không thành công với tính tổng kết theo khối, theo lớp.
Bảng 4.25 Danh sách testcase yêu cầu thiết kế xét tốt nghiệp
Mô tả Test case Kết quả dự kiến
UT - 01 Login user huyenanhnguyenthi với quyền đặt diện ưu tiên và diện khuyến khích
Người dùng thao tác lựa chọn diện ưu tiên và diện khuyến khích cho từng học sinh đat đủ tiêu chuẩn
UT - 02 Login user huyenanhnguyenthi với quyền đặt diện ưu tiên và diện khuyến khích
Người dùng không thao tác lựa chọn diện ưu tiên và diện khuyến khích cho từng học sinh đat đủ tiêu chuẩn thành công
Xét tốt TN - 01 Login user Người dùng có thể nghiệp huyenanhnguyenthi với quyền xem xếp loại tốt nghiệp xem được toàn bộ kết quả tốt nghiệp của các học sinh
TN - 02 Login user huyenanhnguyenthi với quyền xem xếp loại tốt nghiệp
Người dùng không thể xem được toàn bộ kết quả tốt nghiệp của các học sinh
Module Quản lý học tập o Chức năng Nhập sổ điểm Bảng 4.26 Danh sách testcase mã nguồn chức năng nhập sổ điểm
Hàm Mã Test case Mô tả Test case Kết quả dự kiến getKhoiHo c($aAgrs) getKhoiHoc0 1
Lấy đc danh sách 12 khối học
Lấy đc danh sách 12 khối học getKhoiHoc0
Lấy đc danh sách ít hơn 12 khối học
Lấy đc danh sách 12 khối học getKhoiHoc03 $iCap = false Lấy đc danh sách 12 khối học
Lấy đc ds đủ 12 khối học getKhoiHoc04 $iCap = 1 Lấy đc danh sách 5 khối cấp 1
Lấy đc danh sách 5 khối cấp 1 getKhoiHoc05 $iCap = 2 Lấy đc danh sách 4 khối cấp 2
Lấy đc danh sách 4 khối cấp 2 getKhoiHoc06 $iCap = 3 Lấy đc danh sách 3 khối cấp 3
Lấy đc danh sách 3 khối cấp 3 getKhoiHo c($oTruon g = false) getKhoiHoc07 $Truong = false Lấy đc ds 12 khối
……… ……… ……… ……… o Chức năng Nhập điểm danh Bảng 4.27 Danh sách testcase mã nguồn chức năng nhập điểm danh
Hàm Mã Test case Mô tả Test case Kết quả dự kiến saveDie mdanh($ aAgrs) saveDiemdan h01
$iKhoi