AI

2026.05.03 10:07

AIファジングがソフトウェアセキュリティを変える理由

Adobe Stock

Adobe Stock

AIが私たちの世界を変えている最も興味深い方法の1つは、この技術が従来の手法を何らかの形で「解決」したり革新したりすることに関係している。かつて手作業で行われていたことが、今では自律的なツールの力によって実現されるようになったのだ。これはソフトウェアエンジニアリングの分野でも明らかであり、設計プロセスの多くが極めて概念的である。言い換えれば、製品はデジタルであり、プロセスもまたデジタル世界で行われるものなのだ。

このことから、テストの世界で最も興味深い言葉の1つである「ファジング」について考えてみたい。

エンジニアの一般的な用語として使われるファジングとは、AIを使ってシステムに異常な入力──奇妙で、不正な形式の、誤った入力──を大量に送り込み、何が起こるかを確認する手法である。これは意図的な品質よりも量を重視し、AIが決して眠ることなく作業を続ける能力を活用するものだ。

おそらくソフトウェアでシミュレートされた、窓やドアのあるモデルハウスを想像してほしい。あなたは中に入る方法を見つける必要がある。すべてのドアと窓を「手作業で」試して、何が機能するかを確認することもできるし、AIテストで100万通りのベクトルを投げつけて、どれが成功するかを確認することもできる。これが手動テストと自動テストの違いである。

しかし、ファジングが「単なる」ペネトレーションテストの自動化だと考えるのは早計だ。アプローチと範囲にはいくつかの違いがある。

点滅するカーソル

その違いの1つは、ファジングが最も一般的に入力に適用されることだ。AIは、APIやテキストボックスなどに関連する、さまざまなランダムまたは広範囲のユーザーイベントやトリガーを生成する。

かつて、その入力はPCのコマンドラインに入力されるASCII文字列の形をとっており、多くの場合、黒地に緑色で表示されていた。今では、入力ははるかに多様化している。入力はどこからでも来る可能性があり、音声からテキストに変換されることさえある。したがって、システムが奇妙な入力を受け取る可能性があるのは理にかなっている。ファジングは、コードベースがこの事態にどのように対処するかを探るものだ。

ソフトウェアやアプリのテキストフィールドがあり、そのテキストフィールドには誰かの名前を入力することになっているとしよう。名──姓である。ペネトレーションテスターは「John Smith」や「Phineas Rhoden-Berry」のような入力を行うかもしれないし、「45%ap2b」のような文字列を入力するかもしれない。重要なのは、これらの入力は人間によって意図的に作成されるということだ。

一方、ファジングツールは、静かに長くて馬鹿げた入力のリストを製造しているかもしれない。例えば:

  • John Smith
  • Jon Smit
  • Jn Smt
  • Jn3 Sm3t
  • 33m33x5
  • 44ngg77
  • 22mol555
  • \
  • Bububugubuubugu

お分かりいただけただろう。ファジングツールが文字にこだわるか、数字を注入するか、あるいは上記のように「通常の」入力を変更するかどうか、これらすべては自律的な設計に委ねられている。これは、人間がどのような種類のテスト入力を使用するかを決定するのとは根本的に異なる。

オープンソース技術とAI

私は、It's FossのSourav Rudra氏による記事に出会った。そこでは、著者がインサイダーであるGreg Kroah-Hartman氏がLinuxカーネルにファジングを使用していることについて語っている。

「Kroah-Hartman氏は、彼の作業カーネルツリーの『clanker』と呼ばれるブランチに存在するカーネルに対して、AIアシストのファジングツールのように見えるものを静かに実行している」とRudra氏は書いており、「clanker」が何を意味するかも説明している。「質問する前に言っておくと、ファジングとは、予期しない、不正な形式の、またはランダムな入力でコードを攻撃し、クラッシュ、メモリエラー、その他の誤動作を引き起こす自動ソフトウェアテストの手法である。これは、Linuxのような大規模なコードベースにとって重要な防御線である」

なぜLinuxにこのようなことをするのか?それは、複雑なシステムには常にバグがあるからだ。また、多くの人々が、AIエンジニアがLinuxを好むのは、それがオープンソース環境だからだと示唆している。したがって、それがAIにとって好ましいサンドボックスであるならば、人々やエージェントがそこでファジングを適用するのは理にかなっている。そうだろう?

Linus Torvalds氏は、今年のOpen Source Summit Japan会議で、Linuxにより多くのAIを使用するというアイデアを推進しており、そう考えているようだ。

そして明確にしておくと、少なくともLinuxの場合、依然として人間がループ内にいるようだ。

「ファザーは潜在的なバグを表面化させる」とRudra氏は書いている。「数十年のカーネル経験を持つ人間がそれらをレビューし、実際の修正を書き、提出されるものに対して責任を負う。もしそうであれば、これは賢明なアプローチであり、他のオープンソースプロジェクトが正式化してきたものを反映している」

Mythosの力

このようなAI機能を検証する際、部屋の中の象について言及しないわけにはいかない。Anthropic社のMythosは、ここ数週間で世界を席巻した。

米連邦準備制度理事会(FRB)議長と財務長官は、銀行の緊急会議を招集した。セキュリティの専門家は総員配置を呼びかけている。問題は、Mythosがシステムの脆弱性を発見する超強力なスキルであり、それには入力のテクニックとしてファジングを使用することが含まれる。

「脆弱性の開示の量と速度は、手動ワークフローが処理できるものを上回る可能性が非常に高い(70〜85%)」と、QuointelligenceのAndrei Moldovan氏は4月13日に書いている。「セキュリティチームは、脆弱性データを取り込み、ランク付けし、対応する能力を拡大する必要がある」

これをシミュレートしている人々の間での懸念は、Mythosが発見したものがサイバー攻撃に使用されることだ。VentureBeatのこの記事のように、Mythosが人間の観察者が見逃していた27年前のバグを発見したことを示す話は、ネットワークを評価する際の飛躍が「段階的ではない」ことを示している。

Linuxのような技術は本番環境に対応しているかもしれないが、それでもバグがある可能性がある。だからこそ、Mythosや他のツールを使ってファジングを適用することは理にかなっている。問題は、その能力が悪意のある者の手に渡ったときだ。

したがって、AIがあらゆるものを壁に投げつけて、何がくっつくかを確認することについて考えるとき、自問してほしい。食事、睡眠、その他の活動の合間にリアルタイムで働く人間は、どのようについていくのか?

これは、自律的なAIエージェントが私たちの職業的および個人的な世界に進出する今、私たちが対処しなければならないことの一部である。引き続き注目してほしい。

forbes.com 原文

タグ:

advertisement

ForbesBrandVoice

人気記事