2015年11月13日

【悲報】8月に広告が問題になった百度のSimejiアプリにMoPlusと同じ脆弱性がある事が発覚(現在は修正済み)

記事がこんなタイトルですが、本当は、見つからなくてよかったって内容で書く予定でした。

百度のAndroidバックドアが心配ならよく使う中国製ソフトを解析してみよう

ってタイトルで…。

ひどいよ!Baiduさん(笑)!

とりあえず、長い文章読むのめんどくさい人向けに
1. SimejiプライバシーロックはDu Apps StudioのOEM製品
2. そのOEM製品がMoPlusを使っているので百度は直接関与していない
Simejiプライバシーロックの中身を作ったDU Apps Studioについて調べてみた
3. 全然関係ないアプリだけど、それを売ってロイヤリティ得るために百度がSimejiのブランド名を日本向けに付けた
4. simeji IME自体は全然悪くない
5. あなたの端末が遅くなっていますみたいな詐欺広告でこのアプリをインストールさせようとして8月に問題になっている
概要のまとめ
1. SimejiプライバシーロックにMoPlusの文字列を発見
2. 百度「『moplus』という関係ない文字を含んでいただけ、削除してリリースしなおしました」
3. 石井氏『Moplusは入ってないがバックドアがあり外部から接続できる』
4. 2の発表を受けて疑問がわいたのででコンパイルして詳しく解析
5. クラスMoPlusからPushServiceへの改名した可能性が濃厚
6. その中に外部からの接続処理が入ってることが判明
7. 石井さんがバックドアと呼んでたのは内部的に MoPlusServiceと 呼ばれていたところに実装されていた。
技術まとめ



先日の記事の続き。
百度製のアンドロイド開発キットは数億のデバイスにバックドアを仕込めることが判明

自分で、使ってるアプリに危険性がないか調べてみる方法を紹介します


とりあえず、有名どころとして 次の2つのアプリを調べてみるよ!
※ 3つ目にGIGAZINEさんのおすすめアプリを調べてみたところ、たいへんなことに!

Wifi Analyzer
作者の Kevin Yuan さんは  Bitcionで働く 辽宁省大连市(遼寧省大連市) 在住のエンジニア

Simejiプライバシーロック〜アプリ、写真などをガード!〜 - Google Play の Android アプリ
日本法人の百度さんが作ったセキュリティソフト。

もし入ってるならこの辺が怪しいかなと…
バイドゥの日本法人、「Simeji」ではSDK「Moplus」を使用していないことを発表 | オクトバ
バイドゥ株式会社は、中国のバイドゥ本社が開発したSDK「Moplus」に関する一部報道について、日本法人が提供している「Simeji」ではこのSDKは使用していないと発表しました。
うん、きっと大丈夫だね・ω・




ss2
Apk Downloader ってアプリを使います

Play Store にないアプリでAPKダウンロードして出所不明のアプリとしてインストールしてます。
(このアプリの最新版使う人はこれも調べてみた方がいいかもね)

ss1
このアプリで検索してダウンロードすると apkファイルが公式から直接ダウンロードできます

ss3

次にapkを zipにリネームして解凍。 その中から dex って拡張子のファイルを取り出します

dex2jar - Browse Files at SourceForge.net

これを dex2jar ってアプリで jar ファイルに展開
ss4
こんな感じ(ちなみに、実際は Baiduが出してる simeji の付くアプリ全部を検証しました)

後は、 moplus という文字列で、大文字小文字区別せずに ANSI/UNICODE で検索して問題なければ安全!

Wifi Analyzer の方は問題なし!

ss5
simeji は ・・・・えっ?

ss6
com.baidu.moplus.action.start.SERVICEINFO

ss7
MoPlusService

思いっきり使ってますやん!

バックドアとされてるのは
『com.baidu.android.moplus.MoPlusService』なんだけど、 Pが大文字なのも同じという

ちなみに、IME版の方の Simejiは確かに使ってませんでした。
が…Simejiブランドで出してる別のアプリに含まれてるのはまずい!
含まれてないってのは、ブランド全部だと思うので、『有名なSimeji IMEだけに含まれていないからセーフ』って訳がない

アプリやデータを個別にロック可能、百度「Simejiプライバシーロック」提供開始 | RBB TODAY
日本でも結構 Yahooとか宣伝してるので相当の人が入れてるはず

調べたのは com.szipcs.simejiprivacylock-2.0.1.63.apk だから最新版の  2.0.1.63 でも修正されていないということ。

