Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
malcom — Malcom - マルウェア通信解析ツール | Kitploit
ツール/GitHubGitHub/tomchop/malcom
ネットワークフォレンジックマルウェア分析脅威インテリジェンス
GitHubtomchop/malcom

malcom

Malcom - マルウェア通信解析ツール

リポジトリを見る
1.2k216118年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Malcom - マルウェア通信アナライザー

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

  • Malcomとは?
  • 簡単な使い方
  • インストール
  • 設定オプション
  • Dockerインスタンス
  • TLSインターセプションに関する簡単な注意
  • 環境
  • フィード
  • 技術仕様
  • ロードマップ
  • 免責事項
  • ライセンス

Malcomとは?

Malcomは以下のことに役立ちます:

  • 中央のコマンド&コントロール(C&C)サーバーを検出する
  • ピアツーピアネットワークを理解する
  • DNS fast-fluxインフラストラクチャを観察する
  • ネットワークアーティファクトが「既知の悪意のあるもの」かどうかを迅速に判断する

Malcomの目的は、特定のホストまたはネットワークから発信されるネットワークトラフィックを人間が読める形に変換することで、マルウェア分析とインテリジェンス収集を高速化することです。ネットワークトラフィック情報をより迅速に実用的なインテリジェンスに変換します。

wikiで、いくつかの素敵なスクリーンショットと独自のフィードを追加する方法のチュートリアルを含むクイックスタートをご確認ください。

