2000P's Blog

最初のページ

tomchop/malcom:マルコム

著者 mcfatridge 時間 2020-02-27
all

マルコムは、ネットワークトラフィックのグラフィカルな表現を使用してシステムのネットワーク通信を分析するために設計されたツールであり、既知のマルウェアのソースとの相互参照。これは、特定のマルウェア種が外部の世界と通信しようとする方法を分析するときに便利です。

マルコムはあなたを助けることができます:

マルコムの目的は、与えられたホストまたはネットワークから始まっているネットワークトラフィックの人間に読めるバージョンを提供することによって、マルウェア分析とインテル収集をより速くすることです。ネットワークトラフィック情報を変換可能な情報を高速に変換します。

いくつかの素晴らしいスクリーンショットとあなた自身のフィードを追加する方法についてのチュートリアルでクイックスタートのためのwikiをチェックしてください。

いくつかの助けを必要とするか、貢献したい場合は、メーリングリストに参加するか、またはIRC(誰かを取得しようとすると自由に感じなさい。また、私はTwitter @ TomChopRangeで私を打つことができます

以下はホストTomCopy . meのグラフ例です

データセットビュー( IPのみを表示するフィルタ)

クイックハウツー

mongodb redis-server ./malcom.py -c malcom.conf ./malcom.py --help malcom.conf.example malcom.conf celery

インストール

マルコムはPythonで書かれています。必要なライブラリがあれば、任意のプラットフォームで実行できるはずです。私は、あなたのシステムライブラリを混乱させないように、Python仮想環境(VirtualEnv)の使用を強く推薦します。

virtualenv

以下はUbuntuサーバ14.04 LTSでテストされました。

Git , python , libevent libs , mongodb , redis ,その他の依存関係をインストールする

git python libevent mongodb redis $ sudo apt-get install build-essential git python-dev libevent-dev mongodb libxml2-dev libxslt-dev zlib1g-dev redis-server libffi-dev libssl-dev python-virtualenv

Clone the Git Repo:

$ git clone https://github.com/tomchop/malcom.git malcom

virtualenvを作成し、アクティブにします。

$ cd malcom $ virtualenv env-malcom $ source env-malcom/bin/activate

Scapyを入手してインストールします

scapy $ cd .. $ wget http://www.secdev.org/projects/scapy/files/scapy-latest.tar.gz $ tar xvzf scapy-latest.tar.gz $ cd scapy-2.1.0 $ python setup.py install

Virtualenvから、必要なPythonパッケージをrequire . txtファイルからインストールします。

requirements.txt $ cd ../malcom $ pip install -r requirements.txt malcom/Malcom/auxiliary/geoIP $ cd Malcom/auxiliary/geoIP $ wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz $ gunzip -d GeoLite2-City.mmdb.gz $ mv GeoLite2-City.mmdb GeoIP2-City.mmdb

マルコムディレクトリから.をチェックします。

malcom ./malcom.py ./malcom.py --help malcom.conf.example malcom.conf ./malcom.py -c malcom.conf

設定オプション

データベース

デフォルトでは、MalcomはローカルMongoDBインスタンスに接続し、Mulcomという名前のデータベースを作成しようとします。これがあなたのためにOKならば、あなたは以下の手順をスキップするかもしれません。それ以外の場合は、malcom . confファイルのデータベースセクションを編集する必要があります。

malcom database malcom.conf
MALCOMデータベースの他の名前を設定する

デフォルトでは、malcomはmalcomという名前のデータベースを使用します。この動作を変更するには、malcom . confファイルを編集し、データベースのセクションから名前ディレクティブを好みに設定します。

malcom malcom.conf name database [database] ... name = my_malcom_database ...
リモートデータベース

デフォルトでは、Malcomはlocalhostに接続しようとしますが、データベースは別のサーバ上にあります。これを変更するには、単にホストディレクティブを設定します。ホスト名やIPv 4 / V 6アドレスを使用することができます(例えば、[:]の間にIPv 6アドレスを囲むようにしてください)。

localhost hosts [ ] [::1]

ホストmy . gogo . serverにスタンドアローンデータベースを使いたいならば、

my.mongo.server [database] ... hosts = my.mongo.server ...

ポートMonGodを指定することで、サーバーの名前/アドレスの後に指定してポートを指定します。

: [database] ... hosts = localhost:27008 ...

そして、もしあなたがmy . mongo 1 . serverとmy . mongo 2サーバを再編成しているレプリカを使用しているならば、

ReplicaSet my.mongo1.server my.mongo2.server [database] ... hosts = my.mongo1.server,my.mongo2.server ...
認証を使用する

Monteodインスタンスを認証して接続を強制するように設定できます。その場合、Monitorインスタンスに接続するためにドライバを使用する必要があります。これを行うには、Mulcom . confファイルのデータベースセクションにユーザー名ディレクティブを追加します。また、パスワードディレクティブでパスワードを設定する必要があります。ユーザがパスワードを持っていない場合は、パスワードディレクティブを無視します。

username database malcom.conf password password [database] ... username = my_user password = change_me ...

ユーザーがMalcomデータベースにリンクされていないが、別の1つ(例えば管理者ユーザの管理データベース)にリンクされていない場合は、そのデータベースの名前でAuthenticationCountデータベースディレクティブを設定する必要があります。

malcom admin authentication_database [database] ... authentication_database = some_other_database ...
レプリカセットの場合

レプリカセットを使用する場合は、右側に接続されていることを確認する必要があります。そのためには、ReplicSetの名前をチェックするために

replset [database] ... replset = my_mongo_replica ...

デフォルトでは、malcomはthレプリカセットの主ノードに接続しようとします。あなたはそれを変更する必要があります。その動作を変更するには、readRange優先度を設定します。詳細はmongo文書を参照ください。

read_preference [database] ... read_preference = NEAREST ...

Supported read preferences are:

ドッカーインスタンス

あなたを始めるために最も速い方法は、公共のDocker RepoからDockerイメージを引くことです。古い、より安定したdockerを構築するには、tomchop / malcomの代わりにtomchop / malcomを使います。

tomchop/malcom tomchop/malcom-automatic $ sudo docker pull tomchop/malcom-automatic $ sudo docker run -p 8080:8080 -d --name malcom tomchop/malcom-automatic

http :// DockerCacheホスト> 8080 /に接続してください。

http://<docker_host>:8080/

TLS遮断に関する迅速な注意

マルコムは現在、TLSの傍受をサポートしています。このためには、マルコム/ネットワーク/ tlsproxy / keysの中にいくつかのキーを生成する必要があります。この方法についての詳しい情報はKEYS . MDファイルを参照してください。

iptables (既に必要なもの)とパーミッションを持っているか確認してください。例えば、ポート443の方へすべてのTLS通信を妨害するために、ForwardHorse Ports . sh 443 9999を使用してください。その後、ポート9999上で傍受プロキシを実行するようMalcomに伝える必要があります。

forward_port.sh forward_port.sh 443 9999 9999

このプロセスが将来のリリースで自動化されると予想してください。

環境

マルコムは設計され、Ubuntuサーバ14.04 LTS VM上でテストされました。

あなたがマルウェア分析をすることに慣れているならば、あなたはおそらくすでにホストOSで動いている仮想マシンのトンを持っています。ちょっと新しいVMにmalcomをインストールしてください、そして、malcomであなたの他のVMの接続を回してください。実行中のVM MALCOMのルーティング/ natingを有効にするには、EnableHumルーチン. shを使用します。あなたはゲストOSに余分なネットワークカードを追加する必要があります。

enable_routing.sh

Layer 3ネットワークデータを取得している限り、マルコムはどこでも展開できます。それは高可用性ネットワーク(それは高速に設計されていない、断り書きを参照してくださいに設計されていない)を使用することをお勧めしませんが、あなたはそれがあなたのスイッチのミラーポートの末尾またはゲートウェイで実行することができます。

フィード

フィードから情報を取得するマルコムのインスタンスを起動するには、- MARCOMを--フィードオプションで実行するか、設定ファイルを微調整します。

--feeds

データベースを自動的に設定する必要があります。あなたがコードに掘ることができるならば、フィードを加えることはかなり簡単です(あなたが邪悪なオブジェクトを生み出していると仮定して)。フィードのフィード/ zeustrackerの例を見つけることができます。詳細なチュートリアルはここで入手できます。

Evil /feeds/zeustracker

また、セロリを使用してフィードを実行することができます。あなたのVirtualEnvから$ pipをインストールすることによってセロリがインストールされることを確認してください。その後、セロリ労働者を使用することができます- e -- config = celeryconfig -- loglevel = debug -- concurrency = 12は、12人の同時労働者で給餌プロセスを開始します。

celery $ pip install celery celery worker -E --config=celeryconfig --loglevel=DEBUG --concurrency=12

技術仕様

マルコムはほとんどPythonから書かれていた。次のフレームワークを使用して動作します。

ロードマップ

コラボレーション-メインの方向は、このツールを取るに協力することです。私はこれについていくつかの考えを持っています、そして、私はデータ共有が実装されるならば、それがより多くの役に立つ100 xになると思います。

拡張性-私はツールに含まれている他のことは、より簡単に拡張する機能です。私は他の皆と同じニーズを持っていません、そして、このツールは私のニーズを念頭に置いて考えられました。これで、新しいフィードを追加することによってマルコムをカスタマイズすることができます。

一度コラボレーションと拡張が稼働していると、私はこれが1つ以上のインシデント応答者に役立つと思う。:-)

免責事項

このツールは、私の自由時間中にコーディングされました。我々がダウンロードして、毎日使用するツールの膨大な数のように、私はデータの安定性と信頼性が必要な生産環境でそれを使用することをお勧めしません。

それは開発の初期段階にあります。あなたはそれを共有し、それを改善し、プル要求を求めて無料です。

許可

マルコム-マルウェア通信分析著作権

このプログラムはフリーソフトウェアです。フリーソフトウェア財団が発行したGNU General Public Licenseの条件の下で再配布することができます。

このプログラムは、それが有用であることを願って配布されていますが、保証なしで、商品性や特定の目的のための適合性の暗黙の保証なしで。詳しくはGNU一般公衆利用許諾契約書をご覧ください。

GNU General Public Licenseのコピーをこのプログラムと一緒に受け取りました。そうでなければ、http :// www . gnu . org / license /を見てください。

Redis、MongoDB、D 3 JS、MaximindとBootstrap(そして、MALCOMに含まれる他のサードパーティ製のライブラリ)は独自のGPL互換のライセンスを持っているかもしれません。