あなたのAndroidは古くなっています詐欺広告 Simeji/360 Security導入誘導 ( スマートフォン ) - 無題な濃いログ - Yahoo!ブログ

これ、詐欺広告で話題になったアプリやんかw

もうこれは酷過ぎて何も言えない…。

百歩譲って、百度さんの立場で言うと このアプリ、
DU Privacy Vault - App Lock 1.2.2.38 com.szipcs.duprivacylock
ここのOEMっぽいので、調査しきれてないのが原因なのかなと思うんですが、
ちゃんと調べる義務はあると思う

追記 13:30
デコンパイルでもう少し解析してみた
intent2 = com.baidu.android.pushservice.i.s.b(a, "com.baidu.moplus.action.start.SERVICEINFO");
        if(intent2 != null)
        {
            String s14 = intent2.getStringExtra("method_version");
            if("V1".equals(s14))
            {
                if(com.baidu.android.pushservice.j.b())
                    com.baidu.a.a.b.a.a.b("RegistrationService", (new StringBuilder()).append("Method Version : ").append(s14).toString());
                return false;
            }
        }
呼び出してるコードはこんな感じで MoPlusのサービス情報をチェックしてIntent呼び出しをしてバージョン確認をして一致したら push サービスで何かに登録してる

            if(!arraylist1.contains(s1) && arraylist.contains(s1) && (runningserviceinfo.service.getClassName().contains("PushService") || runningserviceinfo.service.getClassName().contains("MoPlusService")) && v(context, s1))
                arraylist1.add(runningserviceinfo.service.getPackageName());

別の個所では MoPlusService が動作してる存在するのを確認して、動作してるアプリの一覧を取得する処理の気がする
MoPlusService 自体は使ってたけど、最新版に含まれてるのは、直接害のあるコードではないかなというのが結論。

もしかするとバージョンアップで MoPlus のやばいコードだけ削ってリリースしなおしたのかもしれない。
(なんでかというと、MoPlusServiceをインテントで呼び出してるのに該当するライブラリやファイルが見つからない。
別アプリでMoPlusServiceを使ってるものと連携してるのかもしれないのだけど… )
これは、古いバージョンがないとなんともいえないね

Baidu さんはちゃんと過去のバージョンも確認して、問題があるバージョンはないか発表した方がいいです|・ω・)

結論
MoPlus SDK のライブラリとのなんかしらの連携が残ってるのが今回最新版で検出された。直接の危険性は低い
MoPlus って処理は無害だけど、 PushService って名前にリネームされて 外部からの接続を待ってることが判明

12:50 付で アプリを削除して調査すると百度(Baidu)さんから連絡がありました
@BlackWingCat @mitsuaki_i
Baidu Japanです。ご報告誠にありがとうございます。ご指摘のあったアプリは12:50時点でGoogle Playから削除いたしました。経緯と詳細については現在調査中です。詳細がわかり次第随時ご報告いたします。

2015/11/13 13:41:51


追記 18:50
一般ユーザー様よりSimejiプライバシーロックにMoplus SDKが入っていると報告があり
12:50時点でGoogle Playから削除したと報告を受けました。
経緯と詳細については現在調査中です。詳細がわかり次第随時ご報告いたします。 続く→
続き→なお、日本語入力アプリ#Simeji についてはMoplusは使用しておりません。

【お知らせ】
#Simejiプライバシーロック を検証した結果、本アプリに #MoplusSDK は使用されていませんでしたが、アプリの機能と無関係な#MoPlus という記述が含まれていたことを確認したためその部分を削除いたしました。
「#Simejiプライバシーロック」をご利用中の方は今すぐアプリを更新してください。
https://t.co/9KkgTe1Ggp
引き続き本記述が含まれた経緯と詳細については現在調査中です。
なお、日本語入力アプリ「#Simeji」と本件は関連がありません。
また、「#Simejiプライバシーロック」にiOS版はありません。
ってことなんだけど

ソースコードに
runningserviceinfo.service.getClassName().contains("MoPlusService"))
って記述があるってことは、過去のバージョンで

com\baidu\android\MoPlus\MoPlusService.(class/java) ってファイルまたは
com\baidu\android\MoPlusService\MoPlusService.(class/java) ってファイルが
存在したってことを意味してるので、使ってないというより、過去に使いかけたけど、社内判断でやめたとか、〜以前のバージョンでは使ってたとか、OEMの方では使ってるけどSimeji版では使ってないとかの方が説得力があるので、もうちょっと詳しく確認してほしいんだが…。

