OpenSSLの脆弱性を受けての対応について

700 views
Skip to first unread message

佐野まゆ

unread,
Jun 9, 2014, 5:11:53 AM6/9/14
to android-g...@googlegroups.com
こんにちは。佐野と申します。よろしくお願いします。

先々月、IPAよりOpenSSLの脆弱性につての注意喚起が発表あれ
現在、私がメンテナンスを担当しているアプリでも、OpenSSLがバンドルしていないか調査することになったのですが、
アプリのソースのどのあたりを見れば「OpenSSLがバンドルされている」かを確認することができるのかが解らず途方に暮れています。
(アプリ自体は以前に外部のベンダーが開発したもので、設計書のようなものはなく、ソース一式だけ手元にあります)

色々とネットで調べて、Androidアプリは、OpenSSLを使う場合はNDKでコンパイルして使用する、というところまでわかったのですが、
もしOpenSSLライブラリをバンドルしているとしたら、プロジェクトのどこに取り込まれているのかがわからない状況です。

どなたかOpenSSLモジュールの組み込みについてご存じの方がいらっしゃいましたら、
ご助言いただけますでしょうか。何卒よろしくお願い致します。

※トレンドマイクロ社によると、OpnenSSLのHeartbleed の影響を受けるのは Android 4.1.1バージョン以外にも、
アプリがOpenSSLライブラリをバンドルしている場合にも脆弱性の影響を受けるとのことです。

kacodama

unread,
Jun 13, 2014, 2:48:28 AM6/13/14
to android-g...@googlegroups.com
私も調査する必要があってこちらに辿り着いたのですが、解決されましたでしょうか?
こちらのアプリを入れて、弊社のアプリをスキャンしたところ、抽出されなかったので、対応は不要と考えていいものか・・・と悩んでおります。

上層部は、「"https://"にアクセスしているだけでだめだ!」と言います。
しかし、それではアプリ側は何を修正すればいいのか分かりません。

どなたか情報をお持ちでしたらよろしくお願いします。

Jun Shiozawa

unread,
Jun 13, 2014, 4:31:58 AM6/13/14
to android-g...@googlegroups.com
 お世話になっております。

>こちらのアプリを入れて、弊社のアプリをスキャンしたところ、抽出されなかったので、対応は不要と考えていい

 これはあり得ません。

スキャンによってすべてのウイルス・ぜい弱性が抽出(検出)できるわけではありません。

上層部の認識が正しいと思います。

>アプリ側は何を修正すればいいのか

 そもそもThe OpenSSL Projectがぜい弱性を修正しないとどうにもならないかと・・・

 アプリ側でできることは、えーと・・・
The OpenSSL Projectによるぜい弱性修正完了をひたすら待つ or The OpenSSL Projectのぜい弱性修正に協力 or 商用のSSLを探すetc

 根本的な解決にはThe OpenSSL Projectによるぜい弱性修正完了 and ぜい弱性を修正されたバージョンのOpenSSLをGoogleがAndroid OSに組み込んでOSアップデートしてくれないことには。

2014年6月13日金曜日 15時48分28秒 UTC+9 kacodama:

Jun Shiozawa

unread,
Jun 13, 2014, 5:47:53 AM6/13/14
to android-g...@googlegroups.com
追記

>こちらのアプリを入れて、弊社のアプリをスキャンしたところ、抽出されなかった

OpenSSLは
4月のHeartbleedの問題だけではなく
CCS Injection Vulnerabilityの問題が今月新たに発生したためです。
念のため。

2014年6月13日金曜日 17時31分58秒 UTC+9 Jun Shiozawa:

Jun Shiozawa

unread,
Jun 13, 2014, 7:00:27 AM6/13/14
to android-g...@googlegroups.com
今月新たに発生した
CCS Injection Vulnerabilityの問題もすでに修正されている模様。
Android OS内蔵のOpenSSLがこの修正版にすでに対応(アップデート)したかどうかは不明。

http://internet.watch.impress.co.jp/docs/news/20140606_652154.html

2014年6月13日金曜日 18時47分53秒 UTC+9 Jun Shiozawa:

kacodama

unread,
Jun 13, 2014, 7:03:09 AM6/13/14
to android-g...@googlegroups.com
件のアプリはOpenSSLを使用しているアプリは列挙し、そのバージョンを示してくれています。
リストにさえ出てこなかったので、OpenSSLをアプリとしては内包しておらず、OSのOpenSSLのバージョンに依存する、したがって、アプリ側で「対応できることはない」という解釈でよろしいでしょうか?


