アプリのセキュリティの穴をスキャンする
要点「セキュリティ」を開いて「セキュリティスキャンを実行」を押します。1〜2分で、MonstarX が 33 のルールでコードを確認し、アカウントを持たない第三者として動いているアプリを検査し、AI にアプリ全体を読ませます。A〜F の評価付きのスコアと、深刻なものから順に並んだ検出項目の一覧が表示されます。各項目には場所、問題になる理由、修正方法が書かれています。修正したい項目を選ぶと、MonstarX が通常の作成として修正し、もう一度スキャンします。結果はレポートとしてダウンロードできます。
短期間で書かれたアプリは、ブラウザを信用しすぎがちです。誰でも呼び出せる処理、誰のものかを確かめずに番号だけで取り出せる予約、ページから送られてきた価格をそのまま使う処理などです。攻撃者が探すのは、まさにこうした隙間です。
セキュリティ タブは、攻撃者と同じ目線でアプリを読み、見つかったものを深刻な順に並べ、修正を手伝います。MonstarX に組み込まれた小さな ペネトレーションテスト(わざと侵入を試みて安全性を確かめる検査)だと考えてください。
セキュリティスキャンを実行するには?
Section titled “セキュリティスキャンを実行するには?”-
プロジェクトを開き、上部のバーの セキュリティ をクリックします。
-
セキュリティスキャンを実行 をクリックします。1〜2分かかります。
-
3 つの工程が順に終わるのを待ちます。タブを離れてもかまいません。スキャンは MonstarX のサーバーで続きます。キャンセル で止めると、それまでに見つかった内容は残ります。
上部のバーの セキュリティ タブのバッジは、スキャン中は回転するアイコン、終わると未対応の検出項目の数(いちばん深刻な項目の色)、未対応の項目がなければ緑の点になります。あとでもう一度スキャンするには、タブ上部の 再スキャン をクリックします。
スキャンでは何を確認しますか?
Section titled “スキャンでは何を確認しますか?”スキャンは 3 つの工程でできています。
| 工程 | 内容 | 費用 |
|---|---|---|
| コードチェック | アプリのすべてのファイルに 33 のルールを適用します。サインイン確認の漏れ、持ち主を確かめずに変更されるレコード、コードに書き込まれたシークレット、文字列から組み立てたデータベースのクエリ、安全でない HTML、確認なしのアップロード、検証されていない Webhook などです。 | 無料 |
| ライブ検査 | アカウントを持たない第三者として、動いているアプリに読み取り専用のリクエストを送ります。サインインした人向けのページ、誰にでも応答するルート、別サイトからのアクセス、そして公開中のアプリではセキュリティヘッダーや、決して配信してはいけないファイルを確認します。 | 無料 |
| AI レビュー | AI モデルが検出項目を手元に置いてアプリ全体を読み、項目を確定するか除外し、読んでこそわかる問題を探します。ページから送られた価格を信用している、ページに表示しないデータを送っている、などです。 | チャットのリクエストと同じくクレジットを使用 |
ライブ検査は、アプリが公開中なら公開中のアプリに、そうでなければプレビューに対して行います。結果にはどちらを検査したかが表示されます。
OWASP Top 10 と CWE とは?
Section titled “OWASP Top 10 と CWE とは?”OWASP は、Web アプリの最も深刻なセキュリティリスクの種類をまとめた、最もよく知られたリスト Top 10 を公開している非営利団体です。どの検出項目もこのいずれかに分類されるので、あなた(またはセキュリティの専門家)はどんな種類の問題かがわかります。
| わかりやすく言うと | |
|---|---|
| A01 アクセス制御の不備 | 他人のものを見たり変えたりできてしまう。 |
| A02 暗号化の失敗 | シークレットやコードが弱い方法で保存・生成されている。 |
| A03 インジェクション | 入力された文字が、命令やコードとして実行されてしまう。 |
| A04 安全が確認されない不安な設計 | 無制限に無料のメールや予約ができるなど、アプリのしくみが悪用できる。 |
| A05 セキュリティの設定ミス | セキュリティヘッダーがないなど、設定が開きすぎている。 |
| A06 脆弱で古くなったコンポーネント | 既知の穴がある古いソフトウェア。 |
| A07 識別と認証の失敗 | サインインやセッションの扱いが弱い。 |
| A08 ソフトウェアとデータの整合性の不具合 | 外部のコードやデータを確認せずに信用している。 |
| A09 セキュリティログとモニタリングの失敗 | シークレットがログに漏れる、または攻撃に気づけない。 |
| A10 サーバーサイドリクエストフォージェリ(SSRF) | 攻撃者が選んだアドレスをアプリに取りに行かせられる。 |
CWE(Common Weakness Enumeration)は、具体的な弱点に番号を付けた一覧です。たとえば CWE-639:ユーザーが操作できる ID でレコードを取り出している などです。各検出項目には OWASP の分類と、あれば CWE のページへのリンクが付いているので、詳しく読めます。
結果の見方は?
Section titled “結果の見方は?”上部には、100 点満点のスコア と A〜F の評価、重要度別の未対応の検出項目、スキャン・検査した対象、AI レビューにかかった費用、そして数文でまとめたレビューの概要が表示されます。
スコアは 100 点から始まり、重大 1 件につき 40 点、高 1 件につき 15 点、中 1 件につき 5 点、低 1 件につき 1 点が引かれます。評価は次にすべきことを示します。
| 評価 | スコア | 意味 |
|---|---|---|
| A | 90〜100 | 重大な問題は見つかりませんでした。 |
| B | 75〜89 | いくつか整えておきたい点があります。 |
| C | 55〜74 | 利用者が増える前に、重要度「高」の項目を修正してください。 |
| D | 35〜54 | 深刻な穴があります。公開する前に修正してください。 |
| F | 0〜34 | 今のままでは、アプリは攻撃に対して無防備です。 |
各検出項目には、重要度、タイトル、OWASP の分類、CWE、どこで見つかったか(コードチェック、ライブ検査、AI レビュー)、スキャンの確信度(確定、可能性大、要確認)、ファイルと行が表示されます。クリックすると開きます。
- 該当する行に印が付いた、その周りのコード。
- 何が問題か、なぜ問題か、修正方法 を、わかりやすい言葉で。
- AI レビュー のメモ:検出項目を確定したかどうかと、その方法。
- コードで開く で、「コード」タブ のそのファイルに移動します。
AI レビューが誤検出だと判断した項目には、AI レビュー:実際の問題ではない可能性が高い と表示されます。その項目は一覧の最後に残りますが、スコアには数えられません。
一覧の下の 確認した項目 を開くと、実行したすべてのチェックが OWASP の分類ごとに、合格のチェック、検出項目の数、またはスキップした理由とともに表示されます。
見つかった問題を修正するには?
Section titled “見つかった問題を修正するには?”-
修正したい検出項目にチェックを入れるか、すべて選択 をクリックします。2件を修正する ボタンが表示されます。作成の実行中はグレーのまま押せません。
-
ボタンをクリックすると、MonstarX がこれから起こることを説明します。もう一度 2件を修正する をクリックします。
-
各検出項目は 機能プラン のタスク(セキュリティ:…。プランがいっぱいに近いときは 1 つのタスクにまとめられます)になり、セキュリティのバッジが付いた作成リクエストが 1 件チャットに送られます。通常のリクエストと同じように実行され、バージョン が残り、そのあと QA がアプリをテストすることもあります。
-
作成が終わると、スキャンが自動でもう一度実行されます。消えた項目は解消済みとして表示されます(エージェントが修正:2件)。まだ残っている項目には 修正後も残っています と表示されます。
実際の問題ではない検出項目は?
Section titled “実際の問題ではない検出項目は?”その項目を開いて 対象外にする をクリックし、理由を選びます。
- 実際の問題ではない
- リスクを許容:把握したうえで受け入れる。
- 別の方法で対処済み
対象外にした項目は 対象外 の一覧に移り、ほかのコードが変わっても、以降のスキャンでずっとそこに残ります。一覧に戻すには 元に戻す をクリックします。
セキュリティレポートをダウンロードするには?
Section titled “セキュリティレポートをダウンロードするには?”結果の下にある レポートをダウンロード をクリックします。プロジェクト名の付いた Markdown ファイル(どのエディタでも開けるテキスト形式の文書)がダウンロードされます。例:paws-co-booking-security-report.md。内容はペネトレーションテストのレポートと同じ形です。
- 対象と方法:いくつのルールをいくつのファイルに適用したか、何を検査したか、AI レビューが何をしたか。
- 概要:スコア、重要度別の未対応の検出項目、レビューの概要。
- 検出項目:それぞれの OWASP と CWE のリンク、場所、コード、何が問題か、なぜ問題か、修正方法。
- 前回のスキャンから解消された項目 と、理由付きの オーナーが対象外にした項目。
- チェック一覧:すべてのチェックとその結果。
開発者、クライアント、監査担当者と共有するのに便利です。レポートは、スキャンの実行が止まったあとにダウンロードできます。
よくある質問
Section titled “よくある質問”スキャンは無料ですか?
コードチェックとライブ検査は無料です。AI レビューはチャットのリクエストと同じくクレジットを使い、かかった費用は結果に表示されます。検出項目の修正は、通常の作成と同じくクレジットを使います。
評価が良ければ、アプリは安全ということですか?
どんなスキャンもそれは保証できません。見つかるのは、ルール、検査、レビューで見えるものだけです。まず重大と高の項目を修正してもう一度スキャンし、お金や個人情報を扱う部分は、多くの人が使う前に人の目でも確認してもらってください。
スキャンは公開の前と後、どちらにすべきですか?
両方です。公開前にスキャンして大きな穴を見つけ、公開後にもう一度スキャンしてください。セキュリティヘッダーや、決して配信してはいけないファイルなど、一部のチェックは公開中のアプリにしか行われません。
プロジェクトを共有した相手もスキャン結果を見られますか?
見られません。スキャン結果には弱点がすべて書かれているため、「セキュリティ」タブはオーナーにだけ表示されます。
MonstarX 自身のサインインやデータベースのコードもスキャンしますか?
しません。これらの部分はどのアプリでも同じで、MonstarX が保守しています。スキャンが確認するのは、あなたのアプリのために書かれたコードと、動いているアプリです。
作成の実行中にスキャンを始めるとどうなりますか?
スキャンは作成が終わるまで(最大 10 分)待ってから、完成したコードを確認します。