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

news2024/12/22 17:22:14

关于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传送门】

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CentOS安装ntp时间同步服务

CentOS安装ntp时间同步服务 安装ntp 检查服务器是否安装ntp: rpm -q ntp安装ntp: yum install -y ntp服务端配置 配置文件路径:/etc/ntp.conf 设置ntp为开机启动 systemctl enable ntpd查看ntp开机启动状态 enabled:开启, disabled:关闭 …

国际产业园双创孵化空间点亮创业梦想

国际数字影像产业园的双创孵化空间旨在打造一个集创意、技术、资金、市场等资源于一体的综合孵化平台,为初创企业和创新项目提供从创意到产品化、从初创到成长的全方位支持。 主要功能与服务 1、孵化服务:为初创企业提供办公场地、基础设施、技术支持等…

navicat Premium发布lite免费版本了

Navicat Premium发布lite免费版本了,下面是完整功能对比链接 Navicat Premium 功能列表 | Navicat 免费版本下载链接如下: Navicat | 免费下载 Navicat Premium Lite 开发功能完全够用,点赞。 dbeaver该如何应对。

幻兽帕鲁Palworld樱花版本服务器一键开服联机

1、登录服务器(百度莱卡云) 1.1、第一次购买服务器会安装游戏端,大约5分钟左右,如果长时间处于安装状态请联系客服 2、在启动中调整游戏参数 2.1、重启服务器,等待running出现,或者运行时间变为灰色&#x…

MySQL高级-索引-使用规则-前缀索引

文章目录 1、前缀索引2、前缀长度3、查询表数据4、查询表的记录总数5、计算并返回具有电子邮件地址(email)的用户的数量6、从tb_user表中计算并返回具有不同电子邮件地址的用户的数量7、计算唯一电子邮件地址(email)的比例相对于表…

为什么要本地化您的多媒体内容?

当我们访问网站、应用程序和社交媒体时,体验不再局限于陈旧的文本和静态图像。现代处理能力和连接速度提高了快速加载视频、音频和动画的可能性。 这一切都提供了更具沉浸感和互动性的用户体验。多媒体是数字营销中最有效的内容之一,因为它对用户更具吸…

优思学院|工厂的部门架构管理与精益生产

工厂内有不同部门,各部门之间必须协调合作才能发挥整体功能。工厂最主要的部分是制造产品的现场,这里安装了生产工具,还有操作员进行加工或生产制造。 制造时使用的材料或零组件,需要对外采购。对于加工组装型的工厂,…

单片机+DS18B20温度控制程序仿真与原理图PCB文件 可设上下限

资料下载地址:单片机DS18B20温度控制程序仿真与原理图PCB文件 可设上下限 目录 1、项目介绍 2、实物图 ​3、电路原理图 ​4、仿真原理图 ​5、部分代码 1、项目介绍 基于51单片机温度控制,使用18b20来做温度传感器,四位共阳数码管显…

python中类的继承详解

面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展 (1)在类的继承中,存在父类跟子类,子类可以继…

【pytorch09】数学运算

1.数学操作 add/minus/multiply/dividematmulpowsqrt/rsqrtround 2.加减乘除 加法 矩阵乘法 torch.mm 只适用于2d torch.matmul 要分清楚是矩阵元素相乘,还是矩阵相乘 例子 x一共有4张照片,每张照片打平成784的向量,希望降维得到[4,51…

如何在线上快速定位bug(干货)

想必有许多人都想我刚进公司一样不会快速定位线上bug吧,不会快速定位bug会大大降低我们的开发效率,随之而来的就是工作质量下降、业绩下滑。 我总结了一些我常用的线上定位技巧,希望能帮助到大家! 我这里以使用阿里云日志分析作…

什么是有效的电子签名?PDF电子签名怎样具备法律效力?

电子签名逐渐成为商务文书和法律文件中不可或缺的一部分。《电子签名法》自2005年4月1日起施行,这一立法是中国信息化法律的重要里程碑,为电子签名应用奠定了法律基础。电子签名不仅仅是一种技术手段,更是一种法律认可的签名形式。那么究竟什…

聚类模型的算法性能评价

一、概述 作为机器学习领域的重要内容之一,聚类模型在许多方面能够发挥举足轻重的作用。所谓聚类,就是通过一定的技术方法将一堆数据样本依照其特性划分为不同的簇类,使得同一个簇内的样本有着更相近的属性。依不同的实现策略,聚类…

章十九、JavaVUE —— 框架、指令、声明周期、Vue-cli、组件路由、Element

目录 一、 框架 ● vue.js 框架 ● 特点 ● Vue 安装 二、 第一个vue程序 ● 创建项目 ​编辑 ● 导入 vue.js ● 创建vue对象,设置属性,使用模版渲染到页面 介绍 — Vue.js (vuejs.org) 三、 vue指令 ● v-text ● v-html ● v-…

pytest测试框架pytest-order插件自定义用例执行顺序

pytest提供了丰富的插件来扩展其功能,本章介绍插件pytest-order,用于自定义pytest测试用例的执行顺序。pytest-order是插件pytest-ordering的一个分支,但是pytest-ordering已经不再维护了,建议大家直接使用pytest-order。 官方文…

MySQL周内训参照4、触发器-插入-修改-删除

触发器 1、用户购买商品时,要求库存表中的库存数量自动修改 详细示例 delimiter $$ create trigger stock_change after -- 事件触发在 下订单之后 insert -- 监视插入事件 on stock -- 监视 order订单表 for each row begin update stock set stockstock-new.st…

【LeetCode】七、树、堆、图

文章目录 1、树结构2、二叉树3、二叉树的遍历4、堆结构(Heap)5、堆化6、图 1、树结构 节点、根节点、叶子节点: 高度、深度、层三者的示意图: 2、二叉树 相比其他树,二叉树即每个节点最多两个孩子(两个分…

Java集合实例

一、什么是Java集合实例: 指的是在 Java 程序中创建和使用的集合对象,这些对象用于存储和操作数据。Java 集合框架提供了一系列的接口和实现类,用于管理不同类型的数据集合。 二、Java集合的主要实例类型: 1. List(列…

音视频入门基础:H.264专题(8)——H.264官方文档的描述符

音视频入门基础:H.264专题系列文章: 音视频入门基础:H.264专题(1)——H.264官方文档下载 音视频入门基础:H.264专题(2)——使用FFmpeg命令生成H.264裸流文件 音视频入门基础&…

平方根的三种求法(袖珍计算器算法,二分查找,牛顿迭代)

一、袖珍计算器 袖珍计算器方法主要运用到了我们高数上所学的关于e底数转化的思想&#xff0c;即 一种用指数函数 exp⁡ 和对数函数 ln⁡ 代替平方根函数的方法 : 1、exp函数&#xff1a; exp是 C 标准库 <math.h> 中的一个函数&#xff0c;用于计算 e 的 x 次幂&…