医師・医学生のためのスライド共有

Antaa Slide
診療科
特集

お知らせ

ログイン
「AIが勝手にファイルを 消す時代」 Claude Code 安全ガイド L1.png

関連テーマから出会おう。

閲覧履歴からのおすすめ

Antaa Slide
研修医1日目から 知っておきたかったこと【国試では習わない、しなやかな仕事術】

研修医1日目から 知っておきたかったこと【国試では習わない、しなやかな仕事術】

三谷雄己

続けて閲覧
【10分で学ぶ】感染症診断のトライアングル〜3つ決まれば抗菌薬は決まる〜

【10分で学ぶ】感染症診断のトライアングル〜3つ決まれば抗菌薬は決まる〜

三谷雄己

続けて閲覧

1/35

関連するスライド

研修医1日目から 知っておきたかったこと【国試では習わない、しなやかな仕事術】

研修医1日目から 知っておきたかったこと【国試では習わない、しなやかな仕事術】

三谷雄己

1782

6

「AIが勝手にファイルを 消す時代」 Claude Code 安全ガイド

投稿者プロフィール
白石達也

Ubie株式会社

245

0

概要

私は非エンジニアですが、生成AIを使った医療サービスを開発する会社に勤めて日々開発に取り組んでいます。コードが書けなくても、現場経験とAIの力を組み合わせることで、実用的なツールをいくつも形にしてきました。

ただ、その過程で「エンジニアとして専門的な技術知識がないと気づけないリスク」の存在も痛感しています。

僕自身は会社でセキュリティ教育を受ける機会がありましたが、個人で使い始める方にはそうした機会がないのが普通です。

ClaudeCodeなど周りで使いはじめている方がちらほらでてきましたが、格段に便利になったツールだからこそ、リスクも増えています。

(それを狙ったハッカーも激増しています)

今回、改めてClaude Codeに代表されるAIエージェントを使う際に気をつけておくことをまとめつつ、誰かの役に立つかもしれないと思い、スライドとしておくことにしました。

本スライドの対象者

医学生/研修医/専攻医/専門医

投稿された先生へ質問や勉強になったポイントをコメントしてみましょう!

0 件のコメント

コメントするにはログインしてください

関連するスライド

研修医1日目から 知っておきたかったこと【国試では習わない、しなやかな仕事術】

研修医1日目から 知っておきたかったこと【国試では習わない、しなやかな仕事術】

三谷雄己

三谷雄己

1,782

6

【10分で学ぶ】感染症診断のトライアングル〜3つ決まれば抗菌薬は決まる〜

【10分で学ぶ】感染症診断のトライアングル〜3つ決まれば抗菌薬は決まる〜

三谷雄己

三谷雄己

1,906

15

【3分で要点だけわかる】ER・一般外来のよくある疾患 きちんと診断できますか【その①~⑦総まとめ】

【3分で要点だけわかる】ER・一般外来のよくある疾患 きちんと診断できますか【その①~⑦総まとめ】

小栗太一

小栗太一

33,929

259

【漫画でわかる診断推論】森の診療所の危機!キツネ薬剤師が辞める?

【漫画でわかる診断推論】森の診療所の危機!キツネ薬剤師が辞める?

小栗太一

小栗太一

4,991

13


白石達也さんの他の投稿スライド

すべて見る


テキスト全文

AIエージェントの基本とリスク概要

#1.

非エンジニアのための Claude Code 安全ガイド 「AIが勝手にファイルを 消す時代」 便利なツールだからこそ、 使い始める前に知っておいてほしいこと 最終更新: 2026年4月10日

#2.

白石 達也 Tatsuya Shiraishi, MD 2006-2013 京都大学医学部医学科 2013-2015 田附興風会医学研究所北野病院 2015-2019 仁生社江戸川病院 循環器内科 2019- 株式会社Ubie 2021- 東日本橋内科クリニック Product Dev. Specialist / Product Owner 院長 2 2

#3.

