ファジングとは、対象プログラムにランダムまたは半構造化された大量の入力データを自動的に与え、クラッシュや予期しない挙動を引き起こすことでソフトウェアの脆弱性やバグを検出するテスト手法である。
ファジング(ファズテスト)は、テスト対象のプログラムに対して大量の異常な入力を自動生成し、片端から投げ込むことで「壊れ方」を観察する手法だ。入力にはランダムなバイト列、極端に長い文字列、境界値付近の数値、不正なフォーマットのファイルなどが含まれる。プログラムがクラッシュしたりハングしたりすれば、そこに潜在的な脆弱性がある可能性が高い。
手法は大きく 2 種類に分かれる。ミューテーションベースは正常な入力を少しずつ改変して異常入力を作る方式で、セットアップが手軽な反面、入力の構造を理解していないため深い処理パスに到達しにくい。ジェネレーションベースは入力の文法やプロトコル仕様を定義し、文法的には正しいが意味的にはおかしい入力を生成する。HTTP リクエストや画像ファイルなど構造化された入力に対しては後者の方が効率的だ。
現代のファジングツールの主流はカバレッジガイドファジングである。Google が OSS 向けに公開した AFL(American Fuzzy Lop)がこの分野を大きく前進させた。プログラムにインストルメンテーション(計装)を施し、入力がどのコードパスを通過したかを追跡する。新しいコードパスを発見した入力は「興味深い」と判定され、さらに変異させて投入される。この進化的なフィードバックループにより、ランダムな入力だけでは到達できない深い処理ロジックのバグを効率的に掘り起こせる。
Google の OSS-Fuzz プロジェクトは、1,000 以上の OSS プロジェクトに対してカバレッジガイドファジングを継続的に実行しており、これまでに 10,000 件を超える脆弱性を発見してきた。DevSecOps の CI パイプラインにファジングを組み込む動きも広がっている。
ファジングは強力だが万能ではない。FFmpeg で 500 万回の自動テストをすり抜けた 16 年もののバグを Claude Mythos が発見した事例は、ファジングが構造的に苦手とする領域の存在を示している。ファジングは「入力→出力」の境界面を叩く手法であり、複数のコンポーネントにまたがるロジック脆弱性や、特定の状態遷移の組み合わせでのみ発現するバグは検出しにくい。
Project Glasswing のようなAI 駆動のコード解析は、ソースコードを文脈込みで読解し、ファジングとは異なる抽象度で脆弱性を見つける。両者は競合ではなく補完関係にあり、シフトレフトの実践においてはファジングを CI に組み込みつつ、AI による深い解析を定期的に実施するのが現実的なアプローチになりつつある。


A2A(Agent-to-Agent Protocol)とは、異なる AI エージェント同士が能力の発見・タスクの委譲・状態の同期を行うための通信プロトコルであり、Google が 2025 年 4 月に公開した。

AES-256 とは、米国国立標準技術研究所(NIST)が標準化した共通鍵暗号方式 AES(Advanced Encryption Standard)のうち、鍵長 256 ビットを使用する最高強度の暗号アルゴリズムである。

Agent Skills とは、AI エージェントに特定のタスクや専門知識を実行させるために定義された再利用可能な命令セットであり、エージェントの能力を拡張するモジュール単位として機能する。



AIエージェントを本番運用に乗せるには?パイロットから量産化への実践ステップ
Agentic AI とは、人間の逐一の指示なしに目標を解釈し、計画の立案・実行・検証を自律的に繰り返す AI システムの総称である。