Cos(余弦)😶‍🌫️ Profile picture
Founder of @SlowMist_Team. Creator of https://t.co/tFCQExsAlL // 分身一号/捉虫大师/救火运动员/灾备 https://t.co/bMGdsBlwmk
Jun 20, 2023 8 tweets 3 min read
既然有朋友问如何入门 Web3 安全(尤其是智能合约安全),我简单列点当下觉得还不错的资源吧。牢记下:这玩意,最重要的是实战,是需要你一天到晚长期在这个领域积累,才可能有些成就。另外,兴趣一定是最大的驱动力,三天打鱼两天撒网,那不叫兴趣,那叫自欺欺人... 先推荐下智能合约尤其是 Solidity 的入门教程,来自 @WTFAcademy_wtf.academy

没有编程基础,搞安全很容易碰到瓶颈。智能合约中,先从主流的 Solidity 入手,这玩意是当下绝对的主流。
May 11, 2023 7 tweets 2 min read
从链上看你是被钓鱼钓走了 Permit 签名,这种签名对你来说仅仅只是一个无 Gas 的离线签名。钓鱼拿走后,会执行 Permit 上链操作,这个操作就拿到了你 USDC 的授权额度了,如图,但是这个 Permit 痕迹在你的地址看不到,在钓鱼者地址可以:
etherscan.io/tx/0x7c06a33bd… Image 注意下,钓鱼者 Permit 上链的这笔授权额度是:116239404,USDC 精度是 6,授权额度就是:116.239404 枚 USDC。

被钓走的 USDC 分了两笔:
etherscan.io/tx/0xf4a288d6a…
etherscan.io/tx/0xc65093b52…

采用 transferFrom 方式,这两笔的 USDC 总数加起来正好是这个授权额度,一点都不多一点都不少。
May 9, 2023 4 tweets 1 min read
取消签名这个功能好!有一个场景是这样,如果你怀疑自己不小心在钓鱼网站签名了个内容,为了以防万一,你可以用 @RevokeCash 这个新功能,尽快地把怀疑的点都取消签名,你唯一可能消耗点 Gas,但避免了潜在的签名钓鱼风险。 从原理上,你都签了什么,由于还没有上链,第三方是不知道的(如 Revoke.cash 不知道你都签名了什么),虽然有的钱包本地记录可以看到,但许多用户看不懂这些。

所以这个取消签名功能,用不用是取决了你自己的判断。你感觉自己似乎不小心签了个心里没底的名,以防万一,你可以使用。
Mar 6, 2023 5 tweets 2 min read
来来来,继续一个安全问答,钱包签名考题:如下四种签名弹框,安全性如何?为什么?

注1:第一个不是 eth_sign,是 personal_sign:)
注2:答案都藏在我以前发的分享里... ImageImageImageImage 简单回答下,图4的安全风险是:通过一个「Root 签名」即可以极低成本(特指「零元购」)钓走目标用户在 Blur 平台授权的所有 NFT,Blur 平台的这个「Root 签名」格式类似「盲签」,用户无法识别这种签名的影响:
Feb 3, 2023 5 tweets 2 min read
如图这些地址是什么?答案如下:

A. Lightning Invoice(LNURL)
B. BTC Taproot Address
C. lndhub wallet backup
D. Lightning Address
解释来自 Keystone 硬件钱包产品经理,我优化了点。

发现许多人感兴趣,这里我展开说点,顺带我也稍微聊聊与 Nostr 协议生态应用有关的闪电网络使用攻略。

1/n Image 需要注意,C 可是“私钥”般的存在,千万别发出来。

D 这个地址可读性非常高,可以作为你闪电网络的持续收款地址,你可以在 lightningaddress.com 选择你喜欢的域名后缀。

另外,A 是你的闪电网络一次性收款的 Invoice 地址,收款后就失效。

2/n
Dec 24, 2022 5 tweets 2 min read
有朋友问我 LastPass 这次被黑怎么看,简单说下吧...

如图,根据官方披露的信息来看,至少虚线里的信息许多是泄露的,包括 Encrypted Vault,这里面就有你那些最关键的密码等隐私。

