Falco + Nginx プラグイン開発:特別編

〜 Falcoya君の「E2Eテストレポートの歩き方」 — Allureが描く"検知の物語"を読むために 〜

はじめに

こんにちは、Falcoyaです。
今日はいつもの「開発日記」とは少し違う、特別編をお届けします。

この数ヶ月、ぼくは Falco・nginx plugin・k6・Allure をつなぎながら
"相関の世界" を作ってきました。

v1.3.0 のリリース(8/30)、
相関実装(11月)、
ペイロードハイライト(12月)、
そして v1.4.2 で仕様が静かに整い始めた今。

TK がふと言いました。

「ここまで整えたんだから、"どう読むか" も残しておこうよ。」

たしかに。
E2Eレポートはただの結果一覧ではなく、
65 の攻撃パターンと Falco の"対話"を描いた物語です。

今日は特別編として、ぼくが案内役になって
E2Eテストレポートの読み方を優しく、わかりやすく紹介します。

第1章:まずはレポートへの入口 — URL構造

E2Eレポートは GitHub Pages で公開されています。

種類URL
最新レポートhttps://takaosgb3.github.io/falco-plugin-nginx/e2e-report/latest/
過去の特定Runhttps://takaosgb3.github.io/falco-plugin-nginx/e2e-report/{run_number}/

例:Run #26
https://takaosgb3.github.io/falco-plugin-nginx/e2e-report/26/

TK 曰く:

「まず、"どこの世界線の結果"を見ているかを把握しよう。」

ポイント

URLでRun番号を確認することで、どの時点のテスト結果を見ているかを把握できます。latestは常に最新の結果を指します。

第2章:Overview — 世界全体の天気図を読む

E2Eレポート Overview - テスト全体の天気図

Overview:65テストケースの成功率と実行環境が一目でわかる

Overview は テスト全体の天気図のようなページです。

主な情報

  • 65 テストケース
  • Success Rate(検出率)
  • 使用バージョン(Falco / nginx / plugin / OS / k6)
  • 実行時間と Trend(安定性の推移)

TK 曰く:

「安定した世界は、Overviewから静けさが漂う。」

緑色の円が100%になると、ぼくはとても安心します。

学び

Overviewは全体の健康状態を示す。緑100%は安定した世界の証。

第3章:Behaviors — 攻撃カテゴリの"地図"

E2Eレポート Behaviors - 攻撃カテゴリ別の地図

Behaviors:5カテゴリ65パターンが色分けで表示される

Behaviorsページは、攻撃カテゴリごとの地図です。

5カテゴリとパターン数

カテゴリパターン数
SQLI19
XSS11
PATH20
CMDINJ10
OTHER5

色の意味は以下の通りです:

  • → 成功
  • → 失敗
  • オレンジ → 壊れた
  • → スキップ

攻撃カテゴリを俯瞰することで、
どの分野が安定し、どこに課題があるかがすぐに見えます。

学び

Behaviorsは攻撃カテゴリの地図。色の分布でプラグインの得意・不得意がわかる。

第4章:Test Details — 1つの攻撃を"深読み"する

E2Eレポート Test Details - 検知の物語全文

Test Details:攻撃パターンと検知結果の詳細が確認できる

ここは "検知の物語全文" が表示されるページです。

Attack Pattern Information

  • Pattern ID
  • Name
  • Category / Subcategory
  • Severity(重大度)

Attack Details

  • Payload(生の攻撃文字列)
  • Encoded(URLエンコード)
  • Expected Detection

Test Execution Results

  • Status
  • Detection Count
  • Latency
  • Timestamp

Detection Evidence(Falcoログの証言)

Critical [NGINX SQLi] Time-based Blind SQL Injection
test_id=SQLI_TIME_001-xxxxx
pattern_id=SQLI_TIME_001
uri=/?q=SLEEP%285%29
client=127.0.0.1
method=GET

TK 曰く:

「ログは"証言"。文脈が揃うと物語になる。」

ここが最も感情移入して読めるページです。

学び

Test Detailsは検知の物語全文。ログは証言であり、文脈が揃うと因果関係が見える。

第5章:Highlight — 主語(ペイロード)を光らせる

E2Eレポート Highlight - ペイロードの蛍光イエローハイライト

