Mở đầu của chương là một số tính chất an ninh của phần mềm, chính sách điều khiển truy cập. Ở mục kế tiếp, luận án trình bày về một số mô hình phổ biến được sử dụng để biểu diễn chính sách điều khiển truy cập của các hệ thống phần mềm. Các phương pháp triển khai mã an ninh truy cập và một số kiến trúc thiết kế phần mềm trong JavaEE được mô tả trong Mục 2. Cuối cùng, Mục 2.4 giới thiệu một số phương pháp phân tích mã nguồn và biểu diễn chương trình phần mềm.
Chương 3 Phương pháp kiểm chứng chính sách RBAC triển khai theo phương pháp an ninh lập trình, đầu tiên của chương này sẽ trình bày các bước phân tích mã nguồn để xây dựng danh sách các quyền, đồ thị khai thác tài nguyên và ma trận kiểm soát truy cập theo vai trò của các ứng dụng web. Tiếp theo, hai thuật toán được đề xuất để xây dựng ma trận kiểm soát truy cập theo vai trò từ đồ thị khai thác tài nguyên và kiểm tra sự phù hợp của chính sách điều khiển truy cập trong ứng dụng web và đặc tả. Cuối cùng, một công cụ kiểm chứng tên 7 là CheckingRBAC được xây dựng theo phương pháp đề xuất và tiến hành thực nghiệm với hệ thống quản lý hồ sơ y tế. Chương 4 Phương pháp kiểm chứng chính sách RBAC kết hợp ràng buộc cấp quyền triển khai theo phương pháp an ninh khai báo tập trung đề xuất các phương pháp phân tích cơ sở dữ liệu và mã nguồn của ứng dụng web để phục vụ cho quá trình kiểm chứng phép gán vai trò - người dùng và phép gán vai trò - quyền trong chính sách điều khiển truy cập của hệ thống.
Một cây phân tích các quy tắc truy cập theo vai trò được giới thiệu để biểu diễn chính sách cấp quyền theo vai trò trong ứng dụng web. Sau đó, hai thuật toán được đề xuất để phát hiện những phép gán không được triển khai chính xác như trong đặc tả. Công cụ VeRA được phát triển để hỗ trợ quá trình kiểm chứng tự động theo phương pháp đề xuất. Một số thực nghiệm của công cụ đã được tiến hành với chính sách điều khiển truy cập của hệ thống quản lý hồ sơ y tế.
Chương 5 Phương pháp kiểm chứng chính sách điều khiển truy cập theo thuộc tính, chương này đề xuất phương pháp phân tích và xây dựng tập quy tắc truy cập từ mã nguồn của ứng dụng web. Sự phù hợp của chính sách truy cập trong ứng dụng web với đặc tả của nó được thực hiện thông qua các định nghĩa hình thức và thuật toán để kiểm tra tính bảo mật, tính toàn vẹn và tính sẵn sàng của hệ thống. Phương pháp đề xuất đã được triển khai thành công cụ kiểm chứng APVer và thực nghiệm với các kịch bản vi phạm tính bảo mật, tính toàn vẹn và tính sẵn sàng của hệ thống quản lý hồ sơ y tế. Cuối cùng là Chương 6 Kết luận.
Chương này tiến hành phân tích về các ưu, nhược điểm của từng phương pháp đã đề xuất và so sánh với một số phương pháp nghiên cứu liên quan. Từ đó, luận án thảo luận về các hướng nghiên cứu tiếp theo trong tương lai. 8 Chương 2 KIẾN THỨC CƠ SỞ Trong chương này, luận án sẽ trình bày về những kiến thức cơ sở được sử dụng trong các chương tiếp theo. Ở mục đầu tiên của chương, luận án trình bày về một số tính chất an ninh và chính sách điều khiển truy cập của các hệ thống phần mềm.
Tiếp theo, Mục 2.2 sẽ giới thiệu về một số mô hình biểu diễn chính sách điều khiển truy cập của các hệ thống phần mềm như điều khiển truy cập theo vai trò (RBAC), ngôn ngữ mô hình hóa chính sách an ninh thống nhất (SecureUML) và điều khiển truy cập theo thuộc tính (ABAC). Trong mục tiếp theo, luận án trình bày về phương pháp triển khai chính sách điều khiển truy cập trong JavaEE và một số kiến trúc được sử dụng trong quá trình thiết kế các hệ thống web. Cuối cùng, Mục 2.4 nêu một số phương pháp, công cụ hiện có được sử dụng trong phân tích chương trình và một số phương pháp biểu diễn chương trình. An ninh phần mềm Phần mềm đang được sử dụng rộng rãi trong nhiều lĩnh vực của đời sống xã hội, văn hóa, v.
Do đó, 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 [39, 60, 91, 99, 100, 102]. 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ý. Trong nghiên cứu [39], năm 2013, tập đoàn Target Corporation của Mỹ đã phát hiện ra thông tin thẻ ghi nợ và thẻ tín dụng cũng như thông tin địa chỉ, thư điện tử và số điện thoại của khoảng 70 triệu khách hàng đã bị xâm phạm.
Chi phí khắc phục vụ vi phạm này ước tính là 300 triệu đô la. Hay vi phạm dữ liệu của công ty Sony Pictures Entertainment đã ảnh hưởng đến hơn 3.000 máy tính khi bị phá hủy dữ liệu và phần mềm khởi động. Việc tin tặc xâm phạm mạng PlayStation của Sony vào năm 2011 đã ảnh hưởng đến khoảng 100 triệu tài khoản khách hàng và công ty phải đối mặt với chi phí khắc phục ít nhất là 9 171 triệu đô la. Thêm vào đó là vụ gian lận của Sony dẫn đến việc những bộ phim chưa được phát hành đã bị chia sẻ.
Cũng trong nghiên cứu này, với một số loại hình tổ chức cơ bản thì năm 2015 chứng kiến 24% vi phạm trong các công ty công nghệ, 19% trong các tổ chức y tế và 14% trong giải trí. Tương tự, năm 2016, những vi phạm từ các tổ chức được báo cáo là công nghệ (21%), y tế (17%), xã hội (8%) và chính phủ (8%). Theo Viện Tiêu chuẩn và Công nghệ Quốc gia của Mỹ (National Institute of Standards and Technology - NIST) năm 2012, các cuộc tấn công an ninh mạng đang gia tăng về số lượng, tính đa dạng, mức độ thiệt hại. Trong nghiên cứu của viện Ponemon1 năm 2017 với 419 công ty trong 13 quốc gia thì trung bình chi phí cho một vi phạm dữ liệu là 3,62 triệu đô la; 141 đô là là chi phí trung bình cho mỗi bản ghi bị mất hoặc bị đánh cắp; khả năng tái xảy ra vi phạm an ninh trong hai năm tiếp theo là 27,7%.
Theo báo cáo về các mối đe dọa an ninh Internet năm 2019 của Symantec2 , các kiểu tấn công và vi phạm an ninh ngày càng tinh vi. Một số loại phổ 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ử dụng tài nguyên của họ). Trong đó, chiếm đến 56% là các vụ tấn công web. Bên cạnh đó, các nghiên cứu [60, 91] cũng cho thấy số các vi phạm dữ liệu cá nhân trong lĩnh vực như y tế thống kê được là tăng thường xuyên.
Thực tế cho thấy, an ninh phần mềm đã trở thành một tiêu chí quan trọng trong việc đánh giá các hệ thống phần mềm trong giai đoạn hiện nay. Để hạn chế các vi phạm an ninh, các nhà phát triển thường phải xây dựng, triển khai và đảm bảo chính sách an ninh trong các sản phẩm phần mềm của họ nhằm đáp ứng các yêu cầu an ninh của khách hàng. Khi đó, sự phù hợp của chính sách an ninh được triển khai trong mỗi hệ thống ứng dụng với các yêu cầu của nó sẽ được thể hiện thông qua các tính chất an ninh của phần mềm. Một số tính chất an ninh của phần mềm Các tính chất an ninh của phần mềm đã được nhiều tổ chức, nhà nghiên cứu xem xét ở nhiều khía cạnh theo từng quan điểm và thời điểm nghiên cứu khác nhau.
Tuy nhiên, các tính chất an ninh phổ biến nhất được nhắc đến là bộ ba C-I-A (Confidentiality - Integrity - Availability) [20, 74]. Ba tính chất này xuất hiện sớm nhất năm 1972 trong tài liệu của James P.Anderson’s và được thảo 1 https://www.org/library/2017-cost-of-data-breach-study-united-states 2 https://www.com/security-center/threat-report 10 luận nhiều trong các nghiên cứu sau đó. Trong đó: tính bảo mật (confidentiality) đảm bảo thông tin chỉ có thể truy cập bởi người dùng có quyền; tính toàn vẹn (integrity) bảo vệ tính chính xác và đầy đủ của thông tin và chỉ được sửa đổi bởi người có thẩm quyền; tính sẵn sàng (availability) đảm bảo rằng người dùng hợp pháp được truy cập thông tin và các tài sản liên quan khi cần. Sau đó, ISO 7498-2 đã bổ sung thêm hai tính chất để phù hợp cho mạng truyền thông là tính xác thực (authentication - khả năng hệ thống xác nhận danh tính của người gửi) và tính chống chối bỏ/tính trách nhiệm (nonrepudiation/accountablility - người gửi không thể từ chối những gì họ đã thao tác trong hệ thống).
Tiếp theo đó, Bộ Quốc phòng Mỹ đã bổ sung tính có khả năng kiểm toán (auditability) để theo dõi tất cả các hành động liên quan đến tài nguyên. Bên cạnh đó, theo nghiên cứu của Mead và các đồng tác giả [65], một số các tính chất an ninh cốt lõi của phần mềm gồm tính bảo mật (confidentiality), tính toàn vẹn (integrity), tính sẵn sàng (availability), tính trách nhiệm (accountabil- ity) và tính chống chối bỏ (non-repudiation). Ngoài ra còn một số tính chất khác có ảnh hưởng gián tiếp đến vấn đề an ninh phần mềm. Tất cả các tính chất này được mô tả như trong Hình 2.1: Một số tính chất an ninh của phần mềm.
Tính bảo mật: phần mềm phải đảm bảo rằng, các tính năng của của phần mềm, tài sản do phần mềm quản lý và/hoặc nội dung của tài sản sẽ được che giấu hoặc ẩn bởi các thực thể trái phép nhưng phải sẵn sàng cho các thực thể hợp pháp. Điều này còn phải thích hợp cả với các trường hợp phần mềm nguồn mở. Tính toàn vẹn: Phần mềm và các tài sản mà nó quản lý phải có tính bền và phục hồi đối với các tấn công an ninh nhằm sửa đổi trái phép mã nguồn, 11 tài sản nó quản lý, cấu hình của các thực thể hợp pháp, hoặc bất cứ sửa đổi nào khác từ những thực thể bất hợp pháp. Những sửa đổi có thể gồm việc ghi đè, làm hỏng, giả mạo, phá hoại, chèn (gồm cả mã độc) hoặc xóa.
Tính toàn vẹn phải bảo toàn cả trong khi thực thi và phát triển phần mềm.