🤖

botterのためのAI活用における注意点

2025/02/17に公開

はじめに

最近のbot開発ではAIを活用することが一般的になりつつあると思います。
私自身、すでに8割程度のコードはAIが生成したものを利用しています。

しかし、暗号資産bot開発におけるAI活用は便利な一方で注意すべき点もあります。
気づかぬうちに不具合や脆弱性を混入させ資金を失うことは避けたいところです。

そこで、今回はAIを活用したbot開発において注意すべき点について書いてみます。

注意すべき点と言っても色々ありますが、特に自身の重要な情報を守る方法についてです。
bot開発においては自身のエッジ以外にも秘匿しなければならない情報[1]は数多く存在します。

以下は一例です。

  • ウォレットのシードフレーズ/秘密鍵
  • 各種API key/secret

.envに生の秘密鍵を書いてコーディングをしていると知らぬうちにAIの学習に利用されてしまうかもしれません。
そもそも、AIに関係なく生情報としてこれらのデータを扱うことはリスクが大きいです。

この機会にご自身のbot運用を見直してみてもよいかもしれません。

AIに重要なデータを学習させない

まずは重要なデータはAIに学習させない、サーバにも送信しないというのは最低限気をつけておいて損はないでしょう。

以下は、AIを活用した開発で最近人気となっているcursorというエディタについて記載します。

プライバシーモードを有効にしておく

cursorの設定にプライバシーモードというものがあります。
cursor社のプライバシーポリシーによればプライバシーモードを有効にしておくことでcursor及び第三者(以下、サービス提供者)によって自身のコードが保存、トレーニングされることがないと記載されています。
とりあえず有効にしておきましょう。

具体的な手順としては、cursor右上の設定を押して開いた画面を少しスクロールするとprivacy modeの設定があります。
画像の通りenabledになっていることを確認しましょう。

.cursorignoreを設定する(.gitignoreでも可)

前節でプライバシーモードを有効化した場合であっても、まだサービス提供者はコードを確認可能です。
cursorのSecurityページを見るとプライバシーモードの場合、確かにstore code dataはされなくなるようですが、引き続きsees code dataという記載があります。
サーバ上にデータは永続化されないが一時的に置かれたりはするようですね。

サーバに送信したくないファイルは.cursorignoreで指定しておきます。
もっとも、すでに.gitignoreで指定しているファイルはデフォルトで無視してもらえるようなのでわざわざ.cursorignoreに記述する必要はありません。

.cursorignoreの書き方も基本的には.gitignoreと同じです。必要に応じ以下を参照してください。
https://docs.cursor.com/context/ignore-files

ignoreを設定してもデータが送信される場合があることに注意する

.cursorignore(.gitignore)を設定したので安全....なわけでは全然なく、ignoreを設定した場合でもデータはサーバに送信されることがあるようです。
SecurityページのCodebase Indexingには以下の記述があります。

While a ‘.cursorignore’ file can prevent files from being indexed, those files may still be included in AI requests, such as if you recently viewed a file and then ask a question in the chat.

基本的には無視するけど、直近でファイル開いたりした場合には送られちゃうかもね〜、ということのようですね。
cursorはこれを改善するため、確実にデータが送られないようにする.cursorbanという機能を開発中のようですが、現在ではまだ利用できません。

よって、ここまでの設定はおまじない程度としておいて実際には以降で説明する暗号化が必須だと思います[2]

大事な情報は暗号化して利用する

ここまでcursorの設定を見てきましたが、ここからが本題です。

前節で、cursor側の設定では全く安心できない事がわかったかと思います。
また、そもそもAIの学習に利用されずとも、秘密鍵やsecretを生データで扱うことは極めて危険です。

よってこれらの情報を扱う際には最低限、暗号化して利用すべきでしょう。

以下には比較的利用が簡単な暗号化ツールを2つ紹介します。

紹介する基準は以下としました。

  • OSSであること[3]
    • セキュリティに関するツールである以上、その実装は確認できる状態になっているべきと考えたため
  • githubのstar数が一定あること
    • star数でなにか決まるわけではないですが一定利用者がいるほうが安心できると考えられます
  • 自身で利用したことがあること
    • 最低限、自身で利用したことのあるものを記載しています

sops

https://github.com/getsops/sops
sopsは元々firefoxを開発しているmozillaのprojectとして立ち上がったOSSです。
現在はCNCFに管理が移っているようです。

sopsのメリット/デメリット

メリット

  • .envやjsonなどファイル形式を問わず暗号化/復号化可能
  • AWS/Google CloudのKMSとの連携

デメリット

  • 特には思いつきません、強いて言えば後述するdotenvxより少しとっつきづらいかも..

インストール

macの場合brewでインストール可能です

brew install sops

windows(wsl)/linuxの場合は以下を参照してください
https://github.com/getsops/sops/releases

使い方

使い方についても簡単に紹介しようかと思いましたが面倒になってきたので適宜ドキュメント参照してください...w

公式Docは以下です。
https://getsops.io/docs/

日本語だと以下の記事がわかりやすかったです。
https://zenn.dev/xbit/articles/85009982ca8b22

dotenvx

https://github.com/dotenvx/dotenvx
dotenv開発者のmotが開発。最初のversionが2023年にリリースされた比較的新しいツールです。

dotenvxのメリット/デメリット

メリット

  • シンプルな機能であるため扱いやすい

デメリット

  • .envファイルしか取り扱えない
  • AWS/Google Cloud KMSと統合されていないため別途複合用の鍵ファイルの取り扱いを考える必要がある

インストール

macの場合brewでインストール可能です

brew install dotenvx/brew/dotenvx

使い方

公式Docは以下です。
https://dotenvx.com/docs/

日本語だと以下の記事がわかりやすかったです。
https://zenn.dev/moozaru/articles/edb09434f0680b

おわりに

AIを活用することでプログラミングが簡単になる一方で、AI x 暗号資産で儲かるといった軽率な言説も見られるため、よくわからずにコードを実行してしまっているケースも多いのではと思っています。

この記事がご自身の安全意識を高めるための一助になれば幸いです。

Xもやっているので良かったらフォローしてください🤗
https://x.com/chamafoobar

脚注
  1. エッジは公開していただいても大丈夫です。 ↩︎

  2. そもそもAIに関係なく暗号化すべきです。 ↩︎

  3. ここではソースコードが公開されている、程度の意味で記述しています。OSSライセンス警察の方は右へ回れでお願いします。 ↩︎

Discussion