Smogcloud - AWS external network asset discovery platform

admin 2024年8月14日14:27:31评论11 views字数 2202阅读7分20秒阅读模式

0x00 前言

对于一家大量采用AWS的甲方企业来说,如何实时的发现暴露在外网的AWS资产对其进行企业安全建设来说则至关重要。这些暴露在外面的AWS资产就是潜在的攻击面,我们可以这些资产进行更高优先级的监控,确保当出现安全问题时可以第一时间进行事件响应。而来我们也可以对这些暴露再外的资产进行高优先级的风险评估,尽量避免其出现已知的安全问题。当然,随着业务的发展,暴露在外的资产信息也是动态变化的,如何实时的收集到这些变化的动态资产信息,进行高优先级的风险评估是一个值得思考的问题。我们没有办法保护我们看不到的资产,在这篇文章中,我主要记录一下我对Smogcloud这款开源项目的一些研究,以及如何配合Smogcloud和其他工具耦合起来实现高效且稳定的AWS公网资产监控平台。

0x01 Smogcloud 简介

如 Smogcloud 的 README 页面所述,其主要解决的问题就是发现暴露在外网的AWS资产,全量、实时、稳定的AWS资产监控平台是我们实施下一步安全手段的第一步。Smogcloud 主要解决的问题如下:

  1. 针对多个AWS账号进行外网资产发现
  2. 针对这些资产进行检查是否存在错误配置或者相关安全问题
  3. 识别长时间未使用的资产
  4. 识别未被监控到的资产
  5. Shadow IT

0x02 当前环境

  • Amazon Linux 2
  • Golang 1.15.5

0x03 Smogcloud 的安装和配置

由于 Smogcloud 是基于 Golang 开发的,在使用 Smogcloud 之前我们要先安装Golang的开发环境。看了下代码写的还是比较简洁的,直接拿来用用,后面需要的话直接上手改代码简单扩展一些也是ok的。一、Golang 的安装和配置步骤如下:

12345
wget https://golang.org/dl/go1.15.5.linux-amd64.tar.gzvim ~/.bash_profileexport PATH=$PATH:/usr/local/go/binsource ~/.bash_profilego version

安装成功之后会展示出如下信息:

12
[root@ip-10-188-188-188 ec2-user]# go  versiongo version go1.15.5 linux/amd64

二、安装 Smogcloud

12
go get -u github.com/BishopFox/smogcloudsmogcloud

出现这个报错的话,说明我们已经安装成功了,接下来我们需要配置账号ID和访问凭证,来进行资产收集了。

12345
[root@ip-10-188-188-188 ec2-user]# smogcloud Cannot list functions for region us-east-1NoCredentialProviders: no valid providers in chain. Deprecated.For verbose messaging see aws.Config.CredentialsChainVerboseErrors

三、配置 Smogcloud

123
export AWS_ACCOUNT_ID=''            # Describe accountexport AWS_ACCESS_KEY_ID=''         # Access key for aws accountexport AWS_SECRET_ACCESS_KEY=''     # Secret key for aws account

配置完成之后再次运行smogcloud执行,对这些暴露在外网的资产进行收集。收集完成之后相关结果保存在results文件夹下。

12345678910111213
[root@ip-10-188-188-188 results]# tree.|-- apigateway|   `-- 123456789012.us-west-2.json|-- ec2|   `-- 123456789012.us-west-2.json|-- iot|   |-- 123456789012.us-west-2.json|   `-- 123456789012.us-east-1.json`-- s3    `-- 123456789012.global.json4 directories, 5 files

0x04 Smogcloud 的二次开发

Smogcloud 本质上是调研AWS Golang SDK获取资产信息对于符合条件的资产进行收集。严格来讲,其仅仅是一个用于收集信息的脚本,我们可以顺着这个思路进行二次开发,将收集到的信息进行入库及分析展示。这里举一个小例子,通过收集包含工网IP的EC2实例,结合其附加的安全组以及端口扫描情况可以梳理出来对外暴露的端口。对于不合规的端口进行告警,对于必须暴露的端口如Web应用进行其他手段的安全测试。对于其他的服务,如S3一类的,也是同样的思路。再就是如何配合AWS Config服务,利用Config服务收集资产信息,配合rule进行合规性检查。

0x05 参考链接

[1] Smogcloud:https://github.com/BishopFox/smogcloud[2] Golang Installation, Setup, GOPATH, and Go Workspace https://www.callicoder.com/golang-installation-setup-gopath-workspace/

- source:tonghuaroot.com

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年8月14日14:27:31
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Smogcloud - AWS external network asset discovery platformhttps://cn-sec.com/archives/3067278.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息