永恒之蓝病毒事件所引发的运维安全行业新思考

  1. 云栖社区>
  2. 博客>
  3. 正文

永恒之蓝病毒事件所引发的运维安全行业新思考

技术小阿哥 2017-11-27 11:44:00 浏览1040
展开阅读全文

一、NSA “永恒之蓝” 勒索蠕虫全球爆发

wKiom1kbtGmjhAsJAAMNKpfdpH0340.png-wh_50

2017年5月12日爆发的 WannaCry勒索病毒肆虐了全球网络系统,引起各国企业和机构极大恐慌。而这次受害最严重的是Windows系统,自然也被锁定为怀疑对象,有人认为正是因为该系统对于漏洞的麻木和疏漏才导致了此次勒索病毒的蔓延。作为受害者的微软却将矛头指向美国国安局(NSA)和永恒之蓝。不法分子利用永恒之蓝漏洞攻击Windows系统,造成系统锁定,从而进行勒索,否则将删除所有信息

就WannaCry勒索病毒呈现的特征而言,面对新时期网络威胁新常态,已由网络安全向数据安全转变、由被动防御向主动保护发展的趋势。目前,国内从事核心数据安全、采取主动防御措施的产品和企业还不多见,这也是国内网络安全市场的蓝海领域

面对WannaCry勒索病毒带来的恶劣影响,我们想追问,这个NSA永恒之蓝是什么?Windows系统又存在哪些漏洞?目前微软面对勒索病毒采取了哪些措施?在此次病毒攻击下,我国损失惨重,我国面对网络安全又该何去何从? 


二、NSA永恒之蓝勒索病毒是什么 
wKioL1kbtZvwtUGpAAiirzSMSgA022.png-wh_50

NSA是美国国家安全局的英文简称,永恒之蓝是不法分子利用了美国国家安全局网络武器库中泄漏出的黑客工具。5月12日爆发的 WannaCry勒索病毒就是不法分子利用永恒之蓝这款黑客工具攻击电脑系统而引发的。据报道,NSA永恒之蓝可以远程攻破全球约70% 的Windows系统漏洞利用工具。目前有消息称,NSA永恒之蓝针对安装有微软公司windows系统的电脑和服务器的安全漏洞,可能会被用于攻击全球银行系统

三、Windows系统存在什么问题 
wKioL1kbtN2QCbNJAAZw7Z2Uh0k909.png-wh_50
本次永恒之蓝勒索病毒能席卷全球其实是利用了微软的MS17-010漏洞,MS17-010是Windows系统一个底层服务的漏洞,通过这个漏洞可以影响445端口。黑客就是通过在网络上扫描开放的445端口,然后把蠕虫病毒植入被攻击电脑,被控制的电脑又会去扫描其他电脑,最终以多米诺骨牌的方式不断感染其他电脑

被重点攻击的Windows系统包括Windows Server 2003、Windows 7、Windows 8、Windows 10、Windows XP。针对这次攻击,微软也发布了补救措施,安全补丁下载地址:https://technet.microsoft.com/zh-cn/library/security/ms17-010.aspx 

从掌握的数据看,我国在此次WannaCrypt 勒索病毒攻击下已造成一定影响,虽然作为重点攻击的445端口已被国内主干运营商关闭,但校园网和国内重点企业和机构都是我国基础信息和核心数据的掌控者,一旦遭遇侵袭,影响不堪设想 


四、谈谈企业运维安全

wKiom1kbtlew1CvMAAEbcuvEwlE695.png-wh_50

1、主动与被动发现漏洞
这里的主动是指安全工程师主动去做的事情,而被动并不是被动挨打,而是积极去获取信息,积极防御

因为攻防之间信息不对称,很多攻击、利用方式及漏洞安全工程师不一定能第一时间获取到信息,就导致了服务器被黑,出现被上传webshell无外乎这集中情况:

使用开源程序出现高危漏洞被攻击者上传webshell,服务器配置错误导致攻击者利用运维缺陷上传webshell,程序员编写代码存在诸如sql注入、文件包含,命令执行问题被攻击者发现并利用导致被上传webshel,那是不是说作为防御者我们就一定是被动挨打的呢?答案当然是否定的,如果运维安全做的好的情况下,会在服务器上线初期做安全检查将加固服务做成加固基线包,后期邀请外部人员进行渗透测试来检查企业安全情况,安全基础就牢靠

