freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

HVV-Learning-006-应用安全与理解安全漏洞
非典型产品经理笔记 2022-12-24 00:05:54 221704
所属地 湖南省

#16 HVV-Learning-006-应用安全与理解安全漏洞

目录

0、前言

以前也时不时会在freebuf上看文章,但是一直没发过。忽然发现freebuf可以自由投稿。先把以前在同名公众号(非典型产品经理笔记)上写的原创内容,挑一部分发一下。

后续新内容会考虑同步在freebuf上发送。

本系列当前共14篇

1、应用安全

在 [HVV-Learning-005-互联网边界防护-不同业务类型及其发布方式] 我们了解了互联网发布(暴露)的业务类型,及其不同发布模式。接下来我们需要理解 应用暴露所带来的安全问题。

1.1、对齐语义-应用是什么

本文中所指应用,和前文[HVV-Learning-005-互联网边界防护-不同业务类型及其发布方式] 中的业务业务系统为同一含义,其包含了WEB应用、 CS应用、APP应用,既包括了邮箱、OA等后台办公类业务,也包括门户、商城等前台业务。它包含了SSH、RDP此类运维应用/业务,也包括组网设备暴露的ipsec服务、VPN/SDP提供的接入认证服务这类稍有特殊的应用。

值得注意的是,从技术角度,本文所指应用,均指有对外开放端口、以网络协议形式对外提供服务的应用。单机应用、或非网络协议应用(如通过物理串并口通信的老旧、特殊应用)因其特殊性,不在本文讨论范畴。

1.2、什么是应用安全

维基百科中有关于应用安全、web应用安全的描述,我们先看一下:

应用安全(Application Security):包括向开发团队引入安全软件开发生命周期[1]的所有任务。其最终目标是改进安全实践,并通过此来查找,修复并最好防止应用程序中的安全问题。它涵盖了从需求分析、设计、实施、验证到维护的整个应用程序生命周期。

WEB应用安全(WEB Application Security):是信息安全的[2]一个分支,专门处理网站[3],Web应用程序[4]和Web服务的安全性[5]。在较高层面上,Web应用程序安全性借鉴了应用程序安全的原则,但将它们专门应用于Internet[6]和Web[7]系统。

看完上述wiki定义后,如果是之前没有了解过应用安全的读者,估计心理活动是这样的:

为了方便理解,我们先用简单的话语,先定义一下应用安全。

1)、应用安全(定义1):是指保障应用不被恶意攻击、利用的防护能力,这个防护能力可以来自于应用自身、也可以来自于加入的防护组件(如IPS/WAF、HIDS、RASP均能在一定程度提升应用安全性)。

显然,相比外挂的安全防护措施,更优的情况下是应用自身经得起考验,能从应用开发、运行、维护的全生命周期提供充分的安全性。

问题来了:此时,再问一些过往不了解应用安全的读者,请问你现在能正确理解应用安全了吗?

针对多数人的严谨回答如下:

概念上能理解,大致知道应用安全是一种安全防护能力。

但是在逻辑上、结构上,还是很难深入进去理解清楚应用安全

怎么办?如果不能很好理解一个事物,其中一个可能可行的方法,是从事物的反面去理解。

应用安全的反面是什么?和应用安全对应的,语文角度当然是应用"不"安全,也就是应用安全风险、应用安全漏洞

2)、应用安全(定义2): 是指有较为充分的安全机制、安全过程对应用进行安全保障,使攻击者很难(不能100%)找到可供利用的安全漏洞。 简单的说,如果没有安全漏洞,应用就安全。

注:当然安全无绝对,也不能100%没有漏洞,但凡是人写的代码,就有可能存在漏洞,只是其严重程度、隐蔽与否的差异。

2、应用安全->安全漏洞

2.1、初步理解安全漏洞

上面提到,应用安全和安全漏洞是应用的一体两面,理解了安全漏洞,就能理解应用安全。

再从https://zh.wiki敏pedia感.org/wiki/漏洞[8]尝试理解一下漏洞:

漏洞\[1\][9]脆弱性\[2\][10](Vulnerability),是指计算机系统[11]安全方面的缺陷,使得系统或其应用数据的保密性[12]、完整性[13]、可用性[14]、访问控制[15]等面临威胁。在《GB/T 25069-2010 信息安全技术 术语》,将脆弱性定义为“资产中能被威胁所利用的弱点”

2.1.1、从技术视角尝试理解漏洞

开源非赢利组织OWASP(Open Web Application Security Project),专门针对web应用安全,旨在推动安全标准、安全测试工具、安全指导手册等应用安全技术的发展。