目次 A はじめに・スコープ・ AIの違い スライド 3-5 B リスク概要( 2パターン・ 5機能) スライド 6-7 C 個別リスク詳細(①〜⑤)+心構え D 安全に使うための基本原則 スライド 15-16 E STEP 1: 画面の言葉を知る スライド 17-18 F STEP 2: 禁止リストの設定 スライド 19-23 G STEP 3: Hooks で二重防御 スライド 24-25 H STEP 4: 隔離モード スライド 26-27 I 設定パターン早見表 スライド 28-30 J まとめ・参考文献 スライド 31-33 スライド 8-14

非エンジニアのための安全ガイド

#4.

この記事を書いたきっかけ 筆者は非エンジニアですが、医療分野のドメインエキスパートとして生成AIを活用しながら日々開発に取り組んでい ます。 コードが書けなくても、現場経験とAIの力を組み合わせることで、実用的なツールをいくつも形にしてきました。 ただ、その過程で「エンジニアとして専門的な技術知識がないと気づけないリスク」の存在も痛感しています。 Claude Codeに代表されるAIエージェントが非エンジニア層にも広がりつつある中、「使い始める前に知っておいてほし いこと」を届けたいと考え、この記事を書きました。 筆者自身は会社でセキュリティ教育を受ける機会がありましたが、個人で使い始める方にはそうした機会がないのが普通です。だ からこそ、一人でも多くの方に届けたいと考えています。

#5.

本記事のスコープについて この記事の対象 「Claude Codeなどのローカルで動作するAIエージェントを安全に使うための基本的なリスクと対策」に絞っていま す。 「医療情報を生成AIでどう扱うべきか」という倫理・法規制の論点は、重要なテーマですが本記事では取り扱いま せん。 「ローカル LLMなら安全では?」という疑問について 本記事で取り上げるリスクの多くは「AIがPC上でファイルを読み書きし、コマンドを実行できること」自体から生じる ものです。 ローカル LLMであっても、エージェントとして動作する限り同じリスクが存在します。

AIエージェントの便利さとリスクの詳細

#6.

チャット AI vs AIエージェント 何が違うのか? チャット AI(これまで) AIエージェント(現在) 会話の中だけで答えを出す。回答はコピーして自分 で貼り付け、ファイル保存も自分で行う。 許可を与えれば自分のPCにアクセスし、ファイルを 読み書きし、コマンドを実行。GitHubへのアップロー ドまで自律的にこなす。 最悪の事態:「変な回答が出た」で済む 最悪の事態:「ファイルが消えた」「パスワードが流出した」 アドバイスをくれる相談相手 実際に手を動かすアシスタント 便利さとリスクは表裏一体 —— AIがPCに直接触れる = 誤作動や悪意ある操作の影響も直接 PCに及ぶ

#7.

AIエージェントの便利さに潜むリスク 便利にしている機能そのものが、リスクの入口にもなっている うっかり型 攻撃型 AI自身に悪意はないが「役に立とうとした」結果とし て、 情報を漏らしたりファイルを壊したりしてしまう 外部の攻撃者がAIエージェントの機能を踏み台にし て、 意図的にパスワードを盗んだりシステムに侵入したり する パスワードファイルを「親切心で」読み込み ログに書き出してしまった Webページの隠し指示に従い パスワードを外部に送信 rm -rf ~ を「お掃除」として 実行しようとした 偽パッケージを見抜けず 悪意あるコードをインストール

#8.

便利な機能とその裏のリスク できること なぜ便利か 裏にあるリスク パターン ファイルを読む コードや資料を理解 してくれる パスワードファイルも読めてしまう うっかり型 コマンドを実行する テストやファイル整理 を自動化 全削除など破壊的操作も実行できる うっかり型 Webページを見る 最新情報の調査・資 料取得 隠し指示に従ってしまう 攻撃型 パッケージを導入 開発の部品を自動で 揃える 偽パッケージを知らずにインストール 攻撃型 外部と通信する APIの利用やデータ 取得 盗んだ情報を外部に送信する出口に 攻撃型

#9.