runningserviceinfo.service.getClassName().contains("PushService"))  の方はというと
com\baidu\android\PushService\PushService*.(class/java) ってファイルが存在してる

ちなみに、com\baidu\android\moplus\MoPlusService\ のフォルダ構成は思いっきりバックドアのMoPlusService と同じ だけど、この構成はライブラリをインポートしたフォルダ構成で変わるので、moplus フォルダが間にないからと言ってあてにならない。

19:20追記

mop

ちなみにOEM元の DU Privacy Locker を調べてみたところ同じ記述があったので、Simejiに追加されたのではなく、OEM元で昔使っていた可能性が高い

#あれ、これって、ひょっとすると MoplusService って名前使ってたの、名前が被るんで、PushService  に置き換えたんじゃね? ・ω・

            if(!arraylist1.contains(s1) && arraylist.contains(s1) && (runningserviceinfo.service.getClassName().contains("PushService") || runningserviceinfo.service.getClassName().contains("MoPlusService")) && v(context, s1))
                arraylist1.add(runningserviceinfo.service.getPackageName());

もう一度コード思い出してみる。置き換えていく過程でこのコードだけ残っちゃったとすると納得が…。


Simejiプライバシーロックに入っているのはMoplusではないようです。しかしバックドアはあります。Moplusが入っていなくてもバックドアがあるバイドゥのアプリが存在するようです@BlackWingCat @Simeji_jp https://t.co/OKaLwyNHLt

13:22 - 2015/11/12

ちなみにポートスキャンしPCから端末にリクエストを送信し、バックドアが開くことは確認してます。
@BlackWingCat @Simeji_jp
14:08:37 2015/11/13
IO株式会社代表 の石本 光さんからこんな風に言われたので、

・待ち受けするような処理が MoPlus にあると仮定
・MoPlusService を全部 PushService という名前に全部置き換えた

で PushService を調べてみた
    public static int a = 80;
    public static String b = "http://m.baidu.com";
    public static ArrayList c = null;
    public static ArrayList d = null;
    public static final int e;
    public static final String f;
    public static final String g = (new StringBuilder()).append(a()).append("/rest/2.0/channel/channel").toString();
    public static final String h;
    public static String i = "http://lbsonline.pushct.baidu.com/lbsupload";
    private static String j = "http://channelapi.tuisong.baidu.com";
    private static String k = "agentchannel.tuisong.baidu.com";
    private static int l;
    private static String m;
    private static final String n[] = {
        "180.76.2.108"
    };
    private static final String o[] = {
        "180.76.2.107"
    };
なんかネットワークにアクセスはしてるよね

POST http://statsonline.pushct.baidu.com/pushlog HTTP/1.1" 200 - "-" "Baidu-Frontia-Android"
POST http://lbsonline.pushct.baidu.com/lbsupload HTTP/1.1" 200 - "-" "Baidu-Frontia-Android"
なんだろ。ログと lbs (Location Database Service ?)のアップロードってアクセスがある

まぁ、Push通知なんだからNetにアクセスするのは当たり前なんだけどね

        Object obj = m;
        obj;
        JVM INSTR monitorenter ;
        LocalServerSocket localserversocket = i;
        if(localserversocket != null)
            break MISSING_BLOCK_LABEL_118;
        i = new LocalServerSocket(s.t(n));
_L2:
        if(i != null)
            break MISSING_BLOCK_LABEL_380;
問題はここ LocalServerSocket を開いてなんかモニタしてる。
多分これが外部から繋いで、バックドアみたいな働きをするんじゃないかと言われればそうかもしれない・ω・


元々のファイル名クラス名がMoPlus MoPlusService だったわけだからバックドアだと言われると言い逃れができない。

追記: 2015/11/14 15:50
百度からお知らせが来てました

「Simejiプライバシーロック」について | バイドゥ株式会社
<追記>11月14日4:00

本日、さらに調査を進めた結果、以下の内容が判明しました。

すでに削除対応しましたコードは端末にNotification(情報をプッシュ通知)する機能として搭載されておりましたが、このコードによりセキュリティホールが発生する可能性があり、悪意ある第三者がそのセキュリティホールから端末の情報を獲得できる可能性があったことが分かりました。
現在は該当のコードを削除したのち、最新バージョン(ver. 2.0.1.71)がGoogle Playに反映されております。
※ユーザーさまはすぐに更新してくださいますようお願い申し上げます。
https://play.google.com/store/apps/details?id=com.szipcs.simejiprivacylock
<今後について>