OWASP每年还会推出web应用安全的10大安全风险(见:**https://owasp.org/Top10/zh\_CN/**[16]**)**,总结了Web应用程序最可能、最常见、最危险的十大漏洞,以提升业界安全认识和安全能力。下为OWASP TOP 10-2021的名单:

对于非技术侧读者来说,上面有一部分能理解,有一部分可能就有点抓瞎了,比如说"注入式攻击"是啥?

如果说上面的内容,非技术侧读者还可以勉强连蒙带猜,还可以搜索"常见安全漏洞"等,技术视角的画风大概是这样的:

哪尼?什么是SQL注入、什么是SQL盲注、XXE漏洞又是什么?

2.1.2、从逻辑视角尝试理解漏洞

所以说,要能理解一个问题,最好不要一开始就深入到技术。概念、逻辑、技术是需要层层深入的。

概念理解上,漏洞可以简单理解为一种应用可能被伤害的途径。

从逻辑上怎么理解?我们举例栗子。

有些读者虽然过往不了解应用安全,我们以大家耳熟能详的应用,比如说QQ、微信为例,当提到应用安全或应用不安全的时候,第一反应可能是**"账号丢了"、"手机丢了"** ,第二反应是,"是不是QQ官方自己出了问题"。

我们说,小人国居民看大象,有很多个视角,看到粗壮的大腿,是大象(的一部分),看到挥舞的象鼻,也是大象(的一部分),虽然一次看不全,但是多个关键视角的组合,就能形成大象的全貌

而上面QQ微信的栗子,就是我们理解应用安全、理解安全漏洞的关键视角之一。

从上面我们就可以总结一部分,漏洞至少会包含有两种。

主体相关:电脑丢了、账号丢了就是其典型。

客体相关:在主体未出问题(电脑不丢、账号不丢)的情况下,应用自身出的其他安全问题。

但是我们明显能发现,上面的理解维度太粗了,时间关系,此处不在啰嗦,这里直接给出一个逻辑层面的漏洞理解模型总结(忽略推导过程)。

注:这个理解模型,并非标准,只是其中一个可行的视角,小人国看大象,有N个视角,故各位读者也可以自行总结。如果有更标准、更优的,可以知会我,感激不尽。

如下图。从应用视角出发,用户访问应用的过程如下:

1)、 应用通常由一个运行环境承载,该运行环境称为系统(System),该系统有可能是Docker,有可能是虚拟机操作系统,也有可能是物理操作系统,甚至可能还有其他类型(如serverless,此处不展开),可简单理解为操作系统。

2)、针对(中)后台应用,多数都有认证授权,用户需要认证(Authentication)成功、并按授权(Authorization)正常访问应用。即使是前台应用,也有一部分是有认证授权的,如电子商城,用户只能看到自己的购买记录。

3)、用户访问应用的过程,通常会被审计(Audit)

4)、应用通常都有数据,存放在运行环境之中(根据实现的不同,可以是数据库服务、也可以是磁盘文件、甚至内存)。

5)、应用(确切的说是网络类应用),都有对外暴露的端口(如8080、443、22、3389等),供用户访问其服务。

2.2、LBCB-泄漏、绕过、控制、破坏

从漏洞的效果维度,可以总结为泄漏(Leakage)、绕过(Bypass)、控制(Control)、破坏(Break),可简称为LBCB

泄漏(Leakage) - 泄漏认证凭证与数据:认证凭证是指能使攻击者登录的要素,如账号密码、证书文件等;而数据在此则指除认证凭证以外的内容。比如说可以对应ATT&CK框架中的 TA0006 Credential Access 凭证获取相关漏洞、目录遍历 、SQL拖库等漏洞,都在此列。

绕过(Bypass) - 绕过认证和授权:认证主要用于确认使用者是否是本人;授权则基于用户身份,给予一个权限清单。 绕过认证相关漏洞典型的技术方式有,Spring Security身份认证绕过漏洞 (CVE-2022-22978)、CVE-2022-23131 Zabbix SSO认证绕过漏洞。打个形象的比方,就好比一栋房子有两扇门,一扇需要输入密码,一扇门需要插钥匙。结果输入密码的门,输入错的密码也能通过、或者有一个万能密码可以通过;插钥匙的门,插一根针进去也能开门。

注:如果对认证和授权想更多了解一些的,可以参考Auth-Learning系列。

控制(Control) - 控制应用与系统:通过获取到应用的特权(如管理员权限),或应用所运行外部系统(通常是服务器主机、docker容器等)的特权(如管理员权限、系统权限),既能够对系统进行进一步的窃取和破坏,也能够通过系统向其他应用、主机系统进行进一步的横向渗透。

