SherlockChain:基于高级AI实现的智能合约安全分析框架

关于SherlockChain

SherlockChain是一款功能强大的智能合约安全分析框架,该工具整合了Slither工具(一款针对智能合约的安全工具)的功能,并引入了高级人工智能模型,旨在辅助广大研究人员针对Solidity、Vyper和Plutus智能合约执行安全分析。

核心功能

1、全面的漏洞检测:SherlockChain的检测器可以识别各种不同类型的漏洞,包括重入漏洞和无保护升级等高危安全问题;

2、AI驱动的安全分析:集成的人工智能模型提高了漏洞检测的精准度,为开发人员提供了高价值的安全实践建议;

3、无缝集成:SherlockChain支持与流行的开发框架(如Hardhat、Foundry和Brownie)无缝集成,使其易于融入现有的工作流程;

4、直观的分析报告:SherlockChain可以生成包含有清晰解释和代码段的详细报告,能够帮助开发人员快速理解和解决已发现的安全问题;

5、自定义分析:框架提供了灵活的API,允许用户编写自定义分析和检测器,并根据实际需求对SherlockChain进行自定义开发;

6、持续性监控:我们可以将SherlockChain集成到自己的CI/CD管道中,为智能合约代码库提供持续监控和警报服务;

AI驱动功能

1、智能漏洞优先级确认:人工智能模型分析检测到的漏洞上下文和潜在影响,为开发人员提供一个需要解决的问题优先级列表;

2、自动修复建议:人工智能组件会提供漏洞修复和代码修改方案,以解决已识别的漏洞,加快修复过程;

3、主动安全审计:SherlockChain的人工智能模型会持续监控目标代码库,主动识别新出现的威胁并提供预警信号;

4、自然语言交互:用户可以使用自然语言与SherlockChain进行交互,从而查询工具、请求特定分析并收到详细响应;

工具安装

由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好最新版本的Python 3环境。

接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:

git clone https://github.com/0xQuantumCoder/SherlockChain.git

然后切换到项目目录中,执行安装脚本即可:

cd SherlockChain

pip install .

工具使用

1、漏洞检测:--detect和--exclude-detectors选项允许用户指定要执行的漏洞检测器,包括内置的和AI驱动的检测器;

2、分析报告:--report-format、--report-output和各种--report-*选项可以控制分析报告的形式,支持以不同格式生成报告,例如JSON、Markdown和SARIF等;

3、过滤器:--filter-*选项可以对报告的问题根据严重性、影响程度、可信度和其他标准进行过滤;

4、AI集成:--ai-*选项允许用户配置和控制SherlockChain的AI功能,例如优先考虑高影响漏洞、启用特定的人工智能检测器和管理人工智能模型配置等;

5、与开发框架的集成:--truffle和--truffle-build-directory选项允许我们将SherlockChain集成到Truffle之类的流行开发框架中;

6、杂项:提供了用于编译智能合约、枚举检测器和自定义分析过程的附加选项;

下列命令可以查看工具的帮助选项:

sherlockchain --help

执行上述命令后,即可查看到SherlockChain框架可提供的全部参数选项以及对应的描述信息:

