首页 2.EASM(外部攻击面管理)分析
文章
取消

2.EASM(外部攻击面管理)分析

1. 前言


笔者有幸从事这方面的工作,在17、18年国内还没有EASM这个概念之前,就有做过类似的研发工作。也借此机会,跟着当前热度,分享一下对EASM的看法😄。

以下的内容,大部分是根据笔者的经验编写,如有错误的地方,请指出。

2. 什么是EASM?

External attack surface management (EASM) refers to the processes, technology and managed services deployed to discover internet-facing enterprise assets and systems and associated vulnerabilities which include exposed servers, credentials, public cloud service misconfigurations, deep dark web disclosures and third-party partner software code vulnerabilities that could be exploited by adversaries. EASM provides valuable risk context and actionable information through: Monitoring continuously for exposed assets and asset discovery for external-facing assets and systems Analysis to assess and prioritize the risks and vulnerabilities discovered External attack surface management is a top priority for security teams and security risk managers.

翻译一下:外部攻击面管理(EASM)是指为发现互联网的企业资产以及相关漏洞而部署的流程、技术和托管服务,这里面包括暴露的服务器、凭证、公有云上配置错误的服务、暗网站点泄漏和第三方合作伙伴的代码漏洞(供应链安全)。EASM通过以下方式提供有价值的风险上下文和可操作的信息:持续监控暴露的资产和发现面向外部的资产和系统,并分析评估这些资产的风险和漏洞并确认其优先级,外部攻击面管理是安全团队和安全风险经理的首要任务。

简单提炼一下里面的一些关键词,方便大家理解:

  1. 持续发现和监控在外暴露的资产
  2. 评估这些资产的风险和漏洞
  3. 确认其风险的优先级

核心强调的几个点:发现和监控暴露的资产,并分析其存在的风险和漏洞,然后按风险的优先级排序,这里是一个递进的过程。

此外,还有一点是,「外部攻击面管理」强调的是“以攻击者视角去看待企业的暴露面及可能存在的风险”。

Untitled

那么,怎么定义在外暴露的资产,哪些算是,哪些不是呢?

广义上来讲,我认为只要是该企业的并且是可以通过外网获取到的,都算是暴露的资产。例如:公网可访问的web站点、APP、公众号,又或者是暗网上贩卖相关的帐号信息、源代码等等。

根据上图,我们也衍生出了一种定义方式去对其中的能力项进行分类:

  1. 互联网资产发现能力(发现暴露在外的服务器资产等相关信息)
  2. 风险发现能力(包含漏洞、数字资产风险)

上述的话术还是过于笼统地去介绍了网络暴露面和数字资产风险,笔者展开分享下自己认为的EASM应该在「互联网资产发现」和「风险发现」上都应该具备什么内容的能力。

  1. 互联网资产发现能力

    通过扫描、测绘、爬虫等多种技术手段去帮助企业发现互联网上存在的资产,包括但不限于:

    • 企业的架构关系,父子孙公司
    • 企业的根域名信息
    • 子域名信息
    • IP信息
    • IP:Port信息(含web与非web)
    • 证书信息
    • 移动端信息(APP、公众号、小程序)
    • 供应链信息
  2. 风险发现能力

    风险发现这里会细分成两个部分,一部分是关于「互联网资产」的风险点,另一部分是「企业数字资产」的风险点

    互联网资产的核心风险点主要还是集中在漏洞,而数字资产风险主要有:

    • 代码泄漏(github、码云等)
    • 网盘泄漏(百度云盘之类)
    • 文库泄漏
    • 暗网泄漏(茶马古道、tg等等)
    • 仿冒、篡改、黑链

以上,就是笔者对EASM的一个简单介绍,相信阅读到这里,你应该对「外部攻击面管理」(EASM)有了一个简单的了解了。下面我会再详细对EASM进行介绍和分享。

3. EASM和传统安全产品的区别是什么?

EASM和传统安全产品的区别是什么?大部分企业安全建设,会在内网当中部署三件套或者是四件套,哪三件套和四件套呢?在边界部署「防火墙」,内网部署「态势感知」,终端部署「终端管理」(EDR),安全团队再部署「安全运营平台」(Soc或者是Soar之类的)。

笔者来看,前面提到的「防火墙」、「态势感知」「EDR」都属于传统安全产品,它们的作用更多是偏事后预防居多(攻击者正在攻击我,进入内网,我通过一系列的操作可以减缓攻击者的攻击速度和对它进行阻挡)比较被动,只有“挨打了”之后才能知道有一些遗漏的途径可以被攻击,容易出现“道高一尺,魔高一丈”的情况。

且随着数字化转型和企业快速发展,企业的外网资产也在不断地快速上线,而很多企业的外网资产并不是由统一部门进行收口管理的(例如:公司的各个部门都可以自由对外发布站点),导致企业最终也不清楚自己有多少资产对外暴露开放

而EASM更强调地是以“攻击者视角”去发现外网暴露的资产和风险,并且尽量确保与攻击者的能力去对齐,做到发现攻击者所能发现的资产。将这些攻击者可能会发现的资产以及它的风险进行排序,推动企业安全建设,使得这些可能会被攻击者发现的资产的风险系数降低。

简单对两者做一个总结和对比:

传统安全产品EASM
以用户访问的流量进行分析为主以攻击者视角去进行资产发现和风险发现
更偏关注内网资产安全更关注外网资产
只要告警、事件出现才可采取措施,比较被动可主动出击,主动发现存在哪些暴露面和风险

4. 对企业安全建设有什么补充?

