MASTG-TEST-0059: 测试自动生成的截图中的敏感信息
此测试即将更新
此测试目前可使用,但将作为新的 OWASP MASTG v2 指南 的一部分进行全面修订。
请提交PR以帮助我们解决以下问题:MASTG v1->v2 MASTG-TEST-0059:测试自动生成的屏幕截图是否包含敏感信息 (ios)
概述¶
静态分析¶
如果您有源代码,请搜索applicationDidEnterBackground
方法,以确定应用程序是否在进入后台前清理屏幕。
以下是使用默认背景图像 (overlayImage.png
) 的示例实现,每当应用程序进入后台时,覆盖当前视图
Swift
private var backgroundImage: UIImageView?
func applicationDidEnterBackground(_ application: UIApplication) {
let myBanner = UIImageView(image: #imageLiteral(resourceName: "overlayImage"))
myBanner.frame = UIScreen.main.bounds
backgroundImage = myBanner
window?.addSubview(myBanner)
}
func applicationWillEnterForeground(_ application: UIApplication) {
backgroundImage?.removeFromSuperview()
}
Objective-C
@property (UIImageView *)backgroundImage;
- (void)applicationDidEnterBackground:(UIApplication *)application {
UIImageView *myBanner = [[UIImageView alloc] initWithImage:@"overlayImage.png"];
self.backgroundImage = myBanner;
self.backgroundImage.bounds = UIScreen.mainScreen.bounds;
[self.window addSubview:myBanner];
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
[self.backgroundImage removeFromSuperview];
}
这会将背景图片设置为overlayImage.png
,每当应用程序进入后台时都会生效。 它可以防止敏感数据泄漏,因为overlayImage.png
始终会覆盖当前视图。
动态分析¶
您可以使用可视化方法,使用任何 iOS 设备(越狱或未越狱)快速验证此测试用例
- 导航到显示敏感信息的应用程序屏幕,例如用户名、电子邮件地址或帐户详细信息。
- 通过点击 iOS 设备上的Home按钮,将应用程序置于后台。
- 验证是否显示默认图像作为顶部视图元素,而不是包含敏感信息的视图。
如果需要,您还可以通过在越狱设备或使用 Frida Gadget 重新打包应用程序后的非越狱设备上执行步骤 1 到 3 来收集证据( 自动将 Frida Gadget 注入 IPA)。 之后,通过 SSH 连接到 iOS 设备( 访问设备 Shell)或通过其他方式( 主机-设备数据传输),并导航到 Snapshots 目录。 该位置在每个 iOS 版本上可能不同,但通常位于应用程序的 Library 目录中。 例如,在 iOS 14.5 上,Snapshots 目录位于
/var/mobile/Containers/Data/Application/$APP_ID/Library/SplashBoard/Snapshots/sceneID:$APP_NAME-default/
该文件夹内的屏幕截图不应包含任何敏感信息。