Tag: App Security

iOS移动应用程序安全性-第一部分:iOS移动开发人员的最佳实践。

根据OWASP Top 10,每个ios开发人员都必须注意代码安全性,数据存储安全性,数据通信安全性等。 由于iOS移动应用程序不像其他移动平台(如Android)和任何混合移动开发(在其清单,清单,JavaScript注入等第一阶段非常开放)那样脆弱,因此iOS仍然存在其自身的问题。 确保正确地保护代码,逻辑,数据及其通信是每个组织/开发人员的责任,以防止任何入侵者篡改和理解代码。 为谨慎起见,在开发人员端,以下是初步威胁的一些清单,每个ios开发人员都应注意这些清单。 那些是: 1.屏幕录制和屏幕捕获 风险: 1.攻击者可以记录登录名/任何敏感屏幕,并捕获输入的用户名和密码。 2.在像应用程序一样的视频流中,任何付费视频内容都可以流式传输和记录。 这些风险将导致银行应用程序中的重大泄漏,如果执行屏幕截图或屏幕记录,则安全交易细节将受到损害。 OWASP:不安全身份验证 固定: 观察userDidTakeScreenshotNotification并使用UIScreen.isCaptured()限制用户继续进行操作。 示例代码: NotificationCenter.default.addObserver(forName:.UIApplicationUserDidTakeScreenshot,object:nil,queue:OperationQueue.main){ 打印(“截屏!!)} 要检查是否在ios 11及更高版本上正在发生屏幕录像: -(BOOL)isRecording { 对于(UIScreen.screens中的UIScreen *屏幕){ 如果([屏幕responseToSelector:@selector(isCaptured)]){ // iOS 11+具有isCaptured方法。 如果([screen performSelector:@selector(isCaptured)]){ 返回是; //屏幕捕获处于活动状态 }否则,如果(screen.mirroredScreen){ 返回是; //镜像处于活动状态 } }其他{ // 11.0以下的iOS版本 如果(screen.mirroredScreen) 返回是; } } 返回否; } 2. KeyChain数据保护 风险: 使用易受攻击的访问性选项添加到KeyChain的钥匙串项可能会暴露于JailBroken设备上的其他应用程序或具有物理访问权的攻击者。 通常,开发人员可以选择以下操作: kSecAttrAccessibleWhenUnlocked, kSecAttrAccessibleAfterFirstUnlock, kSecAttrAccessibleAlways, kSecAttrAccessibleWhenUnlockedThisDeviceOnly, kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly, […]