現在位置: ホーム / ブログ / 脅威分析ソフトウェアMATATABI バージョン 1.0リリース

脅威分析ソフトウェアMATATABI バージョン 1.0リリース

脅威分析ソフトウェアMATATABI の最初のリリースについての情報です。

Apache Hadoop などを元にして作成した脅威分析ソフトウェア MATATABI のバージョン1.0を公開致しました。

バージョン1.0は、MATATABIを構成するソフトウェアをDockerと呼ばれるコンテナ型仮想環境に詰め込んだ形で、Hadoop 分散ファイルシステム (HDFS)に格納されたログファイルや pcapファイルを、Facebook PrestoApache Hive を利用して検索する部分と、それを構成するスクリプト群を提供しました。

MATATABIを利用するには、Docker がインストールされた状態で、

 % docker run -t -i necoma/matatabi

 と実行する事で利用可能です。

今後のバージョンでは、スレーブノードの追加による性能改善、カスタムスクリプトの作成方法、NECOMAtter連携、n6 API連携、Mahoutを使った機械学習スクリプト作成などを随時追加していく予定です。

MATATABIとは?

MATATABIは、オープンソースApache Hadoopをベースにした、セキュリティ脅威を計測データより分析するための、ビッグデータ脅威情報分析基盤です。単一のデータ、分析のために情報量を削ぎ落したデータなどで検知できる脅威情報では、日々進化しているしたたかな攻撃者への対応が困難となってきており、「より多くのデータがあれば、より多くの脅威を検知できる」という想定のもと、あらゆる計測情報を分析対象とする事が可能なシステム構築を目指しています。

outlook of matatabi

特に、複数データ種別横断型の分析によって多角的な分析を実現する事で、未知脅威情報の検知を可能とする事を目標としています。このような分析を容易に実現するために、多様なデータを格納可能であり、簡易で単一のデータアクセス手段を提供でき、分析速度をある程度確保可能な仕組みである、分散計算環境 Apache Hadoop は十分に目的を達成できるものでした。

MATATABIは、既存のApache Hadoopや、Apache Hive、Facebookで開発された Presto、RIPE-NCCで提供されているhadoop-pcapライブラリなど、オープンソースとして公開されているソフトウェアを利用し、セキュリティ脅威情報解析に必要なスクリプト群を添付する事で、ネットワークオペレータやセキュリティオペレータの計測したデータ(pcapやログファイルなど)より、Actionable Information (IPアドレスやドメイン名などのブラックリストなど)を生成する事を特徴としています。

近年(2015年執筆時点)、これらの膨大な情報量のデータを解析するサービスとして、ネットワーク上の豊富な計算ノード群を遠隔で利用して、分析結果だけを受け取るものが増えてきました (BigQuery, Amazon EMR, Treasure Dataなど)。これらのサービスは機能も豊富で計算速度も日々進化して高速となっていますが、解析対象のデータのプライバシーを考慮する場合、依然クラウド型のサービスには不安があります。MATATABIは、計算速度においてはクラウド型サービスには劣りますが、簡易的にローカルな環境に構築する計算基盤として、個々の組織内で利用可能なもの目指しています。

 

MATATABIを構成するソフトウェア群

MATATABIの構成は下図にあるように、大きく4つの部品によって成り立っています。


matatabi-arch.png

 

1) Apache Hadoop の提供する分散ファイルシステム (Hadoop Distributed Filesystem =HDFS)と、ストレージをホストするクラスタ群

2) HDFSへ計測情報を格納する importer モジュール

3) HDFSへ格納された情報を分析する analysis モジュール

4) 解析結果や、生データを外部プログラムで容易に利用可能とするApplication Programming Interface (API)

処理されたデータや、検知された脅威情報は、外部のプログラムへの情報提供も可能としたり、その情報を元に可視化プログラムにて俯瞰したり、またセキュリティ情報交換のためのソーシャルネットワークサービス NECOMAtterと連携して情報を発信したりする事が可能となります。


MATATABIのインストール

MATATABIは、導入手順を簡素化するために、dockerというソフトウェアを利用して提供されます。比較的新しいLinux環境を用いる事が可能であれば、Dockerの導入そのものは容易であると思われます。

ここでは、Ubuntu 14.04-01 x86 64bits環境を利用して、MATATABIを導入する手順を紹介します。

まず、dockerをインストールします。

sudo apt-get install docker.io

sudoコマンドが実行できる権限が必要です。

