環境変数の OPENAI_API_KEY はマルウェアにも使われる:NIK-C2 の生成 AI 機能
マルウェア「NIK-C2」は、感染端末の環境変数に OpenAI の API キーがあれば勝手に使い、攻撃者の生成 AI 利用を被害者の課金で賄う。常時読める場所に長期の API キーを置かないことと、利用上限の設定が対策になる。
何が起きたか
- Cisco Talos の分析(10 月 29 日)によると、Windows 向けマルウェア NIK-C2 の
ai_generate命令は、攻撃者の指示文を感染端末の IP から Chat Completions API へ送り、応答を C2 へ返す。 - 攻撃者がキーを渡さない場合は
OPENAI_API_KEY環境変数を使う設計で、OpenAI 側にも被害者のキーによる利用として記録される。 - ほかにブラウザーのパスワード・Cookie、暗号資産ウォレット、Discord トークンなどの窃取、遠隔操作、画面ロック型ランサムウェアも備える。
対策
- ユーザー全体の環境変数に API キーを置かない:
setxやシェルの起動ファイル(.bashrc/.zshrc)で恒常的に設定すると、そのユーザーで動く全プロセスから読める。必要なコマンドを実行するときだけ注入する(1Password のop run、dotenvx、valsなど。シークレットを実行時に注入するツールの選び方)。 - 利用上限と通知を設定する: プロバイダーの管理画面でプロジェクトごとの月額上限や使用量アラートを設定し、勝手に使われても被害額に天井を作る。
- キーをプロジェクトごとに分ける: 1 本の万能キーを全端末で使い回さない。不審な使用量が出たときに、どの端末のキーかすぐ分かり、それだけを失効できる(AI エージェントの API キーを 10 分で棚卸しする:権限・期限・共有の 3 点を見る)。
- 使用量のログを見る: 自分が使っていない時間帯・モデル(例: 普段使わない gpt-4)の利用や、見覚えのない送信元 IP があれば感染を疑う。
注意点
- 感染した端末ではキーを移しても盗まれうる。感染が分かったら、安全な端末からキーを失効・再発行する(インフォスティーラーに AI ツールと開発環境の認証情報を抜かれる前提で備える(Aokigahara))。
- Talos は実際の指示内容や利用事例は示しておらず、稼働中の C2 の観測から「概念実証にとどまらない」と中程度の確度で評価している。