2025 OWASP十大智能合约漏洞

随着去中心化金融(DeFi)和区块链技术的不断发展,智能合约安全的重要性愈发凸显。在此背景下,开放网络应用安全项目(OWASP)发布了备受期待的《2025年智能合约十大漏洞》报告。

这份最新报告反映了不断演变的攻击向量,深入剖析了近年来的常见漏洞及缓解策略。旨在提升Web3开发者和安全团队的安全意识,为开发者、审计人员和安全专业人士提供宝贵的资源,以应对智能合约中最关键的安全漏洞。它还与其他OWASP项目,如《智能合约安全验证标准》(SCSVS)、《智能合约安全测试指南》(SCSTG)相互补充,为区块链生态系统的安全提供了全面的方法。

2023年至2025年的主要变化

2025年版榜单根据真实事件和新兴趋势更新了排名,并提供了新的见解。显著的变化包括新增了“价格预言机操纵”和“闪电贷攻击”两个独立类别,反映了这些漏洞在DeFi攻击中的日益普遍。

与此同时,早期版本中较为突出的“时间戳依赖”、“Gas 限制问题”等漏洞已被替换或整合到更广泛的类别中,如“逻辑错误”。

2025年OWASP十大漏洞详解

SC01:访问控制漏洞

访问控制漏洞仍然是智能合约中导致财务损失的主要原因,仅2024年就造成了9.532亿美元的损失。这些漏洞通常是由于权限检查未正确实施而产生的,以致未经授权的用户可以访问或修改关键功能或数据。一个典型案例是88mph的“函数初始化漏洞”,攻击者利用该漏洞重新初始化合约并获得管理员权限。

SC02:价格预言机操纵

操纵价格预言机(智能合约使用的外部数据源)可能会破坏协议的稳定性,导致财务损失或系统性故障。攻击者通常利用设计不良的预言机机制暂时抬高或压低资产价格。

SC03:逻辑错误

业务逻辑漏洞通常发生在合约未能正确执行其预期功能时。这些错误可能导致代币铸造错误、借贷协议缺陷或奖励分配错误。

SC04:输入验证缺失

未能验证用户输入可能使攻击者能够向智能合约注入恶意数据,导致意外行为或破坏合约逻辑。

SC05:重入攻击

重入攻击利用合约在完成自身状态更新之前调用外部函数的能力。这一经典漏洞在 2016 年的 DAO 攻击中被利用,导致价值 7000 万美元的以太坊被盗。

SC06:未检查的外部调用

当智能合约未能验证外部调用的成功时,可能会基于错误的交易结果假设继续执行,从而导致不一致或被恶意行为者利用。

SC07:闪电贷攻击

闪电贷允许用户在一个交易中无抵押借款,但可能被利用来操纵市场或耗尽流动性池。

SC08:整数溢出和下溢

当计算超出数据类型限制时,可能会发生算术错误,使攻击者能够操纵余额或绕过限制。

SC09:不安全的随机性

区块链的确定性特性使得生成安全的随机性具有挑战性。可预测的随机性可能会破坏依赖随机结果的功能,如抽奖或代币分配。

SC10:拒绝服务(DoS)攻击

DoS攻击针对智能合约中资源密集型功能,通过耗尽Gas限制或计算资源使其无法响应。

对现实世界的影响

OWASP 智能合约Top 10的编制基于《加密货币损失报告》等资源中记录的真实事件。仅2024年,就有149起事件被记录在案,造成了超过14.2亿美元的损失,其中访问控制漏洞(9.53亿美元)、逻辑错误(6300万美元)和重入攻击(3500万美元)是主要原因。这些数据凸显了在区块链开发中加强安全实践的紧迫性。

随着区块链技术的成熟,攻击者利用其漏洞的方法也在不断演变,这也强调了Web3项目增强自身抵御潜在漏洞能力的重要性。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

55.【5】BUUCTF WEB NCTF2019 sqli

进入靶场 输入admin 123 过滤的这么严格??? 过滤很严格,此时要么爆破,要么扫描 直接扫描,得到robots.txt 访问后又得到hint.txt 继续访问 图片内容如下 $black_list "/limit|by|substr|mid|,|admi…

map和set的使用(一)详解

文章目录 序列式容器和关联式容器map和set的介绍set构造和迭代器遍历和insertfinderaseswapclearcountlower_bound和upper_boundmultiset和set的对比 set的二个题目题目解析算法原理代码介绍一个找差集的算法同步算法题目解析算法原理代码 map构造遍历initiaizer_list 序列式容…

初始SpringBoot:详解特性和结构

??JAVA码农探花: ?? 推荐专栏:《SSM笔记》《SpringBoot笔记》 ??学无止境,不骄不躁,知行合一 目录 前言 一、SpringBoot项目结构 1.启动类的位置 2.pom文件 start parent 打包 二、依赖管理特性 三、自动配置特性…

服务器日志自动上传到阿里云OSS备份

背景 公司服务器磁盘空间有限,只能存近15天日志,但是有时需要查看几个月前的日志,需要将服务器日志定时备份到某个地方,需要查询的时候有地方可查。 针对这个问题,想到3个解决方法: 1、买一个配置比较低…

【HarmonyOS NEXT】华为分享-碰一碰开发分享

关键词:鸿蒙、碰一碰、systemShare、harmonyShare、Share Kit 华为分享新推出碰一碰分享,支持用户通过手机碰一碰发起跨端分享,可实现传输图片、共享wifi等。我们只需调用系统 api 传入所需参数拉起对应分享卡片模板即可,无需对 U…

C语言——文件操作

