hackroad

唉,研发密钥泄露,导致整个私有 gitlab 被拖。。。

  •  
  •   hackroad · Apr 20, 2025 · 16223 views
    This topic created in 568 days ago, the information mentioned may be changed or developed.
    内网其他部门电脑中毒再扫描整个公司相关系统弱密码。。还真有人 gitlab 弱密码被拖库,代码被拖走多少不知道,但是线上私钥全部泄露,运维、公有云 AK SK 泄露,全部要更换。。。
    加班 2 天了,下一周工作量爆炸。。
    52 replies  •  2025-04-22 15:25:14 +08:00
    renfei
    renfei
    Apr 20, 2025❤️2
    1
    管理不规范吧,线上私钥不能提交到 Repo ,生产环境应该用环境变量读取这些敏感凭证
    hackroad
    hackroad
    OP
    Apr 20, 2025
    2
    @renfei #1 弱密码的这个人权限很大,私钥并不在线上库,但是他有权限。
    jianghuan2
    jianghuan2
    Apr 20, 2025
    3
    我想起我刚工作的第二月,用组内生产 aliyun 的 AK 和 SK 写测试代码并在下班前推送到 GitHub 。结果 aliyun 第二天就邮件发到老大那里了,最后全组更换 AK 、SK 。并让我在开会时自行检讨......
    AmaQuinton
    AmaQuinton
    Apr 20, 2025
    4
    曾经搞过,把公网的测试服务器密钥文件提交到 GitHub 了,收到了 GitHub 官方的警告邮件,然后去更新密钥,同时把 GitHub 文件和 commit 都删除了,挺吓人的
    dford
    dford
    Apr 20, 2025
    5
    但凡加一步合并前代码审核,就不容易出现这种大坑
    wtfwc
    wtfwc
    Apr 20, 2025
    6
    昨天才听一个朋友说他组内一个成员将国企内网的电脑接到公网上去了,然后公网和内网同时报警,从首都直接层层报警到终端单位......最终这哥儿 19 年工龄没了,净身去职。
    laminux29
    laminux29
    Apr 20, 2025❤️1
    7
    @wtfwc 盲猜是涉密单位或涉密岗位 + 单位已经提前警告不能这样做 + 哥们就是莽就是要上公网,只是被辞退,没被起诉坐牢已经是好结局了。
    cookii
    cookii
    Apr 20, 2025 via Android
    8
    一般密码密钥大家都存在哪里?
    NathanInMac
    NathanInMac
    Apr 20, 2025
    9
    @jianghuan2 胆子是真大。不过说起来为什么新人就能拿到 prod 的 key 也说明了平时没管过这个问题
    106npo
    106npo
    Apr 20, 2025 via Android
    10
    见过不少网站能访问 .git 文件夹的 ,里面有 git 地址和访问凭证可以直接登上去😂
    shakaraka
    shakaraka
    Apr 20, 2025❤️2
    11
    @cookii #8 k8s secrets 里,或者第三方配置中心,consul 之类的。反正总之线上的任何 tk 、key 都不可能给开发的。只会提供额外的开发环境
    sampeng
    sampeng
    Apr 20, 2025 via iPhone
    12
    没明白,你在内网啊…提交也是内网 gitlab 。核心问题是你内网被攻克了啊。锅肯定在 IT 身上,没 IT ?就算中毒了,谁知道你 gitlab 在哪…你杞人忧天了。其实没啥事…代码没啥了不起的。云密钥泄露也没事,你看操作记录就是了。大概率是自己吓自己了。当然,这是安全风险,吃一堑长一智。我以前碰太多把密钥提公开的 github 上的了,也没啥事…
    guanzhangzhang
    guanzhangzhang
    Apr 20, 2025
    13
    it 增加安全,避免内网任何机器尝试扫描其他机器和设备
    gitlab 增加二次认证
    核心环境上堡垒机,并增加二次认证
    iorilu
    iorilu
    Apr 20, 2025
    14
    @wtfwc 怎么接得, 除非他自己就是管理网络得, 否则随便谁能在内外开通外网访问?
    dadachen1997
    dadachen1997
    Apr 20, 2025
    15
    我们已经不给用 api key 方式做认证了,去年全部迁移到用 Managed Identity 来搞。
    xingxing09
    xingxing09
    Apr 20, 2025
    16
    @iorilu 热点啊
    sampeng
    sampeng
    Apr 20, 2025 via iPhone
    17
    我们 gitlab 我直接设置最小 255 位密码。平常用 sso 登陆网页。
    guoooo00oohao
    guoooo00oohao
    Apr 20, 2025
    18
    @cookii 使用 secret manager , 使用类似 vault 。测试和生产各一套 vault ,当需要使用的是 ExternalSecret 这样的工具从拉值创建最新的。

    上线操作都是使用额外的密码生成工具,都是一次性密码
    chengran630
    chengran630
    Apr 20, 2025
    19
    op 说的这种 无解,只能后面公司内部规范,没有必要的权限不要给

    就相当于 总经理拥有的账号能查看所有信息,虽然他不会看你一个技术/运维提交的东西,但是他的账号能访问到,一旦总经理的密码被攻破或者弱密码 就等于 所有人的密码泄露
    whileFalse
    whileFalse
    Apr 20, 2025
    20
    应用在公有云中运行,访问云本身的资源用 Role 授权不用 Key 。然后其他三方服务的 Key 全部放在 SecretsManager 中,使用 Role 在运行时获取,这样就可以做到不明文存储任何 Key

    对于需要访问生产公有云账户的运维人员,登录开双因素认证
    pydiff
    pydiff
    Apr 20, 2025
    21
    请教下,怎么扫描整个公司相关系统弱密码,用什么自动化工具呀,还是人工一个一个来搞
    7gugu
    7gugu
    Apr 20, 2025
    22
    外网是怎么访问到内网的?还是说这个内网只是一个概念,并不是真正意义上的隔离😂
    guoooo00oohao
    guoooo00oohao
    Apr 20, 2025
    23
    @pydiff 很麻烦,正常用户内部系统统一 SSO 登录就行了;管理员账号仅限于 VPN 或者内网登录。
    pydiff
    pydiff
    Apr 20, 2025
    24
    @guoooo00oohao 哦哦,就是搞个类似 ldap 的东西是吧
    levelworm
    levelworm
    Apr 20, 2025 via Android
    25
    正常,这种事情我们也干过,token 直接放代码里,省事嘛!不用写代码从 secret manager 里取了。。。

    哈哈哈。。。嗝
    iugo
    iugo
    Apr 20, 2025
    26
    强制要求团队成员开启 2FA, 并且 2FA 要有两种方式. 同时再建议开启 Passkey 在日常中节约时间.
    levelworm
    levelworm
    Apr 20, 2025 via Android
    27
    @iugo #26
    作为开发,我真的非常反感 2FA ,但是不能不用,唉。不过这个 passkey 看来能解决我的痛点,不用每天登陆两次了。
    PatchouliTC
    PatchouliTC
    Apr 20, 2025
    28
    答案是公司内做一个 vault 统一管服务端机密,那玩意开源自托管,就是上手有点难
    uncat
    uncat
    Apr 20, 2025❤️5
    29
    你们的 GitLab 是公网可达的吧?

    分享我们思路:

    我们从基建最初便落地了基于 WireGuard 的 VPN 网络,入职时签发配置,离职时注销,每个设备一份不可复用,只影响 172.31.0.0/16 这一个网段(避免路由冲突),加入 VPN 网络的人才能访问公司内部服务。

    这里有很多好处,比如:

    1. 有效的内部服务隔离。解决人员流动问题,降低内部服务因为人为疏忽暴露的风险(相对于公网可达而言)。
    2. 每个设备一个独立的 VPN 证书,解决远程办公的联调问题。
    3. VPN 网络还能打通 K8s 集群,满足直连 Pod IP ,Service IP 的需求。

    FYI
    uncat
    uncat
    Apr 20, 2025❤️1
    30
    纠正:每个设备一个独立的 VPN 证书 -> 每个设备一个独立的 VPN IP
    NGGTI
    NGGTI
    Apr 20, 2025
    31
    被黑客攻击进入内网了。建议找乙方安全公司做红队演练、渗透测试吧。
    jenson47
    jenson47
    Apr 20, 2025
    32
    几个问题整改,
    1. 内网网络隔离或者说内网网段隔离(交换机设置或者搞个防火墙)
    2. 密码策略,尽量使用统一密码认证,然后密码要求强密码
    3. 电脑权限管理,非必须情况下,不授予管理员权限(其实就是最小权限原则)
    4. 电脑系统尽量不要用 win10 以下,以及用自带的防病毒
    5. 给他们一个错觉,公司有网络安全监控知道他们在电脑做的任何事(让他们悠着点)

    最后建议找个安全公司,给你们公司员工做下安全培训。
    Felldeadbird
    Felldeadbird
    Apr 21, 2025
    33
    这种内网爆破无解吧。总有一个人弱口令。

    当然了,库中就不应该添加 敏感的 key 。
    yjxjn
    yjxjn
    Apr 21, 2025
    34
    @jianghuan2 #3 密钥配置这类的不都变量么,写入系统变量去配置,最后即使 ush 了也没啥事
    jianghuan2
    jianghuan2
    Apr 21, 2025
    35
    @yjxjn #34 当时刚毕业菜,而且是测试 demo 学习用的,我就直接写在配置文件 push 了。因为邮件是先发到我这里,然后我立马找组长、老大交代情况,后面检讨一下也就过去了。
    wu67
    wu67
    Apr 21, 2025
    36
    我只知道曾经呆过的团队, 有人把代码贴公网了, 然后不知道他贴的源头在哪, 最要命的, 被 csdn 农场型博客给爬了, 好了, 全网搜关键字都能搜出来, 听说被项目被扣分....
    jciba5n4y6u
    jciba5n4y6u
    Apr 21, 2025
    37
    @Felldeadbird 能说出口令这个词,同行。

    现在搞安全的,脚本小子太多,基础太不扎实了
    haoyunyinglai
    haoyunyinglai
    Apr 21, 2025
    38
    既然能够爆破成功,说明肯定不是最近几天才黑进去的,因为爆破可能是漏洞攻击不奏效之后的手段了。
    建议整体排查一下受害范围内的主机,如检查一下 ssh-key 、/tmp 目录下的可以文件等,别被留下后门了
    haoyunyinglai
    haoyunyinglai
    Apr 21, 2025
    39
    @daxin945 可以文件->可疑文件
    yuchen198
    yuchen198
    Apr 21, 2025
    40
    还有一个事,公司的所有网站密码都不要保存到 Chrome 浏览器,要是不小心安装了个什么软件的婆姐版,其实是个病毒,人家可以直接盗走 Chrome 保存的密码和 cookie
    dododada
    dododada
    Apr 21, 2025
    41
    sso+双因子认证呗,当然你要是搞了一些独立系统,或者双因子认证算法被人破了,那就没辙了;

    你这个应该是供应链攻击了,估计还要去看看有没有把你们用的什么云平台的账号数据和资产搞掉;
    wangyzj
    wangyzj
    Apr 21, 2025
    42
    不是内网吗?
    另外代码中藏密码这事情,几乎没有完美方案,CI 过滤然后人工看,也不敢完全保证
    arthurblake
    arthurblake
    Apr 21, 2025
    43
    @jianghuan2 #3 为什么要推倒 github
    cyspy
    cyspy
    Apr 21, 2025
    44
    通用做法例如 github secrets 是只能替换不能读写,actions 里面输出会被屏蔽
    Rat3
    Rat3
    Apr 21, 2025
    45
    @wtfwc

    说个八卦,现在暗网那么多身份信息资料库,其中有一份就是当时社保局有个傻逼开发硬把内网环境接到公网导致的
    jimrok
    jimrok
    Apr 21, 2025
    46
    为什么开发要掌握私钥,开发的私钥不是只有开发环境的吗?生产环境都是运维负责管理。
    hanyuwei70
    hanyuwei70
    Apr 21, 2025
    47
    给 op 一些建议
    1. gitlab 2FA 登录,现在 yubikey 也不贵了,还是觉得贵可以用 canokey
    2. 线上私钥、云平台 AK 、SK 为什么会放在 gitlab 里?首先应该用一个专门的东西管理这些密钥,其次你都已经是云平台了,尽量减少静态 AKSK 的使用。
    WispZhan
    WispZhan
    Apr 21, 2025
    48
    我们直接 gitlab 纯内网,外部访问只能用 VPN 。 省一大堆事情。

    泄露也行,反正至少还要一个 VPN ,VPN 一人一账号,谁出问题谁负责。
    ---
    中木马了当我没说
    demonzoo
    demonzoo
    Apr 21, 2025
    49
    2FA 可以解决这种问题吧?强制所有人开启两步验证
    xw340721
    xw340721
    Apr 21, 2025
    50
    push 时候在 ci 中加入检测这类的代码,一搜一大把
    v2wp
    v2wp
    Apr 22, 2025
    51
    内网办公电脑中毒这个事情不得不说,办公电脑安全基线必须有墙和 edr 可以保证 445,139,135 之类的危险端口访问拦截。一般像利用永恒之蓝漏洞的挖矿、勒索病毒都是靠 rce 直接溢出植入的,然后再提取本机密码在内网横向撞口令或者自带弱口令去爆破内网终端,自动化感染其他机器。所以企业内网非常有必要做安全基线配置。
    franswish
    franswish
    Apr 22, 2025
    52
    @wtfwc 19 年工龄还干这种事真得怀疑是不是故意的,不是说是间谍,而是有没可能和单位有仇。出这种事单位可能比个人还惨(尤其是如果不是机关而是国企,要盈利那种,出了泄密事故取消保密资格认证可能三年都接不了正常业务)。毕竟国密的电脑连入职一个月的新人都知道不能连入公网
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   926 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 110ms · UTC 20:48 · PVG 04:48 · LAX 12:48 · JFK 15:48
    ♥ Do have faith in what you're doing.