破坏(Break) - 破坏可用性和审计:通过对目标应用的可用性进行破坏,使应用不能提供服务,如拒绝服务攻击。通过对目标应用的审计能力或审计信息进行破坏,一方面可以隐蔽攻击者自身,避免被发现异常,另一方面也可以使防守方无法追溯攻击者的操作,从而无法抓住攻击者。

2.3、进一步理解漏洞-贯穿逻辑和技术、拉通效果和手段

LBCB是在逻辑层和效果层对安全漏洞的理解,但是我们会发现,业界当前很多漏洞说明,都是偏技术侧的。所以为了能将沟通语言达成一致,让非技术侧安全人员也能更好理解漏洞,我们需要想办法将两者拉通,实现逻辑和技术、效果和手段的对应。

我们来举一个栗子。

2.3.1、 MS17-010永恒之蓝漏洞

MS17-010由多个CVE漏洞组成,分别是CVE-2017-0143、0144、0145、0146、0147、0148。

先看下MS17-010的官方说明,通过基官方说明 https://docs.microsoft.com/en-us/security-updates/securitybulletins/2017/ms17-010[17]或者 MSRC上的CVE链接

https://msrc.microsoft.com/update-guide/vulnerability/CVE-2017-0143[18],可以看到其说明如下:

远程执行代码漏洞存在于 Microsoft 服务器消息块 1.0 (SMBv1) 服务器处理某些请求的方式中。成功利用这些漏洞的攻击者可以获得在目标服务器上执行代码的能力。 若要利用此漏洞,在大多数情况下,未经身份验证的攻击者可以向目标 SMBv1 服务器发送特制数据包。

可以看到微软对该系列漏洞,其中5个,使用了Critical严重的标注,并且说明是**远程代码执行(Remote Code Execution)**; 1个使用了Important重要,信息泄漏。

在上面可以看到,引入了“远程执行代码”的技术概念。同时,通过"永恒之蓝 漏洞 CVE"为关键字进行检索,检索出一些信息,标题里又提到"远程溢出漏洞"

继续通过"永恒之蓝 漏洞影响"等关键字进行检索,可以看到有相关漏洞影响的说明,如下:

只要用户主机开机联网,即可通过该漏洞控制用户的主机。

经过上述总结,结合前面的LBCB,我们可以按如下方式理解该漏洞:

永恒之蓝

漏洞名称:永恒之蓝,MS17-010, CVE-2017-0143(至0148)组合

逻辑效果:控制(Control) - 控制应用与系统- 能通过该漏洞控制用户的主机,获取最高权限。

逻辑手段:通过技术上的方式,能远程执行任意代码、命令,进而达到上述逻辑效果。

技术效果远程代码执行- 可以远程执行代码、命令。

技术手段:缓冲区溢出— 技术侧因素,暂无需理解,后续有机会再单独分析。

通过区分逻辑和技术、区分效果和手段,有助于我们更好理解漏洞。

一句话总结:永恒之蓝漏洞,攻击者能够通过缓冲区溢出实现远程代码执行,从而能够在远程主机上执行任意代码,可获取受攻击主机的最高权限,实现控制(Control) - 控制系统

如果再结合ATT&CK框架(可参考 《HVV-Learning-003-浅析ATT&ck和Cyber Kill Chain》)进一步理解,该漏洞至少有助于实行下述两个战术(执行命令、权限提升):

1)、TA0002 Execution 命令执行:尝试运行恶意代码,执行命令。

2)、TA0004 Priiege Escalation 权限提升:通过漏洞等方式来提升访问权限,如从普通用户权限提升至系统权限、管理员权限等。

2.3.2、列举一些常见的技术手段

{{标题党}}

{{为避免本文逻辑复杂度过高,取消本节}}

2.3.3、再补充一个漏洞

Zabbix(一个主流的运维监控系统,可以监控大量主机的健康运行情况),曾爆出一个认证绕过漏洞,CVE-2022-23131,可见官网链接: https://support.zabbix.com/browse/ZBX-20350[19]

如下图,可以看到其信息如下:

危害级别:严重(Critical)。

描述:在启用了 SAML SSO 身份验证(非默认)的情况下,恶意执行组件可能会修改会话数据,因为未验证存储在会话中的用户登录名。

我们同样按上述方式分层来对漏洞进行逻辑和技术结合的理解。

Zabbix SSO绕过

漏洞名称:Zabbix SSO绕过漏洞,CVE-2022-23131

