paper - Moneta Ex-Vivo GPU Driver Fuzzing by Recalling In-Vivo Execution States
正好要分享一篇论文,所以做一下翻译工作 摘要 GPU 称为现代计算基础设施中不可或缺的一部分。他们在大规模数据集上执行大量的并行任务,并且在 3D 渲染和常规目的并行编程方面有丰富的用户层可接触的 APIs。不幸的是,桥接 API 和 底层硬件 的 GPU 驱动体积正变得越来越庞大且复杂,许多 GPU 驱动暴露了大面积的攻击面并且有非常严重的安全风险。 经过验证,Fuzzing 是一种通过发现潜在漏洞从而缓解安全风险的自动化测试方法。然而,当应用到 GPU 驱动时,现有的 fuzzer 开销较大,并且因为依赖物理GPU从而导致规模性不佳。此外,它们的效果也不是很好,因为在生成输入事件时往往难以满足依赖性和时间上的限制要求。 我们提出了 Moneta,这是一种新的 ex-vivo 驱动程序 fuzzing 方法,可以有状态地、有效地大规模 fuzz GPU 驱动程序。核心思想是① 通过协同结合 snapshot-and-rehost 和 record-and-replay 与我们提出的 GPU 栈虚拟化和 introspection 技术,恢复...
blockchain - openzeppelin 源码阅读
就像做 pwn 要读 glibc 源码,做 blockchain 怎么能不分析 openzeppelin 呢 [1] ERC20ERC20 是以太坊上最基本的代币规范 openzeppelin ERC20 源码在这 以下是该合约的变量 123456mapping(address account => uint256) private _balances; // account 该 token 的余额// account 批准 spender 使用的余额,实际上花的还是 account 的 tokensmapping(address account => mapping(address spender => uint256)) private _allowances; uint256 private _totalSupply; // 该合约总共发行的 token 数string private _name; // 该 token 的 namestring private _symbol; // 简约版的 token...
blockchain - Uniswap V2
学习一下 Uniswap V2 [1] 前置知识[1-1] AMM(Automated Market Makers)一种去中心化的交易协议,用于在区块链网络中实现无需订单簿的资产交换。传统交易所通常依赖于买家和卖家通过订单簿来匹配交易,而AMM通过智能合约和算法自动确定资产的价格,从而进行交易。 AMM的基本原理是通过池子(Liquidity Pools)来提供流动性。流动性池通常由两种或更多种资产组成,并由流动性提供者(LP)存入这些资产。然后,AMM使用特定的算法(例如常见的x * y = k公式)来保持池子的平衡,并根据池中资产的相对比例来自动定价。这使得任何用户都可以与流动性池直接交换资产,而无需依赖订单簿。 例如,Uniswap、Sushiswap和Curve...
blockchain - All Your Tokens are Belong to Us Demystifying Address Verification Vulnerabilities in Solidity Smart Contracts论文阅读笔记
单一漏洞 + 污点分析做到顶会,暑假就想复现了结果拖到现在 年份:2024 [1] Abstract基于目前研究较少的address verification漏洞,本文用污点分析实现了的“轻量级”专属扫描工具AVVerifier,检查了数百万的合约,找到了数百个有该漏洞的合约,并将其部署在链上成为实时检测工具,并成功检测到了一次数十万美元的攻击 [2] Intro & Background[2-1] Ethreum Primer大概讲了一下现在区块链非常火,自从以太坊和智能合约出现后,DApps的各种应用层出不穷,比如闪电贷等。指出为了防止漏报带来的经济损失,能保证soundness的静态符号执行常常被用到(mythril) [2-2] Whitelist address verification Beosin. Two vulnerabilities in one function: The analysis of visor finance exploit. https://beosin.medium.com/two-vulnerabilities...
2024年终总结
...
Web - 网络安全概述
12.24网络安全期末,用这篇文章来梳理一下对相关知识的理解 这篇文章主要从TCP/IP五层模型的层次来比较宽泛地讲一些常见的网络攻击。众所周知,TCP/IP五层模型将网络架构分为物理层、数据链路层、网络层、运输层和应用层。针对物理层的攻击我不是很懂,因此不在本篇文章的描述范围内,而应用层出现的app漏洞和防御技术比较广泛,会用几章分别叙述。 每一章大概分为”协议-攻击方式-防御措施”三部分。常见攻击可以分为”DoS,投毒,劫持”,其中,劫持一般是劫持有状态的协议。 [1] 数据链路层(局域网)[1-1] 协议这部分讲述的协议不只是设计数据链路层的协议,而是涉及到局域网通信的协议。 由于物理媒介的不同,我们可以把网络分为有线网络和无线网络。无线网络涉及AP、信道等内容,不利于基础攻防技术的学习,因此本文主要基于有线网络进行讲述。根据IEEE 802.3 的规定,有线网络使用的数据传输策略是CSMA/CD(carrier sensation multiple access/collision...
Web - DNS Poisoning
记录一下这学期最难的一次网络安全实验,恰逢期末,之后回来填坑 [1] 虚拟机 virtualbox 配置如何便捷地 copy 虚拟机(直到写这篇 wp 才想起来可以 STFW,我最开始用的 vdi…还需要用 VBoxManage internalcommands sethduuid /path/to/your.vdi 重新解绑uuid) 由于此次打开的虚拟机较多,所以每个虚拟机内存只分配2GB即可 之后,把双向粘贴板和双向拖放打开,再把“显示 -> 屏幕”中扩展特性的“启用3D加速”打开(要不然会花屏) 之后再在“网络 -> 网卡1”栏目中,将连接方式改为“内部网络”,然后名称改为intnet0/1/2(这里根据自己需求来写,比如我配的权威DNS就是intnet1) 最后进入虚拟机中,在上方栏目的“设备”中点击安装增强功能,它会自动打开一个文件夹,在终端里运行autorun.sh即可自动安装,之后重启虚拟机就可以启用双向粘贴板和拖放了 [2] 虚拟机网络配置IP...