那么后面的游戏就变成:如果你的 Master Password 也被黑客知道了,那就全完了...

1/n 黑客要知道你的 Master Password 是有方法的,碰撞难度应该挺大,但如果通过其他泄漏源做分析,那就有一定概率可以知道。

于是,黑客之后可以玩概率统计游戏,反正 LastPass 用户那么多...

2/n
Dec 22, 2022 4 tweets 1 min read
今天遇到个有趣的“被盗”案例,一位推友私信我,玩一个跨链桥有关的项目,刚授权完 USDC,USDC 就被莫名转走了。我一看授权给的是目标跨链桥的代理合约地址,而且其中一个关键 router 合约代码还没开源,于是各种分析,包括反编译...1/n 虽然意外发现该跨链桥的一个可能风险,但链上痕迹并不能说明是这个跨链桥的坑。

思来想去也没找到“被盗”的根本原因,桥似乎没问题,至少这位推友本次的遭遇并不是桥导致的。2/n
Dec 17, 2022 8 tweets 3 min read
⚠️最近这些 NFT 零元购钓鱼,由于相关样本及源码比较敏感,我就不随意公布了(不是这方面的安全研究员也不必找我要)。

这里我做点科普补充吧,让更多人了解下这种钓鱼的残忍...

如图是钓鱼的核心代码,加花过的,解起来有点烦,但挺巧的是我们的情报库里有明文源码...大大方便我的理解。1/n 既然是科普,肯定不是拿代码下手了,我们先前情回顾下我要说什么,然后就直入主题。

背景(14 只 BAYC、26 枚 CloneX 等蓝筹 NFT 被钓事件中,受害者一次确认即被批量钓走):


好,下面直入主题...2/n
Nov 18, 2022 4 tweets 2 min read
⚠️🌚继续问:当你看到 @MetaMask 或其它钱包弹出的确认框,注意如图红色标注的内容:

Security Update

那么,此时你会如何做….

会点击“确认”以完成这个 Security Update(安全更新)吗?

为什么会出现 Security Update? Image 首先,

这个原因是你的钱包此时交互的是一个钓鱼合约,如:

etherscan.io/address/0xd13b…

这个 SecurityUpdate 函数带 payable,意味着:你调用该钓鱼合约的 SecurityUpdate 函数,且转 ETH 到该钓鱼合约是没问题的。 Image
Nov 16, 2022 10 tweets 1 min read
⚠️安全科普了许久,发现还是许多人不明白钱包「签名」和「授权」的区别,谁来说说?😅 评论区答案很丰富去,感谢参与!其实许多都是说到点上的,不过也可以看出大家对基本概念的理解差异。基础都有差异,安全实践会“漏洞百出”也就能理解了…

这里我科普下我的理解。👇
Nov 13, 2022 7 tweets 1 min read
为了缓解大家的紧张…给大家分享个 Crypto 钓鱼新技巧吧(相对新,没什么人提)…

如截图,首先这个是盗 USDT,当你的钱包确认后,你的 USDT 会被兑换成 WETH 到黑客的地址。

这里的关键点是:注意下 data 数据,许多猫腻都在这里面,当你学会看 data,还能踩坑?

1/n 我简单解析下 data,0x472b43f3 开头的这串其实代表的是:

swapExactTokensForTokens

当然也可以代表其它函数,细节不表,自行参考如:
4byte.directory/signatures/?by…

看不懂也无所谓,你注意下上图这段签名操作的合约地址,to 的值:

0x68b3465833fb72a70ecdf485e0e4c7bd8665fc45

2/n
Nov 5, 2022 10 tweets 2 min read
夸一下 @opensea,这种签名认证请求做的很好,虽然存在挺久了。

做的好的原因是,哪怕只是 personal_sign 签名,可读性也处理得很好,比如:

- Message 里的意图概要:欢迎信息、免责同意、不会消耗 Gas(因为签名不发送到区块链上)等
- 告诉你这种认证(authentication)状态过期时间是 24 小时

... Image 接着:

- 你正在签名的钱包地址
- 最后跟着 Nonce,其实就是一个随机值,这个值很关键,告诉你这是唯一用途的,一次性的,不可能在其他场景下重放的

