セキュリティの取り組み
Beflux は、人と AI エージェントの少人数チームで複数のプロダクトを作って運営しています。人が気をつけることに頼るのではなく、危ない状態をそもそも作れなくすることを基本にしています。ここでは実際に動いている仕組みを書きます。
何を受け取り、何を受け取らないかは安全性についてを参照してください。
AI の使い方
外部の人が書いた文章(記事やレビューなど)を AI に読ませる処理では、次の 3 つを守っています。
- 権限を実行環境から外す。 「これはしないで」と指示文でお願いするのではなく、そもそもできない状態で動かします
- データと指示を分ける。 読ませる文章は明確に囲い、その中に指示が書かれていても指示として扱いません
- 生成物を機械的に検証してから出す。 形式・語彙・リンク先などを確認してから公開・保存します
秘密の情報を平文で置かない
- トークン・API キー・秘密鍵は、平文の値をどこにも残しません。設定ファイルに書くのは参照だけで、使うときに保管庫から都度取り込みます
自動化に強い権限を持たせない
- 自動処理(CI)に渡すのは、読み取り専用か、対象を絞った資格情報だけです
- 対象を絞れない操作は自動化せず、必要なときに手元から実行します
- クラウドへの接続には鍵ファイルを作らず、対象を絞って発行する一時的な資格情報を使います
- 自動処理の権限は既定を「読み取りのみ」にし、書き込みが必要なものにだけ個別に足します
危ない変更をマージできなくする
- コードの変更はすべてレビューを通します。反映の前に自動チェックが走り、秘密の情報がコードやログに混ざっているような、通してはいけない変更を見つけた場合は反映できません
依存しているパッケージ
- バージョンを固定したうえで、公開されたばかりの版はすぐには取り込まず、一定期間おいてから上げます(乗っ取られた版をそのまま踏まないため)
- 既知の脆弱性は自動で検知し、修正版が出ているものから順に上げます
定期的な棚卸し
- このサイトを含むリポジトリについて、攻撃されうる経路を定期的に、機械的に洗い出しています(認証・機密の露出・依存・配信物・入力の検証・DB の権限・CI/CD・ホスティングなど 14 の観点)
- 1 つのリポジトリで得た学びは、次の棚卸しから全リポジトリに反映されます
- 棚卸しでは、その回で見ていない範囲(リポジトリの外にあるものなど)も併せて残します。見た範囲と見ていない範囲を分けないと、問題なしという結果自体が信用できなくなるためです
- 見つかった問題は直すだけで終わらせず、「次は自動で気づけるようにする」ところまでを 1 セットにしています
ここに書いていないこと
このページは方針と仕組みの話です。具体的な構成やアクセス経路の詳細は、それ自体が攻撃の手がかりになるため書いていません。 確認が必要な場合はお問い合わせください。