Aikido

速く構築し、安全に保つ:Supabaseのセキュア・バイ・デフォルト開発へのアプローチ

トルシャ・シャルマトルシャ・シャルマ
|
#

合気道のセキュリティマスタークラスシリーズの一環として、マッケンジー・ジャクソンがビル・ハーマー(Supabase CISO) とエティエンヌ・スタルマンス(Supabase セキュリティエンジニア)と対談。Supabaseがセキュリティを後付けではなく設計の一部として取り組む手法を探った。

行レベルセキュリティ(RLS)からAI支援コーディングのリスクまで、議論は高速化を維持しつつ安全性を確保するために必要な要素に焦点を当てた。

セキュリティはデータから始まる

Supabaseの理念は、データそのものから始まります。

「私たちは開発者の視点からSupabaseを構築しました。すべてはデータから始まります。一箇所で全てを管理できるのに、なぜ二次的なレイヤーを構築する必要があるのでしょうか」- Supabase CISO ビル・ハーマー

セキュリティロジックをサービス全体に分散させる代わりに、Supabaseはそれをデータが存在する場所の近くに配置します。制御が近いほど、問題が発生する可能性は低くなります。

第一原理に基づく構築

エティエンヌにとって、このアプローチは開発者がソフトウェア構築について考える方法を変える。

「セキュリティをデータに近づけて配置すると、根本原理から考え始めるようになります。その仕組みが理解できれば、開発を加速させつつ、その安全性を確信し続けられるのです」- エティエンヌ・スタルマンス、Supabase セキュリティエンジニア

データ所有権とアクセス権をアプリケーション設計の一部とすることで、チームは階層化された権限システムに伴う推測作業を排除できる。

匿名または認証済み

Supabaseはアクセス制御をシンプルに保ちます。ユーザーは匿名か認証済みかのいずれかであり、その中間はありません。

「データに関するすべての更新は、誰が、何を、いつ、なぜ行ったかを記録しなければならない。匿名ユーザーはアクセスが制限される。認証済みユーザーは必要なものだけを取得し、それ以上は一切取得しない。」 - ビル・ハーマー、Supabase CISO

エティエンヌはセッション中に、ライブのレシピ共有アプリを使ってこれを実演した。

公開レシピは誰でも閲覧可能でした。非公開レシピは所有者または特定の共有ユーザーのみが閲覧可能でした。

行レベルセキュリティによって支えられた数行のSQLが、モデル全体を処理した。

行レベルセキュリティは譲れない

RLSは、どのデータ行を誰が閲覧または変更できるかを定義します。これはPostgresで最も強力な機能の一つでありながら、最も見過ごされやすい機能でもあります。

「たったそれだけのことで、1枚の小切手が不足しただけで、すべてが露見してしまう。」 - エティエンヌ・スタルマンス、セキュリティエンジニア(Supabase)

エティエンヌは、AIが生成したポリシーが条件を一つ飛ばしたため、テーブル内の全レコードを誤って返した事例を紹介した。

修正はクエリへの単一の修正であり、たった1行で重大なセキュリティ上の欠陥を塞いだ。

ビルは簡潔にこうまとめた:

「セキュリティはデータに可能な限り近い位置に配置したい。距離が近ければ近いほど、エラーの発生余地は少なくなる」- ビル・ハーマー、Supabase CISO

pgTAPによるポリシーのテスト

アプリのリリース後もセキュリティ対策は終わりません。エティエンヌは、SupabaseがpgTAPを用いてデータベースポリシーを継続的にテストする方法を示しました。

「自分が安全だと信じているものが実際に安全であることを証明できる。こうしたテストがあなたの誠実さを保つのです」 - エティエンヌ・スタルマンス、セキュリティエンジニア(Supabase)

各テストは最も重要な点を確認します:

  • 公開ユーザーは公開データのみ閲覧できます
  • 認証済みユーザーは自分のものだけを見ることができます
  • ポリシーは毎回、期待される制限を強制します

この継続的な保証により、小さなミスがデータ漏洩に発展するのを防ぎます。

スケーラブルなセキュリティ

Supabaseは数百万のユーザーと大規模なワークロードにおいて、問題なくRLSを運用しています。

「あらゆる環境で、大規模運用でも問題なく稼働します。問題も言い訳も一切ありません。」- エティエンヌ・スタルマンス、セキュリティエンジニア(Supabase)

データベースレベルでセキュリティを強化することで、Supabaseはアプリケーションがどれほど複雑になってもロジックの一貫性を保ちます。

「とにかく動かして」という危険な指示

ビルはセッションを締めくくり、AIを使ってコードを生成する者すべてに警告を発した。

「動作するからといって、本番環境対応とは限らない」 - ビル・ハーマー、Supabase CISO
「AIに何かを機能させろと指示すると、あなたを守るセキュリティチェックそのものを削除してしまうかもしれない」 - Supabase CISO ビル・ハーマー

AIモデルは意図を理解しません。設定された目標を達成するためなら、RLSを無効化したり認証ロジックを削除したりすることさえ厭いません。

危険なのはAIを使うことではなく、指針なしに使うことだ。

「モデルは悪意を持っていません。ただ自分の仕事をこなしているだけです。しかし、あなたの意図は理解できません。それはあなたの仕事です。」 - Supabase CISO ビル・ハーマー

デフォルトで安全に構築する

セキュリティは障害ではない。それは、リリースするものを疑いながらではなく、より速く進む方法である。

Supabaseは、セキュリティがデータ層に組み込まれることで、後付けではなく開発プロセスそのものの一部となることを証明しています。

マスタークラスを全編視聴する。

4.7/5

今すぐソフトウェアを保護しましょう

無料で始める
CC不要
デモを予約する
データは共有されない - 読み取り専用アクセス - CC不要

今すぐ安全を確保しましょう

コード、クラウド、ランタイムを1つの中央システムでセキュアに。
脆弱性を迅速に発見し、自動的に修正。

クレジットカードは不要。