逻辑效果:绕过(Bypass) - 绕过认证和授权- 能实现无需密码,即可登录任意已存在的用户。

逻辑手段:通过技术手段伪造用户凭证,绕开认证校验。。

技术效果:可以解密并伪造用户凭证。

技术手段:解密本地session凭证并进行篡改(服务端缺乏有效校验)

注:技术侧读者可以到这里( https://cloud.tencent.com/developer/article/2010001[20])看详细一些的攻击复现过程,攻击过程比较简单,很容易理解。

一句话总结:CVE-2022-23131,Zabbix SSO绕过漏洞,攻击者可以通过解密本地session凭证并进行篡改实现用户凭证伪造,从而绕开认证校验,进而实现无需密码、登录任意已存在的用户,实现绕过(Bypass) - 绕过认证和授权

2.3.4、OpenSSL拒绝服务漏洞(CVE-2022-0778)

CVE-2022-0778是一个拒绝服务漏洞,属于 破坏(Break) - 破坏可用性和审计中的破坏可用性。

针对此漏洞,在链接( https://www.secrss.com/articles/40384[21])中有很多信息,还可以通过搜索引擎进行更多查询,建议自行结合LBCB尝试理解一下(熟手可忽略)。

参考资料

[1]

软件开发生命周期: https://en.wiki敏pedia感.org/wiki/Software_development_life_cycle

[2]

信息安全的: https://en.wiki敏pedia感.org/wiki/Information_security

[3]

网站: https://en.wiki敏pedia感.org/wiki/Website

[4]

Web应用程序: https://en.wiki敏pedia感.org/wiki/Web_application

[5]

Web服务的安全性: https://en.wiki敏pedia感.org/wiki/Web_service

[6]

Internet: https://en.wiki敏pedia感.org/wiki/Internet

[7]

Web: https://en.wiki敏pedia感.org/wiki/World_Wide_Web

[8]

https://zh.wiki敏pedia感.org/wiki/漏洞: https://zh.wiki敏pedia感.org/wiki/漏洞

[9]

[1]: https://zh.wiki敏pedia感.org/wiki/漏洞#cite_note-1

[10]

[2]: https://zh.wiki敏pedia感.org/wiki/漏洞#cite_note-GBT25069-2

[11]

计算机系统: https://zh.wiki敏pedia感.org/wiki/计算机系统

[12]

保密性: https://zh.wiki敏pedia感.org/wiki/保密性

[13]

完整性: https://zh.wiki敏pedia感.org/wiki/完整性

[14]

可用性: https://zh.wiki敏pedia感.org/wiki/可用性

[15]

访问控制: https://zh.wiki敏pedia感.org/wiki/访问控制

[16]

https://owasp.org/Top10/zh_CN/: https://owasp.org/Top10/zh_CN/

[17]

https://docs.microsoft.com/en-us/security-updates/securitybulletins/2017/ms17-010: https://docs.microsoft.com/en-us/security-updates/securitybulletins/2017/ms17-010

[18]

https://msrc.microsoft.com/update-guide/vulnerability/CVE-2017-0143: https://msrc.microsoft.com/update-guide/vulnerability/CVE-2017-0144

[19]

https://support.zabbix.com/browse/ZBX-20350: https://support.zabbix.com/browse/ZBX-20350

[20]

https://cloud.tencent.com/developer/article/2010001: https://cloud.tencent.com/developer/article/2010001

[21]

https://www.secrss.com/articles/40384: https://www.secrss.com/articles/40384

相关:

#16 HVV-Learning-006-应用安全与理解安全漏洞

#13 HVV-Learning-004-区域边界网络下的攻击链路与攻击事件(BLA&UKC)

HVV-Learning-003-浅析ATT&CK和Cyber Kill Chain

#7 HVV-Learning-002-攻防演练的典型网络以及攻防现状(2021)

HVV-Learning-001-初步了解网络安全攻防演练

# 网络安全 # 安全漏洞 # 攻防演练 # 网络安全技术 # 攻防对抗
本文为 非典型产品经理笔记 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
零信任SDP-安全技术交流
非典型产品经理笔记 LV.5
公众号:非典型产品经理,techpm2021 从软件开发到技术架构师再到产品经理,记录一个非典型产品经理的那些事儿。
  • 19 文章数
  • 52 关注者
全面探究SASE云化:甲乙双方视角下的收益与挑战
2023-03-19
ZTA-01-1分钟搞定零信任的N个名词概念
2023-03-11
#47 A004-B端产品经理小A故事-探秘如何成功孵化新产品-收发可控 (1)
2023-02-22
文章目录