你看出门道了吗?你想到了什么?
Nov 2, 2022 7 tweets 3 min read
最近 @Dropbox@github 都披露了自己企业遭遇了钓鱼攻击,CircleCI 相关账号密码+2FA一起被钓:
dropbox.tech/security/a-rec…
github.blog/2022-09-21-sec…

这件事,Web3 行业的你需要关注吗?那必然是需要的...我简单提下其中一个关注点是:双因素认证(2FA)安全的话题... 双因素认证(2FA) 或 MFA,是认证的第二层保障,第一层经常都是账号密码这种,加个 2FA,那自然是安全了许多。但是不是所有的 2FA 安全等级都一样的。

比如常见的:
- 短信(SMS)
- 邮件
- Google Authenticator 这类

你觉得安全等级排序是怎样的?
Oct 9, 2022 6 tweets 3 min read
最近收到不少人反馈自己的加密资产被钓鱼走了,许多姿势我在黑手册(darkhandbook.io)里写过。这里再更新点内容吧。

Crypto/Web3 钓鱼常用的这几种签名能看出区别吗?

你先仔细看看,思考下,再看我的解析就会记忆深刻了:)

👇 ImageImageImageImage 图1:是用了 eth_sign 这个要废弃且危险的签名函数,一旦你点击确认,包括 ETH 在内的原生资产都可以被直接转走(技术细节这里都不展开)。

所以 MetaMask 有段红色文字提醒,可即使如此,还是会有中招的用户...我建议 @MetaMask 直接不支持 eth_sign。 Image
Aug 20, 2022 7 tweets 2 min read
破案,又见 BGP 劫持!

中文见:
Celer Network cBridge 跨链桥事故真相:BGP 劫持
mp.weixin.qq.com/s/SInU_o3Ct-7A… 有人好奇 BGP 劫持这种手法。我这简单说下:BGP 是边界网关协议,是上古时期就存在至今且很难被替换的互联网基础协议,类似“邮局”。BGP 劫持带来的直接现象是:一旦劫持发生,你以为你控制的服务器 IP,实际上变成黑客控制的了。
Aug 10, 2022 14 tweets 3 min read
DNS Hijacking(劫持) 大家应该都耳濡目染了,历史上 MyEtherWallet、PancakeSwap、SpiritSwap、KLAYswap、Convex Finance 等等以及今天的 @CurveFinance,十来个知名加密货币项目都遭遇过。但很多人可能不一定知道其劫持的根本原因,更重要的是如何防御(项目方角度及用户角度),我这里做个简单分享👇 DNS 可以让我们访问目标域名时找到对应的 IP:

Domain -> IP_REAL

如果这种指向关系被攻击者替换了:

Domain -> IP_BAD(攻击者控制)

那这个 IP_BAD 所在服务器响应的内容,攻击者就可以任意伪造了。最终对于用户来说,在浏览器里目标域名下的任何内容都可能有问题。
Jun 5, 2022 5 tweets 1 min read
各位需要特别警惕下这种钓鱼(普通的方式是直接钱包弹框让你授权或转账),这种是让你签名,注意看,第一个截图还好,第二个截图实际上是盲签,这种利用曾经@opensea 用户中招过,现在其他一些 NFT 交易平台的用户也可能中招。 继续,第二个截图的一串内容是钓鱼特别构造的内容(比如其中包括 NFT 交易市场里的挂卖单价格这种非常重要的信息),然后通过 keccak256 哈希后,给用户看到的就是一串包括 0x 的66 个字符。
Jun 5, 2022 18 tweets 1 min read
⚠️被盗了怎么办?🆘
尤其是最近的 NFT 如此火热,安全意识谈再多也比不上被盗一次来的记忆深刻。当然我不希望大家被盗,只是很多时候看到很多人被盗后非常紧张、迷茫、甚至可能着急导致第二次伤害。这里我特别来个 thread 讲解下。 ⭕️止损第一
止损就是让损失不要放大了。这分为至少两个阶段:1. 眼前着急阶段。眼前的绝对是当务之急的,比如你都看到黑客正在陆续转移你的资产,你还想什么呢?赶紧抢着把剩余资产安全转移呀。