• 请不要在回答技术问题时复制粘贴 AI 生成的内容
maomaosang
V2EX  ›  程序员

嘲笑别人的 deepseek 偷跑 100 元后,我被偷跑了 2700 元

  •  2
     
  •   maomaosang · 7h 46m ago · 2238 views

    一个月前社区有篇帖子《大家抓紧看看 deepseek 开放平台有没有异常 apikey!》,我在一楼对楼主贴脸开大,没想到这么快就轮到我自己了,区别是我被偷跑了 2700 元,是我嘲笑对象的 27 倍。

    我被偷跑的平台并不是 deepseek ,而是杭州的另一 LLM 厂商,为了避免麻烦,隐去名字了,下面就叫它杭州厂。

    事情是上个月发生的,然而时至今日,我仍然不知道我的 apikey 为何被盗,也请大家帮我分析分析。


    我厂是个小作坊,主用火山的豆包模型,杭州厂是故障备份,系统按请求结果自动切换主备。我们每天在火山大约消耗 1 亿 token ,杭州厂这边则是零零星星,一个月消费一两块。

    6 月底,杭州厂的商务打电话给我们,说发现 LLM 用量突增,希望线下拜访了解业务,我们这才发现当月 LLM 账单暴增到 2000 多。

    在 5 、6 两个月,我们断断续续被盗刷了大约 2755 元。我们的主力业务 apikey ,使用了两个业务不会用到的模型,一个是翻译模型,另一个是个新模型,输入 1.4 亿,输出 3.5 亿,IP 是 114.242.33.* 北京联通家宽。杭州厂的工单人员抽查发现,所有请求都是在干一件事:翻译。而翻译的文本题材天南海北,毫无规律,有些文字甚至都不太通顺。


    在更换 apikey 的时候,我们发现了一些很奇妙的事情

    我们原本在杭州厂有 4 个 LLM apikey ,创建时间从去年 3 月到今年 4 月。被盗用的是最早的 key ,4 个 key 除去 sk-的前缀后,按照创建时间,开头分别是 0,2,a,d ,看起来是一个自增的 32 位的 uuid 。如果 uuid 的生成算法有缺陷,就可能被撞出来

    建立新 key 时,发现杭州厂的 apikey 系统已经彻底革新,新 key 达到了 100 个字符以上的长度,甚至给每个账号提供了不同的 base url ,这就解决了我们担忧的被撞的问题,真是巧啊

    工单面对我撞 key 的疑问,在沉默了一周后,回复「 Key 本身也具备足够的安全性,无法被暴力破解」。


    当你发现一只蟑螂的时候…… 我们就查了查自己的屋子:

    • 我厂能接触到这个 apikey 的一共 5 个人,至少有 3 年没有程序员离职,除了夜里发布或者紧急修 bug 很少加班,据我所知应该没有人对公司心怀怨恨,吧
    • 我们从不使用中转站,AI 工具都是公司在模型厂商那里直接买的,或者团队成员买了报销,不走任何二道贩子
    • 代码没有托管在任何国产 git 服务商中
    • 所有的 apikey 都写在一处,但其他 llm apikey 没有任何被盗刷的迹象
    • 上个月,因为周额度剩余太多,我们用某顶尖模型扫描过全部代码,agent 干了一整晚,安全报告中没有可能导致 apikey 泄露的漏洞
    • 前段时间的 apifox 问题,团队有一位小伙伴中枪,我们连夜换了 ssh key ,服务器没有任何异地登录迹象

    实在是也找不出什么问题。


    总之,到最后也没弄明白,黑客到底怎么拿到这个 apikey ,又为什么要翻译那几亿文字。

    这件事留下的谜太多了。。。

    20 replies    2026-07-07 00:47:52 +08:00
    JerryZhi
        1
    JerryZhi  
       7h 43m ago
    心疼楼主 1 分钟,虽然钱不多但真挺糟心的。
    另外实在很好奇,能察觉出 uuid 生成算法有问题的人注意力得有多惊人
    xiaomushen
        2
    xiaomushen  
       7h 40m ago
    百炼的调用费用,混在阿里云的账单里,确实很容易被忽略
    afkool
        3
    afkool  
       7h 31m ago
    是不是类似 apifox 之类的事件把凭证上传了?感觉 apikey 跟密码一样,也得没事更新下。。
    Yserver
        4
    Yserver  
       7h 24m ago
    百炼说是提供了不同的 baseurl 实际上原来的公用 baseurl 依然可用
    vexify
        5
    vexify  
       7h 21m ago
    盲猜用了开源的组件例如 litellm ,放在公网上,人家专门研究 0day ,扫全网,发现特征,被入侵了都不知道,据我所知,有部分中转站,是扫 key 拿来薅的
    vexify
        6
    vexify  
       7h 19m ago
    2000 多已经很少了,有些公司被刷几万块都不知道呢,业务混在一起的 =_=
    bluetree2039
        7
    bluetree2039  
       7h 17m ago via iPhone
    恐怖😱
    ujujzhaos
        8
    ujujzhaos  
       7h 16m ago
    你们没在阿里的加个限额吗
    kneo
        9
    kneo  
       7h 13m ago via Android
    >杭州厂的工单人员抽查发现,所有请求都是在干一件事:翻译。
    >而翻译的文本题材天南海北,毫无规律,有些文字甚至都不太通顺。

    还能直接看用户数据的啊?都不演一下吗?
    maomaosang
        10
    maomaosang  
    OP
       7h 5m ago
    @Yserver 😱 确实是没对这里做测试,看来新的 baseurl 只是用来做资源隔离的,不是 random key 的一部分

    @vexify 因为历史原因,调用 llm 的库都是我们自己写的,甚至几乎没有 ai coding 参与,从这套东西里面找开源库的话,得找到 curl 这里去了,确切的说是 php-curl 。

    @ujujzhaos 没有,因为业务上已经有限额了,所以这里没做,确实是疏忽,当天已经加上了。

    @kneo “抽查”是工单人员经过我们授权后查看的,工单里面有一套这样的流程。
    anivie
        11
    anivie  
       6h 44m ago
    @kneo 为什么要演,监管要求本来就要所有数据都留存审查啊。都国内厂的服务了,没直接开摄像头跟我大眼瞪小眼已经很感恩了
    wang93wei
        12
    wang93wei  
       6h 41m ago
    为啥不看一下 Nginx 之类的访问记录呢?我们之前火山的 seedance 生图的也被刷了,Nginx 访问记录能看到确确实实是直接拿到 env 了,字节码都一致。
    wang93wei
        13
    wang93wei  
       6h 39m ago
    我们找火山的工作人员看,人家说都是从我们服务器发起的请求。而且是半夜。
    Mzs
        14
    Mzs  
       6h 21m ago
    我估计你的想法没错 要不然好端端得为啥 key 的生成方式大变
    杭州厂后端的很多逻辑都还没根据新的 key 规则做变更-相当于是 2 套
    digitv
        15
    digitv  
       6h 20m ago
    据我多年的工作经验,这类问题应该人的可能性更高一些。
    maomaosang
        16
    maomaosang  
    OP
       6h 19m ago
    @wang93wei 不是业务层被刷的,而是黑客不知怎的拿到了 apikey ,从北京联通家宽发起的请求,我们服务器在杭州上海,团队在上海
    candyhead
        17
    candyhead  
       6h 10m ago via iPhone
    数额太小,报警可能不理
    hatori
        18
    hatori  
       4h 14m ago via iPhone
    估计是 key 被用在翻译插件里了,很多人用所以翻译啥的都有
    hatori
        19
    hatori  
       4h 13m ago via iPhone
    @hatori 刚刚没看清,都是同一个 ip 的话那就不好说了
    o0
        20
    o0  
       1h 36m ago
    这个东西就跟原来 cdn 一样,至少得设置个阈值才安全
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1083 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 50ms · UTC 18:24 · PVG 02:24 · LAX 11:24 · JFK 14:24
    ♥ Do have faith in what you're doing.