看看移动端 Agentic Deep Scan 报告是什么样子

这是对 AndroGoat(一款用于 OWASP 培训、故意设置漏洞的 Android 应用)扫描的完整、未经编辑的报告。它展示了每个发现如何追溯到漏洞代码、加以验证并修复。

目标
AndroGoat(Android)
扫描
Mobile Agentic Deep Scan
篇幅
184 页
结果
整体风险:高

Android 训练目标:AndroGoat。各项发现中列有测试配置和复现方法。不含客户数据。

包含漏洞代码的发现发现汇总封面和风险等级

报告内容

执行摘要

在报告开头呈现整体风险、所测试的具体构建,以及各严重程度的发现数量。

发现汇总表

每个发现的风险等级、状态和简短说明。

代码级发现

每个发现都展示根本原因、漏洞代码和利用证据。

验证和修复

第二轮检查确认每个发现,随后给出建议的修复方案及验证方法。

带注释的发现

逐步解读一个发现

展示报告如何把一个发现从实际测试的构建版本一路跟到修复方案。每一步都标注了它在完整报告中的页码。

  1. 构建

    AndroGoat 1.0 (1),包名 owasp.sat.agoat

    报告通过包名、版本和 SHA-1 哈希确定所测试的具体 APK,并注明其大小和扫描日期。

    报告第 2 页
  2. 结果

    44 个发现,按风险排序

    34 个已确认的漏洞(12 个高危、16 个中危、6 个低危,无严重级别),另有 8 个需要进一步调查的潜在问题和 2 项加固措施。

    报告第 3 页
  3. 发现汇总表

    已列出并跟踪

    发现汇总表列出了每个问题的风险等级、状态和简短说明。这个问题为高危,且仍未关闭。

    报告第 4 页
  4. 流程

    应用中不安全存储的界面

    AndroGoat 的存储界面会保存用户输入的用户名和密码。代理追踪了每个界面把它们写到哪里:SharedPreferences、一个 SQLite 数据库、临时文件和 SD 卡。

    报告第 15 页
  5. 发现

    高危:凭据以明文存储

    用户名和密码以明文写入 SharedPreferences、一个 SQLite 数据库和临时文件,其中一个位于共享存储上。应用还启用了备份。

    报告第 15 页
  6. 证据

    密码最终去了哪里

    反编译后的应用将密码写入 users.xml 和 aGoat 数据库,并在 SQL 查询日志中记录下来。adb 备份可以把这两个文件复制出来。报告还注明了两个未能在运行时测试的存储路径。

    报告第 16 页
  7. 修复

    加密,并避免将凭据放在共享存储中

    立即关闭备份并加密已存储的数据。长期修复方案是将凭据迁移到基于 KeyStore 的 EncryptedSharedPreferences,并附代码示例。

    报告第 17 页
  8. 验证

    如何确认修复

    在反编译后的应用中搜索以明文传给存储调用的凭据,并确认 adb 备份不再暴露可读的凭据文件。

    报告第 17 页

代理如何判断

为什么这是真正的风险

扫描器会报告所有匹配规则的内容。代理在报告之前,会先确认一条线索是否会造成实际危害。以下是它对 AndroGoat 应用中一条线索的推理过程。

  1. 第 1 步

    这个地址在应用里做什么?

    应用资源文件 res/values/strings.xml 中包含一个 Firebase 数据库地址:androgoat-42597.firebaseio.com。

    报告第 65 页
  2. 第 2 步

    应用真的使用它了吗?

    没有。应用中没有 Firebase 库,也没有代码读取这个值。基于规则的检查会把它当作未使用的残留,然后跳过。

    报告第 66 页
  3. 第 3 步

    数据库本身是开放的吗?

    代理在未登录的情况下向数据库发送了一次请求。数据库返回了 200 OK,其中包含一个用户名和一个密码。

    报告第 66 页
  4. 第 4 步

    那么,这是风险吗?

    是的,高危(High)。应用不使用这个地址并不重要:任何人解包应用后都能找到这个数据库,并且无需账户就能读取。

    报告第 28 页
  5. 第 5 步

    如何修复?

    启用 Firebase Authentication 和安全规则,使读取数据库必须是已登录用户,并从应用中删除这个未使用的地址。

    报告第 29 页

想为您自己的应用获取这样的报告?

预约演示,我们将为您讲解对您的移动应用、Web 应用或 API 的扫描。