AIX実例 / 複数のWebサービス事業者

AIで速く作ったWebサービスに共通する、認可と認証の3つの弱点を直した

データベースの公開範囲を最小化(公開読み取り 数十テーブル→0)。画面とサーバー処理の認可のずれを修正。認証を未設定なら拒否する形に。

業種
複数のWebサービス事業者
規模
いずれも本番稼働中のサービス
期間
各数日〜数週間
領域
AI開発AI組織導入

課題

AIで開発すると、動くものは早く出ます。ただ「動いている」と「守られている」は別で、認可と認証は正常系だけを見ていると弱点が残ります。稼働中のサービスを複数社で点検すると、開発者も技術構成も違うのに、同じ型の弱点が繰り返し見つかりました。

  • データベースの公開範囲が広く、Web層の認証だけでは守られていなかった
  • 画面(URL)単位の認可はあるが、画面から呼ばれるサーバー処理の側に本人確認が無かった
  • 認証が「有効」の設定なのに、資格情報が未設定で、実際には機能していなかった

取り組み

  • 設定ファイルを読んで判断するのではなく、実際のリクエストで「守られているか」を確かめる点検を先に行った
  • データベースの公開読み取りを全テーブルで止め、アプリからのアクセスを内部権限に一本化。適用の瞬間に機能が止まらないよう、アプリ側の修正を先に出す順序で進めた
  • 画面の認可とサーバー処理の認可を分けて点検し、処理の内側で本人確認を行う形に。認可の失敗は黙って空を返さず、拒否として扱う
  • 認証は「未設定なら拒否」に変更し、設定と実装のずれを実際の動作で確認
  • 実装した本人とは別の文脈で独立したレビューを行い、指摘は一次情報で確かめてから対応
  • 顧客への共有は、指摘を人ではなく構造に帰す書き方にし、未修正の項目の詳細は共有資料に書かない

結果

項目 結果
データベースの公開読み取り 数十テーブル→0(全テーブルで拒否を実測)
サーバー処理の認可 一般ユーザーが到達できる経路を優先して修正。残りは顧客の課題管理へ引き継ぎ
認証の設定漏れ 未設定なら拒否する形に修正

この案件から言えること

「動いている」と「守られている」は別です。 守られているかは、設定を読むのではなく実際の動作で確かめます。認可は入口(URL)ではなく、処理の内側に置く。この2点は、AIで速く作るほど先に決めておく必要があります。

Contact

似た課題があれば、この事例を起点に。

「うちの場合はどうなるか」から相談できます。営業・広告のご提案は受け付けていません。