目录 前言 一什么是文件 1程序文件 2数据文件 3文件名 二文件的打开与关闭 1文件指针 2fopen 3fclose 三文件的读与写 1文件的顺序读写 1.1fputc fgetc 1.2fputs fgets 1.3fprintf fscanf 1.4fwrite fread 1.5文本文件和二进制文件 2文件的任意读写 1fseek …

亚博microros小车-原生ubuntu支持系列:1 键盘控制

背景:电脑配置不太行,我在ubuntu再运行vmware,里面运行亚博官方的虚拟机镜像ubuntu,系统很卡。基本上8G内存给打满了。还是想把亚博官方的代码迁移出来,之前售后就说除了官方镜像虚拟机,需要自己摸索迁移。…

基于Redis实现短信验证码登录

目录 1 基于Session实现短信验证码登录 2 配置登录拦截器 3 配置完拦截器还需将自定义拦截器添加到SpringMVC的拦截器列表中 才能生效 4 Session集群共享问题 5 基于Redis实现短信验证码登录 6 Hash 结构与 String 结构类型的比较 7 Redis替代Session需要考虑的问题 8 …

Golang Gin系列-4:Gin Framework入门教程

在本章中,我们将深入研究Gin,一个强大的Go语言web框架。我们将揭示制作一个简单的Gin应用程序的过程,揭示处理路由和请求的复杂性。此外,我们将探索基本中间件的实现,揭示精确定义路由和路由参数的技术。此外&#xff…

Asp.Net Core 8.0 使用 Serilog 按日志级别写入日志文件的两种方式

1、所需的Nuget包 本文项目的版本是.NET 8.0,如果使用其它版本安装适配版本即可。 Serilog.AspNetCore(8.0.2) Serilog.Sinks.File(5.0.0) Serilog.Expressions(5.0.0) 2、两种配置方式 2.1 代码形式(Program.cs) 在Program.cs文件中&am…

STM32+W5500+以太网应用开发+003_TCP服务器添加OLED(u8g2)显示状态

STM32W5500以太网应用开发003_TCP服务器添加OLED(u8g2)显示状态 实验效果3-TCP服务器OLED1 拷贝显示驱动代码1.1 拷贝源代码1.2 将源代码添加到工程1.3 修改代码优化等级1.4 添加头文件路径1.5 修改STM32CubeMX工程 2 修改源代码2.1 添加头文件2.2 main函…

【深度学习项目】语义分割-DeepLab网络(DeepLabV3介绍、基于Pytorch实现DeepLabV3网络)

文章目录 介绍深度学习语义分割的关键特点主要架构和技术数据集和评价指标总结 DeepLabDeepLab 的核心技术DeepLab 的发展历史DeepLab V3网络结构获取多尺度信息架构Cascade ModelASPP ModelMulti-GridPytorch官方实现的DeepLab V3该项目主要是来自pytorch官方torchvision模块中…

Golang Gin系列-5:数据模型和数据库

在这篇Gin教程的博客中,我们将探索如何将模型和数据库与Gin框架无缝集成,使你能够构建健壮且可扩展的web应用程序。通过利用流行的库并遵循最佳实践,你将学习如何定义模型、建立数据库连接、执行CRUD操作以及确保基于gin的项目中的数据完整性…

高并发内存池_各层级的框架设计及ThreadCache(线程缓存)申请内存设计

一、高并发内存池框架设计 高并发池框架设计,特别是针对内存池的设计,需要充分考虑多线程环境下: 性能问题锁竞争问题内存碎片问题 高并发内存池的整体框架设计旨在提高内存的申请和释放效率,减少锁竞争和内存碎片。 高并发内存…

如何在idea中搭建SpringBoot项目

如何在idea中快速搭建SpringBoot项目 目录 如何在idea中快速搭建SpringBoot项目前言一、环境准备:搭建前的精心布局 1.下载jdk (1)安装JDK:(2)运行安装程序:(3)设置安装…

elementUI Table组件实现表头吸顶效果

需求描述 当 table 内容过多的时候,页面上滑滚动,表头的信息也会随着被遮挡,无法将表头信息和表格内容对应起来,需要进行表头吸顶 开始编码💪 环境:vue2.6、element UI step1: 给el-table__h…

[Qt]系统相关-多线程、线程安全问题以及线程的同步机制

目录 一、Qt多线程编程 1.介绍 2.多线程的操作 线程的创建 QThread的常用API 使用案例 3.Qt线程的使用场景 二、线程安全问题 1.互斥锁 介绍 使用案例 2.读写锁 三、线程的同步 1.条件变量 2.信号量 一、Qt多线程编程 1.介绍 Qt中的多线程的底层原理和注意事项…

Linux Bash 中使用重定向运算符的 5 种方法

注:机翻,未校。 Five ways to use redirect operators in Bash Posted: January 22, 2021 | by Damon Garn Redirect operators are a basic but essential part of working at the Bash command line. See how to safely redirect input and output t…

【Linux】环境变量

🔥个人主页🔥:孤寂大仙V 🌈收录专栏🌈:Linux 🌹往期回顾🌹:【Linux】进程优先级与进程切换 🔖流水不争,争的是滔滔不 一、环境变量的定义二、命令…

Spring MVC:设置响应

目录 引言 1. 返回静态页面 1.1 Spring 默认扫描路径 1.2 RestController 1.2.1 Controller > 返回页面 1.2.2 ResponseBody 2. 返回 HTML 2.1 RequestMapping 2.1.1 produces(修改响应的 Content-Type) 2.1.2 其他属性 3. 返回 JSON 4. 设置状态码 4.1 HttpSer…