Cocos2d-xで作ったAndroidアプリに内包されているOpenSSLのバージョンを確認する

  • 12
    いいね
  • 0
    コメント

Google Play warning: You are using a vulnerable version of OpenSSL

Google様から「てめぇの出してるアプリに入ってるOpenSSLのバージョン古いぞゴラァ!」ってメールが来た。

Please migrate your app(s) to OpenSSL 1.02f/1.01r or higher as soon as possible and increment the version number of the upgraded APK. Beginning July 11, 2016, Google Play will block publishing of any new apps or updates that use older versions of OpenSSL. If you’re using a 3rd party library that bundles OpenSSL, you’ll need to upgrade it to a version that bundles OpenSSL 1.02f/1.01r or higher.

以前OpenSSLの脆弱性云々って話が出てたときは「使ってないし関係ないね(^^)」ってスルーしてた。

が、Cocos2d-xの中にはOpenSSLのライブラリが含まれてるので使ってなくても対応が必要な罠。
現時点でDeveloper Consoleにはアラート出てないけど対応しないと死ぬ。

※追記:アラート出てた
スクリーンショット 2016-04-07 12.17.52.png

リンク先の記事内容はメール本文と一緒みたい
How to address OpenSSL vulnerabilities in your apps - Google ヘルプ

Cocos2d-xに内包されているOpenSSLのバージョンを確認する

内包されているOpenSSLのバージョンは、apk内をgrepして確認できる。

$ unzip -p hoge.apk | strings | grep "OpenSSL"

ちなみにCocos2d-x 3.3に内包されていたのは
OpenSSL 1.0.1j
でした。

Google様からの警告文では「OpenSSL 1.02f/1.01r以上にしろ」とのお達しなので、確かにバージョンは古い。

対応について

ザッと調べてみると、2014年にCocos2d-xで作ったAndroidアプリに対して同じような警告メールが来たことがあった模様。その際は内包されているOpenSSLのライブラリを新しいものに入れ替える対応で回避できたらしい。

今回は改めてセキュリティの水準が引き上げられた感じかな。
対象ライブラリは以下フォルダに入っていた。

/cocos2d/external/curl/prebuilt/android/armeabi/libcurl.a
/cocos2d/external/curl/prebuilt/android/armeabi-v7a/libcurl.a
/cocos2d/external/curl/prebuilt/android/x86/libcurl.a

フォーラムにも議題上がってたのでしばらく様子見てから対応する予定。
OpenSSL problem again - Cocos2d-x Forum

広告系ライブラリの可能性もあるので。
ライブラリ入れ替えてビルドし直すだけだったら一番楽なんだけど…

追記

2016/04/05 16:30

4/26に対応版(ver 3.11)がリリース予定?
Update OpenSSL for libcurl · Issue #15359 · cocos2d/cocos2d-x

個人で対応してみたよ!って人も居た(要検証)
Cocos2d-x Fix for OpenSSL problem | Bengigi Studio

2016/04/26 22:30

フォーラムで情報提供してくれていたObg1さんのfixファイルをあててみたところ、内包されているOpenSSLのバージョンが規定値以上(1.01r)になった。

アプリの動作も問題なかったのでGoogle Playにアップ。3,4時間くらい経過後にアラートが解消されたことを確認。