はじめに
GMO Flatt Security は2025年3月5日「認可制御不備を検知できる自動診断機能」をリリースしました。
「Shisho Cloud byGMO」の認可制御診断でできること
ロールベースアクセス制御も、マルチテナントアプリケーションの認可制御も、Shisho Cloudで自動診断
認可制御診断のセットアップはShisho AIで一瞬
- Shisho AIがアプリケーションの仕様を把握し、権限ごとに可能な操作を一覧化した権限マトリクスを自動で作成
認可制御不備にすぐ気付ける
- 見つかった認可制御不備がダッシュボードで一目で分かる
- 新規アラートのSlack通知も可能
開発サイクルに合わせた頻度で継続的に診断
- アジャイル開発で随時追加・変更されていく機能にも、正しく認可制御を実装できているかを、機能リリースの度に洗い出し可能
従来の認可制御診断と新世代の認可制御診断
従来の認可制御診断はセキュリティエンジニアによる仕様理解が必要で、高コストかつ網羅的な診断が難しいという課題がありました。
GMO Flatt Security は Shisho AIを活用し、人間を介さず自動化されたプロセスとして認可制御診断を提供することにより、これまでより安価にかつ継続的に「認可制御不備」の対策を実施可能になります。
今回は、本機能の開発を担当する梅内にインタビューを実施。開発者の声を紹介することで、「認可制御診断機能」リリースの背景を改めてお伝えします。
開発者プロフィール
梅内翼
GMO Flatt Security ソフトウェアエンジニア。 Web アプリケーションや Firebase 等のセキュリティ診断、セキュリティ診断プラットフォームの開発、漫画・ドラマ『トリリオンゲーム』の技術監修等に携わった後、ソフトウェアエンジニアとして Shisho Cloud の Web アプリケーションセキュリティ診断機能の開発に従事。
セキュリティ・キャンプ全国大会2019 修了。著書に『詳解セキュリティコンテスト CTFで学ぶ脆弱性攻略の技術』(マイナビ出版) がある。 趣味は将棋、ウェイトトレーニング、書店巡り。
「認可制御不備」とは
—— Web アプリケーションにおける「認可制御不備」とはどんな問題ですか。
梅内:「認可制御不備」とは、本来アクセスや操作が許可されていないユーザーが特定の機能やデータにアクセスできてしまう問題を指します。
たとえば「一般ユーザーなのに管理者権限のユーザーにしかアクセスできないはずの API にアクセスできてしまう」「あるテナントのユーザーが異なるテナント内の情報に不正にアクセスできてしまう」などが典型例です。
現代の Web アプリケーションにおける最大のリスク「認可制御不備」
梅内:世界中のセキュリティ従事者に参照されるグローバルな調査リポート OWASP Top 10 2021 でも「認可制御不備」は第1位に挙げられ、大規模なインシデントを引き起こすリスクが極めて高いと位置づけられています。
また、GMO Flatt Security でもこれまで数多くの Web アプリケーションを診断してきましたが、発見された脆弱性のうち、リスクの高さにおいて特に重大だったものの多くがこの認可制御不備に起因するものでした。
参考 : Flatt Top 10プレスリリース prtimes.jp
参考 : OWASP Top 10 https://owasp.org/www-project-top-ten/
「認可制御不備」の重要性は増大傾向
梅内:「認可制御不備」は、ここ近年で重要性が高まっている脆弱性カテゴリです。たとえば、2017年度版の OWASP Top 10 において「認可制御不備」は第5位でしたが、2021年版では第1位となっています。また、GMO Flatt Security の診断でも、たとえば「URL を直接指定することで管理者画面を誰でも閲覧できる」、「操作対象のリソースの ID を変えるだけで本来は権限を持たないリソースを操作できる」など、さまざまな方法で認可制御が不正に回避されるケースが、今日でもしばしば発見されています。
その反面 SQL インジェクションをはじめとする典型的な脆弱性の多くは、今日では「Secure by Default」の原則に沿って設計されたアプリケーション開発のためのフレームワークやライブラリが台頭しているため、それらを利用していれば典型的な脆弱性は生まれにくいという状況になりつつあります。
それらの典型的な脆弱性と異なり、認可制御は各アプリケーション特有のビジネス要件やロール設計が密接に絡むため、その制御を行うロジック部分は独自実装されることがほとんどです。アプリケーション特有の要素が大きいからこそフレームワーク等の画一的な枠組みの中で撲滅することは難しく、独自実装における実装ミスや権限チェックの抜け漏れによる脆弱性が生まれやすいのです。
認可制御不備による重大なインシデント報告事例も
梅内:近年では、認可制御不備が原因で大量の機密情報が漏えいしたり、結果としてサービスの信頼が失墜したりするといったインシデントが国内外問わず多数報告されています。
例えば、toC サービスでは認可制御不備により、写真・動画の共有機能において本来見えてはいけない他人のデータが表示されるというインシデントが発生しています。このような問題が起きるとサービスの信用失墜や、ひいてはサービスの継続にも影響を及ぼします。
参考: LINE、アルバム機能で他人の画像が表示 30日午前に解消見込み、問われる利用者対応 - 産経ニュース
また、toB サービス (法人向け SaaS) で「ある企業のユーザーが、他社のデータを参照・編集できてしまう」といったインシデントが起きてしまった場合、顧客情報や売上情報などの機密データの流出や改竄に直結します。社会的信用の失墜はもちろん、契約の打ち切りや賠償リスクなどビジネス上の影響も甚大になると考えられます。
GMO Flatt Security における「認可制御不備」に対する取り組み
—— GMO Flatt Security では、これまで認可制御不備に対してどのような取り組みをしてきたのでしょうか?
梅内:前提として、認可制御不備をチェックするにはアプリケーションの仕様を理解することが不可欠です。GMO Flatt Security ではこれまで、「高度手動診断サービス」の一環で、セキュリティエンジニアがアプリケーションの仕様を紐解き、認可制御の診断を行ってきました。アプリケーションの仕様を理解するにあたっては、アプリケーションマニュアルや仕様書を読み込むとともに、そのアプリケーションを開発しているエンジニアの方などと密にコミュニケーションを取り合うこともしてきました。アプリケーションの仕様を深く理解しているからこそ、認可ロジックの不備や仕様と実装の矛盾などに気づくことができるのです。
GMO Flatt Security が認可制御の自動診断に注力する理由
—— 今回「認可制御不備を検知できる自動診断機能」のリリースを決定したということは、手動診断では解決できない課題があったのでしょうか?
梅内:これまで GMO Flatt Security では上記のように手動診断によって認可制御不備に取り組んできました。しかし、手動診断だけでは特に費用面がネックとなって「網羅的・継続的な検査が困難である」ということに、常に歯痒い思いを抱いてきました。
手動診断ではしばしば、アプリケーション全体を診断する費用がセキュリティ予算に収まらず、アプリケーションの一部にしか診断を実施できないケースが見られます。また手動診断には費用も時間もかかるため、アジャイル型開発ではアプリケーションが頻繁にアップデートされるのにもかかわらず、それに応じた頻度で継続的に認可制御不備を診断することは困難でした。
梅内:このような課題を解決するため、私たちは認可制御を自動で診断する機能の開発に取り組みました。本機能は「自動診断」という名前のとおり、診断に際して人手を介しません。そのため、一度セットアップしてしまえば、あとは網羅的な検査を継続的に実施することが可能になります。
—— そのほかに、認可制御診断機能のリリースに至ったきっかけなどがあれば教えて下さい。
梅内:私たちのチームでは、GMO Flatt Security のミッションである「エンジニアの背中を預かる」という目標を実現するべく、常に「インパクトが大きく、本当に注力すべき問題は何か」を追求し続けています。
もちろん、Web アプリケーションのセキュリティ診断において、できるだけ多くの脆弱性や潜在的な問題を列挙することに一定の意義はあります。しかし、私たちは「単に診断項目を増やしたとしても、それがより良いセキュリティ評価につながるわけではない」と考えています。それは、検知結果に対応するエンジニアの時間にも、診断対象とするサーバーの処理能力にも限りがあるからです。
重要度の低い項目が大量に検出されると、エンジニアがそれら全てに対応するには時間がかかります。結果としてアラート疲れを起こし、本当に対応すべき問題への対処がかえって疎かになる可能性もあります。
また Shisho Cloud の自動診断では診断対象のサーバーに様々な擬似攻撃を送信して検査を行いますが、そのサーバーが処理できるリクエストの量にはしばしば限界があります。その限られたリソースを最大限に活用すべく、Shisho Cloud は自動診断機能を強化するにあたり、「重要度の低いたくさんの観点を診断する」ではなく、「重要度が高い観点に絞り、様々な複雑な擬似攻撃を試みる」という方針を採用しています。
ここまでに述べてきたとおり、「認可制御不備」は現代のアプリケーション開発で生まれやすい重大な脆弱性の筆頭であり、本当に注力すべき問題だと言えます。そのような背景をもとに、本機能のリリースに注力する意思決定をしました。
Shisho Cloud による網羅的・継続的な認可制御診断の実現
—— Shisho Cloud の認可制御診断機能では、具体的にどのようなことができるのでしょうか?
梅内:本機能では、具体的に以下の不備を検知することができます。
- マルチテナントアプリケーションにおける認可制御不備
- たとえば、「あるテナントに属するユーザーが他のテナント内のデータにアクセスできてしまう」というケースがこれにあたります。
- ロールベースアクセス制御の不備
- たとえば、「管理者権限を持つユーザーしか利用できない機能が一般のユーザーからアクセスできてしまう」というケースがこれにあたります。
Shisho Cloud は、このような認可制御不備を自動でテストし、検出された不備を逐次アラートします。また、診断結果の概要はダッシュボードで分かりやすく可視化されます。
認可制御診断デモ動画:youtu.be
—— どのようにして認可制御不備を検知しているのでしょうか?
梅内:前述した通り、認可制御診断を行う上ではアプリケーションの認可の仕様を正しく把握できていることが不可欠です。Shisho Cloud では Gemini 1.5 Pro モデルを活用した Shisho AI を導入しており、この Shisho AI が Shisho Cloud に蓄積された情報をもとにアプリケーションの認可仕様を推測、提案してくれます。
より具体的には、以下のような仕組みによって本機能を実現しています。
独自クローラーやAPI スキーマのインポートによる画面・API の洗い出し
アプリケーションの仕様を踏まえて認可仕様を推測するにあたっては、そもそもアプリケーションが持つ機能を洗い出すことが不可欠です。
Shisho Cloud では独自のクローラーや、OpenAPI や GraphQL などの API スキーマファイルのインポートを用いて、アプリケーションの画面や API を洗い出し、パラメータ構造などの情報を収集します。Shisho AI を活用した認可仕様の自動生成
各ページ・API について Shisho Cloud が収集した情報とロールの説明文をもとに Shisho AI が「あるロールがある機能にアクセスできるべきか」を推測します。なお、推測された認可仕様が不正確な場合は人の手で修正することができます。認可仕様をベースとした検査の自動実行
それぞれのロールのセッション上でリクエストを送信し、レスポンスの内容に基づいてアクセスが許可されたかどうかを判断します。
認可仕様では「アクセスが拒否されるべき」と定義されているにもかかわらず、アクセスが許可されたロールと機能の組をアラートします。
AI を活用したセキュリティ診断機能には説明可能性が不可欠
—— 脆弱性診断に AI を活用するにあたって大切にしていることはありますか?
梅内:診断結果の説明可能性は特に重視しています。AI は不正確な情報を出力する場合があるという特性を踏まえ、AIと決定論的なプログラムを適切に組み合わせ、「何に対してどのような方法で検査するのか」「どのような事実に対しどのような理屈で脆弱性があると判断したのか」が明確であるような体験での認可制御診断を実現しています。
以下の画面はロールベースアクセス制御の診断結果の例です。「member 権限のセッションで GET /api/employees/{employeeID}/salary
にアクセスしたところ、ステータスコードが 200 だったため、認可仕様に違反してリクエストに成功してしまったと判断した」という判断のロジックを明確に示しています。
(※この例ではリクエストが成功したかどうかの判断を「ステータスコードが 200 である」という条件で判定していますが、この条件式はアプリケーションに合わせてカスタマイズ可能です。)
このように「何をどのように検査したのか」を明確にしているからこそ、診断結果が信頼できるものとなると考えています。例えば「未認証の場合は全てアクセス拒否」という認可仕様が Shisho Cloud に登録されていて、「リクエストが成功したかどうかの判定条件」が適切に設定されている状況で、診断で問題が検出されなかった場合、「確かにどのエンドポイントでも未認証状態でリクエストすると正常系にならない」ということが事実をもとに論理的に確かめられている、と確信を持つことができます。
——AI 活用の今後の展望を教えてください
梅内:今後の展望として、より複雑な認可制御不備を検出するための機能の開発や、認可制御に限らずプロダクトのセキュリティレビュー・診断を自律的に行う AI エージェントの実装などを検討しています。たとえば、エージェントが Design Doc やプルリクエストを読んでセキュリティ観点について開発者と議論したり、エージェントに「この機能関連の脆弱性探しといて」「このログ読んで何が起きてそうか分析して」のように頼み事ができたりする体験を可能にしたいと考えています。
おわりに
「認可制御不備」は、現代において最も深刻かつ発生頻度が高い脆弱性の一つです。GMO Flatt Security はこれまで培ってきた「高度手動診断」において高度な技術力を持つセキュリティエンジニアがアプリケーションの仕様を深く理解し、認可制御不備を発見してきました。しかし、日々変化するアプリケーションの全体を漏れなく、継続的にチェックし続けるためには、自動化が不可欠です。
Shisho Cloud の新機能によって、AI の力を活用して自動でアプリケーションのコンテキストを理解し、認可仕様を推測し、認可制御に関する仕様と実装との乖離を継続的に検出することが可能になりました。これにより、網羅的・継続的・低コストで認可制御不備を発見でき、開発サイクルに追従してセキュアな状態を保つことができます。
近頃、プロダクト開発を支援する AI 技術が急速に発展しており、これらに後押しされて世のプロダクトの成長スピードは加速的に高まっていくでしょう。このような時代に、目まぐるしく進化するアプリケーションとビジネスを支えるためには、そのスピードに追従してセキュリティレビュー・診断を継続的に実施することの重要性がますます高まっていくものと考えています。GMO Flatt Security はこれからも「エンジニアの背中を預かる」をミッションに掲げ、世の開発組織が事業の前進に集中できるようセキュリティ面を支えるサービスを進化させてまいります。