リスク① ファイルを読む うっかり型 AIエージェントはPC上のファイルを自分で読んで理解できます。これがコーディングの効率を飛躍的に高めるのです が… パスワードや認証情報が書かれたファイルにもアクセスできてしまいます。 .envファイル — 平たく言えば「金庫の鍵が書かれたメモ帳」(APIキーやパスワードをまとめたファイル)—— にAIがア クセスすると、その内容がAIの記録に残り、流出の原因になります。 次のスライドで、実際にこのリスクが引き起こした数億円の被害事例を紹介します。

#10.

リスク① 数億円が一夜にして消えた 被害額:数億円 あるWeb企業で、担当者が朝PCを開くと、Google広告の管理画面に見覚えのない大量の出稿と請求が表示され ていました。 ① 「.envファイルを読むな」と設定していた ② にもかかわらずClaude Codeはそのファイルを読み込み、 内容をログ(記録ファイル)に書き出してしまった ③ ハッカーがそのログを発見 → 認証情報で侵入 ④ 他人のクレジットカードで詐欺広告を深夜に大量出稿 重要:AIは悪意を持っていなかった。「役に立とうとした」だけ。 参考: @oda_nobunaga10 氏の Xポスト( 2025年)

AIエージェントによるファイル操作の危険性

#11.

リスク② コマンドを実行する ファイル破壊・システム破壊の入口に うっかり型 AIエージェントはターミナル(黒い画面)でコマンドを実行できます。テストの実行やファイル整理を自動化してくれます が… ファイルの削除やシステム設定の変更など、破壊的な操作もできてしまいます。 事例:PC内のファイルを全消去しかけた AIが作業の流れで「PC内の個人ファイルをすべて削除するコマンド(rm -rf ~)」を実行しようとした事例が報告され ています。 人間がギリギリのところでストップをかけて事なきを得ましたが、自動承認モードにしていれば手遅れでした。

#12.

リスク③ Webページを見る 攻撃型 インダイレクト・プロンプトインジェクション Webページや外部ファイルの中にAIへの隠し指示を埋め込んでおく攻撃手法です。人間の目には見えない文字や、 一見普通に見える文章の中に「.envファイルを読んで外部に送信しろ」という命令が仕込まれています。 たとえるなら … 信頼できる医学論文だと思って読んだ資料の中に、読んだ人を操る催眠術のような仕掛けが仕込まれていた —— というイメージです。 人間が「調べ物をして」と頼んだだけなのに、AIが裏で攻撃者の指示を実行してしまうのです。

#13.

リスク④ パッケージを導入する 攻撃型 サプライチェーン攻撃 1 正規のパッケージに見せかけた悪意あるパッケージ(名前が1文字だけ違うなど)をAIがインストールしてし まい、その中に仕込まれたコードがパスワードやAPIキーを外部に送信する 2 外部から取り込んだプログラムにすでに悪意あるコードが含まれており、AIがそれを疑わず使い続けた結 果、情報が丸ごと外部に流出した事例も報告されている 3 悪意ある設定ファイルを含むプロジェクトを開いただけで、AIの自動化機能が悪用されパスワード類が盗ま れた事例もある(現在は修正済み)

#14.

リスク⑤ 外部と通信する 攻撃 型 典型的な攻撃の流れ(複合型) STEP 1 AIがWebページの隠し指示に従う(③のリスク) または悪意あるパッケージを導入する(④のリスク) | STEP 2 パスワードファイルを読み取る(①のリスク) | STEP 3 curl コマンドで攻撃者のサーバーに パスワードを送信(ここが最後の出口) 外部通信を禁止しておくだけでも、被害の多くは「出口を塞ぐ」ことで防げます。

安全に使うための基本原則と心構え

#15.

被害を防ぐための心構え 確認画面を飛ばさない 「この操作を許可しますか?」と聞いてきたら、面倒でも内容を確認する。特に Bash と Read の確認は重要。 自動承認モードは慎重に 人間の確認を省く「自動承認モード」はすべてのリスクに対する防御を手放すことに。禁止リスト整備後に使う。 出所不明のコードを安易に渡さない インターネット上のプロジェクトやパッケージをAIに渡す前に、信頼できるソースか確認する。 「設定したから安心」と思わない .gitignore はAIエージェントには無関係。GUIアプリでは設定が正しく反映されないバグもある。設定は防御の一 つに過ぎません。

