建了一个用户交流群,我在群里说:“Windows 是最安全的操作系统。” 立刻引发了很多有意思的观点。我在群里一个人说不过大家,先篇文章把自己的论点罗列一下。
对操作系统攻击的方式
有5类基本的攻击方式:
1、 系统口令攻击:猜测攻击、字典攻击、穷举攻击、混合攻击、直接破译攻击、网络嗅探、键盘记录、中间人攻击、社会工程学
2、 SMB/NetBIOS协议攻击:空会话攻击
3、 脚本攻击:SQL注入技术、PHP+MySQL注入技术、跨站脚本攻击技术、cookie攻击技术、WebShell提权技术
4、 恶意代码攻击:木马技术、Rootkit技术、病毒技术、蠕虫技术、网页恶意代码
5、 网络安全设备攻击:路由技术、Dos攻击、防火墙攻击
一项对参加了 DEFCON 会议的黑客的调查表明,“84% 的人使用社会工程学作为攻击策略的一部分。” 社会工程学又叫社交工程学,发起“社会工程学”攻击的人也有一个被美化的称号是社工工程师。Windows 系统因为用户基础的关系,社会工程学的攻击主要也是针对 Windows 系统。
下面大家来做一道单选题,
<iframe data-display-src="https://mp.weixin.qq.com/cgi-bin/readtemplate?t=vote/vote-new_tmpl&__biz=MzUzNjAxODg4MQ==&supervoteid=479164747&token=914410393&lang=zh_CN" data-display-style="width: 578px; height: 147px; white-space: normal;" data-src="/mp/newappmsgvote?action=show&__biz=MzUzNjAxODg4MQ==&supervoteid=479164747#wechat_redirect" data-supervoteid="479164747" frameborder="0" height="162" scrolling="no" src="https://mp.weixin.qq.com/mp/newappmsgvote?action=show&__biz=MzUzNjAxODg4MQ==&supervoteid=479164747&uin=&key=&pass_ticket=&wxtoken=777&mid=2247486616&idx=1&appmsg_token=" width="162"></iframe>
在 Windows 、macOS 和 Linux 三个用户最多的系统中,Windows 在安全方面做了更多的工作。因为其用户量不但碾压其他两个系统,其用户的技术水平也最为参差。
当然这只是个人观点。目前业界并没有全面的统计数据。甚至安全的指标都不明确。到底什么才是安全的指标呢?是 攻击成功率、被攻破次数?到底是以那个时间段作为衡量指标?衡量覆盖范围到底涉及哪些?统统没有定论,所以没有标准答案。
业界影响较大的攻击举例
案例一 Equifax 数据安全事件
2017 年 9 月,美国征信巨头 Equifax 承认 1.45 亿美国居民个人隐私信息泄露,这是该国历史上最严重的数据安全事件,以美国人口 3.2 亿计算,受影响的超过 40%。
由于征信局采集的数据涉及到消费、贷款等大量隐私数据,这让征信局成了黑客眼中的香馍馍,偏偏本次事件的主角 Equifax 的安全防范系统实在不堪一击,让犯罪分子得以利用其漏洞获取对部分文件的访问权,于是 1.45 亿用户的姓名、社会安全号码(SSN)、出生日期、地址、驾驶证号码(这相当于是中国的身份证号码)等信息就这样泄露了出去。
这个漏洞是 Apache Struts 的低版本安全漏洞引起的,其实只要及时升级版本,问题可以避免。但是特别是这种重要的应用,版本升级等变更就越困难。所以在一个新应用投产时,特别是边界应用,尽量选择无高危漏洞的版本。而事实上,新应用在选择版本时,架构师们往往并不根据实际情况,而是采取“跟随策略”。就是使用其他应用在长期稳定运行的版本。
问题是首先要考虑,如果自己的应用边界应用,并且是很多黑客觊觎的产品的一部分,安全是第一重要的,应该尽量选用无已经被发现漏洞的高级版本。因为像 Equifax 被攻击这种事情,30年也就发生一次。作为边界应用被攻击成功,不会有其他应用给做背书,一损俱损。后果还是自己扛。
案例二 Log4j2 lookup 漏洞
2021年12月9日,国内多家机构监测到 Apache Log4j2 存在任意代码执行漏洞,并紧急通报相关情况。由于Apache Log4j存在递归解析功能,未取得身份认证的用户,可以从远程发送数据请求输入数据日志,轻松触发漏洞,最终在目标上执行任意代码。
虽然有这个漏洞,目前还没有对企业造成任何损失。并且如果没有用到 Message Pattern Lookups
的程序,可以使用 - Dlog4j2.formatMsgNoLookups=true 禁用它解决问题。而且 log4j2 官方也已经为此漏洞打上补丁。其实我很想为 log4j2 说两句话。高版本的 log4j2 相比logback等其他主流日志框架更加强大,它提供了更加强大优雅的API、默认无垃圾模式运行、更强的异步性能。
Log4j2 在安全方面给我的启迪有两点:第一,尽量使用官方还在维护的软件版本。现在设想一下:假如发现 log4j2 漏洞之后,log4j2 开发者明确表示不会修复此漏洞,使用的公司们打算怎么办?第二,不要在不需要的情况下开启软件的高级特性,增加引入漏洞的几率。
总结
近年来,由于操作系统本身的问题引起的漏洞要少了上面运行的软件的漏洞。而 Windows 操作系统由于拥有更多的用户量,配套的软件也更多更全,很多都很难从官方渠道免费使用,使得携带病毒的软件有可乘之机。而MacOS由于基本只能通过官方应用商店下载;而 linux 系统上运行大多是开源软件,完全可以通过官方渠道免费下载。所以这其实使得 Windows 系统不如其他两个系统安全,这个是 Windows 从一开始的设计理念决定,这个锅 Windows 得背。
春节前我建了一个群,旨在答谢用户,用了全年收入的 1800% 给大家发了红包。之后还有很多朋友说要入群交流,不是为红包来的。非常欢迎。给出入【编程一生】用户交流群官方渠道:加微信 brmayi 注明入群。或者已经是好友的朋友可以私信我:入群。
今年红包已经发完了,要增加明年红包的预算要靠大家了。关注、点赞、在看、点广告。明年收入多少我发多少。不过目前为止大家的预算堪忧啊。