上面其实也简单提到了企业数字化转型带来的问题,除了数字化转型外,还会有很多场景导致这些问题的发生,例如:收购合并公司、采买第三方SaaS平台的业务等等,这些场景多了之后,资产就容易变得混乱。

那么EASM对企业安全建设有哪些补充?笔者认为有以下几点:

  1. 帮助梳理清楚资产,与内部安全建设登记的资产形成互补关系

    企业内部的资产梳理,我的定义是属于“上帝视角”,也就是理论上来讲可以整理清楚都有哪些内容,当然实际情况下我们并没做到这种程度,需要引入另外一种方式来进行补充梳理。而EASM属于”攻击者视角“,并不能将企业的所有资产都全部梳理清楚,但是能看到攻击者能看到的部分。用文字表述可能不是很清晰,我们用一张图片来展示就很清楚了。

    Untitled

    通过互补的方式,希望攻击者视角+企业内部梳理视角能无限接近「企业所有资产」。

  2. 以攻击者视角发现资产,按攻击者视角对资产进行优先级排序,帮助风险消除

    攻击者视角发现的资产,意味着攻击者随时可能可以访问到这些资产,相较于「企业内部梳理发现的资产」的风险系数要高得多,需要优先处理这些资产。

    攻击者视角发现的资产,会带有更多的「攻击者希望看到的上下文信息」,例如:「资产是否云上」、「是否CDN」、「是否使用WAF」、「组件指纹」、「是否登陆入口」、「是否存在敏感目录」、「是否蜜罐」等等。这些上下文可以有效帮助安全人员有效决策资产的风险情况,是否需要优先处理。

5. 关键技术点是什么?

上面洋洋洒洒写了比较多关于EASM科普和理念相关的内容,那么这个章节主要介绍一下笔者认为比较关键的技术点。这里主要还是分析关于传统资产暴露面的技术点,数字风险的技术点未来大家感兴趣我再专门写一篇文章进行分享。

笔者认为,关键技术点有以下几个:

  1. 影子资产的收集能力

    过去的信息收集方式(譬如:通过子域名的方式去收集到IP地址以及URL站点),可以覆盖到企业的一部分资产,这类的开源工具已经非常成熟和普及。随着攻防对抗的升级,过去的收集方式得到的信息已经被攻防双方知悉,防守方也开始去使用这类的工具对企业进行自检,导致这类工具获取的信息对攻击方的价值在逐渐减少。

    而在实际攻防当中,往往攻击方突破防守的重要路径,都恰恰来自一些影子资产(影子资产定义:企业自身未知,但对外暴露的资产)。那么过去对攻击队来说,这些资产是怎么发现的呢?我举一两个例子,大家就能理解了。

    • 例1:通过找到企业的手机安装包(apk),使用逆向工具将其转化成源码,从源码中发现硬编码的网络资产信息

      我们现在手机上装载的软件,绝大多数都是需要联网的,那么程序联网时要去访问哪些网站或者是接口?绝大多数都是硬编码在程序中的。

    • 例2:通过提取企业的关键字,使用空间测绘进行搜索,发现影子IP

      例如,国内企业都需要进行网站备案,备案后的网站要在站点中加入备案信息。那么利用这个思路,在空间测绘中使用类似icp=”xx”或body=”icp备案号”的语法去发现这些资产。

    • 例3:通过访问企业网站多级目录下的页面,分析网页加载时的js信息,从中提取出网络资产

    上述这些寻找资产的方法是不是都觉得比较简单?但是都是通过机器+人工的方式去进行分析和挖掘,互联网上的数据资产比我们想象的要乱的多。如例2的语法进行检索之后,会出现大量和目标企业不相干的资产,需要人工分析和提炼。

    Untitled

    例:上图中使用fofa用了某BAT的备案号进行搜索,排在第二个的资产就出现了引流站点

    所以如何能更自动化、低误报地帮助收集影子资产,是一个关键能力。

  2. 持续监控的能力

    因为EASM不是一次性的平台或服务,是需要长期对企业的资产进行关注,所以需要有7*24的监控。那么监控的核心点有两点:「已有资产的变化情况」「企业的新增资产发现」。

    这两个技术点相对前者而言会容易一些,技术关键点在于怎么去优化监控策略,要去平衡成本、高响应速度、以及减少因监控导致对企业资产DDOS情况。例如:对已有资产的回扫机制是什么样的?定时每天进行,还是按月?回扫部分端口,还是全量回扫?怎么样算是变化,是网页报文出现细微变化就认为是变化,还是标题或指纹出现变化才算变化。诸如此类的细节问题会比较多,稍有不慎就会带来大量无效的机器开销以及客户的不理解。

    所以,对于监控的业务形态设计需要做深入考量,从监控策略到变更展示都要做关注。


  3. 风险排序的能力

    偏中大型的企业对外暴露的资产数量是比较夸张的,普遍可能有上千个。以什么维度对这些资产进行分析,除了挑选出明确「存在问题」的站点外,以及「攻击者感兴趣」的站点。

    怎么理解这两类的站点?我的理解是:

    “明确存在问题的站点”:通过人工/机器的方式识别到存在问题,如:存在明确可利用的漏洞,或者存在敏感信息数据泄漏。

    “攻击手感兴趣的站点”:例如后台系统、邮箱系统、SSO统一登陆等等。

    挑选出这些站点之后,按什么规则对其进行排序,推荐给企业客户进行优先处理,这里也是一个关键的能力项。

6. 写在最后

第一次写这么长的文章,如有描述不清的还请谅解。后续我会在blog中持续更新「网络安全」相关的一系列内容。

7. 参考链接

本文由作者按照 CC BY 4.0 进行授权

1.自研信息收集工具分享

3.钓鱼常见套路最简单的防护方法