2014年6月13日金曜日 18時47分53秒 UTC+9 Jun Shiozawa:
追記

田代透

unread,
Jun 13, 2014, 10:28:36 AM6/13/14
to android-g...@googlegroups.com

開発を依頼し、ソースコードだけでなく、ビルド環境まで準備されているのなら、ビルドに関わるライブラリーを確認すれば、OpenSSLのライブラリーが使用されているか、確認できるはずです。ライブラリーとして利用せずソースコードを埋め込んでいるような場合には、その方法では確認することは出来ず、ソースコードを精査しなければなりません。開発者に確認を取るのが一番確実だと思います。何らかの訳によりそれが出来ないとすれば、アプリに対して攻撃を仕掛けて、穴がないことを確認すること出来ます。
しかし、それにしても、テストする人の技術が確実であり、その人が信頼できる必要が有ります。
開発をアウトソーシングするならば、内容を確認出来るだけの実力と、信頼を継続するための努力は必要だと思います。

2014/06/09 18:12 "佐野まゆ" <sano.ma...@gmail.com>:
--
このメールは Google グループのグループ「日本Androidの会」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには android-group-j...@googlegroups.com にメールを送信してください。
このグループに投稿するには android-g...@googlegroups.com にメールを送信してください。
http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。

kacodama

unread,
Jun 15, 2014, 9:38:13 PM6/15/14
to android-g...@googlegroups.com
開発者はもういないため、引き継いでいるですが、Androidのプロジェクトは手元にあり現存するソースコードの精査は終わっています。
NDKを用いているプロジェクトにおいて、さらに参照している.so内に含まれているかどうかの調査はnmコマンドで行うことにしました。
これで十分でしょうか?

2014年6月13日金曜日 23時28分36秒 UTC+9 Toru:

開発を依頼し、ソースコードだけでなく、ビルド環境まで準備されているのなら、ビルドに関わるライブラリーを確認すれば、OpenSSLのライブラリーが使用されているか、確認できるはずです。ライブラリーとして利用せずソースコードを埋め込んでいるような場合には、その方法では確認することは出来ず、ソースコードを精査しなければなりません。開発者に確認を取るのが一番確実だと思います。何らかの訳によりそれが出来ないとすれば、アプリに対して攻撃を仕掛けて、穴がないことを確認すること出来ます。
しかし、それにしても、テストする人の技術が確実であり、その人が信頼できる必要が有ります。
開発をアウトソーシングするならば、内容を確認出来るだけの実力と、信頼を継続するための努力は必要だと思います。

2014/06/09 18:12 "佐野まゆ" <sano.ma...@gmail.com>:
こんにちは。佐野と申します。よろしくお願いします。

先々月、IPAよりOpenSSLの脆弱性につての注意喚起が発表あれ
現在、私がメンテナンスを担当しているアプリでも、OpenSSLがバンドルしていないか調査することになったのですが、
アプリのソースのどのあたりを見れば「OpenSSLがバンドルされている」かを確認することができるのかが解らず途方に暮れています。
(アプリ自体は以前に外部のベンダーが開発したもので、設計書のようなものはなく、ソース一式だけ手元にあります)

色々とネットで調べて、Androidアプリは、OpenSSLを使う場合はNDKでコンパイルして使用する、というところまでわかったのですが、
もしOpenSSLライブラリをバンドルしているとしたら、プロジェクトのどこに取り込まれているのかがわからない状況です。

どなたかOpenSSLモジュールの組み込みについてご存じの方がいらっしゃいましたら、
ご助言いただけますでしょうか。何卒よろしくお願い致します。

※トレンドマイクロ社によると、OpnenSSLのHeartbleed の影響を受けるのは Android 4.1.1バージョン以外にも、
アプリがOpenSSLライブラリをバンドルしている場合にも脆弱性の影響を受けるとのことです。

--
このメールは Google グループのグループ「日本Androidの会」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには android-group-japan+unsub...@googlegroups.com にメールを送信してください。

Jun Shiozawa

unread,
Jul 1, 2014, 12:02:50 AM7/1/14
to android-g...@googlegroups.com
ここによりますと
Android4.4.4で
CCS Injection Vulnerabilityの問題が修正された模様。

http://www.isssource.com/openssl-hole-fixed-in-android-update/

2014年6月9日月曜日 18時11分53秒 UTC+9 佐野まゆ:

Jun Shiozawa

