你一定已经看过太多像是”某国指控它国对其发动网络攻击”、“某公司遭遇严重信息泄露事件,数百万用户数据被盗”等涉及网络攻击事件的新闻。小编用数据分析尝试对这场“阴谋”一探究竟。
什么是网络攻击
在今天的媒体上,你一定已经看过太多像是”某国指控它国对其发动网络攻击”,“某公司遭遇严重信息泄露事件,数百万用户数据被盗”等涉及网络攻击事件的新闻。如果倒霉一点,你还可能就是这种恶性事件的受害者,并可能有一天打开电脑,突然发现自己眼前的屏幕被铺满了这样的字句:
“你的信息已被加密,想要恢复的话,交钱吧。”
这些都是网络攻击事件——旨在盗窃钱财、金融数据、知识产权或干扰某一目标公司的日常经营的恶意网络行动,它们绝大多数时候是由犯罪分子发动的。国家有时也会成为攻击目标,一些所谓的“政府支持的网络攻击”会尝试窃取宿敌国家的机密文件,或者仅仅是为了给对方发出一个警告信号。
据粗略统计,2015年全球因网络攻击造成的损失达到5000亿美元。是谷歌全年900亿美元的现金流的5倍还多。
在这篇文章中,我们希望通过数据分析的方式,来探究这些造成巨额损失的网络犯罪的特点,进一步了解它们的行为方式以及带来的影响。
我使用Scrapy对网络攻击事件库网站Hackmageddon进行爬虫爬取,以收集可供分析的信息。Hackmageddon从2011年开始记载各种网络攻击事件,每15天会更新一个统计表。我的爬虫对网站的目录和次级目录进行分析,不过在过程中我了解到Scrapy不如Selenium那样,能与浏览器有很好的自动化的互动。
我从2011年网站的第一张表格开始,在过程中遇到不少挑战。一个问题是,它无法自动从一个表格跳到下一个。这个网站每个页面底部有翻页按钮,我让我的爬虫对这个按钮的链接发起fetch请求,以进入下一页。另一个问题是,Hackmageddon每年都改变它的表格结构。所以我使用了控制流来解决这个问题,最终我几乎爬取了全部网站,爬取的信息包括日期、发起者、目标、描述、攻击类型、目标等级以及国别。
(图片说明:项目获取的部分数据)
基本数据展示
在分析数据前要先清洗数据。如我所料,爬取的数据有很多缺失。由于许多网络攻击的动机和黑客身份经常是无法知晓的,这部分的数据缺失在我预料中。我使用Python的Pandas library来进行数据清洗。在清理数据之后我开始进行可视化。最开始的简单分析揭示了一些有趣的现象。美国是受攻击最多的国家,排在第二到第四位是“>1”,英国,印度。“>1”是指“同一个黑客攻击了一个以上国家”的情况。
我爬取数据的目的之一,就是想知道这些攻击行动背后的动机。下图展示了攻击目标中不同类型的组织所占比例。政府部门和个人占据前二位置,接下来是教育机构。
接下来的图表展示了网络攻击背后的动机。网络犯罪占比最多,达71%。网络犯罪针的典型场景是为了获取网络权限。电脑被用作武器,来发动像DoS攻击等犯罪活动。
网络间谍(Cyber Espionage)的目的则是非法获取涉密信息,尤其是政府或其他组织的保密信息。
网络战争的目的则是破坏一个国家或组织,尤其是出于军事或策略性的目的而刻意攻击信息系统。
(责任编辑:安博涛)