LINE and Intertrust Security Summit 2017 Spring, Tokyo レポート後編

こんにちは、LINE セキュリティ室の市原です。
普段は、LINEの提供するサービスのセキュリティコンサル、アカウント乗っ取り/Abusing対策、認証技術の調査・研究、標準化活動、などを行っています。今日は、5月17日にLINEとIntertrust社が主催で開催した「LINE and Intertrust Security Summit 2017 Spring, Tokyo」について報告したいと思います。
こちらのエントリはイベントレポートの後編です。前編はこちら

  • 公式HP: https://www.intertrust.com/company/events/line/
  • 日時: 2017年5月17日(水) 10:00〜18:00
  • 場所: 新宿ミライナタワー LINE社オフィス内オーディトリウム
  • 参加人数: 約140名
  • Session 1: Technology Trends in End Point security

    “ゲーム開発を加速させるためのクライアントセキュリティ” 汐田 徹也 (株式会社ディー・エヌ・エー)


    ゲームを主要事業とする日本を代表するゲーム会社DeNAのセキュリティ部門に所属する汐田さんに「ゲーム開発とクライアントセキュリティ」について講演して頂きました。

    ゲームのクライアントセキュリティとは、ゲームの攻撃者が行うチート行為(ゲームのデータを不正に変更する事で、本来よりも有利にゲームを進行させること)を防止するための対策を指します。

    現在、DeNAのなかでゲームの対策を考慮する上でも重要な3種類のアーキテクチャは以下の通りです。

  • ブラウザ型: ブラウザ上で動作するゲームです。この場合、ほとんどのゲームロジックがサーバ側に存在し、クライアントは演出、等のUIの実装に特化される。サーバに多くのロジックがあるので、クライアント側をチートしても出来る事に限界がある。
  • アプリ型: モバイルアプリ型のゲームで、最近では一般的な実装方法。一部のロジックや、インタラクティブにユーザの操作に反応してゲームロジックを計算する部分が、クライアント側に存在するタイプなので、チートが容易に出来てしまうケースがある。例えば、リズムゲームのように、ユーザの操作に応じてインタラクティブにスコアを計算していくタイプのものは、クライアント側にロジックが存在します。
  • BaaS利用アプリ型: 単一のゲームサーバを多数のゲームで共用するタイプ。複数のゲームでサーバを共有する分、開発コストを抑えられる一方で様々な処理をクライアント側に任せるため、クライアントがハックされてしまう可能性があることを考えるとチートの耐性が低くなる。
  • クライアントにゲームロジックを持つことがある以上、チートの数を減らすためにクライアントセキュリティの技術が必要になるが、様々な課題があります。例えば、改ざん対策のソリューションを導入できることが理想的だが開発の現場で導入するためにはビルド環境の制限・OS毎のセキュリティレベルの差・パフォーマンス問題などが障壁となります。そして、以下のようにまとめることができます。

    クライアントセキュリティの技術によりゲーム開発は加速できると考えています。これは開発効率のよいアーキテクチャが採用できたり、開発者によるチートの事後対応の工数を削減することができ、その結果より開発者が開発に集中できるといった状態を作りだせるからです。特に、BaaS利用型アーキテクチャを採用した場合クライアントが持つロジックの割合が高くなるためその傾向は顕著になります。従って、開発効率に与える影響、コスト、堅牢さのバランスの良いソリューションがこれからも必要とされてきます。

     ”チートはできてしまう事は前提で良い。むしろ重要なのは、チートされにくくする必要があるという”認識”を持つこと”

    チートのデモ
    後半は、プロキシツールとバイナリ解析による(意図的に脆弱に実装された)サンプルゲームのチート行為を、デモ映像を通じてご紹介したいと思います。
    まずプロキシツールでゲームの通信内容を閲覧し、何やらパラメータにbase64エンコードらしき文字列が含まれている事を発見します。続くバイナリ解析では「base64」を含む名前の関数を探し base64Decode という関数を見つけて、さらにその関数内を調べ xorDecodeという怪しい名称の関数名を見つけることができました。そして、その内部ではマスクしているらしき固定の文字列リテラルを見つけることができました。プロキシツールに戻り、先程の固定文字列により自動的にパラメータをマスク解除するプログラムを組み込んで通信路上のデータ(スコアなど)を大きな値に改ざんしてみるとサーバ側では改ざんを検証できず、スコアをランキング1位にしてしまう事ができました。このような安易な実装をするケースは容易に想像できます。このようにしてゲームは簡単にチートする事ができてしまうのです。

    Session 2: State-of-the-art Research and Technologies

    “Practical attacks on commercial whitebox cryptography solutions” アン・サンファン (LINE株式会社)


    LINEのセキュリティエンジニア Ahn Sanghwan (アン・サンファン)が「商用のホワイトボックス暗号ソリューションに対する攻撃手法」についての講演をしました。

    学術界で発表された幾つかのホワイトボックス暗号はすでに攻撃手法が発見され、破られています。しかし、商用ホワイトボックス暗号ソリューションは今まで破られたという報告がこれまでなかったため、この業界では初めての発表となります。攻撃者にすべての権限があるホワイトボックスモデルにおいて暗号鍵を安全に保管する事はほぼ不可能であり、また、ホワイトボックス暗号を使用してアーキテクチャを設計する立場でも単に攻撃事例がなかったため安全だと判断する事も難しいといえます。

    私は具体的な安全性を把握することが重要だと考え、ホワイトボックス暗号に対する調査を始めました。まずは、従来のホワイトボックス暗号の攻撃技術が商用ホワイトボックス暗号ソリューションに対して有効ではなかった事がわかりました。そこで、既知の攻撃技術を改善した新しい攻撃手法を試行錯誤することにより、商用ホワイトボックス暗号ソリューションとして保護されたキーを導き出す事に成功しました。この発表では商用ホワイトボックス暗号ソリューションに対する攻撃を見せ攻撃技術を共有することにより、サービスに対してホワイトボックス暗号を安全に適用できるセキュリティ的なガイドを示すことで様々な企業や開発者、Security Engineerの方に役立つ発表だったと考えています

    “IoT機器のセキュリティの強化について” 宮地充子 教授 (大阪大学)

    楕円曲線暗号の世界で世界的にも著名な宮地先生には、IoT機器にまつわるセキュリティモデルの研究についてご講演をいただきました。

    ■IoT機器のネットワーク環境を対象としたSelf-Healingの研究

    近年のIoT機器の普及に伴い、多くのデータが集まってユーザのプライバシー情報もネットワークを流れるようになり攻撃者にとって魅力的なターゲットになってきました。

    このようなセキュリティ課題の解決のため、ワイヤレスセンサーネットワーク(Wireless Censor Network: WSN)を対象として暗号方式や秘密鍵が攻撃者に漏洩された場合、全体の安全性を維持していくためどのように鍵の共有や更新を行うかという「Self-Healing」の研究に取り組んでいます。特に、WSNの環境の特徴をふまえると、計算能力、ローバッテリー、センサーの配置が前もってわからない(鍵共有が難しくなる)、攻撃者によってセンサーに対して直接的な攻撃がされることも前提としています。考慮しなければならないセキュリティ要件としては、Forward Secrecy(現在の鍵から過去の鍵を作る事ができない性質)とBackward Secrecy(現在の鍵から未来の鍵を作る事ができない性質)、Self-Healing(危殆化した鍵を自己治癒する特性)の3つがあります。

    また、セキュリティ指標としては、共有リンク鍵の危殆化( = 危殆化した共有リンク数÷ネットワーク内の全共有リンク数)が重要になり、Self-Healingを適用する事により、この指標を下げていく事を目指します。

    Self-Healingの方法としては、共通鍵を事前にセンサーにバラまいておく「ランダム鍵事前配布方式(RKP方式)」により確率的にネットワーク全体の安全性を維持する方法と、他にも、定期的に新規センサーと交換する「マルチフェーズセンサーネットワーク(Multiphase WSNs)」を導入し秘密情報をリフレッシュしていく方法があります。WSN環境における鍵共有や更新における課題として、なるべく多くのセンサどうしが鍵を共有できるようにするために、同じ鍵を可能な限り多くのセンサに共有させる方法がありますが、漏洩した場合の影響範囲が大きくなるためリスクがあります。

    これに対して、多項式ベースの鍵共有方式 による複数センサー間の鍵共有・更新をすると、任意のセンサー間で異なる鍵共有が可能になる。鍵更新においては、ハッシュ連鎖によりForward SecrecyとBackward Secrecyを実現できる。 例えば、 f(x,y)=f(y,x)の特徴をもつ2変数多項式により2者間の鍵共有を実現できる。A氏は、f(ID_B, ID_A)、B氏は(ID_A, ID_B)を計算すれば良い。このような多項式ベースの鍵共有・更新の方式としては、POSH方式(周囲のセンサの協力を得て鍵更新する事で、Self-Healingを実現)、POLISH方式(多項式ベースの鍵更新+周囲のセンサの協力を得て鍵更新により、Self-Healingを実現)、などの方式が発表されています。

    ■公開鍵暗号の比較

    RSAの場合、その暗号強度は、素因数分解問題と準指数時間攻撃(全数検索より高速)に依存している一方で、楕円曲数は、パラメータを適切に使えば、(「準指数時間攻撃」が提案されておらず)指数時間攻撃のみに依存しています。この事により、ECCは、RSAに比べて1/9程度の鍵サイズで良いことになります。比較すると、RSA1024bit ≒ ECDLP160bit / RSA2048bit = ECDLP 224bit という具合になります。また、センサーネットワークでは、共通鍵暗号を使う話がありましたが、例えば、AESなら128bitの鍵長を使うと仮定して、128bitの暗号の場合は、2^128乗の操作がないと暗号鍵は解けないという事になります。

    一方、ECDLP 160bitを考えると、AESとは異なり、攻撃空間はルート( √ )で考える事になるため、一番シンプルな攻撃で解く場合でも 2^80乗の操作で解けてしまいます。その意味で、楕円曲数暗号の鍵長を、共通鍵暗号方式と同じ安全性を維持するなら、AESで安全と言われている鍵長112bitの倍程度、つまりECDLPでいえば、224bitとなります。

    “耐タンパーソフトウェアの研究動向” 大石和臣 准教授 (静岡理工科大学)

    静岡理工科大学の大石先生には、「耐タンパーソフトウェアの研究動向」について、以下のような講演をいただきました。

    商用Software・組み込み機器・ICカードなどはその性質上エンドユーザーの手元にソフトウェアが存在するため、ソフトウェアの保護により悪用を防ぐ必要があります。1980年代以降、暗号化の普及に伴ってソフトウェアの暗号化、難読化の研究が活発になりました。DVD/BDのコピープロテクション技術なども静的・動的解析によって破られてきた過去があります。そこで安全なソフトウェアの実装として秘密情報守秘性・機能改変困難性を併せもつもの(耐タンパー性)が求められています。
    耐タンパー性の担保のために様々なアプローチが研究されてきたが、ここでは以下の4つを紹介します。

    1. Code Obfuscation Javaのような解析が容易な言語に対してソースプログラムの等価変換を行って可読性を下げ、解析難易度を上げる手法。しかし解析者のスキルによって強度が異なるという問題が生じます。
    2. White-Box Cryptography 暗号プログラムに攻撃者がフルアクセス可能な条件下で暗号鍵を保護する手法。古くから提案・実装されたものは全て理論的には破られていますが、最近新しい手法や攻撃が提案されるなど研究面・実用面での関心が高まっています。また、実際の強度は攻撃者に解析してもらうことで証明できるため、実装・解析のコンペティションが開催されています。
    3. Function Obfuscation Program(Function)のInput/Output以外の内部情報を一切漏らさないという性質にして外部から理解不能にする手法。これは一部Functionに関して適用可能なことが証明されていて、Function内部に鍵を含むことで鍵が抽出困難となります。
    4. Self Integrity Verification 「機能改変困難性」を実現するための手法。検知ルーチンを相互依存させることで改ざんの困難化や、タンパー応答として自己破壊を行うものなどがあります。それらとアンチデバッギング技術を組み合わせたものが発表者によって2011年に提案され、2015年の実装において秘密情報守秘性・動的解析耐性・静的解析への計算量的耐性・機能改変困難性を同時に実現しています。

    手法の概要は以下のようになっています。
     (1). 自己破壊的タンパー応答
     一部の命令をカモフラージュし、実際に動作を行う際には前後に自己書き換えルーチンが走る。自己書き換えルーチンは保護領域のハッシュ値によってカモフラージュ命令を元に戻し、再カモフラージュする仕組みになっており、保護領域の書き換えが発生すると異常な命令が実行されてエラー(自己破壊)を引き起こす

     (2). 相互依存型自己インテグリティ検証(発表では時間の都合上省略)
     ハッシュ関数とディジタル署名を組み合わせ、全コード領域を保護している。コード領域を分割してそれぞれが動的自己書き換えによって相互依存型自己インテグリティ検証を行い、検知ルーチンを含んだ領域を署名検証している

    以上のような手法に対し、今後はそれらを定量的に評価する手法の提案が必要と考えられます。

    トークセッション 〜 Exploring Trusted Apps and Services

    ■モデレーター : 市原尚久 (LINE株式会社) 
    ■ゲストパネリスト: エレンコフ・ニコライ(LINE株式会社)、David P. Maher(Intertrust Technologies)、汐田 徹也(DeNA)、宮地充子 教授(大阪大学)、大石和臣 准教授(静岡理工科大学)

    I: 市原 S: 汐田 徹也(DeNA) N: エレコンコフ・ニコライ D: David P. Maher M: 宮地充子 O: 大石和臣

    ■ゲームのチート対策の難しさ

  • I: 汐田さんには、ゲームのチートについて発表頂きましたが、セキュリティ部門として苦労している点もあると思います。その辺の話から聞かせてください。
  • S: 脆弱性が見つかった際の解決方法としては、開発現場で対策技術を開発するというオプション以外にサードベンダのソリューション導入するというオプションもあるが、一番苦労するのはどのタイミングでそのプロジェクトに働きかけできるかという点。事業の計画時点でプロジェクトのオーナーの意識があれば、早めに計画できたはずだし、リリース直前やリリース後になれば十分なオプションがほとんど選択できないケースもある。
  • I: セキュリティの開発部門とのコミュニケーションの苦労もあると思いますが、いかがですか?
  • S: 現場では、セキュリティの深刻さを正しく理解できない場合があるので導入メリットの判断が難しいという点が大きいです。
  • ■クライアントの安全性確保の難しさについて

  • I: ソフトウェア保護技術には、評価軸がないという問題についてご意見をください。
  • O: プレゼンの中で紹介したのは、AESの安全なホワイトボックス暗号の実装を募集して、それを公開しアタックしたい人はしてみるというCTF(= Catch The Flag)で、EUのfundで企画しているベンチャー企業が企画した。製品は色々ありますが客観的な評価が難しいので、Competitionでやろうという事で始まりました。
  • I: なるほど。ホワイトボックス暗号もそうですが、ソフトウェア保護技術やObfuscation(難読化)に対するCTFのような取り組みは興味深いですね。このあたりは、ぜひintertrust社のDavidさんに意見を聞いてみたいです。いかがですか?Intertrust社の公式な見解ではなくて結構です。
  • D: セキュリティ技術のTransparency(透明性)という概念には、高い価値があると思います。ずいぶん昔、暗号技術が世に出始めてきたころに楕円曲数暗号(ECC)の評価をするため、Competitionをやった事がある。難しかったのは「適切な鍵サイズ」だ。Clientのひとりは、鍵サイズはRSA、DHなどに比べて小さくできるといったが、根拠がよくわからない。それで結局取り組んだのがいろんな違うサイズの鍵に対してcompetitionだった。結局、どのくらいで鍵が解けるか?という予測を出す事ができて、納得のできる、成功した事例となった。Obfuscationにも同じような方法が適用できるかは分からないが、楕円曲数暗号のように鍵サイズのような明確な指標があるわけでもなく、非常に多くの攻撃パターンが存在するし、色々効果は確認できるだろうし、破られたりもするかもしれない。でもおそらく一番良い結論は「Obfuscationは一番良い防御策にはなる。ソフトウェアは最新の状態にして対応しよう」という事になるだろう。そのようなrenewability(ソフトウェアやシステムを最新の状態に更新していく)やdiversity(多様な防御により、攻撃による影響範囲を制限する)といった戦略も大事だし、もう一方で、Obfuscationの防御を取ると行った戦略も必要になるでしょう。
  • ■楕円曲線暗号の動向について

  • I: 今、楕円曲線暗号の鍵長の話について話があったので、ぜひ日本を代表する有識者であられる宮地先生にもこの辺りの動向についてのお話も伺いたいのですが。
  • M: RSAは一般的なアタック方法が適用できる一方、楕円曲線暗号はどんな楕円曲線にも適用できる事に起因してRSAよりも鍵長を小さくできるという特徴があります。IoTになってくるとこの鍵長のインパクトは大きくなるので、楕円曲線暗号が期待されます。
  • I: 実はFIDO仕様として公開されているサンプルには、RSAではなく楕円曲線暗号が使われています。これは生体認証装置 (authenticator)が鍵を生成したり署名する機能が必要ですが、センサを搭載した小さなデバイスであるためにRSAよりも楕円曲線暗号が現実的だからだろう、という事だと思います。これは時代を反映する象徴的な出来事だと思っています。
  • ■ハードウェア or ソフトウェア?

  • I: 今日のセッションでは端末上のデータ保護方法として様々な話題がありました。Nikolayさんがセキュリティエンジニアの立場として何か意見があればお願いします。
  • N: FIDOにはやや特殊な状況があると思う。鍵を保護しつつ、バイオメトリクスも保護しなければならない。鍵の保護の問題は古くから研究もされていて、TEE、Secure Elementなどに保存する解決策も知られている。一方、バイオメトリクスの場合その点はクリアではありません。何が最善のフォーマットか、どんな生体認証手段がいいのか、など。まぁ自分はSecure Hardwareが好きだしセキュアなハードウェアを搭載したデバイスというのがベストな解だと思っています。TEEのような、ノーマルワールド(OS)とセキュアな実行環境を分離するという設計思想は良いと思いますが、それでもセキュアアプリケーションとかセキュアOSに脆弱性が見つかることもありえます。TEEも実際にはスレッドの1つで通常のハードウェアレベルで施された保護機構が欠けている部分があるわけですし。スタンダード化していくというアプローチは良いアイデアだと思います。OSが何であれ, iOSのSecure Enclave、TEEのようなOSのプロテクションをbaselineとして、ソフトウェアはソフトウェア保護だけに専念し、ソフトウェア開発者はOSに依存しないコーディングができるというモデルです。
  • ■ソフトウェア保護技術のオープン・ソース化について

  • I: オープン・ソース化や、それに対する脆弱性の発見などは頻繁にありますよね。逆にこれによってセキュリティの問題を早く解決し、徐々に強固な技術にしていくというアプローチがあります。例えばソフトウェア保護技術、例えば軽量版製品をオープン・ソース化するというアイデアなども面白いと思います。個人的な意見で良いので、どう考えているか聞かせてください。
  • D: ホワイトボックス暗号にせよ、Obfuscationにせよ、軽量版製品については重要な事だし常にそういう議論はあります。提供する機能や能力と強度に違いを与える市場はまさにそういう要件はある。実際、異なる種類の市場の要件にあわせ、様々なタイプの製品を提供するようにしている。
  • ■IoTで前提とするセキュリティモデルについて

  • I: 今日の話のテーマの多くは「どのようにソフトウェアを保護するか?」だったと思います。一方、宮地先生のご講演の内容は「IoTの世界では、末端のIoTデバイスは破られる前提でどのようにリカバリーするか」というモデルのお話でした。これからの時代の中でとても重要な前提条件といえると思います。
  • D: 今までは「鍵は安全」という前提の話で、セキュリティの議論がされていました。でもIoTの世界では、ある日 IoTデバイスが攻撃されてしまったときにシステム全体としてそれをどうリカバリーするのか?という視点がとても重要になると思っています。
  • I: はい。ある日、突然コントロールが効かなくなるIoTの世界では重要なテーマですね。ありがとうございます。
  • ■生体認証装置の脆弱性について

  • I: 聴講者の方から質問を受付けたいと思います。
  • 聴講者: FIDOの話があったと思いますが、生体認証装置の脆弱性が話題になったりします。例えば、ピースの画像だけで指紋認証を突破される事もあり「いたちごっこ」だと思います。そういう部分は、今後どのような方向に向かっていくと思われますか?
  • I: 興味深いテーマですね。FIDO Alliance Japan Working GroupのChair、NTTドコモの森山さんがこちらにいらっしゃるので、ぜひお伺いしたいと思います。
  • NTTドコモ 森山: たしかに、Fakeの指を使った認証できる事は報告されているし、安価なセンサでは実際に出来る事は知っています。一方で、fakeを検知するような高度なセンサも存在していて、このような状況への対応はメーカが努力している状況でもあります。NTTドコモの場合においても現時点ではカスタマーセンターに問合せが来ているような状況ではありません。もちろん今後もこのような「いたちごっこ」の状況は注視していかなければならないと思っています。
  • 聴講者: ありがとうございました。
  • I: 少しだけ補足をすると、FIDO Allianceの中では、生体認証装置(Authenticator)を認定するプログラムに関する動きもあります。例えば、認定されたAuthenticatorに対して、後から脆弱性が見つかった場合にシステム側でコントロールが効くように、利用可能なAuthenticatorを最新状態に更新する(例えば、脆弱性の見つかった生体認証装置の製品番号を、FIDOサーバに格納されるメタデータ(許可リスト)からrevokeする)という考え方も、FIDO Allianceの中で議論されています。
  • 3. Intertrust社からのコメント

    現代のインターネットは、セキュリティエンジニアにとって様々な困難な課題を提示しています。ハッカーが無実のユーザーの背後に隠れて姿を見せないことにより、コンシューマー市場においては幾つかの非常に深刻な課題が提示されています。iOSやAndroidなどが動作する数十億のスマートフォンをベースに構築されたアプリケーション・エコノミーは、アプリ開発者に対して、ハイレベルなエンド・トゥ・エンドシステムの提供を求められていることも事実です。LINEは、歴史上最大のデジタルコミュニティの1つであり、コンシューマー側のセキュリティ上の課題の最先端に位置しています。このような”ゲーム”の中で彼らは、最高のセキュリティチームを構築し、ユーザーを保護するためにコンシューマ向けソーシャルネットワークから期待されるものを超えています。

    Intertrust社は、LINEのセキュリティチームと協力し、地平線を見渡し、共に直面している一連のセキュリティ課題に対して、新しいソリューションを開発できることを光栄に思います。これは、共同開発プロダクトの統合、新たなソリューションに向けた研究、カンファレンスを通じたエヴァンジェリズムと、思想のリーダーシップといった形で形成されていくでしょう。私たちは共に、アプリケーション・エコノミーを、より安全に、生き生きと取引できるようにする為に、幅広く適用できることを願って、斬新な安全なシステムソリューションを提供していきます。

    (原文)
    “The modern Internet presents a variety of tough challenges for security engineers. The consumer market presents the some of the deepest challenges, since hackers hide behind innocent users; also the App economy, built on billions of smartphones running operating systems like iOS and Android puts pressure on app developers to provide a higher degree of end to end system integrity. As one of the largest digital communities in history, LINE finds itself on the bleeding edge of consumer side security challenges. In response, they have built one of the best security teams in the game, and are going beyond what is expected from a consumer social network to protect their users. Intertrust is honored to work with LINE’s security team to look together over the horizon and develop new solutions to the array of security challenges we are facing together. This takes the form of joint product integration, research into new solutions and evangelism and thought leadership through our conference series. Together, we are novel secure systems solutions that we hope will have broad applicability to making the App economy a safer place to live and trade in. “

    4. おわりに

    本カンファレンスにご参加いただいた皆様、ご講演に登壇していただいた有識者の皆様、当日のスタッフの皆様、本当にありがとうございました。

    至らぬ部分も多々ありましたが、イベント後に開催したカクテルパーティの場で、「(カンファレンスの内容に)とても満足した」、「講演内容が深くて面白かった」、などの声を多くいただき、主催者側として大変に嬉しく思っています。第2回のLINE and Intertrust Security Summitは、2017年秋、サンフランシスコで開催する予定です。そして第3回は再び日本で、2018年の春に開催を計画しています。ぜひ、楽しみにしていて下さい。

    こちらのエントリはイベントレポートの後編です。前編はこちら

    Related Post