こんにちは。セキュリティの世界へようこそ。
「AIが止まったら、会社が止まる」。そんな時代が、すぐそこまで来ていますよね。今日は、新人のIT担当者や開発者の皆さんと一緒に、「AIシステムがもし壊れたらどうする?」という、ちょっと緊張感のある、でも非常に大切なテーマについてお話しします。
専門用語で「BIA(ビジネスインパクト分析)」なんて言いますが、難しく考える必要はありません。一緒に紐解いていきましょう。
—
1. 泥棒の視点で考える「家の鍵」の教訓
家を建てるとき、どこに一番高い鍵をかけますか? 玄関? それとも、裏口の小さな窓?
セキュリティを考えるとき、泥棒の視点に立つのが一番の近道です。泥棒は「ここを壊せば、一番高価なものが手に入る」あるいは「ここならバレずに逃げられる」という場所を狙います。
AIシステムも同じです。AIが止まって困る場所はどこでしょう?
- 顧客対応のAIチャットボットが止まったら、クレームの電話が鳴り止まない?
- 社内のデータ分析AIが止まったら、経営判断ができなくなって損害が出る?
これが「ビジネスインパクト分析(BIA)」の第一歩です。「どこがやられると一番痛いか」を把握すること。これがセキュリティの防衛線を引くための最初の一歩になります。
—
2. 復旧の二大指標:RTOとRPO
システムが止まったとき、私たちは「いつまでに直すか(RTO)」と「どこまでデータを戻せるか(RPO)」という2つの約束を決めなければなりません。
- RTO (Recovery Time Objective):復旧目標時間
- 「家が泥棒に入られた!何分以内に鍵を新しく取り替えて、生活を再開できるか?」という時間です。
- RPO (Recovery Point Objective):復旧目標時点
- 「被害に遭う直前、どこまでの状態に戻せれば許せるか?」というデータポイントです。
例えば、AIが学習に使っているデータ。1時間前のデータまで戻ればOKなのか、それとも1秒前のデータまで必要か。これを決めておかないと、いざという時に「データが消えた!」とパニックになってしまいます。
—
3. コードで守る:AIの可用性を支える仕組み
では、具体的に開発現場でできることは何でしょうか。例えば、AIのAPIを呼び出すプログラムを書くとき、サーバーが落ちていても慌てないような「保険」をかけておきましょう。
以下は、AIのAPIが反応しなかったときに備える、シンプルな「リトライ(再試行)」の考え方です。
// AI APIへのリクエストを試みる関数
async function callAiService(data) {
const maxRetries = 3; // 最大3回までやり直す(諦めない心)
for (let i = 0; i < maxRetries; i++) {
try {
// 実際にはここにAIのAPIエンドポイントが入ります
const response = await fetch('https://api.example-ai.com/v1/analyze', {
method: 'POST',
body: JSON.stringify(data)
});
if (response.ok) return await response.json();
throw new Error('AIが少し疲れているみたいです');
} catch (error) {
console.warn(`失敗しました。リトライ回数: ${i + 1}`);
// 指数関数的に待機時間を増やす(相手に負荷をかけない配慮)
await new Promise(resolve => setTimeout(resolve, 1000 * Math.pow(2, i)));
}
}
// 3回ダメなら、バックアップ処理へ
return { status: 'fallback', message: '今は通常のルールで回答します' };
}
このコードのポイントは、「AIが止まったら、そのまま停止するのではなく、別の安全な動き(フォールバック)に切り替える」という点です。これがシステムを止めないための「防犯対策」になります。
—
4. 最後に:セキュリティは「完璧」ではなく「継続」
セキュリティは、鍵を一度かけたら終わり、というものではありません。泥棒も常に新しい手口を考えていますからね。
- 定期的にテストする: 「もしAIが明日止まったら?」と想定して、実際にサーバーを止める訓練(カオスエンジニアリングと呼びます)をやってみてください。
- ログを残す: 何かあったとき、「いつ、誰が、どうなったか」がわかれば、犯人(原因)を特定するのはずっと楽になります。
「AIという魔法のツール」を使うとき、その魔法が解けたときのことを想像してみてください。それが、皆さんを「ただの開発者」から「信頼されるエンジニア」へと引き上げてくれるはずです。
不安に思う必要はありません。まずは今のプロジェクトで、「もしここが止まったら、どれくらい困る?」と、隣の人と話すことから始めてみてくださいね。一歩ずつ、着実に強くなっていきましょう!
コメント