usage: sherlockchain [-h] [--version] [--solc-remaps SOLC_REMAPS] [--solc-settings SOLC_SETTINGS]

                    [--solc-version SOLC_VERSION] [--truffle] [--truffle-build-directory TRUFFLE_BUILD_DIRECTORY]

                    [--truffle-config-file TRUFFLE_CONFIG_FILE] [--compile] [--list-detectors]

                    [--list-detectors-info] [--detect DETECTORS] [--exclude-detectors EXCLUDE_DETECTORS]

                    [--print-issues] [--json] [--markdown] [--sarif] [--text] [--zip] [--output OUTPUT]

                    [--filter-paths FILTER_PATHS] [--filter-paths-exclude FILTER_PATHS_EXCLUDE]

                    [--filter-contracts FILTER_CONTRACTS] [--filter-contracts-exclude FILTER_CONTRACTS_EXCLUDE]

                    [--filter-severity FILTER_SEVERITY] [--filter-impact FILTER_IMPACT]

                    [--filter-confidence FILTER_CONFIDENCE] [--filter-check-suicidal]

                    [--filter-check-upgradeable] [--filter-check-erc20] [--filter-check-erc721]

                    [--filter-check-reentrancy] [--filter-check-gas-optimization] [--filter-check-code-quality]

                    [--filter-check-best-practices] [--filter-check-ai-detectors] [--filter-check-all]

                    [--filter-check-none] [--check-all] [--check-suicidal] [--check-upgradeable]

                    [--check-erc20] [--check-erc721] [--check-reentrancy] [--check-gas-optimization]

                    [--check-code-quality] [--check-best-practices] [--check-ai-detectors] [--check-none]

                    [--check-all-detectors] [--check-all-severity] [--check-all-impact] [--check-all-confidence]

                    [--check-all-categories] [--check-all-filters] [--check-all-options] [--check-all]

                    [--check-none] [--report-format {json,markdown,sarif,text,zip}] [--report-output OUTPUT]

                    [--report-severity REPORT_SEVERITY] [--report-impact REPORT_IMPACT]

                    [--report-confidence REPORT_CONFIDENCE] [--report-check-suicidal]

                    [--report-check-upgradeable] [--report-check-erc20] [--report-check-erc721]

                    [--report-check-reentrancy] [--report-check-gas-optimization] [--report-check-code-quality]

                    [--report-check-best-practices] [--report-check-ai-detectors] [--report-check-all]

                    [--report-check-none] [--report-all] [--report-suicidal] [--report-upgradeable]

                    [--report-erc20] [--report-erc721] [--report-reentrancy] [--report-gas-optimization]

                    [--report-code-quality] [--report-best-practices] [--report-ai-detectors] [--report-none]

                    [--report-all-detectors] [--report-all-severity] [--report-all-impact]

                    [--report-all-confidence] [--report-all-categories] [--report-all-filters]

                    [--report-all-options] [--report-all] [--report-none] [--ai-enabled] [--ai-disabled]

                    [--ai-priority-high] [--ai-priority-medium] [--ai-priority-low] [--ai-priority-all]

                    [--ai-priority-none] [--ai-confidence-high] [--ai-confidence-medium] [--ai-confidence-low]

                    [--ai-confidence-all] [--ai-confidence-none] [--ai-detectors-all] [--ai-detectors-none]

                    [--ai-detectors-specific AI_DETECTORS_SPECIFIC] [--ai-detectors-exclude AI_DETECTORS_EXCLUDE]

                    [--ai-models-path AI_MODELS_PATH] [--ai-models-update] [--ai-models-download]

                    [--ai-models-list] [--ai-models-info] [--ai-models-version] [--ai-models-check]

                    [--ai-models-upgrade] [--ai-models-remove] [--ai-models-clean] [--ai-models-reset]

                    [--ai-models-backup] [--ai-models-restore] [--ai-models-export] [--ai-models-import]

                    [--ai-models-config AI_MODELS_CONFIG] [--ai-models-config-update] [--ai-models-config-reset]

                    [--ai-models-config-export] [--ai-models-config-import] [--ai-models-config-list]

                    [--ai-models-config-info] [--ai-models-config-version] [--ai-models-config-check]

                    [--ai-models-config-upgrade] [--ai-models-config-remove] [--ai-models-config-clean]

                    [--ai-models-config-reset] [--ai-models-config-backup] [--ai-models-config-restore]

                    [--ai-models-config-export] [--ai-models-config-import] [--ai-models-config-path AI_MODELS_CONFIG_PATH]

                    [--ai-models-config-file AI_MODELS_CONFIG_FILE] [--ai-models-config-url AI_MODELS_CONFIG_URL]

                    [--ai-models-config-name AI_MODELS_CONFIG_NAME] [--ai-models-config-description AI_MODELS_CONFIG_DESCRIPTION]

                    [--ai-models-config-version-major AI_MODELS_CONFIG_VERSION_MAJOR]

                    [--ai-models-config-version-minor AI_MODELS_CONFIG_VERSION_MINOR]

                    [--ai-models-config-version-patch AI_MODELS_CONFIG_VERSION_PATCH]

                    [--ai-models-config-author AI_MODELS_CONFIG_AUTHOR]

                    [--ai-models-config-license AI_MODELS_CONFIG_LICENSE]

                    [--ai-models-config-url-documentation AI_MODELS_CONFIG_URL_DOCUMENTATION]

                    [--ai-models-config-url-source AI_MODELS_CONFIG_URL_SOURCE]

                    [--ai-models-config-url-issues AI_MODELS_CONFIG_URL_ISSUES]

                    [--ai-models-config-url-changelog AI_MODELS_CONFIG_URL_CHANGELOG]

                    [--ai-models-config-url-support AI_MODELS_CONFIG_URL_SUPPORT]

                    [--ai-models-config-url-website AI_MODELS_CONFIG_URL_WEBSITE]

                    [--ai-models-config-url-logo AI_MODELS_CONFIG_URL_LOGO]

                    [--ai-models-config-url-icon AI_MODELS_CONFIG_URL_ICON]

                    [--ai-models-config-url-banner AI_MODELS_CONFIG_URL_BANNER]

                    [--ai-models-config-url-screenshot AI_MODELS_CONFIG_URL_SCREENSHOT]

                    [--ai-models-config-url-video AI_MODELS_CONFIG_URL_VIDEO]

                    [--ai-models-config-url-demo AI_MODELS_CONFIG_URL_DEMO]

                    [--ai-models-config-url-documentation-api AI_MODELS_CONFIG_URL_DOCUMENTATION_API]

                    [--ai-models-config-url-documentation-user AI_MODELS_CONFIG_URL_DOCUMENTATION_USER]

                    [--ai-models-config-url-documentation-developer AI_MODELS_CONFIG_URL_DOCUMENTATION_DEVELOPER]

                    [--ai-models-config-url-documentation-faq AI_MODELS_CONFIG_URL_DOCUMENTATION_FAQ]

                    [--ai-models-config-url-documentation-tutorial AI_MODELS_CONFIG_URL_DOCUMENTATION_TUTORIAL]

                    [--ai-models-config-url-documentation-guide AI_MODELS_CONFIG_URL_DOCUMENTATION_GUIDE]

                    [--ai-models-config-url-documentation-whitepaper AI_MODELS_CONFIG_URL_DOCUMENTATION_WHITEPAPER]

                    [--ai-models-config-url-documentation-roadmap AI_MODELS_CONFIG_URL_DOCUMENTATION_ROADMAP]

                    [--ai-models-config-url-documentation-blog AI_MODELS_CONFIG_URL_DOCUMENTATION_BLOG]

                    [--ai-models-config-url-documentation-community AI_MODELS_CONFIG_URL_DOCUMENTATION_COMMUNITY]