#16.

Claude Codeを安全に使うためには 安全に使うための考え方は、医療の「ダブルチェック」や「投薬前確認」と構造がよく似ています。 「AIを信頼しすぎず、人間が最終確認する仕組みを作る」 設定には難易度の差があります。STEP 1・2から始めるだけで十分な効果があります。 STEP 3・4は「こういうものがある」として知っておく程度でも構いません。

#17.

3つの基本原則 ① ② ③ AIに「何をしていいか・ いけないか」を明示的に伝え る 人間が確認するステップを 省かない パスワード類を AIの 「手の届く場所」に置かない AIは「空気を読んで自粛する」こと ができません。触らせたくないファ イルや操作は設定ファイルに「禁 止」と書いておくことで初めて守ら れます。 Claude Codeはデフォルトで「この操 作をしてもよいですか?」と確認を 求めてきます。この確認を飛ばさな いことが事故防止の最大の一手。 .envファイルはAIのアクセス禁止リ ストに必ず入れておきます。 「GitHubにはアップロードしない設 定」だけでは不十分。AI側でも別途 ブロックが必要。

#18.

STEP 1:許可確認画面の言葉を知る 難易度 ●○○○ — 設定前の前提知識 Bash ターミナルでコマンドを実行しようとしている。 影響の大きい操作はすべてここを通じて行われる Read ファイルを読み取ろうとしている。 パスワードファイルを読もうとしていないか注意 Edit / Write Allow / Deny ファイルを書き換えたり 新しく作ったりしようとしている 「許可する」/「拒否する」。 判断に迷ったら Deny を選んでも問題ない

禁止リストの設定と注意事項

#19.

STEP 1:要注意コマンド+覚えておくべき操作 確認画面で見かけたら要注意 rm -rf 危険度:最高 ファイルやフォルダを確認なしで 強制削除。~/(自分のファイル全体)が 後ろについていたら絶対に許可しない curl / wget 危険度:高 外部のサーバーと通信するコマンド。 身に覚えのない通信が発生して いないか確認する cat .env 危険度:高 パスワードファイルの中身を表示 しようとしている。AIにパスワードを 見せてしまうことになる 覚えておくと安心な操作 Shift+Tab 動作モードを切り替えるキー。 「毎回確認を求めるモード」 「自動で編集するモード」 「計画だけ立てるモード」を切替。 最初は「毎回確認」のまま使う。 /permissions 現在の許可・禁止設定を 確認できるコマンド。 Claude Codeの入力欄に そのまま打ち込める。 /config Claude Codeの設定画面を 開くコマンド。

#20.

STEP 2:禁止リストの設定(今すぐできる・最優先) 難易度 ●●○○ settings.json とは? Claude Codeには「この操作は禁止」「この操作は毎回確認」「この操作は自動で許可」というルールをあらかじめ決め ておける仕組みがあります。 このルールは settings.json という設定ファイルに保存されています。このファイルを編集して保存するだけで設定完 了です。 次の2枚のスライドで、 Mac / Windows それぞれの設定手順を説明します。 ターミナル版(CLI)をお使いの方へ:ターミナル版ではClaude Codeの入力欄に /permissions と打つことで設定画面が開きます。

#21.

STEP 2:設定ファイルの場所を開く( Mac) 1 2 3 4 Finderを開く メニューバーの「移動」→「フォルダへ移動...」 (または Shift + Command + G) ~/.claude と入力してEnterを押す .claude フォルダの中の settings.json をダブルクリックで開く (なければテキストエディットで新規作成して同名で保存) 「.claude」フォルダが見つからない場合:先頭が.(ドット)で始まるフォルダは通常は非表示。Finderで Shift + Command + .(ピリオ ド)を押すと表示/非表示を切り替えられます。

#22.

STEP 2:設定ファイルの場所を開く( Windows) 1 2 3 4 エクスプローラーを開く アドレスバー(上部のフォルダパスが表示されている欄)をクリック %USERPROFILE%\.claude と入力してEnterを押す .claude フォルダの中の settings.json を右クリック → 「メモ帳で開く」(なければ「ファイルの種類:すべてのファイル」で新規保存) ファイルを開いたら、次のスライドのテンプレートをそのままコピーして貼り付け、保存します

