株式会社Arstructは、Webサービスのリスクを整理する「Code診断ラクダ」において、APIキーがフロントエンドに露出している状態を検出する機能の提供を開始しました。AI連携や決済サービスなどで用いられる本来非公開とすべきAPIキーが、利用者のブラウザから参照できるコードに含まれていないかを点検する機能となります。画面上の動作確認だけでは見落としやすい秘密情報の扱いを把握し、経営者と開発担当者が公開前後に必要な対策を整理できるよう設計されています。

フロントエンド露出の検出機能が追加された背景
ログインや画面表示、AIの回答取得といった動作が正常に行われていても、外部サービス連携用の秘密APIキーがブラウザへ配信されるJavaScript内に残存しているケースがあります。また、環境変数へ値を保存していても、フロントエンド向けの設定次第ではビルド時にコード内へ直接値が展開されることがあります。画面上に文字として表示されていない状態であっても、利用者がコードから取得可能な状態になっているリスクが存在します。
非公開のキーが第三者に取得された場合、割り当てられた権限を利用して外部サービスが不正利用される懸念が生じます。そのため、機能が動いているかの確認にとどまらず、どの情報がブラウザへ配信されているかを把握することが不可欠とされています。
Mr.ガジェット画面で正しく動いていても、ビルド設定次第で環境変数の値がJavaScriptに埋め込まれて配布される落とし穴があります。
Ms.ガジェットユーザー画面に見えなくてもソース側から抜き取られる危険があるのは、公開前のチェックで意識しておきたい点ですね。
公開用キーと秘密キーの判別と対応方針
APIキーにはブラウザでの直接利用が前提の公開用キーと、サーバー側で厳重に保持すべき秘密キーの2種類が存在します。そのため、コード内にキーの記述があることだけで直ちに情報漏えいと決めつけるものではありません。今回の新機能は、フロントエンドに含めるべきではないキーの露出状況を確認するための仕組みです。指摘を受けた開発担当者が、キーの種類や付与権限、提供元の規約を確認したうえで実装と照らし合わせて対処法を判断します。
詳細診断の点検範囲とレポートの構成
Code診断ラクダの詳細診断では、ソースコードと設定情報を読み取り、技術・運用・データ・法務を含む10カテゴリ・100要素の視点からリスク要因を整理します。APIキーの露出以外にも、認証・認可の仕組み、データベースのアクセスルール、API保護、AIや決済、個人情報、外部連携に関わる運用リスクが調査対象に含まれます。

診断後に発行されるレポートには、具体的な指摘事項とその根拠、重大度、改善優先順位、修正難易度や想定工数の目安が記載されます。経営者は対処の優先順位を判断し、開発者は実コードと突き合わせて改修方針を検討可能です。なお、本診断の結果は改善のための判断材料であり、すべての秘密情報や脆弱性の検出、ならびにシステムの完全な安全性を保証するものではないと明記されています。
Mr.ガジェット100要素にわたる調査項目から優先順位や修正工数の目安まで出るため、経営側と開発側の認識合わせがスムーズに進みます。
Ms.ガジェット重大度だけでなく工数感までレポートにまとまっていれば、リリース前の限られたスケジュールでも改修の判断がつけやすそうです。
コードの提供手順と診断時の仕様
詳細診断にコードを提出する方法として、GitHubのRead-only(読み取り専用)連携と、コード一式をアップロードする形式の2通りが用意されています。GitHub連携時は読み取り権限のみを使用し、書き込み権限を要求しません。診断の過程でコードを書き換えたり、修正用プルリクエストを作成したりする動作は行われず、指摘を踏まえた改修や公開の可否判断は利用者側が実施します。
なお、公開URLと自己申告による無料簡易診断も提供されていますが、これは重点確認箇所を整理するための入り口です。コード内部の秘密情報まで点検する詳細診断とは調査範囲が異なるため、無料簡易診断のみで内部の安全確認が完了するわけではない点に注意が必要です。
Mr.ガジェットGitHub連携は読み取り専用に限定されており、診断側が勝手にコードを書き換えたりPRを投げたりしない設計になっています。
Ms.ガジェット書き込み権限を渡さずに済むのはセキュリティ面で安心感がありますし、無料簡易診断とのカバー範囲の違いも把握しておきたいです。
想定される利用場面と検出時の推奨アクション
仮想的な利用場面として、会員ごとの申込情報管理とAI回答機能を備えたWebサービスの公開前点検が挙げられています。利用者ごとのデータ参照制限やAPI側の権限設定と合わせて、AIサービスの秘密APIキーがブラウザへ漏れ出ていないかを点検する流れです。もし秘密キーの露出が発見された場合、コードから該当文字列を削除するだけにとどまらず、発行元でのキー無効化・再発行、過去の利用履歴確認、サーバーサイドでの管理構成への移行といった対応を利用者側で進める必要があります。
Ms.ガジェットもし秘密キーが見つかったら、単にコードから消すだけでなく再発行や履歴確認まで必要になるという運用上の注意点は勉強になります。
「Code診断ラクダ」詳細診断の料金と利用条件
詳細診断は「診断レポート」プランとして29,800円(税込)で提供されています。申し込みごとの都度課金制となっており、診断対象は利用者が正当な権利を持つもの、または必要な権限・許諾を得たソースコードに限定されます。なお、改善ロードマップの策定や実装支援を含む「改善サポート」は別個のサービス範囲として扱われます。
Mr.ガジェット詳細診断は都度課金の29,800円(税込)で設定されており、定期契約ではなくリリースごとの単発利用がしやすい体系です。
Ms.ガジェット実装支援などの改善サポートは別枠になっているので、まずは自社コードのレポート取得に絞って検討するのが分かりやすいですね。
- 本記事で使用している画像は、メディアユーザーとしてPR TIMESより提供されたプレスリリース素材を利用しています。

公開しても構わないAPIキーと秘匿すべきキーが混在するからこそ、機械的なフラグ付けだけでなく人間側の権限確認が欠かせないと感じます。