tác giả:
(1) Amit Seal Ami, Khoa Khoa học Máy tính, William & Mary Williamsburg, Virginia, Hoa Kỳ và tác giả này đã đóng góp như nhau cho bài báo này ([email protected]);
(2) Syed Yusuf Ahmed, Viện Công nghệ Thông tin, Đại học Dhaka Dhaka, Bangladesh, và tác giả này đã đóng góp ngang nhau cho bài báo này ([email protected]);
(3) Radowan Mahmud Redoy, Viện Công nghệ Thông tin, Đại học Dhaka Dhaka, Bangladesh, và tác giả này đã đóng góp như nhau cho bài báo này ([email protected]);
(4) Nathan Cooper, Khoa Khoa học Máy tính, William & Mary Williamsburg, Virginia, Hoa Kỳ ([email protected]);
(5) Kaushal Kafle, Khoa Khoa học Máy tính, William & Mary Williamsburg, Virginia, Hoa Kỳ ([email protected]);
(6) Kevin Moran, Khoa Khoa học Máy tính, Đại học Central Florida Orlando, Florida, Hoa Kỳ ([email protected]);
(7) Denys Poshyvanyk, Khoa Khoa học Máy tính, William & Mary Williamsburg, Virginia, Hoa Kỳ ([email protected]);
(8) Adwait Nadkarni, Khoa Khoa học Máy tính, William & Mary Williamsburg, Virginia, Hoa Kỳ ([email protected]).
6 Công việc trong tương lai và Kết luận, Lời cảm ơn và Tài liệu tham khảo
Mặc dù các kỹ sư phần mềm đang áp dụng một cách lạc quan các công cụ phát hiện lạm dụng crypto-API (hoặc các công cụ phát hiện tiền điện tử) trong chu kỳ phát triển phần mềm của họ, động lực này phải đi kèm với sự hiểu biết chặt chẽ về hiệu quả của các công cụ phát hiện tiền điện tử trong việc phát hiện các hành vi lạm dụng cryptoAPI trong thực tế. Bài viết demo này trình bày chi tiết kỹ thuật và các kịch bản sử dụng công cụ của chúng tôi, cụ thể là Phân tích đột biến để đánh giá các trình phát hiện lạm dụng API tiền điện tử tĩnh (MASC). Chúng tôi đã phát triển 12 toán tử đột biến dựa trên cách sử dụng, có thể khái quát hóa và ba phạm vi đột biến, đó là Phạm vi chính, Phạm vi tương tự và Phạm vi toàn diện, có thể được sử dụng để khởi tạo rõ ràng các biến thể có thể biên dịch của các trường hợp lạm dụng API tiền điện tử. Bằng cách sử dụng MASC, chúng tôi đã đánh giá 9 công cụ phát hiện mật mã chính và phát hiện ra 19 lỗ hổng duy nhất, không có giấy tờ. Chúng tôi đã thiết kế MASC để có thể cấu hình và thân thiện với người dùng; người dùng có thể định cấu hình các tham số để thay đổi bản chất của các đột biến được tạo. Hơn nữa, MASC đi kèm với cả Giao diện dòng lệnh và giao diện người dùng dựa trên Web, giúp nó trở nên thiết thực cho người dùng ở các cấp độ chuyên môn khác nhau.
Mã: https://github.com/Secure-Platforms-Lab-WM/MASC
Các kỹ sư phần mềm đã dựa vào công cụ phát hiện mật mã trong nhiều thập kỷ để đảm bảo sử dụng chính xác các API mật mã trong phần mềm và dịch vụ mà họ tạo, phát triển và duy trì [6]. Các bộ dò tìm mật mã như vậy rất phổ biến trong công nghệ phần mềm, vì chúng được tích hợp vào IDE (ví dụ: plugin CogniCrypt cho Eclipse IDE [8]), bộ thử nghiệm của các tổ chức như Oracle Corporation [9, 17] và để Tích hợp liên tục/Triển khai liên tục (CI). /CD) đường ống [12, 18]. Ngoài ra, các nhà cung cấp dịch vụ lưu trữ như GitHub đang chính thức cung cấp các công cụ phát hiện mật mã như Sáng kiến quét mã GitHub [10]. Nói cách khác, tính bảo mật của phần mềm và dịch vụ ngày càng phụ thuộc nhiều hơn vào các công cụ phát hiện mật mã. Tuy nhiên, chúng tôi đã dựa vào các điểm chuẩn được quản lý thủ công để đánh giá hiệu suất của các máy dò tiền điện tử, các điểm chuẩn như vậy được cho là không đầy đủ, không chính xác và không thực tế để duy trì [16]. Do đó, việc xác định tính hiệu quả của bộ dò mã từ góc độ tập trung vào bảo mật đòi hỏi một kỹ thuật đánh giá đáng tin cậy và đang phát triển, có thể mở rộng quy mô theo khối lượng và tính đa dạng của API mật mã cũng như các kiểu lạm dụng khác nhau.
Chúng tôi đã ngữ cảnh hóa các kỹ thuật kiểm tra đột biến để tạo ra Phân tích đột biến nhằm đánh giá khung phát hiện lạm dụng API tiền điện tử tĩnh (MASC). Trong quá trình triển khai nguyên mẫu ban đầu của chúng tôi về MASC [3], nó đã tận dụng nội bộ 12 toán tử đột biến dựa trên cách sử dụng, có thể khái quát hóa để khởi tạo các đột biến của các trường hợp lạm dụng API tiền điện tử cho Java. Các toán tử đột biến được thiết kế dựa trên các nguyên tắc thiết kế của Kiến trúc mật mã Java (JCA) [11] và mô hình mối đe dọa bao gồm những người dùng có kỹ năng và ý định khác nhau (Phần 4.1). MASC đưa vào các trường hợp lạm dụng đột biến này trong các ứng dụng dựa trên Java hoặc Android ở ba phạm vi đột biến (vị trí chèn), cụ thể là Phạm vi tương tự (mở rộng từ MDroid+ [13, 14]), Phạm vi toàn diện (mở rộng từ 𝜇SE [4, 5, 7]) và Phạm vi chính được phát triển độc lập, do đó tạo ra các ứng dụng bị đột biến có chứa hành vi lạm dụng API tiền điện tử. Chúng tôi đã chứng minh tính thực tiễn của việc triển khai nguyên mẫu MASC bằng cách đánh giá 9 công cụ dò tìm mật mã từ ngành công nghiệp và học viện, đồng thời phát hiện ra 19 lỗ hổng chưa được ghi chép trước đây, chưa xác định làm ảnh hưởng đến tính đúng đắn trong phạm vi của các công cụ dò tìm mật mã. Chi tiết đầy đủ về phương pháp luận của MASC, các cân nhắc về thiết kế, đánh giá các công cụ phát hiện mật mã dẫn đến việc tìm ra các lỗ hổng mới, tác động thực tế của các lỗ hổng được tìm thấy trong các ứng dụng nguồn mở (do đó, khả năng ứng dụng của các toán tử đột biến) và thảo luận về các phát hiện có sẵn trong tài liệu tài liệu nghiên cứu ban đầu [3].
Trong bài viết này, chúng tôi trình bày cách triển khai hoàn thiện khung MASC, tập trung vào khả năng mở rộng, dễ sử dụng và khả năng bảo trì cho các bên liên quan của công cụ phát hiện mật mã, chẳng hạn như nhà nghiên cứu bảo mật, nhà phát triển và người dùng. Nói rõ hơn, nhờ kiến trúc plug-in mới được phát triển, người dùng MASC giờ đây có thể tạo toán tử đột biến của riêng mình để có thể dễ dàng cắm vào MASC mà không cần đi sâu vào cơ sở mã hiện có (11𝐾+ dòng mã nguồn). Hơn nữa, trong khi việc triển khai nguyên mẫu ban đầu của MASC liên quan đến việc đánh giá bán tự động các máy dò mật mã, chúng tôi đã tự động hóa quy trình làm việc của MASC bằng cách tận dụng đầu ra được định dạng SARIF [15] trên thực tế của các máy dò mật mã. Hơn nữa, chúng tôi đã tạo một giao diện người dùng dựa trên web cho việc triển khai MASC để người dùng giảm bớt rào cản gia nhập. Cuối cùng, chúng tôi đã cơ cấu lại và tái cấu trúc cơ sở mã nguồn mở của MASC để tăng khả năng bảo trì và mở rộng của MASC, điều này sẽ giúp cả nhà phát triển và những người đam mê nguồn mở của MASC đóng góp và cải tiến trong tương lai dễ dàng hơn. Với những bổ sung và cải tiến này, chúng tôi hy vọng rằng việc triển khai MASC nguồn mở hiện tại sẽ được sử dụng để tìm ra các lỗ hổng và do đó giúp cải thiện các trình phát hiện tiền điện tử hiện có.
Đóng góp : Chúng tôi trình bày MASC, một khung thân thiện với người dùng, tận dụng các kỹ thuật kiểm tra đột biến để đánh giá các công cụ phát hiện mật mã, với các chi tiết về kỹ thuật cơ bản, các cân nhắc về thiết kế và các cải tiến. Các tính năng chính, mới của MASC như sau: Đánh giá tự động các trình phát hiện mật mã: MASC có thể được sử dụng để đánh giá các trình phát hiện mật mã trong quy trình làm việc tự động từ đầu đến cuối trong Phạm vi chính.
Đánh giá có thể tùy chỉnh của trình phát hiện tiền điện tử: Người dùng có thể tùy chỉnh đánh giá của trình phát hiện tiền điện tử bằng cách chỉ định toán tử đột biến để tạo các trường hợp lạm dụng API tiền điện tử.
Kiến trúc phần bổ trợ dành cho người vận hành tùy chỉnh : MASC giúp các nhà nghiên cứu, nhà phát triển và người dùng bảo mật bắt tay ngay vào việc đánh giá các trình phát hiện mật mã bằng cách tạo các toán tử đột biến tùy chỉnh của riêng họ mà có thể được cắm trực tiếp vào Phạm vi chính mà không yêu cầu họ phải tìm hiểu và hiểu về các chi tiết nội bộ của MASC.
Giao diện người dùng thân thiện với người dùng dành cho người dùng cuối : Ngoài việc nâng cao giao diện dòng lệnh của quá trình triển khai nguyên mẫu ban đầu, chúng tôi tạo và giới thiệu giao diện người dùng dựa trên web, nguồn mở cho người dùng cuối có thể chạy cục bộ. Giao diện người dùng chứa giao diện chơi-thử-học bổ sung, Phòng thí nghiệm MASC, nơi các bên liên quan có thể tương tác với các toán tử đột biến và có thể tìm hiểu về cách thay đổi việc lạm dụng API tiền điện tử.
Tính sẵn có của công cụ và dữ liệu: Việc triển khai nguyên mẫu của khung MASC, các tập lệnh và kết quả đánh giá các trình phát hiện mật mã,
như được mô tả trong bài báo gốc [3], có sẵn trong MASC Artifact [1]. Hơn nữa, cơ sở mã hóa của việc triển khai MASC hoàn thiện, được duy trì tích cực có sẵn riêng biệt với các tài liệu và ví dụ mở rộng [2].
Bài viết này có sẵn trên arxiv theo giấy phép CC BY-NC-SA 4.0 DEED.