きっかけ
仕事で stix ドキュメントを扱う機会があり、より理解を深める為に
まずはクライアント側とデータの内容を勉強する為、触ってみる。
環境
- ローカル環境は以下のとおり。
% sw_vers
ProductName: Mac OS X
ProductVersion: 10.11.6
BuildVersion: 15G1217
% python -V
Python 2.7.13
% pip -V
pip 9.0.1 from /usr/local/lib/python2.7/site-packages (python 2.7)
% pip show libtaxii
Name: libtaxii
Version: 1.1.110
Summary: TAXII Library.
Home-page: http://taxii.mitre.org/
Author: Mark Davidson
Author-email: mdavidson@mitre.org
License: UNKNOWN
Location: /usr/local/lib/python2.7/site-packages
Requires: six, lxml, python-dateutil
- taxiiサーバは下記を利用。
Hail a TAXII.com ( http://hailataxii.com )
デモの方法は下記に記載されています。
Hailataxii and Libtaxii Demo
( https://github.com/STIXProject/schemas/wiki/Hailataxii-and-Libtaxii-Demo )
Stix ドキュメント取得手順
-
サーバ側で管理されているサービスを確認する
まずサーバにてどのようなサービスが利用可能なのか?を確認したい。
Hail a TAXII.com にアクセスすると、以下の情報が記載されている。・ Our data is accessible via the TAXII-HTTP Message Protocol. (1.0 & 1.1)
・ The discovery service is located at http://hailataxii.com/taxii-discovery-service
・ Anonymous connections are accepted.
・ Clients that require login details can use HTTP-Basic user=guest, password=guest.上記の情報をもとに対応サービス確認のため、サーバへ接続する。
% discovery_client --host hailataxii.com --path /taxii-discovery-service --username guest --pass guest Request: Message Type: Discovery_Request Message ID: 7418183229071165630 Response: Message Type: Discovery_Response Message ID: 73726; In Response To: 7418183229071165630 === Service Instance === Service Type: DISCOVERY Service Version: urn:taxii.mitre.org:services:1.1 Protocol Binding: urn:taxii.mitre.org:protocol:https:1.0 Service Address: http://hailataxii.com:80/taxii-data Message Binding: urn:taxii.mitre.org:message:xml:1.1 Available: True Message: None === Service Instance === Service Type: COLLECTION_MANAGEMENT Service Version: urn:taxii.mitre.org:services:1.1 Protocol Binding: urn:taxii.mitre.org:protocol:https:1.0 Service Address: http://hailataxii.com:80/taxii-data Message Binding: urn:taxii.mitre.org:message:xml:1.1 Available: True Message: None === Service Instance === Service Type: POLL Service Version: urn:taxii.mitre.org:services:1.1 Protocol Binding: urn:taxii.mitre.org:protocol:https:1.0 Service Address: http://hailataxii.com:80/taxii-data Message Binding: urn:taxii.mitre.org:message:xml:1.1 Available: True Message: None
まず、データを参照する為には、以下のURLにアクセスする必要があることが分かります。
Service Address: http://hailataxii.com:80/taxii-data
その上で、上記には以下の内容が記載されています。
・ Service Type: DISCOVERY
Taxii サービスを公開している。・ Service Type: COLLECTION_MANAGEMENT
どのような集積データを管理しているのか?その種類を確認することが可能。・ Service Type: POLL
集積データを参照することが可能。本サーバでは上記が利用できる、ということが分かる。
なお、taxiiには上記の他、Inbox
という、データを投稿できるサービスもありますが、今回は許可されていないことが分かります。 -
データの種類を確認する
1.にて、データの種類を確認するには、
COLLECTION_MANAGEMENT
にアクセスすることが分かった。
これまで判明した情報をもとに、次に種類を確認するため、サーバへ接続する。% collection_information_client --host hailataxii.com --username guest --pass guest --path /taxii-data Request: Message Type: Collection_Information_Request Message ID: 4659866494431617975 Response: Message Type: Collection_Information_Response Message ID: 85921; In Response To: 4659866494431617975 Contains 11 Collection Informations === Data Collection Information === Collection Name: guest.Abuse_ch Collection Type: DATA_FEED Available: True Collection Description: guest.Abuse_ch Supported Content: urn:stix.mitre.org:xml:1.0 === Polling Service Instance === Poll Protocol: urn:taxii.mitre.org:protocol:https:1.0 Poll Address: http://hailataxii.com:80/taxii-data Message Binding: urn:taxii.mitre.org:message:xml:1.1 ================================== === Data Collection Information === Collection Name: guest.CyberCrime_Tracker Collection Type: DATA_FEED Available: True Collection Description: guest.CyberCrime_Tracker Supported Content: urn:stix.mitre.org:xml:1.0 === Polling Service Instance === Poll Protocol: urn:taxii.mitre.org:protocol:https:1.0 Poll Address: http://hailataxii.com:80/taxii-data Message Binding: urn:taxii.mitre.org:message:xml:1.1 ================================== === Data Collection Information === Collection Name: guest.EmergineThreats_rules Collection Type: DATA_FEED Available: True Collection Description: guest.EmergineThreats_rules Supported Content: urn:stix.mitre.org:xml:1.0 === Polling Service Instance === Poll Protocol: urn:taxii.mitre.org:protocol:https:1.0 Poll Address: http://hailataxii.com:80/taxii-data Message Binding: urn:taxii.mitre.org:message:xml:1.1 ================================== === Data Collection Information === Collection Name: guest.EmergingThreats_rules Collection Type: DATA_FEED Available: True Collection Description: guest.EmergingThreats_rules Supported Content: urn:stix.mitre.org:xml:1.0 === Polling Service Instance === Poll Protocol: urn:taxii.mitre.org:protocol:https:1.0 Poll Address: http://hailataxii.com:80/taxii-data Message Binding: urn:taxii.mitre.org:message:xml:1.1 ================================== === Data Collection Information === Collection Name: guest.Lehigh_edu Collection Type: DATA_FEED Available: True Collection Description: guest.Lehigh_edu Supported Content: urn:stix.mitre.org:xml:1.0 === Polling Service Instance === Poll Protocol: urn:taxii.mitre.org:protocol:https:1.0 Poll Address: http://hailataxii.com:80/taxii-data Message Binding: urn:taxii.mitre.org:message:xml:1.1 ================================== === Data Collection Information === Collection Name: guest.MalwareDomainList_Hostlist Collection Type: DATA_FEED Available: True Collection Description: guest.MalwareDomainList_Hostlist Supported Content: urn:stix.mitre.org:xml:1.0 === Polling Service Instance === Poll Protocol: urn:taxii.mitre.org:protocol:https:1.0 Poll Address: http://hailataxii.com:80/taxii-data Message Binding: urn:taxii.mitre.org:message:xml:1.1 ================================== === Data Collection Information === Collection Name: guest.blutmagie_de_torExits Collection Type: DATA_FEED Available: True Collection Description: guest.blutmagie_de_torExits Supported Content: urn:stix.mitre.org:xml:1.0 === Polling Service Instance === Poll Protocol: urn:taxii.mitre.org:protocol:https:1.0 Poll Address: http://hailataxii.com:80/taxii-data Message Binding: urn:taxii.mitre.org:message:xml:1.1 ================================== === Data Collection Information === Collection Name: guest.dataForLast_7daysOnly Collection Type: DATA_FEED Available: True Collection Description: guest.dataForLast_7daysOnly Supported Content: urn:stix.mitre.org:xml:1.0 === Polling Service Instance === Poll Protocol: urn:taxii.mitre.org:protocol:https:1.0 Poll Address: http://hailataxii.com:80/taxii-data Message Binding: urn:taxii.mitre.org:message:xml:1.1 ================================== === Data Collection Information === Collection Name: guest.dshield_BlockList Collection Type: DATA_FEED Available: True Collection Description: guest.dshield_BlockList Supported Content: urn:stix.mitre.org:xml:1.0 === Polling Service Instance === Poll Protocol: urn:taxii.mitre.org:protocol:https:1.0 Poll Address: http://hailataxii.com:80/taxii-data Message Binding: urn:taxii.mitre.org:message:xml:1.1 ================================== === Data Collection Information === Collection Name: guest.phishtank_com Collection Type: DATA_FEED Available: True Collection Description: guest.phishtank_com Supported Content: urn:stix.mitre.org:xml:1.0 === Polling Service Instance === Poll Protocol: urn:taxii.mitre.org:protocol:https:1.0 Poll Address: http://hailataxii.com:80/taxii-data Message Binding: urn:taxii.mitre.org:message:xml:1.1 ================================== === Data Collection Information === Collection Name: system.Default Collection Type: DATA_FEED Available: True Collection Description: system.Default Supported Content: urn:stix.mitre.org:xml:1.0 === Polling Service Instance === Poll Protocol: urn:taxii.mitre.org:protocol:https:1.0 Poll Address: http://hailataxii.com:80/taxii-data Message Binding: urn:taxii.mitre.org:message:xml:1.1 ==================================
このサーバでは、10種類のデータ(1種類重複)を提供している。
それぞれ、データの種類Collection Name
と、その種類データの参照先Poll Address
が分かる。・ Collection Name: guest.Abuse_ch
Poll Address: http://hailataxii.com:80/taxii-data・ Collection Name: guest.CyberCrime_Tracker
Poll Address: http://hailataxii.com:80/taxii-data・ Collection Name: guest.EmergineThreats_rules
Poll Address: http://hailataxii.com:80/taxii-data・ Collection Name: guest.Lehigh_edu
Poll Address: http://hailataxii.com:80/taxii-data・ Collection Name: guest.MalwareDomainList_Hostlist
Poll Address: http://hailataxii.com:80/taxii-data・ Collection Name: guest.blutmagie_de_torExits
Poll Address: http://hailataxii.com:80/taxii-data・ Collection Name: guest.dataForLast_7daysOnly
Poll Address: http://hailataxii.com:80/taxii-data・ Collection Name: guest.dshield_BlockList
Poll Address: http://hailataxii.com:80/taxii-data・ Collection Name: guest.phishtank_com
Poll Address: http://hailataxii.com:80/taxii-data・ Collection Name: system.Default
Poll Address: http://hailataxii.com:80/taxii-data -
実際にデータを参照する
1.にてデータの種類を、2.にてデータの参照先を確認することができた。
それでは、実際にデータを取得してみる。
※ 以下のコマンドを実行すると、カレントディレクトリに多くのデータがダウンロードされる為、どこで取得するかは注意してください。% poll_client --host hailataxii.com --username guest --pass guest --path /taxii-data --collection guest.Abuse_ch Request: Message Type: Poll_Request Message ID: 7016854206412201300 Collection Name: guest.Abuse_ch Excl. Begin TS Label: None Incl. End TS Label: None === Poll_Parameters === Response type: FULL Response: Message Type: Poll_Response Message ID: 3510; In Response To: 7016854206412201300 Collection Name: guest.Abuse_ch More: False Result ID: None Result Part Num: 1 Incl. End TS Label: 2017-03-27T14:11:06.739630+00:00 === Content Block === Content Binding: urn:stix.mitre.org:xml:1.1.1 Content length: 4462 (Content not printed for brevity) Timestamp Label: 2017-03-27 14:11:06.959883+00:00 Message: None Padding: None . . (コンテンツの情報) . File created: guest.Abuse_ch_STIX111_t2017_03_27T14_11_06_959883_00_00.xml . . (作成されたコンテンツファイル) .
実際にデータがダウンロードされ、14,390ファイルが作成されました。
次回は、それぞれのコマンドの中身、またコンテンツファイルを確認したいと思います。
参照サイト
-
Hail a TAXII.com : http://hailataxii.com
-
libtaxii : https://github.com/TAXIIProject/libtaxii
-
Hailataxii and Libtaxii Demo : https://github.com/STIXProject/schemas/wiki/Hailataxii-and-Libtaxii-Demo
-
検知指標情報自動交換手順TAXII概説 : https://www.ipa.go.jp/security/vuln/TAXII.html