Simejiプライバシーロックは外部OEM製品を使っており、外部で開発されたソースコードを利用しています。この外部開発のソースコードに対するチェックが弊社内で不十分でした。バイドゥは、このような事象を深く受け止め、OEM製品を利用する場合のチェック体制を強化いたします。体制ができるまではOEM製品の活用を停止します。

※Simeji本体は関連ありません。
※SimejiプライバシーロックはAndroid版のみの提供です。
やっぱり、MoPlusServiceと同じ脆弱性が残ってた模様
ちゃんと書いたほうがいいと思うんだけどね。
隠すと、逆効果っすよ ・ω・;

というわけで、事実確定したのでタイトル変更してこれで固定します

追記:なぜか2か月たってニュースに…。
今更のSimeji問題。読売と百度、両社の発表を添削してみた



blackwingcat at 18:30│Comments(3)TrackBack(0) | トピックイットに投稿する | Android | 韓国・中国製ソフト

Twitter Feedback

トラックバックURL

この記事へのコメント

1. Posted by M_M   2015年11月13日 15:10
「Simejiプライバシーロック」がリンクからでは表示されません。
Google Playで検索しても、英語版しか出てきません。
?ひっこめた?
2. Posted by Boomerang   2015年11月14日 01:11
早期の証拠隠滅に協力しちゃったらな〜・・・
より多く証拠が残っている内に広く知ってもらった方が良いかと。
結局無かった事にしたり、ほとぼりが冷めるのを待てば
いずれカモが舞い戻って来るんだけどね。

世間一般の認識としては
「またプライバシー団体か何かの基地外が騒いじゃってるよ!」とか
「みんな使ってるし大丈夫でしょ!」とか
「別に隠す様な事なんにも無いし!」みたいな感じかな。

