モバイル Agentic Deep Scan のレポートをご覧ください

OWASP のトレーニングで使われる、意図的に脆弱性を持たせた Android アプリ AndroGoat のスキャンの、編集なしの完全なレポートです。各検出事項が脆弱なコードまで追跡され、実証され、修正される様子がわかります。

対象
AndroGoat(Android)
スキャン
Mobile Agentic Deep Scan
ページ数
189 ページ
結果
全体のリスク: 高

Androidのトレーニング用対象:AndroGoat。テスト環境と再現方法は各検出結果をご覧ください。顧客データは含まれていません。

脆弱なコードを含む検出事項検出事項の概要表紙とリスク評価

レポートの内容

エグゼクティブサマリー

総合リスク、テストした正確なビルド、深刻度ごとの発見事項の件数を冒頭にまとめています。

検出事項一覧

各発見事項のリスク、ステータス、簡単な説明。

コードレベルの検出事項

各検出事項について、根本原因、脆弱なコード、悪用の証拠を示しています。

検証と修正

2 回目の確認で各検出事項を検証し、推奨される修正方法とその確認方法を示しています。

解説付きの検出事項

1つの検出事項をステップごとに

レポートが1つの検出事項を、テストした正確なビルドから修正まで、どのように扱うかを示します。各ステップに、完全版レポートの該当ページを記載しています。

  1. ビルド

    AndroGoat 1.0 (1)、パッケージ owasp.sat.agoat

    レポートは、パッケージ名、バージョン、SHA-1ハッシュでテストしたAPKを特定し、そのサイズとスキャン日も記載しています。

    レポート 2 ページ
  2. 結果

    リスク順に並んだ 44 件の発見事項

    確認済みの脆弱性 34 件(高 12 件、中 16 件、低 6 件、重大 0 件)に加え、追加調査が必要な潜在的な問題 8 件と、2 件のハードニング対策。

    レポート 3 ページ
  3. 検出事項一覧

    一覧化して追跡

    検出事項一覧には、各問題のリスク、ステータス、簡単な説明が載っています。この問題は高で、未対応のままです。

    レポート 4 ページ
  4. フロー

    アプリの安全でないストレージ画面

    AndroGoatのストレージ画面は、入力されたユーザー名とパスワードを保存します。エージェントは、それぞれの画面がどこに書き込むかを追跡しました:SharedPreferences、SQLiteデータベース、一時ファイル、SDカード。

    レポート 16 ページ
  5. 検出事項

    高:認証情報の平文保存

    ユーザー名とパスワードが、SharedPreferences、SQLiteデータベース、一時ファイルに平文で書き込まれ、その1つは共有ストレージ上にあります。バックアップも有効になっています。

    レポート 16 ページ
  6. エビデンス

    パスワードの行き先

    逆コンパイルしたアプリは、パスワードをusers.xmlとaGoatデータベースに書き込み、SQLクエリのログにも出力します。adbバックアップで両方のファイルを取り出せます。レポートは、実行時にテストできなかった2つの保存経路も明記しています。

    レポート 18 ページ
  7. 修正

    暗号化し、認証情報を共有ストレージに置かない

    すぐにバックアップを無効にし、保存データを暗号化します。恒久的な修正では、認証情報をKeyStoreを利用するEncryptedSharedPreferencesに移行します。コード例付きです。

    レポート 18 ページ
  8. 検証

    修正を確認する方法

    逆コンパイルしたアプリで、ストレージ呼び出しに平文の認証情報が渡されていないか検索し、adbバックアップで読み取り可能な認証情報ファイルが出てこないことを確認します。

    レポート 19 ページ

エージェントの判断

リスクと判断した理由

スキャナーはルールに一致したものをすべて報告します。エージェントは報告する前に、手がかりが実際の被害につながるかを確かめます。AndroGoat アプリで見つかった手がかりについて、エージェントがどう判断したかを示します。

  1. ステップ 1

    このアドレスはアプリの中で何をしているのか?

    アプリのリソース res/values/strings.xml に、Firebase データベースのアドレス androgoat-42597.firebaseio.com が含まれていました。

    レポート 68 ページ
  2. ステップ 2

    アプリは実際にそれを使っているのか?

    いいえ。Firebase ライブラリはなく、この値を読み込むコードもありません。ルールベースのチェックなら、使われていない残骸として片付けて先に進むところです。

    レポート 70 ページ
  3. ステップ 3

    データベース自体は公開されているのか?

    エージェントはログインせずにデータベースへリクエストを 1 回送りました。200 OK が返り、ユーザー名とパスワードが含まれていました。

    レポート 70 ページ
  4. ステップ 4

    では、リスクなのか?

    はい、高(High)です。アプリがアドレスを使っていなくても関係ありません。アプリを展開すれば誰でもデータベースを見つけ、アカウントなしで読み取れます。

    レポート 30 ページ
  5. ステップ 5

    どう修正するか?

    Firebase Authentication とセキュリティルールを有効にして、データベースの読み取りにログイン済みユーザーを必須にし、使われていないアドレスをアプリから削除します。

    レポート 31 ページ

自社アプリでこのレポートを作成しませんか?

デモをご予約いただければ、お客様のモバイルアプリ、Web アプリ、API のスキャンをご案内します。