从主动来说,企业可以通过这些办法来将攻击者的想法消灭在萌芽之中

1、积极主动的做好对系统加固工作,坚决消灭弱口令、回收外网默认管理后台(能回收的回收,不能回收的做好访问控制),对诸如tomcat、jboss、resin之类的服务器做好加固,避免出现弱口令,因为互联网上每时每刻都有人来通过这几种服务来抓肉鸡

2、对于漏洞的修复不能只仅限于加固还要主动去发现,需要定期对生产环境和web进行扫描、其中外网端口扫描需要结合资产进行,如果不能结合资产,扫描的结果会差强人意

3、对企业所使用的开源程序另外诸如webserver、第三方中间件都有深入了解,并关注这些app近期存在安全风险:
比如struts漏洞,如果能早发现事情也可控制(通过关注乌云、微博等来及时获取信息)

其次是权限控制,在struts漏洞中,使用root运行的struts2,受影响最严重而运行权限为tomcat之类的较轻,较轻不是说不被脱裤,而是攻击者没有权限对服务器来做更进一步操作比如rm -rf /,所以对于权限的控制也需考虑到加固中去

4、被动发现漏洞可以依靠对乌云等平台的漏洞提交来预测可能爆发的漏洞情况,并且结合第3点对应用做检测,如果发现漏洞了则快速修复,将不会到被攻击者上传webshell的情况


2、监控为主分析为辅
监控的重要性不需要在陈述,在城市的各个角度都有监控摄像头,监控的作用是属于事中或者事后阶段

举个例子,某人犯罪如果没有监控的情况下,无法追溯,这时候如果有监控的话就可以对其行为做分析和追溯


举一反三,在企业安全防护方面也可以这样做,通过部署ossec之类的行为监控,对攻击者的行为做检测。比如对于webshell的检测来说,更关注”行为”,啥叫行为呢,你的一举一动都是行为,上传了文件,修改了权限,删除了权限这些都该被记录下来,而类似ossec之类的监控工具可以做到,当然你也可以编写脚本来对目录做实时检测。分析为辅,可以从多点上来结合,比如攻击者对于网站的注入行为,都会触发记录,记录到log里,攻击者对ssh的扫描行为,都会被记录到日志里,而这些都可以用作对攻击者的行为分析,更超前一些恶意的扫描都可以算作是行为,并且这些行为都是可以分析和追溯攻击者的,其次日志需要备份到远程,并且可以利用大数据日志分析利器splunk来对日志分析,备份到远程也导致了攻击者删除本机日志时能被追溯到。对于webshel检测来说,可以从日志里进行分析,因为任何攻击者的操作都会在日志里显现记录,这时候只要有足够的日志分析能力就可以对产生的webshell揪出来,使攻击者无处遁形


最后说说运维安全,运维安全工作本来其实是工作范畴的事,但运维做不好这部分工作或者说大多数运维对安全的理解并不深入,所以企业有了运维安全这个职位,或者你可以把它叫做安全运维,运维安全需要有较宽的知识面来撑起企业安全的一片天


五、安全运维工程师行业分析

wKiom1kbt9TilQ4aAAZNUfMs69s408.png-wh_50

安全工作需要彼此的信任感,未来的饼永远没有现在的饭香
安全行业是很现实的东西。网络安全不是一个人能掌控的,需要团队


下面来说说安全运维的四个核心技能


(1)渗透测试与漏洞挖掘

安全运维工程师有别于运维工程师的最大差别就是拥有攻防技能 而依仗攻防对抗的思维来构建企业安全体系,

也是安全建设中不可或缺的一部分;开头的内容听下来,我大概理解到安全产业大致有甲乙黑三方存在:

黑产=黑客
乙方:安全厂商
甲方:安全运维


“攻击溯源”的能力上乙方比黑客高:因为乙方掌握了几乎所有的攻击点

渗透分为Web渗透和系统渗透。提高渗透技能的方法有实战、模拟、阅读文章报刊和线上学习

渗透这一技能除了需要各种编程技能基础外,还需要掌握运维配置、心理学、懂人际交往和逻辑推理等

总之,这是一个需要多门技艺综合应用的职业技能

