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

〜 テストレポート公開、UI修正と国際化、そして攻撃検証の再挑戦 〜

テストレポート公開と統合ドキュメント作成の様子

前回の振り返り

45〜50日目は、E2Eテスト強化とHTMLレポート修正、攻撃ログ検証の準備に追われた日々だった。 派手な成果よりも、Nginxログ整形やFalcoルール調整といった泥臭い改善が中心。 「失敗を記録し資産化する」という文化をさらに強めた期間だった。

そして迎えた51日目以降。僕は E2Eテストレポートの公開、UIの修正、i18n対応、攻撃検証の再挑戦 に進んでいった。

Day 51(08/30)— End-to-End テストレポート公開

この日、ついに End-to-End テストレポート (Phase 1) を公開した。 👉 テストレポート

全14件のシナリオを流し込み、12件で検知成功(SQLi: 5、XSS: 7)/2件は未検出という結果をそのまま公表した。 シナリオごとに「発火ルール・Falco出力・成功/失敗の判定」を並べ、どこを捉え、どこを落としているかを外からも確かめられるようにしている。

「成功だけでなく未検出も出す」。それは怖いけれど、OSSとしての誠実さだ。 Falcoプラグインは万能ではないが、透明性をもって改善を積み重ねる姿勢こそが強みだと実感した。

学び

OSSとしての誠実さは、成功だけでなく未検出も公表すること。透明性をもって改善を積み重ねる姿勢こそが真の強み。

Day 52(08/31)— 国際化の一歩

次の課題は i18n(国際化対応)。 日本語と英語の両方でレポートを表示できるようにする取り組みが始まった。

作業を進める中で、翻訳キーの不足や整理漏れが見つかり、画面表示に揺らぎが出てしまった。 不足を一つひとつ潰していきながら、UIを整えた。

学んだのは、国際化は翻訳作業だけでなく設計そのものだということ。 言語を切り替えても一貫した体験を提供するためには、最初から仕組みとして組み込む必要があるのだ。

学び

国際化は翻訳作業だけでなく設計そのもの。言語を切り替えても一貫した体験を提供するには、最初から仕組みとして組み込む必要がある。

Day 53(09/02)— 攻撃検証の再挑戦

再びSQLiやXSSのログを流し込み、Falcoの反応を試した。 だが結果は思うようにいかなかった。

一部は検知できたものの、過検知(false positive)未検出(false negative) が発生し、精度に課題が残った。 僕は PROBLEM_PATTERNS.md にその結果を記録し、改善すべきポイントとして整理した。

「検知できない失敗」と「余計に検知してしまう失敗」——どちらもユーザーにとっては致命的だ。 この二つのバランスをどう取るかが、次の大きな課題になった。

学び

過検知と未検出のバランスが重要。どちらもユーザーにとって致命的であり、この二つの調整が次の大きな課題となる。

Day 54〜55(09/03〜09/04)— 過検知調整

この二日間は、過検知をどう防ぐかに時間を割いた。 正規表現を緩めすぎれば攻撃を取り逃がすし、厳しすぎれば誤検知が増える。 条件の調整を繰り返し、その内容を integration-test-requirements.md に追記した。

次の検証に向けて、具体的な改善ポイントを整理できた。

学び

検知精度の調整は微妙なバランス。正規表現の厳密さと検知範囲のトレードオフを理解することが重要。

Day 56(09/04)— 多層の"網"と統合ドキュメント

この日は、これまでの調整を踏まえて ルールと攻撃パターンを一気に拡充し、さらにその全容をドキュメントにまとめた。

成果物は IMPLEMENTED_RULES_OVERVIEW.md。 ここには、

  • 実装済みルール 37個 の完全リスト
  • 810以上 の攻撃パターン詳細カタログ
  • カテゴリ別の実装状況
  • SQLi: 290
  • XSS: 160
  • CMD Injection: 150
  • Path Traversal: 100
  • Emerging Threats: 60
  • 各ルールの検出能力とパフォーマンス指標

が整理されている。

Phase 1(6ルール・18パターン)から、わずか数週間で37ルール・810+パターンへ。 nginxログ用ルールを幾重にも重ね、緻密に設計した"網"で多種多様な悪意ある振る舞いを捕まえる。 これこそFalcoを使う真骨頂であり、OSSとして積み上げてきた最大の成果だった。

学び

Falcoの真骨頂は多層の"網"。37ルール・810+パターンの緻密な設計により、多種多様な攻撃を確実に捕捉できる。

51〜56日目で行ったタスク

  • End-to-End テストレポート (Phase 1) の公開
  • 6つのFalcoルールで18種類の攻撃パターンを検証
  • 成功・未検出の両方を明示的に公開
  • i18n対応(翻訳キー不足の修正と整理)
  • 攻撃トラフィック検証の再挑戦(過検知と未検出の確認)
  • 過検知の調整と integration-test-requirements.md への記録
  • ルールと攻撃パターンの大幅拡充(37ルール・810+パターン)
  • 統合ドキュメント IMPLEMENTED_RULES_OVERVIEW.md の作成

作成・更新したドキュメント

integration-test-requirements.md

→ 過検知対策の条件調整を追記

PROBLEM_PATTERNS.md

→ 「過検知問題」や「未検出シナリオ」などを新規追加

IMPLEMENTED_RULES_OVERVIEW.md

→ 37ルール・810+攻撃パターンの全容を記録

まとめ

51〜56日目は「OSSとしての透明性をどう示すか」が大きなテーマだった。 特にE2Eテストレポートの公開では、6ルール・18パターンの結果を成功と未検出を含めて公開し、OSSの誠実さを示せた。

そして9/4には、実装済みルールを 37個・810+パターン へと拡張し、その全容を統合ドキュメントにまとめた。 Falcoプラグインの真骨頂は、nginxログをベースに緻密なルールを幾重にも重ね、多様な攻撃を検知できる点にある。