Fuzzing để xác thực bảo mật SoC. Đổi mới trong xác minh

Nút nguồn: 1853830

Fuzzing là xác minh phần mềm, ngẫu nhiên hóa là xác minh phần cứng. Phương pháp tiếp cận fuzzing có thể cải thiện kiểm tra bảo mật phần cứng không? Paul Cunningham (GM, Verification tại Cadence), Raúl Camposano (Silicon Catalyst, doanh nhân, cựu CTO của Synopsys) và tôi tiếp tục loạt bài về các ý tưởng nghiên cứu. Như mọi khi, thông tin phản hồi luôn được hoan nghênh.

Fuzzing để xác thực bảo mật SoC

Sự đổi mới

Lựa chọn của tháng này là HyperFuzzing để xác thực bảo mật SoC. Các tác giả đã trình bày bài báo này tại ICCAD 2020. Họ đến từ IIT Kanpur.

Đây là một cách tiếp cận hấp dẫn để làm mờ, được điều chỉnh đặc biệt cho thiết kế SoC hiện đại. Nó được xây dựng trên siêu tài sản kiểm tra trong các mô phỏng động. Các siêu thuộc tính này lý do về các hành vi bộ dấu vết, một cách tiếp cận rất phù hợp để kiểm tra bảo mật. Các tác giả đưa ra ví dụ về kiểm tra luồng thông tin (dữ liệu đặc quyền không thể rò rỉ từ A đến B) và kiểm tra không can thiệp (các hành động đối nghịch không được can thiệp vào luồng tính toán). Bảo mật sau đó được kiểm tra bằng cách so sánh các gói dấu vết mô phỏng có và không có giả mạo.

Giả mạo trong cách tiếp cận này có thể mô hình hóa các loại lỗ hổng khác nhau cho các nguồn không đáng tin cậy. Bằng cách ngẫu nhiên hóa các hướng dẫn phần sụn, viết các hướng dẫn từ một thành phần vào NoC hoặc chuyển bit trong bộ nhớ. Các tác giả cũng đề xuất một số thước đo mức độ phù hợp mới. Chúng được thiết kế để hướng dẫn các lần lặp lại cách làm giả xung quanh các trường hợp bị ảnh hưởng nhiều nhất bởi các lần chạy giả mạo trước đó.

Testcase của họ là một SoC nhỏ mặc dù đại diện (chi tiết trong GitHub) chạy các bài kiểm tra phần sụn chống lại các khối mật mã, kiểm tra sự không can thiệp và các lỗ hổng khác. Họ cũng chạy khởi động an toàn với kiểm tra khối dữ liệu. Họ đã tìm thấy nhiều vi phạm bảo mật trong các khối tiền điện tử, ngoại trừ trường hợp khối bao gồm bảo vệ ECC.

Quan điểm của Paul

Xác minh bảo mật là một chủ đề quan trọng như vậy và có rất nhiều công việc đang diễn ra ở đây cả trong học thuật và công nghiệp. Bài báo này kết hợp độc đáo phạm vi bảo hiểm dựa trên đột biến ngẫu nhiên với “siêu đặc tính” trên các tập hợp dấu vết mô phỏng để tạo ra một giải pháp sáng tạo vừa có thể mở rộng vừa có hiệu quả trong việc chứng minh các lỗi bảo mật.

Một số thuộc tính bảo mật chỉ có thể được xác định chính thức trên một tập hợp các dấu vết mô phỏng. Ví dụ: “không can thiệp” có nghĩa là kẻ tấn công không thể can thiệp vào các tính toán được bảo vệ nhất định trong một thiết kế. Để chứng minh sự can thiệp, bạn cần so sánh hai dấu vết, giống hệt nhau về kích thích đầu vào ngoại trừ sự hiện diện của một số hành động của kẻ tấn công trong một dấu vết. Nếu bất kỳ tính toán được bảo vệ nào trong dấu vết bị tấn công khác với những tính toán trong dấu vết vàng, thì đã có sự can thiệp.

