はじめに
案件(特に業務委託や受託開発)でAIを利用する場合、個人の趣味とは比較にならないほど厳しい「情報管理」が求められます。
クライアントに「このエンジニアに任せて大丈夫だ」と思ってもらうための、具体的で実践的なセキュリティ対策を3つのレイヤーで整理しました。
1. インフラ・規約レイヤー(「学習」を防ぐ)
AIモデルを提供している会社が、「入力したデータを勝手にAIの再学習に使わないか」を100%保証する環境を作ります。
API経由での利用:
ChatGPTのブラウザ版(無料/Plus)は設定をオフにしない限り学習されますが、OpenAIやClaudeの「API」経由で入力したデータは、原則として再学習に使用されないと規約で定められています。
Azure OpenAI / AWS Bedrock / Google Vertex AI:
企業の案件では、これら大手クラウド経由のAIを使うのが最も安全です。「データは顧客の専用領域から出ない」ことが契約上保証されています。
オプトアウト設定:
CursorやGitHub Copilotなどを使う際は、設定画面で「Don't training on my code(コードを学習に使わない)」という項目に必ずチェックを入れます。
2. データ入力レイヤー(「生データ」を送らない)
そもそも、「漏洩して困る情報はAIに送らない」という運用ルールを徹底します。
マスキング(匿名化):
顧客の個人名、住所、電話番号、社外秘のプロジェクト名などは、User_A や Company_X のように適当な代名詞に置換してからプロンプトに投げます。
ソースコードの「環境変数」:
.env に書くような APIキー、DBパスワード、秘密鍵 が含まれたコードをそのままAIに貼り付けないよう、コピペ前に必ず確認します。
3. アウトプット(成果物)レイヤー(「嘘」と「脆弱性」を防ぐ)
AIが生成したコードをそのまま納品するのは、セキュリティ上の大きなリスクです。
AIパッケージ・タイポスクワッティングへの警戒:
AIが「存在しない便利なライブラリ」を提案し、それを攻撃者が先回りして悪意あるコードとして公開しているケースがあります。「AIが提案したnpmパッケージが実在し、信頼できるか」の確認は必須です。
脆弱性のチェック:
AIは動くコードを書きますが、SQLインジェクションやクロスサイトスクリプティング(XSS)を考慮していないことがあります。納品前に必ずエンジニア自身の目でセキュリティレビューを行います。
会社側もあらかじめ、自分達なりの「AI利用に関する契約(NDA)」を作成して、フリーランサー等にセキュリティ対策を義務づけるとかするといいのかなと思いました。