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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cosa-nostra — Cosa Nostra、FOSSのグラフベースのマルウェアクラスタ化ツールキット。 | Kitploit
ツール/GitHubGitHub/joxeankoret/cosa-nostra
静的分析リバースエンジニアリングフォレンジックマルウェア分析バイナリ解析学習と教育
GitHubjoxeankoret/cosa-nostra

cosa-nostra

Cosa Nostra、FOSSのグラフベースのマルウェアクラスタ化ツールキット。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Cosa Nostra

Cosa Nostraは、マルウェア解析に焦点を当てたオープンソースのソフトウェアクラスタリングツールキットです。構造的に類似したバイナリマルウェアサンプルの系統樹を作成できます。SyScan360上海(2016)で初めて公開されました。

私は基本的に2016年から、たまたま友人であるたった一人のユーザーのためにメンテナンスしています...まあ。

はじめに

必要なサードパーティツール

Cosa Nostraを使用するには、Python 3.Xのバージョンと、コード解析を実行するための以下のツールのいずれかが必要です。

  • IDA C++で書かれています。おそらく聞いたこともないような多種多様な実行可能ファイルタイプの解析をサポートしています。商用製品。現在サポートされているのは7.Xバージョンのみです。
  • Radare2 純粋なCで書かれています。IDAと同様に、非常に稀なCPUやバイナリ形式をサポートしています。また、オープンソースです!

バイナリの解析

前述のツールのいずれかをインストールしたら、以下の例のように、適切なバッチツールを使用してマルウェアサンプルを解析する必要があります。

root@kitploit:~
$ cd $COSA_NOSTRA_DIR
$ /path/to/ida64 -B -A -S/full/path/to/ida_batch.py example.exe

または

root@kitploit:~
$ cd $COSA_NOSTRA_DIR
$ python r2_batch.py example.exe

マルウェアデータセットの解析の自動化

マルウェアデータセットを解析する最も簡単な方法は、次の例のようなコマンドを実行することです。

root@kitploit:~
$ find /your/malware/dataset/path -type f -exec python r2_batch.py {} ';'

次の例のように、「GNU Parallel」ツールを使用して並列実行することもできます。

root@kitploit:~
$ find /your/malware/dataset/path -type f | parallel -j 8 ida64 -B -A -S/path/to/ida_batch.py {}

上記の例では、合計8つのpyew_batchプロセスが並列に起動されます。

データベース設定

マルウェアサンプルの解析後、解析が成功した場合、各サンプルのコールグラフデータはデフォルトで「db.sqlite」という名前の1つのSQLiteデータベースに保存されます。データベース名、パス、データベースシステムなどは、ファイル$COSA_NOSTRA_DIR/を編集することで設定できます。以下の例を参照してください。

root@kitploit:~
$ cat config.cfg 
########################################################################
# Configuration for SQLite3
########################################################################
[database]
dbn=sqlite
# Database name
db=db.sqlite

たとえば、MySQLデータベースシステムを使用したい場合は、config.cfgに以下の設定セクションを適切な値で追加することで設定できます。

root@kitploit:~
########################################################################
# Example configuration for MySQL
########################################################################

[database]
dbn=mysql
# Database hostname or IP address
host=localhost
# Database name
db=db_name
# Database username
user=username
# Database password
pw=password

マルウェアサンプルのクラスタリング

このステップは最も時間がかかります。データセット内のすべてのマルウェアサンプルを解析し、コールグラフシグネチャ、対応する素数などが計算されてデータベースに保存されると、次のステップはクラスタを見つけることです。そのためのツールは「cn_clusterer.py」です。これは同じデータベース設定ファイル($COSA_NOSTRA_DIR/config.cfg)を使用して、解析されたサンプルのコールグラフシグネチャを抽出します。以下のように実行するだけで簡単です。

root@kitploit:~
$ cd $COSA_NOSTRA_DIR
$ ./cn_clusterer.py
(...)
Calculating difference matrix for 2357, iteration 5540280 out of 7507600 (4858784 matches, 600144 cache misses)
Calculating difference matrix for 2354, iteration 5543020 out of 7507600 (4861293 matches, 600373 cache misses)
Calculating difference matrix for 471, iteration 5545760 out of 7507600 (4863903 matches, 600373 cache misses)
(...)
Making tree for group with 59 sample(s), iteration 0 out of 256
Making tree for group with 393 sample(s), iteration 1 out of 256
Making tree for group with 1347 sample(s), iteration 2 out of 256
(...)
[Wed Nov  2 13:37:12 2016 2830:140561185462080] Creating unnamed cluster...
[Wed Nov  2 13:37:12 2016 2830:140561185462080] Creating cluster with name u'Win.Trojan.Skylock-4'...
[Wed Nov  2 13:37:12 2016 2830:140561185462080] Creating cluster with name u'Win.Downloader.133181-1'...
[Wed Nov  2 13:37:12 2016 2830:140561185462080] Creating cluster with name u'Win.Trojan.Agent-1213378'...
[Wed Nov  2 13:37:13 2016 2830:140561185462080] Done processing phylogenetic trees!
[Wed Nov  2 13:37:13 2016 2830:140561185462080] Done

プロセスが完了すると、解析されたマルウェアサンプルをグループ化したクラスタが指定されたデータベースに作成されます。

クラスタの表示:Web GUI

最後のステップは、web.pyベースのWebアプリケーションを起動してログインすることです。

root@kitploit:~
$ cd $COSA_NOSTRA_DIR
$ python cosa_nostra.py [optional port to listen to]
http://0.0.0.0:YOURPORT/

次に、ブラウザを開き、cosa_nostra.pyが表示するアドレスに移動します。ユーザー名とパスワードを要求するログインフォームが表示されます。デフォルトでは「admin/cosanostra」です。これはファイル$COSA_NOSTRA_DIR/config.pyで変更できます。

root@kitploit:~
$ cat config.py
#!/usr/bin/env python

#-----------------------------------------------------------------------
# Configuration for Cosa Nostra
#-----------------------------------------------------------------------
DEBUG=False
CN_USER="admin"
# SHA1 hash of the password "cosanostra", change to the SHA1 hash of
# whatever password you prefer.
CN_PASS="048920dedfe36c112d74dc8108abb4db5185a918"
(...)

ログインすると、左側のパネルから次のオプションのいずれかを選択できます。

  • Samples: 現在のデータベース内のサンプルを表示します。
  • Clusters: Cosa Nostraが指定されたデータセットに対して見つけたクラスタのリストを表示します。

「Clusters」ビューでは、異なるクラスタを選択して、発見されたマルウェアファミリの階層グラフを表示できます。

スクリーンショット

Cosa Nostraで表示されるクラスタのリスト:

Cosa Nostraで表示されるクラスタのリスト

Trojan.Backspace-1(ClamAVによる命名)の小さなクラスタ:

Trojan.Backspace-1(ClamAVによる命名)の小さなクラスタ

MiniDukesの小さなクラスタ:

MiniDukesの小さなクラスタ

Kazy/Bifrosesのクラスタ:

Kazy/Bifrosesのクラスタ

FannyWormsの非常に大きなクラスタの一部:

FannyWormsの非常に大きなクラスタの一部

ツールをダウンロード