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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
C0deVari4nt — バリアント分析と可視化ツール。コードベースをスキャンして類似の脆弱性を検出します。 | Kitploit
ツール/GitHubGitHub/whitesquirrell/c0devari4nt
静的コード分析 (SAST)脆弱性分析コード分析
GitHubwhitesquirrell/c0devari4nt

C0deVari4nt

バリアント分析と可視化ツール。コードベースをスキャンして類似の脆弱性を検出します。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

C0deVari4nt

Black Hat Arsenal
C0deVari4nt

説明

C0deVari4ntは、コードベース内の類似する脆弱性を検査するためのバリアント分析および可視化ツールです。セマンティックコード分析エンジンであるCodeQLを活用し、ユーザーが制御するCodeQLクエリテンプレートに基づいてコードをクエリし、その結果をvis.jsとReactで構築されたクライアントインターフェースに渡して、さらなる調査と可視化を行います。これにより、以前の脆弱性レポートに基づいて迅速かつ包括的なバリアント分析が可能になります。vis.jsの可視化機能は、開発者に脆弱なコードパスに対する追加の洞察を提供し、潜在的なバリアントを効果的にトリアージできるようにします。

ツールビュー

動機

2021年12月のLog4Shellインシデントは、オープンソース開発者が脆弱性レポートに対応する際に直面する困難を浮き彫りにしました。CVE-2021-44228(未認証のリモート攻撃者が脆弱なバージョンのLog4j 2を実行しているデバイスを制御できるようにする脆弱性)に対する最初のパッチの後、Apacheは関連する脆弱性と未対策のエッジケースに対処するために3つの追加パッチをリリースしました。

オープンソース開発者は包括的なコードレビューの訓練を受けておらず、脆弱性のバリアントを特定する際に問題に直面し、不完全なパッチにつながることがよくあります。CodeQLクエリスイートはコードベースの迅速な分析を容易にするために存在しますが、これらのスイートから返される結果は、有意な偽陽性率をもたらす可能性があります。さらに、これらのスイートは事前定義されたクエリに依存しており、バリアント分析をサポートせず、個別のコードベースにカスタマイズされていません。そのため、オープンソースプロジェクトは脆弱性レポートに対して断片的に対応し、潜在的なバリアントを見逃すことがよくあります。

C0deVari4ntは、開発者が独自のCodeQLクエリを作成する大きなオーバーヘッドなしに、簡単にバリアント分析を実施できるプラットフォームを提供します。これにより、開発者は脆弱性の特定のソースやシンクなどのコードベース固有の情報を提供することで、CodeQLテンプレートをカスタマイズする柔軟性を得られます。結果はvis.jsを利用したグラフデータベースビューで可視化され、開発者が潜在的なバリアントを迅速に特定できるようになります。これにより、開発者は単一の脆弱性レポートからバグのクラス全体に効果的に対処できるようになります。

ツールコンポーネント

C0deVari4ntは、Python、CodeQL、vis.js、Reactを使用して構築されており、ユーザー入力を受け取り、異なる脆弱なコードパス間の関係を表示するインタラクティブなGUIアプリケーションを提供します。

ツールアーキテクチャ

C0deVari4ntは、以下の2つの主要コンポーネントで構成されています:

  • クライアントインターフェース: このコンポーネントはReactとvis.jsのブラウザベース可視化ライブラリで構築されています。ユーザーはこのコンポーネントと対話してCodeQLクエリをカスタマイズし、グラフ可視化ビューを通じてCodeQLの結果を分析します。
  • APIサーバー: このコンポーネントはPythonのFastAPI Webフレームワーク上に構築されており、クライアントインターフェースからのリクエストを受け取り、CodeQLに対応したデータベースファイルのリストに対してCodeQLコマンドを実行します。サーバーは解析されたデータ結果をクライアントインターフェースに返します。

クライアントインターフェースの詳細は以下をご覧ください: ツールアーキテクチャ

v1 使い方

データベースフォルダのセットアップ

  • api-serverディレクトリに移動し、dbextractor.py <codeql db zip file> を実行してCodeQLデータベースの内容を解凍します。

バックエンドサーバーの起動

  • api-serverに移動
  • 依存関係をダウンロード: pip install -r requirements.txt
  • uvicorn main:app --reload を実行して、ポート8000でローカル開発サーバーを起動します。

Reactインターフェースの起動

  • react-guiに移動
  • 依存関係をダウンロード: npm i
  • npm start を実行してローカル開発サーバーを起動します。

ツールの使い方

ユーザープロセス

  • オプションボックスにクエリオプションを入力し、[適用]をクリックします。
  • バックエンドがリクエストを処理するまで数秒待ちます。
  • 右側のプロパティボックスを使用してパスを分離し、ノードのプロパティを表示します。

使用方法

定義済みの脆弱なソースとシンクに対してコードベースを実行する(オプション1)

  1. 禁止された文字列関数へのすべてのソース関数を見つける(Microsoftのセキュリティ開発ライフサイクル(SDL)の禁止関数呼び出しに基づく)
  2. ソース引数に境界チェックがない strcat 関数へのすべての呼び出しを見つける
  3. ソース引数に境界チェックがない strncpy 関数へのすべての呼び出しを見つける
  4. snprintf の呼び出しの戻り値に境界チェックがないすべてのケースを見つける
    1. 例:操作がバッファの末尾に達し、1文字以上が破棄されると、戻り値がバッファサイズより大きくなる
  5. ポインタの型のインスタンスを格納するのに十分なメモリが割り当てられていない malloc、calloc、または realloc へのすべての呼び出しを見つける

任意のソースとシンクに対してコードベースを実行する(オプション2)

  1. 危険なシンク関数へのすべてのソース式を見つける
  2. 特定のソース関数から危険なシンク関数へのすべてのパスを見つける
  3. 特定のソース関数から危険なシンク関数へのすべてのパスを見つける(汚染関数)
    1. isAdditionalTaintStep メソッドを使用して、2つの接続されていない関数間で汚染を転送する
  4. 特定のソース関数から危険なシンク関数へのすべてのパスを見つける(汚染式)
    1. isAdditionalTaintStep メソッドを使用して、実行時に同じ値を持つポインタ間で汚染を転送する

CodeQL結果とノード間の関係の簡略化

以下は、recvfromをソース、mempool_allocを追加の汚染ステップ、memcpyをシンクとするクエリのCodeQL結果を示しています:

neo-1

この結果は、合計 27の異なるコードパスにおける180ノード を生成します。結果は以下のシンプルなneo4jインターフェースに表示されます:

neo-2

このクエリをツールに通すことで、各ノード、ソース、シンクの重複発生を特定し、ノードの関係をマージすることができました。
その結果、11の一意ノード からなる、はるかにクリーンなグラフが得られ、27の一意のコードパスはすべて保持されました:

neo-3

結果は、パスラベリング機能を使用して、それぞれのパスにさらに分類できます:

neo-4

codevariant

ツールをダウンロード