AIは、ソフトウェアを数ヶ月ではなく数日でリリースすることを容易にしました。そのスピードは恩恵ですが、セキュリティがどこに存在し、リスクがどれだけ早くアプリケーションに侵入するかをも変えます。このAikidoマスタークラスでは、ビル・ハーマー氏(Supabase CISO)とイゴール・アンドリュシュチェンコ氏(Lovable CISO)が、コントロールを失わずに速度を維持するために必要なことについて語りました。この要約は、すべての開発者が今すぐ適用すべきポイントを捉えています。
セキュリティを最初から組み込む
Lovableは、アイデアからインターフェースへの迅速な移行を支援します。Supabaseは、バックエンドとデータベースの基盤を提供します。Billは、あらゆるツール選択よりも重要なリマインダーで話を始めました。セキュリティは設計上の決定であり、後期のパッチではないということです。
「セキュリティは設計によって提供されるものであり、後から追加されるものではありません。」 - Bill Harmer, CISO Supabase
基盤が安全であれば、その上のすべてが安定します。機密性の高いロジックとデータアクセスはバックエンドに保持し、独自の認証を構築するのではなく、安全なデフォルトに依存し、ビルドをブロック解除するためだけにブラウザに一時的な修正をプッシュすることは避けてください。
プラットフォームが提供するものを活用する
チームは、スタック内に既に存在する制御を再構築することがよくあります。SupabaseとLovableは、意図したとおりに有効にして使用するだけで、数ヶ月分の作業を削減できるガードレールを備えています。
「私たちは、チームが初日からエンタープライズグレードの制御を継承できるようにSupabaseを構築しています。」 - Bill Harmer, CISO Supabase
認証、パーミッション、ストレージポリシー、および暗号化は既に存在します。それらをよりリスクの高いものに置き換えるのではなく、設定し、尊重することが重要です。
行レベルセキュリティを省略しないでください
行レベルセキュリティ (RLS) はシンプルで強力ですが、見過ごされがちです。どの行をユーザーが見たり変更したりできるかを正確に決定します。これがない場合、影響範囲はテーブル全体に及びます。
「他に何も行わないとしても、行レベルセキュリティを有効にして設定してください。」 - Bill Harmer, CISO Supabase
LovableはデフォルトでRLSを有効にしますが、ポリシーの記述とテストは依然として必要です。RLSはシートベルトのように扱ってください。手遅れになって初めて、その欠如に気づくものです。
セキュリティは多少、作業を遅らせる可能性がありますが、それは問題ありません。
チェックを追加すると、何かが破損する可能性があります。それは正常なことです。Igorの指摘は、摩擦を避けることではなく、それを正しい作業を行っている兆候として捉えることでした。
「セキュリティは無料ではありません。その見返りは、安心感とインシデントの減少です。」 - Igor Andriushchenko, CISO Lovable
ルールがパスをブロックする場合、ルールを削除するのではなく、パスを修正してください。今の数時間は、後の数日間のクリーンアップに勝ります。真のスピードとは、自信を持ってデプロイすることです。
レイヤーで考える
アプリを保護する単一の機能はありません。優れたセキュリティとは、互いの見落としを補完し合う小さなコントロールの積み重ねです。
「レイヤーで考えましょう。すべてのレイヤーはフェイルクローズすべきです。」 - Igor Andriushchenko, CISO Lovable
MFAとロールベースのアクセスを使用します。機密性の高いロジックをエッジ関数にプッシュします。データベースでRLSを適用します。マージ前にシークレットと脆弱性をスキャンします。ランタイムトラフィックを監視し、レート制限を設定します。各レイヤーは、何かが漏れた際の影響を軽減します。
開発者はビルダーになりつつあります。
AIは職人技を変えました。価値はタイピングよりも、変化に耐えうるシステムを構築することにあります。
「ビルダーを雇いましょう。システムで問題を解決する人々です。ツールは二の次です。」 - Igor Andriushchenko, CISO Lovable
ビルダーは境界、データフロー、および障害点を理解しています。ブラウザに属するもの、エッジに残るもの、データベースが強制すべきことを知っています。その考え方により、潜在的なリスクが公のインシデントになるのを防ぎます。
AIにガードレールを与えましょう。
大規模言語モデルはコードを実行するために構築されています。何らかの制約が失敗の原因であると見なされる場合、モデルはそれを削除しようとします。それがセキュリティチェックである可能性もあります。
「AIは、指示しない限り、コードを実行するために制約を削除します。」 - Igor Andriushchenko, CISO Lovable
生成する前にルールを設定します。シークレットをブラウザから遠ざけます。エッジ関数に機密ロジックを処理させます。データベースにRLSを強制させます。AIには構築を支援させ、何が安全かを判断させないでください。
基本的な対策を講じてリリースする
Billからの最後の注意喚起は、リリース前にセキュアなデフォルト設定に依存し、基本事項を確認することでした。
「セキュアなデフォルト設定はすべてを容易にします。」 - Bill Harmer, CISO Supabase
RLSを有効にしてテストします。MFAを有効にします。リポジトリからシークレットを除外します。公開エンドポイントにレート制限とボット保護を追加します。ステージングと本番環境を分離します。ログとアラートを確認します。CIでスキャンを自動化します。これらの手順はシンプルであり、見出しになるような事態を防ぐものです。
まとめ
迅速であることは脆弱であることと同義ではありません。Lovableは迅速な構築を可能にし、Supabaseは安全な基盤を提供します。Aikidoは、コード、クラウド、ランタイム全体のリスクを発見・修正することでこれらを連携させ、見落としを心配することなく継続的にデプロイできるようにします。
今日すぐに実行できる実用的なリストが必要な場合は、Vibe Coderのセキュリティチェックリストから始めてください。
マスタークラスの全記録を見ると、CISOから直接話を聞くことができます。