尽管开发能力上相比专业程序员有所不及,运维能力上也不如运维工程师


渗透学习很痛苦。初期学习途径:论坛,HTML拷贝到软盘里仔细阅读。漏洞那一块涉及到比较多企业中应用的知识,包括建立漏洞库和漏洞反馈机制。印象比较深刻的就是自动化检查漏洞的概念,即通过定制化脚本实现自动化漏洞检查。还有一个比较新颖的思路,是从漏洞重灾区分析漏洞趋势,反推漏洞源头


(2)安全监控与安全部署

安全监控防御三要术:可知、可控、可信。 安全部署从基线扫描开始,配置安全

Web安全、策略部署、架构风险等

你需要的不仅仅是标准, 还需要实实在在能落地的方法论

安全监控属于被动式的安全


(3)应急响应与资产巡检

审计维度包括:服务器审计、代码审计、日志分析和渗透测试

入侵分析方法是当入侵发生以后,我们需要从现有的情报中分析整理出对当前情形有利的资料

入侵分析需要一定的逻辑推理能力,应急响应需要积累相当程度的经验


应急响应中溯源的技巧:蜜罐、内部大数据、外部威胁情报和渗透团队

资产巡检属于主动式安全,资产巡检可以自动化

但需要考虑成本,有重点的监控对象:管理入口、数据区、接口、网络边界、DMZ

监控平台的选择是一个比较现实的问题,分三种选择方案:

开源(没钱没人力时)、闭源(有钱没人力开发)、造轮子(有钱有人力/自己开发/可定制)


(4)职业规划与人生巅峰

安全运维工程师发展路线:甲方->乙方(技术向)、乙方->甲方

(管理向,为企业定制安全体系、培养安全人才,相对轻松稳定)

甲乙方创业(综合向,比较自由,利用甲方获取到的人脉、乙方获取到的技术,变现)

在甲方可以获取人脉,做技术在乙方做比较好,只做甲乙某一方面的前途都比较黯淡

谈了一些安全圈的轶事,对安全圈的理解,什么技术大牛、偶像派、霸道总裁

说了一句我比较认同的话:幸福是一辈子的追求

最后提了一下,在商业交涉的时候法律武器是重要的依仗


六、对运维行业的新思考

wKioL1kbt0rDIjxaAAT2_geY2FA889.png-wh_50

下面分别摘抄了几个运维技术大佬们对运维的看法,希望对我们大家都有所启发


dccmx,IT、互联网、搞技术的


这个跟如何定位运维工作以及如何要求运维工作有关

有没有趣不好说,但是如果说有没有挑战,那是肯定有的,这里就说说运维的挑战


运维本身范围很广,从基本的资源管理、配置,到数据库维护、应用的部署

再到事故的分析处理。到处需要技术与智慧。和业务开发一样,只要量一上来,什么都是问题


如果仅仅把自己的工作定位于帮开发准备一下机器,部署一下应用,删一删垃圾文件,再盯一盯机器

然后,做这些事情的时候就按照最普通的手工方法一步一步做,一个人做不来,就两个人做

一天做不完就两天做完,反正能在某个时间做完就行了。如果这样,很快工作就会变得枯燥乏味


如果把要求提高,能够用最少的人,花最少的时间和精力

将这些基本的事情做漂亮,后续监控不要人肉盯,那就很难了


如果再进一步,想反过来促进开发,让开发人员在开发的时候就想到这个业务需要怎么样来运维,那挑战就更多了

此外,突发事故的处理也是极需要技术和经验的,这里的挑战很多,技术和经验的积累不必多说

另外我觉得很关键的一点是,运维有没有渗透到业务的开发中


总结来说就是一句话——就看你喜不喜欢挑战。如果你喜欢挑战,那就是有趣的;否则,就是个打杂的


张麒,System Admin


认为运维是打杂的公司,他们的内部IT一般不会好,有可能一团糟
首先从运维工作的性质来讲,在任何公司都是一种“服务型“岗位

如果运维搞不好,会严重影响公司的发展,尤其是IT公司

打个很简单的比方,公司的内部网络需要维护,文件服务器、BBS、邮件等等

非技术类的工作还包括固定资产管理、设备选型、采购

另外就是日常办公设备的维护、保养……也许工作比较杂,但绝对不是一个打杂的


