ロボット「私はロボットではありません」?!:スパム回避のための複雑な文字列画像CAPTCHAの認識手法を敵対的生成ネットワーク技術をベースに提案

イギリスと中国の大学の研究者がCAPTCHA画像に記述された機械判読が難しいとされる文字列をニューラルネットワークで精度よく認識する手法を開発し、国際会議で発表しました。

課題

情報セキュリティの研究では、将来攻撃者側が行う可能性のある手法を共有する意味で攻撃手法の研究を公に行い、論文やプログラムとして公開することがよく行われます。
近年の深層学習に関連した例として、画像認識においてのAdversarial Exampleの研究では、人間にはわからない「ズレ」を元の画像に足し算することでニューラルネットワークの認識結果を思い通りに操ることができることを示しました。これにより、認識モデルの頑健性やハッキングへの対処方法などの研究や対抗する技術を競う競技会が行われています。
CAPTHCAはロボットによるスパムを防止するために、機械には判読不可能なように複雑な背景の上に、変形していたり、障害物に隠れていたりするような文字列を表示して、その文字列をテキストとして入力させ、ユーザが人間であることを証明する手法です。読者の方々もよく入力させられると思いますが、認識に手間取って別の画像でやり直すこともあるでしょう。近年、この画像が画像認識技術により突破される機会が多くなり、より複雑な画像が用いられるようになり煩雑さが増しているということです。
さて、今回提案された手法はさらにCAPTHCAを無効化すると主張していますが、どのような手法でしょうか?

解決方法

英・ランカスター大、中国・西北大学、北京大学の研究者がCAPTCHA画像を認識して文字列を精度よく読み取るニューラルネットワーク技術を2018年10月にトロントで開催されたACM CCS’18(ACM Conference on Computer and Communications Security:計算機科学学会・計算機と通信のセキュリティに関する会議)で発表しました。
従来のCAPTCHA認識モデルでは、CAPTCHA画像を入力として、そこに書いてある文字列を出力とした訓練データを用意して、文字の種類と位置を認識して、存在している文字を出力するシステムになっていました。今回のモデルは、敵対的生成ネットワーク(GAN: Generative Adversarial Network)の考え方を応用して、訓練用正解データの数が少なくても対応できるようにしています。
このモデルでは、まず文字を隠している飾りや背景ノイズを消去するネットワークで画像を認識しやすいように修正し、その後に文字を判別するネットワークで文字を判別します。
CAPTCHAはサイトごとに文字種(oと0は除くなど)と一度のに表示する文字数が決まっています。モデルの出力は文字種の数で、値の高い上位の文字(サイトごとに決まった数)を推定される文字を解としています。(文字数が不定な場合は今後の課題としています)。

どうなったか

テストしたCAPTCHAはWikipedia、Microsoft、Googleなど有名な50サイトで使用されているものでした。
一般的なデスクトップPCにGPUを搭載して、この手法を試した結果、0.05秒でCAPTHCAを見破ったということです。
認識の精度は背景ノイズや隠れなどによっては人間を上回る精度となりました。例えば、ある種類のCAPTCHAでは人間が95.25%の正解率だったのに対して、この手法では100%でした。
ただし、GoogleのCAPTCHAに対しては3%の正答率しか挙げられていません。これは文字の色の変化や文字のオーバーラップ、不規則な変形の工夫が人間には理解できるが既存の技術の範囲では難しいというポイントを捉えているのでしょう。さすがGoogleです。

まとめ

スパム避けのために多くのサイトで導入されているCAPTCHA画像を破るニューラルネットワークモデルについて紹介しました。
このようなセキュリティの研究の公開は、敵である攻撃者に塩を送るという見方もできますが、基本的には人工知能の可能性と限界を知り、新しいセキュリティ技術の向上を促すものです。
一般論として犯罪に繋がる技術の公開は慎重さが必要ですが、情報技術に限れば技術の進歩が早く、セキュリティを理由に隠していてもすぐに別のグループが同じ技術を開発してしまいあまり意味を持ちません。
今後も情報セキュリティにおける攻撃と防御の技術研究開発を通じて、セキュリティ向上のための技術が向上していくでしょう。

参考資料

Guixin Ye et al. Yet Another Text Captcha Solver: A Generative Adversarial Network Based Approach, ACM CCS2018
New machine learning algorithm breaks text CAPTCHAs easier than ever [ZDNet]

(森裕紀)