仕事関係 — コンセプト記事
— お願いをやめて、仕組みで止める —
自分の Mac で AI に作業を任せ、守りの道具を作っては直してきた経験から、企業の業務や情報セキュリティに持ち込める考え方を5つにまとめました。 答えを先に言うと、守りは「注意してください」という文章ではなく、守らなくても止まる仕組みで作ることです。特別な製品より先に、設計の考え方で効きます。
この記事を読むとできること
想定している使い方
社内で AI や外部サービスとの連携を使い始めた、またはこれから使う職場を想定しています。個人の Mac で試して分かったことを、職場でも使える考え方として一般化して書きました。 具体的な製品の設定手順や、自分の環境の設定の中身は載せていません。守りの具体は、それ自体が攻撃する側の地図になるからです。
読む目安:約13分 ・ 仕事関係のコンセプト記事 ・ 図8枚
攻撃の狙いどころは、外の壁から信頼している内側へ移ってきています。AI エージェント(AI が端末を直接操作して作業する仕組み)や開発者の端末そのもの、取引先やつないだ外部サービスを経由する道、社内ネットワークの中にある管理の道具などです。さらに、攻撃されなくても、ログ(動いた記録)や設定ファイル、変更の履歴から、秘密がうっかり外に出ることもあります。
自分の環境でも、守りの決まりは長いあいだ、文章で書いた「お願い」だけでした。AI は決まりを読みますが、守らない日もあります。人も、忙しい日は読み飛ばします。しかも事故は、1回守られなかっただけで起きます。そこで、決まりを1つずつ、守らなくても止まる仕組みに置き換えてきました。この記事は、その過程で分かったことを、職場で使える形に言い直したものです。
図の見方:上の段は、決まりを文章で配るだけの場合です。読まれない日や守られない日があり、1回の見落としで事故が起きます。下の段は、決まりを止める仕組みに置き換えた場合です。守らなくても止まるので、事故の芽を機械が摘みます。
HINT 1
止める仕組みは、1段では足りません。3段に重ねて、前の段の漏れを次の段が受ける形にします。
図の見方:上から順に、AI や人が出した操作が、1段目・2段目・3段目を通ります。どこか1段で止まれば実行されません。すべての段を通ったものだけが実行されます。1つの段で全部を止めようとせず、前の段の漏れを、次の段が受ける形にしています。
自分の道具で分かったこと
名指しで禁止したつもりの操作が、別の読み方では素通りしていたことがあります。また、便利さのために設定を1つ緩めたら、別の段の検査が迂回されていたこともあります。どちらも、実際に投げて試すまで気づけませんでした。いまは、止まるべき操作を実際に投げ、止まることを自動のテストで確かめています。あわせて、止まってはいけない操作も投げます。説明の文章の中の危険な単語まで止めてしまう誤作動が、実際に起きたからです。止めすぎる守りは、いずれ外されます。
図の見方:上は、止まるべき操作の見本を守りに渡し、止まることを確かめる試験です。実際には実行せず、判定だけを見ます。下は、ふつうの操作や、危険な単語を含む説明文を渡し、通ることを確かめる試験です。どちらかがずれたら知らせます。
もう1つ、2台目の端末には、設定が付いてこないことがありました。守りの設定が片方にしか入っていない状態が、2週間気づかれずに続いたことがあります。それ以来、守りの設定は原本を1か所で管理して配り、ずれていたら知らせるようにしています。
職場での当てはめ:規程やガイドラインを配って周知するだけで終わらせず、拒否の設定・実行前の検査・権限を絞った実行環境の3段を重ねます。そのうえで、「止まるべきものが止まるか」「止まってはいけないものが通るか」の試験を、決まった間隔で回します。設定は端末ごとに抜けるので、原本からの配布とずれの検知を、仕組みに含めます。
HINT 2
一時的に出した許可や連携は、使わなくなっても残り続けます。そして残った許可は、悪用されたときの入口になります。見落としやすいのは、OS のプライバシー許可、自動で起動する常駐プログラム、外部サービスとの連携の許可、ブラウザの拡張機能、ログイン用の鍵、AI につないだ外部の道具です。
自分の道具で分かったこと
これらを1か所に集めて、危険度の高い順に並べる点検の画面を作りました。各項目には、消すとできなくなることと消すと防げること、そして自分の仕組みがその許可を使っているかを並べます。危険度だけで消すと、その許可に頼っていた自動の処理が、黙って失敗し続けるからです。外すかどうかは人が決め、外す前には確認を出し、元に戻せる控えを残します。
図の見方:上から順に、許可を集め、危険度の高い順に並べ、消したときの損得と頼っている仕組みを並べます。そのうえで人が決め、外すときは控えを残します。危険度の高さだけで消さないのが要点です。
点検の画面そのものを、危なくしないことも大切です。見るだけの操作と変える操作を分け、どの端末の許可を見ているかを常に表示し、秘密の値は伏せて表示します。「どこまで許しているか」の一覧は、攻撃する側にとっては、入口の一覧と同じ価値があるからです。
職場での当てはめ:退職・異動・プロジェクト終了のときだけでなく、決まった間隔で「いま有効な許可」を一覧にして見直します。一覧には、外すかどうかを判断する材料(その許可を使っている業務や仕組み)を一緒に出し、外すときは控えと戻し方をセットにします。
HINT 3
AI に読ませる文章の中に、AI への命令が紛れ込んでいると、AI がそれに従ってしまうことがあります。プロンプトインジェクション(文章に紛れた命令で AI を操る手口)です。Web から取ってきた文章、社内の共有ノート、他人が書いた資料が、その入口になります。
自分の道具で分かったこと
ノートに紛れた「AI へのお願い・命令の形」の文を探す検査を作りました。最初は危ない単語を見つけるだけの作りで、自分が書いた記録が全部引っかかりました。そこで、命令の形になっていることを条件にしています。ただし、この検査は保険です。言い回しを変えた命令は、すり抜けられます。本命の守りは、AI ができること(外への送信・削除など)を、そもそも絞っておくことです。
金額の計算、合否や可否の判定のように、答えが1つに決まる処理は、AI に任せずプログラムで行います。AI には、提案や理由の説明を任せます。AI の「できました」も、そのまま信じません。合否は、テストが通ったかどうかという機械の結果で決めます。
AI に渡す前に、個人名、日付、認証情報などを伏せます。理由の1つは、漏れないためです。もう1つは、判断を歪めないためです。相場の動きを AI に判断させる試みで、年月と銘柄の名前をそのまま渡すと、AI はその後の結果を知識として知っているので、答えを当ててしまいました。いまは、どちらも伏せて渡しています。
日記、体調、思いつき、話した言葉のような生の情報は、手元の機械で動く AI だけで扱い、外のサービスには出さないと決めています。速さや賢さより、外に出さないことを優先する、という境界線です。
図の見方:上の段は、仕事の分け方です。AI には提案と説明を、プログラムには計算と判定を、人には戻せない操作の最終決定を任せます。下の段は、データの分け方です。外に出してよいもの、伏せてから渡すもの、外に出さず手元の AI だけで扱うものの3つに分けます。
職場での当てはめ:AI に読ませてよいデータと、外のサービスへ出してはいけないデータの境界を、文書の種類ごとに決めて明文化します。AI に任せる仕事は「提案と説明」、決めるのは「プログラムと人」と分け、外部の文章を読ませる AI には、送信や削除の権限を持たせません。
HINT 4
社内の管理画面や、手元で動かしている道具は、外からは見えないので安全だと思われがちです。ところが、内側の道具は、内側にいる誰かを踏み台にして狙われます。
入力された URL の中身を取りに行く機能は、SSRF(サーバーを踏み台にして、外からは届かない内側を叩かせる手口)の入口になります。最初の URL を確かめるだけでは足りません。リダイレクト(別の URL への転送)の1回ごとに、行き先を確かめ直します。自分の機械、社内のアドレス、VPN(決まった端末どうしだけをつなぐ通信の仕組み)が使うアドレス帯(たとえば 100.64.0.0/10)も、内側として扱って断ります。
図の見方:上から順に、入力された URL をまず確かめ、転送が来るたびに行き先を確かめ直します。最初の URL が外のサイトに見えても、転送の先で内側のアドレスに向かうことがあるので、そこで止めます。
社員が別のサイトを見ている間に、そのブラウザから社内の道具の「削除」「起動」「設定の変更」を叩かせる手口があります(CSRF や DNS リバインディングと呼ばれる手口)。変更を伴う要求は、同じ画面から来たか(ブラウザが付ける Sec-Fetch-Site という印)と、宛先の名前が正しいか(Host という印)を確かめ、それ以外は断ります。大事な操作には、その画面の中にだけ渡した合言葉を求めます。
図の見方:上の段は、確かめない場合です。社員が別のサイトを見ている間に、ブラウザが裏で社内の道具に要求を送り、道具がそのまま実行してしまいます。下の段は、同じ画面から来たか、宛先の名前、合言葉の3つを確かめる場合です。1つでも違えば断ります。
自分の道具で分かったこと
同じ機械で、いくつもの道具を別々の番号(ポート。1台の機械の中で通信の入口を区別する番号)で動かしていると、ブラウザの印は番号の違いを見ないので、別の道具からの要求まで「同じサイト」に見えます。そのため「同じサイトなら通す」では不十分で、「同じ画面から来たものだけを通す」形にしました。
職場での当てはめ:社内向けの管理画面にも、外向けのサービスと同じ検査を入れます。「社内からしか開けない」ことを、守りの理由にしません。
HINT 5
合言葉や API キー(サービスを使うための鍵になる文字列)を、コードや設定ファイル、共有のフォルダに、そのままの文字で置きません。OS の鍵束(Mac ならキーチェーン)のような、守られた保管場所に集めます。
エラーの記録、動作のログ、検査の結果を表示する欄そのものが、秘密の2次的な漏れ口になります。抜き出して表示するときは、値を伏せてから出します。秘密を探す検査の画面が、見つけた秘密をそのまま表示しては本末転倒です。
一度リポジトリ(変更の履歴ごとコードを保管する場所)に記録した秘密は、ファイルを消しても、変更の履歴に残ります。見つけたら、①管理から外す ②除外のリストに足す ③その秘密自体を作り直す、の3つをセットで行います。消しただけでは、漏れは止まりません。
自分の道具で分かったこと
コードを定期的に検査して、文字列をそのまま実行してしまう危険な書き方や、秘密らしい名前のファイルが管理に入っていないかを探しています。あわせて、AI が残す作業の記録やメモ、変更の説明にも、値そのものは書かないと決めています。「どこに移した」までは書き、値は書きません。記録は、あとから読まれるからです。
図の見方:上から順に、秘密が漏れる3か所と、それぞれの守りです。置き場所は守られた保管場所に集め、ログは伏せてから出し、履歴に入った秘密は、消すだけでなく作り直します。
職場での当てはめ:秘密の保管場所を1つに決め、コード・共有フォルダ・チャットへの貼り付けを禁止します。ログと検査結果の表示には伏せ字を入れ、履歴に入ってしまった秘密は「作り直す」までを手順に含めます。
CHECKLIST
上から順に、自分の職場がどうなっているかを確かめてください。答えられない項目が、最初に手を付ける所です。
どれも、特別な製品を買う前にできる、考え方の見直しです。まずは1つ、「お願い」のままになっている決まりを選び、仕組みで止める形に変えてみてください。