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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
yarasafe — YARA内の関数をマッチングするためのSAFE埋め込み | Kitploit
ツール/GitHubGitHub/lucamassarelli/yarasafe
脆弱性分析リバースエンジニアリングマルウェア分析バイナリ解析機械学習
GitHublucamassarelli/yarasafe

yarasafe

YARA内の関数をマッチングするためのSAFE埋め込み

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

人気

すべて見る →

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

すべてのツールを探索

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

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

YARASAFE - Yaraを使用した自動バイナリ関数類似性チェック

SAFEは、Massarelli L.、Di Luna G.A.、Petroni F.、Querzoni L.、Baldoni R.によって開発された、バイナリ関数埋め込みを作成するためのツールです。 SAFEを使用して、Yaraルール内で使用する関数埋め込みを作成できます。

興味がある方は、研究論文をご覧ください: https://arxiv.org/abs/1811.05296

研究で使用する場合は、以下を引用してください:

root@kitploit:~
@inproceedings{massarelli2018safe,
  title={SAFE: Self-Attentive Function Embeddings for Binary Similarity},
  author={Massarelli, Luca and Di Luna, Giuseppe Antonio and Petroni, Fabio and Querzoni, Leonardo and Baldoni, Roberto},
  booktitle={Proceedings of 16th Conference on Detection of Intrusions and Malware & Vulnerability Assessment (DIMVA)},
  year={2019}
}

これは論文の実験を再現するためのコードではありません。興味がある場合は、https://github.com/gadiluna/SAFE をご覧ください。

PyTorchを使用したい場合は、SAFEtorchをご覧ください: https://github.com/facebookresearch/SAFEtorch

はじめに

yarasafeを使用すると、アセンブリコードを一切見ずに、バイナリ関数のシグネチャを簡単に作成できます! このリポジトリのIDA Pro PluginフォルダにあるIDA Proプラグインをインストールするだけです。

プラグインをインストールすると、マッチさせたい関数の埋め込みを作成できます。 これらの埋め込みはYaraルールに挿入して、Yaraを使用して関数をマッチさせることができます。 強力なルールを作成するには、複数の関数埋め込みを標準のYaraルールと組み合わせることができます。

このリポジトリには、IDA Pro用のプラグインとyarasafeモジュールがあります。

Yarasafeは、50命令以上150命令未満の関数をマッチングできます。

必要条件

  • python3
  • radare2
  • jansson

クイックスタート

まず、IDA Proプラグインをインストールします。このリポジトリのida-pro-pluginフォルダに手順があります。その後、Dockerコンテナを使用するか、yarasafeモジュールでyaraをビルドできます。

Docker

yarasafeを使用する最も速い方法は、Dockerコンテナを使用することです。

イメージをプル:

  • docker pull massarelli/yarasafe

ルールと分析対象ファイルを含むフォルダをマウントしてDockerを起動:

  • docker run -v {FOLDER_TO_MOUNT}:/home/yarasafe/test -it massarelli/yarasafe bash

Docker内でyaraを起動し、ルールを適用!

Ubuntu

  • リポジトリをクローン:
root@kitploit:~
git clone https://github.com/lucamassarelli/yarasafe.git
  • Yaraの依存関係をインストール:
root@kitploit:~
sudo apt-get install automake libtool make gcc flex bison 
sudo apt-get install libjansson-dev
  • システムにradare2をインストール:
root@kitploit:~
git clone https://github.com/radare/radare2.git
cd radare2
./sys/install.sh
  • yarasafeの依存関係をインストール:
root@kitploit:~
cd yarasafe/python_script
pip3 install -r requirements.txt
  • コンパイル:
root@kitploit:~
./bootstrap.sh
./configure
make
  • 環境変数をエクスポート:
root@kitploit:~
export YARAPYSCRIPT={PATH_TO_YARASAFE_REPO}/python_script

MacOS

  • リポジトリをクローン:
root@kitploit:~
git clone https://github.com/lucamassarelli/yarasafe.git
  • Yaraの依存関係をインストール:
