Компания Hacken, ведущий поставщик решений в области кибербезопасности, представляет инструмент для создания покрытия кода для протоколов на основе WebAssembly (Wasm). Это помогает гарантировать, что вся кодовая база будет протестирована, что в конечном итоге укрепит ее безопасность и надежность. Для сравнения, Wasm является вторым по популярности вариантом смарт-контрактов после виртуальной машины Ethereum (EVM), но он не предлагает утилиту покрытия нативного кода
Автоматическое тестирование является краеугольным камнем разработки программного обеспечения. Однако эта гарантия является полной только в том случае, если она дополнена надежными утилитами Code Coverage, такими как Istanbul.js, LLVM-cov или Solidity-Coverage. Тестирование программного обеспечения без анализа покрытия кода не позволяет убедиться в тщательности экспертизы кода. Отсутствие уверенности в степени изменения кода может привести к тому, что критически важные компоненты не будут протестированы, что повысит риск необнаруженных дефектов. Несмотря на то, что он доступен для проектов на основе Ethereum, протоколы на основе Wasm не имеют возможности проверить тестовое покрытие. Это может привести к критическим пробелам в безопасности даже после соблюдения всех рекомендаций по безопасности.
Решение, разработанное ведущими исследователями Hacken Ноа Йелихом (Noah Jelich) и Бартошем Барвиковски (Bartosz Barwikovski), представляет собой библиотеку Rust с открытым исходным кодом под названием Wasmkov, которая использует низкоуровневую функциональность LLVM, преодолевая ограничения в текущей поддержке компиляции Wasm. В результате получился мощный инструмент, который позволяет измерять покрытие непосредственно на целевом объекте, устраняя расхождения между хост-средой и целевой средой.
Решение уже интегрировано в Radix eco, что позволяет всем проектам, построенным на Radix, использовать измерение покрытия кода. Следующим протоколом, в который будет интегрирован Wasmkov, будет NEAR. Проекты, построенные на других протоколах на основе Wasm, могут настроить Wasmcov вручную, следуя документации. Библиотеки и рекомендации по настройке доступны в репозитории Hackens на Github
«В нынешнем отраслевом ландшафте покрытие кода WASM ограничено типичными целями компиляции, а не конкретными средами установки. Вы можете запускать тесты в реальной среде выполнения, но для проверки их покрытия требуется ручная громоздкая работа, которая потенциально может привести к отсутствующим уязвимостям. Мы представляем более надежные инструменты для Wasm, стремясь оптимизировать и обезопасить процесс».
— Ной Джелич (Noah Jelich), один из создателей Wasmcov и исследователь безопасности Hacken
Решение Хакена готово трансформировать ландшафт тестирования кода для проектов на основе WebAssembly, позволяя разработчикам автоматизировать покрытие тестами, обеспечивать качество кода и гарантировать совместимость с конкретными целевыми конфигурациями