安全性についてに戻る

セキュリティの取り組み

Beflux は、人と AI エージェントの少人数チームで複数のプロダクトを作って運営しています。人が気をつけることに頼るのではなく、危ない状態をそもそも作れなくすることを基本にしています。ここでは実際に動いている仕組みを書きます。

何を受け取り、何を受け取らないかは安全性についてを参照してください。

AI の使い方

外部の人が書いた文章(記事やレビューなど)を AI に読ませる処理では、次の 3 つを守っています。

  1. 権限を実行環境から外す。 「これはしないで」と指示文でお願いするのではなく、そもそもできない状態で動かします
  2. データと指示を分ける。 読ませる文章は明確に囲い、その中に指示が書かれていても指示として扱いません
  3. 生成物を機械的に検証してから出す。 形式・語彙・リンク先などを確認してから公開・保存します

秘密の情報を平文で置かない

  • トークン・API キー・秘密鍵は、平文の値をどこにも残しません。設定ファイルに書くのは参照だけで、使うときに保管庫から都度取り込みます

自動化に強い権限を持たせない

  • 自動処理(CI)に渡すのは、読み取り専用か、対象を絞った資格情報だけです
  • 対象を絞れない操作は自動化せず、必要なときに手元から実行します
  • クラウドへの接続には鍵ファイルを作らず、対象を絞って発行する一時的な資格情報を使います
  • 自動処理の権限は既定を「読み取りのみ」にし、書き込みが必要なものにだけ個別に足します

危ない変更をマージできなくする

  • コードの変更はすべてレビューを通します。反映の前に自動チェックが走り、秘密の情報がコードやログに混ざっているような、通してはいけない変更を見つけた場合は反映できません

依存しているパッケージ

  • バージョンを固定したうえで、公開されたばかりの版はすぐには取り込まず、一定期間おいてから上げます(乗っ取られた版をそのまま踏まないため)
  • 既知の脆弱性は自動で検知し、修正版が出ているものから順に上げます

定期的な棚卸し

  • このサイトを含むリポジトリについて、攻撃されうる経路を定期的に、機械的に洗い出しています(認証・機密の露出・依存・配信物・入力の検証・DB の権限・CI/CD・ホスティングなど 14 の観点)
  • 1 つのリポジトリで得た学びは、次の棚卸しから全リポジトリに反映されます
  • 棚卸しでは、その回で見ていない範囲(リポジトリの外にあるものなど)も併せて残します。見た範囲と見ていない範囲を分けないと、問題なしという結果自体が信用できなくなるためです
  • 見つかった問題は直すだけで終わらせず、「次は自動で気づけるようにする」ところまでを 1 セットにしています

ここに書いていないこと

このページは方針と仕組みの話です。具体的な構成やアクセス経路の詳細は、それ自体が攻撃の手がかりになるため書いていません。 確認が必要な場合はお問い合わせください。