本节书摘来华章计算机《数据驱动安全:数据安全分析、可视化和仪表盘》一书中的第3章 ,第3.2节,[美]杰·雅克布(Jay Jacobs)鲍布·鲁迪斯(Bob Rudis) 著 薛杰 王占一 张卓 胡开勇 蒋梦飏 赵爽 译, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
3.2 获取数据
我们正在进入信息安全的数据时代。当前的挑战不是从哪里获得数据而是如何处理数据,数据集中信息的种类将决定你的研究类型。
对于这个例子,SOC选择整合AlienVault的IP信誉数据库放入SIME(http://labs.alienvault.com/labs/index.php/projects/open-source-ip-reputation-portal/download-ip-reputation-database/)。AlienVault自己研发了OSSIM,OSSIM既是一个开源的安全信息管理器,也是一个专有的统一安全管理(USM)产品。OSSIM可以使用各类免费的数据集,其中包含来自互联网的各种类型的“坏数据”。AlienVault提供各种格式的免费数据。在这里,你所使用的是OSSIM格式的数据(http://reputation.alienvault.com/reputation.data),在众多数据格式中它能提供最丰富的信息。
AlienVault按小时更新其IP信誉数据集,并且同步产生一个名为“修订版”(revision)(https://reputation.alienvault.com/reputation.rev)的文件,使你能够确定你正在使用的是最新数据集或保存了历史数据集。如果你计划对这个数据集进行长时间的分析(这通常称为纵向研究),一个好的办法是修改一些代码来执行检查,看看是否需要下载一个新的数据集,即使是在进行一些预定的作业时。
在进行探索性分析或者想先看一看数据集的时候,你可以通过浏览器(或者使用wget和curl命令)将它下载下来。AlienVault数据库的大小将近16MB,在较慢的网络环境下可能要花费1到2分钟的时间下载。当你下载了AlienVault IP信誉数据库并且验证了第一部分的数据元素时,你会对这些数据的内容和格式产生一些想法,这些想法会在你阅读和处理数据的过程中派上用场。在后续的代码中,你可以使用一些简单的Linux/UNIX命令进行下载:
对于大多数项目,最好养成直接从你的分析脚本中获取数据源的习惯。如果你仍然喜欢手动下载文件,应该在程序中增加一些注释来记录数据的来源以及当前分析数据的获取时间。这些注释能够帮助你在之后更容易地重复这些分析。请相信我们,你一定会比你预期的更频繁地重新阅读你的代码以及重新进行分析。
接下来的示例(程序清单3-2和程序清单3-3)展示了如何使用R和Python两种语言来获取这些数据。如果你依照RStudio或者IPython,所有的代码示例都假定位于项目结构的顶层的工作目录(例如在第2章中建议的执行book/ch03目录,可以手动生成或者用prep脚本来生成该目录)。对于大多数情况,代码块是独立的,但每个块都期望在已经运行了RStudio或IPython的会话中执行这部分片段以及下一节中的片段。
程序清单3-2
程序清单3-3
R语言和Python语言的代码看起来非常相似并且遵循相同的基本结构:对URL和文件名尽可能使用变量,在重新下载之前验证这些数据文件是否已经存在。这些都是很好的习惯,我们会在本书的其余部分强调其他的良好习惯。
获得了IP信誉数据,到了读入并使用这些数据的时候了。