東海大学に所属する研究者らが発表した論文「不可視光レーザ照射を利用した動的偽装QRコード」は、QRコードへのレーザー照射により、任意のタイミングで悪性サイトへ誘導可能な偽装QRコードを生成する方法を提案した研究報告である。QRコードを撮影しているときだけ、遠くからレーザー光で照射して別の悪意あるサイトへ誘導する。

 以前から正規QRコードを偽装QRコードに変える方法が提案されてきた。例えば、正規QRコード上に偽装QRコードのステッカーを張り付ける方法や、QRコードの対象モジュール(正方形の□や■)をマジックなどで塗りつぶす方法などである。しかし、このような方法は加工した後は常に攻撃状態となるため、偽装QRコードだと発見されやすい欠点があった。

 この欠点を補うように提案された手法が2018年に登場した。この手法は、QRコードを読み取った99%以上を正規サイトに誘導し、1%以下の低確率だけをランダムに悪性サイトに誘導するというアプローチである。

 具体的には、QRコードの誤り訂正機能(QRコードが多少汚れていても読み取る機能)を悪用したもので、少数箇所のモジュールの白黒判定を混乱させることで確率的に2つのサイトへ誘導する。モジュールの中心の色を変化させることで低確率で変化させるという制御を行っている。

 QRコードを読み取ったユーザーのごくまれにしか悪性サイトに誘導されないため、偽装QRコードだと見抜かれにくい特徴を持つ、非常に怖い攻撃といえる。

 見抜かれにくい手法だが、不特定多数の中からランダムに選ばれた誰かに対してのみしか攻撃ができず、特定の人を狙い撃ちする攻撃ができない欠点を持つ。今回はこの課題に挑戦する研究として、特定の相手に対して高い確率で悪性サイトに誘導する手法を提案する。

 提案手法は、遠隔からレーザー光をQRコードに当て一時的にだけ偽装QRコードに変えるというアプローチである。QRコードのモジュールの一部にレーザー光を照射することにより、本来は黒色の箇所を白色と判別させて本来とは異なるURLへ誘導させる。

 これは、レーザー光によって高い照度を与えた領域を撮像した場合にスマートフォンのカメラがその領域を明部として扱う現象を利用している。技術的には、先ほどのランダムに悪性サイトに誘導する従来手法と似ており、QRコードの誤り訂正機能を悪用してレーザー光を照射したときにだけ高確率に悪性サイトへ誘導するように設計している。

 従来の方法に比べ、レーザー光の高い指向性により隠れた遠くの位置(実験では約3.8m)から攻撃できる特徴を有する。また照射しているときにしか偽装QRコードにならないため、攻撃していない時間帯に見抜かれる可能性は極めて低くなる。

 さらに、スマートフォンなどの内蔵カメラは、人間の可視範囲よりも広い波長領域に対して感度を有する。そのため撮像対象に照射するレーザー光の波長の適切な選択により、撮影者の目には直接見えないが、カメラには明部として認識させることが可能となる。この理由から、QRコードに目立った変化を与えず、撮影者に気が付かれにくい攻撃が行える。

 実験では、正規QRコードに照射した状態で読み取った際に、悪性サイトに誘導できるかを検証した。レーザー光の波長は635nmと785nmの2種類で試し、それぞれに対して、パワー、入射角度、照射範囲を変えて行った。

 下図は、実際にQRコードにレーザー光を照射した状態をスマートフォンで撮影したものとなる。図の右端は785nmで照射したQRコードだが、ほとんどレーザー光(赤点)が見えないのが確認できる。また、これはスマートフォン越しに見た様子であり、スマートフォンなしに直接見た場合は完全に赤点が見えない。

 実験の結果、635nmの場合も785nmの場合も、照射パワーや角度、範囲の制御によって悪性サイトへ誘導できると分かった。入射角が45度の場合だと失敗するなど、レーザー光のパワーや照射角度で成功率が変化した。

 今回の手法は特定の人を狙い撃ちにでき、しかも読み取るユーザーに気が付かれずに行える怖い攻撃なため、研究チームは防御する対策を提案している。1つは、開発した偽装QRコードを検出する専用のAndroidアプリを使用する方法である。他にも、レーザー光の途中に風を送ることでゆがみを誘発させ回避するという方法も紹介されている。

 Source and Image Credits: 鎌田 悠希, 川口 宗也, 大東 俊博, 高山 佳久. 不可視光レーザ照射を利用した動的偽装QRコード. 情報処理学会 研究報告セキュリティ心理学とトラスト(SPT) 2023-SPT-50, 2023-03-06

 ※テクノロジーの最新研究を紹介するWebメディア「Seamless」を主宰する山下裕毅氏が執筆。新規性の高い科学論文を山下氏がピックアップし、解説する。Twitter: @shiropen2