Laika BOSS:一款Object扫描仪、入侵检测系统

jopen 9年前

Laika BOSS:一款Object扫描仪、入侵检测系统

Laika是一款对象扫描仪和入侵检测系统,开发人员设计这个系统的目的是为了实现以下的目标:

适用范围

可在多种不同的平台上运行。

可接收来自于不同数据源的输入数据。

结构灵活

模块化的系统结构。

高度可配置的调度和处理逻辑。

战术代码注入(无需重启系统)。

冗余性

系统会产生大量可供研究人员分析和处理的元数据

在每一次的扫描过程中,系统都会对每一个扫描对象进行以下三项主要的操作:

搜索子对象

某些扫描对象是文档类型的,有些扫描对象则是经过封装的,还有一些则是经过了模糊处理的。无论你的扫描对象是哪种类型,我们都需要找到它们的子对象,并对这些子对象进行递归扫描。

标志位

标志位可以帮助研究人员分析和处理对象,并为将来进一步的分析和处理做好准备。

添加元数据

尽可能找到更多关于被扫描对象的信息,为将来进一步的分析和处理做好准备。

如果你需要获取更多的信息,请查阅白皮书:

http://lockheedmartin.com/us/what-we-do/information-technology/cybersecurity/laika-boss.html

系统组件

Laika是由下列系统组件组成的:

框架(laika.py)

这是Laika BOSS的核心部分。它包括对象模型以及系统的调度逻辑。

laikad

这一部分包括Laika的运行代码,以及使用ZeroMQ作为网络通讯库的网络服务。

云扫描

这是一个命令行客户端,它可以将一个本地系统文件发送至一个Laika系统中正在运行的服务。

模块

扫描的过程需要系统各个模块的协同运行。每一个模块都是一个单独的程序,而每一个程序都有其各自特殊的用处,它们会分别对一个整体文件的各个部分进行扫描和分析。

开始使用

研究人员已经在最新版本的CentOS以及Ubuntu LTS系统平台上对Laika BOSS进行了测试。

在Ubuntu上进行安装

安装框架所需的配置环境:

# apt-get install yara python-yara python-progressbar  # pip install interruptingcow

安装网络客户端以及服务器:

# apt-get install libzmq3 python-zmq python-gevent python-pexpect

安装系统模块:

# apt-get install python-ipy python-m2crypto python-pefile python-pyclamd liblzma5 libimage-exiftool-perl python-msgpack libfuzzy-dev python-cffi python-dev unrar  # pip install fluent-logger olefile ssdeep py-unrar2 pylzma  # wget https://github.com/smarnach/pyexiftool/archive/master.zip  # unzip master.zip  # cd pyexiftool-master  # python setup.py build  # python setup.py install

我们推荐用户使用jq来解析Laika的输出数据。

独立运行实例

安装目录中包含完整的框架代码,你可以独立运行扫描器(laika.py),并使用它对任意一个文件进行扫描,如果你将这个文件从安装目录中移出并拷贝到了别的地方,那么你就必须要修改配置文件的位置变量了。在系统默认的配置下,系统会使用./etc directory中的配置文件。

$ ./laika.py ~/test_files/testfile.cws.swf | jq '.scan_result[] | { "file type" : .fileType, "flags" : .flags, "md5" : .objectHash }'  100%[############################################] Processed: 1/1 total files (Elapsed Time: 0:00:00) Time: 0:00:00  {    "md5": "dffcc2464911077d8ecd352f3d611ecc",    "flags": [],    "file type": [      "cws",      "swf"    ]  }  {    "md5": "587c8ac651011bc23ecefecd4c253cd4",    "flags": [],    "file type": [      "fws",      "swf"    ]  }

网络实例

$ ./laikad.py  $ ./cloudscan.py ~/test_files/testfile.cws.swf | jq '.scan_result[] | { "file type" : .fileType, "flags" : .flags, "md5" : .objectHash }'  {    "md5": "dffcc2464911077d8ecd352f3d611ecc",    "flags": [],    "file type": [      "cws",      "swf"    ]  }  {    "md5": "587c8ac651011bc23ecefecd4c253cd4",    "flags": [],    "file type": [      "fws",      "swf"    ]  }

许可证

Laika开源框架以及相关系统模块的开发与发布,都遵循Apache 2.0网络许可的相关条款。

开源项目地址: https://github.com/lmco/laikaboss

本文由 360安全播报 翻译,转载请注明“转自360安全播报”,并附上链接。

原文链接: https://github.com/lmco/laikaboss