
自動化されたセキュリティインテリジェンス収集ツール。IP、ドメイン、URL、ハッシュ、SSLフィンガープリントに関する脅威データを公開フィードやAPIからクエリし、YAMLベースの設定とJSON出力を備えています。

Machinaeは、IPアドレス、ドメイン名、URL、メールアドレス、ファイルハッシュ、SSLフィンガープリントといった、セキュリティ関連のさまざまなデータについて、公開サイト/フィードからインテリジェンスを収集するツールです。このツールは、情報収集のためのもう一つの優れたツールであるAutomaterに触発されました。Machinaeプロジェクトは、Automaterを以下の4つの領域で改善したいという願いから生まれました。
Machinaeはpip3を使ってインストールできます。
pip3 install machinae
あるいは、冒険心があれば、githubから直接インストールすることもできます。
pip3 install git+https://github.com/HurricaneLabs/machinae.git
Pythonモジュールのコンパイルに必要な依存関係(Debianベースのシステムではpython3-dev)と、libyaml開発パッケージ(Debianベースのシステムではlibyaml-dev)がシステムにインストールされている必要があります。
また、最新の設定ファイルを取得し、/etc/machinae.ymlに配置することをお勧めします。
Machinaeは、シンプルな設定マージシステムをサポートしており、提供されているmachinae.ymlを変更することなく設定を調整できるため、設定のアップデートが簡単です。これは、システム全体のデフォルト設定(デフォルトでは/etc/machinae.yml)を見つけ、そこにシステム全体のローカル設定(/etc/machinae.local.yml)、そしてユーザーごとのローカル設定(~/.machinae.yml)をマージすることで行われます。システム全体の設定は、カレントワーキングディレクトリに配置したり、MACHINAE_CONFIG環境変数で設定したり、もちろん-cまたは--configコマンドラインオプションを使用したりすることもできます。設定マージは、--nomergeオプションを渡すことで無効にでき、その場合はシステム全体のデフォルト設定(またはコマンドラインで渡された設定)のみが読み込まれます。
例として、デフォルトで無効になっているFortinet Categoryサイトを有効にしたい場合を考えます。/etc/machinae.ymlを変更することもできますが、これらの変更はアップデートで上書きされます。代わりに、以下の内容を/etc/machinae.local.ymlまたは~/.machinae.ymlに記述します。
fortinet_classify:
default: true
または、逆にVirus Total pDNSのようなサイトを無効にするには、次のようにします。
vt_ip:
default: false
vt_domain:
default: false
Machinaeの使い方はAutomaterと非常によく似ています。
usage: machinae [-h] [-c CONFIG] [--nomerge] [-d DELAY] [-f FILE] [-i INFILE] [-v]
[-o {D,J,N,S}] [-O {ipv4,ipv6,fqdn,email,sslfp,hash,url}] [-q]
[-s SITES] [-a AUTH] [-H HTTP_PROXY]
[--dump-config | --detect-otype]
...
-c/--configおよび--nomergeオプションの詳細は上記を参照してください。
Machinaeは、Automaterと同様に-d/--delayオプションをサポートしています。ただし、Machinaeのデフォルトは0です。
Machinaeの出力は2つの引数で制御されます。
-oは出力形式を制御し、その後に1文字を続けて目的の出力タイプを指定します。
-f/--fileは出力を書き込むファイルを指定します。デフォルトは標準出力の "-" です。Machinaeは、渡されたターゲットのタイプを自動検出しようとします(Machinaeではターゲットを「observable」、タイプを「otype」と呼びます)。この検出は-O/--otypeオプションで上書きできます。選択肢は使い方に記載されています。
デフォルトでは、Machinaeは冗長モードで動作します。このモードでは、クエリ中のサービスに関するステータス情報がコンソールに出力されます。この出力は、出力設定に関係なく常に標準出力に書き込まれます。冗長モードを無効にするには、-qを使用します。
デフォルトでは、Machinaeは設定内のすべてのサービスのうち、各ターゲットのotypeに適用され、かつ"default: false"とマークされていないものを実行します。この動作を変更するには、次のようにします。
Machinaeには、以下のデータソースが標準で用意されています。
さらにデータソースが追加予定です。
Machinaeは、--auth/-aフラグを使用して、HTTP Basic認証が必要なサイトをサポートしています。認証情報を含むYAMLファイルを作成する必要があります。このファイルには、認証が必要なサイトのキーと、ユーザー名とパスワードまたはAPIキーの2つのアイテムのリストが含まれます。例えば、付属のPassiveTotalサイトの場合、次のようになります。
passivetotal: ['[email protected]', 'my_api_key']
サイト設定のrequestの下に、次のようなキーが表示されます。
json:
request:
url: '...'
auth: passivetotal
auth: passivetotalは、コマンドライン経由で渡された認証設定内のキーを指します。
以下のサイトはデフォルトで無効になっています。
fortinet_classify)telize)totalhash_ip)domaintools_parsed_whois)domaintools_reverse_whois)domaintools_reputation)passivetotal_pdns)passivetotal_whois)passivetotal_sslcert)passivetotal_components)passivetotal_trackers)maxmind)Machinaeには、標準、ドットエスケープ付き標準、JSONの限られた出力形式が用意されています。将来的には、さらに出力形式を追加する予定です。
*** 近日公開 ***
MITライセンス (MIT)
Copyright (c) 2015 Hurricane Labs LLC
以下に定める条件に従い、本ソフトウェアおよび関連文書ファイル(以下「ソフトウェア」)の複製物を取得するすべての人に対し、ソフトウェアを無制限に扱うことを許可します。これには、ソフトウェアの複製、変更、結合、出版、頒布、サブライセンス、および/または販売の権利、およびソフトウェアを提供された者にこれを行うことを許可する権利が無制限に含まれます。
上記の著作権表示および本許諾表示を、ソフトウェアのすべての複製物または主要部分に掲載するものとします。
ソフトウェアは「現状のまま」提供され、明示または黙示を問わず、商品性、特定目的への適合性、および非侵害の保証を含むがこれらに限定されない、いかなる保証もありません。著作権者または権利者は、契約行為、不法行為、またはその他の行為であるかを問わず、ソフトウェアに関連して生じたいかなる請求、損害、またはその他の責任についても一切の責任を負いません。
allを渡して、"default: false"とマークされたものを含むすべてのサービスを実行する。どちらの場合も、otypeの検証は引き続き適用されることに注意してください。
Machinaeは、コマンドラインで-H/--http-proxy引数を使用してHTTPプロキシを渡すことをサポートしています。プロキシが指定されない場合、Machinaeは標準のHTTP_PROXYおよびHTTPS_PROXY環境変数、ならびに標準的でないhttp_proxyおよびhttps_proxy環境変数を検索します。
最後に、ターゲットのリストを渡す必要があります。上記のオプション以外のすべての引数は、ターゲットとして解釈されます。
fraudguard)shodan)