许可证协议

本项目的开发与发布遵循AGPL-3.0开源许可协议。

项目地址

SherlockChain:【GitHub传送门】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/750519.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

个人支付系统实现

基础首页: 订单: 智能售卡系统 基于webmanworkerman开发 禁用函数检查 使用这个脚本检查是否有禁用函数。命令行运行curl -Ss https://www.workerman.net/check | php 如果有提示Function 函数名 may be disabled. Please check disable_functions in …

显卡GTX与RTX有什么区别?哪一个更适合玩游戏?

游戏发烧友们可能对游戏显卡并不陌生,它直接关系到游戏画面的流畅度、细腻程度和真实感。在众多显卡品牌中,英伟达的GTX和RTX系列显卡因其出色的性能而备受关注。 一、GTX与RTX的区别 架构差异 GTX系列显卡采用的是Pascal架构,这是英伟达在…

Redis 7.x 系列【7】数据类型之列表(List)

有道无术,术尚可求,有术无道,止于术。 本系列Redis 版本 7.2.5 源码地址:https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 概述2. 常用命令2.1 RPUSH2.2 LPUSH2.3 LRANGE2.4 LINDEX2.6 LREM2.7 LLEN2.8 LPOP…

AGI 远不止 ChatGPT!一文入门 AGI 通识及应用开发_通向agi之路网站使用什么开发的网站

AI 大语言模型进入爆发阶段 2022 年 12 月 ChatGPT 突然爆火,原因是其表现出来的智能化已经远远突破了我们的常规认知。虽然其呈现在使用者面前仅仅只是一个简单的对话问答形式,但是它的内容化水平非常强大,甚至在某些方面已经超过人类了&am…

WordPress Dokan Pro插件 SQL注入漏洞复现(CVE-2024-3922)

0x01 产品简介 WordPress Dokan Pro插件是一款功能强大的多供应商电子商务市场解决方案,功能全面、易于使用的多供应商电子商务平台解决方案,适合各种规模的电商项目。允许管理员创建一个多卖家平台,卖家可以注册账户并在平台上创建自己的店铺,展示和销售自己的产品。提供…

python API自动化(基于Flask搭建MockServer)

接口Mock的理念与实战场景: 什么是Mock: 在接口中,"mock"通常是指创建一个模拟对象来代替实际的依赖项,以便进行单元测试。当一个类或方法依赖于其他类或组件时,为了测试这个类或方法的功能,我们可以使用模拟对象来替代…

k-NN 剪辑近邻法

本篇文章是博主在人工智能等领域学习时,用于个人学习、研究或者欣赏使用,并基于博主对人工智能等领域的一些理解而记录的学习摘录和笔记,若有不当和侵权之处,指出后将会立即改正,还望谅解。文章分类在AI学习笔记&#…

