AFNetworkingコードのエラーにより、HTTPSユーザートラフィックをインターセプトできます

iOSおよびOS Xシステムで最も人気のあるネットワークフレームワークの1つに重大な脆弱性が見つかりました。 AFNetworking 、つまりバージョン2.5.1は、Minded Securityの専門家の支配下にあることが判明しました。



画像



evaluateServerTrustメソッド(AFSecurityPolicy.mファイル)で、SSL証明書検証ロジックが発生します。

- (BOOL)evaluateServerTrust:(SecTrustRef)serverTrust forDomain:(NSString *)domain { NSMutableArray *policies = [NSMutableArray array]; if (self.validatesDomainName) { [policies addObject:(__bridge_transfer id)SecPolicyCreateSSL(true, (__bridge CFStringRef)domain)]; } else { [policies addObject:(__bridge_transfer id)SecPolicyCreateBasicX509()]; } SecTrustSetPolicies(serverTrust, (__bridge CFArrayRef)policies); if (self.SSLPinningMode != AFSSLPinningModeNone && !AFServerTrustIsValid(serverTrust) && !self.allowInvalidCertificates) { return NO; } NSArray *serverCertificates = AFCertificateTrustChainForServerTrust(serverTrust); switch (self.SSLPinningMode) { case AFSSLPinningModeNone: return YES;
      
      







デフォルトでは、SSLPinningModeはAFSSLPinningModeNoneに設定されており、証明書の検証が完全に無効になっています。 これにより、 SSL MITMが可能になります。

このフレームワークは非常に人気があります。 Pinterest、Heroku、Citrix OpenVoice Audio Conferencing、Alibabaなどのアプリケーションで使用されています。



脆弱性の詳細が公開された後、AppleStoreの他のアプリケーションのチェックが実行されました。 結果は残念です。 1,500のアプリケーションがAFNetworkingのリークバージョンによって実行されました。

次に、アプリケーションで脆弱性をチェックするサービスが開始されました: searchlight.sourcedna.com/lookup

バージョン2.5.2では、バグは部分的にクローズされていますが、ホストの検証がないため、証明書検証のバイパスが残っています。



関連リンク:

AFNetworking 2.5.1のSSL MiTM攻撃-本番環境では使用しないでください!

1,500のiOSアプリにはHTTPSのバグがあります。 それらの1つがデバイスにありますか?

HabréでのAFNetworking



All Articles