その後、docker hub で公開されている MATATABIイメージをインストール(ダウンロード)します。

docker pull necoma/matatabi:1.0

この時、Operation not permittedなどの権限が足りないとのメッセージが出る場合は、実行しているユーザが、UNIXグループ”docker”のメンバーでない事が原因です。vigrコマンドなどを利用して、dockerグループに自身のログイン名を追加してください。

これで、MATATABIのインストールは終わりです。実行してみましょう。docker run コマンドを利用すると、MATATABIが動作しているOSの起動と初期化を実施します。

% docker run -i -t necoma/matatabi:1.0

-i オプションと-tオプションを指定する事で、このdockerイメージに対しコンソールが利用可能となります。

実行すると、下記のようなメッセージが見れると思います。

/
* Starting OpenBSD Secure Shell server sshd                 [ OK ]
* Starting MySQL database server mysqld                     [ OK ]
* Checking for tables which need an upgrade, are corrupt or were
not closed cleanly.
Starting namenodes on [a6a76dd13275]
a6a76dd13275: starting namenode, logging to /usr/local/hadoop/logs/hadoop-root-namenode-a6a76dd13275.out
localhost: starting datanode, logging to /usr/local/hadoop/logs/hadoop-root-datanode-a6a76dd13275.out
Starting secondary namenodes [0.0.0.0]
0.0.0.0: starting secondarynamenode, logging to /usr/local/hadoop/logs/hadoop-root-secondarynamenode-a6a76dd13275.out
starting yarn daemons
starting resourcemanager, logging to /usr/local/hadoop/logs/yarn--resourcemanager-a6a76dd13275.out
localhost: starting nodemanager, logging to /usr/local/hadoop/logs/yarn-root-nodemanager-a6a76dd13275.out
Starting supervisor:  ERROR.
Started as 1449

root@a6a76dd13275:/#

 このようなプロンプトが見れたら、起動は成功です。prestoというコマンドを実行して、インスール時に生成してあるサンプルデータを SQL文で検索する処理を実行してみましょう。

root@a6a76dd13275:/# presto
presto:default> select date,ipaddr,qname,cname,typename from querylog;
    date     |     ipaddr      |      qname       | cname | typename
-------------+-----------------+------------------+-------+----------
 01-Jan-2010 | 10.0.0.7#42651: | mail.example.org | IN    | A        
 01-Jan-2010 | 10.0.0.6#5474:  | mail.example.org | IN    | A        
 01-Jan-2010 | 10.0.0.6#64473: | mail.example.org | IN    | A        
 01-Jan-2010 | 10.0.0.6#26439: | mail.example.org | IN    | A        
 01-Jan-2010 | 10.0.0.6#18020: | mail.example.org | IN    | A        
 01-Jan-2010 | 10.0.0.6#49146: | mail.example.org | IN    | A        
 01-Jan-2010 | 10.0.0.6#9382:  | mail.example.org | IN    | A        
 01-Jan-2010 | 10.0.0.6#30733: | mail.example.org | IN    | A        
 01-Jan-2010 | 10.0.0.6#52651: | mail.example.org | IN    | A        


このようなクエリ結果が表示されれば、インスールは成功です。おめでとうございます!

バージョン1.0の機能

今回リリースしたMATATABIのdockerイメージには、bind9と呼ばれるDNSサーバソフトウェアの出力するDNSクエリログ情報をHDFSに取り込み、HiveやPrestoコマンドで検索できるよう、インストール後の状態で設定されています。

その他にも、/matatabi_scriptディレクトリ配下には、netflowサンプリングデータ(nfcapdが出力したもの)、sflowデータ(sflowtoolが出力したファイル)などを取り込み、Hive/Prestoで解析するためのスクリプトも含まれています。これらを利用・カスタマイズして、データの取り込み、解析などをする事も可能です。

これらのスクリプトの利用方法については、このドキュメント、dockerイメージの今後のバージョンアップ時に追加していきます。


今後のリリース予定

+ スレーブノードの追加による性能改善

+ カスタムスクリプトの作成方法

- import スクリプト

- analyzer スクリプト

+ NECOMAtter連携

+ n6 API連携

+ cron/Jenkinsによる定期・随時実行

+ 実装例

- Mahoutを使った機械学習スクリプト作成

  

http://www.necoma-project.eu/m/filer_public/b1/6f/b16f7d2e-391c-4571-b1c3-dcedbd1f5446/ut_tazaki_badgers2014.pdf

 

連絡先

NECOMA プロジェクト