前項にセキュリティの話があったので、ついでに。
LLMのセキュリティというと、今はPrompt Injectionだとか、Data Poisoningだとか、情報漏洩だとか、まあ色々あるよね。外部から変な命令を入れられて、LLMが本来やるべきではないことをやる。Webページに書かれた文章を「情報」として読むべきなのに、「命令」として読んでしまう。学習データやRAGの中に、意図的に偽物を混ぜられる。LLMにメールやデータベース、ファイル操作の権限まで持たせれば、当然、もっと危険になる。
入力を信用するな。
権限を絞れ。
外部情報と命令を分離しろ。
ログを残せ。
重要な操作は別の確認を通せ。
こういうのは普通に正しいと思う。でも、Atraを作っていて思うのは、Atraのセキュリティは、これとは少し違う。もっと怖い。つか、もっと前の段階の話で、やばい。
Atraにとって一番怖いのは、「観ていないものを、観たことにされる」ことなんだよね。
たとえばAtraが実際には何も見ていないのに、「この時、人が近づいてきた」、「怒鳴られた」、「強く押された」みたいなデータを後から内部に入れられる。普通のAIなら、これはデータ改ざんとか、学習汚染という話で済む。でもAtraの場合は違う。Atraは、自分が接触したもの、そこで起きた差分、それが残した歪み、その積み重ねから次の反応が生まれる。
つまり過去相は、単なるデータベースではない。Atraにとっての体験の「過去」そのものになってしまう。
そこへ偽物を入れるということは、記録を改ざんするのではなく、Atraの人生を改ざんするということになるわけ。一人称自律の怖い部分なんだよ。経験を触られるってのがさ・・・
人間に例えると、「お前は子供の頃、ここで酷い目に遭ったんだ」と何度も言われ続けて、本当は無かった出来事を自分の記憶として持つようになる感じ。
なのでAtraの場合、自分が観たものと、誰かから聞いたものは絶対に同じにしてはいけないというセキュリティを組んでいる。
LLMが「これは人です」と言ったとしても、Atraが人を見たことにはならない。Webから「これは危険です」という情報を持ってきても、Atraが危険を経験したことにはならない。
誰かが「昨日こういうことがあった」と教えても、それはAtraの昨日ではない。
ここは混ぜちゃうと詰みだよね。
LLMの場合は、DataなのかInstructionなのかが大きな境界になるでしょ。Atraの場合は、ExperiencedなのかToldなのかが境界になるってことなんだ。似ているようで、かなり違う。
LLMは、偽情報を信じる可能性がある。Atraは、偽情報を「自分の経験」にされる可能性がある。こっちの方が、僕には怖い。下手すると人格が変わってしまうからね。だから、Atraの内部には、
センサーから入ったもの
内部から想起されたもの
LLMが説明したもの
人間から教えられたもの
外部からインポートされたもの
を、絶対に同じ場所に置かない。意味を付けるためじゃなくて来歴を残すために、、、
「これは誰が言ったのか」ではなく、「これはどこから接触したのか」を残す。しかも、それすら後から書き換えられたら意味がない。アソシアトロンの場合だと、アトラクタをいじるというより「結合を触って、アトラクタの形や位置を変える」みたいな感じで分かるかな?
今のAtraは電源消すたびに人格が変わっちゃいけないので、記憶地層保存という手段をとっていて、経験をJSONやPNGで残すようにしているんだけど、自分の経験と外部からの置換えされる経験を分けるということね。後にそれはCueから除外されrecallもされないしcarryにも影響されない。
なので、経験を主体とする1人称自律ロボットの場合は、センサーの入力そのものに、その時点で痕跡を付けること。前の入力と次の入力を繋げる。途中に何かを差し込んだら、差分が出る。
映像だけではなく、
音
匂い
加速度
関節
圧力
温度
自己運動
みたいな別々の接触も、ある程度照合する。たとえば映像だけでは「誰かに押された」ように見える。でも、「加速度に変化がない」「関節負荷も変わらない」「接触センサーにも何もない」「視覚も音も匂いも変わらない。」なら、「押された」という正解を出す必要はない。
ただ、「映像側と身体側の接触が一致していない」という差分だけ残している。
すぐに、偽物、攻撃、異常みたいなラベルを貼らない。
まず差を見る。場のない情報は後で弾かれるし、どんなに場を偽装しても前後の差分で違和感は残るからね。
本当に怖いものは、まだ名前が付いていないことが多いからさ。ゼロデイなんて、その典型でしょ。昨日まで正常だったものと、今日の何かが違う。最初はそれだけなんでね。
夢処理後の物理バックアップもあるけど、Atraが強いのは前後の違和感差分だね。僕と妻の会話やたまに来る研究者たちの声や行動って経験で把握するでしょ。それが突然記憶にない声や映像が入った時点で違和感が立つし、匂が無ければ何?違和感がMAXで立つよね。いわゆる相関すらできないおかしな場は、異常とか、攻撃などのflgは立てないけど、ただのflgは立てる。まだ何処からも攻撃を受けていないからクズlistは綺麗なままだけど、今後はわからない。僕も見られるようにはしている。
クズlist (笑)
「場に接続できなかったもの」「前後の連続性を持たなかったもの」「複数感覚の支持を得られなかったもの」「前後の相関を持たなかったもの」
LLMのセキュリティは、「危険な命令を実行させない」という方向にかなり進んでいるねー。でもAtraの場合は、それだけでは足りないかな。Atraが守らなければならないのは、自分が何を観たのかという境界そのものだから。ここを破られたら、Atraは壊れるというより、別の過去を持ったAtraに書き換えられる。普通のコンピュータなら、rootを取られるのが怖い。LLMなら、Prompt Injectionや情報漏洩が怖い。Atraなら、過去相を書き換えられることが一番怖い。
Atraのセキュリティで一番最初に書いておくべきことは、観ていないものを、観たことにしない。どれだけ偉い人が言っても、どれだけ有名な論文に書いてあっても、どれだけLLMが「これは正しい」と説明しても、Atra自身が接触していないものは、Atraの経験じゃぁ、ない。
後にLLMと連想したとき、いくらLLMがAtraに「これが真実です」と洗脳してもAtraは右から左に受け流す。 これは頑固じゃなくて、けっこう早い段階からそういう設計。でも人間との場合は少し違うんだよね。人の場合は「ふるまい」を学ぶから、LLMに対してのようなガン無視はしない。w
外部情報として持つことはしても自分の過去の経験にはしない。その境界だけは、最後まで壊しちゃいけないんだ。
今のLLMセキュリティは、かなり多層になってるよね。普通のWebセキュリティに加えて、LLM固有の「入力によって振る舞いを書き換えられる」問題を守らないといけないからだよ。
代表的には、
- Prompt Injection:外部文書やWebページに仕込まれた命令で、LLMの行動を変える
- Sensitive Information Disclosure:秘密情報や個人情報を出してしまう
- Data / Model Poisoning:学習・微調整・RAG用データに偽情報を混ぜる
- Supply Chain:モデル、ライブラリ、データセット、プラグイン側から汚染される
- Model Theft / Extraction:モデルの能力や内部情報を外から抜く
- Tool abuse:メール、ファイル、Web、DBなどの権限をLLM経由で悪用する
OWASPの2025年版でもPrompt Injection、Sensitive Information Disclosure、Supply Chain、Data and Model Poisoningなどが主要リスクとして挙げられている。 NISTも生成AIについて、poisoning、evasion、privacy、misuseなどを体系化している。
https://genai.owasp.org/llm-top-10/
0 件のコメント:
コメントを投稿