排查泄漏的IAM AKSK
最后更新于
最后更新于
安装Prowler在自己的机器上;此工具提供了当前环境的安全状态。此外, AWS Security Hub 提供了自动合规扫描并且可以 integrate with Prowler.
开启Security Lake(需要在管理账号,或者被委托的管理账号上开启),有15天的免费试用,可以一键开启跨账号,跨Region的CloudTrail日志。资源勾选CloudTrail - Management events。
执行下面的命令,检查是否存在用户绑定了2个活跃访问密钥。平时就不应该允许存在一个用户绑定2个活跃访问密钥,如果存在,则可能是攻击者新创建的密钥,用户权限已经被泄漏。
执行下面的命令,查看root账号是否有使用痕迹,平时不应该使用root账号,要妥善保管,如果root账号有使用痕迹,则root账号可能已经被泄漏。
执行下面的命令,查看是否存在超级管理员的策略并且被绑定了。找到超级管理员策略比如AdministratorAccess
,在控制台可以用策略名称筛选超级权限策略,然后找到绑定了这个超级权限策略的主体。排查主体是否近期使用过,是否做了一些异常的事情,比如删除策略,创建用户,创建EC2等等。
AWS Cost Anomaly Detection是AWS Cost Management的一个功能,该功能使用机器学习模型来检测已部署的 AWS 服务中的异常支出模式并发出警报。
使用以下命令扫描AWS上使用明文口令的情况,然后排查泄漏的IAM AKSK是否在里面。建议所有的明文AKSK都应该删除,使用IAM role的方式进行授权。详细参见场景化IAM实践-应用程序安全。
最佳实践建议将日志导出到安全事件管理 (SIEM) 解决方案(如 OpenSearch、Security Lake等),以帮助查看和分析各种记录,从而进行完整的攻击时间线分析。下面以Security Lake排查为例介绍如何查找IAM AKSK泄漏的影响范围:
查询疑似泄漏的IAM user access key执行了哪些 AWS API 活动,以及来自哪个 IP 地址的活动。
注意替换Account Id number and 为你的账号以及 IAM user access keys。
并且替换时间。
CredentialAccess:IAMUser/AnomalousBehavior
DefenseEvasion:IAMUser/AnomalousBehavior
Discovery:IAMUser/AnomalousBehavior
Exfiltration:IAMUser/AnomalousBehavior
Impact:IAMUser/AnomalousBehavior
InitialAccess:IAMUser/AnomalousBehavior
PenTest:IAMUser/KaliLinux
PenTest:IAMUser/ParrotLinux
PenTest:IAMUser/PentooLinux
Persistence:IAMUser/AnomalousBehavior
Policy:IAMUser/RootCredentialUsage
PrivilegeEscalation:IAMUser/AnomalousBehavior
Recon:IAMUser/MaliciousIPCaller
Recon:IAMUser/MaliciousIPCaller.Custom
Recon:IAMUser/TorIPCaller
Stealth:IAMUser/CloudTrailLoggingDisabled
Stealth:IAMUser/PasswordPolicyChange
UnauthorizedAccess:IAMUser/ConsoleLoginSuccess.B
UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration
UnauthorizedAccess:IAMUser/MaliciousIPCaller
UnauthorizedAccess:IAMUser/MaliciousIPCaller.Custom
UnauthorizedAccess:IAMUser/TorIPCaller
可以从Security Hub的Finding中筛选GuardDuty的这些告警是否出现。也是使用Security Lake+Athena
选择其中跟IAM密钥泄漏相关的筛选告警信息
Tactics, techniques, and procedures: Exposure of credentials
Category: IAM credential exposure
Resource: IAM
Indicators: Cyber Threat Intelligence, Third Party Notice
Log Sources: AWS CloudTrail, AWS Config, VPC Flow Logs, Amazon GuardDuty
Teams: Security Operations Center (SOC), Forensic Investigators, Cloud Engineering
此外还可以
如果发现IAM用户可能已经被黑客获取,则立即删除原来的AKSK,创建一个新的AKSK。
一些异常支出的资源很可能是黑客创建的,用于挖矿,比如超大型EC2和海量带宽。在排查账单发现异常支出资源后立即进行删除。
通过prowler aws --categories secrets的检查发现的明文口令建议都删除掉,使用更安全的方式保存口令。比如EC2通过IAM role的方式授权,cloudwatch logs里面发现了明文口令则启用匿名化功能保护敏感数据,CloudFormation outputs,Lamdba,Systems Manager document等服务中发现了明文口令,则建立整改计划,都使用secrets manager来保存口令。
通过排查CloudTrail日志可以看到拿到泄漏AKSK进行恶意访问的IP的行为,如果确认是恶意的,则可以将恶意IP进行屏蔽。屏蔽方式1:在NACL中增加拒绝该IP访问的规则。屏蔽方式2:在WAF中添加黑名单,将恶意IP添加至WAF的黑名单。
[workshop] Unauthorized IAM Credential Use - Simulation and Detection
[github]Incident Response Playbook: Compromised IAM Credentials