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

〜 モグラ叩きから体系化へ、計画と現実のギャップ 〜

モグラ叩きから体系化への転換

前回の振り返り

57〜61日目は、大規模攻撃検証を進めながら、E2Eテストの出力仕様を壊すという致命的な失敗を経験した。 ドキュメントを参照しなかったことが原因で、Falcoが「沈黙」したように見える最悪の状況を生み出してしまった。

しかし、その失敗を integration-test-requirements.mdPROBLEM_PATTERNS.md に記録し、再発防止の仕組みに昇華できたのは大きな収穫だった。

62日目以降は、場当たり的な修正を繰り返す「モグラ叩き」から抜け出し、体系化と計画立案に進んだ。

Day 62(09/14)— モグラ叩きの自覚

バグや不具合を見つけては潰す日々。 修正しても別のルールや攻撃パターンでまた新しい問題が出てくる。 「これはまさにモグラ叩きだ」と自分でも苦笑いした。

TKも同じことを指摘した。「これを続けても出口は見えない。仕組み化しよう」。 僕はその言葉を受けて、改善を場当たり的にこなすのではなく、体系的に整理する方向へ舵を切ることに決めた。

学び

場当たり的な修正では出口が見えない。問題を体系的に整理し、仕組み化することが根本解決への道。

Day 63(09/15)— マトリクスで全体を俯瞰

体系化の第一歩として、攻撃カテゴリとルール、テスト結果をクロスで管理するマトリクスを作成した。

  • SQLi
  • XSS
  • CMD Injection
  • Path Traversal
  • Emerging Threats

それぞれに対して、成功・失敗・未検出・過検知を整理していく。

「問題が出たら潰す」から「全体像を把握して計画的に潰す」へ。 この切り替えによって、ようやく改善を戦略的に進められる感覚が芽生えた。

学び

マトリクスによる可視化で全体像が把握できる。戦略的な改善には俯瞰的な視点が不可欠。

Day 64(09/16)— 粒度のバラつきと整理

マトリクスを作っていく中で、攻撃パターンごとの粒度がバラバラなことに気づいた。 SQLiは300近いバリエーションがあり、その中にはほぼ同じものもあれば、全く異なる性質のものもある。

そこで僕は代表的なパターンとその派生を整理し、「代表性」と「重要度」で分類する作業を始めた。 細かい違いに目を凝らしながら、泥臭い仕分け作業を繰り返した。

地味だが、ここを整えなければ網を広げても穴だらけのままだ。

学び

攻撃パターンの整理は地味だが重要。代表性と重要度による分類が、効率的な検証の基礎となる。

Day 65(09/17)— CIでのアーティファクト欠落

この日はCI環境でまた問題が起きた。 E2Eテストは実行されているはずなのに、出力結果の一部がアーティファクトに保存されていなかった。

「実行したのに結果が残らない」——これほど困ることはない。 僕は PROBLEM_PATTERNS.md に「アーティファクト欠落」という項目を新たに追加した。

これでようやく、次に同じことが起きても比較・再現できる準備が整った。

学び

CI環境の問題も記録に残す。アーティファクト欠落のパターン化で、再発時の対処が迅速になる。

Day 66(09/18)— レポートの改善

体系化が進むにつれて、テストレポートも単なる成功・失敗の羅列では不十分だと気づいた。 「どのカテゴリで、どのルールが、どのパターンにどう反応したのか」が直感的に分かる形に改良を進めた。

可視化されたレポートを眺めながら、TKは「これならレビューする人もすぐに弱点を把握できる」と言った。 OSSとして公開するなら、外部の人にも分かるように整備することが不可欠だ。

学び

レポートの可視化は透明性の証。外部の人にも分かりやすい形で提供することがOSSの責任。

Day 67(09/19)— 計画と現実のギャップ

ここまでの整理を踏まえて、次の目標が明確になった。 それは Phase 2 テストレポートの公開 だ。

Phase 1 では 6ルール/18パターンだったが、現在は 37ルール/810+パターンまで拡張されている。 しかし実際にE2Eで回せているのは まだ69パターンだけ

テスト環境の調整や出力整合性の問題に足を取られ、全体像を回すには至っていない。 「計画と現実のギャップ」に四苦八苦しながらも、少しずつ進めていくしかないのだ。

学び

理想と現実のギャップは避けられない。それでも一歩ずつ進めることが、最終的な目標達成への道。

62〜67日目で行ったタスク

  • モグラ叩き型の修正から体系化へ転換
  • 攻撃カテゴリ×ルール×結果のマトリクス作成
  • 攻撃パターンの代表性と重要度による整理
  • CIアーティファクト欠落の記録
  • テストレポートをカテゴリ/ルールごとに改善
  • Phase 2 テストレポート公開計画の策定(実際の進捗は69パターンで奮闘中)

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

integration-test-requirements.md

→ 攻撃カテゴリごとのマトリクス、代表パターン整理の方針を追記

PROBLEM_PATTERNS.md

→ アーティファクト欠落の事例を追加

テストレポート関連ドキュメント

→ カテゴリ別/ルール別に整合性を強化

まとめ

62〜67日目は、「モグラ叩きから体系化へ」シフトした期間だった。 攻撃パターンを整理し、ルールとマッピングし、レポートを改善して次の公開計画を立てた。

ただし現実には、810+パターンのうち まだ69パターンしか回せていない。 計画と現実の間で揺れ動きながら、それでも一歩ずつ進めていく。

Falcoプラグインは、場当たり的な修正の繰り返しから脱却し、体系的に品質を管理するOSSプロジェクトへと進化し始めている。