unread,
Jul 1, 2014, 12:07:28 AM7/1/14
to android-g...@googlegroups.com
誤投でした
6月に新たに発生したOpenSSLの脆弱性である
CCS Injection Vulnerabilityの問題のメールにレスすべきでした。

ここによりますと
Android4.4.4で
CCS Injection Vulnerabilityの問題が修正された模様。

http://www.isssource.com/openssl-hole-fixed-in-android-update/

2014年6月13日金曜日 20時00分27秒 UTC+9 Jun Shiozawa:

Jun Shiozawa

unread,
Jul 28, 2014, 12:00:49 PM7/28/14
to android-g...@googlegroups.com
こちらによりますと


通信の盗聴・改ざんが可能な MITM 攻撃が成立するのは、サーバ側は 1.0.1 で、かつ、クライアント側が脆弱性を持つ OpenSSL を利用している場合。

とありますので

開発者の立場では
アプリの利用者に対して何らかのサービスを行う
「自社サーバ」側のOpenSSLをぜい弱性のないバージョンにアップデートすれば
ユーザ側Androidスマホ標準搭載のOpenSSLがぜい弱性の残るバージョンであっても
少なくとも「ユーザ側アプリ」と「自社サーバ」の2者間の通信に限れば
CCS Injection Vulnerabilityの問題については安全なはずです。

しかし、
ユーザ側Androidスマホ標準搭載のOpenSSLがぜい弱性の残るバージョンの場合
かつ、ユーザ側アプリがAndroidスマホ標準搭載のOpenSSLを利用している場合は
「ユーザ側アプリ」と「自社以外の第三者サーバ」間の通信につきましては
言うまでもなくCCS Injection Vulnerabilityの危険が残ります。

2014年6月13日金曜日 18時47分53秒 UTC+9 Jun Shiozawa:
追記

Jun Shiozawa

unread,
Jul 28, 2014, 12:19:41 PM7/28/14
to android-g...@googlegroups.com
こちらによりますと


開発者の立場では
アプリの利用者に対して何らかのサービスを行う
「自社サーバ」側のOpenSSLのバージョンを1.0.1hにアップデートすれば
ユーザ側Androidスマホ標準搭載のOpenSSLがぜい弱性の残るバージョンであっても
「ユーザ側アプリ」が採用・利用する(Androidスマホ標準搭載ではない)OpenSSLがぜい弱性の残るバージョンであっても
少なくとも「ユーザ側アプリ」と「自社サーバ」の2者間の通信に限れば
CCS Injection Vulnerability(CVE-2014-0224)の問題については安全なはずです。

しかし、
ユーザ側Androidスマホ標準搭載のOpenSSLがぜい弱性の残るバージョンの場合
かつ、ユーザ側アプリがAndroidスマホ標準搭載のOpenSSLを利用している場合は
「ユーザ側アプリ」と「自社以外の第三者サーバ」間の通信につきましては
言うまでもなくCCS Injection Vulnerabilityの危険が残ります。

2014年7月29日火曜日 1時00分49秒 UTC+9 Jun Shiozawa:

kacodama

unread,
Jul 28, 2014, 10:25:56 PM7/28/14
to android-g...@googlegroups.com
Shiozawaさま、たくさん情報を有り難うございます。
自社サーバーに関してはすべてバージョンアップを終えています。
端末のSSLは標準搭載のものを使用していますが、他社サービスとの連携部分に関しても、当該の対応完了を確認していますので、弊社アプリに関してはこれで問題なさそうです。


2014年7月1日火曜日 13時02分50秒 UTC+9 Jun Shiozawa:

佐野まゆ

unread,
Aug 4, 2014, 2:59:00 AM8/4/14
to android-g...@googlegroups.com
kacodamaさま、Jun Shiozawaさま、田代透さま

返信できておらず申し訳ございません!
自己解決しておりました(該当アプリOpenSSLを使用しておりませんでした)

>Jun Shiozawaさま、田代透さま

たくさんの情報ありがとうございました!

>kacodamaさま

開発者、ベンダーがもういないはこういうときツライですよねw
解決できたようでよかったです。


2014年7月29日 11:25 kacodama <le.s....@gmail.com>:

--
このメールは Google グループのグループ「日本Androidの会」のトピックを登録しているユーザーに送られています。
このトピックの登録を解除するには https://groups.google.com/d/topic/android-group-japan/8J6xG7sWvPo/unsubscribe にアクセスしてください。
このグループを退会し、グループのすべてのトピックの登録を解除するには android-group-j...@googlegroups.com にメールを送信してください。
Reply all
Reply to author
Forward
0 new messages