App Transport Security(ATS)簡介
ATS的全稱是App Transport Security,是從iOS9開始引入的安全項,目的是推廣使用https,禁用http,這一安全項在iOS10得到進一步加強。
iOS9中ATS配置
iOS9中默認強制使用https,但是如果Info.plist文件中加入以下節(jié)點,就可以關(guān)閉這個安全項,允許app使用http。
true:允許使用http,
false:不允許使用http,
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<dict>
iOS10中ATS配置
iOS10中,蘋果更加堅定地推行了ATS安全項,不允許開發(fā)者全局關(guān)閉ATS安全項,但是可以添加不受ATS限制的域名。下面配置項就是允許qq.com域名使用http,這樣的配置比iOS9一刀切的方法更安全一些。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSExceptionDomains</key>
<dict>
<key>qq.com</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<false/>
</dict>
</dict>
</dict>
ATS安全評估
將ipa包上傳至MobSF掃描框架,會進行ATS安全項檢查。凡是有允許http使用的配置都會有風險提示,安全人員在評估風險時,要注意如果是自己的域名被允許使用http,那么風險是可控的,如果像iOS9中關(guān)閉了ATS,那么app在訪問一些http鏈接時存在泄漏敏感數(shù)據(jù)的風險。
因此安全人員在進行評估過程中,需要提示風險的情況有:
iOS9中將NSAllowsArbitraryLoads設(shè)置為true。
iOS10中將未知的域名排除在ATS的限制之外。
參考:
https://blog.csdn.net/cjx529377/article/details/85270681
http://www.itdecent.cn/p/3a9bd699e6dd