root@kitploit:~
brew install automake libtool flex bison 
brew install jansson
  • システムにradare2をインストール:
root@kitploit:~
git clone https://github.com/radare/radare2.git
cd radare2
./sys/install.sh
  • yarasafeの依存関係をインストール:
root@kitploit:~
cd yarasafe/python_script
pip3 install -r requirements.txt
  • コンパイル:
root@kitploit:~
./bootstrap.sh
./configure.sh
make
  • 環境変数をエクスポート:
root@kitploit:~
export YARAPYSCRIPT={PATH_TO_YARASAFE_REPO}/python_script

テスト

rulesフォルダ内にルール sample_safe_rule.yar があります。このルールは任意のPEファイルでトリガーするはずです:

root@kitploit:~
yara {PATH_TO_YARASAFE_REPO}/rules/sample_safe_rule.yar {FILES}

ルールの書き方

安全なYaraルールを作成するには、まず関数の埋め込みを作成する必要があります。 これを行うには、このリポジトリに同梱されているIDA Proプラグインを使用できます。 ida-pro-pluginフォルダ内に、プラグインの実行方法に関するすべての情報があります!

関数の埋め込みを取得したら、ルールを作成するだけです。 安全なYaraルールの例:

root@kitploit:~
import "safe"

rule example
{
    meta:
        description = "This is just an example"
        threat_level = 3
        in_the_wild = true

    condition:
        safe.similarity("[-0.02724416,0.00640265,0.01138294,-0.07013566,0.00306808,-0.09757628,0.10414989,-0.13555837,-0.07873314,-0.00725415,-0.01418876,-0.05907412,-0.12452127,0.06237456,0.02260636,-0.06013175,0.11689295,-0.00200026,-0.03594812,0.07857288,-0.00288544,0.01148411,0.00891006,0.04702956,0.1205316,0.0079077,-0.07449158,0.00653283,0.15414064,0.13021031,0.01325423,-0.35491243,-0.00992016,-0.21460094,0.0558461,-0.07761839,-0.10909985,-0.05616508,0.01800609,0.06736821,0.00308393,0.04241242,-0.08351246,0.13501632,-0.10729794,-0.10229874,0.00066896,-0.01963937,0.05516102,-0.01612499,-0.09743191,-0.0314435,-0.01470971,-0.00125769,-0.01774654,0.2332938,0.14166495,0.16998142,-0.04843156,-0.08931472,0.13102795,0.14147657,0.02275739,-0.04335862,0.05724025,0.03936686,-0.10526938,-0.11637416,-0.0112917,0.05484914,-0.06934103,0.2543144,-0.17833991,-0.00828893,0.00174531,-0.03048271,-0.04773486,0.095866,-0.14434388,0.11433239,-0.10749247,0.03952292,0.03988512,-0.11541581,-0.07812429,-0.04978319,0.32052052,-0.0497911,-0.13022986,0.02477266,-0.05968329,0.01724695,0.01577485,-0.0497415,0.24494685,0.00361651,-0.08172874,-0.07473877,-0.01046288,0.02298573]") > 0.95
}

このルールは、サンプル内にターゲットとの類似度が0.95を超える関数が少なくとも1つ存在する場合に満たされます。

Yaraのバージョンにsafeを追加する

Yaraリポジトリにsafeを追加する場合:

  • すべての依存関係をインストール
  • ファイル libyara/modules/safe.c を your_rep/libyara/modules/safe.c にコピー
  • フォルダ libyara/include/python を your_rep/libyara/include にコピー
  • libyara/modules/module_list の末尾に ``` MODULE(safe) を追加
  • libyara/Makefile.am を修正:
    • 次の行の後:
    root@kitploit:~
    libyara_la_LDFLAGS = -version-number 3:8:1
    
    • 追加:
    root@kitploit:~
    libyara_la_LDFLAGS += -LPATH_TO_PYTHON3.*_LIB -lpython3.*m -ljansson 
    
  • コンパイル!
ツールをダウンロード