第二来看看运维做的事情:


1、同事上不了网、系统中病毒了、打印机挂了都需要去迅速解决。这是大部分运维工程师都会遇到的事情

但是,如何能让这些情况尽可能少的发生,并且发生之后在最短的时间内恢复则是需要下一番功夫研究的


2、服务器维护。能够同时维护Windows和Linux服务器的运维你们伤不起啊!

不要以为Windows就是简单的点几下鼠标,也不要以为Linux像传说中那样百毒不侵

进能调sendmail、postfix、nginx……退可玩Exchange、IIS、SQL Server……这样才叫运维工程师


3、网络维护。有钱人玩Cisco,穷人折腾华为……路由不用路由器反而弄个Linux PC玩iptables


4、高级任务。这块儿能做的就非常多了

例如性能调优、系统维稳、非常见故障响应、协同开发人员等等,说起来最简单,做起来最复杂


当然我说这些并没有完全包含运维需要做的事情,但都是Ops需要知道的

这些工作并不是每天单纯的coding,还需要大量的(英文)文档阅读、思考,或者体力活

所以,有没有趣就看个人喜欢不喜欢这种工作方式,也许有的人以不停的coding为乐趣,有的人则以这种杂事为乐趣


李虓,someone who still have dream


以前做过开发,现在在做运维

这个职位普遍有很多误解,因为出现的时间和发展的时间不够长。简单说说我的理解:


互联网运维的目标就是保证产品(网站/应用)能够正确无误的运行以支持整体商业目标

(提供服务/提供新闻/提供...) 规模上去之后你会发现这个运维可以包括太多的东西,也可以细分成无数的子部门


互联网公司的一个特点应该是快速开发周期,在SOA的框架下可以分成很多小service

如此多的service在开发、发布的过程中遇到的一系列问题,都需要想创造性的解决


系统监控更是如此,虽然目前有了一些比较成熟的开源监控系统

但是毕竟每个公司的情况不同,大部分公司会在监控和问题处理上下大工夫做自己的开发


做运维绝对不意味着不写程序 起码做好运维是这样


写的程序一般不会比dev少,区别是dev做的开发是大规模,周期长的,有语言要求;
运维的要求则是快速解决问题

运维适合喜欢“解决问题”的人,适合那种天生知道怎么debug,并且以此为乐趣的人


dev和ops(operation)的关系就是:dev写代码;ops跑代码
对大部分dev来说他们关心的就是怎么完成自己的function,不会也没办法估计function对整个系统的影响


好的ops就在这里发挥作用,他们理解整个系统,参与开发的设计、架构阶段并对其有决定权利

最后也会对开发完成的产品做review并且可以让dev打回去重写


最后回到有趣没趣的问题上:
有趣没趣?如果你喜欢挑战,喜欢对所有的事情都问个“为什么” 

喜欢做一些没人知道也没人告诉你该怎么做的事情,上alexa找top100的公司去做他们的运维,绝对有趣


陈永保,The dark side of the moon


这个话题就是个坑,拿来闲聊的,并不在于得到什么结论。所以随便侃几句


我觉得,做一件工作不外乎几种情况:

a)只能做这个,迫于知识技能或环境,没别的选择

b)能干这个,也能干别的,哪个无所谓,选择这个只是偶然或某种微不足道的原因

c)喜欢干这个,想做出点东西


所以做运维是否觉得『有趣』,取决于诉求,也就是目的或原因


『运维』其实是一个大的概念,其中又细分成很多,机房运维,网络运维,应用运维,互联网公司

电信公司的运维与网吧运维、公司IT运维又有所不同。每个运维的领域的特点不同,对人员的要求也不同


是否有趣,取决于很多方面,但我觉得能否带来成就感是最主要的因素。实际的岗位要求、业务的发展不同

对于运维能否做出点有成就感的东西,或许不一样。有志于做运维的,应该追求一些挑战,在业务成长的同时

自己也能成长。最终的『有趣』,并不只是生活佐料的有趣,而是变得有意义了



本文转自 2012hjtwyf 51CTO博客,原文链接:http://blog.51cto.com/hujiangtao/1926533,如需转载请自行联系原作者

网友评论

登录后评论
0/500
评论
技术小阿哥
+ 关注