Mở đầu của phần này, luận án trình bày sơ lược về hệ thống phần mềm trên nền web, các nguy cơ có thể xảy ra với các phần mềm trên nền web. Ở mục kế tiếp, một số loại tấn công phổ biến hay xảy ra trên hệ thống web sẽ được trình bày. Tiếp theo, luận án sẽ trình bày một số kiến trúc, công nghệ được sử dụng trong phần mềm trên nền web. Cuối cùng, luận án cũng trình bày một số kỹ thuật và phương pháp đảm bảo chất lượng phần mềm trên nền web để sử dụng trong các phương pháp đề xuất.
Các ứng dụng trên nền web Các ứng dụng, hay các phần mềm trên nền Web là các chương trình được lưu trữ trên máy chủ từ xa và được phân phối qua Internet thông qua giao diện trình duyệt |62, 71]. So với các phần mềm truyền thống, các phần mềm nền Web có các đặc trưng như: e Khả năng truy cập từ mọi thiết bị có kết nối Internet: ứng dụng trên nền Web có thể truy cập trên bất kỳ thiết bị nào có kết nối Internet và trình duyệt Web. Người dùng không cần phải cài đặt ứng dụng trên máy tính hay thiết bị di động của họ. Các ứng dụng web ngày nay dự kiến sẽ khả dụng 24/7 từ mọi nơi trên thế giới và có thể sử dụng được từ hầu hết mọi thiết bị hoặc kích thước màn hình.
e Giao diện thân thiện và dễ sử dụng: ứng dụng Web thường có giao diện thân thiện va dễ sử dụng, giúp người dùng tương tac và sử dụng ứng dụng một cách dễ dàng. e Khả năng tương tác trực tiếp với người dùng: ứng dụng Web có thể tương tác trực tiếp với người dùng, cho phép họ nhập liệu, thực hiện tìm kiếm, lưu trữ dữ liệu và thực hiện các chức năng khác. e Khả năng kết nối với các dịch vụ bên ngoài: ứng dụng Web có thể kết nối 8 với các dịch vụ bên ngoài, cho phép người dùng sử dụng các tính năng khác như thanh toán trực tuyến, tìm kiếm thông tin, chia sẻ trên mạng xã hội và nhiều hơn nữa. e Khả năng cập nhật và phát triển dễ dàng: ứng dụng Web có khả năng cập nhật và phát triển dễ dàng, giúp cải thiện tính năng và tăng cường bảo mật cho ứng dụng.
e Bảo mật tốt hơn: Các ứng dụng Web cung cấp bảo mật tốt hơn cho người dùng bằng cách sử dụng các cơ chế bảo mật như chứng thực, phân quyền truy cập, mã hóa dữ liệu, kiểm tra đầu vào, xác thực hai yếu tố, quản lý phiên làm việc và các giải pháp chống tấn công mạng, v. Với các đặc trưng như trên, các ứng dụng Web có nhiều ưu điểm khiến nhiều người dùng lựa chọn sử dụng, bao gồm khả năng truy cập cùng một phiên bản của ứng dụng từ nhiều nền tang và trình duyệt khác nhau ma không cần phải cài đặt. Việc cập nhật cũng trở nên dễ dàng hơn vì ứng dụng web được cập nhật trực tuyến mà không cần phải cài đặt lại trên máy tính của người dùng. Ngoài ra, tính di động của ứng dụng Web cho phép người dùng truy cập từ bất kỳ đâu và bất kỳ khi nào trên thiết bị di động của họ, miễn là có kết nối Internet.
Việc phát triển và duy trì ứng dụng Web thường ít tốn kém hơn so với các ứng dụng truyền thống cài đặt trên máy tính, giúp tiết kiệm chi phí. Khả năng tùy chỉnh của ứng dụng Web cũng là một điểm cộng, vì nó có thể được tùy chỉnh để phù hợp với các nhu cầu cụ thể của doanh nghiệp hoặc người dùng. Cuối cùng, tính tiện lợi của ứng dụng web khiến người dùng không cần phải lo lắng về việc sao lưu hoặc đồng bộ dữ liệu, vi mọi thứ đều được lưu trữ trên đám may [68, 79]. Bên cạnh các ưu điểm kể trên, theo [68, 79, 13] các ứng dụng web cũng có những đặc điểm, tính chất sau: e Phụ thuộc vào mạng: Hệ thống chạy trên nền web phụ thuộc vào mạng internet, do đó độ trễ mạng, khả năng kết nối internet kém, tấn công mạng có thể làm cho hệ thống trở nên không ổn định.
e Bảo mật: Các hệ thống chạy trên nền web thường phải chứa thông tin nhạy cảm của người dùng và khách hàng, vì vậy bảo mật là một vấn đề quan trọng. Các lỗ hồng bảo mật có thể được khai thác bởi các kẻ tấn công để truy cập thông tin nhạy cảm hoặc tấn công hệ thống. e Da nền tảng: Các hệ thống chạy trên nền web phải hoạt động trên nhiều nền tảng và trình duyệt khác nhau, điều này đòi hỏi các nhà phát triển phải kiểm tra tính tương thích của hệ thống với các nền tảng và trình duyệt khác nhau. e Quản lý phiên: Hệ thống chạy trên nền web thường sử dụng quản lý phiên để giữ cho người dùng được xác thực khi truy cập vào hệ thống.
Nếu quản lý phiên không được cấu hình đúng, thì nó có thé gây ra lỗ hồng bảo mật. e Tốc độ phản hồi: Tốc độ phản hồi của hệ thống chạy trên nền web là một yếu tố quan trọng để đảm bảo rằng ứng dụng hoạt động mượt mà và không bị gián đoạn. e Cập nhật: Các hệ thống chạy trên nền web thường phải được cập nhật thường xuyên để đảm bảo tính bảo mật và tính năng của hệ thống. e Dé dàng bảo trì: Các hệ thống chạy trên nền web cần được thiết kế để dễ dàng bảo trì và cập nhật bởi các nhà quản trị hệ thống.
Do ứng dụng web chạy trên môi trường Internet, người dùng phải có kết nối Internet để truy cập. Tốc độ của web cũng thường ít được tối ưu tốt và có thể chậm hơn so với ứng dụng truyền thống, đặc biệt khi có quá nhiều người truy cập cùng lúc. Bảo mật dữ liệu cũng là một vấn đề đáng lo ngại. Do dữ liệu lưu trữ trên máy chủ nên hoàn toàn có thể bị truy cập trái phép.
Ngoài ra, ứng dụng web phải tương thích với nhiều nền tảng và trình duyệt khác nhau, làm cho quá trình phát triển và kiểm thử phức tạp hơn. Các thiết bị hoặc trình duyệt đời cũ hoặc ít phổ biến cũng có thể gây khó khăn trong việc sử dụng ứng dụng web. Để đánh giá chất lượng phần mềm trên nền web theo tiêu chuẩn ISO/IEC 9126/2001 [48] và theo [13, 71], các yếu tố liên quan bao gồm tính phù hợp về chức năng (Functionality), độ tin cậy (Reliability), tính sử dung (Usability), hiệu suất (Efficiency), khả năng bảo trì (Maintainability), tính di động (Portability) và bảo mật (Security). Đối với tính phù hợp về chức năng, phần mềm cần đáp ứng các yêu cầu khi được sử dụng trong các điều kiện quy định.
Độ tin cậy mô tả khả năng duy trì mức hiệu suất của phần mềm trong các điều kiện nhất định trong một khoảng thời gian cụ thể. Tính sử dụng được xác định bằng khả năng sử dụng phần mềm một cách hiệu quả và thuận tiện cho người dùng. Để đảm bảo tính sử dụng, phần mềm cần đáp ứng các yêu cầu về giao diện người dùng, bố cục, bảo mật, độ tin cậy và các yêu tố khác có thể ảnh hưởng đến trải nghiệm 10 sử dụng của người dùng. Hiệu suất phần mềm được đánh giá bằng cách xem xét mức độ hoạt động của phần mềm và lượng tài nguyên được sử dụng để đạt được mức độ hoạt động đó trong các điều kiện đã nêu.
Khả năng bảo trì xác định mức độ dễ dàng để thực hiện các sửa đổi, bảo trì và nâng cấp phần mềm. Tính di động chỉ định khả năng của phần mềm để được chuyển đổi từ một môi trường sang môi trường khác. Bảo mật trong phần mềm là mức độ bảo vệ thông tin, dữ liệu để người dùng hoặc các thực thể khác có mức độ truy cập dữ liệu phù hợp với sự cho phép của họ, nhằm ngăn chặn các vụ tấn công tiềm an. Do đó, các hệ thống phần mềm, đặc biệt là các hệ thống web, luôn tiềm an các nguy cơ an ninh bị tấn công và tài nguyên bị khai thác trái phép.
Một số loại tan công mạng phổ biến Chất lượng của phần mềm có ảnh hưởng trực tiếp hoặc/và gián tiếp đến người sử dụng. Bên cạnh những lợi ích mà phần mềm mang lại, thì cũng xuất hiện nhiều vấn đề vi phạm truy cập tài nguyên làm ảnh hưởng đến chất lượng phần mềm và người dùng trong hệ thống [45, ?, 99]. Một số sự cố an ninh phổ biến hay được nhắc đến là thất thoát hoặc làm sai lệch các thông tin riêng tư, quan trọng do hệ thống quản lý. Theo báo cáo về các mối đe dọa an ninh Internet năm 2019 của Symantec!, các kiểu tấn công và vi phạm an ninh ngày càng tinh vi [32, 85].
Một số kiểu tan công pho biến là Formjacking (một loại mã độc cài vào trang web để lấy cắp thông tin của khách hàng) hay Ransomware (ngăn chặn người dùng truy cập và sử dung tài nguyên của ho)’. Trong đó, chiếm đến 56% là các vụ tấn công web. Tấn công DoS, XSS là những tấn công mang phổ biến và gây ra những hậu quả nghiêm trọng. Theo [63, 91] một số nguy cơ có thể xuất hiện với các ứng dụng trên nền web bao gồm: e Tấn công DoS (Denial of Service): đây là loại tấn công mà kẻ tấn công cố gắng làm ngập lụt ứng dụng bằng cách gửi nhiều yêu cầu đến máy chủ web.
Điều này gây ra tình trạng quá tải cho máy chủ, từ đó dẫn đến gián đoạn dịch vụ hoặc đình chỉ hoạt động của ứng dụng.com /security-center/threat-report “https: //www.com/cybersecurity-101/cyberattacks /most-common-types-of- cyberattacks/ 11 e Tấn công mã độc: kẻ tấn công có thể tìm cách đưa mã độc vào hệ thống, ví dụ như phần mềm độc hại hoặc mã JavaScript độc hại, từ đó có thể lay cắp thông tin cá nhân hoặc kiểm soát máy chủ. e Tan công SQL Injection: kẻ tấn công có thể tận dụng lỗ hồng trong các ứng dụng web để chèn mã SQL vào các câu truy vấn. Nếu thành công, họ có thể đọc, sửa đổi hoặc xóa dit liệu trên cơ sở dữ liệu của ứng dụng. e Tấn công Cross-site scripting (XSS): tấn công nay cho phép kẻ tấn công chèn mã JavaScript độc hại vào các trang web được truyền tải đến người dùng, từ đó lấy cắp thông tin người dùng hoặc thực hiện các hành động không đúng đắn trên trang web.
e Phá hoại dịch vụ: kẻ tấn công có thể tấn công các cơ chế chứng thực, phiên làm việc của người dùng hoặc các kết nối mạng, từ đó gây ra tình trạng gián đoạn dịch vụ hoặc gây ra sự cố với ứng dụng.