そのプロンプト、本当に "a" ですか? ホモグリフ攻撃がLLMアプリを騙す仕組みと防御実装
Zenn / 2026/4/18
💬 オピニオンDeveloper Stack & InfrastructureTools & Practical Usage
要点
- ホモグリフ(見た目が似た文字)を用いて「a」に見える入力を別文字にすり替え、LLMアプリの挙動を意図せず変えられる攻撃手法を説明しています。
- アプリ側の文字列処理・検証が不十分だと、プロンプトやガードレールの判定がすり抜けるメカニズムを整理しています。
- 防御として、Unicode正規化(例:NFKC等)や文字種の正規化、許可リスト方式、入力検証を組み合わせる実装方針を提示しています。
- LLM利用時のセキュリティ観点として、視覚的同一性だけに依存しない実装とテスト(攻撃入力の再現)を推奨しています。
そのプロンプト、本当に "a" ですか? ホモグリフ攻撃がLLMアプリを騙す仕組みと防御実装
TL;DR
LLMアプリに組み込んだキーワードフィルターが、Unicode 攻撃・ホモグリフ置換によって無効化される。本記事では Python の unicodedata モジュールと Confusables データベースを使った検出・正規化の実装を動くコードつきで解説する。読了目安は15分、手元で試せるコードを全て掲載している。
ホモグリフとは何か — 人間の目とLLMを同時に欺く文字の話
ホモグリフ(homoglyph)とは、見た目が似ているが異なるコードポイントを持つ文字同士を指...
この記事の続きは原文サイトでお読みいただけます。
原文を読む →