元々ナイーブな国民性だから、かの国に侵略される方が
自然の理に適ってるのかも(苦笑
3. Posted by shiro96_palmia   2016年01月15日 11:42
今更になってこの話題がまた出てきたようなので、こちらの記事URLを用いて引用紹介させて頂きますね。
もしご迷惑でしたらお手数ではありますが一報頂ければ即刻削除致しますので。

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔   
 
 
 
livedoor プロフィール
My PC
SNOWSTORM(P5E3 Premium)
OS:Win2000AdvancedSv
CPU:Xeon(4Core) 2.83G
Memory:8G
VGA:NVIDIA GTX 780Ti
HDD:SSD(32G)
    +SATA(540G+180G)
Crystal SCR:244765
SNOWFOX2(W860CU)
CPU:Core i5-540M(2.53G)
OS:Win2000Pro
Memory:4G
VGA:Geforce GTX285M
HDD:SSD(160G)
Crystal SCR:176460
SNOWMOBILE3(CF-J10S)
CPU:Core i5-2410M(2.3G)
VGA:Intel HD Graphics
HDD:SSD(128G)
Windows2000
Memory:6G
Crystal SCR:133495
SNOWMOBILE(N10Jc/故障)
Windows2000/XP Home
Crystal SCR:38316
SNOWLEO(MA206J/A/休止)
OS:OSX 10.4 +
Windows2000Pro(Solo動作)
Crystal SCR:24061
Windows 2000の セキュリティ対策について
FFR yarai(脆弱性防御)
SymantecEndpointSecurity 11 MR7
Windows Defender
記事検索
訪問者数

    今週のアクセス数

    Win2000お勧め
    お勧め記事
    Twitter Client Mo-Footer
    .NET FrameworkのUninstall
    lolifox 0.3.8.x
    WindowsのシャットダウンTips
    Fox Launcher
    ウィルス感染を手動で見つける方法
    Unknown Hard Errorとサルベージ
    Dependency Walker 日本語化
    Ultra VNC 1.0.6/1.0.8 を日本語化
    IME補完計画
    BSoD(ブルースクリーン)特集
    デフラグ時の4つの心得
    不明なデバイス探し
    SETUPAPI/NTDLLBugFix
    DNSデボルブ用更新[KB957579]
    最新 update.sys!
    4Thread以上のCPU最適化
    Win2000マルチコアで最適化
    Windows 2000の通信速度改善1
    Windows 2000の通信速度改善2
    内蔵簡易FireWallを使う
    ワームに感染しないインストール
    Remote Desktop Client
    IME 辞書 Tips
    Win2000用セキュリティSOFT
    不要なファイルの削除
    Win2000カスタマイズ
    便利なキーボードショートカット
    6月末まで使える体験版セキュリティ

    非対応ハード動作編
    HTC NDIS Driver
    Intel HD Graphic Driver
    VMWare Player 3.1.x
    Conexant HD Audio Driver
    NVIDIA WHQL Driver
    Intel Chipset 最新 INF
    Sentelic Finger Pad Driver
    ATI Legacy Driver 10.2
    AMD Radeon Driver 8〜11
    ATI Ahci/Raid Driver
    Intel SATA AHCI Driver
    D21LC(eMobile)
    USB-WSIM
    UVC カメラ
    Logicool Webcam
    Logicool ゲームパッド
    XBOX360用コントローラー
    Logicool Mouse
    Microsoft IntelliPoint
    iPod Touch/iPhone Driver

    非対応アプリ動作編
    Flash Player 10.3
    Java 6 JRE
    Java 7.0 JRE
    ティルズウィーバー
    Natal Online
    コンチェルトゲートフォルテ
    シルクロードオンライン
    東方幻想麻雀
    IME2010 Installer
    Adobe Reader X for Win2000
    Baidu IME 2.x
    MMORPG ドルアーガーの塔
    Adobe Air for Windows 2000
    Baidu IME
    iTunes 10.x installer
    Evernote 4
    Janetter
    Second Life
    雀龍門
    Media Manager for PSP 2.5a
    .NET Framework 3.5SP1
    ATOK 月額版(2010/2011)
    Leaf 愛佳でいくの!!
    VistaのScreenSaver
    会計ソフト弥生シリーズ 10
    Vegas Movie Studio 9
    EyeBall Chat
    ・CanonPowerShot[Soft/DPP]
    Google SketchUp Pro 7
    dance mixer
    Lismo Port
    DivX
    SONY ScreenSaver
    mixi アプリ
    DivX v7.x
    ニコニコムービーメーカー(動画)
    RC-S330 PaSoRi
    Finale 2009
    ZoneAlarm 8.0
    ルナティア Online
    ストリートギアーズ
    xfy Blog Editor
    Photoshop Elements 7
    Premiere Elements 7
    PowerShell 1.0
    ai sp@ce
    電脳フィギュアARis
    VOCALOID2 ミク・リンレン
    Google Chrome/SRW Iron
    Media Player 10
    ・iTunes 7.6.2を使う方法
    QuickTime 7.5x/7.6x
    foobar2000 9.5.x/9.6.x
    RealPlayer11
    Safari3/4.0
    ShockwavePlayer10/11
    Windows Live Writer
    Live Messenger
    Veoh Web Player / Web TV
    Level-R

    追加機能・カスタマイズ編
    W2K Kernel32 改造計画【BM】
    W2K Update Rollup v2
    XNA/SlimDX
    CPU Core数リミット解除
    OutLook Express 6SP3
    MDAC 2.8 SP2
    GIF/PNGを使えるMSPAINT
    IE5でWindowsUpdate
    MSXML 4.0SP3
    DirectX9.0c(2010/Feb)+拡張
    MS09-062(Gdiplus.dll)更新
    Unicode 制御文字
    Internet Explorer6 Bonus Pack
    夏時間(DaylightSavingTime)
    レジストリバックアップを取る
    IME2007
    Windows Media Bonus Pack
    XPSファイルビューア
    Windows Defender
    文字化け対策(FontLink)
    Meirio(KB927489)
    msconfig
    圧縮フォルダ
    Windows Movie Maker
    IE5.01/5.5/6タブ化
    MediaTypeChanger(EISA構成)
    Win2000 SP4 Support Tool
    kill/tlist with Debugging Tools
    sc.exe with Resource kit
    reg.exe
    TaskTray 256色化
    ISO仮想CD/DVDドライバ
    IE6高速化とWSH 5.7/5.8
    MS Baseline Security Analyzer
    音声認識 API 5.1
    Text Service

    Win2000インストール編
    CF-J10S
    N10Jc
    ThinkPad X200(7454)
    Quad Core/X48/P5E3
    VAIO VGN Type S
    E6850搭載 サポートPC
    Let'snote CF-R6
    MacMini
    Dell LATITUDE D630
    Core i7 + X58 +ICH10R
    790FX + SB750
    Clevo W860CU
    最新コメント
    Categories
    アーカイブ
    Information
    Google広告




    Translate


    このサイトはIE5.x/IE6
    IE5.x Internet Explorer 6.x

    Firefox Firefox ブラウザ無料ダウンロード
    で最適化されています。
    Technorati
    Add to iGoogle
    Amazon GIFTでカンパ

    Donation