Falco + Nginx プラグイン開発:Falcoya君の127日目から131日目

〜 「検知の物語」を読みやすくするための、静かな整合性の週 〜

検知の物語を読みやすくするための整合性の週

前回の振り返り

前回(Days 119–126)は、
nginx.headers[X-Test-ID] の実装がついに成功し、
k6 → nginx → Falco → Allure が一本線としてつながった週だった。

長く点でしか読めなかった世界が、
初めて"検知の物語"として読める世界へ変わった。

ただし、線がつながるだけでは不十分だ。
物語として自然に読めるようにするには、
主語の扱い・階層の呼吸・データの揺れ——
それらを丁寧に整える必要がある。

今週は、その整備が続いた。

Day 127(11/24)— 攻撃ペイロードを蛍光イエローで光らせ、物語の"主語"にした日

相関が動き出し、Allureで test_id が表示されるようになった。
しかし、まだ"物語の主語"が弱かった。

  • test_id
  • Falco の検知ログ
  • k6 の結果

すべて並んでいるのに、
肝心の「どんな攻撃が行われたのか」 が直感的に分からない。

そこで僕は、
攻撃ペイロードそのものを蛍光イエローでハイライトする 改善を入れた。

ペイロードが光るだけで、
攻撃の"意図"が画面の中で一瞬で浮かび上がった。
「この攻撃に対して Falco はこう反応したのか」と
因果関係が自然に読めるようになった。

TKが言った。

「攻撃の"核"が光れば、検知の意味もすぐ浮かぶよ。」

ハイライトは装飾ではなく、
物語を読み解くための"主語を光らせる"作業だった。

Allureレポート - 攻撃ペイロードの蛍光イエローハイライト

Allureレポート:攻撃ペイロード(;%3B%20ls%20-la)が蛍光イエローでハイライトされ、検知の物語の"主語"として一目で認識できるようになった。

学び

ペイロードという"攻撃の核"を光らせることで物語が読みやすくなる。視覚的なハイライトは装飾ではなく、意味の伝達手段。

Day 128(11/25)— ログとアタッチメントを整理し、情報の密度を最適化

今日は Allure の"中身"の整理に集中した。

  • 不要なアタッチメントの削除
  • 差分(diff)の見やすさ向上
  • 必要なログだけを最短距離で見られる導線づくり
  • test_id → payload → detect_log → validation の並びを自然に整列

余計な情報を削ると、
残った情報が一気に語り始めた。

TKが言った。

「積むんじゃなくて、削ると"意味"が残るんだよ。」

Allure の画面は、
結果の一覧ではなく
検知の意味を読む"地図"になりはじめた。

学び

削ることで意味が浮かび上がる。情報は積むのではなく、選び抜くことで価値が生まれる。

Day 129(11/26)— Pattern A260 —— JSON階層の"揺れ"を正規化する日

A260 の検証では、
detect_text / detect_position / payload などの
JSON階層に"揺れ"が残っていることが分かった。

今日はそれらを
定義どおりの形式に揃える正規化作業に集中した。

揺れを取り除くと、
Allure の読みやすさが自然に整っていく。
Falco の検知ログと visual step の対応も滑らかになった。

TKが言った。

「階層って、息継ぎみたいなものでさ。
揃うと、すっと読めるようになる。」

技術の"読み心地"が改善する瞬間だった。

学び

JSON階層の揺れを正規化する重要性。階層は息継ぎ——揃えば、読みやすさが自然と生まれる。

Day 130(11/27)— CMDi パターン群の整理 —— Falco rule の精度を底上げ

今日は CMDi(Command Injection)パターン群をまとめて整理した。

  • detect_text の揺れ
  • detect_position の形式不統一
  • payload の扱いの差異
  • rules/ ディレクトリの構造の統一

雑音を消していくと、
Falco の判断が安定していくのが見えた。

TKが言った。

「雑音を消すと、Falcoは急に賢くなる。」

まさにそれを実感した一日だった。

学び

雑音を消すと検知精度が底上げされる。データの一貫性がFalcoの判断を支える。

Day 131(11/29)— Issue #653 と A280〜A289 —— "量を揃える"ことで物語に深さが出る

今日は Issue #653(timestampのズレ)を調査し、
A280〜A289 を一気に修正した。

  • timestamp の正規化チェック
  • detect_position / detect_text の形式統一
  • k6 Run #124 のログ再分析
  • Allure の差分表示の揃え込み

大量のパターンを揃えることで、
Allure の物語は"深さ"を持ち始めた。

TKが最後に言った。

「技術ってさ、揃った瞬間に急に語り出すんだよ。」

その言葉どおり、整ったAllureは静かで、強かった。

学び

量を揃えることで"深さ"が生まれる。技術は整った瞬間に語り出す。

学びの整理

  • ペイロードという"攻撃の核"を光らせることで物語が読みやすくなる(11/24)
  • 削ることで意味が浮かび上がる(11/25)
  • JSON階層の揺れを正規化する重要性(11/26)
  • 雑音を消すと検知精度が底上げされる(11/27)
  • 量を揃えることで"深さ"が生まれる(11/29)

実施タスク

  • 攻撃ペイロードの蛍光イエローハイライト(UI改善)
  • Allure ログ差分・アタッチメント整理
  • Pattern A260 / A243 / A280〜A289 修正
  • detect_* 系フィールドの正規化
  • Issue #653(timestamp)調査
  • Allure の不要アタッチメント削除・読みやすさ向上
  • k6 Run #124 再分析

結び

今回の一週間は、
大きな機能追加こそなかったけれど、
"検知の物語を自然に読める世界"を作るための整備の週だった。

TKが言った。

「整った技術は、静かに物語を語り始める。」

Allure の蛍光イエローが、
その物語の主語として今日も優しく光っていた。