機能一覧
エッジ WAF に必要なものを、勝手に有効化せずに
PingWAF の防御はサイト単位で無効のまま提供されます。必要なものを必要な順に有効化し、変更はすべてバージョン管理されます。
検知
正規表現の羅列ではなく、意味解析エンジン
リクエストはまず正規化され、シグネチャ・ヒューリスティック・式で評価されたうえで判定が出ます。
- すべてのルールより先に正規化するため、エンコードでペイロードを隠せません。
- SQLi と XSS は libinjection、その他は Aho-Corasick の多パターン一致で検知します。
- http.request.uri.path contains "/admin" のような Cloudflare 風の式を利用できます。
- 異常スコアがすべての一致を集約し、リクエストごとに 1 つの判定を出します。
正規化 → シグネチャ → 式 → 異常スコア
可用性
急増を吸収し、人間はそのまま通す
段階的なチャレンジでリクエスト洪水を止め、ユーザーの前に CAPTCHA の壁を立てません。
- JavaScript 5 秒シールド、Proof of Work、対話型チャレンジ。
- クリアランス Cookie は HMAC 署名で、発行サイトに紐づくため再利用できません。
- 検証済みボット許可リストと既知ブラウザの通過で、クローラーや監視を止めません。
- チャレンジはサイト単位で適用され、他のドメインに影響しません。
TLS フィンガープリントと挙動分析はロードマップにあります。
アクセス
オリジンへ到達できる相手を決める
アドレスと地域で許可・拒否・チャレンジを行い、リクエストの観点で濫用を制限します。
- block / allow / challenge / js_challenge に対応し、CIDR と CSV 一括取り込みも可能。
- テキスト・JSON・Cloudflare の IP レンジからグローバル IP グループを同期し、エラーを報告。
- 国と ASN による地域制限。「未知の国を拒否」も選択可能。
- IP・ホスト・パス・ASN・国・ヘッダー・Cookie・クエリでのレート制限。
トラフィック
エッジでルーティング・分散・キャッシュ
オリジンプール、ルート、キャッシュはセキュリティポリシーの隣にあり、ルールとルートを一緒に進化させられます。
- ラウンドロビン、最小接続、ランダム、IP・URL・パス・ヘッダー・Cookie・クエリによる一貫性ハッシュ。
- プレフィックス・完全一致・正規表現のルート。IP グループ限定も可能。
- サイト別ディスククォータ、LRU 削除、stale-while-revalidate、ブラウザ TTL 制御。
- ヘッダー・パス・クエリ・本文の書き換え、Tera エラーページ、サイト一時停止(503)。
TLS
証明書はエッジで発行・更新
ACME はデータプレーンで動作し、コントロールプレーンは各エージェントの状態を常に把握します。
- HTTP-01 と DNS-01 による ACME / Let's Encrypt の自動発行と更新。
- DNS-01 は Aliyun、Cloudflare、Tencent Cloud DNSPod、Huawei Cloud、手動 DNS に対応。
- サイト別の証明書状態(有効・期限間近・期限切れ)をハートビートで収集し、検索可能な ACME ログを提供。
- HSTS と HTTPS 強制、コンソール発行のクライアント証明書による mTLS と即時失効。
オリジン証明書の検証は明示的なスイッチで、デプロイ全体またはプール単位に設定します。
可観測性
すべての判定に痕跡を残す
ログは既存ツールが問い合わせる場所に置かれ、ブロックされたリクエストは curl として再現できます。
- 本文の切り詰めと WAL バッファを備え、Elasticsearch へ完全なリクエストログを送信。
- リクエストとレスポンスの生データを PostgreSQL に保存(ヘッダーはそのまま、本文は先頭のみ)。
- エージェントが送るメトリクスによるトラフィックと攻撃の分析画面。
- エージェントの健全性、キャッシュヒット率、削除件数をコントロールプレーンで確認。
運用
1 つのコンソールでフリートを運用
設定はバージョン管理され、エージェントは可観測で、コンソール自体がバイナリに含まれます。
- JWT + bcrypt 認証、マルチテナント分離、パスキー(WebAuthn)ログイン。
- 設定のバージョン管理:スナップショット一覧、テーブル単位の差分、確認付きロールバック。
- rust-embed で英語・簡体中文・日本語のコンソールを内蔵。フロントエンドの別デプロイは不要。
- エージェントの一覧と状態、システムエンドポイントによる CPU・メモリの内訳。
スコアリング
異常スコアから 1 つの判定へ
各リクエストはパイプラインを抜けるとき必ず 1 つの判定を持ち、ログに残るのもその判定です。
| 判定 | 意味 | エッジの動作 |
|---|---|---|
| Pass | しきい値を超えたルールはありません。 | そのままオリジンへ転送します。 |
| Monitor | 疑わしいがブロックしきい値未満です。 | 転送しつつ記録し、適用前にルールを調整できます。 |
| Block | スコアがブロックしきい値に達しました。 | WAF ブロックページを返し、一致ルールを記録します。 |
| Challenge | ブラウザであることの証明が必要です。 | JS または PoW チャレンジを返し、成功後はクリアランス Cookie で継続します。 |
判定が生まれる流れを見る
アーキテクチャと WAF エンジンのドキュメントで、リクエストのライフサイクル、ルール評価、スコアリングを解説しています。