Các tác giả tạo ra hương vị ngôn ngữ đặc biệt của riêng họ cho các xác nhận trên nhiều dấu vết và sử dụng nó để hình thành các đặc tính bảo mật để không bị can thiệp và bảo mật. Họ xây dựng một quy trình tùy chỉnh để xáo trộn ngẫu nhiên các mô phỏng và kiểm tra các thuộc tính bảo mật của chúng giữa các mô phỏng bị giả mạo và không bị giả mạo. Thuật toán giả mạo ngẫu nhiên của họ cũng có một kinh nghiệm học tập dựa trên phạm vi bảo hiểm để hướng dẫn nó tìm ra các lỗi bảo mật hiệu quả hơn.

Ý tưởng về sự khẳng định qua nhiều mô phỏng là rất mạnh mẽ. Tôi tự hỏi liệu có thể mở rộng SystemVerilog một cách rõ ràng để hỗ trợ những loại xác nhận này hay không. Điều này có thể mở ra cánh cửa cho một số phần mở rộng gốc hấp dẫn cho các công cụ chính thức và mô phỏng thương mại. Một khả năng khác có thể là mở rộng Tiêu chuẩn Kích thích Di động (PSS) mới để bao gồm các xác nhận trải dài qua nhiều thử nghiệm được tạo.

Bài báo này là một bài đọc dễ dàng và thú vị, mặc dù tôi muốn biết thêm một số chi tiết về kết quả. Các tác giả tuyên bố giải pháp của họ tìm thấy các lỗ hổng bảo mật trong testcase SoC mã nguồn mở của họ nhưng không có chi tiết về các lỗ hổng này là gì hoặc cách tiếp cận của họ so với các phương pháp tiếp cận khác trong tài liệu có thể được áp dụng để tìm ra các lỗ hổng tương tự.

Quan điểm của Raúl

Đầu tiên tôi sẽ xem xét vấn đề này từ góc độ trưởng thành về công nghệ. Nói chung, tôi thích ý tưởng này, một cách tiếp cận rất thú vị để phân loại tính bảo mật trong một thiết kế. Điều đó nói rằng, mỗi thiết kế yêu cầu các nhà thiết kế cung cấp các bài kiểm tra hạt giống, trình giả mạo và thông số kỹ thuật bảo mật bằng một ngôn ngữ xác nhận mới. Đối với tôi, điều này hạn chế cách tiếp cận vững chắc đối với lĩnh vực học thuật hiện tại. Tuyệt vời cho luận văn và bài báo, chưa gần với thứ gì đó có thể tạo ra ứng dụng thương mại.

Tôi sẽ ngả mũ trước nhà đầu tư của mình cho thử thách thứ hai. An ninh là một chủ đề quan trọng, không có câu hỏi. Nhưng bên ngoài một số lĩnh vực mà chúng ta đã biết - ví dụ như hàng không vũ trụ, quốc phòng, hệ thống thanh toán và bộ xử lý / máy chủ. Nó vẫn không phải là một vấn đề tồn tại đối với hầu hết các OEM và nhà xây dựng thành phần. Họ sẵn sàng đánh dấu vào một ô nếu thường được mong đợi. Nhưng chỉ khi tác động đến chi phí hoặc thời gian đưa ra thị trường là nhỏ. Bởi vì khách hàng của họ nói chung sẽ không trả nhiều tiền hơn cho bảo mật. Điều này khiến bảo mật cho hầu hết các thị trường vẫn phụ thuộc vào IP chìa khóa trao tay, chẳng hạn như nguồn gốc phần cứng của sự tin cậy và các ứng dụng dễ sử dụng. Các giải pháp được đóng gói theo một trong những cách này sẽ có thể đầu tư được, nếu không thì không quá nhiều.

Quan điểm của tôi

Paul và Raúl đã đề cập hầu hết những gì tôi có thể đã đề xuất. Tôi thích ý tưởng của Paul về việc mở rộng SVA, ít nhất là để khuyến khích thử nghiệm với các siêu đặc tính. Điều này phải mở ra một lớp kiểm tra thú vị mới, dẫn đến cuối cùng là các phương pháp xác minh theo gói mới.

Chia sẻ bài đăng này qua: Nguồn: https://semiwiki.com/eda/299391-fuzzing-to-validate-soc-security-innovation-in-verification/

Dấu thời gian:

Thêm từ bánwiki