AccessKey(包含AccessKey ID和Secret)是程序访问的凭证,无异于打开云上资源的大门钥匙。一旦钥匙被拿走,不法分子可以在AK权限的范围内执行任何操作,不需要再提供其他的凭证。因此保管好AK是保障云上安全最重要的事情,甚至没有之一。尽管阿里云在控制台、在文档、在云栖大会不停地宣导AccessKey管理的最佳安全实践,用户却往往只有在密钥被盗用,造成账户欠费、资源释放、数据泄露等等问题时,才发现AK已经泄露。
一个真实的案例
日本汽车巨头丰田,在 GitHub 上公开访问密钥近五年后,近 30 万客户的个人数据可能被泄露。
2022年10月7日丰田发表声明,丰田汽车公司和丰田互联公司提供的互联订阅“T-Connect”服务的部分客户的电子邮件地址和客户管理号码,共计296,019 个号码可能已被泄露。
经查实事件源于2017 年 12 月,一家外包开发“T-Connect”网站的公司不小心将部分源代码上传到其公开设置的 GitHub 账户,违反了处理规则,但是直到 2022 年 9 月 15 日才引起注意。这部分发布的源代码包含数据服务器的访问密钥,可用于访问存储在数据服务器上的电子邮件地址和客户管理号码。
那么如果AK泄露了,怎么办?
当确认AccessKey发生泄露,这把Accesskey就已经存在被盗用的风险,只有替换掉它才能消除风险。
1.如果这是一把主账号AccessKey
那就意味着这把AK有账号下所有权限,且没有任何手段做止血封禁,唯一的办法是直接轮转AccessKey。所以我们不厌其烦地向用户强调:不要使用主账号AK。
2.如果这是一把子用户AccessKey
确认AccessKey不在使用中,可以立即禁用,观察对业务无影响后进行删除。再从以下第四步开始排查其他风险。
确认AccessKey目前在业务使用中,轮转AccessKey往往需要一定的时间,按照以下步骤先降低被盗用的影响,然后尽快完成轮转。
1)尽快缩小泄露AccessKey的权限,限制高风险权限,降低业务和资费受损的风险。
明确业务场景,在不影响当前业务运行的前提下,限制高风险权限。
●将这把AK明确不需要使用的权限全部移除。
●限制的高风险权限:禁止该用户在RAM访问控制中创建新的用户、AK及授权,禁止ECS、RDS、OSS、SLS资源的释放,和禁止发送短信等权限。在AccessKey轮转或删除之前请不要解除该策略的授权。
2)按照最佳实践,建议账号下所有控制台访问用户开启多因素认证,降低子用户被盗用的风险。
●设置账号内用户登录控制台必须开启多因素认证。
●为用户绑定多因素认证设备。
3)轮转泄露的AccessKey。 操作方式:创建新的AccessKey,妥善保管Secret。将原AccessKey替换为新的AccessKey,验证正常运行后,禁用旧的AccessKey进行观察,直至轮换结束后删除旧AK。
4)检查费用中心确认是否有异常的费用产生。对盗用者创建的资源进行关停、禁用,确认业务无影响后尽快释放降低资损。
5)检查泄露的AccessKey是否有异常操作行为。对相关的资源做一些数据加密、备份、释放保护等针对性地处理,同时可以联系云产品获取产品级别的一些封禁措施。
●在访问控制产品控制台查找用户的AccessKey列表,在列表中点击查看操作记录,或到操作审计控制台AccessKey审计页面直接输入AccessKeyId查询操作记录。
●OSS、SLS日志服务等数据类访问日志需要到各产品日志功能查询。
●重点关注异常的访问IP、非业务需要的资源创建或删除操作等。
6)进一步排查除了已知有泄露风险的AccessKey之外,是否有其他RAM用户和AccessKey有异常的操作行为。
●排查方式:通过操作审计查看近期的操作记录,重点关注异常的访问IP、非业务需要的资源创建或删除操作等
●若发现有异常行为,和员工确认操作非本人执行,有疑似泄露风险时,建议按以下方式处理。
○RAM用户有异常,是企业自己创建的用户需要继续使用的,建议立即修改密码并开启多因素认证。
○RAM用户并非正常创建的,或确认为闲置用户不需要继续使用的,可进行删除。RAM用户删除后会进入用户回收站,观察业务受到影响可快速恢复。
○AccessKey异常操作,参照以上方式进行限制权限后进行轮转。
还有哪些日常能做预防措施?
●企业上云安全实践,请仔细阅读常记于心。
●程序访问最佳实践,ECS实例角色、ACK的RRSA实例角色方案可以替代永久AK。必须使用AK时,通过环境变量减少AK的明文输入。
●RAM访问控制提供了治理检测,云治理中心提供了企业多账号的成熟度检测,定期查看发现治理问题及时修复。
●云安全中心的安全告警中,对可疑身份调用敏感API、AccessKey异常调用、异常的ECS资源遍历行为、黑客工具利用AK等异常调用行为有告警通知,关注告警及时发现风险。