Mea.ningful  .Me

而生命

redpill

BeyondCorp与零信任:关于渗透,却不关于零信任的闲扯

2019-05-07 14:27:00

本来是写BeyondCorp和零信任,想顺带提一提渗透,结果渗透部分说着说着就说多了,所以把两部分拆开了。

先说说渗透

有一种说法,不知是谁先说起的,说“渗透的本质是信息收集”,并且最近总在各处被重复提起。这两者本来是包含关系,后者是前者的手段和基础,一件事情的目的或者方法都不能成为这件事情的本质,强调一件事情对于另一件事情的重要性并不是混淆两者的理由,比如爱一个人。两者根本不是同一种东西,所以不会有它是它的关系。

人类社会工业化的结果之一是分工专业化,而渗透逐渐成熟工业化后也产生了漏洞利用分析、攻击工程化、渗透执行等专业的分工。


渗透显然不是0day驱动的,0day无力驱动一次从入口点到持久化再到获取最终目的的完整过程。生产一个0day所投入的劳动和产生的价值,与其参与单一一次渗透的总劳动量和产出的价值是不成比例的。所以0day的挖掘属于分工的另外一个专业区域,它在一次渗透过程中往往是以资源的形式参与。而渗透团队中的漏洞利用分析人员往往是在多个0day或者Nday之间做利用调试和适配的下游工作。

而随着企业网络规模的扩大、BYOD、企业间合作、云服务的使用等情况使得企业网络边界史无前例的到处蔓延,使得攻击过程的工程化变得越来越重要。其思路和工程质量会直接影响到渗透工作的效率。在安全领域的教育和业界交流(特别是在互联网行业安全部门的主导下,因为这块会与企业安全建设有一部分的重合工作)逐渐加强的趋势下,行业在基础设施、系统漏洞的信息收集方面的思路差异也逐渐收敛,但是一些细节实现上的差异还是会带来一定程度上的信息优势。C2是攻击工程化的另外一大块,这块大家公开的透明度明显不如信息收集方向。社交媒体上的开源项目和一些细节思路的文章、安全厂商的逆向博客在诉说着一些端倪,Hacking team、NSA和俄国几个恶意组织的代码泄露事件对此做出了不可磨灭的贡献。

渗透执行的角色则在以上两者提供的资源和信息的基础之上做出决策和行动,前提当然是对相应的资源和信息的理解。


我们再回到文章的最开始,关于渗透我在别处尝试过如下叙述(两个相关的PPT在这里这里(2016)

利用已有的数据交互渠道,找到交互秩序中的疏漏,进而去获得其他的数据交互渠道。

疏漏一般指信息系统和人在某些情况下会执行非预期的行为,而定义信息系统行为的点有代码、程序的配置。这些都是可以攻击的点。说个题外话,很多人会把攻击别人的程序当成是与别人在智商或者技术上较量的胜利,其实在一些情况下,攻击别人的程序仅仅利用了双方事实上分工领域的不同。找漏洞和软件研发已经成为事实上的两个专业,他们的关系和QA与研发的关系不同,在现有的实际情况当中他们两者掌握不同的知识领域。这只是当前的实际情况,我对此有一些异议,因为很多情况下程序的鲁棒性可以提供绝大部分的安全性,抵御绝大部分攻击,不安全程序的缔造者往往并不是一个合格的软件工程师,这个我在14年的博客中有专门提到过。

说远了拉回来。很多情况下,对方在配置时很清楚如此配置MySQL会接受其他主机的连接,他只是觉得没什么问题,毕竟其他主机并没有MySQL密码。系统接受其他主机的MySQL连接的行为完全在配置者的预期之内,但是这个行为则会在整体的渗透行动中串联形成了系统设计者完全预期之外的结果。在一个攻击链条中,资源和信息的组合利用是渗透执行的核心能力,而系统之间的交互则是应用这个能力的重要途径。但是在互联网诞生50年后的今天,在设计者预期内的内网宽松访问策略、无认证服务仍然比比皆是。