【分享】30秒在线自助制作电子证件照

近期由于自己需要制作电子证件照,所以在网上找在线制作电子证件照的网站,找了很多网站都是收费的,也下载了很多app制作,都是要收费的。最后,所以索性自己开发一个网站制作电子证件照。这里分享给需要的朋友。&#xff…

Jenkins教程-9-发送企业微信测试报告通知

上一小节我们学习了Jenkins上下游关联自动化测试任务的构建的方法,本小节我们讲解一下发送企业微信测试报告通知的方法。 1、自动化用例执行完后,使用pytest_terminal_summary钩子函数收集测试结果,存入本地status.txt文件中,供J…

点云可视化 .ply文件 | 方案汇总

前言 本文分析可视化点云.ply文件的几种方法,包括MeshLab软件、在线可视化点云.ply文件、通过PyntCloud库编程实现。 PLY是一种用于存储三维数据的文件格式,常用于点云数据和多边形网格。 被广泛应用于计算机图形学、3D扫描和3D打印等领域。PLY文件可…

React的Props、生命周期

Props 的只读性 “Props” 是 React 中用于传递数据给组件的一种机制,通常作为组件的参数进行传递。在 React 中,props 是只读的,意味着一旦将数据传递给组件的 props,组件就不能直接修改这些 props 的值。所以组件无论是使用函数…

【GD32】08 - IIC(以SHT20为例)

GD32中的IIC 今天来了解一下GD32中的硬件IIC,其实我个人是觉得软件IIC比较方便的,不过之前文章里用的都是软件IIC,今天就算是走出自己的舒适圈,我们来了解了解GD32中的硬件IIC。 我这里用的型号是GD32F407,不同型号的…

ComfyUI中运行Stable Audio Open,实现背景音乐、音效自由

🧨背景 stability在一个月之前默默的发布了Stable Audio Open 1.0的音频音效生成模型,不过好像影响力一般,也没有太多文章分享测试,而今天看comfyui作者的一篇介绍文档,他已经让comfyui默认支持了这个模型。 原开源地…

Linux 基于sqlite3数据库的学生管理系统

一、数据库 sqlite官网:www.sqlite.org 1.1 数据库的安装 离线安装: sudo dpkg -i sqlite3_3.22.0-1ubuntu0.4_amd64.deb //数据库软件 sudo dpkg -i libsqlite3-dev_3.22.0-1ubuntu0.4_amd64.deb //数据库的库函数 在线安装: sudo apt-get …

【Linux】Linux下使用套接字进行网络编程

🔥博客主页: 我要成为C领域大神🎥系列专栏:【C核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞👍收藏⭐评论✍️ 本博客致力于知识分享,与更多的人进行学习交流 ​ 用于网络应用开…

知识图谱——Neo4j数据库实战

数据与代码链接见文末 1.Neo4j数据库安装 JDK 安装:https://www.oracle.com/java/technologies/javase-downloads.html Neo4j 安装:https://neo4j.com/download-center/ 配置好 JDK 和 Neo4j 的环境变量

嵌入式Linux系统编程 — 4.1 字符串输入输出

目录 1 字符串输出 1.1 字符串输出函数简介 1.2 示例程序 2 字符串输入 2.1 字符串输入简介 2.2 示例程序 程序运行时,需打印信息至标准输出 stdout 设备 或标准错误 stderr设备(譬如屏幕),如调试信息、报错信息、中间产生的…

数据库课程知识点总结

数据库概述 数据库基本特点:数据结构化,数据独立性,数据冗余小,易扩充,统一管理和控制,永久存储,有组织,可共享 三级模式 模式:一个数据库只有一个模式,是对…

将idea项目代码部署到Linux系统中

目录 1. 将idea与虚拟机建立连接 2. 设置上传到虚拟机的目录 3.上传项目代码 1. 将idea与虚拟机建立连接 打开idea要上传的项目,找到Tools -> Development -> Configuration 设置一个连接的名称,我这里设置为centos 将Type设置为SFTP,点击SSH configuration 开始配…

数据库物理结构设计-定义数据库模式结构(概念模式、用户外模式、内模式)、定义数据库、物理结构设计策略

一、引言 如何基于具体的DBMS产品,为数据库逻辑结构设计的结果,即关系数据库模式,制定适合应用要求的物理结构 1、在设计数据库物理结构前,数据库设计人员首先 要充分了解所用的DBMS产品的功能、性能和特点,包括提供…