Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ModSecurity — ModSecurityは、Apache、IIS、Nginx向けのオープンソースでクロスプラットフォームなWebアプリケーションファイアウォール(WAF)エンジンです。堅牢なイベントベースのプログラミング言語を備えており、Webアプリケーションに対するさまざまな攻撃から保護し、HTTPトラフィックの監視、ロギング、リアルタイム分析を可能にします。 | Kitploit
ツール/GitHubGitHub/owasp-modsecurity/modsecurity
防御ツール脆弱性分析ウェブプロキシと傍受WAFバイパスウェブセキュリティネットワークセキュリティ侵入検知APIセキュリティアンチボットログ分析アンチボット 第2位
9.7k1.7k3411時間51分前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
防御ツール 第16位
ネットワークセキュリティ 第18位
WAFバイパス 第20位
ウェブプロキシと傍受 第20位
GitHubowasp-modsecurity/modsecurity

ModSecurity

ModSecurityは、Apache、IIS、Nginx向けのオープンソースでクロスプラットフォームなWebアプリケーションファイアウォール(WAF)エンジンです。堅牢なイベントベースのプログラミング言語を備えており、Webアプリケーションに対するさまざまな攻撃から保護し、HTTPトラフィックの監視、ロギング、リアルタイム分析を可能にします。

リポジトリを見るウェブサイト

Quality Assurance Build Status

Libmodsecurity は ModSecurity v3 プロジェクトのコンポーネントの 1 つです。ライブラリのコードベースは ModSecurity コネクタへのインターフェースとして機能し、Web トラフィックを受け取り、従来の ModSecurity 処理を適用します。一般的には、ModSecurity SecRules 形式で記述されたルールをロード・解釈し、コネクタ経由でアプリケーションが提供する HTTP コンテンツにそれらを適用する機能を提供します。

Apache 向け ModSecurity(別名 ModSecurity v2.x)をお探しの場合は、現在もメンテナンス中で、こちらから入手できます:こちら。

このプロジェクトと従来の ModSecurity(v2.x.x)の違いは何ですか?

  • Apache への依存関係はすべて削除されました
  • パフォーマンスが向上しました
  • 新機能が追加されました
  • 新しいアーキテクチャになりました

Libmodsecurity は ModSecurity プラットフォームの完全な書き直しです。当初 ModSecurity プロジェクトは Apache モジュールとして始まりましたが、時間の経過とともに、多くの要望を受けて Nginx や IIS などの他のプラットフォームもサポートするように拡張されました。プラットフォームサポートの需要の高まりに応えるためには、このプロジェクトの基盤となる Apache 依存関係を取り除き、よりプラットフォームに依存しないものにする必要がありました。

この目標の結果として、Libmodsecurity を再設計し、コンパイル時および実行時の両方で Apache Web サーバーに依存しないようにしました。これにより、すべてのプラットフォームでパフォーマンスが向上することが期待できます。さらに、この機会に、ユーザーが長らく望んでいたいくつかの新機能の基盤を築きました。たとえば、将来のバージョンでは JSON 形式の監査ログをネイティブでサポートする予定です。

もはや単なるモジュールではありません。

