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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
bidi_char_detector — ファイル内にUnicode BIDI文字が存在するかチェックします。これらはサプライチェーン攻撃に悪用される可能性があります。CVE-2021-42574を参照してください。 | Kitploit
ツール/GitHubGitHub/maweil/bidi_char_detector
静的分析脆弱性分析コード分析シークレット検出サプライチェーンセキュリティ設定ミスArchived
GitHubmaweil/bidi_char_detector

bidi_char_detector

ファイル内にUnicode BIDI文字が存在するかチェックします。これらはサプライチェーン攻撃に悪用される可能性があります。CVE-2021-42574を参照してください。

リポジトリを見る
633年前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

BIDI文字検出器

このツールは、ファイル内にサプライチェーン攻撃に悪用される可能性のあるUnicode BIDI文字が存在するかどうかをチェックし、CVE-2021-42574を軽減します。 このツールはRustで書かれており、高速かつ簡単に使用できるように、小さな(3MB未満)Docker互換コンテナとして配布されています。

攻撃の説明については、GitHubのブログ記事または攻撃が公開された元の論文を参照してください。

インストール

このパッケージは主にDockerコンテナを介して使用されることを目的としています。しかし、ローカルインストールももちろん可能です。 コンパイルには、Rust 2021 Editionを使用しているため、少なくともRust 1.56.0が必要です。 このリポジトリをクローンし、cargo install --path . を実行して、現在のユーザー用にバイナリをインストールします。その後、bidi_detector コマンドを実行できます。

使用方法

公式のDockerコンテナを介してツールを実行するのが、おそらく最も簡単な開始方法です。 Dockerを介して実行するには、以下のコマンドで現在の作業ディレクトリ内のすべてのファイルをスキャンできます。

root@kitploit:~
docker run --rm -it -v $(pwd):/data ghcr.io/maweil/bidi_char_detector:latest

システムによっては、このコマンドを少し調整する必要があるかもしれません。例えば、podmanを使用していてSELinuxが有効な場合は、代わりに次のコマンドを試してください。

root@kitploit:~
podman run --rm -it -v $(pwd):/data:Z ghcr.io/maweil/bidi_char_detector:latest

設定

デフォルトでは、すべてのファイルがチェックされます。現在のディレクトリ内にバイナリファイルがある場合、UTF-8以外のエンコードファイルをデコードできないため、コマンドは失敗します。 ニーズに合わせてコマンドを調整するには、プロジェクトのルートに bidi_config.toml という名前のファイルを配置します。 このリポジトリにその例があります。以下の例を参照してください。オプションについては、例の後で詳しく説明します。

root@kitploit:~
[general]
includes = [ 
    "src/**/*",
    "**/*.patch",
    "**/*.json",
    "**/Dockerfile",
    "test/*.js"
]
excludes = [
    ".git/*",
    "target/*"
]

[display]
show_details = true

一般設定

このセクションには、スキャンするファイル(またはスキャンから除外するファイル)のパターンを指定できる2つの配列(includes および excludes)が含まれています。 パターンがディレクトリ名自体ではなく、ディレクトリ内のファイルに実際に一致するようにしてください。そうしないと、ファイルがスキャンされません。 すべてのファイルをスキャンし、例えば .git ディレクトリのみを除外したい場合、次の設定で目的を達成できます。

root@kitploit:~
[general]
includes = [ 
    "**/*"
]
excludes = [
    ".git/*",
]

[display]
show_details = true

代わりに、ソースファイルが含まれるフォルダを明示的に定義したい場合は、次の設定例でsrcディレクトリ内のすべてのファイルをスキャンします(何も無視しません)。

root@kitploit:~
[general]
includes = [ 
    "src/**/*"
]
excludes = [
]

[display]
show_details = true

表示設定

このセクションでは、次の設定が利用可能です。

例: show_details = true, verbose = true

root@kitploit:~
src/lib.rs - 0 BIDI characters
src/main.rs - 0 BIDI characters
test/example-commenting-out.js - 6 BIDI characters
Found character RLO (Right-to-Left Override), test/example-commenting-out.js:4:3
Found character LRI (Left-to-Right Isolate), test/example-commenting-out.js:4:7
Found character PDI (Pop Directional Isolate), test/example-commenting-out.js:4:20
Found character LRI (Left-to-Right Isolate), test/example-commenting-out.js:4:22
Found character RLO (Right-to-Left Override), test/example-commenting-out.js:6:20
Found character LRI (Left-to-Right Isolate), test/example-commenting-out.js:6:24
Found 6 potentially dangerous Unicode BIDI characters!

例: show_details = false, verbose = true

root@kitploit:~
src/lib.rs - 0 BIDI characters
src/main.rs - 0 BIDI characters
test/example-commenting-out.js - 6 BIDI characters
Found 6 potentially dangerous Unicode BIDI characters!

例: show_details = false, verbose = false

root@kitploit:~
test/example-commenting-out.js - 6 BIDI characters
Found 6 potentially dangerous Unicode BIDI characters!

謝辞

攻撃の検出と関連するBIDI文字のリストに関するすべての功績は、対応する論文の原著者に帰属します。 彼らの研究を基に構築する場合は、原著論文を引用してください。

このリポジトリの test/example-commenting-out.js ファイルは、元のリポジトリの commenting-out.js のコピーです。そのライセンスは元のリポジトリ(MITライセンス)に従います。 ここではテスト目的でのみ使用されています。

root@kitploit:~
@article{boucher_trojansource_2021,
    title = {Trojan {Source}: {Invisible} {Vulnerabilities}},
    author = {Nicholas Boucher and Ross Anderson},
    year = {2021},
    journal = {Preprint},
    eprint = {2111.00169},
    archivePrefix = {arXiv},
    primaryClass = {cs.CR},
    url = {https://arxiv.org/abs/2111.00169}
}
ツールをダウンロード
SettingDescriptionOptionalDefaultIntroduced in
show_details検出されたBIDI文字の行/位置とタイプを出力するかどうかを決定します(以下の例を参照)No-v0.1.1
ignore_invalid_dataバイナリ/UTF-8以外のファイルが検出された場合にエラーメッセージを出力するかどうかYestruev0.1.2
verbose疑わしい文字が見つからなくてもファイル名を出力するかどうかYestruev0.1.2