工单聚合:将漏洞分组以实现高效管理
本节将说明如何使用工单聚合设置跨多个扫描和资产对漏洞进行分组。
工单聚合允许您将类似的漏洞归组为单个工单,从而简化工作流程,让安全问题的跟踪和解决变得更加轻松。 这在处理多个应用程序、平台和环境(例如生产环境和测试环境)时尤为有用。
工单聚合的优势:
- 能够跨多个扫描、应用程序版本、平台等跟踪漏洞的状态。
- 无需执行手动工作即可识别重复项或新项目,或者将问题重新标记为异常或误报。
- 与您的工单管理系统无缝集成。
主要有两种模式可用于对工单进行分组:
-
平台组:此选项允许您定义平台组,例如将“Android File”和“Android Store”合并为单个“Android”聚合组。这非常适合管理影响部署在特定平台上的所有应用程序的漏洞。
-
应用程序组:此选项允许您根据特定的应用程序标识符进行分组,例如“android:com.myapp.prod”和“android:com.myapp.test”。这适用于跨同一应用程序的不同版本或环境对漏洞进行分组。
示例
您有一款同时在 Android 和 iOS 上提供的移动应用程序。 对于 Android 版本,您会扫描来自 Android 商店(“PlayStore”)的应用程序,同时需要扫描“Android File”(APK 文件)以验证正在进行的开发。 对于 iOS 版本,您会扫描来自 iOS 商店(“AppStore”)的应用程序,同时需要扫描“iOS File”(IPA 文件)以验证正在进行的开发。
假设我的应用程序(包括 Android 和 iOS)存在相同的漏洞:“Insecure Data Storage(不安全的数据存储)”。
选项 1:我希望单独聚合每个平台工单。这意味着我将拥有四个工单:一个对应 Android 文件,另外三个分别对应 Android 商店、iOS 文件和 iOS 商店。
为此,您可以使用平台分组选项。您需要定义四个组。
组 1 将包含 android,组 2 包含 android_store,组 3 包含 ios,组 4 包含 ios_store。
您可以参考如何按平台配置聚合工单, 当我在文件版本中修复该问题后,对其进行扫描,Ostorlab 平台将自动检测到该问题已修复,并将这两个工单标记为 Fixed_verified。 随后,我将文件上传至商店并运行扫描,这也会更新商店工单以将其标记为已修复并验证。
| 应用程序 ID | 平台 | 漏洞 | 工单 ID |
|---|---|---|---|
android:com.myapp |
Android Store (PlayStore) | Insecure Data Storage | Ticket #001 |
android:com.myapp |
Android File (APK) | Insecure Data Storage | Ticket #002 |
ios:com.myapp |
iOS Store (AppStore) | Insecure Data Storage | Ticket #003 |
ios:com.myapp |
iOS File (IPA) | Insecure Data Storage | Ticket #004 |
选项 2:我希望将 Android 扫描聚合在一起,无论它们来自文件还是商店。我还希望聚合 iOS 工单,无论它们来自文件、商店还是 TestFlight。
为此,您可以使用平台分组选项。您需要定义两个组。
组 1 将包含 android 和 android_store,组 2 将包含 ios、ios_store 和 ios_testflight。
如果您从不同来源扫描该应用程序,您将只获得两个工单。Android 的一个工单将引用来自文件和商店的两个扫描。iOS 工单也是如此。
| 应用程序 ID | 平台 | 漏洞 | 工单 ID |
|---|---|---|---|
android:com.myapp |
Android Store (PlayStore) | Insecure Data Storage | Ticket #001 |
android:com.myapp |
Android File (APK) | Insecure Data Storage | Ticket #001 |
ios:com.myapp |
iOS Store (AppStore) | Insecure Data Storage | Ticket #002 |
ios:com.myapp |
iOS File (IPA) | Insecure Data Storage | Ticket #002 |
在您修复 APK 文件中的问题并扫描它的那一刻,工单将保持打开状态,直到您将文件上传到商店并扫描它。
但是,如果您直接扫描了版本高于文件的商店版本,平台将认为您已修复文件并上传了更高的版本。即使您之前没有运行文件扫描,该工单也会被标记为 fixed_verified。
选项 3:我希望按平台和环境聚合我的移动应用程序。
您的 Android 应用拥有生产版本和测试版本,其应用程序 ID 分别为 com.company.myapp.prod 和 com.company.myapp.test。 我希望无论扫描生产版本还是测试版本,无论从文件还是从商店扫描,“Insecure Data Storage”漏洞都只有一个工单。
为此,您需要使用应用程序 ID 分组。您可以使用以下项定义一个组:android:com.company.myapp.prod、android:com.company.myapp.test 和 android_store:com.company.myapp.prod。
您还可以使用正则表达式来定义不同的环境:android:com.company.myapp.* 和 android_store:com.company.myapp.*。
通过此配置,针对 Android 文件 com.company.myapp.prod、com.company.myapp.testing 或 Android Store com.company.myapp.prod 的三次扫描,您将只有一个工单。
| 应用程序 ID | 平台 | 漏洞 | 工单 ID |
|---|---|---|---|
android:com.myapp.prod |
Android Store (PlayStore) | Insecure Data Storage | Ticket #001 |
android:com.myapp.prod |
Android File (APK) | Insecure Data Storage | Ticket #001 |
android:com.myapp.test |
Android File (APK) | Insecure Data Storage | Ticket #001 |
要使工单得到修复和验证,必须在两个环境中都进行修复。
主要注意事项:
选择“平台组”还是“应用程序组”取决于您特定的组织结构以及您希望如何管理漏洞。
您可以从一种配置更改为另一种配置;但是,每次更改配置时,旧工单都会被关闭,系统将创建符合新配置的新工单。