みなさん、こんにちは! 今回は、Bubble Forum でも話題に上がっていた セキュリティ監査ツール「Flusk Vault」についてです。
当然のことながら、ノーコード開発においてもセキュリティ対策は重要課題のひとつです。ノーコードツールを利用することで、開発サイクルの短縮やコスト削減という大きなメリットを得る一方、専門的な知識を必要とせずにアプリを開発できてしまうということは、もしかすると裏を返せばデメリットにさえなり得るかもしれません。
では、どうしたらノーコードのプラットフォームにおいて、「機密性 / Confidentiality」「完全性 / Integrity」「可用性 / Availability」(CIAとも呼ばれる)要素を維持し、情報セキュリティに対して効果的な対策を実施することができるのでしょうか。
今回は、そんなセキュリティ対策のアイデアのひとつとして、Bubble 専用のセキュリティ監査ツール「Flusk Vault」の導入についてご紹介したいと思います。
1. Flusk とは
Flusk は、Bubble ビジネスをより安全にすることにフォーカスしている会社で、セキュリティ監査や侵入テスト、またそれらを自動化したツールを提供しています。フランスでノーコード教育のリーダーと言われている Ottho社 の CTO である Victor Nihoul 氏と、Certifio社の共同創業者でトップクラスバブラーである Wesley Wasielewski 氏によって創設されました。
Ottho社が提供している Bubble コーチングに関して言えば、Bubble の創設者である Emmanuel 氏が「"Ce que fait Ottho en France, d'un point de vue qualité est sans doute presque mieux que ce qu'on a fait nous-mêmes en terme de formation"(フランスでOtthoがやっていることは、品質という点では、おそらく私たち自身が行ってきたトレーニングよりも優れていると思う。)」とお墨付きを与えています。
現在(2023/02時点)Flusk で提供されているサービスは主に、24時間アプリが正常に動作しているかの監視や技術的なサポートを行う「Flusk Assist」と、セキュリティ監査をメインとした「Flusk Penetrate」ですが、今回は後者である「Flusk Penetrate」が自動化され進化した新サービスである「Flusk Vault」についてフォーカスしていきます。
なお Flusk Vault は現在はまだアルファ版のテスト期間中となっており、オープンベータ版の公開は3月の予定となっています。ベータ版へのアクセスは waitlist へ参加するか、ニュースレター購読により参加できるとのことですので、もしご興味あります方は以下のリンクをご参照ください。
https://app.flusk.eu/beta-waitlistapp.flusk.eu
2. Flusk Vault について
前述した通り、Flusk Vault は 現在提供されている Flusk Penetrate が進化して、セキュリティ監査を自動で行えるようにツール化したサービスとなっています。
Flusk Vaultの価格モデルは、アプリケーションごとのライセンスとなり、アプリケーションごとに60ドルから、企業規模に応じて600ドルまでを予定しているそう。また、ライセンスはサブスクリプションではなく1年間有効で自動的に更新されることはないとのこと。
2.1. セキュリティの監査項目
Flusk Vault で監査できるのは、
- 有料コンテンツ/製品へのアクセスチェック
- 役割管理の侵害
- サードパーティ サービスへのアクセス
- 保護されたアクセス
- 禁止行為
- 機密データの漏洩
といった項目ですが、より具体的に表現するならば、Flusk Vault は以下のようなポイントのチェックを実行することで監査を行います。
- プライバシールールチェック
- Swaggerファイル/Bubbleエディターの公開チェック
- 不正なリダイレクトやページアクセス保護のチェック
- Collaboratorチェック
- URLパラメータのブルートフォース攻撃チェック
- XHRリクエストのクローラー / 検索の設定ミスチェック
- 機密性の高いURLパラメータ、ヘッダ、API内のURLチェック
2.2. Flusk Vault の仕組み
Flusk Vault を使うためには、セキュリティ監査を行いたい Bubble アプリに Flusk をインストールして監査テストを実行します。監査テストは基本的にアプリが公開しているデータに対してスクレイピングを行うことでフロントエンドのデータをJSONオブジェクトとして取得し、その後 Flusk 内部のアルゴリズムへと引き渡して実行します。
ただし、インストールする際には Collaboration タブで監査テスト専用の Flusk アカウントを Admin として登録する必要があります。この権限付与に関しての理由や、上記で述べたような Flusk がどのように Bubble アプリに対してアプローチするのかを解説している記事が公開されていますので、詳細については以下のリンクをご参考ください。
2.3. Flusk Vault のセットアップ
では、実際に Flusk Vault をセットアップする手順をご紹介します。
2.3.1. インストール
まずは Flusk Vault をインストールするため、Flusk にサインアップしてセキュリティ監査を行いたい Bubble アプリを登録します。(※現在はアルファ版の使用はクローズされているため、次回の登録は3月予定のオープンベータ版となります。)
アプリの登録が完了したら、「Set up Flusk Vault」ボタンからセットアップを開始します。
ユーザーデータへの権限有無や利用規約への同意を設定し、
Flusk アカウントを Bubble に Inviteします。
プランを選択すれば、インストールが実行され準備完了です。
2.2.2. 機密性レベルの設定
インストールが完了したら、次は「Actions」メニューからアプリのページとデータベースの機密性レベルを設定していきます。
機密性レベルは、データベースであれば、各Data type の Data field が、どの程度の機密性を保持するものであるかを指定していきます。デフォルトは Flusk Vault AI によって判定されていますが、ここで正確なレベルを登録することで監査の精度を上げることができます。
参考までに下の図はアルファ版においての設定画面です。一般的には「NONE」が誰でも参照できるレベル、「MEDIAM」でユーザーレベル、「HIGH」が管理者レベルの機密性として設定するイメージですが、こちらは今後「Sensitive」もしくは「Not sensitive」で設定できるようになります。機密性レベルの設定は、監査テストの結果に直接影響するため、この設定は正確に行うことが大切です。
機密性レベルの設定が完了すれば、より正確な結果を得るために提案されたアクションの警告がクリアされます。
設定はこれだけ。とてもシンプルです。
2.4. 監査テスト
Flusk Vault のセットアップができたら監査テストを実施します。
2.4.1. テストの実施
セキュリティ監査のテストは、ダッシュボードで「Run a New Test」にある「Perform a complate test」ボタンから実行します。実行後はダッシュボード上の「Security Score」に監査結果が表示されます。
「Security Score」は、緑色の「Resolved」、黄色の「Medium Sensitivity」、赤色の「High Sensitivity」、灰色の「Unknown Sensitivity」に分類されて表示されます。
上図では、issues が全部で 33件あり、その内の 14件が Resolved、Medium Sensitivity が 12件、High Sensitivity が 7件あるので、 解決すべき課題が残り 19件ある状態です。
2.4.2. 課題を調査して解決
テストを実施して課題が確認できたら、「Issues」メニューから課題を選択して内容を確認していきます。
例えば、上図は「Privacy rules definition / プライバシールールの定義」についての Issue です。Contact という Data type の設定において課題があることが分かりますので、Bubble エディタでプライバシールールの設定を確認して修正を行います。
Bubble で修正を行ってから、再テストを実行すると Issue が解決されたことが確認できます。
この例では「Privacy rules definition / プライバシールールの定義」を取り上げましたが、この他にも以下のような Issue を取得することができます。
- Page access protection / ページアクセス保護
- Clear data in login workflow / ログインワークフローにおけるクリアデータ
- Temporary password vulnerability / 一時的なパスワードの脆弱性
- Public Bubble editor / 公開 Bubble エディタ
- Unapproved collaborator / 未承認の共同作業者
- Swagger file / Swagger ファイル
- Password policy / パスワードポリシー
- API Workflow protection / API ワークフローの保護
- Public sensitibe fields / 公開センシティブフィールド
- Bubble API Token / Bubble API トークン
- Public sensitive URL in API call / API コールの公開センシティブ URL
- Public sensitibe parameter in API call / APIコールで公開されるセンシティブなパラメータ
なお、Wesley 氏によると現時点ではチェックしたいすべてのセキュリティポイントの約20%程度とも言えるそうですが、Flusk Vault の更新は毎週行われ、随時新しいセキュリティチェックポイントが追加されていくそうです。詳細はロードマップをご参照いただければと思います!
3. まとめ
Flusk Vault の強みは、やはり監査テストの自動化です。セットアップさえ行えば、後はダッシュボードからテストを実施するだけなので、いつでも手軽にセキュリティ監査を実施することができます。
また、仕様変更にも強く、例えば Data type や field が新しく追加されたとしても、テストを実行したタイミングで定義の更新があったことや、機密性レベルのレビューが必要であることを明確に通知してくれるため、たとえ複数人で開発しているような場合でも、個々の開発者に依存せずに仕様変更を確認することができます。Bubble において、複数人で開発を進めるには、お互いに機能や仕様に対する認識のすり合わせが欠かせませんが、チェック漏れといった人的ミスをあらかじめ防止することができそうですね!
また、サービスインへの最後の壁ともいえるセキュリティ対策を強化しつつも自動化できるのは、プロジェクトの規模に関わらず、ビジネススタートまでの期間短縮にも効果的です。
ベータ版公開まであと少し。とても楽しみですね!もしご興味あります方がいらっしゃれば、waitlist に参加してみるのもいいかもしれません。
今回は、Bubble のセキュリティ監査を自動化してくれるツール「Flusk Vault」についてご紹介しました!では、次回もどうぞお楽しみに~!