「ModSecurity」ブランチには、従来のように Nginx、Apache、IIS 向けの従来のモジュールロジックは含まれなくなりました。その代わり、このブランチにはこのプロジェクトのライブラリ部分(libmodsecurity)のみが含まれています。このライブラリは、私たちが「コネクタ」と呼ぶものによって消費されます。これらのコネクタは Web サーバーとインターフェースし、ライブラリが理解できる共通の形式を提供します。各コネクタは別の GitHub プロジェクトとして管理されています。たとえば、Nginx コネクタは ModSecurity-nginx プロジェクト(https://github.com/owasp-modsecurity/ModSecurity-nginx)で提供されています。

これらのコネクタを分離することで、各プロジェクトが異なるリリースサイクル、課題、開発ツリーを持つことができます。また、ModSecurity v3 をインストールする際に必要なものだけを正確に入手でき、使わない余分なものは入手できません。

コンパイル

コンパイルプロセスを開始する前に、必要な依存関係がすべてインストールされていることを確認してください。 詳細については、依存関係 および Git サブモジュール のセクションを参照してください。

コンパイル後、ビルド/プラットフォームに問題がないことを確認してください。 ユニットテストと回帰テストを実行することを強くお勧めします。これらのテストユーティリティは tests/ サブフォルダにあります。

動的ライブラリとして、libmodsecurity はオペレーティングシステムが動的ライブラリを見つけられる場所にインストールする必要があります。

Unix(Linux、macOS、FreeBSD など)

Unix 系システムでは、プロジェクトはコンパイルプロセスに autotools を使用します。

git チェックアウトで作業している場合は、ビルド前にリポジトリを再帰的にクローンするか、すべてのサブモジュールを初期化してください。 Git サブモジュール セクションも参照してください。

git clone https://github.com/owasp-modsecurity/ModSecurity ModSecurity
cd ModSecurity

このリポジトリは git サブモジュールを使用しています。クローン後、すべてのサブモジュールを初期化してフェッチしてください。

git submodule update --init --recursive

すべてのサブモジュールが正しく初期化されていることを確認するには、次のコマンドを使用します。

git submodule status

正しく初期化されたサブモジュールにはコミットハッシュが表示されます。 先頭に - が付いている場合は、サブモジュールが初期化されていないことを示します。

その後、ビルドプロセスを開始できます。

./build.sh
./configure
make
sudo make install

ディストリビューション固有のビルドの詳細は、Wiki にあります。 コンパイルレシピ

Windows

Windows のビルド情報はこちらにあります。

依存関係

  • このライブラリは C++17 標準を使用した C++ で書かれています。
  • Flex と Bison(Yacc)を使用して「Sec Rules Language」パーサーを生成します。
  • 必須の依存関係には YAJL が含まれます。ModSecurity はロギングとテストフレームワークに JSON を使用するためです。
  • libXML2(オプション)は XML リクエストの解析に使用されます。

正規表現エンジン(PCRE2 / PCRE)

  • SecRules での正規表現処理は、Regex ユーティリティ(src/utils/regex.*)を介して実装されています。

  • デフォルトでは、ModSecurity は正規表現処理に PCRE2 を使用します。

  • これは @rx、@rxGlobal、@verifyCC などのオペレーターで使用されます。

  • ビルド時の動作:

    • デフォルト: PCRE2 が検出され使用されます。
    • フォールバック: --with-pcre が明示的に指定された場合(WITH_PCRE)、従来の PCRE を使用できます。
  • 言い換えれば、特に指定がない限り、現在のビルドは PCRE2 を前提としています。

その他の依存関係は、SecRules 内で指定されたオペレーターや設定ディレクティブに関連しており、コンパイルには必要ない場合があります。

オペレーター関連の依存関係

  • libinjection は、@detectXSS および @detectSQL オペレーターに必要です。
  • curl は、SecRemoteRules ディレクティブに必要です。

これらのライブラリがない場合、ModSecurity はそれぞれのオペレーターやディレクティブのサポートなしでコンパイルされます。

Git サブモジュール

リポジトリには以下のサブモジュールが含まれています。

  • others/libinjection – @detectSQLi および @detectXSS オペレーターで使用されます。

  • others/mbedtls(TF-PSA-Crypto サブセット) – 暗号化機能やヘルパー(ハッシュ、base64 など)に使用されます。

    注: 新しい mbedTLS v4 のレイアウトは、古い v3 の構造と互換性がありません。 内部構造が大幅に変更され、多くのコンポーネントがサブモジュール(例:TF-PSA-Crypto)に移動されました。

    PR #3532 のマージ後、以下を実行する必要があります。

    git submodule update --init --recursive
    

    これにより、必要なすべてのサブモジュールがフェッチされます。この手順をスキップすると、プロジェクトは正常にビルドされません。

    すべてのサブモジュールが正しく初期化されていることを確認するには、次のコマンドを使用します。

    git submodule status
    

    出力例:

    bc625d5... bindings/python
    2117822... others/libinjection (v4.0.0)
    0fe989b... others/mbedtls (v4.1.0)
    a3d4405... test/test-cases/secrules-language-tests
    

    サブモジュールが欠落している場合、先頭に - が付いて表示されます。例:

    -bc625d5... bindings/python
    

    先頭の - は、サブモジュールが初期化またはフェッチされていないことを示します。

  • test/test-cases/secrules-language-tests – make check で使用される共有の SecRules 適合性テストおよび回帰テストスイートです。

  • bindings/python – ModSecurity の Python バインディング(コアライブラリのコンパイルには不要)。

others/libinjection および others/mbedtls は、ソースビルドに実質的に必須であり、ビルド前に初期化する必要があります。

オプションの外部依存関係

いくつかの外部ライブラリはオプションで、追加機能を有効にします。以下を含みます。

  • libcurl – SecRemoteRules に必要

  • LMDB – 永続ストレージサポート

  • Lua – スクリプトサポート

  • XML ライブラリ – 拡張 XML 処理

  • GeoIP(レガシー)/ MaxMind

    レガシー GeoIP C API(libGeoIP)は、MaxMind によって非推奨であり、もはやメンテナンスされていません。 上流のリポジトリはアーカイブされており、新しいデプロイメントには使用しないでください。

    代わりに、ModSecurity は最新の MaxMind DB API(libmaxminddb) をサポートしており、こちらはアクティブにメンテナンスされています。

    設定中に、次のような表示がされる場合があります。

    + GeoIP/MaxMind                                 ....found
        * (MaxMind) v1.12.2
           -lmaxminddb , -I/usr/include/x86_64-linux-gnu
    

    これは libmaxminddb が使用されていることを示します(推奨)。

    レガシー GeoIP ライブラリではなく、MaxMind DB を使用することを強くお勧めします。

ライブラリのドキュメント

ライブラリのドキュメントは、コード内に Doxygen 形式で記述されています。このドキュメントを生成するには、提供されている設定ファイル "doxygen.cfg" を "doc/" サブフォルダとともに doxygen ユーティリティで使用してください。これにより、使用例を含む HTML 形式のドキュメントが生成されます。

ライブラリの利用

ライブラリは C++ および C のインターフェースを提供しています。一部のリソースは現在 C++ インターフェースでのみ利用可能です。たとえば、カスタムロギングメカニズムを作成する機能(ロギングメカニズムの動作を確認するには回帰テストを参照)などです。目標は、両方の API(C、C++)が同じ機能を提供することです。特定のインターフェースで API の側面が欠けている場合は、Issue を開いてください。

サブフォルダ examples 内には、API の使用方法を示す簡単な例があります。以下にいくつかを示します。

C++ を使用した簡単な例

using ModSecurity::ModSecurity;
using ModSecurity::Rules;
using ModSecurity::Transaction;

ModSecurity *modsec;
ModSecurity::Rules *rules;

modsec = new ModSecurity();

rules = new Rules();

rules->loadFromUri(rules_file);

Transaction *modsecTransaction = new Transaction(modsec, rules);

modsecTransaction->processConnection("127.0.0.1");
if (modsecTransaction->intervention()) {
   std::cout << "There is an intervention" << std::endl;
}

C を使用した簡単な例

#include "modsecurity/modsecurity.h"
#include "modsecurity/transaction.h"


char main_rule_uri[] = "basic_rules.conf";

int main (int argc, char **argv)
{
    ModSecurity *modsec = NULL;
    Transaction *transaction = NULL;
    Rules *rules = NULL;

    modsec = msc_init();
ツールをダウンロード