FE試験の過去問道場をやっつけていたところ、『ファジング』という存在に出会い、Paizaに出てくる『FizzBuzz』的な表現と語感が似ていたため調査したく、この記事にまとめたいと思います。
過去問道場に出てきた「ファジング」
初見で見た際はカタカナでの記載ということも相まって予想ができず、新種のファッションの一種なのかと思ってしまいました。(ファーが着いているような服のイメージ)
しかし、当然IT関連の選択肢しかありません。
ファジングとは
「ファジング」とはセキュリティ分野における動的脆弱性解析手法とのことでした。
「ファジング」とは、検査対象のソフトウェア製品に「ファズ(英名:fuzz)」と呼ばれる問題を引き起こしそうなデータを大量に送り込み、その応答や挙動を監視することで脆弱性を検出する検査手法です。
『ファジング活用の手引き』--by 独立行政法人情報処理推進機構 セキュリティセンター 第1版第7刷
ミラー教授とファジング
「ファジング」というテスト手法の起源は、「雷雨」によるものだったという記録が複数確認できました。
ファジング(fuzzing)とは、コンピュータソフトウェアに対して無作為(ランダム)なデータを送り込むことで、バグや脆弱性を検出するテスト手法です。そのはじまりは1988年、米ウィスコンシン大学マディソン校のバートン・ミラー(Barton Miller)教授が研究室で経験した雷雨によるシステムクラッシュでした。
『「ファジング」は雷とともに。雷雨が導いた偶然の試験法がエンジニアの未来をどう変えるのか?』 --by Qbook
「ミラー教授」、「雷雨のさなかのシステムクラッシュ」、まるでハリー・ポッターのようなマジカルミラクルドラマチックな展開ですね。
なんとミラー先生共著の論文「Fuzzing for Software Security Testing and Quality Assurance」のPDFが転がっているのを発見しました!
chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/http://pub.deadnet.se/Books%20and%20Docs%20on%20Hacking/Hacking/Fuzzing/Fuzzing%20for%20Software%20Security%20Testing%20and%20Quality%20Assurance.pdf
Fuzzとは
”Fuzz”とは英語的な意味では「綿毛」、「ふわふわしたもの」というような意味になっています。
けば、綿毛、ふわふわしたもの、縮れ毛、むく毛、警察、警官、刑事
- ex) peach fuzz (桃のケバ)
『fuzzとは 意味・読み方・使い方』 --by Weblio
fuzz1 /fʌ́z/ [名]((複)~)
1 綿毛,けば,にこ毛;((米))綿[毛]ぼこり.
2 縮れっ毛;((主に米))柔らかく細くて短い髪の毛.
3 ぼやけた姿[光景];《音楽》ファズトーン.
━━[動]
1 (他)(自)綿毛でおおう[おおわれる];けば立たせる[けば立つ](up).
1a (自)ふわふわと飛び散る.
2 (他)〈細部を〉ぼやかす,あいまいにする(up);(自)ぼやける,あいまいになる.
fuzz2
〔the ~〕((略式))警察,サツ.
『fuzz』 --by コトバンク
ミラー教授がこの試験手法を「FUZZ」テスト、と名付けた理由は、”タンポポの綿毛が耳に入ったら中耳炎になるよ”のようなニュアンスかと思ったのですが、タンポポの綿毛が耳に入っても耳が聞こえなくなったり、中耳炎になったりなどはしないようです。
参考:『たんぽぽの綿毛....耳に入っても大丈夫?』 --by 山口小児クリニック
(ソフトウェアにおける)Fuzzとは
情報的な意味(特にFuzzingやFuzzTest)の場合での「Fuzz」はソフトウェアにおける「ノイズ」的な意味で扱われているようです。
ファズとは、ソフトウェア製品に送り込む「問題を引き起こしそうなデータ」です。
『ファジング活用の手引き』--by 独立行政法人情報処理推進機構 セキュリティセンター 第1版第7刷
若干自分としてはFuzz=綿毛が「問題を引き起こしそうなデータ」になる語源的な部分がしっくりこなかったのですが、ミラー先生の文章に下記の言及がありました。
The name comes from modem applications’ tendency to fail due to random input caused by line noise on “fuzzy” telephone lines.1
"Fuzzing for Software Security Testing and Quality Assurance" --by Ari Takanen, Jared DeMott, Charlie Miller
"fuzzy" telephone lines
→ "fuzzy"な電話回線 ≒ ノイズでぼんやりした・不明瞭な、という表現。
line noise
→ ランダムなノイズ入力
modem appsが random inputで壊れる
→ fuzzing を発想した原点
そのため、fuzzing ≒ fuzz/ノイズを、コンピュータソフトウェアに対して送り込むという手法の名前として名付けたのだと思いました。
セキュリティ対策とファジング
「ファジング」という言葉があまり耳慣れなかったため、過去の事象なのだと思っていたところ、直近のセキュリティ事情にも関わりがあるようでした。
2025年3月19日の日経クロステックによると、「ファジング」は脆弱性を発見するための「動的解析方法」の一つとして使われているとのことでした。
巧妙なサイバー攻撃がAIによって盛り上がる中、セキュリティ対策についても、ファジング+生成AIを使用して行われているようでした。
※有料会員限定記事のため、最初の部分しか見れませんでした↓
『脆弱性はどうやって見つけるのか、Googleは生成AIを使って「ゼロデイ」を発見』 --by 日経クロステック
このようにAIを使用したファジングのことを「AIファジング」と呼ばれるようです。
『AIファジング』は、AIで自動的に脆弱性を検知する攻撃方法です。
『エンドポイントセキュリティとAI。リスクの増加と対策について』 --by docomo business
Fuzzingシステム「syzbot」に関する小ネタ
2019年の記事ですが、Googleが開発したファジングシステム「SyzScope」についての記事です。↓
『逃げるsyzbot、追うカーネル開発者たち』 --by NTTData
FizzBuzzとは
私が初めて「FizzBuzz」に出会ったのはPaizaの問題でした。
「Fuzzing」に似ていると思い、書き始めましたが、スペル・読みも完全に異なっていました。
Wikipediaによると「ジェフ・アトウッド」さんという人物がBuzzFizzゲームをコンピュータ画面に表示させるプログラムとして作成させることで、コードが書けないプログラマ志願者を見分ける手法を提唱したという記載がありました。『Fizz Buzz』 --by Wikipedia
2007年と古い記事ですが、とてもモダンな見た目のサイトでした。
このサイトの記事でしょうか?
とても火力が高いですね。
著者も私と同じように、プログラミング関連の求人に応募する200人中199人が 全くコードを書けない という事実に困惑しています 。繰り返しますが、彼らは全くコードを書けないのです。
"Why Can’t Programmers... Program?" --by CodingHorror
Buzz-Fizzの起源
19世紀の資料『The Young Folk’s Cyclopædia of Games and Sports』では、FizzBuzz の原型とみられる子どもの遊び「Buzz-Fizz」が紹介されていました。
そこでは、
• 3 の倍数 → “Fizz”
• 5 の倍数 → “Quack”
• 11 の倍数 → “Cock-a-doodle-doo”
と呼び、もし数が複数の条件を満たす場合は 小さい因数から順にすべて言う ルールとのことです。
Buzz-Fizz, the game of Buzz, with the addition that every multiple of three is called " Fizz," of five, " Quack," and of eleven, " Cock-adoodle-doo. " Where a number contains two or more of these as a factor the names of all the factors are given, the smallest first. Thus, 15 would be "
"The young folk's cyclopædia of games and sports " --byChamplin, John Denison, 1834-1915; Bostwick, Arthur Elmore, 1860-1942
※Wikipediaには「長距離ドライブ中や飲み会の時に行われる言葉遊びである。」と記載があったため、今はパーティーゲームのような存在になっているようです。
『Fizz Buzz』 --by Wikipedia
結論
FE試験に出る「ファジング」と「FizzBuzz」は別物だということ+αについてわかりました。
参考
