#安全 #智能合约 #Soroban #审计员 #ink #实践 #检测器

bin+lib cargo-scout-audit

Scout 是一个可扩展的开源工具,旨在帮助 Ink! 和 Soroban 智能合约开发者和审计人员检测常见的安全问题和最佳实践的偏差

17 个版本

新版本 0.2.15 2024年8月6日
0.2.13 2024年7月23日
0.2.4 2024年3月20日
0.2.1 2023年9月18日
0.1.1 2023年6月30日

#1708 in 魔法豆

Download history 292/week @ 2024-04-18 195/week @ 2024-04-25 27/week @ 2024-05-02 22/week @ 2024-05-09 172/week @ 2024-05-16 12/week @ 2024-05-23 1/week @ 2024-05-30 12/week @ 2024-06-06 24/week @ 2024-06-13 4/week @ 2024-06-20 4/week @ 2024-06-27 8/week @ 2024-07-04 138/week @ 2024-07-11 119/week @ 2024-07-18 57/week @ 2024-07-25 253/week @ 2024-08-01

568 每月下载量

MIT 许可证

105KB
2.5K SLoC

Scout:安全分析工具

https://img.shields.io/badge/license-MIT-green

Scout in a Dark Forest

Scout 是一个可扩展的开源工具,旨在帮助 ink!Soroban 智能合约开发者和审计人员检测常见的安全问题和最佳实践的偏差。

这个工具将帮助开发者编写更安全、更健壮的智能合约。

我们对这个项目的兴趣来自于我们在手动审计方面的经验以及我们在其他区块链中使用的类似工具。为了提高覆盖率和精度,我们将继续在静态和动态分析技术方面进行研究。

快速开始

要快速开始,请确保您的计算机上已安装 Cargo。然后,通过运行以下命令安装 Scout 依赖项

cargo install cargo-dylint dylint-link

之后,通过以下命令安装 Scout

cargo install cargo-scout-audit

最后,安装 Scout 所需的附加 Rust 组件。

rustup component add rust-src --toolchain nightly-2023-12-16

要在您的项目上运行 Scout,导航到智能合约的根目录(其中包含 Cargo.toml 文件),并执行以下命令

cargo scout-audit

有关 Scout 的安装和使用更多信息,请参阅 ink!Soroban 的 Scout 文档。

输出格式

您可以选择最适合您需求的输出格式(HTML 或 Markdown)。要指定所需输出,运行以下命令

cargo scout-audit --output-format [html|md]

示例 HTML 报告

Scout HTML report.

Scout VS Code 扩展程序

使用 Scout VS Code 扩展程序将 Scout 添加到您的开发工作区,以便在保存文件时自动运行 Scout。

Scout VS Code extension.

⚠️ 为了确保扩展程序正常运行,请确保您打开包含您的智能合约的目录,而不是整个项目。例如,如果您的智能合约位于 myproject/contracts,并且您想使用 Scout VS Code 扩展程序工作在 token 合约上,请打开 myproject/contracts/token

💡 小贴士:要查看代码中的错误高亮显示,我们建议安装 Error Lens 扩展程序

👉 从 Visual Studio Marketplace 下载 Scout VS Code。

Scout GitHub Action

将 Scout 集成到您的 CI/CD 管道中!自动针对目标智能合约运行工具。这种即时反馈循环使开发人员能够在将代码合并到主分支之前快速解决问题,从而降低引入错误或漏洞的风险。

Scout 在拉取请求中的输出作为评论

Scout GitHub action output

👉 在 GitHub Marketplace 中找到 Scout GitHub Action。

测试

为了验证我们的工具,我们在 test-cases 文件夹中提供了一系列代码示例。

要运行集成测试,请导航到 apps/cargo-scout-audit 并运行

cargo test --all --all-features

要为特定测试用例运行测试,请在该特定测试用例文件夹上运行相同的命令(例如:test-cases/delegate-call/delegate-call-1/vulnerable-example)。

检测器

Scout 可用的检测器与 Scout 的 ink!Soroban 版本中可用的检测器相同。

致谢

Scout 是 CoinFabrik 的研究和开发团队开发的一个开源漏洞分析程序。

我们得到了 Web3 Foundation Grants Program、Aleph Zero Ecosystem Funding Program 和 Stellar Community Fund 的资助支持。

资助计划 描述
Web3 Foundation 概念验证:我们与布宜诺斯艾利斯大学的 软件工程基础和工具实验室(LaFHIS) 合作,建立检测器的分析技术和工具,以及创建初始的漏洞类别和代码示例列表。 查看资助 | 申请表

原型:我们使用用 Dylint 构建的 linting 检测器构建了一个可运行的原型,并扩展了漏洞类别、检测器和测试用例列表。 查看原型 | 申请表
Aleph Zero 我们通过多阶段方法改进了工具的准确性和检测器的数量。这包括对 Aleph Zero 生态系统中的项目进行手动漏洞分析,对领先项目进行全面测试,并提高其检测精度。
Stellar Community Fund 我们增加了对 Stellar 智能合约语言 Soroban 的支持。我们包含了各种输出格式,如 HTML 报告,提高了工具的精度和召回率,并添加了 GitHub Action 以在拉取请求中运行工具。

关于 CoinFabrik

我们 - CoinFabrik - 是一家专注于Web3的研究和开发公司,拥有强大的网络安全背景。成立于2014年,我们已参与超过180个与区块链相关的项目,包括基于EVM的项目以及针对Solana、Algorand、Stellar和Polkadot的项目。除了开发,我们还提供通过专门的内部高级网络安全专家团队进行的网络安全审计,目前他们正在Substrate、Solidity、Clarity、Rust、TEAL和Stellar Soroban上进行代码工作。

我们的团队拥有计算机科学和数学的学术背景,工作经验集中在网络安全和软件开发,包括学术出版物、转化为产品的专利和会议演讲。此外,我们与布宜诺斯艾利斯大学在知识转移和开源项目上保持着合作。

许可证

Scout是在MIT许可证下授权和分发的。如果您需要例外条款,请联系我们

依赖关系

~95MB
~2M SLoC