【ふぁじんぐ】
ファジング とは?
💡 でたらめな入力で弱点をあぶり出す探偵術
📌 このページのポイント
ファジングってどんなテストなの?普通のテストと何が違うの?
普通のテストは「こう入力したらこう動くはず」って期待値を決めて確認するよね。ファジングは逆で、めちゃくちゃなデータを大量に投げつけて「壊れるところはないか」を探すんだ。サルにキーボードを叩かせるようなイメージだよ
ランダムなデータで本当にバグが見つかるの?
これが驚くほど見つかるんだ。人間が想定しないような超長い文字列やゼロバイト、特殊文字の組み合わせで、バッファオーバーフローやクラッシュが発覚することが多い。GoogleのOSS-Fuzzは何万件もの脆弱性を見つけているよ
ファジングにも種類があるの?
開発の現場ではどう使われてるの?
CI/CDパイプラインに組み込んで、コードが変更されるたびに自動でファジングを回すのが理想的だよ。特にC/C++のようなメモリ管理が手動の言語では威力を発揮する。ブラウザやOSのセキュリティチームでは、何百台ものマシンで24時間ファジングを回し続けているんだよ
まとめ:ざっくりこれだけ覚えればOK!
「ファジング」って出てきたら「ランダムな入力で脆弱性を自動発見するテスト」と思えればだいたいOK!
📖 おまけ:英語の意味
「Fuzzing / Fuzz Testing」 = ファズ(あいまいな)テスト
💬 Fuzz は英語で綿毛やぼやけたものという意味。でたらめでぼんやりしたデータを投げつけるイメージからこの名前がついたよ