Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save banyudu/e71239e1e49227734a12ae23bf9de4c1 to your computer and use it in GitHub Desktop.
Save banyudu/e71239e1e49227734a12ae23bf9de4c1 to your computer and use it in GitHub Desktop.
公有云中的信任危机

公有云中的信任危机

相信大多数人都经历过一次或多次的离职,每次离职时都会涉及到一些权限的收回、账号的关闭等事项。

在公司资源全部在内网时,这个问题比较简单,容易处理,基本上把员工连接内网的权限收回,就可以掩盖很多漏洞了,即使个别系统中的账号没有关闭,也无伤大雅。

但是在公有云时代,很多事情变得不同了。

常见的安全漏洞

多人共享账号

在权限管理不够严格和标准的公司里,可能会有多人共享同一账号的情况存在。即使有人离职了,因为怕麻烦等原因,可能也并不会修改此公共账号的密码。

当这些账号只在内网可用时,问题不算很大,而当这些账号是公网上的第三方服务账号时,就很麻烦了。恶意的员工可能会利用这种漏洞,篡改一些线上的数据,或者抓取一些机密信息等。

权限集中

权限集中在一个或少数几个账号时,如果这些账号泄露了,就会造成极恶劣的安全隐患。

而且这个泄露的过程,并非是只有恶意员工才会泄露,一个正常的员工也可能会因为操作不当,中病毒等原因将一些重要的密码泄露出去。

工具攻击

oh-my-zsh这样的工具,安装命令是先下载一个远程的shell,然后本地执行。若oh-my-zsh的维护人员中有恶意人员,或其被恶意人员攻击,或传输过程被劫持等,都有可能造成开发者的计算机中执行了恶意代码。

加上一般云服务有固定的鉴权存储位置,如AWS的~/.aws/credentials 或环境变量,恶意软件很容易获取到相应的公有云密钥。

其它各种软件包、镜像仓库等,如homebrew、npm、dockerhub等,都有可能存在类似的风险。

在私有云时代这种问题不明显,在于即使盗了相关账号,也很难使用。但是公有云就大大地不同了。

解决思路

现在已经有一些第三方的解决方案,如将代码开源供审查,以及加密传输防劫持等。

但是这些都是不可控的因素,解决不了根本的问题。

要彻底控制这种问题的发生,或规模。就需要从企业内部角度,寻求更好的解决方案。

下面是几个思路:

  1. 启用SSO单点登录,除了极个别的核心员工以外,大部分人都不持有任何公有云的密钥信息,所有权限的获取都通过公司内账号代理,且尽量自动将密钥填充到需要的地方,不将它显示给员工。
  2. 权限动态化、碎片化。使用类似AWS IAM之类的技术,将用户可用权限限制在最小范围内,根据需求动态地添加和删除角色等。
  3. 密钥自动过期(临时密钥):每隔一段时间(如一天)将密钥自动过期,重新生成新的密钥。与SSO相结合,对正常用户无感知。对恶意用户来说,则使其持有的密钥尽快失效,且能在重要员工离职后手动触发密码变更流程,不影响正常业务。
  4. 账号按业务线隔离。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment