AI で監査ログの不審な動きを確認する(ゼロデータ保持)
エージェントが 1 日分の管理操作のイベントを読み、不審な一連の操作を、イベント ID と推奨される対応とともに指摘します。
- 読み取り専用の接続
- ゼロデータ保持
- 予算の上限
実際の実行を見る
2026年10月7日 の実際の実行を再生しています。モデル: openai/gpt-6-luna。
- 待機中予算 $0.03 を確保
- MicroVMmicroVM ready
- MicroVMworker started · shell off · web off
- 接続ops GET /audit-log
- 結果
ops GET → 200 - MicroVMmicroVM destroyed
- 成功モデル呼び出し 2 回、トークン 3,902記録された出力(英語)
Verdict: High-severity suspicious activity: [email protected]’s account had a linked off-hours access and privilege/data-access sequence from an IP not seen in its earlier events.
Severity Event IDs Why unusual Recommended response high ev013–ev020 Three failed logins were followed by a successful login using a recovery code at 23:14 UTC, outside the stated 08:00–19:00 UTC business hours. From the same IP, the account then granted admin access to an external address, exported 48,210 rows, created an API key, and that address logged in. Contain the account and review its sessions, recovery-code use, role change, export, and API key; revoke access or credentials as appropriate. No finding for the rest of the log.
- ワーカーを破棄$0.003879 を請求、$0.026121 を解放
この実行ではゼロデータ保持が有効でした。
自分で実行する
リクエスト全体が入力された状態で、サンプルをプレイグラウンドで開きます。実行はご自身のアカウントで、表示された予算の範囲内で、同じ読み取り専用のサンプルシステムに対して行われます。
このサンプルの予算: $0.03
仕組み
監査ログは機密性が高いため、この実行ではゼロデータ保持と読み取り専用の接続を使います。エージェントは該当するイベント ID を示し、その一連の操作がなぜ普通ではないのか(時間外、多要素認証の省略、権限の変更、一括エクスポート)を説明しますが、特定の個人を非難することはしません。
エージェントにできること、できないこと
権限はリクエストの一部です。ここに挙げていないものは、実行では利用できません。
| 設定 | 許可 |
|---|---|
| 接続 | ops: GET のみ、ephemer.al/api/samples/ops-api へ |
| Web | オフ |
| シェル | オフ |
| ファイル | なし |
| ゼロデータ保持 | オン: 記録は残らず、出力は 1 度だけ返されます |
| 予算 | $0.03、厳格な上限 |
| タイムアウト | 60 秒 |
認証情報がマシンに入ることはありません。ブローカーが各呼び出しに認証情報を付与し、上記のメソッドだけを通します。
コード
サンプルが送信する正確なリクエストです。EPHEMERAL_API_KEY には、組織のメンバーキーを設定してください。
curl -X POST $EPHEMERAL_URL/v1/runs \
-H "Authorization: Bearer $EPHEMERAL_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d @request.jsonリクエスト本文の全体 request.json
同じ本文を、ファイルをインラインにした形で示します。
{
"prompt": "Review the audit log from GET /audit-log on the ops connection and the business hours it states. Reply in Markdown, at most 200 words: a one-line verdict, then a table of suspicious findings with severity (high, medium, low), the event IDs, why they are unusual, and a recommended response. Treat patterns, not single events, as findings: an off-hours login alone is low. Say 'no finding' for the rest of the log in one line. Describe behavior of accounts, never accuse a person. Use only what the data returns and never guess; if a call fails or a field is missing, say so.",
"connections": {
"ops": {
"type": "http",
"url": "https://ephemer.al/api/samples/ops-api",
"auth": {
"type": "bearer",
"token": "sample_read_key"
},
"allowed_methods": [
"GET"
],
"instructions": "GET /audit-log returns the date, a note on business hours, and events with id, at (UTC), actor, action, target, ip, result and sometimes reason, mfa, rows or role."
}
},
"shell": false,
"timeout_seconds": 60,
"max_cost_micros": 30000,
"zero_data_retention": true
}