Учёные из швейцарского технологического института ETH Zurich разработали новый фаззер для выявления ошибок в чипах RISC-V и с его помощью обнаружили более трех десятков недостатков.
Фаззинг (Fuzzing) – это техника, при которой на программное или аппаратное обеспечение посылаются случайные входные данные, чтобы увидеть его реакцию. Техника широко используется для выявления ошибок в коде или архитектурных недостатков устройств. Однако существующие инструменты фаззинга для процессоров имеют определённые ограничения.
Аспиранты ETH Zurich, Флавиен Солт и Катарина Сизай-Сейц, а также ассистент профессора Кавех Разави, назвали свой проект “Cascade”. Отличие Cascade от других инструментов заключается в применении техники, называемой асимметричным предварительным моделированием ISA.
Основная идея заключается в использовании симулятора ISA для создания программы, в которой поток управления и поток данных взаимосвязаны таким образом, что программа всегда завершается корректно на правильно работающем процессоре.
При применении к шести актуальным процессорам RISC-V Cascade обнаружил 37 новых ошибок в пяти из этих шести дизайнов. Ошибки могут привести к утечке информации, отказу в обслуживании и другим последствиям.
Учёные из ETH Zurich утверждают, что по сравнению с другими инструментами, такими как TheHuzz и DifuzzRTL, Cascade обеспечивает аналогичное покрытие, но в 28-97 раз быстрее.
Разави отметил, что RISC-V хорошо работает с Cascade из-за его простоты. RISC-V – это простая архитектура, и эта простота позволила создать инструмент, который охватывает большую часть функций, предоставляемых ISA.
В завершении Разави добавил: “Создание чего-то подобного Cascade для более сложной архитектуры, такой как x86, потребует гораздо больше инженерных усилий. Но, я думаю, это стоит попробовать сделать”.