ヘルプが必要な場合や貢献したい場合は、メーリングリストに参加するか、IRC(freenode.netの#malcom、かなり静かですが常に誰かがいます)で誰かを見つけてみてください。Twitter @tomchop_でも連絡できます。

以下はホストtomchop.meのグラフ例です。 nodes-tomchop.png

データセットビュー(IPのみ表示するようフィルタリング) dataset-view.png

簡単な使い方

  • インストール
  • mongodbとredis-serverが実行されていることを確認
  • 特権をrootに昇格させる(ええ、わかっています。免責事項を参照)
  • デフォルト設定でウェブサーバーを起動: ./malcom.py -c malcom.conf(または./malcom.py --helpでオプションを確認) ** 設定ファイルの例として、malcom.conf.exampleをmalcom.confにコピーできます。 ** デフォルトポートは8080 ** または、celeryからフィードを実行します。詳細については、フィードセクションを参照してください。

インストール

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

以下はUbuntu Server 14.04 LTSでテストされています:

  • git、python、libeventライブラリ、mongodb、redis、およびその他の依存関係をインストール

    root@kitploit:~
      $ 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
    
  • Gitリポジトリをクローン:

    root@kitploit:~
      $ git clone https://github.com/tomchop/malcom.git malcom
    
  • 仮想環境を作成して有効化:

    root@kitploit:~
      $ cd malcom
      $ virtualenv env-malcom
      $ source env-malcom/bin/activate
    
  • scapyを取得してインストール:

    root@kitploit:~
      $ 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
    
  • 仮想環境内で、requirements.txtファイルから必要なPythonパッケージをインストール:

設定オプション

データベース

デフォルトでは、Malcomはローカルのmongodbインスタンスに接続し、malcomという名前の独自データベースを作成しようとします。これで問題なければ、次の手順はスキップしてかまいません。そうでない場合は、malcom.confファイルのdatabaseセクションを編集する必要があります。

Malcomデータベースに別の名前を設定する

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

root@kitploit:~
    [database]
    ...
    name = my_malcom_database
    ...
リモートデータベース

デフォルトでは、Malcomはlocalhostに接続しようとしますが、データベースが別のサーバーにある場合もあります。これを変更するには、hostsディレクティブを設定するだけです。ホスト名またはIPv4/v6アドレスを使用できます(IPv6アドレスは[と]で囲むことを忘れないでください。例:[::1])。

ホストmy.mongo.server上のスタンドアロンデータベースを使用する場合は、次のように設定します:

root@kitploit:~
    [database]
    ...
    hosts = my.mongo.server
    ...

サーバーの名前/アドレスの後に:で区切ってポートを指定することもできます。

root@kitploit:~
    [database]
    ...
    hosts = localhost:27008
    ...

また、my.mongo1.serverとmy.mongo2.serverで構成されるReplicaSetを使用している場合は、次のように設定します:

root@kitploit:~
    [database]
    ...
    hosts = my.mongo1.server,my.mongo2.server
    ...
認証を使用する

mongodインスタンスが認証接続を強制するように設定している場合があります。その場合、ドライバーがmongodインスタンスに接続するために使用するユーザー名を設定する必要があります。これを行うには、malcom.confファイルのdatabaseセクションにusernameディレクティブを追加します。また、passwordディレクティブを使用してパスワードを設定する必要がある場合もあります。ユーザーにパスワードがない場合は、passwordディレクティブを無視(つまりコメントアウト)してください。

root@kitploit:~
    [database]
    ...
    username = my_user
    password = change_me
    ...

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

root@kitploit:~
    [database]
    ...
    authentication_database = some_other_database
    ...
レプリカセットの場合

レプリカセットを使用する場合、正しいレプリカセットに接続していることを確認する必要がある場合があります。そのためには、replsetディレクティブを追加して、mongoドライバーにレプリカセット名を強制的に確認させます。

root@kitploit:~
    [database]
    ...
    replset = my_mongo_replica
    ...

デフォルトでは、Malcomはレプリカセットのプライマリノードに接続しようとします。これを変更する必要がある場合があります。その動作を変更するには、read_preferenceディレクティブを設定します。詳細については、mongoドキュメントを参照してください。

root@kitploit:~
    [database]
    ...
    read_preference = NEAREST
    ...

サポートされている読み取り設定は次のとおりです:

  • PRIMARY
  • PRIMARY_PREFERRED
  • SECONDARY
  • SECONDARY_PREFERRED
  • NEAREST

Dockerインスタンス

最も迅速に開始する方法は、公開DockerリポジトリからDockerイメージをプルすることです。より古く、より安定したDockerビルドをプルするには、tomchop/malcom-automaticの代わりにtomchop/malcomを使用してください。

root@kitploit:~
    $ sudo docker pull tomchop/malcom-automatic
    $ sudo docker run -p 8080:8080 -d --name malcom tomchop/malcom-automatic

http://<docker_host>:8080/に接続すれば開始できます。

TLSインターセプションに関する簡単な注意

Malcomは現在TLSインターセプションをサポートしています。これを機能させるには、Malcom/networking/tlsproxy/keysディレクトリにいくつかのキーを生成する必要があります。その方法の詳細については、そこのKEYS.mdファイルを参照してください。

また、IPtables(すでにあるはずです)とそれを使用してポート転送を行う権限(通常はrootである必要があります)があることを確認してください。便利なforward_port.shスクリプトを使用してこれを行うことができます。たとえば、ポート443へのすべてのTLS通信をインターセプトするには、forward_port.sh 443 9999を使用します。次に、ポート9999でインターセプションプロキシを実行するようにmalcomに指示する必要があります。

このプロセスは将来のリリースで自動化される予定です。

環境

MalcomはUbuntu Server 14.04 LTS VM上で設計およびテストされました。

マルウェア分析に慣れているなら、おそらくホストOS上で多数の仮想マシンを実行しているでしょう。新しいVMにMalcomをインストールし、他のVMの接続をMalcom経由でルーティングしてください。enable_routing.shを使用して、Malcomが実行されているVMでルーティング/NATを有効にします。ゲストOSに追加のネットワークカードを追加する必要があります。

レイヤー3のネットワークデータを取得できる限り、Malcomはどこにでも展開できます。高可用性ネットワークでの使用は推奨されませんが(高速になるよう設計されていません。免責事項を参照)、スイッチのミラーポートの終端やゲートウェイで実行できます。

フィード

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

データベースは自動的にデータが入力されるはずです。コードを調べれば、フィードの追加は非常に簡単です(Evilオブジェクトを生成している前提)。例となるフィードは/feeds/zeustrackerにあります。より詳細なチュートリアルはこちらで入手できます。

celeryを使用してフィードを実行することもできます。仮想環境から$ pip install celeryを実行してceleryがインストールされていることを確認してください。次に、celery worker -E --config=celeryconfig --loglevel=DEBUG --concurrency=12を使用して、12の同時ワーカーでフィード処理を開始できます。

技術仕様

MalcomはほとんどスクラッチからPythonで書かれています。動作には以下のフレームワークを使用しています:

  • flask - 軽量なPython Webフレームワーク
  • mongodb - NoSQLデータベース。Pythonとのインターフェースはpymongoを使用
  • redis - 高度なインメモリキーバリューストア
  • d3js - 素晴らしいフォース指向グラフを生成するJavaScriptライブラリ (https://github.com/mbostock/d3/wiki/Gallery)
  • bootstrap - やがてウェブデザインを駆逐するかもしれないCSSフレームワークだが、コマンドプロンプトでしか動作しないアプリケーションを素早く「ウェブ化」するのを非常に容易にする。

ロードマップ

コラボレーション - このツールを向かわせたい主な方向性は、コラボレーションを可能にすることです。これについていくつかアイデアがあり、データ共有が実装されれば100倍便利になると考えています。

拡張性 - ツールに含めたいもう一つのことは、より簡単に拡張できる機能です。私と他のすべての人のニーズは同じではなく、このツールは私のニーズを念頭に置いて考案されました。現在では新しいフィードを追加してMalcomをカスタマイズできます。

コラボレーションと拡張が軌道に乗れば、これが多くのインシデントレスポンダーにとって役立つものになるでしょう。 :-)

免責事項

このツールは私の自由時間にコーディングされました。私たちが日常的にダウンロードして使用する膨大な数のツールと同様に、データの安定性と信頼性が必須である本番環境での使用はお勧めしません。

  • 壊れている可能性があり、セキュリティ上のギャップがある(管理されていない環境でrootとして実行するのはおそらく良いアイデアではありません)、またはまったく機能しない可能性があります。
  • Pythonで書かれているため、超高速であることや大量のデータを簡単に処理できることは期待しないでください。
  • 私はコーダーではないので、あらゆる場所に美しいPythonコードやたくさんのコメントが書かれているとは期待しないでください。

開発の初期段階にあり、「私にとっては動く」という意味です。自由に共有し、改善し、プルリクエストを依頼してください。

ライセンス

Malcom - マルウェア通信アナライザー Copyright (C) 2013 Thomas Chopitea

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Malcomに含まれるRedis、MongoDB、d3js、Maxmind、Bootstrap(およびその他のサードパーティライブラリ)は、独自のGPL互換ライセンスを持っている場合があることに注意してください。

ツールをダウンロード
root@kitploit:~
  $ cd ../malcom
  $ pip install -r requirements.txt
  • IP地理位置情報を機能させるには、Maxmindデータベースをダウンロードし、ファイルをmalcom/Malcom/auxiliary/geoIPディレクトリに展開する必要があります。Maxmindの無料(したがって精度はそれなり)データベースは次のリンクから入手できます: http://dev.maxmind.com/geoip/geoip2/geolite2/:

    root@kitploit:~
      $ 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を実行できます。