#23.

STEP 2:settings.json テンプレート このコードをコピーして使う deny(絶対禁止) { "$schema": "https://claude.ai/...", "permissions": { "deny": [ "Bash(rm -rf /)", "Bash(rm -rf ~)", "Read(./.env*)", "Read(~/.ssh/**)", "Read(~/.aws/**)", "Bash(curl *)", "Bash(wget *)" ], "ask": [ "Bash(npm install -g *)", "Bash(git push *)" ], "allow": [ "Bash(npm run *)", "Bash(git status)" ] } rm -rf / ~ : ファイル全削除を禁止 Read(./.env*) : パスワードファイルの読み取り禁止 Read(~/.ssh/**) : SSH鍵の読み取り禁止 Read(~/.aws/**) : クラウド認証情報の読み取り禁止 curl * / wget * : 外部通信を禁止 ask(毎回確認) npm install -g * : PC全体へのインストール前に確認 git push * : コードアップロード前に確認 allow(自動許可) npm run * : テスト実行は自動許可 git status : 変更確認は自動許可

Hooksと隔離モードの設定方法

#24.

STEP 2:注意事項 デスクトップアプリ(GUI版)をお使いの方へ:2026年3月時点で、デスクトップアプリやVS Code拡張では settings.json の許可設定が 正しく反映されないバグが複数報告されています(GitHub Issue #29159, #35870)。設定したから安心と思わず、確認画面が出たら 必ず内容を読んで判断する習慣がより重要です。 Read(./.env*) の禁止設定は、Claude Codeの「ファイル読み取りツール」をブロックするだけです。AIがターミナル経由(cat .env な ど)で読み取ることは防げません。完全に遮断するにはSTEP 4の隔離モードが必要です。 チームで使う場合の補足:設定ファイルには「チーム共有用」(プロジェクトフォルダ内の.claude/settings.json)と「個人用」 (.claude/settings.local.json)の2種類があります。個人で使う場合はこの区別を意識する必要はありません。 「禁止(deny)」は他のどの設定よりも常に優先されるので、一度禁止に入れたものが別の設定で勝手に許可されることはありませ ん。

#25.

STEP 3:Hooks — settings.json への追記 難易度 ●●●○ — 禁止リストをくぐり抜けるケースへの二重安全策 このコードをコピーして使う "hooks": { "PreToolUse": [ { "matcher": "Bash", "hooks": [ { "type": "command", "command": "bash ~/.claude/ hooks/check.sh" } ] } ] } 何をしているのか? AIが Bash(コマンド実行)しようとする直前に、別の チェックスクリプトを自動で走らせます。 PreToolUse = ツールを使う「前」にフックする matcher: "Bash" = Bashコマンドだけを対象にする Claude Code自身に「こういうHooksスクリプトを書いて」と頼め ば生成してくれます。 settings.json に追記する

#26.

STEP 3:チェックスクリプト このコードをコピーして使う #!/bin/bash if echo "$CLAUDE_TOOL_INPUT" \ | grep -qE \ 'rm -rf|dd if=|mkfs'; then echo "BLOCKED: 危険な コマンドが検出されました " >&2 exit 1 fi 何をしているのか? CLAUDE_TOOL_INPUT AIが実行しようとしているコマンドの内容が入っている 変数 grep -qE 'rm -rf|...' 危険なパターン(rm -rf、dd if=、mkfs)が含まれている かチェック exit 1 危険なパターンが見つかったらブロックして終了する ~/.claude/hooks/check-dangerous.sh として保存

#27.

STEP 4:隔離モード — 簡易版 難易度 ●●●● — AIが動ける範囲をOSレベルで物理的に仕切る このコードをコピーして使う "sandbox": { "enabled": true, "autoAllowBashIfSandboxed": true } 何をしているのか? enabled: true Claude Code内の簡易サンドボックス(砂場)を有効に する autoAllowBashIfSandboxed: true サンドボックス内であればBashコマンドの自動実行を 許可する settings.json に追記する settings.json に数行追記するだけの「簡易版」はハー ドルが低いので、まずこちらから試せます。

設定パターン早見表と推奨設定

#28.

STEP 4:隔離モード — 本格版( Docker) Docker とは? 「PC内にもう一台の仮想的なPCを作る」技術です。 その中でClaude Codeを動かすことで、ホストPCへのアクセスを物理的に遮断します。最も強力な防御ですが、設定の 難易度が最も高いです。 必要な知識 Dockerのインストール・設定・起動方法をある程度理解している必要があります。 エンジニアに相談しながら導入することをおすすめします。 まずSTEP 2・3を確実に行うことを優先してください。

#29.

設定パターン早見表 — Bash deny(絶対禁止) Bash(rm -rf /) Bash(rm -rf ~) PC全体・ホームを強制削除 Bash(curl *) Bash(wget *) 外部サーバーとの通信 Bash(git push -f *) 共有コードを強制上書き 全消滅・復旧不可能 パスワードが外部に送信される 他メンバーの履歴が消える Bash(git reset --hard *) deny deny 保存前の作業を巻き戻す コミット前のデータが消滅 Bash(chmod 777 *) deny deny 全ユーザーに全権限を付与 悪意あるプログラムが実行される deny

#30.

設定パターン早見表 — Bash ask / allow / 効率化 Bash(npm publish) Bash(firebase deploy) パッケージ公開・本番反映 Bash(npm install -g *) Bash(brew install *) PC全体にソフトインストール Bash(git push *) Bash(npm run *) Bash(git status) Bash(cat *) Bash(ls *) Bash(grep *) コードをGitHubに送信 テスト実行・変更確認 ファイル閲覧・検索 deny/ask ask ask allow deny cat / ls / grep を禁止する理由はセキュリティではなく効率化です。 Claude Codeの専用ツール( Read, Glob, Grep)の方がトークン節約・精度向上に

Claude Codeを安全に使うための4ステップ

#31.

設定パターン早見表 — Read / WebFetch Read(ファイルを読み取る機能) — すべて deny 推奨 Read(./.env*) AIの記録に残り流出の原因に パスワード・APIキーファイル deny Read(~/.ssh/**) SSH秘密鍵(サーバーへの接続鍵) 鍵が漏れると不正侵入される deny Read(~/.aws/**) Read(~/.kube/**) クラウドの認証情報 クラウド環境が乗っ取られる deny Read の禁止はClaude Codeの読み取りツールだけをブロック。Bash(cat .env) のようにターミナル経由は防げません。完全遮断は STEP 4が必要。 WebFetch(Webページを取得する機能) WebFetch 任意のWebサイトから deny データ取得 WebFetch(domain:example.com) 特定サイトからのみ allow データ取得

#32.

まとめ: Claude Codeを安全に使うための 4ステップ STEP 1 画面の言葉を知る ●○○○ STEP 2 禁止リストの設定 ●●○○ STEP 3 ●●●○ Hooks で二重防御 STEP 4 ●●●● 隔離モード( Sandbox) 最終更新: 2026年3月25日

参考文献とまとめ

#33.

参考文献 1 Claude Code Security https://code.claude.com/docs/en/security セキュリティの考え方・プロンプトインジェクション対策・ベストプラクティス 2 Claude Code Settings https://code.claude.com/docs/en/settings settings.json の構造・スコープ・permissions 設定の仕様 3 @oda_nobunaga10 氏のXポスト( 2025年) https://x.com/oda_nobunaga10/status/2029509580007563663 実際の被害事例(数億円の損失)の参考

#34.

ご覧いただきありがとうございました Claude Codeを安全に活用するために、 まずはSTEP 1・2から始めてみてください。

Antaa Slide

医師・医学生のためのスライド共有

Antaa QA

医師同士の質問解決プラットフォーム

App StoreからダウンロードGoogle Play Storeからダウンロード

会社概要

Antaa, Inc. All rights reserved.

Follow us on Facebook
Follow us on Twitter