GitHub 操作:在工作流作业中使用外部操作是否存在安全问题?

GitHub Actions: Are there security concerns using an external action in a workflow job?

我有一个工作流程,通过使用来自 someuser 的外部操作来传输文件:

    - name: ftp deploy
      uses: someuser/ftp-action@master
      with:
        config: ${{ secrets.FTP_CONFIG }}

这是一个安全问题吗?例如,可以 someuser 更改 ftp-action@master 以访问我的 secrets.FTP_CONFIG 吗?我应该 copy/paste 将他们的操作纳入我的工作流程吗?

GitHub help page确实提到:

Anyone with write access to a repository can read and use secrets.

如果某些用户没有对存储库的写入权限,则应该没有安全问题。

如下所述,您应该指定您正在使用的工作流的确切提交,以确保它不会在您不知情的情况下更改其行为。

如果您使用 ftp-action@master,那么每次您的工作流程运行时,它都会获取操作的主分支并构建它。所以是的,我相信所有者可以更改代码以捕获机密并将它们发送到他们控制下的外部服务器。

要避免这种情况,您可以使用特定版本的操作并查看其代码。您可以使用提交哈希来引用您想要的确切版本,例如 ftp-action@efa82c9e876708f2fedf821563680e2058330de3。如果它有发布标签,你可以使用标签。例如ftp-action@v1.0.0 虽然,这可能不那么安全,因为标签可以更改。

或者,可能是最安全的方法是分叉操作存储库并引用您自己的副本。 my-fork/ftp-action@master.