Bài viết

Tự động chọn hàm bị loại bỏ trong kiểm thử bản vá khi sử dụng Thực thi tượng trưng lược bớt

Từ khóakiểm thử bản vá bảo mậtthực thi tượng trưnlược bớt

Tóm tắt

Tóm tắt Kiểm thử bảo mật bản vá phần mềm cập nhật (Patch testing) được sử dụng khi trong phần mềm có một module thêm mới hoặc có module được chỉnh sửa. Nhiệm vụ của kiểm thử bản vá là đảm bảo phần mềm mới được cập nhật hoạt động mà không có bất kì lỗ hổng bảo mật nào xảy ra. Kiểm thử bảo mật bản vá đòi hỏi rất nhiều thời gian, công sức và yêu cầu người kiểm tra cần phải có kiến thức chuyên sâu về hệ thống. Trong những năm gần đây, Thực thi tượng trưng lược bớt (Chopped symbolic execution) đã được áp dụng thành công trong kiểm thử an toàn thông tin cho các phần mềm một cách tự động hoặc bán tự động. Sử dụng kỹ thuật Thực thi tượng trưng (Symbolic execution), phương pháp này cho phép người kiểm thử chỉ định các hàm, module “không cần thiết” để bỏ qua trong quá trình phân tích, do đó nó cho phép kiểm tra một module cụ thể mà không cần phải thực hiện Thực thi tượng trưng trên toàn bộ chương trình. Thách thức của phương pháp này là cần chuyên gia có hiểu biết sâu về phần mềm cần kiểm thử để chọn ra các hàm “không cần thiết”. Trong bài báo này, nhóm tác giả đề xuất một phương pháp mới để tự động chọn ra các hàm được loại trừ khi áp dụng Thực thi tượng trưng lược bớt. Kết quả cho thấy rằng phương pháp của nhóm tác giả có thể được áp dụng một cách hiệu quả hơn so với các thử nghiệm ban đầu của Chopper trong hầu hết các các trường hợp thử nghiệm.

Cách trích dẫn

Ninh Thái Phan, Nguyễn Việt Hùng (2023). Tự động chọn hàm bị loại bỏ trong kiểm thử bản vá khi sử dụng Thực thi tượng trưng lược bớt. Tạp chí Khoa học và Công nghệ trong lĩnh vực An toàn thông tin, 2(16), 24-30. https://doi.org/10.54654/isj.v1i16.918

Tài liệu tham khảo

  1. 1.. Cadar, C., Dunbar, D., Engler, D.: KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs. Trong: Proceedings of the 8th USENIX Symposium on Operating Systems Design and Implementation, OSDI’08, pp. 209–224. ACM, California (2008).
  2. 2.. Trabish, D., Mattavelli, A., Rinetzky, N., Cadar, C.: Chopped symbolic execution. Trong: Proceedings of the 40th International Conference on Software Engineering, ICSE 2018, pp. 350–360. ACM, New York (2018).
  3. 3.. Cadar, C., Ganesh, V., Pawlowski, P., Dill, D., Engler, D.: EXE: Automatically Generating Inputs of Death. Trong: Proceedings of the 13th ACM Conference on Computer and Communications Security, CCS’06, pp. 322–335. ACM, New York (2006).
  4. 4.. angr Homepage, http://angr.io, truy cập cuối vào 12/08/2021.
  5. 5.. BINSEC Homepage, https://binsec.github.io, truy cập cuối vào 12/08/2021.
  6. 6.. Marinescu, P.D., Cadar, C.: KATCH: High-Coverage Testing of Software Patches. Trong: Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering, ESEC/FSE 2013, pp. 235–245. ACM, New York (2013).
  7. 7.. Babic, D., Martignoni, L., McCamant, S., Song, D.: Statically-directed dynamic automated test generation. Trong: Proceedings of the 2011 International Symposium on Software Testing and Analysis, ISSTA’11, pp. 12–22. ACM, New York (2011).
  8. 8.. Godefoid, P., Levin, M.Y., Molnar, D.: SAGE: whitebox fuzzing for security testing. Communications of the ACM 55(3), 40-44 (2012).
  9. 9.. Chaudhuri, A., Foster, J.S.: Symbolic security analysis of ruby-on-rails web applications. Trong: Proceedings of the 17th ACM conference on Computer and communications security, CCS’10, pp. 585-594. ACM, New York (2010).
  10. 10.. Crameri, O., Knezevic, N., Kostic, D., Bianchini, R., Zwaenepoel, W.: Staged deployment in Mirage, anintegrated software upgrade testing and distribution system. Trong: Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles, SOSP’07, pp. 221-236. ACM, New York (2007).
  11. 11.. Gu, Z., Barr, E.T., Hamilton, D.J., Su, Z.: Has the bug really been fixed? Trong: Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering, ICSE’10, pp.55-64. ACM, New York (2010).
  12. 12.. Yin, Z., Yuan, D., Zhou, Y., Pasupathy, S., Bairavasundaram, L.: How do fixes become bugs? Trong: Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering, ESEC/FSE '11, pp. 26-36. ACM, New York (2011).
  13. 13.. git Homepage, https://git-scm.com, truy cập cuối vào 12/08/2021.
  14. 14.. GitHub introduce page, https://github.com/about, truy cập cuối vào 12/08/2021.
  15. 15.. GitLab introduce page, https://about.gitlab.com, truy cập cuối vào 12/08/2021.
  16. 16.. SourceForge introduce page, https://sourceforge.net/about, truy cập cuối vào 12/08/2021.
  17. 17.. Bitbucket Homepage, https://bitbucket.org, truy cập cuối vào 12/08/2021.
  18. 18.. opt - LLVM optimizer documentation, https://llvm.org/docs/CommandGuide/opt.html, truy cập cuối vào 12/08/2021.
  19. 19.. Wallace, D., Watson, A., Mccabe, T.: Structured Testing: A Testing Methodology Using the Cyclomatic Complexity Metric, NIST Special Publication 500- 235, National Institute of Standards and Technology, Gaithersburg (1996).
  20. 20.. LLVM bitcode documentation, https://llvm.org/docs/BitCodeFormat.html, truy cập cuối vào 12/08/2021.
  21. 21.. LLVM 3.4 documentation, https://releases.llvm.org/3.4/docs/, truy cập cuối vào 12/08/2021
  22. 22.. Website: CMake overview, https://cmake.org/overview, truy cập cuối vào 12/08/2021.
  23. 23.. STP Homepage, https://stp.github.io, truy cập cuối vào 12/08/2021.
  24. 24.. Cadar, C., Godefroid, P., Khurshid, S., Păsăreanu, C.S., Sen, K.: Symbolic execution for software testing in practice: preliminary assessment. Trong: Proceedings of the 33rd International Conference on Software Engineering, ICSE’11, pp. 1066–1071, ACM, New York (2011).

Bài viết liên quan

Tự động chọn hàm bị loại bỏ trong kiểm thử bản vá khi sử dụng Thực thi tượng trưng lược bớt | Tạp chí Khoa học và Công nghệ trong lĩnh vực An toàn thông tin