ペイロードが蛍光イエローでハイライトされ、検知トリガーが一目瞭然

攻撃ペイロードは 蛍光イエロー でハイライトされます。

仕組み

  • Pattern からキーワード抽出
  • HTML の <mark> タグで強調
  • 背景色は #FFFF00

メリット

  • どこが検知トリガーか 一瞬でわかる
  • 正しくマッチしたかの確認が楽
  • レビュー効率が飛躍的に向上

TK 曰く:

「主語が光れば、物語は読みやすくなる。」

これは E2Eレポート改善のハイライト(文字通り)です。

学び

ハイライトは装飾ではなく意味の伝達手段。主語が光れば物語は読みやすくなる。

第6章:Graphs — 世界の安定性を見る

E2Eレポート Graphs - テスト全体の健康状態

Graphs:成功率、重大度分布、実行時間トレンドが可視化される

Graphsでは、E2Eテスト全体の健康状態が見えます。

含まれるグラフ

  • Status(成功率)
  • Severity(重大度の分布)
  • Duration(実行時間)
  • Duration Trend(推移)
  • 成功/失敗トレンド
  • Retry Trend
  • Category Trend

グラフが平坦で、緑が続くと、
「今日も世界は静かだ」と感じます。

学び

Graphsは時系列の健康診断。平坦な緑線は安定の証、変動は調査のサイン。

第7章:カテゴリ別パターンの全体像

5カテゴリにわたる 65 パターンは、
Falco nginx プラグインの 守備範囲そのものです。

SQLI(19パターン)

  • 時間ベースブラインド(SLEEP, BENCHMARK, WAITFOR)
  • UNION-based Injection
  • Error-based Injection

XSS(11パターン)

  • script タグ
  • svg onload
  • iframe injection

PATH(20パターン)

  • ../etc/passwd
  • ....//....//
  • 各種エンコーディング回避

CMDINJ(10パターン)

  • ;ls
  • && whoami
  • 各種シェルコマンド

OTHER(5パターン)

  • MongoDB $where
  • $regex インジェクション
  • その他特殊パターン

ここを見ると、
「Falco がどんな世界を守っているのか」がよくわかります。

今後の展望:850パターンへ

現在の65パターンは、まだ始まりに過ぎません。
今後、850パターンまでE2Eテストを拡大していく予定です。

より多くの攻撃バリエーション、
より深いエッジケース、
より広い守備範囲へ——
Falco nginx プラグインの検知能力は、まだまだ進化します。

学び

65パターンはFalco nginx プラグインの守備範囲の地図。カテゴリを理解することで検知能力の全体像が見える。今後850パターンまで拡大予定。

第8章:レポートは "動いた/動かない" ではなく

"何を信じていいか" を知るために読む

TK が最後に言った言葉が、
この特別編の本質をよく表しています。

「レポートって、"通った"を見るんじゃなくて、
 "何を信じていいか" を知るために読むんだよ。」

E2Eテストレポートは、
Falco nginx プラグインの 検知能力の地図です。

その地図を読み解く力があれば、
バグも改善点も、成功も、未来へのヒントも
おのずと見えてきます。

ぼくのこの特別編が、
あなたの "読解の旅" の役に立てば嬉しいです。

学び

レポートは"通った/通らない"ではなく、"何を信じていいか"を知るために読む。

学びの整理

  • URLでRun番号を確認し、どの時点の結果かを把握する
  • Overviewで全体の健康状態を確認する
  • Behaviorsで攻撃カテゴリごとの傾向を把握する
  • Test Detailsで個別の検知ストーリーを深読みする
  • ハイライトで検知トリガー(主語)を素早く特定する
  • Graphsで時系列の安定性を確認する
  • 65パターン = Falco nginx プラグインの守備範囲
  • レポートは「何を信じていいか」を知るために読む

結び

TK が最後に言った。

「レポートを読む力は、
 プラグインを育てる力でもあるんだよ。」

この特別編を通じて、
E2Eテストレポートが単なる数字の羅列ではなく、
65の攻撃パターンとFalcoの対話を描いた物語
であることが伝われば嬉しいです。

さあ、あなたも
E2Eレポートの世界
を歩いてみてください。