人々には見えないUnicodeブロックを利用するASCII smugglingが、AI攻撃からスパムフィルターの回避まで、広がりを見せている。この技術はおよそ2年前、大規模言語モデル(LLM)を標的とするプロンプトインジェクション攻撃を隠す手法として注目された。攻撃者は、指示を通常のテキストではなく特殊なUnicodeタグで符号化する。U+E0041は「A」を、U+E0061は「a」の文字を表す。128個のタグから成るこのブロックはコンピューターでは読み取れるが、人間にはほぼ完全に見えない。
Microsoftは今年初め、この手法を利用したスパムの大幅な増加を検知した。2月初旬のある日、Microsoft Defender for Officeが検出したASCII smugglingのシグネチャーは、1日あたり約21,000件から1.3 million件超に増加し、4日以内に2.5 million件に達した。増加は数カ月間続き、5月半ばに急激に減少した。
スパム送信者は、「credit」や「term」など、フィルターが検索する単語や金額を、不可視文字で分割している。例えば「funding」という単語は、フィルターには「fun」と「ding」として認識される可能性がある一方、受信者には通常どおり単語が表示され続ける。ゼロ幅文字や分割されない空白も、同様の目的で数十年にわたって使われている。
一部のフィルターがこれらを認識せず、機械学習や自然言語処理をベースとする分類器を欺ける可能性があることが、隠しタグが好まれる要因となっている可能性がある。テキストが画像に変換され、OCRが適用されない限り、攻撃を見逃す可能性がある。Microsoftは、フィルターがASCII smugglingをより適切に認識できるよう、開発者向けの提案を公開した。
なぜ重要なのか
この手法は、電子メールのセキュリティーにおいて、人間が目にする内容とソフトウェアが評価する内容との隔たりを広げている。そのため、受信トレイのユーザーだけでなく、フィルターや分類システムを開発するチームにとっても重要な問題となっている。不可視文字で分割された単語は、従来のキーワード検索だけでなく、機械学習や自然言語処理に基づく検査の限界も浮き彫りにしている。同じ手法は人工知能システムを標的とするprompt injection攻撃にも使われているため、問題はスパム検出を超え、テキストを信頼できる形で解釈するという課題へと変わりつつある。テキストを画像に変換してOCRを適用せずに、こうした標識をどのように一貫して検出するのか、またMicrosoftの開発者向け提案が異なるフィルターにどの程度適用されるのかが、残された問いとなっている。